aboutsummaryrefslogtreecommitdiff
path: root/libjava
diff options
context:
space:
mode:
authorMatthias Klose <doko@gcc.gnu.org>2008-10-21 17:55:01 +0000
committerMatthias Klose <doko@gcc.gnu.org>2008-10-21 17:55:01 +0000
commitcd6d4007aa4f72b51756e4a571abf876fa3e3133 (patch)
tree6de8da5758622565799768e49cd0de6698ca3cb8 /libjava
parentd9cc481a359c713f473a136730e4019124368d6b (diff)
downloadgcc-cd6d4007aa4f72b51756e4a571abf876fa3e3133.zip
gcc-cd6d4007aa4f72b51756e4a571abf876fa3e3133.tar.gz
gcc-cd6d4007aa4f72b51756e4a571abf876fa3e3133.tar.bz2
re PR libgcj/37636 (java tools are unable to find resource files)
libjava/ChangeLog: 2008-10-21 Andrew John Hughes <gnu_andrew@member.fsf.org> * sources.am, Makfile.in: Regenerate. 2008-10-17 Matthias Klose <doko@ubuntu.com> * configure.ac: Fix bashisms. * configure: Regenerate. 2008-10-15 Matthias Klose <doko@ubuntu.com> * configure.ac: Disable build of gjdoc, if configured without --with-antlr-jar or if no antlr.jar found. * configure: Regenerate. 2008-10-09 Andrew John Hughes <gnu_andrew@member.fsf.org> * classpath/configure.ac, * classpath/m4/ac_prog_antlr.m4, * classpath/m4/ac_prog_java.m4, * classpath/tools/Makefile.am: Ported --regen-gjdoc-parser patch and cantlr support from GNU Classpath. 2008-10-06 Andrew Haley <aph@redhat.com> * java/lang/Thread.java (Thread): Always create the ThreadLocalMap when creating a thread. (getThreadLocals) Don't lazily create the ThreadLocalMap. 2008-09-28 Andrew John Hughes <gnu_andrew@member.fsf.org> * classpath/java/lang/ThreadLocalMap.java, * java/lang/ThreadLocalMap$Entry.h, * java/lang/ThreadLocalMap.h, * lib/java/lang/ThreadLocalMap.class, * lib/java/lang/ThreadLocalMap$Entry.class: Add the new files for the ThreadLocal patch. 2008-09-28 Andrew John Hughes <gnu_andrew@member.fsf.org> * classpath/ChangeLog, * classpath/java/lang/InheritableThreadLocal.java, * classpath/java/lang/Thread.java, * classpath/java/lang/ThreadLocal.java: Merge Daniel Frampton's ThreadLocal patch. * gcj/javaprims.h: Updated. * java/lang/Thread.h: Regenerated. * java/lang/Thread.java: Replace WeakIdentityHashMap with ThreadLocalMap. (getThreadLocals()): Likewise. * java/lang/ThreadLocal.h: Regenerated. * java/lang/ThreadLocal.java: (computeNextHash()): New method. (ThreadLocal()): Initialise fastHash. (internalGet()): Updated to match Classpath's get(). (internalSet(Object)): Likewise for set(Object). (internalRemove()): Likewise for remove(). 2008-09-25 Andrew John Hughes <gnu_andrew@member.fsf.org> * classpath/configure, * classpath/configure.ac: Resynchronise with Classpath's configure. * classpath/examples/Makefile.in: Add equivalent support for building as in tools/Makefile.in. * classpath/java/nio/Buffer.java, * classpath/java/nio/ByteBuffer.java, * classpath/java/nio/ByteBufferImpl.java, * classpath/java/nio/CharBuffer.java, * classpath/java/nio/CharBufferImpl.java, * classpath/java/nio/CharSequenceBuffer.java, * classpath/java/nio/CharViewBufferImpl.java, * classpath/java/nio/DirectByteBufferImpl.java, * classpath/java/nio/DoubleBuffer.java, * classpath/java/nio/DoubleBufferImpl.java, * classpath/java/nio/DoubleViewBufferImpl.java, * classpath/java/nio/FloatBuffer.java, * classpath/java/nio/FloatBufferImpl.java, * classpath/java/nio/FloatViewBufferImpl.java, * classpath/java/nio/IntBuffer.java, * classpath/java/nio/IntBufferImpl.java, * classpath/java/nio/IntViewBufferImpl.java, * classpath/java/nio/LongBuffer.java, * classpath/java/nio/LongBufferImpl.java, * classpath/java/nio/LongViewBufferImpl.java, * classpath/java/nio/MappedByteBuffer.java, * classpath/java/nio/MappedByteBufferImpl.java, * classpath/java/nio/ShortBuffer.java, * classpath/java/nio/ShortBufferImpl.java, * classpath/java/nio/ShortViewBufferImpl.java: Replace use of gnu.classpath.Pointer with gnu.gcj.RawData, and fix some formatting issues. * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.java, * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap, * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java, * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap, * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java, * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt: Regenerated (later version of antlr). * java/nio/Buffer.h: Regenerated. * java/nio/Buffer.java: Ported changes from Classpath. * java/nio/ByteBuffer.h, * java/nio/CharBuffer.h: Regenerated. * java/nio/DirectByteBufferImpl.java: Ported changes from Classpath. * java/nio/DoubleBuffer.h, * java/nio/FloatBuffer.h, * java/nio/IntBuffer.h, * java/nio/LongBuffer.h, * java/nio/MappedByteBuffer.h, * java/nio/MappedByteBufferImpl.h: Regenerated. * java/nio/MappedByteBufferImpl.java: Ported changes from Classpath. * java/nio/ShortBuffer.h: Regenerated. 2008-09-24 Matthias Klose <doko@ubuntu.com> * configure.ac: Search for antlr.jar, if not configured. * configure: Regenerate. 2008-09-24 Matthias Klose <doko@ubuntu.com> * Makefile.am: Build a gjdoc binary, if enabled. * configure.ac: Add options --disable-gjdoc, --with-antlr-jar=file. * Makefile.in, */Makefile.in, configure: Regenerate. 2008-09-22 Andrew Haley <aph@redhat.com> * java/lang/String.java (toString(char[], int, int)): New method. 2008-09-14 Matthias Klose <doko@ubuntu.com> Import GNU Classpath (libgcj-import-20080914). * Regenerate class and header files. * Regenerate auto* files. * configure.ac: Don't pass --disable-gjdoc to classpath. * sources.am: Regenerated. * HACKING: Mention to build gjdoc in maintainer builds. * gnu/classpath/Configuration.java: Update classpath version. * gcj/javaprims.h: Update. 2008-09-08 Andrew John Hughes <gnu_andrew@member.fsf.org> * Makefile.am: Replace natStringBuffer.cc and natStringBuilder.cc with natAbstractStringBuffer.cc. * Makefile.in: Regenerated. * java/lang/AbstractStringBuffer.java: (append(int)): Made native. (regionMatches(int,String)): Likewise. * java/lang/StringBuffer.h: Regenerated. * java/lang/StringBuffer.java: Remerged with GNU Classpath. * java/lang/StringBuilder.h: Regenerated. * java/lang/StringBuilder.java: Remerged with GNU Classpath. * java/lang/natAbstractStringBuffer.cc: Provide common native methods for StringBuffer and StringBuilder. * java/lang/natStringBuffer.cc, * java/lang/natStringBuilder.cc: Removed. 2008-09-04 Andrew John Hughes <gnu_andrew@member.fsf.org> * Makefile.in, * classpath/configure: Regenerated. * gnu/gcj/util/natDebug.cc, * gnu/gcj/xlib/natColormap.cc, * gnu/gcj/xlib/natDisplay.cc, * gnu/gcj/xlib/natDrawable.cc, * gnu/gcj/xlib/natFont.cc, * gnu/gcj/xlib/natWMSizeHints.cc, * gnu/gcj/xlib/natWindow.cc, * gnu/gcj/xlib/natXImage.cc: Add :: prefix to namespaces. * java/io/CharArrayWriter.h, * java/lang/StringBuffer.h: Regenerated using patched gjavah. * java/lang/natStringBuffer.cc: Fix naming of append(jint). * java/sql/Timestamp.h: Regenerated using patched gjavah. * jni.cc: Rename p to functions to match change in GNU Classpath. * scripts/makemake.tcl: Switch gnu.java.math to BC compilation. * sources.am: Regenerated. 2008-08-21 Andrew John Hughes <gnu_andrew@member.fsf.org> * Makefile.in: Updated location of Configuration.java. * classpath/lib/gnu/java/locale/LocaleData.class: Regenerated. 2008-08-18 Andrew John Hughes <gnu_andrew@member.fsf.org> * Makefile.in: Updated with new Java files. * classpath/configure: Regenerated. * classpath/tools/Makefile.am: Add missing use of GJDOC_EX so --disable-gjdoc works. * classpath/tools/Makefile.in: Regenerated. 2008-08-15 Matthias Klose <doko@ubuntu.com> Import GNU Classpath (libgcj-import-20080811). * Regenerate class and header files. * Regenerate auto* files. * configure.ac: Don't pass --with-fastjar to classpath, substitute new dummy value in classpath/gnu/classpath/Configuration.java.in, pass --disable-gjdoc to classpath. * scripts/makemake.tcl: * sources.am: Regenerated. * java/lang/AbstractStringBuffer.java, gnu/java/lang/VMCPStringBuilder.java: New, copied from classpath, use System instead of VMSystem. * java/lang/StringBuffer.java: Merge from classpath. * java/lang/ClassLoader.java: Merge from classpath. * gcj/javaprims.h: Update class definitions, remove _Jv_jobjectRefType, jobjectRefType definitions. libjava/classpath/ChangeLog.gcj: 2008-10-21 Matthias Klose <doko@ubuntu.com> * classpath/tools/gnu/classpath/tools/gjdoc/expr/Java*: Move from ... * classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/ ... here. * Update .class files. 2008-10-21 Andrew John Hughes <gnu_andrew@member.fsf.org> * tools/Makefile.am: Always generate parser in the srcdir. 2008-10-21 Matthias Klose <doko@ubuntu.com> * doc/Makefile.am (MAINTAINERCLEANFILES): Add gjdoc.1. * doc/Makefile.in: Regenerate. 2008-10-20 Matthias Klose <doko@ubuntu.com> * configure.ac: Don't check for working java, if not configured with --enable-java-maintainer-mode. * configure: Regenerate. 2008-10-19 Matthias Klose <doko@ubuntu.com> * m4/ac_prog_java.m4: Revert previous change. * m4/ac_prog_javac.m4: Apply it here. * configure: Regenerate. 2008-10-19 Matthias Klose <doko@ubuntu.com> * m4/ac_prog_javac.m4: Don't check for working javac, if not configured with --enable-java-maintainer-mode. * configure: Regenerate. * Makefile.in, */Makefile.in: Regenerate. 2008-09-30 Matthias Klose <doko@ubuntu.com> * m4/ac_prog_antlr.m4: Check for cantlr binary as well. 2008-09-29 Matthias Klose <doko@ubuntu.com> * m4/ac_prog_antlr.m4: Check for antlr binary as well. 2008-09-28 Matthias Klose <doko@ubuntu.com> * PR libgcj/37636. Revert: 2008-02-20 Matthias Klose <doko@ubuntu.com> * tools/Makefile.am ($(TOOLS_ZIP)): Revert part of previous change, Do copy resource files in JAVA_MAINTAINER_MODE only. * tools/Makefile.in: Regenerate. 2008-09-14 Matthias Klose <doko@ubuntu.com> * m4/ac_prog_javac_works.m4, m4/ac_prog_javac.m4, m4/acinclude.m4: Revert local changes. * m4/ac_prog_antlr.m4: Check for an runantlr binary. * tools/Makefile.am, lib/Makefile.am: Revert local changes (JCOMPILER). * tools/Makefile.am: Remove USE_JAVAC_FLAGS, pass ANTLR_JAR in GLIBJ_CLASSPATH. 2008-09-14 Matthias Klose <doko@ubuntu.com> Revert: Daniel Frampton <zyridium at zyridium.net> * AUTHORS: Added. * java/lang/InheritableThreadLocal.java, * java/lang/Thread.java, * java/lang/ThreadLocal.java: Modified to use java.lang.ThreadLocalMap. * java/lang/ThreadLocalMap.java: New cheaper ThreadLocal-specific WeakHashMap. 2008-08-15 Matthias Klose <doko@ubuntu.com> * m4/acinclude.m4 (CLASSPATH_JAVAC_MEM_CHECK): Remove unknown args for javac. libjava/classpath/ChangeLog: 2008-10-20 Andrew John Hughes <gnu_andrew@member.fsf.org> * m4/ac_prog_antlr.m4: Remove redundant checks. * tools/Makefile.am: Use gjdoc_gendir when calling antlr. 2008-10-15 Andrew John Hughes <gnu_andrew@member.fsf.org> * configure.ac: Remove superfluous AC_PROG_JAVA call. 2008-10-06 Andrew John Hughes <gnu_andrew@member.fsf.org> * m4/ac_prog_antlr: Check for cantlr as well. * tools/Makefile.am: Only build GJDoc parser when both CREATE_GJDOC and CREATE_GJDOC_PARSER are on. 2008-10-02 Andrew John Hughes <gnu_andrew@member.fsf.org> * configure.ac: Add regen-gjdoc-parser option, and separate antlr tests. * m4/ac_prog_antlr.m4: Turn single test into AC_LIB_ANTLR and AC_PROG_ANTLR. * m4/ac_prog_java.m4: Quote tests. * tools/Makefile.am: Support CREATE_GJDOC_PARSER option. 2008-09-14 Andrew John Hughes <gnu_andrew@member.fsf.org> * examples/Makefile.am: Check lib directly as well as glibj.zip for boot classes. * m4/acinclude.m4: Only require the class files to be built to allow the tools and examples to be built, not the installation of glibj.zip. * tools/Makefile.am: Check lib directly as well as glibj.zip for boot classes. 2008-09-13 Andrew John Hughes <gnu_andrew@member.fsf.org> * examples/Makefile.am, * lib/Makefile.am: Add GCJ rules. * m4/ac_prog_javac.m4: Check whether JAVAC is gcj. * m4/ac_prog_javac_works.m4: Add GCJ rules. * m4/acinclude.m4: Don't bother checking for -J if using GCJ. * tools/Makefile.am: Add GCJ rules. 2007-08-23 Daniel Frampton <zyridium@zyridium.net> * AUTHORS: Added. * java/lang/InheritableThreadLocal.java, * java/lang/Thread.java, * java/lang/ThreadLocal.java: Modified to use java.lang.ThreadLocalMap. * java/lang/ThreadLocalMap.java: New cheaper ThreadLocal-specific WeakHashMap. 2008-02-07 Ian Rogers <ian.rogers@manchester.ac.uk> * java/util/zip/ZipEntry.java: Use byte fields instead of integer fields, store the time as well as the DOS time and don't retain a global Calendar instance. (setDOSTime(int)): Set KNOWN_DOSTIME instead of KNOWN_TIME, and unset KNOWN_TIME. (getDOSTime()): Compute DOS time from UNIX time only when needed. (clone()): Provide cloning via the ZipEntry constructor where possible. (setTime(long)): Don't compute DOS time at this point. (getCalendar()): Removed. 2008-09-09 Andrew John Hughes <gnu_andrew@member.fsf.org> * tools/gnu/classpath/tools/getopt/Parser.java: (setHeader(String)): Make synchronized. (setFooter(String)): Likewise. * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java, (reset()): Make synchronized. (name(Class)): Likewise. 2008-09-04 Robert Schuster <robertschuster@fsfe.org> * gnu/java/nio/charset/ByteDecodeLoopHelper: (arrayDecodeLoop): Added new break label, escape to that label. * gnu/java/nio/charset/ByteEncodeLoopHelper: (arrayDecodeLoop): Added new break label, escape to that label. 2008-09-04 Robert Schuster <robertschuster@fsfe.org> * java/text/DecimalFormat.java: (scanFix): Use 'i + 1' when looking at following character. (scanNegativePattern): Dito. 2008-09-02 Andrew John Hughes <gnu_andrew@member.fsf.org> * tools/gnu/classpath/tools/javah/ClassWrapper.java: (makeVtable()): Populate methodNameMap. (printMethods(CniPrintStream)): Always use pre-populated methodNameMap for bridge targets. 2008-09-01 Mario Torre <neugens@aicas.com> * gnu/java/awt/peer/x/XImage.java (XImageProducer): remove @Override annotation to allow compilation on javac < 1.6 and ecj < 3.4. 2008-09-01 Mario Torre <neugens@aicas.com> * gnu/java/awt/peer/x/XGraphicsDevice.java (getDisplay): fix to support new Escher API. * gnu/java/awt/peer/x/XImage.java (getSource): method implemented. * gnu/java/awt/peer/x/XImage.java (XImageProducer): implement ImageProducer for getSource. 2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org> * gnu/java/util/regex/BacktrackStack.java, * gnu/java/util/regex/CharIndexed.java, * gnu/java/util/regex/CharIndexedCharArray.java, * gnu/java/util/regex/CharIndexedCharSequence.java, * gnu/java/util/regex/CharIndexedInputStream.java, * gnu/java/util/regex/CharIndexedString.java, * gnu/java/util/regex/CharIndexedStringBuffer.java, * gnu/java/util/regex/RE.java, * gnu/java/util/regex/REException.java, * gnu/java/util/regex/REFilterInputStream.java, * gnu/java/util/regex/REMatch.java, * gnu/java/util/regex/REMatchEnumeration.java, * gnu/java/util/regex/RESyntax.java, * gnu/java/util/regex/REToken.java, * gnu/java/util/regex/RETokenAny.java, * gnu/java/util/regex/RETokenBackRef.java, * gnu/java/util/regex/RETokenChar.java, * gnu/java/util/regex/RETokenEnd.java, * gnu/java/util/regex/RETokenEndOfPreviousMatch.java, * gnu/java/util/regex/RETokenEndSub.java, * gnu/java/util/regex/RETokenIndependent.java, * gnu/java/util/regex/RETokenLookAhead.java, * gnu/java/util/regex/RETokenLookBehind.java, * gnu/java/util/regex/RETokenNamedProperty.java, * gnu/java/util/regex/RETokenOneOf.java, * gnu/java/util/regex/RETokenPOSIX.java, * gnu/java/util/regex/RETokenRange.java, * gnu/java/util/regex/RETokenRepeated.java, * gnu/java/util/regex/RETokenStart.java, * gnu/java/util/regex/RETokenWordBoundary.java, * gnu/java/util/regex/UncheckedRE.java: Fix indentation. 2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org> * gnu/java/util/regex/RETokenStart.java: (getMaximumLength()): Add Override annotation. (matchThis(CharIndexed, REMatch)): Likewise. (returnsFixedLengthMatches()): Renamed from returnsFixedLengthmatches and added Override annotation. (findFixedLengthMatches(CharIndexed,REMatch,int)): Add Override annotation. (dump(CPStringBuilder)): Likewise. * gnu/javax/print/ipp/IppRequest.java: (RequestWriter.writeOperationAttributes(AttributeSet)): Throw exception, don't just create and drop it. * javax/management/MBeanServerPermission.java: (MBeanServerPermissionCollection.add(Permission)): Compare against individual Strings not the entire array, and store the result of replace. * javax/swing/text/html/StyleSheet.java: (setBaseFontSize(size)): Store result of trim(). 2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org> * javax/tools/FileObject.java: (openReader(boolean)): Document new parameter. 2008-03-27 Michael Franz <mvfranz@gmail.com> PR classpath/35690: * javax/tools/FileObject.java: (toUri()): Fix case from toURI. (openReader(boolean)): Add missing boolean argument. 2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org> PR classpath/35487: * gnu/javax/management/Server.java: (beans): Change to ConcurrentHashMap. (defaultDomain): Make final. (outer): Likewise. (LazyListenersHolder): Added to wrap listeners, also now a ConcurrentHashMap, providing lazy initialisation safely. (sequenceNumber): Documented. (getBean(ObjectName)): Remove redundant cast. (addNotificationListener(ObjectName,NotificationListener, NotificationFilter,Object)): Remove map initialisation and use holder. (getObjectInstance(ObjectName)): Remove redundant cast. (registerMBean(Object,ObjectName)): Add bean atomically. (removeNotificationListener(ObjectName,NotificationListener)): Simplified. (removeNotificationListener(ObjectName,NotificationListener, NotificationFilter,Object)): Likewise. (notify(ObjectName,String)): Documented. 2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org> * gnu/javax/management/Server.java: Genericised. 2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org> * gnu/javax/management/Translator.java: Genericised. 2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org> * javax/management/DefaultLoaderRepository.java, * javax/management/JMX.java, * javax/management/MBeanAttributeInfo.java, * javax/management/MBeanConstructorInfo.java, * javax/management/MBeanOperationInfo.java, * javax/management/MBeanServerDelegate.java: Fix warnings due to generics. 2008-08-25 Andrew John Hughes <gnu_andrew@member.fsf.org> * javax/management/MBeanPermission.java, * javax/management/MBeanServerDelegate.java, * javax/management/MBeanServerFactory.java, * javax/management/MBeanServerInvocationHandler.java, * javax/management/MBeanServerPermission.java: Fix warnings due to use of non-generic collections. 2008-08-25 Mario Torre <neugens@aicas.com> * gnu/javax/rmi/CORBA/RmiUtilities.java (readValue): check if sender is null to avoid NPE. 2008-08-22 Mario Torre <neugens@aicas.com> * gnu/CORBA/OrbFunctional.java (set_parameters): Fix NullPointerException checking when param is null. 2008-08-23 Andrew John Hughes <gnu_andrew@member.fsf.org> * java/util/regex/Matcher.java: (reset()): Reset append position so we don't try and append to the end of the old input. 2008-08-22 Andrew John Hughes <gnu_andrew@member.fsf.org> PR classpath/32028: * m4/acinclude.m4: Also allow versions of GJDoc from 0.8* on, as CVS is 0.8.0-pre. 2008-08-21 Andrew John Hughes <gnu_andrew@member.fsf.org> PR classpath/32028: * m4/acinclude.m4: (CLASSPATH_WITH_GJDOC): Ensure version 0.7.9 is being used. 2008-08-20 Andrew John Hughes <gnu_andrew@member.fsf.org> * tools/Makefile.am: Add taglets subdirectory to list of excluded paths when GJDoc is not compiled. 2008-08-19 David P Grove <groved@us.ibm.com> * scripts/check_jni_methods.sh.in: Fix build issue on AIX by splitting generation of method list. 2008-08-18 Andrew John Hughes <gnu_andrew@member.fsf.org> * native/jni/gstreamer-peer/gst_native_pipeline.c: (get_free_space(int)): Use #else not #elif when there is no condition. 2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org> PR classpath/31895: * java/text/DecimalFormat.java: (setCurrency(Currency)): Update prefixes and suffixes when currency changes. * java/text/DecimalFormatSymbols.java: (DecimalFormatSymbols(Locale)): Set locale earlier so it can be used by setCurrency(Currency). (setCurrency(Currency)): Set the symbol correctly using the locale of the instance. * java/util/Currency.java: Throw error instead of just printing a message. 2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org> * javax/activation/ActivationDataFlavor.java: Suppress warnings from public API. (mimeType): Made final. (representationClass): Added generic type and made final. (normalizeMimeTypeParameter(String,String)): Use CPStringBuilder. * javax/activation/CommandInfo.java: (verb): Made final. (className): Made final. * javax/activation/DataHandler.java: (dataSource): Made final. * javax/activation/FileDataSource.java: (file): Made final. * javax/activation/MailcapCommandMap.java: Use generics on collections and CPStringBuilder instead of StringBuffer. * javax/activation/MimeType.java: (toString()): Use CPStringBuilder. (getBaseType()): Likewise. * javax/activation/MimeTypeParameterList.java: Use generics on collections and CPStringBuilder instead of StringBuffer. * javax/activation/MimeTypeParseException.java: (MimeTypeParseException(String,String)): Use CPStringBuilder. * javax/activation/MimetypesFileTypeMap.java: Use generics on collections and CPStringBuilder instead of StringBuffer. * javax/activation/URLDataSource.java: (url): Made final. 2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org> * gnu/javax/activation/viewers/ImageViewer.java, * gnu/javax/activation/viewers/TextEditor.java, * gnu/javax/activation/viewers/TextViewer.java, * javax/activation/ActivationDataFlavor.java, * javax/activation/CommandInfo.java, * javax/activation/CommandMap.java, * javax/activation/CommandObject.java, * javax/activation/DataContentHandler.java, * javax/activation/DataContentHandlerFactory.java, * javax/activation/DataHandler.java, * javax/activation/DataHandlerDataSource.java, * javax/activation/DataSource.java, * javax/activation/DataSourceDataContentHandler.java, * javax/activation/FileDataSource.java, * javax/activation/FileTypeMap.java, * javax/activation/MailcapCommandMap.java, * javax/activation/MimeType.java, * javax/activation/MimeTypeParameterList.java, * javax/activation/MimeTypeParseException.java, * javax/activation/MimetypesFileTypeMap.java, * javax/activation/ObjectDataContentHandler.java, * javax/activation/URLDataSource.java, * javax/activation/UnsupportedDataTypeException.java, * javax/activation/package.html, * resource/META-INF/mailcap.default, * resource/META-INF/mimetypes.default: Import GNU JAF CVS as of 17/08/2008. 2006-04-25 Archit Shah <ashah@redhat.com> * javax/activation/MimeTypeParameterList.java: Insert ';' separator before parameter list. 2005-06-29 Xavier Poinsard <xpoinsard@openpricer.com> * javax/activation/ObjectDataContentHandler.java: Fixed typo. 2005-05-28 Chris Burdess <dog@bluezoo.org> * javax/activation/CommandMap.java, * javax/activation/MailcapCommandMap.java: Updated to JAF 1.1. 2004-06-09 Chris Burdess <dog@bluezoo.org> * javax/activation/MailcapCommandMap.java: Fixed bug whereby x-java prefix was not attempted. 2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org> * AUTHORS: Added Laszlo. 2008-04-20 Andrew John Hughes <gnu_andrew@member.fsf.org> PR classpath/30436: * java/util/Scanner.java: Fix package to be java.util and correct indentation. 2007-07-25 Laszlo Andras Hernadi <e0327023@student.tuwien.ac.at> PR classpath/30436: * java/util/Scanner.java: Initial implementation. 2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org> * java/util/regex/Matcher.java: (toMatchResult()): Implemented. 2008-08-13 Joshua Sumali <jsumali@redhat.com> * doc/Makefile.am (gjdoc.pod): Generate gjdoc pod from cp-tools.texinfo instead of invoke.texi. Remove invoke.texi from EXTRA_DIST. * doc/invoke.texi: Removed and merged into ... * doc/cp-tools.texinfo: Here 2008-08-12 Robert Schuster <robertschuster@fsfe.org> * native/jni/java-net/local.c (local_bind): Removed fprintf call, fixed access outside of array bounds. From-SVN: r141271
Diffstat (limited to 'libjava')
-rw-r--r--libjava/ChangeLog218
-rw-r--r--libjava/HACKING3
-rw-r--r--libjava/Makefile.am16
-rw-r--r--libjava/Makefile.in309
-rw-r--r--libjava/classpath/AUTHORS2
-rw-r--r--libjava/classpath/ChangeLog3324
-rw-r--r--libjava/classpath/ChangeLog.gcj84
-rw-r--r--libjava/classpath/Makefile.am2
-rw-r--r--libjava/classpath/Makefile.in27
-rw-r--r--libjava/classpath/NEWS16
-rw-r--r--libjava/classpath/THANKYOU1
-rw-r--r--libjava/classpath/aclocal.m43
-rwxr-xr-xlibjava/classpath/configure1676
-rw-r--r--libjava/classpath/configure.ac142
-rw-r--r--libjava/classpath/doc/Makefile.am13
-rw-r--r--libjava/classpath/doc/Makefile.in38
-rw-r--r--libjava/classpath/doc/api/Makefile.in25
-rw-r--r--libjava/classpath/doc/cp-tools.texinfo1414
-rw-r--r--libjava/classpath/examples/Makefile.am20
-rw-r--r--libjava/classpath/examples/Makefile.in46
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java4
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java4
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java2
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java2
-rw-r--r--libjava/classpath/examples/gnu/classpath/examples/html/Demo.java2
-rw-r--r--libjava/classpath/external/Makefile.in25
-rw-r--r--libjava/classpath/external/jsr166/Makefile.in25
-rw-r--r--libjava/classpath/external/relaxngDatatype/Makefile.in25
-rw-r--r--libjava/classpath/external/sax/Makefile.in25
-rw-r--r--libjava/classpath/external/w3c_dom/Makefile.in25
-rw-r--r--libjava/classpath/gnu/CORBA/BigDecimalHelper.java6
-rw-r--r--libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java6
-rw-r--r--libjava/classpath/gnu/CORBA/CDR/Vio.java6
-rw-r--r--libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java4
-rw-r--r--libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java6
-rw-r--r--libjava/classpath/gnu/CORBA/GIOP/RequestHeader.java4
-rw-r--r--libjava/classpath/gnu/CORBA/GIOP/v1_0/ReplyHeader.java4
-rw-r--r--libjava/classpath/gnu/CORBA/GIOP/v1_0/RequestHeader.java6
-rw-r--r--libjava/classpath/gnu/CORBA/IOR.java16
-rw-r--r--libjava/classpath/gnu/CORBA/NamingService/NameParser.java8
-rw-r--r--libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java8
-rw-r--r--libjava/classpath/gnu/CORBA/OrbFunctional.java2
-rw-r--r--libjava/classpath/gnu/CORBA/Poa/gnuPOA.java4
-rw-r--r--libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java6
-rw-r--r--libjava/classpath/gnu/classpath/Configuration.java.in10
-rw-r--r--libjava/classpath/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java2
-rw-r--r--libjava/classpath/gnu/classpath/jdwp/util/Signature.java8
-rw-r--r--libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java8
-rw-r--r--libjava/classpath/gnu/java/awt/font/autofit/Edge.java4
-rw-r--r--libjava/classpath/gnu/java/awt/font/autofit/LatinBlue.java4
-rw-r--r--libjava/classpath/gnu/java/awt/font/autofit/Segment.java4
-rw-r--r--libjava/classpath/gnu/java/awt/font/autofit/Width.java4
-rw-r--r--libjava/classpath/gnu/java/awt/font/opentype/GlyphNamer.java4
-rw-r--r--libjava/classpath/gnu/java/awt/font/opentype/truetype/Fixed.java3
-rw-r--r--libjava/classpath/gnu/java/awt/font/opentype/truetype/Point.java4
-rw-r--r--libjava/classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java4
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java169
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/ActiveEdges.java4
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/RasterGraphics.java15
-rw-r--r--libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java1
-rw-r--r--libjava/classpath/gnu/java/awt/peer/GnomeDesktopPeer.java4
-rw-r--r--libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java4
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java6
-rw-r--r--libjava/classpath/gnu/java/awt/peer/gtk/GtkClipboard.java21
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/GLGraphics.java13
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XEventPump.java346
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java4
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java3
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java28
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java9
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java27
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XImage.java71
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XToolkit.java50
-rw-r--r--libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java37
-rw-r--r--libjava/classpath/gnu/java/lang/CPStringBuilder.java1161
-rw-r--r--libjava/classpath/gnu/java/lang/ClassHelper.java2
-rw-r--r--libjava/classpath/gnu/java/lang/reflect/GenericSignatureParser.java16
-rw-r--r--libjava/classpath/gnu/java/lang/reflect/TypeSignature.java6
-rw-r--r--libjava/classpath/gnu/java/math/GMP.java474
-rw-r--r--libjava/classpath/gnu/java/net/protocol/ftp/FTPConnection.java12
-rw-r--r--libjava/classpath/gnu/java/net/protocol/http/ChunkedInputStream.java4
-rw-r--r--libjava/classpath/gnu/java/net/protocol/http/Cookie.java4
-rw-r--r--libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java6
-rw-r--r--libjava/classpath/gnu/java/net/protocol/http/Headers.java4
-rw-r--r--libjava/classpath/gnu/java/net/protocol/http/LimitedLengthInputStream.java34
-rw-r--r--libjava/classpath/gnu/java/net/protocol/http/Request.java7
-rw-r--r--libjava/classpath/gnu/java/net/protocol/jar/Handler.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java6
-rw-r--r--libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java6
-rw-r--r--libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java6
-rw-r--r--libjava/classpath/gnu/java/rmi/server/RMIHashes.java4
-rw-r--r--libjava/classpath/gnu/java/security/Engine.java4
-rw-r--r--libjava/classpath/gnu/java/security/OID.java4
-rw-r--r--libjava/classpath/gnu/java/security/PolicyFile.java8
-rw-r--r--libjava/classpath/gnu/java/security/der/BitString.java4
-rw-r--r--libjava/classpath/gnu/java/security/der/DERReader.java8
-rw-r--r--libjava/classpath/gnu/java/security/hash/Whirlpool.java20
-rw-r--r--libjava/classpath/gnu/java/security/jce/sig/DSSParameters.java4
-rw-r--r--libjava/classpath/gnu/java/security/key/dss/DSSKey.java4
-rw-r--r--libjava/classpath/gnu/java/security/key/dss/DSSPrivateKey.java4
-rw-r--r--libjava/classpath/gnu/java/security/key/dss/DSSPublicKey.java4
-rw-r--r--libjava/classpath/gnu/java/security/key/rsa/GnuRSAKey.java4
-rw-r--r--libjava/classpath/gnu/java/security/key/rsa/GnuRSAPrivateKey.java4
-rw-r--r--libjava/classpath/gnu/java/security/key/rsa/GnuRSAPublicKey.java4
-rw-r--r--libjava/classpath/gnu/java/security/provider/X509CertificateFactory.java5
-rw-r--r--libjava/classpath/gnu/java/security/util/ByteArray.java6
-rw-r--r--libjava/classpath/gnu/java/security/util/Util.java10
-rw-r--r--libjava/classpath/gnu/java/security/x509/PolicyNodeImpl.java4
-rw-r--r--libjava/classpath/gnu/java/security/x509/Util.java10
-rw-r--r--libjava/classpath/gnu/java/security/x509/X500DistinguishedName.java10
-rw-r--r--libjava/classpath/gnu/java/text/AttributedFormatBuffer.java24
-rw-r--r--libjava/classpath/gnu/java/text/StringFormatBuffer.java2
-rw-r--r--libjava/classpath/gnu/java/util/Base64.java4
-rw-r--r--libjava/classpath/gnu/java/util/EmptyEnumeration.java18
-rw-r--r--libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java6
-rw-r--r--libjava/classpath/gnu/java/util/prefs/NodeWriter.java4
-rw-r--r--libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java99
-rw-r--r--libjava/classpath/gnu/java/util/regex/BacktrackStack.java128
-rw-r--r--libjava/classpath/gnu/java/util/regex/CharIndexed.java29
-rw-r--r--libjava/classpath/gnu/java/util/regex/CharIndexedCharArray.java12
-rw-r--r--libjava/classpath/gnu/java/util/regex/CharIndexedCharSequence.java130
-rw-r--r--libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java346
-rw-r--r--libjava/classpath/gnu/java/util/regex/CharIndexedString.java10
-rw-r--r--libjava/classpath/gnu/java/util/regex/CharIndexedStringBuffer.java10
-rw-r--r--libjava/classpath/gnu/java/util/regex/RE.java3166
-rw-r--r--libjava/classpath/gnu/java/util/regex/REException.java66
-rw-r--r--libjava/classpath/gnu/java/util/regex/REFilterInputStream.java97
-rw-r--r--libjava/classpath/gnu/java/util/regex/REMatch.java382
-rw-r--r--libjava/classpath/gnu/java/util/regex/REMatchEnumeration.java76
-rw-r--r--libjava/classpath/gnu/java/util/regex/RESyntax.java369
-rw-r--r--libjava/classpath/gnu/java/util/regex/REToken.java196
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenAny.java84
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenBackRef.java86
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenChar.java183
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenEnd.java125
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenEndOfPreviousMatch.java72
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenEndSub.java61
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenIndependent.java45
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenLookAhead.java50
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenLookBehind.java114
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java519
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenOneOf.java371
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenPOSIX.java174
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenRange.java105
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenRepeated.java975
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenStart.java194
-rw-r--r--libjava/classpath/gnu/java/util/regex/RETokenWordBoundary.java169
-rw-r--r--libjava/classpath/gnu/java/util/regex/UncheckedRE.java31
-rw-r--r--libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java138
-rw-r--r--libjava/classpath/gnu/javax/activation/viewers/TextEditor.java119
-rw-r--r--libjava/classpath/gnu/javax/activation/viewers/TextViewer.java81
-rw-r--r--libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java4
-rw-r--r--libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java4
-rw-r--r--libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java4
-rw-r--r--libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java4
-rw-r--r--libjava/classpath/gnu/javax/crypto/mode/BaseMode.java4
-rw-r--r--libjava/classpath/gnu/javax/crypto/pad/BasePad.java4
-rw-r--r--libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java4
-rw-r--r--libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java6
-rw-r--r--libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java6
-rw-r--r--libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java4
-rw-r--r--libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java12
-rw-r--r--libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java4
-rw-r--r--libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java4
-rw-r--r--libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java4
-rw-r--r--libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriter.java1
-rw-r--r--libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriterSpi.java2
-rw-r--r--libjava/classpath/gnu/javax/management/Server.java123
-rw-r--r--libjava/classpath/gnu/javax/management/Translator.java42
-rw-r--r--libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java8
-rw-r--r--libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java4
-rw-r--r--libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java4
-rw-r--r--libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java6
-rw-r--r--libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java4
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java6
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/Session.java6
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java4
-rw-r--r--libjava/classpath/gnu/javax/net/ssl/provider/Util.java10
-rw-r--r--libjava/classpath/gnu/javax/print/ipp/IppRequest.java2
-rw-r--r--libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java4
-rw-r--r--libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java11
-rw-r--r--libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java6
-rw-r--r--libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java6
-rw-r--r--libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java4
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java36
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java4
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java4
-rw-r--r--libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java10
-rw-r--r--libjava/classpath/gnu/xml/dom/DomAttr.java36
-rw-r--r--libjava/classpath/gnu/xml/dom/DomDocument.java8
-rw-r--r--libjava/classpath/gnu/xml/dom/DomElement.java26
-rw-r--r--libjava/classpath/gnu/xml/dom/DomEvent.java13
-rw-r--r--libjava/classpath/gnu/xml/dom/DomNode.java12
-rw-r--r--libjava/classpath/gnu/xml/dom/DomNsNode.java29
-rw-r--r--libjava/classpath/gnu/xml/dom/DomText.java4
-rw-r--r--libjava/classpath/gnu/xml/dom/ls/DomLSInput.java4
-rw-r--r--libjava/classpath/gnu/xml/dom/ls/DomLSParser.java2
-rw-r--r--libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java7
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeAttr.java4
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeCharacterData.java4
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocument.java7
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentType.java4
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeElement.java4
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntity.java4
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeNode.java6
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeNotation.java4
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java4
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeText.java4
-rw-r--r--libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java4
-rw-r--r--libjava/classpath/gnu/xml/stream/XMLEventImpl.java14
-rw-r--r--libjava/classpath/gnu/xml/stream/XMLParser.java28
-rw-r--r--libjava/classpath/gnu/xml/transform/AbstractNumberNode.java12
-rw-r--r--libjava/classpath/gnu/xml/transform/ApplyTemplatesNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/AttributeNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/Bindings.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/CallTemplateNode.java17
-rw-r--r--libjava/classpath/gnu/xml/transform/ChooseNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/CopyNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/CopyOfNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/ElementNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/ForEachNode.java58
-rw-r--r--libjava/classpath/gnu/xml/transform/IfNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/MessageNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/ParameterNode.java44
-rw-r--r--libjava/classpath/gnu/xml/transform/ProcessingInstructionNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/SortKey.java62
-rw-r--r--libjava/classpath/gnu/xml/transform/StreamSerializer.java18
-rw-r--r--libjava/classpath/gnu/xml/transform/Stylesheet.java129
-rw-r--r--libjava/classpath/gnu/xml/transform/Template.java6
-rw-r--r--libjava/classpath/gnu/xml/transform/TemplateNode.java2
-rw-r--r--libjava/classpath/gnu/xml/transform/TemplatesImpl.java17
-rw-r--r--libjava/classpath/gnu/xml/transform/TextNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/TransformerImpl.java6
-rw-r--r--libjava/classpath/gnu/xml/transform/TransformerOutputProperties.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/UnparsedEntityUriFunction.java19
-rw-r--r--libjava/classpath/gnu/xml/transform/ValueOfNode.java12
-rw-r--r--libjava/classpath/gnu/xml/transform/WhenNode.java4
-rw-r--r--libjava/classpath/gnu/xml/transform/XSLComparator.java108
-rw-r--r--libjava/classpath/gnu/xml/transform/XSLURIResolver.java9
-rw-r--r--libjava/classpath/gnu/xml/util/DoParse.java4
-rw-r--r--libjava/classpath/gnu/xml/util/XCat.java6
-rw-r--r--libjava/classpath/gnu/xml/util/XMLWriter.java6
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/EntitiesType.java4
-rw-r--r--libjava/classpath/gnu/xml/validation/datatype/NMTokensType.java4
-rw-r--r--libjava/classpath/gnu/xml/xpath/ArithmeticExpr.java4
-rw-r--r--libjava/classpath/gnu/xml/xpath/BooleanFunction.java4
-rw-r--r--libjava/classpath/gnu/xml/xpath/CeilingFunction.java4
-rw-r--r--libjava/classpath/gnu/xml/xpath/ConcatFunction.java22
-rw-r--r--libjava/classpath/gnu/xml/xpath/ContainsFunction.java5
-rw-r--r--libjava/classpath/gnu/xml/xpath/CountFunction.java7
-rw-r--r--libjava/classpath/gnu/xml/xpath/DocumentOrderComparator.java12
-rw-r--r--libjava/classpath/gnu/xml/xpath/EqualityExpr.java36
-rw-r--r--libjava/classpath/gnu/xml/xpath/Expr.java75
-rw-r--r--libjava/classpath/gnu/xml/xpath/FloorFunction.java5
-rw-r--r--libjava/classpath/gnu/xml/xpath/Function.java2
-rw-r--r--libjava/classpath/gnu/xml/xpath/FunctionCall.java26
-rw-r--r--libjava/classpath/gnu/xml/xpath/IdFunction.java7
-rw-r--r--libjava/classpath/gnu/xml/xpath/LangFunction.java5
-rw-r--r--libjava/classpath/gnu/xml/xpath/LocalNameFunction.java13
-rw-r--r--libjava/classpath/gnu/xml/xpath/NameFunction.java18
-rw-r--r--libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java13
-rw-r--r--libjava/classpath/gnu/xml/xpath/NormalizeSpaceFunction.java9
-rw-r--r--libjava/classpath/gnu/xml/xpath/NotFunction.java5
-rw-r--r--libjava/classpath/gnu/xml/xpath/NumberFunction.java5
-rw-r--r--libjava/classpath/gnu/xml/xpath/ParenthesizedExpr.java7
-rw-r--r--libjava/classpath/gnu/xml/xpath/Path.java2
-rw-r--r--libjava/classpath/gnu/xml/xpath/Root.java10
-rw-r--r--libjava/classpath/gnu/xml/xpath/RoundFunction.java5
-rw-r--r--libjava/classpath/gnu/xml/xpath/Selector.java48
-rw-r--r--libjava/classpath/gnu/xml/xpath/StartsWithFunction.java4
-rw-r--r--libjava/classpath/gnu/xml/xpath/Steps.java61
-rw-r--r--libjava/classpath/gnu/xml/xpath/StringFunction.java4
-rw-r--r--libjava/classpath/gnu/xml/xpath/StringLengthFunction.java3
-rw-r--r--libjava/classpath/gnu/xml/xpath/SubstringAfterFunction.java4
-rw-r--r--libjava/classpath/gnu/xml/xpath/SubstringBeforeFunction.java4
-rw-r--r--libjava/classpath/gnu/xml/xpath/SubstringFunction.java7
-rw-r--r--libjava/classpath/gnu/xml/xpath/SumFunction.java12
-rw-r--r--libjava/classpath/gnu/xml/xpath/TranslateFunction.java10
-rw-r--r--libjava/classpath/gnu/xml/xpath/UnionExpr.java21
-rw-r--r--libjava/classpath/gnu/xml/xpath/VariableReference.java4
-rw-r--r--libjava/classpath/gnu/xml/xpath/XPathParser.java88
-rw-r--r--libjava/classpath/gnu/xml/xpath/XPathParser.y62
-rw-r--r--libjava/classpath/gnu/xml/xpath/XPathTokenizer.java10
-rw-r--r--libjava/classpath/include/Makefile.am3
-rw-r--r--libjava/classpath/include/Makefile.in28
-rw-r--r--libjava/classpath/include/config.h.in12
-rw-r--r--libjava/classpath/include/gnu_java_math_GMP.h58
-rw-r--r--libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h16
-rw-r--r--libjava/classpath/include/java_io_VMFile.h1
-rw-r--r--libjava/classpath/include/java_net_VMNetworkInterface.h4
-rw-r--r--libjava/classpath/include/jni.h481
-rw-r--r--libjava/classpath/java/awt/AlphaComposite.java35
-rw-r--r--libjava/classpath/java/awt/Component.java6
-rw-r--r--libjava/classpath/java/awt/Container.java4
-rw-r--r--libjava/classpath/java/awt/JobAttributes.java4
-rw-r--r--libjava/classpath/java/awt/MouseInfo.java7
-rw-r--r--libjava/classpath/java/awt/datatransfer/MimeType.java4
-rw-r--r--libjava/classpath/java/awt/event/ActionEvent.java8
-rw-r--r--libjava/classpath/java/awt/event/ComponentEvent.java4
-rw-r--r--libjava/classpath/java/awt/event/HierarchyEvent.java4
-rw-r--r--libjava/classpath/java/awt/event/InputEvent.java3
-rw-r--r--libjava/classpath/java/awt/event/InputMethodEvent.java6
-rw-r--r--libjava/classpath/java/awt/event/KeyEvent.java3
-rw-r--r--libjava/classpath/java/awt/event/MouseEvent.java3
-rw-r--r--libjava/classpath/java/awt/event/WindowEvent.java4
-rw-r--r--libjava/classpath/java/awt/font/TextLayout.java4
-rw-r--r--libjava/classpath/java/awt/image/BandedSampleModel.java3
-rw-r--r--libjava/classpath/java/awt/image/BufferedImage.java6
-rw-r--r--libjava/classpath/java/awt/image/ColorModel.java4
-rw-r--r--libjava/classpath/java/awt/image/ComponentColorModel.java2
-rw-r--r--libjava/classpath/java/awt/image/DirectColorModel.java6
-rw-r--r--libjava/classpath/java/awt/image/MultiPixelPackedSampleModel.java3
-rw-r--r--libjava/classpath/java/awt/image/Raster.java4
-rw-r--r--libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java3
-rw-r--r--libjava/classpath/java/awt/image/WritableRaster.java23
-rw-r--r--libjava/classpath/java/beans/Statement.java4
-rw-r--r--libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java5
-rw-r--r--libjava/classpath/java/io/BufferedReader.java4
-rw-r--r--libjava/classpath/java/io/DataInputStream.java6
-rw-r--r--libjava/classpath/java/io/File.java6
-rw-r--r--libjava/classpath/java/io/StreamTokenizer.java8
-rw-r--r--libjava/classpath/java/lang/AbstractStringBuffer.java1037
-rw-r--r--libjava/classpath/java/lang/Byte.java18
-rw-r--r--libjava/classpath/java/lang/Character.java13
-rw-r--r--libjava/classpath/java/lang/ClassLoader.java2
-rw-r--r--libjava/classpath/java/lang/Double.java41
-rw-r--r--libjava/classpath/java/lang/Enum.java5
-rw-r--r--libjava/classpath/java/lang/Float.java42
-rw-r--r--libjava/classpath/java/lang/InheritableThreadLocal.java24
-rw-r--r--libjava/classpath/java/lang/Integer.java126
-rw-r--r--libjava/classpath/java/lang/Long.java146
-rw-r--r--libjava/classpath/java/lang/Short.java19
-rw-r--r--libjava/classpath/java/lang/String.java3
-rw-r--r--libjava/classpath/java/lang/StringBuffer.java414
-rw-r--r--libjava/classpath/java/lang/StringBuilder.java505
-rw-r--r--libjava/classpath/java/lang/Thread.java16
-rw-r--r--libjava/classpath/java/lang/ThreadLocal.java39
-rw-r--r--libjava/classpath/java/lang/ThreadLocalMap.java325
-rw-r--r--libjava/classpath/java/lang/Throwable.java6
-rw-r--r--libjava/classpath/java/lang/reflect/AccessibleObject.java51
-rw-r--r--libjava/classpath/java/lang/reflect/Constructor.java (renamed from libjava/classpath/vm/reference/java/lang/reflect/Constructor.java)153
-rw-r--r--libjava/classpath/java/lang/reflect/Field.java (renamed from libjava/classpath/vm/reference/java/lang/reflect/Field.java)234
-rw-r--r--libjava/classpath/java/lang/reflect/Method.java (renamed from libjava/classpath/vm/reference/java/lang/reflect/Method.java)196
-rw-r--r--libjava/classpath/java/lang/reflect/Modifier.java24
-rw-r--r--libjava/classpath/java/lang/reflect/Proxy.java6
-rw-r--r--libjava/classpath/java/math/BigDecimal.java12
-rw-r--r--libjava/classpath/java/math/BigInteger.java566
-rw-r--r--libjava/classpath/java/net/Inet4Address.java4
-rw-r--r--libjava/classpath/java/net/Inet6Address.java4
-rw-r--r--libjava/classpath/java/net/NetworkInterface.java54
-rw-r--r--libjava/classpath/java/net/SocketPermission.java4
-rw-r--r--libjava/classpath/java/net/URI.java20
-rw-r--r--libjava/classpath/java/net/URLClassLoader.java6
-rw-r--r--libjava/classpath/java/net/URLDecoder.java4
-rw-r--r--libjava/classpath/java/net/URLEncoder.java4
-rw-r--r--libjava/classpath/java/net/URLStreamHandler.java4
-rw-r--r--libjava/classpath/java/nio/Buffer.java18
-rw-r--r--libjava/classpath/java/nio/ByteBuffer.java16
-rw-r--r--libjava/classpath/java/nio/ByteBufferImpl.java18
-rw-r--r--libjava/classpath/java/nio/CharBuffer.java18
-rw-r--r--libjava/classpath/java/nio/CharBufferImpl.java12
-rw-r--r--libjava/classpath/java/nio/CharSequenceBuffer.java9
-rw-r--r--libjava/classpath/java/nio/CharViewBufferImpl.java20
-rw-r--r--libjava/classpath/java/nio/DirectByteBufferImpl.java6
-rw-r--r--libjava/classpath/java/nio/DoubleBuffer.java15
-rw-r--r--libjava/classpath/java/nio/DoubleBufferImpl.java18
-rw-r--r--libjava/classpath/java/nio/DoubleViewBufferImpl.java18
-rw-r--r--libjava/classpath/java/nio/FloatBuffer.java15
-rw-r--r--libjava/classpath/java/nio/FloatBufferImpl.java9
-rw-r--r--libjava/classpath/java/nio/FloatViewBufferImpl.java18
-rw-r--r--libjava/classpath/java/nio/IntBuffer.java18
-rw-r--r--libjava/classpath/java/nio/IntBufferImpl.java6
-rw-r--r--libjava/classpath/java/nio/IntViewBufferImpl.java18
-rw-r--r--libjava/classpath/java/nio/LongBuffer.java15
-rw-r--r--libjava/classpath/java/nio/LongBufferImpl.java18
-rw-r--r--libjava/classpath/java/nio/LongViewBufferImpl.java18
-rw-r--r--libjava/classpath/java/nio/MappedByteBuffer.java8
-rw-r--r--libjava/classpath/java/nio/MappedByteBufferImpl.java5
-rw-r--r--libjava/classpath/java/nio/ShortBuffer.java16
-rw-r--r--libjava/classpath/java/nio/ShortBufferImpl.java18
-rw-r--r--libjava/classpath/java/nio/ShortViewBufferImpl.java18
-rw-r--r--libjava/classpath/java/nio/channels/FileLock.java5
-rw-r--r--libjava/classpath/java/rmi/activation/Activatable.java6
-rw-r--r--libjava/classpath/java/rmi/dgc/VMID.java4
-rw-r--r--libjava/classpath/java/security/AlgorithmParameterGenerator.java4
-rw-r--r--libjava/classpath/java/security/AlgorithmParameters.java4
-rw-r--r--libjava/classpath/java/security/CodeSource.java4
-rw-r--r--libjava/classpath/java/security/KeyFactory.java4
-rw-r--r--libjava/classpath/java/security/KeyPairGenerator.java4
-rw-r--r--libjava/classpath/java/security/MessageDigest.java8
-rw-r--r--libjava/classpath/java/security/Permission.java4
-rw-r--r--libjava/classpath/java/security/PermissionCollection.java4
-rw-r--r--libjava/classpath/java/security/ProtectionDomain.java4
-rw-r--r--libjava/classpath/java/security/SecureRandom.java3
-rw-r--r--libjava/classpath/java/security/Signature.java4
-rw-r--r--libjava/classpath/java/security/cert/CertPath.java4
-rw-r--r--libjava/classpath/java/security/cert/CertPathBuilder.java4
-rw-r--r--libjava/classpath/java/security/cert/CertPathValidator.java4
-rw-r--r--libjava/classpath/java/security/cert/CertStore.java4
-rw-r--r--libjava/classpath/java/security/cert/PKIXBuilderParameters.java4
-rw-r--r--libjava/classpath/java/security/cert/PKIXCertPathBuilderResult.java4
-rw-r--r--libjava/classpath/java/security/cert/PolicyQualifierInfo.java6
-rw-r--r--libjava/classpath/java/security/cert/X509CRLSelector.java3
-rw-r--r--libjava/classpath/java/security/cert/X509CertSelector.java3
-rw-r--r--libjava/classpath/java/text/AttributedString.java4
-rw-r--r--libjava/classpath/java/text/ChoiceFormat.java10
-rw-r--r--libjava/classpath/java/text/CollationElementIterator.java4
-rw-r--r--libjava/classpath/java/text/Collator.java2
-rw-r--r--libjava/classpath/java/text/DateFormat.java90
-rw-r--r--libjava/classpath/java/text/DateFormatSymbols.java98
-rw-r--r--libjava/classpath/java/text/DecimalFormat.java53
-rw-r--r--libjava/classpath/java/text/DecimalFormatSymbols.java4
-rw-r--r--libjava/classpath/java/text/Format.java2
-rw-r--r--libjava/classpath/java/text/MessageFormat.java8
-rw-r--r--libjava/classpath/java/text/NumberFormat.java2
-rw-r--r--libjava/classpath/java/text/RuleBasedCollator.java2
-rw-r--r--libjava/classpath/java/text/SimpleDateFormat.java30
-rw-r--r--libjava/classpath/java/util/AbstractCollection.java4
-rw-r--r--libjava/classpath/java/util/AbstractMap.java4
-rw-r--r--libjava/classpath/java/util/ArrayList.java21
-rw-r--r--libjava/classpath/java/util/Arrays.java24
-rw-r--r--libjava/classpath/java/util/BitSet.java5
-rw-r--r--libjava/classpath/java/util/Calendar.java36
-rw-r--r--libjava/classpath/java/util/Collections.java4
-rw-r--r--libjava/classpath/java/util/Currency.java2
-rw-r--r--libjava/classpath/java/util/Date.java4
-rw-r--r--libjava/classpath/java/util/Formatter.java28
-rw-r--r--libjava/classpath/java/util/Hashtable.java4
-rw-r--r--libjava/classpath/java/util/Locale.java7
-rw-r--r--libjava/classpath/java/util/Properties.java42
-rw-r--r--libjava/classpath/java/util/PropertyResourceBundle.java19
-rw-r--r--libjava/classpath/java/util/ResourceBundle.java70
-rw-r--r--libjava/classpath/java/util/Scanner.java2223
-rw-r--r--libjava/classpath/java/util/Stack.java6
-rw-r--r--libjava/classpath/java/util/TimeZone.java6
-rw-r--r--libjava/classpath/java/util/TreeMap.java6
-rw-r--r--libjava/classpath/java/util/Vector.java43
-rw-r--r--libjava/classpath/java/util/logging/FileHandler.java4
-rw-r--r--libjava/classpath/java/util/logging/Logger.java4
-rw-r--r--libjava/classpath/java/util/logging/SimpleFormatter.java4
-rw-r--r--libjava/classpath/java/util/logging/XMLFormatter.java20
-rw-r--r--libjava/classpath/java/util/prefs/AbstractPreferences.java55
-rw-r--r--libjava/classpath/java/util/regex/Matcher.java289
-rw-r--r--libjava/classpath/java/util/regex/Pattern.java6
-rw-r--r--libjava/classpath/java/util/regex/PatternSyntaxException.java4
-rw-r--r--libjava/classpath/java/util/zip/Deflater.java2
-rw-r--r--libjava/classpath/java/util/zip/Inflater.java2
-rw-r--r--libjava/classpath/java/util/zip/ZipEntry.java166
-rw-r--r--libjava/classpath/java/util/zip/ZipFile.java2
-rw-r--r--libjava/classpath/javax/accessibility/AccessibleRelationSet.java4
-rw-r--r--libjava/classpath/javax/accessibility/AccessibleStateSet.java4
-rw-r--r--libjava/classpath/javax/activation/ActivationDataFlavor.java161
-rw-r--r--libjava/classpath/javax/activation/CommandInfo.java117
-rw-r--r--libjava/classpath/javax/activation/CommandMap.java212
-rw-r--r--libjava/classpath/javax/activation/CommandObject.java62
-rw-r--r--libjava/classpath/javax/activation/DataContentHandler.java85
-rw-r--r--libjava/classpath/javax/activation/DataContentHandlerFactory.java56
-rw-r--r--libjava/classpath/javax/activation/DataHandler.java482
-rw-r--r--libjava/classpath/javax/activation/DataHandlerDataSource.java84
-rw-r--r--libjava/classpath/javax/activation/DataSource.java76
-rw-r--r--libjava/classpath/javax/activation/DataSourceDataContentHandler.java126
-rw-r--r--libjava/classpath/javax/activation/FileDataSource.java123
-rw-r--r--libjava/classpath/javax/activation/FileTypeMap.java (renamed from libjava/classpath/gnu/java/util/prefs/EventDispatcher.java)109
-rw-r--r--libjava/classpath/javax/activation/MailcapCommandMap.java804
-rw-r--r--libjava/classpath/javax/activation/MimeType.java293
-rw-r--r--libjava/classpath/javax/activation/MimeTypeParameterList.java336
-rw-r--r--libjava/classpath/javax/activation/MimeTypeParseException.java84
-rw-r--r--libjava/classpath/javax/activation/MimetypesFileTypeMap.java440
-rw-r--r--libjava/classpath/javax/activation/ObjectDataContentHandler.java128
-rw-r--r--libjava/classpath/javax/activation/URLDataSource.java138
-rw-r--r--libjava/classpath/javax/activation/UnsupportedDataTypeException.java70
-rw-r--r--libjava/classpath/javax/activation/package.html44
-rw-r--r--libjava/classpath/javax/imageio/ImageIO.java1
-rw-r--r--libjava/classpath/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java4
-rw-r--r--libjava/classpath/javax/imageio/plugins/jpeg/JPEGQTable.java4
-rw-r--r--libjava/classpath/javax/imageio/stream/ImageInputStreamImpl.java4
-rw-r--r--libjava/classpath/javax/management/DefaultLoaderRepository.java4
-rw-r--r--libjava/classpath/javax/management/JMX.java2
-rw-r--r--libjava/classpath/javax/management/MBeanAttributeInfo.java4
-rw-r--r--libjava/classpath/javax/management/MBeanConstructorInfo.java4
-rw-r--r--libjava/classpath/javax/management/MBeanOperationInfo.java4
-rw-r--r--libjava/classpath/javax/management/MBeanPermission.java32
-rw-r--r--libjava/classpath/javax/management/MBeanServerDelegate.java12
-rw-r--r--libjava/classpath/javax/management/MBeanServerFactory.java7
-rw-r--r--libjava/classpath/javax/management/MBeanServerInvocationHandler.java4
-rw-r--r--libjava/classpath/javax/management/MBeanServerPermission.java18
-rw-r--r--libjava/classpath/javax/management/ObjectName.java33
-rw-r--r--libjava/classpath/javax/management/StandardMBean.java24
-rw-r--r--libjava/classpath/javax/management/openmbean/ArrayType.java23
-rw-r--r--libjava/classpath/javax/management/openmbean/CompositeDataSupport.java11
-rw-r--r--libjava/classpath/javax/management/openmbean/CompositeType.java6
-rw-r--r--libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java23
-rw-r--r--libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java8
-rw-r--r--libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java23
-rw-r--r--libjava/classpath/javax/management/openmbean/SimpleType.java2
-rw-r--r--libjava/classpath/javax/management/openmbean/TabularDataSupport.java31
-rw-r--r--libjava/classpath/javax/management/openmbean/TabularType.java5
-rw-r--r--libjava/classpath/javax/management/remote/rmi/RMIConnection.java10
-rw-r--r--libjava/classpath/javax/naming/BinaryRefAddr.java4
-rw-r--r--libjava/classpath/javax/naming/CompositeName.java6
-rw-r--r--libjava/classpath/javax/naming/CompoundName.java6
-rw-r--r--libjava/classpath/javax/naming/NamingException.java4
-rw-r--r--libjava/classpath/javax/naming/spi/NamingManager.java4
-rw-r--r--libjava/classpath/javax/security/auth/x500/X500Principal.java10
-rw-r--r--libjava/classpath/javax/security/sasl/SaslException.java4
-rw-r--r--libjava/classpath/javax/sound/sampled/AudioFormat.java4
-rw-r--r--libjava/classpath/javax/sound/sampled/CompoundControl.java4
-rw-r--r--libjava/classpath/javax/sound/sampled/DataLine.java4
-rw-r--r--libjava/classpath/javax/swing/AbstractButton.java4
-rw-r--r--libjava/classpath/javax/swing/JButton.java4
-rw-r--r--libjava/classpath/javax/swing/JComboBox.java4
-rw-r--r--libjava/classpath/javax/swing/JComponent.java4
-rw-r--r--libjava/classpath/javax/swing/JDesktopPane.java4
-rw-r--r--libjava/classpath/javax/swing/JFileChooser.java4
-rw-r--r--libjava/classpath/javax/swing/JFrame.java4
-rw-r--r--libjava/classpath/javax/swing/JLabel.java4
-rw-r--r--libjava/classpath/javax/swing/JList.java4
-rw-r--r--libjava/classpath/javax/swing/JMenuBar.java4
-rw-r--r--libjava/classpath/javax/swing/JPopupMenu.java4
-rw-r--r--libjava/classpath/javax/swing/JProgressBar.java4
-rw-r--r--libjava/classpath/javax/swing/JScrollBar.java4
-rw-r--r--libjava/classpath/javax/swing/JSlider.java4
-rw-r--r--libjava/classpath/javax/swing/JSplitPane.java4
-rw-r--r--libjava/classpath/javax/swing/JTabbedPane.java4
-rw-r--r--libjava/classpath/javax/swing/JToolBar.java4
-rw-r--r--libjava/classpath/javax/swing/JToolTip.java4
-rw-r--r--libjava/classpath/javax/swing/UIManager.java4
-rw-r--r--libjava/classpath/javax/swing/event/EventListenerList.java4
-rw-r--r--libjava/classpath/javax/swing/table/AbstractTableModel.java4
-rw-r--r--libjava/classpath/javax/swing/text/AbstractDocument.java4
-rw-r--r--libjava/classpath/javax/swing/text/DefaultEditorKit.java4
-rw-r--r--libjava/classpath/javax/swing/text/DefaultStyledDocument.java6
-rw-r--r--libjava/classpath/javax/swing/text/JTextComponent.java4
-rw-r--r--libjava/classpath/javax/swing/text/MaskFormatter.java6
-rw-r--r--libjava/classpath/javax/swing/text/TabSet.java4
-rw-r--r--libjava/classpath/javax/swing/text/html/CSSParser.java6
-rw-r--r--libjava/classpath/javax/swing/text/html/HTMLWriter.java6
-rw-r--r--libjava/classpath/javax/swing/text/html/StyleSheet.java39
-rw-r--r--libjava/classpath/javax/swing/text/html/ViewAttributeSet.java6
-rw-r--r--libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java2
-rw-r--r--libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java4
-rw-r--r--libjava/classpath/javax/tools/FileObject.java6
-rw-r--r--libjava/classpath/javax/xml/datatype/DatatypeFactory.java8
-rw-r--r--libjava/classpath/javax/xml/namespace/NamespaceContext.java1
-rw-r--r--libjava/classpath/javax/xml/namespace/QName.java4
-rw-r--r--libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java2
-rw-r--r--libjava/classpath/javax/xml/parsers/SAXParserFactory.java2
-rw-r--r--libjava/classpath/javax/xml/stream/XMLEventFactory.java7
-rw-r--r--libjava/classpath/javax/xml/stream/XMLEventReader.java1
-rw-r--r--libjava/classpath/javax/xml/stream/XMLInputFactory.java2
-rw-r--r--libjava/classpath/javax/xml/stream/XMLOutputFactory.java2
-rw-r--r--libjava/classpath/javax/xml/stream/events/DTD.java2
-rw-r--r--libjava/classpath/javax/xml/stream/events/EndElement.java1
-rw-r--r--libjava/classpath/javax/xml/stream/events/StartElement.java2
-rw-r--r--libjava/classpath/javax/xml/transform/TransformerException.java5
-rw-r--r--libjava/classpath/javax/xml/transform/TransformerFactory.java4
-rw-r--r--libjava/classpath/javax/xml/validation/SchemaFactory.java4
-rw-r--r--libjava/classpath/javax/xml/xpath/XPathFactory.java2
-rw-r--r--libjava/classpath/javax/xml/xpath/XPathFunction.java1
-rw-r--r--libjava/classpath/lib/Makefile.am40
-rw-r--r--libjava/classpath/lib/Makefile.in51
-rw-r--r--libjava/classpath/lib/copy-vmresources.sh.in4
-rw-r--r--libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.classbin3255 -> 3290 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.classbin4549 -> 4570 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/CDR/Vio.classbin21547 -> 21568 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.classbin984 -> 984 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.classbin886 -> 886 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.classbin672 -> 672 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.classbin4831 -> 4852 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.classbin6691 -> 6719 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.classbin1442 -> 1463 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.classbin2441 -> 2469 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.classbin3122 -> 3150 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.classbin2363 -> 2391 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.classbin2149 -> 2149 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.classbin2861 -> 2896 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/IOR.classbin8940 -> 8975 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.classbin9789 -> 9817 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.classbin4814 -> 4849 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/OrbFunctional.classbin24797 -> 24801 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.classbin1993 -> 1993 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.classbin25950 -> 25978 bytes
-rw-r--r--libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.classbin14508 -> 14536 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/Configuration.classbin857 -> 908 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/SystemProperties.classbin2655 -> 2659 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.classbin9298 -> 9301 bytes
-rw-r--r--libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.classbin2661 -> 2696 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.classbin2812 -> 2812 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.classbin2787 -> 2787 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.classbin9903 -> 9927 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/autofit/Edge.classbin1636 -> 1799 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/autofit/LatinBlue.classbin999 -> 1023 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.classbin1926 -> 1962 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/autofit/Width.classbin823 -> 847 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.classbin21906 -> 21934 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.classbin2303 -> 2338 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Point.classbin3821 -> 3845 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.classbin25434 -> 25469 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.classbin29260 -> 31188 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/ActiveEdges.classbin2545 -> 2575 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.classbin940 -> 1388 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.classbin6616 -> 6616 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/GnomeDesktopPeer.classbin2612 -> 2670 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.classbin2336 -> 2394 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.classbin1705 -> 1705 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.classbin2341 -> 2341 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.classbin9446 -> 9467 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.classbin6419 -> 6440 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/CPStringBuilder.classbin0 -> 11746 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/ClassHelper.classbin3642 -> 3660 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/VMCPStringBuilder.classbin0 -> 1998 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.classbin1366 -> 1366 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.classbin5172 -> 5172 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.classbin3079 -> 3109 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.classbin3877 -> 4039 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.classbin1659 -> 1659 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.classbin1892 -> 1892 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.classbin1856 -> 1856 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/locale/LocaleData.classbin6225 -> 7402 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/math/GMP.classbin0 -> 7517 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.classbin16992 -> 17027 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.classbin2676 -> 2728 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.classbin1894 -> 1918 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.classbin1482 -> 1482 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.classbin3583 -> 3583 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.classbin10243 -> 10447 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.classbin571 -> 571 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/http/Headers.classbin6192 -> 6210 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.classbin2288 -> 2288 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/http/Request.classbin15685 -> 15842 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.classbin3908 -> 3936 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.classbin2171 -> 2171 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.classbin2180 -> 2180 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.classbin1553 -> 1553 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.classbin1276 -> 1304 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.classbin5117 -> 5145 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.classbin2179 -> 2207 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/Engine.classbin5326 -> 5442 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/OID.classbin6174 -> 6202 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/PolicyFile$1.classbin2136 -> 2136 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/PolicyFile.classbin12896 -> 12910 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/der/BitString.classbin3755 -> 3776 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/der/DERReader.classbin6823 -> 6844 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/hash/Whirlpool.classbin10870 -> 10870 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.classbin4369 -> 4390 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.classbin2829 -> 2853 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.classbin3030 -> 3081 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.classbin3030 -> 3081 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.classbin2347 -> 2365 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.classbin4618 -> 4669 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.classbin2694 -> 2745 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.classbin5056 -> 5077 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/util/ByteArray.classbin2137 -> 2165 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/util/Util.classbin7620 -> 7655 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.classbin4472 -> 4514 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/x509/Util.classbin2815 -> 2843 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.classbin11414 -> 11442 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.classbin4193 -> 4282 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/text/StringFormatBuffer.classbin2445 -> 2445 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/Base64.classbin3647 -> 3675 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/EmptyEnumeration.classbin795 -> 1171 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.classbin1330 -> 0 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.classbin5363 -> 5319 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.classbin5937 -> 5958 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.classbin2702 -> 2243 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.classbin911 -> 911 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.classbin1487 -> 1487 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.classbin508 -> 508 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.classbin2168 -> 2180 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.classbin3586 -> 3614 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.classbin458 -> 458 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.classbin488 -> 488 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.classbin654 -> 654 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.classbin516 -> 516 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.classbin515 -> 515 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.classbin549 -> 549 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.classbin632 -> 632 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RE.classbin29677 -> 31303 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/REException.classbin2106 -> 2142 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.classbin2226 -> 2238 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/REMatch.classbin4207 -> 4247 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.classbin2007 -> 2121 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RESyntax.classbin5039 -> 4835 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/REToken.classbin4189 -> 4242 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenAny.classbin1863 -> 1895 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.classbin1555 -> 1610 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenChar.classbin2825 -> 2873 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.classbin2560 -> 2612 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.classbin1604 -> 1640 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.classbin1668 -> 1696 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.classbin1615 -> 1654 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.classbin1537 -> 1580 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.classbin1065 -> 1079 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.classbin2393 -> 2432 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.classbin849 -> 849 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.classbin566 -> 566 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.classbin1489 -> 1489 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.classbin1256 -> 1256 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.classbin1014 -> 1014 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.classbin886 -> 886 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.classbin800 -> 800 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.classbin6999 -> 7043 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.classbin6662 -> 7250 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.classbin3820 -> 3903 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenRange.classbin2109 -> 2149 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.classbin2420 -> 2428 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.classbin675 -> 675 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.classbin1725 -> 0 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.classbin1138 -> 1138 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.classbin768 -> 768 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.classbin9461 -> 9414 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenStart.classbin2229 -> 2273 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.classbin2115 -> 2163 bytes
-rw-r--r--libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.classbin1096 -> 1096 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/activation/viewers/ImageViewer.classbin0 -> 2745 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/activation/viewers/TextEditor.classbin0 -> 2359 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/activation/viewers/TextViewer.classbin0 -> 1413 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.classbin1878 -> 1899 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.classbin4395 -> 4423 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.classbin4564 -> 4592 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.classbin1782 -> 1803 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.classbin4880 -> 4901 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.classbin2343 -> 2371 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.classbin2534 -> 2548 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.classbin5083 -> 5104 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.classbin5266 -> 5287 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.classbin3394 -> 3429 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.classbin11564 -> 11585 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.classbin18659 -> 18687 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.classbin15844 -> 15872 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.classbin2658 -> 2672 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.classbin3379 -> 3350 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.classbin3398 -> 3426 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Server$LazyListenersHolder.classbin0 -> 783 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.classbin898 -> 898 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.classbin1219 -> 1291 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.classbin1282 -> 1282 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Server.classbin24212 -> 25137 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/management/Translator.classbin13799 -> 14179 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.classbin7252 -> 7280 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.classbin908 -> 908 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.classbin3635 -> 3663 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.classbin1743 -> 1771 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.classbin1733 -> 1761 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.classbin1068 -> 1068 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.classbin4953 -> 4981 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.classbin9533 -> 9561 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.classbin1871 -> 1892 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/Session.classbin5167 -> 5167 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.classbin985 -> 1006 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.classbin692 -> 692 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.classbin725 -> 725 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.classbin773 -> 773 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.classbin7423 -> 7451 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.classbin9273 -> 9275 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.classbin1632 -> 1660 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.classbin863 -> 863 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.classbin822 -> 822 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.classbin18745 -> 18786 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.classbin10086 -> 10107 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.classbin3414 -> 3435 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.classbin3894 -> 3908 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.classbin1932 -> 1932 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.classbin10489 -> 10524 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.classbin4383 -> 4418 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.classbin3855 -> 3883 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.classbin859 -> 859 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.classbin1742 -> 1742 bytes
-rw-r--r--libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.classbin20727 -> 20865 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomAttr.classbin5209 -> 5609 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomDocument.classbin23877 -> 23858 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomElement.classbin8155 -> 8505 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.classbin1909 -> 1909 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.classbin1038 -> 1038 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomEvent.classbin2406 -> 2427 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.classbin459 -> 459 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.classbin1009 -> 1009 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.classbin3023 -> 3023 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.classbin1048 -> 1048 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNode.classbin23045 -> 23073 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomNsNode.classbin2725 -> 3022 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/DomText.classbin3741 -> 3762 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.classbin2644 -> 2665 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.classbin10784 -> 10785 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.classbin12990 -> 13086 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.classbin1884 -> 1905 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.classbin2367 -> 2388 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.classbin10110 -> 10138 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.classbin1475 -> 1496 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.classbin3362 -> 3383 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.classbin1358 -> 1379 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.classbin9218 -> 9239 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.classbin1060 -> 1081 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.classbin1110 -> 1131 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.classbin2414 -> 2435 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.classbin2237 -> 2265 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.classbin3112 -> 3140 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.classbin617 -> 617 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.classbin2414 -> 2442 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.classbin897 -> 897 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.classbin787 -> 787 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.classbin595 -> 595 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.classbin5914 -> 5914 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.classbin1059 -> 1059 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.classbin623 -> 623 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.classbin556 -> 556 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.classbin6256 -> 6256 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.classbin988 -> 988 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/stream/XMLParser.classbin67890 -> 68200 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.classbin6009 -> 6058 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.classbin5369 -> 5404 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/AttributeNode.classbin4870 -> 4905 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/Bindings.classbin5240 -> 5268 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.classbin4096 -> 4150 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/ChooseNode.classbin1521 -> 1542 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/CopyNode.classbin3782 -> 3810 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/CopyOfNode.classbin4070 -> 4105 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/ElementNode.classbin6372 -> 6407 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/ForEachNode.classbin3796 -> 4173 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/IfNode.classbin2314 -> 2349 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/MessageNode.classbin2468 -> 2496 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/ParameterNode.classbin4111 -> 4441 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.classbin2568 -> 2596 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/SortKey.classbin3065 -> 3780 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/StreamSerializer.classbin17799 -> 17834 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/Stylesheet.classbin38670 -> 40444 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/Template.classbin5603 -> 5674 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/TemplateNode.classbin2764 -> 2829 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.classbin1466 -> 2075 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/TextNode.classbin2653 -> 2681 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/TransformerImpl.classbin17191 -> 17219 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.classbin3339 -> 3367 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.classbin2875 -> 3170 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/ValueOfNode.classbin3965 -> 3959 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/WhenNode.classbin2325 -> 2360 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/XSLComparator.classbin2207 -> 2419 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.classbin7205 -> 7357 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.classbin1301 -> 1301 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/util/DoParse.classbin5058 -> 5093 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/util/XCat$Catalog.classbin5842 -> 5863 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.classbin372 -> 372 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/util/XCat$Loader.classbin10223 -> 10223 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/util/XCat.classbin7607 -> 7635 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/util/XMLWriter.classbin26506 -> 26527 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.classbin2090 -> 2111 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.classbin2500 -> 2521 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.classbin2522 -> 2557 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.classbin1655 -> 1803 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.classbin1681 -> 1829 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.classbin2181 -> 2439 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.classbin1971 -> 2119 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/CountFunction.classbin1592 -> 1740 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.classbin694 -> 793 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.classbin4075 -> 4116 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.classbin939 -> 1147 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/Expr.classbin8763 -> 9641 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/FloorFunction.classbin1674 -> 1822 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/Function.classbin156 -> 220 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/FunctionCall.classbin3750 -> 4176 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/IdFunction.classbin1789 -> 1937 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/LangFunction.classbin2382 -> 2530 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.classbin1830 -> 2069 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/NameFunction.classbin1797 -> 2036 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.classbin1848 -> 2087 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.classbin2184 -> 2360 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/NotFunction.classbin1639 -> 1787 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/NumberFunction.classbin1651 -> 1799 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.classbin1627 -> 1815 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/Path.classbin356 -> 483 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/Root.classbin1538 -> 1818 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/RoundFunction.classbin1759 -> 1907 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/Selector.classbin8831 -> 9882 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.classbin1982 -> 2130 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/Steps.classbin4349 -> 5062 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/StringFunction.classbin1678 -> 1826 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.classbin1853 -> 2001 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.classbin2036 -> 2184 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.classbin2011 -> 2159 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.classbin2340 -> 2488 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/SumFunction.classbin2040 -> 2261 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.classbin2543 -> 2673 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/UnionExpr.classbin2105 -> 2414 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/VariableReference.classbin2043 -> 2071 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.classbin7787 -> 7787 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.classbin863 -> 863 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.classbin669 -> 669 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.classbin589 -> 589 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.classbin952 -> 952 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.classbin1018 -> 1018 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.classbin1520 -> 1520 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.classbin774 -> 774 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.classbin1024 -> 1024 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.classbin5389 -> 5389 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathParser.classbin15438 -> 16014 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.classbin796 -> 796 bytes
-rw-r--r--libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.classbin7255 -> 7353 bytes
-rw-r--r--libjava/classpath/lib/java/awt/AlphaComposite.classbin3106 -> 3353 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.classbin1391 -> 1391 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.classbin1188 -> 1188 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.classbin7344 -> 7344 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$BltBufferStrategy.classbin3283 -> 3283 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.classbin3475 -> 3475 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.classbin1500 -> 1500 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Component.classbin58484 -> 58512 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.classbin1195 -> 1195 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.classbin2043 -> 2043 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.classbin822 -> 822 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.classbin810 -> 810 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.classbin822 -> 822 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.classbin810 -> 810 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container$GfxVisitor.classbin421 -> 421 bytes
-rw-r--r--libjava/classpath/lib/java/awt/Container.classbin26128 -> 26149 bytes
-rw-r--r--libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.classbin812 -> 812 bytes
-rw-r--r--libjava/classpath/lib/java/awt/JobAttributes$DestinationType.classbin726 -> 726 bytes
-rw-r--r--libjava/classpath/lib/java/awt/JobAttributes$DialogType.classbin768 -> 768 bytes
-rw-r--r--libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.classbin903 -> 903 bytes
-rw-r--r--libjava/classpath/lib/java/awt/JobAttributes$SidesType.classbin833 -> 833 bytes
-rw-r--r--libjava/classpath/lib/java/awt/JobAttributes.classbin9010 -> 9052 bytes
-rw-r--r--libjava/classpath/lib/java/awt/MouseInfo.classbin1744 -> 1748 bytes
-rw-r--r--libjava/classpath/lib/java/awt/datatransfer/MimeType.classbin4348 -> 4511 bytes
-rw-r--r--libjava/classpath/lib/java/awt/event/ActionEvent.classbin2338 -> 2366 bytes
-rw-r--r--libjava/classpath/lib/java/awt/event/ComponentEvent.classbin1641 -> 1669 bytes
-rw-r--r--libjava/classpath/lib/java/awt/event/HierarchyEvent.classbin2402 -> 2437 bytes
-rw-r--r--libjava/classpath/lib/java/awt/event/InputEvent.classbin2833 -> 2854 bytes
-rw-r--r--libjava/classpath/lib/java/awt/event/InputMethodEvent.classbin3854 -> 3896 bytes
-rw-r--r--libjava/classpath/lib/java/awt/event/KeyEvent.classbin15180 -> 15215 bytes
-rw-r--r--libjava/classpath/lib/java/awt/event/MouseEvent.classbin4526 -> 4568 bytes
-rw-r--r--libjava/classpath/lib/java/awt/event/WindowEvent.classbin2974 -> 3009 bytes
-rw-r--r--libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.classbin1005 -> 1005 bytes
-rw-r--r--libjava/classpath/lib/java/awt/font/TextLayout$Run.classbin946 -> 946 bytes
-rw-r--r--libjava/classpath/lib/java/awt/font/TextLayout.classbin23678 -> 23699 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/BandedSampleModel.classbin10990 -> 11018 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/BufferedImage$1.classbin2308 -> 2308 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/BufferedImage.classbin14708 -> 14750 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/ColorModel.classbin9110 -> 9110 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/ComponentColorModel.classbin7615 -> 7615 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/DirectColorModel.classbin6947 -> 6947 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.classbin7107 -> 7135 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/Raster.classbin11880 -> 11915 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.classbin7186 -> 7214 bytes
-rw-r--r--libjava/classpath/lib/java/awt/image/WritableRaster.classbin7103 -> 7062 bytes
-rw-r--r--libjava/classpath/lib/java/beans/Statement.classbin6040 -> 6061 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.classbin2015 -> 2093 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.classbin1471 -> 1471 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.classbin837 -> 837 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.classbin1014 -> 1014 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.classbin1163 -> 1163 bytes
-rw-r--r--libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.classbin12828 -> 12828 bytes
-rw-r--r--libjava/classpath/lib/java/io/BufferedReader.classbin5085 -> 5137 bytes
-rw-r--r--libjava/classpath/lib/java/io/DataInputStream.classbin5487 -> 5539 bytes
-rw-r--r--libjava/classpath/lib/java/io/StreamTokenizer.classbin6870 -> 6891 bytes
-rw-r--r--libjava/classpath/lib/java/lang/AbstractStringBuffer.classbin0 -> 10215 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Byte.classbin3077 -> 3059 bytes
-rw-r--r--libjava/classpath/lib/java/lang/ClassLoader.classbin12663 -> 12611 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Double.classbin4644 -> 4784 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Enum.classbin3093 -> 3131 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Float.classbin4589 -> 4728 bytes
-rw-r--r--libjava/classpath/lib/java/lang/InheritableThreadLocal.classbin1623 -> 1070 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Integer.classbin6788 -> 7295 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Long.classbin6360 -> 7040 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Short.classbin3282 -> 3265 bytes
-rw-r--r--libjava/classpath/lib/java/lang/String.classbin10265 -> 10376 bytes
-rw-r--r--libjava/classpath/lib/java/lang/StringBuffer.classbin10783 -> 11403 bytes
-rw-r--r--libjava/classpath/lib/java/lang/StringBuilder.classbin10292 -> 9439 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Thread$State.classbin1242 -> 1242 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Thread.classbin10274 -> 10278 bytes
-rw-r--r--libjava/classpath/lib/java/lang/ThreadLocal.classbin1704 -> 1861 bytes
-rw-r--r--libjava/classpath/lib/java/lang/ThreadLocalMap$Entry.classbin0 -> 710 bytes
-rw-r--r--libjava/classpath/lib/java/lang/ThreadLocalMap.classbin0 -> 3328 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Throwable$StaticData.classbin598 -> 598 bytes
-rw-r--r--libjava/classpath/lib/java/lang/Throwable.classbin4466 -> 4629 bytes
-rw-r--r--libjava/classpath/lib/java/lang/reflect/AccessibleObject.classbin2646 -> 2646 bytes
-rw-r--r--libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.classbin11611 -> 11774 bytes
-rw-r--r--libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.classbin4144 -> 4144 bytes
-rw-r--r--libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.classbin3655 -> 3655 bytes
-rw-r--r--libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.classbin997 -> 997 bytes
-rw-r--r--libjava/classpath/lib/java/lang/reflect/Proxy.classbin4462 -> 4462 bytes
-rw-r--r--libjava/classpath/lib/java/math/BigDecimal.classbin18062 -> 18075 bytes
-rw-r--r--libjava/classpath/lib/java/math/BigInteger.classbin30694 -> 35161 bytes
-rw-r--r--libjava/classpath/lib/java/net/Inet4Address.classbin2735 -> 2763 bytes
-rw-r--r--libjava/classpath/lib/java/net/Inet6Address.classbin5032 -> 5060 bytes
-rw-r--r--libjava/classpath/lib/java/net/SocketPermission.classbin6565 -> 6586 bytes
-rw-r--r--libjava/classpath/lib/java/net/URI.classbin16406 -> 16539 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLClassLoader$1.classbin1197 -> 1197 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLClassLoader$2.classbin1099 -> 1099 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLClassLoader.classbin14494 -> 14679 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLDecoder.classbin1781 -> 1809 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLEncoder.classbin1846 -> 1870 bytes
-rw-r--r--libjava/classpath/lib/java/net/URLStreamHandler.classbin6389 -> 6417 bytes
-rw-r--r--libjava/classpath/lib/java/nio/Buffer.classbin2875 -> 2898 bytes
-rw-r--r--libjava/classpath/lib/java/nio/ByteBuffer.classbin5629 -> 5758 bytes
-rw-r--r--libjava/classpath/lib/java/nio/ByteBufferImpl.classbin7873 -> 7902 bytes
-rw-r--r--libjava/classpath/lib/java/nio/CharBuffer.classbin5855 -> 5983 bytes
-rw-r--r--libjava/classpath/lib/java/nio/CharBufferImpl.classbin3360 -> 3350 bytes
-rw-r--r--libjava/classpath/lib/java/nio/CharSequenceBuffer.classbin2357 -> 2365 bytes
-rw-r--r--libjava/classpath/lib/java/nio/CharViewBufferImpl.classbin3286 -> 3305 bytes
-rw-r--r--libjava/classpath/lib/java/nio/DirectByteBufferImpl.classbin8554 -> 8560 bytes
-rw-r--r--libjava/classpath/lib/java/nio/DoubleBuffer.classbin3594 -> 3714 bytes
-rw-r--r--libjava/classpath/lib/java/nio/DoubleBufferImpl.classbin2345 -> 2374 bytes
-rw-r--r--libjava/classpath/lib/java/nio/DoubleViewBufferImpl.classbin2973 -> 2987 bytes
-rw-r--r--libjava/classpath/lib/java/nio/FloatBuffer.classbin3548 -> 3668 bytes
-rw-r--r--libjava/classpath/lib/java/nio/FloatBufferImpl.classbin2338 -> 2343 bytes
-rw-r--r--libjava/classpath/lib/java/nio/FloatViewBufferImpl.classbin2961 -> 2972 bytes
-rw-r--r--libjava/classpath/lib/java/nio/IntBuffer.classbin3421 -> 3549 bytes
-rw-r--r--libjava/classpath/lib/java/nio/IntBufferImpl.classbin2314 -> 2319 bytes
-rw-r--r--libjava/classpath/lib/java/nio/IntViewBufferImpl.classbin2931 -> 2942 bytes
-rw-r--r--libjava/classpath/lib/java/nio/LongBuffer.classbin3498 -> 3618 bytes
-rw-r--r--libjava/classpath/lib/java/nio/LongBufferImpl.classbin2331 -> 2360 bytes
-rw-r--r--libjava/classpath/lib/java/nio/LongViewBufferImpl.classbin2953 -> 2964 bytes
-rw-r--r--libjava/classpath/lib/java/nio/MappedByteBuffer.classbin1121 -> 1212 bytes
-rw-r--r--libjava/classpath/lib/java/nio/MappedByteBufferImpl.classbin8190 -> 8199 bytes
-rw-r--r--libjava/classpath/lib/java/nio/ShortBuffer.classbin3485 -> 3605 bytes
-rw-r--r--libjava/classpath/lib/java/nio/ShortBufferImpl.classbin2338 -> 2367 bytes
-rw-r--r--libjava/classpath/lib/java/nio/ShortViewBufferImpl.classbin2961 -> 2972 bytes
-rw-r--r--libjava/classpath/lib/java/nio/channels/FileLock.classbin1781 -> 1809 bytes
-rw-r--r--libjava/classpath/lib/java/rmi/activation/Activatable.classbin9002 -> 9002 bytes
-rw-r--r--libjava/classpath/lib/java/rmi/dgc/VMID.classbin1907 -> 1928 bytes
-rw-r--r--libjava/classpath/lib/java/security/AlgorithmParameterGenerator.classbin4329 -> 4353 bytes
-rw-r--r--libjava/classpath/lib/java/security/AlgorithmParameters.classbin4550 -> 4574 bytes
-rw-r--r--libjava/classpath/lib/java/security/CodeSource.classbin5314 -> 5349 bytes
-rw-r--r--libjava/classpath/lib/java/security/KeyFactory.classbin4252 -> 4276 bytes
-rw-r--r--libjava/classpath/lib/java/security/KeyPairGenerator.classbin4574 -> 4695 bytes
-rw-r--r--libjava/classpath/lib/java/security/MessageDigest.classbin5360 -> 5428 bytes
-rw-r--r--libjava/classpath/lib/java/security/Permission.classbin1736 -> 1764 bytes
-rw-r--r--libjava/classpath/lib/java/security/PermissionCollection.classbin1550 -> 1585 bytes
-rw-r--r--libjava/classpath/lib/java/security/ProtectionDomain.classbin3502 -> 3530 bytes
-rw-r--r--libjava/classpath/lib/java/security/SecureRandom.classbin7756 -> 7780 bytes
-rw-r--r--libjava/classpath/lib/java/security/Signature.classbin7379 -> 7500 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.classbin1562 -> 1562 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/CertPath.classbin2633 -> 2675 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/CertPathBuilder.classbin3671 -> 3695 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/CertPathValidator$1.classbin718 -> 718 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/CertPathValidator.classbin3933 -> 3957 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/CertStore$1.classbin678 -> 678 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/CertStore.classbin4728 -> 4752 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.classbin1961 -> 1982 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.classbin1549 -> 1570 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.classbin2039 -> 2039 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/X509CRLSelector.classbin6627 -> 6655 bytes
-rw-r--r--libjava/classpath/lib/java/security/cert/X509CertSelector.classbin19449 -> 19491 bytes
-rw-r--r--libjava/classpath/lib/java/text/AttributedString$AttributeRange.classbin689 -> 689 bytes
-rw-r--r--libjava/classpath/lib/java/text/AttributedString.classbin5897 -> 5918 bytes
-rw-r--r--libjava/classpath/lib/java/text/ChoiceFormat.classbin5767 -> 5857 bytes
-rw-r--r--libjava/classpath/lib/java/text/CollationElementIterator.classbin5534 -> 5555 bytes
-rw-r--r--libjava/classpath/lib/java/text/DateFormat$Field.classbin3600 -> 3080 bytes
-rw-r--r--libjava/classpath/lib/java/text/DateFormat.classbin10043 -> 9760 bytes
-rw-r--r--libjava/classpath/lib/java/text/DateFormatSymbols.classbin7635 -> 10132 bytes
-rw-r--r--libjava/classpath/lib/java/text/DecimalFormat.classbin24317 -> 25204 bytes
-rw-r--r--libjava/classpath/lib/java/text/DecimalFormatSymbols.classbin7835 -> 7828 bytes
-rw-r--r--libjava/classpath/lib/java/text/Format.classbin2009 -> 2009 bytes
-rw-r--r--libjava/classpath/lib/java/text/MessageFormat.classbin11646 -> 11683 bytes
-rw-r--r--libjava/classpath/lib/java/text/NumberFormat.classbin9372 -> 9372 bytes
-rw-r--r--libjava/classpath/lib/java/text/RuleBasedCollator.classbin10217 -> 10140 bytes
-rw-r--r--libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.classbin1496 -> 1526 bytes
-rw-r--r--libjava/classpath/lib/java/text/SimpleDateFormat.classbin18114 -> 18295 bytes
-rw-r--r--libjava/classpath/lib/java/util/AbstractCollection.classbin4777 -> 4805 bytes
-rw-r--r--libjava/classpath/lib/java/util/AbstractMap$1.classbin1129 -> 1129 bytes
-rw-r--r--libjava/classpath/lib/java/util/AbstractMap$2.classbin1304 -> 1304 bytes
-rw-r--r--libjava/classpath/lib/java/util/AbstractMap$3.classbin1154 -> 1154 bytes
-rw-r--r--libjava/classpath/lib/java/util/AbstractMap$4.classbin1306 -> 1306 bytes
-rw-r--r--libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.classbin2522 -> 2522 bytes
-rw-r--r--libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.classbin1835 -> 1835 bytes
-rw-r--r--libjava/classpath/lib/java/util/AbstractMap.classbin5306 -> 5336 bytes
-rw-r--r--libjava/classpath/lib/java/util/ArrayList.classbin7908 -> 7979 bytes
-rw-r--r--libjava/classpath/lib/java/util/Arrays$ArrayList.classbin2662 -> 2662 bytes
-rw-r--r--libjava/classpath/lib/java/util/Arrays.classbin32336 -> 32540 bytes
-rw-r--r--libjava/classpath/lib/java/util/BitSet.classbin6968 -> 6996 bytes
-rw-r--r--libjava/classpath/lib/java/util/Calendar.classbin17231 -> 18150 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.classbin2229 -> 2229 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$1.classbin1138 -> 1138 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$2.classbin1152 -> 1152 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$3.classbin1545 -> 1545 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$4.classbin1640 -> 1640 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$5.classbin1708 -> 1708 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$6.classbin1553 -> 1553 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$7.classbin1844 -> 1844 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$8.classbin889 -> 889 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$9.classbin930 -> 930 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CheckedCollection.classbin3874 -> 3874 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CheckedIterator.classbin1272 -> 1272 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CheckedList.classbin3930 -> 3930 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CheckedListIterator.classbin2091 -> 2091 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.classbin1810 -> 1810 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CheckedMap.classbin5166 -> 5166 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.classbin985 -> 985 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CheckedSet.classbin1318 -> 1318 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CheckedSortedMap.classbin2368 -> 2368 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CheckedSortedSet.classbin2174 -> 2174 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$CopiesList.classbin2693 -> 2721 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$EmptyList.classbin2671 -> 2671 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$EmptyMap.classbin2143 -> 2143 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$EmptySet.classbin2422 -> 2422 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$LIFOQueue.classbin2279 -> 2279 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$MapSet.classbin2571 -> 2571 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$ReverseComparator.classbin1024 -> 1024 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SingletonList.classbin3063 -> 3063 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SingletonMap.classbin2981 -> 2981 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SingletonSet.classbin2438 -> 2438 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SynchronizedCollection.classbin4000 -> 4000 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SynchronizedIterator.classbin1366 -> 1366 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SynchronizedList.classbin3903 -> 3903 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.classbin2061 -> 2061 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SynchronizedMap.classbin4779 -> 4779 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.classbin1488 -> 1488 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SynchronizedSet.classbin1583 -> 1583 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.classbin2637 -> 2637 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.classbin2603 -> 2603 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.classbin3127 -> 3127 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.classbin1182 -> 1182 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableList.classbin3204 -> 3204 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.classbin1776 -> 1776 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.classbin2223 -> 2223 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.classbin2441 -> 2441 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableMap.classbin3757 -> 3757 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.classbin910 -> 910 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableSet.classbin1226 -> 1226 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.classbin2131 -> 2131 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.classbin2058 -> 2058 bytes
-rw-r--r--libjava/classpath/lib/java/util/Collections.classbin21874 -> 21874 bytes
-rw-r--r--libjava/classpath/lib/java/util/Currency.classbin5341 -> 5270 bytes
-rw-r--r--libjava/classpath/lib/java/util/Date.classbin11003 -> 11055 bytes
-rw-r--r--libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.classbin1177 -> 1177 bytes
-rw-r--r--libjava/classpath/lib/java/util/Formatter.classbin17740 -> 17840 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$1.classbin1239 -> 1239 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$2.classbin950 -> 950 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$3.classbin1574 -> 1574 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.classbin1555 -> 1555 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$EntryIterator.classbin1941 -> 1941 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$HashEntry.classbin1103 -> 1103 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.classbin1384 -> 1384 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$KeyIterator.classbin1236 -> 1236 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.classbin1392 -> 1392 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable$ValueIterator.classbin1244 -> 1244 bytes
-rw-r--r--libjava/classpath/lib/java/util/Hashtable.classbin10538 -> 10601 bytes
-rw-r--r--libjava/classpath/lib/java/util/Locale.classbin13806 -> 13834 bytes
-rw-r--r--libjava/classpath/lib/java/util/Properties.classbin12141 -> 12344 bytes
-rw-r--r--libjava/classpath/lib/java/util/PropertyResourceBundle.classbin1762 -> 1934 bytes
-rw-r--r--libjava/classpath/lib/java/util/ResourceBundle$1.classbin722 -> 1040 bytes
-rw-r--r--libjava/classpath/lib/java/util/ResourceBundle$BundleKey.classbin1438 -> 2090 bytes
-rw-r--r--libjava/classpath/lib/java/util/ResourceBundle.classbin6232 -> 7134 bytes
-rw-r--r--libjava/classpath/lib/java/util/Scanner.classbin0 -> 22985 bytes
-rw-r--r--libjava/classpath/lib/java/util/Stack.classbin1548 -> 1548 bytes
-rw-r--r--libjava/classpath/lib/java/util/TimeZone$1.classbin1026 -> 1026 bytes
-rw-r--r--libjava/classpath/lib/java/util/TimeZone.classbin31294 -> 31322 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$1.classbin1557 -> 1557 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$2.classbin1383 -> 1383 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$3.classbin1087 -> 1087 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$4.classbin1612 -> 1612 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$5.classbin1310 -> 1310 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$6.classbin1401 -> 1401 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$7.classbin961 -> 961 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$DescendingMap.classbin8707 -> 8743 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$DescendingSet.classbin6891 -> 6921 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$EntrySet.classbin2058 -> 2058 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$KeySet.classbin1717 -> 1717 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$NavigableEntrySet.classbin6005 -> 6005 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$NavigableKeySet.classbin4003 -> 4003 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$Node.classbin1025 -> 1025 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$SubMap$EntrySet.classbin2608 -> 2608 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$SubMap$KeySet.classbin2118 -> 2118 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableEntrySet.classbin6159 -> 6159 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableKeySet.classbin4202 -> 4202 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$SubMap.classbin9314 -> 9314 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap$TreeIterator.classbin1790 -> 1790 bytes
-rw-r--r--libjava/classpath/lib/java/util/TreeMap.classbin18433 -> 18433 bytes
-rw-r--r--libjava/classpath/lib/java/util/Vector$1.classbin977 -> 977 bytes
-rw-r--r--libjava/classpath/lib/java/util/Vector.classbin10941 -> 11085 bytes
-rw-r--r--libjava/classpath/lib/java/util/logging/FileHandler$ostr.classbin1249 -> 1249 bytes
-rw-r--r--libjava/classpath/lib/java/util/logging/FileHandler.classbin6238 -> 6273 bytes
-rw-r--r--libjava/classpath/lib/java/util/logging/SimpleFormatter.classbin1997 -> 2032 bytes
-rw-r--r--libjava/classpath/lib/java/util/logging/XMLFormatter.classbin4482 -> 4531 bytes
-rw-r--r--libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.classbin1009 -> 1016 bytes
-rw-r--r--libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.classbin1104 -> 1111 bytes
-rw-r--r--libjava/classpath/lib/java/util/prefs/AbstractPreferences.classbin16200 -> 16565 bytes
-rw-r--r--libjava/classpath/lib/java/util/regex/Matcher.classbin5016 -> 7085 bytes
-rw-r--r--libjava/classpath/lib/java/util/regex/Pattern.classbin4324 -> 4383 bytes
-rw-r--r--libjava/classpath/lib/java/util/regex/PatternSyntaxException.classbin1455 -> 1483 bytes
-rw-r--r--libjava/classpath/lib/java/util/zip/ZipEntry.classbin5391 -> 5607 bytes
-rw-r--r--libjava/classpath/lib/java/util/zip/ZipFile.classbin7716 -> 7664 bytes
-rw-r--r--libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.classbin2893 -> 2921 bytes
-rw-r--r--libjava/classpath/lib/javax/accessibility/AccessibleStateSet.classbin2107 -> 2135 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/ActivationDataFlavor.classbin0 -> 2471 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/CommandInfo.classbin0 -> 1744 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/CommandMap.classbin0 -> 2229 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/CommandObject.classbin0 -> 254 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/DataContentHandler.classbin0 -> 598 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/DataContentHandlerFactory.classbin0 -> 243 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/DataHandler$DataContentHandlerWriter.classbin0 -> 1254 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/DataHandler.classbin0 -> 8572 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/DataHandlerDataSource.classbin0 -> 998 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/DataSource.classbin0 -> 346 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/DataSourceDataContentHandler.classbin0 -> 2495 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/FileDataSource.classbin0 -> 1622 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/FileTypeMap.classbin0 -> 1212 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/MailcapCommandMap.classbin0 -> 14744 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/MimeType.classbin0 -> 4495 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/MimeTypeParameterList$IteratorEnumeration.classbin0 -> 1184 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/MimeTypeParameterList.classbin0 -> 4841 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/MimeTypeParseException.classbin0 -> 858 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/MimetypesFileTypeMap.classbin0 -> 7366 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/ObjectDataContentHandler.classbin0 -> 2520 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/URLDataSource.classbin0 -> 1465 bytes
-rw-r--r--libjava/classpath/lib/javax/activation/UnsupportedDataTypeException.classbin0 -> 491 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/ImageIO$1.classbin1187 -> 1187 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/ImageIO.classbin13284 -> 13313 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.classbin5297 -> 5318 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.classbin3025 -> 3046 bytes
-rw-r--r--libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.classbin8798 -> 8819 bytes
-rw-r--r--libjava/classpath/lib/javax/management/DefaultLoaderRepository.classbin1974 -> 1974 bytes
-rw-r--r--libjava/classpath/lib/javax/management/JMX.classbin3004 -> 3004 bytes
-rw-r--r--libjava/classpath/lib/javax/management/MBeanConstructorInfo.classbin2979 -> 2979 bytes
-rw-r--r--libjava/classpath/lib/javax/management/MBeanPermission.classbin4723 -> 4784 bytes
-rw-r--r--libjava/classpath/lib/javax/management/MBeanServerDelegate.classbin4942 -> 5082 bytes
-rw-r--r--libjava/classpath/lib/javax/management/MBeanServerFactory.classbin6621 -> 6666 bytes
-rw-r--r--libjava/classpath/lib/javax/management/MBeanServerInvocationHandler.classbin6525 -> 6543 bytes
-rw-r--r--libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.classbin1404 -> 1588 bytes
-rw-r--r--libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.classbin2905 -> 2958 bytes
-rw-r--r--libjava/classpath/lib/javax/management/MBeanServerPermission.classbin3110 -> 3110 bytes
-rw-r--r--libjava/classpath/lib/javax/management/ObjectName.classbin11159 -> 11273 bytes
-rw-r--r--libjava/classpath/lib/javax/management/StandardMBean.classbin16907 -> 17250 bytes
-rw-r--r--libjava/classpath/lib/javax/management/openmbean/ArrayType.classbin9802 -> 9867 bytes
-rw-r--r--libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.classbin5699 -> 5710 bytes
-rw-r--r--libjava/classpath/lib/javax/management/openmbean/CompositeType.classbin5171 -> 5233 bytes
-rw-r--r--libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.classbin8111 -> 8111 bytes
-rw-r--r--libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.classbin7528 -> 7528 bytes
-rw-r--r--libjava/classpath/lib/javax/management/openmbean/SimpleType.classbin4740 -> 4795 bytes
-rw-r--r--libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.classbin7765 -> 8207 bytes
-rw-r--r--libjava/classpath/lib/javax/management/openmbean/TabularType.classbin3878 -> 3850 bytes
-rw-r--r--libjava/classpath/lib/javax/naming/BinaryRefAddr.classbin2131 -> 2159 bytes
-rw-r--r--libjava/classpath/lib/javax/naming/CompositeName.classbin6538 -> 6667 bytes
-rw-r--r--libjava/classpath/lib/javax/naming/CompoundName.classbin9575 -> 9769 bytes
-rw-r--r--libjava/classpath/lib/javax/naming/NamingException.classbin3473 -> 3508 bytes
-rw-r--r--libjava/classpath/lib/javax/naming/spi/NamingManager.classbin9601 -> 9629 bytes
-rw-r--r--libjava/classpath/lib/javax/security/auth/x500/X500Principal.classbin11356 -> 11384 bytes
-rw-r--r--libjava/classpath/lib/javax/security/sasl/SaslException.classbin1813 -> 1834 bytes
-rw-r--r--libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.classbin1111 -> 1111 bytes
-rw-r--r--libjava/classpath/lib/javax/sound/sampled/AudioFormat.classbin3974 -> 4016 bytes
-rw-r--r--libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.classbin517 -> 517 bytes
-rw-r--r--libjava/classpath/lib/javax/sound/sampled/CompoundControl.classbin1241 -> 1262 bytes
-rw-r--r--libjava/classpath/lib/javax/sound/sampled/DataLine$Info.classbin2934 -> 2962 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/AbstractButton$1.classbin1793 -> 1793 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.classbin9052 -> 9052 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.classbin977 -> 977 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.classbin1356 -> 1356 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/AbstractButton.classbin20618 -> 20653 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.classbin820 -> 820 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JButton.classbin3347 -> 3375 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JComboBox$1.classbin997 -> 997 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.classbin4039 -> 4039 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.classbin1378 -> 1378 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JComboBox.classbin15989 -> 16031 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JComponent$1.classbin586 -> 586 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.classbin1529 -> 1529 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.classbin1215 -> 1215 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.classbin4577 -> 4577 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.classbin1101 -> 1101 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JComponent.classbin36587 -> 36622 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.classbin914 -> 914 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JDesktopPane.classbin4836 -> 4871 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JFileChooser$1.classbin744 -> 744 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.classbin850 -> 850 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JFileChooser.classbin18403 -> 18438 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.classbin543 -> 543 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JFrame.classbin7079 -> 7114 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.classbin5484 -> 5484 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JLabel.classbin8529 -> 8564 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JList$1.classbin790 -> 790 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JList$2.classbin846 -> 846 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JList$3.classbin829 -> 829 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.classbin6064 -> 6064 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JList$AccessibleJList.classbin4969 -> 4969 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JList$ListListener.classbin1488 -> 1488 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JList.classbin18938 -> 18973 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.classbin2282 -> 2282 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JMenuBar.classbin7798 -> 7833 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JPopupMenu$1.classbin592 -> 592 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JPopupMenu$2.classbin639 -> 639 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.classbin894 -> 894 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.classbin833 -> 833 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JPopupMenu$Separator.classbin503 -> 503 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JPopupMenu.classbin12623 -> 12658 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JProgressBar$1.classbin780 -> 780 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.classbin2458 -> 2458 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JProgressBar.classbin7973 -> 8001 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.classbin2560 -> 2560 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.classbin1222 -> 1222 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JScrollBar.classbin7894 -> 7922 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JSlider$1.classbin750 -> 750 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.classbin2407 -> 2407 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.classbin672 -> 672 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JSlider.classbin11001 -> 11036 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.classbin2484 -> 2484 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JSplitPane.classbin9784 -> 9819 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.classbin3196 -> 3196 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.classbin810 -> 810 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JTabbedPane$Page.classbin5502 -> 5502 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JTabbedPane.classbin14724 -> 14745 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.classbin1014 -> 1014 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.classbin3238 -> 3238 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JToolBar$Separator.classbin1172 -> 1172 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JToolBar.classbin6886 -> 6928 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.classbin1078 -> 1078 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/JToolTip.classbin2448 -> 2469 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.classbin1148 -> 1176 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.classbin1221 -> 1221 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.classbin1632 -> 1632 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/UIManager.classbin9920 -> 9920 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/event/EventListenerList.classbin4510 -> 4545 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/table/AbstractTableModel.classbin4043 -> 4064 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.classbin7302 -> 7344 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.classbin1192 -> 1192 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.classbin799 -> 799 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.classbin3831 -> 3831 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.classbin1428 -> 1428 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.classbin2958 -> 2958 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.classbin1327 -> 1327 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.classbin2916 -> 2916 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/AbstractDocument.classbin20008 -> 20008 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.classbin818 -> 818 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.classbin716 -> 716 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.classbin1248 -> 1248 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.classbin1442 -> 1442 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.classbin1434 -> 1434 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.classbin864 -> 864 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.classbin859 -> 859 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.classbin1326 -> 1326 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.classbin1595 -> 1595 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.classbin1575 -> 1575 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.classbin797 -> 797 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.classbin1393 -> 1393 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.classbin1432 -> 1432 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.classbin1424 -> 1424 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.classbin813 -> 813 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.classbin896 -> 896 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.classbin658 -> 658 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.classbin888 -> 888 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.classbin1429 -> 1429 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.classbin871 -> 871 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.classbin1449 -> 1449 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.classbin1444 -> 1444 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.classbin1512 -> 1512 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.classbin1776 -> 1776 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.classbin850 -> 850 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.classbin1280 -> 1280 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.classbin1418 -> 1418 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.classbin1466 -> 1466 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.classbin829 -> 829 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.classbin1425 -> 1425 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.classbin1408 -> 1408 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.classbin1456 -> 1456 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.classbin845 -> 845 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.classbin1461 -> 1461 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.classbin1481 -> 1481 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.classbin821 -> 821 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.classbin789 -> 789 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultEditorKit.classbin9767 -> 9788 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.classbin1512 -> 1512 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.classbin1219 -> 1219 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.classbin18222 -> 18222 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.classbin2801 -> 2831 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.classbin863 -> 863 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.classbin1181 -> 1181 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.classbin15654 -> 15675 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.classbin10641 -> 10641 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.classbin3384 -> 3384 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.classbin3041 -> 3041 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.classbin595 -> 595 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.classbin1605 -> 1605 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.classbin1999 -> 1999 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/JTextComponent.classbin18471 -> 18492 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/MaskFormatter.classbin6608 -> 6629 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/TabSet.classbin2402 -> 2423 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/CSSParser.classbin4348 -> 4242 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/HTMLWriter.classbin13180 -> 13208 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.classbin3549 -> 3549 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.classbin1625 -> 1846 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.classbin2769 -> 2769 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/StyleSheet.classbin17237 -> 17636 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.classbin2944 -> 3083 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.classbin10962 -> 10910 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.classbin632 -> 632 bytes
-rw-r--r--libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.classbin14992 -> 15027 bytes
-rw-r--r--libjava/classpath/lib/javax/tools/FileObject.classbin577 -> 578 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.classbin5735 -> 5903 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/namespace/QName.classbin2720 -> 2748 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.classbin5298 -> 5364 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.classbin4217 -> 4283 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/stream/XMLEventFactory.classbin5548 -> 5614 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/stream/XMLInputFactory.classbin5885 -> 5951 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.classbin4233 -> 4299 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/transform/TransformerException.classbin3839 -> 3874 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/transform/TransformerFactory.classbin4088 -> 4164 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/validation/SchemaFactory.classbin5068 -> 5144 bytes
-rw-r--r--libjava/classpath/lib/javax/xml/xpath/XPathFactory.classbin3748 -> 3814 bytes
-rw-r--r--libjava/classpath/lib/org/ietf/jgss/Oid.classbin4656 -> 4684 bytes
-rw-r--r--libjava/classpath/lib/org/omg/CORBA/portable/Delegate.classbin4453 -> 4474 bytes
-rw-r--r--libjava/classpath/ltgcc.m460
-rw-r--r--libjava/classpath/ltmain.sh3672
-rw-r--r--libjava/classpath/ltoptions.m4368
-rw-r--r--libjava/classpath/ltsugar.m4123
-rw-r--r--libjava/classpath/ltversion.m423
-rw-r--r--libjava/classpath/lt~obsolete.m492
-rw-r--r--libjava/classpath/m4/ac_prog_antlr.m446
-rw-r--r--libjava/classpath/m4/ac_prog_java.m417
-rw-r--r--libjava/classpath/m4/ac_prog_java_works.m4109
-rw-r--r--libjava/classpath/m4/ac_prog_javac.m414
-rw-r--r--libjava/classpath/m4/ac_prog_javac_works.m48
-rw-r--r--libjava/classpath/m4/acinclude.m480
-rw-r--r--libjava/classpath/native/Makefile.in25
-rw-r--r--libjava/classpath/native/fdlibm/Makefile.in25
-rw-r--r--libjava/classpath/native/jawt/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/Makefile.am8
-rw-r--r--libjava/classpath/native/jni/Makefile.in30
-rw-r--r--libjava/classpath/native/jni/classpath/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/gconf-peer/GConfNativePeer.c140
-rw-r--r--libjava/classpath/native/jni/gconf-peer/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c2
-rw-r--r--libjava/classpath/native/jni/gtk-peer/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/java-io/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/java-io/java_io_VMFile.c106
-rw-r--r--libjava/classpath/native/jni/java-lang/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/java-math/Makefile.am11
-rw-r--r--libjava/classpath/native/jni/java-math/Makefile.in646
-rw-r--r--libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c1396
-rw-r--r--libjava/classpath/native/jni/java-net/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c147
-rw-r--r--libjava/classpath/native/jni/java-net/local.c13
-rw-r--r--libjava/classpath/native/jni/java-nio/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/java-util/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/midi-alsa/Makefile.am2
-rw-r--r--libjava/classpath/native/jni/midi-alsa/Makefile.in27
-rw-r--r--libjava/classpath/native/jni/midi-dssi/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/native-lib/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/qt-peer/Makefile.in25
-rw-r--r--libjava/classpath/native/jni/xmlj/Makefile.in25
-rw-r--r--libjava/classpath/native/plugin/Makefile.in25
-rw-r--r--libjava/classpath/org/ietf/jgss/Oid.java4
-rw-r--r--libjava/classpath/org/omg/CORBA/portable/Delegate.java4
-rw-r--r--libjava/classpath/resource/META-INF/mailcap.default8
-rw-r--r--libjava/classpath/resource/META-INF/mimetypes.default28
-rw-r--r--libjava/classpath/resource/Makefile.in25
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation.properties35
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa.properties26
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_DJ.properties4
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER.properties4
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties4
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_af.properties395
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties16
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ak.properties23
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_am.properties224
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar.properties1046
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_JO.properties6
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_LB.properties7
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_QA.properties2
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SA.properties2
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SY.properties7
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_TN.properties3
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_YE.properties2
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_as.properties45
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_az.properties1071
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties22
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_be.properties493
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_bg.properties717
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn.properties1141
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn_IN.properties107
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_bo.properties242
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_bs.properties135
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_byn.properties63
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ca.properties679
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_cch.properties23
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_cop.properties21
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_cs.properties552
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_cy.properties156
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_da.properties1458
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_de.properties845
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_AT.properties6
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_BE.properties6
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_CH.properties4
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LI.properties1
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LU.properties1
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_dv.properties16
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_dz.properties46
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ee.properties25
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_el.properties1057
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en.properties936
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_AU.properties3
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BE.properties8
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BW.properties5
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BZ.properties6
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_CA.properties7
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties418
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_GB.properties3
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_HK.properties2
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IE.properties5
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IN.properties5
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties8
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_MT.properties2
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties8
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NZ.properties4
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PH.properties2
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PK.properties4
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_SG.properties17
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties13
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties8
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties3
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZA.properties5
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZW.properties5
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_eo.properties185
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es.properties681
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_AR.properties11
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CL.properties11
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CO.properties2
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CR.properties7
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_DO.properties6
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_EC.properties4
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_ES.properties14
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_GT.properties5
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_HN.properties10
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_MX.properties8
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_NI.properties6
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PA.properties4
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PE.properties9
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PR.properties5
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PY.properties8
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_SV.properties6
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_US.properties1
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_UY.properties10
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_VE.properties8
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_et.properties814
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_eu.properties336
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa.properties511
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa_AF.properties36
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_fi.properties1044
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties455
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_fo.properties366
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr.properties1222
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_BE.properties3
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CA.properties7
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CH.properties4
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_fur.properties518
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ga.properties400
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties23
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez.properties67
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez_ET.properties13
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_gl.properties544
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_gu.properties127
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_gv.properties21
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha.properties136
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties14
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_haw.properties21
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_he.properties790
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_hi.properties636
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_hr.properties614
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_hu.properties948
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy.properties156
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties6
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ia.properties318
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_id.properties641
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ig.properties23
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ii.properties43
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_is.properties1219
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_it.properties846
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_it_CH.properties6
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_iu.properties18
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ja.properties546
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ka.properties482
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties23
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_kam.properties23
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties23
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties23
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_kk.properties124
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_kl.properties19
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_km.properties83
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_kn.properties168
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ko.properties537
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_kok.properties38
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties21
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku.properties111
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties110
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties20
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_kw.properties21
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ky.properties93
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ln.properties261
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_lo.properties281
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_lt.properties557
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_lv.properties659
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_mk.properties238
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ml.properties1184
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_mn.properties135
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_mr.properties173
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms.properties132
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms_BN.properties10
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_mt.properties169
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_my.properties480
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_nb.properties1004
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ne.properties421
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl.properties530
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl_BE.properties18
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_nn.properties733
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_nr.properties27
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_nso.properties27
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ny.properties23
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_om.properties123
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_om_KE.properties11
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_or.properties24
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa.properties62
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties16
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_pl.properties878
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ps.properties153
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt.properties1069
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt_PT.properties273
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ro.properties643
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru.properties646
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru_UA.properties9
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_rw.properties130
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sa.properties41
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_se.properties370
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties116
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_si.properties28
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sid.properties21
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sk.properties367
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sl.properties320
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_so.properties180
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_DJ.properties3
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_ET.properties3
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_KE.properties2
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sq.properties159
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr.properties377
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties15
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_Latn.properties271
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties10
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties10
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ss.properties27
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties9
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_st.properties119
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv.properties1182
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv_FI.properties10
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_sw.properties150
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_syr.properties16
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ta.properties225
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_te.properties74
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_tg.properties82
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_th.properties1071
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti.properties119
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti_ER.properties18
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_tig.properties63
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_tn.properties106
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_to.properties212
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_tr.properties901
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_trv.properties80
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ts.properties51
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_tt.properties15
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ug.properties22
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_uk.properties1052
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur.properties385
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties9
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz.properties25
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Arab.properties19
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Latn.properties40
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_ve.properties27
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_vi.properties340
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_wal.properties49
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_wo.properties33
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_xh.properties131
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_yo.properties130
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh.properties701
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties34
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_Hant.properties630
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties12
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties19
-rw-r--r--libjava/classpath/resource/gnu/java/locale/LocaleInformation_zu.properties131
-rw-r--r--libjava/classpath/resource/java/text/metazones.properties323
-rw-r--r--libjava/classpath/resource/java/util/iso4217.properties292
-rw-r--r--libjava/classpath/resource/java/util/weeks.properties80
-rw-r--r--libjava/classpath/scripts/Makefile.in25
-rw-r--r--libjava/classpath/scripts/check_jni_methods.sh.in10
-rwxr-xr-xlibjava/classpath/tools/Makefile.am209
-rw-r--r--libjava/classpath/tools/Makefile.in251
-rw-r--r--libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.classbin0 -> 453 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.classbin0 -> 1086 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.classbin0 -> 1741 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.classbin0 -> 446 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.classbin0 -> 6253 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.classbin0 -> 3753 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.classbin0 -> 1267 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.classbin0 -> 228 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.classbin0 -> 5878 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.classbin0 -> 1124 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.classbin4028 -> 4032 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.classbin0 -> 2075 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.classbin0 -> 3296 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.classbin0 -> 4359 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.classbin0 -> 955 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.classbin0 -> 1129 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.classbin0 -> 663 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.classbin0 -> 1848 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.classbin0 -> 27211 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.classbin0 -> 432 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.classbin0 -> 575 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.classbin0 -> 1139 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.classbin0 -> 962 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.classbin0 -> 755 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.classbin0 -> 2108 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.classbin0 -> 776 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.classbin0 -> 258 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.classbin0 -> 437 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.classbin0 -> 698 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.classbin0 -> 2907 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.classbin0 -> 1341 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.classbin0 -> 187 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.classbin0 -> 4081 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.classbin0 -> 14612 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.classbin0 -> 3836 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.classbin0 -> 1205 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.classbin0 -> 1207 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.classbin0 -> 1401 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.classbin0 -> 1088 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.classbin0 -> 80179 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.classbin0 -> 12297 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.classbin0 -> 876 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.classbin0 -> 935 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.classbin0 -> 793 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.classbin0 -> 1537 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.classbin0 -> 51864 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.classbin0 -> 955 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.classbin0 -> 1043 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.classbin0 -> 10463 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.classbin0 -> 1172 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.classbin0 -> 1093 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.classbin0 -> 14435 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.classbin0 -> 774 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.classbin0 -> 1218 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.classbin0 -> 865 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.classbin0 -> 2127 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.classbin0 -> 1467 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.classbin1061 -> 1061 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.classbin1119 -> 1119 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.classbin904 -> 904 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.classbin8099 -> 8255 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.classbin0 -> 2825 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.classbin0 -> 1762 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.classbin0 -> 629 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.classbin0 -> 862 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.classbin0 -> 2610 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.classbin0 -> 25782 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.classbin0 -> 7577 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.classbin0 -> 8685 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.classbin0 -> 1517 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.classbin0 -> 757 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.classbin0 -> 1447 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.classbin0 -> 943 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.classbin0 -> 1226 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.classbin0 -> 19116 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.classbin0 -> 612 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.classbin0 -> 1660 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.classbin0 -> 9289 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.classbin0 -> 3110 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.classbin0 -> 8266 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.classbin0 -> 2992 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.classbin0 -> 217 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.classbin0 -> 184 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.classbin0 -> 357 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.classbin0 -> 1226 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.classbin0 -> 1838 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.classbin0 -> 960 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.classbin0 -> 918 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.classbin0 -> 825 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.classbin0 -> 1221 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.classbin0 -> 1728 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.classbin0 -> 1799 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.classbin0 -> 1800 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.classbin0 -> 1002 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.classbin0 -> 924 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.classbin0 -> 1715 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.classbin0 -> 828 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.classbin0 -> 809 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.classbin0 -> 809 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.classbin0 -> 767 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.classbin0 -> 1382 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.classbin0 -> 1401 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.classbin0 -> 809 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.classbin0 -> 809 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.classbin0 -> 809 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.classbin0 -> 809 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.classbin0 -> 767 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.classbin0 -> 767 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.classbin0 -> 767 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.classbin0 -> 806 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.classbin0 -> 825 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.classbin0 -> 825 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.classbin0 -> 806 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.classbin0 -> 727 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.classbin0 -> 29565 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.classbin0 -> 5337 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.classbin0 -> 1247 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.classbin0 -> 1142 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.classbin0 -> 5798 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.classbin0 -> 1368 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.classbin0 -> 1682 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.classbin0 -> 463 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.classbin0 -> 1669 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.classbin0 -> 1209 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.classbin0 -> 13190 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.classbin0 -> 3566 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.classbin0 -> 403 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.classbin0 -> 3100 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.classbin0 -> 1664 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.classbin0 -> 3932 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.classbin0 -> 1980 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.classbin0 -> 2039 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.classbin0 -> 1036 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.classbin0 -> 20655 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.classbin0 -> 4114 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.classbin0 -> 2862 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.classbin0 -> 556 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.classbin0 -> 787 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.classbin0 -> 1095 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.classbin0 -> 1030 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.classbin0 -> 247 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.classbin0 -> 1350 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.classbin0 -> 548 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.classbin0 -> 1026 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.classbin0 -> 2479 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.classbin0 -> 2568 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.classbin0 -> 900 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.classbin0 -> 2637 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.classbin0 -> 2694 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.classbin0 -> 1292 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.classbin0 -> 1032 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.classbin0 -> 591 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.classbin0 -> 309 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.classbin0 -> 2306 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.classbin0 -> 756 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.classbin0 -> 1711 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.classbin0 -> 2769 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.classbin0 -> 2071 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.classbin0 -> 615 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.classbin0 -> 1593 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.classbin0 -> 1928 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.classbin0 -> 1691 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.classbin0 -> 784 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.classbin0 -> 618 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.classbin0 -> 1670 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.classbin0 -> 1371 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.classbin0 -> 1082 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.classbin0 -> 1634 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.classbin0 -> 1288 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.classbin0 -> 787 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.classbin0 -> 1448 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.classbin0 -> 1378 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.classbin0 -> 1599 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.classbin0 -> 829 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.classbin0 -> 1088 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.classbin0 -> 1025 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.classbin0 -> 818 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.classbin0 -> 959 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.classbin0 -> 1067 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.classbin0 -> 3343 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.classbin0 -> 378 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.classbin0 -> 780 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.classbin0 -> 333 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.classbin0 -> 988 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.classbin0 -> 1009 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.classbin0 -> 2874 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.classbin0 -> 577 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.classbin0 -> 773 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.classbin0 -> 27024 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.classbin0 -> 22370 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.classbin0 -> 3902 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.classbin0 -> 979 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.classbin0 -> 1000 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.classbin0 -> 693 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.classbin0 -> 1557 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.classbin0 -> 683 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.classbin0 -> 953 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.classbin0 -> 977 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.classbin0 -> 1696 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.classbin0 -> 1071 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.classbin0 -> 1467 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.classbin0 -> 772 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.classbin0 -> 775 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.classbin0 -> 968 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.classbin0 -> 1204 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.classbin0 -> 2687 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.classbin0 -> 524 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.classbin0 -> 473 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.classbin6679 -> 7304 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.classbin4234 -> 4240 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.classbin2403 -> 2785 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.classbin0 -> 900 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.classbin0 -> 26685 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.classbin8524 -> 8529 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.classbin2997 -> 2909 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.classbin4201 -> 4205 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.classbin2453 -> 2457 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.classbin30611 -> 30522 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.classbin2992 -> 2904 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.classbin5369 -> 5280 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.classbin5210 -> 5116 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.classbin12415 -> 12269 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.classbin3890 -> 3894 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.classbin0 -> 714 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.classbin0 -> 4878 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.classbin0 -> 1529 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.classbin0 -> 2366 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.classbin0 -> 2371 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.classbin0 -> 2708 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.classbin0 -> 381 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.classbin0 -> 2962 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.classbin0 -> 858 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.classbin0 -> 2695 bytes
-rw-r--r--libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.classbin0 -> 2580 bytes
-rw-r--r--libjava/classpath/tools/com/sun/tools/javadoc/Main.java9
-rw-r--r--libjava/classpath/tools/gappletviewer.in2
-rw-r--r--libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java1962
-rw-r--r--libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap1280
-rw-r--r--libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java1406
-rw-r--r--libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap987
-rw-r--r--libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java122
-rw-r--r--libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt116
-rw-r--r--libjava/classpath/tools/gjar.in2
-rw-r--r--libjava/classpath/tools/gjarsigner.in2
-rw-r--r--libjava/classpath/tools/gjavah.in2
-rw-r--r--libjava/classpath/tools/gjdoc.in49
-rw-r--r--libjava/classpath/tools/gkeytool.in2
-rw-r--r--libjava/classpath/tools/gnative2ascii.in2
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java296
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java199
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java93
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java39
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java406
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java67
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java1369
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java37
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java39
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java60
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java60
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java52
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java108
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java51
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java29
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java35
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java41
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java135
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java83
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java30
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java137
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java283
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java170
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java3883
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java518
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java48
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java2434
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java67
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java674
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java86
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java443
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java36
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java46
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java45
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java74
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java49
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java32
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java90
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java104
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java1244
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java152
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java202
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java42
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java50
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java57
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java1074
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java104
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java411
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java392
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java39
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java39
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java86
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java36
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java46
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java1846
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java218
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java47
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java206
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java64
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java52
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java35
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java1047
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java161
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java1317
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java198
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java111
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java60
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java35
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java43
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java115
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java39
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java88
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java71
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java87
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java92
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java91
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java48
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java27
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java69
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java40
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java51
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java75
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java72
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java34
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java47
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java65
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java49
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java40
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java35
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java57
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java67
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java57
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java81
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java62
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java35
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java62
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java62
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java67
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java49
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java57
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java58
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java45
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java50
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java55
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java131
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java29
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java40
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java27
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java50
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java50
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java72
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java35
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java40
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java50
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java50
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java35
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java43
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java35
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java50
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java50
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java49
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java55
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java43
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java40
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java40
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java50
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java43
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java70
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java32
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java30
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g471
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java11
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java4
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java11
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java1337
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java26
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java2
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java2
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java4
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java4
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java4
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java10
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java12
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java16
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java6
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java276
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java84
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java106
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java115
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java140
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java31
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java144
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java23
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java113
-rw-r--r--libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java136
-rw-r--r--libjava/classpath/tools/gorbd.in2
-rw-r--r--libjava/classpath/tools/grmic.in2
-rw-r--r--libjava/classpath/tools/grmid.in2
-rw-r--r--libjava/classpath/tools/grmiregistry.in2
-rw-r--r--libjava/classpath/tools/gserialver.in2
-rw-r--r--libjava/classpath/tools/gtnameserv.in2
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties4
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl54
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl83
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl63
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl78
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl107
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl112
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl61
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl169
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl1070
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl261
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl58
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl115
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl201
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl240
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl93
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl584
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl66
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl146
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl90
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl153
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html7
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js108
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css382
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css286
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css266
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css29
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod204
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent98
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent84
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent52
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent101
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent68
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent126
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent82
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent109
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent68
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent56
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent91
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent62
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent85
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent85
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent104
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent163
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent118
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent127
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent104
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd35
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd35
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties32
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js115
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css80
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css460
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css21
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml25
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.pngbin0 -> 199 bytes
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd54
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt78
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt79
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt82
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt90
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng649
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng264
-rw-r--r--libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng176
-rw-r--r--libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java112
-rw-r--r--libjava/classpath/vm/reference/java/io/VMFile.java26
-rw-r--r--libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java169
-rw-r--r--libjava/classpath/vm/reference/java/lang/reflect/VMField.java549
-rw-r--r--libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java209
-rw-r--r--libjava/classpath/vm/reference/java/net/VMNetworkInterface.java17
-rwxr-xr-xlibjava/configure266
-rw-r--r--libjava/configure.ac69
-rw-r--r--libjava/gcj/Makefile.in3
-rw-r--r--libjava/gcj/javaprims.h14
-rw-r--r--libjava/gnu/CORBA/NamingService/NameTransformer.h9
-rw-r--r--libjava/gnu/classpath/Configuration.h1
-rw-r--r--libjava/gnu/classpath/Configuration.java13
-rw-r--r--libjava/gnu/classpath/jdwp/util/Signature.h9
-rw-r--r--libjava/gnu/gcj/util/natDebug.cc22
-rw-r--r--libjava/gnu/gcj/xlib/natColormap.cc2
-rw-r--r--libjava/gnu/gcj/xlib/natDisplay.cc4
-rw-r--r--libjava/gnu/gcj/xlib/natDrawable.cc4
-rw-r--r--libjava/gnu/gcj/xlib/natFont.cc2
-rw-r--r--libjava/gnu/gcj/xlib/natWMSizeHints.cc2
-rw-r--r--libjava/gnu/gcj/xlib/natWindow.cc2
-rw-r--r--libjava/gnu/gcj/xlib/natXImage.cc2
-rw-r--r--libjava/gnu/java/awt/java2d/AbstractGraphics2D.h10
-rw-r--r--libjava/gnu/java/awt/java2d/RasterGraphics.h5
-rw-r--r--libjava/gnu/java/lang/CPStringBuilder.h100
-rw-r--r--libjava/gnu/java/lang/VMCPStringBuilder.h39
-rw-r--r--libjava/gnu/java/lang/VMCPStringBuilder.java112
-rw-r--r--libjava/gnu/java/math/GMP.h125
-rw-r--r--libjava/gnu/java/text/AttributedFormatBuffer.h10
-rw-r--r--libjava/gnu/java/util/EmptyEnumeration.h2
-rw-r--r--libjava/gnu/java/util/prefs/EventDispatcher.h41
-rw-r--r--libjava/gnu/java/util/prefs/gconf/GConfNativePeer.h22
-rw-r--r--libjava/gnu/java/util/regex/RE.h12
-rw-r--r--libjava/gnu/java/util/regex/REMatchEnumeration.h8
-rw-r--r--libjava/gnu/java/util/regex/REToken.h8
-rw-r--r--libjava/gnu/java/util/regex/RETokenAny.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenBackRef.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenChar.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenEnd.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenEndOfPreviousMatch.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenEndSub.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenIndependent.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenLookAhead.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenLookBehind.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenNamedProperty.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenOneOf.h14
-rw-r--r--libjava/gnu/java/util/regex/RETokenPOSIX.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenRange.h6
-rw-r--r--libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h44
-rw-r--r--libjava/gnu/java/util/regex/RETokenRepeated.h9
-rw-r--r--libjava/gnu/java/util/regex/RETokenStart.h8
-rw-r--r--libjava/gnu/java/util/regex/RETokenWordBoundary.h6
-rw-r--r--libjava/gnu/javax/activation/viewers/ImageViewer.h58
-rw-r--r--libjava/gnu/javax/activation/viewers/TextEditor.h59
-rw-r--r--libjava/gnu/javax/activation/viewers/TextViewer.h51
-rw-r--r--libjava/gnu/javax/management/Server$LazyListenersHolder.h36
-rw-r--r--libjava/gnu/javax/management/Server.h3
-rw-r--r--libjava/gnu/javax/security/auth/login/ConfigFileTokenizer.h9
-rw-r--r--libjava/gnu/xml/dom/DomAttr.h1
-rw-r--r--libjava/gnu/xml/dom/DomElement.h1
-rw-r--r--libjava/gnu/xml/dom/DomNsNode.h2
-rw-r--r--libjava/gnu/xml/dom/ls/SAXEventSink.h3
-rw-r--r--libjava/gnu/xml/stream/XMLParser.h17
-rw-r--r--libjava/gnu/xml/transform/AbstractNumberNode.h9
-rw-r--r--libjava/gnu/xml/transform/ParameterNode.h8
-rw-r--r--libjava/gnu/xml/transform/SortKey.h4
-rw-r--r--libjava/gnu/xml/transform/Stylesheet.h1
-rw-r--r--libjava/gnu/xml/transform/TemplatesImpl.h1
-rw-r--r--libjava/gnu/xml/transform/XSLComparator.h11
-rw-r--r--libjava/gnu/xml/util/XMLWriter.h9
-rw-r--r--libjava/gnu/xml/xpath/DocumentOrderComparator.h11
-rw-r--r--libjava/include/Makefile.in3
-rw-r--r--libjava/java/awt/AlphaComposite.h2
-rw-r--r--libjava/java/awt/MouseInfo.h2
-rw-r--r--libjava/java/awt/image/ColorModel.h2
-rw-r--r--libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h4
-rw-r--r--libjava/java/io/CharArrayWriter.h6
-rw-r--r--libjava/java/lang/AbstractStringBuffer.h85
-rw-r--r--libjava/java/lang/AbstractStringBuffer.java1027
-rw-r--r--libjava/java/lang/ClassLoader.java2
-rw-r--r--libjava/java/lang/Double.h2
-rw-r--r--libjava/java/lang/Float.h2
-rw-r--r--libjava/java/lang/Integer.h3
-rw-r--r--libjava/java/lang/Long.h8
-rw-r--r--libjava/java/lang/String.h1
-rw-r--r--libjava/java/lang/String.java8
-rw-r--r--libjava/java/lang/StringBuffer.h97
-rw-r--r--libjava/java/lang/StringBuffer.java434
-rw-r--r--libjava/java/lang/StringBuilder.h109
-rw-r--r--libjava/java/lang/StringBuilder.java500
-rw-r--r--libjava/java/lang/Thread.h11
-rw-r--r--libjava/java/lang/Thread.java17
-rw-r--r--libjava/java/lang/ThreadLocal.h7
-rw-r--r--libjava/java/lang/ThreadLocal.java35
-rw-r--r--libjava/java/lang/ThreadLocalMap$Entry.h21
-rw-r--r--libjava/java/lang/ThreadLocalMap.h41
-rw-r--r--libjava/java/lang/Throwable.h15
-rw-r--r--libjava/java/lang/natAbstractStringBuffer.cc (renamed from libjava/java/lang/natStringBuffer.cc)9
-rw-r--r--libjava/java/lang/natStringBuilder.cc29
-rw-r--r--libjava/java/math/BigInteger.h22
-rw-r--r--libjava/java/net/URI.h12
-rw-r--r--libjava/java/nio/Buffer.h4
-rw-r--r--libjava/java/nio/Buffer.java18
-rw-r--r--libjava/java/nio/ByteBuffer.h11
-rw-r--r--libjava/java/nio/CharBuffer.h9
-rw-r--r--libjava/java/nio/DirectByteBufferImpl.java10
-rw-r--r--libjava/java/nio/DoubleBuffer.h9
-rw-r--r--libjava/java/nio/FloatBuffer.h9
-rw-r--r--libjava/java/nio/IntBuffer.h9
-rw-r--r--libjava/java/nio/LongBuffer.h9
-rw-r--r--libjava/java/nio/MappedByteBuffer.h9
-rw-r--r--libjava/java/nio/MappedByteBufferImpl.h1
-rw-r--r--libjava/java/nio/MappedByteBufferImpl.java5
-rw-r--r--libjava/java/nio/ShortBuffer.h9
-rw-r--r--libjava/java/rmi/activation/Activatable.h2
-rw-r--r--libjava/java/sql/Timestamp.h2
-rw-r--r--libjava/java/text/ChoiceFormat.h12
-rw-r--r--libjava/java/text/DateFormat$Field.h6
-rw-r--r--libjava/java/text/DateFormat.h6
-rw-r--r--libjava/java/text/DateFormatSymbols.h1
-rw-r--r--libjava/java/text/DecimalFormat.h12
-rw-r--r--libjava/java/text/Format.h3
-rw-r--r--libjava/java/text/MessageFormat.h6
-rw-r--r--libjava/java/text/NumberFormat.h2
-rw-r--r--libjava/java/text/SimpleDateFormat.h1
-rw-r--r--libjava/java/util/ArrayList.h1
-rw-r--r--libjava/java/util/Arrays.h15
-rw-r--r--libjava/java/util/Calendar.h1
-rw-r--r--libjava/java/util/Formatter.h16
-rw-r--r--libjava/java/util/Properties.h16
-rw-r--r--libjava/java/util/PropertyResourceBundle.h1
-rw-r--r--libjava/java/util/ResourceBundle$BundleKey.h1
-rw-r--r--libjava/java/util/ResourceBundle.h4
-rw-r--r--libjava/java/util/Scanner.h178
-rw-r--r--libjava/java/util/Vector.h1
-rw-r--r--libjava/java/util/logging/XMLFormatter.h14
-rw-r--r--libjava/java/util/prefs/AbstractPreferences$1.h2
-rw-r--r--libjava/java/util/prefs/AbstractPreferences$2.h2
-rw-r--r--libjava/java/util/regex/Matcher.h14
-rw-r--r--libjava/java/util/zip/ZipEntry.h22
-rw-r--r--libjava/javax/activation/ActivationDataFlavor.h55
-rw-r--r--libjava/javax/activation/CommandInfo.h37
-rw-r--r--libjava/javax/activation/CommandMap.h48
-rw-r--r--libjava/javax/activation/CommandObject.h30
-rw-r--r--libjava/javax/activation/DataContentHandler.h45
-rw-r--r--libjava/javax/activation/DataContentHandlerFactory.h30
-rw-r--r--libjava/javax/activation/DataHandler$DataContentHandlerWriter.h38
-rw-r--r--libjava/javax/activation/DataHandler.h85
-rw-r--r--libjava/javax/activation/DataHandlerDataSource.h38
-rw-r--r--libjava/javax/activation/DataSource.h32
-rw-r--r--libjava/javax/activation/DataSourceDataContentHandler.h52
-rw-r--r--libjava/javax/activation/FileDataSource.h41
-rw-r--r--libjava/javax/activation/FileTypeMap.h36
-rw-r--r--libjava/javax/activation/MailcapCommandMap.h64
-rw-r--r--libjava/javax/activation/MimeType.h57
-rw-r--r--libjava/javax/activation/MimeTypeParameterList$IteratorEnumeration.h36
-rw-r--r--libjava/javax/activation/MimeTypeParameterList.h46
-rw-r--r--libjava/javax/activation/MimeTypeParseException.h33
-rw-r--r--libjava/javax/activation/MimetypesFileTypeMap.h54
-rw-r--r--libjava/javax/activation/ObjectDataContentHandler.h54
-rw-r--r--libjava/javax/activation/URLDataSource.h46
-rw-r--r--libjava/javax/activation/UnsupportedDataTypeException.h30
-rw-r--r--libjava/javax/management/MBeanPermission.h2
-rw-r--r--libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.h8
-rw-r--r--libjava/javax/management/openmbean/TabularDataSupport.h6
-rw-r--r--libjava/javax/swing/text/html/CSSParser.h1
-rw-r--r--libjava/javax/swing/text/html/StyleSheet$CSSStyle.h1
-rw-r--r--libjava/javax/tools/FileObject.h4
-rw-r--r--libjava/jni.cc4
-rwxr-xr-xlibjava/scripts/makemake.tcl2
-rw-r--r--libjava/sources.am130
-rw-r--r--libjava/testsuite/Makefile.in3
2325 files changed, 120740 insertions, 22976 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog
index d07b70e..7e0bf0b 100644
--- a/libjava/ChangeLog
+++ b/libjava/ChangeLog
@@ -1,3 +1,221 @@
+2008-10-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * sources.am, Makfile.in: Regenerate.
+
+2008-10-17 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Fix bashisms.
+ * configure: Regenerate.
+
+2008-10-15 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Disable build of gjdoc, if configured without
+ --with-antlr-jar or if no antlr.jar found.
+ * configure: Regenerate.
+
+2008-10-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * classpath/configure.ac,
+ * classpath/m4/ac_prog_antlr.m4,
+ * classpath/m4/ac_prog_java.m4,
+ * classpath/tools/Makefile.am:
+ Ported --regen-gjdoc-parser patch and
+ cantlr support from GNU Classpath.
+
+2008-10-06 Andrew Haley <aph@redhat.com>
+
+ * java/lang/Thread.java (Thread): Always create the ThreadLocalMap
+ when creating a thread.
+ (getThreadLocals) Don't lazily create the ThreadLocalMap.
+
+2008-09-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * classpath/java/lang/ThreadLocalMap.java,
+ * java/lang/ThreadLocalMap$Entry.h,
+ * java/lang/ThreadLocalMap.h,
+ * lib/java/lang/ThreadLocalMap.class,
+ * lib/java/lang/ThreadLocalMap$Entry.class:
+ Add the new files for the ThreadLocal patch.
+
+2008-09-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * classpath/ChangeLog,
+ * classpath/java/lang/InheritableThreadLocal.java,
+ * classpath/java/lang/Thread.java,
+ * classpath/java/lang/ThreadLocal.java:
+ Merge Daniel Frampton's ThreadLocal patch.
+ * gcj/javaprims.h: Updated.
+ * java/lang/Thread.h: Regenerated.
+ * java/lang/Thread.java:
+ Replace WeakIdentityHashMap with ThreadLocalMap.
+ (getThreadLocals()): Likewise.
+ * java/lang/ThreadLocal.h: Regenerated.
+ * java/lang/ThreadLocal.java:
+ (computeNextHash()): New method.
+ (ThreadLocal()): Initialise fastHash.
+ (internalGet()): Updated to match Classpath's get().
+ (internalSet(Object)): Likewise for set(Object).
+ (internalRemove()): Likewise for remove().
+
+2008-09-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * classpath/configure,
+ * classpath/configure.ac:
+ Resynchronise with Classpath's configure.
+ * classpath/examples/Makefile.in:
+ Add equivalent support for building as in
+ tools/Makefile.in.
+ * classpath/java/nio/Buffer.java,
+ * classpath/java/nio/ByteBuffer.java,
+ * classpath/java/nio/ByteBufferImpl.java,
+ * classpath/java/nio/CharBuffer.java,
+ * classpath/java/nio/CharBufferImpl.java,
+ * classpath/java/nio/CharSequenceBuffer.java,
+ * classpath/java/nio/CharViewBufferImpl.java,
+ * classpath/java/nio/DirectByteBufferImpl.java,
+ * classpath/java/nio/DoubleBuffer.java,
+ * classpath/java/nio/DoubleBufferImpl.java,
+ * classpath/java/nio/DoubleViewBufferImpl.java,
+ * classpath/java/nio/FloatBuffer.java,
+ * classpath/java/nio/FloatBufferImpl.java,
+ * classpath/java/nio/FloatViewBufferImpl.java,
+ * classpath/java/nio/IntBuffer.java,
+ * classpath/java/nio/IntBufferImpl.java,
+ * classpath/java/nio/IntViewBufferImpl.java,
+ * classpath/java/nio/LongBuffer.java,
+ * classpath/java/nio/LongBufferImpl.java,
+ * classpath/java/nio/LongViewBufferImpl.java,
+ * classpath/java/nio/MappedByteBuffer.java,
+ * classpath/java/nio/MappedByteBufferImpl.java,
+ * classpath/java/nio/ShortBuffer.java,
+ * classpath/java/nio/ShortBufferImpl.java,
+ * classpath/java/nio/ShortViewBufferImpl.java:
+ Replace use of gnu.classpath.Pointer with gnu.gcj.RawData,
+ and fix some formatting issues.
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.java,
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap,
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java,
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap,
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java,
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt:
+ Regenerated (later version of antlr).
+ * java/nio/Buffer.h: Regenerated.
+ * java/nio/Buffer.java: Ported changes from Classpath.
+ * java/nio/ByteBuffer.h,
+ * java/nio/CharBuffer.h: Regenerated.
+ * java/nio/DirectByteBufferImpl.java: Ported changes from
+ Classpath.
+ * java/nio/DoubleBuffer.h,
+ * java/nio/FloatBuffer.h,
+ * java/nio/IntBuffer.h,
+ * java/nio/LongBuffer.h,
+ * java/nio/MappedByteBuffer.h,
+ * java/nio/MappedByteBufferImpl.h: Regenerated.
+ * java/nio/MappedByteBufferImpl.java: Ported changes from
+ Classpath.
+ * java/nio/ShortBuffer.h: Regenerated.
+
+2008-09-24 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Search for antlr.jar, if not configured.
+ * configure: Regenerate.
+
+2008-09-24 Matthias Klose <doko@ubuntu.com>
+
+ * Makefile.am: Build a gjdoc binary, if enabled.
+ * configure.ac: Add options --disable-gjdoc, --with-antlr-jar=file.
+ * Makefile.in, */Makefile.in, configure: Regenerate.
+
+2008-09-22 Andrew Haley <aph@redhat.com>
+
+ * java/lang/String.java (toString(char[], int, int)): New method.
+
+2008-09-14 Matthias Klose <doko@ubuntu.com>
+
+ Import GNU Classpath (libgcj-import-20080914).
+
+ * Regenerate class and header files.
+ * Regenerate auto* files.
+ * configure.ac: Don't pass --disable-gjdoc to classpath.
+ * sources.am: Regenerated.
+ * HACKING: Mention to build gjdoc in maintainer builds.
+ * gnu/classpath/Configuration.java: Update classpath version.
+ * gcj/javaprims.h: Update.
+
+2008-09-08 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.am: Replace natStringBuffer.cc
+ and natStringBuilder.cc with natAbstractStringBuffer.cc.
+ * Makefile.in: Regenerated.
+ * java/lang/AbstractStringBuffer.java:
+ (append(int)): Made native.
+ (regionMatches(int,String)): Likewise.
+ * java/lang/StringBuffer.h: Regenerated.
+ * java/lang/StringBuffer.java: Remerged with GNU Classpath.
+ * java/lang/StringBuilder.h: Regenerated.
+ * java/lang/StringBuilder.java: Remerged with GNU Classpath.
+ * java/lang/natAbstractStringBuffer.cc: Provide common
+ native methods for StringBuffer and StringBuilder.
+ * java/lang/natStringBuffer.cc,
+ * java/lang/natStringBuilder.cc: Removed.
+
+2008-09-04 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.in,
+ * classpath/configure: Regenerated.
+ * gnu/gcj/util/natDebug.cc,
+ * gnu/gcj/xlib/natColormap.cc,
+ * gnu/gcj/xlib/natDisplay.cc,
+ * gnu/gcj/xlib/natDrawable.cc,
+ * gnu/gcj/xlib/natFont.cc,
+ * gnu/gcj/xlib/natWMSizeHints.cc,
+ * gnu/gcj/xlib/natWindow.cc,
+ * gnu/gcj/xlib/natXImage.cc:
+ Add :: prefix to namespaces.
+ * java/io/CharArrayWriter.h,
+ * java/lang/StringBuffer.h:
+ Regenerated using patched gjavah.
+ * java/lang/natStringBuffer.cc:
+ Fix naming of append(jint).
+ * java/sql/Timestamp.h: Regenerated
+ using patched gjavah.
+ * jni.cc: Rename p to functions
+ to match change in GNU Classpath.
+ * scripts/makemake.tcl: Switch
+ gnu.java.math to BC compilation.
+ * sources.am: Regenerated.
+
+2008-08-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.in: Updated location of Configuration.java.
+ * classpath/lib/gnu/java/locale/LocaleData.class: Regenerated.
+
+2008-08-18 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.in: Updated with new Java files.
+ * classpath/configure: Regenerated.
+ * classpath/tools/Makefile.am: Add missing
+ use of GJDOC_EX so --disable-gjdoc works.
+ * classpath/tools/Makefile.in: Regenerated.
+
+2008-08-15 Matthias Klose <doko@ubuntu.com>
+
+ Import GNU Classpath (libgcj-import-20080811).
+
+ * Regenerate class and header files.
+ * Regenerate auto* files.
+ * configure.ac: Don't pass --with-fastjar to classpath, substitute new
+ dummy value in classpath/gnu/classpath/Configuration.java.in, pass
+ --disable-gjdoc to classpath.
+ * scripts/makemake.tcl:
+ * sources.am: Regenerated.
+ * java/lang/AbstractStringBuffer.java, gnu/java/lang/VMCPStringBuilder.java:
+ New, copied from classpath, use System instead of VMSystem.
+ * java/lang/StringBuffer.java: Merge from classpath.
+ * java/lang/ClassLoader.java: Merge from classpath.
+ * gcj/javaprims.h: Update class definitions,
+ remove _Jv_jobjectRefType, jobjectRefType definitions.
+
2008-09-30 Andreas Tobler <a.tobler@schweiz.org>
* testsuite/lib/libjava.exp (libjava_arguments): Do not append
diff --git a/libjava/HACKING b/libjava/HACKING
index e6a0f4c..ba85b69 100644
--- a/libjava/HACKING
+++ b/libjava/HACKING
@@ -111,7 +111,8 @@ To import a new release:
| xargs -r rm -f
- Build, fix, till everything works.
Be sure to build all peers (--enable-java-awt=gtk,xlib,qt
- --enable-gconf-peer --enable-gstreamer-peer)
+ --enable-gconf-peer --enable-gstreamer-peer).
+ Be sure to build gjdoc (--enable-gjdoc).
Be sure to update gnu/classpath/Configuration.java to reflect
the new version
Possibly update the gcj/javaprims.h file with scripts/classes.pl
diff --git a/libjava/Makefile.am b/libjava/Makefile.am
index 9b778f5..82cc63e 100644
--- a/libjava/Makefile.am
+++ b/libjava/Makefile.am
@@ -82,6 +82,9 @@ if NATIVE
bin_PROGRAMS = jv-convert gij grmic grmiregistry gcj-dbtool \
gappletviewer gjarsigner gkeytool gjar gcjh gjavah gnative2ascii \
gorbd grmid gserialver gtnameserv gc-analyze
+if CREATE_GJDOC
+bin_PROGRAMS += gjdoc
+endif
## It is convenient to actually build and install the default database
## when gcj-dbtool is available.
@@ -1013,6 +1016,16 @@ grmiregistry_LINK = $(GCJLINK)
grmiregistry_LDADD = -L$(here)/.libs libgcj-tools.la
grmiregistry_DEPENDENCIES = libgcj-tools.la
+## This is a dummy definition.
+gjdoc_SOURCES =
+gjdoc_LDFLAGS = --main=gnu.classpath.tools.gjdoc.Main \
+ -Djava.class.path=$(ANTLR_JAR) \
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
+gjdoc_LINK = $(GCJLINK)
+## See jv_convert_LDADD.
+gjdoc_LDADD = -L$(here)/.libs libgcj-tools.la
+gjdoc_DEPENDENCIES = libgcj-tools.la
+
## ################################################################
if INTERPRETER
nat_jdwp_source_files = \
@@ -1082,8 +1095,7 @@ java/lang/natMath.cc \
java/lang/natObject.cc \
java/lang/natRuntime.cc \
java/lang/natString.cc \
-java/lang/natStringBuffer.cc \
-java/lang/natStringBuilder.cc \
+java/lang/natAbstractStringBuffer.cc \
java/lang/natSystem.cc \
java/lang/natThread.cc \
java/lang/natThreadLocal.cc \
diff --git a/libjava/Makefile.in b/libjava/Makefile.in
index 92ae486..a803fed 100644
--- a/libjava/Makefile.in
+++ b/libjava/Makefile.in
@@ -51,20 +51,22 @@ target_triplet = @target@
@NATIVE_TRUE@ gjar$(EXEEXT) gcjh$(EXEEXT) gjavah$(EXEEXT) \
@NATIVE_TRUE@ gnative2ascii$(EXEEXT) gorbd$(EXEEXT) \
@NATIVE_TRUE@ grmid$(EXEEXT) gserialver$(EXEEXT) \
-@NATIVE_TRUE@ gtnameserv$(EXEEXT) gc-analyze$(EXEEXT)
-@INSTALL_AOT_RPM_TRUE@am__append_5 = contrib/aot-compile-rpm
+@NATIVE_TRUE@ gtnameserv$(EXEEXT) gc-analyze$(EXEEXT) \
+@NATIVE_TRUE@ $(am__EXEEXT_1)
+@CREATE_GJDOC_TRUE@@NATIVE_TRUE@am__append_5 = gjdoc
+@INSTALL_AOT_RPM_TRUE@am__append_6 = contrib/aot-compile-rpm
@BUILD_ECJ1_TRUE@libexecsub_PROGRAMS = ecjx$(EXEEXT)
-@ANONVERSCRIPT_TRUE@am__append_6 = -Wl,--version-script=$(srcdir)/libgcj.ver
-@USING_GCC_TRUE@am__append_7 = $(WARNINGS)
-@USING_BOEHMGC_TRUE@am__append_8 = boehm.cc
-@USING_NOGC_TRUE@am__append_9 = nogc.cc
-@USING_POSIX_PLATFORM_TRUE@am__append_10 = posix.cc
-@USING_WIN32_PLATFORM_TRUE@am__append_11 = win32.cc
-@USING_DARWIN_CRT_TRUE@am__append_12 = darwin.cc
-@USING_POSIX_THREADS_TRUE@am__append_13 = posix-threads.cc
-@USING_WIN32_THREADS_TRUE@am__append_14 = win32-threads.cc
-@USING_NO_THREADS_TRUE@am__append_15 = no-threads.cc
-@ANONVERSCRIPT_TRUE@am__append_16 = $(srcdir)/libgcj.ver
+@ANONVERSCRIPT_TRUE@am__append_7 = -Wl,--version-script=$(srcdir)/libgcj.ver
+@USING_GCC_TRUE@am__append_8 = $(WARNINGS)
+@USING_BOEHMGC_TRUE@am__append_9 = boehm.cc
+@USING_NOGC_TRUE@am__append_10 = nogc.cc
+@USING_POSIX_PLATFORM_TRUE@am__append_11 = posix.cc
+@USING_WIN32_PLATFORM_TRUE@am__append_12 = win32.cc
+@USING_DARWIN_CRT_TRUE@am__append_13 = darwin.cc
+@USING_POSIX_THREADS_TRUE@am__append_14 = posix-threads.cc
+@USING_WIN32_THREADS_TRUE@am__append_15 = win32-threads.cc
+@USING_NO_THREADS_TRUE@am__append_16 = no-threads.cc
+@ANONVERSCRIPT_TRUE@am__append_17 = $(srcdir)/libgcj.ver
DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
$(srcdir)/../config.guess $(srcdir)/../config.sub \
$(srcdir)/../depcomp $(srcdir)/../install-sh \
@@ -80,8 +82,8 @@ DIST_COMMON = README $(am__configure_deps) $(srcdir)/../compile \
$(top_srcdir)/scripts/jar.in COPYING ChangeLog NEWS THANKS
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@noinst_PROGRAMS = \
@MAINTAINER_MODE_TRUE@@NATIVE_TRUE@ gen-from-JIS$(EXEEXT)
-@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_17 = libgcj_bc.la
-@XLIB_AWT_TRUE@am__append_18 = $(xlib_nat_headers)
+@NATIVE_TRUE@@USE_LIBGCJ_BC_TRUE@am__append_18 = libgcj_bc.la
+@XLIB_AWT_TRUE@am__append_19 = $(xlib_nat_headers)
subdir = .
ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
am__aclocal_m4_deps = $(top_srcdir)/libltdl/acinclude.m4 \
@@ -183,14 +185,14 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
gnu/java/awt/java2d.lo gnu/java/awt/peer.lo \
gnu/java/awt/peer/headless.lo gnu/java/awt/print.lo \
gnu/java/io.lo gnu/java/lang.lo gnu/java/lang/reflect.lo \
- gnu/java/locale.lo gnu/java/math.lo gnu/java/net.lo \
- gnu/java/net/loader.lo gnu/java/net/local.lo \
- gnu/java/net/protocol/core.lo gnu/java/net/protocol/file.lo \
- gnu/java/net/protocol/ftp.lo gnu/java/net/protocol/gcjlib.lo \
- gnu/java/net/protocol/http.lo gnu/java/net/protocol/https.lo \
- gnu/java/net/protocol/jar.lo gnu/java/nio.lo \
- gnu/java/nio/channels.lo gnu/java/nio/charset.lo \
- gnu/java/rmi.lo gnu/java/rmi/activation.lo gnu/java/rmi/dgc.lo \
+ gnu/java/locale.lo gnu/java/net.lo gnu/java/net/loader.lo \
+ gnu/java/net/local.lo gnu/java/net/protocol/core.lo \
+ gnu/java/net/protocol/file.lo gnu/java/net/protocol/ftp.lo \
+ gnu/java/net/protocol/gcjlib.lo gnu/java/net/protocol/http.lo \
+ gnu/java/net/protocol/https.lo gnu/java/net/protocol/jar.lo \
+ gnu/java/nio.lo gnu/java/nio/channels.lo \
+ gnu/java/nio/charset.lo gnu/java/rmi.lo \
+ gnu/java/rmi/activation.lo gnu/java/rmi/dgc.lo \
gnu/java/rmi/registry.lo gnu/java/rmi/server.lo \
gnu/java/security.lo gnu/java/security/action.lo \
gnu/java/security/ber.lo gnu/java/security/der.lo \
@@ -204,18 +206,18 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
gnu/java/security/x509.lo gnu/java/security/x509/ext.lo \
gnu/java/text.lo gnu/java/util.lo gnu/java/util/jar.lo \
gnu/java/util/prefs.lo gnu/java/util/regex.lo \
- gnu/javax/crypto.lo gnu/javax/crypto/assembly.lo \
- gnu/javax/crypto/cipher.lo gnu/javax/crypto/jce.lo \
- gnu/javax/crypto/jce/cipher.lo gnu/javax/crypto/jce/key.lo \
- gnu/javax/crypto/jce/keyring.lo gnu/javax/crypto/jce/mac.lo \
- gnu/javax/crypto/jce/params.lo gnu/javax/crypto/jce/prng.lo \
- gnu/javax/crypto/jce/sig.lo gnu/javax/crypto/jce/spec.lo \
- gnu/javax/crypto/key.lo gnu/javax/crypto/key/dh.lo \
- gnu/javax/crypto/key/srp6.lo gnu/javax/crypto/keyring.lo \
- gnu/javax/crypto/kwa.lo gnu/javax/crypto/mac.lo \
- gnu/javax/crypto/mode.lo gnu/javax/crypto/pad.lo \
- gnu/javax/crypto/prng.lo gnu/javax/crypto/sasl.lo \
- gnu/javax/crypto/sasl/anonymous.lo \
+ gnu/javax/activation/viewers.lo gnu/javax/crypto.lo \
+ gnu/javax/crypto/assembly.lo gnu/javax/crypto/cipher.lo \
+ gnu/javax/crypto/jce.lo gnu/javax/crypto/jce/cipher.lo \
+ gnu/javax/crypto/jce/key.lo gnu/javax/crypto/jce/keyring.lo \
+ gnu/javax/crypto/jce/mac.lo gnu/javax/crypto/jce/params.lo \
+ gnu/javax/crypto/jce/prng.lo gnu/javax/crypto/jce/sig.lo \
+ gnu/javax/crypto/jce/spec.lo gnu/javax/crypto/key.lo \
+ gnu/javax/crypto/key/dh.lo gnu/javax/crypto/key/srp6.lo \
+ gnu/javax/crypto/keyring.lo gnu/javax/crypto/kwa.lo \
+ gnu/javax/crypto/mac.lo gnu/javax/crypto/mode.lo \
+ gnu/javax/crypto/pad.lo gnu/javax/crypto/prng.lo \
+ gnu/javax/crypto/sasl.lo gnu/javax/crypto/sasl/anonymous.lo \
gnu/javax/crypto/sasl/crammd5.lo \
gnu/javax/crypto/sasl/plain.lo gnu/javax/crypto/sasl/srp.lo \
gnu/javax/imageio.lo gnu/javax/imageio/bmp.lo \
@@ -263,16 +265,17 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
java/util/concurrent/atomic.lo java/util/concurrent/locks.lo \
java/util/jar.lo java/util/logging.lo java/util/prefs.lo \
java/util/regex.lo java/util/spi.lo java/util/zip.lo \
- javax/accessibility.lo javax/activity.lo javax/crypto.lo \
- javax/crypto/interfaces.lo javax/crypto/spec.lo \
- javax/management.lo javax/management/loading.lo \
- javax/management/openmbean.lo javax/management/remote.lo \
- javax/management/remote/rmi.lo javax/naming.lo \
- javax/naming/directory.lo javax/naming/event.lo \
- javax/naming/ldap.lo javax/naming/spi.lo javax/net.lo \
- javax/net/ssl.lo javax/print.lo javax/print/attribute.lo \
- javax/print/attribute/standard.lo javax/print/event.lo \
- javax/security/auth.lo javax/security/auth/callback.lo \
+ javax/accessibility.lo javax/activation.lo javax/activity.lo \
+ javax/crypto.lo javax/crypto/interfaces.lo \
+ javax/crypto/spec.lo javax/management.lo \
+ javax/management/loading.lo javax/management/openmbean.lo \
+ javax/management/remote.lo javax/management/remote/rmi.lo \
+ javax/naming.lo javax/naming/directory.lo \
+ javax/naming/event.lo javax/naming/ldap.lo javax/naming/spi.lo \
+ javax/net.lo javax/net/ssl.lo javax/print.lo \
+ javax/print/attribute.lo javax/print/attribute/standard.lo \
+ javax/print/event.lo javax/security/auth.lo \
+ javax/security/auth/callback.lo \
javax/security/auth/kerberos.lo javax/security/auth/login.lo \
javax/security/auth/spi.lo javax/security/auth/x500.lo \
javax/security/cert.lo javax/security/sasl.lo \
@@ -292,7 +295,7 @@ am__DEPENDENCIES_2 = gnu/awt.lo gnu/awt/j2d.lo gnu/classpath.lo \
sun/reflect/misc.lo $(am__DEPENDENCIES_1)
am__DEPENDENCIES_3 = gnu-CORBA.lo gnu-java-awt-dnd-peer-gtk.lo \
gnu-java-awt-peer-gtk.lo gnu-java-awt-peer-swing.lo \
- gnu-java-beans.lo gnu-java-lang-management.lo \
+ gnu-java-beans.lo gnu-java-lang-management.lo gnu-java-math.lo \
gnu-java-util-prefs-gconf.lo gnu-javax-management.lo \
gnu-javax-rmi.lo gnu-javax-sound-midi.lo gnu-xml-aelfred2.lo \
gnu-xml-dom.lo gnu-xml-libxmlj.lo gnu-xml-pipeline.lo \
@@ -352,12 +355,11 @@ am__libgcj_la_SOURCES_DIST = prims.cc jni.cc exception.cc \
java/lang/natConcreteProcess.cc java/lang/natVMDouble.cc \
java/lang/natVMFloat.cc java/lang/natMath.cc \
java/lang/natObject.cc java/lang/natRuntime.cc \
- java/lang/natString.cc java/lang/natStringBuffer.cc \
- java/lang/natStringBuilder.cc java/lang/natSystem.cc \
- java/lang/natThread.cc java/lang/natThreadLocal.cc \
- java/lang/natVMClassLoader.cc java/lang/natVMProcess.cc \
- java/lang/natVMThrowable.cc java/lang/ref/natReference.cc \
- java/lang/reflect/natArray.cc \
+ java/lang/natString.cc java/lang/natAbstractStringBuffer.cc \
+ java/lang/natSystem.cc java/lang/natThread.cc \
+ java/lang/natThreadLocal.cc java/lang/natVMClassLoader.cc \
+ java/lang/natVMProcess.cc java/lang/natVMThrowable.cc \
+ java/lang/ref/natReference.cc java/lang/reflect/natArray.cc \
java/lang/reflect/natConstructor.cc \
java/lang/reflect/natField.cc java/lang/reflect/natMethod.cc \
java/lang/reflect/natVMProxy.cc java/net/natVMInetAddress.cc \
@@ -417,12 +419,11 @@ am__objects_5 = $(am__objects_3) gnu/classpath/natConfiguration.lo \
java/lang/natConcreteProcess.lo java/lang/natVMDouble.lo \
java/lang/natVMFloat.lo java/lang/natMath.lo \
java/lang/natObject.lo java/lang/natRuntime.lo \
- java/lang/natString.lo java/lang/natStringBuffer.lo \
- java/lang/natStringBuilder.lo java/lang/natSystem.lo \
- java/lang/natThread.lo java/lang/natThreadLocal.lo \
- java/lang/natVMClassLoader.lo java/lang/natVMProcess.lo \
- java/lang/natVMThrowable.lo java/lang/ref/natReference.lo \
- java/lang/reflect/natArray.lo \
+ java/lang/natString.lo java/lang/natAbstractStringBuffer.lo \
+ java/lang/natSystem.lo java/lang/natThread.lo \
+ java/lang/natThreadLocal.lo java/lang/natVMClassLoader.lo \
+ java/lang/natVMProcess.lo java/lang/natVMThrowable.lo \
+ java/lang/ref/natReference.lo java/lang/reflect/natArray.lo \
java/lang/reflect/natConstructor.lo \
java/lang/reflect/natField.lo java/lang/reflect/natMethod.lo \
java/lang/reflect/natVMProxy.lo java/net/natVMInetAddress.lo \
@@ -457,6 +458,7 @@ am_libgij_la_OBJECTS = gij.lo
libgij_la_OBJECTS = $(am_libgij_la_OBJECTS)
am_libjvm_la_OBJECTS = jni-libjvm.lo
libjvm_la_OBJECTS = $(am_libjvm_la_OBJECTS)
+@CREATE_GJDOC_TRUE@@NATIVE_TRUE@am__EXEEXT_1 = gjdoc$(EXEEXT)
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
libexecsubPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS) $(libexecsub_PROGRAMS) $(noinst_PROGRAMS)
@@ -484,6 +486,8 @@ am_gjarsigner_OBJECTS =
gjarsigner_OBJECTS = $(am_gjarsigner_OBJECTS)
am_gjavah_OBJECTS =
gjavah_OBJECTS = $(am_gjavah_OBJECTS)
+am_gjdoc_OBJECTS =
+gjdoc_OBJECTS = $(am_gjdoc_OBJECTS)
am_gkeytool_OBJECTS =
gkeytool_OBJECTS = $(am_gkeytool_OBJECTS)
am_gnative2ascii_OBJECTS =
@@ -533,10 +537,11 @@ SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) $(libgcj_tools_la_SOURCES) \
$(libjvm_la_SOURCES) $(ecjx_SOURCES) $(gappletviewer_SOURCES) \
$(gc_analyze_SOURCES) $(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \
$(gen_from_JIS_SOURCES) $(gij_SOURCES) $(gjar_SOURCES) \
- $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gkeytool_SOURCES) \
- $(gnative2ascii_SOURCES) $(gorbd_SOURCES) $(grmic_SOURCES) \
- $(grmid_SOURCES) $(grmiregistry_SOURCES) $(gserialver_SOURCES) \
- $(gtnameserv_SOURCES) $(jv_convert_SOURCES)
+ $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gjdoc_SOURCES) \
+ $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \
+ $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \
+ $(gserialver_SOURCES) $(gtnameserv_SOURCES) \
+ $(jv_convert_SOURCES)
DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
$(libgcj_tools_la_SOURCES) $(am__libgcj_la_SOURCES_DIST) \
$(EXTRA_libgcj_la_SOURCES) $(libgcj_bc_la_SOURCES) \
@@ -545,10 +550,10 @@ DIST_SOURCES = $(lib_gnu_awt_xlib_la_SOURCES) \
$(gcj_dbtool_SOURCES) $(gcjh_SOURCES) \
$(am__gen_from_JIS_SOURCES_DIST) $(gij_SOURCES) \
$(gjar_SOURCES) $(gjarsigner_SOURCES) $(gjavah_SOURCES) \
- $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \
- $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \
- $(gserialver_SOURCES) $(gtnameserv_SOURCES) \
- $(jv_convert_SOURCES)
+ $(gjdoc_SOURCES) $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) \
+ $(gorbd_SOURCES) $(grmic_SOURCES) $(grmid_SOURCES) \
+ $(grmiregistry_SOURCES) $(gserialver_SOURCES) \
+ $(gtnameserv_SOURCES) $(jv_convert_SOURCES)
RECURSIVE_TARGETS = all-recursive check-recursive dvi-recursive \
html-recursive info-recursive install-data-recursive \
install-exec-recursive install-info-recursive \
@@ -579,6 +584,7 @@ AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
ANONVERSCRIPT_FALSE = @ANONVERSCRIPT_FALSE@
ANONVERSCRIPT_TRUE = @ANONVERSCRIPT_TRUE@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
@@ -599,6 +605,8 @@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU = @CPU@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@
CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@
CXX = @CXX@
@@ -821,7 +829,7 @@ dbexecdir = @dbexecdir@
exec_prefix = @exec_prefix@
extra_gij_ldflags = @extra_gij_ldflags@
extra_ldflags = @extra_ldflags@
-extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_6)
+extra_ldflags_libjava = @extra_ldflags_libjava@ $(am__append_7)
gcc_suffix = @gcc_suffix@
gcjsubdir = @gcjsubdir@
gxx_include_dir = @gxx_include_dir@
@@ -909,7 +917,7 @@ db_name = classmap.db
db_pathtail = $(gcjsubdir)/$(db_name)
@NATIVE_TRUE@dbexec_DATA = $(db_name)
bin_SCRIPTS = addr2name.awk contrib/rebuild-gcj-db contrib/aot-compile \
- $(am__append_5)
+ $(am__append_6)
GCJ_WITH_FLAGS = $(GCJ) --encoding=UTF-8 -Wno-deprecated
GCJLINK = $(LIBTOOL) --tag=GCJ --mode=link $(GCJ) -L$(here) $(JC1FLAGS) \
$(LDFLAGS) -o $@
@@ -947,7 +955,7 @@ AM_GCJFLAGS = \
--encoding=UTF-8 \
-Wno-deprecated -fbootstrap-classes
-AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_7)
+AM_CFLAGS = @LIBGCJ_CFLAGS@ $(am__append_8)
@SUPPRESS_LIBGCJ_BC_FALSE@LIBGCJ_BC_FLAGS = -findirect-dispatch -fno-indirect-classes
@SUPPRESS_LIBGCJ_BC_TRUE@LIBGCJ_BC_FLAGS =
@BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE@LIBGCJ_REDUCED_REFLECTION_FLAGS =
@@ -974,9 +982,9 @@ libgij_la_LDFLAGS = -rpath $(toolexeclibdir) \
@INTERPRETER_TRUE@libgcj_interpret_source_files = jvmti.cc interpret.cc
libgcj_la_SOURCES = prims.cc jni.cc exception.cc stacktrace.cc link.cc \
defineclass.cc verify.cc $(libgcj_interpret_source_files) \
- $(nat_source_files) $(am__append_8) $(am__append_9) \
- $(am__append_10) $(am__append_11) $(am__append_12) \
- $(am__append_13) $(am__append_14) $(am__append_15)
+ $(nat_source_files) $(am__append_9) $(am__append_10) \
+ $(am__append_11) $(am__append_12) $(am__append_13) \
+ $(am__append_14) $(am__append_15) $(am__append_16)
nat_files = $(nat_source_files:.cc=.lo)
xlib_nat_files = $(xlib_nat_source_files:.cc=.lo)
@@ -1000,7 +1008,7 @@ libgcj_la_LIBADD = \
libgcj_la_DEPENDENCIES = libgcj-$(gcc_version).jar java/lang/Object.lo \
java/lang/Class.lo java/process-$(PLATFORM).lo \
$(all_packages_source_files:.list=.lo) $(LIBLTDL) \
- $(libgcj_la_LIBADD) $(am__append_16)
+ $(libgcj_la_LIBADD) $(am__append_17)
libgcj_la_LINK = $(LIBLINK)
EXTRA_libgcj_la_SOURCES = java/lang/Object.java
libgcj_tools_la_SOURCES = classpath/tools/tools.zip
@@ -1239,7 +1247,7 @@ gnu/awt/xlib/XToolkit.java
gnu_awt_xlib_header_files = $(patsubst %.java,%.h,$(gnu_awt_xlib_source_files))
gnu_classpath_source_files = \
-gnu/classpath/Configuration.java \
+classpath/gnu/classpath/Configuration.java \
classpath/gnu/classpath/NotImplementedException.java \
classpath/gnu/classpath/Pair.java \
classpath/gnu/classpath/Pointer.java \
@@ -1870,10 +1878,12 @@ classpath/gnu/java/io/PlatformHelper.java
gnu_java_io_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_io_source_files)))
gnu_java_lang_source_files = \
classpath/gnu/java/lang/ArrayHelper.java \
+classpath/gnu/java/lang/CPStringBuilder.java \
classpath/gnu/java/lang/CharData.java \
classpath/gnu/java/lang/ClassHelper.java \
classpath/gnu/java/lang/InstrumentationImpl.java \
gnu/java/lang/MainThread.java \
+gnu/java/lang/VMCPStringBuilder.java \
gnu/java/lang/VMInstrumentationImpl.java
gnu_java_lang_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_lang_source_files)))
@@ -1915,9 +1925,9 @@ classpath/gnu/java/locale/LocaleHelper.java
gnu_java_locale_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_locale_source_files)))
gnu_java_math_source_files = \
classpath/gnu/java/math/Fixed.java \
+classpath/gnu/java/math/GMP.java \
classpath/gnu/java/math/MPN.java
-gnu_java_math_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_math_source_files)))
gnu_java_net_source_files = \
classpath/gnu/java/net/CRLFInputStream.java \
classpath/gnu/java/net/CRLFOutputStream.java \
@@ -2420,7 +2430,6 @@ classpath/gnu/java/util/jar/JarUtils.java
gnu_java_util_jar_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_util_jar_source_files)))
gnu_java_util_prefs_source_files = \
-classpath/gnu/java/util/prefs/EventDispatcher.java \
classpath/gnu/java/util/prefs/FileBasedFactory.java \
classpath/gnu/java/util/prefs/FileBasedPreferences.java \
classpath/gnu/java/util/prefs/GConfBasedFactory.java \
@@ -2468,6 +2477,12 @@ classpath/gnu/java/util/regex/RETokenWordBoundary.java \
classpath/gnu/java/util/regex/UncheckedRE.java
gnu_java_util_regex_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_util_regex_source_files)))
+gnu_javax_activation_viewers_source_files = \
+classpath/gnu/javax/activation/viewers/ImageViewer.java \
+classpath/gnu/javax/activation/viewers/TextEditor.java \
+classpath/gnu/javax/activation/viewers/TextViewer.java
+
+gnu_javax_activation_viewers_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_activation_viewers_source_files)))
gnu_javax_crypto_source_files = \
classpath/gnu/javax/crypto/RSACipherImpl.java
@@ -4228,6 +4243,7 @@ classpath/java/io/Writer.java
java_io_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(java_io_source_files)))
java_lang_source_files = \
classpath/java/lang/AbstractMethodError.java \
+java/lang/AbstractStringBuffer.java \
classpath/java/lang/Appendable.java \
classpath/java/lang/ArithmeticException.java \
classpath/java/lang/ArrayIndexOutOfBoundsException.java \
@@ -4311,6 +4327,7 @@ java/lang/Thread.java \
classpath/java/lang/ThreadDeath.java \
classpath/java/lang/ThreadGroup.java \
java/lang/ThreadLocal.java \
+classpath/java/lang/ThreadLocalMap.java \
classpath/java/lang/Throwable.java \
classpath/java/lang/TypeNotPresentException.java \
classpath/java/lang/UnknownError.java \
@@ -4949,6 +4966,7 @@ classpath/external/jsr166/java/util/Queue.java \
classpath/java/util/Random.java \
classpath/java/util/RandomAccess.java \
classpath/java/util/ResourceBundle.java \
+classpath/java/util/Scanner.java \
classpath/java/util/ServiceConfigurationError.java \
classpath/java/util/ServiceLoader.java \
classpath/java/util/Set.java \
@@ -5152,6 +5170,29 @@ classpath/javax/accessibility/AccessibleTextSequence.java \
classpath/javax/accessibility/AccessibleValue.java
javax_accessibility_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_accessibility_source_files)))
+javax_activation_source_files = \
+classpath/javax/activation/ActivationDataFlavor.java \
+classpath/javax/activation/CommandInfo.java \
+classpath/javax/activation/CommandMap.java \
+classpath/javax/activation/CommandObject.java \
+classpath/javax/activation/DataContentHandler.java \
+classpath/javax/activation/DataContentHandlerFactory.java \
+classpath/javax/activation/DataHandler.java \
+classpath/javax/activation/DataHandlerDataSource.java \
+classpath/javax/activation/DataSource.java \
+classpath/javax/activation/DataSourceDataContentHandler.java \
+classpath/javax/activation/FileDataSource.java \
+classpath/javax/activation/FileTypeMap.java \
+classpath/javax/activation/MailcapCommandMap.java \
+classpath/javax/activation/MimeType.java \
+classpath/javax/activation/MimeTypeParameterList.java \
+classpath/javax/activation/MimeTypeParseException.java \
+classpath/javax/activation/MimetypesFileTypeMap.java \
+classpath/javax/activation/ObjectDataContentHandler.java \
+classpath/javax/activation/URLDataSource.java \
+classpath/javax/activation/UnsupportedDataTypeException.java
+
+javax_activation_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_activation_source_files)))
javax_activity_source_files = \
classpath/javax/activity/ActivityCompletedException.java \
classpath/javax/activity/ActivityRequiredException.java \
@@ -7362,7 +7403,6 @@ all_packages_source_files = \
gnu/java/lang.list \
gnu/java/lang/reflect.list \
gnu/java/locale.list \
- gnu/java/math.list \
gnu/java/net.list \
gnu/java/net/loader.list \
gnu/java/net/local.list \
@@ -7406,6 +7446,7 @@ all_packages_source_files = \
gnu/java/util/jar.list \
gnu/java/util/prefs.list \
gnu/java/util/regex.list \
+ gnu/javax/activation/viewers.list \
gnu/javax/crypto.list \
gnu/javax/crypto/assembly.list \
gnu/javax/crypto/cipher.list \
@@ -7524,6 +7565,7 @@ all_packages_source_files = \
java/util/spi.list \
java/util/zip.list \
javax/accessibility.list \
+ javax/activation.list \
javax/activity.list \
javax/crypto.list \
javax/crypto/interfaces.list \
@@ -7614,7 +7656,6 @@ ordinary_header_files = \
$(gnu_java_lang_management_header_files) \
$(gnu_java_lang_reflect_header_files) \
$(gnu_java_locale_header_files) \
- $(gnu_java_math_header_files) \
$(gnu_java_net_header_files) \
$(gnu_java_net_loader_header_files) \
$(gnu_java_net_local_header_files) \
@@ -7658,6 +7699,7 @@ ordinary_header_files = \
$(gnu_java_util_jar_header_files) \
$(gnu_java_util_prefs_header_files) \
$(gnu_java_util_regex_header_files) \
+ $(gnu_javax_activation_viewers_header_files) \
$(gnu_javax_crypto_header_files) \
$(gnu_javax_crypto_assembly_header_files) \
$(gnu_javax_crypto_cipher_header_files) \
@@ -7771,6 +7813,7 @@ ordinary_header_files = \
$(java_util_spi_header_files) \
$(java_util_zip_header_files) \
$(javax_accessibility_header_files) \
+ $(javax_activation_header_files) \
$(javax_activity_header_files) \
$(javax_crypto_header_files) \
$(javax_crypto_interfaces_header_files) \
@@ -7839,6 +7882,7 @@ bc_objects = \
gnu-java-awt-peer-swing.lo \
gnu-java-beans.lo \
gnu-java-lang-management.lo \
+ gnu-java-math.lo \
gnu-java-util-prefs-gconf.lo \
gnu-javax-management.lo \
gnu-javax-rmi.lo \
@@ -7883,7 +7927,9 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties \
classpath/resource/gnu/java/locale/LocaleInformation_aa_ET.properties \
classpath/resource/gnu/java/locale/LocaleInformation_af.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties \
classpath/resource/gnu/java/locale/LocaleInformation_af_ZA.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ak.properties \
classpath/resource/gnu/java/locale/LocaleInformation_am.properties \
classpath/resource/gnu/java/locale/LocaleInformation_am_ET.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ar.properties \
@@ -7906,11 +7952,14 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_bg_BG.properties \
classpath/resource/gnu/java/locale/LocaleInformation_bn.properties \
classpath/resource/gnu/java/locale/LocaleInformation_bn_IN.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_bo.properties \
classpath/resource/gnu/java/locale/LocaleInformation_bs.properties \
classpath/resource/gnu/java/locale/LocaleInformation_byn.properties \
classpath/resource/gnu/java/locale/LocaleInformation_byn_ER.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ca.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ca_ES.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_cch.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_cop.properties \
classpath/resource/gnu/java/locale/LocaleInformation_cs.properties \
classpath/resource/gnu/java/locale/LocaleInformation_cs_CZ.properties \
classpath/resource/gnu/java/locale/LocaleInformation_cy.properties \
@@ -7928,6 +7977,7 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_dv_MV.properties \
classpath/resource/gnu/java/locale/LocaleInformation_dz.properties \
classpath/resource/gnu/java/locale/LocaleInformation_dz_BT.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ee.properties \
classpath/resource/gnu/java/locale/LocaleInformation_el.properties \
classpath/resource/gnu/java/locale/LocaleInformation_el_CY.properties \
classpath/resource/gnu/java/locale/LocaleInformation_el_GR.properties \
@@ -7938,18 +7988,23 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_en_BW.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_BZ.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_CA.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_GB.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_GU.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_HK.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_IE.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_IN.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_MH.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_MP.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_MT.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_NZ.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_PH.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_PK.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_SG.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_UM.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_US.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties \
@@ -7987,6 +8042,7 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_fa_IR.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fi.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fi_FI.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_fil.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fo.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fo_FO.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fr.properties \
@@ -7994,8 +8050,10 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_fr_CA.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fr_CH.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fr_LU.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_fur.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ga.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ga_IE.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties \
classpath/resource/gnu/java/locale/LocaleInformation_gez.properties \
classpath/resource/gnu/java/locale/LocaleInformation_gez_ER.properties \
classpath/resource/gnu/java/locale/LocaleInformation_gez_ET.properties \
@@ -8005,6 +8063,8 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_gu_IN.properties \
classpath/resource/gnu/java/locale/LocaleInformation_gv.properties \
classpath/resource/gnu/java/locale/LocaleInformation_gv_GB.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ha.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties \
classpath/resource/gnu/java/locale/LocaleInformation_haw.properties \
classpath/resource/gnu/java/locale/LocaleInformation_haw_US.properties \
classpath/resource/gnu/java/locale/LocaleInformation_he.properties \
@@ -8017,8 +8077,11 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_hy.properties \
classpath/resource/gnu/java/locale/LocaleInformation_hy_AM.properties \
classpath/resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ia.properties \
classpath/resource/gnu/java/locale/LocaleInformation_id.properties \
classpath/resource/gnu/java/locale/LocaleInformation_id_ID.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ig.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ii.properties \
classpath/resource/gnu/java/locale/LocaleInformation_is.properties \
classpath/resource/gnu/java/locale/LocaleInformation_is_IS.properties \
classpath/resource/gnu/java/locale/LocaleInformation_it.properties \
@@ -8028,6 +8091,10 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ja.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ja_JP.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ka.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_kam.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kk.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kk_KZ.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kl.properties \
@@ -8040,9 +8107,14 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ko_KR.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kok.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kok_IN.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ku.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kw.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kw_GB.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ky.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ln.properties \
classpath/resource/gnu/java/locale/LocaleInformation_lo.properties \
classpath/resource/gnu/java/locale/LocaleInformation_lo_LA.properties \
classpath/resource/gnu/java/locale/LocaleInformation_lt.properties \
@@ -8060,19 +8132,25 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ms_MY.properties \
classpath/resource/gnu/java/locale/LocaleInformation_mt.properties \
classpath/resource/gnu/java/locale/LocaleInformation_mt_MT.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_my.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nb.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nb_NO.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ne.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nl.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nl_BE.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nl_NL.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nn.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nn_NO.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_nr.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_nso.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ny.properties \
classpath/resource/gnu/java/locale/LocaleInformation_om.properties \
classpath/resource/gnu/java/locale/LocaleInformation_om_ET.properties \
classpath/resource/gnu/java/locale/LocaleInformation_om_KE.properties \
classpath/resource/gnu/java/locale/LocaleInformation_or.properties \
classpath/resource/gnu/java/locale/LocaleInformation_or_IN.properties \
classpath/resource/gnu/java/locale/LocaleInformation_pa.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties \
classpath/resource/gnu/java/locale/LocaleInformation_pa_IN.properties \
classpath/resource/gnu/java/locale/LocaleInformation_pl.properties \
classpath/resource/gnu/java/locale/LocaleInformation_pl_PL.properties \
@@ -8086,8 +8164,12 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ru.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ru_RU.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ru_UA.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_rw.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sa.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sa_IN.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_se.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_si.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sid.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sid_ET.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sk.properties \
@@ -8106,6 +8188,11 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_sr_BA_Latn.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sr_Cyrl.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sr_Latn.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ss.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_st.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sv.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sv_FI.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sv_SE.properties \
@@ -8118,6 +8205,7 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ta_IN.properties \
classpath/resource/gnu/java/locale/LocaleInformation_te.properties \
classpath/resource/gnu/java/locale/LocaleInformation_te_IN.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_tg.properties \
classpath/resource/gnu/java/locale/LocaleInformation_th.properties \
classpath/resource/gnu/java/locale/LocaleInformation_th_TH.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ti.properties \
@@ -8125,20 +8213,30 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ti_ET.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tig.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tig_ER.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_tn.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_to.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tr.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tr_TR.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_trv.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ts.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tt.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tt_RU.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ug.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uk.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uk_UA.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ur.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uz.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uz_AF_Arab.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uz_Arab.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uz_Latn.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ve.properties \
classpath/resource/gnu/java/locale/LocaleInformation_vi.properties \
classpath/resource/gnu/java/locale/LocaleInformation_wal.properties \
classpath/resource/gnu/java/locale/LocaleInformation_wal_ET.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_wo.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_xh.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_yo.properties \
classpath/resource/gnu/java/locale/LocaleInformation_zh.properties \
classpath/resource/gnu/java/locale/LocaleInformation_zh_CN_Hans.properties \
classpath/resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties \
@@ -8146,13 +8244,16 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties \
classpath/resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties \
classpath/resource/gnu/java/locale/LocaleInformation_zh_TW_Hant.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_zu.properties \
classpath/resource/gnu/java/util/regex/MessagesBundle.properties \
classpath/resource/gnu/java/util/regex/MessagesBundle_fr.properties \
classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties \
classpath/resource/gnu/javax/print/PrinterDialog.properties \
classpath/resource/gnu/javax/print/PrinterDialog_de.properties \
classpath/resource/gnu/javax/security/auth/callback/MessagesBundle.properties \
+ classpath/resource/java/text/metazones.properties \
classpath/resource/java/util/iso4217.properties \
+ classpath/resource/java/util/weeks.properties \
classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \
classpath/resource/javax/swing/text/html/default.css \
classpath/resource/org/ietf/jgss/MessagesBundle.properties \
@@ -8244,7 +8345,7 @@ ECJX_BASE_FLAGS = -findirect-dispatch \
@NATIVE_TRUE@ecjx_LDADD = -L$(here)/.libs libgcj.la
@NATIVE_FALSE@ecjx_DEPENDENCIES =
@NATIVE_TRUE@ecjx_DEPENDENCIES = libgcj.la libgcj.spec \
-@NATIVE_TRUE@ $(am__append_17)
+@NATIVE_TRUE@ $(am__append_18)
gappletviewer_SOURCES =
gappletviewer_LDFLAGS = --main=gnu.classpath.tools.appletviewer.Main \
-rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
@@ -8336,6 +8437,14 @@ grmiregistry_LDFLAGS = --main=gnu.classpath.tools.rmiregistry.Main \
grmiregistry_LINK = $(GCJLINK)
grmiregistry_LDADD = -L$(here)/.libs libgcj-tools.la
grmiregistry_DEPENDENCIES = libgcj-tools.la
+gjdoc_SOURCES =
+gjdoc_LDFLAGS = --main=gnu.classpath.tools.gjdoc.Main \
+ -Djava.class.path=$(ANTLR_JAR) \
+ -rpath $(toolexeclibdir) -shared-libgcc $(THREADLDFLAGS) $(extra_ldflags)
+
+gjdoc_LINK = $(GCJLINK)
+gjdoc_LDADD = -L$(here)/.libs libgcj-tools.la
+gjdoc_DEPENDENCIES = libgcj-tools.la
@INTERPRETER_FALSE@nat_jdwp_source_files =
@INTERPRETER_TRUE@nat_jdwp_source_files = \
@INTERPRETER_TRUE@gnu/classpath/jdwp/natVMFrame.cc \
@@ -8401,8 +8510,7 @@ java/lang/natMath.cc \
java/lang/natObject.cc \
java/lang/natRuntime.cc \
java/lang/natString.cc \
-java/lang/natStringBuffer.cc \
-java/lang/natStringBuilder.cc \
+java/lang/natAbstractStringBuffer.cc \
java/lang/natSystem.cc \
java/lang/natThread.cc \
java/lang/natThreadLocal.cc \
@@ -8453,7 +8561,7 @@ gnu/gcj/xlib/natXImage.cc \
gnu/gcj/xlib/natXUnmapEvent.cc
sourcesdir = $(jardir)
-headers_to_make = $(nat_headers) $(am__append_18)
+headers_to_make = $(nat_headers) $(am__append_19)
# Work around what appears to be a GNU make bug handling MAKEFLAGS
# values defined in terms of make variables, as is the case for CC and
@@ -8919,9 +9027,7 @@ java/lang/natRuntime.lo: java/lang/$(am__dirstamp) \
java/lang/$(DEPDIR)/$(am__dirstamp)
java/lang/natString.lo: java/lang/$(am__dirstamp) \
java/lang/$(DEPDIR)/$(am__dirstamp)
-java/lang/natStringBuffer.lo: java/lang/$(am__dirstamp) \
- java/lang/$(DEPDIR)/$(am__dirstamp)
-java/lang/natStringBuilder.lo: java/lang/$(am__dirstamp) \
+java/lang/natAbstractStringBuffer.lo: java/lang/$(am__dirstamp) \
java/lang/$(DEPDIR)/$(am__dirstamp)
java/lang/natSystem.lo: java/lang/$(am__dirstamp) \
java/lang/$(DEPDIR)/$(am__dirstamp)
@@ -9165,6 +9271,9 @@ gjarsigner$(EXEEXT): $(gjarsigner_OBJECTS) $(gjarsigner_DEPENDENCIES)
gjavah$(EXEEXT): $(gjavah_OBJECTS) $(gjavah_DEPENDENCIES)
@rm -f gjavah$(EXEEXT)
$(gjavah_LINK) $(gjavah_LDFLAGS) $(gjavah_OBJECTS) $(gjavah_LDADD) $(LIBS)
+gjdoc$(EXEEXT): $(gjdoc_OBJECTS) $(gjdoc_DEPENDENCIES)
+ @rm -f gjdoc$(EXEEXT)
+ $(gjdoc_LINK) $(gjdoc_LDFLAGS) $(gjdoc_OBJECTS) $(gjdoc_LDADD) $(LIBS)
gkeytool$(EXEEXT): $(gkeytool_OBJECTS) $(gkeytool_DEPENDENCIES)
@rm -f gkeytool$(EXEEXT)
$(gkeytool_LINK) $(gkeytool_LDFLAGS) $(gkeytool_OBJECTS) $(gkeytool_LDADD) $(LIBS)
@@ -9353,6 +9462,8 @@ mostlyclean-compile:
-rm -f java/io/natVMObjectStreamClass.lo
-rm -f java/lang/Object.$(OBJEXT)
-rm -f java/lang/Object.lo
+ -rm -f java/lang/natAbstractStringBuffer.$(OBJEXT)
+ -rm -f java/lang/natAbstractStringBuffer.lo
-rm -f java/lang/natCharacter.$(OBJEXT)
-rm -f java/lang/natCharacter.lo
-rm -f java/lang/natClass.$(OBJEXT)
@@ -9369,10 +9480,6 @@ mostlyclean-compile:
-rm -f java/lang/natRuntime.lo
-rm -f java/lang/natString.$(OBJEXT)
-rm -f java/lang/natString.lo
- -rm -f java/lang/natStringBuffer.$(OBJEXT)
- -rm -f java/lang/natStringBuffer.lo
- -rm -f java/lang/natStringBuilder.$(OBJEXT)
- -rm -f java/lang/natStringBuilder.lo
-rm -f java/lang/natSystem.$(OBJEXT)
-rm -f java/lang/natSystem.lo
-rm -f java/lang/natThread.$(OBJEXT)
@@ -9524,6 +9631,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@java/io/$(DEPDIR)/natVMObjectInputStream.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/io/$(DEPDIR)/natVMObjectStreamClass.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/Object.Plo@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natAbstractStringBuffer.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natCharacter.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natClass.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natClassLoader.Plo@am__quote@
@@ -9532,8 +9640,6 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natObject.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natRuntime.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natString.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natStringBuffer.Plo@am__quote@
-@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natStringBuilder.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natSystem.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natThread.Plo@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@java/lang/$(DEPDIR)/natThreadLocal.Plo@am__quote@
@@ -10696,11 +10802,10 @@ gnu/java/locale.list: $(gnu_java_locale_source_files)
-include gnu/java/locale.deps
-gnu/java/math.list: $(gnu_java_math_source_files)
- @$(mkinstalldirs) $(dir $@)
- echo $(srcdir)/classpath/lib/gnu/java/math/*.class > gnu/java/math.list
-
--include gnu/java/math.deps
+gnu-java-math.lo: $(gnu_java_math_source_files)
+ @find $(srcdir)/classpath/lib/gnu/java/math -name '*.class' > gnu-java-math.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-math.lo @gnu-java-math.list
+ @rm -f gnu-java-math.list
gnu/java/net.list: $(gnu_java_net_source_files)
@$(mkinstalldirs) $(dir $@)
@@ -10965,6 +11070,12 @@ gnu/java/util/regex.list: $(gnu_java_util_regex_source_files)
-include gnu/java/util/regex.deps
+gnu/javax/activation/viewers.list: $(gnu_javax_activation_viewers_source_files)
+ @$(mkinstalldirs) $(dir $@)
+ echo $(srcdir)/classpath/lib/gnu/javax/activation/viewers/*.class > gnu/javax/activation/viewers.list
+
+-include gnu/javax/activation/viewers.deps
+
gnu/javax/crypto.list: $(gnu_javax_crypto_source_files)
@$(mkinstalldirs) $(dir $@)
echo $(srcdir)/classpath/lib/gnu/javax/crypto/*.class > gnu/javax/crypto.list
@@ -11738,6 +11849,12 @@ javax/accessibility.list: $(javax_accessibility_source_files)
-include javax/accessibility.deps
+javax/activation.list: $(javax_activation_source_files)
+ @$(mkinstalldirs) $(dir $@)
+ echo $(srcdir)/classpath/lib/javax/activation/*.class > javax/activation.list
+
+-include javax/activation.deps
+
javax/activity.list: $(javax_activity_source_files)
@$(mkinstalldirs) $(dir $@)
echo $(srcdir)/classpath/lib/javax/activity/*.class > javax/activity.list
diff --git a/libjava/classpath/AUTHORS b/libjava/classpath/AUTHORS
index be17176..19a2658 100644
--- a/libjava/classpath/AUTHORS
+++ b/libjava/classpath/AUTHORS
@@ -22,6 +22,7 @@ Thomas Fitzsimmons (fitzsim@redhat.com)
Jeroen Frijters (jeroen@frijters.net)
David Gilbert (david.gilbert@object-refinery.com)
Anthony Green (green@redhat.com)
+Laszlo Andras Hernadi (e0327023@student.tuwien.ac.at)
Jochen Hoenicke (Jochen.Hoenicke@Informatik.Uni-Oldenburg.de)
Andrew John Hughes (gnu_andrew@member.fsf.org)
Kazumitsu Ito (kaz@maczuka.gcd.org)
@@ -42,6 +43,7 @@ Aaron M. Renn (arenn@urbanophile.com)
Ian Rogers (ian.rogers@manchester.ac.uk)
Andrew Selkirk (aselkirk@sympatico.ca)
Robert Schuster (robertschuster@fsfe.org)
+Joshua Sumali (jsumali@redhat.com)
Christian Thalinger (twisti@complang.tuwien.ac.at)
Andreas Tobler (a.tobler@schweiz.org)
Mario Torre (neugens@limasoftware.net)
diff --git a/libjava/classpath/ChangeLog b/libjava/classpath/ChangeLog
index f8e2d43..f9db385 100644
--- a/libjava/classpath/ChangeLog
+++ b/libjava/classpath/ChangeLog
@@ -1,3 +1,436 @@
+2008-10-20 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/ac_prog_antlr.m4:
+ Remove redundant checks.
+ * tools/Makefile.am:
+ Use gjdoc_gendir when calling antlr.
+
+2008-10-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Remove superfluous AC_PROG_JAVA call.
+
+2008-10-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/ac_prog_antlr:
+ Check for cantlr as well.
+ * tools/Makefile.am:
+ Only build GJDoc parser when both
+ CREATE_GJDOC and CREATE_GJDOC_PARSER
+ are on.
+
+2008-10-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Add regen-gjdoc-parser option,
+ and separate antlr tests.
+ * m4/ac_prog_antlr.m4:
+ Turn single test into AC_LIB_ANTLR
+ and AC_PROG_ANTLR.
+ * m4/ac_prog_java.m4:
+ Quote tests.
+ * tools/Makefile.am:
+ Support CREATE_GJDOC_PARSER option.
+
+2008-09-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * examples/Makefile.am:
+ Check lib directly as well as glibj.zip
+ for boot classes.
+ * m4/acinclude.m4:
+ Only require the class files to be built
+ to allow the tools and examples to be built,
+ not the installation of glibj.zip.
+ * tools/Makefile.am:
+ Check lib directly as well as glibj.zip
+ for boot classes.
+
+2008-09-13 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * examples/Makefile.am,
+ * lib/Makefile.am:
+ Add GCJ rules.
+ * m4/ac_prog_javac.m4:
+ Check whether JAVAC is gcj.
+ * m4/ac_prog_javac_works.m4:
+ Add GCJ rules.
+ * m4/acinclude.m4:
+ Don't bother checking for -J
+ if using GCJ.
+ * tools/Makefile.am:
+ Add GCJ rules.
+
+2007-08-23 Daniel Frampton <zyridium@zyridium.net>
+
+ * AUTHORS: Added.
+ * java/lang/InheritableThreadLocal.java,
+ * java/lang/Thread.java,
+ * java/lang/ThreadLocal.java:
+ Modified to use java.lang.ThreadLocalMap.
+ * java/lang/ThreadLocalMap.java:
+ New cheaper ThreadLocal-specific WeakHashMap.
+
+2008-02-07 Ian Rogers <ian.rogers@manchester.ac.uk>
+
+ * java/util/zip/ZipEntry.java:
+ Use byte fields instead of integer fields,
+ store the time as well as the DOS time and
+ don't retain a global Calendar instance.
+ (setDOSTime(int)): Set KNOWN_DOSTIME instead
+ of KNOWN_TIME, and unset KNOWN_TIME.
+ (getDOSTime()): Compute DOS time from UNIX time
+ only when needed.
+ (clone()): Provide cloning via the ZipEntry constructor
+ where possible.
+ (setTime(long)): Don't compute DOS time at this point.
+ (getCalendar()): Removed.
+
+2008-09-09 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/gnu/classpath/tools/getopt/Parser.java:
+ (setHeader(String)): Make synchronized.
+ (setFooter(String)): Likewise.
+ * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java,
+ (reset()): Make synchronized.
+ (name(Class)): Likewise.
+
+2008-09-04 Robert Schuster <robertschuster@fsfe.org>
+
+ * gnu/java/nio/charset/ByteDecodeLoopHelper:
+ (arrayDecodeLoop): Added new break label, escape to that label.
+ * gnu/java/nio/charset/ByteEncodeLoopHelper:
+ (arrayDecodeLoop): Added new break label, escape to that label.
+
+2008-09-04 Robert Schuster <robertschuster@fsfe.org>
+
+ * java/text/DecimalFormat.java:
+ (scanFix): Use 'i + 1' when looking at following character.
+ (scanNegativePattern): Dito.
+
+2008-09-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/gnu/classpath/tools/javah/ClassWrapper.java:
+ (makeVtable()): Populate methodNameMap.
+ (printMethods(CniPrintStream)): Always use pre-populated
+ methodNameMap for bridge targets.
+
+2008-09-01 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/peer/x/XImage.java (XImageProducer): remove @Override
+ annotation to allow compilation on javac < 1.6 and ecj < 3.4.
+
+2008-09-01 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/peer/x/XGraphicsDevice.java (getDisplay): fix to support
+ new Escher API.
+ * gnu/java/awt/peer/x/XImage.java (getSource): method implemented.
+ * gnu/java/awt/peer/x/XImage.java (XImageProducer): implement ImageProducer
+ for getSource.
+
+2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/regex/BacktrackStack.java,
+ * gnu/java/util/regex/CharIndexed.java,
+ * gnu/java/util/regex/CharIndexedCharArray.java,
+ * gnu/java/util/regex/CharIndexedCharSequence.java,
+ * gnu/java/util/regex/CharIndexedInputStream.java,
+ * gnu/java/util/regex/CharIndexedString.java,
+ * gnu/java/util/regex/CharIndexedStringBuffer.java,
+ * gnu/java/util/regex/RE.java,
+ * gnu/java/util/regex/REException.java,
+ * gnu/java/util/regex/REFilterInputStream.java,
+ * gnu/java/util/regex/REMatch.java,
+ * gnu/java/util/regex/REMatchEnumeration.java,
+ * gnu/java/util/regex/RESyntax.java,
+ * gnu/java/util/regex/REToken.java,
+ * gnu/java/util/regex/RETokenAny.java,
+ * gnu/java/util/regex/RETokenBackRef.java,
+ * gnu/java/util/regex/RETokenChar.java,
+ * gnu/java/util/regex/RETokenEnd.java,
+ * gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
+ * gnu/java/util/regex/RETokenEndSub.java,
+ * gnu/java/util/regex/RETokenIndependent.java,
+ * gnu/java/util/regex/RETokenLookAhead.java,
+ * gnu/java/util/regex/RETokenLookBehind.java,
+ * gnu/java/util/regex/RETokenNamedProperty.java,
+ * gnu/java/util/regex/RETokenOneOf.java,
+ * gnu/java/util/regex/RETokenPOSIX.java,
+ * gnu/java/util/regex/RETokenRange.java,
+ * gnu/java/util/regex/RETokenRepeated.java,
+ * gnu/java/util/regex/RETokenStart.java,
+ * gnu/java/util/regex/RETokenWordBoundary.java,
+ * gnu/java/util/regex/UncheckedRE.java:
+ Fix indentation.
+
+2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/regex/RETokenStart.java:
+ (getMaximumLength()): Add Override annotation.
+ (matchThis(CharIndexed, REMatch)): Likewise.
+ (returnsFixedLengthMatches()): Renamed from
+ returnsFixedLengthmatches and added Override
+ annotation.
+ (findFixedLengthMatches(CharIndexed,REMatch,int)):
+ Add Override annotation.
+ (dump(CPStringBuilder)): Likewise.
+ * gnu/javax/print/ipp/IppRequest.java:
+ (RequestWriter.writeOperationAttributes(AttributeSet)):
+ Throw exception, don't just create and drop it.
+ * javax/management/MBeanServerPermission.java:
+ (MBeanServerPermissionCollection.add(Permission)): Compare
+ against individual Strings not the entire array, and
+ store the result of replace.
+ * javax/swing/text/html/StyleSheet.java:
+ (setBaseFontSize(size)): Store result of trim().
+
+2008-09-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/tools/FileObject.java:
+ (openReader(boolean)): Document new parameter.
+
+2008-03-27 Michael Franz <mvfranz@gmail.com>
+
+ PR classpath/35690:
+ * javax/tools/FileObject.java:
+ (toUri()): Fix case from toURI.
+ (openReader(boolean)): Add missing boolean argument.
+
+2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/35487:
+ * gnu/javax/management/Server.java:
+ (beans): Change to ConcurrentHashMap.
+ (defaultDomain): Make final.
+ (outer): Likewise.
+ (LazyListenersHolder): Added to wrap
+ listeners, also now a ConcurrentHashMap,
+ providing lazy initialisation safely.
+ (sequenceNumber): Documented.
+ (getBean(ObjectName)): Remove redundant cast.
+ (addNotificationListener(ObjectName,NotificationListener,
+ NotificationFilter,Object)): Remove map initialisation
+ and use holder.
+ (getObjectInstance(ObjectName)): Remove redundant cast.
+ (registerMBean(Object,ObjectName)): Add bean atomically.
+ (removeNotificationListener(ObjectName,NotificationListener)):
+ Simplified.
+ (removeNotificationListener(ObjectName,NotificationListener,
+ NotificationFilter,Object)): Likewise.
+ (notify(ObjectName,String)): Documented.
+
+2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/javax/management/Server.java:
+ Genericised.
+
+2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/javax/management/Translator.java:
+ Genericised.
+
+2008-08-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/DefaultLoaderRepository.java,
+ * javax/management/JMX.java,
+ * javax/management/MBeanAttributeInfo.java,
+ * javax/management/MBeanConstructorInfo.java,
+ * javax/management/MBeanOperationInfo.java,
+ * javax/management/MBeanServerDelegate.java:
+ Fix warnings due to generics.
+
+2008-08-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/MBeanPermission.java,
+ * javax/management/MBeanServerDelegate.java,
+ * javax/management/MBeanServerFactory.java,
+ * javax/management/MBeanServerInvocationHandler.java,
+ * javax/management/MBeanServerPermission.java:
+ Fix warnings due to use of non-generic collections.
+
+2008-08-25 Mario Torre <neugens@aicas.com>
+
+ * gnu/javax/rmi/CORBA/RmiUtilities.java (readValue): check if sender is
+ null to avoid NPE.
+
+2008-08-22 Mario Torre <neugens@aicas.com>
+
+ * gnu/CORBA/OrbFunctional.java (set_parameters): Fix
+ NullPointerException checking when param is null.
+
+2008-08-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/regex/Matcher.java:
+ (reset()): Reset append position so
+ we don't try and append to the end of
+ the old input.
+
+2008-08-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/32028:
+ * m4/acinclude.m4:
+ Also allow versions of GJDoc from 0.8* on, as
+ CVS is 0.8.0-pre.
+
+2008-08-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/32028:
+ * m4/acinclude.m4:
+ (CLASSPATH_WITH_GJDOC): Ensure version 0.7.9 is
+ being used.
+
+2008-08-20 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/Makefile.am:
+ Add taglets subdirectory to list of excluded
+ paths when GJDoc is not compiled.
+
+2008-08-19 David P Grove <groved@us.ibm.com>
+
+ * scripts/check_jni_methods.sh.in:
+ Fix build issue on AIX by splitting generation
+ of method list.
+
+2008-08-18 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * native/jni/gstreamer-peer/gst_native_pipeline.c:
+ (get_free_space(int)): Use #else not #elif when
+ there is no condition.
+
+2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/31895:
+ * java/text/DecimalFormat.java:
+ (setCurrency(Currency)): Update prefixes and
+ suffixes when currency changes.
+ * java/text/DecimalFormatSymbols.java:
+ (DecimalFormatSymbols(Locale)): Set locale earlier
+ so it can be used by setCurrency(Currency).
+ (setCurrency(Currency)): Set the symbol correctly using
+ the locale of the instance.
+ * java/util/Currency.java:
+ Throw error instead of just printing a message.
+
+2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/activation/ActivationDataFlavor.java:
+ Suppress warnings from public API.
+ (mimeType): Made final.
+ (representationClass): Added generic type and
+ made final.
+ (normalizeMimeTypeParameter(String,String)):
+ Use CPStringBuilder.
+ * javax/activation/CommandInfo.java:
+ (verb): Made final.
+ (className): Made final.
+ * javax/activation/DataHandler.java:
+ (dataSource): Made final.
+ * javax/activation/FileDataSource.java:
+ (file): Made final.
+ * javax/activation/MailcapCommandMap.java:
+ Use generics on collections and CPStringBuilder
+ instead of StringBuffer.
+ * javax/activation/MimeType.java:
+ (toString()): Use CPStringBuilder.
+ (getBaseType()): Likewise.
+ * javax/activation/MimeTypeParameterList.java:
+ Use generics on collections and CPStringBuilder
+ instead of StringBuffer.
+ * javax/activation/MimeTypeParseException.java:
+ (MimeTypeParseException(String,String)): Use
+ CPStringBuilder.
+ * javax/activation/MimetypesFileTypeMap.java:
+ Use generics on collections and CPStringBuilder
+ instead of StringBuffer.
+ * javax/activation/URLDataSource.java:
+ (url): Made final.
+
+2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/javax/activation/viewers/ImageViewer.java,
+ * gnu/javax/activation/viewers/TextEditor.java,
+ * gnu/javax/activation/viewers/TextViewer.java,
+ * javax/activation/ActivationDataFlavor.java,
+ * javax/activation/CommandInfo.java,
+ * javax/activation/CommandMap.java,
+ * javax/activation/CommandObject.java,
+ * javax/activation/DataContentHandler.java,
+ * javax/activation/DataContentHandlerFactory.java,
+ * javax/activation/DataHandler.java,
+ * javax/activation/DataHandlerDataSource.java,
+ * javax/activation/DataSource.java,
+ * javax/activation/DataSourceDataContentHandler.java,
+ * javax/activation/FileDataSource.java,
+ * javax/activation/FileTypeMap.java,
+ * javax/activation/MailcapCommandMap.java,
+ * javax/activation/MimeType.java,
+ * javax/activation/MimeTypeParameterList.java,
+ * javax/activation/MimeTypeParseException.java,
+ * javax/activation/MimetypesFileTypeMap.java,
+ * javax/activation/ObjectDataContentHandler.java,
+ * javax/activation/URLDataSource.java,
+ * javax/activation/UnsupportedDataTypeException.java,
+ * javax/activation/package.html,
+ * resource/META-INF/mailcap.default,
+ * resource/META-INF/mimetypes.default:
+ Import GNU JAF CVS as of 17/08/2008.
+
+2006-04-25 Archit Shah <ashah@redhat.com>
+
+ * javax/activation/MimeTypeParameterList.java:
+ Insert ';' separator before parameter list.
+
+2005-06-29 Xavier Poinsard <xpoinsard@openpricer.com>
+
+ * javax/activation/ObjectDataContentHandler.java:
+ Fixed typo.
+
+2005-05-28 Chris Burdess <dog@bluezoo.org>
+
+ * javax/activation/CommandMap.java,
+ * javax/activation/MailcapCommandMap.java:
+ Updated to JAF 1.1.
+
+2004-06-09 Chris Burdess <dog@bluezoo.org>
+
+ * javax/activation/MailcapCommandMap.java:
+ Fixed bug whereby x-java prefix was not
+ attempted.
+
+2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * AUTHORS: Added Laszlo.
+
+2008-04-20 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/30436:
+ * java/util/Scanner.java:
+ Fix package to be java.util and correct
+ indentation.
+
+2007-07-25 Laszlo Andras Hernadi <e0327023@student.tuwien.ac.at>
+
+ PR classpath/30436:
+ * java/util/Scanner.java:
+ Initial implementation.
+
+2008-08-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/regex/Matcher.java:
+ (toMatchResult()): Implemented.
+
+2008-08-13 Joshua Sumali <jsumali@redhat.com>
+
+ * doc/Makefile.am (gjdoc.pod): Generate gjdoc pod from cp-tools.texinfo
+ instead of invoke.texi. Remove invoke.texi from EXTRA_DIST.
+ * doc/invoke.texi: Removed and merged into ...
+ * doc/cp-tools.texinfo: Here
+
+2008-08-12 Robert Schuster <robertschuster@fsfe.org>
+
+ * native/jni/java-net/local.c
+ (local_bind): Removed fprintf call, fixed access outside
+ of array bounds.
+
2008-07-15 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/acinclude.m4 (CLASSPATH_COND_IF): New macro.
@@ -5,7 +438,973 @@
* configure: Regenerate.
* tools/Makefile.am (!CREATE_WRAPPERS): Update comment.
-2008-06-11 Andrew Haley <aph@redhat.com>
+2008-07-12 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * resource/gnu/java/locale/LocaleInformation.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa.properties,
+ * resource/gnu/java/locale/LocaleInformation_af.properties,
+ * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ak.properties,
+ * resource/gnu/java/locale/LocaleInformation_am.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar.properties,
+ * resource/gnu/java/locale/LocaleInformation_as.properties,
+ * resource/gnu/java/locale/LocaleInformation_az.properties,
+ * resource/gnu/java/locale/LocaleInformation_be.properties,
+ * resource/gnu/java/locale/LocaleInformation_bg.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn.properties,
+ * resource/gnu/java/locale/LocaleInformation_bs.properties,
+ * resource/gnu/java/locale/LocaleInformation_byn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ca.properties,
+ * resource/gnu/java/locale/LocaleInformation_cch.properties,
+ * resource/gnu/java/locale/LocaleInformation_cop.properties,
+ * resource/gnu/java/locale/LocaleInformation_cs.properties,
+ * resource/gnu/java/locale/LocaleInformation_cy.properties,
+ * resource/gnu/java/locale/LocaleInformation_da.properties,
+ * resource/gnu/java/locale/LocaleInformation_de.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_dv.properties,
+ * resource/gnu/java/locale/LocaleInformation_dz.properties,
+ * resource/gnu/java/locale/LocaleInformation_ee.properties,
+ * resource/gnu/java/locale/LocaleInformation_el.properties,
+ * resource/gnu/java/locale/LocaleInformation_en.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_MT.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
+ * resource/gnu/java/locale/LocaleInformation_eo.properties,
+ * resource/gnu/java/locale/LocaleInformation_es.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CO.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_EC.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PE.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_US.properties,
+ * resource/gnu/java/locale/LocaleInformation_et.properties,
+ * resource/gnu/java/locale/LocaleInformation_eu.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa.properties,
+ * resource/gnu/java/locale/LocaleInformation_fi.properties,
+ * resource/gnu/java/locale/LocaleInformation_fil.properties,
+ * resource/gnu/java/locale/LocaleInformation_fo.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_fur.properties,
+ * resource/gnu/java/locale/LocaleInformation_ga.properties,
+ * resource/gnu/java/locale/LocaleInformation_gaa.properties,
+ * resource/gnu/java/locale/LocaleInformation_gez.properties,
+ * resource/gnu/java/locale/LocaleInformation_gl.properties,
+ * resource/gnu/java/locale/LocaleInformation_gu.properties,
+ * resource/gnu/java/locale/LocaleInformation_gv.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha.properties,
+ * resource/gnu/java/locale/LocaleInformation_haw.properties,
+ * resource/gnu/java/locale/LocaleInformation_he.properties,
+ * resource/gnu/java/locale/LocaleInformation_hi.properties,
+ * resource/gnu/java/locale/LocaleInformation_hr.properties,
+ * resource/gnu/java/locale/LocaleInformation_hu.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy.properties,
+ * resource/gnu/java/locale/LocaleInformation_ia.properties,
+ * resource/gnu/java/locale/LocaleInformation_id.properties,
+ * resource/gnu/java/locale/LocaleInformation_ig.properties,
+ * resource/gnu/java/locale/LocaleInformation_is.properties,
+ * resource/gnu/java/locale/LocaleInformation_it.properties,
+ * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_iu.properties,
+ * resource/gnu/java/locale/LocaleInformation_ja.properties,
+ * resource/gnu/java/locale/LocaleInformation_ka.properties,
+ * resource/gnu/java/locale/LocaleInformation_kaj.properties,
+ * resource/gnu/java/locale/LocaleInformation_kam.properties,
+ * resource/gnu/java/locale/LocaleInformation_kcg.properties,
+ * resource/gnu/java/locale/LocaleInformation_kfo.properties,
+ * resource/gnu/java/locale/LocaleInformation_kk.properties,
+ * resource/gnu/java/locale/LocaleInformation_kl.properties,
+ * resource/gnu/java/locale/LocaleInformation_km.properties,
+ * resource/gnu/java/locale/LocaleInformation_kn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ko.properties,
+ * resource/gnu/java/locale/LocaleInformation_kok.properties,
+ * resource/gnu/java/locale/LocaleInformation_kpe.properties,
+ * resource/gnu/java/locale/LocaleInformation_kw.properties,
+ * resource/gnu/java/locale/LocaleInformation_ky.properties,
+ * resource/gnu/java/locale/LocaleInformation_ln.properties,
+ * resource/gnu/java/locale/LocaleInformation_lo.properties,
+ * resource/gnu/java/locale/LocaleInformation_lt.properties,
+ * resource/gnu/java/locale/LocaleInformation_lv.properties,
+ * resource/gnu/java/locale/LocaleInformation_mk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ml.properties,
+ * resource/gnu/java/locale/LocaleInformation_mn.properties,
+ * resource/gnu/java/locale/LocaleInformation_mr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
+ * resource/gnu/java/locale/LocaleInformation_mt.properties,
+ * resource/gnu/java/locale/LocaleInformation_my.properties,
+ * resource/gnu/java/locale/LocaleInformation_nb.properties,
+ * resource/gnu/java/locale/LocaleInformation_ne.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl.properties,
+ * resource/gnu/java/locale/LocaleInformation_nn.properties,
+ * resource/gnu/java/locale/LocaleInformation_nr.properties,
+ * resource/gnu/java/locale/LocaleInformation_nso.properties,
+ * resource/gnu/java/locale/LocaleInformation_ny.properties,
+ * resource/gnu/java/locale/LocaleInformation_om.properties,
+ * resource/gnu/java/locale/LocaleInformation_or.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa.properties,
+ * resource/gnu/java/locale/LocaleInformation_pl.properties,
+ * resource/gnu/java/locale/LocaleInformation_ps.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+ * resource/gnu/java/locale/LocaleInformation_ro.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
+ * resource/gnu/java/locale/LocaleInformation_rw.properties,
+ * resource/gnu/java/locale/LocaleInformation_sa.properties,
+ * resource/gnu/java/locale/LocaleInformation_se.properties,
+ * resource/gnu/java/locale/LocaleInformation_si.properties,
+ * resource/gnu/java/locale/LocaleInformation_sid.properties,
+ * resource/gnu/java/locale/LocaleInformation_sk.properties,
+ * resource/gnu/java/locale/LocaleInformation_sl.properties,
+ * resource/gnu/java/locale/LocaleInformation_so.properties,
+ * resource/gnu/java/locale/LocaleInformation_sq.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ss.properties,
+ * resource/gnu/java/locale/LocaleInformation_st.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv.properties,
+ * resource/gnu/java/locale/LocaleInformation_sw.properties,
+ * resource/gnu/java/locale/LocaleInformation_syr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ta.properties,
+ * resource/gnu/java/locale/LocaleInformation_te.properties,
+ * resource/gnu/java/locale/LocaleInformation_tg.properties,
+ * resource/gnu/java/locale/LocaleInformation_th.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti.properties,
+ * resource/gnu/java/locale/LocaleInformation_tig.properties,
+ * resource/gnu/java/locale/LocaleInformation_tn.properties,
+ * resource/gnu/java/locale/LocaleInformation_to.properties,
+ * resource/gnu/java/locale/LocaleInformation_tr.properties,
+ * resource/gnu/java/locale/LocaleInformation_trv.properties,
+ * resource/gnu/java/locale/LocaleInformation_ts.properties,
+ * resource/gnu/java/locale/LocaleInformation_tt.properties,
+ * resource/gnu/java/locale/LocaleInformation_ug.properties,
+ * resource/gnu/java/locale/LocaleInformation_uk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ur.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_ve.properties,
+ * resource/gnu/java/locale/LocaleInformation_vi.properties,
+ * resource/gnu/java/locale/LocaleInformation_wal.properties,
+ * resource/gnu/java/locale/LocaleInformation_wo.properties,
+ * resource/gnu/java/locale/LocaleInformation_xh.properties,
+ * resource/gnu/java/locale/LocaleInformation_yo.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zu.properties:
+ Correct use of 'v' with 'z' in locale data as Java does not
+ support this new pattern character.
+
+2008-07-12 David Daney <ddaney@avtrex.com>
+
+ * gnu/java/net/protocol/http/LimitedLengthInputStream.java: Clean up
+ white space in entire file.
+ (handleClose): Remove redundant braces from if statement.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/DateFormatSymbols.java:
+ (getZoneStrings(ResourceBundle,Locale)):
+ Handle missing standard zone names.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/DateFormatSymbols.java:
+ (getZoneStrings(ResourceBundle,Locale)):
+ Fallback on to parent locales.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/DateFormatSymbols.java:
+ (getZoneStrings(ResourceBundle,Locale)):
+ Use metazones to convert metazone names to standard
+ Continent/City form. Also add hack to include GMT
+ as a short name.
+ * resource/java/text/metazones.properties:
+ New properties file for mapping metazones to standard
+ zone names.
+
+2008-07-07 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * configure.ac (AC_CHECK_HEADERS): Added sys/sockio.h, required
+ for Solaris.
+ (AC_CHECK_LIB): Check for socket.
+ * native/jni/java-net/java_net_VMNetworkInterface.c (unistd.h):
+ Added.
+ [HAVE_SYS_SOCKIO_H] (sys/sockio.h): Likewise.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * THANKYOU: Added Byeogncheol.
+
+2008-07-07 Byeogncheol Lee <lineonking@gmail.com>
+
+ PR classpath/36677:
+ * gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java:
+ (executeTopLevelThreadGroups(ByteBuffer,DataOutputStream)):
+ Add missing write.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/DateFormatSymbols.java:
+ (getZoneStrings(ResourceBundle,Locale)):
+ Pad arrays smaller than 5 with empty strings.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/Calendar.java:
+ (Calendar(TimeZone,Locale)): Use weeks.properties
+ instead of LocaleInformation bundles.
+ * resource/java/util/iso4217.properties:
+ Updated with new supplementgen header.
+ * resource/java/util/weeks.properties:
+ New resource file.
+
+2008-07-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * resource/gnu/java/locale/LocaleInformation.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa.properties,
+ * resource/gnu/java/locale/LocaleInformation_af.properties,
+ * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ak.properties,
+ * resource/gnu/java/locale/LocaleInformation_am.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
+ * resource/gnu/java/locale/LocaleInformation_as.properties,
+ * resource/gnu/java/locale/LocaleInformation_az.properties,
+ * resource/gnu/java/locale/LocaleInformation_be.properties,
+ * resource/gnu/java/locale/LocaleInformation_bg.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
+ * resource/gnu/java/locale/LocaleInformation_bs.properties,
+ * resource/gnu/java/locale/LocaleInformation_byn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ca.properties,
+ * resource/gnu/java/locale/LocaleInformation_cs.properties,
+ * resource/gnu/java/locale/LocaleInformation_cy.properties,
+ * resource/gnu/java/locale/LocaleInformation_da.properties,
+ * resource/gnu/java/locale/LocaleInformation_de.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_LI.properties,
+ * resource/gnu/java/locale/LocaleInformation_dv.properties,
+ * resource/gnu/java/locale/LocaleInformation_dz.properties,
+ * resource/gnu/java/locale/LocaleInformation_el.properties,
+ * resource/gnu/java/locale/LocaleInformation_en.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_AU.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BW.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_CA.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_HK.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_IN.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_NZ.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_PH.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_PK.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_ZA.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_ZW.properties,
+ * resource/gnu/java/locale/LocaleInformation_eo.properties,
+ * resource/gnu/java/locale/LocaleInformation_es.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CR.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PY.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_UY.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_VE.properties,
+ * resource/gnu/java/locale/LocaleInformation_et.properties,
+ * resource/gnu/java/locale/LocaleInformation_eu.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
+ * resource/gnu/java/locale/LocaleInformation_fi.properties,
+ * resource/gnu/java/locale/LocaleInformation_fil.properties,
+ * resource/gnu/java/locale/LocaleInformation_fo.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_fur.properties,
+ * resource/gnu/java/locale/LocaleInformation_ga.properties,
+ * resource/gnu/java/locale/LocaleInformation_gez.properties,
+ * resource/gnu/java/locale/LocaleInformation_gl.properties,
+ * resource/gnu/java/locale/LocaleInformation_gu.properties,
+ * resource/gnu/java/locale/LocaleInformation_gv.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha.properties,
+ * resource/gnu/java/locale/LocaleInformation_haw.properties,
+ * resource/gnu/java/locale/LocaleInformation_he.properties,
+ * resource/gnu/java/locale/LocaleInformation_hi.properties,
+ * resource/gnu/java/locale/LocaleInformation_hr.properties,
+ * resource/gnu/java/locale/LocaleInformation_hu.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy.properties,
+ * resource/gnu/java/locale/LocaleInformation_id.properties,
+ * resource/gnu/java/locale/LocaleInformation_is.properties,
+ * resource/gnu/java/locale/LocaleInformation_it.properties,
+ * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_ja.properties,
+ * resource/gnu/java/locale/LocaleInformation_ka.properties,
+ * resource/gnu/java/locale/LocaleInformation_kk.properties,
+ * resource/gnu/java/locale/LocaleInformation_kl.properties,
+ * resource/gnu/java/locale/LocaleInformation_km.properties,
+ * resource/gnu/java/locale/LocaleInformation_kn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ko.properties,
+ * resource/gnu/java/locale/LocaleInformation_kok.properties,
+ * resource/gnu/java/locale/LocaleInformation_ku.properties,
+ * resource/gnu/java/locale/LocaleInformation_kw.properties,
+ * resource/gnu/java/locale/LocaleInformation_ky.properties,
+ * resource/gnu/java/locale/LocaleInformation_ln.properties,
+ * resource/gnu/java/locale/LocaleInformation_lo.properties,
+ * resource/gnu/java/locale/LocaleInformation_lt.properties,
+ * resource/gnu/java/locale/LocaleInformation_lv.properties,
+ * resource/gnu/java/locale/LocaleInformation_mk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ml.properties,
+ * resource/gnu/java/locale/LocaleInformation_mn.properties,
+ * resource/gnu/java/locale/LocaleInformation_mr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
+ * resource/gnu/java/locale/LocaleInformation_mt.properties,
+ * resource/gnu/java/locale/LocaleInformation_my.properties,
+ * resource/gnu/java/locale/LocaleInformation_nb.properties,
+ * resource/gnu/java/locale/LocaleInformation_ne.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_nn.properties,
+ * resource/gnu/java/locale/LocaleInformation_nr.properties,
+ * resource/gnu/java/locale/LocaleInformation_nso.properties,
+ * resource/gnu/java/locale/LocaleInformation_om.properties,
+ * resource/gnu/java/locale/LocaleInformation_or.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_pl.properties,
+ * resource/gnu/java/locale/LocaleInformation_ps.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+ * resource/gnu/java/locale/LocaleInformation_ro.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
+ * resource/gnu/java/locale/LocaleInformation_sa.properties,
+ * resource/gnu/java/locale/LocaleInformation_se.properties,
+ * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
+ * resource/gnu/java/locale/LocaleInformation_sk.properties,
+ * resource/gnu/java/locale/LocaleInformation_sl.properties,
+ * resource/gnu/java/locale/LocaleInformation_so.properties,
+ * resource/gnu/java/locale/LocaleInformation_sq.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ss.properties,
+ * resource/gnu/java/locale/LocaleInformation_st.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv_FI.properties,
+ * resource/gnu/java/locale/LocaleInformation_sw.properties,
+ * resource/gnu/java/locale/LocaleInformation_syr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ta.properties,
+ * resource/gnu/java/locale/LocaleInformation_te.properties,
+ * resource/gnu/java/locale/LocaleInformation_tg.properties,
+ * resource/gnu/java/locale/LocaleInformation_th.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti.properties,
+ * resource/gnu/java/locale/LocaleInformation_tig.properties,
+ * resource/gnu/java/locale/LocaleInformation_tn.properties,
+ * resource/gnu/java/locale/LocaleInformation_to.properties,
+ * resource/gnu/java/locale/LocaleInformation_tr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ts.properties,
+ * resource/gnu/java/locale/LocaleInformation_tt.properties,
+ * resource/gnu/java/locale/LocaleInformation_uk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ur.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ve.properties,
+ * resource/gnu/java/locale/LocaleInformation_vi.properties,
+ * resource/gnu/java/locale/LocaleInformation_wal.properties,
+ * resource/gnu/java/locale/LocaleInformation_xh.properties,
+ * resource/gnu/java/locale/LocaleInformation_yo.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties,
+ * resource/gnu/java/locale/LocaleInformation_zu.properties,
+ * resource/java/util/iso4217.properties:
+ Regenerated from CLDR 1.6.0.
+ * resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_Shaw.properties,
+ * resource/gnu/java/locale/LocaleInformation_ku_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_trv.properties,
+ * resource/gnu/java/locale/LocaleInformation_si.properties,
+ * resource/gnu/java/locale/LocaleInformation_ur_IN.properties:
+ New files from CLDR 1.6.0.
+
+2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * resource/gnu/java/locale/LocaleInformation.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa_DJ.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties,
+ * resource/gnu/java/locale/LocaleInformation_af.properties,
+ * resource/gnu/java/locale/LocaleInformation_ak.properties,
+ * resource/gnu/java/locale/LocaleInformation_am.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_QA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_SA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_SY.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_TN.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_YE.properties,
+ * resource/gnu/java/locale/LocaleInformation_as.properties,
+ * resource/gnu/java/locale/LocaleInformation_az.properties,
+ * resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
+ * resource/gnu/java/locale/LocaleInformation_be.properties,
+ * resource/gnu/java/locale/LocaleInformation_bg.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn.properties,
+ * resource/gnu/java/locale/LocaleInformation_bo.properties,
+ * resource/gnu/java/locale/LocaleInformation_bs.properties,
+ * resource/gnu/java/locale/LocaleInformation_byn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ca.properties,
+ * resource/gnu/java/locale/LocaleInformation_cch.properties,
+ * resource/gnu/java/locale/LocaleInformation_cop.properties,
+ * resource/gnu/java/locale/LocaleInformation_cs.properties,
+ * resource/gnu/java/locale/LocaleInformation_cy.properties,
+ * resource/gnu/java/locale/LocaleInformation_da.properties,
+ * resource/gnu/java/locale/LocaleInformation_de.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_dv.properties,
+ * resource/gnu/java/locale/LocaleInformation_dz.properties,
+ * resource/gnu/java/locale/LocaleInformation_ee.properties,
+ * resource/gnu/java/locale/LocaleInformation_el.properties,
+ * resource/gnu/java/locale/LocaleInformation_en.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
+ * resource/gnu/java/locale/LocaleInformation_eo.properties,
+ * resource/gnu/java/locale/LocaleInformation_es.properties,
+ * resource/gnu/java/locale/LocaleInformation_et.properties,
+ * resource/gnu/java/locale/LocaleInformation_eu.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
+ * resource/gnu/java/locale/LocaleInformation_fi.properties,
+ * resource/gnu/java/locale/LocaleInformation_fil.properties,
+ * resource/gnu/java/locale/LocaleInformation_fo.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr.properties,
+ * resource/gnu/java/locale/LocaleInformation_fur.properties,
+ * resource/gnu/java/locale/LocaleInformation_ga.properties,
+ * resource/gnu/java/locale/LocaleInformation_gaa.properties,
+ * resource/gnu/java/locale/LocaleInformation_gez.properties,
+ * resource/gnu/java/locale/LocaleInformation_gl.properties,
+ * resource/gnu/java/locale/LocaleInformation_gu.properties,
+ * resource/gnu/java/locale/LocaleInformation_gv.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_haw.properties,
+ * resource/gnu/java/locale/LocaleInformation_he.properties,
+ * resource/gnu/java/locale/LocaleInformation_hi.properties,
+ * resource/gnu/java/locale/LocaleInformation_hr.properties,
+ * resource/gnu/java/locale/LocaleInformation_hu.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties,
+ * resource/gnu/java/locale/LocaleInformation_ia.properties,
+ * resource/gnu/java/locale/LocaleInformation_id.properties,
+ * resource/gnu/java/locale/LocaleInformation_ig.properties,
+ * resource/gnu/java/locale/LocaleInformation_ii.properties,
+ * resource/gnu/java/locale/LocaleInformation_is.properties,
+ * resource/gnu/java/locale/LocaleInformation_it.properties,
+ * resource/gnu/java/locale/LocaleInformation_iu.properties,
+ * resource/gnu/java/locale/LocaleInformation_ja.properties,
+ * resource/gnu/java/locale/LocaleInformation_ka.properties,
+ * resource/gnu/java/locale/LocaleInformation_kaj.properties,
+ * resource/gnu/java/locale/LocaleInformation_kam.properties,
+ * resource/gnu/java/locale/LocaleInformation_kcg.properties,
+ * resource/gnu/java/locale/LocaleInformation_kfo.properties,
+ * resource/gnu/java/locale/LocaleInformation_kk.properties,
+ * resource/gnu/java/locale/LocaleInformation_kl.properties,
+ * resource/gnu/java/locale/LocaleInformation_km.properties,
+ * resource/gnu/java/locale/LocaleInformation_kn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ko.properties,
+ * resource/gnu/java/locale/LocaleInformation_kok.properties,
+ * resource/gnu/java/locale/LocaleInformation_kpe.properties,
+ * resource/gnu/java/locale/LocaleInformation_ku.properties,
+ * resource/gnu/java/locale/LocaleInformation_kw.properties,
+ * resource/gnu/java/locale/LocaleInformation_ky.properties,
+ * resource/gnu/java/locale/LocaleInformation_ln.properties,
+ * resource/gnu/java/locale/LocaleInformation_lo.properties,
+ * resource/gnu/java/locale/LocaleInformation_lt.properties,
+ * resource/gnu/java/locale/LocaleInformation_lv.properties,
+ * resource/gnu/java/locale/LocaleInformation_mk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ml.properties,
+ * resource/gnu/java/locale/LocaleInformation_mn.properties,
+ * resource/gnu/java/locale/LocaleInformation_mr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms.properties,
+ * resource/gnu/java/locale/LocaleInformation_mt.properties,
+ * resource/gnu/java/locale/LocaleInformation_my.properties,
+ * resource/gnu/java/locale/LocaleInformation_nb.properties,
+ * resource/gnu/java/locale/LocaleInformation_ne.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl.properties,
+ * resource/gnu/java/locale/LocaleInformation_nn.properties,
+ * resource/gnu/java/locale/LocaleInformation_nr.properties,
+ * resource/gnu/java/locale/LocaleInformation_nso.properties,
+ * resource/gnu/java/locale/LocaleInformation_ny.properties,
+ * resource/gnu/java/locale/LocaleInformation_om.properties,
+ * resource/gnu/java/locale/LocaleInformation_or.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_pl.properties,
+ * resource/gnu/java/locale/LocaleInformation_ps.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+ * resource/gnu/java/locale/LocaleInformation_ro.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru.properties,
+ * resource/gnu/java/locale/LocaleInformation_rw.properties,
+ * resource/gnu/java/locale/LocaleInformation_sa.properties,
+ * resource/gnu/java/locale/LocaleInformation_se.properties,
+ * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
+ * resource/gnu/java/locale/LocaleInformation_sid.properties,
+ * resource/gnu/java/locale/LocaleInformation_sk.properties,
+ * resource/gnu/java/locale/LocaleInformation_sl.properties,
+ * resource/gnu/java/locale/LocaleInformation_so.properties,
+ * resource/gnu/java/locale/LocaleInformation_sq.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ss.properties,
+ * resource/gnu/java/locale/LocaleInformation_ssy.properties,
+ * resource/gnu/java/locale/LocaleInformation_st.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv.properties,
+ * resource/gnu/java/locale/LocaleInformation_sw.properties,
+ * resource/gnu/java/locale/LocaleInformation_syr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ta.properties,
+ * resource/gnu/java/locale/LocaleInformation_te.properties,
+ * resource/gnu/java/locale/LocaleInformation_tg.properties,
+ * resource/gnu/java/locale/LocaleInformation_th.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
+ * resource/gnu/java/locale/LocaleInformation_tig.properties,
+ * resource/gnu/java/locale/LocaleInformation_tn.properties,
+ * resource/gnu/java/locale/LocaleInformation_to.properties,
+ * resource/gnu/java/locale/LocaleInformation_tr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ts.properties,
+ * resource/gnu/java/locale/LocaleInformation_tt.properties,
+ * resource/gnu/java/locale/LocaleInformation_ug.properties,
+ * resource/gnu/java/locale/LocaleInformation_uk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ur.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ve.properties,
+ * resource/gnu/java/locale/LocaleInformation_vi.properties,
+ * resource/gnu/java/locale/LocaleInformation_wal.properties,
+ * resource/gnu/java/locale/LocaleInformation_wo.properties,
+ * resource/gnu/java/locale/LocaleInformation_xh.properties,
+ * resource/gnu/java/locale/LocaleInformation_yo.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zu.properties:
+ Regenerated with Unicode delimiters escaped.
+
+2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36653:
+ * doc/www.gnu.org/downloads/downloads.wml:
+ Add 0.97.2 to download list.
+
+2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/ResourceBundle.java,
+ (BundleKey.toString()): Implemented.
+ (clearCache()): Implemented.
+ (clearCache(ClassLoader)): Implemented.
+
+2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/ResourceBundle.java:
+ Fix generic warnings.
+
+2008-07-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/Properties.java:
+ (load(Reader)): Implemented.
+ (load(InputStream)): Fixed to use load(Reader).
+ * java/util/PropertyResourceBundle.java:
+ (PropertyResourceBundle(Reader)): Implemented.
+
+2008-07-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * resource/gnu/java/locale/LocaleInformation.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa_DJ.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa_ER.properties,
+ * resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties,
+ * resource/gnu/java/locale/LocaleInformation_af.properties,
+ * resource/gnu/java/locale/LocaleInformation_am.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_JO.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_LB.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_QA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_SA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_SY.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_TN.properties,
+ * resource/gnu/java/locale/LocaleInformation_ar_YE.properties,
+ * resource/gnu/java/locale/LocaleInformation_as.properties,
+ * resource/gnu/java/locale/LocaleInformation_az.properties,
+ * resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties,
+ * resource/gnu/java/locale/LocaleInformation_be.properties,
+ * resource/gnu/java/locale/LocaleInformation_bg.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn.properties,
+ * resource/gnu/java/locale/LocaleInformation_bn_IN.properties,
+ * resource/gnu/java/locale/LocaleInformation_bs.properties,
+ * resource/gnu/java/locale/LocaleInformation_byn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ca.properties,
+ * resource/gnu/java/locale/LocaleInformation_cs.properties,
+ * resource/gnu/java/locale/LocaleInformation_cy.properties,
+ * resource/gnu/java/locale/LocaleInformation_da.properties,
+ * resource/gnu/java/locale/LocaleInformation_de.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_AT.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_LI.properties,
+ * resource/gnu/java/locale/LocaleInformation_de_LU.properties,
+ * resource/gnu/java/locale/LocaleInformation_dv.properties,
+ * resource/gnu/java/locale/LocaleInformation_dz.properties,
+ * resource/gnu/java/locale/LocaleInformation_el.properties,
+ * resource/gnu/java/locale/LocaleInformation_en.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_AU.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BW.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_BZ.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_CA.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_GB.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_HK.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_IE.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_IN.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_MT.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_NZ.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_PH.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_SG.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_TT.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_ZA.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_ZW.properties,
+ * resource/gnu/java/locale/LocaleInformation_eo.properties,
+ * resource/gnu/java/locale/LocaleInformation_es.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_AR.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CL.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_CO.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_DO.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_EC.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_ES.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_GT.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_HN.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_MX.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_NI.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PA.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PE.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PR.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_PY.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_SV.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_US.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_UY.properties,
+ * resource/gnu/java/locale/LocaleInformation_es_VE.properties,
+ * resource/gnu/java/locale/LocaleInformation_et.properties,
+ * resource/gnu/java/locale/LocaleInformation_eu.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa.properties,
+ * resource/gnu/java/locale/LocaleInformation_fa_AF.properties,
+ * resource/gnu/java/locale/LocaleInformation_fi.properties,
+ * resource/gnu/java/locale/LocaleInformation_fo.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CA.properties,
+ * resource/gnu/java/locale/LocaleInformation_fr_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_ga.properties,
+ * resource/gnu/java/locale/LocaleInformation_gez.properties,
+ * resource/gnu/java/locale/LocaleInformation_gez_ET.properties,
+ * resource/gnu/java/locale/LocaleInformation_gl.properties,
+ * resource/gnu/java/locale/LocaleInformation_gu.properties,
+ * resource/gnu/java/locale/LocaleInformation_gv.properties,
+ * resource/gnu/java/locale/LocaleInformation_haw.properties,
+ * resource/gnu/java/locale/LocaleInformation_he.properties,
+ * resource/gnu/java/locale/LocaleInformation_hi.properties,
+ * resource/gnu/java/locale/LocaleInformation_hr.properties,
+ * resource/gnu/java/locale/LocaleInformation_hu.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy.properties,
+ * resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties,
+ * resource/gnu/java/locale/LocaleInformation_id.properties,
+ * resource/gnu/java/locale/LocaleInformation_is.properties,
+ * resource/gnu/java/locale/LocaleInformation_it.properties,
+ * resource/gnu/java/locale/LocaleInformation_it_CH.properties,
+ * resource/gnu/java/locale/LocaleInformation_iu.properties,
+ * resource/gnu/java/locale/LocaleInformation_ja.properties,
+ * resource/gnu/java/locale/LocaleInformation_ka.properties,
+ * resource/gnu/java/locale/LocaleInformation_kk.properties,
+ * resource/gnu/java/locale/LocaleInformation_kl.properties,
+ * resource/gnu/java/locale/LocaleInformation_km.properties,
+ * resource/gnu/java/locale/LocaleInformation_kn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ko.properties,
+ * resource/gnu/java/locale/LocaleInformation_kok.properties,
+ * resource/gnu/java/locale/LocaleInformation_kw.properties,
+ * resource/gnu/java/locale/LocaleInformation_ky.properties,
+ * resource/gnu/java/locale/LocaleInformation_lo.properties,
+ * resource/gnu/java/locale/LocaleInformation_lt.properties,
+ * resource/gnu/java/locale/LocaleInformation_lv.properties,
+ * resource/gnu/java/locale/LocaleInformation_mk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ml.properties,
+ * resource/gnu/java/locale/LocaleInformation_mn.properties,
+ * resource/gnu/java/locale/LocaleInformation_mr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms.properties,
+ * resource/gnu/java/locale/LocaleInformation_ms_BN.properties,
+ * resource/gnu/java/locale/LocaleInformation_mt.properties,
+ * resource/gnu/java/locale/LocaleInformation_nb.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl.properties,
+ * resource/gnu/java/locale/LocaleInformation_nl_BE.properties,
+ * resource/gnu/java/locale/LocaleInformation_nn.properties,
+ * resource/gnu/java/locale/LocaleInformation_om.properties,
+ * resource/gnu/java/locale/LocaleInformation_om_KE.properties,
+ * resource/gnu/java/locale/LocaleInformation_or.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa.properties,
+ * resource/gnu/java/locale/LocaleInformation_pl.properties,
+ * resource/gnu/java/locale/LocaleInformation_ps.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt.properties,
+ * resource/gnu/java/locale/LocaleInformation_pt_PT.properties,
+ * resource/gnu/java/locale/LocaleInformation_ro.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru.properties,
+ * resource/gnu/java/locale/LocaleInformation_ru_UA.properties,
+ * resource/gnu/java/locale/LocaleInformation_sa.properties,
+ * resource/gnu/java/locale/LocaleInformation_sid.properties,
+ * resource/gnu/java/locale/LocaleInformation_sk.properties,
+ * resource/gnu/java/locale/LocaleInformation_sl.properties,
+ * resource/gnu/java/locale/LocaleInformation_so.properties,
+ * resource/gnu/java/locale/LocaleInformation_so_DJ.properties,
+ * resource/gnu/java/locale/LocaleInformation_so_ET.properties,
+ * resource/gnu/java/locale/LocaleInformation_so_KE.properties,
+ * resource/gnu/java/locale/LocaleInformation_sq.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv.properties,
+ * resource/gnu/java/locale/LocaleInformation_sv_FI.properties,
+ * resource/gnu/java/locale/LocaleInformation_sw.properties,
+ * resource/gnu/java/locale/LocaleInformation_syr.properties,
+ * resource/gnu/java/locale/LocaleInformation_ta.properties,
+ * resource/gnu/java/locale/LocaleInformation_te.properties,
+ * resource/gnu/java/locale/LocaleInformation_th.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti.properties,
+ * resource/gnu/java/locale/LocaleInformation_ti_ER.properties,
+ * resource/gnu/java/locale/LocaleInformation_tig.properties,
+ * resource/gnu/java/locale/LocaleInformation_tr.properties,
+ * resource/gnu/java/locale/LocaleInformation_tt.properties,
+ * resource/gnu/java/locale/LocaleInformation_uk.properties,
+ * resource/gnu/java/locale/LocaleInformation_ur.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_uz_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_vi.properties,
+ * resource/gnu/java/locale/LocaleInformation_wal.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties,
+ * resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties:
+ Regenerated from CLDR 1.5.1 data.
+ * resource/gnu/java/locale/LocaleInformation_af_NA.properties,
+ * resource/gnu/java/locale/LocaleInformation_ak.properties,
+ * resource/gnu/java/locale/LocaleInformation_bo.properties,
+ * resource/gnu/java/locale/LocaleInformation_cch.properties,
+ * resource/gnu/java/locale/LocaleInformation_cop.properties,
+ * resource/gnu/java/locale/LocaleInformation_ee.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_JM.properties,
+ * resource/gnu/java/locale/LocaleInformation_en_NA.properties,
+ * resource/gnu/java/locale/LocaleInformation_fil.properties,
+ * resource/gnu/java/locale/LocaleInformation_fur.properties,
+ * resource/gnu/java/locale/LocaleInformation_gaa.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha.properties,
+ * resource/gnu/java/locale/LocaleInformation_ha_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_ia.properties,
+ * resource/gnu/java/locale/LocaleInformation_ig.properties,
+ * resource/gnu/java/locale/LocaleInformation_ii.properties,
+ * resource/gnu/java/locale/LocaleInformation_kaj.properties,
+ * resource/gnu/java/locale/LocaleInformation_kam.properties
+ * resource/gnu/java/locale/LocaleInformation_kcg.properties,
+ * resource/gnu/java/locale/LocaleInformation_kfo.properties,
+ * resource/gnu/java/locale/LocaleInformation_kpe.properties,
+ * resource/gnu/java/locale/LocaleInformation_ku.properties,
+ * resource/gnu/java/locale/LocaleInformation_ku_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_ln.properties,
+ * resource/gnu/java/locale/LocaleInformation_my.properties,
+ * resource/gnu/java/locale/LocaleInformation_ne.properties,
+ * resource/gnu/java/locale/LocaleInformation_nr.properties,
+ * resource/gnu/java/locale/LocaleInformation_nso.properties,
+ * resource/gnu/java/locale/LocaleInformation_ny.properties,
+ * resource/gnu/java/locale/LocaleInformation_pa_Arab.properties,
+ * resource/gnu/java/locale/LocaleInformation_rw.properties,
+ * resource/gnu/java/locale/LocaleInformation_se.properties,
+ * resource/gnu/java/locale/LocaleInformation_se_FI.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties,
+ * resource/gnu/java/locale/LocaleInformation_ss.properties,
+ * resource/gnu/java/locale/LocaleInformation_ssy.properties,
+ * resource/gnu/java/locale/LocaleInformation_st.properties,
+ * resource/gnu/java/locale/LocaleInformation_tg.properties,
+ * resource/gnu/java/locale/LocaleInformation_tn.properties,
+ * resource/gnu/java/locale/LocaleInformation_to.properties
+ * resource/gnu/java/locale/LocaleInformation_ts.properties,
+ * resource/gnu/java/locale/LocaleInformation_ug.properties,
+ * resource/gnu/java/locale/LocaleInformation_ve.properties,
+ * resource/gnu/java/locale/LocaleInformation_wo.properties,
+ * resource/gnu/java/locale/LocaleInformation_xh.properties,
+ * resource/gnu/java/locale/LocaleInformation_yo.properties,
+ * resource/gnu/java/locale/LocaleInformation_zu.properties:
+ New files from CLDR 1.5.1.
+
+2008-07-01 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * java/lang/Integer.java (signum): Implemented properly as
+ described in Hacker's Delight Section 2-7, plus Andrew Haley's
+ explanation.
+
+2008-07-01 Andrew Haley <aph@redhat.com>
+
+ * java/lang/Long.java: Comment change only.
+
+2008-07-01 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * java/lang/Long.java (signum): Implemented properly as described
+ in Hacker's Delight Section 2-7.
+
+2008-06-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/35237:
+ * resource/java/util/iso4217.properties:
+ Regenerated from CLDR 1.5.1 data.
+
+2008-06-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36636:
+ * tools/gnu/classpath/tools/jar/Updater.java:
+ (run(Main)): Check return value of renameTo, and
+ create temporary file in same directory (as suggested
+ by Tom Tromey).
+ (copyFile(File,File)): Removed.
+
+2008-06-27 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36637:
+ * examples/Makefile.am,
+ * lib/Makefile.am:
+ Use new conditional and $(JAR).
+ * m4/acinclude.m4:
+ Replace --with-fastjar with a general
+ --with-jar check that can be turned off.
+ * tools/Makefile.am:
+ Use new conditional and $(JAR).
+
+2008-06-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36636:
+ * tools/gnu/classpath/tools/jar/Updater.java:
+ (run(Main)): Check return value of renameTo, and
+ copy file instead if necessary.
+ (copyFile(File,File)): New method to copy a file.
+
+2008-06-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac: Remove AC_PROG_MKDIR_P.
+ * examples/Makefile.am,
+ * lib/Makefile.am,
+ * tools/Makefile.am:
+ Use mkdir_p instead of MKDIR_P.
+
+2008-06-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36221:
+ * gnu/xml/dom/DomAttr.java:
+ (DomAttr(DomDocument,String,String,String,String)):
+ New constructor.
+ * gnu/xml/dom/DomDocument.java:
+ (createElement(String)): Use new constructor rather than
+ setting variable directly.
+ (createAttribute(String)): Likewise.
+ * gnu/xml/dom/DomElement.java:
+ (DomElement(DomDocument,String,String,String,String)):
+ New constructor.
+ * gnu/xml/dom/DomNsNode.java:
+ (localName): Make private.
+ (DomNsNode(short,DomDocument,String,String,String,String)):
+ New constructor.
+ * gnu/xml/dom/ls/DomLSParser.java:
+ (doParse(LSInput)): Set namespace awareness using a method,
+ not directly.
+ * gnu/xml/dom/ls/SAXEventSink.java:
+ (namespaceAware): Make private.
+ (setNamespaceAware(boolean)): New method.
+ * gnu/xml/transform/XSLURIResolver.java:
+ (parse(InputSource,XMLReader)): Parse with namespace awareness on.
+
+2008-06-24 Tom Tromey <tromey@redhat.com>
+
+ PR libgcj/32198:
+ * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java
+ (compile): Reverse isAssignableFrom test.
+
+2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36219:
+ * gnu/xml/transform/ForEachNode.java:
+ Genericised.
+ * gnu/xml/transform/SortKey.java:
+ Documented.
+ (clone(Stylesheet)): Implemented.
+ (cloneAttributeValueTemplate(TemplateNode,Stylesheet)):
+ Implemented.
+ * gnu/xml/transform/Stylesheet.java:
+ (parseSortKeys(Node)): Return empty list not null.
+ * gnu/xml/transform/TemplateNode.java:
+ Genericise documentOrderComparator.
+
+2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/xpath/CountFunction.java,
+ * gnu/xml/xpath/EqualityExpr.java,
+ * gnu/xml/xpath/Expr.java,
+ * gnu/xml/xpath/IdFunction.java,
+ * gnu/xml/xpath/LocalNameFunction.java,
+ * gnu/xml/xpath/NameFunction.java,
+ * gnu/xml/xpath/NamespaceUriFunction.java,
+ * gnu/xml/xpath/ParenthesizedExpr.java,
+ * gnu/xml/xpath/Steps.java,
+ * gnu/xml/xpath/SumFunction.java,
+ * gnu/xml/xpath/UnionExpr.java,
+ * gnu/xml/xpath/XPathParser.java,
+ * gnu/xml/xpath/XPathParser.y,
+ * java/lang/Enum.java,
+ * java/lang/reflect/Constructor.java,
+ * java/lang/reflect/Field.java,
+ * java/lang/reflect/Method.java:
+ Reduce scope of unchecked warning suppression,
+ and remove unneeded uses.
+
+2008-06-23 Christian Thalinger <twisti@complang.tuwien.ac.at>
+
+ * include/jni.h [__cplusplus] (_Jv_JNIEnv): Renamed member p to
+ functions to be compatible with OpenJDK.
+
+2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36220:
+ * gnu/xml/transform/CallTemplateNode.java:
+ (doApply(Stylesheet,QName,Node,int,int,Node,Node)):
+ Check for withParams being empty not null.
+ (references(QName)): Remove special-casing for null.
+ * gnu/xml/transform/Stylesheet.java:
+ (parseWithParams(Node)): Just return the list if empty,
+ don't return null instead.
+
+2008-06-23 Andrew Haley <aph@redhat.com>
* native/jawt/Makefile.am,
native/fdlibm/Makefile.am,
@@ -26,57 +1425,341 @@
* lib/Makefile.am (resources): Add .svn.
+2008-06-23 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/transform/ParameterNode.java,
+ * gnu/xml/transform/Stylesheet.java,
+ * gnu/xml/transform/UnparsedEntityUriFunction.java,
+ * gnu/xml/transform/ValueOfNode.java,
+ * gnu/xml/transform/XSLComparator.java,
+ * gnu/xml/transform/XSLURIResolver.java:
+ Genericised.
+
+2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/xpath/ContainsFunction.java,
+ * gnu/xml/xpath/CountFunction.java,
+ * gnu/xml/xpath/EqualityExpr.java,
+ * gnu/xml/xpath/Expr.java,
+ * gnu/xml/xpath/IdFunction.java,
+ * gnu/xml/xpath/LocalNameFunction.java,
+ * gnu/xml/xpath/NameFunction.java,
+ * gnu/xml/xpath/ParenthesizedExpr.java:
+ Genericised.
+
+2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/xpath/Expr.java,
+ * gnu/xml/xpath/FloorFunction.java,
+ * gnu/xml/xpath/Function.java,
+ * gnu/xml/xpath/FunctionCall.java,
+ * gnu/xml/xpath/NamespaceUriFunction.java,
+ * gnu/xml/xpath/ParenthesizedExpr.java,
+ * gnu/xml/xpath/Root.java,
+ * gnu/xml/xpath/Selector.java,
+ * gnu/xml/xpath/Steps.java:
+ Genericised.
+
+2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/xml/xpath/BooleanFunction.java,
+ * gnu/xml/xpath/CeilingFunction.java,
+ * gnu/xml/xpath/ConcatFunction.java,
+ * gnu/xml/xpath/DocumentOrderComparator.java,
+ * gnu/xml/xpath/Expr.java,
+ * gnu/xml/xpath/IdFunction.java,
+ * gnu/xml/xpath/LangFunction.java,
+ * gnu/xml/xpath/LocalNameFunction.java,
+ * gnu/xml/xpath/NameFunction.java,
+ * gnu/xml/xpath/NormalizeSpaceFunction.java,
+ * gnu/xml/xpath/NotFunction.java,
+ * gnu/xml/xpath/NumberFunction.java,
+ * gnu/xml/xpath/Path.java,
+ * gnu/xml/xpath/RoundFunction.java,
+ * gnu/xml/xpath/Selector.java,
+ * gnu/xml/xpath/StartsWithFunction.java,
+ * gnu/xml/xpath/Steps.java,
+ * gnu/xml/xpath/StringFunction.java,
+ * gnu/xml/xpath/StringLengthFunction.java,
+ * gnu/xml/xpath/SubstringAfterFunction.java,
+ * gnu/xml/xpath/SubstringBeforeFunction.java,
+ * gnu/xml/xpath/SubstringFunction.java,
+ * gnu/xml/xpath/SumFunction.java,
+ * gnu/xml/xpath/TranslateFunction.java,
+ * gnu/xml/xpath/UnionExpr.java,
+ * gnu/xml/xpath/XPathParser.java,
+ * gnu/xml/xpath/XPathParser.y,
+ * gnu/xml/xpath/XPathTokenizer.java:
+ Genericised.
+ * javax/xml/datatype/DatatypeFactory.java:
+ Use new java.util.ServiceLoader framework.
+ * javax/xml/namespace/NamespaceContext.java,
+ * javax/xml/parsers/DocumentBuilderFactory.java,
+ * javax/xml/parsers/SAXParserFactory.java,
+ * javax/xml/stream/XMLEventFactory.java,
+ * javax/xml/stream/XMLEventReader.java,
+ * javax/xml/stream/XMLInputFactory.java,
+ * javax/xml/stream/XMLOutputFactory.java:
+ Genericised.
+ * javax/xml/stream/events/DTD.java,
+ * javax/xml/stream/events/EndElement.java,
+ * javax/xml/stream/events/StartElement.java:
+ Ignore unchecked errors due to API not using generics.
+ * javax/xml/transform/TransformerFactory.java,
+ * javax/xml/validation/SchemaFactory.java,
+ * javax/xml/xpath/XPathFactory.java:
+ Genericised.
+ * javax/xml/xpath/XPathFunction.java:
+ Ignore unchecked errors due to API not using generics.
+
+2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36220:
+ * gnu/xml/transform/ParameterNode.java:
+ (clone()): Only clone select if not null.
+ (toString()): Always include value of select.
+ * gnu/xml/transform/Stylesheet.java:
+ (toString()): Implemented.
+ * gnu/xml/transform/Template.java:
+ (toString()): Add value of node.
+ * gnu/xml/transform/TemplatesImpl.java:
+ (toString()): Implemented.
+
+2008-06-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/28664:
+ * gnu/java/math/GMP.java:
+ Renamed from VMBigInteger.java and fixed to use
+ GMP instances directly.
+ * include/Makefile.am:
+ Generate GMP.h not VMBigInteger.h.
+ * java/math/BigInteger.java:
+ Send instances of GMP in calls to GMP rather than
+ the wrapping BigInteger class.
+ * native/jni/java-math/Makefile.am:
+ Fix filename of source code file.
+ * native/jni/java-math/gnu_java_math_GMP.c:
+ Renamed from java_math_VMBigInteger.c.
+ * native/jni/java-math/java_math_VMBigInteger.c,
+ * vm/reference/java/math/VMBigInteger.java:
+ Removed.
+
+2008-06-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Remove --with-vm option, instead relying
+ on AC_PROG_JAVA. Only call this if tools
+ are enabled.
+ * tools/gappletviewer.in,
+ * tools/gjar.in,
+ * tools/gjarsigner.in,
+ * tools/gjavah.in,
+ * tools/gjdoc.in,
+ * tools/gkeytool.in,
+ * tools/gnative2ascii.in,
+ * tools/gorbd.in,
+ * tools/grmic.in,
+ * tools/grmid.in,
+ * tools/grmiregistry.in,
+ * tools/gserialver.in,
+ * tools/gtnameserv.in:
+ Regenerated with @JAVA@ and -classpath option.
+
+2008-06-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * m4/ac_prog_java.m4:
+ Add CACAO and JamVM.
+ * m4/ac_prog_javac.m4:
+ Use variables to store warning options.
+
+2008-06-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/ObjectName.java,
+ * javax/management/StandardMBean.java:
+ Fix warnings due to use of generics.
+
2008-06-18 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* native/fdlibm/dtoa.c: include stdlib.h, for 'free'.
-2008-06-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+2008-06-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * javax/management/openmbean/ArrayType.java,
+ * javax/management/openmbean/CompositeDataSupport.java,
+ * javax/management/openmbean/CompositeType.java,
+ * javax/management/openmbean/OpenMBeanAttributeInfoSupport.java,
+ * javax/management/openmbean/OpenMBeanInfoSupport.java,
+ * javax/management/openmbean/OpenMBeanParameterInfoSupport.java,
+ * javax/management/openmbean/SimpleType.java,
+ * javax/management/openmbean/TabularDataSupport.java:
+ Fix warnings due to use of generics.
+ * javax/management/remote/rmi/RMIConnection.java:
+ Suppress warnings due to API's use of MarshalledObject.
- * Makefile.in: Regenerate.
- * configure: Regenerate.
- * doc/Makefile.in: Regenerate.
- * doc/api/Makefile.in: Regenerate.
- * examples/Makefile.in: Regenerate.
- * external/Makefile.in: Regenerate.
- * external/jsr166/Makefile.in: Regenerate.
- * external/relaxngDatatype/Makefile.in: Regenerate.
- * external/sax/Makefile.in: Regenerate.
- * external/w3c_dom/Makefile.in: Regenerate.
- * include/Makefile.in: Regenerate.
- * lib/Makefile.in: Regenerate.
- * native/Makefile.in: Regenerate.
- * native/fdlibm/Makefile.in: Regenerate.
- * native/jawt/Makefile.in: Regenerate.
- * native/jni/Makefile.in: Regenerate.
- * native/jni/classpath/Makefile.in: Regenerate.
- * native/jni/gconf-peer/Makefile.in: Regenerate.
- * native/jni/gstreamer-peer/Makefile.in: Regenerate.
- * native/jni/gtk-peer/Makefile.in: Regenerate.
- * native/jni/java-io/Makefile.in: Regenerate.
- * native/jni/java-lang/Makefile.in: Regenerate.
- * native/jni/java-net/Makefile.in: Regenerate.
- * native/jni/java-nio/Makefile.in: Regenerate.
- * native/jni/java-util/Makefile.in: Regenerate.
- * native/jni/midi-alsa/Makefile.in: Regenerate.
- * native/jni/midi-dssi/Makefile.in: Regenerate.
- * native/jni/native-lib/Makefile.in: Regenerate.
- * native/jni/qt-peer/Makefile.in: Regenerate.
- * native/jni/xmlj/Makefile.in: Regenerate.
- * native/plugin/Makefile.in: Regenerate.
- * resource/Makefile.in: Regenerate.
- * scripts/Makefile.in: Regenerate.
- * tools/Makefile.in: Regenerate.
+2008-06-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
-2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * javax/management/openmbean/TabularDataSupport.java,
+ * javax/management/openmbean/TabularType.java:
+ Fix warnings due to use of generics.
- * configure.ac: Set version to 0.97.2.
- * NEWS: Add 0.97.2.
+2008-06-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
-2008-05-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ PR classpath/36522:
+ * gnu/java/security/PolicyFile.java:
+ Correct typo changing seperator to separator.
- * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java:
- Remove use of 1.5 language constructs.
+2008-06-15 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36477:
+ * gnu/java/lang/CPStringBuilder.java,
+ (setLength(int)): Don't ensure capacity when
+ new length is 0.
+ (ensureCapacity(int)): Allocate double the minimum
+ capacity rather than double the array length when
+ allocating a new array after a write.
+
+2008-06-15 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/java2d/RasterGraphics.java: remove unused import that cause
+ compilation to fail when xpeers are not enabled.
+
+2008-06-15 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/java2d/AbstractGraphics2D.java (setColor): delegate to
+ setPaint.
+ (setPaint): fix to set paint context and foreground color.
+ (imageCache): new field.
+ (drawImage): new codepath for scaling images.
+ (prepareImage): new method.
+ (getPaintContext): set paintContext appropriately.
+ * gnu/java/awt/java2d/RasterGraphics.java (renderScanline): new method,
+ override from superclass to detect correct value of y while rendering
+ the scanline.
+ * gnu/java/awt/java2d/ScanlineConverter.java (renderShape): revert previous
+ patch.
+ * gnu/java/awt/peer/x/XEventPump.java (findMouseEventTarget): new method.
+ (handleButtonPress): use of findMouseEventTarget to detect the correct
+ target.
+ (handleButtonRelease): likewise.
+ * gnu/java/awt/peer/x/XGraphics2D.java (rawDrawImage): clip the target image
+ so that it is completely contained in the destination pixmaps, as per X11
+ specification.
+ * gnu/java/awt/peer/x/XToolkit.java (createTextField): method implemented.
+ (createButton): likewise.
+ (prepareImage): likewise.
+ (createLabel): likewise.
+ (checkImage): likewise.
+ (createTextArea): likewise.
+ (createCheckbox): likewise.
+ (checkHeadLess): new method.
+ * gnu/javax/imageio/bmp/BMPImageWriter.java (write):
+ don't close the stream.
+ * gnu/javax/imageio/bmp/BMPImageWriterSpi.java (names): added new names to
+ the list of known names for BMP.
+ * java/awt/image/WritableRaster.java (createWritableTranslatedChild):
+ * javax/imageio/ImageIO.java (write): call dispose on ImageWriter after
+ writing of the image.
+
+2008-06-15 Tom Tromey <tromey@redhat.com>
+
+ * include/jni.h (_jobjectRefType, jobjectRefType): Always
+ declare.
+
+2008-06-13 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * configure.ac:
+ Add --enable-gjdoc option and check
+ for mkdir -p.
+ * examples/Makefile.am,
+ * lib/Makefile.am,
+ * lib/copy-vmresources.sh.in:
+ Use @MKDIR_P@.
+ * tools/Makefile.am:
+ Allow building GJDoc to be disabled
+ and use @MKDIR_P@.
+
+2008-06-13 Mark Wielaard <mark@klomp.org>
+
+ * tools/Makefile.am (USE_JAVAC_FLAGS): Use relative generated dir.
+ (TOOLS_ZIP): Generate antlr output in relative dir.
+
+2008-06-13 Mark Wielaard <mark@klomp.org>
+
+ * tools/Makefile.am (USE_JAVAC_FLAGS): Use generated in builddir.
+ (TOOLS_JAVA_FILES): Include all .java files in all subdirs.
+ (ALL_TOOLS_FILES): Include gjdoc_resources and antlr input file.
+ (TOOLS_ZIP): Generate antlr output in builddir.
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png:
+ New file from gjdoc.
+
+2008-06-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Check for --with-glibj too when disabling
+ the javac check.
+
+2008-06-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * include/Makefile.am: Don't delete headers
+ when not rebuilding them.
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac: Only regenerate headers by
+ default if the headers aren't in the source tree.
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac: Only run javac check
+ if examples, tools and/or class library are
+ being built.
+ * scripts/check_jni_methods.sh.in:
+ Remove duplicates in the list of JNI methods
+ for when builddir==srcdir.
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * lib/Makefile.am:
+ Replace explicit mkinstalldirs with $(mkinstalldirs).
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * scripts/check_jni_methods.sh.in:
+ Search the source directory as well for
+ when headers are in the tarball.
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.am: Replace tools with
+ $(TOOLSDIR).
+ * m4/acinclude.m4: Include option
+ to disable building the tools.
+
+2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * Makefile.am: Use default makedistcheck
+ flags that test all optional dependencies.
+ * include/Makefile.am: Add header files to dist.
+ * lib/Makefile.am: Trick class files into being
+ built for dist, so headers can be generated.
+
+2008-06-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * doc/www.gnu.org/announce/20080606.wml,
+ * doc/www.gnu.org/newsitems.txt:
+ Add 0.97.2 annoncement.
+ * NEWS: Add 0.97.1 and 0.97.2 updates.
+
+2008-06-09 Mark Wielaard <mark@klomp.org>
+
+ * Makefile.am (EXTRA_DIST): Add ChangeLog-2007.
+ * doc/Makefile.am (EXTRA_DIST): Add invoke.texi.
+
+2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/Integer.java:
+ (parseInt(String, int, boolean)): Disallow "-+".
+
2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
* tools/gnu/classpath/tools/common/ClasspathToolParser.java:
@@ -108,24 +1791,6 @@
* tools/gnu/classpath/tools/jar/Main.java:
Revert previous changes to allow Schuster's patch to
do the same.
-
-2008-06-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/lang/Integer.java:
- (parseInt(String, int, boolean)): Disallow "-+".
-
-2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- Reported by Nicolas Geoffray <nicolas.geoffray@menlina.com>
- * java/lang/Integer.java:
- (parseInt(String,int,boolean)): Parse +x
- as x, not -x.
-
-2008-06-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * configure.ac:
- Check for --with-glibj too when disabling
- the javac check.
2008-06-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
@@ -138,6 +1803,596 @@
(parsed(String)): Add stdin to queue instead of setting flag.
(readNames()): Work with the queue rather than just stdin.
(run(String[])): Always execute readNames().
+
+2008-06-01 Mark Wielaard <mark@klomp.org>
+
+ * gnu/java/awt/java2d/AbstractGraphics2D.java: Removed XDialogPeer
+ import.
+
+2008-05-29 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/java2d/AbstractGraphics2D.java (setColor): now set directly
+ the foreground color the application wants to use to draw. On null, behave
+ like OpenJDK, drawing black.
+ (renderScanline): fixed NPE, paintContext never initialized. Correctely
+ retrieve destination raster
+ (getColor): Return the correct type.
+ (static initializer): HashMap now typed.
+ (background): now defaults to black and not null.
+ (getPaintContext): new method. Initialize lazily the PaintContext.
+ (foreground): new field.
+ (isForegroundColorNull): likewise.
+ (getDeviceBounds): made abstract.
+ * gnu/java/awt/java2d/RasterGraphics.java (getDeviceBounds): new method.
+ * gnu/java/awt/java2d/ScanlineConverter.java (renderShape): pass correct
+ value of Y to doScanline.
+ * gnu/java/awt/peer/x/GLGraphics.java (getDeviceBounds): new method.
+ (setBackground): synch with new Escher 2.0 API.
+ * gnu/java/awt/peer/x/XGraphicsConfiguration.java (getDefaultTransform):
+ implemented.
+ (getBounds): new method.
+ * java/awt/AlphaComposite.java (derive(int) and derive(float)):
+ new methods.
+ * java/awt/image/WritableRaster.java (createWritableTranslatedChild):
+ now call createWritableChild.
+ (createWritableChild): reformatted.
+
+2008-05-27 Joshua Sumali <jsumali@redhat.com>
+
+ * NEWS: Added building of gjdoc into tools.
+
+2008-05-27 Joshua Sumali <jsumali@redhat.com>
+
+ * AUTHORS: Added Joshua Sumali.
+
+2008-05-27 Joshua Sumali <jsumali@redhat.com>
+
+ * configure.ac: Add support for Antlr. This is used for building gjdoc.
+ Also generate tools/gjdoc wrapper with gjdoc.in.
+ * doc/gjdoc.texi: New file.
+ * doc/invoke.texi: New file.
+ * doc/Makefile.am: Generate gjdoc documentation.
+ * m4/ac_prog_antlr.m4: New file.
+ * m4/ac_prog_java.m4: New file.
+ * m4/ac_prog_java_works.m4: New file.
+ * tools/Makefile.am: Build gjdoc as part of tools.
+ * tools/com/sun/tools/javadoc/Main.java,
+ * tools/gjdoc.in,
+ * tools/gnu/classpath/tools/doclets/AbstractDoclet.java,
+ * tools/gnu/classpath/tools/doclets/.cvsignore,
+ * tools/gnu/classpath/tools/doclets/debugdoclet/.cvsignore,
+ * tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java,
+ * tools/gnu/classpath/tools/doclets/DocletConfigurationException.java,
+ * tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java,
+ * tools/gnu/classpath/tools/doclets/DocletOptionFile.java,
+ * tools/gnu/classpath/tools/doclets/DocletOptionFlag.java,
+ * tools/gnu/classpath/tools/doclets/DocletOption.java,
+ * tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java,
+ * tools/gnu/classpath/tools/doclets/DocletOptionString.java,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/.cvsignore,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java,
+ * tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java,
+ * tools/gnu/classpath/tools/doclets/InlineTagRenderer.java,
+ * tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java,
+ * tools/gnu/classpath/tools/doclets/PackageGroup.java,
+ * tools/gnu/classpath/tools/doclets/PackageMatcher.java,
+ * tools/gnu/classpath/tools/doclets/StandardTaglet.java,
+ * tools/gnu/classpath/tools/doclets/TagletPrinter.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/.cvsignore,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/.cvsignore,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/package.html,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java,
+ * tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java,
+ * tools/gnu/classpath/tools/FileSystemClassLoader.java,
+ * tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java,
+ * tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java,
+ * tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/.cvsignore,
+ * tools/gnu/classpath/tools/gjdoc/Debug.java,
+ * tools/gnu/classpath/tools/gjdoc/DirectoryTree.java,
+ * tools/gnu/classpath/tools/gjdoc/DocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ErrorReporter.java,
+ * tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/Context.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/.cvsignore,
+ * tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/Expression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/java-expression.g,
+ * tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/Type.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java,
+ * tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java,
+ * tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java,
+ * tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java,
+ * tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java,
+ * tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/Main.java,
+ * tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ParameterImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ParseException.java,
+ * tools/gnu/classpath/tools/gjdoc/Parser.java,
+ * tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/RootDocImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/TagContainer.java,
+ * tools/gnu/classpath/tools/gjdoc/TagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/TemporaryStore.java,
+ * tools/gnu/classpath/tools/gjdoc/TextTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/TimerDoclet.java,
+ * tools/gnu/classpath/tools/gjdoc/Timer.java,
+ * tools/gnu/classpath/tools/gjdoc/TypeImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java,
+ * tools/gnu/classpath/tools/gjdoc/WritableType.java,
+ * tools/gnu/classpath/tools/IOToolkit.java,
+ * tools/gnu/classpath/tools/java2xhtml/.cvsignore,
+ * tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java,
+ * tools/gnu/classpath/tools/MalformedInputEvent.java,
+ * tools/gnu/classpath/tools/MalformedInputListener.java,
+ * tools/gnu/classpath/tools/NotifyingInputStreamReader.java,
+ * tools/gnu/classpath/tools/StringToolkit.java,
+ * tools/gnu/classpath/tools/taglets/AuthorTaglet.java,
+ * tools/gnu/classpath/tools/taglets/CodeTaglet.java,
+ * tools/gnu/classpath/tools/taglets/CopyrightTaglet.java,
+ * tools/gnu/classpath/tools/taglets/.cvsignore,
+ * tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java,
+ * tools/gnu/classpath/tools/taglets/GenericTaglet.java,
+ * tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java,
+ * tools/gnu/classpath/tools/taglets/SinceTaglet.java,
+ * tools/gnu/classpath/tools/taglets/TagletContext.java,
+ * tools/gnu/classpath/tools/taglets/ValueTaglet.java,
+ * tools/gnu/classpath/tools/taglets/VersionTaglet.java,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js,
+ * tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/serialized.xsl,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd,
+ * tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties,
+ * tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd,
+ * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt,
+ * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt,
+ * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt,
+ * tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt,
+ * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng,
+ * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng,
+ * tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng,
+ * tools/resource/gnu/classpath/tools/gjdoc/version.properties,
+ * tools/resource/gnu/classpath/tools/gjdoc/version.properties.in:
+ New files, taken from gjdoc source tree.
+
+
+2008-05-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/gnu/classpath/tools/jar/Creator.java:
+ (writeCommandLineEntries(Main,OutputStream)):
+ Add default value for manifest version and
+ include Created-By property.
+
+2008-05-19 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/peer/x/XEventPump.java (handleExpose): new method.
+ (handleDestroyNotify): likewise.
+ (handleClientMessage): likewise.
+ (handleButtonRelease): likewise.
+ (handleMotionNotify): likewise.
+ (handleKeyEvent): likewise.
+ (handleButtonPress): likewise.
+ (handleEvent): refactored to use new methods instead of a big switch
+ block. Fixed resizing of windows.
+ * gnu/java/awt/peer/x/XWindowPeer.java (standardSelect): update list
+ of flags for X11 events handling.
+ (callback): removed now unused flag.
+
+2008-05-16 Mario Torre <neugens@aicas.com>
+
+ * native/jni/java-math/java_math_VMBigInteger.c
+ (Java_java_math_VMBigInteger_natModInverse): fix variable res not
+ initialized.
+
+2008-05-15 Robert Schuster <robertschuster@fsfe.org>
+
+ * java/net/NetworkInterface.java:
+ (isUp): New method.
+ (isPointToPoint): Dito.
+ (isLoopback): Dito.
+ (supportsMulticast): Dito.
+ * vm/reference/java/net/VMNetworkInterface.java:
+ (isUp): New method.
+ (isPointToPoint): Dito.
+ (isLoopback): Dito.
+ (supportsMulticast): Dito.
+ * native/jni/java-net/java_net_VMNetworkInterface.c:
+ (isUp): New method.
+ (isPointToPoint): Dito.
+ (isLoopback): Dito.
+ (supportsMulticast): Dito.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ Reported by Nicolas Geoffray <nicolas.geoffray@menlina.com>
+ * java/lang/Integer.java:
+ (parseInt(String,int,boolean)): Parse +x
+ as x, not -x.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/util/regex/Matcher.java:
+ (regionStart): New variable.
+ (regionEnd): Likewise.
+ (transparentBounds): Likewise.
+ (anchoringBounds): Likewise.
+ (Matcher()): Initialise new variables.
+ (find()): Alter to use new settings.
+ (find(int)): Likewise.
+ (lookingAt()): Likewise.
+ (matches()): Likewise.
+ (reset()): Reset region.
+ (reset(CharSequence)): Documented.
+ (toString()): Include new variables.
+ (region(int,int)): Implemented.
+ (regionStart()): Likewise.
+ (regionEnd()): Likewise.
+ (hasTransparentBounds()): Likewise.
+ (useTransparentBounds(boolean)): Likewise.
+ (hasAnchoringBounds()): Likewise.
+ (useAnchoringBounds(boolean)): Likewise.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/lang/CPStringBuilder.java:
+ (toString()): Fix comments to reflect copying changes.
+ * vm/reference/gnu/java/lang/VMCPStringBuilder.java:
+ (toString()): Likewise.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * NEWS:
+ Mention GMP and CPStringBuilder.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/36147
+ * gnu/java/lang/CPStringBuilder.java:
+ (allocated): New flag to mark whether or
+ not the array has been allocated to a String object.
+ (ensureCapacity(int)): Removed.
+ (ensureCapacity_unsynchronized(int)): Renamed to
+ ensureCapacity, and creates an array when allocated
+ is true.
+ (allocateArray(int)): Added.
+ (trimToSize()): Use allocateArray method.
+ (toString()): Set allocated to true;
+ (substring(int,int)): Likewise.
+
+2008-05-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/lang/CPStringBuilder.java:
+ Make default capacity configurable.
+
+2008-05-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * vm/reference/gnu/java/lang/VMCPStringBuilder.java,
+ * vm/reference/gnu/java/lang/management/VMMemoryMXBeanImpl.java,
+ * vm/reference/java/net/VMNetworkInterface.java:
+ Remove use of 1.5 language constructs.
+
+2008-05-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/regex/RE.java:
+ Switch to use generic ArrayLists.
+ * gnu/java/util/regex/REMatchEnumeration.java:
+ Make the enumeration implementation generic.
+ * gnu/java/util/regex/RETokenLookBehind.java:
+ Remove unused variables.
+
+2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ Add generics to these classes.
+ * gnu/java/util/regex/RETokenOneOf.java:
+ Use an ArrayList and a Deque instead of
+ a Vector and a Stack to remove unnecessary
+ synchronisation.
+ * gnu/java/util/regex/RETokenRepeated.java:
+ Replace custom FindMatchControlStack class
+ with a generic Deque.
+ * java/util/regex/Pattern.java:
+ Use a generic ArrayList instance.
+
+2008-05-07 Mario Torre <neugens@limasoftware.net>
+
+ * gnu/java/awt/peer/x/XEventPump.java (handleEvent):
+ Fixed mouse dragging and movement in XEventPump. Patch from Roman Kennke.
+
+2008-05-07 Mario Torre <neugens@aicas.com>
+
+ * gnu/java/awt/peer/x/XEventPump.java (handleEvent): xEvent.code is now
+ masked to identify and react to syntetic events.
+ Added UnmapNotify, DestroyNotify and ClientMessage to the list of event
+ handled.
+ * gnu/java/awt/peer/x/XFramePeer.java (getState): initial implementation.
+ * gnu/java/awt/peer/x/XGraphics2D.java (setPaint): fix NPE, this is a
+ workaround, the code have to be fixed in a better way.
+ * gnu/java/awt/peer/x/XWindowPeer.java (getXwindow): new method to allow
+ access to the underling xwindow.
+ (standardSelect): add more events for notification.
+ (XWindowPeer): call set_wm_delete_window to ask the WM to notify us
+ when a delete event occur.
+
+2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * tools/gnu/classpath/tools/jar/Indexer.java,
+ * tools/gnu/classpath/tools/javah/JniHelper.java,
+ * tools/gnu/classpath/tools/native2ascii/Native2ASCII.java,
+ * tools/gnu/classpath/tools/orbd/PersistentMap.java,
+ * tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java,
+ * tools/gnu/classpath/tools/rmic/Generator.java,
+ * tools/gnu/classpath/tools/rmic/MethodGenerator.java,
+ * tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java,
+ * tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java,
+ * tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java:
+ Swap use of StringBuffer for StringBuilder.
+
+2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * javax/swing/AbstractButton.java,
+ * javax/swing/JButton.java,
+ * javax/swing/JComboBox.java,
+ * javax/swing/JComponent.java,
+ * javax/swing/JDesktopPane.java,
+ * javax/swing/JFileChooser.java,
+ * javax/swing/JFrame.java,
+ * javax/swing/JLabel.java,
+ * javax/swing/JList.java,
+ * javax/swing/JMenuBar.java,
+ * javax/swing/JPopupMenu.java,
+ * javax/swing/JProgressBar.java,
+ * javax/swing/JScrollBar.java,
+ * javax/swing/JSlider.java,
+ * javax/swing/JSplitPane.java,
+ * javax/swing/JTabbedPane.java,
+ * javax/swing/JToolBar.java,
+ * javax/swing/JToolTip.java,
+ * javax/swing/UIManager.java,
+ * javax/swing/event/EventListenerList.java,
+ * javax/swing/table/AbstractTableModel.java,
+ * javax/swing/text/AbstractDocument.java,
+ * javax/swing/text/DefaultEditorKit.java,
+ * javax/swing/text/DefaultStyledDocument.java,
+ * javax/swing/text/JTextComponent.java,
+ * javax/swing/text/MaskFormatter.java,
+ * javax/swing/text/TabSet.java,
+ * javax/swing/text/html/CSSParser.java,
+ * javax/swing/text/html/HTMLWriter.java,
+ * javax/swing/tree/DefaultTreeSelectionModel.java,
+ * javax/xml/namespace/QName.java,
+ * javax/xml/transform/TransformerException.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-07 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * javax/accessibility/AccessibleRelationSet.java,
+ * javax/accessibility/AccessibleStateSet.java,
+ * javax/imageio/plugins/jpeg/JPEGHuffmanTable.java,
+ * javax/imageio/plugins/jpeg/JPEGQTable.java,
+ * javax/imageio/stream/ImageInputStreamImpl.java,
+ * javax/management/ObjectName.java,
+ * javax/naming/BinaryRefAddr.java,
+ * javax/naming/CompositeName.java,
+ * javax/naming/CompoundName.java,
+ * javax/naming/NamingException.java,
+ * javax/naming/spi/NamingManager.java,
+ * javax/security/auth/x500/X500Principal.java,
+ * javax/security/sasl/SaslException.java,
+ * javax/sound/sampled/AudioFormat.java,
+ * javax/sound/sampled/CompoundControl.java,
+ * javax/sound/sampled/DataLine.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/util/AbstractCollection.java,
+ * java/util/BitSet.java,
+ * java/util/Collections.java,
+ * java/util/Locale.java,
+ * java/util/ResourceBundle.java,
+ * java/util/TimeZone.java,
+ * java/util/logging/FileHandler.java,
+ * java/util/logging/Logger.java,
+ * java/util/logging/SimpleFormatter.java,
+ * java/util/logging/XMLFormatter.java,
+ * java/util/prefs/AbstractPreferences.java,
+ * java/util/regex/PatternSyntaxException.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/text/AttributedString.java,
+ * java/text/ChoiceFormat.java,
+ * java/text/CollationElementIterator.java,
+ * java/text/Collator.java,
+ * java/text/DecimalFormat.java,
+ * java/text/MessageFormat.java,
+ * java/text/RuleBasedCollator.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/security/CodeSource.java,
+ * java/security/MessageDigest.java,
+ * java/security/Permission.java,
+ * java/security/PermissionCollection.java,
+ * java/security/ProtectionDomain.java,
+ * java/security/cert/CertPath.java,
+ * java/security/cert/PKIXBuilderParameters.java,
+ * java/security/cert/PKIXCertPathBuilderResult.java,
+ * java/security/cert/X509CRLSelector.java,
+ * java/security/cert/X509CertSelector.java,
+ * org/ietf/jgss/Oid.java,
+ * org/omg/CORBA/portable/Delegate.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/beans/Statement.java,
+ * java/io/File.java,
+ * java/io/StreamTokenizer.java,
+ * java/lang/Throwable.java,
+ * java/math/BigDecimal.java,
+ * java/math/BigInteger.java,
+ * java/net/Inet4Address.java,
+ * java/net/Inet6Address.java,
+ * java/net/NetworkInterface.java,
+ * java/net/SocketPermission.java,
+ * java/net/URLDecoder.java,
+ * java/net/URLStreamHandler.java,
+ * java/nio/channels/FileLock.java,
+ * java/rmi/dgc/VMID.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/awt/Component.java,
+ * java/awt/Container.java,
+ * java/awt/JobAttributes.java,
+ * java/awt/event/ActionEvent.java,
+ * java/awt/event/ComponentEvent.java,
+ * java/awt/event/HierarchyEvent.java,
+ * java/awt/event/InputEvent.java,
+ * java/awt/event/InputMethodEvent.java,
+ * java/awt/event/KeyEvent.java,
+ * java/awt/event/MouseEvent.java,
+ * java/awt/event/WindowEvent.java,
+ * java/awt/font/TextLayout.java,
+ * java/awt/image/BandedSampleModel.java,
+ * java/awt/image/BufferedImage.java,
+ * java/awt/image/MultiPixelPackedSampleModel.java,
+ * java/awt/image/Raster.java,
+ * java/awt/image/SinglePixelPackedSampleModel.java:
+ Swap use of StringBuffer for CPStringBuilder.
2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
@@ -147,6 +2402,385 @@
of characters to copy.
(toLowerCaseTurkish()): Likewise.
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/xml/stream/XMLEventImpl.java,
+ * gnu/xml/stream/XMLParser.java,
+ * gnu/xml/validation/datatype/EntitiesType.java,
+ * gnu/xml/validation/datatype/NMTokensType.java:
+ Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-06 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/javax/swing/text/html/parser/htmlValidator.java,
+ * gnu/javax/swing/text/html/parser/models/list.java,
+ * gnu/javax/swing/text/html/parser/models/node.java,
+ * gnu/javax/swing/text/html/parser/support/Parser.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/lang/CPStringBuilder.java:
+ (substring(int)): Added.
+ * gnu/javax/naming/giop/CorbalocParser.java,
+ * gnu/javax/naming/giop/GiopNamingServiceFactory.java,
+ * gnu/javax/naming/giop/ListBindingsEnumeration.java,
+ * gnu/javax/naming/giop/ListEnumeration.java,
+ * gnu/javax/naming/ictxImpl/trans/GnuName.java,
+ * gnu/javax/net/ssl/PrivateCredentials.java,
+ * gnu/javax/net/ssl/Session.java,
+ * gnu/javax/net/ssl/provider/HelloRequest.java,
+ * gnu/javax/net/ssl/provider/Util.java,
+ * gnu/javax/print/ipp/attribute/RequestedAttributes.java,
+ * gnu/javax/rmi/CORBA/RmiUtilities.java,
+ * gnu/javax/security/auth/callback/AWTCallbackHandler.java,
+ * gnu/javax/security/auth/login/ConfigFileTokenizer.java,
+ * gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java:
+ Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/javax/crypto/assembly/TransformerException.java,
+ * gnu/javax/crypto/cipher/BaseCipher.java,
+ * gnu/javax/crypto/jce/sig/DHParameters.java,
+ * gnu/javax/crypto/key/KeyAgreementException.java,
+ * gnu/javax/crypto/mode/BaseMode.java,
+ * gnu/javax/crypto/pad/BasePad.java,
+ * gnu/javax/crypto/sasl/crammd5/CramMD5Util.java,
+ * gnu/javax/crypto/sasl/crammd5/PasswordFile.java,
+ * gnu/javax/crypto/sasl/plain/PasswordFile.java,
+ * gnu/javax/crypto/sasl/plain/PlainClient.java,
+ * gnu/javax/crypto/sasl/srp/PasswordFile.java,
+ * gnu/javax/crypto/sasl/srp/SRPClient.java,
+ * gnu/javax/crypto/sasl/srp/SRPServer.java,
+ * gnu/javax/crypto/sasl/srp/ServerStore.java:
+ Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/util/Base64.java,
+ * gnu/java/util/prefs/NodeWriter.java,
+ * gnu/java/util/regex/RE.java,
+ * gnu/java/util/regex/REException.java,
+ * gnu/java/util/regex/REMatch.java,
+ * gnu/java/util/regex/REMatchEnumeration.java,
+ * gnu/java/util/regex/REToken.java,
+ * gnu/java/util/regex/RETokenAny.java,
+ * gnu/java/util/regex/RETokenBackRef.java,
+ * gnu/java/util/regex/RETokenChar.java,
+ * gnu/java/util/regex/RETokenEnd.java,
+ * gnu/java/util/regex/RETokenEndOfPreviousMatch.java,
+ * gnu/java/util/regex/RETokenEndSub.java,
+ * gnu/java/util/regex/RETokenIndependent.java,
+ * gnu/java/util/regex/RETokenLookAhead.java,
+ * gnu/java/util/regex/RETokenLookBehind.java,
+ * gnu/java/util/regex/RETokenNamedProperty.java,
+ * gnu/java/util/regex/RETokenOneOf.java,
+ * gnu/java/util/regex/RETokenPOSIX.java,
+ * gnu/java/util/regex/RETokenRange.java,
+ * gnu/java/util/regex/RETokenRepeated.java,
+ * gnu/java/util/regex/RETokenStart.java,
+ * gnu/java/util/regex/RETokenWordBoundary.java:
+ Swap use of StringBuffer for CPStringBuilder,
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/lang/CPStringBuilder.java:
+ (CPStringBuilder(StringBuffer)): Added.
+ (CPStringBuulder(StringBuilder)): Likewise.
+ * gnu/java/text/AttributedFormatBuffer.java:
+ Swap use of StringBuffer for CPStringBuilder,
+ and make fields final.
+ * gnu/java/text/StringFormatBuffer.java:
+ Make fields final.
+ * java/text/SimpleDateFormat.java:
+ Add thread safety warning.
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/security/OID.java,
+ * gnu/java/security/PolicyFile.java,
+ * gnu/java/security/der/BitString.java,
+ * gnu/java/security/der/DERReader.java,
+ * gnu/java/security/jce/sig/DSSParameters.java,
+ * gnu/java/security/provider/X509CertificateFactory.java,
+ * gnu/java/security/util/ByteArray.java,
+ * gnu/java/security/util/Util.java,
+ * gnu/java/security/x509/PolicyNodeImpl.java,
+ * gnu/java/security/x509/Util.java,
+ * gnu/java/security/x509/X500DistinguishedName.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/net/protocol/ftp/FTPConnection.java,
+ * gnu/java/net/protocol/jar/Handler.java,
+ * gnu/java/rmi/server/RMIClassLoaderImpl.java,
+ * gnu/java/rmi/server/RMIHashes.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/classpath/jdwp/util/Signature.java,
+ * gnu/java/awt/font/opentype/GlyphNamer.java,
+ * gnu/java/awt/font/opentype/truetype/Fixed.java,
+ * gnu/java/awt/font/opentype/truetype/VirtualMachine.java,
+ * gnu/java/awt/peer/gtk/GdkFontPeer.java,
+ * gnu/java/awt/peer/gtk/GtkClipboard.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/CORBA/BigDecimalHelper.java,
+ * gnu/CORBA/CDR/LittleEndianInputStream.java,
+ * gnu/CORBA/CDR/Vio.java,
+ * gnu/CORBA/CDR/gnuRuntime.java,
+ * gnu/CORBA/GIOP/MessageHeader.java,
+ * gnu/CORBA/GIOP/RequestHeader.java,
+ * gnu/CORBA/GIOP/v1_0/ReplyHeader.java,
+ * gnu/CORBA/GIOP/v1_0/RequestHeader.java,
+ * gnu/CORBA/IOR.java,
+ * gnu/CORBA/NamingService/NameParser.java,
+ * gnu/CORBA/NamingService/NameTransformer.java,
+ * gnu/CORBA/Poa/gnuPOA.java,
+ * gnu/CORBA/Poa/gnuServantObject.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-05-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java,
+ * examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java,
+ * examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java,
+ * examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java,
+ * examples/gnu/classpath/examples/html/Demo.java:
+ Swap use of StringBuffer for StringBuilder.
+
+2008-05-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/xml/libxmlj/dom/GnomeAttr.java,
+ * gnu/xml/libxmlj/dom/GnomeCharacterData.java,
+ * gnu/xml/libxmlj/dom/GnomeDocument.java,
+ * gnu/xml/libxmlj/dom/GnomeDocumentType.java,
+ * gnu/xml/libxmlj/dom/GnomeElement.java,
+ * gnu/xml/libxmlj/dom/GnomeEntity.java,
+ * gnu/xml/libxmlj/dom/GnomeNode.java,
+ * gnu/xml/libxmlj/dom/GnomeNotation.java,
+ * gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java,
+ * gnu/xml/libxmlj/dom/GnomeText.java,
+ * gnu/xml/libxmlj/dom/GnomeXPathResult.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-04-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/xml/util/XMLWriter.java,
+ * gnu/xml/xpath/ArithmeticExpr.java,
+ * gnu/xml/xpath/ConcatFunction.java,
+ * gnu/xml/xpath/Expr.java,
+ * gnu/xml/xpath/FunctionCall.java,
+ * gnu/xml/xpath/NormalizeSpaceFunction.java,
+ * gnu/xml/xpath/Selector.java,
+ * gnu/xml/xpath/Steps.java,
+ * gnu/xml/xpath/TranslateFunction.java,
+ * gnu/xml/xpath/VariableReference.java,
+ * gnu/xml/xpath/XPathTokenizer.java:
+ Swap use of StringBuffer for CPStringBuilder.
+
+2008-04-26 Ian Rogers <ian.rogers@manchester.ac.uk>
+
+ * java/util/ArrayList (raiseBoundsError): new method to raise bound
+ exceptions in uncommon case.
+ (checkBoundInclusive): use raiseBoundsError.
+ (checkBoundExclusive): likewise.
+ * java/util/ArrayList (raiseBoundsError): new method to raise bound
+ exceptions in uncommon case.
+ (checkBoundInclusive): use raiseBoundsError.
+ (checkBoundExclusive): likewise.
+
+2008-04-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/Byte.java:
+ Use int instead of short as a loop counter
+ for efficiency.
+
+2008-04-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/Byte.java:
+ (static): Use a short as the loop counter, not
+ a byte as this can't exceed MAX_VALUE.
+
+2008-04-18 Ian Rogers <ian.rogers@manchester.ac.uk>
+
+ * java/nio/Buffer.java (cap): make field private and final.
+ (address): make field final.
+ (Buffer): add address argument to package protected constructor thereby
+ allowing it to be made final.
+ * java/nio/ByteBuffer.java (backing_buffer): make field final.
+ (array_offset): make field final.
+ (ByteBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/ByteBufferImpl.java (readOnly): make field final.
+ (ByteBufferImpl): modify call to super class constructor to pass
+ backing_buffer and array_offset.
+ * java/nio/CharBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (CharBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/CharBufferImpl.java (readOnly): make field final.
+ (CharBufferImpl): modify call to super class constructor to pass
+ backing_buffer and array_offset.
+ (CharBufferImpl(CharBufferImpl)): likewise.
+ * java/nio/CharSequenceBuffer.java (charSequence): make field final.
+ (CharSequenceBuffer): modify call to super class constructor, allowing
+ fields to be made final.
+ (duplicate): use capacity call rather than cap, to allow better
+ encapsulation.
+ * java/nio/CharViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (CharViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/DirectByteBufferImpl.java: modify calls to super class
+ constructors, allowing fields to be made final.
+ * java/nio/DoubleBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (DoubleBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/DoubleBufferImpl.java (readOnly): make field final.
+ (DoubleBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/DoubleViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (DoubleViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/FloatBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (FloatBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/FloatBufferImpl.java (readOnly): make field final.
+ (FloatBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/FloatViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (FloatViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/IntBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (IntBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/IntBufferImpl.java (readOnly): make field final.
+ (IntBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/IntViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (IntViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/LongBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (LongBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/LongBufferImpl.java (readOnly): make field final.
+ (LongBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/LongViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (LongViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/MappedByteBuffer.java (MappedByteBuffer): modify arguments
+ add call to constructor, allowing fields to be final.
+ * java/nio/MappedByteBufferImpl.java (readOnly): make field final.
+ (MappedByteBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/ShortBuffer.java (array_offset): make field final.
+ (backing_buffer): make field final.
+ (ShortBuffer): add address, backing_buffer and array_offset to
+ constructor, allowing fields to be made final.
+ * java/nio/ShortBufferImpl.java (readOnly): make field final.
+ (ShortBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+ * java/nio/ShortViewBufferImpl.java (offset): make field final.
+ (bb): likewise.
+ (readOnly): likewise.
+ (endian): likewise.
+ (ShortViewBufferImpl): modify call to super class constructor, allowing
+ fields to be made final.
+
+2008-04-18 Ian Rogers <ian.rogers@manchester.ac.uk>
+
+ * java/lang/Byte.java (static): initialize byteCache.
+ (valueOf(String,int)): use valueOf(byte) rather than new.
+ (valueOf(String)): likewise.
+ (valueOf(byte)): Switch from lazy initialization of cached values to
+ initialization at class initialization time. This removes the need for
+ synchronization in the common case.
+ (decode): use valueOf(byte) rather than new.
+ * java/lang/Character.java (static): initialize charCache.
+ (valueOf): Switch from lazy initialization of cached values to
+ initialization at class initialization time. This removes the need for
+ synchronization in the common case.
+ * java/lang/Double.java (ZERO): new private field.
+ (ONE): likewise.
+ (valueOf(double)): don't create new doubles for the case of 0 and 1.
+ (valueOf(String)): use valueOf(double) rather than new.
+ (equals): use raw bits for comparison to avoid division.
+ * java/lang/Float.java (ZERO): new private field.
+ (ONE): likewise.
+ (valueOf(float)): don't create new floats for the case of 0 and 1.
+ (valueOf(String)): use valueOf(float) rather than new.
+ (equals): use raw bits for comparison to avoid division.
+ * java/lang/Integer.java (static): initialize intCache.
+ (stringSize): new private method to estimate size of string for an int.
+ (toString): reuse digits for single character strings, for multiple
+ character strings estimate their length using string size method.
+ (valueOf(String,int)): use valueOf(int) rather than new.
+ (valueOf(String)): likewise.
+ (valueOf(int)): Switch from lazy initialization of cached values to
+ initialization at class initialization time. This removes the need for
+ synchronization in the common case.
+ (getInteger): use valueOf(int) rather than new.
+ (decode): use valueOf(int) rather than new.
+ (signum): use shift and subtract to compute value.
+ (toUnsignedString): calculate string size rather than using 32 chars.
+ * java/lang/Long.java (longCache): new private field.
+ (stringSize): new private method to estimate size of string for a long.
+ (toString): reuse digits for single character strings, for multiple
+ character strings estimate their length using string size method.
+ (valueOf(String,int)): use valueOf(long) rather than new.
+ (valueOf(String)): likewise.
+ (valueOf(long)): use cache of values.
+ (decode): use valueOf(long) rather than new.
+ (getLong): likewise.
+ (signum): use shift and subtract to compute value.
+ (toUnsignedString): calculate string size rather than using 64 chars.
+ * java/lang/Short.java (static): initialize shortCache.
+ (valueOf(String,int)): use valueOf(short) rather than new.
+ (valueOf(String)): likewise.
+ (valueOf(short)): Switch from lazy initialization of cached values to
+ initialization at class initialization time. This removes the need for
+ synchronization in the common case.
+ (decode): use valueOf(short) rather than new.
+
2008-04-18 Mario Torre <neugens@aicas.com>
PR classpath/35974
@@ -154,6 +2788,24 @@
Now all the methods of the class get a lock on a static lock, this
avoids a lock when getLogger and log are used concurrently.
+2008-04-18 Tom Tromey <tromey@redhat.com>
+
+ * lib/gen-classlist.sh.in: Skip 'sed' steps if no vm_omitlist
+ found.
+
+2008-04-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+
+ * lib/gen-classlist.sh.in: Avoid grepping each omission, by
+ building an awk script with a hash for literal files, and
+ awk regular expressions for the rest.
+ * configure.ac: Call AC_PROG_AWK.
+
+2008-04-16 Tom Tromey <tromey@redhat.com>
+
+ * tools/gnu/classpath/tools/orbd/Main.java: Bump copyright year.
+ * tools/resource/gnu/classpath/tools/common/Messages.properties
+ (ClasspathToolParser.VersionFormat): Bump copyright year.
+
2008-04-16 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
* m4/gcc_attribute.m4 (GCC_ATTRIBUTE): Fix cache variable name.
@@ -163,17 +2815,35 @@
for these scripts, to trick automake into hiding the respective
rules for the programs below the CREATE_WRAPPERS conditional.
-2008-04-18 Tom Tromey <tromey@redhat.com>
+2008-04-09 Mario Torre <neugens@aicas.com>
+
+ * java/io/File.java (canWrite): use canWriteDirectory(String).
+ * vm/reference/java/io/VMFile.java (canWriteDirectory): new native method.
+ * native/jni/java-io/java_io_VMFile.c: correct indentation, sync function
+ names with header file definition.
+ (Java_java_io_VMFile_canRead): use cpio_checkAccess to get access
+ permission. Removed unused variable.
+ (Java_java_io_VMFile_canWrite): likewise.
+ (Java_java_io_VMFile_canWriteDirectory): new function.
+
- * lib/gen-classlist.sh.in: Skip 'sed' steps if no vm_omitlist
- found.
+2008-03-31 Andrew John Hughes <gnu_andrew@member.fsf.org>
-2008-04-17 Ralf Wildenhues <Ralf.Wildenhues@gmx.de>
+ * doc/www.gnu.org/events/events.wml:
+ Correct layout and fix GSoC link.
- * lib/gen-classlist.sh.in: Avoid grepping each omission, by
- building an awk script with a hash for literal files, and
- awk regular expressions for the rest.
- * configure.ac: Call AC_PROG_AWK.
+2008-03-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * doc/www.gnu.org/external.wml:
+ Corrected Jalopy tag name.
+ * doc/www.gnu.org/home.wml:
+ Update link to tasks.
+ * doc/www.gnu.org/announce/20080222.wml:
+ Correct IcedTea and builder links.
+ * doc/www.gnu.org/downloads/downloads.wml:
+ Add 0.97 and 0.97.1.
+ * doc/www.gnu.org/events/events.wml:
+ Fix links and add FOSDEMs/GSoC.
2008-03-27 Mario Torre <neugens@aicas.com>
@@ -218,32 +2888,17 @@
(equals): new method, override from base class.
(toString): likewise.
-2008-03-12 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * java/util/concurrent/CopyOnWriteArrayList.java:
- Don't extend AbstractList.
- (containsAll(Collection)): Implemented.
- (listIterator()): Likewise.
- (subList(int,int)): Likewise.
-
-2008-03-31 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * doc/www.gnu.org/events/events.wml:
- Correct layout and fix GSoC link.
-
-2008-03-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
-
- * doc/www.gnu.org/external.wml:
- Corrected Jalopy tag name.
- * doc/www.gnu.org/home.wml:
- Update link to tasks.
- * doc/www.gnu.org/announce/20080222.wml:
- Correct IcedTea and builder links.
- * doc/www.gnu.org/downloads/downloads.wml:
- Add 0.97 and 0.97.1.
- * doc/www.gnu.org/events/events.wml:
- Fix links and add FOSDEMs/GSoC.
+2008-03-25 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * java/awt/image/ColorModel.java:
+ (coerceDataWorker(WritableRaster,boolean)):
+ Make package-private, not protected.
+ * java/awt/image/ComponentColorModel.java:
+ Call coerceDataWorker directly.
+ * java/awt/image/DirectColorModel.java:
+ Likewise.
+ (coerceData(WritableRaster,boolean)): Made final.
+
2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org>
PR classpath/22883
@@ -253,14 +2908,153 @@
Fix links to point to current versions of
vmintegration and hacking, and add links to
tools.
-
+
2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org>
PR classpath/22883
* doc/www.gnu.org/home.wml:
Update home page to reflect current state of
affairs.
+
+2008-03-24 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/text/SimpleDateFormat.java:
+ (standardChars): Corrected.
+ (RFC822_TIMEZONE_FIELD): Added.
+ (formatWithAttribute(Date,FormatBuffer,FieldPosition)):
+ Support RFC822 timezone field ('Z').
+
+2008-03-20 Tom Tromey <tromey@redhat.com>
+
+ * tools/gnu/classpath/tools/getopt/Parser.java (options): Don't
+ initialize.
+ (add, addFinal): Don't update options.
+ (requireOptions): New method.
+ (printHelp): Synchronize. Call requireOptions.
+ (parse): Call requireOptions.
+
+2008-03-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/lang/CPStringBuilder.java:
+ (indexOf(String,int)): Use regionMatches from String.
+ (lastIndexOf(String,int)): Likewise.
+ (regionMatches(int,String)): Removed broken code.
+ (substring(int,int)): Rearrange index computation so
+ it is only computed if valid.
+
+2008-03-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/xml/transform/AbstractNumberNode.java,
+ * gnu/xml/transform/ApplyTemplatesNode.java,
+ * gnu/xml/transform/AttributeNode.java,
+ * gnu/xml/transform/Bindings.java,
+ * gnu/xml/transform/CallTemplateNode.java,
+ * gnu/xml/transform/ChooseNode.java,
+ * gnu/xml/transform/CopyNode.java,
+ * gnu/xml/transform/CopyOfNode.java,
+ * gnu/xml/transform/ElementNode.java,
+ * gnu/xml/transform/ForEachNode.java,
+ * gnu/xml/transform/IfNode.java,
+ * gnu/xml/transform/MessageNode.java,
+ * gnu/xml/transform/ParameterNode.java,
+ * gnu/xml/transform/ProcessingInstructionNode.java,
+ * gnu/xml/transform/StreamSerializer.java,
+ * gnu/xml/transform/Template.java,
+ * gnu/xml/transform/TextNode.java,
+ * gnu/xml/transform/TransformerImpl.java,
+ * gnu/xml/transform/TransformerOutputProperties.java,
+ * gnu/xml/transform/ValueOfNode.java,
+ * gnu/xml/transform/WhenNode.java:
+ Use CPStringBuilder in preference to StringBuffer.
+
+2008-03-17 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/java/lang/CPStringBuilder.java:
+ Replace reflection code with calls to
+ VMCPStringBuilder.
+ * vm/reference/gnu/java/lang/VMCPStringBuilder.java:
+ Default implementation of constructor call
+ using reflection.
+
+2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/xml/dom/DomAttr.java,
+ * gnu/xml/dom/DomEvent.java,
+ * gnu/xml/dom/DomNode.java,
+ * gnu/xml/dom/DomText.java,
+ * gnu/xml/dom/ls/DomLSInput.java,
+ * gnu/xml/util/DoParse.java,
+ * gnu/xml/util/XCat.java:
+ Use CPStringBuilder in preference to StringBuffer.
+
+2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * java/security/AlgorithmParameterGenerator.java,
+ * java/security/AlgorithmParameters.java,
+ * java/security/KeyFactory.java,
+ * java/security/KeyPairGenerator.java,
+ * java/security/MessageDigest.java,
+ * java/security/SecureRandom.java,
+ * java/security/Signature.java,
+ * java/security/cert/CertPathBuilder.java,
+ * java/security/cert/CertPathValidator.java,
+ * java/security/cert/CertStore.java,
+ * java/text/SimpleDateFormat.java,
+ * java/util/AbstractMap.java,
+ * java/util/Arrays.java,
+ * java/util/Calendar.java,
+ * java/util/Date.java,
+ * java/util/Formatter.java,
+ * java/util/Hashtable.java,
+ * java/util/Properties.java,
+ * java/util/TreeMap.java,
+ * java/util/regex/Matcher.java:
+ Use CPStringBuilder in preference to StringBuilder.
+
+2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ PR classpath/21869
+ * gnu/java/security/Engine.java,
+ * gnu/java/security/hash/Whirlpool.java,
+ * gnu/java/security/key/dss/DSSKey.java,
+ * gnu/java/security/key/dss/DSSPrivateKey.java,
+ * gnu/java/security/key/dss/DSSPublicKey.java,
+ * gnu/java/security/key/rsa/GnuRSAKey.java,
+ * gnu/java/security/key/rsa/GnuRSAPrivateKey.java,
+ * gnu/java/security/key/rsa/GnuRSAPublicKey.java,
+ * java/awt/datatransfer/MimeType.java,
+ * java/io/BufferedReader.java,
+ * java/io/DataInputStream.java,
+ * java/lang/Double.java,
+ * java/lang/Float.java,
+ * java/lang/String.java,
+ * java/lang/reflect/Proxy.java,
+ * java/math/BigDecimal.java,
+ * java/net/URI.java,
+ * java/net/URLClassLoader.java,
+ * java/net/URLEncoder.java:
+ Use CPStringBuilder in preference to StringBuilder.
+
+2008-03-16 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * vm/reference/java/lang/reflect/VMField.java:
+ Consistently use 'clazz' as the name of the variable
+ containing the declaring class.
+ * vm/reference/java/lang/reflect/VMMethod.java:
+ Likewise.
+
+2008-03-14 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/34840
+ * java/lang/AbstractStringBuffer.java:
+ (append(CharSequence,int,int)): Just set
+ sequence to "null" don't append it.
+
2008-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
* doc/www.gnu.org/newsitems.txt:
@@ -269,7 +3063,82 @@
Added.
* doc/www.gnu.org/cp-tools/.cvsignore:
Ignore generated HTML files.
+
+2008-03-12 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * java/beans/beancontext/BeanContextServicesSupport.java:
+ (BCSSProxyServiceProvider(BeanContextServiceProvider)):
+ Add package-private constructor.
+ * java/lang/StringBuffer.java:
+ (ensureCapacity_unsynchronized(int)): Make package-private.
+ * java/rmi/activation/Activatable.java:
+ (export(ActivationID, Remote, int, RMIServerSocketFactory)):
+ Make private.
+ (makeId(ActivationID)): Likewise.
+ * java/security/MessageDigest.java:
+ (update(ByteBuffer)): Make final.
+ * java/security/cert/PolicyQualifierInfo.java:
+ (getPolicyQualifierId()): Likewise.
+ (getEncoded()): Likewise.
+ (getPolicyQualifier()): Likewise.
+ * java/text/DateFormat.java:
+ (ISO_YEAR_FIELD): Removed.
+ (LOCALIZED_DAY_OF_WEEK_FIELD): Likewise.
+ (EXTENDED_YEAR_FIELD): Likewise.
+ (MODIFIED_JULIAN_DAY_FIELD): Likewise.
+ (MILLISECOND_IN_DAY_FIELD): Likewise.
+ (RFC822_TIMEZONE_FIELD): Likewise.
+ (Field.ISO_YEAR_FIELD): Likewise.
+ (Field.LOCALIZED_DAY_OF_WEEK_FIELD): Likewise.
+ (Field.EXTENDED_YEAR_FIELD): Likewise.
+ (Field.MODIFIED_JULIAN_DAY_FIELD): Likewise.
+ (Field.MILLISECOND_IN_DAY_FIELD): Likewise.
+ (Field.RFC822_TIMEZONE_FIELD): Likewise.
+ * java/text/DecimalFormat.java:
+ (format(Object,StringBuffer,FieldPosition)): Make final.
+ * java/text/Format.java:
+ (Format()): Make protected.
+ * java/text/NumberFormat.java:
+ (NumberFormat()): Likewise.
+ * java/text/SimpleDateFormat.java:
+ Remove code using RFC822_TIMEZONE_FIELD.
+ * java/util/Stack.java:
+ Use array of Objects rather than instances of T.
+ * java/util/Vector.java:
+ Likewise.
+ * java/util/concurrent/CopyOnWriteArrayList.java:
+ Don't extend AbstractList.
+ (containsAll(Collection)): Implemented.
+ (listIterator()): Likewise.
+ (subList(int,int)): Likewise.
+ * java/util/zip/Deflater.java:
+ (getTotalIn()): Remove deprecation.
+ (getTotalOut()): Likewise.
+ * java/util/zip/Inflater.java,
+ (getTotalIn()): Likewise.
+ (getTotalOut()): Likewise.
+
+2008-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/awt/MouseInfo.java:
+ (MouseInfo()): Private constructor to prevent
+ instance creation.
+ * java/lang/AbstractStringBuilder.java:
+ (ensureCapacity_unsynchronized(int)): Make
+ package-private, not protected.
+
+2008-03-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/28664
+ * native/jni/java-math/Makefile.am: Add
+ AM_LDFLAGS to the local LDFLAGS definition
+ so gmp is linked.
+
+2008-03-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/35422
+ * doc/api/Makefile.am: Include external/jsr166.
+
2008-03-10 Jim Meyering <meyering@redhat.com>
Don't leak upon failed realloc.
@@ -288,90 +3157,239 @@
* doc/cp-tools.texinfo: Likewise.
* doc/cp-vmintegration.texinfo: Likewise.
-2008-02-27 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2008-03-05 Andrew John Hughes <gnu_andrew@member.fsf.org>
- * configure.ac:
- Check for sys/loadavg.h.
- * native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c:
- Include sys/loadavg.h if found.
+ * java/lang/reflect/Constructor.java:
+ (cons): Make package-private.
+ (Constructor(VMConstructor)): Set cons in
+ VM interface.
+ * java/lang/reflect/Field.java:
+ (f): Make package-private.
+ (Field(VMField)): Set f in VM interface.
+ * java/lang/reflect/Method.java:
+ (m): Make package-private.
+ (Method(VMMethod)): Set m in VM interface.
+ * vm/reference/java/lang/reflect/VMConstructor.java:
+ (cons): Added reference to Constructor instance.
+ * vm/reference/java/lang/reflect/VMField.java:
+ (f): Added reference to Field instance.
+ * vm/reference/java/lang/reflect/VMMethod.java,
+ (m): Added reference to Method instance.
+
+2008-03-04 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * java/lang/reflect/AccessibleObject.java:
+ (getAnnotation(Class)): Documented.
+ (getAnnotations()): Likewise.
+ (getDeclaredAnnotations()): Likewise.
+ (isAnnotationPresent(Class)): Likewise.
+ * java/lang/reflect/Constructor.java,
+ * java/lang/reflect/Field.java,
+ * java/lang/reflect/Method.java,
+ * vm/reference/java/lang/reflect/VMConstructor.java,
+ * vm/reference/java/lang/reflect/VMField.java,
+ * vm/reference/java/lang/reflect/VMMethod.java:
+ (getAnnotation(Class)): Added.
+ (getDeclaredAnnotations()): Likewise.
-2008-06-02 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
- * include/Makefile.am: Don't delete headers
- when not rebuilding them.
+ * tools/Makefile.am:
+ Distribute property files.
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2008-03-04 Robert Schuster <robertschuster@fsfe.org>
- * configure.ac: Only regenerate headers by
- default if the headers aren't in the source tree.
+ * gnu/xml/stream/AttributeImpl.java: Changed type field to String.
+ (getDTDType): Changed return type to String.
+ * gnu/xml/stream/XMLEventAllocatorImpl.java:
+ (allocate): Removed wrapping of string in QName object.
+ * gnu/xml/stream/XMLEventFactoryImpl.java:
+ (createAttribute(String, String)): Removed wrapping of string in
+ QName object.
+ (createAttribute(QName, String)): Ditto.
+ (createAttribute(String, String, String, String)): Ditto.
+ * javax/xml/stream/events/Attribute.java:
+ (getDTDType): Changed return type to String.
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
- * configure.ac: Only run javac check
- if examples, tools and/or class library are
- being built.
- * scripts/check_jni_methods.sh.in:
- Remove duplicates in the list of JNI methods
- for when builddir==srcdir.
+ * java/lang/reflect/Constructor.java,
+ * java/lang/reflect/Field.java,
+ * java/lang/reflect/Method.java,
+ * vm/reference/java/lang/reflect/VMConstructor.java:
+ (equals(Object)): Added.
+ * vm/reference/java/lang/reflect/VMField.java:
+ (equals(Object)): Added.
+ * vm/reference/java/lang/reflect/VMMethod.java:
+ (equals(Object)): Added.
+ Move variables from Classpath classes to VM classes
+ and make class methods into instance methods.
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
- * lib/Makefile.am:
- Replace explicit mkinstalldirs with $(mkinstalldirs).
+ * java/lang/reflect/Constructor.java,
+ * java/lang/reflect/Field.java,
+ * java/lang/reflect/Method.java:
+ New classes within GNU Classpath that provide
+ common reflection functionality.
+ * vm/reference/java/lang/reflect/Constructor.java,
+ * vm/reference/java/lang/reflect/Field.java,
+ * vm/reference/java/lang/reflect/Method.java:
+ Removed.
+ * vm/reference/java/lang/reflect/VMConstructor.java,
+ * vm/reference/java/lang/reflect/VMField.java,
+ * vm/reference/java/lang/reflect/VMMethod.java:
+ New VM interface for reflection.
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
- * scripts/check_jni_methods.sh.in:
- Search the source directory as well for
- when headers are in the tarball.
+ PR classpath/28664
+ * native/jni/Makefile.am: Check CREATE_GMPBI_LIBRARY
+ and only compile GMP libraries if set.
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2008-03-02 Mark Wielaard <mark@klomp.org>
- * Makefile.am: Replace tools with
- $(TOOLSDIR).
- * m4/acinclude.m4: Include option
- to disable building the tools.
-
-2008-06-01 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * native/jni/Makefile.am (DIST_SUBDIRS): Add java-math.
- * Makefile.am: Use default makedistcheck
- flags that test all optional dependencies.
- * configure.ac: Set version to 0.97.2-pre.
- * include/Makefile.am: Add header files to dist.
- * lib/Makefile.am: Trick class files into being
- built for dist, so headers can be generated.
+2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/classpath/CPStringBuilder.java:
+ Make the constructor accessible.
-2008-03-11 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/21869
+ * gnu/classpath/CPStringBuilder.java:
+ Removed.
+ * gnu/java/awt/font/OpenTypeFontPeer.java,
+ * gnu/java/awt/font/autofit/Edge.java,
+ * gnu/java/awt/font/autofit/LatinBlue.java,
+ * gnu/java/awt/font/autofit/Segment.java,
+ * gnu/java/awt/font/autofit/Width.java,
+ * gnu/java/awt/font/opentype/truetype/Point.java,
+ * gnu/java/awt/java2d/ActiveEdges.java,
+ * gnu/java/awt/peer/GnomeDesktopPeer.java,
+ * gnu/java/awt/peer/KDEDesktopPeer.java,
+ * gnu/java/awt/peer/x/XFontPeer.java:
+ Use CPStringBuilder.
+ * gnu/java/lang/CPStringBuilder.java:
+ Moved from gnu.classpath.
+ * gnu/java/lang/ClassHelper.java,
+ * gnu/java/lang/reflect/GenericSignatureParser.java,
+ * gnu/java/lang/reflect/TypeSignature.java,
+ * gnu/java/net/protocol/http/ChunkedInputStream.java,
+ * gnu/java/net/protocol/http/Cookie.java,
+ * gnu/java/net/protocol/http/HTTPConnection.java,
+ * gnu/java/net/protocol/http/Headers.java,
+ * gnu/java/net/protocol/http/Request.java:
+ Use CPStringBuilder.
+ * java/lang/reflect/Modifier.java:
+ Corrected import to point to correct package.
+ * java/util/Formatter.java:
+ Use CPStringBuilder.
+ * vm/reference/java/lang/reflect/Constructor.java,
+ * vm/reference/java/lang/reflect/Field.java,
+ * vm/reference/java/lang/reflect/Method.java:
+ Corrected import to point to correct package.
+
+2008-02-30 Andrew John Hughes <gnu_andrew@member.fsf.org>
- * configure.ac: Set version to 0.97.1
- * NEWS: Add 0.97.1.
+ PR classpath/21869
+ * gnu/classpath/CPStringBuffer.java,
+ * gnu/classpath/CPStringBuilder.java:
+ Rename class to CPStringBuilder.
+ * java/lang/reflect/Modifier.java,
+ * vm/reference/java/lang/reflect/Constructor.java,
+ * vm/reference/java/lang/reflect/Field.java,
+ * vm/reference/java/lang/reflect/Method.java:
+ Use CPStringBuilder.
+
+2008-02-29 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/classpath/CPStringBuffer.java:
+ New non-copying string buffer.
+ * java/lang/AbstractStringBuffer.java:
+ Add note about CPStringBuffer.
+
+2008-02-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * gnu/java/util/EmptyEnumeration.java:
+ Add generic type parameter.
+ * java/lang/ClassLoader.java:
+ Use EmptyEnumeration with type parameter.
+ * java/util/zip/ZipFile.java:
+ Likewise.
+ * javax/swing/text/html/StyleSheet.java,
+ * javax/swing/text/html/ViewAttributeSet.java:
+ Add generics.
+ * javax/swing/tree/DefaultMutableTreeNode.java:
+ Use EmptyEnumeration with type parameter.
+
+2008-02-28 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ PR classpath/28664
+ * include/Makefile.am:
+ Add generation of header file java_math_VMBigInteger.h
+ * java/math/BigInteger.java: Separate NativeMPI into
+ VMBigInteger.
+ * native/jni/Makefile.am: Add java-math.
+ * native/jni/java-math/java_math_VMBigInteger.c:
+ Renamed from java_math_BigInteger.c.
+ * vm/reference/java/math/VMBigInteger.java:
+ Former NativeMPI class from java.math.BigInteger.
+
+2006-11-28 Raif S. Naffah <classpath@naffah-raif.name>
+ Jeroen Frijters <jeroen@sumatra.nl>
+
+ PR classpath/28664
+ * configure.ac: Add support for configuring GNU MP.
+ * native/jni/Makefile.am: Include java-math directory if required.
+ * native/jni/java-math/.cvsignore: New file.
+ * native/jni/java-math/Makefile.am: Likewise.
+ * native/jni/java-math/java_math_BigInteger.c: Likewise.
+ * java/math/BigInteger.java: Added support for native methods.
+ * gnu/classpath/Configuration.java.in (WANT_NATIVE_BIG_INTEGER): New field.
+
+2008-02-27 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * configure.ac:
+ Check for sys/loadavg.h.
+ * native/jni/java-lang/gnu_java_lang_management_VMOperatingSystemMXBeanImpl.c:
+ Include sys/loadavg.h if found.
-2008-03-10 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2008-02-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
- PR classpath/35422
- * doc/api/Makefile.am: Include external/jsr166.
+ PR classpath/21869:
+ * java/lang/AbstractStringBuffer.java: New class.
+ * java/lang/StringBuffer.java,
+ * java/lang/StringBuilder.java:
+ Changed to use AbstractStringBuffer.
-2008-03-04 Robert Schuster <robertschuster@fsfe.org>
+2008-02-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
- * gnu/xml/stream/AttributeImpl.java: Changed type field to String.
- (getDTDType): Changed return type to String.
- * gnu/xml/stream/XMLEventAllocatorImpl.java:
- (allocate): Removed wrapping of string in QName object.
- * gnu/xml/stream/XMLEventFactoryImpl.java:
- (createAttribute(String, String)): Removed wrapping of string in
- QName object.
- (createAttribute(QName, String)): Ditto.
- (createAttribute(String, String, String, String)): Ditto.
- * javax/xml/stream/events/Attribute.java:
- (getDTDType): Changed return type to String.
+ * gnu/java/util/prefs/EventDispatcher.java:
+ Removed again.
+ * gnu/java/util/prefs/GConfBasedPreferences.java,
+ * gnu/java/util/prefs/gconf/GConfNativePeer.java,
+ * java/util/prefs/AbstractPreferences.java,
+ * native/jni/gconf-peer/GConfNativePeer.c:
+ Revert to pre-release versions.
-2008-03-03 Andrew John Hughes <gnu_andrew@member.fsf.org>
+2008-02-26 Andrew John Hughes <gnu_andrew@member.fsf.org>
- * tools/Makefile.am:
- Distribute property files.
+ * doc/www.gnu.org/newsitems.txt:
+ Add 20080222 announcement.
+ * doc/www.gnu.org/announce/20080222.wml:
+ Add announcement of 0.97.
2008-02-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+ * NEWS: Add 0.98.
+ * configure.ac: Set version to 0.98-pre.
+
+2008-02-22 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
* NEWS: Set date for 0.97.
* configure.ac: Set version to 0.97
diff --git a/libjava/classpath/ChangeLog.gcj b/libjava/classpath/ChangeLog.gcj
index c07666c..7e7c40a 100644
--- a/libjava/classpath/ChangeLog.gcj
+++ b/libjava/classpath/ChangeLog.gcj
@@ -1,3 +1,87 @@
+2008-10-21 Matthias Klose <doko@ubuntu.com>
+
+ * classpath/tools/gnu/classpath/tools/gjdoc/expr/Java*: Move from ...
+ * classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/ ... here.
+ * Update .class files.
+
+2008-10-21 Andrew John Hughes <gnu_andrew@member.fsf.org>
+
+ * tools/Makefile.am:
+ Always generate parser in the srcdir.
+
+2008-10-21 Matthias Klose <doko@ubuntu.com>
+
+ * doc/Makefile.am (MAINTAINERCLEANFILES): Add gjdoc.1.
+ * doc/Makefile.in: Regenerate.
+
+2008-10-20 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Fix path name in check for generated gjdoc parser files.
+ * configure: Regenerate.
+
+2008-10-20 Matthias Klose <doko@ubuntu.com>
+
+ * configure.ac: Don't check for working java, if not configured
+ with --enable-java-maintainer-mode.
+ * configure: Regenerate.
+
+2008-10-19 Matthias Klose <doko@ubuntu.com>
+
+ * m4/ac_prog_java.m4: Revert previous change.
+ * m4/ac_prog_javac.m4: Apply it here.
+ * configure: Regenerate.
+
+2008-10-19 Matthias Klose <doko@ubuntu.com>
+
+ * m4/ac_prog_javac.m4: Don't check for working javac, if not configured
+ with --enable-java-maintainer-mode.
+ * configure: Regenerate.
+ * Makefile.in, */Makefile.in: Regenerate.
+
+2008-09-30 Matthias Klose <doko@ubuntu.com>
+
+ * m4/ac_prog_antlr.m4: Check for cantlr binary as well.
+
+2008-09-29 Matthias Klose <doko@ubuntu.com>
+
+ * m4/ac_prog_antlr.m4: Check for antlr binary as well.
+
+2008-09-28 Matthias Klose <doko@ubuntu.com>
+
+ * PR libgcj/37636. Revert:
+ 2008-02-20 Matthias Klose <doko@ubuntu.com>
+
+ * tools/Makefile.am ($(TOOLS_ZIP)): Revert part of previous change,
+ Do copy resource files in JAVA_MAINTAINER_MODE only.
+ * tools/Makefile.in: Regenerate.
+
+2008-09-14 Matthias Klose <doko@ubuntu.com>
+
+ * m4/ac_prog_javac_works.m4, m4/ac_prog_javac.m4, m4/acinclude.m4:
+ Revert local changes.
+ * m4/ac_prog_antlr.m4: Check for an runantlr binary.
+ * tools/Makefile.am, lib/Makefile.am: Revert local changes (JCOMPILER).
+ * tools/Makefile.am: Remove USE_JAVAC_FLAGS, pass ANTLR_JAR in
+ GLIBJ_CLASSPATH.
+
+2008-09-14 Matthias Klose <doko@ubuntu.com>
+
+ Revert:
+ Daniel Frampton <zyridium at zyridium.net>
+
+ * AUTHORS: Added.
+ * java/lang/InheritableThreadLocal.java,
+ * java/lang/Thread.java,
+ * java/lang/ThreadLocal.java:
+ Modified to use java.lang.ThreadLocalMap.
+ * java/lang/ThreadLocalMap.java:
+ New cheaper ThreadLocal-specific WeakHashMap.
+
+2008-08-15 Matthias Klose <doko@ubuntu.com>
+
+ * m4/acinclude.m4 (CLASSPATH_JAVAC_MEM_CHECK): Remove unknown
+ args for javac.
+
2008-08-17 Mark Wielaard <mark@klomp.org>
* gnu/java/awt/peer/gtk/CairoGraphics2D.java: Always loadLibrary
diff --git a/libjava/classpath/Makefile.am b/libjava/classpath/Makefile.am
index fec369b..af47684 100644
--- a/libjava/classpath/Makefile.am
+++ b/libjava/classpath/Makefile.am
@@ -11,7 +11,7 @@ ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config ${LOCAL_AUTORECONF_FLAGS}
native: lib
-EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
+EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE ChangeLog-2007 \
ChangeLog-2003 ChangeLog-2004 ChangeLog-2005 ChangeLog-2006 \
ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \
autogen.sh
diff --git a/libjava/classpath/Makefile.in b/libjava/classpath/Makefile.in
index e25c5ff..068771a 100644
--- a/libjava/classpath/Makefile.in
+++ b/libjava/classpath/Makefile.in
@@ -68,6 +68,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -120,6 +123,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -151,6 +156,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -189,11 +200,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -203,6 +215,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -224,7 +238,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -290,8 +307,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -302,6 +321,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -361,6 +381,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
# lib first, to compile .class files before native code, last examples
@@ -369,7 +390,7 @@ DIST_SUBDIRS = lib doc external include native resource scripts tools examples
# Allow users to pass site-specific flags to autoreconf via an env var.
ACLOCAL_AMFLAGS = -I m4 -I ../.. -I ../../config ${LOCAL_AUTORECONF_FLAGS}
-EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE \
+EXTRA_DIST = HACKING BUGS THANKYOU mauve-classpath LICENSE ChangeLog-2007 \
ChangeLog-2003 ChangeLog-2004 ChangeLog-2005 ChangeLog-2006 \
ChangeLog.gnujaxp.1 ChangeLog.gnujaxp.2 ChangeLog.libxmlj \
autogen.sh
diff --git a/libjava/classpath/NEWS b/libjava/classpath/NEWS
index 0a9e462..4be4d60 100644
--- a/libjava/classpath/NEWS
+++ b/libjava/classpath/NEWS
@@ -1,3 +1,19 @@
+New in release 0.98
+
+* Native support for BigInteger is now provided using the GMP
+library. A new option, --enable/disable-gmp is provided, and
+the option is enabled by default if GMP is found.
+* Classpath now makes use of a new StringBuilder implementation
+internally called CPStringBuilder. In addition to being
+unsynchronised, like StringBuilder, this also avoids copying the
+array when toString or substring is called. While StringBuffer/Builder
+always retain their own array, which is only altered during resizing,
+CPStringBuilder gives away its array when the result is generated
+by toString()/substring() and starts afresh. The default capacity of
+CPStringBuilder can also be configured using the
+gnu.classpath.cpstringbuilder.capacity property.
+* gjdoc is now built as part of tools.zip.
+
Bug fixes in release 0.97.2 (Jun 06, 2007)
* Include headers in the release tarball.
diff --git a/libjava/classpath/THANKYOU b/libjava/classpath/THANKYOU
index 036bd08..21e75c8 100644
--- a/libjava/classpath/THANKYOU
+++ b/libjava/classpath/THANKYOU
@@ -26,6 +26,7 @@ Andrew Haley (aph@redhat.com)
Steven Hugg (hugg@pobox.com)
jockey@aromasoft.com
Isaac Jones (ijones@cis.ohio-state.edu)
+Byeogncheol Lee (lineonking@gmail.com)
Oskar Liljeblad (osk@hem.passagen.se)
Trevor Linton (tlinton@xmission.com)
Casey Marshall (rsdio@metastatic.org)
diff --git a/libjava/classpath/aclocal.m4 b/libjava/classpath/aclocal.m4
index 297f30d..84b45a4 100644
--- a/libjava/classpath/aclocal.m4
+++ b/libjava/classpath/aclocal.m4
@@ -912,6 +912,9 @@ m4_include([../../ltoptions.m4])
m4_include([../../ltsugar.m4])
m4_include([../../ltversion.m4])
m4_include([../../lt~obsolete.m4])
+m4_include([m4/ac_prog_antlr.m4])
+m4_include([m4/ac_prog_java.m4])
+m4_include([m4/ac_prog_java_works.m4])
m4_include([m4/ac_prog_javac.m4])
m4_include([m4/ac_prog_javac_works.m4])
m4_include([m4/acattribute.m4])
diff --git a/libjava/classpath/configure b/libjava/classpath/configure
index 0fa8088..5907cf8 100755
--- a/libjava/classpath/configure
+++ b/libjava/classpath/configure
@@ -1,6 +1,6 @@
#! /bin/sh
# Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.59 for GNU Classpath 0.97.2.
+# Generated by GNU Autoconf 2.59 for GNU Classpath 0.98-pre.
#
# Report bugs to <classpath@gnu.org>.
#
@@ -418,8 +418,8 @@ SHELL=${CONFIG_SHELL-/bin/sh}
# Identity of this package.
PACKAGE_NAME='GNU Classpath'
PACKAGE_TARNAME='classpath'
-PACKAGE_VERSION='0.97.2'
-PACKAGE_STRING='GNU Classpath 0.97.2'
+PACKAGE_VERSION='0.98-pre'
+PACKAGE_STRING='GNU Classpath 0.98-pre'
PACKAGE_BUGREPORT='classpath@gnu.org'
ac_unique_file="java/lang/System.java"
@@ -461,7 +461,7 @@ ac_includes_default="\
# include <unistd.h>
#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 datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE 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 EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE toolexeclibdir nativeexeclibdir glibjdir VM_BINARY CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS EXTRA_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR USER_JAVAH CLASSPATH_INCLUDES vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP FASTJAR INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR TOOLSDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP JAVAC JAVAC_MEM_OPT USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER LIBOBJS LTLIBOBJS'
+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 datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os host host_cpu host_vendor host_os target target_cpu target_vendor target_os JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE GENINSRC_TRUE GENINSRC_FALSE multi_basedir LIBVERSION CLASSPATH_MODULE CLASSPATH_CONVENIENCE INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar CREATE_COLLECTIONS_TRUE CREATE_COLLECTIONS_FALSE CREATE_JNI_LIBRARIES_TRUE CREATE_JNI_LIBRARIES_FALSE CREATE_CORE_JNI_LIBRARIES_TRUE CREATE_CORE_JNI_LIBRARIES_FALSE CREATE_GCONF_PEER_LIBRARIES_TRUE CREATE_GCONF_PEER_LIBRARIES_FALSE CREATE_GSTREAMER_PEER_LIBRARIES_TRUE CREATE_GSTREAMER_PEER_LIBRARIES_FALSE default_toolkit CREATE_XMLJ_LIBRARY_TRUE CREATE_XMLJ_LIBRARY_FALSE 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 EGREP CREATE_ALSA_LIBRARIES_TRUE CREATE_ALSA_LIBRARIES_FALSE CREATE_DSSI_LIBRARIES_TRUE CREATE_DSSI_LIBRARIES_FALSE CREATE_GTK_PEER_LIBRARIES_TRUE CREATE_GTK_PEER_LIBRARIES_FALSE CREATE_QT_PEER_LIBRARIES_TRUE CREATE_QT_PEER_LIBRARIES_FALSE CREATE_PLUGIN_TRUE CREATE_PLUGIN_FALSE CREATE_GJDOC_TRUE CREATE_GJDOC_FALSE toolexeclibdir nativeexeclibdir glibjdir CREATE_JNI_HEADERS_TRUE CREATE_JNI_HEADERS_FALSE CREATE_GJDOC_PARSER_TRUE CREATE_GJDOC_PARSER_FALSE CREATE_WRAPPERS_TRUE CREATE_WRAPPERS_FALSE LN_S LIBTOOL SED FGREP GREP LD DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP AR ac_ct_AR RANLIB ac_ct_RANLIB lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CXX CXXFLAGS ac_ct_CXX CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE CXXCPP PERL COLLECTIONS_PREFIX LIBMAGIC LIBICONV LTLIBICONV WARNING_CFLAGS EXTRA_CFLAGS STRICT_WARNING_CFLAGS ERROR_CFLAGS PKG_CONFIG XML_CFLAGS XML_LIBS XSLT_CFLAGS XSLT_LIBS X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS GTK_CFLAGS GTK_LIBS FREETYPE2_CFLAGS FREETYPE2_LIBS PANGOFT2_CFLAGS PANGOFT2_LIBS CAIRO_CFLAGS CAIRO_LIBS XTEST_LIBS GCONF_CFLAGS GCONF_LIBS GDK_CFLAGS GDK_LIBS GSTREAMER_CFLAGS GSTREAMER_LIBS GSTREAMER_BASE_CFLAGS GSTREAMER_BASE_LIBS GSTREAMER_PLUGINS_BASE_CFLAGS GSTREAMER_PLUGINS_BASE_LIBS GST_PLUGIN_LDFLAGS GSTREAMER_FILE_READER GSTREAMER_MIXER_PROVIDER QT_CFLAGS QT_LIBS MOC MOZILLA_CFLAGS MOZILLA_LIBS GLIB_CFLAGS GLIB_LIBS PLUGIN_DIR GMP_CFLAGS GMP_LIBS USER_JAVAH CLASSPATH_INCLUDES vm_classes MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBDEBUG INIT_LOAD_LIBRARY ECJ_JAR JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION REMOVE MKDIR CP DATE FIND ZIP JAR WITH_JAR_TRUE WITH_JAR_FALSE INSTALL_GLIBJ_ZIP_TRUE INSTALL_GLIBJ_ZIP_FALSE INSTALL_CLASS_FILES_TRUE INSTALL_CLASS_FILES_FALSE BUILD_CLASS_FILES_TRUE BUILD_CLASS_FILES_FALSE EXAMPLESDIR TOOLSDIR GJDOC CREATE_API_DOCS_TRUE CREATE_API_DOCS_FALSE JAY JAY_SKELETON REGEN_PARSERS_TRUE REGEN_PARSERS_FALSE USE_PREBUILT_GLIBJ_ZIP_TRUE USE_PREBUILT_GLIBJ_ZIP_FALSE PATH_TO_GLIBJ_ZIP JAVA uudecode JAVAC JAVAC_IS_GCJ GCJ_JAVAC_TRUE GCJ_JAVAC_FALSE ANTLR_JAR ANTLR ac_ct_ANTLR JAVAC_MEM_OPT USE_ESCHER_TRUE USE_ESCHER_FALSE PATH_TO_ESCHER ENABLE_LOCAL_SOCKETS_TRUE ENABLE_LOCAL_SOCKETS_FALSE DEFAULT_PREFS_PEER WANT_NATIVE_BIG_INTEGER CREATE_GMPBI_LIBRARY_TRUE CREATE_GMPBI_LIBRARY_FALSE LIBOBJS LTLIBOBJS'
ac_subst_files=''
ac_pwd=`pwd`
@@ -943,7 +943,7 @@ 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 GNU Classpath 0.97.2 to adapt to many kinds of systems.
+\`configure' configures GNU Classpath 0.98-pre to adapt to many kinds of systems.
Usage: $0 [OPTION]... [VAR=VALUE]...
@@ -1014,7 +1014,7 @@ fi
if test -n "$ac_init_help"; then
case $ac_init_help in
- short | recursive ) echo "Configuration of GNU Classpath 0.97.2:";;
+ short | recursive ) echo "Configuration of GNU Classpath 0.98-pre:";;
esac
cat <<\_ACEOF
@@ -1059,8 +1059,15 @@ Optional Features:
default=no
--disable-plugin compile gcjwebplugin (disabled by --disable-plugin)
default=yes
+ --enable-gmp compile native java.math.BigInteger library
+ (disabled by --disable-gmp) default=yes
+ --disable-gjdoc compile GJDoc (disabled by --disable-gjdoc)
+ default=yes
--enable-regen-headers automatically regenerate JNI headers default=yes if
headers don't exist
+ --enable-regen-gjdoc-parser
+ automatically regenerate the GJDoc parser
+ default=yes if generated source doesn't exist
--enable-tool-wrappers create tool wrapper binaries default=no
--enable-static[=PKGS]
build static libraries [default=no]
@@ -1090,8 +1097,7 @@ Optional Packages:
default='${libdir}/${PACKAGE}'
--with-glibj-dir sets the installation directory for glibj.zip
default='${libdir}/${PACKAGE}'
- --with-vm sets the VM binary name
- default='${prefix}/bin/jamvm'
+ --with-antlr-jar=file Use ANTLR from the specified jar file
--with-pic try to use only PIC/non-PIC objects [default=use
both]
--with-gnu-ld assume the C compiler uses GNU ld [default=no]
@@ -1105,7 +1111,7 @@ Optional Packages:
--with-vm-classes specify path to VM override source files
--with-ecj-jar=ABS.PATH specify jar file containing the Eclipse Java
Compiler
- --with-fastjar=PATH define to use a fastjar style tool
+ --with-jar=PATH define to use a jar style tool
--with-glibj define what to install (zip|flat|both|none|build)
[default=zip]
--with-gjdoc generate documentation using gjdoc (default is NO)
@@ -1225,7 +1231,7 @@ fi
test -n "$ac_init_help" && exit 0
if $ac_init_version; then
cat <<\_ACEOF
-GNU Classpath configure 0.97.2
+GNU Classpath configure 0.98-pre
generated by GNU Autoconf 2.59
Copyright (C) 2003 Free Software Foundation, Inc.
@@ -1239,7 +1245,7 @@ cat >&5 <<_ACEOF
This file contains any messages produced by compilers while
running configure, to aid debugging if configure makes a mistake.
-It was created by GNU Classpath $as_me 0.97.2, which was
+It was created by GNU Classpath $as_me 0.98-pre, which was
generated by GNU Autoconf 2.59. Invocation command line was
$ $0 $@
@@ -2100,7 +2106,7 @@ fi
# Define the identity of the package.
PACKAGE='classpath'
- VERSION='0.97.2'
+ VERSION='0.98-pre'
cat >>confdefs.h <<_ACEOF
@@ -4787,6 +4793,40 @@ else
fi
+# Check whether --enable-gmp or --disable-gmp was given.
+if test "${enable_gmp+set}" = set; then
+ enableval="$enable_gmp"
+ case "${enableval}" in
+ yes|true) COMPILE_GMP=yes ;;
+ no|false) COMPILE_GMP=no ;;
+ *) COMPILE_GMP=yes ;;
+ esac
+else
+ COMPILE_GMP=yes
+fi;
+
+# Check whether --enable-gjdoc or --disable-gjdoc was given.
+if test "${enable_gjdoc+set}" = set; then
+ enableval="$enable_gjdoc"
+ case "${enableval}" in
+ yes) COMPILE_GJDOC=yes ;;
+ no) COMPILE_GJDOC=no ;;
+ *) COMPILE_GJDOC=yes ;;
+ esac
+else
+ COMPILE_GJDOC=yes
+fi;
+
+
+if test "x${COMPILE_GJDOC}" = xyes; then
+ CREATE_GJDOC_TRUE=
+ CREATE_GJDOC_FALSE='#'
+else
+ CREATE_GJDOC_TRUE='#'
+ CREATE_GJDOC_FALSE=
+fi
+
+
multi_os_directory=`$CC -print-multi-os-directory`
case $multi_os_directory in
@@ -4827,20 +4867,20 @@ fi;
-# Check whether --with-vm or --without-vm was given.
-if test "${with_vm+set}" = set; then
- withval="$with_vm"
+# Check whether --with-antlr-jar or --without-antlr-jar was given.
+if test "${with_antlr_jar+set}" = set; then
+ withval="$with_antlr_jar"
- VM_BINARY=${withval}
+ ANTLR_JAR=$withval
else
- VM_BINARY='${prefix}/bin/jamvm'
+ ANTLR_JAR="$ANTLR_JAR"
fi;
-
-
+echo "$as_me:$LINENO: checking whether to regenerate the headers" >&5
+echo $ECHO_N "checking whether to regenerate the headers... $ECHO_C" >&6
# Check whether --enable-regen-headers or --disable-regen-headers was given.
if test "${enable_regen_headers+set}" = set; then
enableval="$enable_regen_headers"
@@ -4850,12 +4890,14 @@ if test "${enable_regen_headers+set}" = set; then
*) REGENERATE_JNI_HEADERS=yes ;;
esac
else
- if test -e include/java_lang_VMSystem.h; then
+ if test -e ${srcdir}/include/java_lang_VMSystem.h; then
REGENERATE_JNI_HEADERS=no ;
else
REGENERATE_JNI_HEADERS=yes ;
fi
fi;
+echo "$as_me:$LINENO: result: ${REGENERATE_JNI_HEADERS}" >&5
+echo "${ECHO_T}${REGENERATE_JNI_HEADERS}" >&6
if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
@@ -4867,6 +4909,36 @@ else
fi
+echo "$as_me:$LINENO: checking whether to regenerate the GJDoc parser" >&5
+echo $ECHO_N "checking whether to regenerate the GJDoc parser... $ECHO_C" >&6
+# Check whether --enable-regen-gjdoc-parser or --disable-regen-gjdoc-parser was given.
+if test "${enable_regen_gjdoc_parser+set}" = set; then
+ enableval="$enable_regen_gjdoc_parser"
+ case "${enableval}" in
+ yes) REGENERATE_GJDOC_PARSER=yes ;;
+ no) REGENERATE_GJDOC_PARSER=no ;;
+ *) REGENERATE_GJDOC_PARSER=yes ;;
+ esac
+else
+ if test -e ${srcdir}/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java; then
+ REGENERATE_GJDOC_PARSER=no ;
+ else
+ REGENERATE_GJDOC_PARSER=yes ;
+ fi
+fi;
+echo "$as_me:$LINENO: result: ${REGENERATE_GJDOC_PARSER}" >&5
+echo "${ECHO_T}${REGENERATE_GJDOC_PARSER}" >&6
+
+
+if test "x${REGENERATE_GJDOC_PARSER}" = xyes; then
+ CREATE_GJDOC_PARSER_TRUE=
+ CREATE_GJDOC_PARSER_FALSE='#'
+else
+ CREATE_GJDOC_PARSER_TRUE='#'
+ CREATE_GJDOC_PARSER_FALSE=
+fi
+
+
# Check whether --enable-tool-wrappers or --disable-tool-wrappers was given.
if test "${enable_tool_wrappers+set}" = set; then
enableval="$enable_tool_wrappers"
@@ -5670,13 +5742,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:5673: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:5745: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:5676: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:5748: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:5679: output\"" >&5)
+ (eval echo "\"\$as_me:5751: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -6822,7 +6894,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 6825 "configure"' > conftest.$ac_ext
+ echo '#line 6897 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -8108,11 +8180,11 @@ else
-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:8111: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8183: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:8115: \$? = $ac_status" >&5
+ echo "$as_me:8187: \$? = $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.
@@ -8447,11 +8519,11 @@ else
-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:8450: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8522: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:8454: \$? = $ac_status" >&5
+ echo "$as_me:8526: \$? = $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.
@@ -8552,11 +8624,11 @@ else
-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:8555: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8627: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8559: \$? = $ac_status" >&5
+ echo "$as_me:8631: \$? = $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
@@ -8607,11 +8679,11 @@ else
-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:8610: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:8682: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:8614: \$? = $ac_status" >&5
+ echo "$as_me:8686: \$? = $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
@@ -11459,7 +11531,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11462 "configure"
+#line 11534 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -11555,7 +11627,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 11558 "configure"
+#line 11630 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -15986,11 +16058,11 @@ else
-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:15989: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16061: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:15993: \$? = $ac_status" >&5
+ echo "$as_me:16065: \$? = $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.
@@ -16085,11 +16157,11 @@ else
-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:16088: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16160: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16092: \$? = $ac_status" >&5
+ echo "$as_me:16164: \$? = $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
@@ -16137,11 +16209,11 @@ else
-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:16140: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16212: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16144: \$? = $ac_status" >&5
+ echo "$as_me:16216: \$? = $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
@@ -17798,6 +17870,7 @@ fi
+
for ac_header in unistd.h sys/types.h sys/config.h sys/ioctl.h \
asm/ioctls.h \
inttypes.h stdint.h utime.h sys/utime.h sys/filio.h \
@@ -17810,7 +17883,7 @@ for ac_header in unistd.h sys/types.h sys/config.h sys/ioctl.h \
sys/event.h sys/epoll.h \
ifaddrs.h \
netinet/in_systm.h netinet/ip.h net/if.h \
- sys/loadavg.h
+ sys/loadavg.h sys/sockio.h
do
as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
if eval "test \"\${$as_ac_Header+set}\" = set"; then
@@ -18174,6 +18247,85 @@ if test "$ac_cv_search_inet_pton" != no; then
fi
+echo "$as_me:$LINENO: checking for gethostname in -lsocket" >&5
+echo $ECHO_N "checking for gethostname in -lsocket... $ECHO_C" >&6
+if test "${ac_cv_lib_socket_gethostname+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lsocket $LIBS"
+if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char gethostname ();
+int
+main ()
+{
+gethostname ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&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'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&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'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_socket_gethostname=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_socket_gethostname=no
+fi
+rm -f 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_gethostname" >&5
+echo "${ECHO_T}$ac_cv_lib_socket_gethostname" >&6
+if test $ac_cv_lib_socket_gethostname = yes; then
+ cat >>confdefs.h <<_ACEOF
+#define HAVE_LIBSOCKET 1
+_ACEOF
+
+ LIBS="-lsocket $LIBS"
+
+fi
+
+
@@ -24548,6 +24700,242 @@ echo "$as_me: error: Library requirements (gtk+-2.0 >= 2.8 gthread-2.0 >= 2.2 gd
PLUGIN_DIR=$HOME/.mozilla/plugins/
fi
+
+ if test "x${COMPILE_GMP}" = xyes; then
+ echo "$as_me:$LINENO: checking for __gmpz_mul_si in -lgmp" >&5
+echo $ECHO_N "checking for __gmpz_mul_si in -lgmp... $ECHO_C" >&6
+if test "${ac_cv_lib_gmp___gmpz_mul_si+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ ac_check_lib_save_LIBS=$LIBS
+LIBS="-lgmp $LIBS"
+if test x$gcc_no_link = xyes; then
+ { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
+echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+cat >conftest.$ac_ext <<_ACEOF
+/* confdefs.h. */
+_ACEOF
+cat confdefs.h >>conftest.$ac_ext
+cat >>conftest.$ac_ext <<_ACEOF
+/* end confdefs.h. */
+
+/* Override any gcc2 internal prototype to avoid an error. */
+#ifdef __cplusplus
+extern "C"
+#endif
+/* We use char because int might match the return type of a gcc2
+ builtin and then its argument prototype would still apply. */
+char __gmpz_mul_si ();
+int
+main ()
+{
+__gmpz_mul_si ();
+ ;
+ return 0;
+}
+_ACEOF
+rm -f conftest.$ac_objext conftest$ac_exeext
+if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&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'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&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'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; }; then
+ ac_cv_lib_gmp___gmpz_mul_si=yes
+else
+ echo "$as_me: failed program was:" >&5
+sed 's/^/| /' conftest.$ac_ext >&5
+
+ac_cv_lib_gmp___gmpz_mul_si=no
+fi
+rm -f 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_gmp___gmpz_mul_si" >&5
+echo "${ECHO_T}$ac_cv_lib_gmp___gmpz_mul_si" >&6
+if test $ac_cv_lib_gmp___gmpz_mul_si = yes; then
+ GMP_CFLAGS=-I/usr/include
+ GMP_LIBS=-lgmp
+else
+ GMP_CFLAGS=
+ GMP_LIBS=
+fi
+
+
+
+
+
+for ac_header in gmp.h
+do
+as_ac_Header=`echo "ac_cv_header_$ac_header" | $as_tr_sh`
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo "$as_me:$LINENO: checking for $ac_header" >&5
+echo $ECHO_N "checking for $ac_header... $ECHO_C" >&6
+if eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&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 { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&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'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&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'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&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 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 { (eval echo "$as_me:$LINENO: \"$ac_cpp conftest.$ac_ext\"") >&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 classpath@gnu.org ##
+## -------------------------------- ##
+_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 eval "test \"\${$as_ac_Header+set}\" = set"; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ eval "$as_ac_Header=\$ac_header_preproc"
+fi
+echo "$as_me:$LINENO: result: `eval echo '${'$as_ac_Header'}'`" >&5
+echo "${ECHO_T}`eval echo '${'$as_ac_Header'}'`" >&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
+
+else
+ COMPILE_GMP=no
fi
if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
@@ -25194,29 +25582,57 @@ echo "${ECHO_T}no" >&6
fi
-# Check whether --with-fastjar or --without-fastjar was given.
-if test "${with_fastjar+set}" = set; then
- withval="$with_fastjar"
-
- echo "$as_me:$LINENO: checking for user supplied fastjar" >&5
-echo $ECHO_N "checking for user supplied fastjar... $ECHO_C" >&6
- FASTJAR=${withval}
- echo "$as_me:$LINENO: result: ${FASTJAR}" >&5
-echo "${ECHO_T}${FASTJAR}" >&6
+ echo "$as_me:$LINENO: checking for a jar-like tool" >&5
+echo $ECHO_N "checking for a jar-like tool... $ECHO_C" >&6
+
+# Check whether --with-jar or --without-jar was given.
+if test "${with_jar+set}" = set; then
+ withval="$with_jar"
+
+ case "${withval}" in
+ yes)
+ JAR=yes
+ ;;
+ no)
+ JAR=no
+ echo "$as_me:$LINENO: result: ${JAR}" >&5
+echo "${ECHO_T}${JAR}" >&6
+ ;;
+ *)
+ if test -f "${withval}"; then
+ JAR="${withval}"
+ echo "$as_me:$LINENO: result: ${JAR}" >&5
+echo "${ECHO_T}${JAR}" >&6
+ else
+ echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+ { { echo "$as_me:$LINENO: error: The jar tool ${withval} was not found." >&5
+echo "$as_me: error: The jar tool ${withval} was not found." >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ ;;
+ esac
else
- for ac_prog in fastjar gjar jar
+
+ JAR=yes
+
+fi;
+ if test x"${JAR}" = "xyes"; then
+ echo "$as_me:$LINENO: result: trying fastjar, gjar and jar" >&5
+echo "${ECHO_T}trying fastjar, gjar and jar" >&6
+ for ac_prog in fastjar gjar jar
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_path_FASTJAR+set}" = set; then
+if test "${ac_cv_path_JAR+set}" = set; then
echo $ECHO_N "(cached) $ECHO_C" >&6
else
- case $FASTJAR in
+ case $JAR in
[\\/]* | ?:[\\/]*)
- ac_cv_path_FASTJAR="$FASTJAR" # Let the user override the test with a path.
+ ac_cv_path_JAR="$JAR" # Let the user override the test with a path.
;;
*)
as_save_IFS=$IFS; IFS=$PATH_SEPARATOR
@@ -25226,7 +25642,7 @@ do
test -z "$as_dir" && as_dir=.
for ac_exec_ext in '' $ac_executable_extensions; do
if $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
- ac_cv_path_FASTJAR="$as_dir/$ac_word$ac_exec_ext"
+ ac_cv_path_JAR="$as_dir/$ac_word$ac_exec_ext"
echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
break 2
fi
@@ -25236,25 +25652,42 @@ done
;;
esac
fi
-FASTJAR=$ac_cv_path_FASTJAR
+JAR=$ac_cv_path_JAR
-if test -n "$FASTJAR"; then
- echo "$as_me:$LINENO: result: $FASTJAR" >&5
-echo "${ECHO_T}$FASTJAR" >&6
+if test -n "$JAR"; then
+ echo "$as_me:$LINENO: result: $JAR" >&5
+echo "${ECHO_T}$JAR" >&6
else
echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
fi
- test -n "$FASTJAR" && break
+ test -n "$JAR" && break
done
-fi;
- if test x"${FASTJAR}" != x; then
- ZIP=""
+ if test x"${RHINO_JAR}" = "xyes"; then
+ echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+ fi
+ fi
+ if test x"${JAR}" = "xno" && test x"${ZIP}" = ""; then
+ { { echo "$as_me:$LINENO: error: No zip or jar tool found." >&5
+echo "$as_me: error: No zip or jar tool found." >&2;}
+ { (exit 1); exit 1; }; }
fi
+if test x"${JAR}" != "xno" && test x"${JAR}" != "xyes"; then
+ WITH_JAR_TRUE=
+ WITH_JAR_FALSE='#'
+else
+ WITH_JAR_TRUE='#'
+ WITH_JAR_FALSE=
+fi
+
+
+
+
# Check whether --with-glibj or --without-glibj was given.
if test "${with_glibj+set}" = set; then
withval="$with_glibj"
@@ -25335,7 +25768,7 @@ echo "$as_me: error: bad value ${enableval} for --enable-examples" >&2;}
else
EXAMPLESDIR="examples"
fi;
- if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
+ if test "x${build_class_files}" = xno; then
EXAMPLESDIR=""
fi
@@ -25353,7 +25786,7 @@ echo "$as_me: error: bad value ${enableval} for --enable-tools" >&2;}
else
TOOLSDIR="tools"
fi;
- if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
+ if test "x${build_class_files}" = xno; then
TOOLSDIR=""
fi
@@ -25448,7 +25881,6 @@ else
fi;
-
if test "x${WITH_GJDOC}" = xyes; then
CREATE_API_DOCS_TRUE=
CREATE_API_DOCS_FALSE='#'
@@ -25457,6 +25889,20 @@ else
CREATE_API_DOCS_FALSE=
fi
+ if test "x${WITH_GJDOC}" = xyes; then
+ echo "$as_me:$LINENO: checking version of GJDoc" >&5
+echo $ECHO_N "checking version of GJDoc... $ECHO_C" >&6
+ gjdoc_version=$(${GJDOC} --version|cut -d ' ' -f2)
+ echo "$as_me:$LINENO: result: ${gjdoc_version}" >&5
+echo "${ECHO_T}${gjdoc_version}" >&6
+ case ${gjdoc_version} in
+ 0.7.9) ;;
+ 0.8*) ;;
+ *) { { echo "$as_me:$LINENO: error: Building documentation requires GJDoc >= 0.7.9, ${gjdoc_version} found." >&5
+echo "$as_me: error: Building documentation requires GJDoc >= 0.7.9, ${gjdoc_version} found." >&2;}
+ { (exit 1); exit 1; }; } ;;
+ esac
+ fi
@@ -28537,6 +28983,924 @@ fi
+if test "x${TOOLSDIR}" != x; then
+ if test "x${COMPILE_WRAPPERS}" = xno && test "x${enable_java_maintainer_mode}" = xyes; then
+
+
+if test "x$JAVAPREFIX" = x; then
+ test "x$JAVA" = x && for ac_prog in cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT
+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_JAVA+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$JAVA"; then
+ ac_cv_prog_JAVA="$JAVA" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_JAVA="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+JAVA=$ac_cv_prog_JAVA
+if test -n "$JAVA"; then
+ echo "$as_me:$LINENO: result: $JAVA" >&5
+echo "${ECHO_T}$JAVA" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$JAVA" && break
+done
+
+else
+ test "x$JAVA" = x && for ac_prog in cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT
+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_JAVA+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$JAVA"; then
+ ac_cv_prog_JAVA="$JAVA" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_JAVA="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+JAVA=$ac_cv_prog_JAVA
+if test -n "$JAVA"; then
+ echo "$as_me:$LINENO: result: $JAVA" >&5
+echo "${ECHO_T}$JAVA" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$JAVA" && break
+done
+test -n "$JAVA" || JAVA="$JAVAPREFIX"
+
+fi
+test "x$JAVA" = x && { { echo "$as_me:$LINENO: error: no acceptable Java virtual machine found in \$PATH" >&5
+echo "$as_me: error: no acceptable Java virtual machine found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+
+# Extract the first word of "uudecode$EXEEXT", so it can be a program name with args.
+set dummy uudecode$EXEEXT; 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_uudecode+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$uudecode"; then
+ ac_cv_prog_uudecode="$uudecode" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_uudecode="yes"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+uudecode=$ac_cv_prog_uudecode
+if test -n "$uudecode"; then
+ echo "$as_me:$LINENO: result: $uudecode" >&5
+echo "${ECHO_T}$uudecode" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test x$uudecode = xyes; then
+echo "$as_me:$LINENO: checking if uudecode can decode base 64 file" >&5
+echo $ECHO_N "checking if uudecode can decode base 64 file... $ECHO_C" >&6
+if test "${ac_cv_prog_uudecode_base64+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat << \EOF > Test.uue
+begin-base64 644 Test.class
+yv66vgADAC0AFQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE
+bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51
+bWJlclRhYmxlDAAKAAsBAARleGl0AQAEKEkpVgoADQAJBwAOAQAQamF2YS9s
+YW5nL1N5c3RlbQEABjxpbml0PgEAAygpVgwADwAQCgADABEBAApTb3VyY2VG
+aWxlAQAJVGVzdC5qYXZhACEAAQADAAAAAAACAAkABQAGAAEABwAAACEAAQAB
+AAAABQO4AAyxAAAAAQAIAAAACgACAAAACgAEAAsAAQAPABAAAQAHAAAAIQAB
+AAEAAAAFKrcAErEAAAABAAgAAAAKAAIAAAAEAAQABAABABMAAAACABQ=
+====
+EOF
+if uudecode$EXEEXT Test.uue; then
+ ac_cv_prog_uudecode_base64=yes
+else
+ echo "configure: 29134: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
+ echo "configure: failed file was:" >&5
+ cat Test.uue >&5
+ ac_cv_prog_uudecode_base64=no
+fi
+rm -f Test.uue
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_uudecode_base64" >&5
+echo "${ECHO_T}$ac_cv_prog_uudecode_base64" >&6
+fi
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+ rm -f Test.class
+ { echo "$as_me:$LINENO: WARNING: I have to compile Test.class from scratch" >&5
+echo "$as_me: WARNING: I have to compile Test.class from scratch" >&2;}
+ if test x$ac_cv_prog_javac_works = xno; then
+ { { echo "$as_me:$LINENO: error: Cannot compile java source. $JAVAC does not work properly" >&5
+echo "$as_me: error: Cannot compile java source. $JAVAC does not work properly" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ if test x$ac_cv_prog_javac_works = x; then
+
+ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
+JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
+GCJ_OPTS="-g"
+if test "x$JAVAPREFIX" = x; then
+ test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
+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_JAVAC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$JAVAC"; then
+ ac_cv_prog_JAVAC="$JAVAC" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_JAVAC="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+JAVAC=$ac_cv_prog_JAVAC
+if test -n "$JAVAC"; then
+ echo "$as_me:$LINENO: result: $JAVAC" >&5
+echo "${ECHO_T}$JAVAC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$JAVAC" && break
+done
+
+else
+ test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
+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_JAVAC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$JAVAC"; then
+ ac_cv_prog_JAVAC="$JAVAC" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_JAVAC="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+JAVAC=$ac_cv_prog_JAVAC
+if test -n "$JAVAC"; then
+ echo "$as_me:$LINENO: result: $JAVAC" >&5
+echo "${ECHO_T}$JAVAC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$JAVAC" && break
+done
+test -n "$JAVAC" || JAVAC="$JAVAPREFIX"
+
+fi
+test "x$JAVAC" = x && { { echo "$as_me:$LINENO: error: no acceptable Java compiler found in \$PATH" >&5
+echo "$as_me: error: no acceptable Java compiler found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if $JAVAC is a version of gcj" >&5
+echo $ECHO_N "checking if $JAVAC is a version of gcj... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_is_gcj+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if $JAVAC --version | grep gcj > /dev/null; then
+ ac_cv_prog_javac_is_gcj=yes;
+ JAVAC="$JAVAC $GCJ_OPTS";
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_is_gcj" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_is_gcj" >&6
+JAVAC_IS_GCJ=$ac_cv_prog_javac_is_gcj
+
+
+
+if test x"${JAVAC_IS_GCJ}" = xyes; then
+ GCJ_JAVAC_TRUE=
+ GCJ_JAVAC_FALSE='#'
+else
+ GCJ_JAVAC_TRUE='#'
+ GCJ_JAVAC_FALSE=
+fi
+
+if test "$enable_java_maintainer_mode" = yes; then
+
+echo "$as_me:$LINENO: checking if $JAVAC works" >&5
+echo $ECHO_N "checking if $JAVAC works... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+JAVA_TEST=Object.java
+CLASS_TEST=Object.class
+cat << \EOF > $JAVA_TEST
+/* #line 29281 "configure" */
+package java.lang;
+
+public class Object
+{
+ static <T> void doStuff()
+ {
+ }
+}
+EOF
+if test x$JAVAC_IS_GCJ = xyes; then
+ CMD="$JAVAC $JAVACFLAGS -fsource=1.5 -ftarget=1.5 $JAVA_TEST"
+else
+ CMD="$JAVAC $JAVACFLAGS -source 1.5 -target 1.5 $JAVA_TEST"
+fi
+if { ac_try='$CMD'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } >/dev/null 2>&1; then
+ ac_cv_prog_javac_works=yes
+else
+ { { echo "$as_me:$LINENO: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&2;}
+ { (exit 1); exit 1; }; }
+ echo "configure: failed program was:" >&5
+ cat $JAVA_TEST >&5
+fi
+rm -f $JAVA_TEST $CLASS_TEST
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_works" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_works" >&6
+
+fi
+
+ fi
+fi
+echo "$as_me:$LINENO: checking if $JAVA works" >&5
+echo $ECHO_N "checking if $JAVA works... $ECHO_C" >&6
+if test "${ac_cv_prog_java_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+JAVA_TEST=Test.java
+CLASS_TEST=Test.class
+TEST=Test
+cat << \EOF > $JAVA_TEST
+/* [#]line 29330 "configure" */
+public class Test {
+public static void main (String args[]) {
+ System.exit (0);
+} }
+EOF
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+ if { ac_try='$JAVAC $JAVACFLAGS $JAVA_TEST'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } && test -s $CLASS_TEST; then
+ :
+ else
+ echo "configure: failed program was:" >&5
+ cat $JAVA_TEST >&5
+ { { echo "$as_me:$LINENO: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+if { ac_try='CLASSPATH=.:$CLASSPATH $JAVA $JAVAFLAGS $TEST'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } >/dev/null 2>&1; then
+ ac_cv_prog_java_works=yes
+else
+ echo "configure: failed program was:" >&5
+ cat $JAVA_TEST >&5
+ { { echo "$as_me:$LINENO: error: The Java VM $JAVA failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java VM $JAVA failed (see config.log, check the CLASSPATH?)" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+rm -fr $JAVA_TEST $CLASS_TEST Test.uue
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_java_works" >&5
+echo "${ECHO_T}$ac_cv_prog_java_works" >&6
+
+
+
+ fi
+ if test "x${COMPILE_GJDOC}" = xyes; then
+
+ echo "$as_me:$LINENO: checking for the ANTLR parser generator JAR file" >&5
+echo $ECHO_N "checking for the ANTLR parser generator JAR file... $ECHO_C" >&6
+ if test -z "$ANTLR_JAR"; then
+ for antlr_lib_home in `ls -d /usr/local/share/antlr* 2> /dev/null` \
+ /usr/share/antlr/lib /usr/share/java /usr/lib;
+ do
+ if test -f "$antlr_lib_home/antlr.jar"; then
+ ANTLR_JAR="$antlr_lib_home/antlr.jar"
+ break
+ fi
+ done
+ fi
+ test -f $ANTLR_JAR || { { echo "$as_me:$LINENO: error: specified ANTLR jar file $ANTLR_JAR not found." >&5
+echo "$as_me: error: specified ANTLR jar file $ANTLR_JAR not found." >&2;}
+ { (exit 1); exit 1; }; } \
+ && echo "$as_me:$LINENO: result: $ANTLR_JAR" >&5
+echo "${ECHO_T}$ANTLR_JAR" >&6
+
+
+ if test "x${REGENERATE_GJDOC_PARSER}" = xyes; then
+ if test "x${enable_java_maintainer_mode}" = xyes; then
+
+if test "x$JAVAPREFIX" = x; then
+ test "x$JAVA" = x && for ac_prog in cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT
+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_JAVA+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$JAVA"; then
+ ac_cv_prog_JAVA="$JAVA" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_JAVA="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+JAVA=$ac_cv_prog_JAVA
+if test -n "$JAVA"; then
+ echo "$as_me:$LINENO: result: $JAVA" >&5
+echo "${ECHO_T}$JAVA" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$JAVA" && break
+done
+
+else
+ test "x$JAVA" = x && for ac_prog in cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT
+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_JAVA+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$JAVA"; then
+ ac_cv_prog_JAVA="$JAVA" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_JAVA="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+JAVA=$ac_cv_prog_JAVA
+if test -n "$JAVA"; then
+ echo "$as_me:$LINENO: result: $JAVA" >&5
+echo "${ECHO_T}$JAVA" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$JAVA" && break
+done
+test -n "$JAVA" || JAVA="$JAVAPREFIX"
+
+fi
+test "x$JAVA" = x && { { echo "$as_me:$LINENO: error: no acceptable Java virtual machine found in \$PATH" >&5
+echo "$as_me: error: no acceptable Java virtual machine found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+
+# Extract the first word of "uudecode$EXEEXT", so it can be a program name with args.
+set dummy uudecode$EXEEXT; 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_uudecode+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$uudecode"; then
+ ac_cv_prog_uudecode="$uudecode" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_uudecode="yes"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+uudecode=$ac_cv_prog_uudecode
+if test -n "$uudecode"; then
+ echo "$as_me:$LINENO: result: $uudecode" >&5
+echo "${ECHO_T}$uudecode" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+if test x$uudecode = xyes; then
+echo "$as_me:$LINENO: checking if uudecode can decode base 64 file" >&5
+echo $ECHO_N "checking if uudecode can decode base 64 file... $ECHO_C" >&6
+if test "${ac_cv_prog_uudecode_base64+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+cat << \EOF > Test.uue
+begin-base64 644 Test.class
+yv66vgADAC0AFQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE
+bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51
+bWJlclRhYmxlDAAKAAsBAARleGl0AQAEKEkpVgoADQAJBwAOAQAQamF2YS9s
+YW5nL1N5c3RlbQEABjxpbml0PgEAAygpVgwADwAQCgADABEBAApTb3VyY2VG
+aWxlAQAJVGVzdC5qYXZhACEAAQADAAAAAAACAAkABQAGAAEABwAAACEAAQAB
+AAAABQO4AAyxAAAAAQAIAAAACgACAAAACgAEAAsAAQAPABAAAQAHAAAAIQAB
+AAEAAAAFKrcAErEAAAABAAgAAAAKAAIAAAAEAAQABAABABMAAAACABQ=
+====
+EOF
+if uudecode$EXEEXT Test.uue; then
+ ac_cv_prog_uudecode_base64=yes
+else
+ echo "configure: 29543: uudecode had trouble decoding base 64 file 'Test.uue'" >&5
+ echo "configure: failed file was:" >&5
+ cat Test.uue >&5
+ ac_cv_prog_uudecode_base64=no
+fi
+rm -f Test.uue
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_uudecode_base64" >&5
+echo "${ECHO_T}$ac_cv_prog_uudecode_base64" >&6
+fi
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+ rm -f Test.class
+ { echo "$as_me:$LINENO: WARNING: I have to compile Test.class from scratch" >&5
+echo "$as_me: WARNING: I have to compile Test.class from scratch" >&2;}
+ if test x$ac_cv_prog_javac_works = xno; then
+ { { echo "$as_me:$LINENO: error: Cannot compile java source. $JAVAC does not work properly" >&5
+echo "$as_me: error: Cannot compile java source. $JAVAC does not work properly" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+ if test x$ac_cv_prog_javac_works = x; then
+
+ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
+JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
+GCJ_OPTS="-g"
+if test "x$JAVAPREFIX" = x; then
+ test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
+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_JAVAC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$JAVAC"; then
+ ac_cv_prog_JAVAC="$JAVAC" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_JAVAC="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+JAVAC=$ac_cv_prog_JAVAC
+if test -n "$JAVAC"; then
+ echo "$as_me:$LINENO: result: $JAVAC" >&5
+echo "${ECHO_T}$JAVAC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$JAVAC" && break
+done
+
+else
+ test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
+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_JAVAC+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$JAVAC"; then
+ ac_cv_prog_JAVAC="$JAVAC" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_JAVAC="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+JAVAC=$ac_cv_prog_JAVAC
+if test -n "$JAVAC"; then
+ echo "$as_me:$LINENO: result: $JAVAC" >&5
+echo "${ECHO_T}$JAVAC" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$JAVAC" && break
+done
+test -n "$JAVAC" || JAVAC="$JAVAPREFIX"
+
+fi
+test "x$JAVAC" = x && { { echo "$as_me:$LINENO: error: no acceptable Java compiler found in \$PATH" >&5
+echo "$as_me: error: no acceptable Java compiler found in \$PATH" >&2;}
+ { (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if $JAVAC is a version of gcj" >&5
+echo $ECHO_N "checking if $JAVAC is a version of gcj... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_is_gcj+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if $JAVAC --version | grep gcj > /dev/null; then
+ ac_cv_prog_javac_is_gcj=yes;
+ JAVAC="$JAVAC $GCJ_OPTS";
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_is_gcj" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_is_gcj" >&6
+JAVAC_IS_GCJ=$ac_cv_prog_javac_is_gcj
+
+
+
+if test x"${JAVAC_IS_GCJ}" = xyes; then
+ GCJ_JAVAC_TRUE=
+ GCJ_JAVAC_FALSE='#'
+else
+ GCJ_JAVAC_TRUE='#'
+ GCJ_JAVAC_FALSE=
+fi
+
+if test "$enable_java_maintainer_mode" = yes; then
+
+echo "$as_me:$LINENO: checking if $JAVAC works" >&5
+echo $ECHO_N "checking if $JAVAC works... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+JAVA_TEST=Object.java
+CLASS_TEST=Object.class
+cat << \EOF > $JAVA_TEST
+/* #line 29690 "configure" */
+package java.lang;
+
+public class Object
+{
+ static <T> void doStuff()
+ {
+ }
+}
+EOF
+if test x$JAVAC_IS_GCJ = xyes; then
+ CMD="$JAVAC $JAVACFLAGS -fsource=1.5 -ftarget=1.5 $JAVA_TEST"
+else
+ CMD="$JAVAC $JAVACFLAGS -source 1.5 -target 1.5 $JAVA_TEST"
+fi
+if { ac_try='$CMD'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } >/dev/null 2>&1; then
+ ac_cv_prog_javac_works=yes
+else
+ { { echo "$as_me:$LINENO: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&2;}
+ { (exit 1); exit 1; }; }
+ echo "configure: failed program was:" >&5
+ cat $JAVA_TEST >&5
+fi
+rm -f $JAVA_TEST $CLASS_TEST
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_works" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_works" >&6
+
+fi
+
+ fi
+fi
+echo "$as_me:$LINENO: checking if $JAVA works" >&5
+echo $ECHO_N "checking if $JAVA works... $ECHO_C" >&6
+if test "${ac_cv_prog_java_works+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+JAVA_TEST=Test.java
+CLASS_TEST=Test.class
+TEST=Test
+cat << \EOF > $JAVA_TEST
+/* [#]line 29739 "configure" */
+public class Test {
+public static void main (String args[]) {
+ System.exit (0);
+} }
+EOF
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+ if { ac_try='$JAVAC $JAVACFLAGS $JAVA_TEST'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } && test -s $CLASS_TEST; then
+ :
+ else
+ echo "configure: failed program was:" >&5
+ cat $JAVA_TEST >&5
+ { { echo "$as_me:$LINENO: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+if { ac_try='CLASSPATH=.:$CLASSPATH $JAVA $JAVAFLAGS $TEST'
+ { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
+ (eval $ac_try) 2>&5
+ ac_status=$?
+ echo "$as_me:$LINENO: \$? = $ac_status" >&5
+ (exit $ac_status); }; } >/dev/null 2>&1; then
+ ac_cv_prog_java_works=yes
+else
+ echo "configure: failed program was:" >&5
+ cat $JAVA_TEST >&5
+ { { echo "$as_me:$LINENO: error: The Java VM $JAVA failed (see config.log, check the CLASSPATH?)" >&5
+echo "$as_me: error: The Java VM $JAVA failed (see config.log, check the CLASSPATH?)" >&2;}
+ { (exit 1); exit 1; }; }
+fi
+rm -fr $JAVA_TEST $CLASS_TEST Test.uue
+
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_java_works" >&5
+echo "${ECHO_T}$ac_cv_prog_java_works" >&6
+
+
+
+
+ if test -n "$ac_tool_prefix"; then
+ for ac_prog in cantlr runantlr antlr
+ 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_ANTLR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ANTLR"; then
+ ac_cv_prog_ANTLR="$ANTLR" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ANTLR="$ac_tool_prefix$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ANTLR=$ac_cv_prog_ANTLR
+if test -n "$ANTLR"; then
+ echo "$as_me:$LINENO: result: $ANTLR" >&5
+echo "${ECHO_T}$ANTLR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ANTLR" && break
+ done
+fi
+if test -z "$ANTLR"; then
+ ac_ct_ANTLR=$ANTLR
+ for ac_prog in cantlr runantlr antlr
+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_ANTLR+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+ if test -n "$ac_ct_ANTLR"; then
+ ac_cv_prog_ac_ct_ANTLR="$ac_ct_ANTLR" # 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 $as_executable_p "$as_dir/$ac_word$ac_exec_ext"; then
+ ac_cv_prog_ac_ct_ANTLR="$ac_prog"
+ echo "$as_me:$LINENO: found $as_dir/$ac_word$ac_exec_ext" >&5
+ break 2
+ fi
+done
+done
+
+fi
+fi
+ac_ct_ANTLR=$ac_cv_prog_ac_ct_ANTLR
+if test -n "$ac_ct_ANTLR"; then
+ echo "$as_me:$LINENO: result: $ac_ct_ANTLR" >&5
+echo "${ECHO_T}$ac_ct_ANTLR" >&6
+else
+ echo "$as_me:$LINENO: result: no" >&5
+echo "${ECHO_T}no" >&6
+fi
+
+ test -n "$ac_ct_ANTLR" && break
+done
+
+ ANTLR=$ac_ct_ANTLR
+fi
+
+ if test "x$ANTLR" = x; then
+ if test -z "$JAVA"; then
+ { { echo "$as_me:$LINENO: error: Failed to find either an antlr binary or a suitable Java runtime for ANTLR." >&5
+echo "$as_me: error: Failed to find either an antlr binary or a suitable Java runtime for ANTLR." >&2;}
+ { (exit 1); exit 1; }; }
+ else
+ ANTLR="$JAVA -classpath $ANTLR_JAR antlr.Tool"
+ fi
+ fi
+
+ echo "$as_me:$LINENO: checking for antlr 2.7.1 or better" >&5
+echo $ECHO_N "checking for antlr 2.7.1 or better... $ECHO_C" >&6
+ antlr_version_str=`$ANTLR 2>&1 | head -n 1 | sed '/.*Version */!d; s///;q'`
+ if test "$antlr_version_str"; then
+ antlr_version_regex='s/\([[:digit:]]\+\)\.\([[:digit:]]\+\)\.\([[:digit:]]\+\).*$/'
+ antlr_version_major=`echo $antlr_version_str | sed "$antlr_version_regex\\1/"`
+ antlr_version_minor=`echo $antlr_version_str | sed "$antlr_version_regex\\2/"`
+ antlr_version_micro=`echo $antlr_version_str | sed "$antlr_version_regex\\3/"`
+ (test $antlr_version_major -gt 2 || \
+ (test $antlr_version_major -eq 2 && \
+ test $antlr_version_minor -gt 7) || \
+ (test $antlr_version_major -eq 2 && \
+ test $antlr_version_minor -eq 7 && \
+ test $antlr_version_micro -ge 1))
+ fi
+ echo "$as_me:$LINENO: result: $antlr_version_major.$antlr_version_minor.$antlr_version_micro" >&5
+echo "${ECHO_T}$antlr_version_major.$antlr_version_minor.$antlr_version_micro" >&6
+
+ fi
+ fi
+ fi
+fi
+
+
# Check for javac if we need to build either the class library,
# the examples or the tools
if test "x${use_glibj_zip}" = xfalse || \
@@ -28544,9 +29908,11 @@ if test "x${use_glibj_zip}" = xfalse || \
test "x${TOOLSDIR}" != x && \
test "x${build_class_files}" != xno; then
-
+ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
+JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
+GCJ_OPTS="-g"
if test "x$JAVAPREFIX" = x; then
- test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport" "javac$EXEEXT -Xlint:unchecked" "gcj$EXEEXT -C"
+ test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -28587,7 +29953,7 @@ fi
done
else
- test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport" "ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport" "javac$EXEEXT -Xlint:unchecked" "gcj$EXEEXT -C"
+ test "x$JAVAC" = x && for ac_prog in "ecj$EXEEXT $ECJ_OPTS" "ecj-3.3$EXEEXT $ECJ_OPTS" "ecj-3.2$EXEEXT $ECJ_OPTS" "javac$EXEEXT $JAVAC_OPTS" "gcj$EXEEXT -C"
do
# Extract the first word of "$ac_prog", so it can be a program name with args.
set dummy $ac_prog; ac_word=$2
@@ -28632,6 +29998,31 @@ fi
test "x$JAVAC" = x && { { echo "$as_me:$LINENO: error: no acceptable Java compiler found in \$PATH" >&5
echo "$as_me: error: no acceptable Java compiler found in \$PATH" >&2;}
{ (exit 1); exit 1; }; }
+echo "$as_me:$LINENO: checking if $JAVAC is a version of gcj" >&5
+echo $ECHO_N "checking if $JAVAC is a version of gcj... $ECHO_C" >&6
+if test "${ac_cv_prog_javac_is_gcj+set}" = set; then
+ echo $ECHO_N "(cached) $ECHO_C" >&6
+else
+
+if $JAVAC --version | grep gcj > /dev/null; then
+ ac_cv_prog_javac_is_gcj=yes;
+ JAVAC="$JAVAC $GCJ_OPTS";
+fi
+fi
+echo "$as_me:$LINENO: result: $ac_cv_prog_javac_is_gcj" >&5
+echo "${ECHO_T}$ac_cv_prog_javac_is_gcj" >&6
+JAVAC_IS_GCJ=$ac_cv_prog_javac_is_gcj
+
+
+
+if test x"${JAVAC_IS_GCJ}" = xyes; then
+ GCJ_JAVAC_TRUE=
+ GCJ_JAVAC_FALSE='#'
+else
+ GCJ_JAVAC_TRUE='#'
+ GCJ_JAVAC_FALSE=
+fi
+
if test "$enable_java_maintainer_mode" = yes; then
echo "$as_me:$LINENO: checking if $JAVAC works" >&5
@@ -28643,7 +30034,7 @@ else
JAVA_TEST=Object.java
CLASS_TEST=Object.class
cat << \EOF > $JAVA_TEST
-/* #line 28646 "configure" */
+/* #line 30037 "configure" */
package java.lang;
public class Object
@@ -28653,7 +30044,12 @@ public class Object
}
}
EOF
-if { ac_try='$JAVAC $JAVA_TEST'
+if test x$JAVAC_IS_GCJ = xyes; then
+ CMD="$JAVAC $JAVACFLAGS -fsource=1.5 -ftarget=1.5 $JAVA_TEST"
+else
+ CMD="$JAVAC $JAVACFLAGS -source 1.5 -target 1.5 $JAVA_TEST"
+fi
+if { ac_try='$CMD'
{ (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
(eval $ac_try) 2>&5
ac_status=$?
@@ -28679,7 +30075,7 @@ fi
JAVA_TEST=Test.java
CLASS_TEST=Test.class
cat << \EOF > $JAVA_TEST
- /* #line 28682 "configure" */
+ /* #line 30078 "configure" */
public class Test
{
public static void main(String args)
@@ -28688,17 +30084,19 @@ fi
}
}
EOF
- echo "$as_me:$LINENO: checking whether javac supports -J" >&5
+ if test x$JAVAC_IS_GCJ != xyes; then
+ echo "$as_me:$LINENO: checking whether javac supports -J" >&5
echo $ECHO_N "checking whether javac supports -J... $ECHO_C" >&6
- $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST
- javac_result=$?
- if test "x$javac_result" = "x0"; then
- echo "$as_me:$LINENO: result: yes" >&5
+ $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST
+ javac_result=$?
+ if test "x$javac_result" = "x0"; then
+ echo "$as_me:$LINENO: result: yes" >&5
echo "${ECHO_T}yes" >&6
- JAVAC_MEM_OPT="-J-Xmx768M"
- else
- echo "$as_me:$LINENO: result: no" >&5
+ JAVAC_MEM_OPT="-J-Xmx768M"
+ else
+ echo "$as_me:$LINENO: result: no" >&5
echo "${ECHO_T}no" >&6
+ fi
fi
rm -f $JAVA_TEST $CLASS_TEST
@@ -29029,7 +30427,36 @@ fi
- ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/gstreamer-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader resource/META-INF/services/javax.sound.sampled.spi.MixerProvider scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh scripts/check_jni_methods.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d"
+WANT_NATIVE_BIG_INTEGER=false
+if test "x${COMPILE_GMP}" = xyes; then
+ if test "x${ac_cv_lib_gmp___gmpz_mul_si}" = xyes; then
+ if test "x${ac_cv_header_gmp_h}" = xyes; then
+ WANT_NATIVE_BIG_INTEGER=true
+
+cat >>confdefs.h <<\_ACEOF
+#define WITH_GNU_MP 1
+_ACEOF
+
+ else
+ COMPILE_GMP=no
+ fi
+ else
+ COMPILE_GMP=no
+ fi
+fi
+
+
+
+if test "x${COMPILE_GMP}" = xyes; then
+ CREATE_GMPBI_LIBRARY_TRUE=
+ CREATE_GMPBI_LIBRARY_FALSE='#'
+else
+ CREATE_GMPBI_LIBRARY_TRUE='#'
+ CREATE_GMPBI_LIBRARY_FALSE=
+fi
+
+
+ ac_config_files="$ac_config_files Makefile doc/Makefile doc/api/Makefile external/Makefile external/sax/Makefile external/w3c_dom/Makefile external/relaxngDatatype/Makefile external/jsr166/Makefile gnu/classpath/Configuration.java gnu/java/security/Configuration.java include/Makefile native/Makefile native/fdlibm/Makefile native/jawt/Makefile native/jni/Makefile native/jni/classpath/Makefile native/jni/java-io/Makefile native/jni/java-lang/Makefile native/jni/java-math/Makefile native/jni/java-net/Makefile native/jni/java-nio/Makefile native/jni/java-util/Makefile native/jni/gtk-peer/Makefile native/jni/gconf-peer/Makefile native/jni/gstreamer-peer/Makefile native/jni/qt-peer/Makefile native/jni/xmlj/Makefile native/jni/midi-alsa/Makefile native/jni/midi-dssi/Makefile native/jni/native-lib/Makefile native/plugin/Makefile resource/Makefile resource/META-INF/services/java.util.prefs.PreferencesFactory resource/META-INF/services/javax.sound.sampled.spi.AudioFileReader resource/META-INF/services/javax.sound.sampled.spi.MixerProvider scripts/Makefile scripts/classpath.spec lib/Makefile lib/gen-classlist.sh lib/copy-vmresources.sh scripts/check_jni_methods.sh tools/Makefile examples/Makefile examples/Makefile.jawt examples/Makefile.java2d"
if test "x${COMPILE_WRAPPERS}" = xyes; then
@@ -29066,6 +30493,14 @@ if test "x${COMPILE_WRAPPERS}" = xyes; then
fi
+if test "x${COMPILE_GJDOC}" = xyes
+then
+ ac_config_files="$ac_config_files tools/gjdoc"
+
+ ac_config_commands="$ac_config_commands gjdoc"
+
+fi
+
ac_config_commands="$ac_config_commands gen-classlist"
ac_config_commands="$ac_config_commands copy-vmresources"
@@ -29266,6 +30701,13 @@ echo "$as_me: error: conditional \"CREATE_PLUGIN\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${CREATE_GJDOC_TRUE}" && test -z "${CREATE_GJDOC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"CREATE_GJDOC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_GJDOC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${CREATE_JNI_HEADERS_TRUE}" && test -z "${CREATE_JNI_HEADERS_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"CREATE_JNI_HEADERS\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -29273,6 +30715,13 @@ echo "$as_me: error: conditional \"CREATE_JNI_HEADERS\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${CREATE_GJDOC_PARSER_TRUE}" && test -z "${CREATE_GJDOC_PARSER_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"CREATE_GJDOC_PARSER\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_GJDOC_PARSER\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${CREATE_WRAPPERS_TRUE}" && test -z "${CREATE_WRAPPERS_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"CREATE_WRAPPERS\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -29308,6 +30757,13 @@ echo "$as_me: error: conditional \"MAINTAINER_MODE\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${WITH_JAR_TRUE}" && test -z "${WITH_JAR_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"WITH_JAR\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"WITH_JAR\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${INSTALL_GLIBJ_ZIP_TRUE}" && test -z "${INSTALL_GLIBJ_ZIP_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"INSTALL_GLIBJ_ZIP\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -29350,6 +30806,27 @@ echo "$as_me: error: conditional \"USE_PREBUILT_GLIBJ_ZIP\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${GCJ_JAVAC_TRUE}" && test -z "${GCJ_JAVAC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${GCJ_JAVAC_TRUE}" && test -z "${GCJ_JAVAC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
+if test -z "${GCJ_JAVAC_TRUE}" && test -z "${GCJ_JAVAC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"GCJ_JAVAC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${USE_ESCHER_TRUE}" && test -z "${USE_ESCHER_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"USE_ESCHER\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -29364,6 +30841,13 @@ echo "$as_me: error: conditional \"ENABLE_LOCAL_SOCKETS\" was never defined.
Usually this means the macro was only invoked conditionally." >&2;}
{ (exit 1); exit 1; }; }
fi
+if test -z "${CREATE_GMPBI_LIBRARY_TRUE}" && test -z "${CREATE_GMPBI_LIBRARY_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"CREATE_GMPBI_LIBRARY\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_GMPBI_LIBRARY\" 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
@@ -29635,7 +31119,7 @@ _ASBOX
} >&5
cat >&5 <<_CSEOF
-This file was extended by GNU Classpath $as_me 0.97.2, which was
+This file was extended by GNU Classpath $as_me 0.98-pre, which was
generated by GNU Autoconf 2.59. Invocation command line was
CONFIG_FILES = $CONFIG_FILES
@@ -29701,7 +31185,7 @@ _ACEOF
cat >>$CONFIG_STATUS <<_ACEOF
ac_cs_version="\\
-GNU Classpath config.status 0.97.2
+GNU Classpath config.status 0.98-pre
configured by $0, generated by GNU Autoconf 2.59,
with options \\"`echo "$ac_configure_args" | sed 's/[\\""\`\$]/\\\\&/g'`\\"
@@ -30210,6 +31694,7 @@ do
"native/jni/classpath/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/classpath/Makefile" ;;
"native/jni/java-io/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-io/Makefile" ;;
"native/jni/java-lang/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-lang/Makefile" ;;
+ "native/jni/java-math/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-math/Makefile" ;;
"native/jni/java-net/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-net/Makefile" ;;
"native/jni/java-nio/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-nio/Makefile" ;;
"native/jni/java-util/Makefile" ) CONFIG_FILES="$CONFIG_FILES native/jni/java-util/Makefile" ;;
@@ -30248,6 +31733,7 @@ do
"tools/grmid" ) CONFIG_FILES="$CONFIG_FILES tools/grmid" ;;
"tools/grmic" ) CONFIG_FILES="$CONFIG_FILES tools/grmic" ;;
"tools/gjavah" ) CONFIG_FILES="$CONFIG_FILES tools/gjavah" ;;
+ "tools/gjdoc" ) CONFIG_FILES="$CONFIG_FILES tools/gjdoc" ;;
"$ac_config_links_1" ) CONFIG_LINKS="$CONFIG_LINKS $ac_config_links_1" ;;
"default-1" ) CONFIG_COMMANDS="$CONFIG_COMMANDS default-1" ;;
"depfiles" ) CONFIG_COMMANDS="$CONFIG_COMMANDS depfiles" ;;
@@ -30266,6 +31752,7 @@ do
"grmid" ) CONFIG_COMMANDS="$CONFIG_COMMANDS grmid" ;;
"grmic" ) CONFIG_COMMANDS="$CONFIG_COMMANDS grmic" ;;
"gjavah" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gjavah" ;;
+ "gjdoc" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gjdoc" ;;
"gen-classlist" ) CONFIG_COMMANDS="$CONFIG_COMMANDS gen-classlist" ;;
"copy-vmresources" ) CONFIG_COMMANDS="$CONFIG_COMMANDS copy-vmresources" ;;
"include/config.h" ) CONFIG_HEADERS="$CONFIG_HEADERS include/config.h" ;;
@@ -30438,12 +31925,15 @@ s,@CREATE_QT_PEER_LIBRARIES_TRUE@,$CREATE_QT_PEER_LIBRARIES_TRUE,;t t
s,@CREATE_QT_PEER_LIBRARIES_FALSE@,$CREATE_QT_PEER_LIBRARIES_FALSE,;t t
s,@CREATE_PLUGIN_TRUE@,$CREATE_PLUGIN_TRUE,;t t
s,@CREATE_PLUGIN_FALSE@,$CREATE_PLUGIN_FALSE,;t t
+s,@CREATE_GJDOC_TRUE@,$CREATE_GJDOC_TRUE,;t t
+s,@CREATE_GJDOC_FALSE@,$CREATE_GJDOC_FALSE,;t t
s,@toolexeclibdir@,$toolexeclibdir,;t t
s,@nativeexeclibdir@,$nativeexeclibdir,;t t
s,@glibjdir@,$glibjdir,;t t
-s,@VM_BINARY@,$VM_BINARY,;t t
s,@CREATE_JNI_HEADERS_TRUE@,$CREATE_JNI_HEADERS_TRUE,;t t
s,@CREATE_JNI_HEADERS_FALSE@,$CREATE_JNI_HEADERS_FALSE,;t t
+s,@CREATE_GJDOC_PARSER_TRUE@,$CREATE_GJDOC_PARSER_TRUE,;t t
+s,@CREATE_GJDOC_PARSER_FALSE@,$CREATE_GJDOC_PARSER_FALSE,;t t
s,@CREATE_WRAPPERS_TRUE@,$CREATE_WRAPPERS_TRUE,;t t
s,@CREATE_WRAPPERS_FALSE@,$CREATE_WRAPPERS_FALSE,;t t
s,@LN_S@,$LN_S,;t t
@@ -30527,6 +32017,8 @@ s,@MOZILLA_LIBS@,$MOZILLA_LIBS,;t t
s,@GLIB_CFLAGS@,$GLIB_CFLAGS,;t t
s,@GLIB_LIBS@,$GLIB_LIBS,;t t
s,@PLUGIN_DIR@,$PLUGIN_DIR,;t t
+s,@GMP_CFLAGS@,$GMP_CFLAGS,;t t
+s,@GMP_LIBS@,$GMP_LIBS,;t t
s,@USER_JAVAH@,$USER_JAVAH,;t t
s,@CLASSPATH_INCLUDES@,$CLASSPATH_INCLUDES,;t t
s,@vm_classes@,$vm_classes,;t t
@@ -30543,7 +32035,9 @@ s,@CP@,$CP,;t t
s,@DATE@,$DATE,;t t
s,@FIND@,$FIND,;t t
s,@ZIP@,$ZIP,;t t
-s,@FASTJAR@,$FASTJAR,;t t
+s,@JAR@,$JAR,;t t
+s,@WITH_JAR_TRUE@,$WITH_JAR_TRUE,;t t
+s,@WITH_JAR_FALSE@,$WITH_JAR_FALSE,;t t
s,@INSTALL_GLIBJ_ZIP_TRUE@,$INSTALL_GLIBJ_ZIP_TRUE,;t t
s,@INSTALL_GLIBJ_ZIP_FALSE@,$INSTALL_GLIBJ_ZIP_FALSE,;t t
s,@INSTALL_CLASS_FILES_TRUE@,$INSTALL_CLASS_FILES_TRUE,;t t
@@ -30562,7 +32056,15 @@ s,@REGEN_PARSERS_FALSE@,$REGEN_PARSERS_FALSE,;t t
s,@USE_PREBUILT_GLIBJ_ZIP_TRUE@,$USE_PREBUILT_GLIBJ_ZIP_TRUE,;t t
s,@USE_PREBUILT_GLIBJ_ZIP_FALSE@,$USE_PREBUILT_GLIBJ_ZIP_FALSE,;t t
s,@PATH_TO_GLIBJ_ZIP@,$PATH_TO_GLIBJ_ZIP,;t t
+s,@JAVA@,$JAVA,;t t
+s,@uudecode@,$uudecode,;t t
s,@JAVAC@,$JAVAC,;t t
+s,@JAVAC_IS_GCJ@,$JAVAC_IS_GCJ,;t t
+s,@GCJ_JAVAC_TRUE@,$GCJ_JAVAC_TRUE,;t t
+s,@GCJ_JAVAC_FALSE@,$GCJ_JAVAC_FALSE,;t t
+s,@ANTLR_JAR@,$ANTLR_JAR,;t t
+s,@ANTLR@,$ANTLR,;t t
+s,@ac_ct_ANTLR@,$ac_ct_ANTLR,;t t
s,@JAVAC_MEM_OPT@,$JAVAC_MEM_OPT,;t t
s,@USE_ESCHER_TRUE@,$USE_ESCHER_TRUE,;t t
s,@USE_ESCHER_FALSE@,$USE_ESCHER_FALSE,;t t
@@ -30570,6 +32072,9 @@ s,@PATH_TO_ESCHER@,$PATH_TO_ESCHER,;t t
s,@ENABLE_LOCAL_SOCKETS_TRUE@,$ENABLE_LOCAL_SOCKETS_TRUE,;t t
s,@ENABLE_LOCAL_SOCKETS_FALSE@,$ENABLE_LOCAL_SOCKETS_FALSE,;t t
s,@DEFAULT_PREFS_PEER@,$DEFAULT_PREFS_PEER,;t t
+s,@WANT_NATIVE_BIG_INTEGER@,$WANT_NATIVE_BIG_INTEGER,;t t
+s,@CREATE_GMPBI_LIBRARY_TRUE@,$CREATE_GMPBI_LIBRARY_TRUE,;t t
+s,@CREATE_GMPBI_LIBRARY_FALSE@,$CREATE_GMPBI_LIBRARY_FALSE,;t t
s,@LIBOBJS@,$LIBOBJS,;t t
s,@LTLIBOBJS@,$LTLIBOBJS,;t t
CEOF
@@ -32717,6 +34222,7 @@ echo "$as_me: error: cannot create directory \"$ac_dir\"" >&2;}
grmid ) chmod 755 tools/grmid ;;
grmic ) chmod 755 tools/grmic ;;
gjavah ) chmod 755 tools/gjavah ;;
+ gjdoc ) chmod 755 tools/gjdoc ;;
gen-classlist ) chmod 755 lib/gen-classlist.sh ;;
copy-vmresources ) chmod 755 lib/copy-vmresources.sh ;;
esac
diff --git a/libjava/classpath/configure.ac b/libjava/classpath/configure.ac
index 54a3efc..18311ea 100644
--- a/libjava/classpath/configure.ac
+++ b/libjava/classpath/configure.ac
@@ -6,7 +6,7 @@ dnl -----------------------------------------------------------
dnl define([AC_CACHE_LOAD], )dnl
dnl define([AC_CACHE_SAVE], )dnl
-AC_INIT([GNU Classpath],[0.97.2],[classpath@gnu.org],[classpath])
+AC_INIT([GNU Classpath],[0.98-pre],[classpath@gnu.org],[classpath])
AC_CONFIG_SRCDIR(java/lang/System.java)
dnl GCJ LOCAL
@@ -284,6 +284,31 @@ AC_ARG_ENABLE([plugin],
AM_CONDITIONAL(CREATE_PLUGIN, test "x${COMPILE_PLUGIN}" = xyes)
dnl -----------------------------------------------------------
+dnl Native java.math.BigInteger (enabled by default)
+dnl -----------------------------------------------------------
+AC_ARG_ENABLE([gmp],
+ [AS_HELP_STRING(--enable-gmp,
+ compile native java.math.BigInteger library (disabled by --disable-gmp) [default=yes])],
+ [case "${enableval}" in
+ yes|true) COMPILE_GMP=yes ;;
+ no|false) COMPILE_GMP=no ;;
+ *) COMPILE_GMP=yes ;;
+ esac],
+ [COMPILE_GMP=yes])
+
+dnl -----------------------------------------------------------
+dnl GJDoc (enabled by default)
+dnl -----------------------------------------------------------
+AC_ARG_ENABLE([gjdoc],
+ [AS_HELP_STRING(--disable-gjdoc,compile GJDoc (disabled by --disable-gjdoc) [default=yes])],
+ [case "${enableval}" in
+ yes) COMPILE_GJDOC=yes ;;
+ no) COMPILE_GJDOC=no ;;
+ *) COMPILE_GJDOC=yes ;;
+ esac],
+ [COMPILE_GJDOC=yes])
+AM_CONDITIONAL(CREATE_GJDOC, test "x${COMPILE_GJDOC}" = xyes)
+
dnl GCJ LOCAL: Calculates and substitutes toolexeclibdir. $libdir is
dnl defined to the same value for all multilibs. We define toolexeclibdir
dnl so that we can refer to the multilib installation directories from
@@ -321,22 +346,21 @@ AC_ARG_WITH([glibj-dir],
AC_SUBST(glibjdir)
dnl -----------------------------------------------------------
-dnl Sets the VM name for use in tool wrapper scripts
+dnl Sets the Antlr jar to use for compiling gjdoc
dnl -----------------------------------------------------------
-AC_ARG_WITH([vm],
- [AS_HELP_STRING(--with-vm,sets the VM binary name [default='${prefix}/bin/jamvm'])],
- [
- VM_BINARY=${withval}
- ],
- [
- VM_BINARY='${prefix}/bin/jamvm'
- ])
-
-AC_SUBST(VM_BINARY)
+AC_ARG_WITH([antlr-jar],
+ [AS_HELP_STRING([--with-antlr-jar=file],[Use ANTLR from the specified jar file])],
+ [
+ ANTLR_JAR=$withval
+ ],
+ [
+ ANTLR_JAR="$ANTLR_JAR"
+ ])
dnl -----------------------------------------------------------
-dnl Regenerate headers at build time (disabled by default)
+dnl Regenerate headers at build time (enabled if not found)
dnl -----------------------------------------------------------
+AC_MSG_CHECKING([whether to regenerate the headers])
AC_ARG_ENABLE([regen-headers],
[AS_HELP_STRING(--enable-regen-headers,automatically regenerate JNI headers [default=yes if headers don't exist])],
[case "${enableval}" in
@@ -344,13 +368,33 @@ AC_ARG_ENABLE([regen-headers],
no) REGENERATE_JNI_HEADERS=no ;;
*) REGENERATE_JNI_HEADERS=yes ;;
esac],
- [if test -e include/java_lang_VMSystem.h; then
+ [if test -e ${srcdir}/include/java_lang_VMSystem.h; then
REGENERATE_JNI_HEADERS=no ;
else
REGENERATE_JNI_HEADERS=yes ;
fi])
+AC_MSG_RESULT(${REGENERATE_JNI_HEADERS})
AM_CONDITIONAL(CREATE_JNI_HEADERS, test "x${REGENERATE_JNI_HEADERS}" = xyes)
+dnl ------------------------------------------------------------------------
+dnl Regenerate GJDoc parser at build time (enabled if not found)
+dnl ------------------------------------------------------------------------
+AC_MSG_CHECKING([whether to regenerate the GJDoc parser])
+AC_ARG_ENABLE([regen-gjdoc-parser],
+ [AS_HELP_STRING(--enable-regen-gjdoc-parser,automatically regenerate the GJDoc parser [default=yes if generated source doesn't exist])],
+ [case "${enableval}" in
+ yes) REGENERATE_GJDOC_PARSER=yes ;;
+ no) REGENERATE_GJDOC_PARSER=no ;;
+ *) REGENERATE_GJDOC_PARSER=yes ;;
+ esac],
+ [if test -e ${srcdir}/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java; then
+ REGENERATE_GJDOC_PARSER=no ;
+ else
+ REGENERATE_GJDOC_PARSER=yes ;
+ fi])
+AC_MSG_RESULT(${REGENERATE_GJDOC_PARSER})
+AM_CONDITIONAL(CREATE_GJDOC_PARSER, test "x${REGENERATE_GJDOC_PARSER}" = xyes)
+
dnl -----------------------------------------------------------
dnl Enable tool wrapper binaries (disabled by default)
dnl -----------------------------------------------------------
@@ -422,6 +466,7 @@ if test "x${COMPILE_JNI}" = xyes; then
dnl Check for crt_externs.h on Darwin.
dnl Check for netinet/in_systm.h, netinet/ip.h and net/if.h for Windows CE.
dnl Check for sys/loadavg.h for getloadavg() on Solaris 9.
+ dnl Check for sys/sockio.h for SIOCGIFFLAGS on OpenSolaris.
AC_CHECK_HEADERS([unistd.h sys/types.h sys/config.h sys/ioctl.h \
asm/ioctls.h \
inttypes.h stdint.h utime.h sys/utime.h sys/filio.h \
@@ -434,14 +479,15 @@ if test "x${COMPILE_JNI}" = xyes; then
sys/event.h sys/epoll.h \
ifaddrs.h \
netinet/in_systm.h netinet/ip.h net/if.h \
- sys/loadavg.h])
+ sys/loadavg.h sys/sockio.h])
AC_EGREP_HEADER(uint32_t, stdint.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
AC_EGREP_HEADER(uint32_t, inttypes.h, AC_DEFINE(HAVE_INT32_DEFINED, 1, [Define to 1 if you have uint32_t]))
AC_EGREP_HEADER(u_int32_t, sys/types.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
AC_EGREP_HEADER(u_int32_t, sys/config.h, AC_DEFINE(HAVE_BSD_INT32_DEFINED, 1, [Define to 1 if you have BSD u_int32_t]))
- AC_SEARCH_LIBS([inet_pton],[nsl])
+ AC_SEARCH_LIBS([inet_pton],[nsl])
+ AC_CHECK_LIB([socket], [gethostname])
AC_CHECK_FUNCS([ftruncate fsync select \
gethostname socket strerror fork pipe execve open close \
lseek fstat read readv write writev htonl memset htons connect \
@@ -755,6 +801,26 @@ if test "x${COMPILE_JNI}" = xyes; then
AC_SUBST(PLUGIN_DIR, $HOME/.mozilla/plugins/)
fi
+
+ dnl Check for GNU MP library and header file
+ dnl for GNU MP versions >= 4.2 use __gmpz_combit; otherwise look for
+ dnl __gmpz_mul_si for earlier versions (>= 3.1).
+ dnl IMPORTANT: if you decide to look for __gmpz_combit, don't forget to
+ dnl change the name of the corresponding ac_ variable on lines 860...
+ if test "x${COMPILE_GMP}" = xyes; then
+ AC_CHECK_LIB(gmp, __gmpz_mul_si,
+ [GMP_CFLAGS=-I/usr/include
+ GMP_LIBS=-lgmp ],
+ [GMP_CFLAGS=
+ GMP_LIBS= ])
+ AC_SUBST(GMP_CFLAGS)
+ AC_SUBST(GMP_LIBS)
+
+ AC_CHECK_HEADERS([gmp.h])
+ fi
+
+else
+ COMPILE_GMP=no
fi
if test "x${REGENERATE_JNI_HEADERS}" = xyes; then
@@ -948,6 +1014,24 @@ esac;
AM_CONDITIONAL(USE_PREBUILT_GLIBJ_ZIP, test x$use_glibj_zip = xtrue)
AC_SUBST(PATH_TO_GLIBJ_ZIP)
+if test "x${TOOLSDIR}" != x; then
+ if test "x${COMPILE_WRAPPERS}" = xno && test "x${enable_java_maintainer_mode}" = xyes; then
+ AC_PROG_JAVA
+ fi
+ if test "x${COMPILE_GJDOC}" = xyes; then
+ AC_LIB_ANTLR
+ if test "x${REGENERATE_GJDOC_PARSER}" = xyes; then
+dnl GCJ LOCAL
+ if test "x${enable_java_maintainer_mode}" = xyes; then
+ AC_PROG_JAVA
+ AC_PROG_ANTLR(2,7,1)
+ fi
+dnl END GCJ LOCAL
+ fi
+ fi
+fi
+
+
# Check for javac if we need to build either the class library,
# the examples or the tools
if test "x${use_glibj_zip}" = xfalse || \
@@ -1012,6 +1096,25 @@ dnl -----------------------------------------------------------
AC_SUBST(DEFAULT_PREFS_PEER)
dnl -----------------------------------------------------------
+dnl Set GNU MP related params
+dnl -----------------------------------------------------------
+WANT_NATIVE_BIG_INTEGER=false
+if test "x${COMPILE_GMP}" = xyes; then
+ if test "x${ac_cv_lib_gmp___gmpz_mul_si}" = xyes; then
+ if test "x${ac_cv_header_gmp_h}" = xyes; then
+ WANT_NATIVE_BIG_INTEGER=true
+ AC_DEFINE(WITH_GNU_MP, 1, [Define to 1 if gmp is usable])
+ else
+ COMPILE_GMP=no
+ fi
+ else
+ COMPILE_GMP=no
+ fi
+fi
+AC_SUBST(WANT_NATIVE_BIG_INTEGER)
+AM_CONDITIONAL(CREATE_GMPBI_LIBRARY, test "x${COMPILE_GMP}" = xyes)
+
+dnl -----------------------------------------------------------
dnl output files
dnl -----------------------------------------------------------
AC_CONFIG_FILES([Makefile
@@ -1032,6 +1135,7 @@ native/jni/Makefile
native/jni/classpath/Makefile
native/jni/java-io/Makefile
native/jni/java-lang/Makefile
+native/jni/java-math/Makefile
native/jni/java-net/Makefile
native/jni/java-nio/Makefile
native/jni/java-util/Makefile
@@ -1087,6 +1191,12 @@ AC_CONFIG_COMMANDS([grmic],[chmod 755 tools/grmic])
AC_CONFIG_COMMANDS([gjavah], [chmod 755 tools/gjavah])
])
+if test "x${COMPILE_GJDOC}" = xyes
+then
+AC_CONFIG_FILES([tools/gjdoc])
+AC_CONFIG_COMMANDS([gjdoc], [chmod 755 tools/gjdoc])
+fi
+
AC_CONFIG_COMMANDS([gen-classlist],[chmod 755 lib/gen-classlist.sh])
AC_CONFIG_COMMANDS([copy-vmresources],[chmod 755 lib/copy-vmresources.sh])
AC_OUTPUT
diff --git a/libjava/classpath/doc/Makefile.am b/libjava/classpath/doc/Makefile.am
index 5f9eb68..aca5431 100644
--- a/libjava/classpath/doc/Makefile.am
+++ b/libjava/classpath/doc/Makefile.am
@@ -28,7 +28,8 @@ TOOLS_MANFILES = \
grmid.1 \
grmiregistry.1 \
gserialver.1 \
- gtnameserv.1
+ gtnameserv.1 \
+ gjdoc.1
POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
TEXI2POD = perl $(srcdir)/texi2pod.pl
@@ -42,7 +43,7 @@ STAMP = echo timestamp >
.INTERMEDIATE: gappletviewer.pod gjarsigner.pod gjar.pod gjavah.pod \
gkeytool.pod gnative2ascii.pod gorbd.pod grmid.pod grmiregistry.pod \
- gserialver.pod gtnameserv.pod gcjh.pod
+ gserialver.pod gtnameserv.pod gcjh.pod gjdoc.pod
gappletviewer.pod: $(srcdir)/cp-tools.texinfo
-$(TEXI2POD) -D gappletviewer < $< > $@
@@ -84,6 +85,12 @@ gserialver.pod: $(srcdir)/cp-tools.texinfo
gtnameserv.pod: $(srcdir)/cp-tools.texinfo
-$(TEXI2POD) -D gtnameserv < $< > $@
+gjdoc.pod: $(srcdir)/cp-tools.texinfo
+ -$(TEXI2POD) -D gjdoc < $< > $@
+
+# GCJ LOCAL CHANGE
+#CLEANFILES = $(TOOLS_MANFILES)
+
# GCJ LOCAL CHANGE
# The following commands allow us to release tarballs with the man pages
# and info documentation prebuilt. This feature is enabled via
@@ -102,6 +109,7 @@ stamp-geninsrc: $(TOOLS_MANFILES) cp-tools.info
-cp -p gjar.1 $(srcdir)/gjar.1
-cp -p gjarsigner.1 $(srcdir)/gjarsigner.1
-cp -p gjavah.1 $(srcdir)/gjavah.1
+ -cp -p gjdoc.1 $(srcdir)/gjdoc.1
-cp -p gkeytool.1 $(srcdir)/gkeytool.1
-cp -p gnative2ascii.1 $(srcdir)/gnative2ascii.1
-cp -p gorbd.1 $(srcdir)/gorbd.1
@@ -118,6 +126,7 @@ MAINTAINERCLEANFILES = \
$(srcdir)/gjar.1 \
$(srcdir)/gjarsigner.1 \
$(srcdir)/gjavah.1 \
+ $(srcdir)/gjdoc.1 \
$(srcdir)/gkeytool.1 \
$(srcdir)/gnative2ascii.1 \
$(srcdir)/gorbd.1 \
diff --git a/libjava/classpath/doc/Makefile.in b/libjava/classpath/doc/Makefile.in
index 157cf76..e2bfd66 100644
--- a/libjava/classpath/doc/Makefile.in
+++ b/libjava/classpath/doc/Makefile.in
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -97,6 +100,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -128,6 +133,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -166,11 +177,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -180,6 +192,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -201,7 +215,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -267,8 +284,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -279,6 +298,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -338,6 +358,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
SUBDIRS = api
EXTRA_DIST = README.jaxp texi2pod.pl $(man_MANS)
@@ -356,7 +377,8 @@ TOOLS_MANFILES = \
grmid.1 \
grmiregistry.1 \
gserialver.1 \
- gtnameserv.1
+ gtnameserv.1 \
+ gjdoc.1
POD2MAN = pod2man --center="GNU" --release="$(VERSION)"
TEXI2POD = perl $(srcdir)/texi2pod.pl
@@ -364,6 +386,9 @@ STAMP = echo timestamp >
@GENINSRC_FALSE@STAMP_GENINSRC =
# GCJ LOCAL CHANGE
+#CLEANFILES = $(TOOLS_MANFILES)
+
+# GCJ LOCAL CHANGE
# The following commands allow us to release tarballs with the man pages
# and info documentation prebuilt. This feature is enabled via
# --enable-generated-files-in-srcdir in the configure script.
@@ -374,6 +399,7 @@ MAINTAINERCLEANFILES = \
$(srcdir)/gjar.1 \
$(srcdir)/gjarsigner.1 \
$(srcdir)/gjavah.1 \
+ $(srcdir)/gjdoc.1 \
$(srcdir)/gkeytool.1 \
$(srcdir)/gnative2ascii.1 \
$(srcdir)/gorbd.1 \
@@ -892,7 +918,7 @@ docs: cp-hacking.ps cp-vmintegration.ps cp-tools.ps $(TOOLS_MANFILES)
.INTERMEDIATE: gappletviewer.pod gjarsigner.pod gjar.pod gjavah.pod \
gkeytool.pod gnative2ascii.pod gorbd.pod grmid.pod grmiregistry.pod \
- gserialver.pod gtnameserv.pod gcjh.pod
+ gserialver.pod gtnameserv.pod gcjh.pod gjdoc.pod
gappletviewer.pod: $(srcdir)/cp-tools.texinfo
-$(TEXI2POD) -D gappletviewer < $< > $@
@@ -934,6 +960,9 @@ gserialver.pod: $(srcdir)/cp-tools.texinfo
gtnameserv.pod: $(srcdir)/cp-tools.texinfo
-$(TEXI2POD) -D gtnameserv < $< > $@
+gjdoc.pod: $(srcdir)/cp-tools.texinfo
+ -$(TEXI2POD) -D gjdoc < $< > $@
+
all-local: $(STAMP_GENINSRC)
stamp-geninsrc: $(TOOLS_MANFILES) cp-tools.info
@@ -941,6 +970,7 @@ stamp-geninsrc: $(TOOLS_MANFILES) cp-tools.info
-cp -p gjar.1 $(srcdir)/gjar.1
-cp -p gjarsigner.1 $(srcdir)/gjarsigner.1
-cp -p gjavah.1 $(srcdir)/gjavah.1
+ -cp -p gjdoc.1 $(srcdir)/gjdoc.1
-cp -p gkeytool.1 $(srcdir)/gkeytool.1
-cp -p gnative2ascii.1 $(srcdir)/gnative2ascii.1
-cp -p gorbd.1 $(srcdir)/gorbd.1
diff --git a/libjava/classpath/doc/api/Makefile.in b/libjava/classpath/doc/api/Makefile.in
index bbca5c3..2256739 100644
--- a/libjava/classpath/doc/api/Makefile.in
+++ b/libjava/classpath/doc/api/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -74,6 +77,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -105,6 +110,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -143,11 +154,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -157,6 +169,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -178,7 +192,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -244,8 +261,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -256,6 +275,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -315,6 +335,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
@CREATE_API_DOCS_TRUE@noinst_DATA = html
sourcepath = $(top_builddir):$(top_srcdir):$(top_srcdir)/vm/reference:$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/jsr166
diff --git a/libjava/classpath/doc/cp-tools.texinfo b/libjava/classpath/doc/cp-tools.texinfo
index 9e370c0..f7a2d24 100644
--- a/libjava/classpath/doc/cp-tools.texinfo
+++ b/libjava/classpath/doc/cp-tools.texinfo
@@ -134,6 +134,59 @@ Other Tools
* rmid Tool:: RMI activation daemon
* rmiregistry Tool:: Remote object registry
* tnameserv Tool:: Naming service
+* gjdoc Tool:: Documenation generator tool.
+
+Generating HTML Documentation
+
+* Invoking the Standard Doclet:: How to generate HTML documentation.
+* Invoking a Custom Doclet:: How to run third-party and other
+ built-in Doclets.
+
+* Option Summary by Type:: Brief list of all options, grouped by type.
+* Gjdoc Option Summary:: List of all options accepted by Gjdoc.
+
+* Source Set Options:: Select the set of source codes to run Gjdoc on.
+* Source Format Options:: Specify the format of the source codes to document.
+
+* Interlinking Options:: Connection your documentation with other projects.
+* Output Control Options:: Specify the target directory and locale, and more.
+* Generation Options:: Select which pieces of information to generate.
+* Decoration Options:: Add or modify some titles, headers and footers or
+ override/amend static resources like stylesheets.
+* Taglet Options:: Define your own javadoc @@tags.
+
+* Virtual Machine Options:: Controlling the kind of output:
+ an executable, object files, assembler files,
+ or preprocessed source.
+* Verbosity Options::
+* Doclet Options::
+
+* Other Doclets:: Generating Other Output Types.
+
+* Built-in Doclets:: Using the Built-in Doclets.
+* Using XmlDoclet::
+* Using TexiDoclet::
+* Using IspellDoclet::
+* Using DebugDoclet::
+
+* Third-party Doclets:: Using Third-Party Doclets.
+* DocBook Doclet::
+* PDFDoclet::
+* JUnitDoclet::
+
+* Gjdoc Concepts:: Advanced Concepts.
+* Writing Doclets::
+
+* Doclet Invocation Interface:: Implementing the Doclet Invocation Interface
+* Using AbstractDoclet:: Deriving Your Doclet from AbstractDoclet.
+* GNU Doclet SPI:: Preparing the GNU Doclet Service Provider
+ Interface.
+
+* Taglets:: Adding Custom Tags to the Documentation.
+* XHTML Fragments:: Well-Formed Documentation Fragments.
+* First Sentence Detector:: How Gjdoc Determines where the First
+ Sentence Ends.
+* Adding Custom Resources:: Adding Images and Other Resources.
I18N Issues
@@ -1229,6 +1282,7 @@ and @b{tnameserv}.
* rmid Tool:: RMI activation daemon
* rmiregistry Tool:: Remote object registry
* tnameserv Tool:: Naming service
+* gjdoc Tool:: A documentation generator
@end menu
@comment ----------------------------------------------------------------------
@@ -1743,7 +1797,7 @@ java(1), @dots{}
@comment ----------------------------------------------------------------------
-@node tnameserv Tool, , rmiregistry Tool, Other Tools
+@node tnameserv Tool, gjdoc Tool, rmiregistry Tool, Other Tools
@comment node-name, next, previous, up
@section The @command{tnameserv} Tool
@c man title gtnameserv Naming service
@@ -1788,6 +1842,1364 @@ java(1), @dots{}
@comment ----------------------------------------------------------------------
+@ignore
+@c man begin SYNOPSIS gjdoc
+gjdoc [@option{-sourcepath }@var{pathlist}]
+ [@option{-all}] [@option{-subpackages }@var{pkg:pkg:@dots{}}] [@option{-exclude }@var{pkglist}]
+ [@option{-encoding }@var{charset}] [@option{-locale }@var{name}] [@option{-source }@var{release}]
+ [@option{-public}] [@option{-protected}] [@option{-package}] [@option{-private}]
+ [@option{-doctitle }@var{text}] [@option{-header }@var{text}] [@option{-footer }@var{text}] [@option{-bottom }@var{text}]
+ [@option{-link }@var{url}] [@option{-linkoffline }@var{url} @var{path}] [@option{-noqualifier }@var{pkg:pkg:@dots{}}]
+ [@option{-tagletpath }@var{pathlist}] [@option{-taglet }@var{className}] [@option{-tag }@var{tagspec}]
+ [@option{-use}] [@option{-linksource}] [@option{-splitindex}] [@option{-noindex}] [@option{-notree}]
+ [@option{-version}] [@option{-author}] [@option{-nosince}] [@option{-addstylesheet }@var{file}]
+ [@option{-d }@var{targetdir}]
+ [@var{packages}@dots{}] [@var{sourcefiles}@dots{}] [@@@var{cmdfile}]
+
+gjdoc [@option{-sourcepath }@var{pathlist}]
+ [@option{-all}] [@option{-subpackages }@var{pkg:pkg:@dots{}}] [@option{-exclude }@var{pkglist}]
+ [@option{-encoding }@var{charset}] [@option{-locale }@var{name}] [@option{-source }@var{release}]
+ [@option{-public}] [@option{-protected}] [@option{-package}] [@option{-private}]
+ [@option{-docletpath }@var{pathlist}] [@option{-doclet }@var{className}]
+ [@var{packages}@dots{}] [@var{sourcefiles}@dots{}] [@@@var{cmdfile}]
+ [doclet options]
+
+gjdoc @option{--help}
+
+gjdoc @option{--version}
+
+Only the most useful options are listed here; see below for the
+remainder.
+@c man end
+@end ignore
+@c man begin SEEALSO gjdoc
+Info entry for @file{gjdoc}.
+@c man end
+@c man begin BUGS gjdoc
+Please report bugs to @w{@uref{http://savannah.gnu.org/bugs/?group=classpath}}.
+@c man end
+@c man begin AUTHOR gjdoc
+Julian Scheid
+@c man end
+
+@node gjdoc Tool, , tnameserv Tool, Other Tools
+@chapter Generating HTML Documentation
+@cindex Gjdoc command options
+@cindex command options
+@cindex options, Gjdoc command
+
+@c man begin DESCRIPTION gjdoc
+Gjdoc can be used in two ways: as a stand-alone documentation tool, or
+as a driver for a user-specified Doclet. @xref{Other Doclets}.
+
+In the default mode, Gjdoc will use the Standard Doclet
+@samp{HtmlDoclet} to generate a set of HTML pages. The canonical
+usage is:
+
+@smallexample
+gjdoc -s src/java/ -all -d api-docs/
+@end smallexample
+
+Here, @samp{src/java/} is the root of your source code class
+hierarchy, @option{-all} means that all valid Java files found under
+this root directory should be processed, and @samp{api-docs/} is the
+directory where the generated documentation should be placed.
+
+To learn more about running Doclets other than the Standard Doclet,
+refer to the manual. @xref{Invoking a Custom Doclet}.
+
+@menu
+* Invoking the Standard Doclet:: How to generate HTML documentation.
+* Invoking a Custom Doclet:: How to run third-party and other
+ built-in Doclets.
+
+* Option Summary by Type:: Brief list of all options, grouped by type.
+* Gjdoc Option Summary:: List of all options accepted by Gjdoc.
+
+* Source Set Options:: Select the set of source codes to run Gjdoc on.
+* Source Format Options:: Specify the format of the source codes to document.
+
+* Interlinking Options:: Connection your documentation with other projects.
+* Output Control Options:: Specify the target directory and locale, and more.
+* Generation Options:: Select which pieces of information to generate.
+* Decoration Options:: Add or modify some titles, headers and footers or
+ override/amend static resources like stylesheets.
+* Taglet Options:: Define your own javadoc @@tags
+
+* Virtual Machine Options::
+* Verbosity Options::
+* Doclet Options::
+
+* Other Doclets:: Generating Other Output Types
+* Gjdoc Concepts:: Advanced Concepts
+
+@end menu
+
+@c man end
+
+@comment ----------------------------------------------------------------------
+
+@node Invoking the Standard Doclet, Invoking a Custom Doclet, , gjdoc Tool
+@section Invoking the Standard Doclet
+@cindex Gjdoc command options
+@cindex command options
+@cindex options, Gjdoc command
+
+Running the Gjdoc Standard Doclet @samp{HtmlDoclet} is the default
+mode of operation for Gjdoc. This section lists the command line
+options you can specify in this mode. It doesn't distinguish between
+general Gjdoc options and options specific to the Standard Doclet.
+
+If you want to learn which options are accepted when Gjdoc is used as
+a doclet driver, @xref{Invoking a Custom Doclet}.
+
+@menu
+* Source Set Options:: Select the set of source codes to run Gjdoc on.
+* Source Format Options:: Specify the format of the source codes to document.
+
+* Output Control Options:: Specify the target directory and locale, and more.
+* Generation Options:: Select which pieces of information to generate.
+* Decoration Options:: Add or modify some titles, headers and footers or
+ override/amend static resources like stylesheets.
+* Taglet Options:: Define your own javadoc @@tags
+
+* Virtual Machine Options::
+* Doclet Options::
+
+@end menu
+
+@c man begin OPTIONS gjdoc
+
+@node Option Summary by Type, Gjdoc Option Summary, Invoking a Custom Doclet, gjdoc Tool
+@section Option Summary by Type
+
+Here is a summary of all the options of both Gjdoc and the Standard
+Doclet, grouped by type. Explanations are in the following sections.
+
+@table @emph
+@item Source Set Options
+@xref{Source Set Options,,Options For Specifying the Source Files To Operate on}.
+@gccoptlist{-sourcepath @var{pathlist} -subpackages @var{pkglist} -exclude @var{pkglist}}
+
+@item Source Format Options
+@xref{Source Format Options,,Options For Specifying the Source Format}.
+@gccoptlist{-source @var{release} -encoding @var{encoding} -breakiterator}
+
+@item Interlinking Options
+@xref{Interlinking Options,,Options For Specifying the Source Files To Operate on}.
+@gccoptlist{-link @var{url} -linkoffline @var{url} @var{file} -noqualifier @var{pkg:pkg:...}}
+
+@item Generation Options
+@xref{Generation Options,,Options Controlling What is Included in the Output}.
+@gccoptlist{-author -licensetext -use -version -splitindex -noindex
+ -nodeprecated -nodeprecatedlist -nohelp -nonavbar
+ -nosince -notree -public -protected -package -private
+ -docfilessubdirs -excludedocfilessubdir @var{dirname}
+ -linksource}
+
+@item Output Options
+@xref{Generation Options,,Options Controlling the Output}.
+@gccoptlist{-d -locale @var{name} -charset @var{charset} -docencoding @var{charset}
+ -validhtml -baseurl @var{url}}
+
+@item Decoration Options
+@gccoptlist{-windowtitle @var{text} -doctitle @var{text} -title @var{text}
+ -header @var{text} -footer @var{text} -bottom @var{text}
+ -helpfile @var{file} -stylesheetfile @var{file} -addstylesheet @var{file}
+ -group @var{groupheading} @var{pkgpattern:pkgpattern:@dots{}}}
+
+@item Taglet Options
+@xref{Taglet Options,,Options For Specifying user-defined Taglets}.
+@gccoptlist{-tagletpath -taglet @var{classname} -tag @var{tagspec}}
+
+@item Doclet Options
+@xref{Doclet Options,,Options For Specifying the Doclet to use}.
+@gccoptlist{-docletpath -doclet @var{classname}}
+
+@item Verbosity Options
+@xref{Verbosity Options,,Options Controlling Gjdoc Behavior}.
+@gccoptlist{-quiet -verbose}
+
+@item Virtual Machine Options
+@xref{Virtual Machine Options,,Options Controlling Gjdoc Behavior}.
+@gccoptlist{-classpath} @gccoptlist{-bootclasspath} @gccoptlist{-J}@var{vmopt}
+
+@end table
+
+@menu
+* Virtual Machine Options:: Controlling the kind of output:
+ an executable, object files, assembler files,
+ or preprocessed source.
+@end menu
+
+@node Source Set Options, Source Format Options, Gjdoc Option Summary, gjdoc Tool
+@section Selecting which Source Files to Process
+
+@table @gcctabopt
+@item -s @var{pathlist}
+@item -sourcepath @var{pathlist}
+Look for source files in the specified directory or directories.
+
+@var{pathlist} should be one or more directory paths separated by your
+platform's path separator (usually @samp{:} or @samp{;}).
+
+If this option is not given, @command{gjdoc} will look for source
+files in the current directory.
+
+The directories specified should be root directories in terms of the
+Java package system. For example, if you want to generate
+documentation for classes in package @samp{foo.bar}, you must specify
+the directory containing the top-level @samp{@file{foo}}
+sub-directory, not the directory @samp{@file{foo/bar/}} in which the
+Java source files reside.
+
+The short-hand alias @option{-s} is specific to @command{gjdoc} and
+not compatible to Sun @command{javadoc}.
+
+@item -all
+@emph{[EXPERIMENTAL]}
+Process all valid Java source files found in the directories listed in
+the source path and their sub-directories.
+
+This is an option specific to @command{gjdoc} and not compatible to
+Sun @command{javadoc}.
+
+@item -subpackages @var{pkg:pkg:@dots{}}
+Process the classes in the given Java packages and all sub-packages,
+recursively. Note that multiple package names must be separated with
+colons instead of whitespace.
+
+@item -exclude @var{pkg:pkg:@dots{}}
+Do not process classes in the given Java packages and all
+sub-packages, recursively. This option can be used in conjunction
+with @option{-all} or @option{-subpackages} in order to exclude
+individual packages or package sub-trees from the output.
+
+@item @var{packages}@dots{}
+Process all classes in the given Java packages.
+
+@item @var{sourcefiles}@dots{}
+Process the classes in the given Java source files.
+@end table
+
+@node Source Format Options, Interlinking Options, Source Set Options, gjdoc Tool
+@section Specifying the Format of Input Files
+
+@table @gcctabopt
+@item -source @var{release}
+Assume that the source files are targeted at the given release of the
+Java platform.
+
+@var{release} should be the version number of a Java platform release
+in the format MAJOR.MINOR, for example @samp{1.4}.
+
+This option is currently ignored except that an error is raised if a
+release number other than @samp{1.2}, @samp{1.3} or @samp{1.4} is
+specified.
+
+@item -encoding @var{charset}
+Assume that the source files are encoded using @var{charset}.
+
+Examples for @var{charset} are @samp{US-ASCII}, @samp{ISO-8859-1} or
+@samp{UTF-8}.
+
+The semantics of @var{charset} are identical to those of @samp{java.nio.charset.Charset.forName(String)}.
+
+@item -breakiterator
+Use the locale's java.text.BreakIterator instead of the internal
+first sentence detector.
+
+By default, @command{gjdoc} uses an internal algorithm to determine
+where a sentence ends. When this option is given, it will instead use
+the @samp{java.text.BreakIterator} instance for the locale given with
+@option{-locale} (or the default locale).
+
+This option should be specified when applying @command{gjdoc} to
+source code commented in a non-latin language for which the default
+first sentence detector does not work. For all other cases, the
+default (do not use BreakIterator) produces better results at the time
+of this writing.
+@end table
+
+@node Interlinking Options, Output Control Options, Source Format Options, gjdoc Tool
+@section Interlinking with other Documentation Sets
+
+@table @gcctabopt
+@item -link @var{url}
+
+Create hyperlinks to another documentation set.
+
+By default, @command{gjdoc} will only create hyperlinks to classes in
+the source set. Use this option to additionally create hyperlinks to
+classes covered by the specified documentation set.
+
+@var{url} should be the root URL of the other documentation set. For
+example, to add hyperlinks to GNU Classpath, specify the following:
+
+@smallexample
+-link http://developer.classpath.org/doc/
+@end smallexample
+
+The @option{-link} option can be specified multiple times.
+
+Note that specifying the @option{-link} option will cause an HTTP
+access every time gjdoc is invoked. You can use @option{-linkoffline}
+instead to avoid this access.
+
+@item -linkoffline @var{url} @var{file}
+
+Create hyperlinks to another documentation set which is also present
+on the local file system.
+
+This option works exactly like @option{-link}, except that it accesses
+the local file system instead of the network for determining which
+classes are covered by the linked documentation set.
+
+When using @option{-linkoffline} the remote documentation set is not
+accessed at all, which can significantly speed up generation time
+depending on your network connection. The generated hyperlinks to the
+documentation set however refer to the remote set, not to the local
+one, so that you can distribute the documentation without any further
+dependencies.
+
+The @option{-linkoffline} option can be specified multiple times.
+
+@item -noqualifier @var{pkg:pkg:@dots{}}
+
+Do not qualify names of classes in the given packages with their
+package name.
+
+By default, a class name is displayed unqualified only if the class is
+part of the source set or a linked documentation set, and qualified
+with the name of its containing package if it is not. You can use this
+option to force unqualified names for classes even if they are not
+part of the documentation set.
+
+For example, usually a reference to the String class is represented
+fully-qualified as @samp{java.lang.String} (unless you link to the
+appropriate documentation set using @option{-link}) because it isn't
+part of the documentation set. You can specify @samp{-noqualifier
+java.lang} to render the same references just as @samp{String}.
+
+Note that for all unqualified class names, a tooltip is provided when
+you place your mouse pointer over it in the HTML documentation.
+
+@item -noqualifier @samp{all}
+Omit package name qualifier from all class names.
+
+Specify this option to omit package name qualifiers altogether,
+
+@end table
+
+@node Generation Options, Decoration Options, Output Control Options, gjdoc Tool
+@section Selecting which Information to Generate
+
+@table @gcctabopt
+@item -public
+Only include public members of public classes in the output. By
+default, protected class members are included as well.
+
+@item -protected
+
+Include public or protected members of public classes in the output.
+This is the default.
+
+@item -package
+
+Include public, protected and package-private members of public and
+package-private classes.
+
+@item -private
+
+Include all classes and class members regardless of their access
+level.
+
+@item -splitindex
+Generate one index page per letter instead of a single, monolithic
+index page.
+
+By default, the index created by the Standard Doclet contains all
+entries on a single page. This is fine for small documentation sets,
+but for large sets you should specify this option.
+
+@item -nosince
+Ignore @samp{@@since} tags in javadoc comments.
+
+By default, the generated output contains sections listing the version
+of your API since which the package, class or class member in question
+exists when this tag is encountered. Specify this option to omit this
+information.
+
+@item -notree
+Do not generate any tree pages.
+
+By default, the generated output includes one inheritance tree per
+package, and - if the documentation set consists of multiple packages
+- a page with the full inheritance tree. Specify this option to omit
+generation of these pages.
+
+@item -noindex
+Do not output the alphabetical index.
+
+By default, gjdoc generates an alphabetical index of all program
+elements in the documentation set (packages, classes, inner classes,
+constructors, methods, and fields). Specify this option to omit this
+information.
+
+@item -nohelp
+Do not generate the help page.
+
+This option is currently ignored as the Standard Doclet doesn't
+provide a help page.
+
+@item -nodeprecated
+Do not output inline information about deprecated packages, classes or
+class members.
+
+By default, the Standard Doclet adds a highlighted paragraph with
+deprecation information to the description of each deprecated program
+element. Specify this option to omit this information.
+
+@item -nodeprecatedlist
+Do not output the summary page for deprecated API elements.
+
+By default, the Standard Doclet generates a page listing all
+deprecated API elements along with a deprecation description which
+usually includes the reason for deprecation and possible
+alternatives. Specify this option to omit this information.
+
+@item -nonavbar
+Do not output the navigation bar, header, and footer.
+
+By default, each output page is equipped with a top navigation bar
+(which may include a user-specified header) and a bottom navigation
+bar (which may include a user-specified footer). Specify this option
+to omit this decoration.
+
+@item -nocomment
+
+Omit all documentation text from the generated files and output only
+declarations and program element relationships.
+
+This option is here for compatibility with @command{javadoc}. If you
+plan on extracting information about your project via @command{gjdoc},
+you should consider using a different Doclet for your purposes
+instead, for example XmlDoclet. You could also use the Doclet API
+directly by implementing a new Doclet.
+
+@item -linksource
+
+Generate a page with syntax-highlighted source code for each class.
+By default, this page is not generated.
+
+The source code can be accessed by clicking on the button labelled
+"Source" in the navigation bar, or by clicking on the name of a
+constructor, field, method, or inner class in the detail section of a
+class documentation page.
+
+@item -use
+
+Generate a page with cross-reference information. By default, this
+page is not generated.
+
+The cross-reference information can be accessed by clicking on the
+button labelled `Use' in the navigation bar.
+
+The `Use' page lists all classes/interfaces in the documentation set
+that extend/implement the class (type) in question; fields of the
+type; methods or constructors accepting a parameter of the type;
+methods returning the type; and methods or constructors throwing the
+type.
+
+@item -author
+Include author information in the output.
+
+When specified, author information as specified using the
+@samp{@@author} tag in javadoc comments is incorporated into the
+output. By default, @samp{@@author} tags are ignored.
+
+@item -version
+Include version information in the output.
+
+When specified, version information as specified using the
+@samp{@@version} tag in javadoc comments is incorporated into the
+output. By default, @samp{@@version} tags are ignored.
+
+@item -licensetext
+
+Assume that the first comment in each source file contains the license
+text, and add license information to the footer of each generated
+class page.
+
+This is an option specific to @command{gjdoc} and not compatible to
+Sun @command{javadoc}.
+
+This option is intended for use with free and open source projects
+where source code is typically prefixed with a boilerplate license
+comment, when there are legal reasons for including the license in the
+documentation.
+
+@item -docfilessubdirs
+
+Recursively copy all files in the @file{doc-files} sub-directory of each
+package directory.
+
+Usually, only the files in the @file{doc-files} sub-directory are copied
+without descending recursively.
+
+@xref{Adding Custom Resources}.
+
+@item -excludedocfilessubdir @var{name}:@var{name}:@dots{}
+
+Do not copy some directories directly under the @file{doc-files}
+sub-directories when descending recursively.
+
+The argument to this option should be a colon-separated list of
+directory names.
+
+This option only makes sense if @option{-docfilessubdirs} is also
+specified. In this case, any sub-directory located directly beneath a
+@file{doc-files} directory is omitted if listed.
+
+@end table
+
+@node Taglet Options, Virtual Machine Options, Decoration Options, gjdoc Tool
+@section Custom Documentation Tags
+
+@table @gcctabopt
+@item -tagletpath @var{pathlist}
+Search @var{pathlist} when loading subsequent Taglet classes specified
+using @option{-taglet}.
+
+@var{pathlist} should be one or more paths to a directory or jar file,
+separated by your platform's path separator (usually @samp{:} or
+@samp{;}).
+
+@item -taglet @var{classname}
+Register a Taglet.
+
+@var{classname} should be the fully-qualified name of a Java class
+implementing @samp{com.sun.tools.doclets.Taglet}.
+
+The Taglet classes will be loaded from the classpath specified using
+@option{-tagletpath}, from the classpath specified using
+@option{-classpath} and from the default classpath.
+
+See the documentation of @samp{com.sun.tools.doclets.Taglet} for
+further information.
+
+Note that for simple tags, there is also @option{-tag}.
+
+@item -tag @var{tagspec}
+Register a generic Taglet.
+
+The format of @var{tagspec} must be @samp{<tagname>:<flags>:"<taghead>"}.
+
+@var{tagname} is the tag name to match, without the leading @@ sign.
+
+@var{flags} is one or more of the following characters, where each
+character specifies a source code context in which the tag is to be
+recognized.
+
+@table @gcctabopt
+@item a
+all contexts
+@item c
+constructors
+@item f
+fields
+@item m
+methods
+@item o
+overview
+@item p
+packages
+@item t
+types (classes, interfaces, exceptions, errors)
+@item X
+special character which temporarily disables the
+Taglet altogether.
+@end table
+
+@var{taghead} is the string to display in the header of the section
+devoted to the tag in question.
+
+For example, to define a tag matching @samp{@@cvsid} which is to be
+accepted in overview, package and type pages and which is labelled
+with the header @samp{CVS ID}, you would specify:
+
+@smallexample
+-tag cvsid:tpo:"CVS ID"
+@end smallexample
+
+Let's say that a class javadoc comment contains
+
+@smallexample
+@@cvsid $Id: cp-tools.texinfo,v 1.7 2008/08/13 13:32:05 jsumali Exp $
+@end smallexample
+
+Then the HTML output will contain something like
+
+@smallexample
+CVS ID:
+ $Id: cp-tools.texinfo,v 1.7 2008/08/13 13:32:05 jsumali Exp $
+@end smallexample
+@end table
+
+@node Doclet Options, Other Doclets, Verbosity Options, gjdoc Tool
+@section Running Other Doclets
+
+@table @gcctabopt
+
+@item -docletpath @var{pathlist}
+Search @var{pathlist} when loading classes for the Doclet specified
+using @option{-doclet}.
+
+@var{pathlist} should be one or more paths to a directory or jar file,
+separated by your platform's path separator (usually @samp{:} or
+@samp{;}).
+
+@item -doclet @var{className}
+Run the specified doclet instead of the standard HtmlDoclet.
+
+@var{className} should be the fully-qualified name of a class which
+has a public default constructor and contain a method with the
+following signature:
+
+@smallexample
+ import com.sun.javadoc.RootDoc;
+ public static boolean start(RootDoc rootDoc)
+@end smallexample
+
+The Doclet classes will be loaded from the classpath specified using
+@option{-docletpath}, from the classpath specified using
+@option{-classpath} and from the default classpath.
+
+The @samp{start} method should process the information exposed by the
+Doclet API via @samp{rootDoc} and return @samp{true} on success,
+@samp{false} on failure.
+
+If you are using a third-party doclet, refer to its documentation for
+further instructions. Note that support for third-party doclets is
+experimental. Please report any problems you encounter, or provide
+feedback when successfully running third-party applets.
+
+This option can be specified multiple times, in which case all doclets
+are executed with the same information tree exposed via the Doclet API
+for each Doclet run.
+
+@end table
+
+@node Decoration Options, Taglet Options, Generation Options, gjdoc Tool
+@section Adding Information to the Output
+
+@table @gcctabopt
+@item -windowtitle @var{text}
+Use @var{text} as the browser window title prefix.
+
+When specified, the browser window title for each page will be
+prefixed with @var{text} instead of the default string @samp{Generated
+API Documentation}.
+
+@var{text} should be plain text (it should not contain HTML tags).
+
+@item -doctitle @var{text}
+Set the header text of the overview page to @var{text}.
+
+@var{text} should be a short plain text string.
+
+When generating documentation for a single package, specifying this
+option forces generation of the overview page.
+
+@item -header @var{htmltext}
+
+Add @var{htmltext} to the right upper corner of every generated page.
+@var{htmltext} is usually set to the name of the project being
+documented.
+
+@item -footer @var{htmltext}
+
+Add @var{htmltext} to the right bottom corner of every generated page.
+@var{htmltext} is often set to the same value as for @option{-header}.
+
+@item -bottom @var{htmltext}
+
+Add @var{htmltext} to the very bottom of every generated page,
+spanning the whole width of the page. When specified, @var{htmltext}
+usually consists of a copyright notice and/or links to other project
+pages.
+
+@item -addstylesheet @var{file}
+
+Augment the default CSS style sheets with the user-specified
+stylesheet @var{file}.
+
+The given stylesheet is simply loaded by each HTML page in addition to
+the default ones, as the last stylesheet.
+
+Note that the CSS cascading rules apply. That is, your style
+properties will only be assigned if they have a higher cascading order
+than @command{gjdoc}'s default style. One simple way to make sure
+that this is the case is to declare your overrides @samp{!important}.
+
+See @w{@uref{http://www.w3.org/TR/REC-CSS2/cascade.html#cascading-order}}.
+
+@item -group @var{heading} @var{pkgwildcard}:@var{pkgwildcard}:@dots{}
+
+Arrange the given packages in a separate group on the overview page.
+
+The first argument should be a short plain text which is used as the
+title of the package group. The second argument should be a
+colon-separated list of package wildcards. The group will consist of
+all packages in the documentation set whose name matches any of the
+given wildcards.
+
+There is only one wildcard character, @samp{*}, which matches both
+letters in package name components and the @samp{.} separating package
+name components. For example, @samp{j*regex} would match package
+@samp{java.util.regex}. A more useful example would be
+@samp{javax.swing*} to match @samp{javax.swing} and all of its
+sub-packages.
+
+This option can be given multiple times.
+
+FIXME: Information about group nesting here.
+
+@smallexample
+gjdoc -group "Core Classes" 'java*' \
+ -group "Swing" 'javax.swing*' \
+ -group "XML APIs" 'javax.xml*' \
+ -group "Other Extensions" javax* \
+ @dots{}
+@end smallexample
+
+@item -overview @var{file}
+
+Add the XHTML body fragment from @var{file} to the overview page.
+
+@var{file} should contain an XHTML fragment with the HTML @samp{body}
+tag as the root node. @xref{XHTML Fragments}.
+
+This option can be used to supply a description of the documentation
+set as a whole.
+
+When specified, the first sentence of the fragment will be put above
+the tables listing the documented packages, along with a link to the
+full copy of the fragment which is put below the tables.
+@xref{First Sentence Detector}.
+
+When generating documentation for a single package, specifying this
+option forces generation of the overview page.
+
+@item -stylesheetfile @var{file}
+
+Use the CSS stylesheet in @var{file} instead of the default CSS
+stylesheets.
+
+If you only want to override parts of the default stylesheets, use
+@option{-addstylesheet} instead.
+
+@item -title @var{text}
+
+@emph{Deprecated.} Use @option{-doctitle} @var{text} instead.
+
+@item -helpfile @var{file}
+
+This option is currently ignored.
+
+When implemented, it will use the XHTML fragment in @var{file} for the
+help page contents instead of the default help text.
+
+@end table
+
+@node Output Control Options, Generation Options, Interlinking Options, gjdoc Tool
+@section Controlling the Output.
+
+@table @gcctabopt
+@item -d @var{directory}
+Place all output files into @var{directory} (and
+sub-directories). @var{directory} will be created if it does not
+exist, including all non-existing parent directories and all required
+sub-directories.
+
+If not specified, output will be placed into the current directory.
+
+@item -locale @var{name}
+
+Use locale @var{name} instead of the default locale for all purposes.
+
+@var{name} should be a locale specifier in the form @samp{ll_CC[_VAR]}
+where @samp{ll} is a lowercase two-letter ISO-639 language code,
+@samp{CC} is an optional uppercase two-letter ISO-3166 country code,
+and @samp{VAR} is an optional variant code. For example, @samp{en}
+specifies English, @samp{en_US} specifies US English, and
+@samp{en_US_WIN} specifies a deviant variant of the US English locale.
+
+Note that the semantics of this option correspond exactly to those of
+the constructors of class @samp{java.util.Locale}.
+
+This option currently only determines which Collator is being used for
+sorting output elements. This means that the locale will only have an
+effect when you are using non-ASCII characters in identifiers.
+
+@item -charset @var{charset}
+
+@emph{Deprecated.} Override the specified encoding in output XHTML
+files with the one given by @samp{charset}.
+
+If this option is not given, the encoding specification in output
+XHTML is chosen to match the encoding used when writing the file (the
+encoding given with @option{-docencoding}, or your platform's default
+encoding).
+
+The semantics for @var{charset} are specified here:
+@w{@uref{http://www.w3.org/TR/2000/REC-xml-20001006#NT-EncName}}. For
+all practical purposes, they are identical to those of the other
+options accepting charset parameters.
+
+This option is here for compatibility with @command{javadoc} and
+should be avoided.
+
+@item -docencoding @var{charset}
+
+Use the given charset encoding when writing output files instead of
+your platform's default encoding.
+
+Examples for @var{charset} are @samp{US-ASCII}, @samp{ISO-8859-1} or
+@samp{UTF-8}.
+
+The semantics of this option correspond exactly to those of the
+constructors of class @samp{java.util.Locale}.
+
+@item -validhtml
+
+Force generation of valid XHTML code. This breaks compatibility to
+the traditional Javadoc tool to some extent.
+
+If this option is specified, anchor names will be mangled so that they
+are valid according to the XHTML 1.1 specification. However, a
+documentation set generated with this option cannot be linked to
+properly using the traditional Javadoc tool. It can be linked to just
+fine using Gjdoc, though.
+
+Without this option, anchor names for executable class members use the
+traditional format, for example: ``foo(String,int[])''. This is
+compatible to the traditional Javadoc tool, but according to both the
+HTML 4.0 and XHTML 1.0 and 1.1 specifications, this format includes
+illegal characters. Parentheses, square brackets, and the comma are
+not allowed in anchor names.
+
+@item -baseurl @var{url}
+
+Hardwire a page URL relative to @var{url} into each generated page.
+
+If you are generating documentation which will exclusively be
+available at a certain URL, you should use this option to specify this
+URL.
+
+This can help avoid certain redirect attacks used by spammers, and it
+can be helpful for certain web clients.
+
+@end table
+
+@node Verbosity Options, Doclet Options, Virtual Machine Options, gjdoc Tool
+@section Verbosity Options
+
+@table @gcctabopt
+@item -quiet
+Suppress all output except for warnings and error messages.
+
+@item -verbose
+Be very verbose about what @command{gjdoc} is doing.
+
+This option is currently ignored.
+
+@end table
+
+@node Virtual Machine Options, Verbosity Options, Taglet Options, gjdoc Tool
+@section Virtual Machine Options
+
+Sun's @command{javadoc} tool seems to be based on @command{javac} and
+as such it seems to operate on the VM level. @command{gjdoc}, in
+contrast, is a pure Java application.
+
+Therefore, @command{gjdoc} can only fake, or simulate, the following
+VM-level options.
+
+@table @gcctabopt
+
+@item -classpath @var{pathlist}
+Set the Virtual Machine @samp{classpath} to @var{pathlist}.
+
+In most cases you should use @option{-docletpath} or
+@option{-tagletpath} instead of this option.
+
+@var{pathlist} should be one or more paths to a directory or jar file,
+separated by your platform's path separator (usually @samp{:} or
+@samp{;}).
+
+If this option is not intercepted at the wrapper level,
+@command{gjdoc} currently fakes it by calling
+@samp{System.setProperty("java.class.path", @var{pathlist});} and
+outputs a warning.
+
+@item -bootclasspath @var{pathlist}
+Set the Virtual Machine @samp{bootclasspath} to @var{pathlist}.
+
+If this option is not intercepted at the wrapper level,
+@command{gjdoc} outputs a warning.
+
+@item -J@var{vmopt}
+
+Pass an arbitrary parameter to the Virtual Machine @command{gjdoc}
+runs on.
+
+If this option is not intercepted at the wrapper level,
+@command{gjdoc} tries to emulate the option and outputs a warning.
+
+Currently, only the VM option @option{-D} for setting system
+properties is emulated.
+
+@end table
+
+@c man end
+
+@comment ----------------------------------------------------------------------
+
+@node Invoking a Custom Doclet, Option Summary by Type, Invoking the Standard Doclet, gjdoc Tool
+@section Invoking a Custom Doclet
+
+For invoking one of the other doclets shipping with @command{gjdoc} or
+a third-party doclet, the canonical usage is:
+
+@smallexample
+gjdoc -s src/java/ -all \
+ -docletpath /path/to/doclet.jar -doclet foo.BarDoclet \
+ (more Gjdoc core options and Doclet-specific options here)
+@end smallexample
+
+@samp{/path/to/doclet.jar} is a placeholder for a class path
+specifying where the Doclet classes and dependencies can be found and
+@samp{foo.BarDoclet} is the fully-qualified name of the Doclet's main
+class.
+
+@comment ----------------------------------------------------------------------
+
+@node Gjdoc Option Summary, Source Set Options, Option Summary by Type, gjdoc Tool
+@section Gjdoc Option Summary
+@cindex Gjdoc Options
+
+@comment ----------------------------------------------------------------------
+
+@node Other Doclets, Gjdoc Concepts, Doclet Options, gjdoc Tool
+@chapter Generating Other Output Types
+
+@menu
+* Built-in Doclets::
+* Third-party Doclets::
+@end menu
+
+@comment ----------------------------------------------------------------------
+
+@node Built-in Doclets, Third-party Doclets, , Other Doclets
+@section Using the Built-in Doclets
+@cindex Built-in Doclets
+
+@menu
+* Using XmlDoclet::
+* Using TexiDoclet::
+* Using IspellDoclet::
+* Using DebugDoclet::
+@end menu
+
+@comment ----------------------------------------------------------------------
+
+@node Using TexiDoclet, Using XmlDoclet, , Built-in Doclets
+@subsection TexiDoclet: Generating Info, PDF, and other formats
+@cindex TexiDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Using XmlDoclet, Using IspellDoclet, Using TexiDoclet, Built-in Doclets
+@subsection XmlDoclet: Generating XML Documentation
+@cindex HtmlDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Using IspellDoclet, Using DebugDoclet, Using XmlDoclet, Built-in Doclets
+@subsection IspellDoclet: Spell-checking Source Code
+@cindex IspellDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Using DebugDoclet, , Using IspellDoclet, Built-in Doclets
+@subsection DebugDoclet: Inspecting the Doclet API
+@cindex HtmlDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Third-party Doclets, , Built-in Doclets, Other Doclets
+@section Using Third-Party Doclets
+@cindex Third-party Doclets
+
+@menu
+* DocBook Doclet::
+* PDFDoclet::
+* JUnitDoclet::
+@end menu
+
+@comment ----------------------------------------------------------------------
+
+@node DocBook Doclet,PDFDoclet, ,Third-party Doclets
+@subsection DocBook Doclet
+@cindex DocBook Doclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node PDFDoclet, JUnitDoclet, DocBook Doclet, Third-party Doclets
+@subsection PDFDoclet
+@cindex PDFDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node JUnitDoclet, , PDFDoclet, Third-party Doclets
+@subsection JUnitDoclet
+@cindex JUnitDoclet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Gjdoc Concepts, , Other Doclets, gjdoc Tool
+@chapter Advanced Concepts
+
+@menu
+* Writing Doclets::
+* Taglets::
+* XHTML Fragments::
+* First Sentence Detector::
+* Adding Custom Resources::
+@end menu
+
+@comment ----------------------------------------------------------------------
+
+@node Taglets, Writing Doclets, , Gjdoc Concepts
+@section Adding Custom Tags to the Documentation
+@cindex Taglet
+
+Missing.
+
+@comment ----------------------------------------------------------------------
+
+@node Writing Doclets, XHTML Fragments, Taglets, Gjdoc Concepts
+@section Writing Doclets
+@cindex Taglet
+
+If the various Doclets already available don't suit your needs, you
+can write a custom Doclet yourself.
+
+@menu
+* Doclet Invocation Interface::
+* Using AbstractDoclet::
+* GNU Doclet SPI::
+@end menu
+
+@comment ----------------------------------------------------------------------
+
+@node Doclet Invocation Interface, Using AbstractDoclet, , Writing Doclets
+@subsection Implementing the Doclet Invocation Interface
+
+A Doclet is a class that contains a method with the following
+signature:
+
+@smallexample
+public static boolean start(RootDoc rootDoc);
+@end smallexample
+
+@var{rootDoc} is the root of an object hierarchy containing the
+information @command{gjdoc} extracted from the source files. See the
+Doclet API for more details.
+
+@samp{start} should process all the information and return
+@samp{true} on success, @samp{false} on failure.
+
+For printing status information, the Doclet should use methods
+@samp{printNotice}, @samp{printWarning} and @samp{printError} instead
+of @samp{System.err}. The Doclet can opt to use @samp{System.out} for
+redirectable output.
+
+@comment ----------------------------------------------------------------------
+
+@node Using AbstractDoclet, GNU Doclet SPI, Doclet Invocation Interface, Writing Doclets
+@subsection Deriving Your Doclet from AbstractDoclet
+@cindex AbstractDoclet
+
+You may want your Doclet to provide functionality similar to
+HtmlDoclet. For example, you may want it to support Taglets, generate
+Index, Tree, and Uses pages, or show other cross-reference information
+like @samp{Overrides} and @samp{All Implementing Classes}.
+
+This information is not directly provided by the Doclet API, so your
+Doclet would normally have to assemble it itself. For example, it
+would have to add the names of all program elements to a list and sort
+this list in order to create the Index page.
+
+If you want to provide this information or part of it, you should
+consider deriving your class from
+@samp{gnu.classpath.tools.doclets.AbstractDoclet}. This class
+provides the following benefits:
+
+@itemize @bullet
+
+@item
+Handles options @option{-tag}, @option{-taglet}, @option{-tagletpath}
+(Taglets)
+
+@item
+Provides standard taglets for @@version, @@author, @@since, @@serial,
+@@deprecated, @@see, @@param, @@return and handles all related options
+(@option{-version}, @option{-author}, @option{-nosince},
+@option{-nodeprecated})
+
+@item
+Handles option @option{-d} (destination directory)
+
+@item
+Handles option @option{-noqualifier} (classes to omit qualifier for)
+
+@item
+Handles options @option{-docfilessubdirs} and
+@option{-excludedocfilessubdir} (resource copying)
+
+@item
+Can generate a full index or an index split by first letter
+
+@item
+Can generate a full tree and package trees
+
+@item
+Can generate cross-reference information
+
+@item
+Can aggregate interface information (all superinterfaces, all
+subinterfaces, all implementing classes)
+
+@item
+Provides convenient access to constructors, fields, methods, and inner
+classes sorted by name/signature instead of the default sort order.
+
+@item
+Provides various other convenience methods
+
+@end itemize
+
+If you derive from @samp{AbstractDoclet}, there are a number of things
+you need to take care of:
+
+@itemize @bullet
+
+@item
+
+@end itemize
+
+you should not implement the
+@samp{start(RootDoc)} method as it is already defined by
+@samp{AbstractDoclet} so that it can care about parsing the options.
+
+Instead, you implement method @samp{run()}, @samp{getOptions()} and
+the other abstract methods to define your Doclet's behavior.
+
+Note that all information provided by @samp{AbstractDoclet} is
+evaluated lazily. That is, if your Doclet doesn't need to create an
+Index page, then @samp{AbstractDoclet} will not spend resources on
+creating the corresponding information.
+
+See the API documentation for
+@samp{gnu.classpath.tools.doclets.AbstractDoclet} for more details.
+
+You should be aware that if you base your Doclet on
+@samp{AbstractDoclet} then you have to bundle this and all related
+classes with your Doclet, with all implications such as possible
+licensing issues. Otherwise, your Doclet will only be runnable on
+@samp{gjdoc} and not on other documentation systems. Also note that
+@samp{AbstractDoclet} has not been extensively tested in environments
+other than @samp{gjdoc}.
+
+@comment ----------------------------------------------------------------------
+
+@node GNU Doclet SPI, , Using AbstractDoclet, Writing Doclets
+@subsection Preparing for the GNU Doclet Service Provider Interface
+@cindex GNU Doclet SPI, Service Provider, SPI
+
+In addition to the standard Doclet invocation interface described
+above, @command{gjdoc} also offers a Service Provider Interface
+conforming to the Java standard. Adding support for this interface to
+your Doclet simplifies usage for @command{gjdoc} users because it
+makes your Doclet ``discoverable''.
+
+In order to provide the alternate interface, you have to add a class
+implementing @samp{gnu.classpath.tools.gjdoc.spi.DocletSpi} to your
+Doclet classes, and bundle all Doclet classes in a Jar file along with
+a file named
+@samp{META_INF/services/gnu.classpath.tools.gjdoc.spi.DocletSpi} which
+contains the name of your class implementing DocletSpi on a single
+line.
+
+Note that if your Doclet depends on third-party classes bundled in
+separate Jar files, you can link in these classes using the
+@samp{Class-path:} Manifest attribute of your Doclet Jar.
+
+Your Doclet can then be invoked in one of the following ways:
+@smallexample
+gjdoc -docletjar /path/to/doclet.jar
+gjdoc -docletpath /path/to/doclet.jar -docletname @var{docletname}
+gjdoc -docletname @var{docletname}
+@end smallexample
+
+Here, @var{docletname} is the name of your doclet as returned by
+@samp{DocletSpi.getDocletName()}.
+
+The last example will only work if your Doclet Jar is in
+@command{gjdoc}'s @file{doclets} directory or if it is on the
+classpath.
+
+@comment ----------------------------------------------------------------------
+
+@node XHTML Fragments, First Sentence Detector, Writing Doclets, Gjdoc Concepts
+@section Well-formed Documentation Fragments
+@cindex XHTML Fragments
+
+For many Doclets it is advantagous if the HTML code in the comments
+and HTML code passed via the command line is well-formed. For
+example, HtmlDoclet outputs XHTML code, and XmlDoclet XML code, both
+of which results in invalid files if the user-specified HTML isn't
+wellformed.
+
+Unfortunately, comments were never required to contain well-formed
+HTML code, which means that every Doclet must deal with non-wellformed
+code as well.
+
+The @command{gjdoc} built-in Doclets deal with this problem by
+``fixing'' the HTML code - making sure that all tags are closed,
+attribute values are provided and quoted, tags are properly nested,
+etc.
+
+This approach works OK in most instances, but since it uses some crude
+heuristics it can sometimes produce undesirable result.
+
+Therefore, in order to make sure that your comments are always
+properly formatted, make sure they are well-formed as described in
+@w{@uref{http://www.w3.org/TR/xhtml1/#h-4.1, XHTML 1.0: Documents must
+be well-formed}}.
+
+In addition, you should use meaningful tags instead of text formatting
+tags to make your output look better in other output formats derived
+from your HTML code. For example, you should use the <em> tag instead
+of <b> if you want to emphasize text.
+
+@comment ----------------------------------------------------------------------
+
+@node First Sentence Detector, Adding Custom Resources, XHTML Fragments, Gjdoc Concepts
+@section How Gjdoc Determines where the First Sentence Ends
+@cindex First Sentence Detector
+
+For a package, class or member summary, @command{gjdoc} only shows the
+first sentence of the documentation comment in question. Because
+@command{gjdoc} is not human, it is not always obvious to
+@command{gjdoc} where the first sentence ends.
+
+You might be tempted to say that the first sentence ends at the first
+occurrence of a punctuation character like @samp{.} or
+@samp{!}. However, consider examples like this:
+@smallexample
+This work, by Thomas J. Shahan et al., is about the middle ages.
+@end smallexample
+
+As you can see, it is not trivial to determine the end of the
+sentence.
+
+@command{gjdoc} gives you the choice between two approaches. By
+default it uses built-in heuristics which should be compatible to
+Sun's @command{javadoc} tool. This approach works quiet well in most
+cases, at least for english comments.
+
+Alternatively, you can specify option @option{-breakiterator} in which
+case @command{gjdoc} will use
+@samp{java.text.BreakIterator.getSentenceInstance(@var{locale}).next()}
+to find the end of sentence, where @var{locale} is the locale
+specified by option @samp{-locale} or the default locale if none
+specified.
+
+@emph{NOT YET IMPLEMENTED:}
+
+@command{gjdoc} also allows you to explicitly delineate the first
+sentence by putting it in a @samp{<span>} tag with the CSS class
+@samp{first-sentence}. For example:
+@smallexample
+/**
+ * <span class="first-sentence">This. is. the. first.
+ * sentence.</span> This is the second sentence.
+ */
+@end smallexample
+
+Note that this will only work with @command{gjdoc}, but shouldn't hurt
+when using another documentation system since the @samp{<span>} tag
+usually doesn't show up in the output.
+
+@comment ----------------------------------------------------------------------
+
+@node Adding Custom Resources, , First Sentence Detector, Gjdoc Concepts
+@section Adding Images and Other Resources
+@cindex First Sentence Detector
+
+Sometimes you want to decorate your documentation with secondary
+resources such as images, SVG graphics, applets, and so on. To do so,
+simply put the required files in a subdirectory 'doc-files' in the
+package directory corresponding to the documentation entry you want to
+decorate, and refer to it with the URL
+@samp{doc-files/@var{filename}}.
+
+For example, if you want to add an image to the description of class
+@samp{baz.FooBar}, create a directory @file{doc-files} in the
+directory @file{baz} containing @file{FooBar.java} and put your file,
+say @file{diagram.png}, into that directory. Then, add the HTML code
+like this to a comment in @file{FooBar.java}:
+@smallexample
+<img src="doc-files/diagram.png" width="200" height="150"
+ alt="Foo Diagram"/>
+@end smallexample
+
+This works because the @file{doc-files} subdirectories will be copied
+to the target documentation directory every time you generate the
+documentation.
+
+Note however that by default, the @file{doc-files} directory will not
+be copied deeply. In other words, if you create subdirectories under
+@file{doc-files} they will not be copied and any resources located in
+these subdirectories will not be accessible in your generated
+documentation. You can specify option @option{-docfilessubdirs} to
+remove this limitation.
+
+Sometimes you want to use option @option{-docfilessubdirs}, but there
+are certain directories which you don't want to be copied, for example
+because they contain source files for the resources in
+@file{doc-files}. For cases like this, use
+@option{-excludedocfilessubdir} to specify directories to be omitted.
+
+@comment ----------------------------------------------------------------------
+
@node I18N Issues, , Other Tools, Top
@comment node-name, next, previous, up
@chapter I18N Issues
diff --git a/libjava/classpath/examples/Makefile.am b/libjava/classpath/examples/Makefile.am
index 56b3c45..ff47801 100644
--- a/libjava/classpath/examples/Makefile.am
+++ b/libjava/classpath/examples/Makefile.am
@@ -1,7 +1,11 @@
## Input file for automake to generate the Makefile.in used by configure
-GLIBJ_CLASSPATH='$(top_builddir)/lib/glibj.zip'
+GLIBJ_CLASSPATH='$(top_builddir)/lib/glibj.zip:$(top_builddir)/lib'
+if GCJ_JAVAC
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_CLASSPATH) --classpath='$(top_builddir)/tools/tools.zip'
+else
JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
+endif
# All our example java source files
EXAMPLE_JAVA_FILES = $(srcdir)/gnu/classpath/examples/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*/*.java
@@ -84,15 +88,21 @@ dist-hook:
# To generate the example zip just depend on the sources and ignore the
# class files. Always regenerate all .class files and remove them immediatly.
# And copy the png icons we use to the classes dir so they get also included.
+
+if WITH_JAR
+CREATE_EXAMPLE_ZIP=$(JAR) cf ../$(EXAMPLE_ZIP) .
+else
+CREATE_EXAMPLE_ZIP=$(ZIP) -r ../$(EXAMPLE_ZIP) .
+endif
+
$(EXAMPLE_ZIP): $(EXAMPLE_JAVA_FILES)
- mkdir -p classes/gnu/classpath/examples/icons
+ @mkdir_p@ classes/gnu/classpath/examples/icons
cp $(EXAMPLE_ICONS) classes/gnu/classpath/examples/icons
- mkdir -p classes/gnu/classpath/examples/swing
+ @mkdir_p@ classes/gnu/classpath/examples/swing
cp $(EXAMPLE_HTML) classes/gnu/classpath/examples/swing
$(JCOMPILER) -d classes $(EXAMPLE_JAVA_FILES)
(cd classes; \
- if test "$(ZIP)" != ""; then $(ZIP) -r ../$(EXAMPLE_ZIP) .; fi; \
- if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(EXAMPLE_ZIP) .; fi; \
+ $(CREATE_EXAMPLE_ZIP); \
cd ..)
rm -rf classes
diff --git a/libjava/classpath/examples/Makefile.in b/libjava/classpath/examples/Makefile.in
index 6eebed0..3adbdaa 100644
--- a/libjava/classpath/examples/Makefile.in
+++ b/libjava/classpath/examples/Makefile.in
@@ -52,6 +52,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -83,6 +86,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -114,6 +119,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -152,11 +163,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -166,6 +178,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -187,7 +201,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -253,8 +270,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -265,6 +284,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -324,9 +344,11 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
-GLIBJ_CLASSPATH = '$(top_builddir)/lib/glibj.zip'
-JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
+GLIBJ_CLASSPATH = '$(top_builddir)/lib/glibj.zip:$(top_builddir)/lib'
+@GCJ_JAVAC_FALSE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_CLASSPATH) -classpath '$(top_builddir)/tools/tools.zip'
+@GCJ_JAVAC_TRUE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_CLASSPATH) --classpath='$(top_builddir)/tools/tools.zip'
# All our example java source files
EXAMPLE_JAVA_FILES = $(srcdir)/gnu/classpath/examples/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*.java $(srcdir)/gnu/classpath/examples/*/*/*/*.java
@@ -362,6 +384,12 @@ exampledir = $(pkgdatadir)/examples
# Make sure everything is included in the distribution.
EXTRA_DIST = README Makefile.jawt.in Makefile.java2d.in
+@WITH_JAR_FALSE@CREATE_EXAMPLE_ZIP = $(ZIP) -r ../$(EXAMPLE_ZIP) .
+
+# To generate the example zip just depend on the sources and ignore the
+# class files. Always regenerate all .class files and remove them immediatly.
+# And copy the png icons we use to the classes dir so they get also included.
+@WITH_JAR_TRUE@CREATE_EXAMPLE_ZIP = $(JAR) cf ../$(EXAMPLE_ZIP) .
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -599,18 +627,14 @@ dist-hook:
cp -p $$file $(distdir)/$$f; \
done
-# To generate the example zip just depend on the sources and ignore the
-# class files. Always regenerate all .class files and remove them immediatly.
-# And copy the png icons we use to the classes dir so they get also included.
$(EXAMPLE_ZIP): $(EXAMPLE_JAVA_FILES)
- mkdir -p classes/gnu/classpath/examples/icons
+ @mkdir_p@ classes/gnu/classpath/examples/icons
cp $(EXAMPLE_ICONS) classes/gnu/classpath/examples/icons
- mkdir -p classes/gnu/classpath/examples/swing
+ @mkdir_p@ classes/gnu/classpath/examples/swing
cp $(EXAMPLE_HTML) classes/gnu/classpath/examples/swing
$(JCOMPILER) -d classes $(EXAMPLE_JAVA_FILES)
(cd classes; \
- if test "$(ZIP)" != ""; then $(ZIP) -r ../$(EXAMPLE_ZIP) .; fi; \
- if test "$(FASTJAR)" != ""; then $(FASTJAR) cf ../$(EXAMPLE_ZIP) .; fi; \
+ $(CREATE_EXAMPLE_ZIP); \
cd ..)
rm -rf classes
diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java
index c07b77b..9af20d2 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DemoServant.java
@@ -145,7 +145,7 @@ public class DemoServant
{
System.out.println("SERVER: ***** Transferring tree");
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
// This both creates the tree string representation
// and changes the TreeNode names.
@@ -214,7 +214,7 @@ public class DemoServant
* @param b the buffer to collect the string representation.
* @param n the rott tree TreeNode.
*/
- private void getImage(StringBuffer b, TreeNode n)
+ private void getImage(StringBuilder b, TreeNode n)
{
b.append(n.name);
n.name = n.name + "++";
diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java
index 732b00c..843530d 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/SimpleCommunication/communication/DirectTest.java
@@ -269,7 +269,7 @@ public class DirectTest
object.passTree(nh);
// Convert the returned tree to some strig representation.
- StringBuffer img = new StringBuffer();
+ StringBuilder img = new StringBuilder();
getImage(img, nh.value);
System.out.println("Returned tree: " + img.toString());
@@ -314,7 +314,7 @@ public class DirectTest
* @param b the string buffer to accumulate the representation.
* @param n the tree (root TreeNode).
*/
- private void getImage(StringBuffer b, TreeNode n)
+ private void getImage(StringBuilder b, TreeNode n)
{
b.append(n.name);
b.append(": (");
diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java
index a976def..73a8eec 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/IorReader.java
@@ -79,7 +79,7 @@ public class IorReader
{
InputStreamReader r = new InputStreamReader(u.openStream());
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
int c;
while ((c = r.read()) > 0)
diff --git a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java
index 2ef9241..7717834 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/CORBA/swing/x5/X5Server.java
@@ -147,7 +147,7 @@ public class X5Server
int length = GameManagerImpl.ior.length();
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
b.append("HTTP/1.0 200 OK\r\n");
b.append("Content-Length: " + length + "\r\n");
b.append("Connection: close\r\n");
diff --git a/libjava/classpath/examples/gnu/classpath/examples/html/Demo.java b/libjava/classpath/examples/gnu/classpath/examples/html/Demo.java
index 34dd73b..3d77b12 100644
--- a/libjava/classpath/examples/gnu/classpath/examples/html/Demo.java
+++ b/libjava/classpath/examples/gnu/classpath/examples/html/Demo.java
@@ -94,7 +94,7 @@ public class Demo
if (node == null)
return;
- StringBuffer tab = new StringBuffer();
+ StringBuilder tab = new StringBuilder();
stream.println();
for (int i = 0; i < ident; i++)
{
diff --git a/libjava/classpath/external/Makefile.in b/libjava/classpath/external/Makefile.in
index 4b2f663..0f122f7 100644
--- a/libjava/classpath/external/Makefile.in
+++ b/libjava/classpath/external/Makefile.in
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -81,6 +84,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -112,6 +117,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -150,11 +161,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -164,6 +176,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -185,7 +199,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -251,8 +268,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -263,6 +282,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -322,6 +342,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
SUBDIRS = sax w3c_dom relaxngDatatype jsr166
EXTRA_DIST = README
diff --git a/libjava/classpath/external/jsr166/Makefile.in b/libjava/classpath/external/jsr166/Makefile.in
index 523e375..4be9f2e 100644
--- a/libjava/classpath/external/jsr166/Makefile.in
+++ b/libjava/classpath/external/jsr166/Makefile.in
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -72,6 +75,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -103,6 +108,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -141,11 +152,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -155,6 +167,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -176,7 +190,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -242,8 +259,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -254,6 +273,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -313,6 +333,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
EXTRA_DIST = IMPORTING \
readme \
diff --git a/libjava/classpath/external/relaxngDatatype/Makefile.in b/libjava/classpath/external/relaxngDatatype/Makefile.in
index f400bec..5d59fda 100644
--- a/libjava/classpath/external/relaxngDatatype/Makefile.in
+++ b/libjava/classpath/external/relaxngDatatype/Makefile.in
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -72,6 +75,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -103,6 +108,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -141,11 +152,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -155,6 +167,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -176,7 +190,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -242,8 +259,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -254,6 +273,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -313,6 +333,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
EXTRA_DIST = README.txt \
copying.txt \
diff --git a/libjava/classpath/external/sax/Makefile.in b/libjava/classpath/external/sax/Makefile.in
index 8bdb122..1f20b35 100644
--- a/libjava/classpath/external/sax/Makefile.in
+++ b/libjava/classpath/external/sax/Makefile.in
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -72,6 +75,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -103,6 +108,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -141,11 +152,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -155,6 +167,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -176,7 +190,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -242,8 +259,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -254,6 +273,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -313,6 +333,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
EXTRA_DIST = README \
org/xml/sax/ext/Attributes2.java \
diff --git a/libjava/classpath/external/w3c_dom/Makefile.in b/libjava/classpath/external/w3c_dom/Makefile.in
index b44d433..2079c48 100644
--- a/libjava/classpath/external/w3c_dom/Makefile.in
+++ b/libjava/classpath/external/w3c_dom/Makefile.in
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -72,6 +75,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -103,6 +108,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -141,11 +152,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -155,6 +167,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -176,7 +190,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -242,8 +259,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -254,6 +273,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -313,6 +333,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
EXTRA_DIST = README \
org/w3c/dom/Attr.java \
diff --git a/libjava/classpath/gnu/CORBA/BigDecimalHelper.java b/libjava/classpath/gnu/CORBA/BigDecimalHelper.java
index 119db04..33b74bb 100644
--- a/libjava/classpath/gnu/CORBA/BigDecimalHelper.java
+++ b/libjava/classpath/gnu/CORBA/BigDecimalHelper.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.CORBA;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -135,7 +137,7 @@ public class BigDecimalHelper
public static void write(java.io.OutputStream out, BigDecimal x)
throws IOException, BadKind
{
- StringBuffer v = new StringBuffer(x.unscaledValue().toString());
+ CPStringBuilder v = new CPStringBuilder(x.unscaledValue().toString());
boolean negative = v.charAt(0) == '-';
@@ -165,7 +167,7 @@ public class BigDecimalHelper
*/
private static BigDecimal createFixed(int scale, byte[] d)
{
- StringBuffer s = new StringBuffer(2 * d.length);
+ CPStringBuilder s = new CPStringBuilder(2 * d.length);
int last = d.length - 1;
diff --git a/libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java b/libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java
index a439b65..93d18fb 100644
--- a/libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java
+++ b/libjava/classpath/gnu/CORBA/CDR/LittleEndianInputStream.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.CORBA.CDR;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.EOFException;
import java.io.FilterInputStream;
import java.io.IOException;
@@ -360,7 +362,7 @@ public class LittleEndianInputStream
public String readLine()
throws IOException
{
- StringBuffer strb = new StringBuffer();
+ CPStringBuilder strb = new CPStringBuilder();
while (true)
{
@@ -629,4 +631,4 @@ public class LittleEndianInputStream
{
throw new InternalError();
}
-} \ No newline at end of file
+}
diff --git a/libjava/classpath/gnu/CORBA/CDR/Vio.java b/libjava/classpath/gnu/CORBA/CDR/Vio.java
index 67a69b8..86f842c 100644
--- a/libjava/classpath/gnu/CORBA/CDR/Vio.java
+++ b/libjava/classpath/gnu/CORBA/CDR/Vio.java
@@ -41,6 +41,8 @@ package gnu.CORBA.CDR;
import gnu.CORBA.Minor;
import gnu.CORBA.ObjectCreator;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.CustomMarshal;
import org.omg.CORBA.DataInputStream;
import org.omg.CORBA.DataOutputStream;
@@ -754,7 +756,7 @@ public abstract class Vio
return "null";
else
{
- StringBuffer b = new StringBuffer("{");
+ CPStringBuilder b = new CPStringBuilder("{");
for (int i = 0; i < s.length; i++)
{
b.append(s[i]);
@@ -1469,4 +1471,4 @@ public abstract class Vio
return VMVio.allocateObject(clazz, constructor.getDeclaringClass(),
constructor);
}
-} \ No newline at end of file
+}
diff --git a/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java b/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java
index 929dc72..4af8c68 100644
--- a/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java
+++ b/libjava/classpath/gnu/CORBA/CDR/gnuRuntime.java
@@ -40,6 +40,8 @@ package gnu.CORBA.CDR;
import gnu.CORBA.Minor;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.LocalObject;
import org.omg.CORBA.MARSHAL;
@@ -318,7 +320,7 @@ public class gnuRuntime
*/
public String dump()
{
- StringBuffer b = new StringBuffer(" Stream content: \n");
+ CPStringBuilder b = new CPStringBuilder(" Stream content: \n");
// Sort by position.
TreeSet t = new TreeSet(positions.keySet());
diff --git a/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java b/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java
index cac2405..f63cbea 100644
--- a/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java
+++ b/libjava/classpath/gnu/CORBA/GIOP/MessageHeader.java
@@ -47,6 +47,8 @@ import gnu.CORBA.CDR.LittleEndianOutputStream;
import gnu.CORBA.CDR.AbstractDataInput;
import gnu.CORBA.CDR.AbstractDataOutput;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.MARSHAL;
import org.omg.CORBA.portable.IDLEntity;
@@ -286,7 +288,7 @@ public class MessageHeader
int minor;
if (! Arrays.equals(xMagic, MAGIC))
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
if (r == - 1)
{
b.append("Immediate EOF");
@@ -460,4 +462,4 @@ public class MessageHeader
throw m;
}
}
-} \ No newline at end of file
+}
diff --git a/libjava/classpath/gnu/CORBA/GIOP/RequestHeader.java b/libjava/classpath/gnu/CORBA/GIOP/RequestHeader.java
index 3cfadfd..45997ab 100644
--- a/libjava/classpath/gnu/CORBA/GIOP/RequestHeader.java
+++ b/libjava/classpath/gnu/CORBA/GIOP/RequestHeader.java
@@ -41,6 +41,8 @@ package gnu.CORBA.GIOP;
import gnu.CORBA.CDR.AbstractCdrInput;
import gnu.CORBA.CDR.AbstractCdrOutput;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.portable.IDLEntity;
/**
@@ -123,7 +125,7 @@ public abstract class RequestHeader
*/
public String bytes(byte[] array)
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
for (int i = 0; i < array.length; i++)
{
b.append(Integer.toHexString(array[i] & 0xFF));
diff --git a/libjava/classpath/gnu/CORBA/GIOP/v1_0/ReplyHeader.java b/libjava/classpath/gnu/CORBA/GIOP/v1_0/ReplyHeader.java
index c085c17..dcb00c0 100644
--- a/libjava/classpath/gnu/CORBA/GIOP/v1_0/ReplyHeader.java
+++ b/libjava/classpath/gnu/CORBA/GIOP/v1_0/ReplyHeader.java
@@ -43,6 +43,8 @@ import gnu.CORBA.CDR.AbstractCdrOutput;
import gnu.CORBA.GIOP.ServiceContext;
import gnu.CORBA.GIOP.CodeSetServiceContext;
+import gnu.java.lang.CPStringBuilder;
+
/**
* The header of the standard reply.
*
@@ -80,7 +82,7 @@ public class ReplyHeader
*/
public String contexts()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
for (int i = 0; i < service_context.length; i++)
{
b.append(service_context [ i ].toString());
diff --git a/libjava/classpath/gnu/CORBA/GIOP/v1_0/RequestHeader.java b/libjava/classpath/gnu/CORBA/GIOP/v1_0/RequestHeader.java
index 5cf723c..d2bea9d 100644
--- a/libjava/classpath/gnu/CORBA/GIOP/v1_0/RequestHeader.java
+++ b/libjava/classpath/gnu/CORBA/GIOP/v1_0/RequestHeader.java
@@ -43,6 +43,8 @@ import gnu.CORBA.CDR.AbstractCdrOutput;
import gnu.CORBA.GIOP.ServiceContext;
import gnu.CORBA.GIOP.CodeSetServiceContext;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.portable.IDLEntity;
/**
@@ -81,7 +83,7 @@ public class RequestHeader
public String bytes(byte[] array)
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
for (int i = 0; i < array.length; i++)
{
b.append(Integer.toHexString(array [ i ] & 0xFF));
@@ -95,7 +97,7 @@ public class RequestHeader
*/
public String contexts()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
for (int i = 0; i < service_context.length; i++)
{
b.append(service_context [ i ].toString());
diff --git a/libjava/classpath/gnu/CORBA/IOR.java b/libjava/classpath/gnu/CORBA/IOR.java
index 5e13aec..7f63471 100644
--- a/libjava/classpath/gnu/CORBA/IOR.java
+++ b/libjava/classpath/gnu/CORBA/IOR.java
@@ -45,6 +45,8 @@ import gnu.CORBA.CDR.AbstractCdrOutput;
import gnu.CORBA.GIOP.CharSets_OSF;
import gnu.CORBA.GIOP.CodeSetServiceContext;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.BAD_PARAM;
import org.omg.CORBA.CompletionStatus;
import org.omg.CORBA.MARSHAL;
@@ -126,7 +128,7 @@ public class IOR
*/
public String toString()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
b.append("native " + name(native_set));
if (conversion != null && conversion.length > 0)
{
@@ -146,7 +148,7 @@ public class IOR
*/
public String toStringFormatted()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
b.append("\n Native set " + name(native_set));
if (conversion != null && conversion.length > 0)
{
@@ -282,7 +284,7 @@ public class IOR
*/
public String toString()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
b.append(host);
b.append(":");
b.append(port);
@@ -591,7 +593,7 @@ public class IOR
*/
public String toString()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
b.append(Id);
b.append(" at ");
b.append(Internet);
@@ -618,7 +620,7 @@ public class IOR
*/
public String toStringFormatted()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
b.append("\nObject Id:\n ");
b.append(Id);
b.append("\nObject is accessible at:\n ");
@@ -656,7 +658,7 @@ public class IOR
_write(out);
- StringBuffer b = new StringBuffer("IOR:");
+ CPStringBuilder b = new CPStringBuilder("IOR:");
byte[] binary = out.buffer.toByteArray();
String s;
@@ -819,4 +821,4 @@ public class IOR
}
return (int) adler.getValue();
}
-} \ No newline at end of file
+}
diff --git a/libjava/classpath/gnu/CORBA/NamingService/NameParser.java b/libjava/classpath/gnu/CORBA/NamingService/NameParser.java
index 205ad8b..5d4b729 100644
--- a/libjava/classpath/gnu/CORBA/NamingService/NameParser.java
+++ b/libjava/classpath/gnu/CORBA/NamingService/NameParser.java
@@ -44,6 +44,8 @@ import gnu.CORBA.IOR;
import gnu.CORBA.Unexpected;
import gnu.CORBA.Version;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.BAD_PARAM;
import org.omg.CORBA.DATA_CONVERSION;
import org.omg.CORBA.ORB;
@@ -301,7 +303,7 @@ public class NameParser
ior.Internet.version = new Version(major, minor);
// Then host data goes till '/' or ':'.
- StringBuffer bhost = new StringBuffer(corbaloc.length());
+ CPStringBuilder bhost = new CPStringBuilder(corbaloc.length());
while (!t[p].equals(":") && !t[p].equals("/") && !t[p].equals(","))
bhost.append(t[p++]);
@@ -394,7 +396,7 @@ public class NameParser
{
InputStreamReader r = new InputStreamReader(u.openStream());
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
int c;
while ((c = r.read()) > 0)
@@ -465,7 +467,7 @@ public class NameParser
+ "' found");
}
- StringBuffer bKey = new StringBuffer();
+ CPStringBuilder bKey = new CPStringBuilder();
p++;
while (p < t.length && !t[p].equals("#"))
diff --git a/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java b/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java
index 7109fdb..132c5dd 100644
--- a/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java
+++ b/libjava/classpath/gnu/CORBA/NamingService/NameTransformer.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.CORBA.NamingService;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.IntHolder;
import org.omg.CosNaming.NameComponent;
import org.omg.CosNaming.NamingContextPackage.InvalidName;
@@ -125,7 +127,7 @@ public class NameTransformer
{
NameValidator.check(a_name);
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
NameComponent n;
@@ -152,7 +154,7 @@ public class NameTransformer
* @param b a buffer to append the contents to.
* @param s a string to append.
*/
- private void appEscaping(StringBuffer b, String s)
+ private void appEscaping(CPStringBuilder b, String s)
{
char c;
for (int i = 0; i < s.length(); i++)
@@ -271,7 +273,7 @@ public class NameTransformer
*/
private String readPart(IntHolder p, String[] t)
{
- StringBuffer part = new StringBuffer();
+ CPStringBuilder part = new CPStringBuilder();
while (t [ p.value ] != null && !t [ p.value ].equals(".") &&
!t [ p.value ].equals("/")
diff --git a/libjava/classpath/gnu/CORBA/OrbFunctional.java b/libjava/classpath/gnu/CORBA/OrbFunctional.java
index 8fddc66..25344cb 100644
--- a/libjava/classpath/gnu/CORBA/OrbFunctional.java
+++ b/libjava/classpath/gnu/CORBA/OrbFunctional.java
@@ -1194,7 +1194,7 @@ public class OrbFunctional extends OrbRestricted
*/
protected void set_parameters(String[] para, Properties props)
{
- if (para.length > 1)
+ if ((para != null) && para.length > 1)
{
for (int i = 0; i < para.length - 1; i++)
{
diff --git a/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java b/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java
index 82e5209..32fc5bf 100644
--- a/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java
+++ b/libjava/classpath/gnu/CORBA/Poa/gnuPOA.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.CORBA.Poa;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
@@ -1604,7 +1606,7 @@ public class gnuPOA
*/
public String toString()
{
- StringBuffer b = new StringBuffer(name);
+ CPStringBuilder b = new CPStringBuilder(name);
if (children.size() != 0)
{
diff --git a/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java b/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java
index 115f4f8..7e9b4f2 100644
--- a/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java
+++ b/libjava/classpath/gnu/CORBA/Poa/gnuServantObject.java
@@ -51,6 +51,8 @@ import gnu.CORBA.Unexpected;
import gnu.CORBA.ResponseHandlerImpl;
import gnu.CORBA.StreamHolder;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.Any;
import org.omg.CORBA.BAD_OPERATION;
import org.omg.CORBA.BAD_PARAM;
@@ -357,7 +359,7 @@ public class gnuServantObject extends ObjectImpl
*/
public String toString()
{
- StringBuffer b = new StringBuffer("Servant object (");
+ CPStringBuilder b = new CPStringBuilder("Servant object (");
for (int i = 0; i < Id.length; i++)
{
b.append(Integer.toHexString(Id [ i ] & 0xFF));
@@ -820,4 +822,4 @@ public class gnuServantObject extends ObjectImpl
}
return super._is_equivalent(other);
}
-} \ No newline at end of file
+}
diff --git a/libjava/classpath/gnu/classpath/Configuration.java.in b/libjava/classpath/gnu/classpath/Configuration.java.in
index 7fb8640..4a9b65f 100644
--- a/libjava/classpath/gnu/classpath/Configuration.java.in
+++ b/libjava/classpath/gnu/classpath/Configuration.java.in
@@ -101,4 +101,14 @@ public interface Configuration
* com.sun.tools.javac implementation in tools.zip.
*/
String ECJ_JAR = "@ECJ_JAR@";
+
+ /**
+ * Set to <code>true</code> if the config script found that (a) an
+ * implementation of java.math.BigInteger, based on the GNU MP library, is
+ * desired in preference to a pure Java one, and (b) the GNU MP library was
+ * found on the platform where the JVM is to run. Otherwise, this field is
+ * set to <code>false</code>.
+ */
+ boolean WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@;
+
}
diff --git a/libjava/classpath/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java b/libjava/classpath/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
index e270390..b6e0cfe 100644
--- a/libjava/classpath/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
+++ b/libjava/classpath/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.java
@@ -264,7 +264,7 @@ public class VirtualMachineCommandSet
ThreadGroup root = getRootThreadGroup(jdwpGroup);
os.writeInt(1); // Just one top level group allowed?
- idMan.getObjectId(root);
+ idMan.getObjectId(root).write(os);
}
private void executeDispose(ByteBuffer bb, DataOutputStream os)
diff --git a/libjava/classpath/gnu/classpath/jdwp/util/Signature.java b/libjava/classpath/gnu/classpath/jdwp/util/Signature.java
index 36445c3..e7453bf 100644
--- a/libjava/classpath/gnu/classpath/jdwp/util/Signature.java
+++ b/libjava/classpath/gnu/classpath/jdwp/util/Signature.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package gnu.classpath.jdwp.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.lang.reflect.Field;
import java.lang.reflect.Method;
@@ -59,7 +61,7 @@ public class Signature
*/
public static String computeClassSignature (Class theClass)
{
- StringBuffer sb = new StringBuffer ();
+ CPStringBuilder sb = new CPStringBuilder ();
_addToSignature (sb, theClass);
return sb.toString ();
}
@@ -93,7 +95,7 @@ public class Signature
private static String _computeSignature (Class returnType,
Class[] paramTypes)
{
- StringBuffer sb = new StringBuffer ("(");
+ CPStringBuilder sb = new CPStringBuilder ("(");
if (paramTypes != null)
{
for (int i = 0; i < paramTypes.length; ++i)
@@ -104,7 +106,7 @@ public class Signature
return sb.toString();
}
- private static void _addToSignature (StringBuffer sb, Class k)
+ private static void _addToSignature (CPStringBuilder sb, Class k)
{
// For some reason there's no easy way to get the signature of a
// class.
diff --git a/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java b/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java
index 2d898a4..e812452 100644
--- a/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java
+++ b/libjava/classpath/gnu/java/awt/font/OpenTypeFontPeer.java
@@ -37,6 +37,10 @@ exception statement from your version. */
package gnu.java.awt.font;
+
+import gnu.java.awt.peer.ClasspathFontPeer;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.font.FontRenderContext;
@@ -61,8 +65,6 @@ import java.util.Map;
import java.util.Properties;
import java.util.Set;
-import gnu.java.awt.peer.ClasspathFontPeer;
-
public class OpenTypeFontPeer
extends ClasspathFontPeer
{
@@ -422,7 +424,7 @@ public class OpenTypeFontPeer
*/
static String encodeFont(String name, int style)
{
- StringBuilder key = new StringBuilder();
+ CPStringBuilder key = new CPStringBuilder();
key.append(validName(name));
key.append('/');
switch (style)
diff --git a/libjava/classpath/gnu/java/awt/font/autofit/Edge.java b/libjava/classpath/gnu/java/awt/font/autofit/Edge.java
index d973665..6420fa1 100644
--- a/libjava/classpath/gnu/java/awt/font/autofit/Edge.java
+++ b/libjava/classpath/gnu/java/awt/font/autofit/Edge.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.awt.font.autofit;
+import gnu.java.lang.CPStringBuilder;
+
class Edge
{
int fpos;
@@ -54,7 +56,7 @@ class Edge
public String toString()
{
- StringBuilder s = new StringBuilder();
+ CPStringBuilder s = new CPStringBuilder();
s.append("[Edge] id");
s.append(hashCode());
s.append(", fpos: ");
diff --git a/libjava/classpath/gnu/java/awt/font/autofit/LatinBlue.java b/libjava/classpath/gnu/java/awt/font/autofit/LatinBlue.java
index 694fb24..2cf68b7 100644
--- a/libjava/classpath/gnu/java/awt/font/autofit/LatinBlue.java
+++ b/libjava/classpath/gnu/java/awt/font/autofit/LatinBlue.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.awt.font.autofit;
+import gnu.java.lang.CPStringBuilder;
+
public class LatinBlue
{
static final int FLAG_BLUE_ACTIVE = 1 << 0;
@@ -48,7 +50,7 @@ public class LatinBlue
int flags;
public String toString()
{
- StringBuilder s = new StringBuilder();
+ CPStringBuilder s = new CPStringBuilder();
s.append("[BlueZone]");
s.append(" ref: ");
s.append(ref.org);
diff --git a/libjava/classpath/gnu/java/awt/font/autofit/Segment.java b/libjava/classpath/gnu/java/awt/font/autofit/Segment.java
index 640e82c..9f9da67 100644
--- a/libjava/classpath/gnu/java/awt/font/autofit/Segment.java
+++ b/libjava/classpath/gnu/java/awt/font/autofit/Segment.java
@@ -40,6 +40,8 @@ package gnu.java.awt.font.autofit;
import gnu.java.awt.font.opentype.truetype.Point;
+import gnu.java.lang.CPStringBuilder;
+
class Segment
{
@@ -65,7 +67,7 @@ class Segment
public String toString()
{
- StringBuilder s = new StringBuilder();
+ CPStringBuilder s = new CPStringBuilder();
s.append("[Segment] id: ");
s.append(hashCode());
s.append(", len:");
diff --git a/libjava/classpath/gnu/java/awt/font/autofit/Width.java b/libjava/classpath/gnu/java/awt/font/autofit/Width.java
index c890cf3..079f7b3 100644
--- a/libjava/classpath/gnu/java/awt/font/autofit/Width.java
+++ b/libjava/classpath/gnu/java/awt/font/autofit/Width.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.awt.font.autofit;
+import gnu.java.lang.CPStringBuilder;
+
public class Width
{
int org;
@@ -50,7 +52,7 @@ public class Width
public String toString()
{
- StringBuilder s = new StringBuilder();
+ CPStringBuilder s = new CPStringBuilder();
s.append("[Width] org: ");
s.append(org);
s.append(", cur: ");
diff --git a/libjava/classpath/gnu/java/awt/font/opentype/GlyphNamer.java b/libjava/classpath/gnu/java/awt/font/opentype/GlyphNamer.java
index ea4b8e2..c2b009d 100644
--- a/libjava/classpath/gnu/java/awt/font/opentype/GlyphNamer.java
+++ b/libjava/classpath/gnu/java/awt/font/opentype/GlyphNamer.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.java.awt.font.opentype;
+import gnu.java.lang.CPStringBuilder;
+
import java.nio.ByteBuffer;
import java.nio.IntBuffer;
import java.nio.CharBuffer;
@@ -1077,7 +1079,7 @@ final class GlyphNamer
return name;
}
- StringBuffer buf = new StringBuffer(numChars * 8);
+ CPStringBuilder buf = new CPStringBuilder(numChars * 8);
for (int i = 0; i < numChars; i++)
{
if (i > 0)
diff --git a/libjava/classpath/gnu/java/awt/font/opentype/truetype/Fixed.java b/libjava/classpath/gnu/java/awt/font/opentype/truetype/Fixed.java
index 287593e..87dfebd 100644
--- a/libjava/classpath/gnu/java/awt/font/opentype/truetype/Fixed.java
+++ b/libjava/classpath/gnu/java/awt/font/opentype/truetype/Fixed.java
@@ -38,6 +38,7 @@ exception statement from your version. */
package gnu.java.awt.font.opentype.truetype;
+import gnu.java.lang.CPStringBuilder;
/**
* A utility class for fixed-point arithmetics, where numbers are
@@ -164,7 +165,7 @@ public final class Fixed
public static String toString(int x, int y)
{
- StringBuffer sbuf = new StringBuffer(40);
+ CPStringBuilder sbuf = new CPStringBuilder(40);
sbuf.append('(');
sbuf.append(((float) x) / 64);
sbuf.append(", ");
diff --git a/libjava/classpath/gnu/java/awt/font/opentype/truetype/Point.java b/libjava/classpath/gnu/java/awt/font/opentype/truetype/Point.java
index c9664d2..31c1203 100644
--- a/libjava/classpath/gnu/java/awt/font/opentype/truetype/Point.java
+++ b/libjava/classpath/gnu/java/awt/font/opentype/truetype/Point.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.awt.font.opentype.truetype;
+import gnu.java.lang.CPStringBuilder;
+
/**
* Encapsulates information regarding one point on a glyph outline.
*/
@@ -234,7 +236,7 @@ public class Point
public String toString()
{
- StringBuilder s = new StringBuilder();
+ CPStringBuilder s = new CPStringBuilder();
s.append("[Point] origX: ");
s.append(origX);
s.append(", origY: ");
diff --git a/libjava/classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java b/libjava/classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java
index 7e50b66..c88d4c6 100644
--- a/libjava/classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java
+++ b/libjava/classpath/gnu/java/awt/font/opentype/truetype/VirtualMachine.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.java.awt.font.opentype.truetype;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.FontFormatException;
import java.awt.geom.AffineTransform;
import java.nio.ByteBuffer;
@@ -514,7 +516,7 @@ class VirtualMachine
*/
private void dumpInstruction(ByteBuffer inst)
{
- StringBuffer sbuf = new StringBuffer(40);
+ CPStringBuilder sbuf = new CPStringBuilder(40);
int pc = inst.position();
int bcode = inst.get(pc) & 0xff;
int count;
diff --git a/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java b/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java
index 36ba0f4..8504659 100644
--- a/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java
+++ b/libjava/classpath/gnu/java/awt/java2d/AbstractGraphics2D.java
@@ -46,6 +46,7 @@ import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Composite;
import java.awt.CompositeContext;
+import java.awt.Dimension;
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Graphics;
@@ -75,9 +76,12 @@ import java.awt.image.BufferedImage;
import java.awt.image.BufferedImageOp;
import java.awt.image.ColorModel;
import java.awt.image.DataBuffer;
+import java.awt.image.FilteredImageSource;
import java.awt.image.ImageObserver;
+import java.awt.image.ImageProducer;
import java.awt.image.Raster;
import java.awt.image.RenderedImage;
+import java.awt.image.ReplicateScaleFilter;
import java.awt.image.SampleModel;
import java.awt.image.WritableRaster;
import java.awt.image.renderable.RenderableImage;
@@ -86,6 +90,7 @@ import java.util.Collections;
import java.util.HashMap;
import java.util.LinkedList;
import java.util.Map;
+import java.util.WeakHashMap;
/**
* This is a 100% Java implementation of the Java2D rendering pipeline. It is
@@ -154,7 +159,14 @@ public abstract class AbstractGraphics2D
extends Graphics2D
implements Cloneable, Pixelizer
{
-
+ /**
+ * Caches scaled versions of an image.
+ *
+ * @see #drawImage(Image, int, int, int, int, ImageObserver)
+ */
+ protected static final WeakHashMap<Image, HashMap<Dimension,Image>> imageCache =
+ new WeakHashMap<Image, HashMap<Dimension, Image>>();
+
/**
* Wether we use anti aliasing for rendering text by default or not.
*/
@@ -210,14 +222,20 @@ public abstract class AbstractGraphics2D
/**
* The paint context during rendering.
*/
- private PaintContext paintContext;
+ private PaintContext paintContext = null;
/**
* The background.
*/
- private Color background;
+ private Color background = Color.WHITE;
/**
+ * Foreground color, as set by setColor.
+ */
+ private Color foreground = Color.BLACK;
+ private boolean isForegroundColorNull = true;
+
+ /**
* The current font.
*/
private Font font;
@@ -266,15 +284,19 @@ public abstract class AbstractGraphics2D
private static final BasicStroke STANDARD_STROKE = new BasicStroke();
- private static final HashMap STANDARD_HINTS;
- static {
- HashMap hints = new HashMap();
- hints.put(RenderingHints.KEY_TEXT_ANTIALIASING,
- RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
- hints.put(RenderingHints.KEY_ANTIALIASING,
- RenderingHints.VALUE_ANTIALIAS_DEFAULT);
- STANDARD_HINTS = hints;
- }
+ private static final HashMap<Key, Object> STANDARD_HINTS;
+ static
+ {
+
+ HashMap<Key, Object> hints = new HashMap<Key, Object>();
+ hints.put(RenderingHints.KEY_TEXT_ANTIALIASING,
+ RenderingHints.VALUE_TEXT_ANTIALIAS_DEFAULT);
+ hints.put(RenderingHints.KEY_ANTIALIASING,
+ RenderingHints.VALUE_ANTIALIAS_DEFAULT);
+
+ STANDARD_HINTS = hints;
+ }
+
/**
* Creates a new AbstractGraphics2D instance.
*/
@@ -626,14 +648,29 @@ public abstract class AbstractGraphics2D
if (p != null)
{
paint = p;
-
+
if (! (paint instanceof Color))
- isOptimized = false;
+ {
+ isOptimized = false;
+ }
else
{
+ this.foreground = (Color) paint;
+ isForegroundColorNull = false;
updateOptimization();
}
}
+ else
+ {
+ this.foreground = Color.BLACK;
+ isForegroundColorNull = true;
+ }
+
+ // free resources if needed, then put the paint context to null
+ if (this.paintContext != null)
+ this.paintContext.dispose();
+
+ this.paintContext = null;
}
/**
@@ -1058,10 +1095,10 @@ public abstract class AbstractGraphics2D
*/
public Color getColor()
{
- Color c = null;
- if (paint instanceof Color)
- c = (Color) paint;
- return c;
+ if (isForegroundColorNull)
+ return null;
+
+ return this.foreground;
}
/**
@@ -1070,8 +1107,8 @@ public abstract class AbstractGraphics2D
* @param color the foreground to set
*/
public void setColor(Color color)
- {
- setPaint(color);
+ {
+ this.setPaint(color);
}
public void setPaintMode()
@@ -1468,11 +1505,19 @@ public abstract class AbstractGraphics2D
ImageObserver observer)
{
AffineTransform t = new AffineTransform();
- t.translate(x, y);
- double scaleX = (double) width / (double) image.getWidth(observer);
- double scaleY = (double) height / (double) image.getHeight(observer);
- t.scale(scaleX, scaleY);
- return drawImage(image, t, observer);
+ int imWidth = image.getWidth(observer);
+ int imHeight = image.getHeight(observer);
+ if (imWidth == width && imHeight == height)
+ {
+ // No need to scale, fall back to non-scaling loops.
+ return drawImage(image, x, y, observer);
+ }
+ else
+ {
+ Image scaled = prepareImage(image, width, height);
+ // Ideally, this should notify the observer about the scaling progress.
+ return drawImage(scaled, x, y, observer);
+ }
}
/**
@@ -1639,10 +1684,7 @@ public abstract class AbstractGraphics2D
*
* @return the bounds of the target
*/
- protected Rectangle getDeviceBounds()
- {
- return destinationRaster.getBounds();
- }
+ protected abstract Rectangle getDeviceBounds();
/**
* Draws a line in optimization mode. The implementation should respect the
@@ -1763,7 +1805,8 @@ public abstract class AbstractGraphics2D
*/
public void renderScanline(int y, ScanlineCoverage c)
{
- PaintContext pCtx = paintContext;
+ PaintContext pCtx = getPaintContext();
+
int x0 = c.getMinX();
int x1 = c.getMaxX();
Raster paintRaster = pCtx.getRaster(x0, y, x1 - x0, 1);
@@ -1797,9 +1840,11 @@ public abstract class AbstractGraphics2D
CompositeContext cCtx = composite.createContext(paintColorModel,
getColorModel(),
renderingHints);
- WritableRaster targetChild = destinationRaster.createWritableTranslatedChild(-x0,- y);
+ WritableRaster raster = getDestinationRaster();
+ WritableRaster targetChild = raster.createWritableTranslatedChild(-x0, -y);
+
cCtx.compose(paintRaster, targetChild, targetChild);
- updateRaster(destinationRaster, x0, y, x1 - x0, 1);
+ updateRaster(raster, x0, y, x1 - x0, 1);
cCtx.dispose();
}
@@ -1986,4 +2031,64 @@ public abstract class AbstractGraphics2D
}
}
+ private PaintContext getPaintContext()
+ {
+ if (this.paintContext == null)
+ {
+ this.paintContext =
+ this.foreground.createContext(getColorModel(),
+ getDeviceBounds(),
+ getClipBounds(),
+ getTransform(),
+ getRenderingHints());
+ }
+
+ return this.paintContext;
+ }
+
+ /**
+ * Scales an image to the specified width and height. This should also
+ * be used to implement
+ * {@link Toolkit#prepareImage(Image, int, int, ImageObserver)}.
+ * This uses {@link Toolkit#createImage(ImageProducer)} to create the actual
+ * image.
+ *
+ * @param image the image to prepare
+ * @param w the width
+ * @param h the height
+ *
+ * @return the scaled image
+ */
+ public static Image prepareImage(Image image, int w, int h)
+ {
+ // Try to find cached scaled image.
+ HashMap<Dimension,Image> scaledTable = imageCache.get(image);
+ Dimension size = new Dimension(w, h);
+ Image scaled = null;
+ if (scaledTable != null)
+ {
+ scaled = scaledTable.get(size);
+ }
+ if (scaled == null)
+ {
+ // No cached scaled image. Start scaling image now.
+ ImageProducer source = image.getSource();
+ ReplicateScaleFilter scaler = new ReplicateScaleFilter(w, h);
+ FilteredImageSource filteredSource =
+ new FilteredImageSource(source, scaler);
+ // Ideally, this should asynchronously scale the image.
+ Image scaledImage =
+ Toolkit.getDefaultToolkit().createImage(filteredSource);
+ scaled = scaledImage;
+ // Put scaled image in cache.
+ if (scaledTable == null)
+ {
+ scaledTable = new HashMap<Dimension,Image>();
+ imageCache.put(image, scaledTable);
+ }
+ scaledTable.put(size, scaledImage);
+ }
+ return scaled;
+ }
+
}
diff --git a/libjava/classpath/gnu/java/awt/java2d/ActiveEdges.java b/libjava/classpath/gnu/java/awt/java2d/ActiveEdges.java
index 4d1e777..efe1966 100644
--- a/libjava/classpath/gnu/java/awt/java2d/ActiveEdges.java
+++ b/libjava/classpath/gnu/java/awt/java2d/ActiveEdges.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.awt.java2d;
+import gnu.java.lang.CPStringBuilder;
+
/**
* A collection of active edges for scanline conversion.
*/
@@ -183,7 +185,7 @@ final class ActiveEdges
public String toString()
{
- StringBuilder s = new StringBuilder();
+ CPStringBuilder s = new CPStringBuilder();
s.append("[ActiveEdges] ");
for (int i = 0; i < numActiveEdges; i++)
{
diff --git a/libjava/classpath/gnu/java/awt/java2d/RasterGraphics.java b/libjava/classpath/gnu/java/awt/java2d/RasterGraphics.java
index 98d47b4..04eb55e 100644
--- a/libjava/classpath/gnu/java/awt/java2d/RasterGraphics.java
+++ b/libjava/classpath/gnu/java/awt/java2d/RasterGraphics.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package gnu.java.awt.java2d;
import java.awt.GraphicsConfiguration;
+import java.awt.Rectangle;
import java.awt.image.ColorModel;
import java.awt.image.WritableRaster;
@@ -71,6 +72,15 @@ public class RasterGraphics
init();
}
+ @Override
+ public void renderScanline(int y, ScanlineCoverage c)
+ {
+ if (y >= getDeviceBounds().width)
+ return;
+
+ super.renderScanline(y, c);
+ }
+
/**
* Returns the color model of this Graphics object.
*
@@ -100,4 +110,9 @@ public class RasterGraphics
return null;
}
+ @Override
+ protected Rectangle getDeviceBounds()
+ {
+ return this.raster.getBounds();
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java b/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java
index cc4bbef..b00a15c 100644
--- a/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java
+++ b/libjava/classpath/gnu/java/awt/java2d/ScanlineConverter.java
@@ -206,6 +206,7 @@ public final class ScanlineConverter
// Ok, now we can perform the actual scanlining.
int realY = Fixed.intValue(FIXED_DIGITS, y + resolution);
boolean push = lastRealY != realY;
+
doScanline(p, y, push, haveClip);
// Remove obsolete active edges.
diff --git a/libjava/classpath/gnu/java/awt/peer/GnomeDesktopPeer.java b/libjava/classpath/gnu/java/awt/peer/GnomeDesktopPeer.java
index be21631..cc41f74 100644
--- a/libjava/classpath/gnu/java/awt/peer/GnomeDesktopPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/GnomeDesktopPeer.java
@@ -37,6 +37,8 @@
package gnu.java.awt.peer;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.InputStream;
import java.net.URI;
@@ -124,7 +126,7 @@ public class GnomeDesktopPeer
protected String execQuery(String command) throws IOException
{
InputStream in = null;
- StringBuilder output = new StringBuilder();
+ CPStringBuilder output = new CPStringBuilder();
try
{
diff --git a/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java b/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java
index 30dd89b..8bc3e65 100644
--- a/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/KDEDesktopPeer.java
@@ -37,6 +37,8 @@
package gnu.java.awt.peer;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.InputStream;
@@ -104,7 +106,7 @@ public class KDEDesktopPeer
protected String execQuery(String command) throws IOException
{
InputStream in = null;
- StringBuilder output = new StringBuilder();
+ CPStringBuilder output = new CPStringBuilder();
try
{
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java b/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java
index 28fb841..826cfbe 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GdkFontPeer.java
@@ -45,6 +45,8 @@ import gnu.java.awt.ClasspathToolkit;
import gnu.java.awt.peer.ClasspathFontPeer;
import gnu.java.awt.font.opentype.NameDecoder;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Font;
import java.awt.FontMetrics;
import java.awt.Toolkit;
@@ -211,7 +213,7 @@ public class GdkFontPeer extends ClasspathFontPeer
private String buildString(CharacterIterator iter)
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next())
sb.append(c);
return sb.toString();
@@ -219,7 +221,7 @@ public class GdkFontPeer extends ClasspathFontPeer
private String buildString(CharacterIterator iter, int begin, int limit)
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
int i = 0;
for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next(), i++)
{
diff --git a/libjava/classpath/gnu/java/awt/peer/gtk/GtkClipboard.java b/libjava/classpath/gnu/java/awt/peer/gtk/GtkClipboard.java
index e417546..e248b6d 100644
--- a/libjava/classpath/gnu/java/awt/peer/gtk/GtkClipboard.java
+++ b/libjava/classpath/gnu/java/awt/peer/gtk/GtkClipboard.java
@@ -38,10 +38,25 @@ exception statement from your version. */
package gnu.java.awt.peer.gtk;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Image;
-import java.awt.datatransfer.*;
-import java.io.*;
+import java.awt.datatransfer.Clipboard;
+import java.awt.datatransfer.ClipboardOwner;
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.StringSelection;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
+
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.ObjectOutputStream;
+import java.io.Reader;
+import java.io.Serializable;
+import java.io.UnsupportedEncodingException;
import java.util.List;
import java.util.Iterator;
@@ -247,7 +262,7 @@ public class GtkClipboard extends Clipboard
Reader r = plainText.getReaderForText(contents);
if (r != null)
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
char[] cs = new char[1024];
int l = r.read(cs);
while (l != -1)
diff --git a/libjava/classpath/gnu/java/awt/peer/x/GLGraphics.java b/libjava/classpath/gnu/java/awt/peer/x/GLGraphics.java
index c80c85c..dde5b91 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/GLGraphics.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/GLGraphics.java
@@ -39,7 +39,9 @@ package gnu.java.awt.peer.x;
import java.awt.Color;
import java.awt.GraphicsConfiguration;
+import java.awt.Rectangle;
import java.awt.image.ColorModel;
+import java.util.Map;
import gnu.java.awt.java2d.AbstractGraphics2D;
import gnu.x11.extension.glx.GL;
@@ -70,7 +72,8 @@ public class GLGraphics extends AbstractGraphics2D
public void setBackground(Color b)
{
super.setBackground(b);
- gl.clear_color(b.getRed() / 255.F, b.getGreen() / 255.F,
+
+ gl.clearColor(b.getRed() / 255.F, b.getGreen() / 255.F,
b.getBlue() / 255.F, b.getAlpha() / 255.F);
}
@@ -120,4 +123,12 @@ public class GLGraphics extends AbstractGraphics2D
throw new UnsupportedOperationException("Not yet implemented");
}
+ @Override
+ protected Rectangle getDeviceBounds()
+ {
+ // FIXME: not sure it's correct
+ return new Rectangle(0, 0,
+ gl.display.default_screen.width,
+ gl.display.default_screen.height);
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java b/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java
index 7f98435..37983919 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XEventPump.java
@@ -38,6 +38,9 @@ exception statement from your version. */
package gnu.java.awt.peer.x;
+import java.awt.AWTEvent;
+import java.awt.Component;
+import java.awt.Container;
import java.awt.Graphics;
import java.awt.Insets;
import java.awt.Rectangle;
@@ -47,18 +50,26 @@ import java.awt.event.ComponentEvent;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
import java.awt.event.PaintEvent;
+import java.awt.event.WindowEvent;
import java.util.HashMap;
+import gnu.java.awt.ComponentReshapeEvent;
+import gnu.x11.Atom;
import gnu.x11.Display;
import gnu.x11.event.ButtonPress;
import gnu.x11.event.ButtonRelease;
+import gnu.x11.event.ClientMessage;
import gnu.x11.event.ConfigureNotify;
+import gnu.x11.event.DestroyNotify;
import gnu.x11.event.Event;
import gnu.x11.event.Expose;
import gnu.x11.event.Input;
import gnu.x11.event.KeyPress;
import gnu.x11.event.KeyRelease;
import gnu.x11.event.MotionNotify;
+import gnu.x11.event.PropertyNotify;
+import gnu.x11.event.ResizeRequest;
+import gnu.x11.event.UnmapNotify;
/**
* Fetches events from X, translates them to AWT events and pumps them up
@@ -148,122 +159,217 @@ public class XEventPump
windows.remove(new Integer(xWindow.id));
}
- private void handleEvent(Event xEvent)
+ private void handleButtonPress(ButtonPress event)
+ {
+ Integer key = new Integer(event.getEventWindowID());
+ Window awtWindow = (Window) windows.get(key);
+
+ // Create and post the mouse event.
+ int button = event.detail();
+
+ // AWT cannot handle more than 3 buttons and expects 0 instead.
+ if (button >= gnu.x11.Input.BUTTON3)
+ button = 0;
+ drag = button;
+
+ Component target =
+ findMouseEventTarget(awtWindow, event.getEventX(), event.getEventY());
+ if(target == null)
+ {
+ target = awtWindow;
+ }
+
+ MouseEvent mp = new MouseEvent(target, MouseEvent.MOUSE_PRESSED,
+ System.currentTimeMillis(),
+ KeyboardMapping.mapModifiers(event.getState())
+ | buttonToModifier(button),
+ event.getEventX(), event.getEventY(),
+ 1, false, button);
+ Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mp);
+ }
+
+ private void handleButtonRelease(ButtonRelease event)
{
+ Integer key = new Integer(event.getEventWindowID());
+ Window awtWindow = (Window) windows.get(key);
- Integer key = null;
- Window awtWindow = null;
+ int button = event.detail();
+
+ // AWT cannot handle more than 3 buttons and expects 0 instead.
+ if (button >= gnu.x11.Input.BUTTON3)
+ button = 0;
+ drag = -1;
+
+ Component target =
+ findMouseEventTarget(awtWindow, event.getEventX(), event.getEventY());
+ if(target == null)
+ {
+ target = awtWindow;
+ }
+
+ MouseEvent mr = new MouseEvent(target, MouseEvent.MOUSE_RELEASED,
+ System.currentTimeMillis(),
+ KeyboardMapping.mapModifiers(event.getState())
+ | buttonToModifier(button),
+ event.getEventX(), event.getEventY(),
+ 1, false, button);
+ Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mr);
+ }
+
+
+ private void handleMotionNotify(MotionNotify event)
+ {
+ Integer key = new Integer(event.getEventWindowID());
+ Window awtWindow = (Window) windows.get(key);
+
+ int button = event.detail();
+
+ // AWT cannot handle more than 3 buttons and expects 0 instead.
+ if (button >= gnu.x11.Input.BUTTON3)
+ button = 0;
+
+ MouseEvent mm = null;
+ if (drag == -1)
+ {
+ mm = new MouseEvent(awtWindow, MouseEvent.MOUSE_MOVED,
+ System.currentTimeMillis(),
+ KeyboardMapping.mapModifiers(event.getState())
+ | buttonToModifier(button),
+ event.getEventX(), event.getEventY(),
+ 1, false);
+ }
+ else
+ {
+ mm = new MouseEvent(awtWindow, MouseEvent.MOUSE_DRAGGED,
+ System.currentTimeMillis(),
+ KeyboardMapping.mapModifiers(event.getState())
+ | buttonToModifier(drag),
+ event.getEventX(), event.getEventY(),
+ 1, false);
+ }
+ Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mm);
+ }
+
+ // FIME: refactor and make faster, maybe caching the event and handle
+ // and/or check timing (timing is generated for PropertyChange)?
+ private void handleExpose(Expose event)
+ {
+ Integer key = new Integer(event.window_id);
+ Window awtWindow = (Window) windows.get(key);
+
+ if (XToolkit.DEBUG)
+ System.err.println("expose request for window id: " + key);
+
+ Rectangle r = new Rectangle(event.x(), event.y(), event.width(),
+ event.height());
+ // We need to clear the background of the exposed rectangle.
+ assert awtWindow != null : "awtWindow == null for window ID: " + key;
+
+ Graphics g = awtWindow.getGraphics();
+ g.clearRect(r.x, r.y, r.width, r.height);
+ g.dispose();
+
+ XWindowPeer xwindow = (XWindowPeer) awtWindow.getPeer();
+ Insets i = xwindow.insets();
+ if (event.width() != awtWindow.getWidth() - i.left - i.right
+ || event.height() != awtWindow.getHeight() - i.top - i.bottom)
+ {
+ int w = event.width();
+ int h = event.height();
+ int x = xwindow.xwindow.x;
+ int y = xwindow.xwindow.y;
+
+ if (XToolkit.DEBUG)
+ System.err.println("Setting size on AWT window: " + w
+ + ", " + h + ", " + awtWindow.getWidth()
+ + ", " + awtWindow.getHeight());
+
+ // new width and height
+ xwindow.xwindow.width = w;
+ xwindow.xwindow.height = h;
+
+ // reshape the window
+ ComponentReshapeEvent cre =
+ new ComponentReshapeEvent(awtWindow, x, y, w, h);
+ awtWindow.dispatchEvent(cre);
+ }
+
+ ComponentEvent ce =
+ new ComponentEvent(awtWindow, ComponentEvent.COMPONENT_RESIZED);
+ awtWindow.dispatchEvent(ce);
+
+ PaintEvent pev = new PaintEvent(awtWindow, PaintEvent.UPDATE, r);
+ Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(pev);
+ }
+
+ private void handleDestroyNotify(DestroyNotify destroyNotify)
+ {
+ if (XToolkit.DEBUG)
+ System.err.println("DestroyNotify event: " + destroyNotify);
+
+ Integer key = new Integer(destroyNotify.event_window_id);
+ Window awtWindow = (Window) windows.get(key);
+
+ AWTEvent event = new WindowEvent(awtWindow, WindowEvent.WINDOW_CLOSED);
+ Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
+ }
+
+ private void handleClientMessage(ClientMessage clientMessage)
+ {
+ if (XToolkit.DEBUG)
+ System.err.println("ClientMessage event: " + clientMessage);
+
+ if (clientMessage.delete_window())
+ {
+ if (XToolkit.DEBUG)
+ System.err.println("ClientMessage is a delete_window event");
+
+ Integer key = new Integer(clientMessage.window_id);
+ Window awtWindow = (Window) windows.get(key);
+
+ AWTEvent event = new WindowEvent(awtWindow, WindowEvent.WINDOW_CLOSING);
+ Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
+ }
+ }
+
+ private void handleEvent(Event xEvent)
+ {
if (XToolkit.DEBUG)
System.err.println("fetched event: " + xEvent);
- switch (xEvent.code())
+
+ switch (xEvent.code() & 0x7f)
{
case ButtonPress.CODE:
- ButtonPress bp = (ButtonPress) xEvent;
- key= new Integer(bp.event_window_id);
- awtWindow = (Window) windows.get(key);
- // Create and post the mouse event.
- int button = bp.detail();
-
- // AWT cannot handle more than 3 buttons and expects 0 instead.
- if (button >= gnu.x11.Input.BUTTON3)
- button = 0;
- drag = button;
-
- MouseEvent mp = new MouseEvent(awtWindow, MouseEvent.MOUSE_PRESSED,
- System.currentTimeMillis(),
- KeyboardMapping.mapModifiers(bp.state()) | buttonToModifier(button),
- bp.event_x(), bp.event_y(),
- 1, false, button);
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mp);
+ this.handleButtonPress((ButtonPress) xEvent);
break;
case ButtonRelease.CODE:
- ButtonRelease br = (ButtonRelease) xEvent;
- key= new Integer(br.event_window_id);
- awtWindow = (Window) windows.get(key);
-
- button = br.detail();
- // AWT cannot handle more than 3 buttons and expects 0 instead.
- if (button >= gnu.x11.Input.BUTTON3)
- button = 0;
- drag = -1;
- MouseEvent mr = new MouseEvent(awtWindow, MouseEvent.MOUSE_RELEASED,
- System.currentTimeMillis(),
- KeyboardMapping.mapModifiers(br.state()) | buttonToModifier(button),
- br.event_x(), br.event_y(),
- 1, false, button);
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mr);
+ this.handleButtonRelease((ButtonRelease) xEvent);
break;
case MotionNotify.CODE:
- MotionNotify mn = (MotionNotify) xEvent;
- key= new Integer(mn.event_window_id);
- awtWindow = (Window) windows.get(key);
-
- MouseEvent mm;
- if (drag == -1)
- {
- mm = new MouseEvent(awtWindow, MouseEvent.MOUSE_MOVED,
- System.currentTimeMillis(), 0,
- mn.event_x(), mn.event_y(),
- 1, false);
- }
- else
- {
- mm = new MouseEvent(awtWindow, MouseEvent.MOUSE_DRAGGED,
- System.currentTimeMillis(), 0,
- mn.event_x(), mn.event_y(),
- 1, false);
- }
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(mm);
- break;
- case ConfigureNotify.CODE:
- key= new Integer(((ConfigureNotify) xEvent).event_window_id);
- awtWindow = (Window) windows.get(key);
- ConfigureNotify c = (ConfigureNotify) xEvent;
- if (XToolkit.DEBUG)
- System.err.println("resize request for window id: " + key);
-
- // Detect and report size changes.
- XWindowPeer xwindow = (XWindowPeer) awtWindow.getPeer();
- Insets i = xwindow.insets();
- if (c.width() != awtWindow.getWidth() - i.left - i.right
- || c.height() != awtWindow.getHeight() - i.top - i.bottom)
- {
- if (XToolkit.DEBUG)
- System.err.println("Setting size on AWT window: " + c.width()
- + ", " + c.height() + ", " + awtWindow.getWidth()
- + ", " + awtWindow.getHeight());
- xwindow.callback = true;
- xwindow.xwindow.width = c.width();
- xwindow.xwindow.height = c.height();
- awtWindow.setSize(c.width() + i.left + i.right,
- c.height() + i.top + i.bottom);
- xwindow.callback = false;
- }
+ this.handleMotionNotify((MotionNotify) xEvent);
break;
case Expose.CODE:
- key= new Integer(((Expose) xEvent).window_id);
- awtWindow = (Window) windows.get(key);
- Expose exp = (Expose) xEvent;
- if (XToolkit.DEBUG)
- System.err.println("expose request for window id: " + key);
- Rectangle r = new Rectangle(exp.x(), exp.y(), exp.width(),
- exp.height());
- //System.err.println("expose paint: " + r);
- // We need to clear the background of the exposed rectangle.
- assert awtWindow != null : "awtWindow == null for window ID: " + key;
- Graphics g = awtWindow.getGraphics();
- g.clearRect(r.x, r.y, r.width, r.height);
- g.dispose();
- PaintEvent pev = new PaintEvent(awtWindow, PaintEvent.PAINT, r);
- Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(pev);
+ this.handleExpose((Expose) xEvent);
break;
case KeyPress.CODE:
case KeyRelease.CODE:
- key = new Integer(((Input) xEvent).event_window_id);
- awtWindow = (Window) windows.get(key);
+ Integer key = new Integer(((Input) xEvent).getEventWindowID());
+ Window awtWindow = (Window) windows.get(key);
handleKeyEvent(xEvent, awtWindow);
break;
+ case DestroyNotify.CODE:
+ this.handleDestroyNotify((DestroyNotify) xEvent);
+ break;
+ case ClientMessage.CODE:
+ this.handleClientMessage((ClientMessage) xEvent);
+ break;
+ case PropertyNotify.CODE:
+ key = new Integer (((PropertyNotify) xEvent).getWindowID());
+ awtWindow = (Window) windows.get(key);
+ AWTEvent event = new WindowEvent(awtWindow, WindowEvent.WINDOW_STATE_CHANGED);
+ Toolkit.getDefaultToolkit().getSystemEventQueue().postEvent(event);
+ break;
default:
if (XToolkit.DEBUG)
System.err.println("Unhandled X event: " + xEvent);
@@ -280,7 +386,7 @@ public class XEventPump
{
Input keyEvent = (Input) xEvent;
int xKeyCode = keyEvent.detail();
- int xMods = keyEvent.state();
+ int xMods = keyEvent.getState();
int keyCode = KeyboardMapping.mapToKeyCode(xEvent.display.input, xKeyCode,
xMods);
char keyChar = KeyboardMapping.mapToKeyChar(xEvent.display.input, xKeyCode,
@@ -334,5 +440,47 @@ public class XEventPump
return 0;
}
+
+ /**
+ * Finds the heavyweight mouse event target.
+ *
+ * @param src the original source of the event
+ *
+ * @param pt the event coordinates
+ *
+ * @return the real mouse event target
+ */
+ private Component findMouseEventTarget(Component src, int x, int y)
+ {
+ Component found = null;
+ if (src instanceof Container)
+ {
+ Container cont = (Container) src;
+ int numChildren = cont.getComponentCount();
+ for (int i = 0; i < numChildren && found == null; i++)
+ {
+ Component child = cont.getComponent(i);
+ if (child != null && child.isVisible()
+ && child.contains(x - child.getX(), y - child.getY()))
+ {
+ if (child instanceof Container)
+ {
+ Component deeper = findMouseEventTarget(child,
+ x - child.getX(),
+ y - child.getY());
+ if (deeper != null)
+ found = deeper;
+ }
+ else if (! child.isLightweight())
+ found = child;
+ }
+ }
+ }
+
+ // Consider the source itself.
+ if (found == null && src.contains(x, y) && ! src.isLightweight())
+ found = src;
+ return found;
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java
index 0a96a61..4372c965 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XFontPeer.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.awt.peer.x;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.AWTError;
import java.awt.Font;
import java.awt.FontMetrics;
@@ -675,7 +677,7 @@ public class XFontPeer
*/
static String encodeFont(String name, int style, int size)
{
- StringBuilder key = new StringBuilder();
+ CPStringBuilder key = new CPStringBuilder();
key.append(validName(name));
key.append('.');
switch (style)
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java b/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java
index 7424dc6..a355c68 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XFramePeer.java
@@ -93,8 +93,7 @@ public class XFramePeer
public int getState()
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ return 0;
}
public void setState(int state)
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java
index 9512966..0339a42 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XGraphics2D.java
@@ -313,7 +313,7 @@ public class XGraphics2D
{
// TODO: Optimize for different standard bit-depths.
Color c = (Color) p;
- XToolkit tk = (XToolkit) Toolkit.getDefaultToolkit();
+ /* XToolkit tk = (XToolkit) Toolkit.getDefaultToolkit();
HashMap colorMap = tk.colorMap;
gnu.x11.Color col = (gnu.x11.Color) colorMap.get(c);
if (col == null)
@@ -323,8 +323,10 @@ public class XGraphics2D
c.getGreen() * 256,
c.getBlue() * 256);
colorMap.put(c, col);
- }
- xgc.set_foreground(col);
+ }*/
+ //xgc.set_foreground(col);
+
+ xgc.set_foreground(c.getRGB());
foreground = c;
}
}
@@ -392,9 +394,23 @@ public class XGraphics2D
xdrawable.put_image(xgc, zpixmap, x, y);
imageCache.put(image, zpixmap);
} else {
- ZPixmap zpixmap = (ZPixmap) xdrawable.image(x, y, w, h,
- 0xffffffff,
- gnu.x11.image.Image.Format.ZPIXMAP);
+
+ // TODO optimize reusing the rectangles
+ Rectangle source =
+ new Rectangle(0, 0, xdrawable.width, xdrawable.height);
+ Rectangle target = new Rectangle(x, y, w, h);
+
+ Rectangle destination = source.intersection(target);
+
+ x = destination.x;
+ y = destination.y;
+ w = destination.width;
+ h = destination.height;
+
+ ZPixmap zpixmap =
+ (ZPixmap) xdrawable.image(x, y, w, h,
+ 0xffffffff,
+ gnu.x11.image.Image.Format.ZPIXMAP);
for (int yy = 0; yy < h; yy++)
{
for (int xx = 0; xx < w; xx++)
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java
index 85f72a4..becb92a 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsConfiguration.java
@@ -146,8 +146,7 @@ public class XGraphicsConfiguration
public AffineTransform getDefaultTransform()
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ return new AffineTransform();
}
public AffineTransform getNormalizingTransform()
@@ -158,8 +157,10 @@ public class XGraphicsConfiguration
public Rectangle getBounds()
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ Display d = device.getDisplay();
+ Screen screen = d.default_screen;
+
+ return new Rectangle(0, 0, screen.width, screen.height);
}
/**
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java
index eff5902..ca37f3a 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XGraphicsDevice.java
@@ -39,6 +39,7 @@ package gnu.java.awt.peer.x;
import gnu.classpath.SystemProperties;
import gnu.x11.Display;
+import gnu.x11.EscherServerConnectionException;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
@@ -127,9 +128,16 @@ public class XGraphicsDevice
Socket socket = createLocalSocket();
if (socket != null)
{
- display = new Display(socket, "localhost",
- displayName.display_no,
- displayName.screen_no);
+ try
+ {
+ display = new Display(socket, "localhost",
+ displayName.display_no,
+ displayName.screen_no);
+ }
+ catch (EscherServerConnectionException e)
+ {
+ throw new RuntimeException(e.getCause());
+ }
}
}
@@ -137,8 +145,17 @@ public class XGraphicsDevice
// when the connection is probably remote or when we couldn't load
// the LocalSocket class stuff.
if (display == null)
- display = new Display(displayName);
-
+ {
+ try
+ {
+ display = new Display(displayName);
+ }
+ catch (EscherServerConnectionException e)
+ {
+ throw new RuntimeException(e.getCause());
+ }
+ }
+
eventPump = new XEventPump(display);
}
return display;
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XImage.java b/libjava/classpath/gnu/java/awt/peer/x/XImage.java
index 7d4636b..fa94d00 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XImage.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XImage.java
@@ -39,13 +39,19 @@ exception statement from your version. */
package gnu.java.awt.peer.x;
import gnu.x11.Pixmap;
+import gnu.x11.image.ZPixmap;
import java.awt.Graphics;
import java.awt.GraphicsEnvironment;
import java.awt.Image;
+
+import java.awt.image.ColorModel;
+import java.awt.image.ImageConsumer;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
+
import java.util.Hashtable;
+import java.util.Vector;
public class XImage
extends Image
@@ -75,8 +81,7 @@ public class XImage
public ImageProducer getSource()
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ return new XImageProducer();
}
/**
@@ -108,4 +113,66 @@ public class XImage
{
pixmap.free();
}
+
+ protected class XImageProducer implements ImageProducer
+ {
+ private Vector<ImageConsumer> consumers = new Vector<ImageConsumer>();
+
+ public void addConsumer(ImageConsumer ic)
+ {
+ if (ic != null && !isConsumer(ic))
+ this.consumers.add(ic);
+ }
+
+ public boolean isConsumer(ImageConsumer ic)
+ {
+ return this.consumers.contains(ic);
+ }
+
+ public void removeConsumer(ImageConsumer ic)
+ {
+ if (ic != null)
+ this.consumers.remove(ic);
+ }
+
+ public void requestTopDownLeftRightResend(ImageConsumer ic)
+ {
+ /* just ignore the call */
+ }
+
+ public void startProduction(ImageConsumer ic)
+ {
+ this.addConsumer(ic);
+
+ for (ImageConsumer consumer : this.consumers)
+ {
+ int width = XImage.this.getWidth(null);
+ int height = XImage.this.getHeight(null);
+
+ XGraphics2D graphics = (XGraphics2D) getGraphics();
+ ColorModel model = graphics.getColorModel();
+ graphics.dispose();
+
+ ZPixmap zpixmap = (ZPixmap)
+ XImage.this.pixmap.image(0, 0, width, height,
+ 0xffffffff,
+ gnu.x11.image.Image.Format.ZPIXMAP);
+
+ int size = zpixmap.get_data_length();
+ System.out.println("size: " + size + ", w = " + width + ", h = " + height);
+
+ int [] pixel = new int[size];
+ for (int i = 0; i < size; i++)
+ pixel[i] = zpixmap.get_data_element(i);
+
+ consumer.setHints(ImageConsumer.SINGLEPASS);
+
+ consumer.setDimensions(width, height);
+ consumer.setPixels(0, 0, width, height, model, pixel, 0, width);
+ consumer.imageComplete(ImageConsumer.STATICIMAGEDONE);
+ }
+
+ System.out.println("done!");
+ }
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java b/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java
index c1724aa..af12574 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XToolkit.java
@@ -54,6 +54,7 @@ import java.awt.Frame;
import java.awt.GraphicsConfiguration;
import java.awt.GraphicsDevice;
import java.awt.GraphicsEnvironment;
+import java.awt.HeadlessException;
import java.awt.Image;
import java.awt.Label;
import java.awt.List;
@@ -120,11 +121,16 @@ import gnu.java.awt.ClasspathToolkit;
import gnu.java.awt.EmbeddedWindow;
import gnu.java.awt.font.OpenTypeFontPeer;
import gnu.java.awt.image.ImageConverter;
+import gnu.java.awt.java2d.AbstractGraphics2D;
import gnu.java.awt.peer.ClasspathFontPeer;
import gnu.java.awt.peer.EmbeddedWindowPeer;
+import gnu.java.awt.peer.swing.SwingButtonPeer;
import gnu.java.awt.peer.swing.SwingCanvasPeer;
+import gnu.java.awt.peer.swing.SwingCheckboxPeer;
import gnu.java.awt.peer.swing.SwingLabelPeer;
import gnu.java.awt.peer.swing.SwingPanelPeer;
+import gnu.java.awt.peer.swing.SwingTextAreaPeer;
+import gnu.java.awt.peer.swing.SwingTextFieldPeer;
public class XToolkit
extends ClasspathToolkit
@@ -232,18 +238,24 @@ public class XToolkit
protected ButtonPeer createButton(Button target)
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ checkHeadLess("No ButtonPeer can be created in an headless" +
+ "graphics environment.");
+
+ return new SwingButtonPeer(target);
}
protected TextFieldPeer createTextField(TextField target)
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ checkHeadLess("No TextFieldPeer can be created in an headless " +
+ "graphics environment.");
+
+ return new SwingTextFieldPeer(target);
}
protected LabelPeer createLabel(Label target)
{
+ checkHeadLess("No LabelPeer can be created in an headless graphics " +
+ "environment.");
return new SwingLabelPeer(target);
}
@@ -255,8 +267,10 @@ public class XToolkit
protected CheckboxPeer createCheckbox(Checkbox target)
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ checkHeadLess("No CheckboxPeer can be created in an headless graphics " +
+ "environment.");
+
+ return new SwingCheckboxPeer(target);
}
protected ScrollbarPeer createScrollbar(Scrollbar target)
@@ -273,8 +287,10 @@ public class XToolkit
protected TextAreaPeer createTextArea(TextArea target)
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ checkHeadLess("No TextAreaPeer can be created in an headless graphics " +
+ "environment.");
+
+ return new SwingTextAreaPeer(target);
}
protected ChoicePeer createChoice(Choice target)
@@ -514,14 +530,14 @@ public class XToolkit
public boolean prepareImage(Image image, int width, int height, ImageObserver observer)
{
- // Images are loaded synchronously, so we don't bother and return true.
- return true;
+ Image scaled = AbstractGraphics2D.prepareImage(image, width, height);
+ return checkImage(image, width, height, observer) == ImageObserver.ALLBITS;
}
public int checkImage(Image image, int width, int height, ImageObserver observer)
{
- // TODO: Implement this.
- throw new UnsupportedOperationException("Not yet implemented.");
+ // Images are loaded synchronously, so we don't bother and return true.
+ return ImageObserver.ALLBITS;
}
public Image createImage(ImageProducer producer)
@@ -638,4 +654,14 @@ public class XToolkit
return false;
}
+ private void checkHeadLess(String message) throws HeadlessException
+ {
+ if(GraphicsEnvironment.isHeadless())
+ {
+ if(message == null)
+ message = "This method cannot be called in headless mode.";
+
+ throw new HeadlessException(message);
+ }
+ }
}
diff --git a/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java b/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java
index f9184ed..930247d 100644
--- a/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java
+++ b/libjava/classpath/gnu/java/awt/peer/x/XWindowPeer.java
@@ -71,21 +71,16 @@ public class XWindowPeer
private static int standardSelect = Event.BUTTON_PRESS_MASK
| Event.BUTTON_RELEASE_MASK
| Event.POINTER_MOTION_MASK
- //| Event.RESIZE_REDIRECT_MASK
+ // | Event.RESIZE_REDIRECT_MASK //
| Event.EXPOSURE_MASK
- //| Event.PROPERTY_CHANGE_MASK
- | Event.STRUCTURE_NOTIFY_MASK
+ | Event.PROPERTY_CHANGE_MASK
+ //| Event.STRUCTURE_NOTIFY_MASK
+ //| Event.SUBSTRUCTURE_NOTIFY_MASK
| Event.KEY_PRESS_MASK
| Event.KEY_RELEASE_MASK
+ //| Event.VISIBILITY_CHANGE_MASK //
;
-
- /**
- * Indicates if we are in callback mode, that is when a property (like size)
- * is changed in reponse to a request from the X server and doesn't need
- * to be propagated back to the X server.
- */
- boolean callback = false;
-
+
/**
* The X window.
*/
@@ -110,8 +105,10 @@ public class XWindowPeer
int h = Math.max(window.getHeight(), 1);
xwindow = new Window(dev.getDisplay().default_root, x, y, w, h, 0, atts);
xwindow.select_input(standardSelect);
+
dev.getEventPump().registerWindow(xwindow, window);
-
+ xwindow.set_wm_delete_window();
+
boolean undecorated;
if (awtComponent instanceof Frame)
{
@@ -269,14 +266,9 @@ public class XWindowPeer
*/
public void reshape(int x, int y, int width, int height)
{
- // Need to substract insets because AWT size is including insets,
- // and X size is excluding insets.
- if (! callback)
- {
- Insets i = insets;
- xwindow.move_resize(x - i.left, y - i.right, width - i.left - i.right,
- height - i.top - i.bottom);
- }
+ Insets i = insets;
+ xwindow.move_resize(x - i.left, y - i.right, width - i.left - i.right,
+ height - i.top - i.bottom);
}
public Insets insets()
@@ -303,4 +295,9 @@ public class XWindowPeer
XGraphicsDevice dev = XToolkit.getDefaultDevice();
dev.getEventPump().unregisterWindow(xwindow);
}
+
+ public Window getXwindow()
+ {
+ return xwindow;
+ }
}
diff --git a/libjava/classpath/gnu/java/lang/CPStringBuilder.java b/libjava/classpath/gnu/java/lang/CPStringBuilder.java
new file mode 100644
index 0000000..27e7d2c
--- /dev/null
+++ b/libjava/classpath/gnu/java/lang/CPStringBuilder.java
@@ -0,0 +1,1161 @@
+/* ClasspathStringBuffer.java -- Growable strings without locking or copying
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang;
+
+import gnu.classpath.SystemProperties;
+
+import java.io.Serializable;
+
+/**
+ * This class is based on java.lang.AbstractStringBuffer but
+ * without the copying of the string by toString.
+ * If you modify this, please consider also modifying that code.
+ * This code is not thread-safe; limit its use to internal use within
+ * methods.
+ */
+public final class CPStringBuilder
+ implements Serializable, CharSequence, Appendable
+{
+
+ /**
+ * Index of next available character (and thus the size of the current
+ * string contents). Note that this has permissions set this way so that
+ * String can get the value.
+ *
+ * @serial the number of characters in the buffer
+ */
+ private int count;
+
+ /**
+ * The buffer. Note that this has permissions set this way so that String
+ * can get the value.
+ *
+ * @serial the buffer
+ */
+ private char[] value;
+
+ /**
+ * A flag to denote whether the string being created has been
+ * allocated to a {@link String} object. On construction,
+ * the character array, {@link #value} is referenced only
+ * by this class. Once {@link #toString()},
+ * {@link #substring(int)} or {@link #substring(int,int)}
+ * are called, the array is also referenced by a {@link String}
+ * object and this flag is set. Subsequent modifications to
+ * this buffer cause a new array to be allocated and the flag
+ * to be reset.
+ */
+ private boolean allocated = false;
+
+ /**
+ * The default capacity of a buffer.
+ * This can be configured using gnu.classpath.cpstringbuilder.capacity
+ */
+ private static final int DEFAULT_CAPACITY;
+
+ static
+ {
+ String cap =
+ SystemProperties.getProperty("gnu.classpath.cpstringbuilder.capacity");
+ if (cap == null)
+ DEFAULT_CAPACITY = 32;
+ else
+ DEFAULT_CAPACITY = Integer.parseInt(cap);
+ }
+
+ /**
+ * Create a new CPStringBuilder with the default capacity.
+ */
+ public CPStringBuilder()
+ {
+ this(DEFAULT_CAPACITY);
+ }
+
+ /**
+ * Create an empty <code>CPStringBuilder</code> with the specified initial
+ * capacity.
+ *
+ * @param capacity the initial capacity
+ * @throws NegativeArraySizeException if capacity is negative
+ */
+ public CPStringBuilder(int capacity)
+ {
+ value = new char[capacity];
+ }
+
+ /**
+ * Create a new <code>CPStringBuilder</code> with the characters in the
+ * specified <code>String</code>. Initial capacity will be the size of the
+ * String plus the default capacity.
+ *
+ * @param str the <code>String</code> to convert
+ * @throws NullPointerException if str is null
+ */
+ public CPStringBuilder(String str)
+ {
+ count = str.length();
+ value = new char[count + DEFAULT_CAPACITY];
+ str.getChars(0, count, value, 0);
+ }
+
+ /**
+ * Create a new <code>CPStringBuilder</code> with the characters in the
+ * specified <code>StringBuffer</code>. Initial capacity will be the size of the
+ * String plus the default capacity.
+ *
+ * @param str the <code>String</code> to convert
+ * @throws NullPointerException if str is null
+ */
+ public CPStringBuilder(StringBuffer str)
+ {
+ count = str.length();
+ value = new char[count + DEFAULT_CAPACITY];
+ str.getChars(0, count, value, 0);
+ }
+
+ /**
+ * Create a new <code>CPStringBuilder</code> with the characters in the
+ * specified <code>StringBuilder</code>. Initial capacity will be the size of the
+ * String plus the default capacity.
+ *
+ * @param str the <code>String</code> to convert
+ * @throws NullPointerException if str is null
+ */
+ public CPStringBuilder(StringBuilder str)
+ {
+ count = str.length();
+ value = new char[count + DEFAULT_CAPACITY];
+ str.getChars(0, count, value, 0);
+ }
+
+ /**
+ * Create a new <code>CPStringBuilder</code> with the characters in the
+ * specified <code>CharSequence</code>. Initial capacity will be the
+ * length of the sequence plus the default capacity; if the sequence
+ * reports a length less than or equal to 0, then the initial capacity
+ * will be the default.
+ *
+ * @param seq the initializing <code>CharSequence</code>
+ * @throws NullPointerException if str is null
+ * @since 1.5
+ */
+ public CPStringBuilder(CharSequence seq)
+ {
+ int len = seq.length();
+ count = len <= 0 ? 0 : len;
+ value = new char[count + DEFAULT_CAPACITY];
+ for (int i = 0; i < len; ++i)
+ value[i] = seq.charAt(i);
+ }
+
+ /**
+ * Set the length of this StringBuffer. If the new length is greater than
+ * the current length, all the new characters are set to '\0'. If the new
+ * length is less than the current length, the first <code>newLength</code>
+ * characters of the old array will be preserved, and the remaining
+ * characters are truncated.
+ *
+ * @param newLength the new length
+ * @throws IndexOutOfBoundsException if the new length is negative
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @see #length()
+ */
+ public void setLength(int newLength)
+ {
+ if (newLength < 0)
+ throw new StringIndexOutOfBoundsException(newLength);
+
+ int valueLength = value.length;
+
+ /* Always call ensureCapacity in order to preserve
+ copy-on-write semantics, except when the position
+ is simply being reset
+ */
+ if (newLength > 0)
+ ensureCapacity(newLength);
+
+ if (newLength < valueLength)
+ {
+ /* If the StringBuffer's value just grew, then we know that
+ value is newly allocated and the region between count and
+ newLength is filled with '\0'. */
+ count = newLength;
+ }
+ else
+ {
+ /* The StringBuffer's value doesn't need to grow. However,
+ we should clear out any cruft that may exist. */
+ while (count < newLength)
+ value[count++] = '\0';
+ }
+ }
+
+ /**
+ * Get the character at the specified index.
+ *
+ * @param index the index of the character to get, starting at 0
+ * @return the character at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public char charAt(int index)
+ {
+ if (index < 0 || index >= count)
+ throw new StringIndexOutOfBoundsException(index);
+ return value[index];
+ }
+
+ /**
+ * Get the code point at the specified index. This is like #charAt(int),
+ * but if the character is the start of a surrogate pair, and the
+ * following character completes the pair, then the corresponding
+ * supplementary code point is returned.
+ * @param index the index of the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public int codePointAt(int index)
+ {
+ return Character.codePointAt(value, index, count);
+ }
+
+ /**
+ * Get the code point before the specified index. This is like
+ * #codePointAt(int), but checks the characters at <code>index-1</code> and
+ * <code>index-2</code> to see if they form a supplementary code point.
+ * @param index the index just past the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public int codePointBefore(int index)
+ {
+ // Character.codePointBefore() doesn't perform this check. We
+ // could use the CharSequence overload, but this is just as easy.
+ if (index >= count)
+ throw new IndexOutOfBoundsException();
+ return Character.codePointBefore(value, index, 1);
+ }
+
+ /**
+ * Get the specified array of characters. <code>srcOffset - srcEnd</code>
+ * characters will be copied into the array you pass in.
+ *
+ * @param srcOffset the index to start copying from (inclusive)
+ * @param srcEnd the index to stop copying from (exclusive)
+ * @param dst the array to copy into
+ * @param dstOffset the index to start copying into
+ * @throws NullPointerException if dst is null
+ * @throws IndexOutOfBoundsException if any source or target indices are
+ * out of range (while unspecified, source problems cause a
+ * StringIndexOutOfBoundsException, and dest problems cause an
+ * ArrayIndexOutOfBoundsException)
+ * @see System#arraycopy(Object, int, Object, int, int)
+ */
+ public void getChars(int srcOffset, int srcEnd,
+ char[] dst, int dstOffset)
+ {
+ if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
+ throw new StringIndexOutOfBoundsException();
+ System.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+ }
+
+ /**
+ * Set the character at the specified index.
+ *
+ * @param index the index of the character to set starting at 0
+ * @param ch the value to set that character to
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public void setCharAt(int index, char ch)
+ {
+ if (index < 0 || index >= count)
+ throw new StringIndexOutOfBoundsException(index);
+ // Call ensureCapacity to enforce copy-on-write.
+ ensureCapacity(count);
+ value[index] = ch;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param obj the <code>Object</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(Object)
+ * @see #append(String)
+ */
+ public CPStringBuilder append(Object obj)
+ {
+ return append(String.valueOf(obj));
+ }
+
+ /**
+ * Append the <code>String</code> to this <code>StringBuffer</code>. If
+ * str is null, the String "null" is appended.
+ *
+ * @param str the <code>String</code> to append
+ * @return this <code>StringBuffer</code>
+ */
+ public CPStringBuilder append(String str)
+ {
+ if (str == null)
+ str = "null";
+ int len = str.length();
+ ensureCapacity(count + len);
+ str.getChars(0, len, value, count);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Append the <code>StringBuilder</code> value of the argument to this
+ * <code>StringBuilder</code>. This behaves the same as
+ * <code>append((Object) stringBuffer)</code>, except it is more efficient.
+ *
+ * @param stringBuffer the <code>StringBuilder</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see #append(Object)
+ */
+ public CPStringBuilder append(StringBuffer stringBuffer)
+ {
+ if (stringBuffer == null)
+ return append("null");
+ synchronized (stringBuffer)
+ {
+ int len = stringBuffer.length();
+ ensureCapacity(count + len);
+ stringBuffer.getChars(0, len, value, count);
+ count += len;
+ }
+ return this;
+ }
+
+ /**
+ * Append the <code>char</code> array to this <code>StringBuffer</code>.
+ * This is similar (but more efficient) than
+ * <code>append(new String(data))</code>, except in the case of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @see #append(char[], int, int)
+ */
+ public CPStringBuilder append(char[] data)
+ {
+ return append(data, 0, data.length);
+ }
+
+ /**
+ * Append part of the <code>char</code> array to this
+ * <code>StringBuffer</code>. This is similar (but more efficient) than
+ * <code>append(new String(data, offset, count))</code>, except in the case
+ * of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @param offset the start location in <code>str</code>
+ * @param count the number of characters to get from <code>str</code>
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws IndexOutOfBoundsException if offset or count is out of range
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public CPStringBuilder append(char[] data, int offset, int count)
+ {
+ if (offset < 0 || count < 0 || offset > data.length - count)
+ throw new StringIndexOutOfBoundsException();
+ ensureCapacity(this.count + count);
+ System.arraycopy(data, offset, value, this.count, count);
+ this.count += count;
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param bool the <code>boolean</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(boolean)
+ */
+ public CPStringBuilder append(boolean bool)
+ {
+ return append(bool ? "true" : "false");
+ }
+
+ /**
+ * Append the <code>char</code> to this <code>StringBuffer</code>.
+ *
+ * @param ch the <code>char</code> to append
+ * @return this <code>StringBuffer</code>
+ */
+ public CPStringBuilder append(char ch)
+ {
+ ensureCapacity(count + 1);
+ value[count++] = ch;
+ return this;
+ }
+
+ /**
+ * Append the characters in the <code>CharSequence</code> to this
+ * buffer.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @return this <code>StringBuffer</code>
+ * @since 1.5
+ */
+ public CPStringBuilder append(CharSequence seq)
+ {
+ return append(seq, 0, seq.length());
+ }
+
+ /**
+ * Append some characters from the <code>CharSequence</code> to this
+ * buffer. If the argument is null, the four characters "null" are
+ * appended.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @param start the starting index
+ * @param end one past the final index
+ * @return this <code>StringBuffer</code>
+ * @since 1.5
+ */
+ public CPStringBuilder append(CharSequence seq, int start, int end)
+ {
+ if (seq == null)
+ return append("null");
+ if (end - start > 0)
+ {
+ ensureCapacity(count + end - start);
+ for (; start < end; ++start)
+ value[count++] = seq.charAt(start);
+ }
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param inum the <code>int</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(int)
+ */
+ // This is native in libgcj, for efficiency.
+ public CPStringBuilder append(int inum)
+ {
+ return append(String.valueOf(inum));
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param lnum the <code>long</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(long)
+ */
+ public CPStringBuilder append(long lnum)
+ {
+ return append(Long.toString(lnum, 10));
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param fnum the <code>float</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(float)
+ */
+ public CPStringBuilder append(float fnum)
+ {
+ return append(Float.toString(fnum));
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param dnum the <code>double</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(double)
+ */
+ public CPStringBuilder append(double dnum)
+ {
+ return append(Double.toString(dnum));
+ }
+
+ /**
+ * Append the code point to this <code>StringBuffer</code>.
+ * This is like #append(char), but will append two characters
+ * if a supplementary code point is given.
+ *
+ * @param code the code point to append
+ * @return this <code>StringBuffer</code>
+ * @see Character#toChars(int, char[], int)
+ * @since 1.5
+ */
+ public CPStringBuilder appendCodePoint(int code)
+ {
+ int len = Character.charCount(code);
+ ensureCapacity(count + len);
+ Character.toChars(code, value, count);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Delete characters from this <code>StringBuffer</code>.
+ * <code>delete(10, 12)</code> will delete 10 and 11, but not 12. It is
+ * harmless for end to be larger than length().
+ *
+ * @param start the first character to delete
+ * @param end the index after the last character to delete
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @since 1.2
+ */
+ public CPStringBuilder delete(int start, int end)
+ {
+ if (start < 0 || start > count || start > end)
+ throw new StringIndexOutOfBoundsException(start);
+ if (end > count)
+ end = count;
+ ensureCapacity(count);
+ if (count - end != 0)
+ System.arraycopy(value, end, value, start, count - end);
+ count -= end - start;
+ return this;
+ }
+
+ /**
+ * Delete a character from this <code>StringBuffer</code>.
+ *
+ * @param index the index of the character to delete
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if index is out of bounds
+ * @since 1.2
+ */
+ public CPStringBuilder deleteCharAt(int index)
+ {
+ return delete(index, index + 1);
+ }
+
+ /**
+ * Replace characters between index <code>start</code> (inclusive) and
+ * <code>end</code> (exclusive) with <code>str</code>. If <code>end</code>
+ * is larger than the size of this StringBuffer, all characters after
+ * <code>start</code> are replaced.
+ *
+ * @param start the beginning index of characters to delete (inclusive)
+ * @param end the ending index of characters to delete (exclusive)
+ * @param str the new <code>String</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @throws NullPointerException if str is null
+ * @since 1.2
+ */
+ public CPStringBuilder replace(int start, int end, String str)
+ {
+ if (start < 0 || start > count || start > end)
+ throw new StringIndexOutOfBoundsException(start);
+
+ int len = str.length();
+ // Calculate the difference in 'count' after the replace.
+ int delta = len - (end > count ? count : end) + start;
+ ensureCapacity(count + delta);
+
+ if (delta != 0 && end < count)
+ System.arraycopy(value, end, value, end + delta, count - end);
+
+ str.getChars(0, len, value, start);
+ count += delta;
+ return this;
+ }
+
+ /**
+ * Insert a subarray of the <code>char[]</code> argument into this
+ * <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>char[]</code> to insert
+ * @param str_offset the index in <code>str</code> to start inserting from
+ * @param len the number of characters to insert
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if any index is out of bounds
+ * @since 1.2
+ */
+ public CPStringBuilder insert(int offset, char[] str, int str_offset, int len)
+ {
+ if (offset < 0 || offset > count || len < 0
+ || str_offset < 0 || str_offset > str.length - len)
+ throw new StringIndexOutOfBoundsException();
+ ensureCapacity(count + len);
+ System.arraycopy(value, offset, value, offset + len, count - offset);
+ System.arraycopy(str, str_offset, value, offset, len);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param obj the <code>Object</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @exception StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(Object)
+ */
+ public CPStringBuilder insert(int offset, Object obj)
+ {
+ return insert(offset, obj == null ? "null" : obj.toString());
+ }
+
+ /**
+ * Insert the <code>String</code> argument into this
+ * <code>StringBuffer</code>. If str is null, the String "null" is used
+ * instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>String</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public CPStringBuilder insert(int offset, String str)
+ {
+ if (offset < 0 || offset > count)
+ throw new StringIndexOutOfBoundsException(offset);
+ if (str == null)
+ str = "null";
+ int len = str.length();
+ ensureCapacity(count + len);
+ System.arraycopy(value, offset, value, offset + len, count - offset);
+ str.getChars(0, len, value, offset);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>CharSequence</code> argument into this
+ * <code>StringBuffer</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws IndexOutOfBoundsException if offset is out of bounds
+ * @since 1.5
+ */
+ public CPStringBuilder insert(int offset, CharSequence sequence)
+ {
+ if (sequence == null)
+ sequence = "null";
+ return insert(offset, sequence, 0, sequence.length());
+ }
+
+ /**
+ * Insert a subsequence of the <code>CharSequence</code> argument into this
+ * <code>StringBuffer</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @param start the starting index of the subsequence
+ * @param end one past the ending index of the subsequence
+ * @return this <code>StringBuffer</code>
+ * @throws IndexOutOfBoundsException if offset, start,
+ * or end are out of bounds
+ * @since 1.5
+ */
+ public CPStringBuilder insert(int offset, CharSequence sequence, int start, int end)
+ {
+ if (sequence == null)
+ sequence = "null";
+ if (start < 0 || end < 0 || start > end || end > sequence.length())
+ throw new IndexOutOfBoundsException();
+ int len = end - start;
+ ensureCapacity(count + len);
+ System.arraycopy(value, offset, value, offset + len, count - offset);
+ for (int i = start; i < end; ++i)
+ value[offset++] = sequence.charAt(i);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>char[]</code> argument into this
+ * <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param data the <code>char[]</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>data</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see #insert(int, char[], int, int)
+ */
+ public CPStringBuilder insert(int offset, char[] data)
+ {
+ return insert(offset, data, 0, data.length);
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param bool the <code>boolean</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(boolean)
+ */
+ public CPStringBuilder insert(int offset, boolean bool)
+ {
+ return insert(offset, bool ? "true" : "false");
+ }
+
+ /**
+ * Insert the <code>char</code> argument into this <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param ch the <code>char</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public CPStringBuilder insert(int offset, char ch)
+ {
+ if (offset < 0 || offset > count)
+ throw new StringIndexOutOfBoundsException(offset);
+ ensureCapacity(count + 1);
+ System.arraycopy(value, offset, value, offset + 1, count - offset);
+ value[offset] = ch;
+ count++;
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param inum the <code>int</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(int)
+ */
+ public CPStringBuilder insert(int offset, int inum)
+ {
+ return insert(offset, String.valueOf(inum));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param lnum the <code>long</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(long)
+ */
+ public CPStringBuilder insert(int offset, long lnum)
+ {
+ return insert(offset, Long.toString(lnum, 10));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param fnum the <code>float</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(float)
+ */
+ public CPStringBuilder insert(int offset, float fnum)
+ {
+ return insert(offset, Float.toString(fnum));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param dnum the <code>double</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(double)
+ */
+ public CPStringBuilder insert(int offset, double dnum)
+ {
+ return insert(offset, Double.toString(dnum));
+ }
+
+ /**
+ * Finds the first instance of a substring in this StringBuilder.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @see #indexOf(String, int)
+ */
+ public int indexOf(String str)
+ {
+ return indexOf(str, 0);
+ }
+
+ /**
+ * Finds the first instance of a String in this StringBuffer, starting at
+ * a given index. If starting index is less than 0, the search starts at
+ * the beginning of this String. If the starting index is greater than the
+ * length of this String, or the substring is not found, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @since 1.4
+ */
+ public int indexOf(String str, int fromIndex)
+ {
+ if (fromIndex < 0)
+ fromIndex = 0;
+ int olength = str.length();
+ int limit = count - olength;
+ String s = VMCPStringBuilder.toString(value, 0, count);
+ for (; fromIndex <= limit; ++fromIndex)
+ if (s.regionMatches(fromIndex, str, 0, olength))
+ return fromIndex;
+ return -1;
+ }
+
+ /**
+ * Finds the last instance of a substring in this StringBuffer.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @see #lastIndexOf(String, int)
+ * @since 1.4
+ */
+ public int lastIndexOf(String str)
+ {
+ return lastIndexOf(str, count - str.length());
+ }
+
+ /**
+ * Finds the last instance of a String in this StringBuffer, starting at a
+ * given index. If starting index is greater than the maximum valid index,
+ * then the search begins at the end of this String. If the starting index
+ * is less than zero, or the substring is not found, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @since 1.4
+ */
+ public int lastIndexOf(String str, int fromIndex)
+ {
+ fromIndex = Math.min(fromIndex, count - str.length());
+ String s = VMCPStringBuilder.toString(value, 0, count);
+ int olength = str.length();
+ for ( ; fromIndex >= 0; fromIndex--)
+ if (s.regionMatches(fromIndex, str, 0, olength))
+ return fromIndex;
+ return -1;
+ }
+
+ /**
+ * Reverse the characters in this StringBuffer. The same sequence of
+ * characters exists, but in the reverse index ordering.
+ *
+ * @return this <code>StringBuffer</code>
+ */
+ public CPStringBuilder reverse()
+ {
+ // Call ensureCapacity to enforce copy-on-write.
+ ensureCapacity(count);
+ for (int i = count >> 1, j = count - i; --i >= 0; ++j)
+ {
+ char c = value[i];
+ value[i] = value[j];
+ value[j] = c;
+ }
+ return this;
+ }
+
+ /**
+ * This may reduce the amount of memory used by the StringBuffer,
+ * by resizing the internal array to remove unused space. However,
+ * this method is not required to resize, so this behavior cannot
+ * be relied upon.
+ * @since 1.5
+ */
+ public void trimToSize()
+ {
+ int wouldSave = value.length - count;
+ // Some random heuristics: if we save less than 20 characters, who
+ // cares.
+ if (wouldSave < 20)
+ return;
+ // If we save more than 200 characters, shrink.
+ // If we save more than 1/4 of the buffer, shrink.
+ if (wouldSave > 200 || wouldSave * 4 > value.length)
+ allocateArray(count);
+ }
+
+ /**
+ * Return the number of code points between two indices in the
+ * <code>StringBuffer</code>. An unpaired surrogate counts as a
+ * code point for this purpose. Characters outside the indicated
+ * range are not examined, even if the range ends in the middle of a
+ * surrogate pair.
+ *
+ * @param start the starting index
+ * @param end one past the ending index
+ * @return the number of code points
+ * @since 1.5
+ */
+ public int codePointCount(int start, int end)
+ {
+ if (start < 0 || end >= count || start > end)
+ throw new StringIndexOutOfBoundsException();
+
+ int count = 0;
+ while (start < end)
+ {
+ char base = value[start];
+ if (base < Character.MIN_HIGH_SURROGATE
+ || base > Character.MAX_HIGH_SURROGATE
+ || start == end
+ || start == count
+ || value[start + 1] < Character.MIN_LOW_SURROGATE
+ || value[start + 1] > Character.MAX_LOW_SURROGATE)
+ {
+ // Nothing.
+ }
+ else
+ {
+ // Surrogate pair.
+ ++start;
+ }
+ ++start;
+ ++count;
+ }
+ return count;
+ }
+
+ /**
+ * Starting at the given index, this counts forward by the indicated
+ * number of code points, and then returns the resulting index. An
+ * unpaired surrogate counts as a single code point for this
+ * purpose.
+ *
+ * @param start the starting index
+ * @param codePoints the number of code points
+ * @return the resulting index
+ * @since 1.5
+ */
+ public int offsetByCodePoints(int start, int codePoints)
+ {
+ while (codePoints > 0)
+ {
+ char base = value[start];
+ if (base < Character.MIN_HIGH_SURROGATE
+ || base > Character.MAX_HIGH_SURROGATE
+ || start == count
+ || value[start + 1] < Character.MIN_LOW_SURROGATE
+ || value[start + 1] > Character.MAX_LOW_SURROGATE)
+ {
+ // Nothing.
+ }
+ else
+ {
+ // Surrogate pair.
+ ++start;
+ }
+ ++start;
+ --codePoints;
+ }
+ return start;
+ }
+
+ /**
+ * Increase the capacity of this <code>StringBuilder</code>. This will
+ * ensure that an expensive growing operation will not occur until either
+ * <code>minimumCapacity</code> is reached or the array has been allocated.
+ * The buffer is grown to either <code>minimumCapacity * 2</code>, if
+ * the array has been allocated or the larger of <code>minimumCapacity</code> and
+ * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+ *
+ * @param minimumCapacity the new capacity
+ * @see #length()
+ */
+ public void ensureCapacity(int minimumCapacity)
+ {
+ if (allocated || minimumCapacity > value.length)
+ {
+ if (minimumCapacity > value.length)
+ {
+ int max = value.length * 2 + 2;
+ minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
+ }
+ else
+ minimumCapacity *= 2;
+ allocateArray(minimumCapacity);
+ }
+ }
+
+ /**
+ * Allocates a new character array. This method is triggered when
+ * a write is attempted after the array has been passed to a
+ * {@link String} object, so that the builder does not modify
+ * the immutable {@link String}.
+ *
+ * @param capacity the size of the new array.
+ */
+ private void allocateArray(int capacity)
+ {
+ char[] nb = new char[capacity];
+ System.arraycopy(value, 0, nb, 0, count);
+ value = nb;
+ allocated = false;
+ }
+
+ /**
+ * Get the length of the <code>String</code> this <code>StringBuilder</code>
+ * would create. Not to be confused with the <em>capacity</em> of the
+ * <code>StringBuilder</code>.
+ *
+ * @return the length of this <code>StringBuilder</code>
+ * @see #capacity()
+ * @see #setLength(int)
+ */
+ public int length()
+ {
+ return count;
+ }
+
+ /**
+ * Creates a substring of this StringBuilder, starting at a specified index
+ * and ending at one character before a specified index. This is implemented
+ * the same as <code>substring(beginIndex, endIndex)</code>, to satisfy
+ * the CharSequence interface.
+ *
+ * @param beginIndex index to start at (inclusive, base 0)
+ * @param endIndex index to end at (exclusive)
+ * @return new String which is a substring of this StringBuilder
+ * @throws IndexOutOfBoundsException if beginIndex or endIndex is out of
+ * bounds
+ * @see #substring(int, int)
+ */
+ public CharSequence subSequence(int beginIndex, int endIndex)
+ {
+ return substring(beginIndex, endIndex);
+ }
+
+ /**
+ * Creates a substring of this CPStringBuilder, starting at a specified index
+ * and ending at the end of this StringBuilder.
+ *
+ * @param beginIndex index to start substring (base 0)
+ * @return new String which is a substring of this StringBuilder
+ * @throws StringIndexOutOfBoundsException if beginIndex is out of bounds
+ * @see #substring(int, int)
+ */
+ public String substring(int beginIndex)
+ {
+ return substring(beginIndex, count);
+ }
+
+ /**
+ * Creates a substring of this CPStringBuilder, starting at a specified index
+ * and ending at one character before a specified index.
+ *
+ * @param beginIndex index to start at (inclusive, base 0)
+ * @param endIndex index to end at (exclusive)
+ * @return new String which is a substring of this StringBuilder
+ * @throws StringIndexOutOfBoundsException if beginIndex or endIndex is out
+ * of bounds
+ */
+ public String substring(int beginIndex, int endIndex)
+ {
+ if (beginIndex < 0 || endIndex > count || endIndex < beginIndex)
+ throw new StringIndexOutOfBoundsException();
+ int len = endIndex - beginIndex;
+ if (len == 0)
+ return "";
+ allocated = true;
+ return VMCPStringBuilder.toString(value, beginIndex, len);
+ }
+
+ /**
+ * Convert this <code>CPStringBuilder</code> to a <code>String</code>. The
+ * String is composed of the characters currently in this StringBuilder. Note
+ * that the result is not a copy, so we flag this here and make sure to
+ * allocate a new array on the next write attempt (see {@link #ensureCapacity(int)}).
+ *
+ * @return the characters in this StringBuilder
+ */
+ public String toString()
+ {
+ allocated = true;
+ return VMCPStringBuilder.toString(value, 0, count);
+ }
+
+}
diff --git a/libjava/classpath/gnu/java/lang/ClassHelper.java b/libjava/classpath/gnu/java/lang/ClassHelper.java
index 49dce21..e190889 100644
--- a/libjava/classpath/gnu/java/lang/ClassHelper.java
+++ b/libjava/classpath/gnu/java/lang/ClassHelper.java
@@ -102,7 +102,7 @@ public class ClassHelper
String name = klass.getName();
if (arrayCount == 0)
return name;
- StringBuilder b = new StringBuilder(name.length() + 2 * arrayCount);
+ CPStringBuilder b = new CPStringBuilder(name.length() + 2 * arrayCount);
b.append(name);
for (int i = 0; i < arrayCount; ++i)
b.append("[]");
diff --git a/libjava/classpath/gnu/java/lang/reflect/GenericSignatureParser.java b/libjava/classpath/gnu/java/lang/reflect/GenericSignatureParser.java
index 06bc9e4a..e413c76 100644
--- a/libjava/classpath/gnu/java/lang/reflect/GenericSignatureParser.java
+++ b/libjava/classpath/gnu/java/lang/reflect/GenericSignatureParser.java
@@ -38,7 +38,19 @@ exception statement from your version. */
package gnu.java.lang.reflect;
-import java.lang.reflect.*;
+import gnu.java.lang.CPStringBuilder;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.GenericArrayType;
+import java.lang.reflect.GenericDeclaration;
+import java.lang.reflect.GenericSignatureFormatError;
+import java.lang.reflect.MalformedParameterizedTypeException;
+import java.lang.reflect.Method;
+import java.lang.reflect.ParameterizedType;
+import java.lang.reflect.Type;
+import java.lang.reflect.TypeVariable;
+import java.lang.reflect.WildcardType;
+
import java.util.ArrayList;
import java.util.Arrays;
@@ -184,7 +196,7 @@ final class ParameterizedTypeImpl extends TypeImpl implements ParameterizedType
public String toString()
{
- StringBuilder sb = new StringBuilder();
+ CPStringBuilder sb = new CPStringBuilder();
if (owner != null)
{
sb.append(owner);
diff --git a/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java b/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java
index 78c1718..612058d 100644
--- a/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java
+++ b/libjava/classpath/gnu/java/lang/reflect/TypeSignature.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.lang.reflect;
+import gnu.java.lang.CPStringBuilder;
+
import java.lang.reflect.Constructor;
import java.lang.reflect.Field;
import java.lang.reflect.Member;
@@ -239,7 +241,7 @@ public class TypeSignature
public static String getEncodingOfMethod(Method m)
{
Class[] paramTypes = m.getParameterTypes();
- StringBuilder buf = new StringBuilder("(");
+ CPStringBuilder buf = new CPStringBuilder("(");
for (int i = 0; i < paramTypes.length; i++)
buf.append(getEncodingOfClass(paramTypes[i].getName(), true));
buf.append(')').append(getEncodingOfClass(m.getReturnType().getName(),
@@ -261,7 +263,7 @@ public class TypeSignature
public static String getEncodingOfConstructor(Constructor c)
{
Class[] paramTypes = c.getParameterTypes();
- StringBuilder buf = new StringBuilder("(");
+ CPStringBuilder buf = new CPStringBuilder("(");
for (int i = 0; i < paramTypes.length; i++)
buf.append(getEncodingOfClass(paramTypes[i].getName(), true));
buf.append(")V");
diff --git a/libjava/classpath/gnu/java/math/GMP.java b/libjava/classpath/gnu/java/math/GMP.java
new file mode 100644
index 0000000..6fb4936
--- /dev/null
+++ b/libjava/classpath/gnu/java/math/GMP.java
@@ -0,0 +1,474 @@
+/* gnu.java.math.GMP -- Arbitary precision integers using GMP
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package gnu.java.math;
+
+import gnu.classpath.Pointer;
+
+/**
+ * Implement BigInteger using GMP
+ */
+public final class GMP
+{
+ private Pointer native_ptr;
+ private int refCount = 1;
+
+ public GMP()
+ {
+ super();
+
+ natInitialize();
+ }
+
+ private synchronized void acquireRef()
+ {
+ refCount++;
+ }
+
+ private synchronized void releaseRef()
+ {
+ refCount--;
+ if (refCount == 0)
+ {
+ natFinalize();
+ native_ptr = null;
+ }
+ }
+
+ protected void finalize()
+ {
+ releaseRef();
+ }
+
+
+ public void fromByteArray(byte[] v)
+ {
+ acquireRef();
+ natFromByteArray(v);
+ releaseRef();
+ }
+
+ public void fromBI(GMP x)
+ {
+ acquireRef();
+ x.acquireRef();
+ natFromBI(x.native_ptr);
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void fromLong(long n)
+ {
+ acquireRef();
+ natFromLong(n);
+ releaseRef();
+ }
+
+ public int fromString(String s, int rdx)
+ {
+ acquireRef();
+ int result = natFromString(s, rdx);
+ releaseRef();
+ return result;
+ }
+
+ public void fromSignedMagnitude(byte[] m, boolean isNegative)
+ {
+ acquireRef();
+ natFromSignedMagnitude(m, isNegative);
+ releaseRef();
+ }
+
+ public String toString(int b)
+ {
+ acquireRef();
+ String result = natToString(b);
+ releaseRef();
+ return result;
+ }
+
+ public void toByteArray(byte[] r)
+ {
+ acquireRef();
+ natToByteArray(r);
+ releaseRef();
+ }
+
+ public double doubleValue()
+ {
+ acquireRef();
+ double result = natDoubleValue();
+ releaseRef();
+ return result;
+ }
+
+ public int absIntValue()
+ {
+ acquireRef();
+ int result = natAbsIntValue();
+ releaseRef();
+ return result;
+ }
+
+ public int compare(GMP x)
+ {
+ acquireRef();
+ x.acquireRef();
+ int result = natCompare(x.native_ptr);
+ x.releaseRef();
+ releaseRef();
+ return result;
+ }
+
+ public void add(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natAdd(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void subtract(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natSubtract(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void multiply(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natMultiply(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void quotient(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natQuotient(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void remainder(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natRemainder(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void quotientAndRemainder(GMP x, GMP q, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ q.acquireRef();
+ r.acquireRef();
+ natQuotientAndRemainder(x.native_ptr, q.native_ptr, r.native_ptr);
+ r.releaseRef();
+ q.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void modulo(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natModulo(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void pow(int n, GMP r)
+ {
+ acquireRef();
+ r.acquireRef();
+ natPow(n, r.native_ptr);
+ r.releaseRef();
+ releaseRef();
+ }
+
+ public void modPow(GMP e, GMP m, GMP r)
+ {
+ acquireRef();
+ e.acquireRef();
+ m.acquireRef();
+ r.acquireRef();
+ natModPow(e.native_ptr, m.native_ptr, r.native_ptr);
+ r.releaseRef();
+ m.releaseRef();
+ e.releaseRef();
+ releaseRef();
+ }
+
+ public void modInverse(GMP m, GMP r)
+ {
+ acquireRef();
+ m.acquireRef();
+ r.acquireRef();
+ natModInverse(m.native_ptr, r.native_ptr);
+ r.releaseRef();
+ m.releaseRef();
+ releaseRef();
+ }
+
+ public void gcd(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natGCD(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void shiftLeft(int n, GMP r)
+ {
+ acquireRef();
+ r.acquireRef();
+ natShiftLeft(n, r.native_ptr);
+ r.releaseRef();
+ releaseRef();
+ }
+
+ public void shiftRight(int n, GMP r)
+ {
+ acquireRef();
+ r.acquireRef();
+ natShiftRight(n, r.native_ptr);
+ r.releaseRef();
+ releaseRef();
+ }
+
+ public void abs(GMP r)
+ {
+ acquireRef();
+ r.acquireRef();
+ natAbs(r.native_ptr);
+ r.releaseRef();
+ releaseRef();
+ }
+
+ public void negate(GMP r)
+ {
+ acquireRef();
+ r.acquireRef();
+ natNegate(r.native_ptr);
+ r.releaseRef();
+ releaseRef();
+ }
+
+ public int bitLength()
+ {
+ acquireRef();
+ int result = natBitLength();
+ releaseRef();
+ return result;
+ }
+
+ public int bitCount()
+ {
+ acquireRef();
+ int result = natSetBitCount();
+ releaseRef();
+ return result;
+ }
+
+ public void and(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natAnd(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void or(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natOr(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void xor(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natXor(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void andNot(GMP x, GMP r)
+ {
+ acquireRef();
+ x.acquireRef();
+ r.acquireRef();
+ natAndNot(x.native_ptr, r.native_ptr);
+ r.releaseRef();
+ x.releaseRef();
+ releaseRef();
+ }
+
+ public void not(GMP r)
+ {
+ acquireRef();
+ r.acquireRef();
+ natNot(r.native_ptr);
+ r.releaseRef();
+ releaseRef();
+ }
+
+ public void flipBit(int n, GMP r)
+ {
+ acquireRef();
+ r.acquireRef();
+ natFlipBit(n, r.native_ptr);
+ r.releaseRef();
+ releaseRef();
+ }
+
+ public int testBit(int n)
+ {
+ acquireRef();
+ int result = natTestBit(n);
+ releaseRef();
+ return result;
+ }
+
+ public void setBit(int n, boolean setIt, GMP r)
+ {
+ acquireRef();
+ r.acquireRef();
+ natSetBit(n, setIt, r.native_ptr);
+ r.releaseRef();
+ releaseRef();
+ }
+
+ public int testPrimality(int certainty)
+ {
+ acquireRef();
+ int result = natTestPrimality(certainty);
+ releaseRef();
+ return result;
+ }
+
+ public int lowestSetBit()
+ {
+ acquireRef();
+ int result = natLowestSetBit();
+ releaseRef();
+ return result;
+ }
+
+ // Native methods .........................................................
+
+ public static native void natInitializeLibrary();
+
+ private native void natInitialize();
+ private native void natFinalize();
+
+ private native void natFromLong(long n);
+ private native void natFromBI(Pointer x);
+ private native void natFromByteArray(byte[] v);
+ private native int natFromString(String s, int rdx);
+ private native void natFromSignedMagnitude(byte[] m, boolean isNegative);
+
+ private native String natToString(int base);
+ private native void natToByteArray(byte[] r);
+ private native int natAbsIntValue();
+ private native double natDoubleValue();
+
+ private native int natCompare(Pointer y);
+ private native void natAdd(Pointer x, Pointer r);
+ private native void natSubtract(Pointer x, Pointer r);
+ private native void natMultiply(Pointer x, Pointer r);
+ private native void natQuotient(Pointer x, Pointer r);
+ private native void natRemainder(Pointer x, Pointer r);
+ private native void natQuotientAndRemainder(Pointer x, Pointer q, Pointer r);
+ private native void natModulo(Pointer m, Pointer r);
+ private native void natPow(int n, Pointer r);
+ private native void natModPow(Pointer e, Pointer m, Pointer r);
+ private native void natModInverse(Pointer x, Pointer r);
+ private native void natGCD(Pointer x, Pointer r);
+ private native int natTestPrimality(int c);
+ private native void natShiftLeft(int n, Pointer r);
+ private native void natShiftRight(int n, Pointer r);
+ private native int natLowestSetBit();
+ private native void natAbs(Pointer r);
+ private native void natNegate(Pointer r);
+ private native int natBitLength();
+ private native int natSetBitCount();
+ private native void natXor(Pointer x, Pointer r);
+ private native void natOr(Pointer x, Pointer r);
+ private native void natAnd(Pointer x, Pointer r);
+ private native void natAndNot(Pointer x, Pointer r);
+ private native void natFlipBit(int n, Pointer r);
+ private native int natTestBit(int n);
+ private native void natSetBit(int n, boolean setIt, Pointer r);
+ private native void natNot(Pointer r);
+}
diff --git a/libjava/classpath/gnu/java/net/protocol/ftp/FTPConnection.java b/libjava/classpath/gnu/java/net/protocol/ftp/FTPConnection.java
index fd79019..98e8a86 100644
--- a/libjava/classpath/gnu/java/net/protocol/ftp/FTPConnection.java
+++ b/libjava/classpath/gnu/java/net/protocol/ftp/FTPConnection.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.net.protocol.ftp;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.net.CRLFInputStream;
import gnu.java.net.CRLFOutputStream;
import gnu.java.net.EmptyX509TrustManager;
@@ -621,7 +623,7 @@ public class FTPConnection
}
// Send PORT command
- StringBuffer buf = new StringBuffer(PORT);
+ CPStringBuilder buf = new CPStringBuilder(PORT);
buf.append(' ');
// Construct the address/port string form
byte[] address = localhost.getAddress();
@@ -686,7 +688,7 @@ public class FTPConnection
public void setRepresentationType(int type)
throws IOException
{
- StringBuffer buf = new StringBuffer(TYPE);
+ CPStringBuilder buf = new CPStringBuilder(TYPE);
buf.append(' ');
switch (type)
{
@@ -732,7 +734,7 @@ public class FTPConnection
public void setFileStructure(int structure)
throws IOException
{
- StringBuffer buf = new StringBuffer(STRU);
+ CPStringBuilder buf = new CPStringBuilder(STRU);
buf.append(' ');
switch (structure)
{
@@ -776,7 +778,7 @@ public class FTPConnection
public void setTransferMode(int mode)
throws IOException
{
- StringBuffer buf = new StringBuffer(MODE);
+ CPStringBuilder buf = new CPStringBuilder(MODE);
buf.append(' ');
switch (mode)
{
@@ -1286,7 +1288,7 @@ public class FTPConnection
}
else if (c == '-')
{
- StringBuffer buf = new StringBuffer(line.substring(4));
+ CPStringBuilder buf = new CPStringBuilder(line.substring(4));
buf.append('\n');
while(true)
{
diff --git a/libjava/classpath/gnu/java/net/protocol/http/ChunkedInputStream.java b/libjava/classpath/gnu/java/net/protocol/http/ChunkedInputStream.java
index 8abef71..8a30e51 100644
--- a/libjava/classpath/gnu/java/net/protocol/http/ChunkedInputStream.java
+++ b/libjava/classpath/gnu/java/net/protocol/http/ChunkedInputStream.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.net.protocol.http;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.InputStream;
import java.net.ProtocolException;
@@ -113,7 +115,7 @@ public class ChunkedInputStream
// Read chunk header
int c, last = 0;
boolean seenSemi = false;
- StringBuilder buf = new StringBuilder();
+ CPStringBuilder buf = new CPStringBuilder();
do
{
c = in.read();
diff --git a/libjava/classpath/gnu/java/net/protocol/http/Cookie.java b/libjava/classpath/gnu/java/net/protocol/http/Cookie.java
index 0be7a09..4482a12 100644
--- a/libjava/classpath/gnu/java/net/protocol/http/Cookie.java
+++ b/libjava/classpath/gnu/java/net/protocol/http/Cookie.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.net.protocol.http;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Date;
/**
@@ -139,7 +141,7 @@ public class Cookie
public String toString(boolean showPath, boolean showDomain)
{
- StringBuilder buf = new StringBuilder();
+ CPStringBuilder buf = new CPStringBuilder();
buf.append(name);
buf.append('=');
buf.append(value);
diff --git a/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java b/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java
index 9d19bfb..44b1a60 100644
--- a/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java
+++ b/libjava/classpath/gnu/java/net/protocol/http/HTTPConnection.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package gnu.java.net.protocol.http;
import gnu.classpath.SystemProperties;
+
+import gnu.java.lang.CPStringBuilder;
import gnu.java.net.EmptyX509TrustManager;
import java.io.BufferedInputStream;
@@ -668,7 +670,7 @@ public class HTTPConnection
Cookie[] cookies = cookieManager.getCookies(hostname, secure, path);
if (cookies != null && cookies.length > 0)
{
- StringBuilder buf = new StringBuilder();
+ CPStringBuilder buf = new CPStringBuilder();
buf.append("$Version=1");
for (int i = 0; i < cookies.length; i++)
{
@@ -827,7 +829,7 @@ public class HTTPConnection
*/
protected String getURI()
{
- StringBuilder buf = new StringBuilder();
+ CPStringBuilder buf = new CPStringBuilder();
buf.append(secure ? "https://" : "http://");
buf.append(hostname);
if (secure)
diff --git a/libjava/classpath/gnu/java/net/protocol/http/Headers.java b/libjava/classpath/gnu/java/net/protocol/http/Headers.java
index c8736bb..690a0c6 100644
--- a/libjava/classpath/gnu/java/net/protocol/http/Headers.java
+++ b/libjava/classpath/gnu/java/net/protocol/http/Headers.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.net.protocol.http;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.net.LineInputStream;
import java.io.IOException;
@@ -280,7 +282,7 @@ class Headers implements Iterable<Headers.HeaderElement>
(LineInputStream) in : new LineInputStream(in);
String name = null;
- StringBuilder value = new StringBuilder();
+ CPStringBuilder value = new CPStringBuilder();
while (true)
{
String line = lin.readLine();
diff --git a/libjava/classpath/gnu/java/net/protocol/http/LimitedLengthInputStream.java b/libjava/classpath/gnu/java/net/protocol/http/LimitedLengthInputStream.java
index 16cf56a2..568f830 100644
--- a/libjava/classpath/gnu/java/net/protocol/http/LimitedLengthInputStream.java
+++ b/libjava/classpath/gnu/java/net/protocol/http/LimitedLengthInputStream.java
@@ -1,5 +1,5 @@
/* LimitedLengthInputStream.java --
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -7,7 +7,7 @@ GNU Classpath is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2, or (at your option)
any later version.
-
+
GNU Classpath is distributed in the hope that it will be useful, but
WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
@@ -57,20 +57,17 @@ class LimitedLengthInputStream
private boolean eof;
private InputStream in;
private boolean doClose;
-
-
+
private void handleClose()
throws IOException
{
eof = true;
+
if (doClose)
- {
- in.close();
- }
+ in.close();
else
- {
- connection.release();
- }
+ connection.release();
+
in = null;
connection = null;
}
@@ -85,7 +82,7 @@ class LimitedLengthInputStream
* @param restrictLen if true the number of bytes that can be read
* from this stream will be limited to maxLen, otherwise the number
* of bytes is not restricted.
- *
+ *
* @param con the HTTPConnection associated with this stream
*
* @param doClose if true con will be closed when finished reading,
@@ -98,7 +95,6 @@ class LimitedLengthInputStream
HTTPConnection con,
boolean doClose)
throws IOException
-
{
this.in = in;
this.remainingLen = maxLen;
@@ -122,7 +118,7 @@ class LimitedLengthInputStream
return -1; // EOF
int r;
-
+
if (restrictLen)
{
r = in.read();
@@ -138,7 +134,7 @@ class LimitedLengthInputStream
if (r == -1)
handleClose();
}
-
+
return r;
}
@@ -156,12 +152,12 @@ class LimitedLengthInputStream
if (restrictLen && length > remainingLen)
length = (int) remainingLen;
-
+
int r = in.read(buffer, offset, length);
-
+
if (-1 == r)
handleClose();
-
+
if (restrictLen && r > 0)
{
remainingLen -= r;
@@ -182,7 +178,7 @@ class LimitedLengthInputStream
n = remainingLen;
long r = in.skip(n);
-
+
if (restrictLen)
{
remainingLen -= r;
@@ -214,7 +210,7 @@ class LimitedLengthInputStream
// it away.
doClose = true;
-
+
handleClose();
}
}
diff --git a/libjava/classpath/gnu/java/net/protocol/http/Request.java b/libjava/classpath/gnu/java/net/protocol/http/Request.java
index 90e3b7a..88e2fd0 100644
--- a/libjava/classpath/gnu/java/net/protocol/http/Request.java
+++ b/libjava/classpath/gnu/java/net/protocol/http/Request.java
@@ -38,6 +38,7 @@ exception statement from your version. */
package gnu.java.net.protocol.http;
+import gnu.java.lang.CPStringBuilder;
import gnu.java.net.LineInputStream;
import gnu.java.util.Base64;
@@ -628,7 +629,7 @@ public class Request
{
int len = text.length();
String key = null;
- StringBuilder buf = new StringBuilder();
+ CPStringBuilder buf = new CPStringBuilder();
Properties ret = new Properties();
boolean inQuote = false;
for (int i = 0; i < len; i++)
@@ -681,7 +682,7 @@ public class Request
{
int nc = connection.getNonceCount(nonce);
String hex = Integer.toHexString(nc);
- StringBuilder buf = new StringBuilder();
+ CPStringBuilder buf = new CPStringBuilder();
for (int i = 8 - hex.length(); i > 0; i--)
{
buf.append('0');
@@ -752,7 +753,7 @@ public class Request
int len = text.length();
String attr = null;
- StringBuilder buf = new StringBuilder();
+ CPStringBuilder buf = new CPStringBuilder();
boolean inQuote = false;
for (int i = 0; i <= len; i++)
{
diff --git a/libjava/classpath/gnu/java/net/protocol/jar/Handler.java b/libjava/classpath/gnu/java/net/protocol/jar/Handler.java
index c57d0a3..66f0fb6 100644
--- a/libjava/classpath/gnu/java/net/protocol/jar/Handler.java
+++ b/libjava/classpath/gnu/java/net/protocol/jar/Handler.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.net.protocol.jar;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.net.URLParseError;
import java.io.IOException;
@@ -180,7 +182,7 @@ public class Handler extends URLStreamHandler
tokens.add(token);
}
- StringBuffer path = new StringBuffer(url_string.length());
+ CPStringBuilder path = new CPStringBuilder(url_string.length());
path.append(url_string.substring(0, jar_stop + 1));
Iterator<String> it = tokens.iterator();
@@ -205,7 +207,7 @@ public class Handler extends URLStreamHandler
// Do the concatenation manually to avoid resize StringBuffer's
// internal buffer. The length of ref is not taken into consideration
// as it's a rare path.
- StringBuffer sb = new StringBuffer (file.length() + 5);
+ CPStringBuilder sb = new CPStringBuilder (file.length() + 5);
sb.append ("jar:");
sb.append (file);
if (ref != null)
diff --git a/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java b/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java
index 33dfa02..a1eb5e2 100644
--- a/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java
+++ b/libjava/classpath/gnu/java/nio/charset/ByteDecodeLoopHelper.java
@@ -119,6 +119,8 @@ public abstract class ByteDecodeLoopHelper
int inRemaining = in.remaining();
int outRemaining = out.remaining();
CoderResult result;
+
+ bailOut:
if (inRemaining <= outRemaining)
{
for (int i = 0; i < inRemaining; i++)
@@ -129,7 +131,7 @@ public abstract class ByteDecodeLoopHelper
{
inPos--;
result = CoderResult.unmappableForLength(1);
- break;
+ break bailOut;
}
char c = mapToChar(b);
outArray[outPos] = c;
@@ -147,7 +149,7 @@ public abstract class ByteDecodeLoopHelper
{
inPos--;
result = CoderResult.unmappableForLength(1);
- break;
+ break bailOut;
}
char c = mapToChar(b);
outArray[outPos] = c;
diff --git a/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java b/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java
index 5f703b1..b1a4f10 100644
--- a/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java
+++ b/libjava/classpath/gnu/java/nio/charset/ByteEncodeLoopHelper.java
@@ -120,6 +120,8 @@ public abstract class ByteEncodeLoopHelper
int inRemaining = in.remaining();
int outRemaining = out.remaining();
CoderResult result;
+
+ bailOut:
if (inRemaining <= outRemaining)
{
for (int i = 0; i < inRemaining; i++)
@@ -130,7 +132,7 @@ public abstract class ByteEncodeLoopHelper
{
inPos--;
result = CoderResult.unmappableForLength(1);
- break;
+ break bailOut;
}
byte b = mapToByte(inChar);
outArray[outPos] = b;
@@ -148,7 +150,7 @@ public abstract class ByteEncodeLoopHelper
{
inPos--;
result = CoderResult.unmappableForLength(1);
- break;
+ break bailOut;
}
byte b = mapToByte(inChar);
outArray[outPos] = b;
diff --git a/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java b/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java
index 4d5e1b0..9c3edef 100644
--- a/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java
+++ b/libjava/classpath/gnu/java/rmi/server/RMIClassLoaderImpl.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.rmi.server;
+import gnu.java.lang.CPStringBuilder;
+
import java.lang.reflect.Proxy;
import java.net.MalformedURLException;
import java.net.URL;
@@ -69,7 +71,7 @@ public class RMIClassLoaderImpl extends RMIClassLoaderSpi
if (urls.length == 0)
return null;
- StringBuffer annotation = new StringBuffer (64 * urls.length);
+ CPStringBuilder annotation = new CPStringBuilder (64 * urls.length);
for (int i = 0; i < urls.length; i++)
{
@@ -337,7 +339,7 @@ public class RMIClassLoaderImpl extends RMIClassLoaderSpi
if (urls.length == 0)
return null;
- StringBuffer annotation = new StringBuffer (64 * urls.length);
+ CPStringBuilder annotation = new CPStringBuilder (64 * urls.length);
for (int i = 0; i < urls.length; i++)
{
diff --git a/libjava/classpath/gnu/java/rmi/server/RMIHashes.java b/libjava/classpath/gnu/java/rmi/server/RMIHashes.java
index 5a41440..c3665a4 100644
--- a/libjava/classpath/gnu/java/rmi/server/RMIHashes.java
+++ b/libjava/classpath/gnu/java/rmi/server/RMIHashes.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.rmi.server;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.lang.reflect.TypeSignature;
import java.io.ByteArrayOutputStream;
@@ -61,7 +63,7 @@ public class RMIHashes
ByteArrayOutputStream digest_out = new ByteArrayOutputStream();
DataOutputStream data_out = new DataOutputStream (digest_out);
- StringBuffer sbuf = new StringBuffer();
+ CPStringBuilder sbuf = new CPStringBuilder();
sbuf.append(meth.getName());
sbuf.append('(');
Class params[] = meth.getParameterTypes();
diff --git a/libjava/classpath/gnu/java/security/Engine.java b/libjava/classpath/gnu/java/security/Engine.java
index 2cb2183..6c39d46 100644
--- a/libjava/classpath/gnu/java/security/Engine.java
+++ b/libjava/classpath/gnu/java/security/Engine.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.java.security;
+import gnu.java.lang.CPStringBuilder;
+
import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
@@ -150,7 +152,7 @@ public final class Engine
String alias;
int count = 0;
boolean algorithmFound = false;
- StringBuilder sb = new StringBuilder();
+ CPStringBuilder sb = new CPStringBuilder();
while (enumer.hasMoreElements())
{
key = (String) enumer.nextElement();
diff --git a/libjava/classpath/gnu/java/security/OID.java b/libjava/classpath/gnu/java/security/OID.java
index f61cf0f..a3d70e2 100644
--- a/libjava/classpath/gnu/java/security/OID.java
+++ b/libjava/classpath/gnu/java/security/OID.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.der.DEREncodingException;
import java.io.ByteArrayOutputStream;
@@ -359,7 +361,7 @@ public class OID implements Cloneable, Comparable, java.io.Serializable
return strRep;
else
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (int i = 0; i < components.length; i++)
{
buf.append((long) components[i] & 0xFFFFFFFFL);
diff --git a/libjava/classpath/gnu/java/security/PolicyFile.java b/libjava/classpath/gnu/java/security/PolicyFile.java
index 8da3a7d..e9c8116 100644
--- a/libjava/classpath/gnu/java/security/PolicyFile.java
+++ b/libjava/classpath/gnu/java/security/PolicyFile.java
@@ -39,6 +39,8 @@ package gnu.java.security;
import gnu.classpath.debug.Component;
import gnu.classpath.debug.SystemLogger;
+
+import gnu.java.lang.CPStringBuilder;
import gnu.java.security.action.GetPropertyAction;
import java.io.File;
@@ -150,7 +152,7 @@ public final class PolicyFile extends Policy
protected static final Logger logger = SystemLogger.SYSTEM;
// Added to cut redundant AccessController.doPrivileged calls
- private static GetPropertyAction prop = new GetPropertyAction("file.seperator");
+ private static GetPropertyAction prop = new GetPropertyAction("file.separator");
private static final String fs = (String) AccessController.doPrivileged(prop);
private static final String DEFAULT_POLICY =
@@ -629,8 +631,8 @@ public final class PolicyFile extends Policy
*/
private static String expand(final String s)
{
- final StringBuffer result = new StringBuffer();
- final StringBuffer prop = new StringBuffer();
+ final CPStringBuilder result = new CPStringBuilder();
+ final CPStringBuilder prop = new CPStringBuilder();
int state = 0;
for (int i = 0; i < s.length(); i++)
{
diff --git a/libjava/classpath/gnu/java/security/der/BitString.java b/libjava/classpath/gnu/java/security/der/BitString.java
index 02b1c03..ac10be2 100644
--- a/libjava/classpath/gnu/java/security/der/BitString.java
+++ b/libjava/classpath/gnu/java/security/der/BitString.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.der;
+import gnu.java.lang.CPStringBuilder;
+
import java.math.BigInteger;
import java.util.Arrays;
@@ -314,7 +316,7 @@ public class BitString implements Cloneable, Comparable
public String toString()
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
for (int i = 0, j = 7, k = 0; i < size(); i++)
{
sb.append((bytes[k] & 1 << j) != 0 ? "1" : "0");
diff --git a/libjava/classpath/gnu/java/security/der/DERReader.java b/libjava/classpath/gnu/java/security/der/DERReader.java
index 09ec1e2..cd552c8 100644
--- a/libjava/classpath/gnu/java/security/der/DERReader.java
+++ b/libjava/classpath/gnu/java/security/der/DERReader.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.der;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.OID;
import java.io.BufferedInputStream;
@@ -286,7 +288,7 @@ public class DERReader implements DER
private static String fromIso88591(byte[] bytes)
{
- StringBuffer str = new StringBuffer(bytes.length);
+ CPStringBuilder str = new CPStringBuilder(bytes.length);
for (int i = 0; i < bytes.length; i++)
str.append((char) (bytes[i] & 0xFF));
return str.toString();
@@ -296,7 +298,7 @@ public class DERReader implements DER
{
if ((bytes.length & 0x01) != 0)
throw new IOException("UTF-16 bytes are odd in length");
- StringBuffer str = new StringBuffer(bytes.length / 2);
+ CPStringBuilder str = new CPStringBuilder(bytes.length / 2);
for (int i = 0; i < bytes.length; i += 2)
{
char c = (char) ((bytes[i] << 8) & 0xFF);
@@ -308,7 +310,7 @@ public class DERReader implements DER
private static String fromUtf8(byte[] bytes) throws IOException
{
- StringBuffer str = new StringBuffer((int)(bytes.length / 1.5));
+ CPStringBuilder str = new CPStringBuilder((int)(bytes.length / 1.5));
for (int i = 0; i < bytes.length; )
{
char c = 0;
diff --git a/libjava/classpath/gnu/java/security/hash/Whirlpool.java b/libjava/classpath/gnu/java/security/hash/Whirlpool.java
index 89df5c5..aebe1ac 100644
--- a/libjava/classpath/gnu/java/security/hash/Whirlpool.java
+++ b/libjava/classpath/gnu/java/security/hash/Whirlpool.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.hash;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Configuration;
import gnu.java.security.Registry;
import gnu.java.security.util.Util;
@@ -177,10 +179,10 @@ public final class Whirlpool
{
log.fine("Static data");
log.fine("T0[]:");
- StringBuilder sb;
+ CPStringBuilder sb;
for (i = 0; i < 64; i++)
{
- sb = new StringBuilder();
+ sb = new CPStringBuilder();
for (j = 0; j < 4; j++)
sb.append("0x").append(Util.toString(T0[i * 4 + j])).append(", ");
@@ -189,7 +191,7 @@ public final class Whirlpool
log.fine("T1[]:");
for (i = 0; i < 64; i++)
{
- sb = new StringBuilder();
+ sb = new CPStringBuilder();
for (j = 0; j < 4; j++)
sb.append("0x").append(Util.toString(T1[i * 4 + j])).append(", ");
@@ -198,7 +200,7 @@ public final class Whirlpool
log.fine("T2[]:");
for (i = 0; i < 64; i++)
{
- sb = new StringBuilder();
+ sb = new CPStringBuilder();
for (j = 0; j < 4; j++)
sb.append("0x").append(Util.toString(T2[i * 4 + j])).append(", ");
@@ -207,7 +209,7 @@ public final class Whirlpool
log.fine("T3[]:");
for (i = 0; i < 64; i++)
{
- sb = new StringBuilder();
+ sb = new CPStringBuilder();
for (j = 0; j < 4; j++)
sb.append("0x").append(Util.toString(T3[i * 4 + j])).append(", ");
@@ -216,7 +218,7 @@ public final class Whirlpool
log.fine("\nT4[]:");
for (i = 0; i < 64; i++)
{
- sb = new StringBuilder();
+ sb = new CPStringBuilder();
for (j = 0; j < 4; j++)
sb.append("0x").append(Util.toString(T4[i * 4 + j])).append(", ");
@@ -225,7 +227,7 @@ public final class Whirlpool
log.fine("T5[]:");
for (i = 0; i < 64; i++)
{
- sb = new StringBuilder();
+ sb = new CPStringBuilder();
for (j = 0; j < 4; j++)
sb.append("0x").append(Util.toString(T5[i * 4 + j])).append(", ");
@@ -234,7 +236,7 @@ public final class Whirlpool
log.fine("T6[]:");
for (i = 0; i < 64; i++)
{
- sb = new StringBuilder();
+ sb = new CPStringBuilder();
for (j = 0; j < 4; j++)
sb.append("0x").append(Util.toString(T5[i * 4 + j])).append(", ");
@@ -243,7 +245,7 @@ public final class Whirlpool
log.fine("T7[]:");
for (i = 0; i < 64; i++)
{
- sb = new StringBuilder();
+ sb = new CPStringBuilder();
for (j = 0; j < 4; j++)
sb.append("0x").append(Util.toString(T5[i * 4 + j])).append(", ");
diff --git a/libjava/classpath/gnu/java/security/jce/sig/DSSParameters.java b/libjava/classpath/gnu/java/security/jce/sig/DSSParameters.java
index eaccb00..8a1cb4c 100644
--- a/libjava/classpath/gnu/java/security/jce/sig/DSSParameters.java
+++ b/libjava/classpath/gnu/java/security/jce/sig/DSSParameters.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.jce.sig;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Registry;
import gnu.java.security.der.DER;
import gnu.java.security.der.DERReader;
@@ -195,7 +197,7 @@ public class DSSParameters
protected String engineToString()
{
- StringBuffer sb = new StringBuffer("p=");
+ CPStringBuilder sb = new CPStringBuilder("p=");
if (p == null)
sb.append("???");
else
diff --git a/libjava/classpath/gnu/java/security/key/dss/DSSKey.java b/libjava/classpath/gnu/java/security/key/dss/DSSKey.java
index 657de8d..d4cf365 100644
--- a/libjava/classpath/gnu/java/security/key/dss/DSSKey.java
+++ b/libjava/classpath/gnu/java/security/key/dss/DSSKey.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.key.dss;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Registry;
import gnu.java.security.action.GetPropertyAction;
import gnu.java.security.util.FormatUtil;
@@ -181,7 +183,7 @@ public abstract class DSSKey
if (str == null)
{
String ls = (String) AccessController.doPrivileged(new GetPropertyAction("line.separator"));
- StringBuilder sb = new StringBuilder(ls)
+ CPStringBuilder sb = new CPStringBuilder(ls)
.append("defaultFormat=").append(defaultFormat).append(",")
.append(ls);
if (hasInheritedParameters())
diff --git a/libjava/classpath/gnu/java/security/key/dss/DSSPrivateKey.java b/libjava/classpath/gnu/java/security/key/dss/DSSPrivateKey.java
index 6ed8de8..633fcf7 100644
--- a/libjava/classpath/gnu/java/security/key/dss/DSSPrivateKey.java
+++ b/libjava/classpath/gnu/java/security/key/dss/DSSPrivateKey.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.key.dss;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Configuration;
import gnu.java.security.Registry;
import gnu.java.security.action.GetPropertyAction;
@@ -191,7 +193,7 @@ public class DSSPrivateKey
{
String ls = (String) AccessController.doPrivileged
(new GetPropertyAction("line.separator"));
- str = new StringBuilder(this.getClass().getName()).append("(")
+ str = new CPStringBuilder(this.getClass().getName()).append("(")
.append(super.toString()).append(",").append(ls)
.append("x=0x").append(Configuration.DEBUG ? x.toString(16)
: "**...*").append(ls)
diff --git a/libjava/classpath/gnu/java/security/key/dss/DSSPublicKey.java b/libjava/classpath/gnu/java/security/key/dss/DSSPublicKey.java
index 9e1c4cf..e5c5346 100644
--- a/libjava/classpath/gnu/java/security/key/dss/DSSPublicKey.java
+++ b/libjava/classpath/gnu/java/security/key/dss/DSSPublicKey.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.key.dss;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Registry;
import gnu.java.security.action.GetPropertyAction;
import gnu.java.security.key.IKeyPairCodec;
@@ -190,7 +192,7 @@ public class DSSPublicKey
{
String ls = (String) AccessController.doPrivileged
(new GetPropertyAction("line.separator"));
- str = new StringBuilder(this.getClass().getName()).append("(")
+ str = new CPStringBuilder(this.getClass().getName()).append("(")
.append(super.toString()).append(",").append(ls)
.append("y=0x").append(y.toString(16)).append(ls)
.append(")")
diff --git a/libjava/classpath/gnu/java/security/key/rsa/GnuRSAKey.java b/libjava/classpath/gnu/java/security/key/rsa/GnuRSAKey.java
index 4bdce40..0419ac9 100644
--- a/libjava/classpath/gnu/java/security/key/rsa/GnuRSAKey.java
+++ b/libjava/classpath/gnu/java/security/key/rsa/GnuRSAKey.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.key.rsa;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Registry;
import gnu.java.security.action.GetPropertyAction;
import gnu.java.security.util.FormatUtil;
@@ -163,7 +165,7 @@ public abstract class GnuRSAKey
{
String ls = (String) AccessController.doPrivileged
(new GetPropertyAction("line.separator"));
- str = new StringBuilder(ls)
+ str = new CPStringBuilder(ls)
.append("defaultFormat=").append(defaultFormat).append(",").append(ls)
.append("n=0x").append(n.toString(16)).append(",").append(ls)
.append("e=0x").append(e.toString(16))
diff --git a/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPrivateKey.java b/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPrivateKey.java
index 00a1b82..e554f2f 100644
--- a/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPrivateKey.java
+++ b/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPrivateKey.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.key.rsa;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Configuration;
import gnu.java.security.action.GetPropertyAction;
import gnu.java.security.Registry;
@@ -289,7 +291,7 @@ public class GnuRSAPrivateKey
{
String ls = (String) AccessController.doPrivileged
(new GetPropertyAction("line.separator"));
- str = new StringBuilder(this.getClass().getName()).append("(")
+ str = new CPStringBuilder(this.getClass().getName()).append("(")
.append(super.toString()).append(",").append(ls)
.append("d=0x").append(Configuration.DEBUG ? d.toString(16)
: "**...*").append(ls)
diff --git a/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPublicKey.java b/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPublicKey.java
index fe28d0b..3217130 100644
--- a/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPublicKey.java
+++ b/libjava/classpath/gnu/java/security/key/rsa/GnuRSAPublicKey.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.key.rsa;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Registry;
import gnu.java.security.action.GetPropertyAction;
import gnu.java.security.key.IKeyPairCodec;
@@ -178,7 +180,7 @@ public class GnuRSAPublicKey
{
String ls = (String) AccessController.doPrivileged
(new GetPropertyAction("line.separator"));
- str = new StringBuilder(this.getClass().getName()).append("(")
+ str = new CPStringBuilder(this.getClass().getName()).append("(")
.append(super.toString()).append(",").append(ls)
.append(")")
.toString();
diff --git a/libjava/classpath/gnu/java/security/provider/X509CertificateFactory.java b/libjava/classpath/gnu/java/security/provider/X509CertificateFactory.java
index 7d61779..6440331 100644
--- a/libjava/classpath/gnu/java/security/provider/X509CertificateFactory.java
+++ b/libjava/classpath/gnu/java/security/provider/X509CertificateFactory.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package gnu.java.security.provider;
import gnu.java.io.Base64InputStream;
+import gnu.java.lang.CPStringBuilder;
import gnu.java.security.x509.X509CRL;
import gnu.java.security.x509.X509CertPath;
import gnu.java.security.x509.X509Certificate;
@@ -193,7 +194,7 @@ public class X509CertificateFactory
if (i != 0x30)
{
inStream.reset();
- StringBuffer line = new StringBuffer(80);
+ CPStringBuilder line = new CPStringBuilder(80);
do
{
line.setLength(0);
@@ -252,7 +253,7 @@ public class X509CertificateFactory
if (i != 0x30)
{
inStream.reset();
- StringBuffer line = new StringBuffer(80);
+ CPStringBuilder line = new CPStringBuilder(80);
do
{
line.setLength(0);
diff --git a/libjava/classpath/gnu/java/security/util/ByteArray.java b/libjava/classpath/gnu/java/security/util/ByteArray.java
index 0d04d91..5144920 100644
--- a/libjava/classpath/gnu/java/security/util/ByteArray.java
+++ b/libjava/classpath/gnu/java/security/util/ByteArray.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -86,7 +88,7 @@ public final class ByteArray
public static String toHexString (byte[] buf, int off, int len, char sep)
{
- StringBuffer str = new StringBuffer();
+ CPStringBuilder str = new CPStringBuilder();
for (int i = 0; i < len; i++)
{
str.append (Character.forDigit (buf[i+off] >>> 4 & 0x0F, 16));
@@ -100,7 +102,7 @@ public final class ByteArray
public static String formatInt (int value, int radix, int len)
{
String s = Integer.toString (value, radix);
- StringBuffer buf = new StringBuffer ();
+ CPStringBuilder buf = new CPStringBuilder ();
for (int j = 0; j < len - s.length(); j++)
buf.append ("0");
buf.append (s);
diff --git a/libjava/classpath/gnu/java/security/util/Util.java b/libjava/classpath/gnu/java/security/util/Util.java
index c7a6810f..50d4466 100644
--- a/libjava/classpath/gnu/java/security/util/Util.java
+++ b/libjava/classpath/gnu/java/security/util/Util.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.math.BigInteger;
/**
@@ -296,7 +298,7 @@ public class Util
*/
public static final String toUnicodeString(byte[] ba, int offset, int length)
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
int i = 0;
int j = 0;
int k;
@@ -328,7 +330,7 @@ public class Util
*/
public static String toUnicodeString(int[] ia)
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
int i = 0;
int j = 0;
int k;
@@ -385,7 +387,7 @@ public class Util
{
if (data == null)
return m + "null\n";
- StringBuffer sb = new StringBuffer(length * 3);
+ CPStringBuilder sb = new CPStringBuilder(length * 3);
if (length > 32)
sb.append(m).append("Hexadecimal dump of ")
.append(length).append(" bytes...\n");
@@ -466,7 +468,7 @@ public class Util
b2 = buffer[1];
break;
}
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
int c;
boolean notleading = false;
do
diff --git a/libjava/classpath/gnu/java/security/x509/PolicyNodeImpl.java b/libjava/classpath/gnu/java/security/x509/PolicyNodeImpl.java
index 72cb4a9..60d3557 100644
--- a/libjava/classpath/gnu/java/security/x509/PolicyNodeImpl.java
+++ b/libjava/classpath/gnu/java/security/x509/PolicyNodeImpl.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.x509;
+import gnu.java.lang.CPStringBuilder;
+
import java.security.cert.PolicyNode;
import java.security.cert.PolicyQualifierInfo;
@@ -186,7 +188,7 @@ public final class PolicyNodeImpl implements PolicyNode
public String toString()
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (int i = 0; i < depth; i++)
buf.append(" ");
buf.append("(");
diff --git a/libjava/classpath/gnu/java/security/x509/Util.java b/libjava/classpath/gnu/java/security/x509/Util.java
index 1bd268a..7b6c89f 100644
--- a/libjava/classpath/gnu/java/security/x509/Util.java
+++ b/libjava/classpath/gnu/java/security/x509/Util.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.x509;
+import gnu.java.lang.CPStringBuilder;
+
/**
* A collection of useful class methods.
*
@@ -65,7 +67,7 @@ public final class Util
*/
public static String toHexString(byte[] buf, int off, int len)
{
- StringBuffer str = new StringBuffer();
+ CPStringBuilder str = new CPStringBuilder();
for (int i = 0; i < len; i++)
{
str.append(HEX.charAt(buf[i+off] >>> 4 & 0x0F));
@@ -94,7 +96,7 @@ public final class Util
*/
public static String toHexString(byte[] buf, int off, int len, char sep)
{
- StringBuffer str = new StringBuffer();
+ CPStringBuilder str = new CPStringBuilder();
for (int i = 0; i < len; i++)
{
str.append(HEX.charAt(buf[i+off] >>> 4 & 0x0F));
@@ -130,7 +132,7 @@ public final class Util
public static String hexDump(byte[] buf, int off, int len, String prefix)
{
String nl = System.getProperty("line.separator");
- StringBuffer str = new StringBuffer();
+ CPStringBuilder str = new CPStringBuilder();
int i = 0;
while (i < len)
{
@@ -174,7 +176,7 @@ public final class Util
public static String formatInt(int i, int radix, int len)
{
String s = Integer.toString(i, radix);
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (int j = 0; j < len - s.length(); j++)
buf.append("0");
buf.append(s);
diff --git a/libjava/classpath/gnu/java/security/x509/X500DistinguishedName.java b/libjava/classpath/gnu/java/security/x509/X500DistinguishedName.java
index 02adad7..e2e05c5 100644
--- a/libjava/classpath/gnu/java/security/x509/X500DistinguishedName.java
+++ b/libjava/classpath/gnu/java/security/x509/X500DistinguishedName.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.java.security.x509;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.OID;
import gnu.java.security.der.DER;
import gnu.java.security.der.DERReader;
@@ -285,7 +287,7 @@ public class X500DistinguishedName implements Principal
{
if (fixed && stringRep != null)
return stringRep;
- StringBuffer str = new StringBuffer();
+ CPStringBuilder str = new CPStringBuilder();
for (Iterator it = components.iterator(); it.hasNext(); )
{
Map m = (Map) it.next();
@@ -377,7 +379,7 @@ public class X500DistinguishedName implements Principal
private String readAttributeType(Reader in) throws IOException
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
int ch;
while ((ch = in.read()) != '=')
{
@@ -399,7 +401,7 @@ public class X500DistinguishedName implements Principal
private String readAttributeValue(Reader in) throws IOException
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
int ch = in.read();
if (ch == '#')
{
@@ -537,7 +539,7 @@ public class X500DistinguishedName implements Principal
private static String compressWS(String str)
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
char lastChar = 0;
for (int i = 0; i < str.length(); i++)
{
diff --git a/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java b/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java
index ae3e6ef..c2aae96 100644
--- a/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java
+++ b/libjava/classpath/gnu/java/text/AttributedFormatBuffer.java
@@ -36,21 +36,25 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.java.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.text.AttributedCharacterIterator;
import java.util.ArrayList;
import java.util.HashMap;
/**
* This class is an implementation of a FormatBuffer with attributes.
- *
+ * Note that this class is not thread-safe; external synchronisation
+ * should be used if an instance is to be accessed from multiple threads.
+ *
* @author Guilhem Lavaux <guilhem@kaffe.org>
* @date April 10, 2004
*/
public class AttributedFormatBuffer implements FormatBuffer
{
- private StringBuffer buffer;
- private ArrayList ranges;
- private ArrayList attributes;
+ private final CPStringBuilder buffer;
+ private final ArrayList ranges;
+ private final ArrayList attributes;
private int[] a_ranges;
private HashMap[] a_attributes;
private int startingRange;
@@ -60,9 +64,9 @@ public class AttributedFormatBuffer implements FormatBuffer
* This constructor accepts a StringBuffer. If the buffer contains
* already some characters they will not be attributed.
*/
- public AttributedFormatBuffer(StringBuffer buffer)
+ public AttributedFormatBuffer(CPStringBuilder buffer)
{
- this.buffer = buffer;
+ this.buffer = new CPStringBuilder(buffer);
this.ranges = new ArrayList();
this.attributes = new ArrayList();
this.defaultAttr = null;
@@ -77,7 +81,7 @@ public class AttributedFormatBuffer implements FormatBuffer
public AttributedFormatBuffer(int prebuffer)
{
- this(new StringBuffer(prebuffer));
+ this(new CPStringBuilder(prebuffer));
}
public AttributedFormatBuffer()
@@ -214,12 +218,12 @@ public class AttributedFormatBuffer implements FormatBuffer
}
/**
- * This method returns the internal StringBuffer describing
+ * This method returns the internal CPStringBuilder describing
* the attributed string.
*
- * @return An instance of StringBuffer which contains the string.
+ * @return An instance of CPStringBuilder which contains the string.
*/
- public StringBuffer getBuffer()
+ public CPStringBuilder getBuffer()
{
return buffer;
}
diff --git a/libjava/classpath/gnu/java/text/StringFormatBuffer.java b/libjava/classpath/gnu/java/text/StringFormatBuffer.java
index 19b621c..fc8d08e 100644
--- a/libjava/classpath/gnu/java/text/StringFormatBuffer.java
+++ b/libjava/classpath/gnu/java/text/StringFormatBuffer.java
@@ -47,7 +47,7 @@ import java.util.HashMap;
*/
public class StringFormatBuffer implements FormatBuffer
{
- private StringBuffer buffer;
+ private final StringBuffer buffer;
private AttributedCharacterIterator.Attribute defaultAttr;
public StringFormatBuffer(int prebuffer)
diff --git a/libjava/classpath/gnu/java/util/Base64.java b/libjava/classpath/gnu/java/util/Base64.java
index 592696b..4401a15 100644
--- a/libjava/classpath/gnu/java/util/Base64.java
+++ b/libjava/classpath/gnu/java/util/Base64.java
@@ -83,6 +83,8 @@ DAMAGES. */
package gnu.java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.ByteArrayOutputStream;
import java.io.IOException;
@@ -143,7 +145,7 @@ public final class Base64
int srcLength = buf.length - offset;
byte[] input = new byte[3];
int[] output = new int[4];
- StringBuffer out = new StringBuffer();
+ CPStringBuilder out = new CPStringBuilder();
int i = offset;
int chars = 0;
diff --git a/libjava/classpath/gnu/java/util/EmptyEnumeration.java b/libjava/classpath/gnu/java/util/EmptyEnumeration.java
index 46a82d6..ca2c56d73 100644
--- a/libjava/classpath/gnu/java/util/EmptyEnumeration.java
+++ b/libjava/classpath/gnu/java/util/EmptyEnumeration.java
@@ -51,25 +51,19 @@ import java.util.NoSuchElementException;
*
* @author Mark Wielaard (mark@klomp.org)
*/
-public final class EmptyEnumeration implements Enumeration, Serializable
+public final class EmptyEnumeration<T> implements Enumeration<T>, Serializable
{
/** The only instance of this class */
- private static final EmptyEnumeration instance = new EmptyEnumeration();
+ private static final EmptyEnumeration<Object> instance =
+ new EmptyEnumeration<Object>();
/**
- * Private constructor that creates a new empty Enumeration.
- */
- private EmptyEnumeration()
- {
- }
-
- /**
- * Returns the only instance of this class.
+ * Returns an instance of this class for Object.
* It can be shared by multiple objects and threads.
*
* @return the common empty enumeration
*/
- public static EmptyEnumeration getInstance()
+ public static EmptyEnumeration<Object> getInstance()
{
return instance;
}
@@ -89,7 +83,7 @@ public final class EmptyEnumeration implements Enumeration, Serializable
*
* @throws NoSuchElementException this is empty
*/
- public Object nextElement()
+ public T nextElement()
{
throw new NoSuchElementException();
}
diff --git a/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java b/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java
index 0fd4df3..c26fe63 100644
--- a/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java
+++ b/libjava/classpath/gnu/java/util/prefs/GConfBasedPreferences.java
@@ -165,11 +165,7 @@ public class GConfBasedPreferences
GConfBasedPreferences preferenceNode
= new GConfBasedPreferences(this, name, this.isUser);
-
- // register the node for to GConf so that it can listen
- // events outside the scope of the application
- backend.startWatchingNode(this.node);
-
+
return preferenceNode;
}
diff --git a/libjava/classpath/gnu/java/util/prefs/NodeWriter.java b/libjava/classpath/gnu/java/util/prefs/NodeWriter.java
index 231c047..d3c0953 100644
--- a/libjava/classpath/gnu/java/util/prefs/NodeWriter.java
+++ b/libjava/classpath/gnu/java/util/prefs/NodeWriter.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.java.util.prefs;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStream;
@@ -273,7 +275,7 @@ public class NodeWriter {
throws BackingStoreException, IOException
{
// construct String used for indentation
- StringBuffer indentBuffer = new StringBuffer(2*indent);
+ CPStringBuilder indentBuffer = new CPStringBuilder(2*indent);
for (int i=0; i < indent; i++)
indentBuffer.append(" ");
String indentString = indentBuffer.toString();
diff --git a/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java b/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java
index 5e12c71..3c02919 100644
--- a/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java
+++ b/libjava/classpath/gnu/java/util/prefs/gconf/GConfNativePeer.java
@@ -49,19 +49,11 @@ import java.util.prefs.BackingStoreException;
public final class GConfNativePeer
{
/**
- * Object to achieve locks for methods that need to be synchronized.
- */
- private static final Object[] semaphore = new Object[0];
-
- /**
* Creates a new instance of GConfNativePeer
*/
public GConfNativePeer()
{
- synchronized (semaphore)
- {
- init_class();
- }
+ init_class();
}
/**
@@ -72,31 +64,7 @@ public final class GConfNativePeer
*/
public boolean nodeExist(String node)
{
- return gconf_client_dir_exists(node);
- }
-
- /**
- * Add the node <code>node</code> to the list of nodes the GConf will watch.
- * An event is raised everytime this node is changed. You can add a node
- * multiple times.
- *
- * @param node the node to track.
- */
- public void startWatchingNode(String node)
- {
- gconf_client_add_dir(node);
- }
-
- /**
- * Remove the node <code>node</code> to the list of nodes the GConf is
- * watching. Note that if a node has been added multiple times, you must
- * remove it the same number of times before the remove takes effect.
- *
- * @param node the node you don't want to track anymore.
- */
- public void stopWatchingNode(String node)
- {
- gconf_client_remove_dir(node);
+ return gconf_dir_exists(node);
}
/**
@@ -111,7 +79,7 @@ public final class GConfNativePeer
*/
public boolean setString(String key, String value)
{
- return gconf_client_set_string(key, value);
+ return gconf_set_string(key, value);
}
/**
@@ -124,7 +92,7 @@ public final class GConfNativePeer
*/
public boolean unset(String key)
{
- return gconf_client_unset(key);
+ return gconf_unset(key);
}
/**
@@ -135,7 +103,7 @@ public final class GConfNativePeer
*/
public String getKey(String key)
{
- return gconf_client_get_string(key);
+ return gconf_get_string(key);
}
/**
@@ -149,7 +117,7 @@ public final class GConfNativePeer
*/
public List<String> getKeys(String node) throws BackingStoreException
{
- return gconf_client_all_keys(node);
+ return gconf_all_keys(node);
}
/**
@@ -161,7 +129,7 @@ public final class GConfNativePeer
*/
public List<String> getChildrenNodes(String node) throws BackingStoreException
{
- return gconf_client_all_nodes(node);
+ return gconf_all_nodes(node);
}
/**
@@ -185,17 +153,14 @@ public final class GConfNativePeer
*/
public void suggestSync() throws BackingStoreException
{
- gconf_client_suggest_sync();
+ gconf_suggest_sync();
}
protected void finalize() throws Throwable
{
try
{
- synchronized (semaphore)
- {
- finalize_class();
- }
+ finalize_class();
}
finally
{
@@ -215,18 +180,18 @@ public final class GConfNativePeer
* Initialize the GConf native peer and enable the object cache.
* It is meant to be used by the static initializer.
*/
- native static final private void init_id_cache();
+ native synchronized static final private void init_id_cache();
/**
* Initialize the GConf native peer. This is meant to be used by the
* class constructor.
*/
- native static final private void init_class();
+ native synchronized static final private void init_class();
/**
* Class finalizer.
*/
- native static final private void finalize_class();
+ native synchronized static final private void finalize_class();
/**
* Queries the GConf database to see if the given node exists, returning
@@ -235,23 +200,8 @@ public final class GConfNativePeer
* @param node the node to query for existence.
* @return true if the node exist, false otherwise.
*/
- native static final protected boolean gconf_client_dir_exists(String node);
-
- /**
- * Adds the given node to the list of nodes that GConf watches for
- * changes.
- *
- * @param node the node to watch for changes.
- */
- native static final protected void gconf_client_add_dir(String node);
-
- /**
- * Removes the given node from the list of nodes that GConf watches for
- * changes.
- *
- * @param node the node to remove from from the list of watched nodes.
- */
- native static final protected void gconf_client_remove_dir(String node);
+ native synchronized
+ static final protected boolean gconf_dir_exists(String node);
/**
* Sets the given key/value pair into the GConf database.
@@ -261,8 +211,8 @@ public final class GConfNativePeer
* @param value the value to associate to the given key.
* @return true if the change has effect, false otherwise.
*/
- native static final protected boolean gconf_client_set_string(String key,
- String value);
+ native synchronized
+ static final protected boolean gconf_set_string(String key, String value);
/**
* Returns the key associated to the given key. Null is returned if the
@@ -271,7 +221,8 @@ public final class GConfNativePeer
* @param key the key to return the value of.
* @return The value associated to the given key, or null.
*/
- native static final protected String gconf_client_get_string(String key);
+ native synchronized
+ static final protected String gconf_get_string(String key);
/**
* Usets the given key, removing the key from the database.
@@ -279,13 +230,13 @@ public final class GConfNativePeer
* @param key the key to remove.
* @return true if the operation success, false otherwise.
*/
- native static final protected boolean gconf_client_unset(String key);
+ native synchronized static final protected boolean gconf_unset(String key);
/**
* Suggest to the GConf native peer a sync with the database.
*
*/
- native static final protected void gconf_client_suggest_sync()
+ native synchronized static final protected void gconf_suggest_sync()
throws BackingStoreException;
/**
@@ -295,7 +246,7 @@ public final class GConfNativePeer
* @return A list of nodes under the given source node.
*/
native
- static final protected List<String> gconf_client_all_nodes(String node)
+ static synchronized final protected List<String> gconf_all_nodes(String node)
throws BackingStoreException;
/**
@@ -304,8 +255,8 @@ public final class GConfNativePeer
* @param node the source node.
* @return A list of all keys stored in the given node.
*/
- native
- static final protected List<String> gconf_client_all_keys(String node)
+ native synchronized
+ static final protected List<String> gconf_all_keys(String node)
throws BackingStoreException;
/**
@@ -314,7 +265,7 @@ public final class GConfNativePeer
* @param plain the String to escape.
* @return An escaped String for use with GConf.
*/
- native
+ native synchronized
static final protected String gconf_escape_key(String plain);
/**
@@ -324,7 +275,7 @@ public final class GConfNativePeer
* @param escaped key as returned by gconf_escape_key
* @return An unescaped key.
*/
- native
+ native synchronized
static final protected String gconf_unescape_key(String escaped);
static
diff --git a/libjava/classpath/gnu/java/util/regex/BacktrackStack.java b/libjava/classpath/gnu/java/util/regex/BacktrackStack.java
index d711945..6847261 100644
--- a/libjava/classpath/gnu/java/util/regex/BacktrackStack.java
+++ b/libjava/classpath/gnu/java/util/regex/BacktrackStack.java
@@ -44,69 +44,81 @@ package gnu.java.util.regex;
*
* @author Ito Kazumitsu</A>
*/
-final class BacktrackStack {
+final class BacktrackStack
+{
/** A set of data to be used for backtracking. */
- static class Backtrack {
- /** REToken to which to go back */
- REToken token;
+ static class Backtrack
+ {
+ /** REToken to which to go back */
+ REToken token;
/** CharIndexed on which matches are being searched for. */
- CharIndexed input;
+ CharIndexed input;
/** REMatch to be used by the REToken token. */
- REMatch match;
+ REMatch match;
/** Some parameter used by the token's backtrack method. */
- Object param;
- Backtrack(REToken token, CharIndexed input, REMatch match, Object param) {
- this.token = token;
- this.input = input;
- // REMatch may change before backtracking is needed. So we
- // keep a clone of it.
- this.match = (REMatch) match.clone();
- this.param = param;
- }
- }
-
- Backtrack[] stack;
- private int size;
- private int capacity;
- private static final int INITIAL_CAPACITY = 32;
- private static final int CAPACITY_INCREMENT = 16;
-
- BacktrackStack() {
- stack = new Backtrack[INITIAL_CAPACITY];
- size = 0;
- capacity = INITIAL_CAPACITY;
- }
-
- boolean empty() {
- return size == 0;
- }
-
- Backtrack peek() {
- return stack[size - 1];
- }
-
- Backtrack pop() {
- Backtrack bt = stack[--size];
- stack[size] = null;
- return bt;
- }
-
- void clear() {
- for (int i = 0; i < size; i++) {
- stack[i] = null;
- }
- size = 0;
- }
-
- void push(Backtrack bt) {
- if (size >= capacity) {
- capacity += CAPACITY_INCREMENT;
- Backtrack[] newStack = new Backtrack[capacity];
- System.arraycopy(stack, 0, newStack, 0, size);
- stack = newStack;
- }
- stack[size++] = bt;
+ Object param;
+ Backtrack (REToken token, CharIndexed input, REMatch match,
+ Object param)
+ {
+ this.token = token;
+ this.input = input;
+ // REMatch may change before backtracking is needed. So we
+ // keep a clone of it.
+ this.match = (REMatch) match.clone ();
+ this.param = param;
}
+ }
+
+ Backtrack[] stack;
+ private int size;
+ private int capacity;
+ private static final int INITIAL_CAPACITY = 32;
+ private static final int CAPACITY_INCREMENT = 16;
+
+ BacktrackStack ()
+ {
+ stack = new Backtrack[INITIAL_CAPACITY];
+ size = 0;
+ capacity = INITIAL_CAPACITY;
+ }
+
+ boolean empty ()
+ {
+ return size == 0;
+ }
+
+ Backtrack peek ()
+ {
+ return stack[size - 1];
+ }
+
+ Backtrack pop ()
+ {
+ Backtrack bt = stack[--size];
+ stack[size] = null;
+ return bt;
+ }
+
+ void clear ()
+ {
+ for (int i = 0; i < size; i++)
+ {
+ stack[i] = null;
+ }
+ size = 0;
+ }
+
+ void push (Backtrack bt)
+ {
+ if (size >= capacity)
+ {
+ capacity += CAPACITY_INCREMENT;
+ Backtrack[]newStack = new Backtrack[capacity];
+ System.arraycopy (stack, 0, newStack, 0, size);
+ stack = newStack;
+ }
+ stack[size++] = bt;
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/CharIndexed.java b/libjava/classpath/gnu/java/util/regex/CharIndexed.java
index 27e07b2..070547d 100644
--- a/libjava/classpath/gnu/java/util/regex/CharIndexed.java
+++ b/libjava/classpath/gnu/java/util/regex/CharIndexed.java
@@ -48,13 +48,14 @@ package gnu.java.util.regex;
*
* @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A>
*/
-public interface CharIndexed {
+public interface CharIndexed
+{
/**
* Defines a constant (0xFFFF was somewhat arbitrarily chosen)
* that can be returned by the charAt() function indicating that
* the specified index is out of range.
*/
- char OUT_OF_BOUNDS = '\uFFFF';
+ char OUT_OF_BOUNDS = '\uFFFF';
/**
* Returns the character at the given offset past the current cursor
@@ -68,66 +69,66 @@ public interface CharIndexed {
* @return the character at the specified index, or the OUT_OF_BOUNDS
* character defined by this interface.
*/
- char charAt(int index);
+ char charAt (int index);
/**
* Shifts the input buffer by a given number of positions. Returns
* true if the new cursor position is valid.
*/
- boolean move(int index);
+ boolean move (int index);
/**
* Shifts the input buffer by a given number of positions. Returns
* true if the new cursor position is valid or cursor position is at
* the end of input.
*/
- boolean move1(int index); // I cannot think of a better name for this.
+ boolean move1 (int index); // I cannot think of a better name for this.
/**
* Returns true if the most recent move() operation placed the cursor
* position at a valid position in the input.
*/
- boolean isValid();
+ boolean isValid ();
/**
* Returns another CharIndexed containing length characters to the left
* of the given index. The given length is an expected maximum and
* the returned CharIndexed may not necessarily contain so many characters.
*/
- CharIndexed lookBehind(int index, int length);
+ CharIndexed lookBehind (int index, int length);
/**
* Returns the effective length of this CharIndexed
*/
- int length();
+ int length ();
/**
* Sets the REMatch last found on this input.
*/
- void setLastMatch(REMatch match);
+ void setLastMatch (REMatch match);
/**
* Returns the REMatch last found on this input.
*/
- REMatch getLastMatch();
+ REMatch getLastMatch ();
/**
* Sets the information used for hitEnd().
*/
- void setHitEnd(REMatch match);
+ void setHitEnd (REMatch match);
/**
* Returns whether the matcher has hit the end of input.
*/
- boolean hitEnd();
+ boolean hitEnd ();
/**
* Returns the anchor.
*/
- int getAnchor();
+ int getAnchor ();
/**
* Sets the anchor.
*/
- void setAnchor(int anchor);
+ void setAnchor (int anchor);
}
diff --git a/libjava/classpath/gnu/java/util/regex/CharIndexedCharArray.java b/libjava/classpath/gnu/java/util/regex/CharIndexedCharArray.java
index 6f74c99..5657738 100644
--- a/libjava/classpath/gnu/java/util/regex/CharIndexedCharArray.java
+++ b/libjava/classpath/gnu/java/util/regex/CharIndexedCharArray.java
@@ -38,9 +38,11 @@ exception statement from your version. */
package gnu.java.util.regex;
import java.nio.CharBuffer;
-class CharIndexedCharArray extends CharIndexedCharSequence {
-
- CharIndexedCharArray(char[] str, int index) {
- super(CharBuffer.wrap(str), index);
- }
+class CharIndexedCharArray extends CharIndexedCharSequence
+{
+
+ CharIndexedCharArray (char[]str, int index)
+ {
+ super (CharBuffer.wrap (str), index);
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/CharIndexedCharSequence.java b/libjava/classpath/gnu/java/util/regex/CharIndexedCharSequence.java
index 8a0578e..bc3cbbd 100644
--- a/libjava/classpath/gnu/java/util/regex/CharIndexedCharSequence.java
+++ b/libjava/classpath/gnu/java/util/regex/CharIndexedCharSequence.java
@@ -38,58 +38,82 @@ exception statement from your version. */
package gnu.java.util.regex;
import java.io.Serializable;
-class CharIndexedCharSequence implements CharIndexed, Serializable {
- private CharSequence s;
- private int anchor;
- private int len;
-
- CharIndexedCharSequence(CharSequence s, int index) {
- this.s = s;
- len = s.length();
- anchor = index;
- }
-
- public char charAt(int index) {
- int pos = anchor + index;
- return ((pos < len) && (pos >= 0)) ? s.charAt(pos) : OUT_OF_BOUNDS;
- }
-
- public boolean isValid() {
- return (anchor < len);
- }
-
- public boolean move(int index) {
- return ((anchor += index) < len);
- }
-
- public boolean move1(int index) {
- return ((anchor += index) <= len);
- }
-
- public CharIndexed lookBehind(int index, int length) {
- if (length > (anchor + index)) length = anchor + index;
- return new CharIndexedCharSequence(s, anchor + index - length);
- }
-
- public int length() {
- return len - anchor;
- }
-
- private REMatch lastMatch;
- public void setLastMatch(REMatch match) {
- lastMatch = (REMatch)match.clone();
- lastMatch.anchor = anchor;
- }
- public REMatch getLastMatch() { return lastMatch; }
-
- private int rightmostTriedPosition = 0;
- public void setHitEnd(REMatch match) {
- int pos = anchor + match.index;
- if (pos > rightmostTriedPosition) rightmostTriedPosition = pos;
- }
- public boolean hitEnd() { return rightmostTriedPosition >= len; }
-
- public int getAnchor() { return anchor; }
- public void setAnchor(int anchor) { this.anchor = anchor; }
+class CharIndexedCharSequence implements CharIndexed, Serializable
+{
+ private CharSequence s;
+ private int anchor;
+ private int len;
+
+ CharIndexedCharSequence (CharSequence s, int index)
+ {
+ this.s = s;
+ len = s.length ();
+ anchor = index;
+ }
+
+ public char charAt (int index)
+ {
+ int pos = anchor + index;
+ return ((pos < len) && (pos >= 0)) ? s.charAt (pos) : OUT_OF_BOUNDS;
+ }
+
+ public boolean isValid ()
+ {
+ return (anchor < len);
+ }
+
+ public boolean move (int index)
+ {
+ return ((anchor += index) < len);
+ }
+
+ public boolean move1 (int index)
+ {
+ return ((anchor += index) <= len);
+ }
+
+ public CharIndexed lookBehind (int index, int length)
+ {
+ if (length > (anchor + index))
+ length = anchor + index;
+ return new CharIndexedCharSequence (s, anchor + index - length);
+ }
+
+ public int length ()
+ {
+ return len - anchor;
+ }
+
+ private REMatch lastMatch;
+ public void setLastMatch (REMatch match)
+ {
+ lastMatch = (REMatch) match.clone ();
+ lastMatch.anchor = anchor;
+ }
+ public REMatch getLastMatch ()
+ {
+ return lastMatch;
+ }
+
+ private int rightmostTriedPosition = 0;
+ public void setHitEnd (REMatch match)
+ {
+ int pos = anchor + match.index;
+ if (pos > rightmostTriedPosition)
+ rightmostTriedPosition = pos;
+ }
+ public boolean hitEnd ()
+ {
+ return rightmostTriedPosition >= len;
+ }
+
+ public int getAnchor ()
+ {
+ return anchor;
+ }
+ public void setAnchor (int anchor)
+ {
+ this.anchor = anchor;
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java b/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java
index 844fada..e42710b 100644
--- a/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java
+++ b/libjava/classpath/gnu/java/util/regex/CharIndexedInputStream.java
@@ -42,154 +42,212 @@ import java.io.InputStream;
// TODO: move(x) shouldn't rely on calling next() x times
-class CharIndexedInputStream implements CharIndexed {
- private static final int BUFFER_INCREMENT = 1024;
- private static final int UNKNOWN = Integer.MAX_VALUE; // value for end
-
- private BufferedInputStream br;
-
- // so that we don't try to reset() right away
- private int index = -1;
-
- private int bufsize = BUFFER_INCREMENT;
-
- private int end = UNKNOWN;
-
- private char cached = OUT_OF_BOUNDS;
-
- // Big enough for a \r\n pair
- // lookBehind[0] = most recent
- // lookBehind[1] = second most recent
- private char[] lookBehind = new char[] { OUT_OF_BOUNDS, OUT_OF_BOUNDS };
-
- CharIndexedInputStream(InputStream str, int index) {
- if (str instanceof BufferedInputStream) br = (BufferedInputStream) str;
- else br = new BufferedInputStream(str,BUFFER_INCREMENT);
- next();
- if (index > 0) move(index);
- }
-
- private boolean next() {
- if (end == 1) return false;
- end--; // closer to end
-
- try {
- if (index != -1) {
- br.reset();
- }
- int i = br.read();
- br.mark(bufsize);
- if (i == -1) {
- end = 1;
- cached = OUT_OF_BOUNDS;
- return false;
- }
- cached = (char) i;
- index = 1;
- } catch (IOException e) {
- e.printStackTrace();
- cached = OUT_OF_BOUNDS;
- return false;
+class CharIndexedInputStream implements CharIndexed
+{
+ private static final int BUFFER_INCREMENT = 1024;
+ private static final int UNKNOWN = Integer.MAX_VALUE; // value for end
+
+ private BufferedInputStream br;
+
+ // so that we don't try to reset() right away
+ private int index = -1;
+
+ private int bufsize = BUFFER_INCREMENT;
+
+ private int end = UNKNOWN;
+
+ private char cached = OUT_OF_BOUNDS;
+
+ // Big enough for a \r\n pair
+ // lookBehind[0] = most recent
+ // lookBehind[1] = second most recent
+ private char[] lookBehind = new char[]{ OUT_OF_BOUNDS, OUT_OF_BOUNDS };
+
+ CharIndexedInputStream (InputStream str, int index)
+ {
+ if (str instanceof BufferedInputStream)
+ br = (BufferedInputStream) str;
+ else
+ br = new BufferedInputStream (str, BUFFER_INCREMENT);
+ next ();
+ if (index > 0)
+ move (index);
+ }
+
+ private boolean next ()
+ {
+ if (end == 1)
+ return false;
+ end--; // closer to end
+
+ try
+ {
+ if (index != -1)
+ {
+ br.reset ();
}
- return true;
- }
-
- public char charAt(int index) {
- if (index == 0) {
- return cached;
- } else if (index >= end) {
- return OUT_OF_BOUNDS;
- } else if (index == -1) {
- return lookBehind[0];
- } else if (index == -2) {
- return lookBehind[1];
- } else if (index < -2) {
- return OUT_OF_BOUNDS;
- } else if (index >= bufsize) {
- // Allocate more space in the buffer.
- try {
- while (bufsize <= index) bufsize += BUFFER_INCREMENT;
- br.reset();
- br.mark(bufsize);
- br.skip(index-1);
- } catch (IOException e) { }
- } else if (this.index != index) {
- try {
- br.reset();
- br.skip(index-1);
- } catch (IOException e) { }
+ int i = br.read ();
+ br.mark (bufsize);
+ if (i == -1)
+ {
+ end = 1;
+ cached = OUT_OF_BOUNDS;
+ return false;
}
- char ch = OUT_OF_BOUNDS;
-
- try {
- int i = br.read();
- this.index = index+1; // this.index is index of next pos relative to charAt(0)
- if (i == -1) {
- // set flag that next should fail next time?
- end = index;
- return ch;
- }
- ch = (char) i;
- } catch (IOException ie) { }
-
- return ch;
- }
-
- public boolean move(int index) {
- // move read position [index] clicks from 'charAt(0)'
- boolean retval = true;
- while (retval && (index-- > 0)) retval = next();
- return retval;
- }
-
- public boolean isValid() {
- return (cached != OUT_OF_BOUNDS);
- }
-
- public CharIndexed lookBehind(int index, int length) {
- throw new UnsupportedOperationException(
- "difficult to look behind for an input stream");
- }
-
- public int length() {
- throw new UnsupportedOperationException(
- "difficult to tell the length for an input stream");
- }
-
- public void setLastMatch(REMatch match) {
- throw new UnsupportedOperationException(
- "difficult to support setLastMatch for an input stream");
- }
-
- public REMatch getLastMatch() {
- throw new UnsupportedOperationException(
- "difficult to support getLastMatch for an input stream");
- }
-
- public void setHitEnd(REMatch match) {
- throw new UnsupportedOperationException(
- "difficult to support setHitEnd for an input stream");
- }
-
- public boolean hitEnd() {
- throw new UnsupportedOperationException(
- "difficult to support hitEnd for an input stream");
+ cached = (char) i;
+ index = 1;
+ } catch (IOException e)
+ {
+ e.printStackTrace ();
+ cached = OUT_OF_BOUNDS;
+ return false;
}
-
- public int getAnchor() {
- throw new UnsupportedOperationException(
- "difficult to support getAnchor for an input stream");
- }
-
- public void setAnchor(int anchor) {
- throw new UnsupportedOperationException(
- "difficult to support setAnchor for an input stream");
+ return true;
+ }
+
+ public char charAt (int index)
+ {
+ if (index == 0)
+ {
+ return cached;
+ }
+ else if (index >= end)
+ {
+ return OUT_OF_BOUNDS;
+ }
+ else if (index == -1)
+ {
+ return lookBehind[0];
+ }
+ else if (index == -2)
+ {
+ return lookBehind[1];
+ }
+ else if (index < -2)
+ {
+ return OUT_OF_BOUNDS;
+ }
+ else if (index >= bufsize)
+ {
+ // Allocate more space in the buffer.
+ try
+ {
+ while (bufsize <= index)
+ bufsize += BUFFER_INCREMENT;
+ br.reset ();
+ br.mark (bufsize);
+ br.skip (index - 1);
+ }
+ catch (IOException e)
+ {
+ }
+ }
+ else if (this.index != index)
+ {
+ try
+ {
+ br.reset ();
+ br.skip (index - 1);
+ }
+ catch (IOException e)
+ {
+ }
+ }
+ char ch = OUT_OF_BOUNDS;
+
+ try
+ {
+ int i = br.read ();
+ this.index = index + 1; // this.index is index of next pos relative to charAt(0)
+ if (i == -1)
+ {
+ // set flag that next should fail next time?
+ end = index;
+ return ch;
+ }
+ ch = (char) i;
+ } catch (IOException ie)
+ {
}
- public boolean move1(int index) {
- throw new UnsupportedOperationException(
- "difficult to support move1 for an input stream");
- }
+ return ch;
+ }
+
+ public boolean move (int index)
+ {
+ // move read position [index] clicks from 'charAt(0)'
+ boolean retval = true;
+ while (retval && (index-- > 0))
+ retval = next ();
+ return retval;
+ }
+
+ public boolean isValid ()
+ {
+ return (cached != OUT_OF_BOUNDS);
+ }
+
+ public CharIndexed lookBehind (int index, int length)
+ {
+ throw new
+ UnsupportedOperationException
+ ("difficult to look behind for an input stream");
+ }
+
+ public int length ()
+ {
+ throw new
+ UnsupportedOperationException
+ ("difficult to tell the length for an input stream");
+ }
+
+ public void setLastMatch (REMatch match)
+ {
+ throw new
+ UnsupportedOperationException
+ ("difficult to support setLastMatch for an input stream");
+ }
+
+ public REMatch getLastMatch ()
+ {
+ throw new
+ UnsupportedOperationException
+ ("difficult to support getLastMatch for an input stream");
+ }
+
+ public void setHitEnd (REMatch match)
+ {
+ throw new
+ UnsupportedOperationException
+ ("difficult to support setHitEnd for an input stream");
+ }
+
+ public boolean hitEnd ()
+ {
+ throw new
+ UnsupportedOperationException
+ ("difficult to support hitEnd for an input stream");
+ }
+
+ public int getAnchor ()
+ {
+ throw new
+ UnsupportedOperationException
+ ("difficult to support getAnchor for an input stream");
+ }
+
+ public void setAnchor (int anchor)
+ {
+ throw new
+ UnsupportedOperationException
+ ("difficult to support setAnchor for an input stream");
+ }
+
+ public boolean move1 (int index)
+ {
+ throw new
+ UnsupportedOperationException
+ ("difficult to support move1 for an input stream");
+ }
}
-
diff --git a/libjava/classpath/gnu/java/util/regex/CharIndexedString.java b/libjava/classpath/gnu/java/util/regex/CharIndexedString.java
index fab6d78..7a56f48 100644
--- a/libjava/classpath/gnu/java/util/regex/CharIndexedString.java
+++ b/libjava/classpath/gnu/java/util/regex/CharIndexedString.java
@@ -37,8 +37,10 @@ exception statement from your version. */
package gnu.java.util.regex;
-class CharIndexedString extends CharIndexedCharSequence {
- CharIndexedString(String str, int index) {
- super(str, index);
- }
+class CharIndexedString extends CharIndexedCharSequence
+{
+ CharIndexedString (String str, int index)
+ {
+ super (str, index);
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/CharIndexedStringBuffer.java b/libjava/classpath/gnu/java/util/regex/CharIndexedStringBuffer.java
index 10005b6..d6484f8 100644
--- a/libjava/classpath/gnu/java/util/regex/CharIndexedStringBuffer.java
+++ b/libjava/classpath/gnu/java/util/regex/CharIndexedStringBuffer.java
@@ -37,9 +37,11 @@ exception statement from your version. */
package gnu.java.util.regex;
-class CharIndexedStringBuffer extends CharIndexedCharSequence {
+class CharIndexedStringBuffer extends CharIndexedCharSequence
+{
- CharIndexedStringBuffer(StringBuffer str, int index) {
- super(str, index);
- }
+ CharIndexedStringBuffer (StringBuffer str, int index)
+ {
+ super (str, index);
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/RE.java b/libjava/classpath/gnu/java/util/regex/RE.java
index 421640f..d064f7a 100644
--- a/libjava/classpath/gnu/java/util/regex/RE.java
+++ b/libjava/classpath/gnu/java/util/regex/RE.java
@@ -36,12 +36,17 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.java.util.regex;
+
+import gnu.java.lang.CPStringBuilder;
+
import java.io.InputStream;
import java.io.Serializable;
+
+import java.util.ArrayList;
+import java.util.List;
import java.util.Locale;
import java.util.PropertyResourceBundle;
import java.util.ResourceBundle;
-import java.util.Vector;
/**
* RE provides the user interface for compiling and matching regular
@@ -114,13 +119,16 @@ import java.util.Vector;
* @version 1.1.5-dev, to be released
*/
-public class RE extends REToken {
+public class RE extends REToken
+{
- private static final class IntPair implements Serializable {
+ private static final class IntPair implements Serializable
+ {
public int first, second;
}
- private static final class CharUnit implements Serializable {
+ private static final class CharUnit implements Serializable
+ {
public char ch;
public boolean bk;
}
@@ -144,8 +152,8 @@ public class RE extends REToken {
private int numSubs;
/** Minimum length, in characters, of any possible match. */
- private int minimumLength;
- private int maximumLength;
+ private int minimumLength;
+ private int maximumLength;
/**
* Compilation flag. Do not differentiate case. Subsequent
@@ -263,15 +271,18 @@ public class RE extends REToken {
public static final int REG_FIX_STARTING_POSITION = 0x1000;
/** Returns a string representing the version of the gnu.regexp package. */
- public static final String version() {
+ public static final String version ()
+ {
return VERSION;
}
// Retrieves a message from the ResourceBundle
- static final String getLocalizedMessage(String key) {
+ static final String getLocalizedMessage (String key)
+ {
if (messages == null)
- messages = PropertyResourceBundle.getBundle(bundle, Locale.getDefault());
- return messages.getString(key);
+ messages =
+ PropertyResourceBundle.getBundle (bundle, Locale.getDefault ());
+ return messages.getString (key);
}
/**
@@ -284,8 +295,9 @@ public class RE extends REToken {
* @exception REException The input pattern could not be parsed.
* @exception NullPointerException The pattern was null.
*/
- public RE(Object pattern) throws REException {
- this(pattern,0,RESyntax.RE_SYNTAX_PERL5,0,0);
+ public RE (Object pattern) throws REException
+ {
+ this (pattern, 0, RESyntax.RE_SYNTAX_PERL5, 0, 0);
}
/**
@@ -299,8 +311,9 @@ public class RE extends REToken {
* @exception REException The input pattern could not be parsed.
* @exception NullPointerException The pattern was null.
*/
- public RE(Object pattern, int cflags) throws REException {
- this(pattern,cflags,RESyntax.RE_SYNTAX_PERL5,0,0);
+ public RE (Object pattern, int cflags) throws REException
+ {
+ this (pattern, cflags, RESyntax.RE_SYNTAX_PERL5, 0, 0);
}
/**
@@ -315,47 +328,75 @@ public class RE extends REToken {
* @exception REException The input pattern could not be parsed.
* @exception NullPointerException The pattern was null.
*/
- public RE(Object pattern, int cflags, RESyntax syntax) throws REException {
- this(pattern,cflags,syntax,0,0);
+ public RE (Object pattern, int cflags, RESyntax syntax) throws REException
+ {
+ this (pattern, cflags, syntax, 0, 0);
}
// internal constructor used for alternation
- private RE(REToken first, REToken last,int subs, int subIndex, int minLength, int maxLength) {
- super(subIndex);
+ private RE (REToken first, REToken last, int subs, int subIndex,
+ int minLength, int maxLength)
+ {
+ super (subIndex);
firstToken = first;
lastToken = last;
numSubs = subs;
minimumLength = minLength;
maximumLength = maxLength;
- addToken(new RETokenEndSub(subIndex));
+ addToken (new RETokenEndSub (subIndex));
}
- private RE(Object patternObj, int cflags, RESyntax syntax, int myIndex, int nextSub) throws REException {
- super(myIndex); // Subexpression index of this token.
- initialize(patternObj, cflags, syntax, myIndex, nextSub);
+ private RE (Object patternObj, int cflags, RESyntax syntax, int myIndex,
+ int nextSub) throws REException
+ {
+ super (myIndex); // Subexpression index of this token.
+ initialize (patternObj, cflags, syntax, myIndex, nextSub);
}
- // For use by subclasses
- protected RE() { super(0); }
-
- // The meat of construction
- protected void initialize(Object patternObj, int cflags, RESyntax syntax, int myIndex, int nextSub) throws REException {
- char[] pattern;
- if (patternObj instanceof String) {
- pattern = ((String) patternObj).toCharArray();
- } else if (patternObj instanceof char[]) {
- pattern = (char[]) patternObj;
- } else if (patternObj instanceof StringBuffer) {
- pattern = new char [((StringBuffer) patternObj).length()];
- ((StringBuffer) patternObj).getChars(0,pattern.length,pattern,0);
- } else {
- pattern = patternObj.toString().toCharArray();
- }
+ // For use by subclasses
+ protected RE ()
+ {
+ super (0);
+ }
+
+ // The meat of construction
+ protected void initialize (Object patternObj, int cflags, RESyntax syntax,
+ int myIndex, int nextSub) throws REException
+ {
+ char[] pattern;
+ if (patternObj instanceof String)
+ {
+ pattern = ((String) patternObj).toCharArray ();
+ }
+ else if (patternObj instanceof char[])
+ {
+ pattern = (char[]) patternObj;
+ }
+ else if (patternObj instanceof StringBuffer)
+ {
+ pattern = new char[((StringBuffer) patternObj).length ()];
+ ((StringBuffer) patternObj).getChars (0, pattern.length, pattern, 0);
+ }
+ else if (patternObj instanceof StringBuilder)
+ {
+ pattern = new char[((StringBuilder) patternObj).length ()];
+ ((StringBuilder) patternObj).getChars (0, pattern.length, pattern, 0);
+ }
+ else if (patternObj instanceof CPStringBuilder)
+ {
+ pattern = new char[((CPStringBuilder) patternObj).length ()];
+ ((CPStringBuilder) patternObj).getChars (0, pattern.length, pattern,
+ 0);
+ }
+ else
+ {
+ pattern = patternObj.toString ().toCharArray ();
+ }
int pLength = pattern.length;
- numSubs = 0; // Number of subexpressions in this token.
- Vector branches = null;
+ numSubs = 0; // Number of subexpressions in this token.
+ ArrayList < REToken > branches = null;
// linked list of tokens (sort of -- some closed loops can exist)
firstToken = lastToken = null;
@@ -372,14 +413,13 @@ public class RE extends REToken {
int index = 0;
// this will be the current parse character (pattern[index])
- CharUnit unit = new CharUnit();
+ CharUnit unit = new CharUnit ();
// This is used for {x,y} calculations
- IntPair minMax = new IntPair();
+ IntPair minMax = new IntPair ();
// Buffer a token so we can create a TokenRepeated, etc.
REToken currentToken = null;
- char ch;
boolean quot = false;
// Saved syntax and flags.
@@ -387,652 +427,862 @@ public class RE extends REToken {
int savedCflags = 0;
boolean flagsSaved = false;
- while (index < pLength) {
- // read the next character unit (including backslash escapes)
- index = getCharUnit(pattern,index,unit,quot);
-
- if (unit.bk)
- if (unit.ch == 'Q') {
- quot = true;
- continue;
- } else if (unit.ch == 'E') {
- quot = false;
- continue;
- }
- if (quot)
- unit.bk = false;
-
- if (((cflags & REG_X_COMMENTS) > 0) && (!unit.bk) && (!quot)) {
- if (Character.isWhitespace(unit.ch)) {
- continue;
- }
- if (unit.ch == '#') {
- for (int i = index; i < pLength; i++) {
- if (pattern[i] == '\n') {
- index = i + 1;
+ while (index < pLength)
+ {
+ // read the next character unit (including backslash escapes)
+ index = getCharUnit (pattern, index, unit, quot);
+
+ if (unit.bk)
+ if (unit.ch == 'Q')
+ {
+ quot = true;
continue;
}
- else if (pattern[i] == '\r') {
- if (i + 1 < pLength && pattern[i + 1] == '\n') {
- index = i + 2;
- }
- else {
- index = i + 1;
- }
+ else if (unit.ch == 'E')
+ {
+ quot = false;
continue;
}
+ if (quot)
+ unit.bk = false;
+
+ if (((cflags & REG_X_COMMENTS) > 0) && (!unit.bk) && (!quot))
+ {
+ if (Character.isWhitespace (unit.ch))
+ {
+ continue;
+ }
+ if (unit.ch == '#')
+ {
+ for (int i = index; i < pLength; i++)
+ {
+ if (pattern[i] == '\n')
+ {
+ index = i + 1;
+ continue;
+ }
+ else if (pattern[i] == '\r')
+ {
+ if (i + 1 < pLength && pattern[i + 1] == '\n')
+ {
+ index = i + 2;
+ }
+ else
+ {
+ index = i + 1;
+ }
+ continue;
+ }
+ }
+ index = pLength;
+ continue;
+ }
}
- index = pLength;
- continue;
- }
- }
- // ALTERNATION OPERATOR
- // \| or | (if RE_NO_BK_VBAR) or newline (if RE_NEWLINE_ALT)
- // not available if RE_LIMITED_OPS is set
-
- // TODO: the '\n' literal here should be a test against REToken.newline,
- // which unfortunately may be more than a single character.
- if ( ( (unit.ch == '|' && (syntax.get(RESyntax.RE_NO_BK_VBAR) ^ (unit.bk || quot)))
- || (syntax.get(RESyntax.RE_NEWLINE_ALT) && (unit.ch == '\n') && !(unit.bk || quot)) )
- && !syntax.get(RESyntax.RE_LIMITED_OPS)) {
- // make everything up to here be a branch. create vector if nec.
- addToken(currentToken);
- RE theBranch = new RE(firstToken, lastToken, numSubs, subIndex, minimumLength, maximumLength);
- minimumLength = 0;
- maximumLength = 0;
- if (branches == null) {
- branches = new Vector();
- }
- branches.addElement(theBranch);
- firstToken = lastToken = currentToken = null;
- }
-
- // INTERVAL OPERATOR:
- // {x} | {x,} | {x,y} (RE_INTERVALS && RE_NO_BK_BRACES)
- // \{x\} | \{x,\} | \{x,y\} (RE_INTERVALS && !RE_NO_BK_BRACES)
- //
- // OPEN QUESTION:
- // what is proper interpretation of '{' at start of string?
- //
- // This method used to check "repeat.empty.token" to avoid such regexp
- // as "(a*){2,}", but now "repeat.empty.token" is allowed.
-
- else if ((unit.ch == '{') && syntax.get(RESyntax.RE_INTERVALS) && (syntax.get(RESyntax.RE_NO_BK_BRACES) ^ (unit.bk || quot))) {
- int newIndex = getMinMax(pattern,index,minMax,syntax);
- if (newIndex > index) {
- if (minMax.first > minMax.second)
- throw new REException(getLocalizedMessage("interval.order"),REException.REG_BADRPT,newIndex);
- if (currentToken == null)
- throw new REException(getLocalizedMessage("repeat.no.token"),REException.REG_BADRPT,newIndex);
- if (currentToken instanceof RETokenRepeated)
- throw new REException(getLocalizedMessage("repeat.chained"),REException.REG_BADRPT,newIndex);
- if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
- throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,newIndex);
- index = newIndex;
- currentToken = setRepeated(currentToken,minMax.first,minMax.second,index);
- }
- else {
- addToken(currentToken);
- currentToken = new RETokenChar(subIndex,unit.ch,insens);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
- }
-
- // LIST OPERATOR:
- // [...] | [^...]
-
- else if ((unit.ch == '[') && !(unit.bk || quot)) {
- // Create a new RETokenOneOf
- ParseCharClassResult result = parseCharClass(
- subIndex, pattern, index, pLength, cflags, syntax, 0);
- addToken(currentToken);
- currentToken = result.token;
- index = result.index;
- }
+ // ALTERNATION OPERATOR
+ // \| or | (if RE_NO_BK_VBAR) or newline (if RE_NEWLINE_ALT)
+ // not available if RE_LIMITED_OPS is set
+
+ // TODO: the '\n' literal here should be a test against REToken.newline,
+ // which unfortunately may be more than a single character.
+ if (((unit.ch == '|'
+ && (syntax.get (RESyntax.RE_NO_BK_VBAR) ^ (unit.bk || quot)))
+ || (syntax.get (RESyntax.RE_NEWLINE_ALT) && (unit.ch == '\n')
+ && !(unit.bk || quot)))
+ && !syntax.get (RESyntax.RE_LIMITED_OPS))
+ {
+ // make everything up to here be a branch. create vector if nec.
+ addToken (currentToken);
+ RE theBranch =
+ new RE (firstToken, lastToken, numSubs, subIndex, minimumLength,
+ maximumLength);
+ minimumLength = 0;
+ maximumLength = 0;
+ if (branches == null)
+ {
+ branches = new ArrayList < REToken > ();
+ }
+ branches.add (theBranch);
+ firstToken = lastToken = currentToken = null;
+ }
- // SUBEXPRESSIONS
- // (...) | \(...\) depending on RE_NO_BK_PARENS
-
- else if ((unit.ch == '(') && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot))) {
- boolean pure = false;
- boolean comment = false;
- boolean lookAhead = false;
- boolean lookBehind = false;
- boolean independent = false;
- boolean negativelh = false;
- boolean negativelb = false;
- if ((index+1 < pLength) && (pattern[index] == '?')) {
- switch (pattern[index+1]) {
- case '!':
- if (syntax.get(RESyntax.RE_LOOKAHEAD)) {
- pure = true;
- negativelh = true;
- lookAhead = true;
- index += 2;
- }
- break;
- case '=':
- if (syntax.get(RESyntax.RE_LOOKAHEAD)) {
- pure = true;
- lookAhead = true;
- index += 2;
- }
- break;
- case '<':
- // We assume that if the syntax supports look-ahead,
- // it also supports look-behind.
- if (syntax.get(RESyntax.RE_LOOKAHEAD)) {
- index++;
- switch (pattern[index +1]) {
- case '!':
- pure = true;
- negativelb = true;
- lookBehind = true;
- index += 2;
- break;
- case '=':
- pure = true;
- lookBehind = true;
- index += 2;
- }
- }
- break;
- case '>':
- // We assume that if the syntax supports look-ahead,
- // it also supports independent group.
- if (syntax.get(RESyntax.RE_LOOKAHEAD)) {
- pure = true;
- independent = true;
- index += 2;
- }
- break;
- case 'i':
- case 'd':
- case 'm':
- case 's':
- case 'u':
- case 'x':
- case '-':
- if (!syntax.get(RESyntax.RE_EMBEDDED_FLAGS)) break;
- // Set or reset syntax flags.
- int flagIndex = index + 1;
- int endFlag = -1;
- RESyntax newSyntax = new RESyntax(syntax);
- int newCflags = cflags;
- boolean negate = false;
- while (flagIndex < pLength && endFlag < 0) {
- switch(pattern[flagIndex]) {
- case 'i':
- if (negate)
- newCflags &= ~REG_ICASE;
- else
- newCflags |= REG_ICASE;
- flagIndex++;
- break;
- case 'd':
- if (negate)
- newSyntax.setLineSeparator(RESyntax.DEFAULT_LINE_SEPARATOR);
- else
- newSyntax.setLineSeparator("\n");
- flagIndex++;
- break;
- case 'm':
- if (negate)
- newCflags &= ~REG_MULTILINE;
- else
- newCflags |= REG_MULTILINE;
- flagIndex++;
- break;
- case 's':
- if (negate)
- newCflags &= ~REG_DOT_NEWLINE;
- else
- newCflags |= REG_DOT_NEWLINE;
- flagIndex++;
- break;
- case 'u':
- if (negate)
- newCflags |= REG_ICASE_USASCII;
- else
- newCflags &= ~REG_ICASE_USASCII;
- flagIndex++;
- break;
- case 'x':
- if (negate)
- newCflags &= ~REG_X_COMMENTS;
- else
- newCflags |= REG_X_COMMENTS;
- flagIndex++;
- break;
- case '-':
- negate = true;
- flagIndex++;
- break;
- case ':':
- case ')':
- endFlag = pattern[flagIndex];
- break;
- default:
- throw new REException(getLocalizedMessage("repeat.no.token"), REException.REG_BADRPT, index);
+ // INTERVAL OPERATOR:
+ // {x} | {x,} | {x,y} (RE_INTERVALS && RE_NO_BK_BRACES)
+ // \{x\} | \{x,\} | \{x,y\} (RE_INTERVALS && !RE_NO_BK_BRACES)
+ //
+ // OPEN QUESTION:
+ // what is proper interpretation of '{' at start of string?
+ //
+ // This method used to check "repeat.empty.token" to avoid such regexp
+ // as "(a*){2,}", but now "repeat.empty.token" is allowed.
+
+ else if ((unit.ch == '{') && syntax.get (RESyntax.RE_INTERVALS)
+ && (syntax.
+ get (RESyntax.RE_NO_BK_BRACES) ^ (unit.bk || quot)))
+ {
+ int newIndex = getMinMax (pattern, index, minMax, syntax);
+ if (newIndex > index)
+ {
+ if (minMax.first > minMax.second)
+ throw new
+ REException (getLocalizedMessage ("interval.order"),
+ REException.REG_BADRPT, newIndex);
+ if (currentToken == null)
+ throw new
+ REException (getLocalizedMessage ("repeat.no.token"),
+ REException.REG_BADRPT, newIndex);
+ if (currentToken instanceof RETokenRepeated)
+ throw new
+ REException (getLocalizedMessage ("repeat.chained"),
+ REException.REG_BADRPT, newIndex);
+ if (currentToken instanceof RETokenWordBoundary
+ || currentToken instanceof RETokenWordBoundary)
+ throw new
+ REException (getLocalizedMessage ("repeat.assertion"),
+ REException.REG_BADRPT, newIndex);
+ index = newIndex;
+ currentToken =
+ setRepeated (currentToken, minMax.first, minMax.second,
+ index);
+ }
+ else
+ {
+ addToken (currentToken);
+ currentToken = new RETokenChar (subIndex, unit.ch, insens);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
+ }
+
+ // LIST OPERATOR:
+ // [...] | [^...]
+
+ else if ((unit.ch == '[') && !(unit.bk || quot))
+ {
+ // Create a new RETokenOneOf
+ ParseCharClassResult result =
+ parseCharClass (subIndex, pattern, index, pLength, cflags,
+ syntax, 0);
+ addToken (currentToken);
+ currentToken = result.token;
+ index = result.index;
+ }
+
+ // SUBEXPRESSIONS
+ // (...) | \(...\) depending on RE_NO_BK_PARENS
+
+ else if ((unit.ch == '(')
+ && (syntax.
+ get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))
+ {
+ boolean pure = false;
+ boolean comment = false;
+ boolean lookAhead = false;
+ boolean lookBehind = false;
+ boolean independent = false;
+ boolean negativelh = false;
+ boolean negativelb = false;
+ if ((index + 1 < pLength) && (pattern[index] == '?'))
+ {
+ switch (pattern[index + 1])
+ {
+ case '!':
+ if (syntax.get (RESyntax.RE_LOOKAHEAD))
+ {
+ pure = true;
+ negativelh = true;
+ lookAhead = true;
+ index += 2;
+ }
+ break;
+ case '=':
+ if (syntax.get (RESyntax.RE_LOOKAHEAD))
+ {
+ pure = true;
+ lookAhead = true;
+ index += 2;
+ }
+ break;
+ case '<':
+ // We assume that if the syntax supports look-ahead,
+ // it also supports look-behind.
+ if (syntax.get (RESyntax.RE_LOOKAHEAD))
+ {
+ index++;
+ switch (pattern[index + 1])
+ {
+ case '!':
+ pure = true;
+ negativelb = true;
+ lookBehind = true;
+ index += 2;
+ break;
+ case '=':
+ pure = true;
+ lookBehind = true;
+ index += 2;
+ }
+ }
+ break;
+ case '>':
+ // We assume that if the syntax supports look-ahead,
+ // it also supports independent group.
+ if (syntax.get (RESyntax.RE_LOOKAHEAD))
+ {
+ pure = true;
+ independent = true;
+ index += 2;
+ }
+ break;
+ case 'i':
+ case 'd':
+ case 'm':
+ case 's':
+ case 'u':
+ case 'x':
+ case '-':
+ if (!syntax.get (RESyntax.RE_EMBEDDED_FLAGS))
+ break;
+ // Set or reset syntax flags.
+ int flagIndex = index + 1;
+ int endFlag = -1;
+ RESyntax newSyntax = new RESyntax (syntax);
+ int newCflags = cflags;
+ boolean negate = false;
+ while (flagIndex < pLength && endFlag < 0)
+ {
+ switch (pattern[flagIndex])
+ {
+ case 'i':
+ if (negate)
+ newCflags &= ~REG_ICASE;
+ else
+ newCflags |= REG_ICASE;
+ flagIndex++;
+ break;
+ case 'd':
+ if (negate)
+ newSyntax.setLineSeparator (RESyntax.
+ DEFAULT_LINE_SEPARATOR);
+ else
+ newSyntax.setLineSeparator ("\n");
+ flagIndex++;
+ break;
+ case 'm':
+ if (negate)
+ newCflags &= ~REG_MULTILINE;
+ else
+ newCflags |= REG_MULTILINE;
+ flagIndex++;
+ break;
+ case 's':
+ if (negate)
+ newCflags &= ~REG_DOT_NEWLINE;
+ else
+ newCflags |= REG_DOT_NEWLINE;
+ flagIndex++;
+ break;
+ case 'u':
+ if (negate)
+ newCflags |= REG_ICASE_USASCII;
+ else
+ newCflags &= ~REG_ICASE_USASCII;
+ flagIndex++;
+ break;
+ case 'x':
+ if (negate)
+ newCflags &= ~REG_X_COMMENTS;
+ else
+ newCflags |= REG_X_COMMENTS;
+ flagIndex++;
+ break;
+ case '-':
+ negate = true;
+ flagIndex++;
+ break;
+ case ':':
+ case ')':
+ endFlag = pattern[flagIndex];
+ break;
+ default:
+ throw new
+ REException (getLocalizedMessage
+ ("repeat.no.token"),
+ REException.REG_BADRPT, index);
+ }
+ }
+ if (endFlag == ')')
+ {
+ syntax = newSyntax;
+ cflags = newCflags;
+ insens = ((cflags & REG_ICASE) > 0);
+ insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
+ // This can be treated as though it were a comment.
+ comment = true;
+ index = flagIndex - 1;
+ break;
+ }
+ if (endFlag == ':')
+ {
+ savedSyntax = syntax;
+ savedCflags = cflags;
+ flagsSaved = true;
+ syntax = newSyntax;
+ cflags = newCflags;
+ insens = ((cflags & REG_ICASE) > 0);
+ insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
+ index = flagIndex - 1;
+ // Fall through to the next case.
+ }
+ else
+ {
+ throw new
+ REException (getLocalizedMessage
+ ("unmatched.paren"),
+ REException.REG_ESUBREG, index);
+ }
+ case ':':
+ if (syntax.get (RESyntax.RE_PURE_GROUPING))
+ {
+ pure = true;
+ index += 2;
+ }
+ break;
+ case '#':
+ if (syntax.get (RESyntax.RE_COMMENTS))
+ {
+ comment = true;
+ }
+ break;
+ default:
+ throw new
+ REException (getLocalizedMessage ("repeat.no.token"),
+ REException.REG_BADRPT, index);
+ }
+ }
+
+ if (index >= pLength)
+ {
+ throw new
+ REException (getLocalizedMessage ("unmatched.paren"),
+ REException.REG_ESUBREG, index);
+ }
+
+ // find end of subexpression
+ int endIndex = index;
+ int nextIndex = index;
+ int nested = 0;
+
+ while (((nextIndex =
+ getCharUnit (pattern, endIndex, unit, false)) > 0)
+ && !(nested == 0 && (unit.ch == ')')
+ && (syntax.
+ get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk
+ || quot))))
+ {
+ if ((endIndex = nextIndex) >= pLength)
+ throw new
+ REException (getLocalizedMessage ("subexpr.no.end"),
+ REException.REG_ESUBREG, nextIndex);
+ else
+ if ((unit.ch == '[') && !(unit.bk || quot))
+ {
+ // I hate to do something similar to the LIST OPERATOR matters
+ // above, but ...
+ int listIndex = nextIndex;
+ if (listIndex < pLength && pattern[listIndex] == '^')
+ listIndex++;
+ if (listIndex < pLength && pattern[listIndex] == ']')
+ listIndex++;
+ int listEndIndex = -1;
+ int listNest = 0;
+ while (listIndex < pLength && listEndIndex < 0)
+ {
+ switch (pattern[listIndex++])
+ {
+ case '\\':
+ listIndex++;
+ break;
+ case '[':
+ // Sun's API document says that regexp like "[a-d[m-p]]"
+ // is legal. Even something like "[[[^]]]]" is accepted.
+ listNest++;
+ if (listIndex < pLength
+ && pattern[listIndex] == '^')
+ listIndex++;
+ if (listIndex < pLength
+ && pattern[listIndex] == ']')
+ listIndex++;
+ break;
+ case ']':
+ if (listNest == 0)
+ listEndIndex = listIndex;
+ listNest--;
+ break;
+ }
+ }
+ if (listEndIndex >= 0)
+ {
+ nextIndex = listEndIndex;
+ if ((endIndex = nextIndex) >= pLength)
+ throw new
+ REException (getLocalizedMessage ("subexpr.no.end"),
+ REException.REG_ESUBREG, nextIndex);
+ else
+ continue;
+ }
+ throw new
+ REException (getLocalizedMessage ("subexpr.no.end"),
+ REException.REG_ESUBREG, nextIndex);
}
- }
- if (endFlag == ')') {
- syntax = newSyntax;
- cflags = newCflags;
- insens = ((cflags & REG_ICASE) > 0);
- insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
- // This can be treated as though it were a comment.
- comment = true;
- index = flagIndex - 1;
- break;
- }
- if (endFlag == ':') {
- savedSyntax = syntax;
- savedCflags = cflags;
- flagsSaved = true;
- syntax = newSyntax;
- cflags = newCflags;
- insens = ((cflags & REG_ICASE) > 0);
- insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
- index = flagIndex -1;
- // Fall through to the next case.
- }
- else {
- throw new REException(getLocalizedMessage("unmatched.paren"), REException.REG_ESUBREG,index);
- }
- case ':':
- if (syntax.get(RESyntax.RE_PURE_GROUPING)) {
- pure = true;
- index += 2;
- }
- break;
- case '#':
- if (syntax.get(RESyntax.RE_COMMENTS)) {
- comment = true;
- }
- break;
- default:
- throw new REException(getLocalizedMessage("repeat.no.token"), REException.REG_BADRPT, index);
+ else if (unit.ch == '('
+ && (syntax.
+ get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk
+ || quot)))
+ nested++;
+ else if (unit.ch == ')'
+ && (syntax.
+ get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk
+ || quot)))
+ nested--;
+ }
+
+ // endIndex is now position at a ')','\)'
+ // nextIndex is end of string or position after ')' or '\)'
+
+ if (comment)
+ index = nextIndex;
+ else
+ { // not a comment
+ // create RE subexpression as token.
+ addToken (currentToken);
+ if (!pure)
+ {
+ numSubs++;
+ }
+
+ int useIndex = (pure || lookAhead || lookBehind
+ || independent) ? 0 : nextSub + numSubs;
+ currentToken =
+ new RE (String.valueOf (pattern, index, endIndex - index).
+ toCharArray (), cflags, syntax, useIndex,
+ nextSub + numSubs);
+ numSubs += ((RE) currentToken).getNumSubs ();
+
+ if (lookAhead)
+ {
+ currentToken =
+ new RETokenLookAhead (currentToken, negativelh);
+ }
+ else if (lookBehind)
+ {
+ currentToken =
+ new RETokenLookBehind (currentToken, negativelb);
+ }
+ else if (independent)
+ {
+ currentToken = new RETokenIndependent (currentToken);
+ }
+
+ index = nextIndex;
+ if (flagsSaved)
+ {
+ syntax = savedSyntax;
+ cflags = savedCflags;
+ insens = ((cflags & REG_ICASE) > 0);
+ insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
+ flagsSaved = false;
+ }
+ } // not a comment
+ } // subexpression
+
+ // UNMATCHED RIGHT PAREN
+ // ) or \) throw exception if
+ // !syntax.get(RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD)
+ else if (!syntax.get (RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD)
+ && ((unit.ch == ')')
+ && (syntax.
+ get (RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot))))
+ {
+ throw new REException (getLocalizedMessage ("unmatched.paren"),
+ REException.REG_EPAREN, index);
}
- }
-
- if (index >= pLength) {
- throw new REException(getLocalizedMessage("unmatched.paren"), REException.REG_ESUBREG,index);
- }
-
- // find end of subexpression
- int endIndex = index;
- int nextIndex = index;
- int nested = 0;
-
- while ( ((nextIndex = getCharUnit(pattern,endIndex,unit,false)) > 0)
- && !(nested == 0 && (unit.ch == ')') && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot))) ) {
- if ((endIndex = nextIndex) >= pLength)
- throw new REException(getLocalizedMessage("subexpr.no.end"),REException.REG_ESUBREG,nextIndex);
- else if ((unit.ch == '[') && !(unit.bk || quot)) {
- // I hate to do something similar to the LIST OPERATOR matters
- // above, but ...
- int listIndex = nextIndex;
- if (listIndex < pLength && pattern[listIndex] == '^') listIndex++;
- if (listIndex < pLength && pattern[listIndex] == ']') listIndex++;
- int listEndIndex = -1;
- int listNest = 0;
- while (listIndex < pLength && listEndIndex < 0) {
- switch(pattern[listIndex++]) {
- case '\\':
- listIndex++;
- break;
- case '[':
- // Sun's API document says that regexp like "[a-d[m-p]]"
- // is legal. Even something like "[[[^]]]]" is accepted.
- listNest++;
- if (listIndex < pLength && pattern[listIndex] == '^') listIndex++;
- if (listIndex < pLength && pattern[listIndex] == ']') listIndex++;
- break;
- case ']':
- if (listNest == 0)
- listEndIndex = listIndex;
- listNest--;
- break;
+
+ // START OF LINE OPERATOR
+ // ^
+
+ else if ((unit.ch == '^') && !(unit.bk || quot))
+ {
+ addToken (currentToken);
+ currentToken = null;
+ RETokenStart token = null;
+ if ((cflags & REG_MULTILINE) > 0)
+ {
+ String sep = syntax.getLineSeparator ();
+ if (sep == null)
+ {
+ token = new RETokenStart (subIndex, null, true);
+ }
+ else
+ {
+ token = new RETokenStart (subIndex, sep);
+ }
}
- }
- if (listEndIndex >= 0) {
- nextIndex = listEndIndex;
- if ((endIndex = nextIndex) >= pLength)
- throw new REException(getLocalizedMessage("subexpr.no.end"),REException.REG_ESUBREG,nextIndex);
- else
- continue;
- }
- throw new REException(getLocalizedMessage("subexpr.no.end"),REException.REG_ESUBREG,nextIndex);
+ else
+ {
+ token = new RETokenStart (subIndex, null);
+ }
+ addToken (token);
}
- else if (unit.ch == '(' && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))
- nested++;
- else if (unit.ch == ')' && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))
- nested--;
- }
-
- // endIndex is now position at a ')','\)'
- // nextIndex is end of string or position after ')' or '\)'
-
- if (comment) index = nextIndex;
- else { // not a comment
- // create RE subexpression as token.
- addToken(currentToken);
- if (!pure) {
- numSubs++;
+
+ // END OF LINE OPERATOR
+ // $
+
+ else if ((unit.ch == '$') && !(unit.bk || quot))
+ {
+ addToken (currentToken);
+ currentToken = null;
+ RETokenEnd token = null;
+ if ((cflags & REG_MULTILINE) > 0)
+ {
+ String sep = syntax.getLineSeparator ();
+ if (sep == null)
+ {
+ token = new RETokenEnd (subIndex, null, true);
+ }
+ else
+ {
+ token = new RETokenEnd (subIndex, sep);
+ }
+ }
+ else
+ {
+ token = new RETokenEnd (subIndex, null);
+ }
+ addToken (token);
}
- int useIndex = (pure || lookAhead || lookBehind || independent) ?
- 0 : nextSub + numSubs;
- currentToken = new RE(String.valueOf(pattern,index,endIndex-index).toCharArray(),cflags,syntax,useIndex,nextSub + numSubs);
- numSubs += ((RE) currentToken).getNumSubs();
+ // MATCH-ANY-CHARACTER OPERATOR (except possibly newline and null)
+ // .
- if (lookAhead) {
- currentToken = new RETokenLookAhead(currentToken,negativelh);
+ else if ((unit.ch == '.') && !(unit.bk || quot))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenAny (subIndex, syntax.get (RESyntax.RE_DOT_NEWLINE)
+ || ((cflags & REG_DOT_NEWLINE) > 0),
+ syntax.get (RESyntax.RE_DOT_NOT_NULL));
}
- else if (lookBehind) {
- currentToken = new RETokenLookBehind(currentToken,negativelb);
- }
- else if (independent) {
- currentToken = new RETokenIndependent(currentToken);
+
+ // ZERO-OR-MORE REPEAT OPERATOR
+ // *
+ //
+ // This method used to check "repeat.empty.token" to avoid such regexp
+ // as "(a*)*", but now "repeat.empty.token" is allowed.
+
+ else if ((unit.ch == '*') && !(unit.bk || quot))
+ {
+ if (currentToken == null)
+ throw new REException (getLocalizedMessage ("repeat.no.token"),
+ REException.REG_BADRPT, index);
+ if (currentToken instanceof RETokenRepeated)
+ throw new REException (getLocalizedMessage ("repeat.chained"),
+ REException.REG_BADRPT, index);
+ if (currentToken instanceof RETokenWordBoundary
+ || currentToken instanceof RETokenWordBoundary)
+ throw new REException (getLocalizedMessage ("repeat.assertion"),
+ REException.REG_BADRPT, index);
+ currentToken =
+ setRepeated (currentToken, 0, Integer.MAX_VALUE, index);
}
- index = nextIndex;
- if (flagsSaved) {
- syntax = savedSyntax;
- cflags = savedCflags;
- insens = ((cflags & REG_ICASE) > 0);
- insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
- flagsSaved = false;
+ // ONE-OR-MORE REPEAT OPERATOR / POSSESSIVE MATCHING OPERATOR
+ // + | \+ depending on RE_BK_PLUS_QM
+ // not available if RE_LIMITED_OPS is set
+ //
+ // This method used to check "repeat.empty.token" to avoid such regexp
+ // as "(a*)+", but now "repeat.empty.token" is allowed.
+
+ else if ((unit.ch == '+') && !syntax.get (RESyntax.RE_LIMITED_OPS)
+ && (!syntax.
+ get (RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot)))
+ {
+ if (currentToken == null)
+ throw new REException (getLocalizedMessage ("repeat.no.token"),
+ REException.REG_BADRPT, index);
+
+ // Check for possessive matching on RETokenRepeated
+ if (currentToken instanceof RETokenRepeated)
+ {
+ RETokenRepeated tokenRep = (RETokenRepeated) currentToken;
+ if (syntax.get (RESyntax.RE_POSSESSIVE_OPS)
+ && !tokenRep.isPossessive () && !tokenRep.isStingy ())
+ tokenRep.makePossessive ();
+ else
+ throw new
+ REException (getLocalizedMessage ("repeat.chained"),
+ REException.REG_BADRPT, index);
+
+ }
+ else if (currentToken instanceof RETokenWordBoundary
+ || currentToken instanceof RETokenWordBoundary)
+ throw new REException (getLocalizedMessage ("repeat.assertion"),
+ REException.REG_BADRPT, index);
+ else
+ currentToken =
+ setRepeated (currentToken, 1, Integer.MAX_VALUE, index);
}
- } // not a comment
- } // subexpression
-
- // UNMATCHED RIGHT PAREN
- // ) or \) throw exception if
- // !syntax.get(RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD)
- else if (!syntax.get(RESyntax.RE_UNMATCHED_RIGHT_PAREN_ORD) && ((unit.ch == ')') && (syntax.get(RESyntax.RE_NO_BK_PARENS) ^ (unit.bk || quot)))) {
- throw new REException(getLocalizedMessage("unmatched.paren"),REException.REG_EPAREN,index);
- }
- // START OF LINE OPERATOR
- // ^
-
- else if ((unit.ch == '^') && !(unit.bk || quot)) {
- addToken(currentToken);
- currentToken = null;
- RETokenStart token = null;
- if ((cflags & REG_MULTILINE) > 0) {
- String sep = syntax.getLineSeparator();
- if (sep == null) {
- token = new RETokenStart(subIndex, null, true);
- }
- else {
- token = new RETokenStart(subIndex, sep);
- }
- }
- else {
- token = new RETokenStart(subIndex, null);
- }
- addToken(token);
- }
+ // ZERO-OR-ONE REPEAT OPERATOR / STINGY MATCHING OPERATOR
+ // ? | \? depending on RE_BK_PLUS_QM
+ // not available if RE_LIMITED_OPS is set
+ // stingy matching if RE_STINGY_OPS is set and it follows a quantifier
+
+ else if ((unit.ch == '?') && !syntax.get (RESyntax.RE_LIMITED_OPS)
+ && (!syntax.
+ get (RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot)))
+ {
+ if (currentToken == null)
+ throw new REException (getLocalizedMessage ("repeat.no.token"),
+ REException.REG_BADRPT, index);
+
+ // Check for stingy matching on RETokenRepeated
+ if (currentToken instanceof RETokenRepeated)
+ {
+ RETokenRepeated tokenRep = (RETokenRepeated) currentToken;
+ if (syntax.get (RESyntax.RE_STINGY_OPS)
+ && !tokenRep.isStingy () && !tokenRep.isPossessive ())
+ tokenRep.makeStingy ();
+ else
+ throw new
+ REException (getLocalizedMessage ("repeat.chained"),
+ REException.REG_BADRPT, index);
+ }
+ else if (currentToken instanceof RETokenWordBoundary
+ || currentToken instanceof RETokenWordBoundary)
+ throw new REException (getLocalizedMessage ("repeat.assertion"),
+ REException.REG_BADRPT, index);
+ else
+ currentToken = setRepeated (currentToken, 0, 1, index);
+ }
- // END OF LINE OPERATOR
- // $
-
- else if ((unit.ch == '$') && !(unit.bk || quot)) {
- addToken(currentToken);
- currentToken = null;
- RETokenEnd token = null;
- if ((cflags & REG_MULTILINE) > 0) {
- String sep = syntax.getLineSeparator();
- if (sep == null) {
- token = new RETokenEnd(subIndex, null, true);
- }
- else {
- token = new RETokenEnd(subIndex, sep);
- }
- }
- else {
- token = new RETokenEnd(subIndex, null);
- }
- addToken(token);
- }
+ // OCTAL CHARACTER
+ // \0377
+
+ else if (unit.bk && (unit.ch == '0')
+ && syntax.get (RESyntax.RE_OCTAL_CHAR))
+ {
+ CharExpression ce =
+ getCharExpression (pattern, index - 2, pLength, syntax);
+ if (ce == null)
+ throw new REException ("invalid octal character",
+ REException.REG_ESCAPE, index);
+ index = index - 2 + ce.len;
+ addToken (currentToken);
+ currentToken = new RETokenChar (subIndex, ce.ch, insens);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
- // MATCH-ANY-CHARACTER OPERATOR (except possibly newline and null)
- // .
+ // BACKREFERENCE OPERATOR
+ // \1 \2 ... \9 and \10 \11 \12 ...
+ // not available if RE_NO_BK_REFS is set
+ // Perl recognizes \10, \11, and so on only if enough number of
+ // parentheses have opened before it, otherwise they are treated
+ // as aliases of \010, \011, ... (octal characters). In case of
+ // Sun's JDK, octal character expression must always begin with \0.
+ // We will do as JDK does. But FIXME, take a look at "(a)(b)\29".
+ // JDK treats \2 as a back reference to the 2nd group because
+ // there are only two groups. But in our poor implementation,
+ // we cannot help but treat \29 as a back reference to the 29th group.
+
+ else if (unit.bk && Character.isDigit (unit.ch)
+ && !syntax.get (RESyntax.RE_NO_BK_REFS))
+ {
+ addToken (currentToken);
+ int numBegin = index - 1;
+ int numEnd = pLength;
+ for (int i = index; i < pLength; i++)
+ {
+ if (!Character.isDigit (pattern[i]))
+ {
+ numEnd = i;
+ break;
+ }
+ }
+ int num = parseInt (pattern, numBegin, numEnd - numBegin, 10);
- else if ((unit.ch == '.') && !(unit.bk || quot)) {
- addToken(currentToken);
- currentToken = new RETokenAny(subIndex,syntax.get(RESyntax.RE_DOT_NEWLINE) || ((cflags & REG_DOT_NEWLINE) > 0),syntax.get(RESyntax.RE_DOT_NOT_NULL));
- }
+ currentToken = new RETokenBackRef (subIndex, num, insens);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ index = numEnd;
+ }
- // ZERO-OR-MORE REPEAT OPERATOR
- // *
- //
- // This method used to check "repeat.empty.token" to avoid such regexp
- // as "(a*)*", but now "repeat.empty.token" is allowed.
-
- else if ((unit.ch == '*') && !(unit.bk || quot)) {
- if (currentToken == null)
- throw new REException(getLocalizedMessage("repeat.no.token"),REException.REG_BADRPT,index);
- if (currentToken instanceof RETokenRepeated)
- throw new REException(getLocalizedMessage("repeat.chained"),REException.REG_BADRPT,index);
- if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
- throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,index);
- currentToken = setRepeated(currentToken,0,Integer.MAX_VALUE,index);
- }
+ // START OF STRING OPERATOR
+ // \A if RE_STRING_ANCHORS is set
- // ONE-OR-MORE REPEAT OPERATOR / POSSESSIVE MATCHING OPERATOR
- // + | \+ depending on RE_BK_PLUS_QM
- // not available if RE_LIMITED_OPS is set
- //
- // This method used to check "repeat.empty.token" to avoid such regexp
- // as "(a*)+", but now "repeat.empty.token" is allowed.
-
- else if ((unit.ch == '+') && !syntax.get(RESyntax.RE_LIMITED_OPS) && (!syntax.get(RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot))) {
- if (currentToken == null)
- throw new REException(getLocalizedMessage("repeat.no.token"),REException.REG_BADRPT,index);
-
- // Check for possessive matching on RETokenRepeated
- if (currentToken instanceof RETokenRepeated) {
- RETokenRepeated tokenRep = (RETokenRepeated)currentToken;
- if (syntax.get(RESyntax.RE_POSSESSIVE_OPS) && !tokenRep.isPossessive() && !tokenRep.isStingy())
- tokenRep.makePossessive();
- else
- throw new REException(getLocalizedMessage("repeat.chained"),REException.REG_BADRPT,index);
-
- }
- else if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
- throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,index);
- else
- currentToken = setRepeated(currentToken,1,Integer.MAX_VALUE,index);
- }
+ else if (unit.bk && (unit.ch == 'A')
+ && syntax.get (RESyntax.RE_STRING_ANCHORS))
+ {
+ addToken (currentToken);
+ currentToken = new RETokenStart (subIndex, null);
+ }
- // ZERO-OR-ONE REPEAT OPERATOR / STINGY MATCHING OPERATOR
- // ? | \? depending on RE_BK_PLUS_QM
- // not available if RE_LIMITED_OPS is set
- // stingy matching if RE_STINGY_OPS is set and it follows a quantifier
-
- else if ((unit.ch == '?') && !syntax.get(RESyntax.RE_LIMITED_OPS) && (!syntax.get(RESyntax.RE_BK_PLUS_QM) ^ (unit.bk || quot))) {
- if (currentToken == null) throw new REException(getLocalizedMessage("repeat.no.token"),REException.REG_BADRPT,index);
-
- // Check for stingy matching on RETokenRepeated
- if (currentToken instanceof RETokenRepeated) {
- RETokenRepeated tokenRep = (RETokenRepeated)currentToken;
- if (syntax.get(RESyntax.RE_STINGY_OPS) && !tokenRep.isStingy() && !tokenRep.isPossessive())
- tokenRep.makeStingy();
- else
- throw new REException(getLocalizedMessage("repeat.chained"),REException.REG_BADRPT,index);
- }
- else if (currentToken instanceof RETokenWordBoundary || currentToken instanceof RETokenWordBoundary)
- throw new REException(getLocalizedMessage("repeat.assertion"),REException.REG_BADRPT,index);
- else
- currentToken = setRepeated(currentToken,0,1,index);
- }
+ // WORD BREAK OPERATOR
+ // \b if ????
+
+ else if (unit.bk && (unit.ch == 'b')
+ && syntax.get (RESyntax.RE_STRING_ANCHORS))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenWordBoundary (subIndex,
+ RETokenWordBoundary.
+ BEGIN | RETokenWordBoundary.END,
+ false);
+ }
- // OCTAL CHARACTER
- // \0377
-
- else if (unit.bk && (unit.ch == '0') && syntax.get(RESyntax.RE_OCTAL_CHAR)) {
- CharExpression ce = getCharExpression(pattern, index - 2, pLength, syntax);
- if (ce == null)
- throw new REException("invalid octal character", REException.REG_ESCAPE, index);
- index = index - 2 + ce.len;
- addToken(currentToken);
- currentToken = new RETokenChar(subIndex,ce.ch,insens);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
+ // WORD BEGIN OPERATOR
+ // \< if ????
+ else if (unit.bk && (unit.ch == '<'))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenWordBoundary (subIndex, RETokenWordBoundary.BEGIN,
+ false);
+ }
- // BACKREFERENCE OPERATOR
- // \1 \2 ... \9 and \10 \11 \12 ...
- // not available if RE_NO_BK_REFS is set
- // Perl recognizes \10, \11, and so on only if enough number of
- // parentheses have opened before it, otherwise they are treated
- // as aliases of \010, \011, ... (octal characters). In case of
- // Sun's JDK, octal character expression must always begin with \0.
- // We will do as JDK does. But FIXME, take a look at "(a)(b)\29".
- // JDK treats \2 as a back reference to the 2nd group because
- // there are only two groups. But in our poor implementation,
- // we cannot help but treat \29 as a back reference to the 29th group.
-
- else if (unit.bk && Character.isDigit(unit.ch) && !syntax.get(RESyntax.RE_NO_BK_REFS)) {
- addToken(currentToken);
- int numBegin = index - 1;
- int numEnd = pLength;
- for (int i = index; i < pLength; i++) {
- if (! Character.isDigit(pattern[i])) {
- numEnd = i;
- break;
- }
- }
- int num = parseInt(pattern, numBegin, numEnd-numBegin, 10);
+ // WORD END OPERATOR
+ // \> if ????
+ else if (unit.bk && (unit.ch == '>'))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenWordBoundary (subIndex, RETokenWordBoundary.END,
+ false);
+ }
- currentToken = new RETokenBackRef(subIndex,num,insens);
- if (insensUSASCII) currentToken.unicodeAware = false;
- index = numEnd;
- }
+ // NON-WORD BREAK OPERATOR
+ // \B if ????
+
+ else if (unit.bk && (unit.ch == 'B')
+ && syntax.get (RESyntax.RE_STRING_ANCHORS))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenWordBoundary (subIndex,
+ RETokenWordBoundary.
+ BEGIN | RETokenWordBoundary.END, true);
+ }
- // START OF STRING OPERATOR
- // \A if RE_STRING_ANCHORS is set
-
- else if (unit.bk && (unit.ch == 'A') && syntax.get(RESyntax.RE_STRING_ANCHORS)) {
- addToken(currentToken);
- currentToken = new RETokenStart(subIndex,null);
- }
- // WORD BREAK OPERATOR
- // \b if ????
-
- else if (unit.bk && (unit.ch == 'b') && syntax.get(RESyntax.RE_STRING_ANCHORS)) {
- addToken(currentToken);
- currentToken = new RETokenWordBoundary(subIndex, RETokenWordBoundary.BEGIN | RETokenWordBoundary.END, false);
- }
-
- // WORD BEGIN OPERATOR
- // \< if ????
- else if (unit.bk && (unit.ch == '<')) {
- addToken(currentToken);
- currentToken = new RETokenWordBoundary(subIndex, RETokenWordBoundary.BEGIN, false);
- }
-
- // WORD END OPERATOR
- // \> if ????
- else if (unit.bk && (unit.ch == '>')) {
- addToken(currentToken);
- currentToken = new RETokenWordBoundary(subIndex, RETokenWordBoundary.END, false);
- }
-
- // NON-WORD BREAK OPERATOR
- // \B if ????
-
- else if (unit.bk && (unit.ch == 'B') && syntax.get(RESyntax.RE_STRING_ANCHORS)) {
- addToken(currentToken);
- currentToken = new RETokenWordBoundary(subIndex, RETokenWordBoundary.BEGIN | RETokenWordBoundary.END, true);
- }
-
-
- // DIGIT OPERATOR
- // \d if RE_CHAR_CLASS_ESCAPES is set
-
- else if (unit.bk && (unit.ch == 'd') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
- addToken(currentToken);
- currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.DIGIT,insens,false);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
+ // DIGIT OPERATOR
+ // \d if RE_CHAR_CLASS_ESCAPES is set
- // NON-DIGIT OPERATOR
- // \D
+ else if (unit.bk && (unit.ch == 'd')
+ && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenPOSIX (subIndex, RETokenPOSIX.DIGIT, insens, false);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
- else if (unit.bk && (unit.ch == 'D') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
- addToken(currentToken);
- currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.DIGIT,insens,true);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
+ // NON-DIGIT OPERATOR
+ // \D
+
+ else if (unit.bk && (unit.ch == 'D')
+ && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenPOSIX (subIndex, RETokenPOSIX.DIGIT, insens, true);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
// NEWLINE ESCAPE
- // \n
+ // \n
- else if (unit.bk && (unit.ch == 'n')) {
- addToken(currentToken);
- currentToken = new RETokenChar(subIndex,'\n',false);
- }
+ else if (unit.bk && (unit.ch == 'n'))
+ {
+ addToken (currentToken);
+ currentToken = new RETokenChar (subIndex, '\n', false);
+ }
// RETURN ESCAPE
- // \r
+ // \r
- else if (unit.bk && (unit.ch == 'r')) {
- addToken(currentToken);
- currentToken = new RETokenChar(subIndex,'\r',false);
- }
+ else if (unit.bk && (unit.ch == 'r'))
+ {
+ addToken (currentToken);
+ currentToken = new RETokenChar (subIndex, '\r', false);
+ }
// WHITESPACE OPERATOR
- // \s if RE_CHAR_CLASS_ESCAPES is set
-
- else if (unit.bk && (unit.ch == 's') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
- addToken(currentToken);
- currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.SPACE,insens,false);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
+ // \s if RE_CHAR_CLASS_ESCAPES is set
+
+ else if (unit.bk && (unit.ch == 's')
+ && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenPOSIX (subIndex, RETokenPOSIX.SPACE, insens, false);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
// NON-WHITESPACE OPERATOR
- // \S
-
- else if (unit.bk && (unit.ch == 'S') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
- addToken(currentToken);
- currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.SPACE,insens,true);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
+ // \S
+
+ else if (unit.bk && (unit.ch == 'S')
+ && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenPOSIX (subIndex, RETokenPOSIX.SPACE, insens, true);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
// TAB ESCAPE
- // \t
+ // \t
- else if (unit.bk && (unit.ch == 't')) {
- addToken(currentToken);
- currentToken = new RETokenChar(subIndex,'\t',false);
- }
+ else if (unit.bk && (unit.ch == 't'))
+ {
+ addToken (currentToken);
+ currentToken = new RETokenChar (subIndex, '\t', false);
+ }
// ALPHANUMERIC OPERATOR
- // \w
-
- else if (unit.bk && (unit.ch == 'w') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
- addToken(currentToken);
- currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.ALNUM,insens,false);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
+ // \w
+
+ else if (unit.bk && (unit.ch == 'w')
+ && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenPOSIX (subIndex, RETokenPOSIX.ALNUM, insens, false);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
// NON-ALPHANUMERIC OPERATOR
- // \W
-
- else if (unit.bk && (unit.ch == 'W') && syntax.get(RESyntax.RE_CHAR_CLASS_ESCAPES)) {
- addToken(currentToken);
- currentToken = new RETokenPOSIX(subIndex,RETokenPOSIX.ALNUM,insens,true);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
+ // \W
+
+ else if (unit.bk && (unit.ch == 'W')
+ && syntax.get (RESyntax.RE_CHAR_CLASS_ESCAPES))
+ {
+ addToken (currentToken);
+ currentToken =
+ new RETokenPOSIX (subIndex, RETokenPOSIX.ALNUM, insens, true);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
// END OF STRING OPERATOR
- // \Z, \z
+ // \Z, \z
// FIXME: \Z and \z are different in that if the input string
// ends with a line terminator, \Z matches the position before
@@ -1040,77 +1290,106 @@ public class RE extends REToken {
// to be implemented.
else if (unit.bk && (unit.ch == 'Z' || unit.ch == 'z') &&
- syntax.get(RESyntax.RE_STRING_ANCHORS)) {
- addToken(currentToken);
- currentToken = new RETokenEnd(subIndex,null);
- }
-
- // HEX CHARACTER, UNICODE CHARACTER
- // \x1B, \u1234
-
- else if ((unit.bk && (unit.ch == 'x') && syntax.get(RESyntax.RE_HEX_CHAR)) ||
- (unit.bk && (unit.ch == 'u') && syntax.get(RESyntax.RE_UNICODE_CHAR))) {
- CharExpression ce = getCharExpression(pattern, index - 2, pLength, syntax);
- if (ce == null)
- throw new REException("invalid hex character", REException.REG_ESCAPE, index);
- index = index - 2 + ce.len;
- addToken(currentToken);
- currentToken = new RETokenChar(subIndex,ce.ch,insens);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
+ syntax.get (RESyntax.RE_STRING_ANCHORS))
+ {
+ addToken (currentToken);
+ currentToken = new RETokenEnd (subIndex, null);
+ }
+
+ // HEX CHARACTER, UNICODE CHARACTER
+ // \x1B, \u1234
+
+ else
+ if ((unit.bk && (unit.ch == 'x')
+ && syntax.get (RESyntax.RE_HEX_CHAR)) || (unit.bk
+ && (unit.ch == 'u')
+ && syntax.
+ get (RESyntax.
+ RE_UNICODE_CHAR)))
+ {
+ CharExpression ce =
+ getCharExpression (pattern, index - 2, pLength, syntax);
+ if (ce == null)
+ throw new REException ("invalid hex character",
+ REException.REG_ESCAPE, index);
+ index = index - 2 + ce.len;
+ addToken (currentToken);
+ currentToken = new RETokenChar (subIndex, ce.ch, insens);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
// NAMED PROPERTY
// \p{prop}, \P{prop}
- else if ((unit.bk && (unit.ch == 'p') && syntax.get(RESyntax.RE_NAMED_PROPERTY)) ||
- (unit.bk && (unit.ch == 'P') && syntax.get(RESyntax.RE_NAMED_PROPERTY))) {
- NamedProperty np = getNamedProperty(pattern, index - 2, pLength);
- if (np == null)
- throw new REException("invalid escape sequence", REException.REG_ESCAPE, index);
- index = index - 2 + np.len;
- addToken(currentToken);
- currentToken = getRETokenNamedProperty(subIndex,np,insens,index);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
+ else
+ if ((unit.bk && (unit.ch == 'p')
+ && syntax.get (RESyntax.RE_NAMED_PROPERTY)) || (unit.bk
+ && (unit.ch ==
+ 'P')
+ && syntax.
+ get (RESyntax.
+ RE_NAMED_PROPERTY)))
+ {
+ NamedProperty np = getNamedProperty (pattern, index - 2, pLength);
+ if (np == null)
+ throw new REException ("invalid escape sequence",
+ REException.REG_ESCAPE, index);
+ index = index - 2 + np.len;
+ addToken (currentToken);
+ currentToken =
+ getRETokenNamedProperty (subIndex, np, insens, index);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
// END OF PREVIOUS MATCH
- // \G
+ // \G
else if (unit.bk && (unit.ch == 'G') &&
- syntax.get(RESyntax.RE_STRING_ANCHORS)) {
- addToken(currentToken);
- currentToken = new RETokenEndOfPreviousMatch(subIndex);
- }
+ syntax.get (RESyntax.RE_STRING_ANCHORS))
+ {
+ addToken (currentToken);
+ currentToken = new RETokenEndOfPreviousMatch (subIndex);
+ }
// NON-SPECIAL CHARACTER (or escape to make literal)
- // c | \* for example
+ // c | \* for example
- else { // not a special character
- addToken(currentToken);
- currentToken = new RETokenChar(subIndex,unit.ch,insens);
- if (insensUSASCII) currentToken.unicodeAware = false;
- }
- } // end while
+ else
+ { // not a special character
+ addToken (currentToken);
+ currentToken = new RETokenChar (subIndex, unit.ch, insens);
+ if (insensUSASCII)
+ currentToken.unicodeAware = false;
+ }
+ } // end while
// Add final buffered token and an EndSub marker
- addToken(currentToken);
-
- if (branches != null) {
- branches.addElement(new RE(firstToken,lastToken,numSubs,subIndex,minimumLength, maximumLength));
- branches.trimToSize(); // compact the Vector
+ addToken (currentToken);
+
+ if (branches != null)
+ {
+ branches.
+ add (new
+ RE (firstToken, lastToken, numSubs, subIndex, minimumLength,
+ maximumLength));
+ branches.trimToSize (); // compact the Vector
minimumLength = 0;
maximumLength = 0;
firstToken = lastToken = null;
- addToken(new RETokenOneOf(subIndex,branches,false));
- }
- else addToken(new RETokenEndSub(subIndex));
+ addToken (new RETokenOneOf (subIndex, branches, false));
+ }
+ else
+ addToken (new RETokenEndSub (subIndex));
}
- private static class ParseCharClassResult {
- RETokenOneOf token;
- int index;
- boolean returnAtAndOperator = false;
+ private static class ParseCharClassResult
+ {
+ RETokenOneOf token;
+ int index;
+ boolean returnAtAndOperator = false;
}
/**
@@ -1123,223 +1402,315 @@ public class RE extends REToken {
* @param pflags Flags that affect the behavior of this method.
* @param syntax Syntax used to parse the pattern.
*/
- private static ParseCharClassResult parseCharClass(int subIndex,
- char[] pattern, int index,
- int pLength, int cflags, RESyntax syntax, int pflags)
- throws REException {
-
- boolean insens = ((cflags & REG_ICASE) > 0);
- boolean insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
- Vector options = new Vector();
- Vector addition = new Vector();
- boolean additionAndAppeared = false;
- final int RETURN_AT_AND = 0x01;
- boolean returnAtAndOperator = ((pflags & RETURN_AT_AND) != 0);
- boolean negative = false;
- char ch;
-
- char lastChar = 0;
- boolean lastCharIsSet = false;
- if (index == pLength) throw new REException(getLocalizedMessage("unmatched.bracket"),REException.REG_EBRACK,index);
-
- // Check for initial caret, negation
- if ((ch = pattern[index]) == '^') {
- negative = true;
- if (++index == pLength) throw new REException(getLocalizedMessage("class.no.end"),REException.REG_EBRACK,index);
+ private static ParseCharClassResult parseCharClass (int subIndex,
+ char[]pattern,
+ int index, int pLength,
+ int cflags,
+ RESyntax syntax,
+ int pflags) throws
+ REException
+ {
+
+ boolean insens = ((cflags & REG_ICASE) > 0);
+ boolean insensUSASCII = ((cflags & REG_ICASE_USASCII) > 0);
+ final ArrayList < REToken > options = new ArrayList < REToken > ();
+ ArrayList < Object > addition = new ArrayList < Object > ();
+ boolean additionAndAppeared = false;
+ final int RETURN_AT_AND = 0x01;
+ boolean returnAtAndOperator = ((pflags & RETURN_AT_AND) != 0);
+ boolean negative = false;
+ char ch;
+
+ char lastChar = 0;
+ boolean lastCharIsSet = false;
+ if (index == pLength)
+ throw new REException (getLocalizedMessage ("unmatched.bracket"),
+ REException.REG_EBRACK, index);
+
+ // Check for initial caret, negation
+ if ((ch = pattern[index]) == '^')
+ {
+ negative = true;
+ if (++index == pLength)
+ throw new REException (getLocalizedMessage ("class.no.end"),
+ REException.REG_EBRACK, index);
ch = pattern[index];
- }
-
- // Check for leading right bracket literal
- if (ch == ']') {
- lastChar = ch; lastCharIsSet = true;
- if (++index == pLength) throw new REException(getLocalizedMessage("class.no.end"),REException.REG_EBRACK,index);
- }
-
- while ((ch = pattern[index++]) != ']') {
- if ((ch == '-') && (lastCharIsSet)) {
- if (index == pLength) throw new REException(getLocalizedMessage("class.no.end"),REException.REG_EBRACK,index);
- if ((ch = pattern[index]) == ']') {
- RETokenChar t = new RETokenChar(subIndex,lastChar,insens);
- if (insensUSASCII) t.unicodeAware = false;
- options.addElement(t);
- lastChar = '-';
- } else {
- if ((ch == '\\') && syntax.get(RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS)) {
- CharExpression ce = getCharExpression(pattern, index, pLength, syntax);
- if (ce == null)
- throw new REException("invalid escape sequence", REException.REG_ESCAPE, index);
- ch = ce.ch;
- index = index + ce.len - 1;
+ }
+
+ // Check for leading right bracket literal
+ if (ch == ']')
+ {
+ lastChar = ch;
+ lastCharIsSet = true;
+ if (++index == pLength)
+ throw new REException (getLocalizedMessage ("class.no.end"),
+ REException.REG_EBRACK, index);
+ }
+
+ while ((ch = pattern[index++]) != ']')
+ {
+ if ((ch == '-') && (lastCharIsSet))
+ {
+ if (index == pLength)
+ throw new REException (getLocalizedMessage ("class.no.end"),
+ REException.REG_EBRACK, index);
+ if ((ch = pattern[index]) == ']')
+ {
+ RETokenChar t = new RETokenChar (subIndex, lastChar, insens);
+ if (insensUSASCII)
+ t.unicodeAware = false;
+ options.add (t);
+ lastChar = '-';
}
- RETokenRange t = new RETokenRange(subIndex,lastChar,ch,insens);
- if (insensUSASCII) t.unicodeAware = false;
- options.addElement(t);
- lastChar = 0; lastCharIsSet = false;
- index++;
- }
- } else if ((ch == '\\') && syntax.get(RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS)) {
- if (index == pLength) throw new REException(getLocalizedMessage("class.no.end"),REException.REG_EBRACK,index);
+ else
+ {
+ if ((ch == '\\')
+ && syntax.get (RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS))
+ {
+ CharExpression ce =
+ getCharExpression (pattern, index, pLength, syntax);
+ if (ce == null)
+ throw new REException ("invalid escape sequence",
+ REException.REG_ESCAPE, index);
+ ch = ce.ch;
+ index = index + ce.len - 1;
+ }
+ RETokenRange t =
+ new RETokenRange (subIndex, lastChar, ch, insens);
+ if (insensUSASCII)
+ t.unicodeAware = false;
+ options.add (t);
+ lastChar = 0;
+ lastCharIsSet = false;
+ index++;
+ }
+ }
+ else if ((ch == '\\')
+ && syntax.get (RESyntax.RE_BACKSLASH_ESCAPE_IN_LISTS))
+ {
+ if (index == pLength)
+ throw new REException (getLocalizedMessage ("class.no.end"),
+ REException.REG_EBRACK, index);
int posixID = -1;
boolean negate = false;
- char asciiEsc = 0;
+ char asciiEsc = 0;
boolean asciiEscIsSet = false;
NamedProperty np = null;
- if (("dswDSW".indexOf(pattern[index]) != -1) && syntax.get(RESyntax.RE_CHAR_CLASS_ESC_IN_LISTS)) {
- switch (pattern[index]) {
- case 'D':
- negate = true;
- case 'd':
- posixID = RETokenPOSIX.DIGIT;
- break;
- case 'S':
- negate = true;
- case 's':
- posixID = RETokenPOSIX.SPACE;
- break;
- case 'W':
- negate = true;
- case 'w':
- posixID = RETokenPOSIX.ALNUM;
- break;
+ if (("dswDSW".indexOf (pattern[index]) != -1)
+ && syntax.get (RESyntax.RE_CHAR_CLASS_ESC_IN_LISTS))
+ {
+ switch (pattern[index])
+ {
+ case 'D':
+ negate = true;
+ case 'd':
+ posixID = RETokenPOSIX.DIGIT;
+ break;
+ case 'S':
+ negate = true;
+ case 's':
+ posixID = RETokenPOSIX.SPACE;
+ break;
+ case 'W':
+ negate = true;
+ case 'w':
+ posixID = RETokenPOSIX.ALNUM;
+ break;
+ }
+ }
+ if (("pP".indexOf (pattern[index]) != -1)
+ && syntax.get (RESyntax.RE_NAMED_PROPERTY))
+ {
+ np = getNamedProperty (pattern, index - 1, pLength);
+ if (np == null)
+ throw new REException ("invalid escape sequence",
+ REException.REG_ESCAPE, index);
+ index = index - 1 + np.len - 1;
+ }
+ else
+ {
+ CharExpression ce =
+ getCharExpression (pattern, index - 1, pLength, syntax);
+ if (ce == null)
+ throw new REException ("invalid escape sequence",
+ REException.REG_ESCAPE, index);
+ asciiEsc = ce.ch;
+ asciiEscIsSet = true;
+ index = index - 1 + ce.len - 1;
+ }
+ if (lastCharIsSet)
+ {
+ RETokenChar t = new RETokenChar (subIndex, lastChar, insens);
+ if (insensUSASCII)
+ t.unicodeAware = false;
+ options.add (t);
+ }
+
+ if (posixID != -1)
+ {
+ RETokenPOSIX t =
+ new RETokenPOSIX (subIndex, posixID, insens, negate);
+ if (insensUSASCII)
+ t.unicodeAware = false;
+ options.add (t);
+ }
+ else if (np != null)
+ {
+ RETokenNamedProperty t =
+ getRETokenNamedProperty (subIndex, np, insens, index);
+ if (insensUSASCII)
+ t.unicodeAware = false;
+ options.add (t);
+ }
+ else if (asciiEscIsSet)
+ {
+ lastChar = asciiEsc;
+ lastCharIsSet = true;
+ }
+ else
+ {
+ lastChar = pattern[index];
+ lastCharIsSet = true;
}
- }
- if (("pP".indexOf(pattern[index]) != -1) && syntax.get(RESyntax.RE_NAMED_PROPERTY)) {
- np = getNamedProperty(pattern, index - 1, pLength);
- if (np == null)
- throw new REException("invalid escape sequence", REException.REG_ESCAPE, index);
- index = index - 1 + np.len - 1;
- }
- else {
- CharExpression ce = getCharExpression(pattern, index - 1, pLength, syntax);
- if (ce == null)
- throw new REException("invalid escape sequence", REException.REG_ESCAPE, index);
- asciiEsc = ce.ch; asciiEscIsSet = true;
- index = index - 1 + ce.len - 1;
- }
- if (lastCharIsSet) {
- RETokenChar t = new RETokenChar(subIndex,lastChar,insens);
- if (insensUSASCII) t.unicodeAware = false;
- options.addElement(t);
- }
-
- if (posixID != -1) {
- RETokenPOSIX t = new RETokenPOSIX(subIndex,posixID,insens,negate);
- if (insensUSASCII) t.unicodeAware = false;
- options.addElement(t);
- } else if (np != null) {
- RETokenNamedProperty t = getRETokenNamedProperty(subIndex,np,insens,index);
- if (insensUSASCII) t.unicodeAware = false;
- options.addElement(t);
- } else if (asciiEscIsSet) {
- lastChar = asciiEsc; lastCharIsSet = true;
- } else {
- lastChar = pattern[index]; lastCharIsSet = true;
- }
++index;
- } else if ((ch == '[') && (syntax.get(RESyntax.RE_CHAR_CLASSES)) && (index < pLength) && (pattern[index] == ':')) {
- StringBuffer posixSet = new StringBuffer();
- index = getPosixSet(pattern,index+1,posixSet);
- int posixId = RETokenPOSIX.intValue(posixSet.toString());
- if (posixId != -1) {
- RETokenPOSIX t = new RETokenPOSIX(subIndex,posixId,insens,false);
- if (insensUSASCII) t.unicodeAware = false;
- options.addElement(t);
- }
- } else if ((ch == '[') && (syntax.get(RESyntax.RE_NESTED_CHARCLASS))) {
- ParseCharClassResult result = parseCharClass(
- subIndex, pattern, index, pLength, cflags, syntax, 0);
- addition.addElement(result.token);
- addition.addElement("|");
- index = result.index;
- } else if ((ch == '&') &&
- (syntax.get(RESyntax.RE_NESTED_CHARCLASS)) &&
- (index < pLength) && (pattern[index] == '&')) {
- if (returnAtAndOperator) {
- ParseCharClassResult result = new ParseCharClassResult();
- options.trimToSize();
- if (additionAndAppeared) addition.addElement("&");
- if (addition.size() == 0) addition = null;
- result.token = new RETokenOneOf(subIndex,
- options, addition, negative);
- result.index = index - 1;
- result.returnAtAndOperator = true;
- return result;
- }
- // The precedence of the operator "&&" is the lowest.
- // So we postpone adding "&" until other elements
- // are added. And we insert Boolean.FALSE at the
- // beginning of the list of tokens following "&&".
- // So, "&&[a-b][k-m]" will be stored in the Vecter
- // addition in this order:
- // Boolean.FALSE, [a-b], "|", [k-m], "|", "&"
- if (additionAndAppeared) addition.addElement("&");
- addition.addElement(Boolean.FALSE);
- additionAndAppeared = true;
-
- // The part on which "&&" operates may be either
- // (1) explicitly enclosed by []
- // or
- // (2) not enclosed by [] and terminated by the
- // next "&&" or the end of the character list.
- // Let the preceding else if block do the case (1).
- // We must do something in case of (2).
- if ((index + 1 < pLength) && (pattern[index + 1] != '[')) {
- ParseCharClassResult result = parseCharClass(
- subIndex, pattern, index+1, pLength, cflags, syntax,
- RETURN_AT_AND);
- addition.addElement(result.token);
- addition.addElement("|");
- // If the method returned at the next "&&", it is OK.
- // Otherwise we have eaten the mark of the end of this
- // character list "]". In this case we must give back
- // the end mark.
- index = (result.returnAtAndOperator ?
- result.index: result.index - 1);
- }
- } else {
- if (lastCharIsSet) {
- RETokenChar t = new RETokenChar(subIndex,lastChar,insens);
- if (insensUSASCII) t.unicodeAware = false;
- options.addElement(t);
- }
- lastChar = ch; lastCharIsSet = true;
}
- if (index == pLength) throw new REException(getLocalizedMessage("class.no.end"),REException.REG_EBRACK,index);
- } // while in list
- // Out of list, index is one past ']'
-
- if (lastCharIsSet) {
- RETokenChar t = new RETokenChar(subIndex,lastChar,insens);
- if (insensUSASCII) t.unicodeAware = false;
- options.addElement(t);
- }
-
- ParseCharClassResult result = new ParseCharClassResult();
- // Create a new RETokenOneOf
- options.trimToSize();
- if (additionAndAppeared) addition.addElement("&");
- if (addition.size() == 0) addition = null;
- result.token = new RETokenOneOf(subIndex,options, addition, negative);
- result.index = index;
- return result;
+ else if ((ch == '[') && (syntax.get (RESyntax.RE_CHAR_CLASSES))
+ && (index < pLength) && (pattern[index] == ':'))
+ {
+ CPStringBuilder posixSet = new CPStringBuilder ();
+ index = getPosixSet (pattern, index + 1, posixSet);
+ int posixId = RETokenPOSIX.intValue (posixSet.toString ());
+ if (posixId != -1)
+ {
+ RETokenPOSIX t =
+ new RETokenPOSIX (subIndex, posixId, insens, false);
+ if (insensUSASCII)
+ t.unicodeAware = false;
+ options.add (t);
+ }
+ }
+ else if ((ch == '[') && (syntax.get (RESyntax.RE_NESTED_CHARCLASS)))
+ {
+ ParseCharClassResult result =
+ parseCharClass (subIndex, pattern, index, pLength, cflags,
+ syntax, 0);
+ addition.add (result.token);
+ addition.add ("|");
+ index = result.index;
+ }
+ else if ((ch == '&') &&
+ (syntax.get (RESyntax.RE_NESTED_CHARCLASS)) &&
+ (index < pLength) && (pattern[index] == '&'))
+ {
+ if (returnAtAndOperator)
+ {
+ ParseCharClassResult result = new ParseCharClassResult ();
+ options.trimToSize ();
+ if (additionAndAppeared)
+ addition.add ("&");
+ if (addition.size () == 0)
+ addition = null;
+ result.token = new RETokenOneOf (subIndex,
+ options, addition, negative);
+ result.index = index - 1;
+ result.returnAtAndOperator = true;
+ return result;
+ }
+ // The precedence of the operator "&&" is the lowest.
+ // So we postpone adding "&" until other elements
+ // are added. And we insert Boolean.FALSE at the
+ // beginning of the list of tokens following "&&".
+ // So, "&&[a-b][k-m]" will be stored in the Vecter
+ // addition in this order:
+ // Boolean.FALSE, [a-b], "|", [k-m], "|", "&"
+ if (additionAndAppeared)
+ addition.add ("&");
+ addition.add (Boolean.FALSE);
+ additionAndAppeared = true;
+
+ // The part on which "&&" operates may be either
+ // (1) explicitly enclosed by []
+ // or
+ // (2) not enclosed by [] and terminated by the
+ // next "&&" or the end of the character list.
+ // Let the preceding else if block do the case (1).
+ // We must do something in case of (2).
+ if ((index + 1 < pLength) && (pattern[index + 1] != '['))
+ {
+ ParseCharClassResult result =
+ parseCharClass (subIndex, pattern, index + 1, pLength,
+ cflags, syntax,
+ RETURN_AT_AND);
+ addition.add (result.token);
+ addition.add ("|");
+ // If the method returned at the next "&&", it is OK.
+ // Otherwise we have eaten the mark of the end of this
+ // character list "]". In this case we must give back
+ // the end mark.
+ index = (result.returnAtAndOperator ?
+ result.index : result.index - 1);
+ }
+ }
+ else
+ {
+ if (lastCharIsSet)
+ {
+ RETokenChar t = new RETokenChar (subIndex, lastChar, insens);
+ if (insensUSASCII)
+ t.unicodeAware = false;
+ options.add (t);
+ }
+ lastChar = ch;
+ lastCharIsSet = true;
+ }
+ if (index == pLength)
+ throw new REException (getLocalizedMessage ("class.no.end"),
+ REException.REG_EBRACK, index);
+ } // while in list
+ // Out of list, index is one past ']'
+
+ if (lastCharIsSet)
+ {
+ RETokenChar t = new RETokenChar (subIndex, lastChar, insens);
+ if (insensUSASCII)
+ t.unicodeAware = false;
+ options.add (t);
+ }
+
+ ParseCharClassResult result = new ParseCharClassResult ();
+ // Create a new RETokenOneOf
+ options.trimToSize ();
+ if (additionAndAppeared)
+ addition.add ("&");
+ if (addition.size () == 0)
+ addition = null;
+ result.token = new RETokenOneOf (subIndex, options, addition, negative);
+ result.index = index;
+ return result;
}
- private static int getCharUnit(char[] input, int index, CharUnit unit, boolean quot) throws REException {
+ private static int getCharUnit (char[]input, int index, CharUnit unit,
+ boolean quot) throws REException
+ {
unit.ch = input[index++];
unit.bk = (unit.ch == '\\'
&& (!quot || index >= input.length || input[index] == 'E'));
if (unit.bk)
if (index < input.length)
unit.ch = input[index++];
- else throw new REException(getLocalizedMessage("ends.with.backslash"),REException.REG_ESCAPE,index);
+ else
+ throw new REException (getLocalizedMessage ("ends.with.backslash"),
+ REException.REG_ESCAPE, index);
return index;
}
- private static int parseInt(char[] input, int pos, int len, int radix) {
+ private static int parseInt (char[]input, int pos, int len, int radix)
+ {
int ret = 0;
- for (int i = pos; i < pos + len; i++) {
- ret = ret * radix + Character.digit(input[i], radix);
- }
+ for (int i = pos; i < pos + len; i++)
+ {
+ ret = ret * radix + Character.digit (input[i], radix);
+ }
return ret;
}
@@ -1350,88 +1721,109 @@ public class RE extends REToken {
* "\x1b" : Hex char 0x1b
* "\u1234" : Unicode char \u1234
*/
- private static class CharExpression {
+ private static class CharExpression
+ {
/** character represented by this expression */
char ch;
/** String expression */
String expr;
/** length of this expression */
int len;
- public String toString() { return expr; }
+ public String toString ()
+ {
+ return expr;
+ }
}
- private static CharExpression getCharExpression(char[] input, int pos, int lim,
- RESyntax syntax) {
- CharExpression ce = new CharExpression();
+ private static CharExpression getCharExpression (char[]input, int pos,
+ int lim, RESyntax syntax)
+ {
+ CharExpression ce = new CharExpression ();
char c = input[pos];
- if (c == '\\') {
- if (pos + 1 >= lim) return null;
- c = input[pos + 1];
- switch(c) {
- case 't':
- ce.ch = '\t';
- ce.len = 2;
- break;
- case 'n':
- ce.ch = '\n';
- ce.len = 2;
- break;
- case 'r':
- ce.ch = '\r';
- ce.len = 2;
- break;
- case 'x':
- case 'u':
- if ((c == 'x' && syntax.get(RESyntax.RE_HEX_CHAR)) ||
- (c == 'u' && syntax.get(RESyntax.RE_UNICODE_CHAR))) {
- int l = 0;
- int expectedLength = (c == 'x' ? 2 : 4);
- for (int i = pos + 2; i < pos + 2 + expectedLength; i++) {
- if (i >= lim) break;
- if (!((input[i] >= '0' && input[i] <= '9') ||
- (input[i] >= 'A' && input[i] <= 'F') ||
- (input[i] >= 'a' && input[i] <= 'f')))
- break;
- l++;
- }
- if (l != expectedLength) return null;
- ce.ch = (char)(parseInt(input, pos + 2, l, 16));
- ce.len = l + 2;
- }
- else {
- ce.ch = c;
- ce.len = 2;
- }
- break;
- case '0':
- if (syntax.get(RESyntax.RE_OCTAL_CHAR)) {
- int l = 0;
- for (int i = pos + 2; i < pos + 2 + 3; i++) {
- if (i >= lim) break;
- if (input[i] < '0' || input[i] > '7') break;
- l++;
- }
- if (l == 3 && input[pos + 2] > '3') l--;
- if (l <= 0) return null;
- ce.ch = (char)(parseInt(input, pos + 2, l, 8));
- ce.len = l + 2;
- }
- else {
- ce.ch = c;
- ce.len = 2;
- }
- break;
- default:
- ce.ch = c;
- ce.len = 2;
- break;
+ if (c == '\\')
+ {
+ if (pos + 1 >= lim)
+ return null;
+ c = input[pos + 1];
+ switch (c)
+ {
+ case 't':
+ ce.ch = '\t';
+ ce.len = 2;
+ break;
+ case 'n':
+ ce.ch = '\n';
+ ce.len = 2;
+ break;
+ case 'r':
+ ce.ch = '\r';
+ ce.len = 2;
+ break;
+ case 'x':
+ case 'u':
+ if ((c == 'x' && syntax.get (RESyntax.RE_HEX_CHAR)) ||
+ (c == 'u' && syntax.get (RESyntax.RE_UNICODE_CHAR)))
+ {
+ int l = 0;
+ int expectedLength = (c == 'x' ? 2 : 4);
+ for (int i = pos + 2; i < pos + 2 + expectedLength; i++)
+ {
+ if (i >= lim)
+ break;
+ if (!((input[i] >= '0' && input[i] <= '9') ||
+ (input[i] >= 'A' && input[i] <= 'F') ||
+ (input[i] >= 'a' && input[i] <= 'f')))
+ break;
+ l++;
+ }
+ if (l != expectedLength)
+ return null;
+ ce.ch = (char) (parseInt (input, pos + 2, l, 16));
+ ce.len = l + 2;
+ }
+ else
+ {
+ ce.ch = c;
+ ce.len = 2;
+ }
+ break;
+ case '0':
+ if (syntax.get (RESyntax.RE_OCTAL_CHAR))
+ {
+ int l = 0;
+ for (int i = pos + 2; i < pos + 2 + 3; i++)
+ {
+ if (i >= lim)
+ break;
+ if (input[i] < '0' || input[i] > '7')
+ break;
+ l++;
+ }
+ if (l == 3 && input[pos + 2] > '3')
+ l--;
+ if (l <= 0)
+ return null;
+ ce.ch = (char) (parseInt (input, pos + 2, l, 8));
+ ce.len = l + 2;
+ }
+ else
+ {
+ ce.ch = c;
+ ce.len = 2;
+ }
+ break;
+ default:
+ ce.ch = c;
+ ce.len = 2;
+ break;
+ }
}
- }
- else {
- ce.ch = input[pos];
- ce.len = 1;
- }
- ce.expr = new String(input, pos, ce.len);
+ else
+ {
+ ce.ch = input[pos];
+ ce.len = 1;
+ }
+ ce.expr = new String (input, pos, ce.len);
return ce;
}
@@ -1443,7 +1835,8 @@ public class RE extends REToken {
* "\PA" : Property named "A" (Negated)
* "\P{prop}" : Property named "prop" (Negated)
*/
- private static class NamedProperty {
+ private static class NamedProperty
+ {
/** Property name */
String name;
/** Negated or not */
@@ -1452,56 +1845,73 @@ public class RE extends REToken {
int len;
}
- private static NamedProperty getNamedProperty(char[] input, int pos, int lim) {
- NamedProperty np = new NamedProperty();
+ private static NamedProperty getNamedProperty (char[]input, int pos,
+ int lim)
+ {
+ NamedProperty np = new NamedProperty ();
char c = input[pos];
- if (c == '\\') {
- if (++pos >= lim) return null;
- c = input[pos++];
- switch(c) {
- case 'p':
- np.negate = false;
- break;
- case 'P':
- np.negate = true;
- break;
- default:
- return null;
- }
- c = input[pos++];
- if (c == '{') {
- int p = -1;
- for (int i = pos; i < lim; i++) {
- if (input[i] == '}') {
- p = i;
- break;
+ if (c == '\\')
+ {
+ if (++pos >= lim)
+ return null;
+ c = input[pos++];
+ switch (c)
+ {
+ case 'p':
+ np.negate = false;
+ break;
+ case 'P':
+ np.negate = true;
+ break;
+ default:
+ return null;
+ }
+ c = input[pos++];
+ if (c == '{')
+ {
+ int p = -1;
+ for (int i = pos; i < lim; i++)
+ {
+ if (input[i] == '}')
+ {
+ p = i;
+ break;
+ }
}
+ if (p < 0)
+ return null;
+ int len = p - pos;
+ np.name = new String (input, pos, len);
+ np.len = len + 4;
}
- if (p < 0) return null;
- int len = p - pos;
- np.name = new String(input, pos, len);
- np.len = len + 4;
- }
- else {
- np.name = new String(input, pos - 1, 1);
- np.len = 3;
+ else
+ {
+ np.name = new String (input, pos - 1, 1);
+ np.len = 3;
+ }
+ return np;
}
- return np;
- }
- else return null;
+ else
+ return null;
}
- private static RETokenNamedProperty getRETokenNamedProperty(
- int subIndex, NamedProperty np, boolean insens, int index)
- throws REException {
- try {
- return new RETokenNamedProperty(subIndex, np.name, insens, np.negate);
+ private static RETokenNamedProperty getRETokenNamedProperty (int subIndex,
+ NamedProperty
+ np,
+ boolean insens,
+ int index)
+ throws REException
+ {
+ try
+ {
+ return new RETokenNamedProperty (subIndex, np.name, insens, np.negate);
}
- catch (REException e) {
- REException ree;
- ree = new REException(e.getMessage(), REException.REG_ESCAPE, index);
- ree.initCause(e);
- throw ree;
+ catch (REException e)
+ {
+ REException ree;
+ ree = new REException (e.getMessage (), REException.REG_ESCAPE, index);
+ ree.initCause (e);
+ throw ree;
}
}
@@ -1510,10 +1920,11 @@ public class RE extends REToken {
*
* @param input The input text.
*/
- public boolean isMatch(Object input) {
- return isMatch(input,0,0);
+ public boolean isMatch (Object input)
+ {
+ return isMatch (input, 0, 0);
}
-
+
/**
* Checks if the input string, starting from index, is an exact match of
* this regular expression.
@@ -1521,10 +1932,11 @@ public class RE extends REToken {
* @param input The input text.
* @param index The offset index at which the search should be begin.
*/
- public boolean isMatch(Object input,int index) {
- return isMatch(input,index,0);
+ public boolean isMatch (Object input, int index)
+ {
+ return isMatch (input, index, 0);
}
-
+
/**
* Checks if the input, starting from index and using the specified
@@ -1534,45 +1946,56 @@ public class RE extends REToken {
* @param index The offset index at which the search should be begin.
* @param eflags The logical OR of any execution flags above.
*/
- public boolean isMatch(Object input,int index,int eflags) {
- return isMatchImpl(makeCharIndexed(input,index),index,eflags);
+ public boolean isMatch (Object input, int index, int eflags)
+ {
+ return isMatchImpl (makeCharIndexed (input, index), index, eflags);
}
- private boolean isMatchImpl(CharIndexed input, int index, int eflags) {
- if (firstToken == null) // Trivial case
- return (input.charAt(0) == CharIndexed.OUT_OF_BOUNDS);
- REMatch m = new REMatch(numSubs, index, eflags);
- if (firstToken.match(input, m)) {
- if (m != null) {
- if (input.charAt(m.index) == CharIndexed.OUT_OF_BOUNDS) {
+ private boolean isMatchImpl (CharIndexed input, int index, int eflags)
+ {
+ if (firstToken == null) // Trivial case
+ return (input.charAt (0) == CharIndexed.OUT_OF_BOUNDS);
+ REMatch m = new REMatch (numSubs, index, eflags);
+ if (firstToken.match (input, m))
+ {
+ if (m != null)
+ {
+ if (input.charAt (m.index) == CharIndexed.OUT_OF_BOUNDS)
+ {
return true;
- }
- }
- }
+ }
+ }
+ }
return false;
}
-
+
/**
* Returns the maximum number of subexpressions in this regular expression.
* If the expression contains branches, the value returned will be the
* maximum subexpressions in any of the branches.
*/
- public int getNumSubs() {
+ public int getNumSubs ()
+ {
return numSubs;
}
// Overrides REToken.setUncle
- void setUncle(REToken uncle) {
- if (lastToken != null) {
- lastToken.setUncle(uncle);
- } else super.setUncle(uncle); // to deal with empty subexpressions
+ void setUncle (REToken uncle)
+ {
+ if (lastToken != null)
+ {
+ lastToken.setUncle (uncle);
+ }
+ else
+ super.setUncle (uncle); // to deal with empty subexpressions
}
// Overrides REToken.chain
- boolean chain(REToken next) {
- super.chain(next);
- setUncle(next);
+ boolean chain (REToken next)
+ {
+ super.chain (next);
+ setUncle (next);
return true;
}
@@ -1580,12 +2003,14 @@ public class RE extends REToken {
* Returns the minimum number of characters that could possibly
* constitute a match of this regular expression.
*/
- public int getMinimumLength() {
- return minimumLength;
+ public int getMinimumLength ()
+ {
+ return minimumLength;
}
- public int getMaximumLength() {
- return maximumLength;
+ public int getMaximumLength ()
+ {
+ return maximumLength;
}
/**
@@ -1597,8 +2022,9 @@ public class RE extends REToken {
* @param input The input text.
* @return a non-null (but possibly zero-length) array of matches
*/
- public REMatch[] getAllMatches(Object input) {
- return getAllMatches(input,0,0);
+ public REMatch[] getAllMatches (Object input)
+ {
+ return getAllMatches (input, 0, 0);
}
/**
@@ -1612,8 +2038,9 @@ public class RE extends REToken {
* @param index The offset index at which the search should be begin.
* @return a non-null (but possibly zero-length) array of matches
*/
- public REMatch[] getAllMatches(Object input, int index) {
- return getAllMatches(input,index,0);
+ public REMatch[] getAllMatches (Object input, int index)
+ {
+ return getAllMatches (input, index, 0);
}
/**
@@ -1629,52 +2056,62 @@ public class RE extends REToken {
* @param eflags The logical OR of any execution flags above.
* @return a non-null (but possibly zero-length) array of matches
*/
- public REMatch[] getAllMatches(Object input, int index, int eflags) {
- return getAllMatchesImpl(makeCharIndexed(input,index),index,eflags);
+ public REMatch[] getAllMatches (Object input, int index, int eflags)
+ {
+ return getAllMatchesImpl (makeCharIndexed (input, index), index, eflags);
}
// this has been changed since 1.03 to be non-overlapping matches
- private REMatch[] getAllMatchesImpl(CharIndexed input, int index, int eflags) {
- Vector all = new Vector();
+ private REMatch[] getAllMatchesImpl (CharIndexed input, int index,
+ int eflags)
+ {
+ List < REMatch > all = new ArrayList < REMatch > ();
REMatch m = null;
- while ((m = getMatchImpl(input,index,eflags,null)) != null) {
- all.addElement(m);
- index = m.getEndIndex();
- if (m.end[0] == 0) { // handle pathological case of zero-length match
- index++;
- input.move(1);
- } else {
- input.move(m.end[0]);
+ while ((m = getMatchImpl (input, index, eflags, null)) != null)
+ {
+ all.add (m);
+ index = m.getEndIndex ();
+ if (m.end[0] == 0)
+ { // handle pathological case of zero-length match
+ index++;
+ input.move (1);
+ }
+ else
+ {
+ input.move (m.end[0]);
+ }
+ if (!input.isValid ())
+ break;
}
- if (!input.isValid()) break;
- }
- REMatch[] mset = new REMatch[all.size()];
- all.copyInto(mset);
- return mset;
+ return all.toArray (new REMatch[all.size ()]);
}
-
- /* Implements abstract method REToken.match() */
- boolean match(CharIndexed input, REMatch mymatch) {
- input.setHitEnd(mymatch);
- if (firstToken == null) {
- return next(input, mymatch);
- }
-
- // Note the start of this subexpression
- mymatch.start1[subIndex] = mymatch.index;
-
- return firstToken.match(input, mymatch);
- }
- REMatch findMatch(CharIndexed input, REMatch mymatch) {
- if (mymatch.backtrackStack == null)
- mymatch.backtrackStack = new BacktrackStack();
- boolean b = match(input, mymatch);
- if (b) {
- return mymatch;
- }
- return null;
- }
+ /* Implements abstract method REToken.match() */
+ boolean match (CharIndexed input, REMatch mymatch)
+ {
+ input.setHitEnd (mymatch);
+ if (firstToken == null)
+ {
+ return next (input, mymatch);
+ }
+
+ // Note the start of this subexpression
+ mymatch.start1[subIndex] = mymatch.index;
+
+ return firstToken.match (input, mymatch);
+ }
+
+ REMatch findMatch (CharIndexed input, REMatch mymatch)
+ {
+ if (mymatch.backtrackStack == null)
+ mymatch.backtrackStack = new BacktrackStack ();
+ boolean b = match (input, mymatch);
+ if (b)
+ {
+ return mymatch;
+ }
+ return null;
+ }
/**
* Returns the first match found in the input. If no match is found,
@@ -1683,10 +2120,11 @@ public class RE extends REToken {
* @param input The input text.
* @return An REMatch instance referencing the match, or null if none.
*/
- public REMatch getMatch(Object input) {
- return getMatch(input,0,0);
+ public REMatch getMatch (Object input)
+ {
+ return getMatch (input, 0, 0);
}
-
+
/**
* Returns the first match found in the input, beginning
* the search at the specified index. If no match is found,
@@ -1696,10 +2134,11 @@ public class RE extends REToken {
* @param index The offset within the text to begin looking for a match.
* @return An REMatch instance referencing the match, or null if none.
*/
- public REMatch getMatch(Object input, int index) {
- return getMatch(input,index,0);
+ public REMatch getMatch (Object input, int index)
+ {
+ return getMatch (input, index, 0);
}
-
+
/**
* Returns the first match found in the input, beginning
* the search at the specified index, and using the specified
@@ -1710,8 +2149,9 @@ public class RE extends REToken {
* @param eflags The logical OR of any execution flags above.
* @return An REMatch instance referencing the match, or null if none.
*/
- public REMatch getMatch(Object input, int index, int eflags) {
- return getMatch(input,index,eflags,null);
+ public REMatch getMatch (Object input, int index, int eflags)
+ {
+ return getMatch (input, index, eflags, null);
}
/**
@@ -1727,70 +2167,82 @@ public class RE extends REToken {
* @param eflags The logical OR of any execution flags above.
* @param buffer The StringBuffer to save pre-match text in.
* @return An REMatch instance referencing the match, or null if none. */
- public REMatch getMatch(Object input, int index, int eflags, StringBuffer buffer) {
- return getMatchImpl(makeCharIndexed(input,index),index,eflags,buffer);
+ public REMatch getMatch (Object input, int index, int eflags,
+ CPStringBuilder buffer)
+ {
+ return getMatchImpl (makeCharIndexed (input, index), index, eflags,
+ buffer);
}
- REMatch getMatchImpl(CharIndexed input, int anchor, int eflags, StringBuffer buffer) {
- boolean tryEntireMatch = ((eflags & REG_TRY_ENTIRE_MATCH) != 0);
- boolean doMove = ((eflags & REG_FIX_STARTING_POSITION) == 0);
- RE re = (tryEntireMatch ? (RE) this.clone() : this);
- if (tryEntireMatch) {
- RETokenEnd reEnd = new RETokenEnd(0, null);
- reEnd.setFake(true);
- re.chain(reEnd);
+ REMatch getMatchImpl (CharIndexed input, int anchor, int eflags,
+ CPStringBuilder buffer)
+ {
+ boolean tryEntireMatch = ((eflags & REG_TRY_ENTIRE_MATCH) != 0);
+ boolean doMove = ((eflags & REG_FIX_STARTING_POSITION) == 0);
+ RE re = (tryEntireMatch ? (RE) this.clone () : this);
+ if (tryEntireMatch)
+ {
+ RETokenEnd reEnd = new RETokenEnd (0, null);
+ reEnd.setFake (true);
+ re.chain (reEnd);
}
- // Create a new REMatch to hold results
- REMatch mymatch = new REMatch(numSubs, anchor, eflags);
- do {
- /* The following potimization is commented out because
- the matching should be tried even if the length of
- input is obviously too short in order that
- java.util.regex.Matcher#hitEnd() may work correctly.
- // Optimization: check if anchor + minimumLength > length
- if (minimumLength == 0 || input.charAt(minimumLength-1) != CharIndexed.OUT_OF_BOUNDS) {
- */
- if (re.match(input, mymatch)) {
- REMatch best = mymatch;
- // We assume that the match that coms first is the best.
- // And the following "The longer, the better" rule has
- // been commented out. The longest is not neccesarily
- // the best. For example, "a" out of "aaa" is the best
- // match for /a+?/.
- /*
- // Find best match of them all to observe leftmost longest
- while ((mymatch = mymatch.next) != null) {
- if (mymatch.index > best.index) {
- best = mymatch;
- }
- }
- */
- best.end[0] = best.index;
- best.finish(input);
- input.setLastMatch(best);
- return best;
- }
- /* End of the optimization commented out
- }
- */
- mymatch.clear(++anchor);
- // Append character to buffer if needed
- if (buffer != null && input.charAt(0) != CharIndexed.OUT_OF_BOUNDS) {
- buffer.append(input.charAt(0));
+ // Create a new REMatch to hold results
+ REMatch mymatch = new REMatch (numSubs, anchor, eflags);
+ do
+ {
+ /* The following potimization is commented out because
+ the matching should be tried even if the length of
+ input is obviously too short in order that
+ java.util.regex.Matcher#hitEnd() may work correctly.
+ // Optimization: check if anchor + minimumLength > length
+ if (minimumLength == 0 || input.charAt(minimumLength-1) != CharIndexed.OUT_OF_BOUNDS) {
+ */
+ if (re.match (input, mymatch))
+ {
+ REMatch best = mymatch;
+ // We assume that the match that coms first is the best.
+ // And the following "The longer, the better" rule has
+ // been commented out. The longest is not neccesarily
+ // the best. For example, "a" out of "aaa" is the best
+ // match for /a+?/.
+ /*
+ // Find best match of them all to observe leftmost longest
+ while ((mymatch = mymatch.next) != null) {
+ if (mymatch.index > best.index) {
+ best = mymatch;
+ }
+ }
+ */
+ best.end[0] = best.index;
+ best.finish (input);
+ input.setLastMatch (best);
+ return best;
}
- // java.util.regex.Matcher#hitEnd() requires that the search should
- // be tried at the end of input, so we use move1(1) instead of move(1)
- } while (doMove && input.move1(1));
-
- // Special handling at end of input for e.g. "$"
- if (minimumLength == 0) {
- if (match(input, mymatch)) {
- mymatch.finish(input);
- return mymatch;
+ /* End of the optimization commented out
+ }
+ */
+ mymatch.clear (++anchor);
+ // Append character to buffer if needed
+ if (buffer != null && input.charAt (0) != CharIndexed.OUT_OF_BOUNDS)
+ {
+ buffer.append (input.charAt (0));
+ }
+ // java.util.regex.Matcher#hitEnd() requires that the search should
+ // be tried at the end of input, so we use move1(1) instead of move(1)
+ }
+ while (doMove && input.move1 (1));
+
+ // Special handling at end of input for e.g. "$"
+ if (minimumLength == 0)
+ {
+ if (match (input, mymatch))
+ {
+ mymatch.finish (input);
+ return mymatch;
}
}
- return null;
+ return null;
}
/**
@@ -1800,8 +2252,9 @@ public class RE extends REToken {
* @param input The input text.
* @return A non-null REMatchEnumeration instance.
*/
- public REMatchEnumeration getMatchEnumeration(Object input) {
- return getMatchEnumeration(input,0,0);
+ public REMatchEnumeration getMatchEnumeration (Object input)
+ {
+ return getMatchEnumeration (input, 0, 0);
}
@@ -1814,8 +2267,9 @@ public class RE extends REToken {
* @return A non-null REMatchEnumeration instance, with its input cursor
* set to the index position specified.
*/
- public REMatchEnumeration getMatchEnumeration(Object input, int index) {
- return getMatchEnumeration(input,index,0);
+ public REMatchEnumeration getMatchEnumeration (Object input, int index)
+ {
+ return getMatchEnumeration (input, index, 0);
}
/**
@@ -1828,8 +2282,11 @@ public class RE extends REToken {
* @return A non-null REMatchEnumeration instance, with its input cursor
* set to the index position specified.
*/
- public REMatchEnumeration getMatchEnumeration(Object input, int index, int eflags) {
- return new REMatchEnumeration(this,makeCharIndexed(input,index),index,eflags);
+ public REMatchEnumeration getMatchEnumeration (Object input, int index,
+ int eflags)
+ {
+ return new REMatchEnumeration (this, makeCharIndexed (input, index),
+ index, eflags);
}
@@ -1841,8 +2298,9 @@ public class RE extends REToken {
* @return A String interpolating the substituted text.
* @see REMatch#substituteInto
*/
- public String substitute(Object input,String replace) {
- return substitute(input,replace,0,0);
+ public String substitute (Object input, String replace)
+ {
+ return substitute (input, replace, 0, 0);
}
/**
@@ -1858,8 +2316,9 @@ public class RE extends REToken {
* at the index position, and interpolating the substituted text.
* @see REMatch#substituteInto
*/
- public String substitute(Object input,String replace,int index) {
- return substitute(input,replace,index,0);
+ public String substitute (Object input, String replace, int index)
+ {
+ return substitute (input, replace, index, 0);
}
/**
@@ -1875,23 +2334,32 @@ public class RE extends REToken {
* at the index position, and interpolating the substituted text.
* @see REMatch#substituteInto
*/
- public String substitute(Object input,String replace,int index,int eflags) {
- return substituteImpl(makeCharIndexed(input,index),replace,index,eflags);
+ public String substitute (Object input, String replace, int index,
+ int eflags)
+ {
+ return substituteImpl (makeCharIndexed (input, index), replace, index,
+ eflags);
}
- private String substituteImpl(CharIndexed input,String replace,int index,int eflags) {
- StringBuffer buffer = new StringBuffer();
- REMatch m = getMatchImpl(input,index,eflags,buffer);
- if (m==null) return buffer.toString();
- buffer.append(getReplacement(replace, m, eflags));
- if (input.move(m.end[0])) {
- do {
- buffer.append(input.charAt(0));
- } while (input.move(1));
- }
- return buffer.toString();
+ private String substituteImpl (CharIndexed input, String replace, int index,
+ int eflags)
+ {
+ CPStringBuilder buffer = new CPStringBuilder ();
+ REMatch m = getMatchImpl (input, index, eflags, buffer);
+ if (m == null)
+ return buffer.toString ();
+ buffer.append (getReplacement (replace, m, eflags));
+ if (input.move (m.end[0]))
+ {
+ do
+ {
+ buffer.append (input.charAt (0));
+ }
+ while (input.move (1));
+ }
+ return buffer.toString ();
}
-
+
/**
* Substitutes the replacement text for each non-overlapping match found
* in the input text.
@@ -1901,8 +2369,9 @@ public class RE extends REToken {
* @return A String interpolating the substituted text.
* @see REMatch#substituteInto
*/
- public String substituteAll(Object input,String replace) {
- return substituteAll(input,replace,0,0);
+ public String substituteAll (Object input, String replace)
+ {
+ return substituteAll (input, replace, 0, 0);
}
/**
@@ -1919,10 +2388,11 @@ public class RE extends REToken {
* at the index position, and interpolating the substituted text.
* @see REMatch#substituteInto
*/
- public String substituteAll(Object input,String replace,int index) {
- return substituteAll(input,replace,index,0);
+ public String substituteAll (Object input, String replace, int index)
+ {
+ return substituteAll (input, replace, index, 0);
}
-
+
/**
* Substitutes the replacement text for each non-overlapping match found
* in the input text, starting at the specified index and using the
@@ -1936,218 +2406,270 @@ public class RE extends REToken {
* at the index position, and interpolating the substituted text.
* @see REMatch#substituteInto
*/
- public String substituteAll(Object input,String replace,int index,int eflags) {
- return substituteAllImpl(makeCharIndexed(input,index),replace,index,eflags);
+ public String substituteAll (Object input, String replace, int index,
+ int eflags)
+ {
+ return substituteAllImpl (makeCharIndexed (input, index), replace, index,
+ eflags);
}
- private String substituteAllImpl(CharIndexed input,String replace,int index,int eflags) {
- StringBuffer buffer = new StringBuffer();
+ private String substituteAllImpl (CharIndexed input, String replace,
+ int index, int eflags)
+ {
+ CPStringBuilder buffer = new CPStringBuilder ();
REMatch m;
- while ((m = getMatchImpl(input,index,eflags,buffer)) != null) {
- buffer.append(getReplacement(replace, m, eflags));
- index = m.getEndIndex();
- if (m.end[0] == 0) {
- char ch = input.charAt(0);
- if (ch != CharIndexed.OUT_OF_BOUNDS)
- buffer.append(ch);
- input.move(1);
- } else {
- input.move(m.end[0]);
- }
+ while ((m = getMatchImpl (input, index, eflags, buffer)) != null)
+ {
+ buffer.append (getReplacement (replace, m, eflags));
+ index = m.getEndIndex ();
+ if (m.end[0] == 0)
+ {
+ char ch = input.charAt (0);
+ if (ch != CharIndexed.OUT_OF_BOUNDS)
+ buffer.append (ch);
+ input.move (1);
+ }
+ else
+ {
+ input.move (m.end[0]);
+ }
- if (!input.isValid()) break;
- }
- return buffer.toString();
+ if (!input.isValid ())
+ break;
+ }
+ return buffer.toString ();
}
- public static String getReplacement(String replace, REMatch m, int eflags) {
+ public static String getReplacement (String replace, REMatch m, int eflags)
+ {
if ((eflags & REG_NO_INTERPOLATE) > 0)
return replace;
- else {
- if ((eflags & REG_REPLACE_USE_BACKSLASHESCAPE) > 0) {
- StringBuffer sb = new StringBuffer();
- int l = replace.length();
- for (int i = 0; i < l; i++) {
- char c = replace.charAt(i);
- switch(c) {
- case '\\':
- i++;
- // Let StringIndexOutOfBoundsException be thrown.
- sb.append(replace.charAt(i));
- break;
- case '$':
- int i1 = i + 1;
- while (i1 < replace.length() &&
- Character.isDigit(replace.charAt(i1))) i1++;
- sb.append(m.substituteInto(replace.substring(i, i1)));
- i = i1 - 1;
- break;
- default:
- sb.append(c);
- }
- }
- return sb.toString();
+ else
+ {
+ if ((eflags & REG_REPLACE_USE_BACKSLASHESCAPE) > 0)
+ {
+ CPStringBuilder sb = new CPStringBuilder ();
+ int l = replace.length ();
+ for (int i = 0; i < l; i++)
+ {
+ char c = replace.charAt (i);
+ switch (c)
+ {
+ case '\\':
+ i++;
+ // Let StringIndexOutOfBoundsException be thrown.
+ sb.append (replace.charAt (i));
+ break;
+ case '$':
+ int i1 = i + 1;
+ while (i1 < replace.length () &&
+ Character.isDigit (replace.charAt (i1)))
+ i1++;
+ sb.append (m.substituteInto (replace.substring (i, i1)));
+ i = i1 - 1;
+ break;
+ default:
+ sb.append (c);
+ }
+ }
+ return sb.toString ();
+ }
+ else
+ return m.substituteInto (replace);
}
- else
- return m.substituteInto(replace);
- }
- }
-
+ }
+
/* Helper function for constructor */
- private void addToken(REToken next) {
- if (next == null) return;
- minimumLength += next.getMinimumLength();
- int nmax = next.getMaximumLength();
+ private void addToken (REToken next)
+ {
+ if (next == null)
+ return;
+ minimumLength += next.getMinimumLength ();
+ int nmax = next.getMaximumLength ();
if (nmax < Integer.MAX_VALUE && maximumLength < Integer.MAX_VALUE)
- maximumLength += nmax;
- else
- maximumLength = Integer.MAX_VALUE;
+ maximumLength += nmax;
+ else
+ maximumLength = Integer.MAX_VALUE;
- if (firstToken == null) {
+ if (firstToken == null)
+ {
lastToken = firstToken = next;
- } else {
- // if chain returns false, it "rejected" the token due to
- // an optimization, and next was combined with lastToken
- if (lastToken.chain(next)) {
- lastToken = next;
}
- }
+ else
+ {
+ // if chain returns false, it "rejected" the token due to
+ // an optimization, and next was combined with lastToken
+ if (lastToken.chain (next))
+ {
+ lastToken = next;
+ }
+ }
}
- private static REToken setRepeated(REToken current, int min, int max, int index) throws REException {
- if (current == null) throw new REException(getLocalizedMessage("repeat.no.token"),REException.REG_BADRPT,index);
- return new RETokenRepeated(current.subIndex,current,min,max);
+ private static REToken setRepeated (REToken current, int min, int max,
+ int index) throws REException
+ {
+ if (current == null)
+ throw new REException (getLocalizedMessage ("repeat.no.token"),
+ REException.REG_BADRPT, index);
+ return new RETokenRepeated (current.subIndex, current, min, max);
}
- private static int getPosixSet(char[] pattern,int index,StringBuffer buf) {
+ private static int getPosixSet (char[]pattern, int index,
+ CPStringBuilder buf)
+ {
// Precondition: pattern[index-1] == ':'
// we will return pos of closing ']'.
int i;
- for (i=index; i<(pattern.length-1); i++) {
- if ((pattern[i] == ':') && (pattern[i+1] == ']'))
- return i+2;
- buf.append(pattern[i]);
- }
- return index; // didn't match up
+ for (i = index; i < (pattern.length - 1); i++)
+ {
+ if ((pattern[i] == ':') && (pattern[i + 1] == ']'))
+ return i + 2;
+ buf.append (pattern[i]);
+ }
+ return index; // didn't match up
}
- private int getMinMax(char[] input,int index,IntPair minMax,RESyntax syntax) throws REException {
+ private int getMinMax (char[]input, int index, IntPair minMax,
+ RESyntax syntax) throws REException
+ {
// Precondition: input[index-1] == '{', minMax != null
- boolean mustMatch = !syntax.get(RESyntax.RE_NO_BK_BRACES);
+ boolean mustMatch = !syntax.get (RESyntax.RE_NO_BK_BRACES);
int startIndex = index;
- if (index == input.length) {
- if (mustMatch)
- throw new REException(getLocalizedMessage("unmatched.brace"),REException.REG_EBRACE,index);
- else
- return startIndex;
- }
-
- int min,max=0;
- CharUnit unit = new CharUnit();
- StringBuffer buf = new StringBuffer();
-
+ if (index == input.length)
+ {
+ if (mustMatch)
+ throw new REException (getLocalizedMessage ("unmatched.brace"),
+ REException.REG_EBRACE, index);
+ else
+ return startIndex;
+ }
+
+ int min, max = 0;
+ CharUnit unit = new CharUnit ();
+ CPStringBuilder buf = new CPStringBuilder ();
+
// Read string of digits
- do {
- index = getCharUnit(input,index,unit,false);
- if (Character.isDigit(unit.ch))
- buf.append(unit.ch);
- } while ((index != input.length) && Character.isDigit(unit.ch));
+ do
+ {
+ index = getCharUnit (input, index, unit, false);
+ if (Character.isDigit (unit.ch))
+ buf.append (unit.ch);
+ }
+ while ((index != input.length) && Character.isDigit (unit.ch));
// Check for {} tomfoolery
- if (buf.length() == 0) {
- if (mustMatch)
- throw new REException(getLocalizedMessage("interval.error"),REException.REG_EBRACE,index);
- else
- return startIndex;
- }
+ if (buf.length () == 0)
+ {
+ if (mustMatch)
+ throw new REException (getLocalizedMessage ("interval.error"),
+ REException.REG_EBRACE, index);
+ else
+ return startIndex;
+ }
- min = Integer.parseInt(buf.toString());
-
- if ((unit.ch == '}') && (syntax.get(RESyntax.RE_NO_BK_BRACES) ^ unit.bk))
+ min = Integer.parseInt (buf.toString ());
+
+ if ((unit.ch == '}') && (syntax.get (RESyntax.RE_NO_BK_BRACES) ^ unit.bk))
max = min;
else if (index == input.length)
if (mustMatch)
- throw new REException(getLocalizedMessage("interval.no.end"),REException.REG_EBRACE,index);
- else
- return startIndex;
- else if ((unit.ch == ',') && !unit.bk) {
- buf = new StringBuffer();
+ throw new REException (getLocalizedMessage ("interval.no.end"),
+ REException.REG_EBRACE, index);
+ else
+ return startIndex;
+ else
+ if ((unit.ch == ',') && !unit.bk)
+ {
+ buf = new CPStringBuilder ();
// Read string of digits
- while (((index = getCharUnit(input,index,unit,false)) != input.length) && Character.isDigit(unit.ch))
- buf.append(unit.ch);
-
- if (!((unit.ch == '}') && (syntax.get(RESyntax.RE_NO_BK_BRACES) ^ unit.bk)))
- if (mustMatch)
- throw new REException(getLocalizedMessage("interval.error"),REException.REG_EBRACE,index);
- else
- return startIndex;
+ while (((index =
+ getCharUnit (input, index, unit, false)) != input.length)
+ && Character.isDigit (unit.ch))
+ buf.append (unit.ch);
+
+ if (!
+ ((unit.ch == '}')
+ && (syntax.get (RESyntax.RE_NO_BK_BRACES) ^ unit.bk)))
+ if (mustMatch)
+ throw new REException (getLocalizedMessage ("interval.error"),
+ REException.REG_EBRACE, index);
+ else
+ return startIndex;
// This is the case of {x,}
- if (buf.length() == 0) max = Integer.MAX_VALUE;
- else max = Integer.parseInt(buf.toString());
- } else
- if (mustMatch)
- throw new REException(getLocalizedMessage("interval.error"),REException.REG_EBRACE,index);
+ if (buf.length () == 0)
+ max = Integer.MAX_VALUE;
else
- return startIndex;
+ max = Integer.parseInt (buf.toString ());
+ }
+ else if (mustMatch)
+ throw new REException (getLocalizedMessage ("interval.error"),
+ REException.REG_EBRACE, index);
+ else
+ return startIndex;
- // We know min and max now, and they are valid.
+ // We know min and max now, and they are valid.
- minMax.first = min;
- minMax.second = max;
+ minMax.first = min;
+ minMax.second = max;
- // return the index following the '}'
- return index;
+ // return the index following the '}'
+ return index;
}
/**
* Return a human readable form of the compiled regular expression,
* useful for debugging.
*/
- public String toString() {
- StringBuffer sb = new StringBuffer();
- dump(sb);
- return sb.toString();
- }
-
- void dump(StringBuffer os) {
- os.append("(?#startRE subIndex=" + subIndex + ")");
+ public String toString ()
+ {
+ CPStringBuilder sb = new CPStringBuilder ();
+ dump (sb);
+ return sb.toString ();
+ }
+
+ void dump (CPStringBuilder os)
+ {
+ os.append ("(?#startRE subIndex=" + subIndex + ")");
if (subIndex == 0)
- os.append("?:");
+ os.append ("?:");
if (firstToken != null)
- firstToken.dumpAll(os);
+ firstToken.dumpAll (os);
if (subIndex == 0)
- os.append(")");
- os.append("(?#endRE subIndex=" + subIndex + ")");
+ os.append (")");
+ os.append ("(?#endRE subIndex=" + subIndex + ")");
}
// Cast input appropriately or throw exception
// This method was originally a private method, but has been made
// public because java.util.regex.Matcher uses this.
- public static CharIndexed makeCharIndexed(Object input, int index) {
- // The case where input is already a CharIndexed is supposed
- // be the most likely because this is the case with
- // java.util.regex.Matcher.
- // We could let a String or a CharSequence fall through
- // to final input, but since it'a very likely input type,
- // we check it first.
- if (input instanceof CharIndexed) {
+ public static CharIndexed makeCharIndexed (Object input, int index)
+ {
+ // The case where input is already a CharIndexed is supposed
+ // be the most likely because this is the case with
+ // java.util.regex.Matcher.
+ // We could let a String or a CharSequence fall through
+ // to final input, but since it'a very likely input type,
+ // we check it first.
+ if (input instanceof CharIndexed)
+ {
CharIndexed ci = (CharIndexed) input;
- ci.setAnchor(index);
+ ci.setAnchor (index);
return ci;
- }
+ }
else if (input instanceof CharSequence)
- return new CharIndexedCharSequence((CharSequence) input,index);
+ return new CharIndexedCharSequence ((CharSequence) input, index);
else if (input instanceof String)
- return new CharIndexedString((String) input,index);
+ return new CharIndexedString ((String) input, index);
else if (input instanceof char[])
- return new CharIndexedCharArray((char[]) input,index);
+ return new CharIndexedCharArray ((char[]) input, index);
else if (input instanceof StringBuffer)
- return new CharIndexedStringBuffer((StringBuffer) input,index);
+ return new CharIndexedStringBuffer ((StringBuffer) input, index);
else if (input instanceof InputStream)
- return new CharIndexedInputStream((InputStream) input,index);
- else
- return new CharIndexedString(input.toString(), index);
+ return new CharIndexedInputStream ((InputStream) input, index);
+ else
+ return new CharIndexedString (input.toString (), index);
}
}
diff --git a/libjava/classpath/gnu/java/util/regex/REException.java b/libjava/classpath/gnu/java/util/regex/REException.java
index 7a277ca..5681cee 100644
--- a/libjava/classpath/gnu/java/util/regex/REException.java
+++ b/libjava/classpath/gnu/java/util/regex/REException.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.java.util.regex;
+import gnu.java.lang.CPStringBuilder;
+
import java.text.MessageFormat;
/**
@@ -53,7 +55,8 @@ import java.text.MessageFormat;
* @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A>
*/
-public class REException extends Exception {
+public class REException extends Exception
+{
private int type;
private int pos;
@@ -64,25 +67,25 @@ public class REException extends Exception {
* Invalid use of repetition operators such as using
* `*' as the first character.
*/
- public static final int REG_BADRPT = 1;
+ public static final int REG_BADRPT = 1;
/**
* Error flag.
* Invalid use of back reference operator.
*/
- public static final int REG_BADBR = 2;
+ public static final int REG_BADBR = 2;
/**
* Error flag.
* Un-matched brace interval operators.
*/
- public static final int REG_EBRACE = 3;
+ public static final int REG_EBRACE = 3;
/**
* Error flag.
* Un-matched bracket list operators.
*/
- public static final int REG_EBRACK = 4;
+ public static final int REG_EBRACK = 4;
/**
* Error flag.
@@ -90,65 +93,67 @@ public class REException extends Exception {
* point of the range occurs prior to the starting
* point.
*/
- public static final int REG_ERANGE = 5;
+ public static final int REG_ERANGE = 5;
/**
* Error flag.
* Unknown character class name. <B>Not implemented</B>.
*/
- public static final int REG_ECTYPE = 6;
+ public static final int REG_ECTYPE = 6;
/**
* Error flag.
* Un-matched parenthesis group operators.
*/
- public static final int REG_EPAREN = 7;
+ public static final int REG_EPAREN = 7;
/**
* Error flag.
* Invalid back reference to a subexpression.
*/
- public static final int REG_ESUBREG = 8;
+ public static final int REG_ESUBREG = 8;
/**
* Error flag.
* Non specific error. <B>Not implemented</B>.
*/
- public static final int REG_EEND = 9;
+ public static final int REG_EEND = 9;
/**
* Error flag.
* Invalid escape sequence. <B>Not implemented</B>.
*/
- public static final int REG_ESCAPE = 10;
+ public static final int REG_ESCAPE = 10;
/**
* Error flag.
* Invalid use of pattern operators such as group or list.
*/
- public static final int REG_BADPAT = 11;
+ public static final int REG_BADPAT = 11;
/**
* Error flag.
* Compiled regular expression requires a pattern
* buffer larger than 64Kb. <B>Not implemented</B>.
*/
- public static final int REG_ESIZE = 12;
+ public static final int REG_ESIZE = 12;
/**
* Error flag.
* The regex routines ran out of memory. <B>Not implemented</B>.
*/
- public static final int REG_ESPACE = 13;
+ public static final int REG_ESPACE = 13;
- REException(String msg, int type, int position) {
- super(msg);
+ REException (String msg, int type, int position)
+ {
+ super (msg);
this.type = type;
this.pos = position;
}
- REException(String msg, Throwable cause, int type, int position) {
- super(msg, cause);
+ REException (String msg, Throwable cause, int type, int position)
+ {
+ super (msg, cause);
this.type = type;
this.pos = position;
}
@@ -157,7 +162,8 @@ public class REException extends Exception {
* Returns the type of the exception, one of the constants listed above.
*/
- public int getType() {
+ public int getType ()
+ {
return type;
}
@@ -167,7 +173,8 @@ public class REException extends Exception {
* where the error was detected, not necessarily the starting index of
* a bad subexpression.
*/
- public int getPosition() {
+ public int getPosition ()
+ {
return pos;
}
@@ -176,13 +183,16 @@ public class REException extends Exception {
* as well as its index position in the string or character array
* being compiled.
*/
- public String getMessage() {
- Object[] args = {new Integer(pos)};
- StringBuffer sb = new StringBuffer();
- String prefix = RE.getLocalizedMessage("error.prefix");
- sb.append(MessageFormat.format(prefix, args));
- sb.append('\n');
- sb.append(super.getMessage());
- return sb.toString();
+ public String getMessage ()
+ {
+ Object[]args =
+ {
+ new Integer (pos)};
+ CPStringBuilder sb = new CPStringBuilder ();
+ String prefix = RE.getLocalizedMessage ("error.prefix");
+ sb.append (MessageFormat.format (prefix, args));
+ sb.append ('\n');
+ sb.append (super.getMessage ());
+ return sb.toString ();
}
}
diff --git a/libjava/classpath/gnu/java/util/regex/REFilterInputStream.java b/libjava/classpath/gnu/java/util/regex/REFilterInputStream.java
index abe8630..c7acb71 100644
--- a/libjava/classpath/gnu/java/util/regex/REFilterInputStream.java
+++ b/libjava/classpath/gnu/java/util/regex/REFilterInputStream.java
@@ -51,14 +51,15 @@ import java.io.InputStream;
* class instead.
*/
-public class REFilterInputStream extends FilterInputStream {
+public class REFilterInputStream extends FilterInputStream
+{
- private RE expr;
- private String replace;
- private String buffer;
- private int bufpos;
- private int offset;
- private CharIndexedInputStream stream;
+ private RE expr;
+ private String replace;
+ private String buffer;
+ private int bufpos;
+ private int offset;
+ private CharIndexedInputStream stream;
/**
* Creates an REFilterInputStream. When reading from this stream,
@@ -71,9 +72,10 @@ public class REFilterInputStream extends FilterInputStream {
* @param expr The regular expression to search for.
* @param replace The text pattern to replace matches with.
*/
- public REFilterInputStream(InputStream stream, RE expr, String replace) {
- super(stream);
- this.stream = new CharIndexedInputStream(stream,0);
+ public REFilterInputStream (InputStream stream, RE expr, String replace)
+ {
+ super (stream);
+ this.stream = new CharIndexedInputStream (stream, 0);
this.expr = expr;
this.replace = replace;
}
@@ -82,32 +84,38 @@ public class REFilterInputStream extends FilterInputStream {
* Reads the next byte from the stream per the general contract of
* InputStream.read(). Returns -1 on error or end of stream.
*/
- public int read() {
+ public int read ()
+ {
// If we have buffered replace data, use it.
- if ((buffer != null) && (bufpos < buffer.length())) {
- return (int) buffer.charAt(bufpos++);
- }
+ if ((buffer != null) && (bufpos < buffer.length ()))
+ {
+ return (int) buffer.charAt (bufpos++);
+ }
// check if input is at a valid position
- if (!stream.isValid()) return -1;
-
- REMatch mymatch = new REMatch(expr.getNumSubs(),offset,0);
- if (expr.match(stream, mymatch)) {
- mymatch.end[0] = mymatch.index;
- mymatch.finish(stream);
- stream.move(mymatch.toString().length());
- offset += mymatch.toString().length();
- buffer = mymatch.substituteInto(replace);
- bufpos = 1;
-
- // This is prone to infinite loops if replace string turns out empty.
- if (buffer.length() > 0) {
- return buffer.charAt(0);
+ if (!stream.isValid ())
+ return -1;
+
+ REMatch mymatch = new REMatch (expr.getNumSubs (), offset, 0);
+ if (expr.match (stream, mymatch))
+ {
+ mymatch.end[0] = mymatch.index;
+ mymatch.finish (stream);
+ stream.move (mymatch.toString ().length ());
+ offset += mymatch.toString ().length ();
+ buffer = mymatch.substituteInto (replace);
+ bufpos = 1;
+
+ // This is prone to infinite loops if replace string turns out empty.
+ if (buffer.length () > 0)
+ {
+ return buffer.charAt (0);
+ }
}
- }
- char ch = stream.charAt(0);
- if (ch == CharIndexed.OUT_OF_BOUNDS) return -1;
- stream.move(1);
+ char ch = stream.charAt (0);
+ if (ch == CharIndexed.OUT_OF_BOUNDS)
+ return -1;
+ stream.move (1);
offset++;
return ch;
}
@@ -116,25 +124,30 @@ public class REFilterInputStream extends FilterInputStream {
* Returns false. REFilterInputStream does not support mark() and
* reset() methods.
*/
- public boolean markSupported() {
+ public boolean markSupported ()
+ {
return false;
}
/** Reads from the stream into the provided array. */
- public int read(byte[] b, int off, int len) {
+ public int read (byte[]b, int off, int len)
+ {
int i;
int ok = 0;
- while (len-- > 0) {
- i = read();
- if (i == -1) return (ok == 0) ? -1 : ok;
- b[off++] = (byte) i;
- ok++;
- }
+ while (len-- > 0)
+ {
+ i = read ();
+ if (i == -1)
+ return (ok == 0) ? -1 : ok;
+ b[off++] = (byte) i;
+ ok++;
+ }
return ok;
}
/** Reads from the stream into the provided array. */
- public int read(byte[] b) {
- return read(b,0,b.length);
+ public int read (byte[]b)
+ {
+ return read (b, 0, b.length);
}
}
diff --git a/libjava/classpath/gnu/java/util/regex/REMatch.java b/libjava/classpath/gnu/java/util/regex/REMatch.java
index d899482..d29972e 100644
--- a/libjava/classpath/gnu/java/util/regex/REMatch.java
+++ b/libjava/classpath/gnu/java/util/regex/REMatch.java
@@ -37,6 +37,9 @@ exception statement from your version. */
package gnu.java.util.regex;
+
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
/**
@@ -47,100 +50,112 @@ import java.io.Serializable;
*
* @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A>
*/
-public final class REMatch implements Serializable, Cloneable {
- private String matchedText;
- private CharIndexed matchedCharIndexed;
-
- // These variables are package scope for fast access within the engine
- int eflags; // execution flags this match was made using
-
- // Offset in source text where match was tried. This is zero-based;
- // the actual position in the source text is given by (offset + anchor).
- int offset;
-
- // Anchor position refers to the index into the source input
- // at which the matching operation began.
- // This is also useful for the ANCHORINDEX option.
- int anchor;
-
- // Package scope; used by RE.
- int index; // used while matching to mark current match position in input
- // start1[i] is set when the i-th subexp starts. And start1[i] is copied
- // to start[i] when the i-th subexp ends. So start[i] keeps the previously
- // assigned value while the i-th subexp is being processed. This makes
- // backreference to the i-th subexp within the i-th subexp possible.
- int[] start; // start positions (relative to offset) for each (sub)exp.
- int[] start1; // start positions (relative to offset) for each (sub)exp.
- int[] end; // end positions for the same
- // start[i] == -1 or end[i] == -1 means that the start/end position is void.
- // start[i] == p or end[i] == p where p < 0 and p != -1 means that
- // the actual start/end position is (p+1). Start/end positions may
- // become negative when the subexpression is in a RETokenLookBehind.
- boolean empty; // empty string matched. This flag is used only within
- // RETokenRepeated.
-
- BacktrackStack backtrackStack;
-
- public Object clone() {
- try {
- REMatch copy = (REMatch) super.clone();
-
- copy.start = (int[]) start.clone();
- copy.start1 = (int[]) start1.clone();
- copy.end = (int[]) end.clone();
-
- return copy;
- } catch (CloneNotSupportedException e) {
- throw new Error(); // doesn't happen
- }
- }
+public final class REMatch implements Serializable, Cloneable
+{
+ private String matchedText;
+ private CharIndexed matchedCharIndexed;
- void assignFrom(REMatch other) {
- start = other.start;
- start1 = other.start1;
- end = other.end;
- index = other.index;
- backtrackStack = other.backtrackStack;
- }
+ // These variables are package scope for fast access within the engine
+ int eflags; // execution flags this match was made using
- REMatch(int subs, int anchor, int eflags) {
- start = new int[subs+1];
- start1 = new int[subs+1];
- end = new int[subs+1];
- this.anchor = anchor;
- this.eflags = eflags;
- clear(anchor);
- }
+ // Offset in source text where match was tried. This is zero-based;
+ // the actual position in the source text is given by (offset + anchor).
+ int offset;
- void finish(CharIndexed text) {
- start[0] = 0;
- StringBuffer sb = new StringBuffer();
- int i;
- for (i = 0; i < end[0]; i++)
- sb.append(text.charAt(i));
- matchedText = sb.toString();
- matchedCharIndexed = text;
- for (i = 0; i < start.length; i++) {
- // If any subexpressions didn't terminate, they don't count
- // TODO check if this code ever gets hit
- if ((start[i] == -1) ^ (end[i] == -1)) {
- start[i] = -1;
- end[i] = -1;
- }
- }
- backtrackStack = null;
+ // Anchor position refers to the index into the source input
+ // at which the matching operation began.
+ // This is also useful for the ANCHORINDEX option.
+ int anchor;
+
+ // Package scope; used by RE.
+ int index; // used while matching to mark current match position in input
+ // start1[i] is set when the i-th subexp starts. And start1[i] is copied
+ // to start[i] when the i-th subexp ends. So start[i] keeps the previously
+ // assigned value while the i-th subexp is being processed. This makes
+ // backreference to the i-th subexp within the i-th subexp possible.
+ int[] start; // start positions (relative to offset) for each (sub)exp.
+ int[] start1; // start positions (relative to offset) for each (sub)exp.
+ int[] end; // end positions for the same
+ // start[i] == -1 or end[i] == -1 means that the start/end position is void.
+ // start[i] == p or end[i] == p where p < 0 and p != -1 means that
+ // the actual start/end position is (p+1). Start/end positions may
+ // become negative when the subexpression is in a RETokenLookBehind.
+ boolean empty; // empty string matched. This flag is used only within
+ // RETokenRepeated.
+
+ BacktrackStack backtrackStack;
+
+ public Object clone ()
+ {
+ try
+ {
+ REMatch copy = (REMatch) super.clone ();
+
+ copy.start = (int[]) start.clone ();
+ copy.start1 = (int[]) start1.clone ();
+ copy.end = (int[]) end.clone ();
+
+ return copy;
}
-
- /** Clears the current match and moves the offset to the new index. */
- void clear(int index) {
- offset = index;
- this.index = 0;
- for (int i = 0; i < start.length; i++) {
- start[i] = start1[i] = end[i] = -1;
- }
- backtrackStack = null;
+ catch (CloneNotSupportedException e)
+ {
+ throw new Error (); // doesn't happen
}
-
+ }
+
+ void assignFrom (REMatch other)
+ {
+ start = other.start;
+ start1 = other.start1;
+ end = other.end;
+ index = other.index;
+ backtrackStack = other.backtrackStack;
+ }
+
+ REMatch (int subs, int anchor, int eflags)
+ {
+ start = new int[subs + 1];
+ start1 = new int[subs + 1];
+ end = new int[subs + 1];
+ this.anchor = anchor;
+ this.eflags = eflags;
+ clear (anchor);
+ }
+
+ void finish (CharIndexed text)
+ {
+ start[0] = 0;
+ CPStringBuilder sb = new CPStringBuilder ();
+ int i;
+ for (i = 0; i < end[0]; i++)
+ sb.append (text.charAt (i));
+ matchedText = sb.toString ();
+ matchedCharIndexed = text;
+ for (i = 0; i < start.length; i++)
+ {
+ // If any subexpressions didn't terminate, they don't count
+ // TODO check if this code ever gets hit
+ if ((start[i] == -1) ^ (end[i] == -1))
+ {
+ start[i] = -1;
+ end[i] = -1;
+ }
+ }
+ backtrackStack = null;
+ }
+
+ /** Clears the current match and moves the offset to the new index. */
+ void clear (int index)
+ {
+ offset = index;
+ this.index = 0;
+ for (int i = 0; i < start.length; i++)
+ {
+ start[i] = start1[i] = end[i] = -1;
+ }
+ backtrackStack = null;
+ }
+
/**
* Returns the string matching the pattern. This makes it convenient
* to write code like the following:
@@ -150,18 +165,20 @@ public final class REMatch implements Serializable, Cloneable {
* if (myMatch != null) System.out.println("Regexp found: "+myMatch);
* </code>
*/
- public String toString() {
- return matchedText;
- }
-
+ public String toString ()
+ {
+ return matchedText;
+ }
+
/**
* Returns the index within the input text where the match in its entirety
* began.
*/
- public int getStartIndex() {
- return offset + start[0];
- }
-
+ public int getStartIndex ()
+ {
+ return offset + start[0];
+ }
+
/**
* Returns the index within the input string where the match in
* its entirety ends. The return value is the next position after
@@ -179,10 +196,11 @@ public final class REMatch implements Serializable, Cloneable {
* But you can save yourself that work, since the <code>toString()</code>
* method (above) does exactly that for you.
*/
- public int getEndIndex() {
- return offset + end[0];
- }
-
+ public int getEndIndex ()
+ {
+ return offset + end[0];
+ }
+
/**
* Returns the string matching the given subexpression. The subexpressions
* are indexed starting with one, not zero. That is, the subexpression
@@ -191,25 +209,30 @@ public final class REMatch implements Serializable, Cloneable {
*
* @param sub Index of the subexpression.
*/
- public String toString(int sub) {
- if ((sub >= start.length) || sub < 0)
- throw new IndexOutOfBoundsException("No group " + sub);
- if (start[sub] == -1) return null;
- if (start[sub] >= 0 && end[sub] <= matchedText.length())
- return (matchedText.substring(start[sub],end[sub]));
- else {
+ public String toString (int sub)
+ {
+ if ((sub >= start.length) || sub < 0)
+ throw new IndexOutOfBoundsException ("No group " + sub);
+ if (start[sub] == -1)
+ return null;
+ if (start[sub] >= 0 && end[sub] <= matchedText.length ())
+ return (matchedText.substring (start[sub], end[sub]));
+ else
+ {
// This case occurs with RETokenLookAhead or RETokenLookBehind.
- StringBuffer sb = new StringBuffer();
- int s = start[sub];
- int e = end[sub];
- if (s < 0) s += 1;
- if (e < 0) e += 1;
- for (int i = start[0] + s; i < start[0] + e; i++)
- sb.append(matchedCharIndexed.charAt(i));
- return sb.toString();
- }
- }
-
+ CPStringBuilder sb = new CPStringBuilder ();
+ int s = start[sub];
+ int e = end[sub];
+ if (s < 0)
+ s += 1;
+ if (e < 0)
+ e += 1;
+ for (int i = start[0] + s; i < start[0] + e; i++)
+ sb.append (matchedCharIndexed.charAt (i));
+ return sb.toString ();
+ }
+ }
+
/**
* Returns the index within the input string used to generate this match
* where subexpression number <i>sub</i> begins, or <code>-1</code> if
@@ -218,13 +241,14 @@ public final class REMatch implements Serializable, Cloneable {
* @param sub Subexpression index
* @deprecated Use getStartIndex(int) instead.
*/
- public int getSubStartIndex(int sub) {
- if (sub >= start.length) return -1;
- int x = start[sub];
- return (x == -1) ? x :
- (x >= 0) ? offset + x : offset + x + 1;
- }
-
+ public int getSubStartIndex (int sub)
+ {
+ if (sub >= start.length)
+ return -1;
+ int x = start[sub];
+ return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1;
+ }
+
/**
* Returns the index within the input string used to generate this match
* where subexpression number <i>sub</i> begins, or <code>-1</code> if
@@ -233,13 +257,14 @@ public final class REMatch implements Serializable, Cloneable {
* @param sub Subexpression index
* @since gnu.regexp 1.1.0
*/
- public int getStartIndex(int sub) {
- if (sub >= start.length) return -1;
- int x = start[sub];
- return (x == -1) ? x :
- (x >= 0) ? offset + x : offset + x + 1;
- }
-
+ public int getStartIndex (int sub)
+ {
+ if (sub >= start.length)
+ return -1;
+ int x = start[sub];
+ return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1;
+ }
+
/**
* Returns the index within the input string used to generate this match
* where subexpression number <i>sub</i> ends, or <code>-1</code> if
@@ -248,13 +273,14 @@ public final class REMatch implements Serializable, Cloneable {
* @param sub Subexpression index
* @deprecated Use getEndIndex(int) instead
*/
- public int getSubEndIndex(int sub) {
- if (sub >= start.length) return -1;
- int x = end[sub];
- return (x == -1) ? x :
- (x >= 0) ? offset + x : offset + x + 1;
- }
-
+ public int getSubEndIndex (int sub)
+ {
+ if (sub >= start.length)
+ return -1;
+ int x = end[sub];
+ return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1;
+ }
+
/**
* Returns the index within the input string used to generate this match
* where subexpression number <i>sub</i> ends, or <code>-1</code> if
@@ -262,13 +288,14 @@ public final class REMatch implements Serializable, Cloneable {
*
* @param sub Subexpression index
*/
- public int getEndIndex(int sub) {
- if (sub >= start.length) return -1;
- int x = end[sub];
- return (x == -1) ? x :
- (x >= 0) ? offset + x : offset + x + 1;
- }
-
+ public int getEndIndex (int sub)
+ {
+ if (sub >= start.length)
+ return -1;
+ int x = end[sub];
+ return (x == -1) ? x : (x >= 0) ? offset + x : offset + x + 1;
+ }
+
/**
* Substitute the results of this match to create a new string.
* This is patterned after PERL, so the tokens to watch out for are
@@ -280,31 +307,42 @@ public final class REMatch implements Serializable, Cloneable {
*
* @param input A string consisting of literals and <code>$<i>n</i></code> tokens.
*/
- public String substituteInto(String input) {
- // a la Perl, $0 is whole thing, $1 - $9 are subexpressions
- StringBuffer output = new StringBuffer();
- int pos;
- for (pos = 0; pos < input.length()-1; pos++) {
- if ((input.charAt(pos) == '$') && (Character.isDigit(input.charAt(pos+1)))) {
- int val = Character.digit(input.charAt(++pos),10);
- int pos1 = pos + 1;
- while (pos1 < input.length() &&
- Character.isDigit(input.charAt(pos1))) {
- int val1 = val*10 + Character.digit(input.charAt(pos1),10);
- if (val1 >= start.length) break;
- pos1++;
- val = val1;
- }
- pos = pos1 - 1;
-
- if (val < start.length) {
- output.append(toString(val));
- }
- } else output.append(input.charAt(pos));
- }
- if (pos < input.length()) output.append(input.charAt(pos));
- return output.toString();
- }
+ public String substituteInto (String input)
+ {
+ // a la Perl, $0 is whole thing, $1 - $9 are subexpressions
+ CPStringBuilder output = new CPStringBuilder ();
+ int pos;
+ for (pos = 0; pos < input.length () - 1; pos++)
+ {
+ if ((input.charAt (pos) == '$')
+ && (Character.isDigit (input.charAt (pos + 1))))
+ {
+ int val = Character.digit (input.charAt (++pos), 10);
+ int pos1 = pos + 1;
+ while (pos1 < input.length () &&
+ Character.isDigit (input.charAt (pos1)))
+ {
+ int val1 =
+ val * 10 + Character.digit (input.charAt (pos1), 10);
+ if (val1 >= start.length)
+ break;
+ pos1++;
+ val = val1;
+ }
+ pos = pos1 - 1;
+
+ if (val < start.length)
+ {
+ output.append (toString (val));
+ }
+ }
+ else
+ output.append (input.charAt (pos));
+ }
+ if (pos < input.length ())
+ output.append (input.charAt (pos));
+ return output.toString ();
+ }
/* The following are used for debugging purpose
public static String d(REMatch m) {
diff --git a/libjava/classpath/gnu/java/util/regex/REMatchEnumeration.java b/libjava/classpath/gnu/java/util/regex/REMatchEnumeration.java
index bc700be..f0c78be 100644
--- a/libjava/classpath/gnu/java/util/regex/REMatchEnumeration.java
+++ b/libjava/classpath/gnu/java/util/regex/REMatchEnumeration.java
@@ -36,6 +36,9 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.java.util.regex;
+
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
import java.util.Enumeration;
import java.util.NoSuchElementException;
@@ -66,20 +69,23 @@ import java.util.NoSuchElementException;
*
* @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A>
*/
-public class REMatchEnumeration implements Enumeration, Serializable {
+public class REMatchEnumeration
+ implements Enumeration < REMatch >, Serializable
+{
private static final int YES = 1;
private static final int MAYBE = 0;
private static final int NO = -1;
-
+
private int more;
private REMatch match;
- private RE expr;
- private CharIndexed input;
- private int eflags;
- private int index;
+ private final RE expr;
+ private final CharIndexed input;
+ private final int eflags;
+ private int index;
// Package scope constructor is used by RE.getMatchEnumeration()
- REMatchEnumeration(RE expr, CharIndexed input, int index, int eflags) {
+ REMatchEnumeration (RE expr, CharIndexed input, int index, int eflags)
+ {
more = MAYBE;
this.expr = expr;
this.input = input;
@@ -88,48 +94,48 @@ public class REMatchEnumeration implements Enumeration, Serializable {
}
/** Returns true if there are more matches in the input text. */
- public boolean hasMoreElements() {
- return hasMoreMatches(null);
+ public boolean hasMoreElements ()
+ {
+ return hasMoreMatches (null);
}
/** Returns true if there are more matches in the input text. */
- public boolean hasMoreMatches() {
- return hasMoreMatches(null);
+ public boolean hasMoreMatches ()
+ {
+ return hasMoreMatches (null);
}
/** Returns true if there are more matches in the input text.
* Saves the text leading up to the match (or to the end of the input)
* in the specified buffer.
*/
- public boolean hasMoreMatches(StringBuffer buffer) {
- if (more == MAYBE) {
- match = expr.getMatchImpl(input,index,eflags,buffer);
- if (match != null) {
- input.move((match.end[0] > 0) ? match.end[0] : 1);
-
- index = (match.end[0] > 0) ? match.end[0] + match.offset : index + 1;
+ public boolean hasMoreMatches (CPStringBuilder buffer)
+ {
+ if (more == MAYBE)
+ {
+ match = expr.getMatchImpl (input, index, eflags, buffer);
+ if (match != null)
+ {
+ input.move ((match.end[0] > 0) ? match.end[0] : 1);
+
+ index =
+ (match.end[0] > 0) ? match.end[0] + match.offset : index + 1;
more = YES;
- } else more = NO;
- }
+ }
+ else
+ more = NO;
+ }
return (more == YES);
}
/** Returns the next match in the input text. */
- public Object nextElement() throws NoSuchElementException {
- return nextMatch();
- }
-
- /**
- * Returns the next match in the input text. This method is provided
- * for convenience to avoid having to explicitly cast the return value
- * to class REMatch.
- */
- public REMatch nextMatch() throws NoSuchElementException {
- if (hasMoreElements()) {
- more = (input.isValid()) ? MAYBE : NO;
+ public REMatch nextElement () throws NoSuchElementException
+ {
+ if (hasMoreElements ())
+ {
+ more = (input.isValid ())? MAYBE : NO;
return match;
- }
- throw new NoSuchElementException();
+ }
+ throw new NoSuchElementException ();
}
}
-
diff --git a/libjava/classpath/gnu/java/util/regex/RESyntax.java b/libjava/classpath/gnu/java/util/regex/RESyntax.java
index db11e2d..38d7056 100644
--- a/libjava/classpath/gnu/java/util/regex/RESyntax.java
+++ b/libjava/classpath/gnu/java/util/regex/RESyntax.java
@@ -51,102 +51,104 @@ import java.util.BitSet;
* @author <A HREF="mailto:wes@cacas.org">Wes Biggs</A>
*/
-public final class RESyntax implements Serializable {
- static final String DEFAULT_LINE_SEPARATOR = System.getProperty("line.separator");
+public final class RESyntax implements Serializable
+{
+ static final String DEFAULT_LINE_SEPARATOR =
+ System.getProperty ("line.separator");
- private BitSet bits;
+ private BitSet bits;
- // true for the constant defined syntaxes
- private boolean isFinal = false;
+ // true for the constant defined syntaxes
+ private boolean isFinal = false;
- private String lineSeparator = DEFAULT_LINE_SEPARATOR;
+ private String lineSeparator = DEFAULT_LINE_SEPARATOR;
// Values for constants are bit indexes
/**
* Syntax bit. Backslash is an escape character in lists.
*/
- public static final int RE_BACKSLASH_ESCAPE_IN_LISTS = 0;
+ public static final int RE_BACKSLASH_ESCAPE_IN_LISTS = 0;
/**
* Syntax bit. Use \? instead of ? and \+ instead of +.
*/
- public static final int RE_BK_PLUS_QM = 1;
+ public static final int RE_BK_PLUS_QM = 1;
/**
* Syntax bit. POSIX character classes ([:...:]) in lists are allowed.
*/
- public static final int RE_CHAR_CLASSES = 2;
+ public static final int RE_CHAR_CLASSES = 2;
/**
* Syntax bit. ^ and $ are special everywhere.
* <B>Not implemented.</B>
*/
- public static final int RE_CONTEXT_INDEP_ANCHORS = 3;
+ public static final int RE_CONTEXT_INDEP_ANCHORS = 3;
/**
* Syntax bit. Repetition operators are only special in valid positions.
* <B>Not implemented.</B>
*/
- public static final int RE_CONTEXT_INDEP_OPS = 4;
+ public static final int RE_CONTEXT_INDEP_OPS = 4;
/**
* Syntax bit. Repetition and alternation operators are invalid
* at start and end of pattern and other places.
* <B>Not implemented</B>.
*/
- public static final int RE_CONTEXT_INVALID_OPS = 5;
+ public static final int RE_CONTEXT_INVALID_OPS = 5;
/**
* Syntax bit. Match-any-character operator (.) matches a newline.
*/
- public static final int RE_DOT_NEWLINE = 6;
+ public static final int RE_DOT_NEWLINE = 6;
/**
* Syntax bit. Match-any-character operator (.) does not match a null.
*/
- public static final int RE_DOT_NOT_NULL = 7;
+ public static final int RE_DOT_NOT_NULL = 7;
/**
* Syntax bit. Intervals ({x}, {x,}, {x,y}) are allowed.
*/
- public static final int RE_INTERVALS = 8;
+ public static final int RE_INTERVALS = 8;
/**
* Syntax bit. No alternation (|), match one-or-more (+), or
* match zero-or-one (?) operators.
*/
- public static final int RE_LIMITED_OPS = 9;
+ public static final int RE_LIMITED_OPS = 9;
/**
* Syntax bit. Newline is an alternation operator.
*/
- public static final int RE_NEWLINE_ALT = 10; // impl.
+ public static final int RE_NEWLINE_ALT = 10; // impl.
/**
* Syntax bit. Intervals use { } instead of \{ \}
*/
- public static final int RE_NO_BK_BRACES = 11;
+ public static final int RE_NO_BK_BRACES = 11;
/**
* Syntax bit. Grouping uses ( ) instead of \( \).
*/
- public static final int RE_NO_BK_PARENS = 12;
+ public static final int RE_NO_BK_PARENS = 12;
/**
* Syntax bit. Backreferences not allowed.
*/
- public static final int RE_NO_BK_REFS = 13;
+ public static final int RE_NO_BK_REFS = 13;
/**
* Syntax bit. Alternation uses | instead of \|
*/
- public static final int RE_NO_BK_VBAR = 14;
+ public static final int RE_NO_BK_VBAR = 14;
/**
* Syntax bit. <B>Not implemented</B>.
*/
- public static final int RE_NO_EMPTY_RANGES = 15;
+ public static final int RE_NO_EMPTY_RANGES = 15;
/**
* Syntax bit. An unmatched right parenthesis (')' or '\)', depending
@@ -157,80 +159,80 @@ public final class RESyntax implements Serializable {
/**
* Syntax bit. <B>Not implemented.</B>
*/
- public static final int RE_HAT_LISTS_NOT_NEWLINE = 17;
+ public static final int RE_HAT_LISTS_NOT_NEWLINE = 17;
/**
* Syntax bit. Stingy matching is allowed (+?, *?, ??, {x,y}?).
*/
- public static final int RE_STINGY_OPS = 18;
+ public static final int RE_STINGY_OPS = 18;
/**
* Syntax bit. Allow character class escapes (\d, \D, \s, \S, \w, \W).
*/
- public static final int RE_CHAR_CLASS_ESCAPES = 19;
+ public static final int RE_CHAR_CLASS_ESCAPES = 19;
/**
* Syntax bit. Allow use of (?:xxx) grouping (subexpression is not saved).
*/
- public static final int RE_PURE_GROUPING = 20;
+ public static final int RE_PURE_GROUPING = 20;
/**
* Syntax bit. Allow use of (?=xxx) and (?!xxx) apply the subexpression
* to the text following the current position without consuming that text.
*/
- public static final int RE_LOOKAHEAD = 21;
+ public static final int RE_LOOKAHEAD = 21;
/**
* Syntax bit. Allow beginning- and end-of-string anchors (\A, \Z).
*/
- public static final int RE_STRING_ANCHORS = 22;
+ public static final int RE_STRING_ANCHORS = 22;
/**
* Syntax bit. Allow embedded comments, (?#comment), as in Perl5.
*/
- public static final int RE_COMMENTS = 23;
+ public static final int RE_COMMENTS = 23;
/**
* Syntax bit. Allow character class escapes within lists, as in Perl5.
*/
- public static final int RE_CHAR_CLASS_ESC_IN_LISTS = 24;
+ public static final int RE_CHAR_CLASS_ESC_IN_LISTS = 24;
/**
* Syntax bit. Possessive matching is allowed (++, *+, ?+, {x,y}+).
*/
- public static final int RE_POSSESSIVE_OPS = 25;
+ public static final int RE_POSSESSIVE_OPS = 25;
/**
* Syntax bit. Allow embedded flags, (?is-x), as in Perl5.
*/
- public static final int RE_EMBEDDED_FLAGS = 26;
+ public static final int RE_EMBEDDED_FLAGS = 26;
/**
* Syntax bit. Allow octal char (\0377), as in Perl5.
*/
- public static final int RE_OCTAL_CHAR = 27;
+ public static final int RE_OCTAL_CHAR = 27;
/**
* Syntax bit. Allow hex char (\x1b), as in Perl5.
*/
- public static final int RE_HEX_CHAR = 28;
+ public static final int RE_HEX_CHAR = 28;
/**
* Syntax bit. Allow Unicode char (\u1234), as in Java 1.4.
*/
- public static final int RE_UNICODE_CHAR = 29;
+ public static final int RE_UNICODE_CHAR = 29;
/**
* Syntax bit. Allow named property (\p{P}, \P{p}), as in Perl5.
*/
- public static final int RE_NAMED_PROPERTY = 30;
+ public static final int RE_NAMED_PROPERTY = 30;
/**
* Syntax bit. Allow nested characterclass ([a-z&&[^p-r]]), as in Java 1.4.
*/
- public static final int RE_NESTED_CHARCLASS = 31;
+ public static final int RE_NESTED_CHARCLASS = 31;
- private static final int BIT_TOTAL = 32;
+ private static final int BIT_TOTAL = 32;
/**
* Predefined syntax.
@@ -315,13 +317,13 @@ public final class RESyntax implements Serializable {
* Emulates regular expression support in Larry Wall's perl, version 4,
* using single line mode (/s modifier).
*/
- public static final RESyntax RE_SYNTAX_PERL4_S; // single line mode (/s)
+ public static final RESyntax RE_SYNTAX_PERL4_S; // single line mode (/s)
/**
* Predefined syntax.
* Emulates regular expression support in Larry Wall's perl, version 5.
*/
- public static final RESyntax RE_SYNTAX_PERL5;
+ public static final RESyntax RE_SYNTAX_PERL5;
/**
* Predefined syntax.
@@ -335,145 +337,109 @@ public final class RESyntax implements Serializable {
* Emulates regular expression support in Java 1.4's java.util.regex
* package.
*/
- public static final RESyntax RE_SYNTAX_JAVA_1_4;
-
- static {
- // Define syntaxes
-
- RE_SYNTAX_EMACS = new RESyntax().makeFinal();
-
- RESyntax RE_SYNTAX_POSIX_COMMON = new RESyntax()
- .set(RE_CHAR_CLASSES)
- .set(RE_DOT_NEWLINE)
- .set(RE_DOT_NOT_NULL)
- .set(RE_INTERVALS)
- .set(RE_NO_EMPTY_RANGES)
- .makeFinal();
-
- RE_SYNTAX_POSIX_BASIC = new RESyntax(RE_SYNTAX_POSIX_COMMON)
- .set(RE_BK_PLUS_QM)
- .makeFinal();
-
- RE_SYNTAX_POSIX_EXTENDED = new RESyntax(RE_SYNTAX_POSIX_COMMON)
- .set(RE_CONTEXT_INDEP_ANCHORS)
- .set(RE_CONTEXT_INDEP_OPS)
- .set(RE_NO_BK_BRACES)
- .set(RE_NO_BK_PARENS)
- .set(RE_NO_BK_VBAR)
- .set(RE_UNMATCHED_RIGHT_PAREN_ORD)
- .makeFinal();
-
- RE_SYNTAX_AWK = new RESyntax()
- .set(RE_BACKSLASH_ESCAPE_IN_LISTS)
- .set(RE_DOT_NOT_NULL)
- .set(RE_NO_BK_PARENS)
- .set(RE_NO_BK_REFS)
- .set(RE_NO_BK_VBAR)
- .set(RE_NO_EMPTY_RANGES)
- .set(RE_UNMATCHED_RIGHT_PAREN_ORD)
- .makeFinal();
-
- RE_SYNTAX_POSIX_AWK = new RESyntax(RE_SYNTAX_POSIX_EXTENDED)
- .set(RE_BACKSLASH_ESCAPE_IN_LISTS)
- .makeFinal();
-
- RE_SYNTAX_GREP = new RESyntax()
- .set(RE_BK_PLUS_QM)
- .set(RE_CHAR_CLASSES)
- .set(RE_HAT_LISTS_NOT_NEWLINE)
- .set(RE_INTERVALS)
- .set(RE_NEWLINE_ALT)
- .makeFinal();
-
- RE_SYNTAX_EGREP = new RESyntax()
- .set(RE_CHAR_CLASSES)
- .set(RE_CONTEXT_INDEP_ANCHORS)
- .set(RE_CONTEXT_INDEP_OPS)
- .set(RE_HAT_LISTS_NOT_NEWLINE)
- .set(RE_NEWLINE_ALT)
- .set(RE_NO_BK_PARENS)
- .set(RE_NO_BK_VBAR)
- .makeFinal();
-
- RE_SYNTAX_POSIX_EGREP = new RESyntax(RE_SYNTAX_EGREP)
- .set(RE_INTERVALS)
- .set(RE_NO_BK_BRACES)
- .makeFinal();
-
- /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
-
- RE_SYNTAX_ED = new RESyntax(RE_SYNTAX_POSIX_BASIC)
- .makeFinal();
-
- RE_SYNTAX_SED = new RESyntax(RE_SYNTAX_POSIX_BASIC)
- .makeFinal();
-
- RE_SYNTAX_POSIX_MINIMAL_BASIC = new RESyntax(RE_SYNTAX_POSIX_COMMON)
- .set(RE_LIMITED_OPS)
- .makeFinal();
-
- /* Differs from RE_SYNTAX_POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
- replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
-
- RE_SYNTAX_POSIX_MINIMAL_EXTENDED = new RESyntax(RE_SYNTAX_POSIX_COMMON)
- .set(RE_CONTEXT_INDEP_ANCHORS)
- .set(RE_CONTEXT_INVALID_OPS)
- .set(RE_NO_BK_BRACES)
- .set(RE_NO_BK_PARENS)
- .set(RE_NO_BK_REFS)
- .set(RE_NO_BK_VBAR)
- .set(RE_UNMATCHED_RIGHT_PAREN_ORD)
- .makeFinal();
-
- /* There is no official Perl spec, but here's a "best guess" */
-
- RE_SYNTAX_PERL4 = new RESyntax()
- .set(RE_BACKSLASH_ESCAPE_IN_LISTS)
- .set(RE_CONTEXT_INDEP_ANCHORS)
- .set(RE_CONTEXT_INDEP_OPS) // except for '{', apparently
- .set(RE_INTERVALS)
- .set(RE_NO_BK_BRACES)
- .set(RE_NO_BK_PARENS)
- .set(RE_NO_BK_VBAR)
- .set(RE_NO_EMPTY_RANGES)
- .set(RE_CHAR_CLASS_ESCAPES) // \d,\D,\w,\W,\s,\S
- .makeFinal();
-
- RE_SYNTAX_PERL4_S = new RESyntax(RE_SYNTAX_PERL4)
- .set(RE_DOT_NEWLINE)
- .makeFinal();
-
- RE_SYNTAX_PERL5 = new RESyntax(RE_SYNTAX_PERL4)
- .set(RE_PURE_GROUPING) // (?:)
- .set(RE_STINGY_OPS) // *?,??,+?,{}?
- .set(RE_LOOKAHEAD) // (?=)(?!)
- .set(RE_STRING_ANCHORS) // \A,\Z
- .set(RE_CHAR_CLASS_ESC_IN_LISTS)// \d,\D,\w,\W,\s,\S within []
- .set(RE_COMMENTS) // (?#)
- .set(RE_EMBEDDED_FLAGS) // (?imsx-imsx)
- .set(RE_OCTAL_CHAR) // \0377
- .set(RE_HEX_CHAR) // \x1b
- .set(RE_NAMED_PROPERTY) // \p{prop}, \P{prop}
- .makeFinal();
-
- RE_SYNTAX_PERL5_S = new RESyntax(RE_SYNTAX_PERL5)
- .set(RE_DOT_NEWLINE)
- .makeFinal();
-
- RE_SYNTAX_JAVA_1_4 = new RESyntax(RE_SYNTAX_PERL5)
- // XXX
- .set(RE_POSSESSIVE_OPS) // *+,?+,++,{}+
- .set(RE_UNICODE_CHAR) // \u1234
- .set(RE_NESTED_CHARCLASS) // [a-z&&[^p-r]]
- .makeFinal();
+ public static final RESyntax RE_SYNTAX_JAVA_1_4;
+
+ static
+ {
+ // Define syntaxes
+
+ RE_SYNTAX_EMACS = new RESyntax ().makeFinal ();
+
+ RESyntax RE_SYNTAX_POSIX_COMMON =
+ new RESyntax ().set (RE_CHAR_CLASSES).set (RE_DOT_NEWLINE).
+ set (RE_DOT_NOT_NULL).set (RE_INTERVALS).set (RE_NO_EMPTY_RANGES).
+ makeFinal ();
+
+ RE_SYNTAX_POSIX_BASIC =
+ new RESyntax (RE_SYNTAX_POSIX_COMMON).set (RE_BK_PLUS_QM).makeFinal ();
+
+ RE_SYNTAX_POSIX_EXTENDED =
+ new RESyntax (RE_SYNTAX_POSIX_COMMON).set (RE_CONTEXT_INDEP_ANCHORS).
+ set (RE_CONTEXT_INDEP_OPS).set (RE_NO_BK_BRACES).set (RE_NO_BK_PARENS).
+ set (RE_NO_BK_VBAR).set (RE_UNMATCHED_RIGHT_PAREN_ORD).makeFinal ();
+
+ RE_SYNTAX_AWK =
+ new RESyntax ().set (RE_BACKSLASH_ESCAPE_IN_LISTS).
+ set (RE_DOT_NOT_NULL).set (RE_NO_BK_PARENS).set (RE_NO_BK_REFS).
+ set (RE_NO_BK_VBAR).set (RE_NO_EMPTY_RANGES).
+ set (RE_UNMATCHED_RIGHT_PAREN_ORD).makeFinal ();
+
+ RE_SYNTAX_POSIX_AWK =
+ new RESyntax (RE_SYNTAX_POSIX_EXTENDED).
+ set (RE_BACKSLASH_ESCAPE_IN_LISTS).makeFinal ();
+
+ RE_SYNTAX_GREP =
+ new RESyntax ().set (RE_BK_PLUS_QM).set (RE_CHAR_CLASSES).
+ set (RE_HAT_LISTS_NOT_NEWLINE).set (RE_INTERVALS).set (RE_NEWLINE_ALT).
+ makeFinal ();
+
+ RE_SYNTAX_EGREP =
+ new RESyntax ().set (RE_CHAR_CLASSES).set (RE_CONTEXT_INDEP_ANCHORS).
+ set (RE_CONTEXT_INDEP_OPS).set (RE_HAT_LISTS_NOT_NEWLINE).
+ set (RE_NEWLINE_ALT).set (RE_NO_BK_PARENS).set (RE_NO_BK_VBAR).
+ makeFinal ();
+
+ RE_SYNTAX_POSIX_EGREP =
+ new RESyntax (RE_SYNTAX_EGREP).set (RE_INTERVALS).set (RE_NO_BK_BRACES).
+ makeFinal ();
+
+ /* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
+
+ RE_SYNTAX_ED = new RESyntax (RE_SYNTAX_POSIX_BASIC).makeFinal ();
+
+ RE_SYNTAX_SED = new RESyntax (RE_SYNTAX_POSIX_BASIC).makeFinal ();
+
+ RE_SYNTAX_POSIX_MINIMAL_BASIC =
+ new RESyntax (RE_SYNTAX_POSIX_COMMON).set (RE_LIMITED_OPS).makeFinal ();
+
+ /* Differs from RE_SYNTAX_POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
+ replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
+
+ RE_SYNTAX_POSIX_MINIMAL_EXTENDED =
+ new RESyntax (RE_SYNTAX_POSIX_COMMON).set (RE_CONTEXT_INDEP_ANCHORS).
+ set (RE_CONTEXT_INVALID_OPS).set (RE_NO_BK_BRACES).
+ set (RE_NO_BK_PARENS).set (RE_NO_BK_REFS).set (RE_NO_BK_VBAR).
+ set (RE_UNMATCHED_RIGHT_PAREN_ORD).makeFinal ();
+
+ /* There is no official Perl spec, but here's a "best guess" */
+
+ RE_SYNTAX_PERL4 = new RESyntax ().set (RE_BACKSLASH_ESCAPE_IN_LISTS).set (RE_CONTEXT_INDEP_ANCHORS).set (RE_CONTEXT_INDEP_OPS) // except for '{', apparently
+ .set (RE_INTERVALS).set (RE_NO_BK_BRACES).set (RE_NO_BK_PARENS).set (RE_NO_BK_VBAR).set (RE_NO_EMPTY_RANGES).set (RE_CHAR_CLASS_ESCAPES) // \d,\D,\w,\W,\s,\S
+ .makeFinal ();
+
+ RE_SYNTAX_PERL4_S =
+ new RESyntax (RE_SYNTAX_PERL4).set (RE_DOT_NEWLINE).makeFinal ();
+
+ RE_SYNTAX_PERL5 = new RESyntax (RE_SYNTAX_PERL4).set (RE_PURE_GROUPING) // (?:)
+ .set (RE_STINGY_OPS) // *?,??,+?,{}?
+ .set (RE_LOOKAHEAD) // (?=)(?!)
+ .set (RE_STRING_ANCHORS) // \A,\Z
+ .set (RE_CHAR_CLASS_ESC_IN_LISTS) // \d,\D,\w,\W,\s,\S within []
+ .set (RE_COMMENTS) // (?#)
+ .set (RE_EMBEDDED_FLAGS) // (?imsx-imsx)
+ .set (RE_OCTAL_CHAR) // \0377
+ .set (RE_HEX_CHAR) // \x1b
+ .set (RE_NAMED_PROPERTY) // \p{prop}, \P{prop}
+ .makeFinal ();
+
+ RE_SYNTAX_PERL5_S =
+ new RESyntax (RE_SYNTAX_PERL5).set (RE_DOT_NEWLINE).makeFinal ();
+
+ RE_SYNTAX_JAVA_1_4 = new RESyntax (RE_SYNTAX_PERL5)
+ // XXX
+ .set (RE_POSSESSIVE_OPS) // *+,?+,++,{}+
+ .set (RE_UNICODE_CHAR) // \u1234
+ .set (RE_NESTED_CHARCLASS) // [a-z&&[^p-r]]
+ .makeFinal ();
}
/**
* Construct a new syntax object with all bits turned off.
* This is equivalent to RE_SYNTAX_EMACS.
*/
- public RESyntax() {
- bits = new BitSet(BIT_TOTAL);
+ public RESyntax ()
+ {
+ bits = new BitSet (BIT_TOTAL);
}
/**
@@ -484,24 +450,27 @@ public final class RESyntax implements Serializable {
*
* @return this object for convenient chaining
*/
- public RESyntax makeFinal() {
- isFinal = true;
- return this;
- }
+ public RESyntax makeFinal ()
+ {
+ isFinal = true;
+ return this;
+ }
/**
* Construct a new syntax object with all bits set the same
* as the other syntax.
*/
- public RESyntax(RESyntax other) {
- bits = (BitSet) other.bits.clone();
+ public RESyntax (RESyntax other)
+ {
+ bits = (BitSet) other.bits.clone ();
}
/**
* Check if a given bit is set in this syntax.
*/
- public boolean get(int index) {
- return bits.get(index);
+ public boolean get (int index)
+ {
+ return bits.get (index);
}
/**
@@ -510,10 +479,11 @@ public final class RESyntax implements Serializable {
* @param index the constant (RESyntax.RE_xxx) bit to set.
* @return a reference to this object for easy chaining.
*/
- public RESyntax set(int index) {
+ public RESyntax set (int index)
+ {
if (isFinal)
- throw new IllegalAccessError(RE.getLocalizedMessage("syntax.final"));
- bits.set(index);
+ throw new IllegalAccessError (RE.getLocalizedMessage ("syntax.final"));
+ bits.set (index);
return this;
}
@@ -523,11 +493,12 @@ public final class RESyntax implements Serializable {
* @param index the constant (RESyntax.RE_xxx) bit to clear.
* @return a reference to this object for easy chaining.
*/
- public RESyntax clear(int index) {
- if (isFinal)
- throw new IllegalAccessError(RE.getLocalizedMessage("syntax.final"));
- bits.clear(index);
- return this;
+ public RESyntax clear (int index)
+ {
+ if (isFinal)
+ throw new IllegalAccessError (RE.getLocalizedMessage ("syntax.final"));
+ bits.clear (index);
+ return this;
}
/**
@@ -547,18 +518,20 @@ public final class RESyntax implements Serializable {
*
* @return this object for convenient chaining
*/
- public RESyntax setLineSeparator(String aSeparator) {
- if (isFinal)
- throw new IllegalAccessError(RE.getLocalizedMessage("syntax.final"));
- lineSeparator = aSeparator;
- return this;
- }
+ public RESyntax setLineSeparator (String aSeparator)
+ {
+ if (isFinal)
+ throw new IllegalAccessError (RE.getLocalizedMessage ("syntax.final"));
+ lineSeparator = aSeparator;
+ return this;
+ }
/**
* Returns the currently active line separator string. The default
* is the platform-dependent system property "line.separator".
*/
- public String getLineSeparator() {
- return lineSeparator;
- }
+ public String getLineSeparator ()
+ {
+ return lineSeparator;
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/REToken.java b/libjava/classpath/gnu/java/util/regex/REToken.java
index addc622..681ac51 100644
--- a/libjava/classpath/gnu/java/util/regex/REToken.java
+++ b/libjava/classpath/gnu/java/util/regex/REToken.java
@@ -36,65 +36,84 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.java.util.regex;
+
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
-abstract class REToken implements Serializable, Cloneable {
+abstract class REToken implements Serializable, Cloneable
+{
protected REToken next = null;
protected REToken uncle = null;
protected int subIndex;
protected boolean unicodeAware = true;
- public Object clone() {
- try {
- REToken copy = (REToken) super.clone();
- return copy;
- } catch (CloneNotSupportedException e) {
- throw new Error(); // doesn't happen
+ public Object clone ()
+ {
+ try
+ {
+ REToken copy = (REToken) super.clone ();
+ return copy;
+ }
+ catch (CloneNotSupportedException e)
+ {
+ throw new Error (); // doesn't happen
}
}
- protected REToken(int subIndex) {
- this.subIndex = subIndex;
+ protected REToken (int subIndex)
+ {
+ this.subIndex = subIndex;
}
- int getMinimumLength() {
+ int getMinimumLength ()
+ {
return 0;
}
- int getMaximumLength() {
+ int getMaximumLength ()
+ {
return Integer.MAX_VALUE;
}
- void setUncle(REToken anUncle) {
+ void setUncle (REToken anUncle)
+ {
uncle = anUncle;
}
/** Returns true if the match succeeded, false if it failed. */
- boolean match(CharIndexed input, REMatch mymatch) {
- return match(input, mymatch, false);
- }
- boolean matchFake(CharIndexed input, REMatch mymatch) {
- return match(input, mymatch, true);
- }
+ boolean match (CharIndexed input, REMatch mymatch)
+ {
+ return match (input, mymatch, false);
+ }
+ boolean matchFake (CharIndexed input, REMatch mymatch)
+ {
+ return match (input, mymatch, true);
+ }
- private boolean match(CharIndexed input, REMatch mymatch, boolean fake) {
- if (!fake) {
- setHitEnd(input, mymatch);
- }
- REMatch m = matchThis(input, mymatch);
- if (m == null) return false;
- if (next(input, m)) {
- mymatch.assignFrom(m);
- return true;
- }
- return false;
- }
+ private boolean match (CharIndexed input, REMatch mymatch, boolean fake)
+ {
+ if (!fake)
+ {
+ setHitEnd (input, mymatch);
+ }
+ REMatch m = matchThis (input, mymatch);
+ if (m == null)
+ return false;
+ if (next (input, m))
+ {
+ mymatch.assignFrom (m);
+ return true;
+ }
+ return false;
+ }
/** Sets whether the matching occurs at the end of input */
- void setHitEnd(CharIndexed input, REMatch mymatch) {
- input.setHitEnd(mymatch);
- }
+ void setHitEnd (CharIndexed input, REMatch mymatch)
+ {
+ input.setHitEnd (mymatch);
+ }
/** Returns true if the match succeeded, false if it failed.
* The matching is done against this REToken only. Chained
@@ -106,22 +125,27 @@ abstract class REToken implements Serializable, Cloneable {
* subclasses of REToken, which needs a special match method,
* do not have to implement this method.
*/
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- throw new UnsupportedOperationException(
- "This REToken does not have a matchThis method");
- }
-
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ throw new
+ UnsupportedOperationException
+ ("This REToken does not have a matchThis method");
+ }
+
/** Returns true if the rest of the tokens match, false if they fail. */
- protected boolean next(CharIndexed input, REMatch mymatch) {
- REToken nextToken = getNext();
- if (nextToken == null) return true;
- return nextToken.match(input, mymatch);
- }
+ protected boolean next (CharIndexed input, REMatch mymatch)
+ {
+ REToken nextToken = getNext ();
+ if (nextToken == null)
+ return true;
+ return nextToken.match (input, mymatch);
+ }
/** Returns the next REToken chained to this REToken. */
- REToken getNext() {
- return (next != null ? next : uncle);
- }
+ REToken getNext ()
+ {
+ return (next != null ? next : uncle);
+ }
/** Finds a match at the position specified by the given REMatch.
* If necessary, adds a BacktrackStack.Backtrack object to backtrackStack
@@ -132,45 +156,55 @@ abstract class REToken implements Serializable, Cloneable {
* @param mymatch Position at which a match should be found
* @return REMatch object if a match was found, null otherwise.
*/
- REMatch findMatch(CharIndexed input, REMatch mymatch) {
- boolean b = match(input, mymatch);
- if (b) return mymatch;
- return null;
- }
+ REMatch findMatch (CharIndexed input, REMatch mymatch)
+ {
+ boolean b = match (input, mymatch);
+ if (b)
+ return mymatch;
+ return null;
+ }
- boolean returnsFixedLengthMatches() {
- return false;
- }
+ boolean returnsFixedLengthMatches ()
+ {
+ return false;
+ }
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
- throw new UnsupportedOperationException(
- "This token does not support findFixedLengthMatches");
- }
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
+ throw new
+ UnsupportedOperationException
+ ("This token does not support findFixedLengthMatches");
+ }
/**
* Backtrack to another possibility.
* Ordinary REToken cannot do anything if this method is called.
*/
- REMatch backtrack(CharIndexed input, REMatch mymatch, Object param) {
- throw new IllegalStateException("This token cannot be backtracked to");
- }
+ REMatch backtrack (CharIndexed input, REMatch mymatch, Object param)
+ {
+ throw new IllegalStateException ("This token cannot be backtracked to");
+ }
- boolean chain(REToken token) {
- next = token;
- return true; // Token was accepted
+ boolean chain (REToken token)
+ {
+ next = token;
+ return true; // Token was accepted
}
- abstract void dump(StringBuffer os);
+ abstract void dump (CPStringBuilder os);
- void dumpAll(StringBuffer os) {
- dump(os);
- if (next != null) next.dumpAll(os);
+ void dumpAll (CPStringBuilder os)
+ {
+ dump (os);
+ if (next != null)
+ next.dumpAll (os);
}
- public String toString() {
- StringBuffer os = new StringBuffer();
- dump(os);
- return os.toString();
+ public String toString ()
+ {
+ CPStringBuilder os = new CPStringBuilder ();
+ dump (os);
+ return os.toString ();
}
/**
@@ -181,9 +215,12 @@ abstract class REToken implements Serializable, Cloneable {
* @return the lowercase equivalent of the character, if any;
* otherwise, the character itself.
*/
- public static char toLowerCase(char ch, boolean unicodeAware) {
- if (unicodeAware) return Character.toLowerCase(ch);
- if (ch >= 'A' && ch <= 'Z') return (char)(ch + 'a' - 'A');
+ public static char toLowerCase (char ch, boolean unicodeAware)
+ {
+ if (unicodeAware)
+ return Character.toLowerCase (ch);
+ if (ch >= 'A' && ch <= 'Z')
+ return (char) (ch + 'a' - 'A');
return ch;
}
@@ -195,9 +232,12 @@ abstract class REToken implements Serializable, Cloneable {
* @return the uppercase equivalent of the character, if any;
* otherwise, the character itself.
*/
- public static char toUpperCase(char ch, boolean unicodeAware) {
- if (unicodeAware) return Character.toUpperCase(ch);
- if (ch >= 'a' && ch <= 'z') return (char)(ch + 'A' - 'a');
+ public static char toUpperCase (char ch, boolean unicodeAware)
+ {
+ if (unicodeAware)
+ return Character.toUpperCase (ch);
+ if (ch >= 'a' && ch <= 'z')
+ return (char) (ch + 'A' - 'a');
return ch;
}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenAny.java b/libjava/classpath/gnu/java/util/regex/RETokenAny.java
index b99a547..c002d05 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenAny.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenAny.java
@@ -38,62 +38,78 @@ exception statement from your version. */
package gnu.java.util.regex;
-final class RETokenAny extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenAny extends REToken
+{
/** True if '.' can match a newline (RE_DOT_NEWLINE) */
- private boolean newline;
+ private boolean newline;
/** True if '.' can't match a null (RE_DOT_NOT_NULL) */
- private boolean matchNull;
-
- RETokenAny(int subIndex, boolean newline, boolean matchNull) {
- super(subIndex);
+ private boolean matchNull;
+
+ RETokenAny (int subIndex, boolean newline, boolean matchNull)
+ {
+ super (subIndex);
this.newline = newline;
this.matchNull = matchNull;
}
- int getMinimumLength() {
+ int getMinimumLength ()
+ {
return 1;
}
- int getMaximumLength() {
+ int getMaximumLength ()
+ {
return 1;
}
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- char ch = input.charAt(mymatch.index);
- boolean retval = matchOneChar(ch);
- if (retval) {
- ++mymatch.index;
- return mymatch;
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ char ch = input.charAt (mymatch.index);
+ boolean retval = matchOneChar (ch);
+ if (retval)
+ {
+ ++mymatch.index;
+ return mymatch;
}
- return null;
- }
-
- boolean matchOneChar(char ch) {
- if ((ch == CharIndexed.OUT_OF_BOUNDS)
- || (!newline && (ch == '\n'))
- || (matchNull && (ch == 0))) {
- return false;
+ return null;
+ }
+
+ boolean matchOneChar (char ch)
+ {
+ if ((ch == CharIndexed.OUT_OF_BOUNDS)
+ || (!newline && (ch == '\n')) || (matchNull && (ch == 0)))
+ {
+ return false;
}
- return true;
+ return true;
}
- boolean returnsFixedLengthMatches() { return true; }
+ boolean returnsFixedLengthMatches ()
+ {
+ return true;
+ }
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
int index = mymatch.index;
int numRepeats = 0;
- while (true) {
- if (numRepeats >= max) break;
- char ch = input.charAt(index++);
- if (! matchOneChar(ch)) break;
- numRepeats++;
- }
+ while (true)
+ {
+ if (numRepeats >= max)
+ break;
+ char ch = input.charAt (index++);
+ if (!matchOneChar (ch))
+ break;
+ numRepeats++;
+ }
return numRepeats;
}
- void dump(StringBuffer os) {
- os.append('.');
+ void dump (CPStringBuilder os)
+ {
+ os.append ('.');
}
}
-
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenBackRef.java b/libjava/classpath/gnu/java/util/regex/RETokenBackRef.java
index 3a912f9..8f14622 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenBackRef.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenBackRef.java
@@ -38,49 +38,63 @@ exception statement from your version. */
package gnu.java.util.regex;
-final class RETokenBackRef extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenBackRef extends REToken
+{
private int num;
private boolean insens;
-
- RETokenBackRef(int subIndex, int num, boolean insens) {
- super(subIndex);
+
+ RETokenBackRef (int subIndex, int num, boolean insens)
+ {
+ super (subIndex);
this.num = num;
this.insens = insens;
}
// should implement getMinimumLength() -- any ideas?
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- if (num >= mymatch.start.length) return null;
- if (num >= mymatch.end.length) return null;
- int b,e;
- b = mymatch.start[num];
- e = mymatch.end[num];
- if ((b==-1)||(e==-1)) return null; // this shouldn't happen, but...
- if (b < 0) b += 1;
- if (e < 0) e += 1;
- for (int i=b; i<e; i++) {
- char c1 = input.charAt(mymatch.index+i-b);
- char c2 = input.charAt(i);
- if (c1 != c2) {
- if (insens) {
- if (c1 != toLowerCase(c2, unicodeAware) &&
- c1 != toUpperCase(c2, unicodeAware)) {
- return null;
- }
- }
- else {
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ if (num >= mymatch.start.length)
+ return null;
+ if (num >= mymatch.end.length)
+ return null;
+ int b, e;
+ b = mymatch.start[num];
+ e = mymatch.end[num];
+ if ((b == -1) || (e == -1))
+ return null; // this shouldn't happen, but...
+ if (b < 0)
+ b += 1;
+ if (e < 0)
+ e += 1;
+ for (int i = b; i < e; i++)
+ {
+ char c1 = input.charAt (mymatch.index + i - b);
+ char c2 = input.charAt (i);
+ if (c1 != c2)
+ {
+ if (insens)
+ {
+ if (c1 != toLowerCase (c2, unicodeAware) &&
+ c1 != toUpperCase (c2, unicodeAware))
+ {
return null;
- }
- }
- }
- mymatch.index += e-b;
- return mymatch;
- }
-
- void dump(StringBuffer os) {
- os.append('\\').append(num);
- }
-}
-
+ }
+ }
+ else
+ {
+ return null;
+ }
+ }
+ }
+ mymatch.index += e - b;
+ return mymatch;
+ }
+ void dump (CPStringBuilder os)
+ {
+ os.append ('\\').append (num);
+ }
+}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenChar.java b/libjava/classpath/gnu/java/util/regex/RETokenChar.java
index 42dcd93..babcf3e 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenChar.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenChar.java
@@ -38,98 +38,125 @@ exception statement from your version. */
package gnu.java.util.regex;
-final class RETokenChar extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenChar extends REToken
+{
private char[] ch;
private boolean insens;
- RETokenChar(int subIndex, char c, boolean ins) {
- super(subIndex);
+ RETokenChar (int subIndex, char c, boolean ins)
+ {
+ super (subIndex);
insens = ins;
- ch = new char [1];
- ch[0] = c;
+ ch = new char[1];
+ ch[0] = c;
}
- int getMinimumLength() {
+ int getMinimumLength ()
+ {
return ch.length;
}
-
- int getMaximumLength() {
+
+ int getMaximumLength ()
+ {
return ch.length;
}
-
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- if (matchOneString(input, mymatch.index)) {
- mymatch.index += matchedLength;
- return mymatch;
- }
- // java.util.regex.Matcher#hitEnd() requires that the length of
- // partial match be counted.
+
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ if (matchOneString (input, mymatch.index))
+ {
mymatch.index += matchedLength;
- input.setHitEnd(mymatch);
- return null;
- }
-
- private int matchedLength;
- private boolean matchOneString(CharIndexed input, int index) {
- matchedLength = 0;
- int z = ch.length;
- char c;
- for (int i=0; i<z; i++) {
- c = input.charAt(index+i);
- if (! charEquals(c, ch[i])) {
- return false;
- }
- ++matchedLength;
- }
- return true;
- }
-
- private boolean charEquals(char c1, char c2) {
- if (c1 == c2) return true;
- if (! insens) return false;
- if (toLowerCase(c1, unicodeAware) == c2) return true;
- if (toUpperCase(c1, unicodeAware) == c2) return true;
- return false;
- }
-
- boolean returnsFixedLengthMatches() { return true; }
-
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
- int index = mymatch.index;
- int numRepeats = 0;
- int z = ch.length;
- while (true) {
- if (numRepeats >= max) break;
- if (matchOneString(input, index)) {
- index += z;
- numRepeats++;
- }
- else break;
- }
- return numRepeats;
- }
+ return mymatch;
+ }
+ // java.util.regex.Matcher#hitEnd() requires that the length of
+ // partial match be counted.
+ mymatch.index += matchedLength;
+ input.setHitEnd (mymatch);
+ return null;
+ }
- // Overrides REToken.chain() to optimize for strings
- boolean chain(REToken next) {
- if (next instanceof RETokenChar && ((RETokenChar)next).insens == insens) {
- RETokenChar cnext = (RETokenChar) next;
- int newsize = ch.length + cnext.ch.length;
-
- char[] chTemp = new char [newsize];
-
- System.arraycopy(ch,0,chTemp,0,ch.length);
- System.arraycopy(cnext.ch,0,chTemp,ch.length,cnext.ch.length);
-
- ch = chTemp;
- if (cnext.next == null)
- return false;
- return chain(cnext.next);
- } else return super.chain(next);
+ private int matchedLength;
+ private boolean matchOneString (CharIndexed input, int index)
+ {
+ matchedLength = 0;
+ int z = ch.length;
+ char c;
+ for (int i = 0; i < z; i++)
+ {
+ c = input.charAt (index + i);
+ if (!charEquals (c, ch[i]))
+ {
+ return false;
+ }
+ ++matchedLength;
+ }
+ return true;
}
- void dump(StringBuffer os) {
- os.append(ch);
+ private boolean charEquals (char c1, char c2)
+ {
+ if (c1 == c2)
+ return true;
+ if (!insens)
+ return false;
+ if (toLowerCase (c1, unicodeAware) == c2)
+ return true;
+ if (toUpperCase (c1, unicodeAware) == c2)
+ return true;
+ return false;
+ }
+
+ boolean returnsFixedLengthMatches ()
+ {
+ return true;
}
-}
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
+ int index = mymatch.index;
+ int numRepeats = 0;
+ int z = ch.length;
+ while (true)
+ {
+ if (numRepeats >= max)
+ break;
+ if (matchOneString (input, index))
+ {
+ index += z;
+ numRepeats++;
+ }
+ else
+ break;
+ }
+ return numRepeats;
+ }
+ // Overrides REToken.chain() to optimize for strings
+ boolean chain (REToken next)
+ {
+ if (next instanceof RETokenChar && ((RETokenChar) next).insens == insens)
+ {
+ RETokenChar cnext = (RETokenChar) next;
+ int newsize = ch.length + cnext.ch.length;
+
+ char[] chTemp = new char[newsize];
+
+ System.arraycopy (ch, 0, chTemp, 0, ch.length);
+ System.arraycopy (cnext.ch, 0, chTemp, ch.length, cnext.ch.length);
+
+ ch = chTemp;
+ if (cnext.next == null)
+ return false;
+ return chain (cnext.next);
+ }
+ else
+ return super.chain (next);
+ }
+
+ void dump (CPStringBuilder os)
+ {
+ os.append (ch);
+ }
+}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenEnd.java b/libjava/classpath/gnu/java/util/regex/RETokenEnd.java
index 294e320..33e0feb 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenEnd.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenEnd.java
@@ -38,7 +38,10 @@ exception statement from your version. */
package gnu.java.util.regex;
-final class RETokenEnd extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenEnd extends REToken
+{
/**
* Indicates whether this token should match on a line break.
*/
@@ -51,74 +54,98 @@ final class RETokenEnd extends REToken {
*/
private boolean fake = false;
- RETokenEnd(int subIndex,String newline) {
- super(subIndex);
+ RETokenEnd (int subIndex, String newline)
+ {
+ super (subIndex);
this.newline = newline;
this.check_java_line_terminators = false;
}
- RETokenEnd(int subIndex, String newline, boolean b) {
- super(subIndex);
+ RETokenEnd (int subIndex, String newline, boolean b)
+ {
+ super (subIndex);
this.newline = newline;
this.check_java_line_terminators = b;
}
- void setFake(boolean fake) {
+ void setFake (boolean fake)
+ {
this.fake = fake;
}
- int getMaximumLength() {
+ int getMaximumLength ()
+ {
return 0;
}
- boolean match(CharIndexed input, REMatch mymatch) {
- if (!fake) return super.match(input, mymatch);
- return super.matchFake(input, mymatch);
+ boolean match (CharIndexed input, REMatch mymatch)
+ {
+ if (!fake)
+ return super.match (input, mymatch);
+ return super.matchFake (input, mymatch);
}
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- char ch = input.charAt(mymatch.index);
- if (ch == CharIndexed.OUT_OF_BOUNDS)
- return ((mymatch.eflags & RE.REG_NOTEOL)>0) ?
- null : mymatch;
- if (check_java_line_terminators) {
- if (ch == '\n') {
- char ch1 = input.charAt(mymatch.index - 1);
- if (ch1 == '\r') return null;
- return mymatch;
- }
- if (ch == '\r') return mymatch;
- if (ch == '\u0085') return mymatch; // A next-line character
- if (ch == '\u2028') return mymatch; // A line-separator character
- if (ch == '\u2029') return mymatch; // A paragraph-separator character
- return null;
- }
- if (newline != null) {
- char z;
- int i = 0; // position in newline
- do {
- z = newline.charAt(i);
- if (ch != z) return null;
- ++i;
- ch = input.charAt(mymatch.index + i);
- } while (i < newline.length());
-
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ char ch = input.charAt (mymatch.index);
+ if (ch == CharIndexed.OUT_OF_BOUNDS)
+ return ((mymatch.eflags & RE.REG_NOTEOL) > 0) ? null : mymatch;
+ if (check_java_line_terminators)
+ {
+ if (ch == '\n')
+ {
+ char ch1 = input.charAt (mymatch.index - 1);
+ if (ch1 == '\r')
+ return null;
return mymatch;
- }
+ }
+ if (ch == '\r')
+ return mymatch;
+ if (ch == '\u0085')
+ return mymatch; // A next-line character
+ if (ch == '\u2028')
+ return mymatch; // A line-separator character
+ if (ch == '\u2029')
+ return mymatch; // A paragraph-separator character
return null;
- }
+ }
+ if (newline != null)
+ {
+ char z;
+ int i = 0; // position in newline
+ do
+ {
+ z = newline.charAt (i);
+ if (ch != z)
+ return null;
+ ++i;
+ ch = input.charAt (mymatch.index + i);
+ }
+ while (i < newline.length ());
+
+ return mymatch;
+ }
+ return null;
+ }
- boolean returnsFixedLengthMatches() { return true; }
+ boolean returnsFixedLengthMatches ()
+ {
+ return true;
+ }
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
- REMatch m = (REMatch) mymatch.clone();
- REToken tk = (REToken) this.clone();
- tk.chain(null);
- if (tk.match(input, m)) return max;
- else return 0;
- }
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
+ REMatch m = (REMatch) mymatch.clone ();
+ REToken tk = (REToken) this.clone ();
+ tk.chain (null);
+ if (tk.match (input, m))
+ return max;
+ else
+ return 0;
+ }
- void dump(StringBuffer os) {
- os.append('$');
+ void dump (CPStringBuilder os)
+ {
+ os.append ('$');
}
}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenEndOfPreviousMatch.java b/libjava/classpath/gnu/java/util/regex/RETokenEndOfPreviousMatch.java
index ea5580e..e4ad619 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenEndOfPreviousMatch.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenEndOfPreviousMatch.java
@@ -37,36 +37,52 @@ exception statement from your version. */
package gnu.java.util.regex;
-class RETokenEndOfPreviousMatch extends RETokenStart {
+import gnu.java.lang.CPStringBuilder;
- RETokenEndOfPreviousMatch(int subIndex) {
- super(subIndex, null);
- }
+class RETokenEndOfPreviousMatch extends RETokenStart
+{
- int getMaximumLength() {
- return 0;
- }
-
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- REMatch lastMatch = input.getLastMatch();
- if (lastMatch == null) return super.matchThis(input, mymatch);
- if (input.getAnchor()+mymatch.index ==
- lastMatch.anchor+lastMatch.index) {
- return mymatch;
- }
- else {
- return null;
- }
- }
+ RETokenEndOfPreviousMatch (int subIndex)
+ {
+ super (subIndex, null);
+ }
- boolean returnsFixedLengthmatches() { return true; }
+ int getMaximumLength ()
+ {
+ return 0;
+ }
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
- if (matchThis(input, mymatch) != null) return max;
- else return 0;
- }
-
- void dump(StringBuffer os) {
- os.append("\\G");
- }
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ REMatch lastMatch = input.getLastMatch ();
+ if (lastMatch == null)
+ return super.matchThis (input, mymatch);
+ if (input.getAnchor () + mymatch.index ==
+ lastMatch.anchor + lastMatch.index)
+ {
+ return mymatch;
+ }
+ else
+ {
+ return null;
+ }
+ }
+
+ boolean returnsFixedLengthmatches ()
+ {
+ return true;
+ }
+
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
+ if (matchThis (input, mymatch) != null)
+ return max;
+ else
+ return 0;
+ }
+
+ void dump (CPStringBuilder os)
+ {
+ os.append ("\\G");
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenEndSub.java b/libjava/classpath/gnu/java/util/regex/RETokenEndSub.java
index b3a28a3..0848207 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenEndSub.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenEndSub.java
@@ -37,34 +37,43 @@ exception statement from your version. */
package gnu.java.util.regex;
-final class RETokenEndSub extends REToken {
- RETokenEndSub(int subIndex) {
- super(subIndex);
- }
+import gnu.java.lang.CPStringBuilder;
- int getMaximumLength() {
- return 0;
- }
-
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- mymatch.start[subIndex] = mymatch.start1[subIndex];
- mymatch.end[subIndex] = mymatch.index;
- return mymatch;
- }
+final class RETokenEndSub extends REToken
+{
+ RETokenEndSub (int subIndex)
+ {
+ super (subIndex);
+ }
- REMatch findMatch(CharIndexed input, REMatch mymatch) {
- mymatch.start[subIndex] = mymatch.start1[subIndex];
- mymatch.end[subIndex] = mymatch.index;
- return super.findMatch(input, mymatch);
- }
+ int getMaximumLength ()
+ {
+ return 0;
+ }
- void setHitEnd(CharIndexed input, REMatch mymatch) {
- // Do nothing
- }
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ mymatch.start[subIndex] = mymatch.start1[subIndex];
+ mymatch.end[subIndex] = mymatch.index;
+ return mymatch;
+ }
- void dump(StringBuffer os) {
- // handled by RE
- // But add something for debugging.
- os.append("(?#RETokenEndSub subIndex=" + subIndex + ")");
- }
+ REMatch findMatch (CharIndexed input, REMatch mymatch)
+ {
+ mymatch.start[subIndex] = mymatch.start1[subIndex];
+ mymatch.end[subIndex] = mymatch.index;
+ return super.findMatch (input, mymatch);
+ }
+
+ void setHitEnd (CharIndexed input, REMatch mymatch)
+ {
+ // Do nothing
+ }
+
+ void dump (CPStringBuilder os)
+ {
+ // handled by RE
+ // But add something for debugging.
+ os.append ("(?#RETokenEndSub subIndex=" + subIndex + ")");
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenIndependent.java b/libjava/classpath/gnu/java/util/regex/RETokenIndependent.java
index 48f8656..8ad728d 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenIndependent.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenIndependent.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.java.util.regex;
+import gnu.java.lang.CPStringBuilder;
+
/**
* @author Ito Kazumitsu
*/
@@ -44,35 +46,40 @@ final class RETokenIndependent extends REToken
{
REToken re;
- RETokenIndependent(REToken re) throws REException {
- super(0);
+ RETokenIndependent (REToken re) throws REException
+ {
+ super (0);
this.re = re;
}
- int getMinimumLength() {
- return re.getMinimumLength();
+ int getMinimumLength ()
+ {
+ return re.getMinimumLength ();
}
- int getMaximumLength() {
- return re.getMaximumLength();
+ int getMaximumLength ()
+ {
+ return re.getMaximumLength ();
}
- REMatch matchThis(CharIndexed input, REMatch mymatch)
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
{
- boolean b = re.match(input, mymatch);
- if (b) {
- // Once we have found a match, we do not see other possible matches.
- if (mymatch.backtrackStack != null) mymatch.backtrackStack.clear();
- return mymatch;
+ boolean b = re.match (input, mymatch);
+ if (b)
+ {
+ // Once we have found a match, we do not see other possible matches.
+ if (mymatch.backtrackStack != null)
+ mymatch.backtrackStack.clear ();
+ return mymatch;
- }
+ }
return null;
}
- void dump(StringBuffer os) {
- os.append("(?>");
- re.dumpAll(os);
- os.append(')');
- }
+ void dump (CPStringBuilder os)
+ {
+ os.append ("(?>");
+ re.dumpAll (os);
+ os.append (')');
+ }
}
-
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenLookAhead.java b/libjava/classpath/gnu/java/util/regex/RETokenLookAhead.java
index 134f17c..1dc6019 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenLookAhead.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenLookAhead.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.java.util.regex;
+import gnu.java.lang.CPStringBuilder;
+
/**
* @since gnu.regexp 1.1.3
* @author Shashank Bapat
@@ -46,35 +48,41 @@ final class RETokenLookAhead extends REToken
REToken re;
boolean negative;
- RETokenLookAhead(REToken re, boolean negative) throws REException {
- super(0);
+ RETokenLookAhead (REToken re, boolean negative) throws REException
+ {
+ super (0);
this.re = re;
this.negative = negative;
}
- int getMaximumLength() {
+ int getMaximumLength ()
+ {
return 0;
}
- REMatch matchThis(CharIndexed input, REMatch mymatch)
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
{
- REMatch trymatch = (REMatch)mymatch.clone();
- if (re.match(input, trymatch)) {
- if (negative) return null;
- trymatch.index = mymatch.index;
- return trymatch;
- }
- else {
- if (negative) return mymatch;
- return null;
- }
+ REMatch trymatch = (REMatch) mymatch.clone ();
+ if (re.match (input, trymatch))
+ {
+ if (negative)
+ return null;
+ trymatch.index = mymatch.index;
+ return trymatch;
+ }
+ else
+ {
+ if (negative)
+ return mymatch;
+ return null;
+ }
}
- void dump(StringBuffer os) {
- os.append("(?");
- os.append(negative ? '!' : '=');
- re.dumpAll(os);
- os.append(')');
- }
+ void dump (CPStringBuilder os)
+ {
+ os.append ("(?");
+ os.append (negative ? '!' : '=');
+ re.dumpAll (os);
+ os.append (')');
+ }
}
-
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenLookBehind.java b/libjava/classpath/gnu/java/util/regex/RETokenLookBehind.java
index a01a15b..f61c93c 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenLookBehind.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenLookBehind.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.java.util.regex;
+import gnu.java.lang.CPStringBuilder;
+
/**
* @author Ito Kazumitsu
*/
@@ -45,74 +47,90 @@ final class RETokenLookBehind extends REToken
REToken re;
boolean negative;
- RETokenLookBehind(REToken re, boolean negative) throws REException {
- super(0);
+ RETokenLookBehind (REToken re, boolean negative) throws REException
+ {
+ super (0);
this.re = re;
this.negative = negative;
}
- int getMaximumLength() {
+ int getMaximumLength ()
+ {
return 0;
}
- REMatch matchThis(CharIndexed input, REMatch mymatch)
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
{
- int max = re.getMaximumLength();
- CharIndexed behind = input.lookBehind(mymatch.index, max);
- REMatch trymatch = (REMatch)mymatch.clone();
- REMatch trymatch1 = (REMatch)mymatch.clone();
- REMatch newMatch = null;
- int diff = behind.length() - input.length();
+ int max = re.getMaximumLength ();
+ CharIndexed behind = input.lookBehind (mymatch.index, max);
+ REMatch trymatch = (REMatch) mymatch.clone ();
+ int diff = behind.length () - input.length ();
int curIndex = trymatch.index + diff;
trymatch.index = 0;
trymatch.offset = 0;
- RETokenMatchHereOnly stopper = new RETokenMatchHereOnly(curIndex);
- REToken re1 = (REToken) re.clone();
- re1.chain(stopper);
- if (re1.match(behind, trymatch)) {
- if (negative) return null;
- for (int i = 0; i < trymatch.start.length; i++) {
- if (trymatch.start[i] != -1 && trymatch.end[i] != -1) {
- trymatch.start[i] -= diff;
- if (trymatch.start[i] < 0) trymatch.start[i] -= 1;
- trymatch.end[i] -= diff;
- if (trymatch.end[i] < 0) trymatch.end[i] -= 1;
+ RETokenMatchHereOnly stopper = new RETokenMatchHereOnly (curIndex);
+ REToken re1 = (REToken) re.clone ();
+ re1.chain (stopper);
+ if (re1.match (behind, trymatch))
+ {
+ if (negative)
+ return null;
+ for (int i = 0; i < trymatch.start.length; i++)
+ {
+ if (trymatch.start[i] != -1 && trymatch.end[i] != -1)
+ {
+ trymatch.start[i] -= diff;
+ if (trymatch.start[i] < 0)
+ trymatch.start[i] -= 1;
+ trymatch.end[i] -= diff;
+ if (trymatch.end[i] < 0)
+ trymatch.end[i] -= 1;
+ }
}
+ trymatch.index = mymatch.index;
+ trymatch.offset = mymatch.offset;
+ return trymatch;
+ }
+ else
+ {
+ if (negative)
+ return mymatch;
+ return null;
}
- trymatch.index = mymatch.index;
- trymatch.offset = mymatch.offset;
- return trymatch;
- }
- else {
- if (negative) return mymatch;
- return null;
- }
}
- void dump(StringBuffer os) {
- os.append("(?<");
- os.append(negative ? '!' : '=');
- re.dumpAll(os);
- os.append(')');
- }
-
- private static class RETokenMatchHereOnly extends REToken {
+ void dump (CPStringBuilder os)
+ {
+ os.append ("(?<");
+ os.append (negative ? '!' : '=');
+ re.dumpAll (os);
+ os.append (')');
+ }
- int getMaximumLength() { return 0; }
+ private static class RETokenMatchHereOnly extends REToken
+ {
- private int index;
+ int getMaximumLength ()
+ {
+ return 0;
+ }
- RETokenMatchHereOnly(int index) {
- super(0);
- this.index = index;
- }
+ private int index;
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- return (index == mymatch.index ? mymatch : null);
- }
+ RETokenMatchHereOnly (int index)
+ {
+ super (0);
+ this.index = index;
+ }
- void dump(StringBuffer os) {}
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ return (index == mymatch.index ? mymatch : null);
+ }
+ void dump (CPStringBuilder os)
+ {
}
-}
+ }
+}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java b/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java
index 0051f16..1683cb1 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenNamedProperty.java
@@ -38,303 +38,341 @@ exception statement from your version. */
package gnu.java.util.regex;
+import gnu.java.lang.CPStringBuilder;
+
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-final class RETokenNamedProperty extends REToken {
+final class RETokenNamedProperty extends REToken
+{
String name;
boolean insens;
boolean negate;
Handler handler;
// Grouped properties
- static final byte[] LETTER = new byte[]
- { Character.LOWERCASE_LETTER,
+ static final byte[] LETTER = new byte[]{ Character.LOWERCASE_LETTER,
Character.UPPERCASE_LETTER,
Character.TITLECASE_LETTER,
Character.MODIFIER_LETTER,
- Character.OTHER_LETTER };
-
- static final byte[] MARK = new byte[]
- { Character.NON_SPACING_MARK,
+ Character.OTHER_LETTER
+ };
+
+ static final byte[] MARK = new byte[]{ Character.NON_SPACING_MARK,
Character.COMBINING_SPACING_MARK,
- Character.ENCLOSING_MARK };
-
- static final byte[] SEPARATOR = new byte[]
- { Character.SPACE_SEPARATOR,
+ Character.ENCLOSING_MARK
+ };
+
+ static final byte[] SEPARATOR = new byte[]{ Character.SPACE_SEPARATOR,
Character.LINE_SEPARATOR,
- Character.PARAGRAPH_SEPARATOR };
-
- static final byte[] SYMBOL = new byte[]
- { Character.MATH_SYMBOL,
+ Character.PARAGRAPH_SEPARATOR
+ };
+
+ static final byte[] SYMBOL = new byte[]{ Character.MATH_SYMBOL,
Character.CURRENCY_SYMBOL,
Character.MODIFIER_SYMBOL,
- Character.OTHER_SYMBOL };
-
- static final byte[] NUMBER = new byte[]
- { Character.DECIMAL_DIGIT_NUMBER,
+ Character.OTHER_SYMBOL
+ };
+
+ static final byte[] NUMBER = new byte[]{ Character.DECIMAL_DIGIT_NUMBER,
Character.LETTER_NUMBER,
- Character.OTHER_NUMBER };
-
- static final byte[] PUNCTUATION = new byte[]
- { Character.DASH_PUNCTUATION,
+ Character.OTHER_NUMBER
+ };
+
+ static final byte[] PUNCTUATION = new byte[]{ Character.DASH_PUNCTUATION,
Character.START_PUNCTUATION,
Character.END_PUNCTUATION,
Character.CONNECTOR_PUNCTUATION,
Character.OTHER_PUNCTUATION,
Character.INITIAL_QUOTE_PUNCTUATION,
- Character.FINAL_QUOTE_PUNCTUATION};
-
- static final byte[] OTHER = new byte[]
- { Character.CONTROL,
+ Character.FINAL_QUOTE_PUNCTUATION
+ };
+
+ static final byte[] OTHER = new byte[]{ Character.CONTROL,
Character.FORMAT,
Character.PRIVATE_USE,
Character.SURROGATE,
- Character.UNASSIGNED };
+ Character.UNASSIGNED
+ };
- RETokenNamedProperty(int subIndex, String name, boolean insens, boolean negate) throws REException {
- super(subIndex);
+ RETokenNamedProperty (int subIndex, String name, boolean insens,
+ boolean negate) throws REException
+ {
+ super (subIndex);
this.name = name;
this.insens = insens;
this.negate = negate;
- handler = getHandler(name);
+ handler = getHandler (name);
}
- int getMinimumLength() {
- return 1;
- }
+ int getMinimumLength ()
+ {
+ return 1;
+ }
- int getMaximumLength() {
- return 1;
- }
+ int getMaximumLength ()
+ {
+ return 1;
+ }
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- char ch = input.charAt(mymatch.index);
- boolean retval = matchOneChar(ch);
- if (retval) {
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ char ch = input.charAt (mymatch.index);
+ boolean retval = matchOneChar (ch);
+ if (retval)
+ {
++mymatch.index;
return mymatch;
}
- return null;
+ return null;
}
- private boolean matchOneChar(char ch) {
+ private boolean matchOneChar (char ch)
+ {
if (ch == CharIndexed.OUT_OF_BOUNDS)
return false;
-
- boolean retval = handler.includes(ch);
- if (insens) {
- retval = retval ||
- handler.includes(toUpperCase(ch, unicodeAware)) ||
- handler.includes(toLowerCase(ch, unicodeAware));
- }
- if (negate) retval = !retval;
+ boolean retval = handler.includes (ch);
+ if (insens)
+ {
+ retval = retval ||
+ handler.includes (toUpperCase (ch, unicodeAware)) ||
+ handler.includes (toLowerCase (ch, unicodeAware));
+ }
+
+ if (negate)
+ retval = !retval;
return retval;
}
- boolean returnsFixedLengthMatches() { return true; }
+ boolean returnsFixedLengthMatches ()
+ {
+ return true;
+ }
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
int index = mymatch.index;
int numRepeats = 0;
- while (true) {
- if (numRepeats >= max) break;
- char ch = input.charAt(index++);
- if (! matchOneChar(ch)) break;
+ while (true)
+ {
+ if (numRepeats >= max)
+ break;
+ char ch = input.charAt (index++);
+ if (!matchOneChar (ch))
+ break;
numRepeats++;
- }
+ }
return numRepeats;
}
- void dump(StringBuffer os) {
- os.append("\\")
- .append(negate ? "P" : "p")
- .append("{" + name + "}");
+ void dump (CPStringBuilder os)
+ {
+ os.append ("\\").append (negate ? "P" : "p").append ("{" + name + "}");
}
- private abstract static class Handler {
- public abstract boolean includes(char c);
+ private abstract static class Handler
+ {
+ public abstract boolean includes (char c);
}
- private Handler getHandler(String name) throws REException {
- if (name.equals("Lower") ||
- name.equals("Upper") ||
- // name.equals("ASCII") ||
- name.equals("Alpha") ||
- name.equals("Digit") ||
- name.equals("Alnum") ||
- name.equals("Punct") ||
- name.equals("Graph") ||
- name.equals("Print") ||
- name.equals("Blank") ||
- name.equals("Cntrl") ||
- name.equals("XDigit") ||
- name.equals("Space") ) {
- return new POSIXHandler(name);
+ private Handler getHandler (String name) throws REException
+ {
+ if (name.equals ("Lower") || name.equals ("Upper") ||
+ // name.equals("ASCII") ||
+ name.equals ("Alpha") ||
+ name.equals ("Digit") ||
+ name.equals ("Alnum") ||
+ name.equals ("Punct") ||
+ name.equals ("Graph") ||
+ name.equals ("Print") ||
+ name.equals ("Blank") ||
+ name.equals ("Cntrl") ||
+ name.equals ("XDigit") || name.equals ("Space"))
+ {
+ return new POSIXHandler (name);
}
- if (name.startsWith("In")) {
- try {
- name = name.substring(2);
- Character.UnicodeBlock block = Character.UnicodeBlock.forName(name);
- return new UnicodeBlockHandler(block);
- }
- catch (IllegalArgumentException e) {
- throw new REException("Invalid Unicode block name: " + name, REException.REG_ESCAPE, 0);
- }
+ if (name.startsWith ("In"))
+ {
+ try
+ {
+ name = name.substring (2);
+ Character.UnicodeBlock block =
+ Character.UnicodeBlock.forName (name);
+ return new UnicodeBlockHandler (block);
+ }
+ catch (IllegalArgumentException e)
+ {
+ throw new REException ("Invalid Unicode block name: " + name,
+ REException.REG_ESCAPE, 0);
+ }
}
- if (name.startsWith("Is")) {
- name = name.substring(2);
+ if (name.startsWith ("Is"))
+ {
+ name = name.substring (2);
}
- // "grouped properties"
- if (name.equals("L"))
- return new UnicodeCategoriesHandler(LETTER);
- if (name.equals("M"))
- return new UnicodeCategoriesHandler(MARK);
- if (name.equals("Z"))
- return new UnicodeCategoriesHandler(SEPARATOR);
- if (name.equals("S"))
- return new UnicodeCategoriesHandler(SYMBOL);
- if (name.equals("N"))
- return new UnicodeCategoriesHandler(NUMBER);
- if (name.equals("P"))
- return new UnicodeCategoriesHandler(PUNCTUATION);
- if (name.equals("C"))
- return new UnicodeCategoriesHandler(OTHER);
-
- if (name.equals("Mc"))
- return new UnicodeCategoryHandler(Character.COMBINING_SPACING_MARK);
- if (name.equals("Pc"))
- return new UnicodeCategoryHandler(Character.CONNECTOR_PUNCTUATION);
- if (name.equals("Cc"))
- return new UnicodeCategoryHandler(Character.CONTROL);
- if (name.equals("Sc"))
- return new UnicodeCategoryHandler(Character.CURRENCY_SYMBOL);
- if (name.equals("Pd"))
- return new UnicodeCategoryHandler(Character.DASH_PUNCTUATION);
- if (name.equals("Nd"))
- return new UnicodeCategoryHandler(Character.DECIMAL_DIGIT_NUMBER);
- if (name.equals("Me"))
- return new UnicodeCategoryHandler(Character.ENCLOSING_MARK);
- if (name.equals("Pe"))
- return new UnicodeCategoryHandler(Character.END_PUNCTUATION);
- if (name.equals("Pf"))
- return new UnicodeCategoryHandler(Character.FINAL_QUOTE_PUNCTUATION);
- if (name.equals("Cf"))
- return new UnicodeCategoryHandler(Character.FORMAT);
- if (name.equals("Pi"))
- return new UnicodeCategoryHandler(Character.INITIAL_QUOTE_PUNCTUATION);
- if (name.equals("Nl"))
- return new UnicodeCategoryHandler(Character.LETTER_NUMBER);
- if (name.equals("Zl"))
- return new UnicodeCategoryHandler(Character.LINE_SEPARATOR);
- if (name.equals("Ll"))
- return new UnicodeCategoryHandler(Character.LOWERCASE_LETTER);
- if (name.equals("Sm"))
- return new UnicodeCategoryHandler(Character.MATH_SYMBOL);
- if (name.equals("Lm"))
- return new UnicodeCategoryHandler(Character.MODIFIER_LETTER);
- if (name.equals("Sk"))
- return new UnicodeCategoryHandler(Character.MODIFIER_SYMBOL);
- if (name.equals("Mn"))
- return new UnicodeCategoryHandler(Character.NON_SPACING_MARK);
- if (name.equals("Lo"))
- return new UnicodeCategoryHandler(Character.OTHER_LETTER);
- if (name.equals("No"))
- return new UnicodeCategoryHandler(Character.OTHER_NUMBER);
- if (name.equals("Po"))
- return new UnicodeCategoryHandler(Character.OTHER_PUNCTUATION);
- if (name.equals("So"))
- return new UnicodeCategoryHandler(Character.OTHER_SYMBOL);
- if (name.equals("Zp"))
- return new UnicodeCategoryHandler(Character.PARAGRAPH_SEPARATOR);
- if (name.equals("Co"))
- return new UnicodeCategoryHandler(Character.PRIVATE_USE);
- if (name.equals("Zs"))
- return new UnicodeCategoryHandler(Character.SPACE_SEPARATOR);
- if (name.equals("Ps"))
- return new UnicodeCategoryHandler(Character.START_PUNCTUATION);
- if (name.equals("Cs"))
- return new UnicodeCategoryHandler(Character.SURROGATE);
- if (name.equals("Lt"))
- return new UnicodeCategoryHandler(Character.TITLECASE_LETTER);
- if (name.equals("Cn"))
- return new UnicodeCategoryHandler(Character.UNASSIGNED);
- if (name.equals("Lu"))
- return new UnicodeCategoryHandler(Character.UPPERCASE_LETTER);
- if (name.equals("all"))
- return new Handler()
- {
- public boolean includes(char c)
- {
- return true;
- }
- };
- if (name.startsWith("java"))
+ // "grouped properties"
+ if (name.equals ("L"))
+ return new UnicodeCategoriesHandler (LETTER);
+ if (name.equals ("M"))
+ return new UnicodeCategoriesHandler (MARK);
+ if (name.equals ("Z"))
+ return new UnicodeCategoriesHandler (SEPARATOR);
+ if (name.equals ("S"))
+ return new UnicodeCategoriesHandler (SYMBOL);
+ if (name.equals ("N"))
+ return new UnicodeCategoriesHandler (NUMBER);
+ if (name.equals ("P"))
+ return new UnicodeCategoriesHandler (PUNCTUATION);
+ if (name.equals ("C"))
+ return new UnicodeCategoriesHandler (OTHER);
+
+ if (name.equals ("Mc"))
+ return new UnicodeCategoryHandler (Character.COMBINING_SPACING_MARK);
+ if (name.equals ("Pc"))
+ return new UnicodeCategoryHandler (Character.CONNECTOR_PUNCTUATION);
+ if (name.equals ("Cc"))
+ return new UnicodeCategoryHandler (Character.CONTROL);
+ if (name.equals ("Sc"))
+ return new UnicodeCategoryHandler (Character.CURRENCY_SYMBOL);
+ if (name.equals ("Pd"))
+ return new UnicodeCategoryHandler (Character.DASH_PUNCTUATION);
+ if (name.equals ("Nd"))
+ return new UnicodeCategoryHandler (Character.DECIMAL_DIGIT_NUMBER);
+ if (name.equals ("Me"))
+ return new UnicodeCategoryHandler (Character.ENCLOSING_MARK);
+ if (name.equals ("Pe"))
+ return new UnicodeCategoryHandler (Character.END_PUNCTUATION);
+ if (name.equals ("Pf"))
+ return new UnicodeCategoryHandler (Character.FINAL_QUOTE_PUNCTUATION);
+ if (name.equals ("Cf"))
+ return new UnicodeCategoryHandler (Character.FORMAT);
+ if (name.equals ("Pi"))
+ return new UnicodeCategoryHandler (Character.INITIAL_QUOTE_PUNCTUATION);
+ if (name.equals ("Nl"))
+ return new UnicodeCategoryHandler (Character.LETTER_NUMBER);
+ if (name.equals ("Zl"))
+ return new UnicodeCategoryHandler (Character.LINE_SEPARATOR);
+ if (name.equals ("Ll"))
+ return new UnicodeCategoryHandler (Character.LOWERCASE_LETTER);
+ if (name.equals ("Sm"))
+ return new UnicodeCategoryHandler (Character.MATH_SYMBOL);
+ if (name.equals ("Lm"))
+ return new UnicodeCategoryHandler (Character.MODIFIER_LETTER);
+ if (name.equals ("Sk"))
+ return new UnicodeCategoryHandler (Character.MODIFIER_SYMBOL);
+ if (name.equals ("Mn"))
+ return new UnicodeCategoryHandler (Character.NON_SPACING_MARK);
+ if (name.equals ("Lo"))
+ return new UnicodeCategoryHandler (Character.OTHER_LETTER);
+ if (name.equals ("No"))
+ return new UnicodeCategoryHandler (Character.OTHER_NUMBER);
+ if (name.equals ("Po"))
+ return new UnicodeCategoryHandler (Character.OTHER_PUNCTUATION);
+ if (name.equals ("So"))
+ return new UnicodeCategoryHandler (Character.OTHER_SYMBOL);
+ if (name.equals ("Zp"))
+ return new UnicodeCategoryHandler (Character.PARAGRAPH_SEPARATOR);
+ if (name.equals ("Co"))
+ return new UnicodeCategoryHandler (Character.PRIVATE_USE);
+ if (name.equals ("Zs"))
+ return new UnicodeCategoryHandler (Character.SPACE_SEPARATOR);
+ if (name.equals ("Ps"))
+ return new UnicodeCategoryHandler (Character.START_PUNCTUATION);
+ if (name.equals ("Cs"))
+ return new UnicodeCategoryHandler (Character.SURROGATE);
+ if (name.equals ("Lt"))
+ return new UnicodeCategoryHandler (Character.TITLECASE_LETTER);
+ if (name.equals ("Cn"))
+ return new UnicodeCategoryHandler (Character.UNASSIGNED);
+ if (name.equals ("Lu"))
+ return new UnicodeCategoryHandler (Character.UPPERCASE_LETTER);
+ if (name.equals ("all"))
+ return new Handler ()
+ {
+ public boolean includes (char c)
+ {
+ return true;
+ }
+ };
+ if (name.startsWith ("java"))
+ {
+ try
{
- try
- {
- Method m = Character.class.getMethod("is" + name.substring(4),
- Character.TYPE);
- return new JavaCategoryHandler(m);
- }
- catch (NoSuchMethodException e)
- {
- throw new REException("Unsupported Java handler: " + name, e,
- REException.REG_ESCAPE, 0);
- }
+ Method m = Character.class.getMethod ("is" + name.substring (4),
+ Character.TYPE);
+ return new JavaCategoryHandler (m);
}
- throw new REException("unsupported name " + name, REException.REG_ESCAPE, 0);
+ catch (NoSuchMethodException e)
+ {
+ throw new REException ("Unsupported Java handler: " + name, e,
+ REException.REG_ESCAPE, 0);
+ }
+ }
+ throw new REException ("unsupported name " + name, REException.REG_ESCAPE,
+ 0);
}
- private static class POSIXHandler extends Handler {
- private RETokenPOSIX retoken;
- public POSIXHandler(String name) {
- int posixId = RETokenPOSIX.intValue(name.toLowerCase());
- if (posixId != -1)
- retoken = new RETokenPOSIX(0,posixId,false,false);
- else
- throw new RuntimeException("Unknown posix ID: " + name);
- }
- public boolean includes(char c) {
- return retoken.matchOneChar(c);
- }
+ private static class POSIXHandler extends Handler
+ {
+ private RETokenPOSIX retoken;
+ public POSIXHandler (String name)
+ {
+ int posixId = RETokenPOSIX.intValue (name.toLowerCase ());
+ if (posixId != -1)
+ retoken = new RETokenPOSIX (0, posixId, false, false);
+ else
+ throw new RuntimeException ("Unknown posix ID: " + name);
+ }
+ public boolean includes (char c)
+ {
+ return retoken.matchOneChar (c);
+ }
}
- private static class UnicodeCategoryHandler extends Handler {
- public UnicodeCategoryHandler(byte category) {
- this.category = (int)category;
- }
- private int category;
- public boolean includes(char c) {
- return Character.getType(c) == category;
- }
+ private static class UnicodeCategoryHandler extends Handler
+ {
+ public UnicodeCategoryHandler (byte category)
+ {
+ this.category = (int) category;
+ }
+ private int category;
+ public boolean includes (char c)
+ {
+ return Character.getType (c) == category;
+ }
}
- private static class UnicodeCategoriesHandler extends Handler {
- public UnicodeCategoriesHandler(byte[] categories) {
- this.categories = categories;
- }
- private byte[] categories;
- public boolean includes(char c) {
- int category = Character.getType(c);
- for (int i = 0; i < categories.length; i++)
- if (category == categories[i])
- return true;
- return false;
- }
+ private static class UnicodeCategoriesHandler extends Handler
+ {
+ public UnicodeCategoriesHandler (byte[]categories)
+ {
+ this.categories = categories;
+ }
+ private byte[] categories;
+ public boolean includes (char c)
+ {
+ int category = Character.getType (c);
+ for (int i = 0; i < categories.length; i++)
+ if (category == categories[i])
+ return true;
+ return false;
+ }
}
- private static class UnicodeBlockHandler extends Handler {
- public UnicodeBlockHandler(Character.UnicodeBlock block) {
- this.block = block;
- }
- private Character.UnicodeBlock block;
- public boolean includes(char c) {
- Character.UnicodeBlock cblock = Character.UnicodeBlock.of(c);
- return (cblock != null && cblock.equals(block));
- }
+ private static class UnicodeBlockHandler extends Handler
+ {
+ public UnicodeBlockHandler (Character.UnicodeBlock block)
+ {
+ this.block = block;
+ }
+ private Character.UnicodeBlock block;
+ public boolean includes (char c)
+ {
+ Character.UnicodeBlock cblock = Character.UnicodeBlock.of (c);
+ return (cblock != null && cblock.equals (block));
+ }
}
/**
@@ -343,30 +381,29 @@ final class RETokenNamedProperty extends REToken {
*
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
- private static class JavaCategoryHandler
- extends Handler
+ private static class JavaCategoryHandler extends Handler
{
private Method method;
- public JavaCategoryHandler(Method m)
+ public JavaCategoryHandler (Method m)
{
this.method = m;
}
- public boolean includes(char c)
+ public boolean includes (char c)
{
try
- {
- return (Boolean) method.invoke(null, c);
- }
+ {
+ return (Boolean) method.invoke (null, c);
+ }
catch (IllegalAccessException e)
- {
- throw new InternalError("Unable to access method " + method);
- }
+ {
+ throw new InternalError ("Unable to access method " + method);
+ }
catch (InvocationTargetException e)
- {
- throw new InternalError("Error invoking " + method);
- }
+ {
+ throw new InternalError ("Error invoking " + method);
+ }
}
}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenOneOf.java b/libjava/classpath/gnu/java/util/regex/RETokenOneOf.java
index 239c220..fcae3c2 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenOneOf.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenOneOf.java
@@ -36,23 +36,29 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package gnu.java.util.regex;
-import java.util.Vector;
-import java.util.Stack;
-final class RETokenOneOf extends REToken {
- private Vector options;
+import gnu.java.lang.CPStringBuilder;
+
+import java.util.ArrayDeque;
+import java.util.ArrayList;
+import java.util.Deque;
+import java.util.List;
+
+final class RETokenOneOf extends REToken
+{
+ private final List < REToken > options;
private boolean negative;
// True if this RETokenOneOf is supposed to match only one character,
// which is typically the case of a character class expression.
private boolean matchesOneChar;
- private Vector addition;
- // This Vector addition is used to store nested character classes.
+ private final List < Object > addition;
+ // This ArrayList addition is used to store nested character classes.
// For example, if the original expression is
// [2-7a-c[f-k][m-z]&&[^p-v][st]]
- // the basic part /2-7a-c/ is stored in the Vector options, and
+ // the basic part /2-7a-c/ is stored in the ArrayList options, and
// the additional part /[f-k][m-z]&&[^p-v][st]/ is stored in the
- // Vector addition in the following order (Reverse Polish Notation):
+ // ArrayList addition in the following order (Reverse Polish Notation):
// -- The matching result of the basic part is assumed here.
// [f-k] -- REToken
// "|" -- or
@@ -65,7 +71,7 @@ final class RETokenOneOf extends REToken {
// "|" -- or
// "&" -- and
//
- // As it is clear from the explanation above, the Vector addition is
+ // As it is clear from the explanation above, the ArrayList addition is
// effective only when this REToken originates from a character class
// expression.
@@ -73,209 +79,254 @@ final class RETokenOneOf extends REToken {
// e.g. \d --> new RETokenOneOf("0123456789",false, ..)
// \D --> new RETokenOneOf("0123456789",true, ..)
- RETokenOneOf(int subIndex, String optionsStr, boolean negative, boolean insens) {
- super(subIndex);
- options = new Vector();
+ RETokenOneOf (int subIndex, String optionsStr, boolean negative,
+ boolean insens)
+ {
+ super (subIndex);
+ options = new ArrayList < REToken > ();
this.negative = negative;
- for (int i = 0; i < optionsStr.length(); i++)
- options.addElement(new RETokenChar(subIndex,optionsStr.charAt(i),insens));
+ for (int i = 0; i < optionsStr.length (); i++)
+ options.add (new RETokenChar (subIndex, optionsStr.charAt (i), insens));
matchesOneChar = true;
+ addition = null;
}
- RETokenOneOf(int subIndex, Vector options, boolean negative) {
- super(subIndex);
- this.options = options;
- this.negative = negative;
- matchesOneChar = negative;
+ RETokenOneOf (int subIndex, List < REToken > options, boolean negative)
+ {
+ this (subIndex, options, null, negative);
}
- RETokenOneOf(int subIndex, Vector options, Vector addition, boolean negative) {
- super(subIndex);
+ RETokenOneOf (int subIndex, List < REToken > options,
+ List < Object > addition, boolean negative)
+ {
+ super (subIndex);
this.options = options;
this.addition = addition;
this.negative = negative;
matchesOneChar = (negative || addition != null);
}
- int getMinimumLength() {
- if (matchesOneChar) return 1;
+ int getMinimumLength ()
+ {
+ if (matchesOneChar)
+ return 1;
int min = Integer.MAX_VALUE;
int x;
- for (int i=0; i < options.size(); i++) {
- if ((x = ((REToken) options.elementAt(i)).getMinimumLength()) < min)
- min = x;
- }
+ for (REToken t:options)
+ {
+ if ((x = t.getMinimumLength ()) < min)
+ min = x;
+ }
return min;
}
- int getMaximumLength() {
- if (matchesOneChar) return 1;
+ int getMaximumLength ()
+ {
+ if (matchesOneChar)
+ return 1;
int max = 0;
int x;
- for (int i=0; i < options.size(); i++) {
- if ((x = ((REToken) options.elementAt(i)).getMaximumLength()) > max)
- max = x;
- }
+ for (REToken t:options)
+ {
+ if ((x = t.getMaximumLength ()) > max)
+ max = x;
+ }
return max;
}
- boolean match(CharIndexed input, REMatch mymatch) {
- setHitEnd(input, mymatch);
- if (matchesOneChar) return matchOneChar(input, mymatch);
- else return matchOneRE(input, mymatch);
- }
+ boolean match (CharIndexed input, REMatch mymatch)
+ {
+ setHitEnd (input, mymatch);
+ if (matchesOneChar)
+ return matchOneChar (input, mymatch);
+ else
+ return matchOneRE (input, mymatch);
+ }
- boolean matchOneChar(CharIndexed input, REMatch mymatch) {
- REMatch tryMatch;
- boolean tryOnly;
- if (addition == null) {
- tryMatch = mymatch;
- tryOnly = false;
+ boolean matchOneChar (CharIndexed input, REMatch mymatch)
+ {
+ REMatch tryMatch;
+ boolean tryOnly;
+ if (addition == null)
+ {
+ tryMatch = mymatch;
+ tryOnly = false;
}
- else {
- tryMatch = (REMatch) mymatch.clone();
- tryOnly = true;
+ else
+ {
+ tryMatch = (REMatch) mymatch.clone ();
+ tryOnly = true;
}
- boolean b = negative ?
- matchN(input, tryMatch, tryOnly) :
- matchP(input, tryMatch, tryOnly);
- if (addition == null) return b;
+ boolean b = negative ?
+ matchN (input, tryMatch, tryOnly) : matchP (input, tryMatch, tryOnly);
+ if (addition == null)
+ return b;
- Stack stack = new Stack();
- stack.push(new Boolean(b));
- for (int i=0; i < addition.size(); i++) {
- Object obj = addition.elementAt(i);
- if (obj instanceof REToken) {
- b = ((REToken)obj).match(input, (REMatch)mymatch.clone());
- stack.push(new Boolean(b));
- }
- else if (obj instanceof Boolean) {
- stack.push(obj);
- }
- else if (obj.equals("|")) {
- b = ((Boolean)stack.pop()).booleanValue();
- b = ((Boolean)stack.pop()).booleanValue() || b;
- stack.push(new Boolean(b));
- }
- else if (obj.equals("&")) {
- b = ((Boolean)stack.pop()).booleanValue();
- b = ((Boolean)stack.pop()).booleanValue() && b;
- stack.push(new Boolean(b));
- }
- else {
- throw new RuntimeException("Invalid object found");
- }
+ final Deque < Boolean > stack = new ArrayDeque < Boolean > ();
+ stack.push (new Boolean (b));
+ for (Object obj:addition)
+ {
+ if (obj instanceof REToken)
+ {
+ b = ((REToken) obj).match (input, (REMatch) mymatch.clone ());
+ stack.push (new Boolean (b));
+ }
+ else if (obj instanceof Boolean)
+ {
+ stack.push ((Boolean) obj);
+ }
+ else if (obj.equals ("|"))
+ {
+ b = stack.pop ();
+ b = stack.pop () || b;
+ stack.push (new Boolean (b));
+ }
+ else if (obj.equals ("&"))
+ {
+ b = stack.pop ();
+ b = stack.pop () && b;
+ stack.push (new Boolean (b));
+ }
+ else
+ {
+ throw new RuntimeException ("Invalid object found");
+ }
}
- b = ((Boolean)stack.pop()).booleanValue();
- if (b) {
- ++mymatch.index;
- return next(input, mymatch);
+ if (stack.pop ())
+ {
+ ++mymatch.index;
+ return next (input, mymatch);
}
- return false;
- }
+ return false;
+ }
- private boolean matchN(CharIndexed input, REMatch mymatch, boolean tryOnly) {
- if (input.charAt(mymatch.index) == CharIndexed.OUT_OF_BOUNDS)
- return false;
+ private boolean matchN (CharIndexed input, REMatch mymatch, boolean tryOnly)
+ {
+ if (input.charAt (mymatch.index) == CharIndexed.OUT_OF_BOUNDS)
+ return false;
- REMatch newMatch = null;
- REMatch last = null;
- REToken tk;
- for (int i=0; i < options.size(); i++) {
- tk = (REToken) options.elementAt(i);
- REMatch tryMatch = (REMatch) mymatch.clone();
- if (tk.match(input, tryMatch)) { // match was successful
+ for (REToken tk:options)
+ {
+ REMatch tryMatch = (REMatch) mymatch.clone ();
+ if (tk.match (input, tryMatch))
+ { // match was successful
return false;
- } // is a match
- } // try next option
+ } // is a match
+ } // try next option
- if (tryOnly) return true;
- ++mymatch.index;
- return next(input, mymatch);
- }
+ if (tryOnly)
+ return true;
+ ++mymatch.index;
+ return next (input, mymatch);
+ }
- private boolean matchP(CharIndexed input, REMatch mymatch, boolean tryOnly) {
- REToken tk;
- for (int i=0; i < options.size(); i++) {
- tk = (REToken) options.elementAt(i);
- REMatch tryMatch = (REMatch) mymatch.clone();
- if (tk.match(input, tryMatch)) { // match was successful
- if (tryOnly) return true;
- if (next(input, tryMatch)) {
- mymatch.assignFrom(tryMatch);
+ private boolean matchP (CharIndexed input, REMatch mymatch, boolean tryOnly)
+ {
+ for (REToken tk:options)
+ {
+ REMatch tryMatch = (REMatch) mymatch.clone ();
+ if (tk.match (input, tryMatch))
+ { // match was successful
+ if (tryOnly)
return true;
+ if (next (input, tryMatch))
+ {
+ mymatch.assignFrom (tryMatch);
+ return true;
+ }
}
- }
}
- return false;
- }
+ return false;
+ }
- private boolean matchOneRE(CharIndexed input, REMatch mymatch) {
- REMatch newMatch = findMatch(input, mymatch);
- if (newMatch != null) {
- mymatch.assignFrom(newMatch);
- return true;
+ private boolean matchOneRE (CharIndexed input, REMatch mymatch)
+ {
+ REMatch newMatch = findMatch (input, mymatch);
+ if (newMatch != null)
+ {
+ mymatch.assignFrom (newMatch);
+ return true;
}
- return false;
+ return false;
}
- REMatch findMatch(CharIndexed input, REMatch mymatch) {
- if (matchesOneChar) return super.findMatch(input, mymatch);
- return findMatch(input, mymatch, 0);
+ REMatch findMatch (CharIndexed input, REMatch mymatch)
+ {
+ if (matchesOneChar)
+ return super.findMatch (input, mymatch);
+ return findMatch (input, mymatch, 0);
}
- REMatch backtrack(CharIndexed input, REMatch mymatch, Object param) {
- return findMatch(input, mymatch, ((Integer)param).intValue());
+ REMatch backtrack (CharIndexed input, REMatch mymatch, Object param)
+ {
+ return findMatch (input, mymatch, ((Integer) param).intValue ());
}
- private REMatch findMatch(CharIndexed input, REMatch mymatch, int optionIndex) {
- for (int i = optionIndex; i < options.size(); i++) {
- REToken tk = (REToken) options.elementAt(i);
- tk = (REToken) tk.clone();
- tk.chain(getNext());
- REMatch tryMatch = (REMatch) mymatch.clone();
- if (tryMatch.backtrackStack == null) {
- tryMatch.backtrackStack = new BacktrackStack();
+ private REMatch findMatch (CharIndexed input, REMatch mymatch,
+ int optionIndex)
+ {
+ for (int i = optionIndex; i < options.size (); i++)
+ {
+ REToken tk = options.get (i);
+ tk = (REToken) tk.clone ();
+ tk.chain (getNext ());
+ REMatch tryMatch = (REMatch) mymatch.clone ();
+ if (tryMatch.backtrackStack == null)
+ {
+ tryMatch.backtrackStack = new BacktrackStack ();
}
- boolean stackPushed = false;
- if (i + 1 < options.size()) {
- tryMatch.backtrackStack.push(new BacktrackStack.Backtrack(
- this, input, mymatch, new Integer(i + 1)));
+ boolean stackPushed = false;
+ if (i + 1 < options.size ())
+ {
+ tryMatch.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input, mymatch,
+ i + 1));
stackPushed = true;
- }
- boolean b = tk.match(input, tryMatch);
- if (b) {
- return tryMatch;
}
- if (stackPushed) tryMatch.backtrackStack.pop();
+ if (tk.match (input, tryMatch))
+ {
+ return tryMatch;
+ }
+ if (stackPushed)
+ tryMatch.backtrackStack.pop ();
}
- return null;
+ return null;
}
- boolean returnsFixedLengthMatches() { return matchesOneChar; }
+ boolean returnsFixedLengthMatches ()
+ {
+ return matchesOneChar;
+ }
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
- if (!matchesOneChar)
- return super.findFixedLengthMatches(input, mymatch, max);
- int numRepeats = 0;
- REMatch m = (REMatch) mymatch.clone();
- REToken tk = (REToken) this.clone();
- tk.chain(null);
- while (true) {
- if (numRepeats >= max) break;
- m = tk.findMatch(input, m);
- if (m == null) break;
- numRepeats++;
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
+ if (!matchesOneChar)
+ return super.findFixedLengthMatches (input, mymatch, max);
+ int numRepeats = 0;
+ REMatch m = (REMatch) mymatch.clone ();
+ REToken tk = (REToken) this.clone ();
+ tk.chain (null);
+ while (true)
+ {
+ if (numRepeats >= max)
+ break;
+ m = tk.findMatch (input, m);
+ if (m == null)
+ break;
+ numRepeats++;
}
- return numRepeats;
+ return numRepeats;
}
- void dump(StringBuffer os) {
- os.append(negative ? "[^" : "(?:");
- for (int i = 0; i < options.size(); i++) {
- if (!negative && (i > 0)) os.append('|');
- ((REToken) options.elementAt(i)).dumpAll(os);
- }
- os.append(negative ? ']' : ')');
- }
+ void dump (CPStringBuilder os)
+ {
+ os.append (negative ? "[^" : "(?:");
+ for (int i = 0; i < options.size (); i++)
+ {
+ if (!negative && (i > 0))
+ os.append ('|');
+ options.get (i).dumpAll (os);
+ }
+ os.append (negative ? ']' : ')');
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenPOSIX.java b/libjava/classpath/gnu/java/util/regex/RETokenPOSIX.java
index 0729895..2c80957 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenPOSIX.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenPOSIX.java
@@ -38,130 +38,158 @@ exception statement from your version. */
package gnu.java.util.regex;
-final class RETokenPOSIX extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenPOSIX extends REToken
+{
int type;
boolean insens;
boolean negated;
- static final int ALNUM = 0;
- static final int ALPHA = 1;
- static final int BLANK = 2;
- static final int CNTRL = 3;
- static final int DIGIT = 4;
- static final int GRAPH = 5;
- static final int LOWER = 6;
- static final int PRINT = 7;
- static final int PUNCT = 8;
- static final int SPACE = 9;
- static final int UPPER = 10;
+ static final int ALNUM = 0;
+ static final int ALPHA = 1;
+ static final int BLANK = 2;
+ static final int CNTRL = 3;
+ static final int DIGIT = 4;
+ static final int GRAPH = 5;
+ static final int LOWER = 6;
+ static final int PRINT = 7;
+ static final int PUNCT = 8;
+ static final int SPACE = 9;
+ static final int UPPER = 10;
static final int XDIGIT = 11;
// Array indices correspond to constants defined above.
- static final String[] s_nameTable = {
+ static final String[] s_nameTable = {
"alnum", "alpha", "blank", "cntrl", "digit", "graph", "lower",
- "print", "punct", "space", "upper", "xdigit"
+ "print", "punct", "space", "upper", "xdigit"
};
// The RE constructor uses this to look up the constant for a string
- static int intValue(String key) {
- for (int i = 0; i < s_nameTable.length; i++) {
- if (s_nameTable[i].equals(key)) return i;
- }
+ static int intValue (String key)
+ {
+ for (int i = 0; i < s_nameTable.length; i++)
+ {
+ if (s_nameTable[i].equals (key))
+ return i;
+ }
return -1;
}
- RETokenPOSIX(int subIndex, int type, boolean insens, boolean negated) {
- super(subIndex);
+ RETokenPOSIX (int subIndex, int type, boolean insens, boolean negated)
+ {
+ super (subIndex);
this.type = type;
this.insens = insens;
this.negated = negated;
}
- int getMinimumLength() {
- return 1;
- }
+ int getMinimumLength ()
+ {
+ return 1;
+ }
- int getMaximumLength() {
- return 1;
- }
+ int getMaximumLength ()
+ {
+ return 1;
+ }
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- char ch = input.charAt(mymatch.index);
- boolean retval = matchOneChar(ch);
- if (retval) {
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ char ch = input.charAt (mymatch.index);
+ boolean retval = matchOneChar (ch);
+ if (retval)
+ {
++mymatch.index;
return mymatch;
}
- return null;
- }
+ return null;
+ }
- boolean matchOneChar(char ch) {
+ boolean matchOneChar (char ch)
+ {
if (ch == CharIndexed.OUT_OF_BOUNDS)
return false;
-
+
boolean retval = false;
- switch (type) {
- case ALNUM:
+ switch (type)
+ {
+ case ALNUM:
// Note that there is some debate over whether '_' should be included
- retval = Character.isLetterOrDigit(ch) || (ch == '_');
+ retval = Character.isLetterOrDigit (ch) || (ch == '_');
break;
- case ALPHA:
- retval = Character.isLetter(ch);
+ case ALPHA:
+ retval = Character.isLetter (ch);
break;
- case BLANK:
+ case BLANK:
retval = ((ch == ' ') || (ch == '\t'));
break;
- case CNTRL:
- retval = Character.isISOControl(ch);
+ case CNTRL:
+ retval = Character.isISOControl (ch);
break;
- case DIGIT:
- retval = Character.isDigit(ch);
+ case DIGIT:
+ retval = Character.isDigit (ch);
break;
- case GRAPH:
- retval = (!(Character.isWhitespace(ch) || Character.isISOControl(ch)));
+ case GRAPH:
+ retval =
+ (!(Character.isWhitespace (ch) || Character.isISOControl (ch)));
break;
- case LOWER:
- retval = ((insens && Character.isLetter(ch)) || Character.isLowerCase(ch));
+ case LOWER:
+ retval = ((insens && Character.isLetter (ch))
+ || Character.isLowerCase (ch));
break;
- case PRINT:
- retval = (!(Character.isWhitespace(ch) || Character.isISOControl(ch)))
- || (ch == ' ');
+ case PRINT:
+ retval =
+ (!(Character.isWhitespace (ch) || Character.isISOControl (ch)))
+ || (ch == ' ');
break;
- case PUNCT:
+ case PUNCT:
// This feels sloppy, especially for non-U.S. locales.
- retval = ("`~!@#$%^&*()-_=+[]{}\\|;:'\"/?,.<>".indexOf(ch)!=-1);
+ retval = ("`~!@#$%^&*()-_=+[]{}\\|;:'\"/?,.<>".indexOf (ch) != -1);
break;
- case SPACE:
- retval = Character.isWhitespace(ch);
+ case SPACE:
+ retval = Character.isWhitespace (ch);
break;
- case UPPER:
- retval = ((insens && Character.isLetter(ch)) || Character.isUpperCase(ch));
+ case UPPER:
+ retval = ((insens && Character.isLetter (ch))
+ || Character.isUpperCase (ch));
break;
- case XDIGIT:
- retval = (Character.isDigit(ch) || ("abcdefABCDEF".indexOf(ch)!=-1));
+ case XDIGIT:
+ retval = (Character.isDigit (ch)
+ || ("abcdefABCDEF".indexOf (ch) != -1));
break;
- }
+ }
- if (negated) retval = !retval;
+ if (negated)
+ retval = !retval;
return retval;
}
- boolean returnsFixedLengthMatches() { return true; }
+ boolean returnsFixedLengthMatches ()
+ {
+ return true;
+ }
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
- int index = mymatch.index;
- int numRepeats = 0;
- while (true) {
- if (numRepeats >= max) break;
- char ch = input.charAt(index++);
- if (! matchOneChar(ch)) break;
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
+ int index = mymatch.index;
+ int numRepeats = 0;
+ while (true)
+ {
+ if (numRepeats >= max)
+ break;
+ char ch = input.charAt (index++);
+ if (!matchOneChar (ch))
+ break;
numRepeats++;
}
- return numRepeats;
+ return numRepeats;
}
- void dump(StringBuffer os) {
- if (negated) os.append('^');
- os.append("[:" + s_nameTable[type] + ":]");
+ void dump (CPStringBuilder os)
+ {
+ if (negated)
+ os.append ('^');
+ os.append ("[:" + s_nameTable[type] + ":]");
}
}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenRange.java b/libjava/classpath/gnu/java/util/regex/RETokenRange.java
index 8a65f77..2597d4d 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenRange.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenRange.java
@@ -37,64 +37,83 @@ exception statement from your version. */
package gnu.java.util.regex;
-final class RETokenRange extends REToken {
+import gnu.java.lang.CPStringBuilder;
+
+final class RETokenRange extends REToken
+{
private char lo, hi;
private boolean insens;
- RETokenRange(int subIndex, char lo, char hi, boolean ins) {
- super(subIndex);
+ RETokenRange (int subIndex, char lo, char hi, boolean ins)
+ {
+ super (subIndex);
insens = ins;
this.lo = lo;
this.hi = hi;
}
- int getMinimumLength() {
+ int getMinimumLength ()
+ {
return 1;
}
- int getMaximumLength() {
+ int getMaximumLength ()
+ {
return 1;
}
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- char c = input.charAt(mymatch.index);
- if (matchOneChar(c)) {
- ++mymatch.index;
- return mymatch;
- }
- return null;
- }
-
- boolean matchOneChar(char c) {
- if (c == CharIndexed.OUT_OF_BOUNDS) return false;
- boolean matches = (c >= lo) && (c <= hi);
- if (! matches && insens) {
- char c1 = toLowerCase(c, unicodeAware);
- matches = (c1 >= lo) && (c1 <= hi);
- if (!matches) {
- c1 = toUpperCase(c, unicodeAware);
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ char c = input.charAt (mymatch.index);
+ if (matchOneChar (c))
+ {
+ ++mymatch.index;
+ return mymatch;
+ }
+ return null;
+ }
+
+ boolean matchOneChar (char c)
+ {
+ if (c == CharIndexed.OUT_OF_BOUNDS)
+ return false;
+ boolean matches = (c >= lo) && (c <= hi);
+ if (!matches && insens)
+ {
+ char c1 = toLowerCase (c, unicodeAware);
+ matches = (c1 >= lo) && (c1 <= hi);
+ if (!matches)
+ {
+ c1 = toUpperCase (c, unicodeAware);
matches = (c1 >= lo) && (c1 <= hi);
}
- }
- return matches;
- }
-
- boolean returnsFixedLengthMatches() { return true; }
-
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
- int index = mymatch.index;
- int numRepeats = 0;
- while (true) {
- if (numRepeats >= max) break;
- char ch = input.charAt(index++);
- if (! matchOneChar(ch)) break;
- numRepeats++;
- }
- return numRepeats;
- }
-
- void dump(StringBuffer os) {
- os.append(lo).append('-').append(hi);
+ }
+ return matches;
+ }
+
+ boolean returnsFixedLengthMatches ()
+ {
+ return true;
+ }
+
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
+ int index = mymatch.index;
+ int numRepeats = 0;
+ while (true)
+ {
+ if (numRepeats >= max)
+ break;
+ char ch = input.charAt (index++);
+ if (!matchOneChar (ch))
+ break;
+ numRepeats++;
+ }
+ return numRepeats;
}
-}
+ void dump (CPStringBuilder os)
+ {
+ os.append (lo).append ('-').append (hi);
+ }
+}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java b/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java
index 7f5e562..0ba880d 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenRepeated.java
@@ -38,493 +38,602 @@ exception statement from your version. */
package gnu.java.util.regex;
-import java.util.ArrayList;
-
-final class RETokenRepeated extends REToken {
- private REToken token;
- private int min,max;
- private boolean stingy;
- private boolean possessive;
- private int tokenFixedLength;
-
- RETokenRepeated(int subIndex, REToken token, int min, int max) {
- super(subIndex);
- this.token = token;
- this.min = min;
- this.max = max;
- if (token.returnsFixedLengthMatches()) {
- tokenFixedLength = token.getMaximumLength();
- }
- else {
- tokenFixedLength = -1;
- }
- }
+import gnu.java.lang.CPStringBuilder;
+
+import java.util.ArrayDeque;
+import java.util.Deque;
+
+final class RETokenRepeated extends REToken
+{
+ private REToken token;
+ private int min, max;
+ private boolean stingy;
+ private boolean possessive;
+ private int tokenFixedLength;
+
+ RETokenRepeated (int subIndex, REToken token, int min, int max)
+ {
+ super (subIndex);
+ this.token = token;
+ this.min = min;
+ this.max = max;
+ if (token.returnsFixedLengthMatches ())
+ {
+ tokenFixedLength = token.getMaximumLength ();
+ }
+ else
+ {
+ tokenFixedLength = -1;
+ }
+ }
/** Sets the minimal matching mode to true. */
- void makeStingy() {
- stingy = true;
- }
-
+ void makeStingy ()
+ {
+ stingy = true;
+ }
+
/** Queries if this token has minimal matching enabled. */
- boolean isStingy() {
- return stingy;
- }
+ boolean isStingy ()
+ {
+ return stingy;
+ }
/** Sets possessive matching mode to true. */
- void makePossessive() {
- possessive = true;
- }
+ void makePossessive ()
+ {
+ possessive = true;
+ }
/** Queries if this token has possessive matching enabled. */
- boolean isPossessive() {
- return possessive;
- }
-
+ boolean isPossessive ()
+ {
+ return possessive;
+ }
+
/**
* The minimum length of a repeated token is the minimum length
* of the token multiplied by the minimum number of times it must
* match.
*/
- int getMinimumLength() {
- return (min * token.getMinimumLength());
+ int getMinimumLength ()
+ {
+ return (min * token.getMinimumLength ());
+ }
+
+ int getMaximumLength ()
+ {
+ if (max == Integer.MAX_VALUE)
+ return Integer.MAX_VALUE;
+ int tmax = token.getMaximumLength ();
+ if (tmax == Integer.MAX_VALUE)
+ return tmax;
+ return (max * tmax);
+ }
+
+ // The comment "MUST make a clone" below means that some tests
+ // failed without doing clone(),
+
+ private static class DoablesFinder
+ {
+ private REToken tk;
+ private CharIndexed input;
+ private REMatch rematch;
+ private boolean findFirst;
+
+ private DoablesFinder (REToken tk, CharIndexed input, REMatch mymatch)
+ {
+ this.tk = tk;
+ this.input = input;
+ this.rematch = (REMatch) mymatch.clone (); // MUST make a clone
+ this.rematch.backtrackStack = new BacktrackStack ();
+ findFirst = true;
}
- int getMaximumLength() {
- if (max == Integer.MAX_VALUE) return Integer.MAX_VALUE;
- int tmax = token.getMaximumLength();
- if (tmax == Integer.MAX_VALUE) return tmax;
- return (max * tmax);
- }
-
- // The comment "MUST make a clone" below means that some tests
- // failed without doing clone(),
-
- private static class DoablesFinder {
- private REToken tk;
- private CharIndexed input;
- private REMatch rematch;
- private boolean findFirst;
-
- private DoablesFinder(REToken tk, CharIndexed input, REMatch mymatch) {
- this.tk = tk;
- this.input = input;
- this.rematch = (REMatch) mymatch.clone(); // MUST make a clone
- this.rematch.backtrackStack = new BacktrackStack();
- findFirst = true;
+ private REMatch find ()
+ {
+ int origin = rematch.index;
+ REMatch rem;
+ if (findFirst)
+ {
+ rem = tk.findMatch (input, rematch);
+ findFirst = false;
}
-
- private REMatch find() {
- int origin = rematch.index;
- REMatch rem;
- if (findFirst) {
- rem = tk.findMatch(input, rematch);
- findFirst = false;
- }
- else {
- while (true) {
- if (rematch.backtrackStack.empty()) {
- rem = null;
- break;
- }
- BacktrackStack.Backtrack bt = rematch.backtrackStack.pop();
- rem = bt.token.backtrack(bt.input, bt.match, bt.param);
- if (rem != null) break;
+ else
+ {
+ while (true)
+ {
+ if (rematch.backtrackStack.empty ())
+ {
+ rem = null;
+ break;
}
+ BacktrackStack.Backtrack bt = rematch.backtrackStack.pop ();
+ rem = bt.token.backtrack (bt.input, bt.match, bt.param);
+ if (rem != null)
+ break;
}
- if (rem == null) return null;
- if (rem.index == origin) rem.empty = true;
- rematch = rem;
- return (REMatch) rem.clone(); // MUST make a clone.
- }
-
- boolean noMore() {
- return rematch.backtrackStack.empty();
- }
- }
-
- REMatch findMatch(CharIndexed input, REMatch mymatch) {
- if (tokenFixedLength >= 0) return findMatchFixedLength(input, mymatch);
- BacktrackStack stack = new BacktrackStack();
- stack.push(new StackedInfo(input, 0, mymatch, null, null));
- return findMatch(stack);
- }
-
- REMatch backtrack(CharIndexed input, REMatch mymatch, Object param) {
- if (tokenFixedLength >= 0) return backtrackFixedLength(input, mymatch, param);
- return findMatch((BacktrackStack)param);
- }
-
- private static class StackedInfo extends BacktrackStack.Backtrack {
- int numRepeats;
- int[] visited;
- DoablesFinder finder;
- StackedInfo(CharIndexed input, int numRepeats, REMatch match,
- int[] visited, DoablesFinder finder) {
- super(null, input, match, null);
- this.numRepeats = numRepeats;
- this.visited = visited;
- this.finder = finder;
}
+ if (rem == null)
+ return null;
+ if (rem.index == origin)
+ rem.empty = true;
+ rematch = rem;
+ return (REMatch) rem.clone (); // MUST make a clone.
}
- private static class FindMatchControlStack extends ArrayList {
- private void push(FindMatchControl control) {
- add(control);
- }
- private FindMatchControl pop() {
- return (FindMatchControl)remove(size()-1);
- }
- private boolean empty() {
- return isEmpty();
- }
+ boolean noMore ()
+ {
+ return rematch.backtrackStack.empty ();
}
-
- private static class FindMatchControl {
- DoablesFinder finder;
- FindMatchControl(DoablesFinder finder) {
- this.finder = finder;
- }
+ }
+
+ REMatch findMatch (CharIndexed input, REMatch mymatch)
+ {
+ if (tokenFixedLength >= 0)
+ return findMatchFixedLength (input, mymatch);
+ BacktrackStack stack = new BacktrackStack ();
+ stack.push (new StackedInfo (input, 0, mymatch, null, null));
+ return findMatch (stack);
+ }
+
+ REMatch backtrack (CharIndexed input, REMatch mymatch, Object param)
+ {
+ if (tokenFixedLength >= 0)
+ return backtrackFixedLength (input, mymatch, param);
+ return findMatch ((BacktrackStack) param);
+ }
+
+ private static class StackedInfo extends BacktrackStack.Backtrack
+ {
+ int numRepeats;
+ int[] visited;
+ DoablesFinder finder;
+ StackedInfo (CharIndexed input, int numRepeats, REMatch match,
+ int[]visited, DoablesFinder finder)
+ {
+ super (null, input, match, null);
+ this.numRepeats = numRepeats;
+ this.visited = visited;
+ this.finder = finder;
}
-
- private REMatch findMatch(BacktrackStack stack) {
- return findMatch(stack, new FindMatchControlStack());
+ }
+
+ private static class FindMatchControl
+ {
+ DoablesFinder finder;
+ FindMatchControl (DoablesFinder finder)
+ {
+ this.finder = finder;
}
-
- private REMatch findMatch(BacktrackStack stack,
- FindMatchControlStack controlStack) {
- REMatch result = null;
- StackedInfo si = null;
- CharIndexed input = null;
- int numRepeats = 0;
- REMatch mymatch = null;
- int[] visited = null;
- DoablesFinder finder = null;
-
- // Avoid using recursive calls because a match can be very long.
-
- // This is the first entry point of this method.
- // If you want to call this method recursively and you need the
- // result returned, save necessary information in a FindMatchControl
- // object and push it to controlStack, then continue from this point.
- // You can check the result after exiting MAIN_LOOP.
- MAIN_LOOP0:
- while (true) {
+ }
+
+ private REMatch findMatch (BacktrackStack stack)
+ {
+ return findMatch (stack, new ArrayDeque < FindMatchControl > ());
+ }
+
+ private REMatch findMatch (BacktrackStack stack,
+ Deque < FindMatchControl > controlStack)
+ {
+ REMatch result = null;
+ StackedInfo si = null;
+ CharIndexed input = null;
+ int numRepeats = 0;
+ REMatch mymatch = null;
+ int[] visited = null;
+ DoablesFinder finder = null;
+
+ // Avoid using recursive calls because a match can be very long.
+
+ // This is the first entry point of this method.
+ // If you want to call this method recursively and you need the
+ // result returned, save necessary information in a FindMatchControl
+ // object and push it to controlStack, then continue from this point.
+ // You can check the result after exiting MAIN_LOOP.
+ MAIN_LOOP0:
+ while (true)
+ {
// This is the second entry point of this method.
// If you want to call this method recursively but you do not need the
// result returned, just continue from this point.
- MAIN_LOOP:
- while (true) {
-
- if (stack.empty()) break MAIN_LOOP;
- si = (StackedInfo)(stack.peek());
- input = si.input;
- numRepeats = si.numRepeats;
- mymatch = si.match;
- visited = si.visited;
- finder = si.finder;
-
- if (mymatch.backtrackStack == null)
- mymatch.backtrackStack = new BacktrackStack();
-
- if (numRepeats >= max) {
- stack.pop();
- REMatch m1 = matchRest(input, mymatch);
- if (m1 != null) {
- if (! stack.empty()) {
- m1.backtrackStack.push(new BacktrackStack.Backtrack(
- this, input, mymatch, stack));
- }
- result = m1;
+ MAIN_LOOP:
+ while (true)
+ {
+
+ if (stack.empty ())
+ break MAIN_LOOP;
+ si = (StackedInfo) (stack.peek ());
+ input = si.input;
+ numRepeats = si.numRepeats;
+ mymatch = si.match;
+ visited = si.visited;
+ finder = si.finder;
+
+ if (mymatch.backtrackStack == null)
+ mymatch.backtrackStack = new BacktrackStack ();
+
+ if (numRepeats >= max)
+ {
+ stack.pop ();
+ REMatch m1 = matchRest (input, mymatch);
+ if (m1 != null)
+ {
+ if (!stack.empty ())
+ {
+ m1.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input,
+ mymatch, stack));
+ }
+ result = m1;
+ break MAIN_LOOP;
+ }
+ if (stingy)
+ {
+ continue MAIN_LOOP;
+ }
break MAIN_LOOP;
- }
- if (stingy) {
- continue MAIN_LOOP;
- }
- break MAIN_LOOP;
- }
-
- if (finder == null) {
- finder = new DoablesFinder(token, input, mymatch);
- si.finder = finder;
- }
-
- if (numRepeats < min) {
- while (true) {
- REMatch doable = finder.find();
- if (doable == null) {
- if (stack.empty()) return null;
- stack.pop();
+ }
+
+ if (finder == null)
+ {
+ finder = new DoablesFinder (token, input, mymatch);
+ si.finder = finder;
+ }
+
+ if (numRepeats < min)
+ {
+ while (true)
+ {
+ REMatch doable = finder.find ();
+ if (doable == null)
+ {
+ if (stack.empty ())
+ return null;
+ stack.pop ();
+ continue MAIN_LOOP;
+ }
+ if (finder.noMore ())
+ stack.pop ();
+ int newNumRepeats = (doable.empty ? min : numRepeats + 1);
+ stack.
+ push (new
+ StackedInfo (input, newNumRepeats, doable,
+ visited, null));
continue MAIN_LOOP;
- }
- if (finder.noMore()) stack.pop();
- int newNumRepeats = (doable.empty ? min : numRepeats + 1);
- stack.push(new StackedInfo(
- input, newNumRepeats, doable, visited, null));
- continue MAIN_LOOP;
- }
- }
-
- if (visited == null) visited = initVisited();
-
- if (stingy) {
- REMatch nextMatch = finder.find();
- if (nextMatch != null && !nextMatch.empty) {
- stack.push(new StackedInfo(
- input, numRepeats + 1, nextMatch, visited, null));
- }
- else {
- stack.pop();
- }
- REMatch m1 = matchRest(input, mymatch);
- if (m1 != null) {
- if (!stack.empty()) {
- m1.backtrackStack.push(new BacktrackStack.Backtrack(
- this, input, mymatch, stack));
- }
+ }
+ }
+
+ if (visited == null)
+ visited = initVisited ();
+
+ if (stingy)
+ {
+ REMatch nextMatch = finder.find ();
+ if (nextMatch != null && !nextMatch.empty)
+ {
+ stack.
+ push (new
+ StackedInfo (input, numRepeats + 1, nextMatch,
+ visited, null));
+ }
+ else
+ {
+ stack.pop ();
+ }
+ REMatch m1 = matchRest (input, mymatch);
+ if (m1 != null)
+ {
+ if (!stack.empty ())
+ {
+ m1.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input,
+ mymatch, stack));
+ }
+ result = m1;
+ break MAIN_LOOP;
+ }
+ else
+ {
+ continue MAIN_LOOP;
+ }
+ }
+
+ visited = addVisited (mymatch.index, visited);
+
+ TryAnotherResult taresult =
+ tryAnother (stack, input, mymatch, numRepeats, finder, visited);
+ visited = taresult.visited;
+ switch (taresult.status)
+ {
+ case TryAnotherResult.TRY_FURTHER:
+ controlStack.push (new FindMatchControl (finder));
+ continue MAIN_LOOP0;
+ case TryAnotherResult.RESULT_FOUND:
+ result = taresult.result;
+ break MAIN_LOOP;
+ }
+
+ if (!stack.empty ())
+ {
+ stack.pop ();
+ }
+ if (possessive)
+ {
+ stack.clear ();
+ }
+ REMatch m1 = matchRest (input, mymatch);
+ if (m1 != null)
+ {
+ if (!stack.empty ())
+ {
+ m1.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input, mymatch,
+ stack));
+ }
result = m1;
break MAIN_LOOP;
- }
- else {
- continue MAIN_LOOP;
- }
- }
-
- visited = addVisited(mymatch.index, visited);
-
- TryAnotherResult taresult = tryAnother(stack, input, mymatch, numRepeats, finder, visited);
- visited = taresult.visited;
- switch (taresult.status) {
- case TryAnotherResult.TRY_FURTHER:
- controlStack.push(new FindMatchControl(
- finder));
- continue MAIN_LOOP0;
- case TryAnotherResult.RESULT_FOUND:
- result = taresult.result;
- break MAIN_LOOP;
- }
-
- if (!stack.empty()) {
- stack.pop();
- }
- if (possessive) {
- stack.clear();
- }
- REMatch m1 = matchRest(input, mymatch);
- if (m1 != null) {
- if (! stack.empty()) {
- m1.backtrackStack.push(new BacktrackStack.Backtrack(
- this, input, mymatch, stack));
- }
- result = m1;
- break MAIN_LOOP;
- }
+ }
- } // MAIN_LOOP
+ } // MAIN_LOOP
- if (controlStack.empty()) return result;
- FindMatchControl control = controlStack.pop();
- if (possessive) {
+ if (controlStack.isEmpty ())
+ return result;
+ FindMatchControl control = controlStack.pop ();
+ if (possessive)
+ {
return result;
- }
- if (result != null) {
- result.backtrackStack.push(new BacktrackStack.Backtrack(
- this, input, mymatch, stack));
+ }
+ if (result != null)
+ {
+ result.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input, mymatch,
+ stack));
return result;
- }
+ }
finder = control.finder;
- TryAnotherResult taresult = tryAnother(stack, input, mymatch, numRepeats, finder, visited);
+ TryAnotherResult taresult =
+ tryAnother (stack, input, mymatch, numRepeats, finder, visited);
visited = taresult.visited;
- switch (taresult.status) {
- case TryAnotherResult.TRY_FURTHER:
- controlStack.push(new FindMatchControl(
- finder));
- continue MAIN_LOOP0;
- case TryAnotherResult.RESULT_FOUND:
- return taresult.result;
- }
+ switch (taresult.status)
+ {
+ case TryAnotherResult.TRY_FURTHER:
+ controlStack.push (new FindMatchControl (finder));
+ continue MAIN_LOOP0;
+ case TryAnotherResult.RESULT_FOUND:
+ return taresult.result;
+ }
continue MAIN_LOOP0;
- } // MAIN_LOOP0
- }
+ } // MAIN_LOOP0
+ }
- private static class TryAnotherResult {
- REMatch result;
- int status;
- static final int RESULT_FOUND = 1;
- static final int TRY_FURTHER = 2;
- static final int NOTHING_FOUND = 3;
- int[] visited;
- }
+ private static class TryAnotherResult
+ {
+ REMatch result;
+ int status;
+ static final int RESULT_FOUND = 1;
+ static final int TRY_FURTHER = 2;
+ static final int NOTHING_FOUND = 3;
+ int[] visited;
+ }
- private TryAnotherResult tryAnother(BacktrackStack stack,
- CharIndexed input, REMatch mymatch, int numRepeats,
- DoablesFinder finder, int[] visited) {
+ private TryAnotherResult tryAnother (BacktrackStack stack,
+ CharIndexed input, REMatch mymatch,
+ int numRepeats, DoablesFinder finder,
+ int[]visited)
+ {
- TryAnotherResult taresult = new TryAnotherResult();
- taresult.visited = visited;
+ TryAnotherResult taresult = new TryAnotherResult ();
+ taresult.visited = visited;
- DO_THIS:
- {
+ DO_THIS:
+ {
- boolean emptyMatchFound = false;
+ boolean emptyMatchFound = false;
- DO_ONE_DOABLE:
- while (true) {
+ DO_ONE_DOABLE:
+ while (true)
+ {
- REMatch doable = finder.find();
- if (doable == null) {
- break DO_THIS;
+ REMatch doable = finder.find ();
+ if (doable == null)
+ {
+ break DO_THIS;
}
- if (doable.empty) emptyMatchFound = true;
-
- if (!emptyMatchFound) {
- int n = doable.index;
- if (visitedContains(n, visited)) {
- continue DO_ONE_DOABLE;
+ if (doable.empty)
+ emptyMatchFound = true;
+
+ if (!emptyMatchFound)
+ {
+ int n = doable.index;
+ if (visitedContains (n, visited))
+ {
+ continue DO_ONE_DOABLE;
}
- visited = addVisited(n, visited);
- stack.push(new StackedInfo(
- input, numRepeats + 1, doable, visited, null));
- taresult.visited = visited;
- taresult.status = TryAnotherResult.TRY_FURTHER;
- return taresult;
+ visited = addVisited (n, visited);
+ stack.
+ push (new
+ StackedInfo (input, numRepeats + 1, doable, visited,
+ null));
+ taresult.visited = visited;
+ taresult.status = TryAnotherResult.TRY_FURTHER;
+ return taresult;
}
- else {
- REMatch m1 = matchRest(input, doable);
- if (possessive) {
- taresult.result = m1;
- taresult.status = TryAnotherResult.RESULT_FOUND;
- return taresult;
+ else
+ {
+ REMatch m1 = matchRest (input, doable);
+ if (possessive)
+ {
+ taresult.result = m1;
+ taresult.status = TryAnotherResult.RESULT_FOUND;
+ return taresult;
}
- if (m1 != null) {
- if (! stack.empty()) {
- m1.backtrackStack.push(new BacktrackStack.Backtrack(
- this, input, mymatch, stack));
+ if (m1 != null)
+ {
+ if (!stack.empty ())
+ {
+ m1.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input, mymatch,
+ stack));
}
- taresult.result = m1;
- taresult.status = TryAnotherResult.RESULT_FOUND;
- return taresult;
+ taresult.result = m1;
+ taresult.status = TryAnotherResult.RESULT_FOUND;
+ return taresult;
}
}
- } // DO_ONE_DOABLE
-
- } // DO_THIS
-
- taresult.status = TryAnotherResult.NOTHING_FOUND;
- return taresult;
-
- }
-
- boolean match(CharIndexed input, REMatch mymatch) {
- setHitEnd(input, mymatch);
- REMatch m1 = findMatch(input, mymatch);
- if (m1 != null) {
- mymatch.assignFrom(m1);
- return true;
- }
- return false;
- }
-
- // Array visited is an array of character positions we have already
- // visited. visited[0] is used to store the effective length of the
- // array.
- private static int[] initVisited() {
- int[] visited = new int[32];
- visited[0] = 0;
- return visited;
- }
-
- private static boolean visitedContains(int n, int[] visited) {
- // Experience tells that for a small array like this,
- // simple linear search is faster than binary search.
- for (int i = 1; i < visited[0]; i++) {
- if (n == visited[i]) return true;
- }
- return false;
- }
-
- private static int[] addVisited(int n, int[] visited) {
- if (visitedContains(n, visited)) return visited;
- if (visited[0] >= visited.length - 1) {
- int[] newvisited = new int[visited.length + 32];
- System.arraycopy(visited, 0, newvisited, 0, visited.length);
- visited = newvisited;
- }
- visited[0]++;
- visited[visited[0]] = n;
- return visited;
- }
-
- private REMatch matchRest(CharIndexed input, final REMatch newMatch) {
- if (next(input, newMatch)) {
- return newMatch;
- }
- return null;
- }
-
- private REMatch findMatchFixedLength(CharIndexed input, REMatch mymatch) {
- if (mymatch.backtrackStack == null)
- mymatch.backtrackStack = new BacktrackStack();
- int numRepeats = token.findFixedLengthMatches(input, (REMatch)mymatch.clone(), max);
- if (numRepeats == Integer.MAX_VALUE) numRepeats = min;
- int count = numRepeats - min + 1;
- if (count <= 0) return null;
- int index = 0;
- if (!stingy) index = mymatch.index + (tokenFixedLength * numRepeats);
- else index = mymatch.index + (tokenFixedLength * min);
- return findMatchFixedLength(input, mymatch, index, count);
- }
-
- private REMatch backtrackFixedLength(CharIndexed input, REMatch mymatch,
- Object param) {
- int[] params = (int[])param;
- int index = params[0];
- int count = params[1];
- return findMatchFixedLength(input, mymatch, index, count);
- }
-
- private REMatch findMatchFixedLength(CharIndexed input, REMatch mymatch,
- int index, int count) {
- REMatch tryMatch = (REMatch) mymatch.clone();
- while (true) {
- tryMatch.index = index;
- REMatch m = matchRest(input, tryMatch);
- count--;
- if (stingy) index += tokenFixedLength;
- else index -= tokenFixedLength;
- if (possessive) return m;
- if (m != null) {
- if (count > 0) {
- m.backtrackStack.push(new BacktrackStack.Backtrack(
- this, input, mymatch,
- new int[] {index, count}));
- }
- return m;
- }
- if (count <= 0) return null;
- }
- }
-
- void dump(StringBuffer os) {
- os.append("(?:");
- token.dumpAll(os);
- os.append(')');
- if ((max == Integer.MAX_VALUE) && (min <= 1))
- os.append( (min == 0) ? '*' : '+' );
- else if ((min == 0) && (max == 1))
- os.append('?');
- else {
- os.append('{').append(min);
- if (max > min) {
- os.append(',');
- if (max != Integer.MAX_VALUE) os.append(max);
- }
- os.append('}');
- }
- if (stingy) os.append('?');
- }
+ } // DO_ONE_DOABLE
+
+ } // DO_THIS
+
+ taresult.status = TryAnotherResult.NOTHING_FOUND;
+ return taresult;
+
+ }
+
+ boolean match (CharIndexed input, REMatch mymatch)
+ {
+ setHitEnd (input, mymatch);
+ REMatch m1 = findMatch (input, mymatch);
+ if (m1 != null)
+ {
+ mymatch.assignFrom (m1);
+ return true;
+ }
+ return false;
+ }
+
+ // Array visited is an array of character positions we have already
+ // visited. visited[0] is used to store the effective length of the
+ // array.
+ private static int[] initVisited ()
+ {
+ int[] visited = new int[32];
+ visited[0] = 0;
+ return visited;
+ }
+
+ private static boolean visitedContains (int n, int[]visited)
+ {
+ // Experience tells that for a small array like this,
+ // simple linear search is faster than binary search.
+ for (int i = 1; i < visited[0]; i++)
+ {
+ if (n == visited[i])
+ return true;
+ }
+ return false;
+ }
+
+ private static int[] addVisited (int n, int[]visited)
+ {
+ if (visitedContains (n, visited))
+ return visited;
+ if (visited[0] >= visited.length - 1)
+ {
+ int[] newvisited = new int[visited.length + 32];
+ System.arraycopy (visited, 0, newvisited, 0, visited.length);
+ visited = newvisited;
+ }
+ visited[0]++;
+ visited[visited[0]] = n;
+ return visited;
+ }
+
+ private REMatch matchRest (CharIndexed input, final REMatch newMatch)
+ {
+ if (next (input, newMatch))
+ {
+ return newMatch;
+ }
+ return null;
+ }
+
+ private REMatch findMatchFixedLength (CharIndexed input, REMatch mymatch)
+ {
+ if (mymatch.backtrackStack == null)
+ mymatch.backtrackStack = new BacktrackStack ();
+ int numRepeats =
+ token.findFixedLengthMatches (input, (REMatch) mymatch.clone (), max);
+ if (numRepeats == Integer.MAX_VALUE)
+ numRepeats = min;
+ int count = numRepeats - min + 1;
+ if (count <= 0)
+ return null;
+ int index = 0;
+ if (!stingy)
+ index = mymatch.index + (tokenFixedLength * numRepeats);
+ else
+ index = mymatch.index + (tokenFixedLength * min);
+ return findMatchFixedLength (input, mymatch, index, count);
+ }
+
+ private REMatch backtrackFixedLength (CharIndexed input, REMatch mymatch,
+ Object param)
+ {
+ int[] params = (int[]) param;
+ int index = params[0];
+ int count = params[1];
+ return findMatchFixedLength (input, mymatch, index, count);
+ }
+
+ private REMatch findMatchFixedLength (CharIndexed input, REMatch mymatch,
+ int index, int count)
+ {
+ REMatch tryMatch = (REMatch) mymatch.clone ();
+ while (true)
+ {
+ tryMatch.index = index;
+ REMatch m = matchRest (input, tryMatch);
+ count--;
+ if (stingy)
+ index += tokenFixedLength;
+ else
+ index -= tokenFixedLength;
+ if (possessive)
+ return m;
+ if (m != null)
+ {
+ if (count > 0)
+ {
+ m.backtrackStack.push (new BacktrackStack.
+ Backtrack (this, input, mymatch,
+ new int[]
+ {
+ index, count}));
+ }
+ return m;
+ }
+ if (count <= 0)
+ return null;
+ }
+ }
+
+ void dump (CPStringBuilder os)
+ {
+ os.append ("(?:");
+ token.dumpAll (os);
+ os.append (')');
+ if ((max == Integer.MAX_VALUE) && (min <= 1))
+ os.append ((min == 0) ? '*' : '+');
+ else if ((min == 0) && (max == 1))
+ os.append ('?');
+ else
+ {
+ os.append ('{').append (min);
+ if (max > min)
+ {
+ os.append (',');
+ if (max != Integer.MAX_VALUE)
+ os.append (max);
+ }
+ os.append ('}');
+ }
+ if (stingy)
+ os.append ('?');
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenStart.java b/libjava/classpath/gnu/java/util/regex/RETokenStart.java
index aa5f0c9..6a8d247 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenStart.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenStart.java
@@ -37,85 +37,117 @@ exception statement from your version. */
package gnu.java.util.regex;
-class RETokenStart extends REToken {
- private String newline; // matches after a newline
- private boolean check_java_line_terminators;
-
- RETokenStart(int subIndex, String newline) {
- super(subIndex);
- this.newline = newline;
- this.check_java_line_terminators = false;
- }
-
- RETokenStart(int subIndex, String newline, boolean b) {
- super(subIndex);
- this.newline = newline;
- this.check_java_line_terminators = b;
- }
-
- int getMaximumLength() {
- return 0;
- }
-
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- // charAt(index-n) may be unknown on a Reader/InputStream. FIXME
- // Match after a newline if in multiline mode
-
- if (check_java_line_terminators) {
- char ch = input.charAt(mymatch.index - 1);
- if (ch != CharIndexed.OUT_OF_BOUNDS) {
- if (ch == '\n') return mymatch;
- if (ch == '\r') {
- char ch1 = input.charAt(mymatch.index);
- if (ch1 != '\n') return mymatch;
- return null;
- }
- if (ch == '\u0085') return mymatch; // A next-line character
- if (ch == '\u2028') return mymatch; // A line-separator character
- if (ch == '\u2029') return mymatch; // A paragraph-separator character
- }
- }
-
- if (newline != null) {
- int len = newline.length();
- if (mymatch.offset >= len) {
- boolean found = true;
- char z;
- int i = 0; // position in REToken.newline
- char ch = input.charAt(mymatch.index - len);
- do {
- z = newline.charAt(i);
- if (ch != z) {
- found = false;
- break;
- }
- ++i;
- ch = input.charAt(mymatch.index - len + i);
- } while (i < len);
-
- if (found) return mymatch;
- }
- }
-
- // Don't match at all if REG_NOTBOL is set.
- if ((mymatch.eflags & RE.REG_NOTBOL) > 0) return null;
-
- if ((mymatch.eflags & RE.REG_ANCHORINDEX) > 0)
- return (mymatch.anchor == mymatch.offset) ?
- mymatch : null;
- else
- return ((mymatch.index == 0) && (mymatch.offset == 0)) ?
- mymatch : null;
- }
-
- boolean returnsFixedLengthmatches() { return true; }
-
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
- if (matchThis(input, mymatch) != null) return max;
- else return 0;
- }
-
- void dump(StringBuffer os) {
- os.append('^');
- }
+import gnu.java.lang.CPStringBuilder;
+
+class RETokenStart extends REToken
+{
+ private String newline; // matches after a newline
+ private boolean check_java_line_terminators;
+
+ RETokenStart (int subIndex, String newline)
+ {
+ super (subIndex);
+ this.newline = newline;
+ this.check_java_line_terminators = false;
+ }
+
+ RETokenStart (int subIndex, String newline, boolean b)
+ {
+ super (subIndex);
+ this.newline = newline;
+ this.check_java_line_terminators = b;
+ }
+
+ @Override
+ int getMaximumLength ()
+ {
+ return 0;
+ }
+
+ @Override
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ // charAt(index-n) may be unknown on a Reader/InputStream. FIXME
+ // Match after a newline if in multiline mode
+
+ if (check_java_line_terminators)
+ {
+ char ch = input.charAt (mymatch.index - 1);
+ if (ch != CharIndexed.OUT_OF_BOUNDS)
+ {
+ if (ch == '\n')
+ return mymatch;
+ if (ch == '\r')
+ {
+ char ch1 = input.charAt (mymatch.index);
+ if (ch1 != '\n')
+ return mymatch;
+ return null;
+ }
+ if (ch == '\u0085')
+ return mymatch; // A next-line character
+ if (ch == '\u2028')
+ return mymatch; // A line-separator character
+ if (ch == '\u2029')
+ return mymatch; // A paragraph-separator character
+ }
+ }
+
+ if (newline != null)
+ {
+ int len = newline.length ();
+ if (mymatch.offset >= len)
+ {
+ boolean found = true;
+ char z;
+ int i = 0; // position in REToken.newline
+ char ch = input.charAt (mymatch.index - len);
+ do
+ {
+ z = newline.charAt (i);
+ if (ch != z)
+ {
+ found = false;
+ break;
+ }
+ ++i;
+ ch = input.charAt (mymatch.index - len + i);
+ }
+ while (i < len);
+
+ if (found)
+ return mymatch;
+ }
+ }
+
+ // Don't match at all if REG_NOTBOL is set.
+ if ((mymatch.eflags & RE.REG_NOTBOL) > 0)
+ return null;
+
+ if ((mymatch.eflags & RE.REG_ANCHORINDEX) > 0)
+ return (mymatch.anchor == mymatch.offset) ? mymatch : null;
+ else
+ return ((mymatch.index == 0) && (mymatch.offset == 0)) ? mymatch : null;
+ }
+
+ @Override
+ boolean returnsFixedLengthMatches ()
+ {
+ return true;
+ }
+
+ @Override
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
+ if (matchThis (input, mymatch) != null)
+ return max;
+ else
+ return 0;
+ }
+
+ @Override
+ void dump (CPStringBuilder os)
+ {
+ os.append ('^');
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/RETokenWordBoundary.java b/libjava/classpath/gnu/java/util/regex/RETokenWordBoundary.java
index 538c6be..9f758b6 100644
--- a/libjava/classpath/gnu/java/util/regex/RETokenWordBoundary.java
+++ b/libjava/classpath/gnu/java/util/regex/RETokenWordBoundary.java
@@ -38,79 +38,104 @@ exception statement from your version. */
package gnu.java.util.regex;
+import gnu.java.lang.CPStringBuilder;
+
/**
* Represents a combination lookahead/lookbehind for POSIX [:alnum:].
*/
-final class RETokenWordBoundary extends REToken {
- private boolean negated;
- private int where;
- static final int BEGIN = 1;
- static final int END = 2;
-
- RETokenWordBoundary(int subIndex, int where, boolean negated) {
- super(subIndex);
- this.where = where;
- this.negated = negated;
- }
-
- int getMaximumLength() {
- return 0;
- }
-
-
- REMatch matchThis(CharIndexed input, REMatch mymatch) {
- // Word boundary means input[index-1] was a word character
- // and input[index] is not, or input[index] is a word character
- // and input[index-1] was not
- // In the string "one two three", these positions match:
- // |o|n|e| |t|w|o| |t|h|r|e|e|
- // ^ ^ ^ ^ ^ ^
- boolean after = false; // is current character a letter or digit?
- boolean before = false; // is previous character a letter or digit?
- char ch;
-
- // TODO: Also check REG_ANCHORINDEX vs. anchor
- if (((mymatch.eflags & RE.REG_ANCHORINDEX) != RE.REG_ANCHORINDEX)
- || (mymatch.offset + mymatch.index > mymatch.anchor)) {
- if ((ch = input.charAt(mymatch.index - 1)) != CharIndexed.OUT_OF_BOUNDS) {
- before = Character.isLetterOrDigit(ch) || (ch == '_');
- }
- }
-
- if ((ch = input.charAt(mymatch.index)) != CharIndexed.OUT_OF_BOUNDS) {
- after = Character.isLetterOrDigit(ch) || (ch == '_');
- }
-
- // if (before) and (!after), we're at end (\>)
- // if (after) and (!before), we're at beginning (\<)
- boolean doNext = false;
-
- if ((where & BEGIN) == BEGIN) {
- doNext = after && !before;
- }
- if ((where & END) == END) {
- doNext ^= before && !after;
- }
-
- if (negated) doNext = !doNext;
-
- return (doNext ? mymatch : null);
- }
-
- boolean returnsFixedLengthMatches() { return true; }
-
- int findFixedLengthMatches(CharIndexed input, REMatch mymatch, int max) {
- if(matchThis(input, mymatch) != null) return max;
- else return 0;
- }
-
- void dump(StringBuffer os) {
- if (where == (BEGIN | END)) {
- os.append( negated ? "\\B" : "\\b" );
- } else if (where == BEGIN) {
- os.append("\\<");
- } else {
- os.append("\\>");
- }
- }
+final class RETokenWordBoundary extends REToken
+{
+ private boolean negated;
+ private int where;
+ static final int BEGIN = 1;
+ static final int END = 2;
+
+ RETokenWordBoundary (int subIndex, int where, boolean negated)
+ {
+ super (subIndex);
+ this.where = where;
+ this.negated = negated;
+ }
+
+ int getMaximumLength ()
+ {
+ return 0;
+ }
+
+
+ REMatch matchThis (CharIndexed input, REMatch mymatch)
+ {
+ // Word boundary means input[index-1] was a word character
+ // and input[index] is not, or input[index] is a word character
+ // and input[index-1] was not
+ // In the string "one two three", these positions match:
+ // |o|n|e| |t|w|o| |t|h|r|e|e|
+ // ^ ^ ^ ^ ^ ^
+ boolean after = false; // is current character a letter or digit?
+ boolean before = false; // is previous character a letter or digit?
+ char ch;
+
+ // TODO: Also check REG_ANCHORINDEX vs. anchor
+ if (((mymatch.eflags & RE.REG_ANCHORINDEX) != RE.REG_ANCHORINDEX)
+ || (mymatch.offset + mymatch.index > mymatch.anchor))
+ {
+ if ((ch =
+ input.charAt (mymatch.index - 1)) != CharIndexed.OUT_OF_BOUNDS)
+ {
+ before = Character.isLetterOrDigit (ch) || (ch == '_');
+ }
+ }
+
+ if ((ch = input.charAt (mymatch.index)) != CharIndexed.OUT_OF_BOUNDS)
+ {
+ after = Character.isLetterOrDigit (ch) || (ch == '_');
+ }
+
+ // if (before) and (!after), we're at end (\>)
+ // if (after) and (!before), we're at beginning (\<)
+ boolean doNext = false;
+
+ if ((where & BEGIN) == BEGIN)
+ {
+ doNext = after && !before;
+ }
+ if ((where & END) == END)
+ {
+ doNext ^= before && !after;
+ }
+
+ if (negated)
+ doNext = !doNext;
+
+ return (doNext ? mymatch : null);
+ }
+
+ boolean returnsFixedLengthMatches ()
+ {
+ return true;
+ }
+
+ int findFixedLengthMatches (CharIndexed input, REMatch mymatch, int max)
+ {
+ if (matchThis (input, mymatch) != null)
+ return max;
+ else
+ return 0;
+ }
+
+ void dump (CPStringBuilder os)
+ {
+ if (where == (BEGIN | END))
+ {
+ os.append (negated ? "\\B" : "\\b");
+ }
+ else if (where == BEGIN)
+ {
+ os.append ("\\<");
+ }
+ else
+ {
+ os.append ("\\>");
+ }
+ }
}
diff --git a/libjava/classpath/gnu/java/util/regex/UncheckedRE.java b/libjava/classpath/gnu/java/util/regex/UncheckedRE.java
index 73a67c6..5f8c749 100644
--- a/libjava/classpath/gnu/java/util/regex/UncheckedRE.java
+++ b/libjava/classpath/gnu/java/util/regex/UncheckedRE.java
@@ -55,7 +55,8 @@ package gnu.java.util.regex;
* @since gnu.regexp 1.1.4
*/
-public final class UncheckedRE extends RE {
+public final class UncheckedRE extends RE
+{
/**
* Constructs a regular expression pattern buffer without any compilation
* flags set, and using the default syntax (RESyntax.RE_SYNTAX_PERL5).
@@ -66,8 +67,9 @@ public final class UncheckedRE extends RE {
* @exception RuntimeException The input pattern could not be parsed.
* @exception NullPointerException The pattern was null.
*/
- public UncheckedRE(Object pattern) {
- this(pattern,0,RESyntax.RE_SYNTAX_PERL5);
+ public UncheckedRE (Object pattern)
+ {
+ this (pattern, 0, RESyntax.RE_SYNTAX_PERL5);
}
/**
@@ -81,8 +83,9 @@ public final class UncheckedRE extends RE {
* @exception RuntimeException The input pattern could not be parsed.
* @exception NullPointerException The pattern was null.
*/
- public UncheckedRE(Object pattern, int cflags) {
- this(pattern,cflags,RESyntax.RE_SYNTAX_PERL5);
+ public UncheckedRE (Object pattern, int cflags)
+ {
+ this (pattern, cflags, RESyntax.RE_SYNTAX_PERL5);
}
/**
@@ -97,13 +100,15 @@ public final class UncheckedRE extends RE {
* @exception RuntimeException The input pattern could not be parsed.
* @exception NullPointerException The pattern was null.
*/
- public UncheckedRE(Object pattern, int cflags, RESyntax syntax) {
- try {
- initialize(pattern,cflags,syntax,0,0);
- } catch (REException e) {
- throw new RuntimeException(e.getMessage());
- }
+ public UncheckedRE (Object pattern, int cflags, RESyntax syntax)
+ {
+ try
+ {
+ initialize (pattern, cflags, syntax, 0, 0);
+ }
+ catch (REException e)
+ {
+ throw new RuntimeException (e.getMessage ());
+ }
}
}
-
-
diff --git a/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java b/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java
new file mode 100644
index 0000000..829f40c
--- /dev/null
+++ b/libjava/classpath/gnu/javax/activation/viewers/ImageViewer.java
@@ -0,0 +1,138 @@
+/* ImageViewer.java -- Simple image display component.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.activation.viewers;
+
+import java.awt.Component;
+import java.awt.Dimension;
+import java.awt.Image;
+import java.awt.Graphics;
+import java.awt.MediaTracker;
+import java.awt.Toolkit;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+
+import javax.activation.CommandObject;
+import javax.activation.DataHandler;
+
+/**
+ * Simple image display component.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.0.2
+ */
+public class ImageViewer extends Component
+ implements CommandObject
+{
+
+ private Image image;
+
+ /**
+ * Returns the preferred size for this component (the image size).
+ */
+ public Dimension getPreferredSize()
+ {
+ Dimension ps = new Dimension(0, 0);
+ if (image != null)
+ {
+ ps.width = image.getWidth(this);
+ ps.height = image.getHeight(this);
+ }
+ return ps;
+ }
+
+ public void setCommandContext(String verb, DataHandler dh)
+ throws IOException
+ {
+ // Read image into a byte array
+ InputStream in = dh.getInputStream();
+ ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+ byte[] buf = new byte[4096];
+ for (int len = in.read(buf); len != -1; len = in.read(buf))
+ bytes.write(buf, 0, len);
+ in.close();
+ // Create and prepare the image
+ Toolkit toolkit = getToolkit();
+ Image img = toolkit.createImage(bytes.toByteArray());
+ try
+ {
+ MediaTracker tracker = new MediaTracker(this);
+ tracker.addImage(img, 0);
+ tracker.waitForID(0);
+ }
+ catch (InterruptedException e)
+ {
+ }
+ toolkit.prepareImage(img, -1, -1, this);
+ }
+
+ /**
+ * Image bits arrive.
+ */
+ public boolean imageUpdate(Image image, int flags, int x, int y,
+ int width, int height)
+ {
+ if ((flags & ALLBITS) != 0)
+ {
+ this.image = image;
+ invalidate();
+ repaint();
+ return false;
+ }
+ return ((flags & ERROR) == 0);
+ }
+
+ /**
+ * Scale the image into this component's bounds.
+ */
+ public void paint(Graphics g)
+ {
+ if (image != null)
+ {
+ Dimension is = new Dimension(image.getWidth(this),
+ image.getHeight(this));
+ if (is.width > -1 && is.height > -1)
+ {
+ Dimension cs = getSize();
+ g.drawImage(image, 0, 0, cs.width, cs.height,
+ 0, 0, is.width, is.height, this);
+ }
+ }
+ }
+
+}
diff --git a/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java b/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java
new file mode 100644
index 0000000..1995ae1
--- /dev/null
+++ b/libjava/classpath/gnu/javax/activation/viewers/TextEditor.java
@@ -0,0 +1,119 @@
+/* TextEditor.java -- Simple text editor component.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.activation.viewers;
+
+import java.awt.Dimension;
+import java.awt.TextArea;
+import java.awt.event.ActionEvent;
+import java.awt.event.ActionListener;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import javax.activation.CommandObject;
+import javax.activation.DataHandler;
+
+/**
+ * Simple text editor component.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.0.2
+ */
+public class TextEditor extends TextArea
+ implements CommandObject, ActionListener
+{
+
+ private transient DataHandler dh;
+
+ public TextEditor()
+ {
+ super("", 24, 80, 1);
+ }
+
+ public Dimension getPreferredSize()
+ {
+ return getMinimumSize(24, 80);
+ }
+
+ public void setCommandContext(String verb, DataHandler dh)
+ throws IOException
+ {
+ this.dh = dh;
+ InputStream in = dh.getInputStream();
+ ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+ byte[] buf = new byte[4096];
+ for (int len = in.read(buf); len != -1; len = in.read(buf))
+ bytes.write(buf, 0, len);
+ in.close();
+ setText(bytes.toString());
+ }
+
+ public void actionPerformed(ActionEvent event)
+ {
+ if ("save".equals(event.getActionCommand()) && dh != null)
+ {
+ OutputStream out = null;
+ try
+ {
+ out = dh.getOutputStream();
+ if (out != null)
+ out.write(getText().getBytes());
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace(System.err);
+ }
+ finally
+ {
+ if (out != null)
+ {
+ try
+ {
+
+ out.close();
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace(System.err);
+ }
+ }
+ }
+ }
+ }
+
+}
diff --git a/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java b/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java
new file mode 100644
index 0000000..2b4aa90
--- /dev/null
+++ b/libjava/classpath/gnu/javax/activation/viewers/TextViewer.java
@@ -0,0 +1,81 @@
+/* TextViewer.java -- Simple text viewer component.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.javax.activation.viewers;
+
+import java.awt.Dimension;
+import java.awt.TextArea;
+import java.io.ByteArrayOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import javax.activation.CommandObject;
+import javax.activation.DataHandler;
+
+/**
+ * Simple text display component.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.0.2
+ */
+public class TextViewer extends TextArea
+ implements CommandObject
+{
+
+ public TextViewer()
+ {
+ super("", 24, 80, 1);
+ setEditable(false);
+ }
+
+ public Dimension getPreferredSize()
+ {
+ return getMinimumSize(24, 80);
+ }
+
+ public void setCommandContext(String verb, DataHandler dh)
+ throws IOException
+ {
+ InputStream in = dh.getInputStream();
+ ByteArrayOutputStream bytes = new ByteArrayOutputStream();
+ byte[] buf = new byte[4096];
+ for (int len = in.read(buf); len != -1; len = in.read(buf))
+ bytes.write(buf, 0, len);
+ in.close();
+ setText(bytes.toString());
+ }
+
+}
diff --git a/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java b/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java
index 2c972f8..4e93322 100644
--- a/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java
+++ b/libjava/classpath/gnu/javax/crypto/assembly/TransformerException.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.assembly;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.PrintStream;
import java.io.PrintWriter;
@@ -129,7 +131,7 @@ public class TransformerException
*/
public String toString()
{
- StringBuffer sb = new StringBuffer(this.getClass().getName())
+ CPStringBuilder sb = new CPStringBuilder(this.getClass().getName())
.append(": ").append(super.toString());
if (_exception != null)
sb.append("; caused by: ").append(_exception.toString());
diff --git a/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java b/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java
index a5bbe69..bae142a 100644
--- a/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java
+++ b/libjava/classpath/gnu/javax/crypto/cipher/BaseCipher.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.cipher;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Configuration;
import java.security.InvalidKeyException;
@@ -88,7 +90,7 @@ public abstract class BaseCipher
public String name()
{
- StringBuffer sb = new StringBuffer(name).append('-');
+ CPStringBuilder sb = new CPStringBuilder(name).append('-');
if (currentKey == null)
sb.append(String.valueOf(8 * defaultBlockSize));
else
diff --git a/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java b/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java
index 0357c16..a917e22 100644
--- a/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java
+++ b/libjava/classpath/gnu/javax/crypto/jce/sig/DHParameters.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.jce.sig;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Registry;
import gnu.java.security.der.DER;
import gnu.java.security.der.DERReader;
@@ -195,7 +197,7 @@ public class DHParameters
protected String engineToString()
{
- StringBuffer sb = new StringBuffer("p=");
+ CPStringBuilder sb = new CPStringBuilder("p=");
if (p == null)
sb.append("???");
else
diff --git a/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java b/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java
index f0fb1bb..405f011 100644
--- a/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java
+++ b/libjava/classpath/gnu/javax/crypto/key/KeyAgreementException.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.key;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.Serializable;
@@ -157,7 +159,7 @@ public class KeyAgreementException
*/
public String toString()
{
- StringBuffer sb = new StringBuffer(this.getClass().getName()).append(": ")
+ CPStringBuilder sb = new CPStringBuilder(this.getClass().getName()).append(": ")
.append(super.toString());
if (cause != null)
sb.append("; caused by: ").append(cause.toString());
diff --git a/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java b/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java
index 6d9418c..02e4322 100644
--- a/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java
+++ b/libjava/classpath/gnu/javax/crypto/mode/BaseMode.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.mode;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.javax.crypto.cipher.IBlockCipher;
import java.security.InvalidKeyException;
@@ -110,7 +112,7 @@ public abstract class BaseMode
public String name()
{
- return new StringBuffer(name).append('(').append(cipher.name()).append(')')
+ return new CPStringBuilder(name).append('(').append(cipher.name()).append(')')
.toString();
}
diff --git a/libjava/classpath/gnu/javax/crypto/pad/BasePad.java b/libjava/classpath/gnu/javax/crypto/pad/BasePad.java
index 8b475d2..adc2c9b 100644
--- a/libjava/classpath/gnu/javax/crypto/pad/BasePad.java
+++ b/libjava/classpath/gnu/javax/crypto/pad/BasePad.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.pad;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Configuration;
import java.util.Map;
@@ -67,7 +69,7 @@ public abstract class BasePad
public String name()
{
- final StringBuffer sb = new StringBuffer(name);
+ final CPStringBuilder sb = new CPStringBuilder(name);
if (blockSize != -1)
sb.append('-').append(String.valueOf(8 * blockSize));
return sb.toString();
diff --git a/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java b/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java
index 2145512..a6a06b6 100644
--- a/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java
+++ b/libjava/classpath/gnu/javax/crypto/sasl/crammd5/CramMD5Util.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.sasl.crammd5;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Registry;
import gnu.java.security.util.Util;
import gnu.javax.crypto.mac.HMacFactory;
@@ -83,7 +85,7 @@ class CramMD5Util
final byte[] result;
try
{
- result = new StringBuffer("<")
+ result = new CPStringBuilder("<")
.append(encoded.substring(0,encoded.length()))
.append(".").append(String.valueOf(System.currentTimeMillis()))
.append("@").append(hostname).append(">")
diff --git a/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java b/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java
index df95211..4900842 100644
--- a/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java
+++ b/libjava/classpath/gnu/javax/crypto/sasl/crammd5/PasswordFile.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.sasl.crammd5;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.javax.crypto.sasl.NoSuchUserException;
import gnu.javax.crypto.sasl.UserAlreadyExistsException;
@@ -201,13 +203,13 @@ public class PasswordFile
pw = new PrintWriter(fos);
String key;
String[] fields;
- StringBuffer sb;
+ CPStringBuilder sb;
int i;
for (Iterator it = entries.keySet().iterator(); it.hasNext();)
{
key = (String) it.next();
fields = (String[]) entries.get(key);
- sb = new StringBuffer(fields[0]);
+ sb = new CPStringBuilder(fields[0]);
for (i = 1; i < fields.length; i++)
sb.append(":").append(fields[i]);
pw.println(sb.toString());
diff --git a/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java b/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java
index b6fb3f8..4888214d8 100644
--- a/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java
+++ b/libjava/classpath/gnu/javax/crypto/sasl/plain/PasswordFile.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.sasl.plain;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.action.GetPropertyAction;
import gnu.javax.crypto.sasl.NoSuchUserException;
import gnu.javax.crypto.sasl.UserAlreadyExistsException;
@@ -205,13 +207,13 @@ public class PasswordFile
pw = new PrintWriter(fos);
String key;
String[] fields;
- StringBuffer sb;
+ CPStringBuilder sb;
Enumeration keys = entries.keys();
while (keys.hasMoreElements())
{
key = (String) keys.nextElement();
fields = (String[]) entries.get(key);
- sb = new StringBuffer(fields[0]);
+ sb = new CPStringBuilder(fields[0]);
for (int i = 1; i < fields.length; i++)
sb.append(":" + fields[i]);
pw.println(sb.toString());
diff --git a/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java b/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java
index 5c60578..87fffa0 100644
--- a/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java
+++ b/libjava/classpath/gnu/javax/crypto/sasl/plain/PlainClient.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.sasl.plain;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Registry;
import gnu.javax.crypto.sasl.ClientMechanism;
@@ -128,7 +130,7 @@ public class PlainClient
}
if (password == null)
throw new SaslException("null password supplied");
- final StringBuffer sb = new StringBuffer();
+ final CPStringBuilder sb = new CPStringBuilder();
if (authorizationID != null)
sb.append(authorizationID);
sb.append('\0');
diff --git a/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java b/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java
index 36888df..7946e84 100644
--- a/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java
+++ b/libjava/classpath/gnu/javax/crypto/sasl/srp/PasswordFile.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.sasl.srp;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Registry;
import gnu.java.security.util.Util;
import gnu.javax.crypto.key.srp6.SRPAlgorithm;
@@ -445,12 +447,12 @@ public class PasswordFile
{
String ndx;
String[] mpi;
- StringBuffer sb;
+ CPStringBuilder sb;
for (Iterator it = configurations.keySet().iterator(); it.hasNext();)
{
ndx = (String) it.next();
mpi = (String[]) configurations.get(ndx);
- sb = new StringBuffer(ndx)
+ sb = new CPStringBuilder(ndx)
.append(":").append(mpi[0])
.append(":").append(mpi[1]);
pw.println(sb.toString());
@@ -591,7 +593,7 @@ public class PasswordFile
{
String user, digestID;
HashMap fields, verifiers;
- StringBuffer sb1, sb2;
+ CPStringBuilder sb1, sb2;
Iterator j;
final Iterator i = entries.keySet().iterator();
while (i.hasNext())
@@ -601,7 +603,7 @@ public class PasswordFile
if (! user.equals(fields.get(USER_FIELD)))
throw new IOException("Inconsistent SRP password data");
verifiers = (HashMap) fields.get(VERIFIERS_FIELD);
- sb1 = new StringBuffer(user)
+ sb1 = new CPStringBuilder(user)
.append(":").append((String) verifiers.get("0"))
.append(":").append((String) fields.get(SALT_FIELD))
.append(":").append((String) fields.get(CONFIG_FIELD));
@@ -614,7 +616,7 @@ public class PasswordFile
if (! "0".equals(digestID))
{
// #0 is the default digest, already present in tpasswd!
- sb2 = new StringBuffer(digestID)
+ sb2 = new CPStringBuilder(digestID)
.append(":").append(user)
.append(":").append((String) verifiers.get(digestID));
pw2.println(sb2.toString());
diff --git a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java
index f4ef4cc..3406c14 100644
--- a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java
+++ b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPClient.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.sasl.srp;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Configuration;
import gnu.java.security.Registry;
import gnu.java.security.hash.MD5;
@@ -863,7 +865,7 @@ public class SRPClient
// For now we just select the defaults. Later we need to add support for
// properties (perhaps in a file) where a user can specify the list of
// algorithms they would prefer to use.
- final StringBuffer sb = new StringBuffer();
+ final CPStringBuilder sb = new CPStringBuilder();
sb.append(SRPRegistry.OPTION_SRP_DIGEST)
.append("=").append(mdName).append(",");
if (replayDetection)
diff --git a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java
index ff7e4e9..3f000de 100644
--- a/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java
+++ b/libjava/classpath/gnu/javax/crypto/sasl/srp/SRPServer.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.sasl.srp;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Configuration;
import gnu.java.security.Registry;
import gnu.java.security.util.PRNG;
@@ -612,7 +614,7 @@ public class SRPServer
s = (String) properties.get(SRPRegistry.SRP_REPLAY_DETECTION);
final boolean replayDetection = (s == null ? SRPRegistry.DEFAULT_REPLAY_DETECTION
: Boolean.valueOf(s).booleanValue());
- final StringBuffer sb = new StringBuffer();
+ final CPStringBuilder sb = new CPStringBuilder();
sb.append(SRPRegistry.OPTION_SRP_DIGEST).append("=")
.append(srp.getAlgorithm()).append(",");
diff --git a/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java b/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java
index e9b1a72..9fa8329 100644
--- a/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java
+++ b/libjava/classpath/gnu/javax/crypto/sasl/srp/ServerStore.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.crypto.sasl.srp;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.HashMap;
/**
@@ -84,7 +86,7 @@ public class ServerStore
static synchronized final byte[] getNewSessionID()
{
final String sid = String.valueOf(++counter);
- return new StringBuffer("SID-")
+ return new CPStringBuilder("SID-")
.append("0000000000".substring(0, 10 - sid.length())).append(sid)
.toString().getBytes();
}
diff --git a/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriter.java b/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriter.java
index 08b5041..be42ffa 100644
--- a/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriter.java
+++ b/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriter.java
@@ -178,7 +178,6 @@ public class BMPImageWriter
encoder.encode(out, streamMetadata, image, param);
else
throw new BMPException("Encoder has not been initialized.");
- out.close();
}
/**
diff --git a/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriterSpi.java b/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriterSpi.java
index b2a4273..32f9f59 100644
--- a/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriterSpi.java
+++ b/libjava/classpath/gnu/javax/imageio/bmp/BMPImageWriterSpi.java
@@ -51,7 +51,7 @@ public class BMPImageWriterSpi
static final String vendorName = "GNU";
static final String version = "0.1";
static final String writerClassName = "gnu.javax.imageio.bmp.BMPImageWriter";
- static final String[] names = { "Microsoft Windows BMP" };
+ static final String[] names = { "bmp", "BMP", "Microsoft Windows BMP" };
static final String[] suffixes = { ".bmp", ".bm" };
static final String[] MIMETypes = { "image/bmp", "image/x-windows-bmp" };
static final String[] readerSpiNames = { "gnu.javax.imageio.bmp.BMPImageReaderSpi" };
diff --git a/libjava/classpath/gnu/javax/management/Server.java b/libjava/classpath/gnu/javax/management/Server.java
index 8e8d826..e35c3b1 100644
--- a/libjava/classpath/gnu/javax/management/Server.java
+++ b/libjava/classpath/gnu/javax/management/Server.java
@@ -48,12 +48,13 @@ import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
+
import java.util.concurrent.atomic.AtomicLong;
+import java.util.concurrent.ConcurrentHashMap;
import javax.management.Attribute;
import javax.management.AttributeList;
@@ -113,19 +114,20 @@ public class Server
/**
* The registered beans, represented as a map of
* {@link javax.management.ObjectName}s to
- * {@link java.lang.Object}s.
+ * {@link gnu.javax.management.Server.ServerInfo}s.
*/
- private final Map beans = new HashMap();
+ private final ConcurrentHashMap<ObjectName,ServerInfo> beans =
+ new ConcurrentHashMap<ObjectName,ServerInfo>();
/**
* The default domain.
*/
- private String defaultDomain;
+ private final String defaultDomain;
/**
* The outer server.
*/
- private MBeanServer outer;
+ private final MBeanServer outer;
/**
* The class loader repository.
@@ -134,9 +136,15 @@ public class Server
/**
* The map of listener delegates to the true
- * listener.
+ * listener. We wrap this in an inner class
+ * to delay initialisation until a listener
+ * is actually added.
*/
- private Map listeners;
+ private static class LazyListenersHolder
+ {
+ private static final Map<NotificationListener,NotificationListener> listeners =
+ new ConcurrentHashMap<NotificationListener,NotificationListener>();
+ }
/**
* An MBean that emits notifications when an MBean is registered and
@@ -145,7 +153,10 @@ public class Server
*/
private final MBeanServerDelegate delegate;
- static private final AtomicLong sequenceNumber = new AtomicLong(1);
+ /**
+ * Provides sequencing for notifications about registrations.
+ */
+ private static final AtomicLong sequenceNumber = new AtomicLong(1);
/**
* Initialise the delegate name.
@@ -274,7 +285,7 @@ public class Server
private Object getBean(ObjectName name)
throws InstanceNotFoundException
{
- ServerInfo bean = (ServerInfo) beans.get(name);
+ ServerInfo bean = beans.get(name);
if (bean == null)
throw new InstanceNotFoundException("The bean, " + name +
", was not found.");
@@ -319,12 +330,10 @@ public class Server
if (bean instanceof NotificationBroadcaster)
{
NotificationBroadcaster bbean = (NotificationBroadcaster) bean;
- if (listeners == null)
- listeners = new HashMap();
NotificationListener indirection = new ServerNotificationListener(bean, name,
listener);
bbean.addNotificationListener(indirection, filter, passback);
- listeners.put(listener, indirection);
+ LazyListenersHolder.listeners.put(listener, indirection);
}
}
@@ -671,7 +680,7 @@ public class Server
{
try
{
- Class c = getClassLoaderRepository().loadClass(name);
+ Class<?> c = getClassLoaderRepository().loadClass(name);
return new ServerInputStream(new ByteArrayInputStream(data),
c.getClassLoader());
}
@@ -717,7 +726,7 @@ public class Server
{
try
{
- Class c = getClassLoader(loader).loadClass(name);
+ Class<?> c = getClassLoader(loader).loadClass(name);
return new ServerInputStream(new ByteArrayInputStream(data),
c.getClassLoader());
}
@@ -951,7 +960,6 @@ public class Server
return defaultDomain;
}
-
/**
* Returns an array containing all the domains used by beans registered
* with this server. The ordering of the array is undefined.
@@ -975,11 +983,11 @@ public class Server
public String[] getDomains()
{
checkSecurity(null, null, "getDomains");
- Set domains = new HashSet();
- Iterator iterator = beans.keySet().iterator();
+ Set<String> domains = new HashSet<String>();
+ Iterator<ObjectName> iterator = beans.keySet().iterator();
while (iterator.hasNext())
{
- String d = ((ObjectName) iterator.next()).getDomain();
+ String d = iterator.next().getDomain();
try
{
checkSecurity(new ObjectName(d + ":x=x"), null, "getDomains");
@@ -990,7 +998,7 @@ public class Server
/* Ignored */
}
}
- return (String[]) domains.toArray(new String[domains.size()]);
+ return domains.toArray(new String[domains.size()]);
}
/**
@@ -1077,7 +1085,7 @@ public class Server
public ObjectInstance getObjectInstance(ObjectName name)
throws InstanceNotFoundException
{
- ServerInfo bean = (ServerInfo) beans.get(name);
+ ServerInfo bean = beans.get(name);
if (bean == null)
throw new InstanceNotFoundException("The bean, " + name +
", was not found.");
@@ -1158,7 +1166,7 @@ public class Server
new IllegalArgumentException("The name was null.");
throw new RuntimeOperationsException(e);
}
- Class[] sigTypes = new Class[sig.length];
+ Class<?>[] sigTypes = new Class[sig.length];
for (int a = 0; a < sigTypes.length; ++a)
{
try
@@ -1174,7 +1182,7 @@ public class Server
}
try
{
- Constructor cons =
+ Constructor<?> cons =
repository.loadClass(name).getConstructor(sigTypes);
return cons.newInstance(params);
}
@@ -1288,7 +1296,7 @@ public class Server
throw new RuntimeOperationsException(e);
}
ClassLoader loader = getClassLoader(loaderName);
- Class[] sigTypes = new Class[sig.length];
+ Class<?>[] sigTypes = new Class[sig.length];
for (int a = 0; a < sig.length; ++a)
{
try
@@ -1304,7 +1312,7 @@ public class Server
}
try
{
- Constructor cons =
+ Constructor<?> cons =
Class.forName(name, true, loader).getConstructor(sigTypes);
return cons.newInstance(params);
}
@@ -1433,10 +1441,10 @@ public class Server
}
if (info.getClassName().equals(className))
return true;
- Class bclass = bean.getClass();
+ Class<?> bclass = bean.getClass();
try
{
- Class oclass = Class.forName(className);
+ Class<?> oclass = Class.forName(className);
return (bclass.getClassLoader().equals(oclass.getClassLoader()) &&
oclass.isAssignableFrom(bclass));
}
@@ -1502,21 +1510,19 @@ public class Server
* arise from the execution of the query, in which
* case that particular bean will again be excluded.
*/
- public Set queryMBeans(ObjectName name, QueryExp query)
+ public Set<ObjectInstance> queryMBeans(ObjectName name, QueryExp query)
{
checkSecurity(name, null, "queryMBeans");
- Set results = new HashSet();
- Iterator iterator = beans.entrySet().iterator();
- while (iterator.hasNext())
+ Set<ObjectInstance> results = new HashSet<ObjectInstance>();
+ for (Map.Entry<ObjectName,ServerInfo> entry : beans.entrySet())
{
- Map.Entry entry = (Map.Entry) iterator.next();
- ObjectName nextName = (ObjectName) entry.getKey();
+ ObjectName nextName = entry.getKey();
checkSecurity(name, nextName.toString(), "queryMBeans");
try
{
if ((name == null || name.apply(nextName)) &&
(query == null || query.apply(nextName)))
- results.add(((ServerInfo) entry.getValue()).getInstance());
+ results.add(entry.getValue().getInstance());
}
catch (BadStringOperationException e)
{
@@ -1575,15 +1581,12 @@ public class Server
* Note that these permissions are implied if the
* <code>queryMBeans</code> permissions are available.
*/
- public Set queryNames(ObjectName name, QueryExp query)
+ public Set<ObjectName> queryNames(ObjectName name, QueryExp query)
{
checkSecurity(name, null, "queryNames");
- Set results = new HashSet();
- Iterator iterator = beans.entrySet().iterator();
- while (iterator.hasNext())
+ Set<ObjectName> results = new HashSet<ObjectName>();
+ for (ObjectName nextName : beans.keySet())
{
- Map.Entry entry = (Map.Entry) iterator.next();
- ObjectName nextName = (ObjectName) entry.getKey();
checkSecurity(name, nextName.toString(), "queryNames");
try
{
@@ -1656,7 +1659,7 @@ public class Server
NotCompliantMBeanException
{
SecurityManager sm = System.getSecurityManager();
- Class cl = obj.getClass();
+ Class<?> cl = obj.getClass();
String className = cl.getName();
if (sm != null)
{
@@ -1712,14 +1715,13 @@ public class Server
throw new MBeanRegistrationException(e, "Pre-registration failed.");
}
}
- if (beans.containsKey(name))
+ ObjectInstance obji = new ObjectInstance(name, className);
+ if (beans.putIfAbsent(name, new ServerInfo(obji, obj)) != null)
{
if (register != null)
register.postRegister(Boolean.FALSE);
throw new InstanceAlreadyExistsException(name + "is already registered.");
}
- ObjectInstance obji = new ObjectInstance(name, className);
- beans.put(name, new ServerInfo(obji, obj));
if (register != null)
register.postRegister(Boolean.TRUE);
notify(name, MBeanServerNotification.REGISTRATION_NOTIFICATION);
@@ -1758,15 +1760,8 @@ public class Server
if (bean instanceof NotificationBroadcaster)
{
NotificationBroadcaster bbean = (NotificationBroadcaster) bean;
- NotificationListener indirection = (NotificationListener)
- listeners.get(listener);
- if (indirection == null)
- bbean.removeNotificationListener(listener);
- else
- {
- bbean.removeNotificationListener(indirection);
- listeners.remove(listener);
- }
+ bbean.removeNotificationListener(listener);
+ LazyListenersHolder.listeners.remove(listener);
}
}
@@ -1809,15 +1804,8 @@ public class Server
if (bean instanceof NotificationEmitter)
{
NotificationEmitter bbean = (NotificationEmitter) bean;
- NotificationListener indirection = (NotificationListener)
- listeners.get(listener);
- if (indirection == null)
- bbean.removeNotificationListener(listener, filter, passback);
- else
- {
- bbean.removeNotificationListener(indirection, filter, passback);
- listeners.remove(listener);
- }
+ bbean.removeNotificationListener(listener, filter, passback);
+ LazyListenersHolder.listeners.remove(listener);
}
}
@@ -2011,7 +1999,7 @@ public class Server
Object abean = getBean(name);
checkSecurity(name, null, "setAttribute");
AttributeList list = new AttributeList(attributes.size());
- Iterator it = attributes.iterator();
+ Iterator<Object> it = attributes.iterator();
while (it.hasNext())
{
try
@@ -2113,6 +2101,15 @@ public class Server
register.postDeregister();
}
+ /**
+ * Notifies the delegate of beans being registered
+ * and unregistered.
+ *
+ * @param name the bean being registered.
+ * @param type the type of notification;
+ * {@code REGISTRATION_NOTIFICATION} or
+ * {@code UNREGISTRATION_NOTIFICATION}.
+ */
private void notify(ObjectName name, String type)
{
delegate.sendNotification
@@ -2136,7 +2133,7 @@ public class Server
this.cl = cl;
}
- protected Class resolveClass(ObjectStreamClass osc)
+ protected Class<?> resolveClass(ObjectStreamClass osc)
throws ClassNotFoundException, IOException
{
try
diff --git a/libjava/classpath/gnu/javax/management/Translator.java b/libjava/classpath/gnu/javax/management/Translator.java
index 4ede374..a159944 100644
--- a/libjava/classpath/gnu/javax/management/Translator.java
+++ b/libjava/classpath/gnu/javax/management/Translator.java
@@ -143,14 +143,14 @@ public final class Translator
throw new IllegalArgumentException(jtype + " has a " +
"non-comparable element " +
"type, " + elemClass);
- if (((SortedSet) jtype).comparator() != null)
+ if (((SortedSet<?>) jtype).comparator() != null)
throw new IllegalArgumentException(jtype + " does not " +
"use natural ordering.");
}
- Collection<Object> elems = (Collection<Object>) jtype;
+ Collection<?> elems = (Collection<?>) jtype;
int numElems = elems.size();
Object[] celems = new Object[numElems];
- Iterator<Object> i = elems.iterator();
+ Iterator<?> i = elems.iterator();
for (int a = 0; a < numElems; ++a)
{
Object elem = i.next();
@@ -159,7 +159,7 @@ public final class Translator
return makeArraySpecific(celems);
}
if (jtype instanceof Enum)
- return ((Enum) jtype).name();
+ return ((Enum<?>) jtype).name();
if (jtype instanceof Map || jtype instanceof SortedMap)
{
int lparam = tName.indexOf("<");
@@ -177,13 +177,13 @@ public final class Translator
throw new IllegalArgumentException(jtype + " has a " +
"non-comparable element " +
"type, " + keyClass);
- if (((SortedMap) jtype).comparator() != null)
+ if (((SortedMap<?,?>) jtype).comparator() != null)
throw new IllegalArgumentException(jtype + " does not " +
"use natural ordering.");
typeName = "java.util.SortedMap" + tName.substring(lparam);
}
- OpenType k = translate(key).getOpenType();
- OpenType v = translate(value).getOpenType();
+ OpenType<?> k = translate(key).getOpenType();
+ OpenType<?> v = translate(value).getOpenType();
CompositeType rowType = new CompositeType(typeName, typeName,
new String[] { "key", "value" },
new String[] { "Map key", "Map value"},
@@ -191,7 +191,7 @@ public final class Translator
TabularType tabType = new TabularType(typeName, typeName, rowType,
new String[]{"key"});
TabularData data = new TabularDataSupport(tabType);
- for (Map.Entry entry : (Set<Map.Entry>) ((Map) jtype).entrySet())
+ for (Map.Entry<?,?> entry : ((Map<?,?>) jtype).entrySet())
{
try
{
@@ -258,15 +258,15 @@ public final class Translator
if (returnType.isEnum())
{
String ename = (String) otype;
- Enum[] constants = (Enum[]) returnType.getEnumConstants();
- for (Enum c : constants)
+ Enum<?>[] constants = (Enum[]) returnType.getEnumConstants();
+ for (Enum<?> c : constants)
if (c.name().equals(ename))
return c;
}
if (List.class.isAssignableFrom(returnType))
{
Object[] elems = (Object[]) otype;
- List l = new ArrayList(elems.length);
+ List<Object> l = new ArrayList<Object>(elems.length);
for (Object elem : elems)
l.add(elem);
return l;
@@ -274,7 +274,7 @@ public final class Translator
if (Map.class.isAssignableFrom(returnType))
{
TabularData data = (TabularData) otype;
- Map m = new HashMap(data.size());
+ Map<Object,Object> m = new HashMap<Object,Object>(data.size());
for (Object val : data.values())
{
CompositeData vals = (CompositeData) val;
@@ -401,8 +401,8 @@ public final class Translator
int comma = type.indexOf(",", lparam);
int rparam = type.indexOf(">", comma);
String key = type.substring(lparam + 1, comma).trim();
- OpenType k = translate(key).getOpenType();
- OpenType v = translate(type.substring(comma + 1, rparam).trim()).getOpenType();
+ OpenType<?> k = translate(key).getOpenType();
+ OpenType<?> v = translate(type.substring(comma + 1, rparam).trim()).getOpenType();
CompositeType ctype = new CompositeType(Map.class.getName(), Map.class.getName(),
new String[] { "key", "value" },
new String[] { "Map key", "Map value"},
@@ -417,13 +417,13 @@ public final class Translator
{
int lparam = type.indexOf("<");
int rparam = type.indexOf(">");
- OpenType e = translate(type.substring(lparam + 1, rparam).trim()).getOpenType();
+ OpenType<?> e = translate(type.substring(lparam + 1, rparam).trim()).getOpenType();
return new OpenMBeanParameterInfoSupport("TransParam",
"Translated parameter",
- new ArrayType(1, e)
+ new ArrayType<OpenType<?>>(1, e)
);
}
- Class c;
+ Class<?> c;
try
{
c = Class.forName(type);
@@ -450,15 +450,15 @@ public final class Translator
int depth;
for (depth = 0; c.getName().charAt(depth) == '['; ++depth)
;
- OpenType ot = getTypeFromClass(c.getComponentType());
+ OpenType<?> ot = getTypeFromClass(c.getComponentType());
return new OpenMBeanParameterInfoSupport("TransParam",
"Translated parameter",
- new ArrayType(depth, ot)
+ new ArrayType<OpenType<?>>(depth, ot)
);
}
Method[] methods = c.getDeclaredMethods();
List<String> names = new ArrayList<String>();
- List<OpenType> types = new ArrayList<OpenType>();
+ List<OpenType<?>> types = new ArrayList<OpenType<?>>();
for (int a = 0; a < methods.length; ++a)
{
String name = methods[a].getName();
@@ -495,7 +495,7 @@ public final class Translator
* @return the appropriate instance.
* @throws OpenDataException if the type is not open.
*/
- private static final OpenType getTypeFromClass(Class c)
+ private static final OpenType<?> getTypeFromClass(Class<?> c)
throws OpenDataException
{
return Translator.translate(c.getName()).getOpenType();
diff --git a/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java b/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java
index 397b1c7..95ebb8a 100644
--- a/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java
+++ b/libjava/classpath/gnu/javax/naming/giop/CorbalocParser.java
@@ -43,6 +43,8 @@ import gnu.CORBA.Unexpected;
import gnu.CORBA.Version;
import gnu.CORBA.NamingService.NameTransformer;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
@@ -288,7 +290,7 @@ public class CorbalocParser
ior.Internet.version = new Version(major, minor);
// Then host data goes till '/' or ':'.
- StringBuffer bhost = new StringBuffer(corbaloc.length());
+ CPStringBuilder bhost = new CPStringBuilder(corbaloc.length());
while (!t[p].equals(":") && !t[p].equals("/") && !t[p].equals(","))
bhost.append(t[p++]);
@@ -381,7 +383,7 @@ public class CorbalocParser
{
InputStreamReader r = new InputStreamReader(u.openStream());
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
int c;
while ((c = r.read()) > 0)
@@ -418,7 +420,7 @@ public class CorbalocParser
+ "' found");
}
- StringBuffer bKey = new StringBuffer();
+ CPStringBuilder bKey = new CPStringBuilder();
p++;
while (p < t.length && !t[p].equals("#"))
diff --git a/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java b/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java
index 84aa324..6c22154 100644
--- a/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java
+++ b/libjava/classpath/gnu/javax/naming/giop/GiopNamingServiceFactory.java
@@ -40,6 +40,8 @@ package gnu.javax.naming.giop;
import gnu.CORBA.OrbFunctional;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.Iterator;
@@ -161,7 +163,7 @@ public class GiopNamingServiceFactory
{
TreeMap map = new TreeMap();
map.putAll(props);
- StringBuffer b = new StringBuffer(50*props.size());
+ CPStringBuilder b = new CPStringBuilder(50*props.size());
Iterator iter = map.entrySet().iterator();
Map.Entry m;
diff --git a/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java b/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java
index 00f4a07..68ba49b 100644
--- a/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java
+++ b/libjava/classpath/gnu/javax/naming/giop/ListBindingsEnumeration.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.naming.giop;
+import gnu.java.lang.CPStringBuilder;
+
import javax.naming.NamingEnumeration;
import org.omg.CosNaming.Binding;
@@ -92,7 +94,7 @@ public class ListBindingsEnumeration extends GiopNamingEnumeration implements
*/
public Object convert(Binding binding)
{
- StringBuffer name = new StringBuffer();
+ CPStringBuilder name = new CPStringBuilder();
for (int i = 0; i < binding.binding_name.length; i++)
{
diff --git a/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java b/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java
index 2e64e67..3fca1e0 100644
--- a/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java
+++ b/libjava/classpath/gnu/javax/naming/giop/ListEnumeration.java
@@ -29,7 +29,7 @@ executable, regardless of the license terms of these independent
modules, and to copy and distribute the resulting executable under
terms of your choice, provided that you also meet, for each linked
independent module, the terms and conditions of the license of that
-module. An independent module is a module which is not derived from
+odule. An independent module is a module which is not derived from
or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.naming.giop;
+import gnu.java.lang.CPStringBuilder;
+
import javax.naming.NameClassPair;
import javax.naming.NamingEnumeration;
@@ -85,7 +87,7 @@ public class ListEnumeration extends GiopNamingEnumeration implements
*/
public Object convert(Binding binding)
{
- StringBuffer name = new StringBuffer();
+ CPStringBuilder name = new CPStringBuilder();
for (int i = 0; i < binding.binding_name.length; i++)
{
diff --git a/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java b/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java
index b20bfa4..b423c72 100644
--- a/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java
+++ b/libjava/classpath/gnu/javax/naming/ictxImpl/trans/GnuName.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.javax.naming.ictxImpl.trans;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Enumeration;
import java.util.NoSuchElementException;
@@ -455,7 +457,7 @@ public class GnuName
*/
public String toString()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
for (int i = 0; i < length; i++)
{
b.append(get(i));
diff --git a/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java b/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java
index 4a37cd8..7fff253 100644
--- a/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java
+++ b/libjava/classpath/gnu/javax/net/ssl/PrivateCredentials.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.net.ssl;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.EOFException;
import java.io.InputStream;
import java.io.IOException;
@@ -137,7 +139,7 @@ public class PrivateCredentials implements ManagerFactoryParameters
boolean encrypted = false;
String cipher = null;
String salt = null;
- StringBuffer base64 = new StringBuffer();
+ CPStringBuilder base64 = new CPStringBuilder();
while (true)
{
line = readLine(privateKey);
@@ -235,7 +237,7 @@ public class PrivateCredentials implements ManagerFactoryParameters
private String readLine(InputStream in) throws IOException
{
boolean eol_is_cr = System.getProperty("line.separator").equals("\r");
- StringBuffer str = new StringBuffer();
+ CPStringBuilder str = new CPStringBuilder();
while (true)
{
int i = in.read();
diff --git a/libjava/classpath/gnu/javax/net/ssl/Session.java b/libjava/classpath/gnu/javax/net/ssl/Session.java
index e2b21aa..09b50ee 100644
--- a/libjava/classpath/gnu/javax/net/ssl/Session.java
+++ b/libjava/classpath/gnu/javax/net/ssl/Session.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.net.ssl;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
import java.security.Principal;
@@ -349,7 +351,7 @@ public abstract class Session implements SSLSession, Serializable
public String toString()
{
- StringBuffer str = new StringBuffer (3 * id.length + 1);
+ CPStringBuilder str = new CPStringBuilder (3 * id.length + 1);
for (int i = 0; i < id.length; i++)
{
int x = id[i] & 0xFF;
@@ -361,4 +363,4 @@ public abstract class Session implements SSLSession, Serializable
return str.toString ();
}
}
-} \ No newline at end of file
+}
diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java b/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java
index 0ffc26c..81dfce5 100644
--- a/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java
+++ b/libjava/classpath/gnu/javax/net/ssl/provider/HelloRequest.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.net.ssl.provider;
+import gnu.java.lang.CPStringBuilder;
+
/**
* The handshake body for a HelloRequest handshake message.
*
@@ -51,7 +53,7 @@ public final class HelloRequest implements Handshake.Body
public String toString (final String prefix)
{
- StringBuffer str = new StringBuffer ();
+ CPStringBuilder str = new CPStringBuilder ();
if (prefix != null)
str.append (prefix);
str.append ("HelloRequest { };");
diff --git a/libjava/classpath/gnu/javax/net/ssl/provider/Util.java b/libjava/classpath/gnu/javax/net/ssl/provider/Util.java
index ba8ea7d..57f637c 100644
--- a/libjava/classpath/gnu/javax/net/ssl/provider/Util.java
+++ b/libjava/classpath/gnu/javax/net/ssl/provider/Util.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.net.ssl.provider;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.PrintWriter;
import java.io.StringWriter;
@@ -128,7 +130,7 @@ public final class Util
*/
public static String toHexString(byte[] buf, int off, int len)
{
- StringBuffer str = new StringBuffer();
+ CPStringBuilder str = new CPStringBuilder();
for (int i = 0; i < len; i++)
{
str.append(HEX.charAt(buf[i+off] >>> 4 & 0x0F));
@@ -157,7 +159,7 @@ public final class Util
*/
public static String toHexString(byte[] buf, int off, int len, char sep)
{
- StringBuffer str = new StringBuffer();
+ CPStringBuilder str = new CPStringBuilder();
for (int i = 0; i < len; i++)
{
str.append(HEX.charAt(buf[i+off] >>> 4 & 0x0F));
@@ -194,7 +196,7 @@ public final class Util
public static String hexDump(byte[] buf, int off, int len, String prefix)
{
String nl = getProperty("line.separator");
- StringBuffer str = new StringBuffer();
+ CPStringBuilder str = new CPStringBuilder();
int i = 0;
while (i < len)
{
@@ -294,7 +296,7 @@ public final class Util
public static String formatInt(int i, int radix, int len)
{
String s = Integer.toString(i, radix);
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (int j = 0; j < len - s.length(); j++)
buf.append("0");
buf.append(s);
diff --git a/libjava/classpath/gnu/javax/print/ipp/IppRequest.java b/libjava/classpath/gnu/javax/print/ipp/IppRequest.java
index 05a6faa..3de8871 100644
--- a/libjava/classpath/gnu/javax/print/ipp/IppRequest.java
+++ b/libjava/classpath/gnu/javax/print/ipp/IppRequest.java
@@ -469,7 +469,7 @@ public class IppRequest
}
else
{
- new IppException("Unknown target operation attribute combination.");
+ throw new IppException("Unknown target operation attribute combination.");
}
writeAttributes(attributes);
diff --git a/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java b/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java
index ae9d32d..814fe2d 100644
--- a/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java
+++ b/libjava/classpath/gnu/javax/print/ipp/attribute/RequestedAttributes.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.print.ipp.attribute;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.List;
@@ -117,7 +119,7 @@ public final class RequestedAttributes implements Attribute
*/
public String toString()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
if (attributes.size() > 0)
b.append(attributes.get(0));
diff --git a/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java b/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java
index 91bfa37..5fa78b1 100644
--- a/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java
+++ b/libjava/classpath/gnu/javax/rmi/CORBA/RmiUtilities.java
@@ -46,6 +46,8 @@ import gnu.CORBA.CDR.gnuRuntime;
import gnu.CORBA.CDR.gnuValueStream;
import gnu.CORBA.CDR.HeadlessInput;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.MARSHAL;
import org.omg.CORBA.StringValueHelper;
import org.omg.CORBA.WStringValueHelper;
@@ -393,7 +395,7 @@ public class RmiUtilities
*/
public static String toHex(long l)
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
b.append(Long.toHexString(l).toUpperCase());
while (b.length() < 16)
b.insert(0, '0');
@@ -425,7 +427,7 @@ public class RmiUtilities
return "V";
else if (type.isArray())
{
- StringBuffer l = new StringBuffer("[");
+ CPStringBuilder l = new CPStringBuilder("[");
Class component = type.getComponentType();
while (component.isArray())
@@ -700,13 +702,14 @@ public class RmiUtilities
if (in instanceof HeadlessInput)
((HeadlessInput) in).subsequentCalls = true;
- gnuRuntime g;
+ gnuRuntime g = null;
Serializable object = null;
try
{
g = (gnuRuntime) sender;
- object = g.target;
+ if (sender != null)
+ object = g.target;
}
catch (ClassCastException e)
{
diff --git a/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java b/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java
index 539c4a1..d75ce41 100644
--- a/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java
+++ b/libjava/classpath/gnu/javax/security/auth/callback/AWTCallbackHandler.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.security.auth.callback;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.BorderLayout;
import java.awt.Button;
import java.awt.Dialog;
@@ -238,8 +240,8 @@ public class AWTCallbackHandler extends AbstractCallbackHandler
int defind = 0;
for (int i = 0; i < locales.length; i++)
{
- StringBuffer lang =
- new StringBuffer(locales[i].getDisplayLanguage(locales[i]));
+ CPStringBuilder lang =
+ new CPStringBuilder(locales[i].getDisplayLanguage(locales[i]));
String country = locales[i].getDisplayCountry(locales[i]);
String variant = locales[i].getDisplayVariant(locales[i]);
if (country.length() > 0 && variant.length() > 0)
diff --git a/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java b/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java
index 06a1d2c..0235c69 100644
--- a/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java
+++ b/libjava/classpath/gnu/javax/security/auth/login/ConfigFileTokenizer.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.security.auth.login;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Configuration;
import java.io.BufferedReader;
@@ -92,7 +94,7 @@ public class ConfigFileTokenizer
private BufferedReader br;
boolean initialised;
- private StringBuffer sb;
+ private CPStringBuilder sb;
private int sbNdx;
// Constructor(s)
@@ -185,7 +187,7 @@ public class ConfigFileTokenizer
private void init() throws IOException
{
- sb = new StringBuffer();
+ sb = new CPStringBuilder();
String line;
while ((line = br.readLine()) != null)
{
diff --git a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java
index b90caef..0514c93 100644
--- a/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java
+++ b/libjava/classpath/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.javax.sound.sampled.gstreamer.io;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.javax.sound.sampled.gstreamer.GStreamerMixer;
import java.io.BufferedInputStream;
@@ -65,7 +67,7 @@ public class GstAudioFileReader
public AudioFileFormat getAudioFileFormat(File file)
throws UnsupportedAudioFileException, IOException
{
- StringBuffer name = new StringBuffer(file.getName());
+ CPStringBuilder name = new CPStringBuilder(file.getName());
String _name = name.substring(name.lastIndexOf(".") + 1);
return getAudioFileFormat(
diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java b/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java
index 7507850..7f16f1f 100644
--- a/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java
+++ b/libjava/classpath/gnu/javax/swing/text/html/parser/htmlValidator.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.swing.text.html.parser;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.javax.swing.text.html.parser.models.node;
import gnu.javax.swing.text.html.parser.models.transformer;
@@ -499,11 +501,11 @@ public abstract class htmlValidator
dtdAttribute = tag.getElement().getAttribute(foundAttribute.toString());
if (dtdAttribute == null)
{
- StringBuffer valid =
- new StringBuffer("The tag <" + tag.getHTMLTag() +
- "> cannot contain the attribute '" + foundAttribute +
- "'. The valid attributes for this tag are: "
- );
+ CPStringBuilder valid =
+ new CPStringBuilder("The tag <" + tag.getHTMLTag() +
+ "> cannot contain the attribute '" + foundAttribute +
+ "'. The valid attributes for this tag are: "
+ );
AttributeList a = tag.getElement().getAttributes();
@@ -545,22 +547,22 @@ public abstract class htmlValidator
!dtdAttribute.values.contains(value.toUpperCase())
)
{
- StringBuffer valid;
+ CPStringBuilder valid;
if (dtdAttribute.values.size() == 1)
valid =
- new StringBuffer("The attribute '" + foundAttribute +
- "' of the tag <" + tag.getHTMLTag() +
- "> cannot have the value '" + value +
- "'. The only valid value is "
- );
+ new CPStringBuilder("The attribute '" + foundAttribute +
+ "' of the tag <" + tag.getHTMLTag() +
+ "> cannot have the value '" + value +
+ "'. The only valid value is "
+ );
else
valid =
- new StringBuffer("The attribute '" + foundAttribute +
- "' of the tag <" + tag.getHTMLTag() +
- "> cannot have the value '" + value + "'. The " +
- dtdAttribute.values.size() +
- " valid values are: "
- );
+ new CPStringBuilder("The attribute '" + foundAttribute +
+ "' of the tag <" + tag.getHTMLTag() +
+ "> cannot have the value '" + value + "'. The " +
+ dtdAttribute.values.size() +
+ " valid values are: "
+ );
Enumeration vv = dtdAttribute.values.elements();
while (vv.hasMoreElements())
diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java b/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java
index b77ef7f..c303ae8 100644
--- a/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java
+++ b/libjava/classpath/gnu/javax/swing/text/html/parser/models/list.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.swing.text.html.parser.models;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
/**
@@ -296,7 +298,7 @@ public class list
*/
public String toString()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
b.append(" ( ");
for (int i = 0; i < nodes.length; i++)
{
diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java b/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java
index 54469b3..f45a13b 100644
--- a/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java
+++ b/libjava/classpath/gnu/javax/swing/text/html/parser/models/node.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.swing.text.html.parser.models;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
/**
@@ -239,7 +241,7 @@ public class node
*/
public String toString()
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
b.append(token);
if (unary != 0)
diff --git a/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java b/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java
index e99be32..b087c3c 100644
--- a/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java
+++ b/libjava/classpath/gnu/javax/swing/text/html/parser/support/Parser.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.javax.swing.text.html.parser.support;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.javax.swing.text.html.parser.htmlAttributeSet;
import gnu.javax.swing.text.html.parser.htmlValidator;
import gnu.javax.swing.text.html.parser.support.low.Constants;
@@ -132,12 +134,12 @@ public class Parser
/**
* The buffer to collect the incremental output like text or coment.
*/
- private StringBuffer buffer = new StringBuffer();
+ private final StringBuffer buffer = new StringBuffer();
/**
* The buffer to store the document title.
*/
- private StringBuffer title = new StringBuffer();
+ private final StringBuffer title = new StringBuffer();
/**
* The current token.
@@ -994,7 +996,7 @@ public class Parser
// character, not as a token. The character may be part of
// the unquoted URL.
{
- StringBuffer image = new StringBuffer(value.getImage());
+ CPStringBuilder image = new CPStringBuilder(value.getImage());
while (next.kind == NUMTOKEN || next.kind == SLASH
|| next.kind == OTHER)
{
@@ -1025,7 +1027,7 @@ public class Parser
// character, not as a token. The slash may be part of
// the unquoted URL.
{
- StringBuffer image = new StringBuffer(value.getImage());
+ CPStringBuilder image = new CPStringBuilder(value.getImage());
while (next.kind == NUMTOKEN || next.kind == SLASH)
{
image.append(getNextToken().getImage());
diff --git a/libjava/classpath/gnu/xml/dom/DomAttr.java b/libjava/classpath/gnu/xml/dom/DomAttr.java
index 31d7af2..6a8da83 100644
--- a/libjava/classpath/gnu/xml/dom/DomAttr.java
+++ b/libjava/classpath/gnu/xml/dom/DomAttr.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.dom;
+import gnu.java.lang.CPStringBuilder;
+
import org.w3c.dom.Attr;
import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
@@ -106,7 +108,37 @@ public class DomAttr
// and character data change events and when they happen,
// report self-mutation
}
-
+
+ /**
+ * Constructs an Attr node associated with the specified document.
+ * The "specified" flag is initialized to true, since this DOM has
+ * no current "back door" mechanisms to manage default values so
+ * that every value must effectively be "specified".
+ *
+ * <p>This constructor should only be invoked by a Document as part of
+ * its createAttribute functionality, or through a subclass which is
+ * similarly used in a "Sub-DOM" style layer.
+ * <p>
+ * With this constructor, the prefix and local part are given explicitly
+ * rather than being computed. This allows them to be explicitly set to
+ * {@code null} as required by {@link Document#createAttribute(String)}.
+ * </p>
+ *
+ * @param owner The document with which this node is associated
+ * @param namespaceURI Combined with the local part of the name,
+ * this is used to uniquely identify a type of attribute
+ * @param name Name of this attribute, which may include a prefix
+ * @param prefix the namespace prefix of the name. May be {@code null}.
+ * @param localName the local part of the name. May be {@code null}.
+ */
+ protected DomAttr(DomDocument owner, String namespaceURI, String name,
+ String prefix, String localName)
+ {
+ super(ATTRIBUTE_NODE, owner, namespaceURI, name, prefix, localName);
+ specified = true;
+ length = 1;
+ }
+
/**
* <b>DOM L1</b>
* Returns the attribute name (same as getNodeName)
@@ -147,7 +179,7 @@ public class DomAttr
return (value == null) ? "" : value;
}
// Otherwise collect child node-values
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (DomNode ctx = first; ctx != null; ctx = ctx.next)
{
switch (ctx.nodeType)
diff --git a/libjava/classpath/gnu/xml/dom/DomDocument.java b/libjava/classpath/gnu/xml/dom/DomDocument.java
index bcc7293..b32c6b8 100644
--- a/libjava/classpath/gnu/xml/dom/DomDocument.java
+++ b/libjava/classpath/gnu/xml/dom/DomDocument.java
@@ -597,6 +597,8 @@ public class DomDocument
/**
* <b>DOM L1</b>
* Returns a newly created element with the specified name.
+ * The node name of the created element will be equal to {@code name}.
+ * The namespace, prefix and local name will all be {@code null}.
*/
public Element createElement(String name)
{
@@ -612,8 +614,7 @@ public class DomDocument
}
else
{
- DomElement domElement = new DomElement(this, null, name);
- domElement.localName = null;
+ DomElement domElement = new DomElement(this, null, name, null, null);
element = domElement;
}
if (defaultAttributes)
@@ -813,8 +814,7 @@ public class DomDocument
}
else
{
- DomAttr ret = new DomAttr(this, null, name);
- ret.localName = null;
+ DomAttr ret = new DomAttr(this, null, name, null, null);
return ret;
}
}
diff --git a/libjava/classpath/gnu/xml/dom/DomElement.java b/libjava/classpath/gnu/xml/dom/DomElement.java
index 9fd81e9..462cb91 100644
--- a/libjava/classpath/gnu/xml/dom/DomElement.java
+++ b/libjava/classpath/gnu/xml/dom/DomElement.java
@@ -90,6 +90,32 @@ public class DomElement
}
/**
+ * <p>
+ * Constructs an Element node associated with the specified document.
+ * This constructor should only be invoked by a Document as part
+ * of its createElement functionality, or through a subclass which is
+ * similarly used in a "Sub-DOM" style layer.
+ * </p>
+ * <p>
+ * With this constructor, the prefix and local part are given explicitly
+ * rather than being computed. This allows them to be explicitly set to
+ * {@code null} as required by {@link Document#createElement(String)}.
+ * </p>
+ *
+ * @param owner The document with which this node is associated
+ * @param namespaceURI Combined with the local part of the name,
+ * this is used to uniquely identify a type of element
+ * @param name Name of this element, which may include a prefix
+ * @param prefix the namespace prefix of the name. May be {@code null}.
+ * @param localName the local part of the name. May be {@code null}.
+ */
+ protected DomElement(DomDocument owner, String namespaceURI, String name,
+ String prefix, String localName)
+ {
+ super(ELEMENT_NODE, owner, namespaceURI, name, prefix, localName);
+ }
+
+ /**
* <b>DOM L1</b>
* Returns the element's attributes
*/
diff --git a/libjava/classpath/gnu/xml/dom/DomEvent.java b/libjava/classpath/gnu/xml/dom/DomEvent.java
index d57eac0..9190ed8 100644
--- a/libjava/classpath/gnu/xml/dom/DomEvent.java
+++ b/libjava/classpath/gnu/xml/dom/DomEvent.java
@@ -37,8 +37,15 @@ exception statement from your version. */
package gnu.xml.dom;
-import org.w3c.dom.*;
-import org.w3c.dom.events.*;
+import gnu.java.lang.CPStringBuilder;
+
+import org.w3c.dom.Node;
+
+import org.w3c.dom.events.Event;
+import org.w3c.dom.events.EventTarget;
+import org.w3c.dom.events.MutationEvent;
+import org.w3c.dom.events.UIEvent;
+
import org.w3c.dom.views.AbstractView; // used by UIEvent
/**
@@ -180,7 +187,7 @@ public class DomEvent
*/
public String toString()
{
- StringBuffer buf = new StringBuffer("[Event ");
+ CPStringBuilder buf = new CPStringBuilder("[Event ");
buf.append(type);
switch (eventPhase)
{
diff --git a/libjava/classpath/gnu/xml/dom/DomNode.java b/libjava/classpath/gnu/xml/dom/DomNode.java
index 1cbdc2a..78e1ab8 100644
--- a/libjava/classpath/gnu/xml/dom/DomNode.java
+++ b/libjava/classpath/gnu/xml/dom/DomNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.dom;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
@@ -1939,7 +1941,7 @@ public abstract class DomNode
case ENTITY_NODE:
case ENTITY_REFERENCE_NODE:
case DOCUMENT_FRAGMENT_NODE:
- StringBuffer buffer = new StringBuffer();
+ CPStringBuilder buffer = new CPStringBuilder();
for (DomNode ctx = first; ctx != null; ctx = ctx.next)
{
String textContent = ctx.getTextContent(false);
@@ -2124,7 +2126,7 @@ public abstract class DomNode
{
String nodeName = getNodeName();
String nodeValue = getNodeValue();
- StringBuffer buf = new StringBuffer(getClass().getName());
+ CPStringBuilder buf = new CPStringBuilder(getClass().getName());
buf.append('[');
if (nodeName != null)
{
@@ -2146,7 +2148,7 @@ public abstract class DomNode
String encode(String value)
{
- StringBuffer buf = null;
+ CPStringBuilder buf = null;
int len = value.length();
for (int i = 0; i < len; i++)
{
@@ -2155,7 +2157,7 @@ public abstract class DomNode
{
if (buf == null)
{
- buf = new StringBuffer(value.substring(0, i));
+ buf = new CPStringBuilder(value.substring(0, i));
}
buf.append("\\n");
}
@@ -2163,7 +2165,7 @@ public abstract class DomNode
{
if (buf == null)
{
- buf = new StringBuffer(value.substring(0, i));
+ buf = new CPStringBuilder(value.substring(0, i));
}
buf.append("\\r");
}
diff --git a/libjava/classpath/gnu/xml/dom/DomNsNode.java b/libjava/classpath/gnu/xml/dom/DomNsNode.java
index b27514e..d336151 100644
--- a/libjava/classpath/gnu/xml/dom/DomNsNode.java
+++ b/libjava/classpath/gnu/xml/dom/DomNsNode.java
@@ -54,7 +54,7 @@ public abstract class DomNsNode
private String name;
private String namespace;
private String prefix;
- String localName;
+ private String localName;
/**
* Constructs a node associated with the specified document, and
@@ -76,6 +76,33 @@ public abstract class DomNsNode
}
/**
+ * Constructs a node associated with the specified document, and
+ * with the specified namespace information. The prefix and local part
+ * are given explicitly rather than being computed. This allows them
+ * to be explicitly set to {@code null} as required by
+ * {@link Document#createElement(String)}.
+ *
+ * @param owner The document with which this entity is associated
+ * @param namespaceURI Combined with the local part of the name,
+ * this identifies a type of element or attribute; may be null.
+ * If this is the empty string, it is reassigned as null so that
+ * applications only need to test that case.
+ * @param name Name of this node, which may include a prefix
+ * @param prefix the namespace prefix of the name. May be {@code null}.
+ * @param localName the local part of the name. May be {@code null}.
+ */
+ // package private
+ DomNsNode(short nodeType, DomDocument owner, String namespaceURI, String name,
+ String prefix, String localName)
+ {
+ super(nodeType, owner);
+ this.name = name.intern();
+ this.prefix = prefix == null ? null : prefix.intern();
+ this.localName = localName == null ? null : localName.intern();
+ setNamespaceURI(namespaceURI);
+ }
+
+ /**
* <b>DOM L1</b>
* Returns the node's name, including any namespace prefix.
*/
diff --git a/libjava/classpath/gnu/xml/dom/DomText.java b/libjava/classpath/gnu/xml/dom/DomText.java
index 3ca17dc..167eba3 100644
--- a/libjava/classpath/gnu/xml/dom/DomText.java
+++ b/libjava/classpath/gnu/xml/dom/DomText.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.dom;
+import gnu.java.lang.CPStringBuilder;
+
import org.w3c.dom.DOMException;
import org.w3c.dom.Text;
@@ -172,7 +174,7 @@ public class DomText
{
ref = ctx;
}
- StringBuffer buf = new StringBuffer(ref.getNodeValue());
+ CPStringBuilder buf = new CPStringBuilder(ref.getNodeValue());
for (ctx = ref.next; ctx != null &&
(ctx.nodeType == TEXT_NODE || ctx.nodeType == CDATA_SECTION_NODE);
ctx = ctx.next)
diff --git a/libjava/classpath/gnu/xml/dom/ls/DomLSInput.java b/libjava/classpath/gnu/xml/dom/ls/DomLSInput.java
index 44274ec..68705fd 100644
--- a/libjava/classpath/gnu/xml/dom/ls/DomLSInput.java
+++ b/libjava/classpath/gnu/xml/dom/ls/DomLSInput.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.dom.ls;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.IOException;
@@ -82,7 +84,7 @@ public class DomLSInput
public String getStringData()
{
- StringBuffer acc = new StringBuffer();
+ CPStringBuilder acc = new CPStringBuilder();
Reader reader = getCharacterStream();
try
{
diff --git a/libjava/classpath/gnu/xml/dom/ls/DomLSParser.java b/libjava/classpath/gnu/xml/dom/ls/DomLSParser.java
index 88f9bae..f4f555e 100644
--- a/libjava/classpath/gnu/xml/dom/ls/DomLSParser.java
+++ b/libjava/classpath/gnu/xml/dom/ls/DomLSParser.java
@@ -253,7 +253,7 @@ public class DomLSParser
eventSink = (filter == null) ? new SAXEventSink() :
new FilteredSAXEventSink(filter);
// configure sink
- eventSink.namespaceAware = namespaceAware;
+ eventSink.setNamespaceAware(namespaceAware);
eventSink.ignoreWhitespace = ignoreWhitespace;
eventSink.expandEntityReferences = expandEntityReferences;
eventSink.ignoreComments = ignoreComments;
diff --git a/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java b/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java
index 0a165aa..1f8de046 100644
--- a/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java
+++ b/libjava/classpath/gnu/xml/dom/ls/SAXEventSink.java
@@ -89,7 +89,7 @@ public class SAXEventSink
PREDEFINED_ENTITIES.add("apos");
}
- boolean namespaceAware;
+ private boolean namespaceAware;
boolean ignoreWhitespace;
boolean expandEntityReferences;
boolean ignoreComments;
@@ -128,6 +128,11 @@ public class SAXEventSink
this.locator = locator;
}
+ public void setNamespaceAware(boolean namespaceAware)
+ {
+ this.namespaceAware = namespaceAware;
+ }
+
public void startDocument()
throws SAXException
{
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeAttr.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeAttr.java
index 24088fb..144aaf8 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeAttr.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeAttr.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+
import org.w3c.dom.Attr;
import org.w3c.dom.DOMException;
import org.w3c.dom.Element;
@@ -103,7 +105,7 @@ class GnomeAttr
public String toString()
{
- StringBuffer buffer = new StringBuffer(getClass().getName());
+ CPStringBuilder buffer = new CPStringBuilder(getClass().getName());
buffer.append("[name=");
buffer.append(getName());
buffer.append(",value=");
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCharacterData.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCharacterData.java
index a320092..aa98652 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCharacterData.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeCharacterData.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+
import org.w3c.dom.CharacterData;
import org.w3c.dom.DOMException;
@@ -107,7 +109,7 @@ abstract class GnomeCharacterData
public String toString()
{
- StringBuffer buffer = new StringBuffer(getClass().getName());
+ CPStringBuilder buffer = new CPStringBuilder(getClass().getName());
buffer.append("[data=");
buffer.append(getData());
buffer.append("]");
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocument.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocument.java
index 03420c4..a533355 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocument.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocument.java
@@ -37,6 +37,9 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+import gnu.xml.dom.DomNodeIterator;
+
import java.util.Iterator;
import org.w3c.dom.Attr;
@@ -66,8 +69,6 @@ import org.w3c.dom.xpath.XPathException;
import org.w3c.dom.xpath.XPathExpression;
import org.w3c.dom.xpath.XPathNSResolver;
-import gnu.xml.dom.DomNodeIterator;
-
/**
* A DOM document node implemented in libxml2.
*
@@ -549,7 +550,7 @@ public class GnomeDocument
public String toString()
{
- StringBuffer buffer = new StringBuffer(getClass().getName());
+ CPStringBuilder buffer = new CPStringBuilder(getClass().getName());
buffer.append("[version=");
buffer.append(getXmlVersion());
buffer.append(",standalone=");
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentType.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentType.java
index 257fbbc..eb3a65f 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentType.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeDocumentType.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+
import org.w3c.dom.DocumentType;
import org.w3c.dom.NamedNodeMap;
@@ -79,7 +81,7 @@ implements DocumentType
public String toString ()
{
String publicId = getPublicId ();
- StringBuffer buffer = new StringBuffer (getClass ().getName ());
+ CPStringBuilder buffer = new CPStringBuilder (getClass ().getName ());
buffer.append ("[");
if (publicId != null)
{
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeElement.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeElement.java
index 2770cbb..e87e3ad 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeElement.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeElement.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.HashSet;
import java.util.Set;
@@ -172,7 +174,7 @@ class GnomeElement
public String toString()
{
- StringBuffer buffer = new StringBuffer(getClass().getName());
+ CPStringBuilder buffer = new CPStringBuilder(getClass().getName());
buffer.append("[tagName=");
buffer.append(getTagName());
buffer.append("]");
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntity.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntity.java
index 76367f8..8d61a26 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntity.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeEntity.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+
import org.w3c.dom.Entity;
/**
@@ -83,7 +85,7 @@ implements Entity
public String toString ()
{
String publicId = getPublicId ();
- StringBuffer buffer = new StringBuffer (getClass ().getName ());
+ CPStringBuilder buffer = new CPStringBuilder (getClass ().getName ());
buffer.append ("[");
if (publicId != null)
{
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNode.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNode.java
index 4a2e9ff..6f574ec 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNode.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
@@ -368,7 +370,7 @@ class GnomeNode
case ENTITY_NODE:
case ENTITY_REFERENCE_NODE:
case DOCUMENT_FRAGMENT_NODE:
- StringBuffer buffer = new StringBuffer();
+ CPStringBuilder buffer = new CPStringBuilder();
NodeList children = getChildNodes();
int len = children.getLength();
for (int i = 0; i < len; i++)
@@ -489,7 +491,7 @@ class GnomeNode
public String toString()
{
- StringBuffer buffer = new StringBuffer(getClass().getName());
+ CPStringBuilder buffer = new CPStringBuilder(getClass().getName());
buffer.append("[nodeName=");
buffer.append(getNodeName());
buffer.append("]");
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNotation.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNotation.java
index ca1560e..7f6fdf44 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNotation.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeNotation.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+
import org.w3c.dom.Notation;
/**
@@ -61,7 +63,7 @@ implements Notation
public String toString ()
{
String publicId = getPublicId ();
- StringBuffer buffer = new StringBuffer (getClass ().getName ());
+ CPStringBuilder buffer = new CPStringBuilder (getClass ().getName ());
buffer.append ("[");
if (publicId != null)
{
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java
index a6c47b2..d2ecd18 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+
import org.w3c.dom.DOMException;
import org.w3c.dom.ProcessingInstruction;
@@ -67,7 +69,7 @@ implements ProcessingInstruction
public String toString ()
{
- StringBuffer buffer = new StringBuffer (getClass ().getName ());
+ CPStringBuilder buffer = new CPStringBuilder (getClass ().getName ());
buffer.append ("[data=");
buffer.append (getData ());
buffer.append ("]");
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeText.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeText.java
index 77677a5..8b8e5e0 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeText.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeText.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.Text;
@@ -84,7 +86,7 @@ implements Text
first = node;
node = node.getPreviousSibling ();
}
- StringBuffer buf = new StringBuffer (first.getNodeValue ());
+ CPStringBuilder buf = new CPStringBuilder (first.getNodeValue ());
node = first.getNextSibling ();
while (node != null && node instanceof Text)
{
diff --git a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java
index d0e1a4f..850b5fa 100644
--- a/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java
+++ b/libjava/classpath/gnu/xml/libxmlj/dom/GnomeXPathResult.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.libxmlj.dom;
+import gnu.java.lang.CPStringBuilder;
+
import org.w3c.dom.DOMException;
import org.w3c.dom.Node;
import org.w3c.dom.xpath.XPathException;
@@ -112,7 +114,7 @@ implements XPathResult
case 1:
return getSingleNodeValue ().toString ();
default:
- StringBuffer buffer = new StringBuffer ();
+ CPStringBuilder buffer = new CPStringBuilder ();
for (int i = 0; i < len; i++)
{
if (i > 0)
diff --git a/libjava/classpath/gnu/xml/stream/XMLEventImpl.java b/libjava/classpath/gnu/xml/stream/XMLEventImpl.java
index de2fccb..8d73b17 100644
--- a/libjava/classpath/gnu/xml/stream/XMLEventImpl.java
+++ b/libjava/classpath/gnu/xml/stream/XMLEventImpl.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.stream;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Writer;
import javax.xml.namespace.QName;
import javax.xml.stream.Location;
@@ -141,7 +143,7 @@ public abstract class XMLEventImpl
protected String encode(String text, boolean inAttr)
{
int len = text.length();
- StringBuffer buf = null;
+ CPStringBuilder buf = null;
for (int i = 0; i < len; i++)
{
char c = text.charAt(i);
@@ -149,7 +151,7 @@ public abstract class XMLEventImpl
{
if (buf == null)
{
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
}
buf.append("&lt;");
}
@@ -157,7 +159,7 @@ public abstract class XMLEventImpl
{
if (buf == null)
{
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
}
buf.append("&gt;");
}
@@ -165,7 +167,7 @@ public abstract class XMLEventImpl
{
if (buf == null)
{
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
}
buf.append("&amp;");
}
@@ -173,7 +175,7 @@ public abstract class XMLEventImpl
{
if (buf == null)
{
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
}
buf.append("&apos;");
}
@@ -181,7 +183,7 @@ public abstract class XMLEventImpl
{
if (buf == null)
{
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
}
buf.append("&quot;");
}
diff --git a/libjava/classpath/gnu/xml/stream/XMLParser.java b/libjava/classpath/gnu/xml/stream/XMLParser.java
index 049575a..27aaa73 100644
--- a/libjava/classpath/gnu/xml/stream/XMLParser.java
+++ b/libjava/classpath/gnu/xml/stream/XMLParser.java
@@ -53,6 +53,8 @@ Partly derived from code which carried the following notice:
package gnu.xml.stream;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.BufferedInputStream;
import java.io.EOFException;
import java.io.File;
@@ -691,7 +693,7 @@ public class XMLParser
{
if (event != XMLStreamConstants.START_ELEMENT)
throw new XMLStreamException("current event must be START_ELEMENT");
- StringBuffer elementText = new StringBuffer();
+ CPStringBuilder elementText = new CPStringBuilder();
int depth = stack.size();
while (event != XMLStreamConstants.END_ELEMENT || stack.size() > depth)
{
@@ -2011,7 +2013,7 @@ public class XMLParser
else
{
ContentModel model;
- StringBuffer acc = new StringBuffer();
+ CPStringBuilder acc = new CPStringBuilder();
require('(');
acc.append('(');
skipWhitespace();
@@ -2058,7 +2060,7 @@ public class XMLParser
/**
* Parses an element content model.
*/
- private ElementContentModel readElements(StringBuffer acc)
+ private ElementContentModel readElements(CPStringBuilder acc)
throws IOException, XMLStreamException
{
int separator;
@@ -2159,7 +2161,7 @@ public class XMLParser
/**
* Parse a cp production.
*/
- private ContentParticle readContentParticle(StringBuffer acc)
+ private ContentParticle readContentParticle(CPStringBuilder acc)
throws IOException, XMLStreamException
{
ContentParticle cp = new ContentParticle();
@@ -2228,7 +2230,7 @@ public class XMLParser
{
String name = readNmtoken(true);
requireWhitespace();
- StringBuffer acc = new StringBuffer();
+ CPStringBuilder acc = new CPStringBuilder();
HashSet values = new HashSet();
String type = readAttType(acc, values);
if (validating)
@@ -2277,7 +2279,7 @@ public class XMLParser
/**
* Parse an attribute type.
*/
- private String readAttType(StringBuffer acc, HashSet values)
+ private String readAttType(CPStringBuilder acc, HashSet values)
throws IOException, XMLStreamException
{
if (tryRead('('))
@@ -2313,7 +2315,7 @@ public class XMLParser
/**
* Parse an enumeration.
*/
- private void readEnumeration(boolean isNames, StringBuffer acc,
+ private void readEnumeration(boolean isNames, CPStringBuilder acc,
HashSet values)
throws IOException, XMLStreamException
{
@@ -2344,7 +2346,7 @@ public class XMLParser
/**
* Parse a notation type for an attribute.
*/
- private void readNotationType(StringBuffer acc, HashSet values)
+ private void readNotationType(CPStringBuilder acc, HashSet values)
throws IOException, XMLStreamException
{
requireWhitespace();
@@ -3518,7 +3520,7 @@ public class XMLParser
private char[] readCharacterRef(int base)
throws IOException, XMLStreamException
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
for (int c = readCh(); c != 0x3b && c != -1; c = readCh())
b.append(Character.toChars(c));
try
@@ -4246,7 +4248,7 @@ public class XMLParser
throws XMLStreamException
{
// Use regular expression
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (Iterator i = children.iterator(); i.hasNext(); )
{
buf.append((String) i.next());
@@ -4266,7 +4268,7 @@ public class XMLParser
{
if (model.regex == null)
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
buf.append('(');
for (Iterator i = model.contentParticles.iterator(); i.hasNext(); )
{
@@ -4476,7 +4478,7 @@ public class XMLParser
*/
private static String encodeText(String text)
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
int len = text.length();
for (int i = 0; i < len; i++)
{
@@ -4584,7 +4586,7 @@ public class XMLParser
public String toString()
{
- StringBuffer buf = new StringBuffer(getClass().getName());
+ CPStringBuilder buf = new CPStringBuilder(getClass().getName());
buf.append('[');
buf.append("name=");
buf.append(name);
diff --git a/libjava/classpath/gnu/xml/transform/AbstractNumberNode.java b/libjava/classpath/gnu/xml/transform/AbstractNumberNode.java
index 6d1202e..fb953e4 100644
--- a/libjava/classpath/gnu/xml/transform/AbstractNumberNode.java
+++ b/libjava/classpath/gnu/xml/transform/AbstractNumberNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
@@ -140,7 +142,7 @@ abstract class AbstractNumberNode
start = end;
}
// Process tokens
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
len = tokens.size();
int pos = 0;
for (int i = 0; i < len; i++)
@@ -188,7 +190,7 @@ abstract class AbstractNumberNode
return l;
}*/
- void format(StringBuffer buf, int number, String formatToken)
+ void format(CPStringBuilder buf, int number, String formatToken)
{
int len = formatToken.length();
char c = formatToken.charAt(len - 1);
@@ -254,7 +256,7 @@ abstract class AbstractNumberNode
static final String alphabetic(char offset, int number)
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
while (number > 0)
{
int r = number % 26;
@@ -269,7 +271,7 @@ abstract class AbstractNumberNode
static final String roman(boolean upper, int number)
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (int pos = roman_numbers.length - 1; pos >= 0; pos -= 2)
{
int f = number / roman_numbers[pos];
@@ -317,7 +319,7 @@ abstract class AbstractNumberNode
public String toString()
{
- StringBuffer buf = new StringBuffer("number");
+ CPStringBuilder buf = new CPStringBuilder("number");
buf.append('[');
buf.append("format=");
buf.append(format);
diff --git a/libjava/classpath/gnu/xml/transform/ApplyTemplatesNode.java b/libjava/classpath/gnu/xml/transform/ApplyTemplatesNode.java
index 041809b..0daaa7a 100644
--- a/libjava/classpath/gnu/xml/transform/ApplyTemplatesNode.java
+++ b/libjava/classpath/gnu/xml/transform/ApplyTemplatesNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -192,7 +194,7 @@ final class ApplyTemplatesNode
public String toString()
{
- StringBuffer buf = new StringBuffer("apply-templates");
+ CPStringBuilder buf = new CPStringBuilder("apply-templates");
buf.append('[');
boolean o = false;
if (select != null)
diff --git a/libjava/classpath/gnu/xml/transform/AttributeNode.java b/libjava/classpath/gnu/xml/transform/AttributeNode.java
index 71e2ed0..bbc4e08 100644
--- a/libjava/classpath/gnu/xml/transform/AttributeNode.java
+++ b/libjava/classpath/gnu/xml/transform/AttributeNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
@@ -231,7 +233,7 @@ final class AttributeNode
public String toString()
{
- StringBuffer buf = new StringBuffer("attribute");
+ CPStringBuilder buf = new CPStringBuilder("attribute");
buf.append('[');
buf.append("name=");
buf.append(name);
diff --git a/libjava/classpath/gnu/xml/transform/Bindings.java b/libjava/classpath/gnu/xml/transform/Bindings.java
index 4ee0832..0093213 100644
--- a/libjava/classpath/gnu/xml/transform/Bindings.java
+++ b/libjava/classpath/gnu/xml/transform/Bindings.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
@@ -259,7 +261,7 @@ public class Bindings
public String toString()
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
boolean next = false;
Collection seen = new HashSet();
Map wctx = (Map) withParameters.getFirst();
diff --git a/libjava/classpath/gnu/xml/transform/CallTemplateNode.java b/libjava/classpath/gnu/xml/transform/CallTemplateNode.java
index 31b26cb..fe0eea7 100644
--- a/libjava/classpath/gnu/xml/transform/CallTemplateNode.java
+++ b/libjava/classpath/gnu/xml/transform/CallTemplateNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.Iterator;
import java.util.LinkedList;
@@ -86,7 +88,7 @@ final class CallTemplateNode
TemplateNode t = stylesheet.getTemplate(mode, name);
if (t != null)
{
- if (withParams != null)
+ if (!withParams.isEmpty())
{
// compute the parameter values
LinkedList values = new LinkedList();
@@ -118,7 +120,7 @@ final class CallTemplateNode
}
t.apply(stylesheet, mode, context, pos, len,
parent, nextSibling);
- if (withParams != null)
+ if (!withParams.isEmpty())
{
// pop the variable context
stylesheet.bindings.pop(Bindings.WITH_PARAM);
@@ -133,20 +135,17 @@ final class CallTemplateNode
public boolean references(QName var)
{
- if (withParams != null)
+ for (Iterator i = withParams.iterator(); i.hasNext(); )
{
- for (Iterator i = withParams.iterator(); i.hasNext(); )
- {
- if (((WithParam) i.next()).references(var))
- return true;
- }
+ if (((WithParam) i.next()).references(var))
+ return true;
}
return super.references(var);
}
public String toString()
{
- StringBuffer buf = new StringBuffer("call-template");
+ CPStringBuilder buf = new CPStringBuilder("call-template");
buf.append('[');
buf.append("name=");
buf.append(name);
diff --git a/libjava/classpath/gnu/xml/transform/ChooseNode.java b/libjava/classpath/gnu/xml/transform/ChooseNode.java
index cf07fa5..fe2dc0c 100644
--- a/libjava/classpath/gnu/xml/transform/ChooseNode.java
+++ b/libjava/classpath/gnu/xml/transform/ChooseNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
import org.w3c.dom.Node;
@@ -77,7 +79,7 @@ final class ChooseNode
public String toString()
{
- StringBuffer buf = new StringBuffer("choose");
+ CPStringBuilder buf = new CPStringBuilder("choose");
buf.append('[');
buf.append(']');
return buf.toString();
diff --git a/libjava/classpath/gnu/xml/transform/CopyNode.java b/libjava/classpath/gnu/xml/transform/CopyNode.java
index 64cfa51..bae628d 100644
--- a/libjava/classpath/gnu/xml/transform/CopyNode.java
+++ b/libjava/classpath/gnu/xml/transform/CopyNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Iterator;
import java.util.StringTokenizer;
import javax.xml.namespace.QName;
@@ -152,7 +154,7 @@ final class CopyNode
public String toString()
{
- StringBuffer buf = new StringBuffer("copy");
+ CPStringBuilder buf = new CPStringBuilder("copy");
if (uas != null)
{
buf.append('[');
diff --git a/libjava/classpath/gnu/xml/transform/CopyOfNode.java b/libjava/classpath/gnu/xml/transform/CopyOfNode.java
index ed4358c..4ce8432 100644
--- a/libjava/classpath/gnu/xml/transform/CopyOfNode.java
+++ b/libjava/classpath/gnu/xml/transform/CopyOfNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -161,7 +163,7 @@ final class CopyOfNode
public String toString()
{
- StringBuffer buf = new StringBuffer("copy-of");
+ CPStringBuilder buf = new CPStringBuilder("copy-of");
buf.append('[');
buf.append("select=");
buf.append(select);
diff --git a/libjava/classpath/gnu/xml/transform/ElementNode.java b/libjava/classpath/gnu/xml/transform/ElementNode.java
index b6a5c36..c5a4dd2 100644
--- a/libjava/classpath/gnu/xml/transform/ElementNode.java
+++ b/libjava/classpath/gnu/xml/transform/ElementNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Collection;
import java.util.Collections;
import java.util.HashSet;
@@ -238,7 +240,7 @@ final class ElementNode
public String toString()
{
- StringBuffer buf = new StringBuffer("element");
+ CPStringBuilder buf = new CPStringBuilder("element");
buf.append('[');
buf.append("name=");
if (namespace != null)
diff --git a/libjava/classpath/gnu/xml/transform/ForEachNode.java b/libjava/classpath/gnu/xml/transform/ForEachNode.java
index 25b8245..8908114 100644
--- a/libjava/classpath/gnu/xml/transform/ForEachNode.java
+++ b/libjava/classpath/gnu/xml/transform/ForEachNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
@@ -57,9 +59,9 @@ final class ForEachNode
{
final Expr select;
- final List sortKeys;
+ final List<SortKey> sortKeys;
- ForEachNode(Expr select, List sortKeys)
+ ForEachNode(Expr select, List<SortKey> sortKeys)
{
this.select = select;
this.sortKeys = sortKeys;
@@ -67,10 +69,10 @@ final class ForEachNode
TemplateNode clone(Stylesheet stylesheet)
{
- int len = sortKeys != null ? sortKeys.size() : 0;
- List sortKeys2 = new ArrayList(len);
+ int len = sortKeys.size();
+ List<SortKey> sortKeys2 = new ArrayList<SortKey>(len);
for (int i = 0; i < len; i++)
- sortKeys2.add(((Key) sortKeys.get(i)).clone(stylesheet));
+ sortKeys2.add(sortKeys.get(i).clone(stylesheet));
TemplateNode ret = new ForEachNode(select.clone(stylesheet),
sortKeys2);
if (children != null)
@@ -80,6 +82,7 @@ final class ForEachNode
return ret;
}
+ @Override
void doApply(Stylesheet stylesheet, QName mode,
Node context, int pos, int len,
Node parent, Node nextSibling)
@@ -94,26 +97,26 @@ final class ForEachNode
//System.err.println(toString() + ": " + context+" -> "+ret);
if (ret instanceof Collection)
{
- Collection ns = (Collection) ret;
- List list = new ArrayList(ns);
- if (sortKeys != null)
- {
- for (Iterator i = sortKeys.iterator(); i.hasNext(); )
- {
- SortKey sortKey = (SortKey) i.next();
- sortKey.init(stylesheet, mode, context, pos, len, parent,
- nextSibling);
- }
- Collections.sort(list, new XSLComparator(sortKeys));
- }
- else
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> ns = (Collection<Node>) ret;
+ List<Node> list = new ArrayList<Node>(ns);
+ if (!sortKeys.isEmpty())
+ {
+ for (SortKey sortKey : sortKeys)
+ {
+ sortKey.init(stylesheet, mode, context, pos, len, parent,
+ nextSibling);
+ }
+ Collections.sort(list, new XSLComparator(sortKeys));
+ }
+ else
Collections.sort(list, documentOrderComparator);
// Perform children for each node
int l = list.size();
int p = 1;
- for (Iterator i = list.iterator(); i.hasNext(); )
+ for (Node node : list)
{
- Node node = (Node) i.next();
stylesheet.current = node;
children.apply(stylesheet, mode,
node, p++, l,
@@ -129,24 +132,23 @@ final class ForEachNode
parent, nextSibling);
}
+ @Override
public boolean references(QName var)
{
if (select != null && select.references(var))
return true;
- if (sortKeys != null)
+ for (Iterator<SortKey> i = sortKeys.iterator(); i.hasNext(); )
{
- for (Iterator i = sortKeys.iterator(); i.hasNext(); )
- {
- if (((SortKey) i.next()).references(var))
- return true;
- }
+ if (i.next().references(var))
+ return true;
}
return super.references(var);
}
-
+
+ @Override
public String toString()
{
- StringBuffer buf = new StringBuffer("for-each");
+ CPStringBuilder buf = new CPStringBuilder("for-each");
buf.append('[');
buf.append("select=");
buf.append(select);
diff --git a/libjava/classpath/gnu/xml/transform/IfNode.java b/libjava/classpath/gnu/xml/transform/IfNode.java
index 2a00d64..eeb2941 100644
--- a/libjava/classpath/gnu/xml/transform/IfNode.java
+++ b/libjava/classpath/gnu/xml/transform/IfNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
import org.w3c.dom.Node;
@@ -99,7 +101,7 @@ final class IfNode
public String toString()
{
- StringBuffer buf = new StringBuffer("if");
+ CPStringBuilder buf = new CPStringBuilder("if");
buf.append('[');
buf.append("test=");
buf.append(test);
diff --git a/libjava/classpath/gnu/xml/transform/MessageNode.java b/libjava/classpath/gnu/xml/transform/MessageNode.java
index 890d76f..a7eeeee 100644
--- a/libjava/classpath/gnu/xml/transform/MessageNode.java
+++ b/libjava/classpath/gnu/xml/transform/MessageNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.logging.Logger;
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
@@ -95,7 +97,7 @@ final class MessageNode
public String toString()
{
- StringBuffer buf = new StringBuffer("message");
+ CPStringBuilder buf = new CPStringBuilder("message");
if (terminate)
{
buf.append('[');
diff --git a/libjava/classpath/gnu/xml/transform/ParameterNode.java b/libjava/classpath/gnu/xml/transform/ParameterNode.java
index 8cd2677..431fbd3 100644
--- a/libjava/classpath/gnu/xml/transform/ParameterNode.java
+++ b/libjava/classpath/gnu/xml/transform/ParameterNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Collections;
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
@@ -53,7 +55,7 @@ import gnu.xml.xpath.Expr;
*/
final class ParameterNode
extends TemplateNode
- implements Comparable
+ implements Comparable<ParameterNode>
{
final QName name;
@@ -67,11 +69,12 @@ final class ParameterNode
this.type = type;
}
- TemplateNode clone(Stylesheet stylesheet)
+ @Override
+ ParameterNode clone(Stylesheet stylesheet)
{
- TemplateNode ret = new ParameterNode(name,
- select.clone(stylesheet),
- type);
+ ParameterNode ret = new ParameterNode(name,
+ select == null ? null : select.clone(stylesheet),
+ type);
if (children != null)
ret.children = children.clone(stylesheet);
if (next != null)
@@ -129,26 +132,22 @@ final class ParameterNode
return super.references(var);
}
- public int compareTo(Object other)
+ public int compareTo(ParameterNode pn)
{
- if (other instanceof ParameterNode)
- {
- ParameterNode pn = (ParameterNode) other;
- boolean r1 = references(pn.name);
- boolean r2 = pn.references(name);
- if (r1 && r2)
- throw new IllegalArgumentException("circular definitions");
- if (r1)
- return 1;
- if (r2)
- return -1;
- }
+ boolean r1 = references(pn.name);
+ boolean r2 = pn.references(name);
+ if (r1 && r2)
+ throw new IllegalArgumentException("circular definitions");
+ if (r1)
+ return 1;
+ if (r2)
+ return -1;
return 0;
}
public String toString()
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
switch (type)
{
case Bindings.VARIABLE:
@@ -164,11 +163,8 @@ final class ParameterNode
buf.append('[');
buf.append("name=");
buf.append(name);
- if (select != null)
- {
- buf.append(",select=");
- buf.append(select);
- }
+ buf.append(",select=");
+ buf.append(select);
buf.append(']');
return buf.toString();
}
diff --git a/libjava/classpath/gnu/xml/transform/ProcessingInstructionNode.java b/libjava/classpath/gnu/xml/transform/ProcessingInstructionNode.java
index bf61fc0..655f51f 100644
--- a/libjava/classpath/gnu/xml/transform/ProcessingInstructionNode.java
+++ b/libjava/classpath/gnu/xml/transform/ProcessingInstructionNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
import org.w3c.dom.Document;
@@ -105,7 +107,7 @@ final class ProcessingInstructionNode
public String toString()
{
- StringBuffer buf = new StringBuffer("processing-instruction");
+ CPStringBuilder buf = new CPStringBuilder("processing-instruction");
buf.append('[');
buf.append("name=");
buf.append(name);
diff --git a/libjava/classpath/gnu/xml/transform/SortKey.java b/libjava/classpath/gnu/xml/transform/SortKey.java
index d4ffb05..72934a5 100644
--- a/libjava/classpath/gnu/xml/transform/SortKey.java
+++ b/libjava/classpath/gnu/xml/transform/SortKey.java
@@ -45,7 +45,22 @@ import org.w3c.dom.Node;
import gnu.xml.xpath.Expr;
/**
- * An XSL sort key.
+ * <p>
+ * An XSL sort key, as specified by section 10 of the XSL
+ * Transformations specification. This takes the form:
+ * </p>
+ * <pre>
+ * &lt;xsl:sort
+ * select = string-expression
+ * lang = { nmtoken }
+ * data-type = { "text" | "number" | qname-but-not-ncname }
+ * order = { "ascending" | "descending" }
+ * case-order = { "upper-first" | "lower-first" } /&rt;
+ * </pre>
+ * <p>
+ * Note that all but the selection expression are optional,
+ * and so may be {@code null}.
+ * </p>
*
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
@@ -67,6 +82,20 @@ final class SortKey
transient boolean descending;
transient int caseOrder;
+ /**
+ * Constructs a new {@link SortKey} to represent an &lt;xsl:sort&rt;
+ * tag.
+ *
+ * @param select the XPath expression which selects the nodes to be sorted.
+ * @param lang the language of the sort keys or {@code null} if unspecified.
+ * @param dataType the data type of the strings. May be "string", "number",
+ * a QName or {@code null} if unspecified.
+ * @param order the ordering of the nodes, which may be "ascending", "descending"
+ * or {@code null} if unspecified.
+ * @param caseOrder the treatment of case when the data type is a string. This
+ * may be "upper-first", "lower-first" or {@code null} if
+ * unspecified.
+ */
SortKey(Expr select, TemplateNode lang, TemplateNode dataType,
TemplateNode order, TemplateNode caseOrder)
{
@@ -176,4 +205,35 @@ final class SortKey
return false;
}
+ /**
+ * Provides a clone of this {@link SortKey}, using the given
+ * stylesheet as a context.
+ *
+ * @param stylesheet the stylesheet which provides context for the cloning.
+ * @return a clone of this instance.
+ */
+ SortKey clone(Stylesheet stylesheet)
+ {
+ return new SortKey(select.clone(stylesheet),
+ langTemplate == null ? null : cloneAttributeValueTemplate(langTemplate, stylesheet),
+ dataTypeTemplate == null ? null : cloneAttributeValueTemplate(dataTypeTemplate, stylesheet),
+ orderTemplate == null ? null : cloneAttributeValueTemplate(orderTemplate, stylesheet),
+ caseOrderTemplate == null ? null : cloneAttributeValueTemplate(caseOrderTemplate, stylesheet));
+ }
+
+ /**
+ * Clones an attribute value template as created by
+ * {@link Stylesheet#parseAttributeValueTemplate(String, Node)}.
+ * The node may either by a literal node or an xsl:value-of expression.
+ *
+ * @param node the node to clone.
+ * @param stylesheet the stylesheet which provides context for the cloning.
+ * @return the cloned node.
+ */
+ private TemplateNode cloneAttributeValueTemplate(TemplateNode node, Stylesheet stylesheet)
+ {
+ if (node instanceof ValueOfNode)
+ return ((ValueOfNode) node).clone(stylesheet);
+ return ((LiteralNode) node).clone(stylesheet);
+ }
}
diff --git a/libjava/classpath/gnu/xml/transform/StreamSerializer.java b/libjava/classpath/gnu/xml/transform/StreamSerializer.java
index 35323e7..2899672 100644
--- a/libjava/classpath/gnu/xml/transform/StreamSerializer.java
+++ b/libjava/classpath/gnu/xml/transform/StreamSerializer.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.OutputStream;
@@ -595,7 +597,7 @@ public class StreamSerializer
if (!encoder.canEncode(text) || htmlNeedingEncoding)
{
// Check each character
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
int len = text.length();
for (int i = 0; i < len; i++)
{
@@ -648,20 +650,20 @@ public class StreamSerializer
String encode(String text, boolean encodeCtl, boolean inAttr)
{
int len = text.length();
- StringBuffer buf = null;
+ CPStringBuilder buf = null;
for (int i = 0; i < len; i++)
{
char c = text.charAt(i);
if (c == '<')
{
if (buf == null)
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
buf.append("&lt;");
}
else if (c == '>')
{
if (buf == null)
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
buf.append("&gt;");
}
else if (c == '&')
@@ -675,14 +677,14 @@ public class StreamSerializer
else
{
if (buf == null)
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
buf.append("&amp;");
}
}
else if (c == '\'' && inAttr)
{
if (buf == null)
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
if (mode == Stylesheet.OUTPUT_HTML)
// HTML does not define &apos;, use character entity ref
buf.append("&#x27;");
@@ -692,7 +694,7 @@ public class StreamSerializer
else if (c == '"' && inAttr)
{
if (buf == null)
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
buf.append("&quot;");
}
else if (encodeCtl)
@@ -700,7 +702,7 @@ public class StreamSerializer
if (c < 0x20)
{
if (buf == null)
- buf = new StringBuffer(text.substring(0, i));
+ buf = new CPStringBuilder(text.substring(0, i));
buf.append('&');
buf.append('#');
buf.append((int) c);
diff --git a/libjava/classpath/gnu/xml/transform/Stylesheet.java b/libjava/classpath/gnu/xml/transform/Stylesheet.java
index 41562c3..30bd95349 100644
--- a/libjava/classpath/gnu/xml/transform/Stylesheet.java
+++ b/libjava/classpath/gnu/xml/transform/Stylesheet.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
import java.util.ArrayList;
@@ -108,18 +110,18 @@ class Stylesheet
*/
String version;
- Collection extensionElementPrefixes;
- Collection excludeResultPrefixes;
+ Collection<String> extensionElementPrefixes;
+ Collection<String> excludeResultPrefixes;
/**
* Set of element names for which we should strip whitespace.
*/
- Set stripSpace;
+ Set<StrippingInstruction> stripSpace;
/**
* Set of element names for which we should preserve whitespace.
*/
- Set preserveSpace;
+ Set<StrippingInstruction> preserveSpace;
/**
* Output options.
@@ -132,34 +134,34 @@ class Stylesheet
boolean outputStandalone;
String outputPublicId;
String outputSystemId;
- Collection outputCdataSectionElements;
+ Collection<String> outputCdataSectionElements;
boolean outputIndent;
String outputMediaType;
/**
* Keys.
*/
- Collection keys;
+ Collection<Key> keys;
/**
* Decimal formats.
*/
- Map decimalFormats;
+ Map<String,DecimalFormat> decimalFormats;
/**
* Namespace aliases.
*/
- Map namespaceAliases;
+ Map<String,String> namespaceAliases;
/**
* Attribute-sets.
*/
- List attributeSets;
+ List<AttributeSet> attributeSets;
/**
* Variables.
*/
- List variables;
+ List<ParameterNode> variables;
/**
* Variable and parameter bindings.
@@ -169,7 +171,7 @@ class Stylesheet
/**
* Templates.
*/
- LinkedList templates;
+ LinkedList<Template> templates;
TemplateNode builtInNodeTemplate;
TemplateNode builtInTextTemplate;
@@ -203,22 +205,22 @@ class Stylesheet
this.systemId = systemId;
this.precedence = precedence;
this.parent = parent;
- extensionElementPrefixes = new HashSet();
- excludeResultPrefixes = new HashSet();
- stripSpace = new LinkedHashSet();
- preserveSpace = new LinkedHashSet();
- outputCdataSectionElements = new LinkedHashSet();
+ extensionElementPrefixes = new HashSet<String>();
+ excludeResultPrefixes = new HashSet<String>();
+ stripSpace = new LinkedHashSet<StrippingInstruction>();
+ preserveSpace = new LinkedHashSet<StrippingInstruction>();
+ outputCdataSectionElements = new LinkedHashSet<String>();
xpath = (XPathImpl) factory.xpathFactory.newXPath();
xpath.setNamespaceContext(this);
if (parent == null)
{
bindings = new Bindings(this);
- attributeSets = new LinkedList();
- variables = new LinkedList();
- namespaceAliases = new LinkedHashMap();
- templates = new LinkedList();
- keys = new LinkedList();
- decimalFormats = new LinkedHashMap();
+ attributeSets = new LinkedList<AttributeSet>();
+ variables = new LinkedList<ParameterNode>();
+ namespaceAliases = new LinkedHashMap<String,String>();
+ templates = new LinkedList<Template>();
+ keys = new LinkedList<Key>();
+ decimalFormats = new LinkedHashMap<String,DecimalFormat>();
initDefaultDecimalFormat();
xpath.setXPathFunctionResolver(this);
}
@@ -247,7 +249,7 @@ class Stylesheet
xpath.setXPathVariableResolver(bindings);
Test anyNode = new NodeTypeTest((short) 0);
- List tests = Collections.singletonList(anyNode);
+ List<Test> tests = Collections.singletonList(anyNode);
builtInNodeTemplate =
new ApplyTemplatesNode(new Selector(Selector.CHILD, tests),
null, null, null, true);
@@ -263,9 +265,8 @@ class Stylesheet
if (debug)
{
System.err.println("Stylesheet: " + doc.getDocumentURI());
- for (Iterator i = templates.iterator(); i.hasNext(); )
+ for (Template t : templates)
{
- Template t = (Template) i.next();
t.list(System.err);
System.err.println("--------------------");
}
@@ -307,34 +308,30 @@ class Stylesheet
Stylesheet clone = (Stylesheet) super.clone();
clone.bindings = (Bindings) bindings.clone();
- LinkedList templates2 = new LinkedList();
- for (Iterator i = templates.iterator(); i.hasNext(); )
+ LinkedList<Template> templates2 = new LinkedList<Template>();
+ for (Template t : templates)
{
- Template t = (Template) i.next();
templates2.add(t.clone(clone));
}
clone.templates = templates2;
- LinkedList attributeSets2 = new LinkedList();
- for (Iterator i = attributeSets.iterator(); i.hasNext(); )
+ LinkedList<AttributeSet> attributeSets2 = new LinkedList<AttributeSet>();
+ for (AttributeSet as : attributeSets)
{
- AttributeSet as = (AttributeSet) i.next();
attributeSets2.add(as.clone(clone));
}
clone.attributeSets = attributeSets2;
- LinkedList variables2 = new LinkedList();
- for (Iterator i = variables.iterator(); i.hasNext(); )
+ LinkedList<ParameterNode> variables2 = new LinkedList<ParameterNode>();
+ for (ParameterNode var : variables)
{
- ParameterNode var = (ParameterNode) i.next();
variables2.add(var.clone(clone));
}
clone.variables = variables2;
- LinkedList keys2 = new LinkedList();
- for (Iterator i = keys.iterator(); i.hasNext(); )
+ LinkedList<Key> keys2 = new LinkedList<Key>();
+ for (Key k : keys)
{
- Key k = (Key) i.next();
keys2.add(k.clone(clone));
}
clone.keys = keys2;
@@ -357,11 +354,10 @@ class Stylesheet
// See XSLT 11.4: "If the template or expression specifying the value of
// a global variable x references a global variable y, then the value
// for y must be computed before the value of x."
- List topLevel = new ArrayList(variables);
+ List<ParameterNode> topLevel = new ArrayList<ParameterNode>(variables);
Collections.sort(topLevel);
- for (Iterator i = topLevel.iterator(); i.hasNext(); )
+ for (ParameterNode var : topLevel)
{
- ParameterNode var = (ParameterNode) i.next();
bindings.set(var.name,
var.getValue(this, null, context, 1, 1),
var.type);
@@ -381,7 +377,7 @@ class Stylesheet
return (current == null) ? null : current.lookupPrefix(namespaceURI);
}
- public Iterator getPrefixes(String namespaceURI)
+ public Iterator<String> getPrefixes(String namespaceURI)
{
// TODO
return Collections.singleton(getPrefix(namespaceURI)).iterator();
@@ -408,9 +404,8 @@ class Stylesheet
if (debug)
System.err.println("getTemplate: mode="+mode+" context="+context);
Template selected = null;
- for (Iterator j = templates.iterator(); j.hasNext(); )
+ for (Template t : templates)
{
- Template t = (Template) j.next();
boolean isMatch = t.matches(mode, context);
if (applyImports)
{
@@ -472,9 +467,8 @@ class Stylesheet
throws TransformerException
{
Template selected = null;
- for (Iterator j = templates.iterator(); j.hasNext(); )
+ for (Template t : templates)
{
- Template t = (Template) j.next();
boolean isMatch = t.matches(name);
if (isMatch)
{
@@ -862,8 +856,8 @@ class Stylesheet
// Tokenize
int len = value.length();
int off = 0;
- List tokens = new ArrayList(); // text tokens
- List types = new ArrayList(); // literal or expression
+ List<String> tokens = new ArrayList<String>(); // text tokens
+ List<Boolean> types = new ArrayList<Boolean>(); // literal or expression
int depth = 0;
for (int i = 0; i < len; i++)
{
@@ -936,8 +930,8 @@ class Stylesheet
len = tokens.size();
for (int i = len - 1; i >= 0; i--)
{
- String token = (String) tokens.get(i);
- Boolean type = (Boolean) types.get(i);
+ String token = tokens.get(i);
+ Boolean type = types.get(i);
if (type == Boolean.TRUE)
{
// Expression text
@@ -989,9 +983,8 @@ class Stylesheet
{
// Conflict resolution
StrippingInstruction ssi = null, psi = null;
- for (Iterator i = stripSpace.iterator(); i.hasNext(); )
+ for (StrippingInstruction si : stripSpace)
{
- StrippingInstruction si = (StrippingInstruction) i.next();
if (si.element.matches(ctx, 1, 1))
{
if (ssi != null)
@@ -1005,9 +998,8 @@ class Stylesheet
ssi = si;
}
}
- for (Iterator i = preserveSpace.iterator(); i.hasNext(); )
+ for (StrippingInstruction si : preserveSpace)
{
- StrippingInstruction si = (StrippingInstruction) i.next();
if (si.element.matches(ctx, 1, 1))
{
if (psi != null)
@@ -1114,8 +1106,8 @@ class Stylesheet
if (s == null)
s = "child::node()";
Node children = node.getFirstChild();
- List sortKeys = parseSortKeys(children);
- List withParams = parseWithParams(children);
+ List<SortKey> sortKeys = parseSortKeys(children);
+ List<WithParam> withParams = parseWithParams(children);
Expr select = (Expr) xpath.compile(s);
return new ApplyTemplatesNode(select, mode,
sortKeys, withParams, false);
@@ -1131,7 +1123,7 @@ class Stylesheet
String n = getRequiredAttribute(attrs, "name", node);
QName name = getQName(n);
Node children = node.getFirstChild();
- List withParams = parseWithParams(children);
+ List<WithParam> withParams = parseWithParams(children);
return new CallTemplateNode(name, withParams);
}
@@ -1158,7 +1150,7 @@ class Stylesheet
NamedNodeMap attrs = node.getAttributes();
String s = getRequiredAttribute(attrs, "select", node);
Node children = node.getFirstChild();
- List sortKeys = parseSortKeys(children);
+ List<SortKey> sortKeys = parseSortKeys(children);
Expr select = (Expr) xpath.compile(s);
ForEachNode ret = new ForEachNode(select, sortKeys);
ret.children = parse(children);
@@ -1620,10 +1612,10 @@ class Stylesheet
return ret;
}
- final List parseSortKeys(Node node)
+ final List<SortKey> parseSortKeys(Node node)
throws TransformerConfigurationException, XPathExpressionException
{
- List ret = new LinkedList();
+ List<SortKey> ret = new LinkedList<SortKey>();
while (node != null)
{
String namespaceUri = node.getNamespaceURI();
@@ -1652,13 +1644,13 @@ class Stylesheet
}
node = node.getNextSibling();
}
- return ret.isEmpty() ? null : ret;
+ return ret;
}
- final List parseWithParams(Node node)
+ final List<WithParam> parseWithParams(Node node)
throws TransformerConfigurationException, XPathExpressionException
{
- List ret = new LinkedList();
+ List<WithParam> ret = new LinkedList<WithParam>();
while (node != null)
{
String namespaceUri = node.getNamespaceURI();
@@ -1688,7 +1680,7 @@ class Stylesheet
}
node = node.getNextSibling();
}
- return ret.isEmpty() ? null : ret;
+ return ret;
}
/**
@@ -1697,7 +1689,7 @@ class Stylesheet
* exclude-result-prefixes.
*/
final void addNamespaceNodes(Node source, Node target, Document doc,
- Collection elementExcludeResultPrefixes)
+ Collection<String> elementExcludeResultPrefixes)
{
NamedNodeMap attrs = source.getAttributes();
if (attrs != null)
@@ -1768,5 +1760,14 @@ class Stylesheet
dst.setUserData(key, data, this);
}
+ public String toString()
+ {
+ CPStringBuilder b = new CPStringBuilder(getClass().getName());
+ b.append("[templates=");
+ b.append(templates);
+ b.append("]");
+ return b.toString();
+ }
+
}
diff --git a/libjava/classpath/gnu/xml/transform/Template.java b/libjava/classpath/gnu/xml/transform/Template.java
index 1414dac..7ddef0a 100644
--- a/libjava/classpath/gnu/xml/transform/Template.java
+++ b/libjava/classpath/gnu/xml/transform/Template.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.PrintStream;
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
@@ -226,7 +228,7 @@ class Template
public String toString()
{
- StringBuffer buf = new StringBuffer(getClass().getName());
+ CPStringBuilder buf = new CPStringBuilder(getClass().getName());
buf.append('[');
if (name != null)
{
@@ -243,6 +245,8 @@ class Template
buf.append(",mode=");
buf.append(mode);
}
+ buf.append(",node=");
+ buf.append(node);
buf.append(']');
return buf.toString();
diff --git a/libjava/classpath/gnu/xml/transform/TemplateNode.java b/libjava/classpath/gnu/xml/transform/TemplateNode.java
index 6ff727c..ad80c59 100644
--- a/libjava/classpath/gnu/xml/transform/TemplateNode.java
+++ b/libjava/classpath/gnu/xml/transform/TemplateNode.java
@@ -52,7 +52,7 @@ import gnu.xml.xpath.DocumentOrderComparator;
abstract class TemplateNode
{
- static final Comparator documentOrderComparator =
+ static final Comparator<Node> documentOrderComparator =
new DocumentOrderComparator();
TemplateNode children;
diff --git a/libjava/classpath/gnu/xml/transform/TemplatesImpl.java b/libjava/classpath/gnu/xml/transform/TemplatesImpl.java
index 527bd97..e5395f6 100644
--- a/libjava/classpath/gnu/xml/transform/TemplatesImpl.java
+++ b/libjava/classpath/gnu/xml/transform/TemplatesImpl.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Properties;
import javax.xml.transform.Templates;
import javax.xml.transform.Transformer;
@@ -76,5 +78,18 @@ class TemplatesImpl
{
return (Properties) outputProperties.clone();
}
-
+
+ public String toString()
+ {
+ CPStringBuilder b = new CPStringBuilder(getClass().getName());
+ b.append("[factory=");
+ b.append(factory);
+ b.append(",stylesheet=");
+ b.append(stylesheet);
+ b.append(",outputProperties=");
+ b.append(outputProperties);
+ b.append("]");
+ return b.toString();
+ }
+
}
diff --git a/libjava/classpath/gnu/xml/transform/TextNode.java b/libjava/classpath/gnu/xml/transform/TextNode.java
index 39423b2..93d1d54 100644
--- a/libjava/classpath/gnu/xml/transform/TextNode.java
+++ b/libjava/classpath/gnu/xml/transform/TextNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
import org.w3c.dom.Document;
@@ -106,7 +108,7 @@ final class TextNode
public String toString()
{
- StringBuffer buf = new StringBuffer("text");
+ CPStringBuilder buf = new CPStringBuilder("text");
if (disableOutputEscaping)
{
buf.append('[');
diff --git a/libjava/classpath/gnu/xml/transform/TransformerImpl.java b/libjava/classpath/gnu/xml/transform/TransformerImpl.java
index f43b660..a975c69 100644
--- a/libjava/classpath/gnu/xml/transform/TransformerImpl.java
+++ b/libjava/classpath/gnu/xml/transform/TransformerImpl.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.BufferedOutputStream;
import java.io.FileOutputStream;
import java.io.IOException;
@@ -722,7 +724,7 @@ class TransformerImpl
}
else
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
buf.append('\n');
for (int i = 0; i < offset + 1; i++)
buf.append(INDENT_WHITESPACE);
@@ -733,7 +735,7 @@ class TransformerImpl
node.insertBefore(doc.createTextNode(ws), ctx);
reindent(doc, ctx, offset + 1);
}
- buf = new StringBuffer();
+ buf = new CPStringBuilder();
buf.append('\n');
for (int i = 0; i < offset; i++)
buf.append(INDENT_WHITESPACE);
diff --git a/libjava/classpath/gnu/xml/transform/TransformerOutputProperties.java b/libjava/classpath/gnu/xml/transform/TransformerOutputProperties.java
index cc8593c..9ac5cdc 100644
--- a/libjava/classpath/gnu/xml/transform/TransformerOutputProperties.java
+++ b/libjava/classpath/gnu/xml/transform/TransformerOutputProperties.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedHashSet;
@@ -95,7 +97,7 @@ class TransformerOutputProperties
defaultProperties.put(OutputKeys.DOCTYPE_SYSTEM,
stylesheet.outputSystemId);
}
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (Iterator i = stylesheet.outputCdataSectionElements.iterator();
i.hasNext(); )
{
diff --git a/libjava/classpath/gnu/xml/transform/UnparsedEntityUriFunction.java b/libjava/classpath/gnu/xml/transform/UnparsedEntityUriFunction.java
index 92002f1..7ba0eae 100644
--- a/libjava/classpath/gnu/xml/transform/UnparsedEntityUriFunction.java
+++ b/libjava/classpath/gnu/xml/transform/UnparsedEntityUriFunction.java
@@ -61,27 +61,28 @@ final class UnparsedEntityUriFunction
implements XPathFunction, Function
{
- List args;
+ List<Expr> args;
public Object evaluate(List args)
throws XPathFunctionException
{
// Useless...
- return Collections.EMPTY_SET;
+ return Collections.emptySet();
}
- public void setArguments(List args)
+ public void setArguments(List<Expr> args)
{
this.args = args;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
int arity = args.size();
- List values = new ArrayList(arity);
+ List<Object> values = new ArrayList<Object>(arity);
for (int i = 0; i < arity; i++)
{
- Expr arg = (Expr) args.get(i);
+ Expr arg = args.get(i);
values.add(arg.evaluate(context, pos, len));
}
String name = _string(context, values.get(0));
@@ -107,10 +108,10 @@ final class UnparsedEntityUriFunction
{
UnparsedEntityUriFunction f = new UnparsedEntityUriFunction();
int len = args.size();
- List args2 = new ArrayList(len);
+ List<Expr> args2 = new ArrayList<Expr>(len);
for (int i = 0; i < len; i++)
{
- args2.add(((Expr) args.get(i)).clone(context));
+ args2.add(args.get(i).clone(context));
}
f.setArguments(args2);
return f;
@@ -118,9 +119,9 @@ final class UnparsedEntityUriFunction
public boolean references(QName var)
{
- for (Iterator i = args.iterator(); i.hasNext(); )
+ for (Iterator<Expr> i = args.iterator(); i.hasNext(); )
{
- if (((Expr) i.next()).references(var))
+ if (i.next().references(var))
{
return true;
}
diff --git a/libjava/classpath/gnu/xml/transform/ValueOfNode.java b/libjava/classpath/gnu/xml/transform/ValueOfNode.java
index 68f31e0..156affa 100644
--- a/libjava/classpath/gnu/xml/transform/ValueOfNode.java
+++ b/libjava/classpath/gnu/xml/transform/ValueOfNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Collection;
import java.util.Iterator;
import javax.xml.namespace.QName;
@@ -74,7 +76,8 @@ final class ValueOfNode
ret.next = next.clone(stylesheet);
return ret;
}
-
+
+ @Override
void doApply(Stylesheet stylesheet, QName mode,
Node context, int pos, int len,
Node parent, Node nextSibling)
@@ -84,10 +87,9 @@ final class ValueOfNode
String value;
if (ret instanceof Collection)
{
- StringBuffer buf = new StringBuffer();
- for (Iterator i = ((Collection) ret).iterator(); i.hasNext(); )
+ CPStringBuilder buf = new CPStringBuilder();
+ for (Node node : ((Collection<Node>) ret))
{
- Node node = (Node) i.next();
buf.append(Expr.stringValue(node));
}
value = buf.toString();
@@ -126,7 +128,7 @@ final class ValueOfNode
public String toString()
{
- StringBuffer buf = new StringBuffer("value-of");
+ CPStringBuilder buf = new CPStringBuilder("value-of");
buf.append('[');
buf.append("select=");
buf.append(select);
diff --git a/libjava/classpath/gnu/xml/transform/WhenNode.java b/libjava/classpath/gnu/xml/transform/WhenNode.java
index fe3f403..fc9d5b1 100644
--- a/libjava/classpath/gnu/xml/transform/WhenNode.java
+++ b/libjava/classpath/gnu/xml/transform/WhenNode.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import javax.xml.namespace.QName;
import javax.xml.transform.TransformerException;
import org.w3c.dom.Node;
@@ -102,7 +104,7 @@ final class WhenNode
public String toString()
{
- StringBuffer buf = new StringBuffer("when");
+ CPStringBuilder buf = new CPStringBuilder("when");
buf.append('[');
buf.append("test=");
buf.append(test);
diff --git a/libjava/classpath/gnu/xml/transform/XSLComparator.java b/libjava/classpath/gnu/xml/transform/XSLComparator.java
index 222f370..8824369 100644
--- a/libjava/classpath/gnu/xml/transform/XSLComparator.java
+++ b/libjava/classpath/gnu/xml/transform/XSLComparator.java
@@ -51,72 +51,66 @@ import gnu.xml.xpath.Expr;
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
class XSLComparator
- implements Comparator
+ implements Comparator<Node>
{
- final List sortKeys;
+ final List<SortKey> sortKeys;
- XSLComparator(List sortKeys)
+ XSLComparator(List<SortKey> sortKeys)
{
this.sortKeys = sortKeys;
}
- public int compare(Object o1, Object o2)
+ public int compare(Node n1, Node n2)
{
- if (o1 instanceof Node && o2 instanceof Node)
+ for (SortKey sortKey : sortKeys)
{
- Node n1 = (Node) o1;
- Node n2 = (Node) o2;
- for (Iterator i = sortKeys.iterator(); i.hasNext(); )
- {
- SortKey sortKey = (SortKey) i.next();
- String k1 = sortKey.key(n1);
- String k2 = sortKey.key(n2);
- if ("text".equals(sortKey.dataType))
- {
- Locale locale = (sortKey.lang == null) ? Locale.getDefault() :
- new Locale(sortKey.lang);
- Collator collator = Collator.getInstance(locale);
- int d = collator.compare(k1, k2);
- if (d != 0)
- {
- switch (sortKey.caseOrder)
- {
- case SortKey.UPPER_FIRST:
- // TODO
- break;
- case SortKey.LOWER_FIRST:
- // TODO
- break;
- }
- if (sortKey.descending)
- {
- d = -d;
- }
- return d;
- }
- }
- else if ("number".equals(sortKey.dataType))
- {
- double kn1 = Expr._number(n1, k1);
- double kn2 = Expr._number(n2, k2);
- int d;
- if (Double.isNaN(kn1) || Double.isInfinite(kn2))
- {
- d = -1;
- }
- else if (Double.isNaN(kn2) || Double.isInfinite(kn1))
- {
- d = 1;
- }
- else
- {
- // conversion to int may give 0 for small numbers
- d = (kn1 > kn2) ? 1 : (kn1 < kn2) ? -1 : 0;
- }
- return (sortKey.descending) ? -d : d;
- }
- }
+ String k1 = sortKey.key(n1);
+ String k2 = sortKey.key(n2);
+ if ("text".equals(sortKey.dataType))
+ {
+ Locale locale = (sortKey.lang == null) ? Locale.getDefault() :
+ new Locale(sortKey.lang);
+ Collator collator = Collator.getInstance(locale);
+ int d = collator.compare(k1, k2);
+ if (d != 0)
+ {
+ switch (sortKey.caseOrder)
+ {
+ case SortKey.UPPER_FIRST:
+ // TODO
+ break;
+ case SortKey.LOWER_FIRST:
+ // TODO
+ break;
+ }
+ if (sortKey.descending)
+ {
+ d = -d;
+ }
+ return d;
+ }
+ }
+ else if ("number".equals(sortKey.dataType))
+ {
+ double kn1 = Expr._number(n1, k1);
+ double kn2 = Expr._number(n2, k2);
+ int d;
+ if (Double.isNaN(kn1) || Double.isInfinite(kn2))
+ {
+ d = -1;
+ }
+ else if (Double.isNaN(kn2) || Double.isInfinite(kn1))
+ {
+ d = 1;
+ }
+ else
+ {
+ // conversion to int may give 0 for small numbers
+ d = (kn1 > kn2) ? 1 : (kn1 < kn2) ? -1 : 0;
+ }
+ return (sortKey.descending) ? -d : d;
+ }
}
return 0;
}
diff --git a/libjava/classpath/gnu/xml/transform/XSLURIResolver.java b/libjava/classpath/gnu/xml/transform/XSLURIResolver.java
index 8bb8977..c137921 100644
--- a/libjava/classpath/gnu/xml/transform/XSLURIResolver.java
+++ b/libjava/classpath/gnu/xml/transform/XSLURIResolver.java
@@ -75,8 +75,8 @@ class XSLURIResolver
implements URIResolver
{
- Map lastModifiedCache = new HashMap();
- Map nodeCache = new HashMap();
+ final Map<String,Long> lastModifiedCache = new HashMap<String,Long>();
+ final Map<String,Node> nodeCache = new HashMap<String,Node>();
DocumentBuilder builder;
URIResolver userResolver;
ErrorListener userListener;
@@ -157,10 +157,10 @@ class XSLURIResolver
if (url != null)
{
systemId = url.toString();
- node = (Node) nodeCache.get(systemId);
+ node = nodeCache.get(systemId);
// Is the resource up to date?
URLConnection conn = url.openConnection();
- Long llm = (Long) lastModifiedCache.get(systemId);
+ Long llm = lastModifiedCache.get(systemId);
if (llm != null)
{
lastLastModified = llm.longValue();
@@ -301,6 +301,7 @@ class XSLURIResolver
{
SAXEventSink eventSink = new SAXEventSink();
eventSink.setReader(reader);
+ eventSink.setNamespaceAware(true);
reader.setContentHandler(eventSink);
reader.setDTDHandler(eventSink);
reader.setProperty("http://xml.org/sax/properties/lexical-handler",
diff --git a/libjava/classpath/gnu/xml/util/DoParse.java b/libjava/classpath/gnu/xml/util/DoParse.java
index 5da086e..a8f5096 100644
--- a/libjava/classpath/gnu/xml/util/DoParse.java
+++ b/libjava/classpath/gnu/xml/util/DoParse.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import org.xml.sax.ErrorHandler;
@@ -271,7 +273,7 @@ final public class DoParse
String label,
SAXParseException e
) {
- StringBuffer buf = new StringBuffer ();
+ CPStringBuilder buf = new CPStringBuilder ();
int temp;
buf.append ("** ");
diff --git a/libjava/classpath/gnu/xml/util/XCat.java b/libjava/classpath/gnu/xml/util/XCat.java
index f3704cd..93127f4 100644
--- a/libjava/classpath/gnu/xml/util/XCat.java
+++ b/libjava/classpath/gnu/xml/util/XCat.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package gnu.xml.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.net.URL;
@@ -623,7 +625,7 @@ public class XCat implements EntityResolver2
private static String normalizePublicId (boolean full, String publicId)
{
if (publicId.startsWith ("urn:publicid:")) {
- StringBuffer buf = new StringBuffer ();
+ CPStringBuilder buf = new CPStringBuilder ();
char chars [] = publicId.toCharArray ();
boolean hasbug = false;
@@ -814,7 +816,7 @@ System.err.println ("nyet unhexing public id: " + publicId);
replace = (String) rewrites.get (temp);
}
if (prefix != null) {
- StringBuffer buf = new StringBuffer (replace);
+ CPStringBuilder buf = new CPStringBuilder (replace);
buf.append (uri.substring (prefixLen));
// IF the URI is accessible ...
return new InputSource (buf.toString ());
diff --git a/libjava/classpath/gnu/xml/util/XMLWriter.java b/libjava/classpath/gnu/xml/util/XMLWriter.java
index 24b3892..2745947 100644
--- a/libjava/classpath/gnu/xml/util/XMLWriter.java
+++ b/libjava/classpath/gnu/xml/util/XMLWriter.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.BufferedWriter;
import java.io.CharConversionException;
import java.io.IOException;
@@ -152,7 +154,7 @@ public class XMLWriter
private String eol = sysEOL;
private short dangerMask;
- private StringBuffer stringBuf;
+ private CPStringBuilder stringBuf;
private Locator locator;
private ErrorHandler errHandler;
@@ -289,7 +291,7 @@ public class XMLWriter
}
if (dangerMask != 0)
- stringBuf = new StringBuffer ();
+ stringBuf = new CPStringBuilder ();
}
this.encoding = encoding;
diff --git a/libjava/classpath/gnu/xml/validation/datatype/EntitiesType.java b/libjava/classpath/gnu/xml/validation/datatype/EntitiesType.java
index 98554e1..d16106e 100644
--- a/libjava/classpath/gnu/xml/validation/datatype/EntitiesType.java
+++ b/libjava/classpath/gnu/xml/validation/datatype/EntitiesType.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.validation.datatype;
+import gnu.java.lang.CPStringBuilder;
+
import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
import org.relaxng.datatype.DatatypeException;
@@ -75,7 +77,7 @@ final class EntitiesType
throws DatatypeException
{
super.checkValid(value, context);
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
int len = value.length();
for (int i = 0; i < len; i++)
{
diff --git a/libjava/classpath/gnu/xml/validation/datatype/NMTokensType.java b/libjava/classpath/gnu/xml/validation/datatype/NMTokensType.java
index 62524ed..d499645 100644
--- a/libjava/classpath/gnu/xml/validation/datatype/NMTokensType.java
+++ b/libjava/classpath/gnu/xml/validation/datatype/NMTokensType.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.validation.datatype;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import javax.xml.XMLConstants;
import javax.xml.namespace.QName;
@@ -79,7 +81,7 @@ final class NMTokensType
{
super.checkValid(value, context);
int len = value.length();
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (int i = 0; i < len; i++)
{
char c = value.charAt(i);
diff --git a/libjava/classpath/gnu/xml/xpath/ArithmeticExpr.java b/libjava/classpath/gnu/xml/xpath/ArithmeticExpr.java
index cbc1ee0..61098d6 100644
--- a/libjava/classpath/gnu/xml/xpath/ArithmeticExpr.java
+++ b/libjava/classpath/gnu/xml/xpath/ArithmeticExpr.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.xpath;
+import gnu.java.lang.CPStringBuilder;
+
import javax.xml.namespace.QName;
import org.w3c.dom.Node;
@@ -139,7 +141,7 @@ final class ArithmeticExpr
public String toString()
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
buf.append(lhs);
buf.append(' ');
switch (op)
diff --git a/libjava/classpath/gnu/xml/xpath/BooleanFunction.java b/libjava/classpath/gnu/xml/xpath/BooleanFunction.java
index 256de03..f661b2a 100644
--- a/libjava/classpath/gnu/xml/xpath/BooleanFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/BooleanFunction.java
@@ -61,9 +61,9 @@ final class BooleanFunction
final Expr arg;
- BooleanFunction(List args)
+ BooleanFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
BooleanFunction(Expr arg)
diff --git a/libjava/classpath/gnu/xml/xpath/CeilingFunction.java b/libjava/classpath/gnu/xml/xpath/CeilingFunction.java
index 7db08fc..1539884 100644
--- a/libjava/classpath/gnu/xml/xpath/CeilingFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/CeilingFunction.java
@@ -54,9 +54,9 @@ final class CeilingFunction
final Expr arg;
- CeilingFunction(List args)
+ CeilingFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
CeilingFunction(Expr arg)
diff --git a/libjava/classpath/gnu/xml/xpath/ConcatFunction.java b/libjava/classpath/gnu/xml/xpath/ConcatFunction.java
index fddd7ae..a61a454 100644
--- a/libjava/classpath/gnu/xml/xpath/ConcatFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/ConcatFunction.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.xpath;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -52,19 +54,19 @@ final class ConcatFunction
extends Expr
{
- final List args;
+ final List<Expr> args;
- ConcatFunction(List args)
+ ConcatFunction(List<Expr> args)
{
this.args = args;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
- StringBuffer buf = new StringBuffer();
- for (Iterator i = args.iterator(); i.hasNext(); )
+ CPStringBuilder buf = new CPStringBuilder();
+ for (Expr arg : args)
{
- Expr arg = (Expr) i.next();
Object val = arg.evaluate(context, pos, len);
buf.append(_string(context, val));
}
@@ -74,19 +76,19 @@ final class ConcatFunction
public Expr clone(Object context)
{
int len = args.size();
- List args2 = new ArrayList(len);
+ List<Expr> args2 = new ArrayList<Expr>(len);
for (int i = 0; i < len; i++)
{
- args2.add(((Expr) args.get(i)).clone(context));
+ args2.add(args.get(i).clone(context));
}
return new ConcatFunction(args2);
}
public boolean references(QName var)
{
- for (Iterator i = args.iterator(); i.hasNext(); )
+ for (Iterator<Expr> i = args.iterator(); i.hasNext(); )
{
- if (((Expr) i.next()).references(var))
+ if (i.next().references(var))
{
return true;
}
@@ -96,7 +98,7 @@ final class ConcatFunction
public String toString()
{
- StringBuffer buf = new StringBuffer("concat(");
+ CPStringBuilder buf = new CPStringBuilder("concat(");
int len = args.size();
for (int i = 0; i < len; i++)
{
diff --git a/libjava/classpath/gnu/xml/xpath/ContainsFunction.java b/libjava/classpath/gnu/xml/xpath/ContainsFunction.java
index fc2f33f..620606b 100644
--- a/libjava/classpath/gnu/xml/xpath/ContainsFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/ContainsFunction.java
@@ -54,9 +54,9 @@ final class ContainsFunction
final Expr arg1;
final Expr arg2;
- ContainsFunction(List args)
+ ContainsFunction(List<Expr> args)
{
- this((Expr) args.get(0), (Expr) args.get(1));
+ this(args.get(0), args.get(1));
}
ContainsFunction(Expr arg1, Expr arg2)
@@ -65,6 +65,7 @@ final class ContainsFunction
this.arg2 = arg2;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val1 = arg1.evaluate(context, pos, len);
diff --git a/libjava/classpath/gnu/xml/xpath/CountFunction.java b/libjava/classpath/gnu/xml/xpath/CountFunction.java
index cb534bf..f29d833 100644
--- a/libjava/classpath/gnu/xml/xpath/CountFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/CountFunction.java
@@ -54,9 +54,9 @@ final class CountFunction
final Expr arg;
- CountFunction(List args)
+ CountFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
CountFunction(Expr arg)
@@ -64,10 +64,11 @@ final class CountFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = arg.evaluate(context, pos, len);
- return new Double((double) ((Collection) val).size());
+ return new Double((double) ((Collection<?>) val).size());
}
public Expr clone(Object context)
diff --git a/libjava/classpath/gnu/xml/xpath/DocumentOrderComparator.java b/libjava/classpath/gnu/xml/xpath/DocumentOrderComparator.java
index c7d7de9..605749d 100644
--- a/libjava/classpath/gnu/xml/xpath/DocumentOrderComparator.java
+++ b/libjava/classpath/gnu/xml/xpath/DocumentOrderComparator.java
@@ -46,18 +46,12 @@ import org.w3c.dom.Node;
* @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
*/
public class DocumentOrderComparator
- implements Comparator
+ implements Comparator<Node>
{
- public int compare(Object o1, Object o2)
+ public int compare(Node n1, Node n2)
{
- if (o1 instanceof Node && o2 instanceof Node)
- {
- Node n1 = (Node)o1;
- Node n2 = (Node)o2;
- return (int) n1.compareDocumentPosition(n2);
- }
- return 0;
+ return (int) n1.compareDocumentPosition(n2);
}
}
diff --git a/libjava/classpath/gnu/xml/xpath/EqualityExpr.java b/libjava/classpath/gnu/xml/xpath/EqualityExpr.java
index 6d00cee..3b6fd56 100644
--- a/libjava/classpath/gnu/xml/xpath/EqualityExpr.java
+++ b/libjava/classpath/gnu/xml/xpath/EqualityExpr.java
@@ -62,6 +62,7 @@ final class EqualityExpr
this.invert = invert;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
boolean val = evaluateImpl(context, pos, len);
@@ -90,19 +91,20 @@ final class EqualityExpr
boolean frns = right instanceof Collection;
if (flns && frns)
{
- Collection lns = (Collection) left;
- Collection rns = (Collection) right;
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> lns = (Collection<Node>) left;
+ @SuppressWarnings("unchecked")
+ Collection<Node> rns = (Collection<Node>) right;
if (lns.isEmpty())
{
return false;
}
boolean all = true;
- for (Iterator i = lns.iterator(); i.hasNext(); )
- {
- Node ltest = (Node) i.next();
- for (Iterator j = rns.iterator(); j.hasNext(); )
- {
- Node rtest = (Node) j.next();
+ for (Node ltest : lns)
+ {
+ for (Node rtest : rns)
+ {
if (ltest == rtest || ltest.equals(rtest))
{
// much shorter
@@ -138,13 +140,14 @@ final class EqualityExpr
boolean frn = right instanceof Double;
if ((flns && frn) || (frns && fln))
{
- Collection ns = flns ? (Collection) left : (Collection) right;
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> ns = flns ? (Collection<Node>) left : (Collection<Node>) right;
double n = fln ? ((Double) left).doubleValue() :
((Double) right).doubleValue();
boolean all = true;
- for (Iterator i = ns.iterator(); i.hasNext(); )
+ for (Node test : ns)
{
- Node test = (Node) i.next();
double nn = _number(context, stringValue(test));
if (nn == n)
{
@@ -171,12 +174,13 @@ final class EqualityExpr
boolean frs = right instanceof String;
if ((flns && frs) || (frns && fls))
{
- Collection ns = flns ? (Collection) left : (Collection) right;
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> ns = flns ? (Collection<Node>) left : (Collection<Node>) right;
String s = fls ? (String) left : (String) right;
boolean all = true;
- for (Iterator i = ns.iterator(); i.hasNext(); )
+ for (Node test : ns)
{
- Node test = (Node) i.next();
if (stringValue(test).equals(s))
{
if (!invert)
@@ -202,7 +206,9 @@ final class EqualityExpr
boolean frb = right instanceof Boolean;
if ((flns && frb) || (frns && flb))
{
- Collection ns = flns ? (Collection) left : (Collection) right;
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> ns = flns ? (Collection<Node>) left : (Collection<Node>) right;
boolean b = flb ? ((Boolean) left).booleanValue() :
((Boolean) right).booleanValue();
return _boolean(context, ns) == b;
diff --git a/libjava/classpath/gnu/xml/xpath/Expr.java b/libjava/classpath/gnu/xml/xpath/Expr.java
index cafc83b..87ce3df 100644
--- a/libjava/classpath/gnu/xml/xpath/Expr.java
+++ b/libjava/classpath/gnu/xml/xpath/Expr.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.xpath;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.text.DecimalFormat;
import java.text.DecimalFormatSymbols;
@@ -73,7 +75,7 @@ public abstract class Expr
implements XPathExpression
{
- protected static final Comparator documentOrderComparator =
+ protected static final Comparator<Node> documentOrderComparator =
new DocumentOrderComparator();
protected static final DecimalFormat decimalFormat =
@@ -84,14 +86,14 @@ public abstract class Expr
static class ExprNodeSet implements NodeList
{
- private ArrayList list;
+ private ArrayList<Node> list;
- ExprNodeSet(Collection collection)
+ ExprNodeSet(Collection<Node> collection)
{
if (collection instanceof ArrayList)
- list = (ArrayList) collection;
+ list = (ArrayList<Node>) collection;
else
- list = new ArrayList(collection);
+ list = new ArrayList<Node>(collection);
}
public int getLength()
@@ -103,7 +105,7 @@ public abstract class Expr
{
try
{
- return (Node) list.get(index);
+ return list.get(index);
}
catch (ArrayIndexOutOfBoundsException e)
{
@@ -141,14 +143,17 @@ public abstract class Expr
{
if (ret instanceof Collection)
{
- Collection ns = (Collection) ret;
+ /* Suppression is safe, as we know context
+ produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> ns = (Collection<Node>) ret;
switch (ns.size())
{
case 0:
ret = null;
break;
case 1:
- ret = (Node) ns.iterator().next();
+ ret = ns.iterator().next();
break;
default:
throw new XPathExpressionException("multiple nodes in node-set");
@@ -166,7 +171,12 @@ public abstract class Expr
throw new XPathExpressionException("return value is not a node-set");
}
if (ret != null)
- ret = new ExprNodeSet((Collection) ret);
+ {
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> nodes = (Collection<Node>) ret;
+ ret = new ExprNodeSet(nodes);
+ }
}
}
return ret;
@@ -229,15 +239,17 @@ public abstract class Expr
* same document as the context node that have a unique ID equal to any of
* the tokens in the list.
*/
- public static Collection _id(Node context, Object object)
+ public static Collection<Node> _id(Node context, Object object)
{
- Set ret = new HashSet();
+ Set<Node> ret = new HashSet<Node>();
if (object instanceof Collection)
{
- Collection nodeSet = (Collection) object;
- for (Iterator i = nodeSet.iterator(); i.hasNext(); )
+ /* Suppression is safe, as the iteration will check each value is a Node */
+ @SuppressWarnings("unchecked")
+ Collection<Node> nodeSet = (Collection<Node>) object;
+ for (Iterator<Node> i = nodeSet.iterator(); i.hasNext(); )
{
- String string = stringValue((Node) i.next());
+ String string = stringValue(i.next());
ret.addAll(_id (context, string));
}
}
@@ -266,7 +278,7 @@ public abstract class Expr
* an empty string is returned. If the argument is omitted, it defaults to
* a node-set with the context node as its only member.
*/
- public static String _local_name(Node context, Collection nodeSet)
+ public static String _local_name(Node context, Collection<Node> nodeSet)
{
if (nodeSet == null || nodeSet.isEmpty())
return "";
@@ -283,7 +295,7 @@ public abstract class Expr
* empty string is returned. If the argument is omitted, it defaults to a
* node-set with the context node as its only member.
*/
- public static String _namespace_uri(Node context, Collection nodeSet)
+ public static String _namespace_uri(Node context, Collection<Node> nodeSet)
{
if (nodeSet == null || nodeSet.isEmpty())
return "";
@@ -308,7 +320,7 @@ public abstract class Expr
* string is returned. If the argument it omitted, it defaults to a
* node-set with the context node as its only member.
*/
- public static String _name(Node context, Collection nodeSet)
+ public static String _name(Node context, Collection<Node> nodeSet)
{
if (nodeSet == null || nodeSet.isEmpty())
return "";
@@ -327,11 +339,11 @@ public abstract class Expr
/**
* Returns the first node in the set in document order.
*/
- static Node firstNode(Collection nodeSet)
+ static Node firstNode(Collection<Node> nodeSet)
{
- List list = new ArrayList(nodeSet);
+ List<Node> list = new ArrayList<Node>(nodeSet);
Collections.sort(list, documentOrderComparator);
- return (Node) list.get(0);
+ return list.get(0);
}
/* -- 4.2 String Functions -- */
@@ -387,7 +399,10 @@ public abstract class Expr
}
if (object instanceof Collection)
{
- Collection nodeSet = (Collection) object;
+ /* Suppression is safe, as we fail immediately if the
+ * first element is not a Node and don't use the rest */
+ @SuppressWarnings("unchecked")
+ Collection<Node> nodeSet = (Collection<Node>) object;
if (nodeSet.isEmpty())
{
return "";
@@ -422,7 +437,7 @@ public abstract class Expr
}
if (object instanceof Collection)
{
- return ((Collection) object).size() != 0;
+ return ((Collection<?>) object).size() != 0;
}
return false; // TODO user defined types
}
@@ -448,8 +463,12 @@ public abstract class Expr
}
if (object instanceof Collection)
{
+ /* Suppression is safe, as we fail immediately if one
+ * of the elements is not a Node */
+ @SuppressWarnings("unchecked")
+ Collection<Node> nodeSet = (Collection<Node>) object;
// Convert node-set to string
- object = stringValue((Collection) object);
+ object = stringValue(nodeSet);
}
if (object instanceof String)
{
@@ -469,12 +488,12 @@ public abstract class Expr
/**
* Computes the XPath string-value of the specified node-set.
*/
- public static String stringValue(Collection nodeSet)
+ public static String stringValue(Collection<Node> nodeSet)
{
- StringBuffer buf = new StringBuffer();
- for (Iterator i = nodeSet.iterator(); i.hasNext(); )
+ CPStringBuilder buf = new CPStringBuilder();
+ for (Iterator<Node> i = nodeSet.iterator(); i.hasNext(); )
{
- buf.append(stringValue((Node) i.next()));
+ buf.append(stringValue(i.next()));
}
return buf.toString();
}
@@ -494,7 +513,7 @@ public abstract class Expr
case Node.DOCUMENT_NODE: // 5.1 Root Node
case Node.DOCUMENT_FRAGMENT_NODE:
case Node.ELEMENT_NODE: // 5.2 Element Nodes
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (Node ctx = node.getFirstChild(); ctx != null;
ctx = ctx.getNextSibling())
{
diff --git a/libjava/classpath/gnu/xml/xpath/FloorFunction.java b/libjava/classpath/gnu/xml/xpath/FloorFunction.java
index c03c0e7..bbf56c9 100644
--- a/libjava/classpath/gnu/xml/xpath/FloorFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/FloorFunction.java
@@ -54,9 +54,9 @@ final class FloorFunction
final Expr arg;
- FloorFunction(List args)
+ FloorFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
FloorFunction(Expr arg)
@@ -64,6 +64,7 @@ final class FloorFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = arg.evaluate(context, pos, len);
diff --git a/libjava/classpath/gnu/xml/xpath/Function.java b/libjava/classpath/gnu/xml/xpath/Function.java
index aecd49d..12e2e11 100644
--- a/libjava/classpath/gnu/xml/xpath/Function.java
+++ b/libjava/classpath/gnu/xml/xpath/Function.java
@@ -51,7 +51,7 @@ public interface Function
/**
* Sets the list of expressions to evaluate as parameter values.
*/
- void setArguments(List args);
+ void setArguments(List<Expr> args);
}
diff --git a/libjava/classpath/gnu/xml/xpath/FunctionCall.java b/libjava/classpath/gnu/xml/xpath/FunctionCall.java
index 669efbf..e811f53 100644
--- a/libjava/classpath/gnu/xml/xpath/FunctionCall.java
+++ b/libjava/classpath/gnu/xml/xpath/FunctionCall.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.xpath;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
@@ -58,20 +60,24 @@ public final class FunctionCall
final XPathFunctionResolver resolver;
final String name;
- final List args;
+ final List<Expr> args;
public FunctionCall(XPathFunctionResolver resolver, String name)
{
- this(resolver, name, Collections.EMPTY_LIST);
+ this(resolver, name, null);
}
- public FunctionCall(XPathFunctionResolver resolver, String name, List args)
+ public FunctionCall(XPathFunctionResolver resolver, String name, List<Expr> args)
{
this.resolver = resolver;
this.name = name;
- this.args = args;
+ if (args == null)
+ this.args = Collections.emptyList();
+ else
+ this.args = args;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
if (resolver != null)
@@ -92,7 +98,7 @@ public final class FunctionCall
}
else
{
- List values = new ArrayList(arity);
+ List<Object> values = new ArrayList<Object>(arity);
for (int i = 0; i < arity; i++)
{
Expr arg = (Expr) args.get(i);
@@ -117,10 +123,10 @@ public final class FunctionCall
public Expr clone(Object context)
{
int len = args.size();
- List args2 = new ArrayList(len);
+ List<Expr> args2 = new ArrayList<Expr>(len);
for (int i = 0; i < len; i++)
{
- args2.add(((Expr) args.get(i)).clone(context));
+ args2.add(args.get(i).clone(context));
}
XPathFunctionResolver r = resolver;
if (context instanceof XPathFunctionResolver)
@@ -132,9 +138,9 @@ public final class FunctionCall
public boolean references(QName var)
{
- for (Iterator i = args.iterator(); i.hasNext(); )
+ for (Iterator<Expr> i = args.iterator(); i.hasNext(); )
{
- if (((Expr) i.next()).references(var))
+ if (i.next().references(var))
{
return true;
}
@@ -144,7 +150,7 @@ public final class FunctionCall
public String toString()
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
buf.append(name);
buf.append('(');
int len = args.size();
diff --git a/libjava/classpath/gnu/xml/xpath/IdFunction.java b/libjava/classpath/gnu/xml/xpath/IdFunction.java
index 7497954..b3d2208 100644
--- a/libjava/classpath/gnu/xml/xpath/IdFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/IdFunction.java
@@ -62,9 +62,9 @@ public final class IdFunction
final Expr arg;
- IdFunction(List args)
+ IdFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
public IdFunction(Expr arg)
@@ -75,9 +75,10 @@ public final class IdFunction
public boolean matches(Node context)
{
Object ret = evaluate(context, 1, 1);
- return !((Collection) ret).isEmpty();
+ return !((Collection<?>) ret).isEmpty();
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = arg.evaluate(context, pos, len);
diff --git a/libjava/classpath/gnu/xml/xpath/LangFunction.java b/libjava/classpath/gnu/xml/xpath/LangFunction.java
index 584787e..33cf8b0 100644
--- a/libjava/classpath/gnu/xml/xpath/LangFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/LangFunction.java
@@ -64,9 +64,9 @@ final class LangFunction
final Expr arg;
- LangFunction(List args)
+ LangFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
LangFunction(Expr arg)
@@ -74,6 +74,7 @@ final class LangFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = arg.evaluate(context, pos, len);
diff --git a/libjava/classpath/gnu/xml/xpath/LocalNameFunction.java b/libjava/classpath/gnu/xml/xpath/LocalNameFunction.java
index 84fb6d4..dbad9d3 100644
--- a/libjava/classpath/gnu/xml/xpath/LocalNameFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/LocalNameFunction.java
@@ -59,9 +59,9 @@ final class LocalNameFunction
final Expr arg;
- LocalNameFunction(List args)
+ LocalNameFunction(List<Expr> args)
{
- this(args.size() > 0 ? (Expr) args.get(0) : null);
+ this(args.size() > 0 ? args.get(0) : null);
}
LocalNameFunction(Expr arg)
@@ -69,11 +69,14 @@ final class LocalNameFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
- Object val = (arg == null) ? Collections.singleton(context) :
- arg.evaluate(context, pos, len);
- return _local_name(context, (Collection) val);
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> val = (arg == null) ? Collections.singleton(context) :
+ (Collection<Node>) arg.evaluate(context, pos, len);
+ return _local_name(context, val);
}
public Expr clone(Object context)
diff --git a/libjava/classpath/gnu/xml/xpath/NameFunction.java b/libjava/classpath/gnu/xml/xpath/NameFunction.java
index ea49741..239a534 100644
--- a/libjava/classpath/gnu/xml/xpath/NameFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/NameFunction.java
@@ -67,9 +67,9 @@ final class NameFunction
final Expr arg;
- NameFunction(List args)
+ NameFunction(List<Expr> args)
{
- this(args.size() > 0 ? (Expr) args.get(0) : null);
+ this(args.size() > 0 ? args.get(0) : null);
}
NameFunction(Expr arg)
@@ -77,24 +77,30 @@ final class NameFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
- Object val = (arg == null) ? Collections.singleton(context) :
- arg.evaluate(context, pos, len);
- return _name(context, (Collection) val);
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> val = (arg == null) ? Collections.singleton(context) :
+ (Collection<Node>) arg.evaluate(context, pos, len);
+ return _name(context, val);
}
+ @Override
public Expr clone(Object context)
{
return new NameFunction((arg == null) ? null :
arg.clone(context));
}
-
+
+ @Override
public boolean references(QName var)
{
return (arg == null) ? false : arg.references(var);
}
+ @Override
public String toString()
{
return (arg == null) ? "name()" : "name(" + arg + ")";
diff --git a/libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java b/libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java
index 3ae46f7..56da90f 100644
--- a/libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/NamespaceUriFunction.java
@@ -59,9 +59,9 @@ final class NamespaceUriFunction
final Expr arg;
- NamespaceUriFunction(List args)
+ NamespaceUriFunction(List<Expr> args)
{
- this(args.size() > 0 ? (Expr) args.get(0) : null);
+ this(args.size() > 0 ? args.get(0) : null);
}
NamespaceUriFunction(Expr arg)
@@ -69,11 +69,14 @@ final class NamespaceUriFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
- Object val = (arg == null) ? Collections.singleton(context) :
- arg.evaluate(context, pos, len);
- return _namespace_uri(context, (Collection) val);
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> val = (arg == null) ? Collections.singleton(context) :
+ (Collection<Node>) arg.evaluate(context, pos, len);
+ return _namespace_uri(context, val);
}
public Expr clone(Object context)
diff --git a/libjava/classpath/gnu/xml/xpath/NormalizeSpaceFunction.java b/libjava/classpath/gnu/xml/xpath/NormalizeSpaceFunction.java
index b7358e8..30069ac 100644
--- a/libjava/classpath/gnu/xml/xpath/NormalizeSpaceFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/NormalizeSpaceFunction.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.xpath;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.List;
import java.util.StringTokenizer;
import javax.xml.namespace.QName;
@@ -59,9 +61,9 @@ final class NormalizeSpaceFunction
final Expr arg;
- NormalizeSpaceFunction(List args)
+ NormalizeSpaceFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
NormalizeSpaceFunction(Expr arg)
@@ -69,12 +71,13 @@ final class NormalizeSpaceFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = (arg == null) ? null : arg.evaluate(context, pos, len);
String s = _string(context, val);
StringTokenizer st = new StringTokenizer(s, " \t\r\n");
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
if (st.hasMoreTokens())
{
buf.append(st.nextToken());
diff --git a/libjava/classpath/gnu/xml/xpath/NotFunction.java b/libjava/classpath/gnu/xml/xpath/NotFunction.java
index bbed66a..188b3db 100644
--- a/libjava/classpath/gnu/xml/xpath/NotFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/NotFunction.java
@@ -53,9 +53,9 @@ final class NotFunction
final Expr arg;
- NotFunction(List args)
+ NotFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
NotFunction(Expr arg)
@@ -63,6 +63,7 @@ final class NotFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = arg.evaluate(context, pos, len);
diff --git a/libjava/classpath/gnu/xml/xpath/NumberFunction.java b/libjava/classpath/gnu/xml/xpath/NumberFunction.java
index 79553ce..8804a78 100644
--- a/libjava/classpath/gnu/xml/xpath/NumberFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/NumberFunction.java
@@ -68,9 +68,9 @@ final class NumberFunction
final Expr arg;
- NumberFunction(List args)
+ NumberFunction(List<Expr> args)
{
- this(args.size() > 0 ? (Expr) args.get(0) : null);
+ this(args.size() > 0 ? args.get(0) : null);
}
NumberFunction(Expr arg)
@@ -78,6 +78,7 @@ final class NumberFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = (arg == null) ? null : arg.evaluate(context, pos, len);
diff --git a/libjava/classpath/gnu/xml/xpath/ParenthesizedExpr.java b/libjava/classpath/gnu/xml/xpath/ParenthesizedExpr.java
index f343857..adadd67 100644
--- a/libjava/classpath/gnu/xml/xpath/ParenthesizedExpr.java
+++ b/libjava/classpath/gnu/xml/xpath/ParenthesizedExpr.java
@@ -60,12 +60,17 @@ final class ParenthesizedExpr
this.expr = expr;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object ret = expr.evaluate(context, pos, len);
if (ret instanceof Collection)
{
- List list = new ArrayList((Collection) ret);
+ /* Suppression is safe, as we know context produces
+ Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> nodes = (Collection<Node>) ret;
+ List<Node> list = new ArrayList<Node>(nodes);
Collections.sort(list, documentOrderComparator);
ret = list;
}
diff --git a/libjava/classpath/gnu/xml/xpath/Path.java b/libjava/classpath/gnu/xml/xpath/Path.java
index 4b01f09..809f965 100644
--- a/libjava/classpath/gnu/xml/xpath/Path.java
+++ b/libjava/classpath/gnu/xml/xpath/Path.java
@@ -49,6 +49,6 @@ abstract class Path
extends Pattern
{
- abstract Collection evaluate(Node context, Collection nodeSet);
+ abstract Collection<Node> evaluate(Node context, Collection<Node> nodeSet);
}
diff --git a/libjava/classpath/gnu/xml/xpath/Root.java b/libjava/classpath/gnu/xml/xpath/Root.java
index 1f79b39..cbcb249 100644
--- a/libjava/classpath/gnu/xml/xpath/Root.java
+++ b/libjava/classpath/gnu/xml/xpath/Root.java
@@ -39,6 +39,8 @@ package gnu.xml.xpath;
import java.util.Collection;
import java.util.Collections;
+import java.util.Set;
+
import javax.xml.namespace.QName;
import org.w3c.dom.Document;
import org.w3c.dom.Node;
@@ -59,12 +61,14 @@ public final class Root
public Object evaluate(Node context, int pos, int len)
{
- return evaluate(context, Collections.EMPTY_SET);
+ Set<Node> emptySet = Collections.emptySet();
+ return evaluate(context, emptySet);
}
- Collection evaluate(Node context, Collection ns)
+ @Override
+ Collection<Node> evaluate(Node context, Collection<Node> ns)
{
- Document doc = (context instanceof Document) ? (Document) context :
+ Node doc = (context instanceof Document) ? context :
context.getOwnerDocument();
return Collections.singleton(doc);
}
diff --git a/libjava/classpath/gnu/xml/xpath/RoundFunction.java b/libjava/classpath/gnu/xml/xpath/RoundFunction.java
index bfbfd35..2d1bd54 100644
--- a/libjava/classpath/gnu/xml/xpath/RoundFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/RoundFunction.java
@@ -60,9 +60,9 @@ final class RoundFunction
final Expr arg;
- RoundFunction(List args)
+ RoundFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
RoundFunction(Expr arg)
@@ -70,6 +70,7 @@ final class RoundFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = arg.evaluate(context, pos, len);
diff --git a/libjava/classpath/gnu/xml/xpath/Selector.java b/libjava/classpath/gnu/xml/xpath/Selector.java
index c7abb33..429b3f7 100644
--- a/libjava/classpath/gnu/xml/xpath/Selector.java
+++ b/libjava/classpath/gnu/xml/xpath/Selector.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.xpath;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
@@ -82,7 +84,7 @@ public final class Selector
*/
final Test[] tests;
- public Selector(int axis, List tests)
+ public Selector(int axis, List<? extends Test> tests)
{
this.axis = axis;
int len = tests.size();
@@ -177,29 +179,31 @@ public final class Selector
return count;
}
+
+ @Override
public Object evaluate(Node context, int pos, int len)
{
- Set acc = new LinkedHashSet();
+ Set<Node> acc = new LinkedHashSet<Node>();
addCandidates(context, acc);
- List candidates = new ArrayList(acc);
- List ret = filterCandidates(candidates, false);
+ List<Node> candidates = new ArrayList<Node>(acc);
+ List<Node> ret = filterCandidates(candidates, false);
return ret;
}
- Collection evaluate(Node context, Collection ns)
+ Collection<Node> evaluate(Node context, Collection<Node> ns)
{
- Set acc = new LinkedHashSet();
- for (Iterator i = ns.iterator(); i.hasNext(); )
- addCandidates((Node) i.next(), acc);
- List candidates = new ArrayList(acc);
- List ret = filterCandidates(candidates, true);
+ Set<Node> acc = new LinkedHashSet<Node>();
+ for (Iterator<Node> i = ns.iterator(); i.hasNext(); )
+ addCandidates(i.next(), acc);
+ List<Node> candidates = new ArrayList<Node>(acc);
+ List<Node> ret = filterCandidates(candidates, true);
return ret;
}
/**
* Filter the given list of candidates according to the node tests.
*/
- List filterCandidates(List candidates, boolean cascade)
+ List<Node> filterCandidates(List<Node> candidates, boolean cascade)
{
int len = candidates.size();
int tlen = tests.length;
@@ -209,10 +213,10 @@ public final class Selector
for (int j = 0; j < tlen && len > 0; j++)
{
Test test = tests[j];
- List successful = new ArrayList(len);
+ List<Node> successful = new ArrayList<Node>(len);
for (int i = 0; i < len; i++)
{
- Node node = (Node) candidates.get(i);
+ Node node = candidates.get(i);
if (cascade)
{
// Documents and DocumentFragments should be considered
@@ -242,7 +246,7 @@ public final class Selector
return candidates;
}
- void addCandidates(Node context, Collection candidates)
+ void addCandidates(Node context, Collection<Node> candidates)
{
// Build list of candidates
switch (axis)
@@ -291,7 +295,7 @@ public final class Selector
}
}
- void addChildNodes(Node context, Collection acc, boolean recurse)
+ void addChildNodes(Node context, Collection<Node> acc, boolean recurse)
{
Node child = context.getFirstChild();
while (child != null)
@@ -303,7 +307,7 @@ public final class Selector
}
}
- void addParentNode(Node context, Collection acc, boolean recurse)
+ void addParentNode(Node context, Collection<Node> acc, boolean recurse)
{
Node parent = (context.getNodeType() == Node.ATTRIBUTE_NODE) ?
((Attr) context).getOwnerElement() : context.getParentNode();
@@ -315,7 +319,7 @@ public final class Selector
}
}
- void addFollowingNodes(Node context, Collection acc, boolean recurse)
+ void addFollowingNodes(Node context, Collection<Node> acc, boolean recurse)
{
if (context != null && recurse)
addChildNodes(context, acc, true);
@@ -349,7 +353,7 @@ public final class Selector
}
}
- void addPrecedingNodes(Node context, Collection acc, boolean recurse)
+ void addPrecedingNodes(Node context, Collection<Node> acc, boolean recurse)
{
Node cur = (context.getNodeType() == Node.ATTRIBUTE_NODE) ? null :
context.getPreviousSibling();
@@ -370,7 +374,7 @@ public final class Selector
}
}
- void addAttributes(Node context, Collection acc)
+ void addAttributes(Node context, Collection<Node> acc)
{
NamedNodeMap attrs = context.getAttributes();
if (attrs != null)
@@ -387,7 +391,7 @@ public final class Selector
}
}
- void addNamespaceAttributes(Node context, Collection acc)
+ void addNamespaceAttributes(Node context, Collection<Node> acc)
{
NamedNodeMap attrs = context.getAttributes();
if (attrs != null)
@@ -413,7 +417,7 @@ public final class Selector
public Expr clone(Object context)
{
int len = tests.length;
- List tests2 = new ArrayList(len);
+ List<Test> tests2 = new ArrayList<Test>(len);
for (int i = 0; i < len; i++)
tests2.add(tests[i].clone(context));
return new Selector(axis, tests2);
@@ -431,7 +435,7 @@ public final class Selector
public String toString()
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
switch (axis)
{
case ANCESTOR:
diff --git a/libjava/classpath/gnu/xml/xpath/StartsWithFunction.java b/libjava/classpath/gnu/xml/xpath/StartsWithFunction.java
index ec02155..2dc2c40 100644
--- a/libjava/classpath/gnu/xml/xpath/StartsWithFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/StartsWithFunction.java
@@ -54,9 +54,9 @@ final class StartsWithFunction
final Expr arg1;
final Expr arg2;
- StartsWithFunction(List args)
+ StartsWithFunction(List<Expr> args)
{
- this((Expr) args.get(0), (Expr) args.get(1));
+ this(args.get(0), args.get(1));
}
StartsWithFunction(Expr arg1, Expr arg2)
diff --git a/libjava/classpath/gnu/xml/xpath/Steps.java b/libjava/classpath/gnu/xml/xpath/Steps.java
index 9ef6cd3..427fbe2 100644
--- a/libjava/classpath/gnu/xml/xpath/Steps.java
+++ b/libjava/classpath/gnu/xml/xpath/Steps.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.xpath;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Collection;
import java.util.Collections;
import java.util.Iterator;
@@ -56,14 +58,14 @@ public final class Steps
extends Path
{
- final LinkedList path;
+ final LinkedList<Expr> path;
public Steps()
{
- this(new LinkedList());
+ this(new LinkedList<Expr>());
}
- Steps(LinkedList path)
+ Steps(LinkedList<Expr> path)
{
this.path = path;
}
@@ -84,10 +86,8 @@ public final class Steps
if (pos > 0)
{
Pattern left = (Pattern) path.get(pos - 1);
- Iterator j = possibleContexts(right, context).iterator();
- while (j.hasNext())
+ for (Node candidate : possibleContexts(right, context))
{
- Node candidate = (Node) j.next();
if (left.matches(candidate) &&
matches(candidate, pos - 1))
{
@@ -104,12 +104,12 @@ public final class Steps
* Essentially the reverse of Selector.addCandidates.
* The idea is to determine possible context nodes for a match.
*/
- Collection possibleContexts(Pattern pattern, Node context)
+ Collection<Node> possibleContexts(Pattern pattern, Node context)
{
if (pattern instanceof Selector)
{
Selector s = (Selector) pattern;
- Collection candidates = new LinkedHashSet();
+ Collection<Node> candidates = new LinkedHashSet<Node>();
switch (s.axis)
{
case Selector.PARENT:
@@ -157,46 +157,53 @@ public final class Steps
}
return candidates;
}
- return Collections.EMPTY_SET;
+ return Collections.emptySet();
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
//System.err.println(toString()+" evaluate");
// Left to right
- Iterator i = path.iterator();
- Expr lhs = (Expr) i.next();
+ Iterator<Expr> i = path.iterator();
+ Expr lhs = i.next();
Object val = lhs.evaluate(context, pos, len);
//System.err.println("\tevaluate "+lhs+" = "+val);
while (val instanceof Collection && i.hasNext())
{
Path rhs = (Path) i.next();
- val = rhs.evaluate(context, (Collection) val);
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> nodes = (Collection<Node>) val;
+ val = rhs.evaluate(context, nodes);
//System.err.println("\tevaluate "+rhs+" = "+val);
}
return val;
}
- Collection evaluate(Node context, Collection ns)
+ @Override
+ Collection<Node> evaluate(Node context, Collection<Node> ns)
{
// Left to right
- Iterator i = path.iterator();
- Expr lhs = (Expr) i.next();
+ Iterator<Expr> i = path.iterator();
+ Expr lhs = i.next();
if (lhs instanceof Path)
{
ns = ((Path) lhs).evaluate(context, ns);
}
else
{
- Set acc = new LinkedHashSet();
+ Set<Node> acc = new LinkedHashSet<Node>();
int pos = 1, len = ns.size();
- for (Iterator j = ns.iterator(); j.hasNext(); )
+ for (Node node : ns)
{
- Node node = (Node) j.next();
Object ret = lhs.evaluate(node, pos++, len);
if (ret instanceof Collection)
{
- acc.addAll((Collection) ret);
+ /* Suppression is safe, as we know context produces Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> nodes = (Collection<Node>) ret;
+ acc.addAll(nodes);
}
}
ns = acc;
@@ -212,19 +219,19 @@ public final class Steps
public Expr clone(Object context)
{
int len = path.size();
- LinkedList path2 = new LinkedList();
+ LinkedList<Expr> path2 = new LinkedList<Expr>();
for (int i = 0; i < len; i++)
{
- path2.add(((Expr) path.get(i)).clone(context));
+ path2.add(path.get(i).clone(context));
}
return new Steps(path2);
}
public boolean references(QName var)
{
- for (Iterator i = path.iterator(); i.hasNext(); )
+ for (Iterator<Expr> i = path.iterator(); i.hasNext(); )
{
- if (((Expr) i.next()).references(var))
+ if (i.next().references(var))
{
return true;
}
@@ -234,16 +241,16 @@ public final class Steps
public String toString()
{
- StringBuffer buf = new StringBuffer();
- Iterator i = path.iterator();
- Expr expr = (Expr) i.next();
+ CPStringBuilder buf = new CPStringBuilder();
+ Iterator<Expr> i = path.iterator();
+ Expr expr = i.next();
if (!(expr instanceof Root))
{
buf.append(expr);
}
while (i.hasNext())
{
- expr = (Expr) i.next();
+ expr = i.next();
buf.append('/');
buf.append(expr);
}
diff --git a/libjava/classpath/gnu/xml/xpath/StringFunction.java b/libjava/classpath/gnu/xml/xpath/StringFunction.java
index 0a4c681..b8cba37 100644
--- a/libjava/classpath/gnu/xml/xpath/StringFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/StringFunction.java
@@ -84,9 +84,9 @@ final class StringFunction
final Expr arg;
- StringFunction(List args)
+ StringFunction(List<Expr> args)
{
- this(args.size() > 0 ? (Expr) args.get(0) : null);
+ this(args.size() > 0 ? args.get(0) : null);
}
StringFunction(Expr arg)
diff --git a/libjava/classpath/gnu/xml/xpath/StringLengthFunction.java b/libjava/classpath/gnu/xml/xpath/StringLengthFunction.java
index 7f5ceaf..561537e 100644
--- a/libjava/classpath/gnu/xml/xpath/StringLengthFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/StringLengthFunction.java
@@ -55,7 +55,7 @@ final class StringLengthFunction
final Expr arg;
- StringLengthFunction(List args)
+ StringLengthFunction(List<Expr> args)
{
this(args.isEmpty() ? null : (Expr) args.get(0));
}
@@ -65,6 +65,7 @@ final class StringLengthFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = (arg == null) ? null : arg.evaluate(context, pos, len);
diff --git a/libjava/classpath/gnu/xml/xpath/SubstringAfterFunction.java b/libjava/classpath/gnu/xml/xpath/SubstringAfterFunction.java
index 8144cf8..ad75f2e 100644
--- a/libjava/classpath/gnu/xml/xpath/SubstringAfterFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/SubstringAfterFunction.java
@@ -58,9 +58,9 @@ final class SubstringAfterFunction
final Expr arg1;
final Expr arg2;
- SubstringAfterFunction(List args)
+ SubstringAfterFunction(List<Expr> args)
{
- this((Expr) args.get(0), (Expr) args.get(1));
+ this(args.get(0), args.get(1));
}
SubstringAfterFunction(Expr arg1, Expr arg2)
diff --git a/libjava/classpath/gnu/xml/xpath/SubstringBeforeFunction.java b/libjava/classpath/gnu/xml/xpath/SubstringBeforeFunction.java
index 2d92a3e..1bf1657 100644
--- a/libjava/classpath/gnu/xml/xpath/SubstringBeforeFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/SubstringBeforeFunction.java
@@ -57,9 +57,9 @@ final class SubstringBeforeFunction
final Expr arg1;
final Expr arg2;
- SubstringBeforeFunction(List args)
+ SubstringBeforeFunction(List<Expr> args)
{
- this((Expr) args.get(0), (Expr) args.get(1));
+ this(args.get(0), args.get(1));
}
SubstringBeforeFunction(Expr arg1, Expr arg2)
diff --git a/libjava/classpath/gnu/xml/xpath/SubstringFunction.java b/libjava/classpath/gnu/xml/xpath/SubstringFunction.java
index e926f6c..33bcade 100644
--- a/libjava/classpath/gnu/xml/xpath/SubstringFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/SubstringFunction.java
@@ -60,10 +60,10 @@ final class SubstringFunction
final Expr arg2;
final Expr arg3;
- SubstringFunction(List args)
+ SubstringFunction(List<Expr> args)
{
- this((Expr) args.get(0), (Expr) args.get(1),
- (args.size() > 2) ? (Expr) args.get(2) : null);
+ this(args.get(0), args.get(1),
+ (args.size() > 2) ? args.get(2) : null);
}
SubstringFunction(Expr arg1, Expr arg2, Expr arg3)
@@ -73,6 +73,7 @@ final class SubstringFunction
this.arg3 = arg3;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val1 = arg1.evaluate(context, pos, len);
diff --git a/libjava/classpath/gnu/xml/xpath/SumFunction.java b/libjava/classpath/gnu/xml/xpath/SumFunction.java
index 93c2e80..73db2a9 100644
--- a/libjava/classpath/gnu/xml/xpath/SumFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/SumFunction.java
@@ -56,9 +56,9 @@ final class SumFunction
final Expr arg;
- SumFunction(List args)
+ SumFunction(List<Expr> args)
{
- this((Expr) args.get(0));
+ this(args.get(0));
}
SumFunction(Expr arg)
@@ -66,15 +66,19 @@ final class SumFunction
this.arg = arg;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object val = arg.evaluate(context, pos, len);
double sum = 0.0d;
if (val instanceof Collection)
{
- for (Iterator i = ((Collection) val).iterator(); i.hasNext(); )
+ /* Suppression is safe, as we know context produces
+ Collection<Node> */
+ @SuppressWarnings("unchecked")
+ Collection<Node> nodes = (Collection<Node>) val;
+ for (Node node : nodes)
{
- Node node = (Node) i.next();
String s = stringValue(node);
sum += _number(context, s);
}
diff --git a/libjava/classpath/gnu/xml/xpath/TranslateFunction.java b/libjava/classpath/gnu/xml/xpath/TranslateFunction.java
index 54e8b9c..8b4b8b2 100644
--- a/libjava/classpath/gnu/xml/xpath/TranslateFunction.java
+++ b/libjava/classpath/gnu/xml/xpath/TranslateFunction.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.xpath;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.List;
import javax.xml.namespace.QName;
import org.w3c.dom.Node;
@@ -66,9 +68,9 @@ final class TranslateFunction
final Expr arg2;
final Expr arg3;
- TranslateFunction(List args)
+ TranslateFunction(List<Expr> args)
{
- this((Expr) args.get(0), (Expr) args.get(1), (Expr) args.get(2));
+ this(args.get(0), args.get(1), args.get(2));
}
TranslateFunction(Expr arg1, Expr arg2, Expr arg3)
@@ -86,7 +88,7 @@ final class TranslateFunction
String string = _string(context, val1);
String search = _string(context, val2);
String replace = _string(context, val3);
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
int l1 = string.length();
int l2 = search.length();
int l3 = replace.length();
@@ -110,7 +112,7 @@ final class TranslateFunction
buf.append(c);
}
}
- return new String(buf);
+ return buf.toString();
}
public Expr clone(Object context)
diff --git a/libjava/classpath/gnu/xml/xpath/UnionExpr.java b/libjava/classpath/gnu/xml/xpath/UnionExpr.java
index 5078713..03ae5c0 100644
--- a/libjava/classpath/gnu/xml/xpath/UnionExpr.java
+++ b/libjava/classpath/gnu/xml/xpath/UnionExpr.java
@@ -74,20 +74,29 @@ public final class UnionExpr
return false;
}
+ @Override
public Object evaluate(Node context, int pos, int len)
{
Object left = lhs.evaluate(context, pos, len);
Object right = rhs.evaluate(context, pos, len);
+ List<Node> list;
if (left instanceof Collection && right instanceof Collection)
{
- Set set = new HashSet();
- set.addAll ((Collection) left);
- set.addAll ((Collection) right);
- List list = new ArrayList(set);
+ Set<Node> set = new HashSet<Node>();
+ /* Suppression is safe as addAll will check the types
+ of the elements and throw a ClassCastException as necessary */
+ @SuppressWarnings("unchecked")
+ Collection<Node> l = (Collection<Node>) left;
+ @SuppressWarnings("unchecked")
+ Collection<Node> r = (Collection<Node>) right;
+ set.addAll (l);
+ set.addAll (r);
+ list = new ArrayList<Node>(set);
Collections.sort(list, documentOrderComparator);
- return list;
}
- return Collections.EMPTY_SET;
+ else
+ list = Collections.emptyList();
+ return list;
}
public Expr clone(Object context)
diff --git a/libjava/classpath/gnu/xml/xpath/VariableReference.java b/libjava/classpath/gnu/xml/xpath/VariableReference.java
index 813a37f..9ef6f16 100644
--- a/libjava/classpath/gnu/xml/xpath/VariableReference.java
+++ b/libjava/classpath/gnu/xml/xpath/VariableReference.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.xpath;
+import gnu.java.lang.CPStringBuilder;
+
import javax.xml.namespace.QName;
import javax.xml.xpath.XPathVariableResolver;
import org.w3c.dom.Node;
@@ -86,7 +88,7 @@ public class VariableReference
public String toString()
{
- StringBuffer buf = new StringBuffer("$");
+ CPStringBuilder buf = new CPStringBuilder("$");
String prefix = name.getPrefix();
if (prefix != null && !"".equals(prefix))
{
diff --git a/libjava/classpath/gnu/xml/xpath/XPathParser.java b/libjava/classpath/gnu/xml/xpath/XPathParser.java
index 9b7540a..e8c8e94 100644
--- a/libjava/classpath/gnu/xml/xpath/XPathParser.java
+++ b/libjava/classpath/gnu/xml/xpath/XPathParser.java
@@ -79,7 +79,7 @@ public class XPathParser
return qName;
}
- Expr lookupFunction(String name, List args)
+ Expr lookupFunction(String name, List<Expr> args)
{
int arity = args.size();
if ("position".equals(name) && arity == 0)
@@ -491,7 +491,7 @@ case 5:
else
{
steps = new Steps();
- steps.path.addFirst(yyVals[0+yyTop]);
+ steps.path.addFirst((Expr) yyVals[0+yyTop]);
}
steps.path.addFirst(new Root());
yyVal = steps;
@@ -512,7 +512,7 @@ case 6:
else
{
steps = new Steps();
- steps.path.addFirst(yyVals[0+yyTop]);
+ steps.path.addFirst((Expr) yyVals[0+yyTop]);
}
steps.path.addFirst(s);
steps.path.addFirst(new Root());
@@ -532,9 +532,9 @@ case 8:
else
{
steps = new Steps();
- steps.path.addFirst(yyVals[-2+yyTop]);
+ steps.path.addFirst((Expr) yyVals[-2+yyTop]);
}
- steps.path.addLast(yyVals[0+yyTop]);
+ steps.path.addLast((Expr) yyVals[0+yyTop]);
yyVal = steps;
/*$$ = new Step((Expr) $1, (Path) $3);*/
}
@@ -553,10 +553,10 @@ case 9:
else
{
steps = new Steps();
- steps.path.addFirst(yyVals[-2+yyTop]);
+ steps.path.addFirst((Expr) yyVals[-2+yyTop]);
}
steps.path.addLast(s);
- steps.path.addLast(yyVals[0+yyTop]);
+ steps.path.addLast((Expr) yyVals[0+yyTop]);
yyVal = steps;
/*Step step = new Step(s, (Path) $3);*/
/*$$ = new Step((Expr) $1, step);*/
@@ -565,48 +565,56 @@ case 9:
case 10:
// line 362 "XPathParser.y"
{
- yyVal = new Selector (Selector.CHILD, (List) yyVals[0+yyTop]);
- }
+ @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) yyVals[0+yyTop];
+ yyVal = new Selector (Selector.CHILD, tests);
+ }
break;
case 11:
// line 366 "XPathParser.y"
{
- yyVal = new Selector (Selector.ATTRIBUTE, (List) yyVals[0+yyTop]);
- }
+ /* This is safe as we create this in one of the other cases */
+ @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) yyVals[0+yyTop];
+ yyVal = new Selector (Selector.ATTRIBUTE, tests);
+ }
break;
case 12:
// line 370 "XPathParser.y"
{
- yyVal = new Selector (((Integer) yyVals[-2+yyTop]).intValue (), (List) yyVals[0+yyTop]);
- }
+ /* This is safe as we create this in one of the other cases */
+ @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) yyVals[0+yyTop];
+ yyVal = new Selector (((Integer) yyVals[-2+yyTop]).intValue (), tests);
+ }
break;
case 13:
// line 374 "XPathParser.y"
{
- yyVal = new Selector (Selector.SELF, Collections.EMPTY_LIST);
- }
+ List<Test> emptyList = Collections.emptyList();
+ yyVal = new Selector (Selector.SELF, emptyList);
+ }
break;
case 14:
// line 378 "XPathParser.y"
{
- yyVal = new Selector (Selector.PARENT, Collections.EMPTY_LIST);
- }
+ List<Test> emptyList = Collections.emptyList();
+ yyVal = new Selector (Selector.PARENT, emptyList);
+ }
break;
case 15:
// line 385 "XPathParser.y"
{
- List list = new ArrayList();
- list.add(yyVals[0+yyTop]);
+ List<Test> list = new ArrayList<Test>();
+ list.add((Test) yyVals[0+yyTop]);
yyVal = list;
}
break;
case 16:
// line 391 "XPathParser.y"
{
- List list = (List)yyVals[-1+yyTop];
- list.add(yyVals[0+yyTop]);
- yyVal = list;
- }
+ /* This is safe as we create this in one of the other cases */
+ @SuppressWarnings("unchecked") List<Test> tests = (List<Test>)yyVals[-1+yyTop];
+ tests.add((Test) yyVals[0+yyTop]);
+ yyVal = tests;
+ }
break;
case 17:
// line 415 "XPathParser.y"
@@ -725,30 +733,34 @@ case 37:
case 39:
// line 508 "XPathParser.y"
{
- yyVal = lookupFunction((String) yyVals[-2+yyTop], Collections.EMPTY_LIST);
- }
+ List<Expr> emptyList = Collections.emptyList();
+ yyVal = lookupFunction((String) yyVals[-2+yyTop], emptyList);
+ }
break;
case 40:
// line 512 "XPathParser.y"
{
- yyVal = lookupFunction((String) yyVals[-3+yyTop], (List) yyVals[-1+yyTop]);
- }
+ /* This is safe as we create this below */
+ @SuppressWarnings("unchecked") List<Expr> exprs = (List<Expr>) yyVals[-1+yyTop];
+ yyVal = lookupFunction((String) yyVals[-3+yyTop], exprs);
+ }
break;
case 41:
// line 519 "XPathParser.y"
{
- List list = new ArrayList();
- list.add(yyVals[0+yyTop]);
+ List<Expr> list = new ArrayList<Expr>();
+ list.add((Expr) yyVals[0+yyTop]);
yyVal = list;
}
break;
case 42:
// line 525 "XPathParser.y"
{
- List list = (List) yyVals[0+yyTop];
- list.add(0, yyVals[-2+yyTop]);
- yyVal = list;
- }
+ /* This is safe as we create this above */
+ @SuppressWarnings("unchecked") List<Expr> list = (List<Expr>) yyVals[0+yyTop];
+ list.add(0, (Expr) yyVals[-2+yyTop]);
+ yyVal = list;
+ }
break;
case 44:
// line 535 "XPathParser.y"
@@ -767,9 +779,9 @@ case 47:
else
{
steps = new Steps();
- steps.path.addFirst(yyVals[0+yyTop]);
+ steps.path.addFirst((Expr) yyVals[0+yyTop]);
}
- steps.path.addFirst(yyVals[-2+yyTop]);
+ steps.path.addFirst((Expr) yyVals[-2+yyTop]);
yyVal = steps;
/*$$ = new Step ((Expr) $1, (Path) $3);*/
}
@@ -788,10 +800,10 @@ case 48:
else
{
steps = new Steps();
- steps.path.addFirst(yyVals[0+yyTop]);
+ steps.path.addFirst((Expr) yyVals[0+yyTop]);
}
steps.path.addFirst(s);
- steps.path.addFirst(yyVals[-2+yyTop]);
+ steps.path.addFirst((Expr) yyVals[-2+yyTop]);
yyVal = steps;
/*Step step = new Step (s, (Path) $3);*/
/*$$ = new Step ((Expr) $1, step);*/
@@ -811,7 +823,7 @@ case 50:
else
{
steps = new Steps();
- steps.path.addFirst(yyVals[-1+yyTop]);
+ steps.path.addFirst((Expr) yyVals[-1+yyTop]);
}
steps.path.addLast(s);
yyVal = steps;
diff --git a/libjava/classpath/gnu/xml/xpath/XPathParser.y b/libjava/classpath/gnu/xml/xpath/XPathParser.y
index 5501513..a6d3fd1 100644
--- a/libjava/classpath/gnu/xml/xpath/XPathParser.y
+++ b/libjava/classpath/gnu/xml/xpath/XPathParser.y
@@ -78,7 +78,7 @@ public class XPathParser
return qName;
}
- Expr lookupFunction(String name, List args)
+ Expr lookupFunction(String name, List<Expr> args)
{
int arity = args.size();
if ("position".equals(name) && arity == 0)
@@ -287,7 +287,7 @@ absolute_location_path:
else
{
steps = new Steps();
- steps.path.addFirst($2);
+ steps.path.addFirst((Expr) $2);
}
steps.path.addFirst(new Root());
$$ = steps;
@@ -306,7 +306,7 @@ absolute_location_path:
else
{
steps = new Steps();
- steps.path.addFirst($2);
+ steps.path.addFirst((Expr) $2);
}
steps.path.addFirst(s);
steps.path.addFirst(new Root());
@@ -328,9 +328,9 @@ relative_location_path:
else
{
steps = new Steps();
- steps.path.addFirst($1);
+ steps.path.addFirst((Expr) $1);
}
- steps.path.addLast($3);
+ steps.path.addLast((Expr) $3);
$$ = steps;
//$$ = new Step((Expr) $1, (Path) $3);
}
@@ -347,10 +347,10 @@ relative_location_path:
else
{
steps = new Steps();
- steps.path.addFirst($1);
+ steps.path.addFirst((Expr) $1);
}
steps.path.addLast(s);
- steps.path.addLast($3);
+ steps.path.addLast((Expr) $3);
$$ = steps;
//Step step = new Step(s, (Path) $3);
//$$ = new Step((Expr) $1, step);
@@ -360,37 +360,43 @@ relative_location_path:
step:
step_node_test
{
- $$ = new Selector (Selector.CHILD, (List) $1);
+ @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) $1;
+ $$ = new Selector (Selector.CHILD, tests);
}
| AT step_node_test
{
- $$ = new Selector (Selector.ATTRIBUTE, (List) $2);
+ @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) $2;
+ $$ = new Selector (Selector.ATTRIBUTE, tests);
}
| axis_name DOUBLE_COLON step_node_test
{
- $$ = new Selector (((Integer) $1).intValue (), (List) $3);
+ @SuppressWarnings("unchecked") List<Test> tests = (List<Test>) $3;
+ $$ = new Selector (((Integer) $1).intValue (), tests);
}
| DOT
{
- $$ = new Selector (Selector.SELF, Collections.EMPTY_LIST);
+ List<Test> emptyList = Collections.emptyList();
+ $$ = new Selector (Selector.SELF, emptyList);
}
| DOUBLE_DOT
{
- $$ = new Selector (Selector.PARENT, Collections.EMPTY_LIST);
+ List<Test> emptyList = Collections.emptyList();
+ $$ = new Selector (Selector.PARENT, emptyList);
}
;
step_node_test:
node_test
{
- List list = new ArrayList();
- list.add($1);
+ List<Test> list = new ArrayList<Test>();
+ list.add((Test) $1);
$$ = list;
}
| step_node_test predicate
{
- List list = (List)$1;
- list.add($2);
+ /* This is safe as we create this in one of the other cases */
+ @SuppressWarnings("unchecked") List<Test> tests = (List<Test>)$1;
+ tests.add((Test) $2);
$$ = list;
}
;
@@ -506,25 +512,29 @@ primary_expr:
function_call:
function_name LP RP
{
- $$ = lookupFunction((String) $1, Collections.EMPTY_LIST);
+ List<Expr> emptyList = Collections.emptyList();
+ $$ = lookupFunction((String) $1, emptyList);
}
| function_name LP argument_list RP
{
- $$ = lookupFunction((String) $1, (List) $3);
+ /* This is safe as we create this below */
+ @SuppressWarnings("unchecked") List<Expr> exprs = (List<Expr>) $3;
+ $$ = lookupFunction((String) $1, (List) exprs);
}
;
argument_list:
expr
{
- List list = new ArrayList();
- list.add($1);
+ List<Expr> list = new ArrayList<Expr>();
+ list.add((Expr) $1);
$$ = list;
}
| expr COMMA argument_list
{
- List list = (List) $3;
- list.add(0, $1);
+ /* This is safe as we create this above */
+ @SuppressWarnings("unchecked") List<Expr> list = (List<Expr>) $3;
+ list.add(0, (Expr) $1);
$$ = list;
}
;
@@ -550,9 +560,9 @@ path_expr:
else
{
steps = new Steps();
- steps.path.addFirst($3);
+ steps.path.addFirst((Expr) $3);
}
- steps.path.addFirst($1);
+ steps.path.addFirst((Expr) $1);
$$ = steps;
//$$ = new Step ((Expr) $1, (Path) $3);
}
@@ -572,7 +582,7 @@ path_expr:
steps.path.addFirst($3);
}
steps.path.addFirst(s);
- steps.path.addFirst($1);
+ steps.path.addFirst((Expr) $1);
$$ = steps;
//Step step = new Step (s, (Path) $3);
//$$ = new Step ((Expr) $1, step);
@@ -594,7 +604,7 @@ filter_expr:
else
{
steps = new Steps();
- steps.path.addFirst($1);
+ steps.path.addFirst((Expr) $1);
}
steps.path.addLast(s);
$$ = steps;
diff --git a/libjava/classpath/gnu/xml/xpath/XPathTokenizer.java b/libjava/classpath/gnu/xml/xpath/XPathTokenizer.java
index a287137..bf4516a 100644
--- a/libjava/classpath/gnu/xml/xpath/XPathTokenizer.java
+++ b/libjava/classpath/gnu/xml/xpath/XPathTokenizer.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package gnu.xml.xpath;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.Reader;
@@ -90,7 +92,7 @@ implements XPathParser.yyInput
}
- static final Map keywords = new TreeMap ();
+ static final Map<String,Integer> keywords = new TreeMap<String,Integer> ();
static
{
keywords.put ("ancestor", new Integer (XPathParser.ANCESTOR));
@@ -314,7 +316,7 @@ implements XPathParser.yyInput
XPathToken consume_literal (int delimiter)
throws IOException
{
- StringBuffer buf = new StringBuffer ();
+ CPStringBuilder buf = new CPStringBuilder ();
while (true)
{
int c = in.read ();
@@ -336,7 +338,7 @@ implements XPathParser.yyInput
XPathToken consume_digits (int c)
throws IOException
{
- StringBuffer buf = new StringBuffer ();
+ CPStringBuilder buf = new CPStringBuilder ();
buf.append ((char) c);
while (true)
{
@@ -357,7 +359,7 @@ implements XPathParser.yyInput
XPathToken consume_name (int c)
throws IOException
{
- StringBuffer buf = new StringBuffer ();
+ CPStringBuilder buf = new CPStringBuilder ();
buf.append ((char) c);
while (true)
{
diff --git a/libjava/classpath/include/Makefile.am b/libjava/classpath/include/Makefile.am
index 4920ca0..ab59f0f 100644
--- a/libjava/classpath/include/Makefile.am
+++ b/libjava/classpath/include/Makefile.am
@@ -133,6 +133,7 @@ $(XMLJ_H_FILES) \
$(GTKPEER_H_FILES) \
$(QTPEER_H_FILES) \
$(GCONF_PREFS_FILES) \
+gnu_java_math_GMP.h \
gnu_java_net_VMPlainSocketImpl.h \
gnu_java_net_local_LocalSocketImpl.h \
gnu_java_nio_EpollSelectorImpl.h \
@@ -370,6 +371,8 @@ gnu_javax_sound_sampled_gstreamer_lines_GstNativeDataLine.h: $(top_builddir)/gnu
$(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstNativeDataLine
gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java
$(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstPipeline
+gnu_java_math_GMP.h: $(top_srcdir)/gnu/java/math/GMP.java
+ $(JAVAH) -o $@ gnu.java.math.GMP
gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java
$(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl
gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
diff --git a/libjava/classpath/include/Makefile.in b/libjava/classpath/include/Makefile.in
index c94219b..7caa9c8 100644
--- a/libjava/classpath/include/Makefile.in
+++ b/libjava/classpath/include/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -73,6 +76,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -104,6 +109,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -142,11 +153,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -156,6 +168,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -177,7 +191,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -243,8 +260,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -255,6 +274,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -314,6 +334,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
@CREATE_JNI_HEADERS_FALSE@DISTCLEANFILES = jni_md.h config-int.h
@CREATE_JNI_HEADERS_TRUE@DISTCLEANFILES = jni_md.h config-int.h $(H_FILES)
@@ -442,6 +463,7 @@ $(XMLJ_H_FILES) \
$(GTKPEER_H_FILES) \
$(QTPEER_H_FILES) \
$(GCONF_PREFS_FILES) \
+gnu_java_math_GMP.h \
gnu_java_net_VMPlainSocketImpl.h \
gnu_java_net_local_LocalSocketImpl.h \
gnu_java_nio_EpollSelectorImpl.h \
@@ -858,6 +880,8 @@ uninstall-am: uninstall-info-am
@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstNativeDataLine
@CREATE_JNI_HEADERS_TRUE@gnu_javax_sound_sampled_gstreamer_lines_GstPipeline.h: $(top_builddir)/gnu/javax/sound/sampled/gstreamer/lines/GstPipeline.java
@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.javax.sound.sampled.gstreamer.lines.GstPipeline
+@CREATE_JNI_HEADERS_TRUE@gnu_java_math_GMP.h: $(top_srcdir)/gnu/java/math/GMP.java
+@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.math.GMP
@CREATE_JNI_HEADERS_TRUE@gnu_java_net_VMPlainSocketImpl.h: $(top_srcdir)/vm/reference/gnu/java/net/VMPlainSocketImpl.java
@CREATE_JNI_HEADERS_TRUE@ $(JAVAH) -o $@ gnu.java.net.VMPlainSocketImpl
@CREATE_JNI_HEADERS_TRUE@gnu_java_net_local_LocalSocketImpl.h: $(top_srcdir)/gnu/java/net/local/LocalSocketImpl.java
diff --git a/libjava/classpath/include/config.h.in b/libjava/classpath/include/config.h.in
index 4330a30..0af9aba 100644
--- a/libjava/classpath/include/config.h.in
+++ b/libjava/classpath/include/config.h.in
@@ -96,6 +96,9 @@
/* Define to 1 if you have the `getsockopt' function. */
#undef HAVE_GETSOCKOPT
+/* Define to 1 if you have the <gmp.h> header file. */
+#undef HAVE_GMP_H
+
/* Define if function attributes a la GCC 2.5 and higher are available. */
#undef HAVE_GNUC25_ATTRIB
@@ -144,6 +147,9 @@
/* Define to 1 if you have the `ltdl' library (-lltdl). */
#undef HAVE_LIBLTDL
+/* Define to 1 if you have the `socket' library (-lsocket). */
+#undef HAVE_LIBSOCKET
+
/* Define to 1 if you have the `listen' function. */
#undef HAVE_LISTEN
@@ -291,6 +297,9 @@
/* Define to 1 if you have the <sys/select.h> header file. */
#undef HAVE_SYS_SELECT_H
+/* Define to 1 if you have the <sys/sockio.h> header file. */
+#undef HAVE_SYS_SOCKIO_H
+
/* Define to 1 if you have the <sys/stat.h> header file. */
#undef HAVE_SYS_STAT_H
@@ -413,6 +422,9 @@
/* Version number of package */
#undef VERSION
+/* Define to 1 if gmp is usable */
+#undef WITH_GNU_MP
+
/* whether byteorder is bigendian */
#undef WORDS_BIGENDIAN
diff --git a/libjava/classpath/include/gnu_java_math_GMP.h b/libjava/classpath/include/gnu_java_math_GMP.h
new file mode 100644
index 0000000..dc79c69
--- /dev/null
+++ b/libjava/classpath/include/gnu_java_math_GMP.h
@@ -0,0 +1,58 @@
+/* DO NOT EDIT THIS FILE - it is machine generated */
+
+#include <jni.h>
+
+#ifndef __gnu_java_math_GMP__
+#define __gnu_java_math_GMP__
+
+#ifdef __cplusplus
+extern "C"
+{
+#endif
+
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natInitializeLibrary (JNIEnv *env, jclass);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natInitialize (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFinalize (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromLong (JNIEnv *env, jobject, jlong);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromBI (JNIEnv *env, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromByteArray (JNIEnv *env, jobject, jbyteArray);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natFromString (JNIEnv *env, jobject, jstring, jint);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFromSignedMagnitude (JNIEnv *env, jobject, jbyteArray, jboolean);
+JNIEXPORT jstring JNICALL Java_gnu_java_math_GMP_natToString (JNIEnv *env, jobject, jint);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natToByteArray (JNIEnv *env, jobject, jbyteArray);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natAbsIntValue (JNIEnv *env, jobject);
+JNIEXPORT jdouble JNICALL Java_gnu_java_math_GMP_natDoubleValue (JNIEnv *env, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natCompare (JNIEnv *env, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAdd (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natSubtract (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natMultiply (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natQuotient (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natRemainder (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natQuotientAndRemainder (JNIEnv *env, jobject, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natModulo (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natPow (JNIEnv *env, jobject, jint, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natModPow (JNIEnv *env, jobject, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natModInverse (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natGCD (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natTestPrimality (JNIEnv *env, jobject, jint);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natShiftLeft (JNIEnv *env, jobject, jint, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natShiftRight (JNIEnv *env, jobject, jint, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natLowestSetBit (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAbs (JNIEnv *env, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natNegate (JNIEnv *env, jobject, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natBitLength (JNIEnv *env, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natSetBitCount (JNIEnv *env, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natXor (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natOr (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAnd (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natAndNot (JNIEnv *env, jobject, jobject, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natFlipBit (JNIEnv *env, jobject, jint, jobject);
+JNIEXPORT jint JNICALL Java_gnu_java_math_GMP_natTestBit (JNIEnv *env, jobject, jint);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natSetBit (JNIEnv *env, jobject, jint, jboolean, jobject);
+JNIEXPORT void JNICALL Java_gnu_java_math_GMP_natNot (JNIEnv *env, jobject, jobject);
+
+#ifdef __cplusplus
+}
+#endif
+
+#endif /* __gnu_java_math_GMP__ */
diff --git a/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h b/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
index d63f049..1ff3672 100644
--- a/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
+++ b/libjava/classpath/include/gnu_java_util_prefs_gconf_GConfNativePeer.h
@@ -13,15 +13,13 @@ extern "C"
JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache (JNIEnv *env, jclass);
JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1class (JNIEnv *env, jclass);
JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class (JNIEnv *env, jclass);
-JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists (JNIEnv *env, jclass, jstring);
-JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir (JNIEnv *env, jclass, jstring);
-JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1remove_1dir (JNIEnv *env, jclass, jstring);
-JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string (JNIEnv *env, jclass, jstring, jstring);
-JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string (JNIEnv *env, jclass, jstring);
-JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset (JNIEnv *env, jclass, jstring);
-JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1suggest_1sync (JNIEnv *env, jclass);
-JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes (JNIEnv *env, jclass, jstring);
-JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1dir_1exists (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1set_1string (JNIEnv *env, jclass, jstring, jstring);
+JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1get_1string (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unset (JNIEnv *env, jclass, jstring);
+JNIEXPORT void JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1suggest_1sync (JNIEnv *env, jclass);
+JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1all_1nodes (JNIEnv *env, jclass, jstring);
+JNIEXPORT jobject JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1all_1keys (JNIEnv *env, jclass, jstring);
JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key (JNIEnv *env, jclass, jstring);
JNIEXPORT jstring JNICALL Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key (JNIEnv *env, jclass, jstring);
diff --git a/libjava/classpath/include/java_io_VMFile.h b/libjava/classpath/include/java_io_VMFile.h
index 2702176..722c315 100644
--- a/libjava/classpath/include/java_io_VMFile.h
+++ b/libjava/classpath/include/java_io_VMFile.h
@@ -28,6 +28,7 @@ JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setWritable (JNIEnv *env, jclass,
JNIEXPORT jboolean JNICALL Java_java_io_VMFile_setExecutable (JNIEnv *env, jclass, jstring, jboolean, jboolean);
JNIEXPORT jboolean JNICALL Java_java_io_VMFile_isFile (JNIEnv *env, jclass, jstring);
JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canWrite (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canWriteDirectory (JNIEnv *env, jclass, jstring);
JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canRead (JNIEnv *env, jclass, jstring);
JNIEXPORT jboolean JNICALL Java_java_io_VMFile_canExecute (JNIEnv *env, jclass, jstring);
JNIEXPORT jboolean JNICALL Java_java_io_VMFile_isDirectory (JNIEnv *env, jclass, jstring);
diff --git a/libjava/classpath/include/java_net_VMNetworkInterface.h b/libjava/classpath/include/java_net_VMNetworkInterface.h
index ff95094..3d37e4b 100644
--- a/libjava/classpath/include/java_net_VMNetworkInterface.h
+++ b/libjava/classpath/include/java_net_VMNetworkInterface.h
@@ -12,6 +12,10 @@ extern "C"
JNIEXPORT void JNICALL Java_java_net_VMNetworkInterface_initIds (JNIEnv *env, jclass);
JNIEXPORT jobjectArray JNICALL Java_java_net_VMNetworkInterface_getVMInterfaces (JNIEnv *env, jclass);
+JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_isUp (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_isLoopback (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_isPointToPoint (JNIEnv *env, jclass, jstring);
+JNIEXPORT jboolean JNICALL Java_java_net_VMNetworkInterface_supportsMulticast (JNIEnv *env, jclass, jstring);
#ifdef __cplusplus
}
diff --git a/libjava/classpath/include/jni.h b/libjava/classpath/include/jni.h
index 707edd6..1c4e697 100644
--- a/libjava/classpath/include/jni.h
+++ b/libjava/classpath/include/jni.h
@@ -1,5 +1,5 @@
/* jni.h
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007 Free Software Foundation
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2004, 2005, 2006, 2007, 2008 Free Software Foundation
This file is part of GNU Classpath.
@@ -136,16 +136,6 @@ struct _jfieldID;
struct _jmethodID;
typedef struct _jfieldID *jfieldID;
typedef struct _jmethodID *jmethodID;
-
-enum _jobjectRefType
-{
- JNIInvalidRefType = 0,
- JNILocalRefType = 1,
- JNIGlobalRefType = 2,
- JNIWeakGlobalRefType = 3
-};
-
-typedef enum _jobjectRefType jobjectRefType;
#endif
/* Version numbers. */
@@ -164,6 +154,15 @@ typedef enum _jobjectRefType jobjectRefType;
#define JNI_EDETACHED (-2)
#define JNI_EVERSION (-3)
+enum _jobjectRefType
+{
+ JNIInvalidRefType = 0,
+ JNILocalRefType = 1,
+ JNIGlobalRefType = 2,
+ JNIWeakGlobalRefType = 3
+};
+
+typedef enum _jobjectRefType jobjectRefType;
#ifdef __cplusplus
extern "C"
@@ -661,894 +660,894 @@ class _Jv_JNIEnv
{
public:
/* The method table. */
- struct JNINativeInterface_ *p;
+ struct JNINativeInterface_ *functions;
#ifdef _CLASSPATH_JNIENV_CONTENTS
_CLASSPATH_JNIENV_CONTENTS
#endif
jint GetVersion ()
- { return p->GetVersion (this); }
+ { return functions->GetVersion (this); }
jclass DefineClass (const char *name, jobject obj0, const jbyte * val1,
jsize val2)
- { return p->DefineClass (this, name, obj0, val1, val2); }
+ { return functions->DefineClass (this, name, obj0, val1, val2); }
jclass FindClass (const char * val0)
- { return p->FindClass (this, val0); }
+ { return functions->FindClass (this, val0); }
jmethodID FromReflectedMethod (jobject obj0)
- { return p->FromReflectedMethod (this, obj0); }
+ { return functions->FromReflectedMethod (this, obj0); }
jfieldID FromReflectedField (jobject obj0)
- { return p->FromReflectedField (this, obj0); }
+ { return functions->FromReflectedField (this, obj0); }
jobject ToReflectedMethod (jclass cl0, jmethodID meth1, jboolean val2)
- { return p->ToReflectedMethod (this, cl0, meth1, val2); }
+ { return functions->ToReflectedMethod (this, cl0, meth1, val2); }
jclass GetSuperclass (jclass cl0)
- { return p->GetSuperclass (this, cl0); }
+ { return functions->GetSuperclass (this, cl0); }
jboolean IsAssignableFrom (jclass cl0, jclass cl1)
- { return p->IsAssignableFrom (this, cl0, cl1); }
+ { return functions->IsAssignableFrom (this, cl0, cl1); }
jobject ToReflectedField (jclass cl0, jfieldID fld1, jboolean val2)
- { return p->ToReflectedField (this, cl0, fld1, val2); }
+ { return functions->ToReflectedField (this, cl0, fld1, val2); }
jint Throw (jthrowable val0)
- { return p->Throw (this, val0); }
+ { return functions->Throw (this, val0); }
jint ThrowNew (jclass cl0, const char * val1)
- { return p->ThrowNew (this, cl0, val1); }
+ { return functions->ThrowNew (this, cl0, val1); }
jthrowable ExceptionOccurred ()
- { return p->ExceptionOccurred (this); }
+ { return functions->ExceptionOccurred (this); }
void ExceptionDescribe ()
- { p->ExceptionDescribe (this); }
+ { functions->ExceptionDescribe (this); }
void ExceptionClear ()
- { p->ExceptionClear (this); }
+ { functions->ExceptionClear (this); }
void FatalError (const char * val0)
- { p->FatalError (this, val0); }
+ { functions->FatalError (this, val0); }
jint PushLocalFrame (jint val0)
- { return p->PushLocalFrame (this, val0); }
+ { return functions->PushLocalFrame (this, val0); }
jobject PopLocalFrame (jobject obj0)
- { return p->PopLocalFrame (this, obj0); }
+ { return functions->PopLocalFrame (this, obj0); }
jobject NewGlobalRef (jobject obj0)
- { return p->NewGlobalRef (this, obj0); }
+ { return functions->NewGlobalRef (this, obj0); }
void DeleteGlobalRef (jobject obj0)
- { p->DeleteGlobalRef (this, obj0); }
+ { functions->DeleteGlobalRef (this, obj0); }
void DeleteLocalRef (jobject obj0)
- { p->DeleteLocalRef (this, obj0); }
+ { functions->DeleteLocalRef (this, obj0); }
jboolean IsSameObject (jobject obj0, jobject obj1)
- { return p->IsSameObject (this, obj0, obj1); }
+ { return functions->IsSameObject (this, obj0, obj1); }
jobject NewLocalRef (jobject obj0)
- { return p->NewLocalRef (this, obj0); }
+ { return functions->NewLocalRef (this, obj0); }
jint EnsureLocalCapacity (jint val0)
- { return p->EnsureLocalCapacity (this, val0); }
+ { return functions->EnsureLocalCapacity (this, val0); }
jobject AllocObject (jclass cl0)
- { return p->AllocObject (this, cl0); }
+ { return functions->AllocObject (this, cl0); }
jobject NewObject (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jobject result = p->NewObjectV (this, cl0, meth1, args);
+ jobject result = functions->NewObjectV (this, cl0, meth1, args);
va_end (args);
return result;
}
jobject NewObjectV (jclass cl0, jmethodID meth1, va_list val2)
- { return p->NewObjectV (this, cl0, meth1, val2); }
+ { return functions->NewObjectV (this, cl0, meth1, val2); }
jobject NewObjectA (jclass cl0, jmethodID meth1, jvalue * val2)
- { return p->NewObjectA (this, cl0, meth1, val2); }
+ { return functions->NewObjectA (this, cl0, meth1, val2); }
jclass GetObjectClass (jobject obj0)
- { return p->GetObjectClass (this, obj0); }
+ { return functions->GetObjectClass (this, obj0); }
jboolean IsInstanceOf (jobject obj0, jclass cl1)
- { return p->IsInstanceOf (this, obj0, cl1); }
+ { return functions->IsInstanceOf (this, obj0, cl1); }
jmethodID GetMethodID (jclass cl0, const char * val1, const char * val2)
- { return p->GetMethodID (this, cl0, val1, val2); }
+ { return functions->GetMethodID (this, cl0, val1, val2); }
jobject CallObjectMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jobject result = p->CallObjectMethodV (this, obj0, meth1, args);
+ jobject result = functions->CallObjectMethodV (this, obj0, meth1, args);
va_end (args);
return result;
}
jobject CallObjectMethodV (jobject obj0, jmethodID meth1, va_list val2)
- { return p->CallObjectMethodV (this, obj0, meth1, val2); }
+ { return functions->CallObjectMethodV (this, obj0, meth1, val2); }
jobject CallObjectMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallObjectMethodA (this, obj0, meth1, val2); }
+ { return functions->CallObjectMethodA (this, obj0, meth1, val2); }
jboolean CallBooleanMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jboolean result = p->CallBooleanMethodV (this, obj0, meth1, args);
+ jboolean result = functions->CallBooleanMethodV (this, obj0, meth1, args);
va_end (args);
return result;
}
jboolean CallBooleanMethodV (jobject obj0, jmethodID meth1, va_list val2)
- { return p->CallBooleanMethodV (this, obj0, meth1, val2); }
+ { return functions->CallBooleanMethodV (this, obj0, meth1, val2); }
jboolean CallBooleanMethodA (jobject obj0, jmethodID meth1,
const jvalue * val2)
- { return p->CallBooleanMethodA (this, obj0, meth1, val2); }
+ { return functions->CallBooleanMethodA (this, obj0, meth1, val2); }
jbyte CallByteMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jbyte result = p->CallByteMethodV (this, obj0, meth1, args);
+ jbyte result = functions->CallByteMethodV (this, obj0, meth1, args);
va_end (args);
return result;
}
jbyte CallByteMethodV (jobject obj0, jmethodID meth1, va_list val2)
- { return p->CallByteMethodV (this, obj0, meth1, val2); }
+ { return functions->CallByteMethodV (this, obj0, meth1, val2); }
jbyte CallByteMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
- { return p->CallByteMethodA (this, obj0, meth1, val2); }
+ { return functions->CallByteMethodA (this, obj0, meth1, val2); }
jchar CallCharMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jchar result = p->CallCharMethodV (this, obj0, meth1, args);
+ jchar result = functions->CallCharMethodV (this, obj0, meth1, args);
va_end (args);
return result;
}
jchar CallCharMethodV (jobject obj0, jmethodID meth1, va_list val2)
- { return p->CallCharMethodV (this, obj0, meth1, val2); }
+ { return functions->CallCharMethodV (this, obj0, meth1, val2); }
jchar CallCharMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
- { return p->CallCharMethodA (this, obj0, meth1, val2); }
+ { return functions->CallCharMethodA (this, obj0, meth1, val2); }
jshort CallShortMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jshort result = p->CallShortMethodV (this, obj0, meth1, args);
+ jshort result = functions->CallShortMethodV (this, obj0, meth1, args);
va_end (args);
return result;
}
jshort CallShortMethodV (jobject obj0, jmethodID meth1, va_list val2)
- { return p->CallShortMethodV (this, obj0, meth1, val2); }
+ { return functions->CallShortMethodV (this, obj0, meth1, val2); }
jshort CallShortMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
- { return p->CallShortMethodA (this, obj0, meth1, val2); }
+ { return functions->CallShortMethodA (this, obj0, meth1, val2); }
jint CallIntMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jint result = p->CallIntMethodV (this, obj0, meth1, args);
+ jint result = functions->CallIntMethodV (this, obj0, meth1, args);
va_end (args);
return result;
}
jint CallIntMethodV (jobject obj0, jmethodID meth1, va_list val2)
- { return p->CallIntMethodV (this, obj0, meth1, val2); }
+ { return functions->CallIntMethodV (this, obj0, meth1, val2); }
jint CallIntMethodA (jobject obj0, jmethodID meth1, jvalue * val2)
- { return p->CallIntMethodA (this, obj0, meth1, val2); }
+ { return functions->CallIntMethodA (this, obj0, meth1, val2); }
jlong CallLongMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jlong result = p->CallLongMethodV (this, obj0, meth1, args);
+ jlong result = functions->CallLongMethodV (this, obj0, meth1, args);
va_end (args);
return result;
}
jlong CallLongMethodV (jobject obj0, jmethodID meth1, va_list val2)
- { return p->CallLongMethodV (this, obj0, meth1, val2); }
+ { return functions->CallLongMethodV (this, obj0, meth1, val2); }
jlong CallLongMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
- { return p->CallLongMethodA (this, obj0, meth1, val2); }
+ { return functions->CallLongMethodA (this, obj0, meth1, val2); }
jfloat CallFloatMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jfloat result = p->CallFloatMethodV (this, obj0, meth1, args);
+ jfloat result = functions->CallFloatMethodV (this, obj0, meth1, args);
va_end (args);
return result;
}
jfloat CallFloatMethodV (jobject obj0, jmethodID meth1, va_list val2)
- { return p->CallFloatMethodV (this, obj0, meth1, val2); }
+ { return functions->CallFloatMethodV (this, obj0, meth1, val2); }
jfloat CallFloatMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
- { return p->CallFloatMethodA (this, obj0, meth1, val2); }
+ { return functions->CallFloatMethodA (this, obj0, meth1, val2); }
jdouble CallDoubleMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jdouble result = p->CallDoubleMethodV (this, obj0, meth1, args);
+ jdouble result = functions->CallDoubleMethodV (this, obj0, meth1, args);
va_end (args);
return result;
}
jdouble CallDoubleMethodV (jobject obj0, jmethodID meth1, va_list val2)
- { return p->CallDoubleMethodV (this, obj0, meth1, val2); }
+ { return functions->CallDoubleMethodV (this, obj0, meth1, val2); }
jdouble CallDoubleMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
- { return p->CallDoubleMethodA (this, obj0, meth1, val2); }
+ { return functions->CallDoubleMethodA (this, obj0, meth1, val2); }
void CallVoidMethod (jobject obj0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- p->CallVoidMethodV (this, obj0, meth1, args);
+ functions->CallVoidMethodV (this, obj0, meth1, args);
va_end (args);
}
void CallVoidMethodV (jobject obj0, jmethodID meth1, va_list val2)
- { p->CallVoidMethodV (this, obj0, meth1, val2); }
+ { functions->CallVoidMethodV (this, obj0, meth1, val2); }
void CallVoidMethodA (jobject obj0, jmethodID meth1, const jvalue * val2)
- { p->CallVoidMethodA (this, obj0, meth1, val2); }
+ { functions->CallVoidMethodA (this, obj0, meth1, val2); }
jobject CallNonvirtualObjectMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
va_start (args, meth2);
- jobject result = p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
+ jobject result = functions->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, args);
va_end (args);
return result;
}
jobject CallNonvirtualObjectMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
- { return p->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualObjectMethodV (this, obj0, cl1, meth2, val3); }
jobject CallNonvirtualObjectMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
- { return p->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualObjectMethodA (this, obj0, cl1, meth2, val3); }
jboolean CallNonvirtualBooleanMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
va_start (args, meth2);
- jboolean result = p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
+ jboolean result = functions->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, args);
va_end (args);
return result;
}
jboolean CallNonvirtualBooleanMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
- { return p->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualBooleanMethodV (this, obj0, cl1, meth2, val3); }
jboolean CallNonvirtualBooleanMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
- { return p->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualBooleanMethodA (this, obj0, cl1, meth2, val3); }
jbyte CallNonvirtualByteMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
va_start (args, meth2);
- jbyte result = p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
+ jbyte result = functions->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, args);
va_end (args);
return result;
}
jbyte CallNonvirtualByteMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
- { return p->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualByteMethodV (this, obj0, cl1, meth2, val3); }
jbyte CallNonvirtualByteMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
- { return p->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualByteMethodA (this, obj0, cl1, meth2, val3); }
jchar CallNonvirtualCharMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
va_start (args, meth2);
- jchar result = p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
+ jchar result = functions->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, args);
va_end (args);
return result;
}
jchar CallNonvirtualCharMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
- { return p->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualCharMethodV (this, obj0, cl1, meth2, val3); }
jchar CallNonvirtualCharMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
- { return p->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualCharMethodA (this, obj0, cl1, meth2, val3); }
jshort CallNonvirtualShortMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
va_start (args, meth2);
- jshort result = p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
+ jshort result = functions->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, args);
va_end (args);
return result;
}
jshort CallNonvirtualShortMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
- { return p->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualShortMethodV (this, obj0, cl1, meth2, val3); }
jshort CallNonvirtualShortMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
- { return p->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualShortMethodA (this, obj0, cl1, meth2, val3); }
jint CallNonvirtualIntMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
va_start (args, meth2);
- jint result = p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
+ jint result = functions->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, args);
va_end (args);
return result;
}
jint CallNonvirtualIntMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
- { return p->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualIntMethodV (this, obj0, cl1, meth2, val3); }
jint CallNonvirtualIntMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
- { return p->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualIntMethodA (this, obj0, cl1, meth2, val3); }
jlong CallNonvirtualLongMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
va_start (args, meth2);
- jlong result = p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
+ jlong result = functions->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, args);
va_end (args);
return result;
}
jlong CallNonvirtualLongMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
- { return p->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualLongMethodV (this, obj0, cl1, meth2, val3); }
jlong CallNonvirtualLongMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
- { return p->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualLongMethodA (this, obj0, cl1, meth2, val3); }
jfloat CallNonvirtualFloatMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
va_start (args, meth2);
- jfloat result = p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
+ jfloat result = functions->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, args);
va_end (args);
return result;
}
jfloat CallNonvirtualFloatMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
- { return p->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualFloatMethodV (this, obj0, cl1, meth2, val3); }
jfloat CallNonvirtualFloatMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
- { return p->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualFloatMethodA (this, obj0, cl1, meth2, val3); }
jdouble CallNonvirtualDoubleMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
va_start (args, meth2);
- jdouble result = p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
+ jdouble result = functions->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, args);
va_end (args);
return result;
}
jdouble CallNonvirtualDoubleMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
- { return p->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualDoubleMethodV (this, obj0, cl1, meth2, val3); }
jdouble CallNonvirtualDoubleMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
- { return p->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
+ { return functions->CallNonvirtualDoubleMethodA (this, obj0, cl1, meth2, val3); }
void CallNonvirtualVoidMethod (jobject obj0, jclass cl1, jmethodID meth2, ...)
{
va_list args;
va_start (args, meth2);
- p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
+ functions->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, args);
va_end (args);
}
void CallNonvirtualVoidMethodV (jobject obj0, jclass cl1, jmethodID meth2, va_list val3)
- { p->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
+ { functions->CallNonvirtualVoidMethodV (this, obj0, cl1, meth2, val3); }
void CallNonvirtualVoidMethodA (jobject obj0, jclass cl1, jmethodID meth2, const jvalue * val3)
- { p->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
+ { functions->CallNonvirtualVoidMethodA (this, obj0, cl1, meth2, val3); }
jfieldID GetFieldID (jclass cl0, const char * val1, const char * val2)
- { return p->GetFieldID (this, cl0, val1, val2); }
+ { return functions->GetFieldID (this, cl0, val1, val2); }
jobject GetObjectField (jobject obj0, jfieldID fld1)
- { return p->GetObjectField (this, obj0, fld1); }
+ { return functions->GetObjectField (this, obj0, fld1); }
jboolean GetBooleanField (jobject obj0, jfieldID fld1)
- { return p->GetBooleanField (this, obj0, fld1); }
+ { return functions->GetBooleanField (this, obj0, fld1); }
jbyte GetByteField (jobject obj0, jfieldID fld1)
- { return p->GetByteField (this, obj0, fld1); }
+ { return functions->GetByteField (this, obj0, fld1); }
jchar GetCharField (jobject obj0, jfieldID fld1)
- { return p->GetCharField (this, obj0, fld1); }
+ { return functions->GetCharField (this, obj0, fld1); }
jshort GetShortField (jobject obj0, jfieldID fld1)
- { return p->GetShortField (this, obj0, fld1); }
+ { return functions->GetShortField (this, obj0, fld1); }
jint GetIntField (jobject obj0, jfieldID fld1)
- { return p->GetIntField (this, obj0, fld1); }
+ { return functions->GetIntField (this, obj0, fld1); }
jlong GetLongField (jobject obj0, jfieldID fld1)
- { return p->GetLongField (this, obj0, fld1); }
+ { return functions->GetLongField (this, obj0, fld1); }
jfloat GetFloatField (jobject obj0, jfieldID fld1)
- { return p->GetFloatField (this, obj0, fld1); }
+ { return functions->GetFloatField (this, obj0, fld1); }
jdouble GetDoubleField (jobject obj0, jfieldID fld1)
- { return p->GetDoubleField (this, obj0, fld1); }
+ { return functions->GetDoubleField (this, obj0, fld1); }
void SetObjectField (jobject obj0, jfieldID fld1, jobject obj2)
- { p->SetObjectField (this, obj0, fld1, obj2); }
+ { functions->SetObjectField (this, obj0, fld1, obj2); }
void SetBooleanField (jobject obj0, jfieldID fld1, jboolean val2)
- { p->SetBooleanField (this, obj0, fld1, val2); }
+ { functions->SetBooleanField (this, obj0, fld1, val2); }
void SetByteField (jobject obj0, jfieldID fld1, jbyte val2)
- { p->SetByteField (this, obj0, fld1, val2); }
+ { functions->SetByteField (this, obj0, fld1, val2); }
void SetCharField (jobject obj0, jfieldID fld1, jchar val2)
- { p->SetCharField (this, obj0, fld1, val2); }
+ { functions->SetCharField (this, obj0, fld1, val2); }
void SetShortField (jobject obj0, jfieldID fld1, jshort val2)
- { p->SetShortField (this, obj0, fld1, val2); }
+ { functions->SetShortField (this, obj0, fld1, val2); }
void SetIntField (jobject obj0, jfieldID fld1, jint val2)
- { p->SetIntField (this, obj0, fld1, val2); }
+ { functions->SetIntField (this, obj0, fld1, val2); }
void SetLongField (jobject obj0, jfieldID fld1, jlong val2)
- { p->SetLongField (this, obj0, fld1, val2); }
+ { functions->SetLongField (this, obj0, fld1, val2); }
void SetFloatField (jobject obj0, jfieldID fld1, jfloat val2)
- { p->SetFloatField (this, obj0, fld1, val2); }
+ { functions->SetFloatField (this, obj0, fld1, val2); }
void SetDoubleField (jobject obj0, jfieldID fld1, jdouble val2)
- { p->SetDoubleField (this, obj0, fld1, val2); }
+ { functions->SetDoubleField (this, obj0, fld1, val2); }
jmethodID GetStaticMethodID (jclass cl0, const char * val1, const char * val2)
- { return p->GetStaticMethodID (this, cl0, val1, val2); }
+ { return functions->GetStaticMethodID (this, cl0, val1, val2); }
jobject CallStaticObjectMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jobject result = p->CallStaticObjectMethodV (this, cl0, meth1, args);
+ jobject result = functions->CallStaticObjectMethodV (this, cl0, meth1, args);
va_end (args);
return result;
}
jobject CallStaticObjectMethodV (jclass cl0, jmethodID meth1, va_list val2)
- { return p->CallStaticObjectMethodV (this, cl0, meth1, val2); }
+ { return functions->CallStaticObjectMethodV (this, cl0, meth1, val2); }
jobject CallStaticObjectMethodA (jclass cl0, jmethodID meth1,
const jvalue * val2)
- { return p->CallStaticObjectMethodA (this, cl0, meth1, val2); }
+ { return functions->CallStaticObjectMethodA (this, cl0, meth1, val2); }
jboolean CallStaticBooleanMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jboolean result = p->CallStaticBooleanMethodV (this, cl0, meth1, args);
+ jboolean result = functions->CallStaticBooleanMethodV (this, cl0, meth1, args);
va_end (args);
return result;
}
jboolean CallStaticBooleanMethodV (jclass cl0, jmethodID meth1, va_list val2)
- { return p->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
+ { return functions->CallStaticBooleanMethodV (this, cl0, meth1, val2); }
jboolean CallStaticBooleanMethodA (jclass cl0, jmethodID meth1,
const jvalue * val2)
- { return p->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
+ { return functions->CallStaticBooleanMethodA (this, cl0, meth1, val2); }
jbyte CallStaticByteMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jbyte result = p->CallStaticByteMethodV (this, cl0, meth1, args);
+ jbyte result = functions->CallStaticByteMethodV (this, cl0, meth1, args);
va_end (args);
return result;
}
jbyte CallStaticByteMethodV (jclass cl0, jmethodID meth1, va_list val2)
- { return p->CallStaticByteMethodV (this, cl0, meth1, val2); }
+ { return functions->CallStaticByteMethodV (this, cl0, meth1, val2); }
jbyte CallStaticByteMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
- { return p->CallStaticByteMethodA (this, cl0, meth1, val2); }
+ { return functions->CallStaticByteMethodA (this, cl0, meth1, val2); }
jchar CallStaticCharMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jchar result = p->CallStaticCharMethodV (this, cl0, meth1, args);
+ jchar result = functions->CallStaticCharMethodV (this, cl0, meth1, args);
va_end (args);
return result;
}
jchar CallStaticCharMethodV (jclass cl0, jmethodID meth1, va_list val2)
- { return p->CallStaticCharMethodV (this, cl0, meth1, val2); }
+ { return functions->CallStaticCharMethodV (this, cl0, meth1, val2); }
jchar CallStaticCharMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
- { return p->CallStaticCharMethodA (this, cl0, meth1, val2); }
+ { return functions->CallStaticCharMethodA (this, cl0, meth1, val2); }
jshort CallStaticShortMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jshort result = p->CallStaticShortMethodV (this, cl0, meth1, args);
+ jshort result = functions->CallStaticShortMethodV (this, cl0, meth1, args);
va_end (args);
return result;
}
jshort CallStaticShortMethodV (jclass cl0, jmethodID meth1, va_list val2)
- { return p->CallStaticShortMethodV (this, cl0, meth1, val2); }
+ { return functions->CallStaticShortMethodV (this, cl0, meth1, val2); }
jshort CallStaticShortMethodA (jclass cl0, jmethodID meth1,
const jvalue * val2)
- { return p->CallStaticShortMethodA (this, cl0, meth1, val2); }
+ { return functions->CallStaticShortMethodA (this, cl0, meth1, val2); }
jint CallStaticIntMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jint result = p->CallStaticIntMethodV (this, cl0, meth1, args);
+ jint result = functions->CallStaticIntMethodV (this, cl0, meth1, args);
va_end (args);
return result;
}
jint CallStaticIntMethodV (jclass cl0, jmethodID meth1, va_list val2)
- { return p->CallStaticIntMethodV (this, cl0, meth1, val2); }
+ { return functions->CallStaticIntMethodV (this, cl0, meth1, val2); }
jint CallStaticIntMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
- { return p->CallStaticIntMethodA (this, cl0, meth1, val2); }
+ { return functions->CallStaticIntMethodA (this, cl0, meth1, val2); }
jlong CallStaticLongMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jlong result = p->CallStaticLongMethodV (this, cl0, meth1, args);
+ jlong result = functions->CallStaticLongMethodV (this, cl0, meth1, args);
va_end (args);
return result;
}
jlong CallStaticLongMethodV (jclass cl0, jmethodID meth1, va_list val2)
- { return p->CallStaticLongMethodV (this, cl0, meth1, val2); }
+ { return functions->CallStaticLongMethodV (this, cl0, meth1, val2); }
jlong CallStaticLongMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
- { return p->CallStaticLongMethodA (this, cl0, meth1, val2); }
+ { return functions->CallStaticLongMethodA (this, cl0, meth1, val2); }
jfloat CallStaticFloatMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jfloat result = p->CallStaticFloatMethodV (this, cl0, meth1, args);
+ jfloat result = functions->CallStaticFloatMethodV (this, cl0, meth1, args);
va_end (args);
return result;
}
jfloat CallStaticFloatMethodV (jclass cl0, jmethodID meth1, va_list val2)
- { return p->CallStaticFloatMethodV (this, cl0, meth1, val2); }
+ { return functions->CallStaticFloatMethodV (this, cl0, meth1, val2); }
jfloat CallStaticFloatMethodA (jclass cl0, jmethodID meth1,
const jvalue * val2)
- { return p->CallStaticFloatMethodA (this, cl0, meth1, val2); }
+ { return functions->CallStaticFloatMethodA (this, cl0, meth1, val2); }
jdouble CallStaticDoubleMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- jdouble result = p->CallStaticDoubleMethodV (this, cl0, meth1, args);
+ jdouble result = functions->CallStaticDoubleMethodV (this, cl0, meth1, args);
va_end (args);
return result;
}
jdouble CallStaticDoubleMethodV (jclass cl0, jmethodID meth1, va_list val2)
- { return p->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
+ { return functions->CallStaticDoubleMethodV (this, cl0, meth1, val2); }
jdouble CallStaticDoubleMethodA (jclass cl0, jmethodID meth1,
const jvalue * val2)
- { return p->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
+ { return functions->CallStaticDoubleMethodA (this, cl0, meth1, val2); }
void CallStaticVoidMethod (jclass cl0, jmethodID meth1, ...)
{
va_list args;
va_start (args, meth1);
- p->CallStaticVoidMethodV (this, cl0, meth1, args);
+ functions->CallStaticVoidMethodV (this, cl0, meth1, args);
va_end (args);
}
void CallStaticVoidMethodV (jclass cl0, jmethodID meth1, va_list val2)
- { p->CallStaticVoidMethodV (this, cl0, meth1, val2); }
+ { functions->CallStaticVoidMethodV (this, cl0, meth1, val2); }
void CallStaticVoidMethodA (jclass cl0, jmethodID meth1, const jvalue * val2)
- { p->CallStaticVoidMethodA (this, cl0, meth1, val2); }
+ { functions->CallStaticVoidMethodA (this, cl0, meth1, val2); }
jfieldID GetStaticFieldID (jclass cl0, const char * val1, const char * val2)
- { return p->GetStaticFieldID (this, cl0, val1, val2); }
+ { return functions->GetStaticFieldID (this, cl0, val1, val2); }
jobject GetStaticObjectField (jclass cl0, jfieldID fld1)
- { return p->GetStaticObjectField (this, cl0, fld1); }
+ { return functions->GetStaticObjectField (this, cl0, fld1); }
jboolean GetStaticBooleanField (jclass cl0, jfieldID fld1)
- { return p->GetStaticBooleanField (this, cl0, fld1); }
+ { return functions->GetStaticBooleanField (this, cl0, fld1); }
jbyte GetStaticByteField (jclass cl0, jfieldID fld1)
- { return p->GetStaticByteField (this, cl0, fld1); }
+ { return functions->GetStaticByteField (this, cl0, fld1); }
jchar GetStaticCharField (jclass cl0, jfieldID fld1)
- { return p->GetStaticCharField (this, cl0, fld1); }
+ { return functions->GetStaticCharField (this, cl0, fld1); }
jshort GetStaticShortField (jclass cl0, jfieldID fld1)
- { return p->GetStaticShortField (this, cl0, fld1); }
+ { return functions->GetStaticShortField (this, cl0, fld1); }
jint GetStaticIntField (jclass cl0, jfieldID fld1)
- { return p->GetStaticIntField (this, cl0, fld1); }
+ { return functions->GetStaticIntField (this, cl0, fld1); }
jlong GetStaticLongField (jclass cl0, jfieldID fld1)
- { return p->GetStaticLongField (this, cl0, fld1); }
+ { return functions->GetStaticLongField (this, cl0, fld1); }
jfloat GetStaticFloatField (jclass cl0, jfieldID fld1)
- { return p->GetStaticFloatField (this, cl0, fld1); }
+ { return functions->GetStaticFloatField (this, cl0, fld1); }
jdouble GetStaticDoubleField (jclass cl0, jfieldID fld1)
- { return p->GetStaticDoubleField (this, cl0, fld1); }
+ { return functions->GetStaticDoubleField (this, cl0, fld1); }
void SetStaticObjectField (jclass cl0, jfieldID fld1, jobject obj2)
- { p->SetStaticObjectField (this, cl0, fld1, obj2); }
+ { functions->SetStaticObjectField (this, cl0, fld1, obj2); }
void SetStaticBooleanField (jclass cl0, jfieldID fld1, jboolean val2)
- { p->SetStaticBooleanField (this, cl0, fld1, val2); }
+ { functions->SetStaticBooleanField (this, cl0, fld1, val2); }
void SetStaticByteField (jclass cl0, jfieldID fld1, jbyte val2)
- { p->SetStaticByteField (this, cl0, fld1, val2); }
+ { functions->SetStaticByteField (this, cl0, fld1, val2); }
void SetStaticCharField (jclass cl0, jfieldID fld1, jchar val2)
- { p->SetStaticCharField (this, cl0, fld1, val2); }
+ { functions->SetStaticCharField (this, cl0, fld1, val2); }
void SetStaticShortField (jclass cl0, jfieldID fld1, jshort val2)
- { p->SetStaticShortField (this, cl0, fld1, val2); }
+ { functions->SetStaticShortField (this, cl0, fld1, val2); }
void SetStaticIntField (jclass cl0, jfieldID fld1, jint val2)
- { p->SetStaticIntField (this, cl0, fld1, val2); }
+ { functions->SetStaticIntField (this, cl0, fld1, val2); }
void SetStaticLongField (jclass cl0, jfieldID fld1, jlong val2)
- { p->SetStaticLongField (this, cl0, fld1, val2); }
+ { functions->SetStaticLongField (this, cl0, fld1, val2); }
void SetStaticFloatField (jclass cl0, jfieldID fld1, jfloat val2)
- { p->SetStaticFloatField (this, cl0, fld1, val2); }
+ { functions->SetStaticFloatField (this, cl0, fld1, val2); }
void SetStaticDoubleField (jclass cl0, jfieldID fld1, jdouble val2)
- { p->SetStaticDoubleField (this, cl0, fld1, val2); }
+ { functions->SetStaticDoubleField (this, cl0, fld1, val2); }
jstring NewString (const jchar * val0, jsize val1)
- { return p->NewString (this, val0, val1); }
+ { return functions->NewString (this, val0, val1); }
jint GetStringLength (jstring val0)
- { return p->GetStringLength (this, val0); }
+ { return functions->GetStringLength (this, val0); }
const jchar * GetStringChars (jstring val0, jboolean * val1)
- { return p->GetStringChars (this, val0, val1); }
+ { return functions->GetStringChars (this, val0, val1); }
void ReleaseStringChars (jstring val0, const jchar * val1)
- { p->ReleaseStringChars (this, val0, val1); }
+ { functions->ReleaseStringChars (this, val0, val1); }
jstring NewStringUTF (const char * val0)
- { return p->NewStringUTF (this, val0); }
+ { return functions->NewStringUTF (this, val0); }
jsize GetStringUTFLength (jstring val0)
- { return p->GetStringUTFLength (this, val0); }
+ { return functions->GetStringUTFLength (this, val0); }
const char * GetStringUTFChars (jstring val0, jboolean * val1)
- { return p->GetStringUTFChars (this, val0, val1); }
+ { return functions->GetStringUTFChars (this, val0, val1); }
void ReleaseStringUTFChars (jstring val0, const char * val1)
- { p->ReleaseStringUTFChars (this, val0, val1); }
+ { functions->ReleaseStringUTFChars (this, val0, val1); }
jsize GetArrayLength (jarray val0)
- { return p->GetArrayLength (this, val0); }
+ { return functions->GetArrayLength (this, val0); }
jobjectArray NewObjectArray (jsize val0, jclass cl1, jobject obj2)
- { return p->NewObjectArray (this, val0, cl1, obj2); }
+ { return functions->NewObjectArray (this, val0, cl1, obj2); }
jobject GetObjectArrayElement (jobjectArray val0, jsize val1)
- { return p->GetObjectArrayElement (this, val0, val1); }
+ { return functions->GetObjectArrayElement (this, val0, val1); }
void SetObjectArrayElement (jobjectArray val0, jsize val1, jobject obj2)
- { p->SetObjectArrayElement (this, val0, val1, obj2); }
+ { functions->SetObjectArrayElement (this, val0, val1, obj2); }
jbooleanArray NewBooleanArray (jsize val0)
- { return p->NewBooleanArray (this, val0); }
+ { return functions->NewBooleanArray (this, val0); }
jbyteArray NewByteArray (jsize val0)
- { return p->NewByteArray (this, val0); }
+ { return functions->NewByteArray (this, val0); }
jcharArray NewCharArray (jsize val0)
- { return p->NewCharArray (this, val0); }
+ { return functions->NewCharArray (this, val0); }
jshortArray NewShortArray (jsize val0)
- { return p->NewShortArray (this, val0); }
+ { return functions->NewShortArray (this, val0); }
jintArray NewIntArray (jsize val0)
- { return p->NewIntArray (this, val0); }
+ { return functions->NewIntArray (this, val0); }
jlongArray NewLongArray (jsize val0)
- { return p->NewLongArray (this, val0); }
+ { return functions->NewLongArray (this, val0); }
jfloatArray NewFloatArray (jsize val0)
- { return p->NewFloatArray (this, val0); }
+ { return functions->NewFloatArray (this, val0); }
jdoubleArray NewDoubleArray (jsize val0)
- { return p->NewDoubleArray (this, val0); }
+ { return functions->NewDoubleArray (this, val0); }
jboolean * GetBooleanArrayElements (jbooleanArray val0, jboolean * val1)
- { return p->GetBooleanArrayElements (this, val0, val1); }
+ { return functions->GetBooleanArrayElements (this, val0, val1); }
jbyte * GetByteArrayElements (jbyteArray val0, jboolean * val1)
- { return p->GetByteArrayElements (this, val0, val1); }
+ { return functions->GetByteArrayElements (this, val0, val1); }
jchar * GetCharArrayElements (jcharArray val0, jboolean * val1)
- { return p->GetCharArrayElements (this, val0, val1); }
+ { return functions->GetCharArrayElements (this, val0, val1); }
jshort * GetShortArrayElements (jshortArray val0, jboolean * val1)
- { return p->GetShortArrayElements (this, val0, val1); }
+ { return functions->GetShortArrayElements (this, val0, val1); }
jint * GetIntArrayElements (jintArray val0, jboolean * val1)
- { return p->GetIntArrayElements (this, val0, val1); }
+ { return functions->GetIntArrayElements (this, val0, val1); }
jlong * GetLongArrayElements (jlongArray val0, jboolean * val1)
- { return p->GetLongArrayElements (this, val0, val1); }
+ { return functions->GetLongArrayElements (this, val0, val1); }
jfloat * GetFloatArrayElements (jfloatArray val0, jboolean * val1)
- { return p->GetFloatArrayElements (this, val0, val1); }
+ { return functions->GetFloatArrayElements (this, val0, val1); }
jdouble * GetDoubleArrayElements (jdoubleArray val0, jboolean * val1)
- { return p->GetDoubleArrayElements (this, val0, val1); }
+ { return functions->GetDoubleArrayElements (this, val0, val1); }
void ReleaseBooleanArrayElements (jbooleanArray val0, jboolean * val1, jint val2)
- { p->ReleaseBooleanArrayElements (this, val0, val1, val2); }
+ { functions->ReleaseBooleanArrayElements (this, val0, val1, val2); }
void ReleaseByteArrayElements (jbyteArray val0, jbyte * val1, jint val2)
- { p->ReleaseByteArrayElements (this, val0, val1, val2); }
+ { functions->ReleaseByteArrayElements (this, val0, val1, val2); }
void ReleaseCharArrayElements (jcharArray val0, jchar * val1, jint val2)
- { p->ReleaseCharArrayElements (this, val0, val1, val2); }
+ { functions->ReleaseCharArrayElements (this, val0, val1, val2); }
void ReleaseShortArrayElements (jshortArray val0, jshort * val1, jint val2)
- { p->ReleaseShortArrayElements (this, val0, val1, val2); }
+ { functions->ReleaseShortArrayElements (this, val0, val1, val2); }
void ReleaseIntArrayElements (jintArray val0, jint * val1, jint val2)
- { p->ReleaseIntArrayElements (this, val0, val1, val2); }
+ { functions->ReleaseIntArrayElements (this, val0, val1, val2); }
void ReleaseLongArrayElements (jlongArray val0, jlong * val1, jint val2)
- { p->ReleaseLongArrayElements (this, val0, val1, val2); }
+ { functions->ReleaseLongArrayElements (this, val0, val1, val2); }
void ReleaseFloatArrayElements (jfloatArray val0, jfloat * val1, jint val2)
- { p->ReleaseFloatArrayElements (this, val0, val1, val2); }
+ { functions->ReleaseFloatArrayElements (this, val0, val1, val2); }
void ReleaseDoubleArrayElements (jdoubleArray val0, jdouble * val1, jint val2)
- { p->ReleaseDoubleArrayElements (this, val0, val1, val2); }
+ { functions->ReleaseDoubleArrayElements (this, val0, val1, val2); }
void GetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
+ { functions->GetBooleanArrayRegion (this, val0, val1, val2, val3); }
void GetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
- { p->GetByteArrayRegion (this, val0, val1, val2, val3); }
+ { functions->GetByteArrayRegion (this, val0, val1, val2, val3); }
void GetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
- { p->GetCharArrayRegion (this, val0, val1, val2, val3); }
+ { functions->GetCharArrayRegion (this, val0, val1, val2, val3); }
void GetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
- { p->GetShortArrayRegion (this, val0, val1, val2, val3); }
+ { functions->GetShortArrayRegion (this, val0, val1, val2, val3); }
void GetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
- { p->GetIntArrayRegion (this, val0, val1, val2, val3); }
+ { functions->GetIntArrayRegion (this, val0, val1, val2, val3); }
void GetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
- { p->GetLongArrayRegion (this, val0, val1, val2, val3); }
+ { functions->GetLongArrayRegion (this, val0, val1, val2, val3); }
void GetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
- { p->GetFloatArrayRegion (this, val0, val1, val2, val3); }
+ { functions->GetFloatArrayRegion (this, val0, val1, val2, val3); }
void GetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
- { p->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
+ { functions->GetDoubleArrayRegion (this, val0, val1, val2, val3); }
void SetBooleanArrayRegion (jbooleanArray val0, jsize val1, jsize val2, jboolean * val3)
- { p->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
+ { functions->SetBooleanArrayRegion (this, val0, val1, val2, val3); }
void SetByteArrayRegion (jbyteArray val0, jsize val1, jsize val2, jbyte * val3)
- { p->SetByteArrayRegion (this, val0, val1, val2, val3); }
+ { functions->SetByteArrayRegion (this, val0, val1, val2, val3); }
void SetCharArrayRegion (jcharArray val0, jsize val1, jsize val2, jchar * val3)
- { p->SetCharArrayRegion (this, val0, val1, val2, val3); }
+ { functions->SetCharArrayRegion (this, val0, val1, val2, val3); }
void SetShortArrayRegion (jshortArray val0, jsize val1, jsize val2, jshort * val3)
- { p->SetShortArrayRegion (this, val0, val1, val2, val3); }
+ { functions->SetShortArrayRegion (this, val0, val1, val2, val3); }
void SetIntArrayRegion (jintArray val0, jsize val1, jsize val2, jint * val3)
- { p->SetIntArrayRegion (this, val0, val1, val2, val3); }
+ { functions->SetIntArrayRegion (this, val0, val1, val2, val3); }
void SetLongArrayRegion (jlongArray val0, jsize val1, jsize val2, jlong * val3)
- { p->SetLongArrayRegion (this, val0, val1, val2, val3); }
+ { functions->SetLongArrayRegion (this, val0, val1, val2, val3); }
void SetFloatArrayRegion (jfloatArray val0, jsize val1, jsize val2, jfloat * val3)
- { p->SetFloatArrayRegion (this, val0, val1, val2, val3); }
+ { functions->SetFloatArrayRegion (this, val0, val1, val2, val3); }
void SetDoubleArrayRegion (jdoubleArray val0, jsize val1, jsize val2, jdouble * val3)
- { p->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
+ { functions->SetDoubleArrayRegion (this, val0, val1, val2, val3); }
jint RegisterNatives (jclass cl0, const JNINativeMethod * val1, jint val2)
- { return p->RegisterNatives (this, cl0, val1, val2); }
+ { return functions->RegisterNatives (this, cl0, val1, val2); }
jint UnregisterNatives (jclass cl0)
- { return p->UnregisterNatives (this, cl0); }
+ { return functions->UnregisterNatives (this, cl0); }
jint MonitorEnter (jobject obj0)
- { return p->MonitorEnter (this, obj0); }
+ { return functions->MonitorEnter (this, obj0); }
jint MonitorExit (jobject obj0)
- { return p->MonitorExit (this, obj0); }
+ { return functions->MonitorExit (this, obj0); }
jint GetJavaVM (JavaVM ** val0)
- { return p->GetJavaVM (this, val0); }
+ { return functions->GetJavaVM (this, val0); }
/* ---- JNI 1.2 functions ---- */
void GetStringRegion (jstring val0, jsize val1, jsize val2, jchar * val3)
- { p->GetStringRegion (this, val0, val1, val2, val3); }
+ { functions->GetStringRegion (this, val0, val1, val2, val3); }
void GetStringUTFRegion (jstring val0, jsize val1, jsize val2, char * val3)
- { p->GetStringUTFRegion (this, val0, val1, val2, val3); }
+ { functions->GetStringUTFRegion (this, val0, val1, val2, val3); }
void * GetPrimitiveArrayCritical (jarray val0, jboolean * val1)
- { return p->GetPrimitiveArrayCritical (this, val0, val1); }
+ { return functions->GetPrimitiveArrayCritical (this, val0, val1); }
void ReleasePrimitiveArrayCritical (jarray val0, void * val1, jint val2)
- { p->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
+ { functions->ReleasePrimitiveArrayCritical (this, val0, val1, val2); }
const jchar * GetStringCritical (jstring val0, jboolean * val1)
- { return p->GetStringCritical (this, val0, val1); }
+ { return functions->GetStringCritical (this, val0, val1); }
void ReleaseStringCritical (jstring val0, const jchar * val1)
- { p->ReleaseStringCritical (this, val0, val1); }
+ { functions->ReleaseStringCritical (this, val0, val1); }
jweak NewWeakGlobalRef (jobject obj0)
- { return p->NewWeakGlobalRef (this, obj0); }
+ { return functions->NewWeakGlobalRef (this, obj0); }
void DeleteWeakGlobalRef (jweak val0)
- { p->DeleteWeakGlobalRef (this, val0); }
+ { functions->DeleteWeakGlobalRef (this, val0); }
jboolean ExceptionCheck ()
- { return p->ExceptionCheck (this); }
+ { return functions->ExceptionCheck (this); }
/* ---- JNI 1.4 functions ---- */
jobject NewDirectByteBuffer (void *addr, jlong capacity)
- { return p->NewDirectByteBuffer (this, addr, capacity); }
+ { return functions->NewDirectByteBuffer (this, addr, capacity); }
void *GetDirectBufferAddress (jobject buf)
- { return p->GetDirectBufferAddress (this, buf); }
+ { return functions->GetDirectBufferAddress (this, buf); }
jlong GetDirectBufferCapacity (jobject buf)
- { return p->GetDirectBufferCapacity (this, buf); }
+ { return functions->GetDirectBufferCapacity (this, buf); }
/* ---- JNI 1.6 functions ---- */
jobjectRefType GetObjectRefType (jobject obj)
- { return p->GetObjectRefType (this, obj); }
+ { return functions->GetObjectRefType (this, obj); }
};
#endif /* __cplusplus */
diff --git a/libjava/classpath/java/awt/AlphaComposite.java b/libjava/classpath/java/awt/AlphaComposite.java
index addd1e7..a668fda 100644
--- a/libjava/classpath/java/awt/AlphaComposite.java
+++ b/libjava/classpath/java/awt/AlphaComposite.java
@@ -158,18 +158,53 @@ public final class AlphaComposite implements Composite
return new AlphaCompositeContext(this, srcColorModel, dstColorModel);
}
+ /**
+ * Return an <code>AlphaComposite</code> similar to <code>this</code>,
+ * that uses the specified rule. If <code>rule</code> is the same as
+ * <code>this.rule</code>, then <code>this</code> is returned.
+ *
+ * @since 1.6
+ */
+ public AlphaComposite derive(int rule)
+ {
+ if (this.rule == rule)
+ return this;
+ else
+ return AlphaComposite.getInstance(rule, this.getAlpha());
+ }
+
+ /**
+ * Return an <code>AlphaComposite</code> similar to <code>this</code>,
+ * that uses the specified <code>alpha</code>.
+ *
+ * If <code>alph</code> is the same as <code>this.alpha</code>,
+ * then <code>this</code> is returned.
+ *
+ * @since 1.6
+ */
+ public AlphaComposite derive(float alpha)
+ {
+ if (this.getAlpha() == alpha)
+ return this;
+ else
+ return AlphaComposite.getInstance(this.getRule(), alpha);
+ }
+
public float getAlpha()
{
return alpha;
}
+
public int getRule()
{
return rule;
}
+
public int hashCode()
{
return 31 * Float.floatToIntBits(alpha) + rule;
}
+
public boolean equals(Object o)
{
if (! (o instanceof AlphaComposite))
diff --git a/libjava/classpath/java/awt/Component.java b/libjava/classpath/java/awt/Component.java
index fe4fb9b..44676ba 100644
--- a/libjava/classpath/java/awt/Component.java
+++ b/libjava/classpath/java/awt/Component.java
@@ -43,6 +43,8 @@ package java.awt;
import gnu.java.awt.ComponentReshapeEvent;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.dnd.DropTarget;
import java.awt.event.ActionEvent;
import java.awt.event.AdjustmentEvent;
@@ -175,7 +177,7 @@ public abstract class Component
/**
* Constant returned by the <code>getAlignmentY</code> and
* <code>getAlignmentX</code> methods to indicate
- * that the component wishes to be aligned to the center relative to
+ * that the component wishes to be aligned to the centdisper relative to
* other components.
*
* @see #getAlignmentX()
@@ -4991,7 +4993,7 @@ public abstract class Component
*/
protected String paramString()
{
- StringBuffer param = new StringBuffer();
+ CPStringBuilder param = new CPStringBuilder();
String name = getName();
if (name != null)
param.append(name).append(",");
diff --git a/libjava/classpath/java/awt/Container.java b/libjava/classpath/java/awt/Container.java
index 1e50040..2634735 100644
--- a/libjava/classpath/java/awt/Container.java
+++ b/libjava/classpath/java/awt/Container.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.awt;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.event.ContainerEvent;
import java.awt.event.ContainerListener;
import java.awt.event.HierarchyEvent;
@@ -1341,7 +1343,7 @@ public class Container extends Component
if (layoutMgr == null)
return super.paramString();
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(super.paramString());
sb.append(",layout=");
sb.append(layoutMgr.getClass().getName());
diff --git a/libjava/classpath/java/awt/JobAttributes.java b/libjava/classpath/java/awt/JobAttributes.java
index 2acb3a0..9ffc048 100644
--- a/libjava/classpath/java/awt/JobAttributes.java
+++ b/libjava/classpath/java/awt/JobAttributes.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.awt;
+import gnu.java.lang.CPStringBuilder;
+
/**
* Needs documentation...
*
@@ -479,7 +481,7 @@ public final class JobAttributes implements Cloneable
public String toString()
{
- StringBuffer s = new StringBuffer("copies=").append(copies)
+ CPStringBuilder s = new CPStringBuilder("copies=").append(copies)
.append(",defaultSelection=").append(selection).append(",destination=")
.append(destination).append(",dialog=").append(dialog)
.append(",fileName=").append(filename).append(",fromPage=")
diff --git a/libjava/classpath/java/awt/MouseInfo.java b/libjava/classpath/java/awt/MouseInfo.java
index 957b6bc..8a853e1 100644
--- a/libjava/classpath/java/awt/MouseInfo.java
+++ b/libjava/classpath/java/awt/MouseInfo.java
@@ -51,6 +51,13 @@ public class MouseInfo
private static MouseInfoPeer peer;
/**
+ * Private constructor to prevent instance creation.
+ */
+ private MouseInfo()
+ {
+ }
+
+ /**
* Returns a PointerInfo object containing information about the current
* location of the mouse pointer
*
diff --git a/libjava/classpath/java/awt/datatransfer/MimeType.java b/libjava/classpath/java/awt/datatransfer/MimeType.java
index 438d78e..8d2dcc0 100644
--- a/libjava/classpath/java/awt/datatransfer/MimeType.java
+++ b/libjava/classpath/java/awt/datatransfer/MimeType.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.awt.datatransfer;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Externalizable;
import java.io.IOException;
import java.io.ObjectInput;
@@ -224,7 +226,7 @@ class MimeType
*/
public String toString()
{
- StringBuilder s = new StringBuilder();
+ CPStringBuilder s = new CPStringBuilder();
s.append(primaryType);
s.append('/');
s.append(subType);
diff --git a/libjava/classpath/java/awt/event/ActionEvent.java b/libjava/classpath/java/awt/event/ActionEvent.java
index 4bce7d4..937d2cf 100644
--- a/libjava/classpath/java/awt/event/ActionEvent.java
+++ b/libjava/classpath/java/awt/event/ActionEvent.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.awt.event;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.AWTEvent;
import java.awt.EventQueue;
@@ -202,9 +204,9 @@ public class ActionEvent extends AWTEvent
*/
public String paramString()
{
- StringBuffer s = new StringBuffer(id == ACTION_PERFORMED
- ? "ACTION_PERFORMED,cmd="
- : "unknown type,cmd=");
+ CPStringBuilder s = new CPStringBuilder(id == ACTION_PERFORMED
+ ? "ACTION_PERFORMED,cmd="
+ : "unknown type,cmd=");
s.append(actionCommand).append(",when=").append(when).append(",modifiers");
int len = s.length();
s.setLength(len + 1);
diff --git a/libjava/classpath/java/awt/event/ComponentEvent.java b/libjava/classpath/java/awt/event/ComponentEvent.java
index 6d47805..156a3e2 100644
--- a/libjava/classpath/java/awt/event/ComponentEvent.java
+++ b/libjava/classpath/java/awt/event/ComponentEvent.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.awt.event;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.AWTEvent;
import java.awt.Component;
@@ -114,7 +116,7 @@ public class ComponentEvent extends AWTEvent
*/
public String paramString()
{
- StringBuffer s = new StringBuffer();
+ CPStringBuilder s = new CPStringBuilder();
// Unlike Sun, we don't throw NullPointerException or ClassCastException
// when source was illegally changed.
diff --git a/libjava/classpath/java/awt/event/HierarchyEvent.java b/libjava/classpath/java/awt/event/HierarchyEvent.java
index e10cefb..3237978 100644
--- a/libjava/classpath/java/awt/event/HierarchyEvent.java
+++ b/libjava/classpath/java/awt/event/HierarchyEvent.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.awt.event;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.AWTEvent;
import java.awt.Component;
import java.awt.Container;
@@ -226,7 +228,7 @@ public class HierarchyEvent extends AWTEvent
*/
public String paramString()
{
- StringBuffer r = new StringBuffer();
+ CPStringBuilder r = new CPStringBuilder();
switch (id)
{
case HIERARCHY_CHANGED:
diff --git a/libjava/classpath/java/awt/event/InputEvent.java b/libjava/classpath/java/awt/event/InputEvent.java
index 28cd901..b9dad32 100644
--- a/libjava/classpath/java/awt/event/InputEvent.java
+++ b/libjava/classpath/java/awt/event/InputEvent.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package java.awt.event;
import gnu.java.awt.EventModifier;
+import gnu.java.lang.CPStringBuilder;
import java.awt.Component;
@@ -376,7 +377,7 @@ public abstract class InputEvent extends ComponentEvent
modifiers &= EventModifier.NEW_MASK;
if (modifiers == 0)
return "";
- StringBuffer s = new StringBuffer();
+ CPStringBuilder s = new CPStringBuilder();
if ((modifiers & META_DOWN_MASK) != 0)
s.append("Meta+");
if ((modifiers & CTRL_DOWN_MASK) != 0)
diff --git a/libjava/classpath/java/awt/event/InputMethodEvent.java b/libjava/classpath/java/awt/event/InputMethodEvent.java
index f6711a8..e0be40d 100644
--- a/libjava/classpath/java/awt/event/InputMethodEvent.java
+++ b/libjava/classpath/java/awt/event/InputMethodEvent.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.awt.event;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.AWTEvent;
import java.awt.Component;
import java.awt.EventQueue;
@@ -257,8 +259,8 @@ public class InputMethodEvent extends AWTEvent
*/
public String paramString()
{
- StringBuffer s
- = new StringBuffer(80 + (text == null ? 0
+ CPStringBuilder s
+ = new CPStringBuilder(80 + (text == null ? 0
: text.getEndIndex() - text.getBeginIndex()));
s.append(id == INPUT_METHOD_TEXT_CHANGED ? "INPUT_METHOD_TEXT_CHANGED, "
: "CARET_POSITION_CHANGED, ");
diff --git a/libjava/classpath/java/awt/event/KeyEvent.java b/libjava/classpath/java/awt/event/KeyEvent.java
index 42084d7..bb7ed4c 100644
--- a/libjava/classpath/java/awt/event/KeyEvent.java
+++ b/libjava/classpath/java/awt/event/KeyEvent.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package java.awt.event;
import gnu.java.awt.EventModifier;
+import gnu.java.lang.CPStringBuilder;
import java.awt.Component;
import java.io.IOException;
@@ -1673,7 +1674,7 @@ public class KeyEvent extends InputEvent
*/
public String paramString()
{
- StringBuffer s = new StringBuffer();
+ CPStringBuilder s = new CPStringBuilder();
switch (id)
{
diff --git a/libjava/classpath/java/awt/event/MouseEvent.java b/libjava/classpath/java/awt/event/MouseEvent.java
index 0ca8336..86a584c 100644
--- a/libjava/classpath/java/awt/event/MouseEvent.java
+++ b/libjava/classpath/java/awt/event/MouseEvent.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package java.awt.event;
import gnu.java.awt.EventModifier;
+import gnu.java.lang.CPStringBuilder;
import java.awt.Component;
import java.awt.Point;
@@ -434,7 +435,7 @@ public class MouseEvent extends InputEvent
*/
public String paramString()
{
- StringBuffer s = new StringBuffer();
+ CPStringBuilder s = new CPStringBuilder();
switch (id)
{
case MOUSE_CLICKED:
diff --git a/libjava/classpath/java/awt/event/WindowEvent.java b/libjava/classpath/java/awt/event/WindowEvent.java
index 2186889..1298e1a 100644
--- a/libjava/classpath/java/awt/event/WindowEvent.java
+++ b/libjava/classpath/java/awt/event/WindowEvent.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.awt.event;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Frame;
import java.awt.Window;
@@ -270,7 +272,7 @@ public class WindowEvent extends ComponentEvent
*/
public String paramString()
{
- StringBuffer s = new StringBuffer();
+ CPStringBuilder s = new CPStringBuilder();
switch (id)
{
case WINDOW_OPENED:
diff --git a/libjava/classpath/java/awt/font/TextLayout.java b/libjava/classpath/java/awt/font/TextLayout.java
index dc0e537..4346ab9 100644
--- a/libjava/classpath/java/awt/font/TextLayout.java
+++ b/libjava/classpath/java/awt/font/TextLayout.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.awt.font;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Font;
import java.awt.Graphics2D;
import java.awt.Shape;
@@ -362,7 +364,7 @@ public final class TextLayout implements Cloneable
private static String getText(AttributedCharacterIterator iter)
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
int idx = iter.getIndex();
for(char c = iter.first(); c != CharacterIterator.DONE; c = iter.next())
sb.append(c);
diff --git a/libjava/classpath/java/awt/image/BandedSampleModel.java b/libjava/classpath/java/awt/image/BandedSampleModel.java
index afe62bdc..94dbd8d 100644
--- a/libjava/classpath/java/awt/image/BandedSampleModel.java
+++ b/libjava/classpath/java/awt/image/BandedSampleModel.java
@@ -37,6 +37,7 @@ exception statement from your version. */
package java.awt.image;
import gnu.java.awt.Buffers;
+import gnu.java.lang.CPStringBuilder;
/**
* A sample model that reads each sample value from a separate band in the
@@ -742,7 +743,7 @@ public final class BandedSampleModel extends ComponentSampleModel
*/
public String toString()
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
result.append(getClass().getName());
result.append("[");
result.append("scanlineStride=").append(scanlineStride);
diff --git a/libjava/classpath/java/awt/image/BufferedImage.java b/libjava/classpath/java/awt/image/BufferedImage.java
index 78623cc..260d254 100644
--- a/libjava/classpath/java/awt/image/BufferedImage.java
+++ b/libjava/classpath/java/awt/image/BufferedImage.java
@@ -41,6 +41,8 @@ package java.awt.image;
import gnu.java.awt.Buffers;
import gnu.java.awt.ClasspathGraphicsEnvironment;
import gnu.java.awt.ComponentDataBlitOp;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.GraphicsEnvironment;
@@ -778,9 +780,9 @@ public class BufferedImage extends Image
public String toString()
{
- StringBuffer buf;
+ CPStringBuilder buf;
- buf = new StringBuffer(/* estimated length */ 120);
+ buf = new CPStringBuilder(/* estimated length */ 120);
buf.append("BufferedImage@");
buf.append(Integer.toHexString(hashCode()));
buf.append(": type=");
diff --git a/libjava/classpath/java/awt/image/ColorModel.java b/libjava/classpath/java/awt/image/ColorModel.java
index e2873c5..005b8d4 100644
--- a/libjava/classpath/java/awt/image/ColorModel.java
+++ b/libjava/classpath/java/awt/image/ColorModel.java
@@ -631,8 +631,8 @@ public abstract class ColorModel implements Transparency
throw new UnsupportedOperationException();
}
- protected void coerceDataWorker(WritableRaster raster,
- boolean isAlphaPremultiplied)
+ void coerceDataWorker(WritableRaster raster,
+ boolean isAlphaPremultiplied)
{
int w = raster.getWidth();
int h = raster.getHeight();
diff --git a/libjava/classpath/java/awt/image/ComponentColorModel.java b/libjava/classpath/java/awt/image/ComponentColorModel.java
index 2096800..e1e85e1 100644
--- a/libjava/classpath/java/awt/image/ComponentColorModel.java
+++ b/libjava/classpath/java/awt/image/ComponentColorModel.java
@@ -312,7 +312,7 @@ public class ComponentColorModel extends ColorModel
/* TODO: provide better implementation based on the
assumptions we can make due to the specific type of the
color model. */
- super.coerceDataWorker(raster, isAlphaPremultiplied);
+ coerceDataWorker(raster, isAlphaPremultiplied);
return new ComponentColorModel(cspace, hasAlpha, isAlphaPremultiplied,
transparency, transferType);
diff --git a/libjava/classpath/java/awt/image/DirectColorModel.java b/libjava/classpath/java/awt/image/DirectColorModel.java
index dab1531..3d43c76 100644
--- a/libjava/classpath/java/awt/image/DirectColorModel.java
+++ b/libjava/classpath/java/awt/image/DirectColorModel.java
@@ -393,8 +393,8 @@ public class DirectColorModel extends PackedColorModel
return Buffers.getData(buffer);
}
- public ColorModel coerceData (WritableRaster raster,
- boolean isAlphaPremultiplied)
+ public final ColorModel coerceData (WritableRaster raster,
+ boolean isAlphaPremultiplied)
{
if (this.isAlphaPremultiplied == isAlphaPremultiplied || !hasAlpha())
return this;
@@ -402,7 +402,7 @@ public class DirectColorModel extends PackedColorModel
/* TODO: provide better implementation based on the
assumptions we can make due to the specific type of the
color model. */
- super.coerceDataWorker(raster, isAlphaPremultiplied);
+ coerceDataWorker(raster, isAlphaPremultiplied);
return new DirectColorModel(cspace, pixel_bits, getRedMask(),
getGreenMask(), getBlueMask(), getAlphaMask(),
diff --git a/libjava/classpath/java/awt/image/MultiPixelPackedSampleModel.java b/libjava/classpath/java/awt/image/MultiPixelPackedSampleModel.java
index 8732e57..8db26b5 100644
--- a/libjava/classpath/java/awt/image/MultiPixelPackedSampleModel.java
+++ b/libjava/classpath/java/awt/image/MultiPixelPackedSampleModel.java
@@ -37,6 +37,7 @@ exception statement from your version. */
package java.awt.image;
import gnu.java.awt.Buffers;
+import gnu.java.lang.CPStringBuilder;
/**
* MultiPixelPackedSampleModel provides a single band model that supports
@@ -587,7 +588,7 @@ public class MultiPixelPackedSampleModel extends SampleModel
*/
public String toString()
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
result.append(getClass().getName());
result.append("[");
result.append("scanlineStride=").append(scanlineStride);
diff --git a/libjava/classpath/java/awt/image/Raster.java b/libjava/classpath/java/awt/image/Raster.java
index fb0950d..615155f 100644
--- a/libjava/classpath/java/awt/image/Raster.java
+++ b/libjava/classpath/java/awt/image/Raster.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.awt.image;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Point;
import java.awt.Rectangle;
@@ -920,7 +922,7 @@ public class Raster
*/
public String toString()
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
result.append(getClass().getName());
result.append("[(");
diff --git a/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java b/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java
index 1b0ac3f..2251386 100644
--- a/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java
+++ b/libjava/classpath/java/awt/image/SinglePixelPackedSampleModel.java
@@ -39,6 +39,7 @@ package java.awt.image;
import java.util.Arrays;
import gnu.java.awt.BitMaskExtent;
+import gnu.java.lang.CPStringBuilder;
/**
* A <code>SampleModel</code> used when all samples are stored in a single
@@ -569,7 +570,7 @@ public class SinglePixelPackedSampleModel extends SampleModel
*/
public String toString()
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
result.append(getClass().getName());
result.append("[");
result.append("scanlineStride=").append(scanlineStride);
diff --git a/libjava/classpath/java/awt/image/WritableRaster.java b/libjava/classpath/java/awt/image/WritableRaster.java
index bf8db14..02789a3 100644
--- a/libjava/classpath/java/awt/image/WritableRaster.java
+++ b/libjava/classpath/java/awt/image/WritableRaster.java
@@ -111,13 +111,8 @@ public class WritableRaster extends Raster
public WritableRaster createWritableTranslatedChild(int childMinX,
int childMinY)
{
- // This mirrors the code from the super class
- int tcx = sampleModelTranslateX - minX + childMinX;
- int tcy = sampleModelTranslateY - minY + childMinY;
-
- return new WritableRaster(sampleModel, dataBuffer,
- new Rectangle(childMinX, childMinY, width, height),
- new Point(tcx, tcy), this);
+ return createWritableChild(minX, minY, width, height,
+ childMinX, childMinY, null);
}
/**
@@ -143,12 +138,14 @@ public class WritableRaster extends Raster
SampleModel sm = (bandList == null) ?
sampleModel :
sampleModel.createSubsetSampleModel(bandList);
-
- return new WritableRaster(sm, dataBuffer,
- new Rectangle(childMinX, childMinY, w, h),
- new Point(sampleModelTranslateX + childMinX - parentX,
- sampleModelTranslateY + childMinY - parentY),
- this);
+
+ return new WritableRaster(sm, getDataBuffer(),
+ new Rectangle(childMinX, childMinY, w, h),
+ new Point(sampleModelTranslateX + childMinX -
+ parentX,
+ sampleModelTranslateY + childMinY -
+ parentY),
+ this);
}
public Raster createChild(int parentX, int parentY, int width,
diff --git a/libjava/classpath/java/beans/Statement.java b/libjava/classpath/java/beans/Statement.java
index 0a01798..5ecba37 100644
--- a/libjava/classpath/java/beans/Statement.java
+++ b/libjava/classpath/java/beans/Statement.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.beans;
+import gnu.java.lang.CPStringBuilder;
+
import java.lang.reflect.Array;
import java.lang.reflect.Constructor;
import java.lang.reflect.Method;
@@ -353,7 +355,7 @@ public class Statement
*/
public String toString()
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
String targetName;
if (target != null)
diff --git a/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java b/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java
index 1c27f98..725c2d4 100644
--- a/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java
+++ b/libjava/classpath/java/beans/beancontext/BeanContextServicesSupport.java
@@ -86,6 +86,11 @@ public class BeanContextServicesSupport
private BeanContextServiceProvider provider;
+ BCSSProxyServiceProvider(BeanContextServiceProvider p)
+ {
+ provider = p;
+ }
+
public Iterator getCurrentServiceSelectors (BeanContextServices bcs,
Class serviceClass)
{
diff --git a/libjava/classpath/java/io/BufferedReader.java b/libjava/classpath/java/io/BufferedReader.java
index c52d15e..3dbe80b 100644
--- a/libjava/classpath/java/io/BufferedReader.java
+++ b/libjava/classpath/java/io/BufferedReader.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.io;
+import gnu.java.lang.CPStringBuilder;
+
/* Written using "Java Class Libraries", 2nd edition, plus online
* API docs for JDK 1.2 beta from http://www.javasoft.com.
* Status: Believed complete and correct.
@@ -450,7 +452,7 @@ public class BufferedReader extends Reader
pos++;
return str;
}
- StringBuilder sbuf = new StringBuilder(200);
+ CPStringBuilder sbuf = new CPStringBuilder(200);
sbuf.append(buffer, pos, i - pos);
pos = i;
// We only want to return null when no characters were read before
diff --git a/libjava/classpath/java/io/DataInputStream.java b/libjava/classpath/java/io/DataInputStream.java
index ad43498..51cf51a 100644
--- a/libjava/classpath/java/io/DataInputStream.java
+++ b/libjava/classpath/java/io/DataInputStream.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.io;
+import gnu.java.lang.CPStringBuilder;
+
/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
* "The Java Language Specification", ISBN 0-201-63451-1
* plus online API docs for JDK 1.2 beta from http://www.javasoft.com.
@@ -350,7 +352,7 @@ public class DataInputStream extends FilterInputStream implements DataInput
*/
public final String readLine() throws IOException
{
- StringBuilder strb = new StringBuilder();
+ CPStringBuilder strb = new CPStringBuilder();
while (true)
{
@@ -747,7 +749,7 @@ public class DataInputStream extends FilterInputStream implements DataInput
{
// Give StringBuffer an initial estimated size to avoid
// enlarge buffer frequently
- StringBuilder strbuf = new StringBuilder (buf.length / 2 + 2);
+ CPStringBuilder strbuf = new CPStringBuilder (buf.length / 2 + 2);
for (int i = 0; i < buf.length; )
{
diff --git a/libjava/classpath/java/io/File.java b/libjava/classpath/java/io/File.java
index cd11163..f023310 100644
--- a/libjava/classpath/java/io/File.java
+++ b/libjava/classpath/java/io/File.java
@@ -41,6 +41,8 @@ package java.io;
import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
+
import java.net.MalformedURLException;
import java.net.URI;
import java.net.URISyntaxException;
@@ -158,7 +160,7 @@ public class File implements Serializable, Comparable<File>
return false;
if (VMFile.isDirectory(path))
- return VMFile.canWriteDirectory(this);
+ return VMFile.canWriteDirectory(path);
else
return VMFile.canWrite(path);
}
@@ -317,7 +319,7 @@ public class File implements Serializable, Comparable<File>
return p;
}
- StringBuffer newpath = new StringBuffer(plen);
+ CPStringBuilder newpath = new CPStringBuilder(plen);
int last = 0;
while (dupIndex != -1)
{
diff --git a/libjava/classpath/java/io/StreamTokenizer.java b/libjava/classpath/java/io/StreamTokenizer.java
index 759aa9a..87384f3 100644
--- a/libjava/classpath/java/io/StreamTokenizer.java
+++ b/libjava/classpath/java/io/StreamTokenizer.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.io;
+import gnu.java.lang.CPStringBuilder;
+
/**
* This class parses streams of characters into tokens. There are a
* million-zillion flags that can be set to control the parsing, as
@@ -391,7 +393,7 @@ public class StreamTokenizer
}
}
- StringBuffer tokbuf = new StringBuffer();
+ CPStringBuilder tokbuf = new CPStringBuilder();
tokbuf.append((char) ch);
int decCount = 0;
@@ -417,7 +419,7 @@ public class StreamTokenizer
}
else if (isAlphabetic(ch))
{
- StringBuffer tokbuf = new StringBuffer();
+ CPStringBuilder tokbuf = new CPStringBuilder();
tokbuf.append((char) ch);
while (isAlphabetic(ch = in.read()) || isNumeric(ch))
tokbuf.append((char) ch);
@@ -440,7 +442,7 @@ public class StreamTokenizer
else if (isQuote(ch))
{
ttype = ch;
- StringBuffer tokbuf = new StringBuffer();
+ CPStringBuilder tokbuf = new CPStringBuilder();
while ((ch = in.read()) != ttype && ch != '\n' && ch != '\r' &&
ch != TT_EOF)
{
diff --git a/libjava/classpath/java/lang/AbstractStringBuffer.java b/libjava/classpath/java/lang/AbstractStringBuffer.java
new file mode 100644
index 0000000..dc3a8c9
--- /dev/null
+++ b/libjava/classpath/java/lang/AbstractStringBuffer.java
@@ -0,0 +1,1037 @@
+/* AbstractStringBuffer.java -- Growable strings
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.io.Serializable;
+
+/**
+ * This class is based on gnu.classpath.ClasspathStringBuffer but
+ * is package-private to java.lang so it can be used as the basis
+ * for StringBuffer and StringBuilder.
+ * If you modify this, please consider also modifying that code.
+ */
+abstract class AbstractStringBuffer
+ implements Serializable, CharSequence, Appendable
+{
+
+ /**
+ * Index of next available character (and thus the size of the current
+ * string contents). Note that this has permissions set this way so that
+ * String can get the value.
+ *
+ * @serial the number of characters in the buffer
+ */
+ int count;
+
+ /**
+ * The buffer. Note that this has permissions set this way so that String
+ * can get the value.
+ *
+ * @serial the buffer
+ */
+ char[] value;
+
+ /**
+ * The default capacity of a buffer.
+ */
+ private static final int DEFAULT_CAPACITY = 16;
+
+ /**
+ * Create a new AbstractStringBuffer with default capacity 16.
+ */
+ AbstractStringBuffer()
+ {
+ this(DEFAULT_CAPACITY);
+ }
+
+ /**
+ * Create an empty <code>StringBuffer</code> with the specified initial
+ * capacity.
+ *
+ * @param capacity the initial capacity
+ * @throws NegativeArraySizeException if capacity is negative
+ */
+ AbstractStringBuffer(int capacity)
+ {
+ value = new char[capacity];
+ }
+
+ /**
+ * Create a new <code>StringBuffer</code> with the characters in the
+ * specified <code>String</code>. Initial capacity will be the size of the
+ * String plus 16.
+ *
+ * @param str the <code>String</code> to convert
+ * @throws NullPointerException if str is null
+ */
+ AbstractStringBuffer(String str)
+ {
+ count = str.count;
+ value = new char[count + DEFAULT_CAPACITY];
+ str.getChars(0, count, value, 0);
+ }
+
+ /**
+ * Create a new <code>StringBuffer</code> with the characters in the
+ * specified <code>CharSequence</code>. Initial capacity will be the
+ * length of the sequence plus 16; if the sequence reports a length
+ * less than or equal to 0, then the initial capacity will be 16.
+ *
+ * @param seq the initializing <code>CharSequence</code>
+ * @throws NullPointerException if str is null
+ * @since 1.5
+ */
+ AbstractStringBuffer(CharSequence seq)
+ {
+ int len = seq.length();
+ count = len <= 0 ? 0 : len;
+ value = new char[count + DEFAULT_CAPACITY];
+ for (int i = 0; i < len; ++i)
+ value[i] = seq.charAt(i);
+ }
+
+ /**
+ * Increase the capacity of this <code>StringBuffer</code>. This will
+ * ensure that an expensive growing operation will not occur until
+ * <code>minimumCapacity</code> is reached. The buffer is grown to the
+ * larger of <code>minimumCapacity</code> and
+ * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+ *
+ * @param minimumCapacity the new capacity
+ * @see #capacity()
+ */
+ public void ensureCapacity(int minimumCapacity)
+ {
+ ensureCapacity_unsynchronized(minimumCapacity);
+ }
+
+ /**
+ * Set the length of this StringBuffer. If the new length is greater than
+ * the current length, all the new characters are set to '\0'. If the new
+ * length is less than the current length, the first <code>newLength</code>
+ * characters of the old array will be preserved, and the remaining
+ * characters are truncated.
+ *
+ * @param newLength the new length
+ * @throws IndexOutOfBoundsException if the new length is negative
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @see #length()
+ */
+ public void setLength(int newLength)
+ {
+ if (newLength < 0)
+ throw new StringIndexOutOfBoundsException(newLength);
+
+ int valueLength = value.length;
+
+ /* Always call ensureCapacity_unsynchronized in order to preserve
+ copy-on-write semantics. */
+ ensureCapacity_unsynchronized(newLength);
+
+ if (newLength < valueLength)
+ {
+ /* If the StringBuffer's value just grew, then we know that
+ value is newly allocated and the region between count and
+ newLength is filled with '\0'. */
+ count = newLength;
+ }
+ else
+ {
+ /* The StringBuffer's value doesn't need to grow. However,
+ we should clear out any cruft that may exist. */
+ while (count < newLength)
+ value[count++] = '\0';
+ }
+ }
+
+ /**
+ * Get the character at the specified index.
+ *
+ * @param index the index of the character to get, starting at 0
+ * @return the character at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public char charAt(int index)
+ {
+ if (index < 0 || index >= count)
+ throw new StringIndexOutOfBoundsException(index);
+ return value[index];
+ }
+
+ /**
+ * Get the code point at the specified index. This is like #charAt(int),
+ * but if the character is the start of a surrogate pair, and the
+ * following character completes the pair, then the corresponding
+ * supplementary code point is returned.
+ * @param index the index of the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public int codePointAt(int index)
+ {
+ return Character.codePointAt(value, index, count);
+ }
+
+ /**
+ * Get the code point before the specified index. This is like
+ * #codePointAt(int), but checks the characters at <code>index-1</code> and
+ * <code>index-2</code> to see if they form a supplementary code point.
+ * @param index the index just past the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public int codePointBefore(int index)
+ {
+ // Character.codePointBefore() doesn't perform this check. We
+ // could use the CharSequence overload, but this is just as easy.
+ if (index >= count)
+ throw new IndexOutOfBoundsException();
+ return Character.codePointBefore(value, index, 1);
+ }
+
+ /**
+ * Get the specified array of characters. <code>srcOffset - srcEnd</code>
+ * characters will be copied into the array you pass in.
+ *
+ * @param srcOffset the index to start copying from (inclusive)
+ * @param srcEnd the index to stop copying from (exclusive)
+ * @param dst the array to copy into
+ * @param dstOffset the index to start copying into
+ * @throws NullPointerException if dst is null
+ * @throws IndexOutOfBoundsException if any source or target indices are
+ * out of range (while unspecified, source problems cause a
+ * StringIndexOutOfBoundsException, and dest problems cause an
+ * ArrayIndexOutOfBoundsException)
+ * @see System#arraycopy(Object, int, Object, int, int)
+ */
+ public void getChars(int srcOffset, int srcEnd,
+ char[] dst, int dstOffset)
+ {
+ if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
+ throw new StringIndexOutOfBoundsException();
+ VMSystem.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+ }
+
+ /**
+ * Set the character at the specified index.
+ *
+ * @param index the index of the character to set starting at 0
+ * @param ch the value to set that character to
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public void setCharAt(int index, char ch)
+ {
+ if (index < 0 || index >= count)
+ throw new StringIndexOutOfBoundsException(index);
+ // Call ensureCapacity to enforce copy-on-write.
+ ensureCapacity_unsynchronized(count);
+ value[index] = ch;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param obj the <code>Object</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(Object)
+ * @see #append(String)
+ */
+ public AbstractStringBuffer append(Object obj)
+ {
+ return append(String.valueOf(obj));
+ }
+
+ /**
+ * Append the <code>String</code> to this <code>StringBuffer</code>. If
+ * str is null, the String "null" is appended.
+ *
+ * @param str the <code>String</code> to append
+ * @return this <code>StringBuffer</code>
+ */
+ public AbstractStringBuffer append(String str)
+ {
+ if (str == null)
+ str = "null";
+ int len = str.count;
+ ensureCapacity_unsynchronized(count + len);
+ str.getChars(0, len, value, count);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Append the <code>StringBuilder</code> value of the argument to this
+ * <code>StringBuilder</code>. This behaves the same as
+ * <code>append((Object) stringBuffer)</code>, except it is more efficient.
+ *
+ * @param stringBuffer the <code>StringBuilder</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see #append(Object)
+ */
+ public AbstractStringBuffer append(StringBuffer stringBuffer)
+ {
+ if (stringBuffer == null)
+ return append("null");
+ synchronized (stringBuffer)
+ {
+ int len = stringBuffer.count;
+ ensureCapacity(count + len);
+ VMSystem.arraycopy(stringBuffer.value, 0, value, count, len);
+ count += len;
+ }
+ return this;
+ }
+
+ /**
+ * Append the <code>char</code> array to this <code>StringBuffer</code>.
+ * This is similar (but more efficient) than
+ * <code>append(new String(data))</code>, except in the case of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @see #append(char[], int, int)
+ */
+ public AbstractStringBuffer append(char[] data)
+ {
+ return append(data, 0, data.length);
+ }
+
+ /**
+ * Append part of the <code>char</code> array to this
+ * <code>StringBuffer</code>. This is similar (but more efficient) than
+ * <code>append(new String(data, offset, count))</code>, except in the case
+ * of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @param offset the start location in <code>str</code>
+ * @param count the number of characters to get from <code>str</code>
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws IndexOutOfBoundsException if offset or count is out of range
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public AbstractStringBuffer append(char[] data, int offset, int count)
+ {
+ if (offset < 0 || count < 0 || offset > data.length - count)
+ throw new StringIndexOutOfBoundsException();
+ ensureCapacity_unsynchronized(this.count + count);
+ VMSystem.arraycopy(data, offset, value, this.count, count);
+ this.count += count;
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param bool the <code>boolean</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(boolean)
+ */
+ public AbstractStringBuffer append(boolean bool)
+ {
+ return append(bool ? "true" : "false");
+ }
+
+ /**
+ * Append the <code>char</code> to this <code>StringBuffer</code>.
+ *
+ * @param ch the <code>char</code> to append
+ * @return this <code>StringBuffer</code>
+ */
+ public AbstractStringBuffer append(char ch)
+ {
+ ensureCapacity_unsynchronized(count + 1);
+ value[count++] = ch;
+ return this;
+ }
+
+ /**
+ * Append the characters in the <code>CharSequence</code> to this
+ * buffer.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @return this <code>StringBuffer</code>
+ * @since 1.5
+ */
+ public AbstractStringBuffer append(CharSequence seq)
+ {
+ return append(seq, 0, seq.length());
+ }
+
+ /**
+ * Append some characters from the <code>CharSequence</code> to this
+ * buffer. If the argument is null, the <code>seq</code> is assumed
+ * to be equal to the string <code>"null"</code>.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @param start the starting index
+ * @param end one past the final index
+ * @return this <code>StringBuffer</code>
+ * @since 1.5
+ */
+ public AbstractStringBuffer append(CharSequence seq, int start, int end)
+ {
+ if (seq == null)
+ seq = "null";
+ if (end - start > 0)
+ {
+ ensureCapacity_unsynchronized(count + end - start);
+ for (; start < end; ++start)
+ value[count++] = seq.charAt(start);
+ }
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param inum the <code>int</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(int)
+ */
+ // This is native in libgcj, for efficiency.
+ public AbstractStringBuffer append(int inum)
+ {
+ return append(String.valueOf(inum));
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param lnum the <code>long</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(long)
+ */
+ public AbstractStringBuffer append(long lnum)
+ {
+ return append(Long.toString(lnum, 10));
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param fnum the <code>float</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(float)
+ */
+ public AbstractStringBuffer append(float fnum)
+ {
+ return append(Float.toString(fnum));
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param dnum the <code>double</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(double)
+ */
+ public AbstractStringBuffer append(double dnum)
+ {
+ return append(Double.toString(dnum));
+ }
+
+ /**
+ * Append the code point to this <code>StringBuffer</code>.
+ * This is like #append(char), but will append two characters
+ * if a supplementary code point is given.
+ *
+ * @param code the code point to append
+ * @return this <code>StringBuffer</code>
+ * @see Character#toChars(int, char[], int)
+ * @since 1.5
+ */
+ public AbstractStringBuffer appendCodePoint(int code)
+ {
+ int len = Character.charCount(code);
+ ensureCapacity_unsynchronized(count + len);
+ Character.toChars(code, value, count);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Delete characters from this <code>StringBuffer</code>.
+ * <code>delete(10, 12)</code> will delete 10 and 11, but not 12. It is
+ * harmless for end to be larger than length().
+ *
+ * @param start the first character to delete
+ * @param end the index after the last character to delete
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @since 1.2
+ */
+ public AbstractStringBuffer delete(int start, int end)
+ {
+ if (start < 0 || start > count || start > end)
+ throw new StringIndexOutOfBoundsException(start);
+ if (end > count)
+ end = count;
+ ensureCapacity_unsynchronized(count);
+ if (count - end != 0)
+ VMSystem.arraycopy(value, end, value, start, count - end);
+ count -= end - start;
+ return this;
+ }
+
+ /**
+ * Delete a character from this <code>StringBuffer</code>.
+ *
+ * @param index the index of the character to delete
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if index is out of bounds
+ * @since 1.2
+ */
+ public AbstractStringBuffer deleteCharAt(int index)
+ {
+ return delete(index, index + 1);
+ }
+
+ /**
+ * Replace characters between index <code>start</code> (inclusive) and
+ * <code>end</code> (exclusive) with <code>str</code>. If <code>end</code>
+ * is larger than the size of this StringBuffer, all characters after
+ * <code>start</code> are replaced.
+ *
+ * @param start the beginning index of characters to delete (inclusive)
+ * @param end the ending index of characters to delete (exclusive)
+ * @param str the new <code>String</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @throws NullPointerException if str is null
+ * @since 1.2
+ */
+ public AbstractStringBuffer replace(int start, int end, String str)
+ {
+ if (start < 0 || start > count || start > end)
+ throw new StringIndexOutOfBoundsException(start);
+
+ int len = str.count;
+ // Calculate the difference in 'count' after the replace.
+ int delta = len - (end > count ? count : end) + start;
+ ensureCapacity_unsynchronized(count + delta);
+
+ if (delta != 0 && end < count)
+ VMSystem.arraycopy(value, end, value, end + delta, count - end);
+
+ str.getChars(0, len, value, start);
+ count += delta;
+ return this;
+ }
+
+ /**
+ * Insert a subarray of the <code>char[]</code> argument into this
+ * <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>char[]</code> to insert
+ * @param str_offset the index in <code>str</code> to start inserting from
+ * @param len the number of characters to insert
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if any index is out of bounds
+ * @since 1.2
+ */
+ public AbstractStringBuffer insert(int offset, char[] str, int str_offset, int len)
+ {
+ if (offset < 0 || offset > count || len < 0
+ || str_offset < 0 || str_offset > str.length - len)
+ throw new StringIndexOutOfBoundsException();
+ ensureCapacity_unsynchronized(count + len);
+ VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
+ VMSystem.arraycopy(str, str_offset, value, offset, len);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param obj the <code>Object</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @exception StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(Object)
+ */
+ public AbstractStringBuffer insert(int offset, Object obj)
+ {
+ return insert(offset, obj == null ? "null" : obj.toString());
+ }
+
+ /**
+ * Insert the <code>String</code> argument into this
+ * <code>StringBuffer</code>. If str is null, the String "null" is used
+ * instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>String</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public AbstractStringBuffer insert(int offset, String str)
+ {
+ if (offset < 0 || offset > count)
+ throw new StringIndexOutOfBoundsException(offset);
+ if (str == null)
+ str = "null";
+ int len = str.count;
+ ensureCapacity_unsynchronized(count + len);
+ VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
+ str.getChars(0, len, value, offset);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>CharSequence</code> argument into this
+ * <code>StringBuffer</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws IndexOutOfBoundsException if offset is out of bounds
+ * @since 1.5
+ */
+ public AbstractStringBuffer insert(int offset, CharSequence sequence)
+ {
+ if (sequence == null)
+ sequence = "null";
+ return insert(offset, sequence, 0, sequence.length());
+ }
+
+ /**
+ * Insert a subsequence of the <code>CharSequence</code> argument into this
+ * <code>StringBuffer</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @param start the starting index of the subsequence
+ * @param end one past the ending index of the subsequence
+ * @return this <code>StringBuffer</code>
+ * @throws IndexOutOfBoundsException if offset, start,
+ * or end are out of bounds
+ * @since 1.5
+ */
+ public AbstractStringBuffer insert(int offset, CharSequence sequence, int start, int end)
+ {
+ if (sequence == null)
+ sequence = "null";
+ if (start < 0 || end < 0 || start > end || end > sequence.length())
+ throw new IndexOutOfBoundsException();
+ int len = end - start;
+ ensureCapacity_unsynchronized(count + len);
+ VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
+ for (int i = start; i < end; ++i)
+ value[offset++] = sequence.charAt(i);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>char[]</code> argument into this
+ * <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param data the <code>char[]</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>data</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see #insert(int, char[], int, int)
+ */
+ public AbstractStringBuffer insert(int offset, char[] data)
+ {
+ return insert(offset, data, 0, data.length);
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param bool the <code>boolean</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(boolean)
+ */
+ public AbstractStringBuffer insert(int offset, boolean bool)
+ {
+ return insert(offset, bool ? "true" : "false");
+ }
+
+ /**
+ * Insert the <code>char</code> argument into this <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param ch the <code>char</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public AbstractStringBuffer insert(int offset, char ch)
+ {
+ if (offset < 0 || offset > count)
+ throw new StringIndexOutOfBoundsException(offset);
+ ensureCapacity_unsynchronized(count + 1);
+ VMSystem.arraycopy(value, offset, value, offset + 1, count - offset);
+ value[offset] = ch;
+ count++;
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param inum the <code>int</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(int)
+ */
+ public AbstractStringBuffer insert(int offset, int inum)
+ {
+ return insert(offset, String.valueOf(inum));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param lnum the <code>long</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(long)
+ */
+ public AbstractStringBuffer insert(int offset, long lnum)
+ {
+ return insert(offset, Long.toString(lnum, 10));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param fnum the <code>float</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(float)
+ */
+ public AbstractStringBuffer insert(int offset, float fnum)
+ {
+ return insert(offset, Float.toString(fnum));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param dnum the <code>double</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(double)
+ */
+ public AbstractStringBuffer insert(int offset, double dnum)
+ {
+ return insert(offset, Double.toString(dnum));
+ }
+
+ /**
+ * Finds the first instance of a substring in this StringBuilder.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @see #indexOf(String, int)
+ */
+ public int indexOf(String str)
+ {
+ return indexOf(str, 0);
+ }
+
+ /**
+ * Finds the first instance of a String in this StringBuffer, starting at
+ * a given index. If starting index is less than 0, the search starts at
+ * the beginning of this String. If the starting index is greater than the
+ * length of this String, or the substring is not found, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @since 1.4
+ */
+ public int indexOf(String str, int fromIndex)
+ {
+ if (fromIndex < 0)
+ fromIndex = 0;
+ int limit = count - str.count;
+ for ( ; fromIndex <= limit; fromIndex++)
+ if (regionMatches(fromIndex, str))
+ return fromIndex;
+ return -1;
+ }
+
+ /**
+ * Finds the last instance of a substring in this StringBuffer.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @see #lastIndexOf(String, int)
+ * @since 1.4
+ */
+ public int lastIndexOf(String str)
+ {
+ return lastIndexOf(str, count - str.count);
+ }
+
+ /**
+ * Finds the last instance of a String in this StringBuffer, starting at a
+ * given index. If starting index is greater than the maximum valid index,
+ * then the search begins at the end of this String. If the starting index
+ * is less than zero, or the substring is not found, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @since 1.4
+ */
+ public int lastIndexOf(String str, int fromIndex)
+ {
+ fromIndex = Math.min(fromIndex, count - str.count);
+ for ( ; fromIndex >= 0; fromIndex--)
+ if (regionMatches(fromIndex, str))
+ return fromIndex;
+ return -1;
+ }
+
+ /**
+ * Reverse the characters in this StringBuffer. The same sequence of
+ * characters exists, but in the reverse index ordering.
+ *
+ * @return this <code>StringBuffer</code>
+ */
+ public AbstractStringBuffer reverse()
+ {
+ // Call ensureCapacity to enforce copy-on-write.
+ ensureCapacity_unsynchronized(count);
+ for (int i = count >> 1, j = count - i; --i >= 0; ++j)
+ {
+ char c = value[i];
+ value[i] = value[j];
+ value[j] = c;
+ }
+ return this;
+ }
+
+ /**
+ * This may reduce the amount of memory used by the StringBuffer,
+ * by resizing the internal array to remove unused space. However,
+ * this method is not required to resize, so this behavior cannot
+ * be relied upon.
+ * @since 1.5
+ */
+ public void trimToSize()
+ {
+ int wouldSave = value.length - count;
+ // Some random heuristics: if we save less than 20 characters, who
+ // cares.
+ if (wouldSave < 20)
+ return;
+ // If we save more than 200 characters, shrink.
+ // If we save more than 1/4 of the buffer, shrink.
+ if (wouldSave > 200 || wouldSave * 4 > value.length)
+ {
+ char[] newValue = new char[count];
+ VMSystem.arraycopy(value, 0, newValue, 0, count);
+ value = newValue;
+ }
+ }
+
+ /**
+ * Return the number of code points between two indices in the
+ * <code>StringBuffer</code>. An unpaired surrogate counts as a
+ * code point for this purpose. Characters outside the indicated
+ * range are not examined, even if the range ends in the middle of a
+ * surrogate pair.
+ *
+ * @param start the starting index
+ * @param end one past the ending index
+ * @return the number of code points
+ * @since 1.5
+ */
+ public int codePointCount(int start, int end)
+ {
+ if (start < 0 || end >= count || start > end)
+ throw new StringIndexOutOfBoundsException();
+
+ int count = 0;
+ while (start < end)
+ {
+ char base = value[start];
+ if (base < Character.MIN_HIGH_SURROGATE
+ || base > Character.MAX_HIGH_SURROGATE
+ || start == end
+ || start == count
+ || value[start + 1] < Character.MIN_LOW_SURROGATE
+ || value[start + 1] > Character.MAX_LOW_SURROGATE)
+ {
+ // Nothing.
+ }
+ else
+ {
+ // Surrogate pair.
+ ++start;
+ }
+ ++start;
+ ++count;
+ }
+ return count;
+ }
+
+ /**
+ * Starting at the given index, this counts forward by the indicated
+ * number of code points, and then returns the resulting index. An
+ * unpaired surrogate counts as a single code point for this
+ * purpose.
+ *
+ * @param start the starting index
+ * @param codePoints the number of code points
+ * @return the resulting index
+ * @since 1.5
+ */
+ public int offsetByCodePoints(int start, int codePoints)
+ {
+ while (codePoints > 0)
+ {
+ char base = value[start];
+ if (base < Character.MIN_HIGH_SURROGATE
+ || base > Character.MAX_HIGH_SURROGATE
+ || start == count
+ || value[start + 1] < Character.MIN_LOW_SURROGATE
+ || value[start + 1] > Character.MAX_LOW_SURROGATE)
+ {
+ // Nothing.
+ }
+ else
+ {
+ // Surrogate pair.
+ ++start;
+ }
+ ++start;
+ --codePoints;
+ }
+ return start;
+ }
+
+ /**
+ * Increase the capacity of this <code>StringBuilder</code>. This will
+ * ensure that an expensive growing operation will not occur until
+ * <code>minimumCapacity</code> is reached. The buffer is grown to the
+ * larger of <code>minimumCapacity</code> and
+ * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+ *
+ * @param minimumCapacity the new capacity
+ * @see #capacity()
+ */
+ void ensureCapacity_unsynchronized(int minimumCapacity)
+ {
+ if (minimumCapacity > value.length)
+ {
+ int max = value.length * 2 + 2;
+ minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
+ char[] nb = new char[minimumCapacity];
+ VMSystem.arraycopy(value, 0, nb, 0, count);
+ value = nb;
+ }
+ }
+
+ /**
+ * Predicate which determines if a substring of this matches another String
+ * starting at a specified offset for each String and continuing for a
+ * specified length. This is more efficient than creating a String to call
+ * indexOf on.
+ *
+ * @param toffset index to start comparison at for this String
+ * @param other non-null String to compare to region of this
+ * @return true if regions match, false otherwise
+ * @see #indexOf(String, int)
+ * @see #lastIndexOf(String, int)
+ * @see String#regionMatches(boolean, int, String, int, int)
+ */
+ private boolean regionMatches(int toffset, String other)
+ {
+ int len = other.count;
+ int index = other.offset;
+ while (--len >= 0)
+ if (value[toffset++] != other.value[index++])
+ return false;
+ return true;
+ }
+
+}
diff --git a/libjava/classpath/java/lang/Byte.java b/libjava/classpath/java/lang/Byte.java
index 7f53a49..a1536e1 100644
--- a/libjava/classpath/java/lang/Byte.java
+++ b/libjava/classpath/java/lang/Byte.java
@@ -88,6 +88,11 @@ public final class Byte extends Number implements Comparable<Byte>
// This caches Byte values, and is used by boxing conversions via
// valueOf(). We're required to cache all possible values here.
private static Byte[] byteCache = new Byte[MAX_VALUE - MIN_VALUE + 1];
+ static
+ {
+ for (int i=MIN_VALUE; i <= MAX_VALUE; i++)
+ byteCache[i - MIN_VALUE] = new Byte((byte) i);
+ }
/**
@@ -185,7 +190,7 @@ public final class Byte extends Number implements Comparable<Byte>
*/
public static Byte valueOf(String s, int radix)
{
- return new Byte(parseByte(s, radix));
+ return valueOf(parseByte(s, radix));
}
/**
@@ -201,7 +206,7 @@ public final class Byte extends Number implements Comparable<Byte>
*/
public static Byte valueOf(String s)
{
- return new Byte(parseByte(s, 10));
+ return valueOf(parseByte(s, 10));
}
/**
@@ -214,12 +219,7 @@ public final class Byte extends Number implements Comparable<Byte>
*/
public static Byte valueOf(byte val)
{
- synchronized (byteCache)
- {
- if (byteCache[val - MIN_VALUE] == null)
- byteCache[val - MIN_VALUE] = new Byte(val);
- return byteCache[val - MIN_VALUE];
- }
+ return byteCache[val - MIN_VALUE];
}
/**
@@ -258,7 +258,7 @@ public final class Byte extends Number implements Comparable<Byte>
int i = Integer.parseInt(s, 10, true);
if ((byte) i != i)
throw new NumberFormatException();
- return new Byte((byte) i);
+ return valueOf((byte) i);
}
/**
diff --git a/libjava/classpath/java/lang/Character.java b/libjava/classpath/java/lang/Character.java
index 506033f..eaa9557 100644
--- a/libjava/classpath/java/lang/Character.java
+++ b/libjava/classpath/java/lang/Character.java
@@ -2055,6 +2055,11 @@ public final class Character implements Serializable, Comparable<Character>
// this constant controls how much we actually cache.
private static final int MAX_CACHE = 127;
private static Character[] charCache = new Character[MAX_CACHE + 1];
+ static
+ {
+ for (char i=0; i <= MAX_CACHE; i++)
+ charCache[i] = new Character(i);
+ }
/**
* Lu = Letter, Uppercase (Informative).
@@ -4208,12 +4213,8 @@ public final class Character implements Serializable, Comparable<Character>
{
if (val > MAX_CACHE)
return new Character(val);
- synchronized (charCache)
- {
- if (charCache[val - MIN_VALUE] == null)
- charCache[val - MIN_VALUE] = new Character(val);
- return charCache[val - MIN_VALUE];
- }
+ else
+ return charCache[val - MIN_VALUE];
}
/**
diff --git a/libjava/classpath/java/lang/ClassLoader.java b/libjava/classpath/java/lang/ClassLoader.java
index 3d7c32c..591406a 100644
--- a/libjava/classpath/java/lang/ClassLoader.java
+++ b/libjava/classpath/java/lang/ClassLoader.java
@@ -659,7 +659,7 @@ public abstract class ClassLoader
*/
protected Enumeration<URL> findResources(String name) throws IOException
{
- return (Enumeration<URL>) EmptyEnumeration.getInstance();
+ return new EmptyEnumeration<URL>();
}
/**
diff --git a/libjava/classpath/java/lang/Double.java b/libjava/classpath/java/lang/Double.java
index 466d482..f3f7cb1 100644
--- a/libjava/classpath/java/lang/Double.java
+++ b/libjava/classpath/java/lang/Double.java
@@ -38,6 +38,7 @@ exception statement from your version. */
package java.lang;
+import gnu.java.lang.CPStringBuilder;
/**
* Instances of class <code>Double</code> represent primitive
@@ -103,6 +104,16 @@ public final class Double extends Number implements Comparable<Double>
public static final Class<Double> TYPE = (Class<Double>) VMClassLoader.getPrimitiveClass('D');
/**
+ * Cache representation of 0
+ */
+ private static final Double ZERO = new Double(0.0d);
+
+ /**
+ * Cache representation of 1
+ */
+ private static final Double ONE = new Double(1.0d);
+
+ /**
* The immutable value of this Double.
*
* @serial the wrapped double
@@ -201,7 +212,7 @@ public final class Double extends Number implements Comparable<Double>
return d < 0 ? "-Infinity" : "Infinity";
long bits = doubleToLongBits(d);
- StringBuilder result = new StringBuilder();
+ CPStringBuilder result = new CPStringBuilder();
if (bits < 0)
result.append('-');
@@ -260,8 +271,12 @@ public final class Double extends Number implements Comparable<Double>
*/
public static Double valueOf(double val)
{
- // We don't actually cache, but we could.
- return new Double(val);
+ if ((val == 0.0) && (doubleToRawLongBits(val) == 0L))
+ return ZERO;
+ else if (val == 1.0)
+ return ONE;
+ else
+ return new Double(val);
}
/**
@@ -276,7 +291,7 @@ public final class Double extends Number implements Comparable<Double>
*/
public static Double valueOf(String s)
{
- return new Double(parseDouble(s));
+ return valueOf(parseDouble(s));
}
/**
@@ -489,17 +504,13 @@ public final class Double extends Number implements Comparable<Double>
*/
public boolean equals(Object obj)
{
- if (! (obj instanceof Double))
- return false;
-
- double d = ((Double) obj).value;
-
- // Avoid call to native method. However, some implementations, like gcj,
- // are better off using floatToIntBits(value) == floatToIntBits(f).
- // Check common case first, then check NaN and 0.
- if (value == d)
- return (value != 0) || (1 / value == 1 / d);
- return isNaN(value) && isNaN(d);
+ if (obj instanceof Double)
+ {
+ double d = ((Double) obj).value;
+ return (doubleToRawLongBits(value) == doubleToRawLongBits(d)) ||
+ (isNaN(value) && isNaN(d));
+ }
+ return false;
}
/**
diff --git a/libjava/classpath/java/lang/Enum.java b/libjava/classpath/java/lang/Enum.java
index fa217bb..da2e40b 100644
--- a/libjava/classpath/java/lang/Enum.java
+++ b/libjava/classpath/java/lang/Enum.java
@@ -89,7 +89,6 @@ public abstract class Enum<T extends Enum<T>>
* @exception IllegalArgumentException when there is no value s in
* the enum etype.
*/
- @SuppressWarnings("unchecked")
public static <S extends Enum<S>> S valueOf(Class<S> etype, String s)
{
if (etype == null || s == null)
@@ -103,7 +102,9 @@ public abstract class Enum<T extends Enum<T>>
if (! f.isEnumConstant())
throw new IllegalArgumentException(s);
Class.setAccessible(f);
- return (S) f.get(null);
+ @SuppressWarnings("unchecked")
+ S val = (S) f.get(null);
+ return val;
}
catch (NoSuchFieldException exception)
{
diff --git a/libjava/classpath/java/lang/Float.java b/libjava/classpath/java/lang/Float.java
index 72f31b5..63e43c2 100644
--- a/libjava/classpath/java/lang/Float.java
+++ b/libjava/classpath/java/lang/Float.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.lang;
+import gnu.java.lang.CPStringBuilder;
+
/**
* Instances of class <code>Float</code> represent primitive
* <code>float</code> values.
@@ -102,6 +104,16 @@ public final class Float extends Number implements Comparable<Float>
public static final int SIZE = 32;
/**
+ * Cache representation of 0
+ */
+ private static final Float ZERO = new Float(0.0f);
+
+ /**
+ * Cache representation of 1
+ */
+ private static final Float ONE = new Float(1.0f);
+
+ /**
* The immutable value of this Float.
*
* @serial the wrapped float
@@ -211,7 +223,7 @@ public final class Float extends Number implements Comparable<Float>
return f < 0 ? "-Infinity" : "Infinity";
int bits = floatToIntBits(f);
- StringBuilder result = new StringBuilder();
+ CPStringBuilder result = new CPStringBuilder();
if (bits < 0)
result.append('-');
@@ -273,7 +285,7 @@ public final class Float extends Number implements Comparable<Float>
*/
public static Float valueOf(String s)
{
- return new Float(parseFloat(s));
+ return valueOf(parseFloat(s));
}
/**
@@ -287,8 +299,12 @@ public final class Float extends Number implements Comparable<Float>
*/
public static Float valueOf(float val)
{
- // We don't actually cache, but we could.
- return new Float(val);
+ if ((val == 0.0) && (floatToRawIntBits(val) == 0))
+ return ZERO;
+ else if (val == 1.0)
+ return ONE;
+ else
+ return new Float(val);
}
/**
@@ -498,17 +514,13 @@ public final class Float extends Number implements Comparable<Float>
*/
public boolean equals(Object obj)
{
- if (! (obj instanceof Float))
- return false;
-
- float f = ((Float) obj).value;
-
- // Avoid call to native method. However, some implementations, like gcj,
- // are better off using floatToIntBits(value) == floatToIntBits(f).
- // Check common case first, then check NaN and 0.
- if (value == f)
- return (value != 0) || (1 / value == 1 / f);
- return isNaN(value) && isNaN(f);
+ if (obj instanceof Float)
+ {
+ float f = ((Float) obj).value;
+ return (floatToRawIntBits(value) == floatToRawIntBits(f)) ||
+ (isNaN(value) && isNaN(f));
+ }
+ return false;
}
/**
diff --git a/libjava/classpath/java/lang/InheritableThreadLocal.java b/libjava/classpath/java/lang/InheritableThreadLocal.java
index 2079a4c..07d52b5 100644
--- a/libjava/classpath/java/lang/InheritableThreadLocal.java
+++ b/libjava/classpath/java/lang/InheritableThreadLocal.java
@@ -37,10 +37,6 @@ exception statement from your version. */
package java.lang;
-import gnu.java.util.WeakIdentityHashMap;
-
-import java.util.Iterator;
-
/**
* A ThreadLocal whose value is inherited by child Threads. The value of the
* InheritableThreadLocal associated with the (parent) Thread is copied to
@@ -97,24 +93,6 @@ public class InheritableThreadLocal<T> extends ThreadLocal<T>
{
// The currentThread is the parent of the new thread.
Thread parentThread = Thread.currentThread();
- if (parentThread.locals != null)
- {
- Iterator keys = parentThread.locals.keySet().iterator();
- while (keys.hasNext())
- {
- Object key = keys.next();
- if (key instanceof InheritableThreadLocal)
- {
- InheritableThreadLocal local = (InheritableThreadLocal)key;
- Object parentValue = parentThread.locals.get(key);
- Object childValue = local.childValue(parentValue == sentinel
- ? null : parentValue);
- if (childThread.locals == null)
- childThread.locals = new WeakIdentityHashMap();
- childThread.locals.put(key, (childValue == null
- ? sentinel : childValue));
- }
- }
- }
+ childThread.locals.inherit(parentThread.locals);
}
}
diff --git a/libjava/classpath/java/lang/Integer.java b/libjava/classpath/java/lang/Integer.java
index cbf5274..e5ca4b3 100644
--- a/libjava/classpath/java/lang/Integer.java
+++ b/libjava/classpath/java/lang/Integer.java
@@ -52,6 +52,7 @@ package java.lang;
* @author Eric Blake (ebb9@email.byu.edu)
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @author Ian Rogers
* @since 1.0
* @status updated to 1.5
*/
@@ -92,7 +93,12 @@ public final class Integer extends Number implements Comparable<Integer>
// these constants control how much we actually cache.
private static final int MIN_CACHE = -128;
private static final int MAX_CACHE = 127;
- private static Integer[] intCache = new Integer[MAX_CACHE - MIN_CACHE + 1];
+ private static final Integer[] intCache = new Integer[MAX_CACHE - MIN_CACHE + 1];
+ static
+ {
+ for (int i=MIN_CACHE; i <= MAX_CACHE; i++)
+ intCache[i - MIN_CACHE] = new Integer(i);
+ }
/**
* The immutable value of this Integer.
@@ -126,6 +132,45 @@ public final class Integer extends Number implements Comparable<Integer>
}
/**
+ * Return the size of a string large enough to hold the given number
+ *
+ * @param num the number we want the string length for (must be positive)
+ * @param radix the radix (base) that will be used for the string
+ * @return a size sufficient for a string of num
+ */
+ private static int stringSize(int num, int radix) {
+ int exp;
+ if (radix < 4)
+ {
+ exp = 1;
+ }
+ else if (radix < 8)
+ {
+ exp = 2;
+ }
+ else if (radix < 16)
+ {
+ exp = 3;
+ }
+ else if (radix < 32)
+ {
+ exp = 4;
+ }
+ else
+ {
+ exp = 5;
+ }
+ int size=0;
+ do
+ {
+ num >>>= exp;
+ size++;
+ }
+ while(num != 0);
+ return size;
+ }
+
+ /**
* Converts the <code>int</code> to a <code>String</code> using
* the specified radix (base). If the radix exceeds
* <code>Character.MIN_RADIX</code> or <code>Character.MAX_RADIX</code>, 10
@@ -142,22 +187,40 @@ public final class Integer extends Number implements Comparable<Integer>
if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
radix = 10;
- // For negative numbers, print out the absolute value w/ a leading '-'.
- // Use an array large enough for a binary number.
- char[] buffer = new char[33];
- int i = 33;
- boolean isNeg = false;
- if (num < 0)
+ // Is the value negative?
+ boolean isNeg = num < 0;
+
+ // Is the string a single character?
+ if (!isNeg && num < radix)
+ return new String(digits, num, 1, true);
+
+ // Compute string size and allocate buffer
+ // account for a leading '-' if the value is negative
+ int size;
+ int i;
+ char[] buffer;
+ if (isNeg)
{
- isNeg = true;
num = -num;
// When the value is MIN_VALUE, it overflows when made positive
if (num < 0)
{
+ i = size = stringSize(MAX_VALUE, radix) + 2;
+ buffer = new char[size];
buffer[--i] = digits[(int) (-(num + radix) % radix)];
num = -(num / radix);
}
+ else
+ {
+ i = size = stringSize(num, radix) + 1;
+ buffer = new char[size];
+ }
+ }
+ else
+ {
+ i = size = stringSize(num, radix);
+ buffer = new char[size];
}
do
@@ -171,7 +234,7 @@ public final class Integer extends Number implements Comparable<Integer>
buffer[--i] = '-';
// Package constructor avoids an array copy.
- return new String(buffer, i, 33 - i, true);
+ return new String(buffer, i, size - i, true);
}
/**
@@ -275,7 +338,7 @@ public final class Integer extends Number implements Comparable<Integer>
*/
public static Integer valueOf(String s, int radix)
{
- return new Integer(parseInt(s, radix, false));
+ return valueOf(parseInt(s, radix, false));
}
/**
@@ -291,7 +354,7 @@ public final class Integer extends Number implements Comparable<Integer>
*/
public static Integer valueOf(String s)
{
- return new Integer(parseInt(s, 10, false));
+ return valueOf(parseInt(s, 10, false));
}
/**
@@ -306,12 +369,8 @@ public final class Integer extends Number implements Comparable<Integer>
{
if (val < MIN_CACHE || val > MAX_CACHE)
return new Integer(val);
- synchronized (intCache)
- {
- if (intCache[val - MIN_CACHE] == null)
- intCache[val - MIN_CACHE] = new Integer(val);
- return intCache[val - MIN_CACHE];
- }
+ else
+ return intCache[val - MIN_CACHE];
}
/**
@@ -440,7 +499,7 @@ public final class Integer extends Number implements Comparable<Integer>
public static Integer getInteger(String nm, int val)
{
Integer result = getInteger(nm, null);
- return result == null ? new Integer(val) : result;
+ return result == null ? valueOf(val) : result;
}
/**
@@ -506,7 +565,7 @@ public final class Integer extends Number implements Comparable<Integer>
*/
public static Integer decode(String str)
{
- return new Integer(parseInt(str, 10, true));
+ return valueOf(parseInt(str, 10, true));
}
/**
@@ -628,7 +687,14 @@ public final class Integer extends Number implements Comparable<Integer>
*/
public static int signum(int x)
{
- return x < 0 ? -1 : (x > 0 ? 1 : 0);
+ return (x >> 31) | (-x >>> 31);
+
+ // The LHS propagates the sign bit through every bit in the word;
+ // if X < 0, every bit is set to 1, else 0. if X > 0, the RHS
+ // negates x and shifts the resulting 1 in the sign bit to the
+ // LSB, leaving every other bit 0.
+
+ // Hacker's Delight, Section 2-7
}
/**
@@ -666,10 +732,22 @@ public final class Integer extends Number implements Comparable<Integer>
// Package visible for use by Long.
static String toUnsignedString(int num, int exp)
{
- // Use an array large enough for a binary number.
+ // Compute string length
+ int size = 1;
+ int copy = num >>> exp;
+ while (copy != 0)
+ {
+ size++;
+ copy >>>= exp;
+ }
+ // Quick path for single character strings
+ if (size == 1)
+ return new String(digits, num, 1, true);
+
+ // Encode into buffer
int mask = (1 << exp) - 1;
- char[] buffer = new char[32];
- int i = 32;
+ char[] buffer = new char[size];
+ int i = size;
do
{
buffer[--i] = digits[num & mask];
@@ -678,7 +756,7 @@ public final class Integer extends Number implements Comparable<Integer>
while (num != 0);
// Package constructor avoids an array copy.
- return new String(buffer, i, 32 - i, true);
+ return new String(buffer, i, size - i, true);
}
/**
diff --git a/libjava/classpath/java/lang/Long.java b/libjava/classpath/java/lang/Long.java
index 08ac3976..a5ee6c7 100644
--- a/libjava/classpath/java/lang/Long.java
+++ b/libjava/classpath/java/lang/Long.java
@@ -51,6 +51,7 @@ package java.lang;
* @author Eric Blake (ebb9@email.byu.edu)
* @author Tom Tromey (tromey@redhat.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
+ * @author Ian Rogers
* @since 1.0
* @status updated to 1.5
*/
@@ -86,6 +87,18 @@ public final class Long extends Number implements Comparable<Long>
*/
public static final int SIZE = 64;
+ // This caches some Long values, and is used by boxing
+ // conversions via valueOf(). We cache at least -128..127;
+ // these constants control how much we actually cache.
+ private static final int MIN_CACHE = -128;
+ private static final int MAX_CACHE = 127;
+ private static final Long[] longCache = new Long[MAX_CACHE - MIN_CACHE + 1];
+ static
+ {
+ for (int i=MIN_CACHE; i <= MAX_CACHE; i++)
+ longCache[i - MIN_CACHE] = new Long(i);
+ }
+
/**
* The immutable value of this Long.
*
@@ -118,6 +131,45 @@ public final class Long extends Number implements Comparable<Long>
}
/**
+ * Return the size of a string large enough to hold the given number
+ *
+ * @param num the number we want the string length for (must be positive)
+ * @param radix the radix (base) that will be used for the string
+ * @return a size sufficient for a string of num
+ */
+ private static int stringSize(long num, int radix) {
+ int exp;
+ if (radix < 4)
+ {
+ exp = 1;
+ }
+ else if (radix < 8)
+ {
+ exp = 2;
+ }
+ else if (radix < 16)
+ {
+ exp = 3;
+ }
+ else if (radix < 32)
+ {
+ exp = 4;
+ }
+ else
+ {
+ exp = 5;
+ }
+ int size=0;
+ do
+ {
+ num >>>= exp;
+ size++;
+ }
+ while(num != 0);
+ return size;
+ }
+
+ /**
* Converts the <code>long</code> to a <code>String</code> using
* the specified radix (base). If the radix exceeds
* <code>Character.MIN_RADIX</code> or <code>Character.MAX_RADIX</code>, 10
@@ -131,29 +183,43 @@ public final class Long extends Number implements Comparable<Long>
*/
public static String toString(long num, int radix)
{
- // Use the Integer toString for efficiency if possible.
- if ((int) num == num)
- return Integer.toString((int) num, radix);
-
if (radix < Character.MIN_RADIX || radix > Character.MAX_RADIX)
radix = 10;
- // For negative numbers, print out the absolute value w/ a leading '-'.
- // Use an array large enough for a binary number.
- char[] buffer = new char[65];
- int i = 65;
- boolean isNeg = false;
- if (num < 0)
+ // Is the value negative?
+ boolean isNeg = num < 0;
+
+ // Is the string a single character?
+ if (!isNeg && num < radix)
+ return new String(digits, (int)num, 1, true);
+
+ // Compute string size and allocate buffer
+ // account for a leading '-' if the value is negative
+ int size;
+ int i;
+ char[] buffer;
+ if (isNeg)
{
- isNeg = true;
num = -num;
// When the value is MIN_VALUE, it overflows when made positive
if (num < 0)
- {
- buffer[--i] = digits[(int) (-(num + radix) % radix)];
- num = -(num / radix);
- }
+ {
+ i = size = stringSize(MAX_VALUE, radix) + 2;
+ buffer = new char[size];
+ buffer[--i] = digits[(int) (-(num + radix) % radix)];
+ num = -(num / radix);
+ }
+ else
+ {
+ i = size = stringSize(num, radix) + 1;
+ buffer = new char[size];
+ }
+ }
+ else
+ {
+ i = size = stringSize(num, radix);
+ buffer = new char[size];
}
do
@@ -167,7 +233,7 @@ public final class Long extends Number implements Comparable<Long>
buffer[--i] = '-';
// Package constructor avoids an array copy.
- return new String(buffer, i, 65 - i, true);
+ return new String(buffer, i, size - i, true);
}
/**
@@ -270,7 +336,7 @@ public final class Long extends Number implements Comparable<Long>
*/
public static Long valueOf(String s, int radix)
{
- return new Long(parseLong(s, radix, false));
+ return valueOf(parseLong(s, radix, false));
}
/**
@@ -286,7 +352,7 @@ public final class Long extends Number implements Comparable<Long>
*/
public static Long valueOf(String s)
{
- return new Long(parseLong(s, 10, false));
+ return valueOf(parseLong(s, 10, false));
}
/**
@@ -298,9 +364,10 @@ public final class Long extends Number implements Comparable<Long>
*/
public static Long valueOf(long val)
{
- // We aren't required to cache here. We could, though perhaps we
- // ought to consider that as an empirical question.
- return new Long(val);
+ if (val < MIN_CACHE || val > MAX_CACHE)
+ return new Long(val);
+ else
+ return longCache[((int)val) - MIN_CACHE];
}
/**
@@ -337,7 +404,7 @@ public final class Long extends Number implements Comparable<Long>
*/
public static Long decode(String str)
{
- return new Long(parseLong(str, 10, true));
+ return valueOf(parseLong(str, 10, true));
}
/**
@@ -467,7 +534,7 @@ public final class Long extends Number implements Comparable<Long>
public static Long getLong(String nm, long val)
{
Long result = getLong(nm, null);
- return result == null ? new Long(val) : result;
+ return result == null ? valueOf(val) : result;
}
/**
@@ -622,7 +689,14 @@ public final class Long extends Number implements Comparable<Long>
*/
public static int signum(long x)
{
- return x < 0 ? -1 : (x > 0 ? 1 : 0);
+ return (int) ((x >> 63) | (-x >>> 63));
+
+ // The LHS propagates the sign bit through every bit in the word;
+ // if X < 0, every bit is set to 1, else 0. if X > 0, the RHS
+ // negates x and shifts the resulting 1 in the sign bit to the
+ // LSB, leaving every other bit 0.
+
+ // Hacker's Delight, Section 2-7
}
/**
@@ -655,16 +729,22 @@ public final class Long extends Number implements Comparable<Long>
*/
private static String toUnsignedString(long num, int exp)
{
- // Use the Integer toUnsignedString for efficiency if possible.
- // If NUM<0 then this particular optimization doesn't work
- // properly.
- if (num >= 0 && (int) num == num)
- return Integer.toUnsignedString((int) num, exp);
+ // Compute string length
+ int size = 1;
+ long copy = num >>> exp;
+ while (copy != 0)
+ {
+ size++;
+ copy >>>= exp;
+ }
+ // Quick path for single character strings
+ if (size == 1)
+ return new String(digits, (int)num, 1, true);
- // Use an array large enough for a binary number.
+ // Encode into buffer
int mask = (1 << exp) - 1;
- char[] buffer = new char[64];
- int i = 64;
+ char[] buffer = new char[size];
+ int i = size;
do
{
buffer[--i] = digits[(int) num & mask];
@@ -673,7 +753,7 @@ public final class Long extends Number implements Comparable<Long>
while (num != 0);
// Package constructor avoids an array copy.
- return new String(buffer, i, 64 - i, true);
+ return new String(buffer, i, size - i, true);
}
/**
diff --git a/libjava/classpath/java/lang/Short.java b/libjava/classpath/java/lang/Short.java
index 41a31e2..ec87f93 100644
--- a/libjava/classpath/java/lang/Short.java
+++ b/libjava/classpath/java/lang/Short.java
@@ -90,6 +90,11 @@ public final class Short extends Number implements Comparable<Short>
private static final int MIN_CACHE = -128;
private static final int MAX_CACHE = 127;
private static Short[] shortCache = new Short[MAX_CACHE - MIN_CACHE + 1];
+ static
+ {
+ for (short i=MIN_CACHE; i <= MAX_CACHE; i++)
+ shortCache[i - MIN_CACHE] = new Short(i);
+ }
/**
* The immutable value of this Short.
@@ -184,7 +189,7 @@ public final class Short extends Number implements Comparable<Short>
*/
public static Short valueOf(String s, int radix)
{
- return new Short(parseShort(s, radix));
+ return valueOf(parseShort(s, radix));
}
/**
@@ -200,7 +205,7 @@ public final class Short extends Number implements Comparable<Short>
*/
public static Short valueOf(String s)
{
- return new Short(parseShort(s, 10));
+ return valueOf(parseShort(s, 10));
}
/**
@@ -216,12 +221,8 @@ public final class Short extends Number implements Comparable<Short>
{
if (val < MIN_CACHE || val > MAX_CACHE)
return new Short(val);
- synchronized (shortCache)
- {
- if (shortCache[val - MIN_CACHE] == null)
- shortCache[val - MIN_CACHE] = new Short(val);
- return shortCache[val - MIN_CACHE];
- }
+ else
+ return shortCache[val - MIN_CACHE];
}
/**
@@ -260,7 +261,7 @@ public final class Short extends Number implements Comparable<Short>
int i = Integer.parseInt(s, 10, true);
if ((short) i != i)
throw new NumberFormatException();
- return new Short((short) i);
+ return valueOf((short) i);
}
/**
diff --git a/libjava/classpath/java/lang/String.java b/libjava/classpath/java/lang/String.java
index 0b56acc..95c8839 100644
--- a/libjava/classpath/java/lang/String.java
+++ b/libjava/classpath/java/lang/String.java
@@ -40,6 +40,7 @@ exception statement from your version. */
package java.lang;
import gnu.java.lang.CharData;
+import gnu.java.lang.CPStringBuilder;
import java.io.Serializable;
import java.io.UnsupportedEncodingException;
@@ -2072,7 +2073,7 @@ public final class String
int replaceLength = replacement.length();
int startPos = this.indexOf(targetString);
- StringBuilder result = new StringBuilder(this);
+ CPStringBuilder result = new CPStringBuilder(this);
while (startPos != -1)
{
// Replace the target with the replacement
diff --git a/libjava/classpath/java/lang/StringBuffer.java b/libjava/classpath/java/lang/StringBuffer.java
index 3aa84a2..b105f55 100644
--- a/libjava/classpath/java/lang/StringBuffer.java
+++ b/libjava/classpath/java/lang/StringBuffer.java
@@ -1,5 +1,5 @@
/* StringBuffer.java -- Growable strings
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -73,6 +73,7 @@ import java.io.Serializable;
* @status updated to 1.4
*/
public final class StringBuffer
+ extends AbstractStringBuffer
implements Serializable, CharSequence, Appendable
{
// Implementation note: if you change this class, you usually will
@@ -84,23 +85,6 @@ public final class StringBuffer
private static final long serialVersionUID = 3388685877147921107L;
/**
- * Index of next available character (and thus the size of the current
- * string contents). Note that this has permissions set this way so that
- * String can get the value.
- *
- * @serial the number of characters in the buffer
- */
- int count;
-
- /**
- * The buffer. Note that this has permissions set this way so that String
- * can get the value.
- *
- * @serial the buffer
- */
- char[] value;
-
- /**
* True if the buffer is shared with another object (StringBuffer or
* String); this means the buffer must be copied before writing to it again.
* Note that this has permissions set this way so that String can get the
@@ -111,16 +95,11 @@ public final class StringBuffer
boolean shared;
/**
- * The default capacity of a buffer.
- */
- private static final int DEFAULT_CAPACITY = 16;
-
- /**
* Create a new StringBuffer with default capacity 16.
*/
public StringBuffer()
{
- this(DEFAULT_CAPACITY);
+ super();
}
/**
@@ -132,7 +111,7 @@ public final class StringBuffer
*/
public StringBuffer(int capacity)
{
- value = new char[capacity];
+ super(capacity);
}
/**
@@ -146,9 +125,7 @@ public final class StringBuffer
public StringBuffer(String str)
{
// Unfortunately, because the size is 16 larger, we cannot share.
- count = str.count;
- value = new char[count + DEFAULT_CAPACITY];
- str.getChars(0, count, value, 0);
+ super(str);
}
/**
@@ -163,11 +140,7 @@ public final class StringBuffer
*/
public StringBuffer(CharSequence seq)
{
- int len = seq.length();
- count = len <= 0 ? 0 : len;
- value = new char[count + DEFAULT_CAPACITY];
- for (int i = 0; i < len; ++i)
- value[i] = seq.charAt(i);
+ super(seq);
}
/**
@@ -226,29 +199,7 @@ public final class StringBuffer
*/
public synchronized void setLength(int newLength)
{
- if (newLength < 0)
- throw new StringIndexOutOfBoundsException(newLength);
-
- int valueLength = value.length;
-
- /* Always call ensureCapacity_unsynchronized in order to preserve
- copy-on-write semantics. */
- ensureCapacity_unsynchronized(newLength);
-
- if (newLength < valueLength)
- {
- /* If the StringBuffer's value just grew, then we know that
- value is newly allocated and the region between count and
- newLength is filled with '\0'. */
- count = newLength;
- }
- else
- {
- /* The StringBuffer's value doesn't need to grow. However,
- we should clear out any cruft that may exist. */
- while (count < newLength)
- value[count++] = '\0';
- }
+ super.setLength(newLength);
}
/**
@@ -257,12 +208,11 @@ public final class StringBuffer
* @param index the index of the character to get, starting at 0
* @return the character at the specified index
* @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
*/
public synchronized char charAt(int index)
{
- if (index < 0 || index >= count)
- throw new StringIndexOutOfBoundsException(index);
- return value[index];
+ return super.charAt(index);
}
/**
@@ -277,7 +227,7 @@ public final class StringBuffer
*/
public synchronized int codePointAt(int index)
{
- return Character.codePointAt(value, index, count);
+ return super.codePointAt(index);
}
/**
@@ -291,11 +241,7 @@ public final class StringBuffer
*/
public synchronized int codePointBefore(int index)
{
- // Character.codePointBefore() doesn't perform this check. We
- // could use the CharSequence overload, but this is just as easy.
- if (index >= count)
- throw new IndexOutOfBoundsException();
- return Character.codePointBefore(value, index, 1);
+ return super.codePointBefore(index);
}
/**
@@ -316,9 +262,7 @@ public final class StringBuffer
public synchronized void getChars(int srcOffset, int srcEnd,
char[] dst, int dstOffset)
{
- if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
- throw new StringIndexOutOfBoundsException();
- VMSystem.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+ super.getChars(srcOffset, srcEnd, dst, dstOffset);
}
/**
@@ -331,11 +275,7 @@ public final class StringBuffer
*/
public synchronized void setCharAt(int index, char ch)
{
- if (index < 0 || index >= count)
- throw new StringIndexOutOfBoundsException(index);
- // Call ensureCapacity to enforce copy-on-write.
- ensureCapacity_unsynchronized(count);
- value[index] = ch;
+ super.setCharAt(index, ch);
}
/**
@@ -348,9 +288,10 @@ public final class StringBuffer
* @see String#valueOf(Object)
* @see #append(String)
*/
- public StringBuffer append(Object obj)
+ public synchronized StringBuffer append(Object obj)
{
- return append(obj == null ? "null" : obj.toString());
+ super.append(obj);
+ return this;
}
/**
@@ -362,12 +303,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer append(String str)
{
- if (str == null)
- str = "null";
- int len = str.count;
- ensureCapacity_unsynchronized(count + len);
- str.getChars(0, len, value, count);
- count += len;
+ super.append(str);
return this;
}
@@ -383,15 +319,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer append(StringBuffer stringBuffer)
{
- if (stringBuffer == null)
- return append("null");
- synchronized (stringBuffer)
- {
- int len = stringBuffer.count;
- ensureCapacity_unsynchronized(count + len);
- VMSystem.arraycopy(stringBuffer.value, 0, value, count, len);
- count += len;
- }
+ super.append(stringBuffer);
return this;
}
@@ -405,9 +333,10 @@ public final class StringBuffer
* @throws NullPointerException if <code>str</code> is <code>null</code>
* @see #append(char[], int, int)
*/
- public StringBuffer append(char[] data)
+ public synchronized StringBuffer append(char[] data)
{
- return append(data, 0, data.length);
+ super.append(data, 0, data.length);
+ return this;
}
/**
@@ -426,30 +355,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer append(char[] data, int offset, int count)
{
- if (offset < 0 || count < 0 || offset > data.length - count)
- throw new StringIndexOutOfBoundsException();
- ensureCapacity_unsynchronized(this.count + count);
- VMSystem.arraycopy(data, offset, value, this.count, count);
- this.count += count;
- return this;
- }
-
- /**
- * Append the code point to this <code>StringBuffer</code>.
- * This is like #append(char), but will append two characters
- * if a supplementary code point is given.
- *
- * @param code the code point to append
- * @return this <code>StringBuffer</code>
- * @see Character#toChars(int, char[], int)
- * @since 1.5
- */
- public synchronized StringBuffer appendCodePoint(int code)
- {
- int len = Character.charCount(code);
- ensureCapacity_unsynchronized(count + len);
- Character.toChars(code, value, count);
- count += len;
+ super.append(data, offset, count);
return this;
}
@@ -462,9 +368,10 @@ public final class StringBuffer
* @return this <code>StringBuffer</code>
* @see String#valueOf(boolean)
*/
- public StringBuffer append(boolean bool)
+ public synchronized StringBuffer append(boolean bool)
{
- return append(bool ? "true" : "false");
+ super.append(bool);
+ return this;
}
/**
@@ -475,8 +382,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer append(char ch)
{
- ensureCapacity_unsynchronized(count + 1);
- value[count++] = ch;
+ super.append(ch);
return this;
}
@@ -490,7 +396,8 @@ public final class StringBuffer
*/
public synchronized StringBuffer append(CharSequence seq)
{
- return append(seq, 0, seq.length());
+ super.append(seq, 0, seq.length());
+ return this;
}
/**
@@ -506,14 +413,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer append(CharSequence seq, int start, int end)
{
- if (seq == null)
- return append("null");
- if (end - start > 0)
- {
- ensureCapacity_unsynchronized(count + end - start);
- for (; start < end; ++start)
- value[count++] = seq.charAt(start);
- }
+ super.append(seq, start, end);
return this;
}
@@ -527,9 +427,10 @@ public final class StringBuffer
* @see String#valueOf(int)
*/
// This is native in libgcj, for efficiency.
- public StringBuffer append(int inum)
+ public synchronized StringBuffer append(int inum)
{
- return append(String.valueOf(inum));
+ super.append(inum);
+ return this;
}
/**
@@ -541,9 +442,10 @@ public final class StringBuffer
* @return this <code>StringBuffer</code>
* @see String#valueOf(long)
*/
- public StringBuffer append(long lnum)
+ public synchronized StringBuffer append(long lnum)
{
- return append(Long.toString(lnum, 10));
+ super.append(lnum);
+ return this;
}
/**
@@ -555,9 +457,10 @@ public final class StringBuffer
* @return this <code>StringBuffer</code>
* @see String#valueOf(float)
*/
- public StringBuffer append(float fnum)
+ public synchronized StringBuffer append(float fnum)
{
- return append(Float.toString(fnum));
+ super.append(fnum);
+ return this;
}
/**
@@ -569,9 +472,26 @@ public final class StringBuffer
* @return this <code>StringBuffer</code>
* @see String#valueOf(double)
*/
- public StringBuffer append(double dnum)
+ public synchronized StringBuffer append(double dnum)
{
- return append(Double.toString(dnum));
+ super.append(dnum);
+ return this;
+ }
+
+ /**
+ * Append the code point to this <code>StringBuffer</code>.
+ * This is like #append(char), but will append two characters
+ * if a supplementary code point is given.
+ *
+ * @param code the code point to append
+ * @return this <code>StringBuffer</code>
+ * @see Character#toChars(int, char[], int)
+ * @since 1.5
+ */
+ public synchronized StringBuffer appendCodePoint(int code)
+ {
+ super.appendCodePoint(code);
+ return this;
}
/**
@@ -587,15 +507,8 @@ public final class StringBuffer
*/
public synchronized StringBuffer delete(int start, int end)
{
- if (start < 0 || start > count || start > end)
- throw new StringIndexOutOfBoundsException(start);
- if (end > count)
- end = count;
// This will unshare if required.
- ensureCapacity_unsynchronized(count);
- if (count - end != 0)
- VMSystem.arraycopy(value, end, value, start, count - end);
- count -= end - start;
+ super.delete(start, end);
return this;
}
@@ -607,9 +520,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if index is out of bounds
* @since 1.2
*/
- public StringBuffer deleteCharAt(int index)
+ public synchronized StringBuffer deleteCharAt(int index)
{
- return delete(index, index + 1);
+ super.deleteCharAt(index);
+ return this;
}
/**
@@ -628,19 +542,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer replace(int start, int end, String str)
{
- if (start < 0 || start > count || start > end)
- throw new StringIndexOutOfBoundsException(start);
-
- int len = str.count;
- // Calculate the difference in 'count' after the replace.
- int delta = len - (end > count ? count : end) + start;
- ensureCapacity_unsynchronized(count + delta);
-
- if (delta != 0 && end < count)
- VMSystem.arraycopy(value, end, value, end + delta, count - end);
-
- str.getChars(0, len, value, start);
- count += delta;
+ super.replace(start, end, str);
return this;
}
@@ -720,13 +622,7 @@ public final class StringBuffer
public synchronized StringBuffer insert(int offset,
char[] str, int str_offset, int len)
{
- if (offset < 0 || offset > count || len < 0
- || str_offset < 0 || str_offset > str.length - len)
- throw new StringIndexOutOfBoundsException();
- ensureCapacity_unsynchronized(count + len);
- VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
- VMSystem.arraycopy(str, str_offset, value, offset, len);
- count += len;
+ super.insert(offset, str, str_offset, len);
return this;
}
@@ -741,9 +637,10 @@ public final class StringBuffer
* @exception StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(Object)
*/
- public StringBuffer insert(int offset, Object obj)
+ public synchronized StringBuffer insert(int offset, Object obj)
{
- return insert(offset, obj == null ? "null" : obj.toString());
+ super.insert(offset, obj);
+ return this;
}
/**
@@ -758,15 +655,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer insert(int offset, String str)
{
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException(offset);
- if (str == null)
- str = "null";
- int len = str.count;
- ensureCapacity_unsynchronized(count + len);
- VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
- str.getChars(0, len, value, offset);
- count += len;
+ super.insert(offset, str);
return this;
}
@@ -783,9 +672,8 @@ public final class StringBuffer
*/
public synchronized StringBuffer insert(int offset, CharSequence sequence)
{
- if (sequence == null)
- sequence = "null";
- return insert(offset, sequence, 0, sequence.length());
+ super.insert(offset, sequence);
+ return this;
}
/**
@@ -805,16 +693,7 @@ public final class StringBuffer
public synchronized StringBuffer insert(int offset, CharSequence sequence,
int start, int end)
{
- if (sequence == null)
- sequence = "null";
- if (start < 0 || end < 0 || start > end || end > sequence.length())
- throw new IndexOutOfBoundsException();
- int len = end - start;
- ensureCapacity_unsynchronized(count + len);
- VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
- for (int i = start; i < end; ++i)
- value[offset++] = sequence.charAt(i);
- count += len;
+ super.insert(offset, sequence, start, end);
return this;
}
@@ -829,9 +708,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see #insert(int, char[], int, int)
*/
- public StringBuffer insert(int offset, char[] data)
+ public synchronized StringBuffer insert(int offset, char[] data)
{
- return insert(offset, data, 0, data.length);
+ super.insert(offset, data, 0, data.length);
+ return this;
}
/**
@@ -845,9 +725,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(boolean)
*/
- public StringBuffer insert(int offset, boolean bool)
+ public synchronized StringBuffer insert(int offset, boolean bool)
{
- return insert(offset, bool ? "true" : "false");
+ super.insert(offset, bool);
+ return this;
}
/**
@@ -860,12 +741,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer insert(int offset, char ch)
{
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException(offset);
- ensureCapacity_unsynchronized(count + 1);
- VMSystem.arraycopy(value, offset, value, offset + 1, count - offset);
- value[offset] = ch;
- count++;
+ super.insert(offset, ch);
return this;
}
@@ -880,9 +756,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(int)
*/
- public StringBuffer insert(int offset, int inum)
+ public synchronized StringBuffer insert(int offset, int inum)
{
- return insert(offset, String.valueOf(inum));
+ super.insert(offset, inum);
+ return this;
}
/**
@@ -896,9 +773,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(long)
*/
- public StringBuffer insert(int offset, long lnum)
+ public synchronized StringBuffer insert(int offset, long lnum)
{
- return insert(offset, Long.toString(lnum, 10));
+ super.insert(offset, lnum);
+ return this;
}
/**
@@ -912,9 +790,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(float)
*/
- public StringBuffer insert(int offset, float fnum)
+ public synchronized StringBuffer insert(int offset, float fnum)
{
- return insert(offset, Float.toString(fnum));
+ super.insert(offset, fnum);
+ return this;
}
/**
@@ -928,9 +807,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(double)
*/
- public StringBuffer insert(int offset, double dnum)
+ public synchronized StringBuffer insert(int offset, double dnum)
{
- return insert(offset, Double.toString(dnum));
+ super.insert(offset, dnum);
+ return this;
}
/**
@@ -942,9 +822,9 @@ public final class StringBuffer
* @see #indexOf(String, int)
* @since 1.4
*/
- public int indexOf(String str)
+ public synchronized int indexOf(String str)
{
- return indexOf(str, 0);
+ return super.indexOf(str, 0);
}
/**
@@ -961,13 +841,7 @@ public final class StringBuffer
*/
public synchronized int indexOf(String str, int fromIndex)
{
- if (fromIndex < 0)
- fromIndex = 0;
- int limit = count - str.count;
- for ( ; fromIndex <= limit; fromIndex++)
- if (regionMatches(fromIndex, str))
- return fromIndex;
- return -1;
+ return super.indexOf(str, fromIndex);
}
/**
@@ -979,9 +853,9 @@ public final class StringBuffer
* @see #lastIndexOf(String, int)
* @since 1.4
*/
- public int lastIndexOf(String str)
+ public synchronized int lastIndexOf(String str)
{
- return lastIndexOf(str, count - str.count);
+ return super.lastIndexOf(str, count - str.count);
}
/**
@@ -998,11 +872,7 @@ public final class StringBuffer
*/
public synchronized int lastIndexOf(String str, int fromIndex)
{
- fromIndex = Math.min(fromIndex, count - str.count);
- for ( ; fromIndex >= 0; fromIndex--)
- if (regionMatches(fromIndex, str))
- return fromIndex;
- return -1;
+ return super.lastIndexOf(str, fromIndex);
}
/**
@@ -1013,14 +883,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer reverse()
{
- // Call ensureCapacity to enforce copy-on-write.
- ensureCapacity_unsynchronized(count);
- for (int i = count >> 1, j = count - i; --i >= 0; ++j)
- {
- char c = value[i];
- value[i] = value[j];
- value[j] = c;
- }
+ super.reverse();
return this;
}
@@ -1047,19 +910,7 @@ public final class StringBuffer
*/
public synchronized void trimToSize()
{
- int wouldSave = value.length - count;
- // Some random heuristics: if we save less than 20 characters, who
- // cares.
- if (wouldSave < 20)
- return;
- // If we save more than 200 characters, shrink.
- // If we save more than 1/4 of the buffer, shrink.
- if (wouldSave > 200 || wouldSave * 4 > value.length)
- {
- char[] newValue = new char[count];
- VMSystem.arraycopy(value, 0, newValue, 0, count);
- value = newValue;
- }
+ super.trimToSize();
}
/**
@@ -1076,31 +927,7 @@ public final class StringBuffer
*/
public synchronized int codePointCount(int start, int end)
{
- if (start < 0 || end >= count || start > end)
- throw new StringIndexOutOfBoundsException();
-
- int count = 0;
- while (start < end)
- {
- char base = value[start];
- if (base < Character.MIN_HIGH_SURROGATE
- || base > Character.MAX_HIGH_SURROGATE
- || start == end
- || start == count
- || value[start + 1] < Character.MIN_LOW_SURROGATE
- || value[start + 1] > Character.MAX_LOW_SURROGATE)
- {
- // Nothing.
- }
- else
- {
- // Surrogate pair.
- ++start;
- }
- ++start;
- ++count;
- }
- return count;
+ return super.codePointCount(start, end);
}
/**
@@ -1116,26 +943,7 @@ public final class StringBuffer
*/
public synchronized int offsetByCodePoints(int start, int codePoints)
{
- while (codePoints > 0)
- {
- char base = value[start];
- if (base < Character.MIN_HIGH_SURROGATE
- || base > Character.MAX_HIGH_SURROGATE
- || start == count
- || value[start + 1] < Character.MIN_LOW_SURROGATE
- || value[start + 1] > Character.MAX_LOW_SURROGATE)
- {
- // Nothing.
- }
- else
- {
- // Surrogate pair.
- ++start;
- }
- ++start;
- --codePoints;
- }
- return start;
+ return super.offsetByCodePoints(start, codePoints);
}
/**
@@ -1147,7 +955,7 @@ public final class StringBuffer
* @param minimumCapacity the minimum capacity
* @see #ensureCapacity(int)
*/
- private void ensureCapacity_unsynchronized(int minimumCapacity)
+ void ensureCapacity_unsynchronized(int minimumCapacity)
{
if (shared || minimumCapacity > value.length)
{
@@ -1165,26 +973,4 @@ public final class StringBuffer
}
}
- /**
- * Predicate which determines if a substring of this matches another String
- * starting at a specified offset for each String and continuing for a
- * specified length. This is more efficient than creating a String to call
- * indexOf on.
- *
- * @param toffset index to start comparison at for this String
- * @param other non-null String to compare to region of this
- * @return true if regions match, false otherwise
- * @see #indexOf(String, int)
- * @see #lastIndexOf(String, int)
- * @see String#regionMatches(boolean, int, String, int, int)
- */
- private boolean regionMatches(int toffset, String other)
- {
- int len = other.count;
- int index = other.offset;
- while (--len >= 0)
- if (value[toffset++] != other.value[index++])
- return false;
- return true;
- }
}
diff --git a/libjava/classpath/java/lang/StringBuilder.java b/libjava/classpath/java/lang/StringBuilder.java
index 95d04d1..aefe927 100644
--- a/libjava/classpath/java/lang/StringBuilder.java
+++ b/libjava/classpath/java/lang/StringBuilder.java
@@ -1,5 +1,5 @@
/* StringBuilder.java -- Unsynchronized growable strings
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -75,6 +75,7 @@ import java.io.Serializable;
* @since 1.5
*/
public final class StringBuilder
+ extends AbstractStringBuffer
implements Serializable, CharSequence, Appendable
{
// Implementation note: if you change this class, you usually will
@@ -86,33 +87,11 @@ public final class StringBuilder
private static final long serialVersionUID = 4383685877147921099L;
/**
- * Index of next available character (and thus the size of the current
- * string contents). Note that this has permissions set this way so that
- * String can get the value.
- *
- * @serial the number of characters in the buffer
- */
- int count;
-
- /**
- * The buffer. Note that this has permissions set this way so that String
- * can get the value.
- *
- * @serial the buffer
- */
- char[] value;
-
- /**
- * The default capacity of a buffer.
- */
- private static final int DEFAULT_CAPACITY = 16;
-
- /**
* Create a new StringBuilder with default capacity 16.
*/
public StringBuilder()
{
- this(DEFAULT_CAPACITY);
+ super();
}
/**
@@ -124,7 +103,7 @@ public final class StringBuilder
*/
public StringBuilder(int capacity)
{
- value = new char[capacity];
+ super(capacity);
}
/**
@@ -137,10 +116,7 @@ public final class StringBuilder
*/
public StringBuilder(String str)
{
- // Unfortunately, because the size is 16 larger, we cannot share.
- count = str.count;
- value = new char[count + DEFAULT_CAPACITY];
- str.getChars(0, count, value, 0);
+ super(str);
}
/**
@@ -154,11 +130,7 @@ public final class StringBuilder
*/
public StringBuilder(CharSequence seq)
{
- int len = seq.length();
- count = len <= 0 ? 0 : len;
- value = new char[count + DEFAULT_CAPACITY];
- for (int i = 0; i < len; ++i)
- value[i] = seq.charAt(i);
+ super(seq);
}
/**
@@ -189,122 +161,6 @@ public final class StringBuilder
}
/**
- * Increase the capacity of this <code>StringBuilder</code>. This will
- * ensure that an expensive growing operation will not occur until
- * <code>minimumCapacity</code> is reached. The buffer is grown to the
- * larger of <code>minimumCapacity</code> and
- * <code>capacity() * 2 + 2</code>, if it is not already large enough.
- *
- * @param minimumCapacity the new capacity
- * @see #capacity()
- */
- public void ensureCapacity(int minimumCapacity)
- {
- if (minimumCapacity > value.length)
- {
- int max = value.length * 2 + 2;
- minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
- char[] nb = new char[minimumCapacity];
- VMSystem.arraycopy(value, 0, nb, 0, count);
- value = nb;
- }
- }
-
- /**
- * Set the length of this StringBuilder. If the new length is greater than
- * the current length, all the new characters are set to '\0'. If the new
- * length is less than the current length, the first <code>newLength</code>
- * characters of the old array will be preserved, and the remaining
- * characters are truncated.
- *
- * @param newLength the new length
- * @throws IndexOutOfBoundsException if the new length is negative
- * (while unspecified, this is a StringIndexOutOfBoundsException)
- * @see #length()
- */
- public void setLength(int newLength)
- {
- if (newLength < 0)
- throw new StringIndexOutOfBoundsException(newLength);
-
- int valueLength = value.length;
-
- /* Always call ensureCapacity in order to preserve copy-on-write
- semantics. */
- ensureCapacity(newLength);
-
- if (newLength < valueLength)
- {
- /* If the StringBuilder's value just grew, then we know that
- value is newly allocated and the region between count and
- newLength is filled with '\0'. */
- count = newLength;
- }
- else
- {
- /* The StringBuilder's value doesn't need to grow. However,
- we should clear out any cruft that may exist. */
- while (count < newLength)
- value[count++] = '\0';
- }
- }
-
- /**
- * Get the character at the specified index.
- *
- * @param index the index of the character to get, starting at 0
- * @return the character at the specified index
- * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
- * (while unspecified, this is a StringIndexOutOfBoundsException)
- */
- public char charAt(int index)
- {
- if (index < 0 || index >= count)
- throw new StringIndexOutOfBoundsException(index);
- return value[index];
- }
-
- /**
- * Get the specified array of characters. <code>srcOffset - srcEnd</code>
- * characters will be copied into the array you pass in.
- *
- * @param srcOffset the index to start copying from (inclusive)
- * @param srcEnd the index to stop copying from (exclusive)
- * @param dst the array to copy into
- * @param dstOffset the index to start copying into
- * @throws NullPointerException if dst is null
- * @throws IndexOutOfBoundsException if any source or target indices are
- * out of range (while unspecified, source problems cause a
- * StringIndexOutOfBoundsException, and dest problems cause an
- * ArrayIndexOutOfBoundsException)
- * @see System#arraycopy(Object, int, Object, int, int)
- */
- public void getChars(int srcOffset, int srcEnd,
- char[] dst, int dstOffset)
- {
- if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
- throw new StringIndexOutOfBoundsException();
- VMSystem.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
- }
-
- /**
- * Set the character at the specified index.
- *
- * @param index the index of the character to set starting at 0
- * @param ch the value to set that character to
- * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
- * (while unspecified, this is a StringIndexOutOfBoundsException)
- */
- public void setCharAt(int index, char ch)
- {
- if (index < 0 || index >= count)
- throw new StringIndexOutOfBoundsException(index);
- // Call ensureCapacity to enforce copy-on-write.
- ensureCapacity(count);
- value[index] = ch;
- }
-
- /**
* Append the <code>String</code> value of the argument to this
* <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
* to <code>String</code>.
@@ -316,7 +172,8 @@ public final class StringBuilder
*/
public StringBuilder append(Object obj)
{
- return append(obj == null ? "null" : obj.toString());
+ super.append(obj);
+ return this;
}
/**
@@ -328,12 +185,7 @@ public final class StringBuilder
*/
public StringBuilder append(String str)
{
- if (str == null)
- str = "null";
- int len = str.count;
- ensureCapacity(count + len);
- str.getChars(0, len, value, count);
- count += len;
+ super.append(str);
return this;
}
@@ -348,15 +200,7 @@ public final class StringBuilder
*/
public StringBuilder append(StringBuffer stringBuffer)
{
- if (stringBuffer == null)
- return append("null");
- synchronized (stringBuffer)
- {
- int len = stringBuffer.count;
- ensureCapacity(count + len);
- VMSystem.arraycopy(stringBuffer.value, 0, value, count, len);
- count += len;
- }
+ super.append(stringBuffer);
return this;
}
@@ -372,7 +216,8 @@ public final class StringBuilder
*/
public StringBuilder append(char[] data)
{
- return append(data, 0, data.length);
+ super.append(data, 0, data.length);
+ return this;
}
/**
@@ -391,11 +236,7 @@ public final class StringBuilder
*/
public StringBuilder append(char[] data, int offset, int count)
{
- if (offset < 0 || count < 0 || offset > data.length - count)
- throw new StringIndexOutOfBoundsException();
- ensureCapacity(this.count + count);
- VMSystem.arraycopy(data, offset, value, this.count, count);
- this.count += count;
+ super.append(data, offset, count);
return this;
}
@@ -410,7 +251,8 @@ public final class StringBuilder
*/
public StringBuilder append(boolean bool)
{
- return append(bool ? "true" : "false");
+ super.append(bool);
+ return this;
}
/**
@@ -421,8 +263,7 @@ public final class StringBuilder
*/
public StringBuilder append(char ch)
{
- ensureCapacity(count + 1);
- value[count++] = ch;
+ super.append(ch);
return this;
}
@@ -435,7 +276,8 @@ public final class StringBuilder
*/
public StringBuilder append(CharSequence seq)
{
- return append(seq, 0, seq.length());
+ super.append(seq, 0, seq.length());
+ return this;
}
/**
@@ -451,33 +293,7 @@ public final class StringBuilder
public StringBuilder append(CharSequence seq, int start,
int end)
{
- if (seq == null)
- return append("null");
- if (end - start > 0)
- {
- ensureCapacity(count + end - start);
- for (; start < end; ++start)
- value[count++] = seq.charAt(start);
- }
- return this;
- }
-
- /**
- * Append the code point to this <code>StringBuilder</code>.
- * This is like #append(char), but will append two characters
- * if a supplementary code point is given.
- *
- * @param code the code point to append
- * @return this <code>StringBuilder</code>
- * @see Character#toChars(int, char[], int)
- * @since 1.5
- */
- public synchronized StringBuilder appendCodePoint(int code)
- {
- int len = Character.charCount(code);
- ensureCapacity(count + len);
- Character.toChars(code, value, count);
- count += len;
+ super.append(seq, start, end);
return this;
}
@@ -493,7 +309,8 @@ public final class StringBuilder
// This is native in libgcj, for efficiency.
public StringBuilder append(int inum)
{
- return append(String.valueOf(inum));
+ super.append(inum);
+ return this;
}
/**
@@ -507,7 +324,8 @@ public final class StringBuilder
*/
public StringBuilder append(long lnum)
{
- return append(Long.toString(lnum, 10));
+ super.append(lnum);
+ return this;
}
/**
@@ -521,7 +339,8 @@ public final class StringBuilder
*/
public StringBuilder append(float fnum)
{
- return append(Float.toString(fnum));
+ super.append(fnum);
+ return this;
}
/**
@@ -535,7 +354,24 @@ public final class StringBuilder
*/
public StringBuilder append(double dnum)
{
- return append(Double.toString(dnum));
+ super.append(dnum);
+ return this;
+ }
+
+ /**
+ * Append the code point to this <code>StringBuilder</code>.
+ * This is like #append(char), but will append two characters
+ * if a supplementary code point is given.
+ *
+ * @param code the code point to append
+ * @return this <code>StringBuilder</code>
+ * @see Character#toChars(int, char[], int)
+ * @since 1.5
+ */
+ public StringBuilder appendCodePoint(int code)
+ {
+ super.appendCodePoint(code);
+ return this;
}
/**
@@ -550,15 +386,7 @@ public final class StringBuilder
*/
public StringBuilder delete(int start, int end)
{
- if (start < 0 || start > count || start > end)
- throw new StringIndexOutOfBoundsException(start);
- if (end > count)
- end = count;
- // This will unshare if required.
- ensureCapacity(count);
- if (count - end != 0)
- VMSystem.arraycopy(value, end, value, start, count - end);
- count -= end - start;
+ super.delete(start, end);
return this;
}
@@ -571,7 +399,8 @@ public final class StringBuilder
*/
public StringBuilder deleteCharAt(int index)
{
- return delete(index, index + 1);
+ super.deleteCharAt(index);
+ return this;
}
/**
@@ -589,19 +418,7 @@ public final class StringBuilder
*/
public StringBuilder replace(int start, int end, String str)
{
- if (start < 0 || start > count || start > end)
- throw new StringIndexOutOfBoundsException(start);
-
- int len = str.count;
- // Calculate the difference in 'count' after the replace.
- int delta = len - (end > count ? count : end) + start;
- ensureCapacity(count + delta);
-
- if (delta != 0 && end < count)
- VMSystem.arraycopy(value, end, value, end + delta, count - end);
-
- str.getChars(0, len, value, start);
- count += delta;
+ super.replace(start, end, str);
return this;
}
@@ -672,13 +489,7 @@ public final class StringBuilder
public StringBuilder insert(int offset,
char[] str, int str_offset, int len)
{
- if (offset < 0 || offset > count || len < 0
- || str_offset < 0 || str_offset > str.length - len)
- throw new StringIndexOutOfBoundsException();
- ensureCapacity(count + len);
- VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
- VMSystem.arraycopy(str, str_offset, value, offset, len);
- count += len;
+ super.insert(offset, str, str_offset, len);
return this;
}
@@ -695,7 +506,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, Object obj)
{
- return insert(offset, obj == null ? "null" : obj.toString());
+ super.insert(offset, obj);
+ return this;
}
/**
@@ -710,15 +522,7 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, String str)
{
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException(offset);
- if (str == null)
- str = "null";
- int len = str.count;
- ensureCapacity(count + len);
- VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
- str.getChars(0, len, value, offset);
- count += len;
+ super.insert(offset, str);
return this;
}
@@ -732,11 +536,10 @@ public final class StringBuilder
* @return this <code>StringBuilder</code>
* @throws IndexOutOfBoundsException if offset is out of bounds
*/
- public synchronized StringBuilder insert(int offset, CharSequence sequence)
+ public StringBuilder insert(int offset, CharSequence sequence)
{
- if (sequence == null)
- sequence = "null";
- return insert(offset, sequence, 0, sequence.length());
+ super.insert(offset, sequence);
+ return this;
}
/**
@@ -752,19 +555,10 @@ public final class StringBuilder
* @throws IndexOutOfBoundsException if offset, start,
* or end are out of bounds
*/
- public synchronized StringBuilder insert(int offset, CharSequence sequence,
- int start, int end)
+ public StringBuilder insert(int offset, CharSequence sequence,
+ int start, int end)
{
- if (sequence == null)
- sequence = "null";
- if (start < 0 || end < 0 || start > end || end > sequence.length())
- throw new IndexOutOfBoundsException();
- int len = end - start;
- ensureCapacity(count + len);
- VMSystem.arraycopy(value, offset, value, offset + len, count - offset);
- for (int i = start; i < end; ++i)
- value[offset++] = sequence.charAt(i);
- count += len;
+ super.insert(offset, sequence, start, end);
return this;
}
@@ -781,7 +575,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, char[] data)
{
- return insert(offset, data, 0, data.length);
+ super.insert(offset, data);
+ return this;
}
/**
@@ -797,7 +592,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, boolean bool)
{
- return insert(offset, bool ? "true" : "false");
+ super.insert(offset, bool);
+ return this;
}
/**
@@ -810,12 +606,7 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, char ch)
{
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException(offset);
- ensureCapacity(count + 1);
- VMSystem.arraycopy(value, offset, value, offset + 1, count - offset);
- value[offset] = ch;
- count++;
+ super.insert(offset, ch);
return this;
}
@@ -832,7 +623,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, int inum)
{
- return insert(offset, String.valueOf(inum));
+ super.insert(offset, inum);
+ return this;
}
/**
@@ -848,7 +640,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, long lnum)
{
- return insert(offset, Long.toString(lnum, 10));
+ super.insert(offset, lnum);
+ return this;
}
/**
@@ -864,7 +657,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, float fnum)
{
- return insert(offset, Float.toString(fnum));
+ super.insert(offset, fnum);
+ return this;
}
/**
@@ -880,75 +674,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, double dnum)
{
- return insert(offset, Double.toString(dnum));
- }
-
- /**
- * Finds the first instance of a substring in this StringBuilder.
- *
- * @param str String to find
- * @return location (base 0) of the String, or -1 if not found
- * @throws NullPointerException if str is null
- * @see #indexOf(String, int)
- */
- public int indexOf(String str)
- {
- return indexOf(str, 0);
- }
-
- /**
- * Finds the first instance of a String in this StringBuilder, starting at
- * a given index. If starting index is less than 0, the search starts at
- * the beginning of this String. If the starting index is greater than the
- * length of this String, or the substring is not found, -1 is returned.
- *
- * @param str String to find
- * @param fromIndex index to start the search
- * @return location (base 0) of the String, or -1 if not found
- * @throws NullPointerException if str is null
- */
- public int indexOf(String str, int fromIndex)
- {
- if (fromIndex < 0)
- fromIndex = 0;
- int limit = count - str.count;
- for ( ; fromIndex <= limit; fromIndex++)
- if (regionMatches(fromIndex, str))
- return fromIndex;
- return -1;
- }
-
- /**
- * Finds the last instance of a substring in this StringBuilder.
- *
- * @param str String to find
- * @return location (base 0) of the String, or -1 if not found
- * @throws NullPointerException if str is null
- * @see #lastIndexOf(String, int)
- */
- public int lastIndexOf(String str)
- {
- return lastIndexOf(str, count - str.count);
- }
-
- /**
- * Finds the last instance of a String in this StringBuilder, starting at a
- * given index. If starting index is greater than the maximum valid index,
- * then the search begins at the end of this String. If the starting index
- * is less than zero, or the substring is not found, -1 is returned.
- *
- * @param str String to find
- * @param fromIndex index to start the search
- * @return location (base 0) of the String, or -1 if not found
- * @throws NullPointerException if str is null
- */
- public int lastIndexOf(String str, int fromIndex)
- {
- fromIndex = Math.min(fromIndex, count - str.count);
- for ( ; fromIndex >= 0; fromIndex--)
- if (regionMatches(fromIndex, str))
- return fromIndex;
- return -1;
+ super.insert(offset, dnum);
+ return this;
}
/**
@@ -959,14 +686,7 @@ public final class StringBuilder
*/
public StringBuilder reverse()
{
- // Call ensureCapacity to enforce copy-on-write.
- ensureCapacity(count);
- for (int i = count >> 1, j = count - i; --i >= 0; ++j)
- {
- char c = value[i];
- value[i] = value[j];
- value[j] = c;
- }
+ super.reverse();
return this;
}
@@ -983,87 +703,4 @@ public final class StringBuilder
return new String(this);
}
- /**
- * Predicate which determines if a substring of this matches another String
- * starting at a specified offset for each String and continuing for a
- * specified length. This is more efficient than creating a String to call
- * indexOf on.
- *
- * @param toffset index to start comparison at for this String
- * @param other non-null String to compare to region of this
- * @return true if regions match, false otherwise
- * @see #indexOf(String, int)
- * @see #lastIndexOf(String, int)
- * @see String#regionMatches(boolean, int, String, int, int)
- */
- private boolean regionMatches(int toffset, String other)
- {
- int len = other.count;
- int index = other.offset;
- while (--len >= 0)
- if (value[toffset++] != other.value[index++])
- return false;
- return true;
- }
-
- /**
- * Get the code point at the specified index. This is like #charAt(int),
- * but if the character is the start of a surrogate pair, and the
- * following character completes the pair, then the corresponding
- * supplementary code point is returned.
- * @param index the index of the codepoint to get, starting at 0
- * @return the codepoint at the specified index
- * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
- * @since 1.5
- */
- public int codePointAt(int index)
- {
- return Character.codePointAt(value, index, count);
- }
-
- /**
- * Get the code point before the specified index. This is like
- * #codePointAt(int), but checks the characters at <code>index-1</code> and
- * <code>index-2</code> to see if they form a supplementary code point.
- * @param index the index just past the codepoint to get, starting at 0
- * @return the codepoint at the specified index
- * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
- * @since 1.5
- */
- public int codePointBefore(int index)
- {
- // Character.codePointBefore() doesn't perform this check. We
- // could use the CharSequence overload, but this is just as easy.
- if (index >= count)
- throw new IndexOutOfBoundsException();
- return Character.codePointBefore(value, index, 1);
- }
-
- /**
- * Returns the number of Unicode code points in the specified sub sequence.
- * Surrogate pairs count as one code point.
- * @param beginIndex the start of the subarray
- * @param endIndex the index after the last char in the subarray
- * @return the number of code points
- * @throws IndexOutOfBoundsException if beginIndex is less than zero or
- * greater than endIndex or if endIndex is greater than the length of this
- * StringBuilder
- */
- public int codePointCount(int beginIndex,int endIndex)
- {
- if (beginIndex < 0 || beginIndex > endIndex || endIndex > count)
- throw new IndexOutOfBoundsException("invalid indices: " + beginIndex
- + ", " + endIndex);
- return Character.codePointCount(value, beginIndex, endIndex - beginIndex);
- }
-
- public void trimToSize()
- {
- if (count < value.length)
- {
- char[] newValue = new char[count];
- VMSystem.arraycopy(value, 0, newValue, 0, count);
- value = newValue;
- }
- }
}
diff --git a/libjava/classpath/java/lang/Thread.java b/libjava/classpath/java/lang/Thread.java
index 01b380b..82e7261 100644
--- a/libjava/classpath/java/lang/Thread.java
+++ b/libjava/classpath/java/lang/Thread.java
@@ -159,7 +159,7 @@ public class Thread implements Runnable
/** Thread local storage. Package accessible for use by
* InheritableThreadLocal.
*/
- WeakIdentityHashMap locals;
+ final ThreadLocalMap locals;
/** The uncaught exception handler. */
UncaughtExceptionHandler exceptionHandler;
@@ -367,6 +367,7 @@ public class Thread implements Runnable
this.name = name.toString();
this.runnable = target;
this.stacksize = size;
+ this.locals = new ThreadLocalMap();
synchronized (Thread.class)
{
@@ -398,6 +399,7 @@ public class Thread implements Runnable
*/
Thread(VMThread vmThread, String name, int priority, boolean daemon)
{
+ this.locals = new ThreadLocalMap();
this.vmThread = vmThread;
this.runnable = null;
if (name == null)
@@ -1063,21 +1065,15 @@ public class Thread implements Runnable
{
group.removeThread(this);
vmThread = null;
- locals = null;
+ locals.clear();
}
/**
* Returns the map used by ThreadLocal to store the thread local values.
*/
- static Map getThreadLocals()
+ static ThreadLocalMap getThreadLocals()
{
- Thread thread = currentThread();
- Map locals = thread.locals;
- if (locals == null)
- {
- locals = thread.locals = new WeakIdentityHashMap();
- }
- return locals;
+ return currentThread().locals;
}
/**
diff --git a/libjava/classpath/java/lang/ThreadLocal.java b/libjava/classpath/java/lang/ThreadLocal.java
index 6c4ba17..14778c6 100644
--- a/libjava/classpath/java/lang/ThreadLocal.java
+++ b/libjava/classpath/java/lang/ThreadLocal.java
@@ -37,9 +37,6 @@ exception statement from your version. */
package java.lang;
-import java.util.Map;
-
-
/**
* ThreadLocal objects have a different state associated with every
* Thread that accesses them. Every access to the ThreadLocal object
@@ -93,13 +90,31 @@ public class ThreadLocal<T>
* user. Do not expose this to the public. Package visible for use by
* InheritableThreadLocal
*/
- static final Object sentinel = new Object();
+ static final Object notFound = new Object();
+
+ /**
+ * The base for the computation of the next hash for a thread local.
+ */
+ private static int nextHashBase = 1;
+
+ /**
+ * Allocate a new hash.
+ */
+ private synchronized int computeNextHash() {
+ return nextHashBase++ * 6709;
+ }
+
+ /**
+ * Hash code computed for ThreadLocalMap
+ */
+ final int fastHash;
/**
* Creates a ThreadLocal object without associating any value to it yet.
*/
public ThreadLocal()
{
+ fastHash = computeNextHash();
}
/**
@@ -125,16 +140,16 @@ public class ThreadLocal<T>
*/
public T get()
{
- Map<ThreadLocal<T>,T> map = (Map<ThreadLocal<T>,T>) Thread.getThreadLocals();
+ ThreadLocalMap map = Thread.getThreadLocals();
// Note that we don't have to synchronize, as only this thread will
// ever modify the map.
- T value = map.get(this);
- if (value == null)
+ T value = (T) map.get(this);
+ if (value == notFound)
{
value = initialValue();
- map.put(this, (T) (value == null ? sentinel : value));
+ map.set(this, value);
}
- return value == (T) sentinel ? null : value;
+ return value;
}
/**
@@ -147,10 +162,10 @@ public class ThreadLocal<T>
*/
public void set(T value)
{
- Map map = Thread.getThreadLocals();
+ ThreadLocalMap map = Thread.getThreadLocals();
// Note that we don't have to synchronize, as only this thread will
// ever modify the map.
- map.put(this, value == null ? sentinel : value);
+ map.set(this, value);
}
/**
@@ -160,7 +175,7 @@ public class ThreadLocal<T>
*/
public void remove()
{
- Map map = Thread.getThreadLocals();
+ ThreadLocalMap map = Thread.getThreadLocals();
map.remove(this);
}
}
diff --git a/libjava/classpath/java/lang/ThreadLocalMap.java b/libjava/classpath/java/lang/ThreadLocalMap.java
new file mode 100644
index 0000000..7f67b13
--- /dev/null
+++ b/libjava/classpath/java/lang/ThreadLocalMap.java
@@ -0,0 +1,325 @@
+/* ThreadLocal -- a variable with a unique value per thread
+ Copyright (C) 2000, 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.lang.ref.WeakReference;
+
+/**
+ * ThreadLocalMap is the basic storage for the map of ThreadLocal instance
+ * to a thread's current value.
+ *
+ * Some applications really work out ThreadLocals, leading to this
+ * optimized implementation.
+ */
+final class ThreadLocalMap
+{
+ /**
+ * The log (base 2) of the initial size of the map
+ */
+ private static final int LOG_INITIAL_SIZE = 3;
+
+ /**
+ * The maximum occupancy rate (after which we grow)
+ */
+ private static final float MAX_OCCUPANCY = 0.7f;
+
+ /**
+ * The target occupancy rate.
+ */
+ private static final float TARGET_OCCUPANCY = 0.5f;
+
+ /**
+ * The deleted entry sentinel value.
+ */
+ private static final Entry deletedEntry = new Entry(null);
+
+ /**
+ * Constructor
+ */
+ ThreadLocalMap()
+ {
+ /* Dummy value to ensure fast path can be optimized */
+ entries = new Entry[1];
+ hashMask = 0;
+ count = 0;
+ }
+
+ /**
+ * The map entries
+ */
+ private Entry[] entries;
+
+ /**
+ * Used for start index computation
+ */
+ private int hashMask;
+
+ /**
+ * The number of entries currently in the map
+ */
+ private int count;
+
+ /**
+ * Create or grow the table to the specified size. The size must be a
+ * power of two for the efficient mask/hash computation.
+ *
+ * @param newSize The new table size.
+ */
+ private void newEntryArray(int newSize)
+ {
+ int mask = newSize - 1;
+ Entry[] oldEntries = this.entries;
+ this.entries = new Entry[newSize];
+ this.hashMask = mask;
+
+ /* Copy old entries to new table */
+ count = 0;
+ if (oldEntries != null)
+ {
+ for(Entry e: oldEntries)
+ {
+ if (e != null)
+ {
+ ThreadLocal<?> key = e.get();
+ if (e != deletedEntry && key != null)
+ {
+ for(int i = key.fastHash & mask;; i = (i + 1) & mask)
+ {
+ if (entries[i] == null)
+ {
+ entries[i] = e;
+ count++;
+ break;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * We have run out of space in our locals. We use this as the
+ * trigger to attempt to find unused slots as ThreadLocals have
+ * died. If we recover any slots this way then we do not grow.
+ */
+ private void overflow()
+ {
+ /* First 'actual' use */
+ if (entries.length == 1)
+ {
+ newEntryArray(1 << LOG_INITIAL_SIZE);
+ return;
+ }
+
+ /* Attempt to recover unused slots */
+ int deleted = 0;
+ for(int i=0; i < entries.length; i++)
+ {
+ Entry e = entries[i];
+ if (e != null)
+ {
+ if (e == deletedEntry)
+ {
+ deleted++;
+ }
+ else if (e.get() == null)
+ {
+ entries[i] = deletedEntry;
+ deleted++;
+ }
+ }
+ }
+
+ if ((count-deleted) <= (TARGET_OCCUPANCY * entries.length))
+ {
+ /* We currently rehash by simple reallocating into a same-sized table.
+ * An alternative would be to implement a clever hashing algorithm but
+ * as this happens infrequently this seems preferred */
+ newEntryArray(entries.length);
+ return;
+ }
+
+ /* Double the size */
+ newEntryArray(entries.length << 1);
+ }
+
+ /**
+ * This is the class that is used to refer to a thread local weakly.
+ *
+ * As we want to minimize indirections we extend WeakReference.
+ */
+ static final class Entry extends WeakReference<ThreadLocal<?>> {
+ /**
+ * The value stored in this slot
+ */
+ Object value;
+
+ /**
+ * Constructor
+ */
+ Entry(ThreadLocal<?> threadLocal) {
+ super(threadLocal);
+ }
+ }
+
+ /**
+ * Gets the value associated with the ThreadLocal object for the currently
+ * executing Thread. If this is the first time the current thread has called
+ * get(), and it has not already called set(), the sentinel value is returned.
+ *
+ * @return the value of the variable in this thread, or sentinel if not present.
+ */
+ public Object get(ThreadLocal<?> key)
+ {
+ int mask = this.hashMask;
+ for(int i = key.fastHash & mask;; i = (i + 1) & mask) {
+ Entry e = entries[i];
+ if (e != null) {
+ if (e.get() == key) {
+ return e.value;
+ }
+ } else {
+ return ThreadLocal.sentinel;
+ }
+ }
+ }
+
+ /**
+ * Sets the value associated with the ThreadLocal object for the currently
+ * executing Thread. This overrides any existing value associated with the
+ * current Thread and prevents <code>initialValue()</code> from being
+ * called if this is the first access to this ThreadLocal in this Thread.
+ *
+ * @param value the value to set this thread's view of the variable to
+ */
+ public void set(ThreadLocal<?> key, Object value)
+ {
+ /* Overflow ? */
+ if ((count+1) >= (MAX_OCCUPANCY * entries.length))
+ {
+ overflow();
+ }
+
+ /* Set the entry */
+ int mask = this.hashMask;
+ for(int i = key.fastHash & mask;; i = (i + 1) & mask)
+ {
+ Entry e = entries[i];
+ if (e == null || e == deletedEntry)
+ {
+ /* Create entry */
+ if (e == null) count++;
+ entries[i] = e = new Entry(key);
+ e.value = value;
+ return;
+ }
+ else
+ {
+ ThreadLocal<?> entryKey = e.get();
+ if (entryKey == null)
+ {
+ entries[i] = deletedEntry;
+ }
+ else if (entryKey == key)
+ {
+ /* Update entry */
+ e.value = value;
+ return;
+ }
+ }
+ }
+ }
+
+ /**
+ * Removes the value associated with the ThreadLocal object for the
+ * currently executing Thread.
+ * @since 1.5
+ */
+ public void remove(ThreadLocal<?> key)
+ {
+ int mask = this.hashMask;
+ for(int i = key.fastHash & mask;; i = (i + 1) & mask)
+ {
+ Entry e = entries[i];
+ if (e != null)
+ {
+ ThreadLocal<?> entryKey = e.get();
+ if (entryKey != key)
+ {
+ if (entryKey == null) {
+ entries[i] = deletedEntry;
+ }
+ continue;
+ }
+ else
+ {
+ /* Remove from the table */
+ entries[i] = deletedEntry;
+ }
+ }
+ return;
+ }
+ }
+
+ /**
+ * Clear out the map. Done once during thread death.
+ */
+ void clear() {
+ entries = null;
+ }
+
+ /**
+ * Inherit all the InheritableThreadLocal instances from the given parent.
+ *
+ * @param parentMap The map to inherit from.
+ */
+ public void inherit(ThreadLocalMap parentMap) {
+ for(Entry e: parentMap.entries)
+ {
+ if (e != null && e != deletedEntry)
+ {
+ ThreadLocal<?> key = e.get();
+ if (key instanceof InheritableThreadLocal)
+ {
+ set(key, ((InheritableThreadLocal)key).childValue(e.value));
+ }
+ }
+ }
+ }
+}
diff --git a/libjava/classpath/java/lang/Throwable.java b/libjava/classpath/java/lang/Throwable.java
index 72f9e7f..f74851f 100644
--- a/libjava/classpath/java/lang/Throwable.java
+++ b/libjava/classpath/java/lang/Throwable.java
@@ -39,6 +39,8 @@ package java.lang;
import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.PrintStream;
import java.io.PrintWriter;
import java.io.Serializable;
@@ -411,7 +413,7 @@ public class Throwable implements Serializable
// different threads to get mixed up when written to the same PrintWriter.
private String stackTraceString()
{
- StringBuilder sb = new StringBuilder();
+ CPStringBuilder sb = new CPStringBuilder();
// Main stacktrace
StackTraceElement[] stack = getStackTrace();
@@ -455,7 +457,7 @@ public class Throwable implements Serializable
// Adds to the given StringBuffer a line containing the name and
// all stacktrace elements minus the last equal ones.
- private static void stackTraceStringBuffer(StringBuilder sb, String name,
+ private static void stackTraceStringBuffer(CPStringBuilder sb, String name,
StackTraceElement[] stack, int equal)
{
String nl = StaticData.nl;
diff --git a/libjava/classpath/java/lang/reflect/AccessibleObject.java b/libjava/classpath/java/lang/reflect/AccessibleObject.java
index fd46a53..328f81d 100644
--- a/libjava/classpath/java/lang/reflect/AccessibleObject.java
+++ b/libjava/classpath/java/lang/reflect/AccessibleObject.java
@@ -160,21 +160,72 @@ public class AccessibleObject
this.flag = flag;
}
+ /**
+ * <p>
+ * Returns the element's annotation for the specified annotation type,
+ * or <code>null</code> if no such annotation exists.
+ * </p>
+ * <p>
+ * <strong>This method must be overridden by subclasses to provide
+ * appropriate behaviour.</strong>
+ * </p>
+ *
+ * @param annotationClass the type of annotation to look for.
+ * @return this element's annotation for the specified type, or
+ * <code>null</code> if no such annotation exists.
+ * @throws NullPointerException if the annotation class is <code>null</code>.
+ */
public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
{
throw new AssertionError("Subclass must override this method");
}
+ /**
+ * Returns all annotations associated with the element. If there are
+ * no annotations associated with the element, then a zero-length array
+ * will be returned. The returned array may be modified by the client
+ * code, but this will have no effect on the annotation content of the
+ * element, and hence no effect on the return value of this method for
+ * future callers.
+ *
+ * @return this element's annotations.
+ */
public Annotation[] getAnnotations()
{
return getDeclaredAnnotations();
}
+ /**
+ * <p>
+ * Returns all annotations directly defined by the element. If there are
+ * no annotations directly associated with the element, then a zero-length
+ * array will be returned. The returned array may be modified by the client
+ * code, but this will have no effect on the annotation content of this
+ * class, and hence no effect on the return value of this method for
+ * future callers.
+ * </p>
+ * <p>
+ * <strong>This method must be overridden by subclasses to provide
+ * appropriate behaviour.</strong>
+ * </p>
+ *
+ * @return the annotations directly defined by the element.
+ * @since 1.5
+ */
public Annotation[] getDeclaredAnnotations()
{
throw new AssertionError("Subclass must override this method");
}
+ /**
+ * Returns true if an annotation for the specified type is associated
+ * with the element. This is primarily a short-hand for using marker
+ * annotations.
+ *
+ * @param annotationClass the type of annotation to look for.
+ * @return true if an annotation exists for the specified type.
+ * @since 1.5
+ */
public boolean isAnnotationPresent(Class<? extends Annotation> annotationClass)
{
return getAnnotation(annotationClass) != null;
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java b/libjava/classpath/java/lang/reflect/Constructor.java
index 8c604cc..d9b7e83 100644
--- a/libjava/classpath/vm/reference/java/lang/reflect/Constructor.java
+++ b/libjava/classpath/java/lang/reflect/Constructor.java
@@ -39,11 +39,11 @@ exception statement from your version. */
package java.lang.reflect;
import gnu.java.lang.ClassHelper;
+import gnu.java.lang.CPStringBuilder;
import gnu.java.lang.reflect.MethodSignatureParser;
import java.lang.annotation.Annotation;
-import java.util.Arrays;
/**
* The Constructor class represents a constructor of a class. It also allows
@@ -81,20 +81,21 @@ import java.util.Arrays;
public final class Constructor<T>
extends AccessibleObject
implements GenericDeclaration, Member
-{
- private Class<T> clazz;
- private int slot;
-
+{
private static final int CONSTRUCTOR_MODIFIERS
= Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC;
+ private MethodSignatureParser p;
+
+ VMConstructor cons;
+
/**
- * This class is uninstantiable except from native code.
+ * This class is uninstantiable outside this package.
*/
- private Constructor(Class declaringClass,int slot)
+ Constructor(VMConstructor cons)
{
- this.clazz = declaringClass;
- this.slot = slot;
+ this.cons = cons;
+ cons.cons = this;
}
private Constructor()
@@ -107,7 +108,10 @@ public final class Constructor<T>
*/
public Class<T> getDeclaringClass()
{
- return clazz;
+ // Inescapable as the VM layer is 1.4 based.
+ @SuppressWarnings("unchecked")
+ Class<T> declClass = (Class<T>) cons.getDeclaringClass();
+ return declClass;
}
/**
@@ -117,17 +121,10 @@ public final class Constructor<T>
*/
public String getName()
{
- return getDeclaringClass().getName();
+ return cons.getDeclaringClass().getName();
}
/**
- * Return the raw modifiers for this constructor. In particular
- * this will include the synthetic and varargs bits.
- * @return the constructor's modifiers
- */
- private native int getModifiersInternal();
-
- /**
* Gets the modifiers this constructor uses. Use the <code>Modifier</code>
* class to interpret the values. A constructor can only have a subset of the
* following modifiers: public, private, protected.
@@ -137,7 +134,7 @@ public final class Constructor<T>
*/
public int getModifiers()
{
- return getModifiersInternal() & CONSTRUCTOR_MODIFIERS;
+ return cons.getModifiersInternal() & CONSTRUCTOR_MODIFIERS;
}
/**
@@ -148,7 +145,7 @@ public final class Constructor<T>
*/
public boolean isSynthetic()
{
- return (getModifiersInternal() & Modifier.SYNTHETIC) != 0;
+ return (cons.getModifiersInternal() & Modifier.SYNTHETIC) != 0;
}
/**
@@ -158,7 +155,7 @@ public final class Constructor<T>
*/
public boolean isVarArgs()
{
- return (getModifiersInternal() & Modifier.VARARGS) != 0;
+ return (cons.getModifiersInternal() & Modifier.VARARGS) != 0;
}
/**
@@ -167,7 +164,10 @@ public final class Constructor<T>
*
* @return a list of the types of the constructor's parameters
*/
- public native Class<?>[] getParameterTypes();
+ public Class<?>[] getParameterTypes()
+ {
+ return (Class<?>[]) cons.getParameterTypes();
+ }
/**
* Get the exception types this constructor says it throws, in no particular
@@ -176,7 +176,10 @@ public final class Constructor<T>
*
* @return a list of the types in the constructor's throws clause
*/
- public native Class<?>[] getExceptionTypes();
+ public Class<?>[] getExceptionTypes()
+ {
+ return (Class<?>[]) cons.getExceptionTypes();
+ }
/**
* Compare two objects to see if they are semantically equivalent.
@@ -190,14 +193,7 @@ public final class Constructor<T>
*/
public boolean equals(Object o)
{
- if (!(o instanceof Constructor))
- return false;
- Constructor that = (Constructor)o;
- if (this.getDeclaringClass() != that.getDeclaringClass())
- return false;
- if (!Arrays.equals(this.getParameterTypes(), that.getParameterTypes()))
- return false;
- return true;
+ return cons.equals(o);
}
/**
@@ -208,7 +204,7 @@ public final class Constructor<T>
*/
public int hashCode()
{
- return getDeclaringClass().getName().hashCode();
+ return getName().hashCode();
}
/**
@@ -224,7 +220,7 @@ public final class Constructor<T>
public String toString()
{
// 128 is a reasonable buffer initial size for constructor
- StringBuilder sb = new StringBuilder(128);
+ CPStringBuilder sb = new CPStringBuilder(128);
Modifier.toString(getModifiers(), sb).append(' ');
sb.append(getDeclaringClass().getName()).append('(');
Class[] c = getParameterTypes();
@@ -246,7 +242,7 @@ public final class Constructor<T>
}
static <X extends GenericDeclaration>
- void addTypeParameters(StringBuilder sb, TypeVariable<X>[] typeArgs)
+ void addTypeParameters(CPStringBuilder sb, TypeVariable<X>[] typeArgs)
{
if (typeArgs.length == 0)
return;
@@ -262,7 +258,7 @@ public final class Constructor<T>
public String toGenericString()
{
- StringBuilder sb = new StringBuilder(128);
+ CPStringBuilder sb = new CPStringBuilder(128);
Modifier.toString(getModifiers(), sb).append(' ');
addTypeParameters(sb, getTypeParameters());
sb.append(getDeclaringClass().getName()).append('(');
@@ -318,14 +314,12 @@ public final class Constructor<T>
throws InstantiationException, IllegalAccessException,
InvocationTargetException
{
- return constructNative(args, clazz, slot);
+ // Inescapable as the VM layer is 1.4 based.
+ @SuppressWarnings("unchecked")
+ T ins = (T) cons.construct(args);
+ return ins;
}
- private native T constructNative(Object[] args, Class declaringClass,
- int slot)
- throws InstantiationException, IllegalAccessException,
- InvocationTargetException;
-
/**
* Returns an array of <code>TypeVariable</code> objects that represents
* the type variables declared by this constructor, in declaration order.
@@ -340,20 +334,17 @@ public final class Constructor<T>
*/
public TypeVariable<Constructor<T>>[] getTypeParameters()
{
- String sig = getSignature();
- if (sig == null)
- return new TypeVariable[0];
- MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ if (p == null)
+ {
+ String sig = cons.getSignature();
+ if (sig == null)
+ return new TypeVariable[0];
+ p = new MethodSignatureParser(this, sig);
+ }
return p.getTypeParameters();
}
/**
- * Return the String in the Signature attribute for this constructor. If there
- * is no Signature attribute, return null.
- */
- private native String getSignature();
-
- /**
* Returns an array of <code>Type</code> objects that represents
* the exception types declared by this constructor, in declaration order.
* An array of size zero is returned if this constructor declares no
@@ -367,10 +358,13 @@ public final class Constructor<T>
*/
public Type[] getGenericExceptionTypes()
{
- String sig = getSignature();
- if (sig == null)
- return getExceptionTypes();
- MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ if (p == null)
+ {
+ String sig = cons.getSignature();
+ if (sig == null)
+ return getExceptionTypes();
+ p = new MethodSignatureParser(this, sig);
+ }
return p.getGenericExceptionTypes();
}
@@ -388,10 +382,13 @@ public final class Constructor<T>
*/
public Type[] getGenericParameterTypes()
{
- String sig = getSignature();
- if (sig == null)
- return getParameterTypes();
- MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ if (p == null)
+ {
+ String sig = cons.getSignature();
+ if (sig == null)
+ return getParameterTypes();
+ p = new MethodSignatureParser(this, sig);
+ }
return p.getGenericParameterTypes();
}
@@ -415,6 +412,42 @@ public final class Constructor<T>
* matches the declaration order of the parameters.
* @since 1.5
*/
- public native Annotation[][] getParameterAnnotations();
+ public Annotation[][] getParameterAnnotations()
+ {
+ return cons.getParameterAnnotations();
+ }
+
+ /**
+ * Returns the element's annotation for the specified annotation type,
+ * or <code>null</code> if no such annotation exists.
+ *
+ * @param annotationClass the type of annotation to look for.
+ * @return this element's annotation for the specified type, or
+ * <code>null</code> if no such annotation exists.
+ * @throws NullPointerException if the annotation class is <code>null</code>.
+ */
+ public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
+ {
+ // Inescapable as the VM layer is 1.4 based.
+ @SuppressWarnings("unchecked")
+ T ann = (T) cons.getAnnotation(annotationClass);
+ return ann;
+ }
+
+ /**
+ * Returns all annotations directly defined by the element. If there are
+ * no annotations directly associated with the element, then a zero-length
+ * array will be returned. The returned array may be modified by the client
+ * code, but this will have no effect on the annotation content of this
+ * class, and hence no effect on the return value of this method for
+ * future callers.
+ *
+ * @return the annotations directly defined by the element.
+ * @since 1.5
+ */
+ public Annotation[] getDeclaredAnnotations()
+ {
+ return cons.getDeclaredAnnotations();
+ }
}
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Field.java b/libjava/classpath/java/lang/reflect/Field.java
index 5db1fa3..b9d9288 100644
--- a/libjava/classpath/vm/reference/java/lang/reflect/Field.java
+++ b/libjava/classpath/java/lang/reflect/Field.java
@@ -1,5 +1,5 @@
/* java.lang.reflect.Field - reflection of Java fields
- Copyright (C) 1998, 2001, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2005, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,9 +39,12 @@ exception statement from your version. */
package java.lang.reflect;
import gnu.java.lang.ClassHelper;
+import gnu.java.lang.CPStringBuilder;
import gnu.java.lang.reflect.FieldSignatureParser;
+import java.lang.annotation.Annotation;
+
/**
* The Field class represents a member variable of a class. It also allows
* dynamic access to a member, via reflection. This works for both
@@ -78,23 +81,22 @@ import gnu.java.lang.reflect.FieldSignatureParser;
public final class Field
extends AccessibleObject implements Member
{
- private Class declaringClass;
- private String name;
- private int slot;
-
- private static final int FIELD_MODIFIERS
+ static final int FIELD_MODIFIERS
= Modifier.FINAL | Modifier.PRIVATE | Modifier.PROTECTED
| Modifier.PUBLIC | Modifier.STATIC | Modifier.TRANSIENT
| Modifier.VOLATILE;
+ private FieldSignatureParser p;
+
+ VMField f;
+
/**
- * This class is uninstantiable except natively.
+ * This class is uninstantiable outside the package.
*/
- private Field(Class declaringClass, String name, int slot)
+ Field(VMField f)
{
- this.declaringClass = declaringClass;
- this.name = name;
- this.slot = slot;
+ this.f = f;
+ f.f = this;
}
/**
@@ -104,7 +106,7 @@ extends AccessibleObject implements Member
*/
public Class<?> getDeclaringClass()
{
- return declaringClass;
+ return (Class<?>) f.getDeclaringClass();
}
/**
@@ -113,16 +115,10 @@ extends AccessibleObject implements Member
*/
public String getName()
{
- return name;
+ return f.getName();
}
/**
- * Return the raw modifiers for this field.
- * @return the field's modifiers
- */
- private native int getModifiersInternal();
-
- /**
* Gets the modifiers this field uses. Use the <code>Modifier</code>
* class to interpret the values. A field can only have a subset of the
* following modifiers: public, private, protected, static, final,
@@ -133,7 +129,7 @@ extends AccessibleObject implements Member
*/
public int getModifiers()
{
- return getModifiersInternal() & FIELD_MODIFIERS;
+ return f.getModifiersInternal() & FIELD_MODIFIERS;
}
/**
@@ -142,7 +138,7 @@ extends AccessibleObject implements Member
*/
public boolean isSynthetic()
{
- return (getModifiersInternal() & Modifier.SYNTHETIC) != 0;
+ return (f.getModifiersInternal() & Modifier.SYNTHETIC) != 0;
}
/**
@@ -152,14 +148,17 @@ extends AccessibleObject implements Member
*/
public boolean isEnumConstant()
{
- return (getModifiersInternal() & Modifier.ENUM) != 0;
+ return (f.getModifiersInternal() & Modifier.ENUM) != 0;
}
/**
* Gets the type of this field.
* @return the type of this field
*/
- public native Class<?> getType();
+ public Class<?> getType()
+ {
+ return f.getType();
+ }
/**
* Compare two objects to see if they are semantically equivalent.
@@ -172,16 +171,7 @@ extends AccessibleObject implements Member
*/
public boolean equals(Object o)
{
- if (!(o instanceof Field))
- return false;
- Field that = (Field)o;
- if (this.getDeclaringClass() != that.getDeclaringClass())
- return false;
- if (!this.getName().equals(that.getName()))
- return false;
- if (this.getType() != that.getType())
- return false;
- return true;
+ return f.equals(o);
}
/**
@@ -192,7 +182,7 @@ extends AccessibleObject implements Member
*/
public int hashCode()
{
- return getDeclaringClass().getName().hashCode() ^ getName().hashCode();
+ return f.getDeclaringClass().getName().hashCode() ^ f.getName().hashCode();
}
/**
@@ -206,7 +196,7 @@ extends AccessibleObject implements Member
public String toString()
{
// 64 is a reasonable buffer initial size for field
- StringBuilder sb = new StringBuilder(64);
+ CPStringBuilder sb = new CPStringBuilder(64);
Modifier.toString(getModifiers(), sb).append(' ');
sb.append(ClassHelper.getUserName(getType())).append(' ');
sb.append(getDeclaringClass().getName()).append('.');
@@ -216,7 +206,7 @@ extends AccessibleObject implements Member
public String toGenericString()
{
- StringBuilder sb = new StringBuilder(64);
+ CPStringBuilder sb = new CPStringBuilder(64);
Modifier.toString(getModifiers(), sb).append(' ');
sb.append(getGenericType()).append(' ');
sb.append(getDeclaringClass().getName()).append('.');
@@ -264,8 +254,11 @@ extends AccessibleObject implements Member
* @see #getFloat(Object)
* @see #getDouble(Object)
*/
- public native Object get(Object o)
- throws IllegalAccessException;
+ public Object get(Object o)
+ throws IllegalAccessException
+ {
+ return f.get(o);
+ }
/**
* Get the value of this boolean Field. If the field is static,
@@ -284,8 +277,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #get(Object)
*/
- public native boolean getBoolean(Object o)
- throws IllegalAccessException;
+ public boolean getBoolean(Object o)
+ throws IllegalAccessException
+ {
+ return f.getBoolean(o);
+ }
/**
* Get the value of this byte Field. If the field is static,
@@ -304,8 +300,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #get(Object)
*/
- public native byte getByte(Object o)
- throws IllegalAccessException;
+ public byte getByte(Object o)
+ throws IllegalAccessException
+ {
+ return f.getByte(o);
+ }
/**
* Get the value of this Field as a char. If the field is static,
@@ -322,8 +321,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #get(Object)
*/
- public native char getChar(Object o)
- throws IllegalAccessException;
+ public char getChar(Object o)
+ throws IllegalAccessException
+ {
+ return f.getChar(o);
+ }
/**
* Get the value of this Field as a short. If the field is static,
@@ -342,8 +344,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #get(Object)
*/
- public native short getShort(Object o)
- throws IllegalAccessException;
+ public short getShort(Object o)
+ throws IllegalAccessException
+ {
+ return f.getShort(o);
+ }
/**
* Get the value of this Field as an int. If the field is static,
@@ -362,8 +367,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #get(Object)
*/
- public native int getInt(Object o)
- throws IllegalAccessException;
+ public int getInt(Object o)
+ throws IllegalAccessException
+ {
+ return f.getInt(o);
+ }
/**
* Get the value of this Field as a long. If the field is static,
@@ -382,8 +390,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #get(Object)
*/
- public native long getLong(Object o)
- throws IllegalAccessException;
+ public long getLong(Object o)
+ throws IllegalAccessException
+ {
+ return f.getLong(o);
+ }
/**
* Get the value of this Field as a float. If the field is static,
@@ -402,8 +413,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #get(Object)
*/
- public native float getFloat(Object o)
- throws IllegalAccessException;
+ public float getFloat(Object o)
+ throws IllegalAccessException
+ {
+ return f.getFloat(o);
+ }
/**
* Get the value of this Field as a double. If the field is static,
@@ -423,8 +437,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #get(Object)
*/
- public native double getDouble(Object o)
- throws IllegalAccessException;
+ public double getDouble(Object o)
+ throws IllegalAccessException
+ {
+ return f.getDouble(o);
+ }
/**
* Set the value of this Field. If it is a primitive field, the value
@@ -471,8 +488,11 @@ extends AccessibleObject implements Member
* @see #setFloat(Object, float)
* @see #setDouble(Object, double)
*/
- public native void set(Object o, Object value)
- throws IllegalAccessException;
+ public void set(Object o, Object value)
+ throws IllegalAccessException
+ {
+ f.set(o, value);
+ }
/**
* Set this boolean Field. If the field is static, <code>o</code> will be
@@ -491,8 +511,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #set(Object, Object)
*/
- public native void setBoolean(Object o, boolean value)
- throws IllegalAccessException;
+ public void setBoolean(Object o, boolean value)
+ throws IllegalAccessException
+ {
+ f.setBoolean(o, value);
+ }
/**
* Set this byte Field. If the field is static, <code>o</code> will be
@@ -511,8 +534,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #set(Object, Object)
*/
- public native void setByte(Object o, byte value)
- throws IllegalAccessException;
+ public void setByte(Object o, byte value)
+ throws IllegalAccessException
+ {
+ f.setByte(o, value);
+ }
/**
* Set this char Field. If the field is static, <code>o</code> will be
@@ -531,8 +557,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #set(Object, Object)
*/
- public native void setChar(Object o, char value)
- throws IllegalAccessException;
+ public void setChar(Object o, char value)
+ throws IllegalAccessException
+ {
+ f.setChar(o, value);
+ }
/**
* Set this short Field. If the field is static, <code>o</code> will be
@@ -551,8 +580,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #set(Object, Object)
*/
- public native void setShort(Object o, short value)
- throws IllegalAccessException;
+ public void setShort(Object o, short value)
+ throws IllegalAccessException
+ {
+ f.setShort(o, value);
+ }
/**
* Set this int Field. If the field is static, <code>o</code> will be
@@ -571,8 +603,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #set(Object, Object)
*/
- public native void setInt(Object o, int value)
- throws IllegalAccessException;
+ public void setInt(Object o, int value)
+ throws IllegalAccessException
+ {
+ f.setInt(o, value);
+ }
/**
* Set this long Field. If the field is static, <code>o</code> will be
@@ -591,8 +626,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #set(Object, Object)
*/
- public native void setLong(Object o, long value)
- throws IllegalAccessException;
+ public void setLong(Object o, long value)
+ throws IllegalAccessException
+ {
+ f.setLong(o, value);
+ }
/**
* Set this float Field. If the field is static, <code>o</code> will be
@@ -611,8 +649,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #set(Object, Object)
*/
- public native void setFloat(Object o, float value)
- throws IllegalAccessException;
+ public void setFloat(Object o, float value)
+ throws IllegalAccessException
+ {
+ f.setFloat(o, value);
+ }
/**
* Set this double Field. If the field is static, <code>o</code> will be
@@ -631,8 +672,11 @@ extends AccessibleObject implements Member
* class initialization, which then failed
* @see #set(Object, Object)
*/
- public native void setDouble(Object o, double value)
- throws IllegalAccessException;
+ public void setDouble(Object o, double value)
+ throws IllegalAccessException
+ {
+ f.setDouble(o, value);
+ }
/**
* Return the generic type of the field. If the field type is not a generic
@@ -645,17 +689,47 @@ extends AccessibleObject implements Member
*/
public Type getGenericType()
{
- String signature = getSignature();
- if (signature == null)
- return getType();
- FieldSignatureParser p = new FieldSignatureParser(getDeclaringClass(),
- signature);
+ if (p == null)
+ {
+ String signature = f.getSignature();
+ if (signature == null)
+ return getType();
+ p = new FieldSignatureParser(getDeclaringClass(),
+ signature);
+ }
return p.getFieldType();
}
/**
- * Return the String in the Signature attribute for this field. If there
- * is no Signature attribute, return null.
+ * Returns the element's annotation for the specified annotation type,
+ * or <code>null</code> if no such annotation exists.
+ *
+ * @param annotationClass the type of annotation to look for.
+ * @return this element's annotation for the specified type, or
+ * <code>null</code> if no such annotation exists.
+ * @throws NullPointerException if the annotation class is <code>null</code>.
+ */
+ public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
+ {
+ // Inescapable as the VM layer is 1.4 based. T will erase to Annotation anyway.
+ @SuppressWarnings("unchecked") T ann = (T) f.getAnnotation(annotationClass);
+ return ann;
+ }
+
+ /**
+ * Returns all annotations directly defined by the element. If there are
+ * no annotations directly associated with the element, then a zero-length
+ * array will be returned. The returned array may be modified by the client
+ * code, but this will have no effect on the annotation content of this
+ * class, and hence no effect on the return value of this method for
+ * future callers.
+ *
+ * @return the annotations directly defined by the element.
+ * @since 1.5
*/
- private native String getSignature();
+ public Annotation[] getDeclaredAnnotations()
+ {
+ return f.getDeclaredAnnotations();
+ }
+
}
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/Method.java b/libjava/classpath/java/lang/reflect/Method.java
index d797d4f..0a532dd 100644
--- a/libjava/classpath/vm/reference/java/lang/reflect/Method.java
+++ b/libjava/classpath/java/lang/reflect/Method.java
@@ -1,5 +1,5 @@
/* java.lang.reflect.Method - reflection of Java methods
- Copyright (C) 1998, 2001, 2002, 2005, 2007 Free Software Foundation, Inc.
+ Copyright (C) 1998, 2001, 2002, 2005, 2007, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -39,11 +39,11 @@ exception statement from your version. */
package java.lang.reflect;
import gnu.java.lang.ClassHelper;
+import gnu.java.lang.CPStringBuilder;
import gnu.java.lang.reflect.MethodSignatureParser;
import java.lang.annotation.Annotation;
-import java.util.Arrays;
/**
* The Method class represents a member method of a class. It also allows
@@ -81,23 +81,22 @@ import java.util.Arrays;
public final class Method
extends AccessibleObject implements Member, GenericDeclaration
{
- Class declaringClass;
- String name;
- int slot;
-
private static final int METHOD_MODIFIERS
= Modifier.ABSTRACT | Modifier.FINAL | Modifier.NATIVE
| Modifier.PRIVATE | Modifier.PROTECTED | Modifier.PUBLIC
| Modifier.STATIC | Modifier.STRICT | Modifier.SYNCHRONIZED;
+ private MethodSignatureParser p;
+
+ VMMethod m;
+
/**
- * This class is uninstantiable.
+ * This class is uninstantiable outside this package.
*/
- private Method(Class declaringClass, String name, int slot)
+ Method(VMMethod m)
{
- this.declaringClass = declaringClass;
- this.name = name;
- this.slot = slot;
+ this.m = m;
+ m.m = this;
}
/**
@@ -107,7 +106,7 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public Class<?> getDeclaringClass()
{
- return declaringClass;
+ return (Class<?>) m.getDeclaringClass();
}
/**
@@ -116,16 +115,10 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public String getName()
{
- return name;
+ return m.getName();
}
/**
- * Return the raw modifiers for this method.
- * @return the method's modifiers
- */
- private native int getModifiersInternal();
-
- /**
* Gets the modifiers this method uses. Use the <code>Modifier</code>
* class to interpret the values. A method can only have a subset of the
* following modifiers: public, private, protected, abstract, static,
@@ -136,7 +129,7 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public int getModifiers()
{
- return getModifiersInternal() & METHOD_MODIFIERS;
+ return m.getModifiersInternal() & METHOD_MODIFIERS;
}
/**
@@ -147,7 +140,7 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public boolean isBridge()
{
- return (getModifiersInternal() & Modifier.BRIDGE) != 0;
+ return (m.getModifiersInternal() & Modifier.BRIDGE) != 0;
}
/**
@@ -156,7 +149,7 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public boolean isSynthetic()
{
- return (getModifiersInternal() & Modifier.SYNTHETIC) != 0;
+ return (m.getModifiersInternal() & Modifier.SYNTHETIC) != 0;
}
/**
@@ -166,14 +159,17 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public boolean isVarArgs()
{
- return (getModifiersInternal() & Modifier.VARARGS) != 0;
+ return (m.getModifiersInternal() & Modifier.VARARGS) != 0;
}
/**
* Gets the return type of this method.
* @return the type of this method
*/
- public native Class<?> getReturnType();
+ public Class<?> getReturnType()
+ {
+ return (Class<?>) m.getReturnType();
+ }
/**
* Get the parameter list for this method, in declaration order. If the
@@ -181,7 +177,10 @@ extends AccessibleObject implements Member, GenericDeclaration
*
* @return a list of the types of the method's parameters
*/
- public native Class<?>[] getParameterTypes();
+ public Class<?>[] getParameterTypes()
+ {
+ return (Class<?>[]) m.getParameterTypes();
+ }
/**
* Get the exception types this method says it throws, in no particular
@@ -190,7 +189,10 @@ extends AccessibleObject implements Member, GenericDeclaration
*
* @return a list of the types in the method's throws clause
*/
- public native Class<?>[] getExceptionTypes();
+ public Class<?>[] getExceptionTypes()
+ {
+ return (Class<?>[]) m.getExceptionTypes();
+ }
/**
* Compare two objects to see if they are semantically equivalent.
@@ -202,38 +204,7 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public boolean equals(Object o)
{
- // Implementation note:
- // The following is a correct but possibly slow implementation.
- //
- // This class has a private field 'slot' that could be used by
- // the VM implementation to "link" a particular method to a Class.
- // In that case equals could be simply implemented as:
- //
- // if (o instanceof Method)
- // {
- // Method m = (Method)o;
- // return m.declaringClass == this.declaringClass
- // && m.slot == this.slot;
- // }
- // return false;
- //
- // If a VM uses the Method class as their native/internal representation
- // then just using the following would be optimal:
- //
- // return this == o;
- //
- if (!(o instanceof Method))
- return false;
- Method that = (Method)o;
- if (this.getDeclaringClass() != that.getDeclaringClass())
- return false;
- if (!this.getName().equals(that.getName()))
- return false;
- if (this.getReturnType() != that.getReturnType())
- return false;
- if (!Arrays.equals(this.getParameterTypes(), that.getParameterTypes()))
- return false;
- return true;
+ return m.equals(o);
}
/**
@@ -244,7 +215,7 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public int hashCode()
{
- return getDeclaringClass().getName().hashCode() ^ getName().hashCode();
+ return m.getDeclaringClass().getName().hashCode() ^ m.getName().hashCode();
}
/**
@@ -259,7 +230,7 @@ extends AccessibleObject implements Member, GenericDeclaration
public String toString()
{
// 128 is a reasonable buffer initial size for constructor
- StringBuilder sb = new StringBuilder(128);
+ CPStringBuilder sb = new CPStringBuilder(128);
Modifier.toString(getModifiers(), sb).append(' ');
sb.append(ClassHelper.getUserName(getReturnType())).append(' ');
sb.append(getDeclaringClass().getName()).append('.');
@@ -285,7 +256,7 @@ extends AccessibleObject implements Member, GenericDeclaration
public String toGenericString()
{
// 128 is a reasonable buffer initial size for constructor
- StringBuilder sb = new StringBuilder(128);
+ CPStringBuilder sb = new CPStringBuilder(128);
Modifier.toString(getModifiers(), sb).append(' ');
Constructor.addTypeParameters(sb, getTypeParameters());
sb.append(getGenericReturnType()).append(' ');
@@ -353,17 +324,9 @@ extends AccessibleObject implements Member, GenericDeclaration
public Object invoke(Object o, Object... args)
throws IllegalAccessException, InvocationTargetException
{
- return invokeNative(o, args, declaringClass, slot);
+ return m.invoke(o, args);
}
- /*
- * NATIVE HELPERS
- */
-
- private native Object invokeNative(Object o, Object[] args,
- Class declaringClass, int slot)
- throws IllegalAccessException, InvocationTargetException;
-
/**
* Returns an array of <code>TypeVariable</code> objects that represents
* the type variables declared by this constructor, in declaration order.
@@ -378,20 +341,17 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public TypeVariable<Method>[] getTypeParameters()
{
- String sig = getSignature();
- if (sig == null)
- return new TypeVariable[0];
- MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ if (p == null)
+ {
+ String sig = m.getSignature();
+ if (sig == null)
+ return (TypeVariable<Method>[]) new TypeVariable[0];
+ p = new MethodSignatureParser(this, sig);
+ }
return p.getTypeParameters();
}
/**
- * Return the String in the Signature attribute for this method. If there
- * is no Signature attribute, return null.
- */
- private native String getSignature();
-
- /**
* Returns an array of <code>Type</code> objects that represents
* the exception types declared by this method, in declaration order.
* An array of size zero is returned if this method declares no
@@ -405,10 +365,13 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public Type[] getGenericExceptionTypes()
{
- String sig = getSignature();
- if (sig == null)
- return getExceptionTypes();
- MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ if (p == null)
+ {
+ String sig = m.getSignature();
+ if (sig == null)
+ return getExceptionTypes();
+ p = new MethodSignatureParser(this, sig);
+ }
return p.getGenericExceptionTypes();
}
@@ -426,10 +389,13 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public Type[] getGenericParameterTypes()
{
- String sig = getSignature();
- if (sig == null)
- return getParameterTypes();
- MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ if (p == null)
+ {
+ String sig = m.getSignature();
+ if (sig == null)
+ return getParameterTypes();
+ p = new MethodSignatureParser(this, sig);
+ }
return p.getGenericParameterTypes();
}
@@ -444,10 +410,13 @@ extends AccessibleObject implements Member, GenericDeclaration
*/
public Type getGenericReturnType()
{
- String sig = getSignature();
- if (sig == null)
- return getReturnType();
- MethodSignatureParser p = new MethodSignatureParser(this, sig);
+ if (p == null)
+ {
+ String sig = m.getSignature();
+ if (sig == null)
+ return getReturnType();
+ p = new MethodSignatureParser(this, sig);
+ }
return p.getGenericReturnType();
}
@@ -462,7 +431,10 @@ extends AccessibleObject implements Member, GenericDeclaration
*
* @since 1.5
*/
- public native Object getDefaultValue();
+ public Object getDefaultValue()
+ {
+ return m.getDefaultValue();
+ }
/**
* <p>
@@ -484,6 +456,42 @@ extends AccessibleObject implements Member, GenericDeclaration
* matches the declaration order of the parameters.
* @since 1.5
*/
- public native Annotation[][] getParameterAnnotations();
+ public Annotation[][] getParameterAnnotations()
+ {
+ return m.getParameterAnnotations();
+ }
+
+ /**
+ * Returns the element's annotation for the specified annotation type,
+ * or <code>null</code> if no such annotation exists.
+ *
+ * @param annotationClass the type of annotation to look for.
+ * @return this element's annotation for the specified type, or
+ * <code>null</code> if no such annotation exists.
+ * @throws NullPointerException if the annotation class is <code>null</code>.
+ */
+ public <T extends Annotation> T getAnnotation(Class<T> annotationClass)
+ {
+ // Inescapable as the VM layer is 1.4 based. T will erase to Annotation anyway.
+ @SuppressWarnings("unchecked")
+ T ann = (T) m.getAnnotation(annotationClass);
+ return ann;
+ }
+
+ /**
+ * Returns all annotations directly defined by the element. If there are
+ * no annotations directly associated with the element, then a zero-length
+ * array will be returned. The returned array may be modified by the client
+ * code, but this will have no effect on the annotation content of this
+ * class, and hence no effect on the return value of this method for
+ * future callers.
+ *
+ * @return the annotations directly defined by the element.
+ * @since 1.5
+ */
+ public Annotation[] getDeclaredAnnotations()
+ {
+ return m.getDeclaredAnnotations();
+ }
}
diff --git a/libjava/classpath/java/lang/reflect/Modifier.java b/libjava/classpath/java/lang/reflect/Modifier.java
index 45fc4e3..45d9b51 100644
--- a/libjava/classpath/java/lang/reflect/Modifier.java
+++ b/libjava/classpath/java/lang/reflect/Modifier.java
@@ -1,5 +1,5 @@
/* java.lang.reflect.Modifier
- Copyright (C) 1998, 1999, 2001, 2002, 2005 Free Software Foundation, Inc.
+ Copyright (C) 1998, 1999, 2001, 2002, 2005, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.lang.reflect;
+import gnu.java.lang.CPStringBuilder;
+
/**
* Modifier is a helper class with static methods to determine whether an
* int returned from getModifiers() represents static, public, protected,
@@ -308,28 +310,16 @@ public class Modifier
*/
public static String toString(int mod)
{
- return toString(mod, new StringBuilder()).toString();
- }
-
- /**
- * Package helper method that can take a StringBuilder.
- * @param mod the modifier
- * @param r the StringBuilder to which the String representation is appended
- * @return r, with information appended
- */
- static StringBuilder toString(int mod, StringBuilder r)
- {
- r.append(toString(mod, new StringBuffer()));
- return r;
+ return toString(mod, new CPStringBuilder()).toString();
}
/**
- * Package helper method that can take a StringBuffer.
+ * Package helper method that can take a CPStringBuilder.
* @param mod the modifier
- * @param r the StringBuffer to which the String representation is appended
+ * @param r the CPStringBuilder to which the String representation is appended
* @return r, with information appended
*/
- static StringBuffer toString(int mod, StringBuffer r)
+ static CPStringBuilder toString(int mod, CPStringBuilder r)
{
if (isPublic(mod))
r.append("public ");
diff --git a/libjava/classpath/java/lang/reflect/Proxy.java b/libjava/classpath/java/lang/reflect/Proxy.java
index 6c1e975..fb2004e 100644
--- a/libjava/classpath/java/lang/reflect/Proxy.java
+++ b/libjava/classpath/java/lang/reflect/Proxy.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.lang.reflect;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.lang.reflect.TypeSignature;
import java.io.Serializable;
@@ -1033,7 +1035,7 @@ public class Proxy implements Serializable
code_length += 9; // new, dup_x1, swap, invokespecial, athrow
}
int handler_pc = code_length - 1;
- StringBuilder signature = new StringBuilder("(");
+ CPStringBuilder signature = new CPStringBuilder("(");
for (int j = 0; j < paramtypes.length; j++)
signature.append(TypeSignature.getEncodingOfClass(paramtypes[j]));
signature.append(")").append(TypeSignature.getEncodingOfClass(ret_type));
@@ -1492,7 +1494,7 @@ public class Proxy implements Serializable
if (i == len)
return str;
- final StringBuilder sb = new StringBuilder(str);
+ final CPStringBuilder sb = new CPStringBuilder(str);
sb.setLength(i);
for ( ; i < len; i++)
{
diff --git a/libjava/classpath/java/math/BigDecimal.java b/libjava/classpath/java/math/BigDecimal.java
index 28c4d45..eceaf8c 100644
--- a/libjava/classpath/java/math/BigDecimal.java
+++ b/libjava/classpath/java/math/BigDecimal.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.math;
+import gnu.java.lang.CPStringBuilder;
+
public class BigDecimal extends Number implements Comparable<BigDecimal>
{
private BigInteger intVal;
@@ -451,7 +453,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal>
// val is a StringBuilder from which we'll create a BigInteger
// which will be the unscaled value for this BigDecimal
- StringBuilder val = new StringBuilder(point - start - 1);
+ CPStringBuilder val = new CPStringBuilder(point - start - 1);
if (dot != -1)
{
// If there was a decimal we must combine the two parts that
@@ -1070,7 +1072,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal>
boolean negative = (bigStr.charAt(0) == '-');
int point = bigStr.length() - scale - (negative ? 1 : 0);
- StringBuilder val = new StringBuilder();
+ CPStringBuilder val = new CPStringBuilder();
if (scale >= 0 && (point - 1) >= -6)
{
@@ -1137,7 +1139,7 @@ public class BigDecimal extends Number implements Comparable<BigDecimal>
// This is the adjusted exponent described above.
int adjExp = point - 1;
- StringBuilder val = new StringBuilder();
+ CPStringBuilder val = new CPStringBuilder();
if (scale >= 0 && adjExp >= -6)
{
@@ -1242,8 +1244,8 @@ public class BigDecimal extends Number implements Comparable<BigDecimal>
int point = bigStr.length() - scale - (negative ? 1 : 0);
- StringBuffer sb = new StringBuffer(bigStr.length() + 2
- + (point <= 0 ? (-point + 1) : 0));
+ CPStringBuilder sb = new CPStringBuilder(bigStr.length() + 2
+ + (point <= 0 ? (-point + 1) : 0));
if (point <= 0)
{
// We have to prepend zeros and a decimal point.
diff --git a/libjava/classpath/java/math/BigInteger.java b/libjava/classpath/java/math/BigInteger.java
index 3fb75ff..9d7abc7 100644
--- a/libjava/classpath/java/math/BigInteger.java
+++ b/libjava/classpath/java/math/BigInteger.java
@@ -38,12 +38,17 @@ exception statement from your version. */
package java.math;
+import gnu.classpath.Configuration;
+
+import gnu.java.lang.CPStringBuilder;
+import gnu.java.math.GMP;
import gnu.java.math.MPN;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.util.Random;
+import java.util.logging.Logger;
/**
* Written using on-line Java Platform 1.2 API Specification, as well
@@ -59,6 +64,8 @@ import java.util.Random;
*/
public class BigInteger extends Number implements Comparable<BigInteger>
{
+ private static final Logger log = Logger.getLogger(BigInteger.class.getName());
+
/** All integers are stored in 2's-complement form.
* If words == null, the ival is the value of this BigInteger.
* Otherwise, the first ival elements of words make the value
@@ -67,9 +74,10 @@ public class BigInteger extends Number implements Comparable<BigInteger>
private transient int[] words;
// Serialization fields.
+ // the first three, although not used in the code, are present for
+ // compatibility with older RI versions of this class. DO NOT REMOVE.
private int bitCount = -1;
private int bitLength = -1;
- private int firstNonzeroByteNum = -2;
private int lowestSetBit = -2;
private byte[] magnitude;
private int signum;
@@ -81,31 +89,52 @@ public class BigInteger extends Number implements Comparable<BigInteger>
private static final int minFixNum = -100;
private static final int maxFixNum = 1024;
private static final int numFixNum = maxFixNum-minFixNum+1;
- private static final BigInteger[] smallFixNums = new BigInteger[numFixNum];
+ private static final BigInteger[] smallFixNums;
+
+ /** The alter-ego GMP instance for this. */
+ private transient GMP mpz;
+
+ private static final boolean USING_NATIVE = Configuration.WANT_NATIVE_BIG_INTEGER
+ && initializeLibrary();
static
{
- for (int i = numFixNum; --i >= 0; )
- smallFixNums[i] = new BigInteger(i + minFixNum);
+ if (USING_NATIVE)
+ {
+ smallFixNums = null;
+ ZERO = valueOf(0L);
+ ONE = valueOf(1L);
+ TEN = valueOf(10L);
+ }
+ else
+ {
+ smallFixNums = new BigInteger[numFixNum];
+ for (int i = numFixNum; --i >= 0; )
+ smallFixNums[i] = new BigInteger(i + minFixNum);
+
+ ZERO = smallFixNums[-minFixNum];
+ ONE = smallFixNums[1 - minFixNum];
+ TEN = smallFixNums[10 - minFixNum];
+ }
}
/**
* The constant zero as a BigInteger.
* @since 1.2
*/
- public static final BigInteger ZERO = smallFixNums[0 - minFixNum];
+ public static final BigInteger ZERO;
/**
* The constant one as a BigInteger.
* @since 1.2
*/
- public static final BigInteger ONE = smallFixNums[1 - minFixNum];
+ public static final BigInteger ONE;
/**
* The constant ten as a BigInteger.
* @since 1.5
*/
- public static final BigInteger TEN = smallFixNums[10 - minFixNum];
+ public static final BigInteger TEN;
/* Rounding modes: */
private static final int FLOOR = 1;
@@ -130,19 +159,72 @@ public class BigInteger extends Number implements Comparable<BigInteger>
private BigInteger()
{
+ super();
+
+ if (USING_NATIVE)
+ mpz = new GMP();
}
/* Create a new (non-shared) BigInteger, and initialize to an int. */
private BigInteger(int value)
{
+ super();
+
ival = value;
}
- public BigInteger(String val, int radix)
+ public BigInteger(String s, int radix)
{
- BigInteger result = valueOf(val, radix);
- this.ival = result.ival;
- this.words = result.words;
+ this();
+
+ int len = s.length();
+ int i, digit;
+ boolean negative;
+ byte[] bytes;
+ char ch = s.charAt(0);
+ if (ch == '-')
+ {
+ negative = true;
+ i = 1;
+ bytes = new byte[len - 1];
+ }
+ else
+ {
+ negative = false;
+ i = 0;
+ bytes = new byte[len];
+ }
+ int byte_len = 0;
+ for ( ; i < len; i++)
+ {
+ ch = s.charAt(i);
+ digit = Character.digit(ch, radix);
+ if (digit < 0)
+ throw new NumberFormatException("Invalid character at position #" + i);
+ bytes[byte_len++] = (byte) digit;
+ }
+
+ if (USING_NATIVE)
+ {
+ bytes = null;
+ if (mpz.fromString(s, radix) != 0)
+ throw new NumberFormatException("String \"" + s
+ + "\" is NOT a valid number in base "
+ + radix);
+ }
+ else
+ {
+ BigInteger result;
+ // Testing (len < MPN.chars_per_word(radix)) would be more accurate,
+ // but slightly more expensive, for little practical gain.
+ if (len <= 15 && radix <= 16)
+ result = valueOf(Long.parseLong(s, radix));
+ else
+ result = valueOf(bytes, byte_len, negative, radix);
+
+ this.ival = result.ival;
+ this.words = result.words;
+ }
}
public BigInteger(String val)
@@ -153,17 +235,26 @@ public class BigInteger extends Number implements Comparable<BigInteger>
/* Create a new (non-shared) BigInteger, and initialize from a byte array. */
public BigInteger(byte[] val)
{
+ this();
+
if (val == null || val.length < 1)
throw new NumberFormatException();
- words = byteArrayToIntArray(val, val[0] < 0 ? -1 : 0);
- BigInteger result = make(words, words.length);
- this.ival = result.ival;
- this.words = result.words;
+ if (USING_NATIVE)
+ mpz.fromByteArray(val);
+ else
+ {
+ words = byteArrayToIntArray(val, val[0] < 0 ? -1 : 0);
+ BigInteger result = make(words, words.length);
+ this.ival = result.ival;
+ this.words = result.words;
+ }
}
public BigInteger(int signum, byte[] magnitude)
{
+ this();
+
if (magnitude == null || signum > 1 || signum < -1)
throw new NumberFormatException();
@@ -177,18 +268,25 @@ public class BigInteger extends Number implements Comparable<BigInteger>
return;
}
- // Magnitude is always positive, so don't ever pass a sign of -1.
- words = byteArrayToIntArray(magnitude, 0);
- BigInteger result = make(words, words.length);
- this.ival = result.ival;
- this.words = result.words;
+ if (USING_NATIVE)
+ mpz.fromSignedMagnitude(magnitude, signum == -1);
+ else
+ {
+ // Magnitude is always positive, so don't ever pass a sign of -1.
+ words = byteArrayToIntArray(magnitude, 0);
+ BigInteger result = make(words, words.length);
+ this.ival = result.ival;
+ this.words = result.words;
- if (signum < 0)
- setNegative();
+ if (signum < 0)
+ setNegative();
+ }
}
public BigInteger(int numBits, Random rnd)
{
+ this();
+
if (numBits < 0)
throw new IllegalArgumentException();
@@ -197,6 +295,22 @@ public class BigInteger extends Number implements Comparable<BigInteger>
private void init(int numBits, Random rnd)
{
+ if (USING_NATIVE)
+ {
+ int length = (numBits + 7) / 8;
+ byte[] magnitude = new byte[length];
+ rnd.nextBytes(magnitude);
+ int discardedBitCount = numBits % 8;
+ if (discardedBitCount != 0)
+ {
+ discardedBitCount = 8 - discardedBitCount;
+ magnitude[0] = (byte)((magnitude[0] & 0xFF) >>> discardedBitCount);
+ }
+ mpz.fromSignedMagnitude(magnitude, false);
+ magnitude = null;
+ return;
+ }
+
int highbits = numBits & 31;
// minimum number of bytes to store the above number of bits
int highBitByteCount = (highbits + 7) / 8;
@@ -235,20 +349,23 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger(int bitLength, int certainty, Random rnd)
{
- this(bitLength, rnd);
+ this();
- // Keep going until we find a probable prime.
- BigInteger result;
+ BigInteger result = new BigInteger();
while (true)
{
- // ...but first ensure that BI has bitLength bits
- result = setBit(bitLength - 1);
+ result.init(bitLength, rnd);
+ result = result.setBit(bitLength - 1);
+ if (result.isProbablePrime(certainty))
+ break;
+ }
+
+ if (USING_NATIVE)
+ mpz.fromBI(result.mpz);
+ else
+ {
this.ival = result.ival;
this.words = result.words;
- if (isProbablePrime(certainty))
- return;
-
- init(bitLength, rnd);
}
}
@@ -272,6 +389,13 @@ public class BigInteger extends Number implements Comparable<BigInteger>
/** Return a (possibly-shared) BigInteger with a given long value. */
public static BigInteger valueOf(long val)
{
+ if (USING_NATIVE)
+ {
+ BigInteger result = new BigInteger();
+ result.mpz.fromLong(val);
+ return result;
+ }
+
if (val >= minFixNum && val <= maxFixNum)
return smallFixNums[(int) val - minFixNum];
int i = (int) val;
@@ -284,6 +408,31 @@ public class BigInteger extends Number implements Comparable<BigInteger>
return result;
}
+ /**
+ * @return <code>true</code> if the GMP-based native implementation library
+ * was successfully loaded. Returns <code>false</code> otherwise.
+ */
+ private static boolean initializeLibrary()
+ {
+ boolean result;
+ try
+ {
+ System.loadLibrary("javamath");
+ GMP.natInitializeLibrary();
+ result = true;
+ }
+ catch (Throwable x)
+ {
+ result = false;
+ if (Configuration.DEBUG)
+ {
+ log.info("Unable to use native BigInteger: " + x);
+ log.info("Will use a pure Java implementation instead");
+ }
+ }
+ return result;
+ }
+
/** Make a canonicalized BigInteger from an array of words.
* The array may be reused (without copying). */
private static BigInteger make(int[] words, int len)
@@ -374,6 +523,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public int signum()
{
+ if (USING_NATIVE)
+ return mpz.compare(ZERO.mpz);
+
if (ival == 0 && words == null)
return 0;
int top = words == null ? ival : words[ival-1];
@@ -382,6 +534,12 @@ public class BigInteger extends Number implements Comparable<BigInteger>
private static int compareTo(BigInteger x, BigInteger y)
{
+ if (USING_NATIVE)
+ {
+ int dummy = y.signum; // force NPE check
+ return x.mpz.compare(y.mpz);
+ }
+
if (x.words == null && y.words == null)
return x.ival < y.ival ? -1 : x.ival > y.ival ? 1 : 0;
boolean x_negative = x.isNegative();
@@ -586,11 +744,27 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger add(BigInteger val)
{
+ if (USING_NATIVE)
+ {
+ int dummy = val.signum; // force NPE check
+ BigInteger result = new BigInteger();
+ mpz.add(val.mpz, result.mpz);
+ return result;
+ }
+
return add(this, val, 1);
}
public BigInteger subtract(BigInteger val)
{
+ if (USING_NATIVE)
+ {
+ int dummy = val.signum; // force NPE check
+ BigInteger result = new BigInteger();
+ mpz.subtract(val.mpz, result.mpz);
+ return result;
+ }
+
return add(this, val, -1);
}
@@ -672,6 +846,14 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger multiply(BigInteger y)
{
+ if (USING_NATIVE)
+ {
+ int dummy = y.signum; // force NPE check
+ BigInteger result = new BigInteger();
+ mpz.multiply(y.mpz, result.mpz);
+ return result;
+ }
+
return times(this, y);
}
@@ -947,6 +1129,16 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger divide(BigInteger val)
{
+ if (USING_NATIVE)
+ {
+ if (val.compareTo(ZERO) == 0)
+ throw new ArithmeticException("divisor is zero");
+
+ BigInteger result = new BigInteger();
+ mpz.quotient(val.mpz, result.mpz);
+ return result;
+ }
+
if (val.isZero())
throw new ArithmeticException("divisor is zero");
@@ -957,6 +1149,16 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger remainder(BigInteger val)
{
+ if (USING_NATIVE)
+ {
+ if (val.compareTo(ZERO) == 0)
+ throw new ArithmeticException("divisor is zero");
+
+ BigInteger result = new BigInteger();
+ mpz.remainder(val.mpz, result.mpz);
+ return result;
+ }
+
if (val.isZero())
throw new ArithmeticException("divisor is zero");
@@ -967,6 +1169,17 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger[] divideAndRemainder(BigInteger val)
{
+ if (USING_NATIVE)
+ {
+ if (val.compareTo(ZERO) == 0)
+ throw new ArithmeticException("divisor is zero");
+
+ BigInteger q = new BigInteger();
+ BigInteger r = new BigInteger();
+ mpz.quotientAndRemainder(val.mpz, q.mpz, r.mpz);
+ return new BigInteger[] { q, r };
+ }
+
if (val.isZero())
throw new ArithmeticException("divisor is zero");
@@ -981,6 +1194,17 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger mod(BigInteger m)
{
+ if (USING_NATIVE)
+ {
+ int dummy = m.signum; // force NPE check
+ if (m.compareTo(ZERO) < 1)
+ throw new ArithmeticException("non-positive modulus");
+
+ BigInteger result = new BigInteger();
+ mpz.modulo(m.mpz, result.mpz);
+ return result;
+ }
+
if (m.isNegative() || m.isZero())
throw new ArithmeticException("non-positive modulus");
@@ -1000,6 +1224,14 @@ public class BigInteger extends Number implements Comparable<BigInteger>
return ONE;
throw new ArithmeticException("negative exponent");
}
+
+ if (USING_NATIVE)
+ {
+ BigInteger result = new BigInteger();
+ mpz.pow(exponent, result.mpz);
+ return result;
+ }
+
if (isZero())
return this;
int plen = words == null ? 1 : ival; // Length of pow2.
@@ -1097,6 +1329,17 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger modInverse(BigInteger y)
{
+ if (USING_NATIVE)
+ {
+ int dummy = y.signum; // force NPE check
+ if (mpz.compare(ZERO.mpz) < 1)
+ throw new ArithmeticException("non-positive modulo");
+
+ BigInteger result = new BigInteger();
+ mpz.modInverse(y.mpz, result.mpz);
+ return result;
+ }
+
if (y.isNegative() || y.isZero())
throw new ArithmeticException("non-positive modulo");
@@ -1175,6 +1418,17 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger modPow(BigInteger exponent, BigInteger m)
{
+ if (USING_NATIVE)
+ {
+ int dummy = exponent.signum; // force NPE check
+ if (m.mpz.compare(ZERO.mpz) < 1)
+ throw new ArithmeticException("non-positive modulo");
+
+ BigInteger result = new BigInteger();
+ mpz.modPow(exponent.mpz, m.mpz, result.mpz);
+ return result;
+ }
+
if (m.isNegative() || m.isZero())
throw new ArithmeticException("non-positive modulo");
@@ -1228,6 +1482,14 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger gcd(BigInteger y)
{
+ if (USING_NATIVE)
+ {
+ int dummy = y.signum; // force NPE check
+ BigInteger result = new BigInteger();
+ mpz.gcd(y.mpz, result.mpz);
+ return result;
+ }
+
int xval = ival;
int yval = y.ival;
if (words == null)
@@ -1281,6 +1543,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
if (certainty < 1)
return true;
+ if (USING_NATIVE)
+ return mpz.testPrimality(certainty) != 0;
+
/** We'll use the Rabin-Miller algorithm for doing a probabilistic
* primality test. It is fast, easy and has faster decreasing odds of a
* composite passing than with other tests. This means that this
@@ -1460,15 +1725,41 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger shiftLeft(int n)
{
+ if (n == 0)
+ return this;
+
+ if (USING_NATIVE)
+ {
+ BigInteger result = new BigInteger();
+ if (n < 0)
+ mpz.shiftRight(-n, result.mpz);
+ else
+ mpz.shiftLeft(n, result.mpz);
+ return result;
+ }
+
return shift(this, n);
}
public BigInteger shiftRight(int n)
{
+ if (n == 0)
+ return this;
+
+ if (USING_NATIVE)
+ {
+ BigInteger result = new BigInteger();
+ if (n < 0)
+ mpz.shiftLeft(-n, result.mpz);
+ else
+ mpz.shiftRight(n, result.mpz);
+ return result;
+ }
+
return shift(this, -n);
}
- private void format(int radix, StringBuffer buffer)
+ private void format(int radix, CPStringBuilder buffer)
{
if (words == null)
buffer.append(Integer.toString(ival, radix));
@@ -1537,18 +1828,27 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public String toString(int radix)
{
+ if (USING_NATIVE)
+ return mpz.toString(radix);
+
if (words == null)
return Integer.toString(ival, radix);
if (ival <= 2)
return Long.toString(longValue(), radix);
int buf_size = ival * (MPN.chars_per_word(radix) + 1);
- StringBuffer buffer = new StringBuffer(buf_size);
+ CPStringBuilder buffer = new CPStringBuilder(buf_size);
format(radix, buffer);
return buffer.toString();
}
public int intValue()
{
+ if (USING_NATIVE)
+ {
+ int result = mpz.absIntValue();
+ return mpz.compare(ZERO.mpz) < 0 ? - result : result;
+ }
+
if (words == null)
return ival;
return words[0];
@@ -1556,6 +1856,15 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public long longValue()
{
+ if (USING_NATIVE)
+ {
+ long result;
+ result = (abs().shiftRight(32)).mpz.absIntValue();
+ result <<= 32;
+ result |= mpz.absIntValue() & 0xFFFFFFFFL;
+ return this.compareTo(ZERO) < 0 ? - result : result;
+ }
+
if (words == null)
return ival;
if (ival == 1)
@@ -1566,12 +1875,25 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public int hashCode()
{
// FIXME: May not match hashcode of JDK.
+ if (USING_NATIVE)
+ {
+ // TODO: profile to decide whether to make it native
+ byte[] bytes = this.toByteArray();
+ int result = 0;
+ for (int i = 0; i < bytes.length; i++)
+ result ^= (bytes[i] & 0xFF) << (8 * (i % 4));
+ return result;
+ }
+
return words == null ? ival : (words[0] + words[ival - 1]);
}
/* Assumes x and y are both canonicalized. */
private static boolean equals(BigInteger x, BigInteger y)
{
+ if (USING_NATIVE)
+ return x.mpz.compare(y.mpz) == 0;
+
if (x.words == null && y.words == null)
return x.ival == y.ival;
if (x.words == null || y.words == null || x.ival != y.ival)
@@ -1592,43 +1914,6 @@ public class BigInteger extends Number implements Comparable<BigInteger>
return equals(this, (BigInteger) obj);
}
- private static BigInteger valueOf(String s, int radix)
- throws NumberFormatException
- {
- int len = s.length();
- // Testing (len < MPN.chars_per_word(radix)) would be more accurate,
- // but slightly more expensive, for little practical gain.
- if (len <= 15 && radix <= 16)
- return valueOf(Long.parseLong(s, radix));
-
- int i, digit;
- boolean negative;
- byte[] bytes;
- char ch = s.charAt(0);
- if (ch == '-')
- {
- negative = true;
- i = 1;
- bytes = new byte[len - 1];
- }
- else
- {
- negative = false;
- i = 0;
- bytes = new byte[len];
- }
- int byte_len = 0;
- for ( ; i < len; i++)
- {
- ch = s.charAt(i);
- digit = Character.digit(ch, radix);
- if (digit < 0)
- throw new NumberFormatException();
- bytes[byte_len++] = (byte) digit;
- }
- return valueOf(bytes, byte_len, negative, radix);
- }
-
private static BigInteger valueOf(byte[] digits, int byte_len,
boolean negative, int radix)
{
@@ -1646,6 +1931,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public double doubleValue()
{
+ if (USING_NATIVE)
+ return mpz.doubleValue();
+
if (words == null)
return (double) ival;
if (ival <= 2)
@@ -1827,6 +2115,13 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger abs()
{
+ if (USING_NATIVE)
+ {
+ BigInteger result = new BigInteger();
+ mpz.abs(result.mpz);
+ return result;
+ }
+
return abs(this);
}
@@ -1841,6 +2136,13 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public BigInteger negate()
{
+ if (USING_NATIVE)
+ {
+ BigInteger result = new BigInteger();
+ mpz.negate(result.mpz);
+ return result;
+ }
+
return neg(this);
}
@@ -1849,6 +2151,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
*/
public int bitLength()
{
+ if (USING_NATIVE)
+ return mpz.bitLength();
+
if (words == null)
return MPN.intLength(ival);
return MPN.intLength(words, ival);
@@ -1856,6 +2161,25 @@ public class BigInteger extends Number implements Comparable<BigInteger>
public byte[] toByteArray()
{
+ if (signum() == 0)
+ return new byte[1];
+
+ if (USING_NATIVE)
+ {
+ // the minimal number of bytes required to represent the MPI is function
+ // of (a) its bit-length, and (b) its sign. only when this MPI is both
+ // positive, and its bit-length is a multiple of 8 do we add one zero
+ // bit for its sign. we do this so if we construct a new MPI from the
+ // resulting byte array, we wouldn't mistake a positive number, whose
+ // bit-length is a multiple of 8, for a similar-length negative one.
+ int bits = bitLength();
+ if (bits % 8 == 0 || this.signum() == 1)
+ bits++;
+ byte[] bytes = new byte[(bits + 7) / 8];
+ mpz.toByteArray(bytes);
+ return bytes;
+ }
+
// Determine number of bytes needed. The method bitlength returns
// the size without the sign bit, so add one bit for that and then
// add 7 more to emulate the ceil function using integer math.
@@ -2112,6 +2436,14 @@ public class BigInteger extends Number implements Comparable<BigInteger>
/** Return the logical (bit-wise) "and" of two BigIntegers. */
public BigInteger and(BigInteger y)
{
+ if (USING_NATIVE)
+ {
+ int dummy = y.signum; // force NPE check
+ BigInteger result = new BigInteger();
+ mpz.and(y.mpz, result.mpz);
+ return result;
+ }
+
if (y.words == null)
return and(this, y.ival);
else if (words == null)
@@ -2135,23 +2467,54 @@ public class BigInteger extends Number implements Comparable<BigInteger>
/** Return the logical (bit-wise) "(inclusive) or" of two BigIntegers. */
public BigInteger or(BigInteger y)
{
+ if (USING_NATIVE)
+ {
+ int dummy = y.signum; // force NPE check
+ BigInteger result = new BigInteger();
+ mpz.or(y.mpz, result.mpz);
+ return result;
+ }
+
return bitOp(7, this, y);
}
/** Return the logical (bit-wise) "exclusive or" of two BigIntegers. */
public BigInteger xor(BigInteger y)
{
+ if (USING_NATIVE)
+ {
+ int dummy = y.signum; // force NPE check
+ BigInteger result = new BigInteger();
+ mpz.xor(y.mpz, result.mpz);
+ return result;
+ }
+
return bitOp(6, this, y);
}
/** Return the logical (bit-wise) negation of a BigInteger. */
public BigInteger not()
{
+ if (USING_NATIVE)
+ {
+ BigInteger result = new BigInteger();
+ mpz.not(result.mpz);
+ return result;
+ }
+
return bitOp(12, this, ZERO);
}
public BigInteger andNot(BigInteger val)
{
+ if (USING_NATIVE)
+ {
+ int dummy = val.signum; // force NPE check
+ BigInteger result = new BigInteger();
+ mpz.andNot(val.mpz, result.mpz);
+ return result;
+ }
+
return and(val.not());
}
@@ -2160,6 +2523,13 @@ public class BigInteger extends Number implements Comparable<BigInteger>
if (n < 0)
throw new ArithmeticException();
+ if (USING_NATIVE)
+ {
+ BigInteger result = new BigInteger();
+ mpz.setBit(n, false, result.mpz);
+ return result;
+ }
+
return and(ONE.shiftLeft(n).not());
}
@@ -2168,6 +2538,13 @@ public class BigInteger extends Number implements Comparable<BigInteger>
if (n < 0)
throw new ArithmeticException();
+ if (USING_NATIVE)
+ {
+ BigInteger result = new BigInteger();
+ mpz.setBit(n, true, result.mpz);
+ return result;
+ }
+
return or(ONE.shiftLeft(n));
}
@@ -2176,6 +2553,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
if (n < 0)
throw new ArithmeticException();
+ if (USING_NATIVE)
+ return mpz.testBit(n) != 0;
+
return !and(ONE.shiftLeft(n)).isZero();
}
@@ -2184,11 +2564,21 @@ public class BigInteger extends Number implements Comparable<BigInteger>
if (n < 0)
throw new ArithmeticException();
+ if (USING_NATIVE)
+ {
+ BigInteger result = new BigInteger();
+ mpz.flipBit(n, result.mpz);
+ return result;
+ }
+
return xor(ONE.shiftLeft(n));
}
public int getLowestSetBit()
{
+ if (USING_NATIVE)
+ return mpz.compare(ZERO.mpz) == 0 ? -1 : mpz.lowestSetBit();
+
if (isZero())
return -1;
@@ -2225,6 +2615,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
* If argument is negative, count zero bits instead. */
public int bitCount()
{
+ if (USING_NATIVE)
+ return mpz.bitCount();
+
int i, x_len;
int[] x_words = words;
if (x_words == null)
@@ -2243,19 +2636,30 @@ public class BigInteger extends Number implements Comparable<BigInteger>
private void readObject(ObjectInputStream s)
throws IOException, ClassNotFoundException
{
- s.defaultReadObject();
- if (magnitude.length == 0 || signum == 0)
+ if (USING_NATIVE)
{
- this.ival = 0;
- this.words = null;
+ mpz = new GMP();
+ s.defaultReadObject();
+ if (signum != 0)
+ mpz.fromByteArray(magnitude);
+ // else it's zero and we need to do nothing
}
else
{
- words = byteArrayToIntArray(magnitude, signum < 0 ? -1 : 0);
- BigInteger result = make(words, words.length);
- this.ival = result.ival;
- this.words = result.words;
- }
+ s.defaultReadObject();
+ if (magnitude.length == 0 || signum == 0)
+ {
+ this.ival = 0;
+ this.words = null;
+ }
+ else
+ {
+ words = byteArrayToIntArray(magnitude, signum < 0 ? -1 : 0);
+ BigInteger result = make(words, words.length);
+ this.ival = result.ival;
+ this.words = result.words;
+ }
+ }
}
private void writeObject(ObjectOutputStream s)
@@ -2264,5 +2668,9 @@ public class BigInteger extends Number implements Comparable<BigInteger>
signum = signum();
magnitude = signum == 0 ? new byte[0] : toByteArray();
s.defaultWriteObject();
+ magnitude = null; // not needed anymore
}
+
+ // inner class(es) ..........................................................
+
}
diff --git a/libjava/classpath/java/net/Inet4Address.java b/libjava/classpath/java/net/Inet4Address.java
index a8a726e..1a50a47 100644
--- a/libjava/classpath/java/net/Inet4Address.java
+++ b/libjava/classpath/java/net/Inet4Address.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.net;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.ObjectStreamException;
/*
@@ -212,7 +214,7 @@ public final class Inet4Address extends InetAddress
*/
public String getHostAddress()
{
- StringBuffer sb = new StringBuffer(40);
+ CPStringBuilder sb = new CPStringBuilder(40);
int len = addr.length;
int i = 0;
diff --git a/libjava/classpath/java/net/Inet6Address.java b/libjava/classpath/java/net/Inet6Address.java
index f4893eb..9a1c4ea 100644
--- a/libjava/classpath/java/net/Inet6Address.java
+++ b/libjava/classpath/java/net/Inet6Address.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.net;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Arrays;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -317,7 +319,7 @@ public final class Inet6Address extends InetAddress
*/
public String getHostAddress()
{
- StringBuffer sbuf = new StringBuffer(40);
+ CPStringBuilder sbuf = new CPStringBuilder(40);
for (int i = 0; i < 16; i += 2)
{
diff --git a/libjava/classpath/java/net/NetworkInterface.java b/libjava/classpath/java/net/NetworkInterface.java
index a3a6058..5ec64ff 100644
--- a/libjava/classpath/java/net/NetworkInterface.java
+++ b/libjava/classpath/java/net/NetworkInterface.java
@@ -1,5 +1,5 @@
/* NetworkInterface.java --
- Copyright (C) 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2002, 2003, 2004, 2005, 2006, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -40,6 +40,8 @@ package java.net;
import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Enumeration;
import java.util.Iterator;
import java.util.Vector;
@@ -247,10 +249,10 @@ public final class NetworkInterface
public String toString()
{
// FIXME: check if this is correct
- StringBuffer result;
+ CPStringBuilder result;
String separator = SystemProperties.getProperty("line.separator");
- result = new StringBuffer();
+ result = new CPStringBuilder();
result.append("name: ");
result.append(getDisplayName());
@@ -265,4 +267,50 @@ public final class NetworkInterface
return result.toString();
}
+
+ /**
+ * Determines whether this interface is ready to transfer data.
+ *
+ * @return whether the interface is up
+ */
+ public boolean isUp()
+ throws SocketException
+ {
+ return VMNetworkInterface.isUp(netif.name);
+ }
+
+ /**
+ * Determines whether this interface does point to point
+ * transmission.
+ *
+ * @return whether the interface does point to point transmission
+ */
+ public boolean isPointToPoint()
+ throws SocketException
+ {
+ return VMNetworkInterface.isPointToPoint(netif.name);
+ }
+
+ /**
+ * Determines whether this interface is the loopback interface.
+ *
+ * @return whether the interface is the loopback interface
+ */
+ public boolean isLoopback()
+ throws SocketException
+ {
+ return VMNetworkInterface.isLoopback(netif.name);
+ }
+
+ /**
+ * Determines whether this interface supports multicast transmission.
+ *
+ * @return whether the interface supports multicast transmission.
+ */
+ public boolean supportsMulticast()
+ throws SocketException
+ {
+ return VMNetworkInterface.supportsMulticast(netif.name);
+ }
+
}
diff --git a/libjava/classpath/java/net/SocketPermission.java b/libjava/classpath/java/net/SocketPermission.java
index 6488543..a5a848e 100644
--- a/libjava/classpath/java/net/SocketPermission.java
+++ b/libjava/classpath/java/net/SocketPermission.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.net;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -431,7 +433,7 @@ public final class SocketPermission extends Permission implements Serializable
*/
public String getActions()
{
- StringBuffer sb = new StringBuffer("");
+ CPStringBuilder sb = new CPStringBuilder("");
for (int i = 0; i < ACTIONS.length; i++)
{
diff --git a/libjava/classpath/java/net/URI.java b/libjava/classpath/java/net/URI.java
index 85e0e04..933e4f4 100644
--- a/libjava/classpath/java/net/URI.java
+++ b/libjava/classpath/java/net/URI.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.net;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -483,7 +485,7 @@ public final class URI
*/
private static String quote(String str, String legalCharacters)
{
- StringBuilder sb = new StringBuilder(str.length());
+ CPStringBuilder sb = new CPStringBuilder(str.length());
for (int i = 0; i < str.length(); i++)
{
char c = str.charAt(i);
@@ -778,8 +780,8 @@ public final class URI
This follows the algorithm in section 5.2.4. of RFC3986,
but doesn't modify the input buffer.
*/
- StringBuilder input = new StringBuilder(relativePath);
- StringBuilder output = new StringBuilder();
+ CPStringBuilder input = new CPStringBuilder(relativePath);
+ CPStringBuilder output = new CPStringBuilder();
int start = 0;
while (start < input.length())
{
@@ -853,7 +855,7 @@ public final class URI
*
* @param buffer the buffer containing the path.
*/
- private void removeLastSegment(StringBuilder buffer)
+ private void removeLastSegment(CPStringBuilder buffer)
{
int lastSlash = buffer.lastIndexOf("/");
if (lastSlash == -1)
@@ -899,7 +901,7 @@ public final class URI
path = "";
if (! (path.startsWith("/")))
{
- StringBuilder basepath = new StringBuilder(this.path);
+ CPStringBuilder basepath = new CPStringBuilder(this.path);
int i = this.path.lastIndexOf('/');
if (i >= 0)
@@ -1388,8 +1390,8 @@ public final class URI
{
String strRep = toString();
boolean inNonAsciiBlock = false;
- StringBuilder buffer = new StringBuilder();
- StringBuilder encBuffer = null;
+ CPStringBuilder buffer = new CPStringBuilder();
+ CPStringBuilder encBuffer = null;
for (int i = 0; i < strRep.length(); i++)
{
char c = strRep.charAt(i);
@@ -1406,7 +1408,7 @@ public final class URI
{
if (!inNonAsciiBlock)
{
- encBuffer = new StringBuilder();
+ encBuffer = new CPStringBuilder();
inNonAsciiBlock = true;
}
encBuffer.append(c);
@@ -1428,7 +1430,7 @@ public final class URI
{
try
{
- StringBuilder sb = new StringBuilder();
+ CPStringBuilder sb = new CPStringBuilder();
// this is far from optimal, but it works
byte[] utf8 = str.getBytes("utf-8");
for (int j = 0; j < utf8.length; j++)
diff --git a/libjava/classpath/java/net/URLClassLoader.java b/libjava/classpath/java/net/URLClassLoader.java
index e1db2a1..52d297a 100644
--- a/libjava/classpath/java/net/URLClassLoader.java
+++ b/libjava/classpath/java/net/URLClassLoader.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.net;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.net.loader.FileURLLoader;
import gnu.java.net.loader.JarURLLoader;
import gnu.java.net.loader.RemoteURLLoader;
@@ -452,7 +454,7 @@ public class URLClassLoader extends SecureClassLoader
{
// Compute the name of the package as it may appear in the
// Manifest.
- StringBuilder xform = new StringBuilder(name);
+ CPStringBuilder xform = new CPStringBuilder(name);
for (int i = xform.length () - 1; i >= 0; --i)
if (xform.charAt(i) == '.')
xform.setCharAt(i, '/');
@@ -641,7 +643,7 @@ public class URLClassLoader extends SecureClassLoader
{
if (thisString == null)
{
- StringBuilder sb = new StringBuilder();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(this.getClass().getName());
sb.append("{urls=[" );
URL[] thisURLs = getURLs();
diff --git a/libjava/classpath/java/net/URLDecoder.java b/libjava/classpath/java/net/URLDecoder.java
index ca40c38..fb7ab59 100644
--- a/libjava/classpath/java/net/URLDecoder.java
+++ b/libjava/classpath/java/net/URLDecoder.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.net;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.UnsupportedEncodingException;
@@ -127,7 +129,7 @@ public class URLDecoder
int start = 0;
byte[] bytes = null;
int length = str.length();
- StringBuffer result = new StringBuffer(length);
+ CPStringBuilder result = new CPStringBuilder(length);
while ((i = str.indexOf('%', start)) >= 0)
{
// Add all non-encoded characters to the result buffer
diff --git a/libjava/classpath/java/net/URLEncoder.java b/libjava/classpath/java/net/URLEncoder.java
index 2f11c50..89d9a0b 100644
--- a/libjava/classpath/java/net/URLEncoder.java
+++ b/libjava/classpath/java/net/URLEncoder.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.net;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.UnsupportedEncodingException;
@@ -113,7 +115,7 @@ public class URLEncoder
int start = 0;
int i = 0;
- StringBuilder result = new StringBuilder(length);
+ CPStringBuilder result = new CPStringBuilder(length);
while (true)
{
while (i < length && isSafe(s.charAt(i)))
diff --git a/libjava/classpath/java/net/URLStreamHandler.java b/libjava/classpath/java/net/URLStreamHandler.java
index 9a5d73ad..4748191 100644
--- a/libjava/classpath/java/net/URLStreamHandler.java
+++ b/libjava/classpath/java/net/URLStreamHandler.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.net;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.File;
import java.io.IOException;
@@ -510,7 +512,7 @@ public abstract class URLStreamHandler
// Guess a reasonable size for the string buffer so we have to resize
// at most once.
int size = protocol.length() + authority.length() + file.length() + 24;
- StringBuffer sb = new StringBuffer(size);
+ CPStringBuilder sb = new CPStringBuilder(size);
if (protocol.length() > 0)
{
diff --git a/libjava/classpath/java/nio/Buffer.java b/libjava/classpath/java/nio/Buffer.java
index c2569ee..fce60c8 100644
--- a/libjava/classpath/java/nio/Buffer.java
+++ b/libjava/classpath/java/nio/Buffer.java
@@ -45,19 +45,21 @@ import gnu.classpath.Pointer;
*/
public abstract class Buffer
{
- int cap = 0;
- int limit = 0;
- int pos = 0;
- int mark = -1;
- Pointer address;
+ private final int cap;
+ int limit;
+ int pos;
+ int mark;
+ final Pointer address;
/**
* Creates a new Buffer.
*
* Should be package private.
*/
- Buffer (int capacity, int limit, int position, int mark)
+ Buffer (int capacity, int limit, int position, int mark, Pointer address)
{
+ this.address = address;
+
if (capacity < 0)
throw new IllegalArgumentException ();
@@ -72,6 +74,10 @@ public abstract class Buffer
this.mark = mark;
}
+ else
+ {
+ this.mark = -1;
+ }
}
/**
diff --git a/libjava/classpath/java/nio/ByteBuffer.java b/libjava/classpath/java/nio/ByteBuffer.java
index 78ad447..94aae4b 100644
--- a/libjava/classpath/java/nio/ByteBuffer.java
+++ b/libjava/classpath/java/nio/ByteBuffer.java
@@ -38,6 +38,10 @@ exception statement from your version. */
package java.nio;
+// GCJ LOCAL: Change gnu.classpath.Pointer to RawData
+import gnu.gcj.RawData;
+import gnu.classpath.Pointer;
+
/**
* @since 1.4
*/
@@ -45,13 +49,15 @@ public abstract class ByteBuffer extends Buffer
implements Comparable<ByteBuffer>
{
ByteOrder endian = ByteOrder.BIG_ENDIAN;
+ final byte[] backing_buffer;
+ final int array_offset;
- int array_offset;
- byte[] backing_buffer;
-
- ByteBuffer (int capacity, int limit, int position, int mark)
+ ByteBuffer (int capacity, int limit, int position, int mark,
+ RawData address, byte[] backing_buffer, int array_offset)
{
- super (capacity, limit, position, mark);
+ super (capacity, limit, position, mark, address);
+ this.backing_buffer = backing_buffer;
+ this.array_offset = array_offset;
}
/**
diff --git a/libjava/classpath/java/nio/ByteBufferImpl.java b/libjava/classpath/java/nio/ByteBufferImpl.java
index aa51a65..6a1ac46 100644
--- a/libjava/classpath/java/nio/ByteBufferImpl.java
+++ b/libjava/classpath/java/nio/ByteBufferImpl.java
@@ -43,13 +43,12 @@ package java.nio;
*/
final class ByteBufferImpl extends ByteBuffer
{
- private boolean readOnly;
+ private final boolean readOnly;
- ByteBufferImpl (byte[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
+ ByteBufferImpl (byte[] buffer, int offset, int capacity, int limit,
+ int position, int mark, boolean readOnly)
{
- super (capacity, limit, position, mark);
- this.backing_buffer = buffer;
- this.array_offset = offset;
+ super (capacity, limit, position, mark, null, buffer, offset);
this.readOnly = readOnly;
}
@@ -90,17 +89,20 @@ final class ByteBufferImpl extends ByteBuffer
public ByteBuffer slice ()
{
- return new ByteBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ());
+ return new ByteBufferImpl (backing_buffer, array_offset + position (),
+ remaining (), remaining (), 0, -1, isReadOnly ());
}
public ByteBuffer duplicate ()
{
- return new ByteBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ());
+ return new ByteBufferImpl (backing_buffer, array_offset, capacity (),
+ limit (), position (), mark, isReadOnly ());
}
public ByteBuffer asReadOnlyBuffer ()
{
- return new ByteBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true);
+ return new ByteBufferImpl (backing_buffer, array_offset, capacity (),
+ limit (), position (), mark, true);
}
void shiftDown (int dst_offset, int src_offset, int count)
diff --git a/libjava/classpath/java/nio/CharBuffer.java b/libjava/classpath/java/nio/CharBuffer.java
index 2feada4..969b5bb 100644
--- a/libjava/classpath/java/nio/CharBuffer.java
+++ b/libjava/classpath/java/nio/CharBuffer.java
@@ -38,6 +38,9 @@ exception statement from your version. */
package java.nio;
+// GCJ LOCAL: Use RawData instead of gnu.classpath.Pointer
+import gnu.gcj.RawData;
+
import java.io.IOException;
/**
@@ -46,13 +49,15 @@ import java.io.IOException;
public abstract class CharBuffer extends Buffer
implements Comparable<CharBuffer>, CharSequence, Readable, Appendable
{
- int array_offset;
- char[] backing_buffer;
+ final int array_offset;
+ final char[] backing_buffer;
- CharBuffer (int capacity, int limit, int position, int mark)
+ CharBuffer (int capacity, int limit, int position, int mark,
+ RawData address, char[] backing_buffer, int array_offset)
{
- super (capacity, limit, position, mark);
- array_offset = 0;
+ super (capacity, limit, position, mark, address);
+ this.backing_buffer = backing_buffer;
+ this.array_offset = array_offset;
}
/**
@@ -78,7 +83,8 @@ public abstract class CharBuffer extends Buffer
*/
public static final CharBuffer wrap(char[] array, int offset, int length)
{
- return new CharBufferImpl(array, 0, array.length, offset + length, offset, -1, false);
+ return new CharBufferImpl(array, 0, array.length, offset + length, offset,
+ -1, false);
}
/**
diff --git a/libjava/classpath/java/nio/CharBufferImpl.java b/libjava/classpath/java/nio/CharBufferImpl.java
index e6097cb..d35ca59 100644
--- a/libjava/classpath/java/nio/CharBufferImpl.java
+++ b/libjava/classpath/java/nio/CharBufferImpl.java
@@ -43,7 +43,7 @@ package java.nio;
*/
final class CharBufferImpl extends CharBuffer
{
- private boolean readOnly;
+ private final boolean readOnly;
CharBufferImpl (int capacity)
{
@@ -52,18 +52,14 @@ final class CharBufferImpl extends CharBuffer
CharBufferImpl (char[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
{
- super (capacity, limit, position, mark);
- this.backing_buffer = buffer;
- this.array_offset = offset;
+ super (capacity, limit, position, mark, null, buffer, offset);
this.readOnly = readOnly;
}
public CharBufferImpl (CharBufferImpl copy)
{
- super (copy.capacity (), copy.limit (), copy.position (), 0);
- backing_buffer = copy.backing_buffer;
- array_offset = copy.array_offset;
- readOnly = copy.isReadOnly ();
+ super (copy.capacity (), copy.limit (), copy.position (), 0, null, copy.backing_buffer, copy.array_offset);
+ this.readOnly = copy.isReadOnly ();
}
public boolean isReadOnly ()
diff --git a/libjava/classpath/java/nio/CharSequenceBuffer.java b/libjava/classpath/java/nio/CharSequenceBuffer.java
index 26aad1c..3003670 100644
--- a/libjava/classpath/java/nio/CharSequenceBuffer.java
+++ b/libjava/classpath/java/nio/CharSequenceBuffer.java
@@ -48,7 +48,7 @@ final class CharSequenceBuffer
/**
* The wrapped char sequence.
*/
- private CharSequence charSequence;
+ private final CharSequence charSequence;
/**
* Creates a new CharSequenceBuffer.
@@ -63,9 +63,8 @@ final class CharSequenceBuffer
CharSequenceBuffer(CharSequence charSeq, int capacity, int limit,
int position, int mark, int offs)
{
- super(capacity, limit, position, mark);
- charSequence = charSeq;
- array_offset = offs;
+ super(capacity, limit, position, mark, null, null, offs);
+ this.charSequence = charSeq;
}
/**
@@ -105,7 +104,7 @@ final class CharSequenceBuffer
*/
public CharBuffer duplicate()
{
- return new CharSequenceBuffer(charSequence, cap, limit, pos, mark, 0);
+ return new CharSequenceBuffer(charSequence, capacity(), limit, pos, mark, 0);
}
/**
diff --git a/libjava/classpath/java/nio/CharViewBufferImpl.java b/libjava/classpath/java/nio/CharViewBufferImpl.java
index 33bbac8..98a27a6e 100644
--- a/libjava/classpath/java/nio/CharViewBufferImpl.java
+++ b/libjava/classpath/java/nio/CharViewBufferImpl.java
@@ -41,33 +41,33 @@ package java.nio;
class CharViewBufferImpl extends CharBuffer
{
/** Position in bb (i.e. a byte offset) where this buffer starts. */
- private int offset;
- private ByteBuffer bb;
- private boolean readOnly;
- private ByteOrder endian;
+ private final int offset;
+ private final ByteBuffer bb;
+ private final boolean readOnly;
+ private final ByteOrder endian;
CharViewBufferImpl (ByteBuffer bb, int capacity)
{
- super (capacity, capacity, 0, -1);
+ super (capacity, capacity, 0, -1, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, bb.position()) : null,
+ null, 0);
this.bb = bb;
this.offset = bb.position();
this.readOnly = bb.isReadOnly();
this.endian = bb.order();
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
public CharViewBufferImpl (ByteBuffer bb, int offset, int capacity,
int limit, int position, int mark,
boolean readOnly, ByteOrder endian)
{
- super (capacity, limit, position, mark);
+ super (capacity, limit, position, mark, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, offset) : null,
+ null, 0);
this.bb = bb;
this.offset = offset;
this.readOnly = readOnly;
this.endian = endian;
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
/**
diff --git a/libjava/classpath/java/nio/DirectByteBufferImpl.java b/libjava/classpath/java/nio/DirectByteBufferImpl.java
index 8c907f5..60df361 100644
--- a/libjava/classpath/java/nio/DirectByteBufferImpl.java
+++ b/libjava/classpath/java/nio/DirectByteBufferImpl.java
@@ -104,18 +104,16 @@ abstract class DirectByteBufferImpl extends ByteBuffer
DirectByteBufferImpl(int capacity)
{
- super(capacity, capacity, 0, -1);
+ super(capacity, capacity, 0, -1, VMDirectByteBuffer.allocate(capacity), null, 0);
this.owner = this;
- this.address = VMDirectByteBuffer.allocate(capacity);
}
DirectByteBufferImpl(Object owner, Pointer address,
int capacity, int limit,
int position)
{
- super(capacity, limit, position, -1);
+ super(capacity, limit, position, -1, address, null, 0);
this.owner = owner;
- this.address = address;
}
/**
diff --git a/libjava/classpath/java/nio/DoubleBuffer.java b/libjava/classpath/java/nio/DoubleBuffer.java
index be7861c..1a51f18 100644
--- a/libjava/classpath/java/nio/DoubleBuffer.java
+++ b/libjava/classpath/java/nio/DoubleBuffer.java
@@ -38,19 +38,24 @@ exception statement from your version. */
package java.nio;
+// GCJ LOCAL: Change gnu.classpath.Pointer to RawData
+import gnu.gcj.RawData;
+
/**
* @since 1.4
*/
public abstract class DoubleBuffer extends Buffer
implements Comparable<DoubleBuffer>
{
- int array_offset;
- double[] backing_buffer;
+ final int array_offset;
+ final double[] backing_buffer;
- DoubleBuffer (int capacity, int limit, int position, int mark)
+ DoubleBuffer (int capacity, int limit, int position, int mark,
+ RawData address, double[] backing_buffer, int array_offset)
{
- super (capacity, limit, position, mark);
- array_offset = 0;
+ super (capacity, limit, position, mark, address);
+ this.backing_buffer = backing_buffer;
+ this.array_offset = array_offset;
}
/**
diff --git a/libjava/classpath/java/nio/DoubleBufferImpl.java b/libjava/classpath/java/nio/DoubleBufferImpl.java
index 98e8e97..bc292df 100644
--- a/libjava/classpath/java/nio/DoubleBufferImpl.java
+++ b/libjava/classpath/java/nio/DoubleBufferImpl.java
@@ -43,18 +43,17 @@ package java.nio;
*/
final class DoubleBufferImpl extends DoubleBuffer
{
- private boolean readOnly;
+ private final boolean readOnly;
DoubleBufferImpl (int capacity)
{
this (new double [capacity], 0, capacity, capacity, 0, -1, false);
}
- DoubleBufferImpl (double[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
+ DoubleBufferImpl (double[] buffer, int offset, int capacity, int limit,
+ int position, int mark, boolean readOnly)
{
- super (capacity, limit, position, mark);
- this.backing_buffer = buffer;
- this.array_offset = offset;
+ super (capacity, limit, position, mark, null, buffer, offset);
this.readOnly = readOnly;
}
@@ -65,17 +64,20 @@ final class DoubleBufferImpl extends DoubleBuffer
public DoubleBuffer slice ()
{
- return new DoubleBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ());
+ return new DoubleBufferImpl (backing_buffer, array_offset + position (),
+ remaining (), remaining (), 0, -1, isReadOnly ());
}
public DoubleBuffer duplicate ()
{
- return new DoubleBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ());
+ return new DoubleBufferImpl (backing_buffer, array_offset, capacity (),
+ limit (), position (), mark, isReadOnly ());
}
public DoubleBuffer asReadOnlyBuffer ()
{
- return new DoubleBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true);
+ return new DoubleBufferImpl (backing_buffer, array_offset, capacity (),
+ limit (), position (), mark, true);
}
public DoubleBuffer compact ()
diff --git a/libjava/classpath/java/nio/DoubleViewBufferImpl.java b/libjava/classpath/java/nio/DoubleViewBufferImpl.java
index d139915..d82fa92 100644
--- a/libjava/classpath/java/nio/DoubleViewBufferImpl.java
+++ b/libjava/classpath/java/nio/DoubleViewBufferImpl.java
@@ -41,33 +41,31 @@ package java.nio;
final class DoubleViewBufferImpl extends DoubleBuffer
{
/** Position in bb (i.e. a byte offset) where this buffer starts. */
- private int offset;
- private ByteBuffer bb;
- private boolean readOnly;
- private ByteOrder endian;
+ private final int offset;
+ private final ByteBuffer bb;
+ private final boolean readOnly;
+ private final ByteOrder endian;
DoubleViewBufferImpl (ByteBuffer bb, int capacity)
{
- super (capacity, capacity, 0, -1);
+ super (capacity, capacity, 0, -1, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, bb.position()) : null, null, 0);
this.bb = bb;
this.offset = bb.position();
this.readOnly = bb.isReadOnly();
this.endian = bb.order();
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
public DoubleViewBufferImpl (ByteBuffer bb, int offset, int capacity,
int limit, int position, int mark,
boolean readOnly, ByteOrder endian)
{
- super (capacity, limit, position, mark);
+ super (capacity, limit, position, mark, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, bb.position()) : null, null, 0);
this.bb = bb;
this.offset = offset;
this.readOnly = readOnly;
this.endian = endian;
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
/**
diff --git a/libjava/classpath/java/nio/FloatBuffer.java b/libjava/classpath/java/nio/FloatBuffer.java
index 62e353a..ce40a09 100644
--- a/libjava/classpath/java/nio/FloatBuffer.java
+++ b/libjava/classpath/java/nio/FloatBuffer.java
@@ -38,19 +38,24 @@ exception statement from your version. */
package java.nio;
+// GCJ LOCAL: Change gnu.classpath.Pointer to RawData
+import gnu.gcj.RawData;
+
/**
* @since 1.4
*/
public abstract class FloatBuffer extends Buffer
implements Comparable<FloatBuffer>
{
- int array_offset;
- float[] backing_buffer;
+ final int array_offset;
+ final float[] backing_buffer;
- FloatBuffer (int capacity, int limit, int position, int mark)
+ FloatBuffer (int capacity, int limit, int position, int mark,
+ RawData address, float[] backing_buffer, int array_offset)
{
- super (capacity, limit, position, mark);
- array_offset = 0;
+ super (capacity, limit, position, mark, address);
+ this.backing_buffer = backing_buffer;
+ this.array_offset = array_offset;
}
/**
diff --git a/libjava/classpath/java/nio/FloatBufferImpl.java b/libjava/classpath/java/nio/FloatBufferImpl.java
index f1182ba..5d0e7ca 100644
--- a/libjava/classpath/java/nio/FloatBufferImpl.java
+++ b/libjava/classpath/java/nio/FloatBufferImpl.java
@@ -43,18 +43,17 @@ package java.nio;
*/
final class FloatBufferImpl extends FloatBuffer
{
- private boolean readOnly;
+ private final boolean readOnly;
FloatBufferImpl (int capacity)
{
this (new float [capacity], 0, capacity, capacity, 0, -1, false);
}
- FloatBufferImpl (float[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
+ FloatBufferImpl (float[] buffer, int offset, int capacity, int limit,
+ int position, int mark, boolean readOnly)
{
- super (capacity, limit, position, mark);
- this.backing_buffer = buffer;
- this.array_offset = offset;
+ super (capacity, limit, position, mark, null, buffer, offset);
this.readOnly = readOnly;
}
diff --git a/libjava/classpath/java/nio/FloatViewBufferImpl.java b/libjava/classpath/java/nio/FloatViewBufferImpl.java
index 8bb342d..9f10d82 100644
--- a/libjava/classpath/java/nio/FloatViewBufferImpl.java
+++ b/libjava/classpath/java/nio/FloatViewBufferImpl.java
@@ -41,33 +41,31 @@ package java.nio;
final class FloatViewBufferImpl extends FloatBuffer
{
/** Position in bb (i.e. a byte offset) where this buffer starts. */
- private int offset;
- private ByteBuffer bb;
- private boolean readOnly;
- private ByteOrder endian;
+ private final int offset;
+ private final ByteBuffer bb;
+ private final boolean readOnly;
+ private final ByteOrder endian;
FloatViewBufferImpl (ByteBuffer bb, int capacity)
{
- super (capacity, capacity, 0, -1);
+ super (capacity, capacity, 0, -1, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, bb.position()):null, null, 0);
this.bb = bb;
this.offset = bb.position();
this.readOnly = bb.isReadOnly();
this.endian = bb.order();
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
public FloatViewBufferImpl (ByteBuffer bb, int offset, int capacity,
int limit, int position, int mark,
boolean readOnly, ByteOrder endian)
{
- super (capacity, limit, position, mark);
+ super (capacity, limit, position, mark, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0);
this.bb = bb;
this.offset = offset;
this.readOnly = readOnly;
this.endian = endian;
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
/**
diff --git a/libjava/classpath/java/nio/IntBuffer.java b/libjava/classpath/java/nio/IntBuffer.java
index d6fcb51..9234c33 100644
--- a/libjava/classpath/java/nio/IntBuffer.java
+++ b/libjava/classpath/java/nio/IntBuffer.java
@@ -38,19 +38,24 @@ exception statement from your version. */
package java.nio;
+// GCJ LOCAL: Change gnu.classpath.Pointer to RawData
+import gnu.gcj.RawData;
+
/**
* @since 1.4
*/
public abstract class IntBuffer extends Buffer
implements Comparable<IntBuffer>
{
- int array_offset;
- int[] backing_buffer;
+ final int array_offset;
+ final int[] backing_buffer;
- IntBuffer (int capacity, int limit, int position, int mark)
+ IntBuffer (int capacity, int limit, int position, int mark, RawData address,
+ int[] backing_buffer, int array_offset)
{
- super (capacity, limit, position, mark);
- array_offset = 0;
+ super (capacity, limit, position, mark, address);
+ this.backing_buffer = backing_buffer;
+ this.array_offset = array_offset;
}
/**
@@ -70,7 +75,8 @@ public abstract class IntBuffer extends Buffer
*/
public static final IntBuffer wrap (int[] array, int offset, int length)
{
- return new IntBufferImpl (array, 0, array.length, offset + length, offset, -1, false);
+ return new IntBufferImpl (array, 0, array.length, offset + length, offset,
+ -1, false);
}
/**
diff --git a/libjava/classpath/java/nio/IntBufferImpl.java b/libjava/classpath/java/nio/IntBufferImpl.java
index 2bd1842..c332715 100644
--- a/libjava/classpath/java/nio/IntBufferImpl.java
+++ b/libjava/classpath/java/nio/IntBufferImpl.java
@@ -43,7 +43,7 @@ package java.nio;
*/
final class IntBufferImpl extends IntBuffer
{
- private boolean readOnly;
+ private final boolean readOnly;
IntBufferImpl (int capacity)
{
@@ -52,9 +52,7 @@ final class IntBufferImpl extends IntBuffer
IntBufferImpl (int[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
{
- super (capacity, limit, position, mark);
- this.backing_buffer = buffer;
- this.array_offset = offset;
+ super (capacity, limit, position, mark, null, buffer, offset);
this.readOnly = readOnly;
}
diff --git a/libjava/classpath/java/nio/IntViewBufferImpl.java b/libjava/classpath/java/nio/IntViewBufferImpl.java
index cd8307f..9af5d58 100644
--- a/libjava/classpath/java/nio/IntViewBufferImpl.java
+++ b/libjava/classpath/java/nio/IntViewBufferImpl.java
@@ -41,33 +41,31 @@ package java.nio;
final class IntViewBufferImpl extends IntBuffer
{
/** Position in bb (i.e. a byte offset) where this buffer starts. */
- private int offset;
- private ByteBuffer bb;
- private boolean readOnly;
- private ByteOrder endian;
+ private final int offset;
+ private final ByteBuffer bb;
+ private final boolean readOnly;
+ private final ByteOrder endian;
IntViewBufferImpl (ByteBuffer bb, int capacity)
{
- super (capacity, capacity, 0, -1);
+ super (capacity, capacity, 0, -1, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, bb.position()):null, null, 0);
this.bb = bb;
this.offset = bb.position();
this.readOnly = bb.isReadOnly();
this.endian = bb.order();
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
public IntViewBufferImpl (ByteBuffer bb, int offset, int capacity,
int limit, int position, int mark,
boolean readOnly, ByteOrder endian)
{
- super (capacity, limit, position, mark);
+ super (capacity, limit, position, mark, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0);
this.bb = bb;
this.offset = offset;
this.readOnly = readOnly;
this.endian = endian;
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
/**
diff --git a/libjava/classpath/java/nio/LongBuffer.java b/libjava/classpath/java/nio/LongBuffer.java
index 9c3bfa6..1195cc8 100644
--- a/libjava/classpath/java/nio/LongBuffer.java
+++ b/libjava/classpath/java/nio/LongBuffer.java
@@ -38,19 +38,24 @@ exception statement from your version. */
package java.nio;
+// GCJ LOCAL: Change gnu.classpath.Pointer to RawData
+import gnu.gcj.RawData;
+
/**
* @since 1.4
*/
public abstract class LongBuffer extends Buffer
implements Comparable<LongBuffer>
{
- int array_offset;
- long[] backing_buffer;
+ final int array_offset;
+ final long[] backing_buffer;
- LongBuffer (int capacity, int limit, int position, int mark)
+ LongBuffer (int capacity, int limit, int position, int mark,
+ RawData address, long[] backing_buffer, int array_offset)
{
- super (capacity, limit, position, mark);
- array_offset = 0;
+ super (capacity, limit, position, mark, address);
+ this.backing_buffer = backing_buffer;
+ this.array_offset = array_offset;
}
/**
diff --git a/libjava/classpath/java/nio/LongBufferImpl.java b/libjava/classpath/java/nio/LongBufferImpl.java
index c04c417..4cf922b 100644
--- a/libjava/classpath/java/nio/LongBufferImpl.java
+++ b/libjava/classpath/java/nio/LongBufferImpl.java
@@ -43,18 +43,17 @@ package java.nio;
*/
final class LongBufferImpl extends LongBuffer
{
- private boolean readOnly;
+ private final boolean readOnly;
LongBufferImpl (int capacity)
{
this (new long [capacity], 0, capacity, capacity, 0, -1, false);
}
- LongBufferImpl (long[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
+ LongBufferImpl (long[] buffer, int offset, int capacity, int limit,
+ int position, int mark, boolean readOnly)
{
- super (capacity, limit, position, mark);
- this.backing_buffer = buffer;
- this.array_offset = offset;
+ super (capacity, limit, position, mark, null, buffer, offset);
this.readOnly = readOnly;
}
@@ -65,17 +64,20 @@ final class LongBufferImpl extends LongBuffer
public LongBuffer slice ()
{
- return new LongBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ());
+ return new LongBufferImpl (backing_buffer, array_offset + position (),
+ remaining (), remaining (), 0, -1, isReadOnly ());
}
public LongBuffer duplicate ()
{
- return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ());
+ return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (),
+ position (), mark, isReadOnly ());
}
public LongBuffer asReadOnlyBuffer ()
{
- return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true);
+ return new LongBufferImpl (backing_buffer, array_offset, capacity (), limit (),
+ position (), mark, true);
}
public LongBuffer compact ()
diff --git a/libjava/classpath/java/nio/LongViewBufferImpl.java b/libjava/classpath/java/nio/LongViewBufferImpl.java
index eefbcbd..b775a99 100644
--- a/libjava/classpath/java/nio/LongViewBufferImpl.java
+++ b/libjava/classpath/java/nio/LongViewBufferImpl.java
@@ -41,33 +41,31 @@ package java.nio;
final class LongViewBufferImpl extends LongBuffer
{
/** Position in bb (i.e. a byte offset) where this buffer starts. */
- private int offset;
- private ByteBuffer bb;
- private boolean readOnly;
- private ByteOrder endian;
+ private final int offset;
+ private final ByteBuffer bb;
+ private final boolean readOnly;
+ private final ByteOrder endian;
LongViewBufferImpl (ByteBuffer bb, int capacity)
{
- super (capacity, capacity, 0, -1);
+ super (capacity, capacity, 0, -1, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, bb.position()):null, null, 0);
this.bb = bb;
this.offset = bb.position();
this.readOnly = bb.isReadOnly();
this.endian = bb.order();
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
public LongViewBufferImpl (ByteBuffer bb, int offset, int capacity,
int limit, int position, int mark,
boolean readOnly, ByteOrder endian)
{
- super (capacity, limit, position, mark);
+ super (capacity, limit, position, mark, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0);
this.bb = bb;
this.offset = offset;
this.readOnly = readOnly;
this.endian = endian;
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
/**
diff --git a/libjava/classpath/java/nio/MappedByteBuffer.java b/libjava/classpath/java/nio/MappedByteBuffer.java
index 25b0993..1f82f82 100644
--- a/libjava/classpath/java/nio/MappedByteBuffer.java
+++ b/libjava/classpath/java/nio/MappedByteBuffer.java
@@ -38,15 +38,19 @@ exception statement from your version. */
package java.nio;
+// GCJ LOCAL: Use RawData instead of gnu.classpath.Pointer
+import gnu.gcj.RawData;
+
/**
* @author Michael Koch (konqueror@gmx.de)
* @since 1.4
*/
public abstract class MappedByteBuffer extends ByteBuffer
{
- MappedByteBuffer (int capacity, int limit, int position, int mark)
+ MappedByteBuffer (int capacity, int limit, int position, int mark,
+ RawData address)
{
- super (capacity, limit, position, mark);
+ super (capacity, limit, position, mark, address, null, 0);
}
void forceImpl()
diff --git a/libjava/classpath/java/nio/MappedByteBufferImpl.java b/libjava/classpath/java/nio/MappedByteBufferImpl.java
index a53040f..f11d1e7 100644
--- a/libjava/classpath/java/nio/MappedByteBufferImpl.java
+++ b/libjava/classpath/java/nio/MappedByteBufferImpl.java
@@ -44,7 +44,7 @@ import java.io.IOException;
final class MappedByteBufferImpl extends MappedByteBuffer
{
- boolean readOnly;
+ private final boolean readOnly;
/** Posix uses this for the pointer returned by mmap;
* Win32 uses it for the pointer returned by MapViewOfFile. */
@@ -56,8 +56,7 @@ final class MappedByteBufferImpl extends MappedByteBuffer
public MappedByteBufferImpl(Pointer address, int size, boolean readOnly)
throws IOException
{
- super(size, size, 0, -1);
- this.address = address;
+ super(size, size, 0, -1, address);
this.readOnly = readOnly;
}
diff --git a/libjava/classpath/java/nio/ShortBuffer.java b/libjava/classpath/java/nio/ShortBuffer.java
index 33e458a..f15c063 100644
--- a/libjava/classpath/java/nio/ShortBuffer.java
+++ b/libjava/classpath/java/nio/ShortBuffer.java
@@ -38,19 +38,25 @@ exception statement from your version. */
package java.nio;
+// GCJ LOCAL: Use RawData instead of gnu.classpath.Pointer
+import gnu.gcj.RawData;
+
/**
* @since 1.4
*/
public abstract class ShortBuffer extends Buffer
implements Comparable<ShortBuffer>
{
- int array_offset;
- short[] backing_buffer;
+ final int array_offset;
+ final short[] backing_buffer;
- ShortBuffer (int capacity, int limit, int position, int mark)
+ ShortBuffer (int capacity, int limit, int position,
+ int mark, RawData address, short[] backing_buffer,
+ int array_offset)
{
- super (capacity, limit, position, mark);
- array_offset = 0;
+ super (capacity, limit, position, mark, address);
+ this.backing_buffer = backing_buffer;
+ this.array_offset = array_offset;
}
/**
diff --git a/libjava/classpath/java/nio/ShortBufferImpl.java b/libjava/classpath/java/nio/ShortBufferImpl.java
index 50f65ec..3a8ff57 100644
--- a/libjava/classpath/java/nio/ShortBufferImpl.java
+++ b/libjava/classpath/java/nio/ShortBufferImpl.java
@@ -43,18 +43,17 @@ package java.nio;
*/
final class ShortBufferImpl extends ShortBuffer
{
- private boolean readOnly;
+ private final boolean readOnly;
ShortBufferImpl (int capacity)
{
this (new short [capacity], 0, capacity, capacity, 0, -1, false);
}
- ShortBufferImpl (short[] buffer, int offset, int capacity, int limit, int position, int mark, boolean readOnly)
+ ShortBufferImpl (short[] buffer, int offset, int capacity,
+ int limit, int position, int mark, boolean readOnly)
{
- super (capacity, limit, position, mark);
- this.backing_buffer = buffer;
- this.array_offset = offset;
+ super (capacity, limit, position, mark, null, buffer, offset);
this.readOnly = readOnly;
}
@@ -65,17 +64,20 @@ final class ShortBufferImpl extends ShortBuffer
public ShortBuffer slice ()
{
- return new ShortBufferImpl (backing_buffer, array_offset + position (), remaining (), remaining (), 0, -1, isReadOnly ());
+ return new ShortBufferImpl (backing_buffer, array_offset + position (),
+ remaining (), remaining (), 0, -1, isReadOnly ());
}
public ShortBuffer duplicate ()
{
- return new ShortBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, isReadOnly ());
+ return new ShortBufferImpl (backing_buffer, array_offset, capacity (),
+ limit (), position (), mark, isReadOnly ());
}
public ShortBuffer asReadOnlyBuffer ()
{
- return new ShortBufferImpl (backing_buffer, array_offset, capacity (), limit (), position (), mark, true);
+ return new ShortBufferImpl (backing_buffer, array_offset, capacity (), limit (),
+ position (), mark, true);
}
public ShortBuffer compact ()
diff --git a/libjava/classpath/java/nio/ShortViewBufferImpl.java b/libjava/classpath/java/nio/ShortViewBufferImpl.java
index df713361..3c7c774 100644
--- a/libjava/classpath/java/nio/ShortViewBufferImpl.java
+++ b/libjava/classpath/java/nio/ShortViewBufferImpl.java
@@ -41,33 +41,31 @@ package java.nio;
final class ShortViewBufferImpl extends ShortBuffer
{
/** Position in bb (i.e. a byte offset) where this buffer starts. */
- private int offset;
- private ByteBuffer bb;
- private boolean readOnly;
- private ByteOrder endian;
+ private final int offset;
+ private final ByteBuffer bb;
+ private final boolean readOnly;
+ private final ByteOrder endian;
ShortViewBufferImpl (ByteBuffer bb, int capacity)
{
- super (capacity, capacity, 0, -1);
+ super (capacity, capacity, 0, -1, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, bb.position()):null, null, 0);
this.bb = bb;
this.offset = bb.position();
this.readOnly = bb.isReadOnly();
this.endian = bb.order();
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
public ShortViewBufferImpl (ByteBuffer bb, int offset, int capacity,
int limit, int position, int mark,
boolean readOnly, ByteOrder endian)
{
- super (capacity, limit, position, mark);
+ super (capacity, limit, position, mark, bb.isDirect() ?
+ VMDirectByteBuffer.adjustAddress(bb.address, offset):null, null, 0);
this.bb = bb;
this.offset = offset;
this.readOnly = readOnly;
this.endian = endian;
- if (bb.isDirect())
- this.address = VMDirectByteBuffer.adjustAddress(bb.address, offset);
}
/**
diff --git a/libjava/classpath/java/nio/channels/FileLock.java b/libjava/classpath/java/nio/channels/FileLock.java
index c466958..78210b3 100644
--- a/libjava/classpath/java/nio/channels/FileLock.java
+++ b/libjava/classpath/java/nio/channels/FileLock.java
@@ -37,8 +37,9 @@ exception statement from your version. */
package java.nio.channels;
-import java.io.IOException;
+import gnu.java.lang.CPStringBuilder;
+import java.io.IOException;
/**
* @since 1.4
@@ -132,7 +133,7 @@ public abstract class FileLock
*/
public final String toString()
{
- StringBuffer buf = new StringBuffer(getClass().getName());
+ CPStringBuilder buf = new CPStringBuilder(getClass().getName());
buf.append("[");
buf.append(position);
buf.append(":");
diff --git a/libjava/classpath/java/rmi/activation/Activatable.java b/libjava/classpath/java/rmi/activation/Activatable.java
index 0f201ca..eb51100 100644
--- a/libjava/classpath/java/rmi/activation/Activatable.java
+++ b/libjava/classpath/java/rmi/activation/Activatable.java
@@ -462,8 +462,8 @@ public abstract class Activatable
* means anonymous port.
* @param serverSocketFactory the server socket factory
*/
- public static Remote export(ActivationID id, Remote obj, int port,
- RMIServerSocketFactory serverSocketFactory)
+ private static Remote export(ActivationID id, Remote obj, int port,
+ RMIServerSocketFactory serverSocketFactory)
throws RemoteException
{
ActivatableServerRef sref = null;
@@ -479,7 +479,7 @@ public abstract class Activatable
*
* @return the object id
*/
- public static ObjID makeId(ActivationID aid)
+ private static ObjID makeId(ActivationID aid)
{
ObjID id = new ObjID(0);
diff --git a/libjava/classpath/java/rmi/dgc/VMID.java b/libjava/classpath/java/rmi/dgc/VMID.java
index dc989c2..22b73736 100644
--- a/libjava/classpath/java/rmi/dgc/VMID.java
+++ b/libjava/classpath/java/rmi/dgc/VMID.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.rmi.dgc;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
import java.net.InetAddress;
import java.net.UnknownHostException;
@@ -168,7 +170,7 @@ public final class VMID implements Serializable
*/
public String toString ()
{
- StringBuffer buf = new StringBuffer ("[VMID: ");
+ CPStringBuilder buf = new CPStringBuilder ("[VMID: ");
for (int i = 0; i < addr.length; i++)
{
diff --git a/libjava/classpath/java/security/AlgorithmParameterGenerator.java b/libjava/classpath/java/security/AlgorithmParameterGenerator.java
index e2a17d4..da1ea46 100644
--- a/libjava/classpath/java/security/AlgorithmParameterGenerator.java
+++ b/libjava/classpath/java/security/AlgorithmParameterGenerator.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Engine;
import java.lang.reflect.InvocationTargetException;
@@ -171,7 +173,7 @@ public class AlgorithmParameterGenerator
Provider provider)
throws NoSuchAlgorithmException
{
- StringBuilder sb = new StringBuilder()
+ CPStringBuilder sb = new CPStringBuilder()
.append("AlgorithmParameterGenerator for algorithm [")
.append(algorithm).append("] from provider[")
.append(provider).append("] could not be created");
diff --git a/libjava/classpath/java/security/AlgorithmParameters.java b/libjava/classpath/java/security/AlgorithmParameters.java
index f5e5063..3de8ad0 100644
--- a/libjava/classpath/java/security/AlgorithmParameters.java
+++ b/libjava/classpath/java/security/AlgorithmParameters.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Engine;
import java.io.IOException;
@@ -175,7 +177,7 @@ public class AlgorithmParameters
Provider provider)
throws NoSuchAlgorithmException
{
- StringBuilder sb = new StringBuilder("AlgorithmParameters for algorithm [")
+ CPStringBuilder sb = new CPStringBuilder("AlgorithmParameters for algorithm [")
.append(algorithm).append("] from provider[")
.append(provider).append("] could not be created");
Throwable cause;
diff --git a/libjava/classpath/java/security/CodeSource.java b/libjava/classpath/java/security/CodeSource.java
index b516170..90eb089 100644
--- a/libjava/classpath/java/security/CodeSource.java
+++ b/libjava/classpath/java/security/CodeSource.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.ObjectInputStream;
@@ -259,7 +261,7 @@ public class CodeSource implements Serializable
*/
public String toString()
{
- StringBuffer sb = new StringBuffer("(").append(location);
+ CPStringBuilder sb = new CPStringBuilder("(").append(location);
if (certs == null || certs.isEmpty())
sb.append(" <no certificates>");
else
diff --git a/libjava/classpath/java/security/KeyFactory.java b/libjava/classpath/java/security/KeyFactory.java
index 043dd59..f06004b 100644
--- a/libjava/classpath/java/security/KeyFactory.java
+++ b/libjava/classpath/java/security/KeyFactory.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Engine;
import java.lang.reflect.InvocationTargetException;
@@ -165,7 +167,7 @@ public class KeyFactory
public static KeyFactory getInstance(String algorithm, Provider provider)
throws NoSuchAlgorithmException
{
- StringBuilder sb = new StringBuilder("KeyFactory for algorithm [")
+ CPStringBuilder sb = new CPStringBuilder("KeyFactory for algorithm [")
.append(algorithm).append("] from provider[")
.append(provider).append("] could not be created");
Throwable cause;
diff --git a/libjava/classpath/java/security/KeyPairGenerator.java b/libjava/classpath/java/security/KeyPairGenerator.java
index 6974035..f4ca206 100644
--- a/libjava/classpath/java/security/KeyPairGenerator.java
+++ b/libjava/classpath/java/security/KeyPairGenerator.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Engine;
import java.lang.reflect.InvocationTargetException;
@@ -165,7 +167,7 @@ public abstract class KeyPairGenerator extends KeyPairGeneratorSpi
Provider provider)
throws NoSuchAlgorithmException
{
- StringBuilder sb = new StringBuilder("KeyPairGenerator for algorithm [")
+ CPStringBuilder sb = new CPStringBuilder("KeyPairGenerator for algorithm [")
.append(algorithm).append("] from provider[")
.append(provider).append("] ");
Object o;
diff --git a/libjava/classpath/java/security/MessageDigest.java b/libjava/classpath/java/security/MessageDigest.java
index 0f8e934..d94d96b 100644
--- a/libjava/classpath/java/security/MessageDigest.java
+++ b/libjava/classpath/java/security/MessageDigest.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.security;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Engine;
import java.nio.ByteBuffer;
@@ -146,7 +148,7 @@ public abstract class MessageDigest extends MessageDigestSpi
public static MessageDigest getInstance(String algorithm, Provider provider)
throws NoSuchAlgorithmException
{
- StringBuilder sb = new StringBuilder("MessageDigest for algorithm [")
+ CPStringBuilder sb = new CPStringBuilder("MessageDigest for algorithm [")
.append(algorithm).append("] from provider[")
.append(provider).append("] ");
Object o;
@@ -235,7 +237,7 @@ public abstract class MessageDigest extends MessageDigestSpi
* @param input The input byte buffer.
* @since 1.5
*/
- public void update (ByteBuffer input)
+ public final void update (ByteBuffer input)
{
engineUpdate (input);
}
@@ -363,7 +365,7 @@ public abstract class MessageDigest extends MessageDigestSpi
if (digest == null)
return "incomplete";
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
int len = digest.length;
for (int i = 0; i < len; ++i)
{
diff --git a/libjava/classpath/java/security/Permission.java b/libjava/classpath/java/security/Permission.java
index 9072d95..8f3e2a2 100644
--- a/libjava/classpath/java/security/Permission.java
+++ b/libjava/classpath/java/security/Permission.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.security;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
/**
@@ -181,7 +183,7 @@ public abstract class Permission implements Guard, Serializable
*/
public String toString()
{
- StringBuffer string = new StringBuffer();
+ CPStringBuilder string = new CPStringBuilder();
string = string.append('(');
string = string.append(getClass().getName());
diff --git a/libjava/classpath/java/security/PermissionCollection.java b/libjava/classpath/java/security/PermissionCollection.java
index c584983..ef87cc7 100644
--- a/libjava/classpath/java/security/PermissionCollection.java
+++ b/libjava/classpath/java/security/PermissionCollection.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.security;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
import java.util.Enumeration;
@@ -156,7 +158,7 @@ public abstract class PermissionCollection implements Serializable
*/
public String toString()
{
- StringBuffer sb = new StringBuffer(super.toString());
+ CPStringBuilder sb = new CPStringBuilder(super.toString());
sb.append(" (\n");
Enumeration<Permission> e = elements();
diff --git a/libjava/classpath/java/security/ProtectionDomain.java b/libjava/classpath/java/security/ProtectionDomain.java
index 33af8fd..b1eb049 100644
--- a/libjava/classpath/java/security/ProtectionDomain.java
+++ b/libjava/classpath/java/security/ProtectionDomain.java
@@ -39,6 +39,8 @@ package java.security;
import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
+
/**
* This class represents a group of classes, along with their granted
* permissions. The classes are identified by a {@link CodeSource}. Thus, any
@@ -204,7 +206,7 @@ public class ProtectionDomain
public String toString()
{
String linesep = SystemProperties.getProperty("line.separator");
- StringBuffer sb = new StringBuffer("ProtectionDomain (").append(linesep);
+ CPStringBuilder sb = new CPStringBuilder("ProtectionDomain (").append(linesep);
if (code_source == null)
sb.append("CodeSource:null");
diff --git a/libjava/classpath/java/security/SecureRandom.java b/libjava/classpath/java/security/SecureRandom.java
index 005f467..f965782 100644
--- a/libjava/classpath/java/security/SecureRandom.java
+++ b/libjava/classpath/java/security/SecureRandom.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package java.security;
import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
import gnu.java.security.Engine;
import gnu.java.security.action.GetSecurityPropertyAction;
import gnu.java.security.jce.prng.Sha160RandomSpi;
@@ -262,7 +263,7 @@ public class SecureRandom extends Random
public static SecureRandom getInstance(String algorithm, Provider provider)
throws NoSuchAlgorithmException
{
- StringBuilder sb = new StringBuilder("SecureRandom for algorithm [")
+ CPStringBuilder sb = new CPStringBuilder("SecureRandom for algorithm [")
.append(algorithm).append("] from provider[")
.append(provider).append("] could not be created");
Throwable cause;
diff --git a/libjava/classpath/java/security/Signature.java b/libjava/classpath/java/security/Signature.java
index 1245707..26333b6 100644
--- a/libjava/classpath/java/security/Signature.java
+++ b/libjava/classpath/java/security/Signature.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Engine;
import java.lang.reflect.InvocationTargetException;
@@ -198,7 +200,7 @@ public abstract class Signature extends SignatureSpi
public static Signature getInstance(String algorithm, Provider provider)
throws NoSuchAlgorithmException
{
- StringBuilder sb = new StringBuilder("Signature algorithm [")
+ CPStringBuilder sb = new CPStringBuilder("Signature algorithm [")
.append(algorithm).append("] from provider[")
.append(provider).append("] ");
Object o;
diff --git a/libjava/classpath/java/security/cert/CertPath.java b/libjava/classpath/java/security/cert/CertPath.java
index 781eb3e..7211647 100644
--- a/libjava/classpath/java/security/cert/CertPath.java
+++ b/libjava/classpath/java/security/cert/CertPath.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.security.cert;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.ByteArrayInputStream;
import java.io.NotSerializableException;
import java.io.ObjectStreamException;
@@ -196,7 +198,7 @@ public abstract class CertPath implements Serializable
List l = getCertificates();
int size = l.size();
int i = 0;
- StringBuffer result = new StringBuffer(type);
+ CPStringBuilder result = new CPStringBuilder(type);
result.append(" Cert Path: length = ").append(size).append(".\n[\n");
while (--size >= 0)
result.append(l.get(i++)).append('\n');
diff --git a/libjava/classpath/java/security/cert/CertPathBuilder.java b/libjava/classpath/java/security/cert/CertPathBuilder.java
index 519ed2b..99f7c97 100644
--- a/libjava/classpath/java/security/cert/CertPathBuilder.java
+++ b/libjava/classpath/java/security/cert/CertPathBuilder.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security.cert;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Engine;
import java.lang.reflect.InvocationTargetException;
@@ -182,7 +184,7 @@ public class CertPathBuilder
public static CertPathBuilder getInstance(String algorithm, Provider provider)
throws NoSuchAlgorithmException
{
- StringBuilder sb = new StringBuilder("CertPathBuilder for algorithm [")
+ CPStringBuilder sb = new CPStringBuilder("CertPathBuilder for algorithm [")
.append(algorithm).append("] from provider[")
.append(provider).append("] could not be created");
Throwable cause;
diff --git a/libjava/classpath/java/security/cert/CertPathValidator.java b/libjava/classpath/java/security/cert/CertPathValidator.java
index bf7c974..af08b54 100644
--- a/libjava/classpath/java/security/cert/CertPathValidator.java
+++ b/libjava/classpath/java/security/cert/CertPathValidator.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security.cert;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Engine;
import java.lang.reflect.InvocationTargetException;
@@ -196,7 +198,7 @@ public class CertPathValidator {
Provider provider)
throws NoSuchAlgorithmException
{
- StringBuilder sb = new StringBuilder("CertPathValidator for algorithm [")
+ CPStringBuilder sb = new CPStringBuilder("CertPathValidator for algorithm [")
.append(algorithm).append("] from provider[")
.append(provider).append("] could not be created");
Throwable cause;
diff --git a/libjava/classpath/java/security/cert/CertStore.java b/libjava/classpath/java/security/cert/CertStore.java
index a270865..1ebdb50 100644
--- a/libjava/classpath/java/security/cert/CertStore.java
+++ b/libjava/classpath/java/security/cert/CertStore.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security.cert;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.Engine;
import java.lang.reflect.InvocationTargetException;
@@ -207,7 +209,7 @@ public class CertStore
Provider provider)
throws InvalidAlgorithmParameterException, NoSuchAlgorithmException
{
- StringBuilder sb = new StringBuilder("CertStore of type [")
+ CPStringBuilder sb = new CPStringBuilder("CertStore of type [")
.append(type).append("] from provider[")
.append(provider).append("] could not be created");
Throwable cause;
diff --git a/libjava/classpath/java/security/cert/PKIXBuilderParameters.java b/libjava/classpath/java/security/cert/PKIXBuilderParameters.java
index 5e234ce..fd5f1f8 100644
--- a/libjava/classpath/java/security/cert/PKIXBuilderParameters.java
+++ b/libjava/classpath/java/security/cert/PKIXBuilderParameters.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security.cert;
+import gnu.java.lang.CPStringBuilder;
+
import java.security.InvalidAlgorithmParameterException;
import java.security.KeyStore;
import java.security.KeyStoreException;
@@ -140,7 +142,7 @@ public class PKIXBuilderParameters extends PKIXParameters
public String toString()
{
- StringBuffer buf = new StringBuffer(super.toString());
+ CPStringBuilder buf = new CPStringBuilder(super.toString());
buf.insert(buf.length() - 2, "; Max Path Length=" + maxPathLength);
return buf.toString();
}
diff --git a/libjava/classpath/java/security/cert/PKIXCertPathBuilderResult.java b/libjava/classpath/java/security/cert/PKIXCertPathBuilderResult.java
index 5091dd412..fa16091 100644
--- a/libjava/classpath/java/security/cert/PKIXCertPathBuilderResult.java
+++ b/libjava/classpath/java/security/cert/PKIXCertPathBuilderResult.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.security.cert;
+import gnu.java.lang.CPStringBuilder;
+
/**
* The result of calling the {@link
* CertPathBuilder#build(java.security.cert.CertPathParameters)} method
@@ -95,7 +97,7 @@ public class PKIXCertPathBuilderResult extends PKIXCertPathValidatorResult
public String toString()
{
- StringBuffer buf = new StringBuffer(super.toString());
+ CPStringBuilder buf = new CPStringBuilder(super.toString());
buf.insert(buf.length() - 2, "; CertPath=" + certPath);
return buf.toString();
}
diff --git a/libjava/classpath/java/security/cert/PolicyQualifierInfo.java b/libjava/classpath/java/security/cert/PolicyQualifierInfo.java
index b50f3f3..d4d9f99 100644
--- a/libjava/classpath/java/security/cert/PolicyQualifierInfo.java
+++ b/libjava/classpath/java/security/cert/PolicyQualifierInfo.java
@@ -124,7 +124,7 @@ PolicyQualifierId ::= OBJECT IDENTIFIER
*
* @return This structure's OID field.
*/
- public String getPolicyQualifierId()
+ public final String getPolicyQualifierId()
{
return oid.toString();
}
@@ -137,7 +137,7 @@ PolicyQualifierId ::= OBJECT IDENTIFIER
*
* @return The encoded form.
*/
- public byte[] getEncoded()
+ public final byte[] getEncoded()
{
return (byte[]) encoded.clone();
}
@@ -149,7 +149,7 @@ PolicyQualifierId ::= OBJECT IDENTIFIER
*
* @return The encoded qualifier.
*/
- public byte[] getPolicyQualifier()
+ public final byte[] getPolicyQualifier()
{
if (qualifier == null)
return new byte[0];
diff --git a/libjava/classpath/java/security/cert/X509CRLSelector.java b/libjava/classpath/java/security/cert/X509CRLSelector.java
index 56b1713..d412a1a 100644
--- a/libjava/classpath/java/security/cert/X509CRLSelector.java
+++ b/libjava/classpath/java/security/cert/X509CRLSelector.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package java.security.cert;
import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
import gnu.java.security.der.DERReader;
import gnu.java.security.der.DERValue;
@@ -335,7 +336,7 @@ public class X509CRLSelector implements CRLSelector, Cloneable
*/
public String toString()
{
- StringBuffer str = new StringBuffer(X509CRLSelector.class.getName());
+ CPStringBuilder str = new CPStringBuilder(X509CRLSelector.class.getName());
String nl = SystemProperties.getProperty("line.separator");
String eol = ";" + nl;
diff --git a/libjava/classpath/java/security/cert/X509CertSelector.java b/libjava/classpath/java/security/cert/X509CertSelector.java
index 7a7db08..4115fff 100644
--- a/libjava/classpath/java/security/cert/X509CertSelector.java
+++ b/libjava/classpath/java/security/cert/X509CertSelector.java
@@ -39,6 +39,7 @@ exception statement from your version. */
package java.security.cert;
import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
import gnu.java.security.OID;
import gnu.java.security.x509.GnuPKIExtension;
import gnu.java.security.x509.ext.CertificatePolicies;
@@ -1251,7 +1252,7 @@ public class X509CertSelector implements CertSelector, Cloneable
public String toString()
{
- StringBuffer str = new StringBuffer(X509CertSelector.class.getName());
+ CPStringBuilder str = new CPStringBuilder(X509CertSelector.class.getName());
String nl = SystemProperties.getProperty("line.separator");
String eol = ";" + nl;
str.append(" {").append(nl);
diff --git a/libjava/classpath/java/text/AttributedString.java b/libjava/classpath/java/text/AttributedString.java
index 6785bd3..cb338bf 100644
--- a/libjava/classpath/java/text/AttributedString.java
+++ b/libjava/classpath/java/text/AttributedString.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -182,7 +184,7 @@ public class AttributedString
if ((begin < 0) || (end < begin) || end > aci.getEndIndex())
throw new IllegalArgumentException("Bad index values");
- StringBuffer sb = new StringBuffer("");
+ CPStringBuilder sb = new CPStringBuilder("");
// Get the valid attribute list
Set allAttribs = aci.getAllAttributeKeys();
diff --git a/libjava/classpath/java/text/ChoiceFormat.java b/libjava/classpath/java/text/ChoiceFormat.java
index 629701c..a552dd4 100644
--- a/libjava/classpath/java/text/ChoiceFormat.java
+++ b/libjava/classpath/java/text/ChoiceFormat.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Vector;
/**
@@ -98,8 +100,8 @@ public class ChoiceFormat extends NumberFormat
int index = 0, max = newPattern.length();
Vector stringVec = new Vector ();
Vector limitVec = new Vector ();
- StringBuffer buf = new StringBuffer ();
-
+ final CPStringBuilder buf = new CPStringBuilder ();
+
while (true)
{
// Find end of double.
@@ -442,7 +444,7 @@ public class ChoiceFormat extends NumberFormat
this.choiceLimits = (double[]) choiceLimits.clone();
}
- private void quoteString (StringBuffer dest, String text)
+ private void quoteString (CPStringBuilder dest, String text)
{
int max = text.length();
for (int i = 0; i < max; ++i)
@@ -473,7 +475,7 @@ public class ChoiceFormat extends NumberFormat
*/
public String toPattern ()
{
- StringBuffer result = new StringBuffer ();
+ CPStringBuilder result = new CPStringBuilder ();
for (int i = 0; i < choiceLimits.length; ++i)
{
result.append(choiceLimits[i]);
diff --git a/libjava/classpath/java/text/CollationElementIterator.java b/libjava/classpath/java/text/CollationElementIterator.java
index 08c5cb5..f6e0022 100644
--- a/libjava/classpath/java/text/CollationElementIterator.java
+++ b/libjava/classpath/java/text/CollationElementIterator.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.ArrayList;
/* Written using "Java Class Libraries", 2nd edition, plus online
@@ -416,7 +418,7 @@ public final class CollationElementIterator
*/
public void setText(CharacterIterator source)
{
- StringBuffer expand = new StringBuffer();
+ CPStringBuilder expand = new CPStringBuilder();
// For now assume we read from the beginning of the string.
for (char c = source.first();
diff --git a/libjava/classpath/java/text/Collator.java b/libjava/classpath/java/text/Collator.java
index 16ee6b1..d6cb5ac 100644
--- a/libjava/classpath/java/text/Collator.java
+++ b/libjava/classpath/java/text/Collator.java
@@ -406,10 +406,12 @@ public abstract class Collator implements Comparator<Object>, Cloneable
// Decompose a single character and append results to the buffer.
// FIXME: for libgcj this is a native method which handles
// decomposition. For Classpath, for now, it does nothing.
+ /*
final void decomposeCharacter (char c, StringBuffer buf)
{
buf.append (c);
}
+ */
/**
* This is the current collation decomposition setting.
diff --git a/libjava/classpath/java/text/DateFormat.java b/libjava/classpath/java/text/DateFormat.java
index 53b757e..dabcb86 100644
--- a/libjava/classpath/java/text/DateFormat.java
+++ b/libjava/classpath/java/text/DateFormat.java
@@ -219,80 +219,6 @@ public abstract class DateFormat extends Format implements Cloneable
* In the U.S. locale, this is 'z'.
*/
public static final int TIMEZONE_FIELD = 17;
- /**
- * Represents the position of the ISO year
- * pattern character in the array of
- * localized pattern characters.
- * In the U.S. locale, this is 'Y'.
- * This is a GNU extension in accordance with
- * the CLDR data used. This value may
- * differ from the normal year value.
- */
- public static final int ISO_YEAR_FIELD = 18;
- /**
- * Represents the position of the localized
- * day of the week pattern character in the
- * array of localized pattern characters.
- * In the U.S. locale, this is 'e'.
- * This is a GNU extension in accordance with
- * the CLDR data used. This value only
- * differs from the day of the week with
- * numeric formatting, in which case the
- * locale's first day of the week is used.
- */
- public static final int LOCALIZED_DAY_OF_WEEK_FIELD = 19;
- /**
- * Represents the position of the extended year
- * pattern character in the array of
- * localized pattern characters.
- * In the U.S. locale, this is 'u'.
- * This is a GNU extension in accordance with
- * the CLDR data used. This value modifies
- * the year value, so as to incorporate the era.
- * For example, in the Gregorian calendar system,
- * the extended year is negative instead of being
- * marked as BC.
- */
- public static final int EXTENDED_YEAR_FIELD = 20;
- /**
- * Represents the position of the modified Julian
- * day pattern character in the array of
- * localized pattern characters.
- * In the U.S. locale, this is 'g'.
- * This is a GNU extension in accordance with
- * the CLDR data used. This value differs
- * from the standard Julian day in that days
- * are marked from midnight onwards rather than
- * noon, and the local time zone affects the value.
- * In simple terms, it can be thought of as all
- * the date fields represented as a single number.
- */
- public static final int MODIFIED_JULIAN_DAY_FIELD = 21;
- /**
- * Represents the position of the millisecond
- * in the day pattern character in the array of
- * localized pattern characters.
- * In the U.S. locale, this is 'A'.
- * This is a GNU extension in accordance with
- * the CLDR data used. This value represents
- * all the time fields (excluding the time zone)
- * numerically, giving the number of milliseconds
- * into the day (e.g. 10 in the morning would
- * be 10 * 60 * 60 * 1000). Any daylight savings
- * offset also affects this value.
- */
- public static final int MILLISECOND_IN_DAY_FIELD = 22;
- /**
- * Represents the position of the RFC822
- * timezone pattern character in the array of
- * localized pattern characters.
- * In the U.S. locale, this is 'Z'.
- * This is a GNU extension in accordance with
- * the CLDR data used. The value is the offset
- * of the current time from GMT e.g. -0500 would
- * be five hours prior to GMT.
- */
- public static final int RFC822_TIMEZONE_FIELD = 23;
public static class Field extends Format.Field
{
@@ -336,18 +262,6 @@ public abstract class DateFormat extends Format implements Cloneable
= new Field("hour0", Calendar.HOUR);
public static final DateFormat.Field TIME_ZONE
= new Field("timezone", Calendar.ZONE_OFFSET);
- public static final DateFormat.Field ISO_YEAR
- = new Field("iso year", Calendar.YEAR);
- public static final DateFormat.Field LOCALIZED_DAY_OF_WEEK
- = new Field("localized day of week", Calendar.DAY_OF_WEEK);
- public static final DateFormat.Field EXTENDED_YEAR
- = new Field("extended year", Calendar.YEAR);
- public static final DateFormat.Field MODIFIED_JULIAN_DAY
- = new Field("julian day", -1);
- public static final DateFormat.Field MILLISECOND_IN_DAY
- = new Field("millisecond in day", -1);
- public static final DateFormat.Field RFC822_TIME_ZONE
- = new Field("rfc822 timezone", Calendar.ZONE_OFFSET);
static final DateFormat.Field[] allFields =
{
@@ -355,9 +269,7 @@ public abstract class DateFormat extends Format implements Cloneable
HOUR_OF_DAY0, MINUTE, SECOND, MILLISECOND,
DAY_OF_WEEK, DAY_OF_YEAR, DAY_OF_WEEK_IN_MONTH,
WEEK_OF_YEAR, WEEK_OF_MONTH, AM_PM, HOUR1, HOUR0,
- TIME_ZONE, ISO_YEAR, LOCALIZED_DAY_OF_WEEK,
- EXTENDED_YEAR, MODIFIED_JULIAN_DAY, MILLISECOND_IN_DAY,
- RFC822_TIME_ZONE
+ TIME_ZONE
};
// For deserialization
diff --git a/libjava/classpath/java/text/DateFormatSymbols.java b/libjava/classpath/java/text/DateFormatSymbols.java
index 406376a..ed953dd0 100644
--- a/libjava/classpath/java/text/DateFormatSymbols.java
+++ b/libjava/classpath/java/text/DateFormatSymbols.java
@@ -40,12 +40,17 @@ package java.text;
import gnu.java.locale.LocaleHelper;
+import java.io.IOException;
+
import java.text.spi.DateFormatSymbolsProvider;
import java.util.ArrayList;
+import java.util.HashMap;
import java.util.List;
import java.util.Locale;
+import java.util.Map;
import java.util.MissingResourceException;
+import java.util.Properties;
import java.util.ResourceBundle;
import java.util.ServiceLoader;
import java.util.TimeZone;
@@ -74,6 +79,27 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
String[] weekdays;
/**
+ * The set of properties for obtaining the metazone data.
+ */
+ private static transient final Properties properties;
+
+ /**
+ * Reads in the properties.
+ */
+ static
+ {
+ properties = new Properties();
+ try
+ {
+ properties.load(DateFormatSymbols.class.getResourceAsStream("metazones.properties"));
+ }
+ catch (IOException exception)
+ {
+ System.out.println("Failed to load weeks resource: " + exception);
+ }
+ }
+
+ /**
* The timezone strings supplied by the runtime.
*/
private String[][] runtimeZoneStrings;
@@ -109,11 +135,71 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
List<String[]> allZones = new ArrayList<String[]>();
try
{
- int index = 0;
- String data = res.getString("zoneStrings");
- String[] zones = data.split("\u00a9");
- for (int a = 0; a < zones.length; ++a)
- allZones.add(zones[a].split("\u00ae"));
+ Map<String,String[]> systemZones = new HashMap<String,String[]>();
+ while (true)
+ {
+ int index = 0;
+ String country = locale.getCountry();
+ String data = res.getString("zoneStrings");
+ String[] zones = data.split("\u00a9");
+ for (int a = 0; a < zones.length; ++a)
+ {
+ String[] strings = zones[a].split("\u00ae");
+ String type = properties.getProperty(strings[0] + "." + country);
+ if (type == null)
+ type = properties.getProperty(strings[0] + ".DEFAULT");
+ if (type != null)
+ strings[0] = type;
+ if (strings.length < 5)
+ {
+ String[] newStrings = new String[5];
+ System.arraycopy(strings, 0, newStrings, 0, strings.length);
+ for (int b = strings.length; b < newStrings.length; ++b)
+ newStrings[b] = "";
+ strings = newStrings;
+ }
+ String[] existing = systemZones.get(strings[0]);
+ if (existing != null && existing.length > 1)
+ {
+ for (int b = 1; b < existing.length; ++b)
+ if (!existing[b].equals(""))
+ strings[b] = existing[b];
+ }
+ systemZones.put(strings[0], strings);
+ }
+ if (res.getLocale() == Locale.ROOT)
+ break;
+ else
+ res = ResourceBundle.getBundle("gnu.java.locale.LocaleInformation",
+ LocaleHelper.getFallbackLocale(res.getLocale()),
+ ClassLoader.getSystemClassLoader());
+ }
+ /* Final sanity check for missing values */
+ for (String[] zstrings : systemZones.values())
+ {
+ if (zstrings[1].equals("") && zstrings[2].equals(""))
+ {
+ for (Map.Entry<Object,Object> entry : properties.entrySet())
+ {
+ String val = (String) entry.getValue();
+ if (val.equals(zstrings[0]))
+ {
+ String key = (String) entry.getKey();
+ String metazone = key.substring(0, key.indexOf("."));
+ String type = properties.getProperty(metazone + "." + locale.getCountry());
+ if (type == null)
+ type = properties.getProperty(metazone + ".DEFAULT");
+ if (type != null)
+ {
+ String[] ostrings = systemZones.get(type);
+ zstrings[1] = ostrings[1];
+ zstrings[2] = ostrings[2];
+ }
+ }
+ }
+ }
+ }
+ allZones.addAll(systemZones.values());
}
catch (MissingResourceException e)
{
@@ -189,9 +275,9 @@ public class DateFormatSymbols implements java.io.Serializable, Cloneable
shortMonths = getStringArray(res, "shortMonths");
shortWeekdays = getStringArray(res, "shortWeekdays");
weekdays = getStringArray(res, "weekdays");
- runtimeZoneStrings = getZoneStrings(res, locale);
dateFormats = formatsForKey(res, "DateFormat");
timeFormats = formatsForKey(res, "TimeFormat");
+ runtimeZoneStrings = getZoneStrings(res, locale);
}
/**
diff --git a/libjava/classpath/java/text/DecimalFormat.java b/libjava/classpath/java/text/DecimalFormat.java
index 61732c1..4251744 100644
--- a/libjava/classpath/java/text/DecimalFormat.java
+++ b/libjava/classpath/java/text/DecimalFormat.java
@@ -43,6 +43,8 @@ exception statement from your version. */
package java.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.math.BigDecimal;
import java.math.BigInteger;
@@ -71,7 +73,7 @@ import java.util.Locale;
* Generally, to get an instance of DecimalFormat you should call the factory
* methods in the <code>NumberFormat</code> base class.
*
- * @author Mario Torre <neugens@limasoftware.net>
+ * @author Mario Torre (neugens@limasoftware.net)
* @author Tom Tromey (tromey@cygnus.com)
* @author Andrew John Hughes (gnu_andrew@member.fsf.org)
*/
@@ -310,7 +312,7 @@ public class DecimalFormat extends NumberFormat
* field. If used on output defines the offsets of the alignment field.
* @return The String representation of this long.
*/
- public StringBuffer format(Object obj, StringBuffer sbuf, FieldPosition pos)
+ public final StringBuffer format(Object obj, StringBuffer sbuf, FieldPosition pos)
{
if (obj instanceof BigInteger)
{
@@ -588,7 +590,7 @@ public class DecimalFormat extends NumberFormat
return Double.valueOf(Double.NaN);
// this will be our final number
- StringBuffer number = new StringBuffer();
+ CPStringBuilder number = new CPStringBuilder();
// special character
char minus = symbols.getMinusSign();
@@ -799,7 +801,30 @@ public class DecimalFormat extends NumberFormat
*/
public void setCurrency(Currency currency)
{
- symbols.setCurrency(currency);
+ Currency current = symbols.getCurrency();
+ if (current != currency)
+ {
+ String oldSymbol = symbols.getCurrencySymbol();
+ int len = oldSymbol.length();
+ symbols.setCurrency(currency);
+ String newSymbol = symbols.getCurrencySymbol();
+ int posPre = positivePrefix.indexOf(oldSymbol);
+ if (posPre != -1)
+ positivePrefix = positivePrefix.substring(0, posPre) +
+ newSymbol + positivePrefix.substring(posPre+len);
+ int negPre = negativePrefix.indexOf(oldSymbol);
+ if (negPre != -1)
+ negativePrefix = negativePrefix.substring(0, negPre) +
+ newSymbol + negativePrefix.substring(negPre+len);
+ int posSuf = positiveSuffix.indexOf(oldSymbol);
+ if (posSuf != -1)
+ positiveSuffix = positiveSuffix.substring(0, posSuf) +
+ newSymbol + positiveSuffix.substring(posSuf+len);
+ int negSuf = negativeSuffix.indexOf(oldSymbol);
+ if (negSuf != -1)
+ negativeSuffix = negativeSuffix.substring(0, negSuf) +
+ newSymbol + negativeSuffix.substring(negSuf+len);
+ }
}
/**
@@ -1003,7 +1028,7 @@ public class DecimalFormat extends NumberFormat
*/
private String patternChars (DecimalFormatSymbols syms)
{
- StringBuffer buf = new StringBuffer ();
+ CPStringBuilder buf = new CPStringBuilder ();
buf.append(syms.getDecimalSeparator());
buf.append(syms.getDigit());
@@ -1028,9 +1053,9 @@ public class DecimalFormat extends NumberFormat
* @param patChars
* @return A StringBuffer with special characters quoted.
*/
- private StringBuffer quoteFix(String text, String patChars)
+ private CPStringBuilder quoteFix(String text, String patChars)
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
int len = text.length();
char ch;
@@ -1058,7 +1083,7 @@ public class DecimalFormat extends NumberFormat
*/
private String computePattern(DecimalFormatSymbols symbols)
{
- StringBuffer mainPattern = new StringBuffer();
+ StringBuilder mainPattern = new StringBuilder();
// We have to at least emit a zero for the minimum number of
// digits. Past that we need hash marks up to the grouping
@@ -1225,7 +1250,7 @@ public class DecimalFormat extends NumberFormat
private int scanFix(String pattern, DecimalFormatSymbols sourceSymbols,
int start, boolean prefix)
{
- StringBuffer buffer = new StringBuffer();
+ CPStringBuilder buffer = new CPStringBuilder();
// the number portion is always delimited by one of those
// characters
@@ -1296,7 +1321,7 @@ public class DecimalFormat extends NumberFormat
currencySymbol = this.symbols.getCurrencySymbol();
// if \u00A4 is doubled, we use the international currency symbol
- if (i < len && pattern.charAt(i + 1) == '\u00A4')
+ if ((i + 1) < len && pattern.charAt(i + 1) == '\u00A4')
{
currencySymbol = this.symbols.getInternationalCurrencySymbol();
i++;
@@ -1320,7 +1345,7 @@ public class DecimalFormat extends NumberFormat
else if (ch == '\'')
{
// QUOTE
- if (i < len && pattern.charAt(i + 1) == '\'')
+ if ((i + 1) < len && pattern.charAt(i + 1) == '\'')
{
// we need to add ' to the buffer
buffer.append(ch);
@@ -1599,7 +1624,7 @@ public class DecimalFormat extends NumberFormat
DecimalFormatSymbols sourceSymbols,
int start)
{
- StringBuffer buffer = new StringBuffer();
+ StringBuilder buffer = new StringBuilder();
// the number portion is always delimited by one of those
// characters
@@ -1692,7 +1717,7 @@ public class DecimalFormat extends NumberFormat
else if (ch == '\'')
{
// QUOTE
- if (i < len && pattern.charAt(i + 1) == '\'')
+ if ((i + 1) < len && pattern.charAt(i + 1) == '\'')
{
// we need to add ' to the buffer
buffer.append(ch);
@@ -2180,7 +2205,7 @@ public class DecimalFormat extends NumberFormat
else
{
char zero = symbols.getZeroDigit();
- StringBuffer _result = new StringBuffer(src);
+ CPStringBuilder _result = new CPStringBuilder(src);
for (int i = len; i < minimumDigits; i++)
{
_result.append(zero);
diff --git a/libjava/classpath/java/text/DecimalFormatSymbols.java b/libjava/classpath/java/text/DecimalFormatSymbols.java
index f87ebbf..b7edf39 100644
--- a/libjava/classpath/java/text/DecimalFormatSymbols.java
+++ b/libjava/classpath/java/text/DecimalFormatSymbols.java
@@ -170,6 +170,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable
{
res = null;
}
+ locale = loc;
currency = Currency.getInstance("XXX");
currencySymbol = "?";
intlCurrencySymbol = "XXX";
@@ -204,7 +205,6 @@ public class DecimalFormatSymbols implements Cloneable, Serializable
percent = safeGetChar (res, "percent", '%');
perMill = safeGetChar (res, "perMill", '\u2030');
zeroDigit = safeGetChar (res, "zeroDigit", '0');
- locale = loc;
}
/**
@@ -430,7 +430,7 @@ public class DecimalFormatSymbols implements Cloneable, Serializable
public void setCurrency (Currency currency)
{
intlCurrencySymbol = currency.getCurrencyCode();
- currencySymbol = currency.getSymbol();
+ currencySymbol = currency.getSymbol(locale);
this.currency = currency;
}
diff --git a/libjava/classpath/java/text/Format.java b/libjava/classpath/java/text/Format.java
index 38fda34..7159f46 100644
--- a/libjava/classpath/java/text/Format.java
+++ b/libjava/classpath/java/text/Format.java
@@ -81,7 +81,7 @@ public abstract class Format implements Serializable, Cloneable
* It performs no actions, but acts as a default constructor for
* subclasses.
*/
- public Format ()
+ protected Format ()
{
}
diff --git a/libjava/classpath/java/text/MessageFormat.java b/libjava/classpath/java/text/MessageFormat.java
index 5a595f5..c5579bf 100644
--- a/libjava/classpath/java/text/MessageFormat.java
+++ b/libjava/classpath/java/text/MessageFormat.java
@@ -194,7 +194,7 @@ public class MessageFormat extends Format
// Helper that returns the text up to the next format opener. The
// text is put into BUFFER. Returns index of character after end of
// string. Throws IllegalArgumentException on error.
- private static int scanString(String pat, int index, StringBuffer buffer)
+ private static int scanString(String pat, int index, StringBuilder buffer)
{
int max = pat.length();
buffer.setLength(0);
@@ -234,7 +234,7 @@ public class MessageFormat extends Format
// This helper retrieves a single part of a format element. Returns
// the index of the terminating character.
private static int scanFormatElement(String pat, int index,
- StringBuffer buffer, char term)
+ StringBuilder buffer, char term)
{
int max = pat.length();
buffer.setLength(0);
@@ -281,7 +281,7 @@ public class MessageFormat extends Format
// This is used to parse a format element and whatever non-format
// text might trail it.
- private static int scanFormat(String pat, int index, StringBuffer buffer,
+ private static int scanFormat(String pat, int index, StringBuilder buffer,
Vector elts, Locale locale)
{
MessageFormatElement mfe = new MessageFormatElement ();
@@ -342,7 +342,7 @@ public class MessageFormat extends Format
{
pattern = newPattern;
- StringBuffer tempBuffer = new StringBuffer ();
+ StringBuilder tempBuffer = new StringBuilder ();
int index = scanString (newPattern, 0, tempBuffer);
leader = tempBuffer.toString();
diff --git a/libjava/classpath/java/text/NumberFormat.java b/libjava/classpath/java/text/NumberFormat.java
index 4a72f44..0a436d0 100644
--- a/libjava/classpath/java/text/NumberFormat.java
+++ b/libjava/classpath/java/text/NumberFormat.java
@@ -653,7 +653,7 @@ public abstract class NumberFormat extends Format implements Cloneable
/**
* This is a default constructor for use by subclasses.
*/
- public NumberFormat ()
+ protected NumberFormat ()
{
}
diff --git a/libjava/classpath/java/text/RuleBasedCollator.java b/libjava/classpath/java/text/RuleBasedCollator.java
index 7ec18dc..fdd1446 100644
--- a/libjava/classpath/java/text/RuleBasedCollator.java
+++ b/libjava/classpath/java/text/RuleBasedCollator.java
@@ -404,7 +404,7 @@ public class RuleBasedCollator extends Collator
{
boolean ignoreChars = (base_offset == 0);
int operator = -1;
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
boolean doubleQuote = false;
boolean eatingChars = false;
boolean nextIsModifier = false;
diff --git a/libjava/classpath/java/text/SimpleDateFormat.java b/libjava/classpath/java/text/SimpleDateFormat.java
index 934fb42..4dcda4f 100644
--- a/libjava/classpath/java/text/SimpleDateFormat.java
+++ b/libjava/classpath/java/text/SimpleDateFormat.java
@@ -40,6 +40,8 @@ exception statement from your version. */
package java.text;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.text.AttributedFormatBuffer;
import gnu.java.text.FormatBuffer;
import gnu.java.text.FormatCharacterIterator;
@@ -61,6 +63,8 @@ import java.util.regex.Pattern;
/**
* SimpleDateFormat provides convenient methods for parsing and formatting
* dates using Gregorian calendars (see java.util.GregorianCalendar).
+ * This class is not thread-safe; external synchronisation should be applied
+ * if an instance is to be accessed from multiple threads.
*/
public class SimpleDateFormat extends DateFormat
{
@@ -139,9 +143,9 @@ public class SimpleDateFormat extends DateFormat
*/
public String toString()
{
- StringBuilder builder;
+ CPStringBuilder builder;
- builder = new StringBuilder(getClass().getName());
+ builder = new CPStringBuilder(getClass().getName());
builder.append("[field=");
builder.append(field);
builder.append(", size=");
@@ -231,10 +235,16 @@ public class SimpleDateFormat extends DateFormat
*/
private static final long serialVersionUID = 4774881970558875024L;
- // This string is specified in the root of the CLDR. We set it here
- // rather than doing a DateFormatSymbols(Locale.US).getLocalPatternChars()
- // since someone could theoretically change those values (though unlikely).
- private static final String standardChars = "GyMdkHmsSEDFwWahKzYeugAZ";
+ // This string is specified in the Java class libraries.
+ private static final String standardChars = "GyMdkHmsSEDFwWahKzZ";
+
+ /**
+ * Represents the position of the RFC822 timezone pattern character
+ * in the array of localized pattern characters. In the
+ * U.S. locale, this is 'Z'. The value is the offset of the current
+ * time from GMT e.g. -0500 would be five hours prior to GMT.
+ */
+ private static final int RFC822_TIMEZONE_FIELD = 18;
/**
* Reads the serialized version of this object.
@@ -322,7 +332,7 @@ public class SimpleDateFormat extends DateFormat
// Look for the terminating quote. However, if we
// see a '', that represents a literal quote and
// we must iterate.
- StringBuilder buf = new StringBuilder();
+ CPStringBuilder buf = new CPStringBuilder();
int oldPos = i + 1;
do
{
@@ -372,7 +382,7 @@ public class SimpleDateFormat extends DateFormat
*/
public String toString()
{
- StringBuilder output = new StringBuilder(getClass().getName());
+ CPStringBuilder output = new CPStringBuilder(getClass().getName());
output.append("[tokens=");
output.append(tokens);
output.append(", formatData=");
@@ -554,7 +564,7 @@ public class SimpleDateFormat extends DateFormat
String oldChars, String newChars)
{
int len = pattern.length();
- StringBuilder buf = new StringBuilder(len);
+ CPStringBuilder buf = new CPStringBuilder(len);
boolean quoted = false;
for (int i = 0; i < len; i++)
{
@@ -802,7 +812,7 @@ public class SimpleDateFormat extends DateFormat
buffer.append (zoneID);
break;
case RFC822_TIMEZONE_FIELD:
- buffer.setDefaultAttribute(DateFormat.Field.RFC822_TIME_ZONE);
+ buffer.setDefaultAttribute(DateFormat.Field.TIME_ZONE);
int pureMinutes = (calendar.get(Calendar.ZONE_OFFSET) +
calendar.get(Calendar.DST_OFFSET)) / (1000 * 60);
String sign = (pureMinutes < 0) ? "-" : "+";
diff --git a/libjava/classpath/java/util/AbstractCollection.java b/libjava/classpath/java/util/AbstractCollection.java
index ef74342..a11654e 100644
--- a/libjava/classpath/java/util/AbstractCollection.java
+++ b/libjava/classpath/java/util/AbstractCollection.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.lang.reflect.Array;
/**
@@ -434,7 +436,7 @@ public abstract class AbstractCollection<E>
public String toString()
{
Iterator itr = iterator();
- StringBuffer r = new StringBuffer("[");
+ CPStringBuilder r = new CPStringBuilder("[");
boolean hasNext = itr.hasNext();
while (hasNext)
{
diff --git a/libjava/classpath/java/util/AbstractMap.java b/libjava/classpath/java/util/AbstractMap.java
index 02a30a2..5d59db9 100644
--- a/libjava/classpath/java/util/AbstractMap.java
+++ b/libjava/classpath/java/util/AbstractMap.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
/**
@@ -524,7 +526,7 @@ public abstract class AbstractMap<K, V> implements Map<K, V>
public String toString()
{
Iterator<Map.Entry<K, V>> entries = entrySet().iterator();
- StringBuilder r = new StringBuilder("{");
+ CPStringBuilder r = new CPStringBuilder("{");
for (int pos = size(); pos > 0; pos--)
{
Map.Entry<K, V> entry = entries.next();
diff --git a/libjava/classpath/java/util/ArrayList.java b/libjava/classpath/java/util/ArrayList.java
index 0693049..1fb25d8 100644
--- a/libjava/classpath/java/util/ArrayList.java
+++ b/libjava/classpath/java/util/ArrayList.java
@@ -472,8 +472,7 @@ public class ArrayList<E> extends AbstractList<E>
// use of a negative index will cause an ArrayIndexOutOfBoundsException,
// a subclass of the required exception, with no effort on our part.
if (index > size)
- throw new IndexOutOfBoundsException("Index: " + index + ", Size: "
- + size);
+ raiseBoundsError(index);
}
/**
@@ -488,11 +487,25 @@ public class ArrayList<E> extends AbstractList<E>
// use of a negative index will cause an ArrayIndexOutOfBoundsException,
// a subclass of the required exception, with no effort on our part.
if (index >= size)
- throw new IndexOutOfBoundsException("Index: " + index + ", Size: "
- + size);
+ raiseBoundsError(index);
}
/**
+ * Raise the ArrayIndexOfOutBoundsException.
+ *
+ * @param index the index of the access
+ * @throws IndexOutOfBoundsException unconditionally
+ */
+ private void raiseBoundsError(int index)
+ {
+ // Implementaion note: put in a separate method to make the JITs job easier
+ // (separate common from uncommon code at method boundaries when trivial to
+ // do so).
+ throw new IndexOutOfBoundsException("Index: " + index + ", Size: " + size);
+ }
+
+
+ /**
* Remove from this list all elements contained in the given collection.
* This is not public, due to Sun's API, but this performs in linear
* time while the default behavior of AbstractList would be quadratic.
diff --git a/libjava/classpath/java/util/Arrays.java b/libjava/classpath/java/util/Arrays.java
index e5f7727..d154eb1 100644
--- a/libjava/classpath/java/util/Arrays.java
+++ b/libjava/classpath/java/util/Arrays.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
import java.lang.reflect.Array;
@@ -2935,7 +2937,7 @@ public class Arrays
{
if (v == null)
return "null";
- StringBuilder b = new StringBuilder("[");
+ CPStringBuilder b = new CPStringBuilder("[");
for (int i = 0; i < v.length; ++i)
{
if (i > 0)
@@ -2957,7 +2959,7 @@ public class Arrays
{
if (v == null)
return "null";
- StringBuilder b = new StringBuilder("[");
+ CPStringBuilder b = new CPStringBuilder("[");
for (int i = 0; i < v.length; ++i)
{
if (i > 0)
@@ -2979,7 +2981,7 @@ public class Arrays
{
if (v == null)
return "null";
- StringBuilder b = new StringBuilder("[");
+ CPStringBuilder b = new CPStringBuilder("[");
for (int i = 0; i < v.length; ++i)
{
if (i > 0)
@@ -3001,7 +3003,7 @@ public class Arrays
{
if (v == null)
return "null";
- StringBuilder b = new StringBuilder("[");
+ CPStringBuilder b = new CPStringBuilder("[");
for (int i = 0; i < v.length; ++i)
{
if (i > 0)
@@ -3023,7 +3025,7 @@ public class Arrays
{
if (v == null)
return "null";
- StringBuilder b = new StringBuilder("[");
+ CPStringBuilder b = new CPStringBuilder("[");
for (int i = 0; i < v.length; ++i)
{
if (i > 0)
@@ -3045,7 +3047,7 @@ public class Arrays
{
if (v == null)
return "null";
- StringBuilder b = new StringBuilder("[");
+ CPStringBuilder b = new CPStringBuilder("[");
for (int i = 0; i < v.length; ++i)
{
if (i > 0)
@@ -3067,7 +3069,7 @@ public class Arrays
{
if (v == null)
return "null";
- StringBuilder b = new StringBuilder("[");
+ CPStringBuilder b = new CPStringBuilder("[");
for (int i = 0; i < v.length; ++i)
{
if (i > 0)
@@ -3089,7 +3091,7 @@ public class Arrays
{
if (v == null)
return "null";
- StringBuilder b = new StringBuilder("[");
+ CPStringBuilder b = new CPStringBuilder("[");
for (int i = 0; i < v.length; ++i)
{
if (i > 0)
@@ -3111,7 +3113,7 @@ public class Arrays
{
if (v == null)
return "null";
- StringBuilder b = new StringBuilder("[");
+ CPStringBuilder b = new CPStringBuilder("[");
for (int i = 0; i < v.length; ++i)
{
if (i > 0)
@@ -3122,7 +3124,7 @@ public class Arrays
return b.toString();
}
- private static void deepToString(Object[] v, StringBuilder b, HashSet seen)
+ private static void deepToString(Object[] v, CPStringBuilder b, HashSet seen)
{
b.append("[");
for (int i = 0; i < v.length; ++i)
@@ -3171,7 +3173,7 @@ public class Arrays
if (v == null)
return "null";
HashSet seen = new HashSet();
- StringBuilder b = new StringBuilder();
+ CPStringBuilder b = new CPStringBuilder();
deepToString(v, b, seen);
return b.toString();
}
diff --git a/libjava/classpath/java/util/BitSet.java b/libjava/classpath/java/util/BitSet.java
index e4f923b..13bf8a1 100644
--- a/libjava/classpath/java/util/BitSet.java
+++ b/libjava/classpath/java/util/BitSet.java
@@ -36,6 +36,9 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
package java.util;
+
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
/* Written using "Java Class Libraries", 2nd edition, ISBN 0-201-31002-3
@@ -687,7 +690,7 @@ public class BitSet implements Cloneable, Serializable
*/
public String toString()
{
- StringBuffer r = new StringBuffer("{");
+ CPStringBuilder r = new CPStringBuilder("{");
boolean first = true;
for (int i = 0; i < bits.length; ++i)
{
diff --git a/libjava/classpath/java/util/Calendar.java b/libjava/classpath/java/util/Calendar.java
index 712296b..0449e12 100644
--- a/libjava/classpath/java/util/Calendar.java
+++ b/libjava/classpath/java/util/Calendar.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -485,6 +487,28 @@ public abstract class Calendar
}
/**
+ * The set of properties for obtaining the minimum number of days in
+ * the first week.
+ */
+ private static transient final Properties properties;
+
+ /**
+ * Reads in the properties.
+ */
+ static
+ {
+ properties = new Properties();
+ try
+ {
+ properties.load(Calendar.class.getResourceAsStream("weeks.properties"));
+ }
+ catch (IOException exception)
+ {
+ System.out.println("Failed to load weeks resource: " + exception);
+ }
+ }
+
+ /**
* Constructs a new Calendar with the default time zone and the default
* locale.
*/
@@ -505,9 +529,13 @@ public abstract class Calendar
lenient = true;
String[] days = { "", "sun", "mon", "tue", "wed", "thu", "fri", "sat" };
- ResourceBundle rb = getBundle(locale);
- String min = (String) rb.getObject("minNumberOfDaysInFirstWeek");
- String first = (String) rb.getObject("firstDayOfWeek");
+ String country = locale.getCountry();
+ String min = properties.getProperty("minDays." + country);
+ if (min == null)
+ min = properties.getProperty("minDays.DEFAULT");
+ String first = properties.getProperty("firstDay." + country);
+ if (first == null)
+ first = properties.getProperty("firstDay.DEFAULT");
try
{
if (min != null)
@@ -1328,7 +1356,7 @@ public abstract class Calendar
*/
public String toString()
{
- StringBuilder sb = new StringBuilder(getClass().getName());
+ CPStringBuilder sb = new CPStringBuilder(getClass().getName());
sb.append('[');
sb.append("time=");
if (isTimeSet)
diff --git a/libjava/classpath/java/util/Collections.java b/libjava/classpath/java/util/Collections.java
index ae2010f..066c9d5 100644
--- a/libjava/classpath/java/util/Collections.java
+++ b/libjava/classpath/java/util/Collections.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
/**
@@ -1135,7 +1137,7 @@ public class Collections
*/
public String toString()
{
- StringBuffer r = new StringBuffer("{");
+ CPStringBuilder r = new CPStringBuilder("{");
for (int i = n - 1; --i > 0; )
r.append(element).append(", ");
r.append(element).append("}");
diff --git a/libjava/classpath/java/util/Currency.java b/libjava/classpath/java/util/Currency.java
index b5da13c..11235f1 100644
--- a/libjava/classpath/java/util/Currency.java
+++ b/libjava/classpath/java/util/Currency.java
@@ -139,7 +139,7 @@ public final class Currency
}
catch (IOException exception)
{
- System.out.println("Failed to load currency resource: " + exception);
+ throw new InternalError("Failed to load currency resource: " + exception);
}
}
diff --git a/libjava/classpath/java/util/Date.java b/libjava/classpath/java/util/Date.java
index 8646c19..5f83cd0 100644
--- a/libjava/classpath/java/util/Date.java
+++ b/libjava/classpath/java/util/Date.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -722,7 +724,7 @@ public class Date
boolean localTimezone = true;
// Trim out any nested stuff in parentheses now to make parsing easier.
- StringBuilder buf = new StringBuilder();
+ CPStringBuilder buf = new CPStringBuilder();
int parenNesting = 0;
int len = string.length();
for (int i = 0; i < len; i++)
diff --git a/libjava/classpath/java/util/Formatter.java b/libjava/classpath/java/util/Formatter.java
index 8213078..9217d93 100644
--- a/libjava/classpath/java/util/Formatter.java
+++ b/libjava/classpath/java/util/Formatter.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Closeable;
import java.io.File;
import java.io.FileNotFoundException;
@@ -470,7 +472,7 @@ public final class Formatter
* @param width the width of the numeric value.
* @param isNegative true if the value is negative.
*/
- private void applyLocalization(StringBuilder builder, int flags, int width,
+ private void applyLocalization(CPStringBuilder builder, int flags, int width,
boolean isNegative)
{
DecimalFormatSymbols dfsyms;
@@ -741,9 +743,9 @@ public final class Formatter
* @param conversion the conversion character.
* @return the result.
*/
- private StringBuilder basicIntegralConversion(Object arg, int flags,
- int width, int precision,
- int radix, char conversion)
+ private CPStringBuilder basicIntegralConversion(Object arg, int flags,
+ int width, int precision,
+ int radix, char conversion)
{
assert radix == 8 || radix == 10 || radix == 16;
noPrecision(precision);
@@ -798,7 +800,7 @@ public final class Formatter
else
throw new IllegalFormatConversionException(conversion, arg.getClass());
- return new StringBuilder(result);
+ return new CPStringBuilder(result);
}
/**
@@ -819,9 +821,9 @@ public final class Formatter
{
assert radix == 8 || radix == 16;
- StringBuilder builder = basicIntegralConversion(arg, flags, width,
- precision, radix,
- conversion);
+ CPStringBuilder builder = basicIntegralConversion(arg, flags, width,
+ precision, radix,
+ conversion);
int insertPoint = 0;
// Insert the sign.
@@ -897,9 +899,9 @@ public final class Formatter
int precision, char conversion)
throws IOException
{
- StringBuilder builder = basicIntegralConversion(arg, flags, width,
- precision, 10,
- conversion);
+ CPStringBuilder builder = basicIntegralConversion(arg, flags, width,
+ precision, 10,
+ conversion);
boolean isNegative = false;
if (builder.charAt(0) == '-')
{
@@ -920,7 +922,7 @@ public final class Formatter
* @param conversion the formatting character to specify the type of data.
* @param syms the date formatting symbols.
*/
- private void singleDateTimeConversion(StringBuilder builder, Calendar cal,
+ private void singleDateTimeConversion(CPStringBuilder builder, Calendar cal,
char conversion,
DateFormatSymbols syms)
{
@@ -1151,7 +1153,7 @@ public final class Formatter
else
syms = new DateFormatSymbols(fmtLocale);
- StringBuilder result = new StringBuilder();
+ CPStringBuilder result = new CPStringBuilder();
singleDateTimeConversion(result, cal, subConversion, syms);
genericFormat(result.toString(), flags, width, precision);
diff --git a/libjava/classpath/java/util/Hashtable.java b/libjava/classpath/java/util/Hashtable.java
index 07bd946..0851de8 100644
--- a/libjava/classpath/java/util/Hashtable.java
+++ b/libjava/classpath/java/util/Hashtable.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -579,7 +581,7 @@ public class Hashtable<K, V> extends Dictionary<K, V>
// would repeatedly re-lock/release the monitor, we directly use the
// unsynchronized EntryIterator instead.
Iterator<Map.Entry<K, V>> entries = new EntryIterator();
- StringBuilder r = new StringBuilder("{");
+ CPStringBuilder r = new CPStringBuilder("{");
for (int pos = size; pos > 0; pos--)
{
r.append(entries.next());
diff --git a/libjava/classpath/java/util/Locale.java b/libjava/classpath/java/util/Locale.java
index cd372f2..c28709f 100644
--- a/libjava/classpath/java/util/Locale.java
+++ b/libjava/classpath/java/util/Locale.java
@@ -39,6 +39,9 @@ exception statement from your version. */
package java.util;
import gnu.classpath.SystemProperties;
+
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.locale.LocaleHelper;
import java.io.IOException;
@@ -548,7 +551,7 @@ public final class Locale implements Serializable, Cloneable
return "";
else if (country.length() == 0 && variant.length() == 0)
return language;
- StringBuffer result = new StringBuffer(language);
+ CPStringBuilder result = new CPStringBuilder(language);
result.append('_').append(country);
if (variant.length() != 0)
result.append('_').append(variant);
@@ -922,7 +925,7 @@ public final class Locale implements Serializable, Cloneable
*/
public String getDisplayName(Locale locale)
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
int count = 0;
String[] delimiters = {"", " (", ","};
if (language.length() != 0)
diff --git a/libjava/classpath/java/util/Properties.java b/libjava/classpath/java/util/Properties.java
index e294fee..a57004b 100644
--- a/libjava/classpath/java/util/Properties.java
+++ b/libjava/classpath/java/util/Properties.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
@@ -46,6 +48,7 @@ import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.io.PrintStream;
import java.io.PrintWriter;
+import java.io.Reader;
import javax.xml.stream.XMLInputFactory;
import javax.xml.stream.XMLStreamConstants;
@@ -155,7 +158,7 @@ public class Properties extends Hashtable<Object, Object>
}
/**
- * Reads a property list from an input stream. The stream should
+ * Reads a property list from a character stream. The stream should
* have the following format: <br>
*
* An empty line or a line starting with <code>#</code> or
@@ -187,15 +190,14 @@ weekdays: Sunday,Monday,Tuesday,Wednesday,\\
# The safest way to include a space at the end of a value:
label = Name:\\u0020</pre>
*
- * @param inStream the input stream
+ * @param inReader the input {@link java.io.Reader}.
* @throws IOException if an error occurred when reading the input
* @throws NullPointerException if in is null
+ * @since 1.6
*/
- public void load(InputStream inStream) throws IOException
+ public void load(Reader inReader) throws IOException
{
- // The spec says that the file must be encoded using ISO-8859-1.
- BufferedReader reader =
- new BufferedReader(new InputStreamReader(inStream, "ISO-8859-1"));
+ BufferedReader reader = new BufferedReader(inReader);
String line;
while ((line = reader.readLine()) != null)
@@ -217,7 +219,7 @@ label = Name:\\u0020</pre>
// Try to short-circuit when there is no escape char.
int start = pos;
boolean needsEscape = line.indexOf('\\', pos) != -1;
- StringBuilder key = needsEscape ? new StringBuilder() : null;
+ CPStringBuilder key = needsEscape ? new CPStringBuilder() : null;
while (pos < line.length()
&& ! Character.isWhitespace(c = line.charAt(pos++))
&& c != '=' && c != ':')
@@ -361,6 +363,24 @@ label = Name:\\u0020</pre>
}
/**
+ * Reads a property list from the supplied input stream.
+ * This method has the same functionality as {@link #load(Reader)}
+ * but the character encoding is assumed to be ISO-8859-1.
+ * Unicode characters not within the Latin1 set supplied by
+ * ISO-8859-1 should be escaped using '\\uXXXX' where XXXX
+ * is the UTF-16 code unit in hexadecimal.
+ *
+ * @param inStream the byte stream to read the property list from.
+ * @throws IOException if an I/O error occurs.
+ * @see #load(Reader)
+ * @since 1.2
+ */
+ public void load(InputStream inStream) throws IOException
+ {
+ load(new InputStreamReader(inStream, "ISO-8859-1"));
+ }
+
+ /**
* Calls <code>store(OutputStream out, String header)</code> and
* ignores the IOException that may be thrown.
*
@@ -421,7 +441,7 @@ label = Name:\\u0020</pre>
Iterator iter = entrySet ().iterator ();
int i = size ();
- StringBuilder s = new StringBuilder (); // Reuse the same buffer.
+ CPStringBuilder s = new CPStringBuilder (); // Reuse the same buffer.
while (--i >= 0)
{
Map.Entry entry = (Map.Entry) iter.next ();
@@ -564,7 +584,7 @@ label = Name:\\u0020</pre>
* leading spaces must be escaped for the value
* @see #store(OutputStream, String)
*/
- private void formatForOutput(String str, StringBuilder buffer, boolean key)
+ private void formatForOutput(String str, CPStringBuilder buffer, boolean key)
{
if (key)
{
@@ -745,7 +765,7 @@ label = Name:\\u0020</pre>
Boolean.FALSE);
XMLStreamReader reader = factory.createXMLStreamReader(in);
String name, key = null;
- StringBuffer buf = null;
+ CPStringBuilder buf = null;
while (reader.hasNext())
{
switch (reader.next())
@@ -760,7 +780,7 @@ label = Name:\\u0020</pre>
String msg = "missing 'key' attribute";
throw new InvalidPropertiesFormatException(msg);
}
- buf = new StringBuffer();
+ buf = new CPStringBuilder();
}
else if (!"properties".equals(name) && !"comment".equals(name))
{
diff --git a/libjava/classpath/java/util/PropertyResourceBundle.java b/libjava/classpath/java/util/PropertyResourceBundle.java
index 53a1af5..b528f08 100644
--- a/libjava/classpath/java/util/PropertyResourceBundle.java
+++ b/libjava/classpath/java/util/PropertyResourceBundle.java
@@ -40,6 +40,7 @@ package java.util;
import java.io.IOException;
import java.io.InputStream;
+import java.io.Reader;
/**
* This class is a concrete <code>ResourceBundle</code> that gets it
@@ -97,7 +98,8 @@ public class PropertyResourceBundle extends ResourceBundle
private Properties properties;
/**
- * Creates a new property resource bundle.
+ * Creates a new property resource bundle. The property file must
+ * be encoded using ISO-8859-1.
*
* @param stream an input stream, where the resources are read from
* @throws NullPointerException if stream is null
@@ -110,6 +112,21 @@ public class PropertyResourceBundle extends ResourceBundle
}
/**
+ * Creates a new property resource bundle. The encoding of the property
+ * file is determined by the supplied {@link Reader} object.
+ *
+ * @param reader an input stream, where the resources are read from
+ * @throws NullPointerException if stream is null
+ * @throws IOException if reading the stream fails
+ * @since 1.6
+ */
+ public PropertyResourceBundle(Reader reader) throws IOException
+ {
+ properties = new Properties();
+ properties.load(reader);
+ }
+
+ /**
* Called by <code>getObject</code> when a resource is needed. This
* returns the resource given by the key.
*
diff --git a/libjava/classpath/java/util/ResourceBundle.java b/libjava/classpath/java/util/ResourceBundle.java
index 9b82bc8..2124340 100644
--- a/libjava/classpath/java/util/ResourceBundle.java
+++ b/libjava/classpath/java/util/ResourceBundle.java
@@ -41,6 +41,8 @@ package java.util;
import gnu.classpath.VMStackWalker;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.InputStream;
@@ -121,9 +123,10 @@ public abstract class ResourceBundle
*
* @see BundleKey
*/
- private static Map bundleCache = new LinkedHashMap(CACHE_SIZE + 1, 0.75F, true)
+ private static Map<BundleKey,Object> bundleCache =
+ new LinkedHashMap<BundleKey,Object>(CACHE_SIZE + 1, 0.75F, true)
{
- public boolean removeEldestEntry(Map.Entry entry)
+ public boolean removeEldestEntry(Map.Entry<BundleKey,Object> entry)
{
return size() > CACHE_SIZE;
}
@@ -294,14 +297,29 @@ public abstract class ResourceBundle
&& locale.equals(key.locale)
&& classLoader.equals(key.classLoader);
}
+
+ public String toString()
+ {
+ CPStringBuilder builder = new CPStringBuilder(getClass().getName());
+ builder.append("[defaultLocale=");
+ builder.append(defaultLocale);
+ builder.append(",baseName=");
+ builder.append(baseName);
+ builder.append(",locale=");
+ builder.append(locale);
+ builder.append(",classLoader=");
+ builder.append(classLoader);
+ builder.append("]");
+ return builder.toString();
+ }
}
/** A cache lookup key. This avoids having to a new one for every
* getBundle() call. */
- private static BundleKey lookupKey = new BundleKey();
+ private static final BundleKey lookupKey = new BundleKey();
/** Singleton cache entry to represent previous failed lookups. */
- private static Object nullEntry = new Object();
+ private static final Object nullEntry = new Object();
/**
* Get the appropriate ResourceBundle for the given locale. The following
@@ -452,7 +470,7 @@ public abstract class ResourceBundle
ResourceBundle bundle = null;
try
{
- Class rbClass;
+ Class<?> rbClass;
if (classloader == null)
rbClass = Class.forName(localizedName);
else
@@ -495,7 +513,7 @@ public abstract class ResourceBundle
}
/**
- * Tries to load a the bundle for a given locale, also loads the backup
+ * Tries to load the bundle for a given locale, also loads the backup
* locales with the same language.
*
* @param baseName the raw bundle name, without locale qualifiers
@@ -515,9 +533,9 @@ public abstract class ResourceBundle
int baseLen = baseName.length();
- // Build up a StringBuffer containing the complete bundle name, fully
+ // Build up a CPStringBuilder containing the complete bundle name, fully
// qualified by locale.
- StringBuffer sb = new StringBuffer(baseLen + variant.length() + 7);
+ CPStringBuilder sb = new CPStringBuilder(baseLen + variant.length() + 7);
sb.append(baseName);
@@ -568,4 +586,40 @@ public abstract class ResourceBundle
return first;
}
+
+ /**
+ * Remove all resources from the cache that were loaded
+ * using the class loader of the calling class.
+ *
+ * @since 1.6
+ */
+ public static final void clearCache()
+ {
+ clearCache(VMStackWalker.getCallingClassLoader());
+ }
+
+ /**
+ * Remove all resources from the cache that were loaded
+ * using the specified class loader.
+ *
+ * @param loader the loader used for the bundles that will be removed.
+ * @throws NullPointerException if {@code loader} is {@code null}.
+ * @since 1.6
+ */
+ public static final void clearCache(ClassLoader loader)
+ {
+ if (loader == null)
+ throw new NullPointerException("The loader can not be null.");
+ synchronized (ResourceBundle.class)
+ {
+ Iterator<BundleKey> iter = bundleCache.keySet().iterator();
+ while (iter.hasNext())
+ {
+ BundleKey key = iter.next();
+ if (key.classLoader == loader)
+ iter.remove();
+ }
+ }
+ }
+
}
diff --git a/libjava/classpath/java/util/Scanner.java b/libjava/classpath/java/util/Scanner.java
new file mode 100644
index 0000000..cc39f19
--- /dev/null
+++ b/libjava/classpath/java/util/Scanner.java
@@ -0,0 +1,2223 @@
+/* java.util.Scanner -- Parses primitive types and strings using regexps
+ Copyright (C) 2007 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.util;
+
+import java.io.BufferedInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.math.BigDecimal;
+import java.math.BigInteger;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.channels.ReadableByteChannel;
+
+import java.text.DecimalFormat;
+import java.text.DecimalFormatSymbols;
+import java.text.NumberFormat;
+import java.text.ParseException;
+
+import java.util.Iterator;
+import java.util.Locale;
+import java.util.regex.MatchResult;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @author E0327023 Hernadi Laszlo
+ */
+public class Scanner
+ implements Iterator <String>
+{
+ private static final String NOT_LONG = "\" is not a long"; //$NON-NLS-1$
+
+ private static final String ERR_PREFIX = "\""; //$NON-NLS-1$
+
+ private static final String NOT_INT = "\" is not an integer"; //$NON-NLS-1$
+
+ private static final String NOT_DOUBLE = "\" is not a double"; //$NON-NLS-1$
+
+ private static final String NOT_BYTE = "\" is not a byte"; //$NON-NLS-1$
+
+ private static final String NOT_BOOLEAN = "\" is not a boolean"; //$NON-NLS-1$
+
+ private static final String IS_NOT = "\" is not "; //$NON-NLS-1$
+
+ private static final String DEFAULT_PATTERN_S = "\\p{javaWhitespace}+"; //$NON-NLS-1$
+
+ private static final Pattern DEFAULT_PATTERN =
+ Pattern.compile (DEFAULT_PATTERN_S);
+
+ private static final String BIG_INTEGER = "BigInteger"; //$NON-NLS-1$
+
+ private final static String NEW_LINE =
+ System.getProperty ("line.separator");
+
+ private IOException lastIOException = null;
+
+ /**
+ * An InputStream source if a Constructor with an InputStream source is called, otherwise it
+ * stays <source> null </source>.
+ */
+ private InputStream bIS = null;
+
+ /**
+ * Length of the input Buffer, which is the maximum bytes to be read at once.
+ */
+ private final int MaxBufferLen = 1000000;
+
+ /**
+ * Minimum buffer length. If there are less chars in the Buffer than this value reading from
+ * source is tried.
+ */
+ private final int MIN_BUF_LEN = 100;
+
+ /**
+ * Maximum number of processed chars in the Buffer. If exeeded, all processed chars from the
+ * beginning of the Buffer will be discarded to save space. The bytes left are copyed into a new
+ * Buffer.
+ */
+ private final int MAX_PREFIX = 10000;
+
+ /**
+ * The Buffer which is used by the Matcher to find given patterns. It is filled up when matcher
+ * hits end or <code> MIN_BUF_LEN </code> is reached.
+ */
+ private String actBuffer = new String ();
+
+ /**
+ * The current radix to use by the methods getNextXXX and hasNextXXX.
+ */
+ private int currentRadix = 10;
+
+ /**
+ * The current locale.
+ *
+ * @see #useLocale(Locale)
+ * @see #locale()
+ */
+ private Locale actLocale = Locale.getDefault ();
+
+ /**
+ * The current pattern for the matcher.
+ */
+ private Pattern p = DEFAULT_PATTERN;
+
+ /**
+ * The current position in the Buffer, at which the next match should start.
+ */
+ private int actPos = 0;
+
+ /**
+ * A global buffer to save new allocations by reading from source.
+ */
+ private final byte[] tmpBuffer = new byte[this.MaxBufferLen];
+
+ /**
+ * The charsetName to use with the source.
+ */
+ private String charsetName = null;
+
+ /**
+ * The Matcher which is used.
+ */
+ private Matcher myMatcher = this.p.matcher (this.actBuffer);
+
+ /**
+ * The MatchResult is generated at each match, even if match() isn't called.
+ */
+ private MatchResult actResult = null;
+
+ /**
+ * A Readable source if a Constructor with a Readable source is called, otherwise it stays
+ * <source> null </source>.
+ */
+ private Readable readableSource = null;
+
+ /**
+ * A ReadableByteChannel source if a Constructor with a ReadableByteChannel source is called,
+ * otherwise it stays <source> null </source>.
+ */
+ private ReadableByteChannel rbcSource = null;
+
+ /**
+ * Indicates if the close() method was called.
+ */
+ private boolean isClosed = false;
+
+ /**
+ * For performance reasons the last Found is saved, if a hasNextXXX method was called.
+ */
+ private String lastFound = null;
+
+ private boolean lastFoundPresent = false;
+
+ private int lastNextPos = 0;
+
+ private int lastPatternHash = 0;
+
+ private int last_RegionStart = 0;
+
+ private int last_RegionEnd = 0;
+
+ private boolean last_anchor = false;
+
+ private boolean last_transparent = false;
+
+ private MatchResult lastResult = null;
+
+ /**
+ * To keep track of the current position in the stream for the toString method, each time
+ * processed chars are removed the amount is added to processedChars.
+ */
+ private int procesedChars = 0;
+
+ /**
+ * needInput is set <code> true </code> before a read method, and if there is no input it blocks
+ * and stays <code>true</code>. Right after a read it is set to <code>false</code>.
+ */
+ private boolean needInput = false;
+
+ private boolean skipped = false;
+
+ /**
+ * <code> {@link #doSkipp} </code> indicates that the found pattern belongs to the result. If
+ * <code> {@link #doSkipp} </code> is false the match result ends at the beginning of the match.
+ * In both cases the current position is set after the pattern, if the found pattern has to be
+ * removed, a nextXXX method is called.
+ */
+ private boolean doSkipp = false;
+
+ /**
+ * Indicates if the last match was valid or not.
+ */
+ private boolean matchValid = false;
+
+ private NumberFormat actFormat = NumberFormat.getInstance (this.actLocale);
+
+ private DecimalFormat df = (DecimalFormat) this.actFormat;
+
+ /**
+ * Indicates if current Locale should be used at the input.
+ */
+ private boolean useLocale = true;
+
+ private DecimalFormatSymbols dfs =
+ new DecimalFormatSymbols (this.actLocale);
+
+ /**
+ * Constructs a new Scanner with the given File as source.
+ * {@link #Scanner(InputStream, String)} is called with <code> null </code> as charsetName.
+ *
+ * @param source
+ * The File to use as source.
+ * @throws FileNotFoundException
+ * If the file is not found an Exception is thrown.
+ */
+ public Scanner (final File source) throws FileNotFoundException // TESTED
+ {
+ this (source, null);
+ }
+
+ /**
+ * Constructs a new Scanner with the given File as source. <br>
+ * {@link #Scanner(InputStream, String)} is called with the given charsetName.
+ *
+ * @param source
+ * The File to use as source.
+ * @param charsetName
+ * Current charset name of the file. If charsetName is null it behaves if it was not
+ * set.
+ * @throws FileNotFoundException
+ * If the file is not found an Exception is thrown.
+ */
+ public Scanner (final File source,
+ final String charsetName) throws FileNotFoundException
+ {
+ this (new FileInputStream (source), charsetName);
+ }
+
+ /**
+ * Constructs a new Scanner with the given inputStream. <br>
+ * {@link #Scanner(InputStream, String)} is called with <code> null </code> as charsetName.
+ *
+ * @param source
+ * The InputStream to use as source.
+ */
+ public Scanner (final InputStream source) // TESTED
+ {
+ this (source, null);
+ }
+
+ /**
+ * Constructs a new Scanner with the InputSream and a charsetName. Afterwards the Buffer is
+ * filled.
+ *
+ * @param source
+ * The InputStream to use as source.
+ * @param charsetName
+ * The charsetName to apply on the source's data.
+ */
+ public Scanner (final InputStream source, final String charsetName)
+ {
+ this.bIS = (new BufferedInputStream (source));
+ this.charsetName = charsetName;
+ myFillBuffer ();
+ }
+
+ /**
+ * Constructs a new Scanner with a Readable input as source.
+ *
+ * @param source
+ * The Readable to use as source.
+ */
+ public Scanner (final Readable source)
+ {
+ this.readableSource = source;
+ myFillBuffer ();
+ }
+
+ /**
+ * Constructs a new Scanner with a ReadableByteChannel as
+ * source. Therfore the {@link #Scanner(ReadableByteChannel,
+ * String)} is called with <code> null </code> as charsetName.
+ *
+ * @param source
+ * The ReadableByteChannel to use as source.
+ */
+ public Scanner (final ReadableByteChannel source)
+ {
+ this (source, null);
+ }
+
+ /**
+ * Constructs a new Scanner with a ReadableByteChannel as source and
+ * a given charsetName, which is to be applied on it. <br> It also
+ * initiates the main Buffer.
+ *
+ * @param source
+ * The ReadableByteChannel to use as source.
+ * @param charsetName
+ * The charsetName to be applied on the source.
+ */
+ public Scanner (final ReadableByteChannel source, final String charsetName)
+ {
+ this.charsetName = charsetName;
+ this.rbcSource = source;
+ myFillBuffer ();
+ }
+
+ /**
+ * Constructs a new Scanner using the given String as input only.
+ *
+ * @param source
+ * The whole String to be used as source.
+ */
+ public Scanner (final String source) // TESTED
+ {
+ this.actBuffer = new String (source);
+ this.myMatcher.reset (this.actBuffer);
+ }
+
+ /**
+ * Closes this Scanner. If an {@link IOException} occurs it is
+ * catched and is available under {@link #ioException()}.<br> After
+ * the Scanner is closed, all searches will lead to a {@link
+ * IllegalStateException}.
+ */
+ public void close ()
+ {
+ try
+ {
+ if (this.bIS != null)
+ this.bIS.close ();
+ if (this.rbcSource != null)
+ this.rbcSource.close ();
+ this.isClosed = true;
+ }
+ catch (IOException ioe)
+ {
+ this.lastIOException = ioe;
+ }
+ }
+
+ /**
+ * Returns the current delimiter.
+ *
+ * @return the current delimiter.
+ */
+ public Pattern delimiter () // TESTED
+ {
+ return this.p;
+ }
+
+ /**
+ * Tries to find the pattern in the current line.
+ *
+ * @param pattern The pattern which should be searched in the
+ * current line of the input.
+ * @throws NoSuchElementException
+ * If the pattern was not found.
+ * @return If the search was successful, the result or otherwise a
+ * {@link NoSuchElementException} is thrown.
+ */
+ public String findInLine (final Pattern pattern) throws NoSuchElementException // TESTED
+ {
+ String tmpStr = myNextLine (false);
+ return myFindPInStr (pattern, tmpStr, 0);
+ }
+
+ /**
+ * Compiles the given pattern into a {@link Pattern} and calls
+ * {@link #findInLine(Pattern)} with the compiled pattern and
+ * returns whatever it returns.
+ *
+ * @param pattern
+ * The pattern which should be matched in the input.
+ * @throws NoSuchElementException
+ * If the pattern was not found.
+ * @return The match in the current line.
+ */
+ public String findInLine (final String pattern) // TESTED
+ {
+ return findInLine (Pattern.compile (pattern));
+ }
+
+ /**
+ * Trys to match the pattern within the given horizon.
+ *
+ * @param pattern
+ * Pattern to search.
+ * @param horizon
+ * @return The result of the match.
+ * @throws IllegalArgumentException
+ * if the horizon is negative.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public String findWithinHorizon (final Pattern pattern, final int horizon)
+ throws IllegalArgumentException, IllegalStateException
+ {
+ if (horizon < 0)
+ {
+ throw new IllegalArgumentException (horizon + " is negative");
+ }
+
+ if (this.isClosed)
+ {
+ throw new IllegalStateException ("Scanner is closed");
+ }
+
+ // doSkipp is set true to get the matching patern together with the found String
+ this.doSkipp = true;
+ String rc = myFindPInStr (pattern, this.actBuffer, horizon);
+
+ if (rc != null)
+ {
+ this.actPos += rc.length ();
+ }
+
+ return rc;
+ }
+
+ /**
+ * Compile the pattern and call {@link #findWithinHorizon(Pattern,
+ * int)}.
+ *
+ * @param pattern
+ * Pattern to search.
+ * @param horizon
+ * @return The result of the match.
+ * @throws IllegalArgumentException
+ * if the horizon is negative.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public String findWithinHorizon (final String pattern, final int horizon)
+ throws IllegalArgumentException, IllegalStateException
+ {
+ return findWithinHorizon (Pattern.compile (pattern), horizon);
+ }
+
+ /**
+ * Checks if there is any next String using the current
+ * delimiter. Therefore the string must not be <code> null </code>
+ * and the length must be greater then 0. If a {@link
+ * NoSuchElementException} is thrown by the search method, it is
+ * catched and false is returned.
+ *
+ * @return <code> true </code> if there is any result using the current delimiter. This wouldn't
+ * lead to a {@link NoSuchElementException}.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNext () throws IllegalStateException // TESTED
+ {
+ String tmpStr = null;
+
+ try
+ {
+ tmpStr = myCoreNext (false, this.p);
+ }
+ catch (NoSuchElementException nf)
+ {
+ }
+
+ if (tmpStr == null || tmpStr.length () <= 0)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Searches the pattern in the next subString before the next
+ * current delimiter.
+ *
+ * @param pattern
+ * The pattern to search for.
+ * @return <code> true </code> if the pattern is found before the current delimiter.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNext (final Pattern pattern) throws IllegalStateException // TESTED
+ {
+ String tmpStr;
+
+ tmpStr = myNext (pattern, false);
+
+ if (tmpStr == null || tmpStr.length () <= 0)
+ {
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Compiles the pattern to a {@link Pattern} and calls {@link
+ * #hasNext(Pattern)}.
+ *
+ * @see #hasNext(Pattern)
+ * @param pattern
+ * The pattern as string to search for.
+ * @return <code> true </code> if the pattern is found before the current delimiter.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNext (final String pattern) throws IllegalStateException // TESTED
+ {
+ return hasNext (Pattern.compile (pattern));
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a BigDecimal number. <br> BigDecimal numbers are always tryed
+ * with radix 10.
+ *
+ * @see #nextBigDecimal()
+ * @return <code> true </code> if the next string is a BigDecimal number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextBigDecimal () throws IllegalStateException // TESTED
+ {
+ try
+ {
+ myBigDecimal (false);
+ return true;
+ }
+ catch (InputMismatchException nfe)
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a BigInteger number. <br> Call {@link #hasNextBigInteger(int)}
+ * with the current radix.
+ *
+ * @see #nextBigInteger()
+ * @return <code> true </code> if the next string is a BigInteger number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextBigInteger () throws IllegalStateException // TESTED
+ {
+ return hasNextBigInteger (this.currentRadix);
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a BigInteger number. <br>
+ *
+ * @param radix
+ * The radix to use for this check. The global radix of the Scanner will not be
+ * changed.
+ * @return <code> true </code> if the next string is a BigInteger number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextBigInteger (final int radix) throws
+ IllegalStateException
+ {
+ try
+ {
+ myNextBigInteger (radix, false, BIG_INTEGER);
+ return true;
+ }
+ catch (InputMismatchException ime)
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Checks if the next string could be a boolean. The method handles
+ * the input not case sensitiv, so "true" and "TRUE" and even "tRuE"
+ * are <code> true </code>.
+ *
+ * @see #nextBoolean()
+ * @return Return <code> true </code> if the next string is a boolean.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextBoolean () throws IllegalStateException // TESTED
+ {
+ try
+ {
+ myNextBoolean (false);
+ return true;
+ }
+ catch (InputMismatchException ime)
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a byte number. <br> Calls {@link #hasNextByte(int)} with the
+ * current radix.
+ *
+ * @see #nextByte()
+ * @return <code> true </code> if the next string is a byte number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextByte () throws IllegalStateException // TESTED
+ {
+ return hasNextByte (this.currentRadix);
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a byte number with the given radix. <br> To check, the private
+ * method {@link #myNextByte(int, boolean)} is called, and if no
+ * error occurs the next string could be a byte.
+ *
+ * @see #nextByte(int)
+ * @param radix The radix to use for this check. The global radix of
+ * the Scanner will not be changed.
+ * @return <code> true </code> if the next string is a byte number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextByte (final int radix) throws IllegalStateException
+ {
+ try
+ {
+ myNextByte (radix, false);
+ return true;
+ }
+ catch (InputMismatchException ime)
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a double number. <br> To check, the private method {@link
+ * #myNextDouble(boolean)} is called, and if no error occurs the
+ * next string could be a double.
+ *
+ * @see #nextDouble()
+ * @return <code> true </code> if the next string is a double number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextDouble () throws IllegalStateException // TESTED
+ {
+ try
+ {
+ myNextDouble (false);
+ return true;
+ }
+ catch (InputMismatchException ime)
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a double number. Because every float is a double this is
+ * checked.<br> To check, the private method {@link
+ * #myNextDouble(boolean)} is called, and if no error occurs the
+ * next string could be a double.
+ *
+ * @see #nextFloat()
+ * @return <code> true </code> if the next string is a double number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextFloat () throws IllegalStateException // TESTED
+ {
+ try
+ {
+ myNextDouble (false);
+ // myNextFloat(false);
+ return true;
+ }
+ catch (InputMismatchException ime)
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * an int number. <br> To check, the private method {@link
+ * #myNextInt(int, boolean)} is called, and if no error occurs the
+ * next string could be an int.
+ *
+ * @see #nextInt(int)
+ * @return <code> true </code> if the next string is an int number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextInt () throws IllegalStateException // TESTED
+ {
+ return hasNextInt (this.currentRadix);
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * an int number with the given radix. <br> To check, the private
+ * method {@link #myNextInt(int, boolean)} is called, and if no
+ * error occurs the next string could be an int.
+ *
+ * @see #nextInt(int)
+ * @param radix
+ * The radix to use for this check. The global radix of the Scanner will not be
+ * changed.
+ * @return <code> true </code> if the next string is an int number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextInt (final int radix) throws IllegalStateException
+ {
+ try
+ {
+ myNextInt (radix, false);
+ return true;
+ }
+ catch (InputMismatchException ime)
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Checks if there is a current line, which ends at the next line
+ * break or the end of the input.
+ *
+ * @return <code> true </code> if there is a current line.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextLine () throws IllegalStateException // TESTED
+ {
+ return (myNextLine (false) != null);
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a long number. <br> To check, the private method {@link
+ * #myNextLong(int, boolean)} is called, and if no error occurs the
+ * next string could be a long.
+ *
+ * @see #nextLong()
+ * @return <code> true </code> if the next string is a long number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextLong () throws IllegalStateException // TESTED
+ {
+ return hasNextLong (this.currentRadix);
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a long number with the given radix. <br> To check, the private
+ * method {@link #myNextLong(int, boolean)} is called, and if no
+ * error occurs the next string could be a long.
+ *
+ * @see #nextLong(int)
+ * @param radix
+ * The radix to use for this check. The global radix of the Scanner will not be
+ * changed.
+ * @return <code> true </code> if the next string is a long number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextLong (final int radix) throws IllegalStateException
+ {
+ try
+ {
+ myNextLong (radix, false);
+ return true;
+ }
+ catch (InputMismatchException ime)
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a short number with the given radix. <br> To check, the private
+ * method {@link #myNextShort(int, boolean)} is called, and if no
+ * error occurs the next string could be a short.
+ *
+ * @see #nextShort(int)
+ * @return <code> true </code> if the next string is a short number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextShort () throws IllegalStateException // TESTED
+ {
+ return hasNextShort (this.currentRadix);
+ }
+
+ /**
+ * Checks if the string to the next delimiter can be interpreted as
+ * a short number. <br> To check, the private method {@link
+ * #myNextShort(int, boolean)} is called, and if no error occurs the
+ * next string could be a short.
+ *
+ * @see #nextShort(int)
+ * @param radix
+ * The radix to use for this check. The global radix of the Scanner will not be
+ * changed.
+ * @return <code> true </code> if the next string is a short number.
+ * @throws IllegalStateException
+ * if the Scanner is closed.
+ */
+ public boolean hasNextShort (final int radix) throws IllegalStateException
+ {
+ try
+ {
+ myNextShort (radix, false);
+ return true;
+ }
+ catch (InputMismatchException ime)
+ {
+ return false;
+ }
+ }
+
+ /**
+ * Returns the last {@link IOException} occured.
+ *
+ * @return Returns the last {@link IOException}.
+ */
+ public IOException ioException ()
+ {
+ return this.lastIOException;
+ }
+
+ /**
+ * Returns the current value of {@link #useLocale}. This is used to
+ * tell the Scanner if it should use the Locale format or just
+ * handle numbers of the default format.
+ *
+ * @see #setUseLocale(boolean)
+ * @return the useLoclae.
+ */
+ public boolean isUseLocale () // TESTED
+ {
+ return this.useLocale;
+ }
+
+ /**
+ * Returns the current Locale. It is initialized with {@link
+ * Locale#getDefault()}.
+ *
+ * @see #useLocale(Locale)
+ * @return Returns the current Locale.
+ */
+ public Locale locale () // TESTED
+ {
+ return this.actLocale;
+ }
+
+ /**
+ * Returns the last MatchResult found. This is updated after every
+ * successfully search.
+ *
+ * @return Returns the last {@link MatchResult} found.
+ */
+ public MatchResult match () // TESTED
+ {
+ return this.actResult;
+ }
+
+ /**
+ * Uses the current delimiter to find the next string in the
+ * buffer. If a string is found the current position is set after
+ * the delimiter, otherwise a {@link NoSuchElementException} is
+ * thrown. A successful match sets the matchResult.
+ *
+ * @see #match()
+ * @return Returns the next string of the buffer.
+ * @throws NoSuchElementException
+ * If no element was found an exception is thrown.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public String next () throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return myCoreNext (true, this.p);
+ }
+
+ /**
+ * Tries to match the buffer with the given pattern. The current
+ * delimiter will not be changed.
+ *
+ * @param pattern
+ * The pattern to match.
+ * @return Returns the next string matching the pattern.
+ * @throws NoSuchElementException
+ * If no element was found an exception is thrown.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public String next (final Pattern pattern) throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return myNext (pattern, true);
+ }
+
+ /**
+ * Tries to match the buffer with the given pattern. The current
+ * delimiter will not be changed. Calls the {@link #next(Pattern)}
+ * with the compiled pattern.
+ *
+ * @see #next(Pattern)
+ * @param pattern
+ * The pattern to match.
+ * @return Returns the next string matching the pattern.
+ * @throws NoSuchElementException
+ * If no element was found an exception is thrown.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public String next (final String pattern) throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return next (Pattern.compile (pattern));
+ }
+
+ /**
+ * Tries to interpret the next string as a BigDecimal value.
+ *
+ * @return Returns the BigDecimal value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a BigDecimal.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public BigDecimal nextBigDecimal () throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return myBigDecimal (true);
+ }
+
+ /**
+ * Tries to interpret the next string as a BigInteger value. Call
+ * {@link #nextBigInteger(int)} with the current radix as parameter,
+ * and return the value.
+ *
+ * @see #nextBigInteger(int)
+ * @return Returns the BigInteger value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a BigInteger.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public BigInteger nextBigInteger () throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return nextBigInteger (this.currentRadix);
+ }
+
+ /**
+ * Tries to interpret the next string as a BigInteger value with the
+ * given radix.
+ *
+ * @param radix
+ * The radix to be used for this BigInteger. The current radix of the Scanner is not
+ * changed.
+ * @return Returns the BigInteger value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a BigInteger.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public BigInteger nextBigInteger (final int radix) throws
+ NoSuchElementException, IllegalStateException
+ {
+ return myNextBigInteger (radix, true, BIG_INTEGER);
+ }
+
+ /**
+ * Tries to interpret the next string to the delimiter as a boolean
+ * value, ignoring case.
+ *
+ * @return Returns the boolean value of the next matching string or throws an exception.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a boolean.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public boolean nextBoolean () throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return myNextBoolean (true);
+ }
+
+ /**
+ * Tries to interpret the next string as a byte value. Call {@link
+ * #nextByte(int)} with the current radix as parameter, and return
+ * the value.
+ *
+ * @see #nextByte(int)
+ * @return Returns the byte value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a byte
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public byte nextByte () throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return nextByte (this.currentRadix);
+ }
+
+ /**
+ * Tries to interpret the next string as a byte value with the given
+ * radix.
+ *
+ * @param radix
+ * The radix to be used for this byte. The current radix of the Scanner is not
+ * changed.
+ * @return Returns the byte value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a byte.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public byte nextByte (final int radix) throws NoSuchElementException,
+ IllegalStateException
+ {
+ return myNextByte (radix, true);
+ }
+
+ /**
+ * Tries to interpret the next string as a double value.
+ *
+ * @return Returns the int value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a double.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public double nextDouble () throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return myNextDouble (true);
+ }
+
+ /**
+ * Tries to interpret the next string as a double value, and then
+ * casts down to float.
+ *
+ * @return Returns the int value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a double.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public float nextFloat () throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return (float) myNextDouble (true);
+ // return myNextFloat(true);
+ }
+
+ /**
+ * Tries to interpret the next string as an int value. Calls {@link
+ * #nextInt(int)} with the current radix as parameter, and return
+ * the value.
+ *
+ * @see #nextInt(int)
+ * @return Returns the int value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not an int.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public int nextInt () throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return nextInt (this.currentRadix);
+ }
+
+ /**
+ * Tries to interpret the next string as an int value with the given
+ * radix.
+ *
+ * @param radix
+ * The radix to be used for this int. The current radix of the Scanner is not changed
+ * @return Returns the int value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not an int.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public int nextInt (final int radix) throws NoSuchElementException,
+ IllegalStateException
+ {
+ return myNextInt (radix, true);
+ }
+
+ /**
+ * Tries to match the system line seperator, and returns the current
+ * line.
+ *
+ * @return Returns the current line.
+ * @throws NoSuchElementException
+ * If the current delimiter is not found.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public String nextLine () throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return myNextLine (true);
+ }
+
+ /**
+ * Tries to interpret the next string as a long value. Calls {@link
+ * #nextLong(int)} with the current radix as parameter, and return
+ * the value.
+ *
+ * @see #nextLong(int)
+ * @return Returns the long value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a long.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public long nextLong () throws NoSuchElementException, IllegalStateException // TESTED
+ {
+ return nextLong (this.currentRadix);
+ }
+
+ /**
+ * Tries to interpret the next string as a long value with the given
+ * radix.
+ *
+ * @param radix
+ * The radix to be used for this long. The current radix of the Scanner is not
+ * changed
+ * @return Returns the long value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a long.
+ * @throws IllegalStateException
+ * If the Scanner is closed.
+ */
+ public long nextLong (final int radix) throws NoSuchElementException,
+ IllegalStateException
+ {
+ return myNextLong (radix, true);
+ }
+
+ /**
+ * Tries to interpret the next string as a short value. Calls {@link
+ * #nextShort(int)} with the current radix as parameter, and return
+ * the value.
+ *
+ * @see #nextShort(int)
+ * @return Returns the short value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a short.
+ */
+ public short nextShort () throws NoSuchElementException // TESTED
+ {
+ return nextShort (this.currentRadix);
+ }
+
+ /**
+ * Tries to interpret the next string as a short value with the
+ * given radix.
+ *
+ * @param radix
+ * The radix to be used for this short. The current radix of the Scanner is not
+ * changed.
+ * @return Returns the short value of the next string.
+ * @throws NoSuchElementException
+ * If no string is found or the string is not a short.
+ */
+ public short nextShort (final int radix) throws NoSuchElementException
+ {
+ return myNextShort (radix, true);
+ }
+
+ /**
+ * @return Returns the current radix.
+ */
+ public int radix ()
+ {
+ return this.currentRadix;
+ }
+
+ /**
+ * The remove operation is not supported by this implementation of
+ * Iterator.
+ */
+ public void remove ()
+ {
+ }
+
+ /**
+ * @param useLocale the useLocale to set.
+ */
+ public void setUseLocale (final boolean useLocale) // TESTED
+ {
+ this.useLocale = useLocale;
+ }
+
+ /**
+ * Skips the given pattern. Sets skipped <code>true</code>.
+ *
+ * @param pattern
+ * Pattern which should be skipped.
+ * @return <code>this</code> with the skipped buffer.
+ * @throws NoSuchElementException
+ * If the Pattern is not found.
+ */
+ public Scanner skip (final Pattern pattern) throws NoSuchElementException
+ {
+ this.doSkipp = true;
+ int end;
+ boolean found;
+ Matcher matcher = pattern.matcher (this.actBuffer);
+ matcher.region (this.actPos - 1, this.actBuffer.length ());
+
+ found = matcher.find ();
+ found = myFillBuffer_loop (matcher, this.actPos - 1, found);
+ end = matcher.end ();
+
+ this.actPos = end + 1;
+
+ this.doSkipp = false;
+ this.skipped = true;
+
+ actResult = null;
+
+ if (!found)
+ {
+ throw new NoSuchElementException ();
+ }
+ return this;
+ }
+
+ /**
+ * Skips a given pattern. Calls {@link #skip(Pattern)} with the
+ * compiled pattern.
+ *
+ * @see #skip(Pattern)
+ * @param pattern
+ * Pattern which should be skipped.
+ * @return <code>this</code> with the skipped buffer.
+ */
+ public Scanner skip (final String pattern)
+ {
+ return skip (Pattern.compile (pattern));
+ }
+
+ /**
+ * Returns the string representation of this Scanner.
+ */
+ @Override
+ public String toString ()
+ {
+ String tmpStr2;
+ String rc = this.getClass ().getName ();
+ tmpStr2 = rc;
+ tmpStr2 = "[delimiters=" + this.p.pattern () + "]";
+ rc += tmpStr2;
+ tmpStr2 = "[position=" + (this.procesedChars + this.actPos) + "]";
+ rc += tmpStr2;
+ tmpStr2 = "[match valid=" + this.matchValid + "]";
+ rc += tmpStr2;
+ tmpStr2 = "[need input=" + this.needInput + "]";
+ rc += tmpStr2;
+ tmpStr2 = "[source closed=" + this.isClosed + "]";
+ rc += tmpStr2;
+ tmpStr2 = "[skipped=" + this.skipped + "]";
+ rc += tmpStr2;
+ tmpStr2 = "[group separator=\\" + this.dfs.getGroupingSeparator () + "]";
+ rc += tmpStr2;
+ tmpStr2 = "[decimal separator=\\" + this.dfs.getDecimalSeparator () + "]";
+ rc += tmpStr2;
+ tmpStr2 =
+ "[positive prefix=" + myConvert (this.df.getPositivePrefix ()) + "]";
+ rc += tmpStr2;
+ tmpStr2 =
+ "[negative prefix=" + myConvert (this.df.getNegativePrefix ()) + "]";
+ rc += tmpStr2;
+ tmpStr2 =
+ "[positive suffix=" + myConvert (this.df.getPositiveSuffix ()) + "]";
+ rc += tmpStr2;
+ tmpStr2 =
+ "[negative suffix=" + myConvert (this.df.getNegativeSuffix ()) + "]";
+ rc += tmpStr2;
+ tmpStr2 = "[NaN string=" + myConvert (this.dfs.getNaN ()) + "]";
+ rc += tmpStr2;
+ tmpStr2 = "[infinity string=" + myConvert (this.dfs.getInfinity ()) + "]";
+ rc += tmpStr2;
+ return rc;
+ }
+
+ /**
+ * Sets the current pattern to the given parameter, and updates the
+ * {@link Matcher} with the new pattern.
+ *
+ * @param pattern
+ * The new pattern to use.
+ * @return Returns the Scanner (<code>this</code>) with the new pattern.
+ */
+ public Scanner useDelimiter (final Pattern pattern) // TESTED
+ {
+ if (pattern != null)
+ {
+ this.p = pattern;
+ this.myMatcher = this.p.matcher (this.actBuffer);
+ }
+ return this;
+ }
+
+ /**
+ * Sets the current pattern to the given parameter. Compiles the
+ * pattern and calls {@link #useDelimiter(Pattern)}
+ *
+ * @see #useDelimiter(Pattern)
+ * @param pattern
+ * The new pattern to use.
+ * @return Returns the Scanner (<code>this</code>) with the new pattern.
+ */
+ public Scanner useDelimiter (final String pattern) // TESTED
+ {
+ return useDelimiter (Pattern.compile (pattern));
+ }
+
+ /**
+ * Sets the current Locale to the given parameter. Formats and
+ * Symbols are also set using the new Locale.
+ *
+ * @param locale The new Locale to use. If it is <code>null</code>
+ * nothing happens.
+ * @return Returns the Scanner (<code>this</code>) with the new Locale.
+ */
+ public Scanner useLocale (final Locale locale) // TESTED
+ {
+ if (locale != null)
+ {
+ this.actLocale = locale;
+ this.actFormat = NumberFormat.getInstance (this.actLocale);
+ this.dfs = new DecimalFormatSymbols (this.actLocale);
+ this.df = (DecimalFormat) this.actFormat;
+ }
+ return this;
+ }
+
+ /**
+ * Sets the current radix to the current value if the given radix is
+ * >= 2 and <= 36 otherwise an {@link IllegalArgumentException} is
+ * thrown.
+ *
+ * @param radix
+ * the new radix to use as default.
+ * @return <code> this </code> with the new radix value.
+ * @throws IllegalArgumentException
+ * When the given radix is out of bounds.
+ */
+ public Scanner useRadix (final int radix) throws IllegalArgumentException
+ {
+ if (radix < 2 || radix > 36)
+ {
+ throw new IllegalArgumentException ();
+ }
+ this.currentRadix = radix;
+ return this;
+ }
+
+ /**
+ * Checks if it is necessary to apply the current Locale on the
+ * String. If so the String is converted using the {@link
+ * NumberFormat#parse(String)} into a Number and then back to a
+ * default stringrepresentation of that Number.
+ *
+ * @see #setUseLocale(boolean)
+ * @param str
+ * String to convert into another string.
+ * @param radix Radix of the Number in the original string. It has
+ * to be 10 for anything to happen.
+ * @return Eighter the Stringrepresention of the number without the
+ * Locale or an unchanged string.
+ * @throws ParseException
+ * if {@link NumberFormat#parse(String)} fails to parse.
+ */
+ private String myApplyLocale (final String str,
+ final int radix) throws ParseException
+ {
+ String rc;
+
+ if (this.useLocale && radix == 10)
+ {
+ rc = this.actFormat.parse (str).toString ();
+ return rc;
+ }
+
+ return str;
+ }
+
+ /**
+ * If {@link #useLocale} is set and radix is 10 the string is tryed
+ * to be converted to string without Locale settings, because the
+ * "normal" convert from Local has only double precision and it is
+ * not enough for the about 50 digits of precision of the
+ * BigDecimal. So in the first step the string is seperated into the
+ * integer part which is converted to a long, and the fraction part
+ * is appended afterwards. Between the integer and the fraction part
+ * comes a ".". Finally the resulting string is returned.
+ *
+ * @see #setUseLocale(boolean)
+ * @param str String representation of a BigDecimal number.
+ * @return The default String representation (without Locale) of the
+ * BigInteger.
+ * @throws ParseException
+ * If the String has more than one decimal seperators a parse exception is thrown.
+ */
+ private String myApplyLocaleBD (final String str) throws ParseException
+ {
+ if (!this.useLocale || this.currentRadix != 10)
+ {
+ return str;
+ }
+
+ String negPrefix = this.df.getNegativePrefix ();
+ String negSuffix = this.df.getNegativeSuffix ();
+ String posPrefix = this.df.getPositivePrefix ();
+ String posSuffix = this.df.getPositiveSuffix ();
+
+ char d = this.dfs.getDecimalSeparator ();
+ int begin1, begin2;
+ boolean isNegativ = false;
+ String parts = null;
+
+ String tmpStr1 = "";
+
+ begin1 = str.indexOf (d);
+ begin2 = str.indexOf (d, begin1 + 1);
+
+ if (begin2 > 0)
+ {
+ throw new ParseException ("more than one Decimal seperators", begin2);
+ }
+
+ parts = str.substring (0, begin1);
+
+ if ((negPrefix.length () > 0
+ && str.substring (0, negPrefix.length ()).equals (negPrefix))
+ || (negSuffix.length () > 0
+ && str.substring (str.length () -
+ negSuffix.length ()).equals (negSuffix)))
+ {
+ parts += negSuffix;
+ isNegativ = true;
+ }
+ else
+ if ((posPrefix.length () > 0
+ && str.substring (0, posPrefix.length ()).equals (posPrefix))
+ || (posSuffix.length () > 0
+ && str.substring (str.length () -
+ posSuffix.length ()).equals (posSuffix)))
+ {
+ parts += posSuffix;
+ }
+
+ tmpStr1 = this.actFormat.parse (parts).toString ();
+
+ if (isNegativ)
+ {
+ tmpStr1 +=
+ "." + str.substring (str.indexOf (d) + 1,
+ str.length () - negSuffix.length ());
+ }
+ else
+ {
+ tmpStr1 +=
+ "." + str.substring (str.indexOf (d) + 1,
+ str.length () - posSuffix.length ());
+ }
+
+ return tmpStr1;
+ }
+
+ /**
+ * Tries to interpret the next String as a BigDecimal. Therfore the
+ * next String is get with {@link #myCoreNext(boolean, Pattern)} and
+ * then {@link #myApplyLocaleBD(String)} is called to convert the
+ * String into a BigDecimal.
+ *
+ * @param delete
+ * Should the found string be deleted or not.
+ * @return Returns the BigDecimal value of the next string.
+ * @throws InputMismatchException
+ * If the string is not a BigDecimal
+ */
+ private BigDecimal myBigDecimal (final boolean delete) throws
+ InputMismatchException
+ {
+ BigDecimal rc;
+ String tmp = myCoreNext (delete, this.p);
+ try
+ {
+ tmp = myApplyLocaleBD (tmp);
+ }
+ catch (ParseException e)
+ {
+ throw new InputMismatchException (ERR_PREFIX + tmp + IS_NOT +
+ "BigDecimal!!");
+ }
+ rc = new BigDecimal (tmp);
+
+ return rc;
+ }
+
+ /**
+ * Applies suffix ("\E") and prefix ("\Q") if str.length != 0 Used
+ * by the toString method.
+ *
+ * @param str
+ * the string on which the suffix and prefix should be applied.
+ * @return The new new string with the suffix and prefix.
+ */
+ private String myConvert (final String str)
+ {
+ if (str != null && str.length () > 0)
+ {
+ return "\\Q" + str + "\\E";
+ }
+ return str;
+ }
+
+ /**
+ * Searches the current Matcher for the current Pattern. If the end
+ * is reached during the search it tried to read again from the
+ * source. The search results are always saved in {@link #actResult}
+ * which is returned when match() is called. If doSkip is true the
+ * pattern is also taken.
+ *
+ * @param delete
+ * if true the aktPos is set.
+ * @param pattern
+ * pattern to search for.
+ * @return Returns the String which matches the pattern.
+ * @throws NoSuchElementException
+ * If the search has no result.
+ */
+ private String myCoreNext (final boolean delete, final Pattern pattern)
+ throws NoSuchElementException
+ {
+ if (this.isClosed)
+ {
+ throw new IllegalStateException ("Scanner closed");
+ }
+ if (shallUseLastFound (pattern != null ? pattern : this.p))
+ {
+ if (this.last_RegionEnd != this.myMatcher.regionEnd ())
+ {
+ System.out.println (this.last_RegionEnd + " != " +
+ this.myMatcher.regionEnd () + " (" +
+ (this.last_RegionEnd -
+ this.myMatcher.regionEnd ()) + ")");
+ }
+ if (delete)
+ {
+ this.actPos = this.lastNextPos;
+ this.lastFoundPresent = false;
+ this.actResult = this.lastResult;
+ }
+ return this.lastFound;
+ }
+
+ boolean found = false;
+ int left;
+ int endIndex;
+
+ String tmp2 = null;
+
+ if (this.actPos > this.MAX_PREFIX)
+ {
+ // skipp the processed chars so that the size of the buffer don't grow to much even with
+ // huge files
+ this.procesedChars += this.actPos;
+ this.actBuffer = this.actBuffer.substring (this.actPos);
+ this.actPos = 0;
+ this.myMatcher = pattern.matcher (this.actBuffer);
+ }
+
+ left = this.actBuffer.length () - this.actPos;
+ if (left < this.MIN_BUF_LEN)
+ {
+ myFillBuffer ();
+ }
+ found = this.myMatcher.find (this.actPos);
+
+ found = myFillBuffer_loop (this.myMatcher, this.actPos, found);
+
+ this.needInput = false;
+
+ if (found)
+ {
+ if (this.doSkipp)
+ {
+ endIndex = this.myMatcher.end ();
+ }
+ else
+ {
+ endIndex = this.myMatcher.start ();
+ }
+ tmp2 = this.actBuffer.substring (this.actPos, endIndex);
+ this.lastNextPos = this.myMatcher.end ();
+ /*
+ * if the delete flag is set, just set the current position after the end of the matched
+ * pattern.
+ */
+ if (delete)
+ {
+ this.actPos = this.lastNextPos;
+ }
+ else
+ {
+ this.lastFound = tmp2;
+ this.lastFoundPresent = true;
+ this.lastPatternHash = pattern.hashCode ();
+ }
+ this.last_RegionStart = this.myMatcher.regionStart ();
+ this.last_RegionEnd = this.myMatcher.regionEnd ();
+ this.last_anchor = this.myMatcher.hasAnchoringBounds ();
+ this.last_transparent = this.myMatcher.hasTransparentBounds ();
+ }
+ else if (this.myMatcher.hitEnd ())
+ // the end of input is matched
+ {
+ tmp2 = this.actBuffer.substring (this.actPos);
+ this.lastNextPos = this.actBuffer.length ();
+ if (delete)
+ {
+ this.actPos = this.lastNextPos;
+ }
+ else
+ {
+ this.lastFound = tmp2;
+ this.lastFoundPresent = true;
+ this.lastPatternHash = pattern.hashCode ();
+ }
+ this.last_RegionStart = this.myMatcher.regionStart ();
+ this.last_RegionEnd = this.myMatcher.regionEnd ();
+ this.last_anchor = this.myMatcher.hasAnchoringBounds ();
+ this.last_transparent = this.myMatcher.hasTransparentBounds ();
+ }
+ else
+ {
+ /*
+ * if no match found an Exception is throwed
+ */
+ throw new NoSuchElementException ();
+ }
+ /*
+ * change the Result only when a nextXXX() method was called, not if a hasNextXXX() method
+ * is called
+ */
+ if (delete)
+ {
+ this.actResult = this.myMatcher.toMatchResult ();
+
+ this.matchValid = this.actResult != null;
+ }
+ else
+ {
+ this.lastResult = this.myMatcher.toMatchResult ();
+ }
+
+ this.skipped = this.doSkipp;
+ this.doSkipp = false;
+
+ return tmp2;
+ }
+
+ /**
+ * Used to fill the String buffer from a source. Therfore the 3
+ * possible sources are checked if they are not <code>null</code>
+ * and this not used, otherwise the read method is called on the
+ * source. If a charsetName is set and not <code>null</code> it is
+ * applied to convert to String.
+ */
+ private void myFillBuffer ()
+ {
+ int len;
+ String tmpStr;
+ CharBuffer cb = null;
+ ByteBuffer bb = null;
+
+ if (this.bIS != null)
+ {
+ try
+ {
+ len = this.bIS.read (this.tmpBuffer);
+ if (len < 0)
+ {
+ return;
+ }
+ if (this.charsetName != null)
+ {
+ tmpStr = new String (this.tmpBuffer, 0, len, this.charsetName);
+ }
+ else
+ {
+ tmpStr = new String (this.tmpBuffer, 0, len);
+ }
+ this.actBuffer += tmpStr;
+ }
+ catch (IOException e)
+ {
+ this.lastIOException = e;
+ }
+ }
+ else if (this.readableSource != null)
+ {
+ try
+ {
+ cb = CharBuffer.allocate (1000);
+ this.needInput = true;
+ len = this.readableSource.read (cb);
+ if (len < 0)
+ {
+ return;
+ }
+ this.needInput = false;
+ tmpStr = new String (cb.array ());
+ this.actBuffer += tmpStr;
+ }
+ catch (IOException e)
+ {
+ this.lastIOException = e;
+ }
+ }
+ else if (this.rbcSource != null)
+ {
+ try
+ {
+ bb = ByteBuffer.allocate (1000);
+ this.needInput = true;
+ len = this.rbcSource.read (bb);
+ this.needInput = false;
+ if (len < 0)
+ {
+ return;
+ }
+ if (this.charsetName != null)
+ {
+ tmpStr = new String (bb.array (), 0, len, this.charsetName);
+ }
+ else
+ {
+ tmpStr = new String (bb.array (), 0, len);
+ }
+ this.actBuffer += tmpStr;
+ }
+ catch (IOException e)
+ {
+ this.lastIOException = e;
+ }
+ }
+
+ this.myMatcher.reset (this.actBuffer);
+ }
+
+ /**
+ * A loop in which the {@link #myFillBuffer()} is called and checked
+ * if the pattern is found in the matcher and if the buffersize
+ * changes after the read.
+ *
+ * @param aktM
+ * The current Matcher.
+ * @param pos
+ * Position from which the matcher should start matching.
+ * @param found
+ * if already found.
+ * @return <code> true </code> if the matcher has found a match.
+ */
+ private boolean myFillBuffer_loop (final Matcher aktM, final int pos,
+ boolean found)
+ {
+ int tmp;
+
+ tmp = this.actBuffer.length ();
+ while (aktM.hitEnd ()
+ && ((this.bIS != null) || (this.readableSource != null)
+ || (this.rbcSource != null)))
+ {
+ myFillBuffer ();
+ if (tmp == this.actBuffer.length ())
+ {
+ break;
+ }
+ found = aktM.find (pos);
+ this.needInput = true;
+ }
+ return found;
+ }
+
+ /**
+ * Used to find the given pattern in the given string before the
+ * given horizon. Therfore the current matcher is copied, and
+ * overwritten using the given pattern and the given Sting. <br>
+ * After the search the original values are restored, and skipped is
+ * set <code> true </code>.
+ *
+ * @param pattern
+ * Pattern which should be matched.
+ * @param str
+ * The String in which the pattern should be matched.
+ * @param horizon
+ * the horizon whithin the match should be, if 0 then it is ignored.
+ * @return Returns the String in the given String that matches the pattern.
+ */
+ private String myFindPInStr (final Pattern pattern, final String str,
+ final int horizon)
+ {
+ String rc = null;
+ int curPos = this.actPos;
+ Matcher aktMatcher = this.myMatcher;
+
+ this.myMatcher = pattern.matcher (str);
+ if (horizon > 0)
+ {
+ this.myMatcher.useAnchoringBounds (true);
+ this.myMatcher.useTransparentBounds (true);
+ this.myMatcher.region (this.actPos, this.actPos + horizon);
+ }
+ rc = myCoreNext (true, pattern);
+ this.myMatcher = aktMatcher;
+
+ this.actPos = curPos;
+ this.skipped = true;
+
+ return rc;
+ }
+
+ /**
+ * Used by the {@link #hasNext(Pattern)} and {@link #next(Pattern)}
+ * methods. Therfore a substring is taken first to the current
+ * delimiter, afterwards the given pattern is searched in this
+ * subsring.<br> Finally the current Buffer and matcher (which have
+ * been temporarily changed) are set back.<br> <br> The {@link
+ * #skipped} is set <code> true </code>.
+ *
+ * @param pattern
+ * Pattern to find until the current delimiter.
+ * @param delete
+ * Is <code> true </code> if a next method is called.<br>
+ * Is <code> false </code> if a hasNext method is called.
+ * @return Returns the String which is returned by the public methods.
+ */
+ private String myNext (final Pattern pattern, final boolean delete)
+ {
+ String tmpStr;
+ Matcher aktMatcher = this.myMatcher;
+ String result;
+ String currBuffer = this.actBuffer;
+ int currAktPos;
+
+ tmpStr = myCoreNext (delete, this.p);
+ this.myMatcher = pattern.matcher (tmpStr);
+ this.actBuffer = tmpStr;
+ currAktPos = this.actPos;
+ this.actPos = 0;
+ result = myCoreNext (delete, pattern);
+ this.actPos = currAktPos;
+
+ this.actBuffer = currBuffer;
+ this.myMatcher = aktMatcher;
+ this.skipped = true;
+
+ return result;
+ }
+
+ /**
+ * Calls the next() method internally to get the next String, and
+ * trys to apply a locale which is only applied if the radix is 10
+ * and useLocale is <code> true </code>. Afterwards it is tried to
+ * call the Constructor of a {@link BigInteger} with the given
+ * radix.
+ *
+ * @param radix The radix to use.
+ * @param delete If the found String should be removed from input or
+ * not.
+ * @param name name of "BigInteger" in case of an Error.
+ * @return Returns the new BigInteger created if there is no Error.
+ * @throws InputMismatchException
+ * If there is a {@link ParseException} or a {@link NumberFormatException}.
+ */
+ private BigInteger myNextBigInteger (final int radix, final boolean delete,
+ final String name)
+ {
+ BigInteger rc;
+ String tmp = myPrepareForNext (this.p, delete);
+
+ try
+ {
+ tmp = myApplyLocale (tmp, radix);
+ rc = new BigInteger (tmp, radix);
+ return rc;
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ catch (ParseException e)
+ {
+ }
+ throw new InputMismatchException (ERR_PREFIX + tmp + IS_NOT + name);
+ }
+
+ /**
+ * Checks if the next String is either "true" or "false", otherwise
+ * an {@link InputMismatchException} is thrown. It ignores the case
+ * of the string so that "true" and "TRUE" and even "TrUe" are
+ * accepted.
+ *
+ * @param delete Should the found value be removed from the input or
+ * not.
+ * @return Returns the boolean value (if it is a boolean).
+ * @throws InputMismatchException
+ * If the next String is not a boolean.
+ */
+ private boolean myNextBoolean (final boolean delete) throws
+ InputMismatchException
+ {
+ String tmp = myPrepareForNext (this.p, delete);
+ if (tmp.equalsIgnoreCase ("true"))
+ {
+ return true;
+ }
+ else if (tmp.equalsIgnoreCase ("false"))
+ {
+ return false;
+ }
+ else
+ {
+ throw new InputMismatchException (ERR_PREFIX + tmp + NOT_BOOLEAN);
+ }
+ }
+
+ /**
+ * Calls the {@link #myPrepareForNext(Pattern, boolean)} which calls
+ * the {@link #myCoreNext(boolean, Pattern)} to return the next
+ * String matching the current delimier. Afterwards it is tryed to
+ * convert the String into a byte. Any Error will lead into a {@link
+ * InputMismatchException}.
+ *
+ * @param radix The radix to use.
+ * @param delete Should the found String be removed from the input.
+ * @return Returns the byte value of the String.
+ * @throws InputMismatchException if the next String is not a byte.
+ */
+ private byte myNextByte (final int radix,
+ final boolean delete) throws InputMismatchException
+ {
+ byte rc;
+ String tmp = myPrepareForNext (this.p, delete);
+
+ try
+ {
+ tmp = myApplyLocale (tmp, radix);
+ rc = Byte.parseByte (tmp, radix);
+ return rc;
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ catch (ParseException e)
+ {
+ }
+ throw new InputMismatchException (ERR_PREFIX + tmp + NOT_BYTE);
+ }
+
+ /**
+ * Tries to interpret the next String as a double value. To verify
+ * if the double value is correct, it is converted back to a String
+ * using the default Locale and this String is compared with the
+ * String from which the double was converted. If the two Strings
+ * don't match, an {@link InputMismatchException} is thrown.<br>
+ * <br> The radix used is always 10 even if the global radix is
+ * changed.
+ *
+ * @param delete Should the String be removed, if true it will be
+ * also removed if the String is not a double value.
+ * @return Returns the double value of the next String.
+ * @throws InputMismatchException if the next String is not a
+ * double.
+ */
+ private double myNextDouble (final boolean delete) throws
+ InputMismatchException
+ {
+ double rc;
+ String tmp = myPrepareForNext (this.p, delete);
+
+ try
+ {
+ tmp = myApplyLocale (tmp, 10);
+ rc = Double.parseDouble (tmp);
+ if (("" + rc).equals (tmp))
+ {
+ return rc;
+ }
+ }
+ catch (ParseException e)
+ {
+ }
+ throw new InputMismatchException (ERR_PREFIX + tmp + NOT_DOUBLE);
+ }
+
+ /**
+ * Tries to interpret the next String as an int value. Therfore
+ * {@link #myApplyLocale(String, int)} decides if the current Locale
+ * should be applied or not and then the result is parsed using
+ * {@link Integer#parseInt(String, int)}. Any Error will lead to an
+ * {@link InputMismatchException}.
+ *
+ * @param radix The radix to use.
+ * @param delete <code> true </code> if the String should be deleted
+ * from the input.
+ * @return Returns the int value of the String.
+ * @throws InputMismatchException if the next String is not an int.
+ */
+ private int myNextInt (final int radix,
+ final boolean delete) throws InputMismatchException
+ {
+ int rc;
+ String tmp = myPrepareForNext (this.p, delete);
+ try
+ {
+ tmp = myApplyLocale (tmp, radix);
+ rc = Integer.parseInt (tmp, radix);
+ return rc;
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ catch (ParseException e)
+ {
+ }
+ throw new InputMismatchException (ERR_PREFIX + tmp + NOT_INT);
+ }
+
+ /**
+ * Finds the next line using the {@link #NEW_LINE} constant which is
+ * set to the system specific line seperator.
+ *
+ * @param delete Should the found line be deleted from the input.
+ * @return Returns the current line.
+ */
+ private String myNextLine (final boolean delete)
+ {
+ String rc = null;
+ rc = myPrepareForNext (Pattern.compile (NEW_LINE), delete);
+ return rc;
+ }
+
+ /**
+ * Tries to interpret the next String as a long value with the given
+ * radix. Therfore the {@link Long#parseLong(String, int)} is called
+ * and every Error will lead into a {@link InputMismatchException}.
+ *
+ * @param radix The radix to be used.
+ * @param delete Should the found String be deleted from the input.
+ * @return the long value of the next String.
+ * @throws InputMismatchException if the next String is not a long.
+ */
+ private long myNextLong (final int radix,
+ final boolean delete) throws InputMismatchException
+ {
+ long rc;
+ String tmp = myPrepareForNext (this.p, delete);
+
+ try
+ {
+ tmp = myApplyLocale (tmp, radix);
+ rc = Long.parseLong (tmp, radix);
+ return rc;
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ catch (ParseException e)
+ {
+ }
+ throw new InputMismatchException (ERR_PREFIX + tmp + NOT_LONG);
+ }
+
+ /**
+ * Tries to interpret the next String as a short value with the
+ * given radix. Therfore the {@link Short#parseShort(String, int)}
+ * is called and every Error will lead into a {@link
+ * InputMismatchException} .
+ *
+ * @param radix
+ * The radix to be used.
+ * @param delete
+ * Should the found String be deleted from the input.
+ * @return the long value of the next String.
+ * @throws InputMismatchException
+ * if the next String is not a short.
+ */
+ private short myNextShort (final int radix,
+ final boolean delete) throws
+ InputMismatchException
+ {
+ short rc;
+ String tmp = myPrepareForNext (this.p, delete);
+
+ try
+ {
+ tmp = myApplyLocale (tmp, radix);
+ rc = Short.parseShort (tmp, radix);
+ return rc;
+ }
+ catch (NumberFormatException nfe)
+ {
+ }
+ catch (ParseException e)
+ {
+ }
+ throw new InputMismatchException (ERR_PREFIX + tmp +
+ "\" is not a short");
+ }
+
+ /**
+ * Sets the current pattern to the given pattern and calls the
+ * {@link #myCoreNext(boolean, Pattern)}. Finally sets the pattern
+ * back to its old value.
+ *
+ * @param aktPattern Pattern to be used for the next match.
+ * @param delete Should the found String be deleted or not.
+ * @return Return the String returned from {@link
+ * #myCoreNext(boolean, Pattern)}.
+ */
+ private String myPrepareForNext (final Pattern aktPattern,
+ final boolean delete)
+ {
+
+ String rc;
+ Pattern oldPattern = this.p;
+ useDelimiter (aktPattern);
+
+ rc = myCoreNext (delete, aktPattern);
+
+ useDelimiter (oldPattern);
+
+ return rc;
+ }
+
+ /**
+ * Determinates if the last found can be used, so that after a
+ * hasNextXXX the nextXXX has not to search if nothing has
+ * changed.<br /> Used in {@link #myCoreNext(boolean, Pattern)}.
+ *
+ * @param aktP The pattern which should be checked.
+ * @return <code> true </code> if the searchresult is already ready.
+ */
+ private boolean shallUseLastFound (final Pattern aktP)
+ {
+ if (this.lastFoundPresent &&
+ this.lastPatternHash == aktP.hashCode () &&
+ this.last_RegionStart == this.myMatcher.regionStart () &&
+ this.last_anchor == this.myMatcher.hasAnchoringBounds () &&
+ this.last_transparent == this.myMatcher.hasTransparentBounds ())
+ {
+ if (this.last_RegionEnd != this.myMatcher.regionEnd ())
+ {
+ int tmpVal =
+ this.myMatcher.regionEnd () -
+ this.last_RegionEnd - this.MAX_PREFIX;
+ if (tmpVal > 0 && tmpVal < 20)
+ {
+ this.last_RegionEnd =
+ this.myMatcher.regionEnd ();
+ return true;
+ }
+ }
+ else
+ return true;
+ }
+ return false;
+ }
+
+}
diff --git a/libjava/classpath/java/util/Stack.java b/libjava/classpath/java/util/Stack.java
index 404a146..1d87928 100644
--- a/libjava/classpath/java/util/Stack.java
+++ b/libjava/classpath/java/util/Stack.java
@@ -102,13 +102,14 @@ public class Stack<T> extends Vector<T>
* @return the Object popped from the stack
* @throws EmptyStackException if the stack is empty
*/
+ @SuppressWarnings("unchecked")
public synchronized T pop()
{
if (elementCount == 0)
throw new EmptyStackException();
modCount++;
- T obj = elementData[--elementCount];
+ T obj = (T) elementData[--elementCount];
// Set topmost element to null to assist the gc in cleanup.
elementData[elementCount] = null;
@@ -121,12 +122,13 @@ public class Stack<T> extends Vector<T>
* @return the top Object on the stack
* @throws EmptyStackException if the stack is empty
*/
+ @SuppressWarnings("unchecked")
public synchronized T peek()
{
if (elementCount == 0)
throw new EmptyStackException();
- return elementData[elementCount - 1];
+ return (T) elementData[elementCount - 1];
}
/**
diff --git a/libjava/classpath/java/util/TimeZone.java b/libjava/classpath/java/util/TimeZone.java
index 5329e06..681a6a2 100644
--- a/libjava/classpath/java/util/TimeZone.java
+++ b/libjava/classpath/java/util/TimeZone.java
@@ -40,7 +40,9 @@ exception statement from your version. */
package java.util;
import gnu.classpath.SystemProperties;
+import gnu.java.lang.CPStringBuilder;
import gnu.java.util.ZoneInfo;
+
import java.io.File;
import java.security.AccessController;
import java.security.PrivilegedAction;
@@ -1404,7 +1406,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
{
int offset = getRawOffset() + (dst ? getDSTSavings() : 0);
- StringBuffer sb = new StringBuffer(9);
+ CPStringBuilder sb = new CPStringBuilder(9);
sb.append("GMT");
offset = offset / (1000 * 60);
@@ -1564,7 +1566,7 @@ public abstract class TimeZone implements java.io.Serializable, Cloneable
}
// Custom IDs have to be normalized
- StringBuffer sb = new StringBuffer(9);
+ CPStringBuilder sb = new CPStringBuilder(9);
sb.append("GMT");
sb.append(offset_direction >= 0 ? '+' : '-');
diff --git a/libjava/classpath/java/util/TreeMap.java b/libjava/classpath/java/util/TreeMap.java
index f54cbc3..1068100 100644
--- a/libjava/classpath/java/util/TreeMap.java
+++ b/libjava/classpath/java/util/TreeMap.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.util;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -2720,7 +2722,7 @@ public class TreeMap<K, V> extends AbstractMap<K, V>
public String toString()
{
- StringBuilder r = new StringBuilder("{");
+ CPStringBuilder r = new CPStringBuilder("{");
final Iterator<Entry<DK,DV>> it = entrySet().iterator();
while (it.hasNext())
{
@@ -3158,7 +3160,7 @@ public class TreeMap<K, V> extends AbstractMap<K, V>
public String toString()
{
- StringBuilder r = new StringBuilder("[");
+ CPStringBuilder r = new CPStringBuilder("[");
final Iterator<D> it = iterator();
while (it.hasNext())
{
diff --git a/libjava/classpath/java/util/Vector.java b/libjava/classpath/java/util/Vector.java
index ea29ce0..101a78d 100644
--- a/libjava/classpath/java/util/Vector.java
+++ b/libjava/classpath/java/util/Vector.java
@@ -95,7 +95,7 @@ public class Vector<T> extends AbstractList<T>
* in positions 0 through elementCount - 1, and all remaining slots are null.
* @serial the elements
*/
- protected T[] elementData;
+ protected Object[] elementData;
/**
* The number of elements currently in the vector, also returned by
@@ -133,7 +133,7 @@ public class Vector<T> extends AbstractList<T>
public Vector(Collection<? extends T> c)
{
elementCount = c.size();
- elementData = c.toArray((T[]) new Object[elementCount]);
+ elementData = c.toArray(new Object[elementCount]);
}
/**
@@ -149,7 +149,7 @@ public class Vector<T> extends AbstractList<T>
{
if (initialCapacity < 0)
throw new IllegalArgumentException();
- elementData = (T[]) new Object[initialCapacity];
+ elementData = new Object[initialCapacity];
this.capacityIncrement = capacityIncrement;
}
@@ -295,11 +295,12 @@ public class Vector<T> extends AbstractList<T>
return i < elementCount;
}
+ @SuppressWarnings("unchecked")
public T nextElement()
{
if (i >= elementCount)
throw new NoSuchElementException();
- return elementData[i++];
+ return (T) elementData[i++];
}
};
}
@@ -385,10 +386,11 @@ public class Vector<T> extends AbstractList<T>
* @throws ArrayIndexOutOfBoundsException index &lt; 0 || index &gt;= size()
* @see #get(int)
*/
+ @SuppressWarnings("unchecked")
public synchronized T elementAt(int index)
{
checkBoundExclusive(index);
- return elementData[index];
+ return (T) elementData[index];
}
/**
@@ -397,12 +399,13 @@ public class Vector<T> extends AbstractList<T>
* @return the first Object in the Vector
* @throws NoSuchElementException the Vector is empty
*/
+ @SuppressWarnings("unchecked")
public synchronized T firstElement()
{
if (elementCount == 0)
throw new NoSuchElementException();
- return elementData[0];
+ return (T) elementData[0];
}
/**
@@ -411,12 +414,13 @@ public class Vector<T> extends AbstractList<T>
* @return the last Object in the Vector
* @throws NoSuchElementException the Vector is empty
*/
+ @SuppressWarnings("unchecked")
public synchronized T lastElement()
{
if (elementCount == 0)
throw new NoSuchElementException();
- return elementData[elementCount - 1];
+ return (T) elementData[elementCount - 1];
}
/**
@@ -604,10 +608,11 @@ public class Vector<T> extends AbstractList<T>
* @throws ArrayIndexOutOfBoundsException index &lt; 0 || index &gt;= size()
* @since 1.2
*/
+ @SuppressWarnings("unchecked")
public synchronized T set(int index, T element)
{
checkBoundExclusive(index);
- T temp = elementData[index];
+ T temp = (T) elementData[index];
elementData[index] = element;
return temp;
}
@@ -660,10 +665,11 @@ public class Vector<T> extends AbstractList<T>
* @throws ArrayIndexOutOfBoundsException index &lt; 0 || index &gt;= size()
* @since 1.2
*/
+ @SuppressWarnings("unchecked")
public synchronized T remove(int index)
{
checkBoundExclusive(index);
- T temp = elementData[index];
+ T temp = (T) elementData[index];
modCount++;
elementCount--;
if (index < elementCount)
@@ -903,7 +909,7 @@ public class Vector<T> extends AbstractList<T>
// use of a negative index will cause an ArrayIndexOutOfBoundsException
// with no effort on our part.
if (index > elementCount)
- throw new ArrayIndexOutOfBoundsException(index + " > " + elementCount);
+ raiseBoundsError(index, " > ");
}
/**
@@ -918,10 +924,25 @@ public class Vector<T> extends AbstractList<T>
// use of a negative index will cause an ArrayIndexOutOfBoundsException
// with no effort on our part.
if (index >= elementCount)
- throw new ArrayIndexOutOfBoundsException(index + " >= " + elementCount);
+ raiseBoundsError(index, " >= ");
}
/**
+ * Raise the ArrayIndexOfOutBoundsException.
+ *
+ * @param index the index of the access
+ * @param operator the operator to include in the error message
+ * @throws IndexOutOfBoundsException unconditionally
+ */
+ private void raiseBoundsError(int index, String operator)
+ {
+ // Implementaion note: put in a separate method to make the JITs job easier
+ // (separate common from uncommon code at method boundaries when trivial to
+ // do so).
+ throw new ArrayIndexOutOfBoundsException(index + operator + elementCount);
+ }
+
+ /**
* Serializes this object to the given stream.
*
* @param s the stream to write to
diff --git a/libjava/classpath/java/util/logging/FileHandler.java b/libjava/classpath/java/util/logging/FileHandler.java
index 357d51e..deba5c2 100644
--- a/libjava/classpath/java/util/logging/FileHandler.java
+++ b/libjava/classpath/java/util/logging/FileHandler.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.util.logging;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.File;
import java.io.FileOutputStream;
import java.io.FilterOutputStream;
@@ -478,7 +480,7 @@ public class FileHandler
int uniqueNumber,
int count)
{
- StringBuffer buf = new StringBuffer(pattern);
+ CPStringBuilder buf = new CPStringBuilder(pattern);
String replaceWith;
boolean foundGeneration = false;
diff --git a/libjava/classpath/java/util/logging/Logger.java b/libjava/classpath/java/util/logging/Logger.java
index f7157c1..cddc02d 100644
--- a/libjava/classpath/java/util/logging/Logger.java
+++ b/libjava/classpath/java/util/logging/Logger.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.util.logging;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.List;
import java.util.MissingResourceException;
import java.util.ResourceBundle;
@@ -776,7 +778,7 @@ public class Logger
{
if (isLoggable(Level.FINER))
{
- StringBuffer buf = new StringBuffer(80);
+ CPStringBuilder buf = new CPStringBuilder(80);
buf.append("ENTRY");
for (int i = 0; i < params.length; i++)
{
diff --git a/libjava/classpath/java/util/logging/SimpleFormatter.java b/libjava/classpath/java/util/logging/SimpleFormatter.java
index 2ebb1a1..da731f2 100644
--- a/libjava/classpath/java/util/logging/SimpleFormatter.java
+++ b/libjava/classpath/java/util/logging/SimpleFormatter.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.util.logging;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.PrintWriter;
import java.io.StringWriter;
import java.text.DateFormat;
@@ -98,7 +100,7 @@ public class SimpleFormatter
*/
public String format(LogRecord record)
{
- StringBuffer buf = new StringBuffer(180);
+ CPStringBuilder buf = new CPStringBuilder(180);
if (dateFormat == null)
dateFormat = DateFormat.getDateTimeInstance();
diff --git a/libjava/classpath/java/util/logging/XMLFormatter.java b/libjava/classpath/java/util/logging/XMLFormatter.java
index 8f5769b..194fcd2 100644
--- a/libjava/classpath/java/util/logging/XMLFormatter.java
+++ b/libjava/classpath/java/util/logging/XMLFormatter.java
@@ -39,6 +39,8 @@ exception statement from your version. */
package java.util.logging;
+import gnu.java.lang.CPStringBuilder;
+
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.ResourceBundle;
@@ -86,10 +88,10 @@ public class XMLFormatter
/**
* Appends a line consisting of indentation, opening element tag,
* element content, closing element tag and line separator to
- * a StringBuffer, provided that the element content is
+ * a CPStringBuilder, provided that the element content is
* actually existing.
*
- * @param buf the StringBuffer to which the line will be appended.
+ * @param buf the CPStringBuilder to which the line will be appended.
*
* @param indent the indentation level.
*
@@ -98,7 +100,7 @@ public class XMLFormatter
* @param content the element content, or <code>null</code> to
* have no output whatsoever appended to <code>buf</code>.
*/
- private static void appendTag(StringBuffer buf, int indent,
+ private static void appendTag(CPStringBuilder buf, int indent,
String tag, String content)
{
int i;
@@ -163,9 +165,9 @@ public class XMLFormatter
/**
* Appends a line consisting of indentation, opening element tag,
* numeric element content, closing element tag and line separator
- * to a StringBuffer.
+ * to a CPStringBuilder.
*
- * @param buf the StringBuffer to which the line will be appended.
+ * @param buf the CPStringBuilder to which the line will be appended.
*
* @param indent the indentation level.
*
@@ -173,7 +175,7 @@ public class XMLFormatter
*
* @param content the element content.
*/
- private static void appendTag(StringBuffer buf, int indent,
+ private static void appendTag(CPStringBuilder buf, int indent,
String tag, long content)
{
appendTag(buf, indent, tag, Long.toString(content));
@@ -182,7 +184,7 @@ public class XMLFormatter
public String format(LogRecord record)
{
- StringBuffer buf = new StringBuffer(400);
+ CPStringBuilder buf = new CPStringBuilder(400);
Level level = record.getLevel();
long millis = record.getMillis();
Object[] params = record.getParameters();
@@ -314,10 +316,10 @@ public class XMLFormatter
*/
public String getHead(Handler h)
{
- StringBuffer buf;
+ CPStringBuilder buf;
String encoding;
- buf = new StringBuffer(80);
+ buf = new CPStringBuilder(80);
buf.append("<?xml version=\"1.0\" encoding=\"");
encoding = h.getEncoding();
diff --git a/libjava/classpath/java/util/prefs/AbstractPreferences.java b/libjava/classpath/java/util/prefs/AbstractPreferences.java
index f3a62e6..9562e1b 100644
--- a/libjava/classpath/java/util/prefs/AbstractPreferences.java
+++ b/libjava/classpath/java/util/prefs/AbstractPreferences.java
@@ -38,7 +38,8 @@ exception statement from your version. */
package java.util.prefs;
-import gnu.java.util.prefs.EventDispatcher;
+import gnu.classpath.toolkit.DefaultDaemonThreadFactory;
+import gnu.java.lang.CPStringBuilder;
import gnu.java.util.prefs.NodeWriter;
import java.io.ByteArrayOutputStream;
@@ -49,6 +50,8 @@ import java.util.Collection;
import java.util.HashMap;
import java.util.Iterator;
import java.util.TreeSet;
+import java.util.concurrent.Executor;
+import java.util.concurrent.Executors;
/**
* Partial implementation of a Preference node.
@@ -841,7 +844,7 @@ public abstract class AbstractPreferences extends Preferences {
* Helper method for encoding an array of bytes as a Base64 String.
*/
private static String encode64(byte[] b) {
- StringBuffer sb = new StringBuffer((b.length/3)*4);
+ CPStringBuilder sb = new CPStringBuilder((b.length/3)*4);
int i = 0;
int remaining = b.length;
@@ -1236,17 +1239,18 @@ public abstract class AbstractPreferences extends Preferences {
*/
private void fire(final PreferenceChangeEvent event)
{
- Iterator it = preferenceListeners.iterator();
- while (it.hasNext())
+ for (final PreferenceChangeListener listener : preferenceListeners)
{
- final PreferenceChangeListener l = (PreferenceChangeListener) it.next();
- EventDispatcher.dispatch(new Runnable()
- {
- public void run()
- {
- l.preferenceChange(event);
- }
- });
+ Runnable dispatcher = new Runnable() {
+ public void run()
+ {
+ listener.preferenceChange(event);
+ }
+ };
+
+ Executor executor =
+ Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory());
+ executor.execute(dispatcher);
}
}
@@ -1258,20 +1262,21 @@ public abstract class AbstractPreferences extends Preferences {
*/
private void fire(final NodeChangeEvent event, final boolean added)
{
- Iterator it = nodeListeners.iterator();
- while (it.hasNext())
+ for (final NodeChangeListener listener : nodeListeners)
{
- final NodeChangeListener l = (NodeChangeListener) it.next();
- EventDispatcher.dispatch(new Runnable()
- {
- public void run()
- {
- if (added)
- l.childAdded(event);
- else
- l.childRemoved(event);
- }
- });
+ Runnable dispatcher = new Runnable() {
+ public void run()
+ {
+ if (added)
+ listener.childAdded(event);
+ else
+ listener.childRemoved(event);
+ }
+ };
+
+ Executor executor =
+ Executors.newSingleThreadExecutor(new DefaultDaemonThreadFactory());
+ executor.execute(dispatcher);
}
}
diff --git a/libjava/classpath/java/util/regex/Matcher.java b/libjava/classpath/java/util/regex/Matcher.java
index bf83367..50cb065 100644
--- a/libjava/classpath/java/util/regex/Matcher.java
+++ b/libjava/classpath/java/util/regex/Matcher.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package java.util.regex;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.util.regex.CharIndexed;
import gnu.java.util.regex.RE;
import gnu.java.util.regex.REMatch;
@@ -59,11 +61,45 @@ public final class Matcher implements MatchResult
private int appendPosition;
private REMatch match;
+ /**
+ * The start of the region of the input on which to match.
+ */
+ private int regionStart;
+
+ /**
+ * The end of the region of the input on which to match.
+ */
+ private int regionEnd;
+
+ /**
+ * True if the match process should look beyond the
+ * region marked by regionStart to regionEnd when
+ * performing lookAhead, lookBehind and boundary
+ * matching.
+ */
+ private boolean transparentBounds;
+
+ /**
+ * The flags that affect the anchoring bounds.
+ * If {@link #hasAnchoringBounds()} is {@code true},
+ * the match process will honour the
+ * anchoring bounds: ^, \A, \Z, \z and $. If
+ * {@link #hasAnchoringBounds()} is {@code false},
+ * the anchors are ignored and appropriate flags,
+ * stored in this variable, are used to provide this
+ * behaviour.
+ */
+ private int anchoringBounds;
+
Matcher(Pattern pattern, CharSequence input)
{
this.pattern = pattern;
this.input = input;
this.inputCharIndexed = RE.makeCharIndexed(input, 0);
+ regionStart = 0;
+ regionEnd = input.length();
+ transparentBounds = false;
+ anchoringBounds = 0;
}
/**
@@ -125,13 +161,17 @@ public final class Matcher implements MatchResult
public boolean find ()
{
boolean first = (match == null);
- match = pattern.getRE().getMatch(inputCharIndexed, position);
+ if (transparentBounds || (regionStart == 0 && regionEnd == input.length()))
+ match = pattern.getRE().getMatch(inputCharIndexed, position, anchoringBounds);
+ else
+ match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd),
+ position, anchoringBounds);
if (match != null)
{
int endIndex = match.getEndIndex();
// Are we stuck at the same position?
if (!first && endIndex == position)
- {
+ {
match = null;
// Not at the end of the input yet?
if (position < input.length() - 1)
@@ -156,7 +196,11 @@ public final class Matcher implements MatchResult
*/
public boolean find (int start)
{
- match = pattern.getRE().getMatch(inputCharIndexed, start);
+ if (transparentBounds || (regionStart == 0 && regionEnd == input.length()))
+ match = pattern.getRE().getMatch(inputCharIndexed, start, anchoringBounds);
+ else
+ match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd),
+ start, anchoringBounds);
if (match != null)
{
position = match.getEndIndex();
@@ -218,7 +262,12 @@ public final class Matcher implements MatchResult
public boolean lookingAt ()
{
- match = pattern.getRE().getMatch(inputCharIndexed, 0, RE.REG_FIX_STARTING_POSITION, null);
+ if (transparentBounds || (regionStart == 0 && regionEnd == input.length()))
+ match = pattern.getRE().getMatch(inputCharIndexed, regionStart,
+ anchoringBounds|RE.REG_FIX_STARTING_POSITION|RE.REG_ANCHORINDEX);
+ else
+ match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), 0,
+ anchoringBounds|RE.REG_FIX_STARTING_POSITION);
if (match != null)
{
if (match.getStartIndex() == 0)
@@ -243,7 +292,12 @@ public final class Matcher implements MatchResult
*/
public boolean matches ()
{
- match = pattern.getRE().getMatch(inputCharIndexed, 0, RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION, null);
+ if (transparentBounds || (regionStart == 0 && regionEnd == input.length()))
+ match = pattern.getRE().getMatch(inputCharIndexed, regionStart,
+ anchoringBounds|RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION|RE.REG_ANCHORINDEX);
+ else
+ match = pattern.getRE().getMatch(input.subSequence(regionStart, regionEnd), 0,
+ anchoringBounds|RE.REG_TRY_ENTIRE_MATCH|RE.REG_FIX_STARTING_POSITION);
if (match != null)
{
if (match.getStartIndex() == 0)
@@ -265,15 +319,40 @@ public final class Matcher implements MatchResult
return pattern;
}
+ /**
+ * Resets the internal state of the matcher, including
+ * resetting the region to its default state of encompassing
+ * the whole input. The state of {@link #hasTransparentBounds()}
+ * and {@link #hasAnchoringBounds()} are unaffected.
+ *
+ * @return a reference to this matcher.
+ * @see #regionStart()
+ * @see #regionEnd()
+ * @see #hasTransparentBounds()
+ * @see #hasAnchoringBounds()
+ */
public Matcher reset ()
{
position = 0;
match = null;
+ regionStart = 0;
+ regionEnd = input.length();
+ appendPosition = 0;
return this;
}
/**
- * @param input The new input character sequence
+ * Resets the internal state of the matcher, including
+ * resetting the region to its default state of encompassing
+ * the whole input. The state of {@link #hasTransparentBounds()}
+ * and {@link #hasAnchoringBounds()} are unaffected.
+ *
+ * @param input The new input character sequence.
+ * @return a reference to this matcher.
+ * @see #regionStart()
+ * @see #regionEnd()
+ * @see #hasTransparentBounds()
+ * @see #hasAnchoringBounds()
*/
public Matcher reset (CharSequence input)
{
@@ -283,7 +362,7 @@ public final class Matcher implements MatchResult
}
/**
- * @returns the index of a capturing group in this matcher's pattern
+ * @return the index of a capturing group in this matcher's pattern
*
* @exception IllegalStateException If no match has yet been attempted,
* or if the previous match operation failed
@@ -312,6 +391,7 @@ public final class Matcher implements MatchResult
/**
* @return True if and only if the matcher hit the end of input.
+ * @since 1.5
*/
public boolean hitEnd()
{
@@ -323,10 +403,12 @@ public final class Matcher implements MatchResult
*/
public String toString()
{
- StringBuilder sb = new StringBuilder();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(this.getClass().getName())
.append("[pattern=").append(pattern.pattern())
- .append(" region=").append("0").append(",").append(input.length())
+ .append(" region=").append(regionStart).append(",").append(regionEnd)
+ .append(" anchoringBounds=").append(anchoringBounds == 0)
+ .append(" transparentBounds=").append(transparentBounds)
.append(" lastmatch=").append(match == null ? "" : match.toString())
.append("]");
return sb.toString();
@@ -336,4 +418,193 @@ public final class Matcher implements MatchResult
{
if (match == null) throw new IllegalStateException();
}
+
+ /**
+ * <p>
+ * Defines the region of the input on which to match.
+ * By default, the {@link Matcher} attempts to match
+ * the whole string (from 0 to the length of the input),
+ * but a region between {@code start} (inclusive) and
+ * {@code end} (exclusive) on which to match may instead
+ * be defined using this method.
+ * </p>
+ * <p>
+ * The behaviour of region matching is further affected
+ * by the use of transparent or opaque bounds (see
+ * {@link #useTransparentBounds(boolean)}) and whether or not
+ * anchors ({@code ^} and {@code $}) are in use
+ * (see {@link #useAnchoringBounds(boolean)}). With transparent
+ * bounds, the matcher is aware of input outside the bounds
+ * set by this method, whereas, with opaque bounds (the default)
+ * only the input within the bounds is used. The use of
+ * anchors are affected by this setting; with transparent
+ * bounds, anchors will match the beginning of the real input,
+ * while with opaque bounds they match the beginning of the
+ * region. {@link #useAnchoringBounds(boolean)} can be used
+ * to turn on or off the matching of anchors.
+ * </p>
+ *
+ * @param start the start of the region (inclusive).
+ * @param end the end of the region (exclusive).
+ * @return a reference to this matcher.
+ * @throws IndexOutOfBoundsException if either {@code start} or
+ * {@code end} are less than zero,
+ * if either {@code start} or
+ * {@code end} are greater than the
+ * length of the input, or if
+ * {@code start} is greater than
+ * {@code end}.
+ * @see #regionStart()
+ * @see #regionEnd()
+ * @see #hasTransparentBounds()
+ * @see #useTransparentBounds(boolean)
+ * @see #hasAnchoringBounds()
+ * @see #useAnchoringBounds(boolean)
+ * @since 1.5
+ */
+ public Matcher region(int start, int end)
+ {
+ int length = input.length();
+ if (start < 0)
+ throw new IndexOutOfBoundsException("The start position was less than zero.");
+ if (start >= length)
+ throw new IndexOutOfBoundsException("The start position is after the end of the input.");
+ if (end < 0)
+ throw new IndexOutOfBoundsException("The end position was less than zero.");
+ if (end > length)
+ throw new IndexOutOfBoundsException("The end position is after the end of the input.");
+ if (start > end)
+ throw new IndexOutOfBoundsException("The start position is after the end position.");
+ reset();
+ regionStart = start;
+ regionEnd = end;
+ return this;
+ }
+
+ /**
+ * The start of the region on which to perform matches (inclusive).
+ *
+ * @return the start index of the region.
+ * @see #region(int,int)
+ * #see #regionEnd()
+ * @since 1.5
+ */
+ public int regionStart()
+ {
+ return regionStart;
+ }
+
+ /**
+ * The end of the region on which to perform matches (exclusive).
+ *
+ * @return the end index of the region.
+ * @see #region(int,int)
+ * @see #regionStart()
+ * @since 1.5
+ */
+ public int regionEnd()
+ {
+ return regionEnd;
+ }
+
+ /**
+ * Returns true if the bounds of the region marked by
+ * {@link #regionStart()} and {@link #regionEnd()} are
+ * transparent. When these bounds are transparent, the
+ * matching process can look beyond them to perform
+ * lookahead, lookbehind and boundary matching operations.
+ * By default, the bounds are opaque.
+ *
+ * @return true if the bounds of the matching region are
+ * transparent.
+ * @see #useTransparentBounds(boolean)
+ * @see #region(int,int)
+ * @see #regionStart()
+ * @see #regionEnd()
+ * @since 1.5
+ */
+ public boolean hasTransparentBounds()
+ {
+ return transparentBounds;
+ }
+
+ /**
+ * Sets the transparency of the bounds of the region
+ * marked by {@link #regionStart()} and {@link #regionEnd()}.
+ * A value of {@code true} makes the bounds transparent,
+ * so the matcher can see beyond them to perform lookahead,
+ * lookbehind and boundary matching operations. A value
+ * of {@code false} (the default) makes the bounds opaque,
+ * restricting the match to the input region denoted
+ * by {@link #regionStart()} and {@link #regionEnd()}.
+ *
+ * @param transparent true if the bounds should be transparent.
+ * @return a reference to this matcher.
+ * @see #hasTransparentBounds()
+ * @see #region(int,int)
+ * @see #regionStart()
+ * @see #regionEnd()
+ * @since 1.5
+ */
+ public Matcher useTransparentBounds(boolean transparent)
+ {
+ transparentBounds = transparent;
+ return this;
+ }
+
+ /**
+ * Returns true if the matcher will honour the use of
+ * the anchoring bounds: {@code ^}, {@code \A}, {@code \Z},
+ * {@code \z} and {@code $}. By default, the anchors
+ * are used. Note that the effect of the anchors is
+ * also affected by {@link #hasTransparentBounds()}.
+ *
+ * @return true if the matcher will attempt to match
+ * the anchoring bounds.
+ * @see #useAnchoringBounds(boolean)
+ * @see #hasTransparentBounds()
+ * @since 1.5
+ */
+ public boolean hasAnchoringBounds()
+ {
+ return anchoringBounds == 0;
+ }
+
+ /**
+ * Enables or disables the use of the anchoring bounds:
+ * {@code ^}, {@code \A}, {@code \Z}, {@code \z} and
+ * {@code $}. By default, their use is enabled. When
+ * disabled, the matcher will not attempt to match
+ * the anchors.
+ *
+ * @param useAnchors true if anchoring bounds should be used.
+ * @return a reference to this matcher.
+ * @since 1.5
+ * @see #hasAnchoringBounds()
+ */
+ public Matcher useAnchoringBounds(boolean useAnchors)
+ {
+ if (useAnchors)
+ anchoringBounds = 0;
+ else
+ anchoringBounds = RE.REG_NOTBOL|RE.REG_NOTEOL;
+ return this;
+ }
+
+ /**
+ * Returns a read-only snapshot of the current state of
+ * the {@link Matcher} as a {@link MatchResult}. Any
+ * subsequent changes to this instance are not reflected
+ * in the returned {@link MatchResult}.
+ *
+ * @return a {@link MatchResult} instance representing the
+ * current state of the {@link Matcher}.
+ */
+ public MatchResult toMatchResult()
+ {
+ Matcher snapshot = new Matcher(pattern, input);
+ snapshot.match = (REMatch) match.clone();
+ return snapshot;
+ }
+
}
diff --git a/libjava/classpath/java/util/regex/Pattern.java b/libjava/classpath/java/util/regex/Pattern.java
index 217ce08..35ec0b8 100644
--- a/libjava/classpath/java/util/regex/Pattern.java
+++ b/libjava/classpath/java/util/regex/Pattern.java
@@ -191,7 +191,7 @@ public final class Pattern implements Serializable
public String[] split (CharSequence input, int limit)
{
Matcher matcher = new Matcher(this, input);
- ArrayList list = new ArrayList();
+ ArrayList<String> list = new ArrayList<String>();
int empties = 0;
int count = 0;
int start = 0;
@@ -251,9 +251,7 @@ public final class Pattern implements Serializable
list.add(t);
}
- String[] output = new String [list.size()];
- list.toArray(output);
- return output;
+ return list.toArray(new String[list.size()]);
}
public String pattern ()
diff --git a/libjava/classpath/java/util/regex/PatternSyntaxException.java b/libjava/classpath/java/util/regex/PatternSyntaxException.java
index 41e650d..38e27db 100644
--- a/libjava/classpath/java/util/regex/PatternSyntaxException.java
+++ b/libjava/classpath/java/util/regex/PatternSyntaxException.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package java.util.regex;
+import gnu.java.lang.CPStringBuilder;
+
/**
* Indicates illegal pattern for regular expression.
* Includes state to inspect the pattern and what and where the expression
@@ -115,7 +117,7 @@ public class PatternSyntaxException extends IllegalArgumentException
public String getMessage()
{
String lineSep = System.getProperty("line.separator");
- StringBuffer sb = new StringBuffer(desc);
+ CPStringBuilder sb = new CPStringBuilder(desc);
sb.append(lineSep);
sb.append('\t');
sb.append(pattern);
diff --git a/libjava/classpath/java/util/zip/Deflater.java b/libjava/classpath/java/util/zip/Deflater.java
index e97c605..41d9881 100644
--- a/libjava/classpath/java/util/zip/Deflater.java
+++ b/libjava/classpath/java/util/zip/Deflater.java
@@ -241,7 +241,6 @@ public class Deflater
/**
* Gets the number of input bytes processed so far.
*/
- @Deprecated
public int getTotalIn()
{
return (int) engine.getTotalIn();
@@ -259,7 +258,6 @@ public class Deflater
/**
* Gets the number of output bytes so far.
*/
- @Deprecated
public int getTotalOut()
{
return (int) totalOut;
diff --git a/libjava/classpath/java/util/zip/Inflater.java b/libjava/classpath/java/util/zip/Inflater.java
index 509b957..e3e555a 100644
--- a/libjava/classpath/java/util/zip/Inflater.java
+++ b/libjava/classpath/java/util/zip/Inflater.java
@@ -246,7 +246,6 @@ public class Inflater
* Gets the total number of processed compressed input bytes.
* @return the total number of bytes of processed input bytes.
*/
- @Deprecated
public int getTotalIn()
{
return (int) (totalIn - getRemaining());
@@ -266,7 +265,6 @@ public class Inflater
* Gets the total number of output bytes returned by inflate().
* @return the total number of output bytes.
*/
- @Deprecated
public int getTotalOut()
{
return (int) totalOut;
diff --git a/libjava/classpath/java/util/zip/ZipEntry.java b/libjava/classpath/java/util/zip/ZipEntry.java
index 893f043..a6d01af 100644
--- a/libjava/classpath/java/util/zip/ZipEntry.java
+++ b/libjava/classpath/java/util/zip/ZipEntry.java
@@ -50,23 +50,39 @@ import java.util.Calendar;
*/
public class ZipEntry implements ZipConstants, Cloneable
{
- private static final int KNOWN_SIZE = 1;
- private static final int KNOWN_CSIZE = 2;
- private static final int KNOWN_CRC = 4;
- private static final int KNOWN_TIME = 8;
- private static final int KNOWN_EXTRA = 16;
-
- private static Calendar cal;
-
- private String name;
+ private static final byte KNOWN_SIZE = 1;
+ private static final byte KNOWN_CSIZE = 2;
+ private static final byte KNOWN_CRC = 4;
+ private static final byte KNOWN_TIME = 8;
+ private static final byte KNOWN_DOSTIME = 16;
+ private static final byte KNOWN_EXTRA = 32;
+
+ /** Immutable name of the entry */
+ private final String name;
+ /** Uncompressed size */
private int size;
+ /** Compressed size */
private long compressedSize = -1;
+ /** CRC of uncompressed data */
private int crc;
+ /** Comment or null if none */
+ private String comment = null;
+ /** The compression method. Either DEFLATED or STORED, by default -1. */
+ private byte method = -1;
+ /** Flags specifying what we know about this entry */
+ private byte known = 0;
+ /**
+ * The 32bit DOS encoded format for the time of this entry. Only valid if
+ * KNOWN_DOSTIME is set in known.
+ */
private int dostime;
- private short known = 0;
- private short method = -1;
+ /**
+ * The 64bit Java encoded millisecond time since the beginning of the epoch.
+ * Only valid if KNOWN_TIME is set in known.
+ */
+ private long time;
+ /** Extra data */
private byte[] extra = null;
- private String comment = null;
int flags; /* used by ZipOutputStream */
int offset; /* used by ZipFile and ZipOutputStream */
@@ -113,6 +129,7 @@ public class ZipEntry implements ZipConstants, Cloneable
compressedSize = e.compressedSize;
crc = e.crc;
dostime = e.dostime;
+ time = e.time;
method = e.method;
extra = e.extra;
comment = e.comment;
@@ -121,37 +138,60 @@ public class ZipEntry implements ZipConstants, Cloneable
final void setDOSTime(int dostime)
{
this.dostime = dostime;
- known |= KNOWN_TIME;
+ known |= KNOWN_DOSTIME;
+ known &= ~KNOWN_TIME;
}
final int getDOSTime()
{
- if ((known & KNOWN_TIME) == 0)
- return 0;
- else
+ if ((known & KNOWN_DOSTIME) != 0)
return dostime;
+ else if ((known & KNOWN_TIME) != 0)
+ {
+ Calendar cal = Calendar.getInstance();
+ cal.setTimeInMillis(time);
+ dostime = (cal.get(Calendar.YEAR) - 1980 & 0x7f) << 25
+ | (cal.get(Calendar.MONTH) + 1) << 21
+ | (cal.get(Calendar.DAY_OF_MONTH)) << 16
+ | (cal.get(Calendar.HOUR_OF_DAY)) << 11
+ | (cal.get(Calendar.MINUTE)) << 5
+ | (cal.get(Calendar.SECOND)) >> 1;
+ known |= KNOWN_DOSTIME;
+ return dostime;
+ }
+ else
+ return 0;
}
/**
* Creates a copy of this zip entry.
*/
- /**
- * Clones the entry.
- */
public Object clone()
{
- try
+ // JCL defines this as being the same as the copy constructor above,
+ // except that value of the "extra" field is also copied. Take care
+ // that in the case of a subclass we use clone() rather than the copy
+ // constructor.
+ ZipEntry clone;
+ if (this.getClass() == ZipEntry.class)
+ clone = new ZipEntry(this);
+ else
{
- // The JCL says that the `extra' field is also copied.
- ZipEntry clone = (ZipEntry) super.clone();
- if (extra != null)
- clone.extra = (byte[]) extra.clone();
- return clone;
+ try
+ {
+ clone = (ZipEntry) super.clone();
+ }
+ catch (CloneNotSupportedException e)
+ {
+ throw new InternalError();
+ }
}
- catch (CloneNotSupportedException ex)
+ if (extra != null)
{
- throw new InternalError();
+ clone.extra = new byte[extra.length];
+ System.arraycopy(extra, 0, clone.extra, 0, extra.length);
}
+ return clone;
}
/**
@@ -169,18 +209,9 @@ public class ZipEntry implements ZipConstants, Cloneable
*/
public void setTime(long time)
{
- Calendar cal = getCalendar();
- synchronized (cal)
- {
- cal.setTimeInMillis(time);
- dostime = (cal.get(Calendar.YEAR) - 1980 & 0x7f) << 25
- | (cal.get(Calendar.MONTH) + 1) << 21
- | (cal.get(Calendar.DAY_OF_MONTH)) << 16
- | (cal.get(Calendar.HOUR_OF_DAY)) << 11
- | (cal.get(Calendar.MINUTE)) << 5
- | (cal.get(Calendar.SECOND)) >> 1;
- }
+ this.time = time;
this.known |= KNOWN_TIME;
+ this.known &= ~KNOWN_DOSTIME;
}
/**
@@ -192,39 +223,34 @@ public class ZipEntry implements ZipConstants, Cloneable
// The extra bytes might contain the time (posix/unix extension)
parseExtra();
- if ((known & KNOWN_TIME) == 0)
- return -1;
-
- int sec = 2 * (dostime & 0x1f);
- int min = (dostime >> 5) & 0x3f;
- int hrs = (dostime >> 11) & 0x1f;
- int day = (dostime >> 16) & 0x1f;
- int mon = ((dostime >> 21) & 0xf) - 1;
- int year = ((dostime >> 25) & 0x7f) + 1980; /* since 1900 */
-
- try
- {
- cal = getCalendar();
- synchronized (cal)
- {
- cal.set(year, mon, day, hrs, min, sec);
- return cal.getTimeInMillis();
- }
- }
- catch (RuntimeException ex)
+ if ((known & KNOWN_TIME) != 0)
+ return time;
+ else if ((known & KNOWN_DOSTIME) != 0)
{
- /* Ignore illegal time stamp */
- known &= ~KNOWN_TIME;
- return -1;
+ int sec = 2 * (dostime & 0x1f);
+ int min = (dostime >> 5) & 0x3f;
+ int hrs = (dostime >> 11) & 0x1f;
+ int day = (dostime >> 16) & 0x1f;
+ int mon = ((dostime >> 21) & 0xf) - 1;
+ int year = ((dostime >> 25) & 0x7f) + 1980; /* since 1900 */
+
+ try
+ {
+ Calendar cal = Calendar.getInstance();
+ cal.set(year, mon, day, hrs, min, sec);
+ time = cal.getTimeInMillis();
+ known |= KNOWN_TIME;
+ return time;
+ }
+ catch (RuntimeException ex)
+ {
+ /* Ignore illegal time stamp */
+ known &= ~KNOWN_TIME;
+ return -1;
+ }
}
- }
-
- private static synchronized Calendar getCalendar()
- {
- if (cal == null)
- cal = Calendar.getInstance();
-
- return cal;
+ else
+ return -1;
}
/**
@@ -298,7 +324,7 @@ public class ZipEntry implements ZipConstants, Cloneable
if (method != ZipOutputStream.STORED
&& method != ZipOutputStream.DEFLATED)
throw new IllegalArgumentException();
- this.method = (short) method;
+ this.method = (byte) method;
}
/**
diff --git a/libjava/classpath/java/util/zip/ZipFile.java b/libjava/classpath/java/util/zip/ZipFile.java
index 3b34bd1..7cf7007 100644
--- a/libjava/classpath/java/util/zip/ZipFile.java
+++ b/libjava/classpath/java/util/zip/ZipFile.java
@@ -340,7 +340,7 @@ public class ZipFile implements ZipConstants
}
catch (IOException ioe)
{
- return EmptyEnumeration.getInstance();
+ return new EmptyEnumeration<ZipEntry>();
}
}
diff --git a/libjava/classpath/javax/accessibility/AccessibleRelationSet.java b/libjava/classpath/javax/accessibility/AccessibleRelationSet.java
index 49161d7..0770fdb 100644
--- a/libjava/classpath/javax/accessibility/AccessibleRelationSet.java
+++ b/libjava/classpath/javax/accessibility/AccessibleRelationSet.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.accessibility;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Locale;
import java.util.Vector;
@@ -216,7 +218,7 @@ public class AccessibleRelationSet
if (i == 0)
return "";
// Pre-allocate an average of 10 chars per state.
- StringBuffer b = new StringBuffer(i * 10);
+ CPStringBuilder b = new CPStringBuilder(i * 10);
while (--i >= 0)
b.append(relations.get(i)).append(',');
return b.substring(0, b.length() - 1);
diff --git a/libjava/classpath/javax/accessibility/AccessibleStateSet.java b/libjava/classpath/javax/accessibility/AccessibleStateSet.java
index 783f541..83bf3d4 100644
--- a/libjava/classpath/javax/accessibility/AccessibleStateSet.java
+++ b/libjava/classpath/javax/accessibility/AccessibleStateSet.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.accessibility;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Locale;
import java.util.Vector;
@@ -165,7 +167,7 @@ public class AccessibleStateSet
if (i == 0)
return "";
// Pre-allocate an average of 10 chars per state.
- StringBuffer b = new StringBuffer(i * 10);
+ CPStringBuilder b = new CPStringBuilder(i * 10);
while (--i >= 0)
b.append(states.get(i)).append(',');
return b.substring(0, b.length() - 1);
diff --git a/libjava/classpath/javax/activation/ActivationDataFlavor.java b/libjava/classpath/javax/activation/ActivationDataFlavor.java
new file mode 100644
index 0000000..07ba1a3
--- /dev/null
+++ b/libjava/classpath/javax/activation/ActivationDataFlavor.java
@@ -0,0 +1,161 @@
+/* ActivationDataFlavor.java -- Activation-specific DataFlavor instance.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+import java.awt.datatransfer.DataFlavor;
+import java.io.InputStream;
+
+/**
+ * Activation-specific DataFlavor with improved MIME parsing.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.0.2
+ */
+public class ActivationDataFlavor extends DataFlavor
+{
+
+ private final String mimeType;
+ private final Class<?> representationClass;
+ private String humanPresentableName;
+
+ /**
+ * Constructor.
+ * @param representationClass the representation class
+ * @param mimeType the MIME type of the data
+ * @param humanPresentableName the human-presentable name of the data
+ * flavor
+ */
+ // Raw types enforced as part of spec.
+ @SuppressWarnings("unchecked")
+ public ActivationDataFlavor(Class representationClass, String mimeType,
+ String humanPresentableName)
+ {
+ super(mimeType, humanPresentableName);
+ this.mimeType = mimeType;
+ this.humanPresentableName = humanPresentableName;
+ this.representationClass = representationClass;
+ }
+
+ /**
+ * Constructor.
+ * @param representationClass the representation class
+ * @param humanPresentableName the human-presentable name of the data
+ * flavor
+ */
+ // Raw types enforced as part of spec.
+ @SuppressWarnings("unchecked")
+ public ActivationDataFlavor(Class representationClass,
+ String humanPresentableName)
+ {
+ super(representationClass, humanPresentableName);
+ mimeType = super.getMimeType();
+ this.representationClass = representationClass;
+ this.humanPresentableName = humanPresentableName;
+ }
+
+ /**
+ * Constructor. The representation class is an InputStream.
+ * @param mimeType the MIME type of the data
+ * @param humanPresentableName the human-presentable name of the data
+ * flavor
+ */
+ public ActivationDataFlavor(String mimeType, String humanPresentableName)
+ {
+ super(mimeType, humanPresentableName);
+ this.mimeType = mimeType;
+ this.humanPresentableName = humanPresentableName;
+ representationClass = InputStream.class;
+ }
+
+ public String getMimeType()
+ {
+ return mimeType;
+ }
+
+ // Raw types enforced as part of spec.
+ @SuppressWarnings("unchecked")
+ public Class getRepresentationClass()
+ {
+ return representationClass;
+ }
+
+ public String getHumanPresentableName()
+ {
+ return humanPresentableName;
+ }
+
+ public void setHumanPresentableName(String humanPresentableName)
+ {
+ this.humanPresentableName = humanPresentableName;
+ }
+
+ public boolean equals(DataFlavor dataFlavor)
+ {
+ return (isMimeTypeEqual(dataFlavor) &&
+ dataFlavor.getRepresentationClass() == representationClass);
+ }
+
+ public boolean isMimeTypeEqual(String mimeType)
+ {
+ try
+ {
+ return new MimeType(this.mimeType).match(new MimeType(mimeType));
+ }
+ catch (MimeTypeParseException e)
+ {
+ return false;
+ }
+ }
+
+ protected String normalizeMimeTypeParameter(String parameterName,
+ String parameterValue)
+ {
+ return new CPStringBuilder(parameterName)
+ .append('=')
+ .append(parameterValue)
+ .toString();
+ }
+
+ protected String normalizeMimeType(String mimeType)
+ {
+ return mimeType;
+ }
+
+}
diff --git a/libjava/classpath/javax/activation/CommandInfo.java b/libjava/classpath/javax/activation/CommandInfo.java
new file mode 100644
index 0000000..d420c6e
--- /dev/null
+++ b/libjava/classpath/javax/activation/CommandInfo.java
@@ -0,0 +1,117 @@
+/* CommandInfo.java -- Description of the result of a command request.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.beans.Beans;
+import java.io.Externalizable;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.ObjectInputStream;
+
+/**
+ * Description of the result of a command request.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class CommandInfo
+{
+
+ private final String verb;
+ private final String className;
+
+ /**
+ * Constructor.
+ * @param verb the command verb
+ * @param className the command class name
+ */
+ public CommandInfo(String verb, String className)
+ {
+ this.verb = verb;
+ this.className = className;
+ }
+
+ /**
+ * Returns the command verb.
+ */
+ public String getCommandName()
+ {
+ return verb;
+ }
+
+ /**
+ * Returns the command class name.
+ */
+ public String getCommandClass()
+ {
+ return className;
+ }
+
+ /**
+ * Returns the instantiated bean.
+ * If the bean implements <code>CommandObject</code>, its
+ * <code>setCommandContext</code> method will be called.
+ * @param dh the data handler describing the command data
+ * @param loader the class loader used to instantiate the bean
+ */
+ public Object getCommandObject(DataHandler dh, ClassLoader loader)
+ throws IOException, ClassNotFoundException
+ {
+ Object object = Beans.instantiate(loader, className);
+ if (object != null)
+ {
+ if (object instanceof CommandObject)
+ {
+ CommandObject command = (CommandObject)object;
+ command.setCommandContext(verb, dh);
+ }
+ else if (dh != null && (object instanceof Externalizable))
+ {
+ InputStream in = dh.getInputStream();
+ if (in != null)
+ {
+ Externalizable externalizable = (Externalizable)object;
+ externalizable.readExternal(new ObjectInputStream(in));
+ }
+ }
+ }
+ return object;
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/CommandMap.java b/libjava/classpath/javax/activation/CommandMap.java
new file mode 100644
index 0000000..fd74961
--- /dev/null
+++ b/libjava/classpath/javax/activation/CommandMap.java
@@ -0,0 +1,212 @@
+/* CommandMap.java -- Registry of available command objects.
+ Copyright (C) 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+/**
+ * Registry of command objects available to the system.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public abstract class CommandMap
+{
+
+ /* Class scope */
+
+ private static CommandMap defaultCommandMap;
+
+ /**
+ * Returns the default command map.
+ * This returns a MailcapCommandMap if no value has been set using
+ * <code>setDefaultCommandMap</code>.
+ */
+ public static CommandMap getDefaultCommandMap()
+ {
+ if (defaultCommandMap == null)
+ {
+ defaultCommandMap = new MailcapCommandMap();
+ }
+ return defaultCommandMap;
+ }
+
+ /**
+ * Sets the default command map.
+ * @param commandMap the new default command map
+ */
+ public static void setDefaultCommandMap(CommandMap commandMap)
+ {
+ SecurityManager security = System.getSecurityManager();
+ if (security != null)
+ {
+ try
+ {
+ security.checkSetFactory();
+ }
+ catch (SecurityException e)
+ {
+ if (commandMap != null && CommandMap.class.getClassLoader() !=
+ commandMap.getClass().getClassLoader())
+ {
+ throw e;
+ }
+ }
+ }
+ defaultCommandMap = commandMap;
+ }
+
+ /* Instance scope */
+
+ /**
+ * Returns the list of preferred commands for a MIME type.
+ * @param mimeType the MIME type
+ */
+ public abstract CommandInfo[] getPreferredCommands(String mimeType);
+
+ /**
+ * Returns the complete list of commands for a MIME type.
+ * @param mimeType the MIME type
+ */
+ public abstract CommandInfo[] getAllCommands(String mimeType);
+
+ /**
+ * Returns the command corresponding to the specified MIME type and
+ * command name.
+ * @param mimeType the MIME type
+ * @param cmdName the command name
+ */
+ public abstract CommandInfo getCommand(String mimeType, String cmdName);
+
+ /**
+ * Returns a DataContentHandler corresponding to the MIME type.
+ * @param mimeType the MIME type
+ */
+ public abstract DataContentHandler createDataContentHandler(String mimeType);
+
+ /**
+ * Get all the MIME types known to this command map.
+ * If the command map doesn't support this operation, null is returned.
+ * @return array of MIME types as strings, or null if not supported
+ * @since JAF 1.1
+ */
+ public String[] getMimeTypes()
+ {
+ return null;
+ }
+
+ /**
+ * Get the preferred command list from a MIME Type. The actual semantics
+ * are determined by the implementation of the CommandMap.
+ * <p>
+ * The <code>DataSource</code> provides extra information, such as
+ * the file name, that a CommandMap implementation may use to further
+ * refine the list of commands that are returned. The implementation
+ * in this class simply calls the <code>getPreferredCommands</code>
+ * method that ignores this argument.
+ * @param mimeType the MIME type
+ * @param ds a DataSource for the data
+ * @return the CommandInfo classes that represent the command Beans.
+ * @since JAF 1.1
+ */
+ public CommandInfo[] getPreferredCommands(String mimeType,
+ DataSource ds)
+ {
+ return getPreferredCommands(mimeType);
+ }
+
+ /**
+ * Get all the available commands for this type. This method
+ * should return all the possible commands for this MIME type.
+ * <p>
+ * The <code>DataSource</code> provides extra information, such as
+ * the file name, that a CommandMap implementation may use to further
+ * refine the list of commands that are returned. The implementation
+ * in this class simply calls the <code>getAllCommands</code>
+ * method that ignores this argument.
+ * @param mimeType the MIME type
+ * @param ds a DataSource for the data
+ * @return the CommandInfo objects representing all the commands.
+ * @since JAF 1.1
+ */
+ public CommandInfo[] getAllCommands(String mimeType, DataSource ds)
+ {
+ return getAllCommands(mimeType);
+ }
+
+ /**
+ * Get the default command corresponding to the MIME type.
+ * <p>
+ * The <code>DataSource</code> provides extra information, such as
+ * the file name, that a CommandMap implementation may use to further
+ * refine the command that is chosen. The implementation
+ * in this class simply calls the <code>getCommand</code>
+ * method that ignores this argument.
+ * @param mimeType the MIME type
+ * @param cmdName the command name
+ * @param ds a DataSource for the data
+ * @return the CommandInfo corresponding to the command.
+ * @since JAF 1.1
+ */
+ public CommandInfo getCommand(String mimeType, String cmdName,
+ DataSource ds)
+ {
+ return getCommand(mimeType, cmdName);
+ }
+
+ /**
+ * Locate a DataContentHandler that corresponds to the MIME type.
+ * The mechanism and semantics for determining this are determined
+ * by the implementation of the particular CommandMap.
+ * <p>
+ * The <code>DataSource</code> provides extra information, such as
+ * the file name, that a CommandMap implementation may use to further
+ * refine the choice of DataContentHandler. The implementation
+ * in this class simply calls the <code>createDataContentHandler</code>
+ * method that ignores this argument.
+ * @param mimeType the MIME type
+ * @param ds a DataSource for the data
+ * @return the DataContentHandler for the MIME type
+ * @since JAF 1.1
+ */
+ public DataContentHandler createDataContentHandler(String mimeType,
+ DataSource ds)
+ {
+ return createDataContentHandler(mimeType);
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/CommandObject.java b/libjava/classpath/javax/activation/CommandObject.java
new file mode 100644
index 0000000..594622d
--- /dev/null
+++ b/libjava/classpath/javax/activation/CommandObject.java
@@ -0,0 +1,62 @@
+/* CommandObject.java -- Bean interface for notifications.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.IOException;
+
+/**
+ * Bean interface to implement in order to receive notification of the
+ * command verb.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public interface CommandObject
+{
+
+ /**
+ * Initializes the command with the verb it is expected to perform and
+ * the data handler describing the data to operate on.
+ * @param verb the command verb
+ * @param dh the data handler describing the data to process
+ */
+ void setCommandContext(String verb, DataHandler dh)
+ throws IOException;
+
+}
+
diff --git a/libjava/classpath/javax/activation/DataContentHandler.java b/libjava/classpath/javax/activation/DataContentHandler.java
new file mode 100644
index 0000000..f950739
--- /dev/null
+++ b/libjava/classpath/javax/activation/DataContentHandler.java
@@ -0,0 +1,85 @@
+/* DataContentHandler.java -- Converts streams to objects and vice versa.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Provider that can convert streams to objects and vice versa.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public interface DataContentHandler
+{
+
+ /**
+ * Returns a list of the flavors that data can be provided in, ordered
+ * by preference.
+ */
+ DataFlavor[] getTransferDataFlavors();
+
+ /**
+ * Returns an object representing the data to be transferred.
+ * @param df the flavor representing the requested type
+ * @param ds the data source of the data to be converted
+ */
+ Object getTransferData(DataFlavor df, DataSource ds)
+ throws UnsupportedFlavorException, IOException;
+
+ /**
+ * Returns an object representing the data in its most preferred form.
+ * @param ds the data source of the data to be converted
+ */
+ Object getContent(DataSource ds)
+ throws IOException;
+
+ /**
+ * Writes the object as a stream of bytes.
+ * @param obj the object to convert
+ * @param mimeType the MIME type of the stream
+ * @param os the byte stream
+ */
+ void writeTo(Object obj, String mimeType, OutputStream os)
+ throws IOException;
+
+}
+
diff --git a/libjava/classpath/javax/activation/DataContentHandlerFactory.java b/libjava/classpath/javax/activation/DataContentHandlerFactory.java
new file mode 100644
index 0000000..c1f2b78
--- /dev/null
+++ b/libjava/classpath/javax/activation/DataContentHandlerFactory.java
@@ -0,0 +1,56 @@
+/* DataContentHandlerFactory.java -- Factory for creating DataContentHandlers.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+/**
+ * Factory interface for creating data content handlers.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public interface DataContentHandlerFactory
+{
+
+ /**
+ * Returns a new data content handler for the specified MIME type.
+ * @param mimeType the MIME type
+ */
+ DataContentHandler createDataContentHandler(String mimeType);
+
+}
+
diff --git a/libjava/classpath/javax/activation/DataHandler.java b/libjava/classpath/javax/activation/DataHandler.java
new file mode 100644
index 0000000..de786f9
--- /dev/null
+++ b/libjava/classpath/javax/activation/DataHandler.java
@@ -0,0 +1,482 @@
+/* DataHandler.java -- Handler for data available in multiple formats.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.Transferable;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PipedInputStream;
+import java.io.PipedOutputStream;
+import java.net.URL;
+
+/**
+ * Handler for data available in multiple sources and formats.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class DataHandler
+ implements Transferable
+{
+
+ private static final DataFlavor[] NO_FLAVORS = new DataFlavor[0];
+ private static DataContentHandlerFactory factory = null;
+
+ private final DataSource dataSource;
+ private DataSource objDataSource;
+ private Object object;
+ private String objectMimeType;
+ private CommandMap currentCommandMap;
+ private DataFlavor[] transferFlavors = NO_FLAVORS;
+ private DataContentHandler dataContentHandler;
+ private DataContentHandler factoryDCH;
+ private DataContentHandlerFactory oldFactory;
+ private String shortType;
+
+ /**
+ * Constructor in which the data is read from a data source.
+ * @param ds the data source
+ */
+ public DataHandler(DataSource ds)
+ {
+ dataSource = ds;
+ oldFactory = factory;
+ }
+
+ /**
+ * Constructor using a reified object representation.
+ * @param obj the object representation of the data
+ * @param mimeType the MIME type of the object
+ */
+ public DataHandler(Object obj, String mimeType)
+ {
+ dataSource = null;
+ object = obj;
+ objectMimeType = mimeType;
+ oldFactory = factory;
+ }
+
+ /**
+ * Constructor in which the data is read from a URL.
+ * @param url the URL
+ */
+ public DataHandler(URL url)
+ {
+ dataSource = new URLDataSource(url);
+ oldFactory = factory;
+ }
+
+ /**
+ * Returns the data source from which data is read.
+ */
+ public DataSource getDataSource()
+ {
+ if (dataSource != null)
+ {
+ return dataSource;
+ }
+ if (objDataSource == null)
+ {
+ objDataSource = new DataHandlerDataSource(this);
+ }
+ return objDataSource;
+ }
+
+ /**
+ * Returns the name of the data object if created with a DataSource.
+ */
+ public String getName()
+ {
+ if (dataSource != null)
+ {
+ return dataSource.getName();
+ }
+ return null;
+ }
+
+ /**
+ * Returns the MIME type of the data (with parameters).
+ */
+ public String getContentType()
+ {
+ if (dataSource != null)
+ {
+ return dataSource.getContentType();
+ }
+ return objectMimeType;
+ }
+
+ /**
+ * Returns an input stream from which the data can be read.
+ */
+ public InputStream getInputStream()
+ throws IOException
+ {
+ if (dataSource != null)
+ {
+ return dataSource.getInputStream();
+ }
+ DataContentHandler dch = getDataContentHandler();
+ if (dch == null)
+ {
+ throw new UnsupportedDataTypeException("no DCH for MIME type " +
+ getShortType());
+ }
+ if ((dch instanceof ObjectDataContentHandler) &&
+ ((ObjectDataContentHandler)dch).getDCH() == null)
+ {
+ throw new UnsupportedDataTypeException("no object DCH " +
+ "for MIME type " +
+ getShortType());
+ }
+ PipedOutputStream pos = new PipedOutputStream();
+ DataContentHandlerWriter dchw =
+ new DataContentHandlerWriter(dch, object, objectMimeType, pos);
+ Thread thread = new Thread(dchw, "DataHandler.getInputStream");
+ thread.start();
+ return new PipedInputStream(pos);
+ }
+
+ static class DataContentHandlerWriter
+ implements Runnable
+ {
+
+ DataContentHandler dch;
+ Object object;
+ String mimeType;
+ OutputStream out;
+
+ DataContentHandlerWriter(DataContentHandler dch, Object object,
+ String mimeType, OutputStream out)
+ {
+ this.dch = dch;
+ this.object = object;
+ this.mimeType = mimeType;
+ this.out = out;
+ }
+
+ public void run()
+ {
+ try
+ {
+ dch.writeTo(object, mimeType, out);
+ }
+ catch(IOException e)
+ {
+ }
+ finally
+ {
+ try
+ {
+ out.close();
+ }
+ catch(IOException e)
+ {
+ }
+ }
+ }
+ }
+
+ /**
+ * Writes the data as a byte stream.
+ * @param os the stream to write to
+ */
+ public void writeTo(OutputStream os)
+ throws IOException
+ {
+ if (dataSource != null)
+ {
+ InputStream in = dataSource.getInputStream();
+ byte[] buf = new byte[8192];
+ for (int len = in.read(buf); len != -1; len = in.read(buf))
+ {
+ os.write(buf, 0, len);
+ }
+ in.close();
+ }
+ else
+ {
+ DataContentHandler dch = getDataContentHandler();
+ dch.writeTo(object, objectMimeType, os);
+ }
+ }
+
+ /**
+ * Returns an output stream that can be used to overwrite the underlying
+ * data, if the DataSource constructor was used.
+ */
+ public OutputStream getOutputStream()
+ throws IOException
+ {
+ if (dataSource != null)
+ {
+ return dataSource.getOutputStream();
+ }
+ return null;
+ }
+
+ /**
+ * Returns the data flavors in which this data is available.
+ */
+ public synchronized DataFlavor[] getTransferDataFlavors()
+ {
+ if (factory != oldFactory || transferFlavors == NO_FLAVORS)
+ {
+ DataContentHandler dch = getDataContentHandler();
+ transferFlavors = dch.getTransferDataFlavors();
+ }
+ return transferFlavors;
+ }
+
+ /**
+ * Indicates whether the specified data flavor is supported for this
+ * data.
+ */
+ public boolean isDataFlavorSupported(DataFlavor flavor)
+ {
+ DataFlavor[] flavors = getTransferDataFlavors();
+ for (int i = 0; i < flavors.length; i++)
+ {
+ if (flavors[i].equals(flavor))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ /**
+ * Returns an object representing the data to be transferred.
+ * @param flavor the requested data flavor
+ */
+ public Object getTransferData(DataFlavor flavor)
+ throws UnsupportedFlavorException, IOException
+ {
+ DataContentHandler dch = getDataContentHandler();
+ return dch.getTransferData(flavor, dataSource);
+ }
+
+ /**
+ * Sets the command map to be used by this data handler.
+ * Setting to null uses the default command map.
+ * @param commandMap the command map to use
+ */
+ public synchronized void setCommandMap(CommandMap commandMap)
+ {
+ if (commandMap != currentCommandMap || commandMap == null)
+ {
+ transferFlavors = NO_FLAVORS;
+ dataContentHandler = null;
+ currentCommandMap = commandMap;
+ }
+ }
+
+ /**
+ * Returns the preferred commands for this type of data.
+ */
+ public CommandInfo[] getPreferredCommands()
+ {
+ CommandMap commandMap = getCommandMap();
+ return commandMap.getPreferredCommands(getShortType());
+ }
+
+ /**
+ * Returns the complete list of commands for this type of data.
+ */
+ public CommandInfo[] getAllCommands()
+ {
+ CommandMap commandMap = getCommandMap();
+ return commandMap.getAllCommands(getShortType());
+ }
+
+ /**
+ * Returns the specified command.
+ * @param cmdName the command name
+ */
+ public CommandInfo getCommand(String cmdName)
+ {
+ CommandMap commandMap = getCommandMap();
+ return commandMap.getCommand(getShortType(), cmdName);
+ }
+
+ /**
+ * Returns the data as a reified object.
+ */
+ public Object getContent()
+ throws IOException
+ {
+ DataContentHandler dch = getDataContentHandler();
+ return dch.getContent(getDataSource());
+ }
+
+ /**
+ * Returns the instantiated bean using the specified command.
+ * @param cmdInfo the command to instantiate the bean with
+ */
+ public Object getBean(CommandInfo cmdInfo)
+ {
+ try
+ {
+ return cmdInfo.getCommandObject(this, getClass().getClassLoader());
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace(System.err);
+ return null;
+ }
+ catch (ClassNotFoundException e)
+ {
+ e.printStackTrace(System.err);
+ return null;
+ }
+ }
+
+ /**
+ * Sets the data content handler factory.
+ * If the factory has already been set, throws an Error.
+ * @param newFactory the factory to set
+ */
+ public static synchronized void
+ setDataContentHandlerFactory(DataContentHandlerFactory newFactory)
+ {
+ if (factory != null)
+ {
+ throw new Error("DataContentHandlerFactory already defined");
+ }
+ SecurityManager security = System.getSecurityManager();
+ if (security != null)
+ {
+ try
+ {
+ security.checkSetFactory();
+ }
+ catch (SecurityException e)
+ {
+ if (newFactory != null && DataHandler.class.getClassLoader()
+ != newFactory.getClass().getClassLoader())
+ {
+ throw e;
+ }
+ }
+ }
+ factory = newFactory;
+ }
+
+ /*
+ * Returns just the base part of the data's content-type, with no
+ * parameters.
+ */
+ private synchronized String getShortType()
+ {
+ if (shortType == null)
+ {
+ String contentType = getContentType();
+ try
+ {
+ MimeType mimeType = new MimeType(contentType);
+ shortType = mimeType.getBaseType();
+ }
+ catch (MimeTypeParseException e)
+ {
+ shortType = contentType;
+ }
+ }
+ return shortType;
+ }
+
+ /*
+ * Returns the command map for this handler.
+ */
+ private synchronized CommandMap getCommandMap()
+ {
+ if (currentCommandMap != null)
+ {
+ return currentCommandMap;
+ }
+ return CommandMap.getDefaultCommandMap();
+ }
+
+ /*
+ * Returns the DCH for this handler.
+ */
+ private synchronized DataContentHandler getDataContentHandler()
+ {
+ if (factory != oldFactory)
+ {
+ oldFactory = factory;
+ factoryDCH = null;
+ dataContentHandler = null;
+ transferFlavors = NO_FLAVORS;
+ }
+ if (dataContentHandler != null)
+ {
+ return dataContentHandler;
+ }
+ String mimeType = getShortType();
+ if (factoryDCH == null && factory != null)
+ {
+ factoryDCH = factory.createDataContentHandler(mimeType);
+ }
+ if (factoryDCH != null)
+ {
+ dataContentHandler = factoryDCH;
+ }
+ if (dataContentHandler == null)
+ {
+ CommandMap commandMap = getCommandMap();
+ dataContentHandler = commandMap.createDataContentHandler(mimeType);
+ }
+ if (dataSource != null)
+ {
+ dataContentHandler =
+ new DataSourceDataContentHandler(dataContentHandler, dataSource);
+ }
+ else
+ {
+ dataContentHandler =
+ new ObjectDataContentHandler(dataContentHandler, object,
+ objectMimeType);
+ }
+ return dataContentHandler;
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/DataHandlerDataSource.java b/libjava/classpath/javax/activation/DataHandlerDataSource.java
new file mode 100644
index 0000000..8dcd1a7
--- /dev/null
+++ b/libjava/classpath/javax/activation/DataHandlerDataSource.java
@@ -0,0 +1,84 @@
+/* DataHandlerDataSource.java -- Data source proxy for a DataHandler.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Data source that is a proxy for a data handler.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+final class DataHandlerDataSource
+ implements DataSource
+{
+
+ final DataHandler dh;
+
+ DataHandlerDataSource(DataHandler dh)
+ {
+ this.dh = dh;
+ }
+
+ public String getContentType()
+ {
+ return dh.getContentType();
+ }
+
+ public InputStream getInputStream()
+ throws IOException
+ {
+ return dh.getInputStream();
+ }
+
+ public String getName()
+ {
+ return dh.getName();
+ }
+
+ public OutputStream getOutputStream()
+ throws IOException
+ {
+ return dh.getOutputStream();
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/DataSource.java b/libjava/classpath/javax/activation/DataSource.java
new file mode 100644
index 0000000..0d70843
--- /dev/null
+++ b/libjava/classpath/javax/activation/DataSource.java
@@ -0,0 +1,76 @@
+/* DataSource.java -- An interface for MIME data storage and retrieval.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * An interface by which MIME data can be retrieved and stored.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public interface DataSource
+{
+
+ /**
+ * Returns an input stream from which the data can be read.
+ */
+ InputStream getInputStream()
+ throws IOException;
+
+ /**
+ * Returns an output stream to which the data can be written.
+ */
+ OutputStream getOutputStream()
+ throws IOException;
+
+ /**
+ * Returns the MIME content type of the data.
+ */
+ String getContentType();
+
+ /**
+ * Returns the underlying name of this object.
+ */
+ String getName();
+
+}
+
diff --git a/libjava/classpath/javax/activation/DataSourceDataContentHandler.java b/libjava/classpath/javax/activation/DataSourceDataContentHandler.java
new file mode 100644
index 0000000..9706ac1
--- /dev/null
+++ b/libjava/classpath/javax/activation/DataSourceDataContentHandler.java
@@ -0,0 +1,126 @@
+/* DataSourceDataContentHolder.java -- DCH using an existing data source.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Data content handler using an existing DCH and a data source.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+class DataSourceDataContentHandler
+ implements DataContentHandler
+{
+
+ private DataSource ds;
+ private DataFlavor[] flavors;
+ private DataContentHandler dch;
+
+ public DataSourceDataContentHandler(DataContentHandler dch, DataSource ds)
+ {
+ this.ds = ds;
+ this.dch = dch;
+ }
+
+ public Object getContent(DataSource ds)
+ throws IOException
+ {
+ if (dch != null)
+ {
+ return dch.getContent(ds);
+ }
+ else
+ {
+ return ds.getInputStream();
+ }
+ }
+
+ public Object getTransferData(DataFlavor flavor, DataSource ds)
+ throws UnsupportedFlavorException, IOException
+ {
+ if (dch != null)
+ {
+ return dch.getTransferData(flavor, ds);
+ }
+ DataFlavor[] tdf = getTransferDataFlavors();
+ if (tdf.length > 0 && flavor.equals(tdf[0]))
+ {
+ return ds.getInputStream();
+ }
+ else
+ {
+ throw new UnsupportedFlavorException(flavor);
+ }
+ }
+
+ public DataFlavor[] getTransferDataFlavors()
+ {
+ if (flavors == null)
+ {
+ if (dch != null)
+ {
+ flavors = dch.getTransferDataFlavors();
+ }
+ else
+ {
+ String mimeType = ds.getContentType();
+ flavors = new DataFlavor[1];
+ flavors[0] = new ActivationDataFlavor(mimeType, mimeType);
+ }
+ }
+ return flavors;
+ }
+
+ public void writeTo(Object obj, String mimeType, OutputStream out)
+ throws IOException
+ {
+ if (dch == null)
+ {
+ throw new UnsupportedDataTypeException("no DCH for content type " +
+ ds.getContentType());
+ }
+ dch.writeTo(obj, mimeType, out);
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/FileDataSource.java b/libjava/classpath/javax/activation/FileDataSource.java
new file mode 100644
index 0000000..6e9035f
--- /dev/null
+++ b/libjava/classpath/javax/activation/FileDataSource.java
@@ -0,0 +1,123 @@
+/* FileDataSource.java -- Data source for a File object.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Data source encapsulating a file.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class FileDataSource
+ implements DataSource
+{
+
+ private final File file;
+ private FileTypeMap typeMap;
+
+ /**
+ * Constructor.
+ * @param file the underlying file to use
+ */
+ public FileDataSource(File file)
+ {
+ this.file = file;
+ }
+
+ /**
+ * Constructor.
+ * @param name the path to the underlying file to use
+ */
+ public FileDataSource(String name)
+ {
+ this(new File(name));
+ }
+
+ public InputStream getInputStream()
+ throws IOException
+ {
+ return new FileInputStream(file);
+ }
+
+ public OutputStream getOutputStream()
+ throws IOException
+ {
+ return new FileOutputStream(file);
+ }
+
+ public String getContentType()
+ {
+ if (typeMap == null)
+ {
+ FileTypeMap dftm = FileTypeMap.getDefaultFileTypeMap();
+ return dftm.getContentType(file);
+ }
+ return typeMap.getContentType(file);
+ }
+
+ public String getName()
+ {
+ return file.getName();
+ }
+
+ /**
+ * Returns the underlying file.
+ */
+ public File getFile()
+ {
+ return file;
+ }
+
+ /**
+ * Sets the file type map to use to determine the content type of the file.
+ * @param map the file type map
+ */
+ public void setFileTypeMap(FileTypeMap map)
+ {
+ typeMap = map;
+ }
+
+}
+
diff --git a/libjava/classpath/gnu/java/util/prefs/EventDispatcher.java b/libjava/classpath/javax/activation/FileTypeMap.java
index f73c3e70..2ef7805 100644
--- a/libjava/classpath/gnu/java/util/prefs/EventDispatcher.java
+++ b/libjava/classpath/javax/activation/FileTypeMap.java
@@ -1,5 +1,5 @@
-/* EventDispatcher.java -- Dispatch events for prefs
- Copyright (C) 2006 Free Software Foundation, Inc.
+/* FileTypeMap.java -- Classifies the MIME content of files.
+ Copyright (C) 2004 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -35,79 +35,74 @@ this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
+package javax.activation;
-package gnu.java.util.prefs;
-
-import java.util.ArrayList;
+import java.io.File;
/**
- * This is a helper class used for dispatching events for
- * the prefs package.
+ * Classifier for the MIME content type of files.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
*/
-public class EventDispatcher extends Thread
+public abstract class FileTypeMap
{
- // This is a singleton class. We dispatch all events via a
- // new Thread which is created on demand.
- private static final Thread dispatchThread = new EventDispatcher();
-
- // This is a queue of events to dispatch. This thread waits on
- // the queue and when notified will remove events until the queue
- // is empty.
- private static final ArrayList<Runnable> queue = new ArrayList<Runnable>();
- // FIXME: this thread probably ought to go in some classpath-internal
- // ThreadGroup. But we don't have that yet.
- private EventDispatcher()
+ /* Class scope */
+
+ private static FileTypeMap defaultMap;
+
+ /**
+ * Returns the system default file type map.
+ * If one has not been set, this returns a MimetypesFileTypeMap.
+ */
+ public static FileTypeMap getDefaultFileTypeMap()
{
- setDaemon(true);
- start();
+ if (defaultMap == null)
+ {
+ defaultMap = new MimetypesFileTypeMap();
+ }
+ return defaultMap;
}
-
- public void run()
+
+ /**
+ * Sets the default file type map.
+ * @param map the new file type map
+ */
+ public static void setDefaultFileTypeMap(FileTypeMap map)
{
- while (true)
+ SecurityManager security = System.getSecurityManager();
+ if (security != null)
{
- Runnable r;
- synchronized (queue)
- {
- while (queue.size() == 0)
- {
- try
- {
- queue.wait();
- }
- catch (InterruptedException _)
- {
- // Ignore.
- }
- }
- r = queue.remove(0);
- }
- // Invoke outside the synchronization, so that
- // we aren't blocking other threads from posting events.
try
{
- r.run();
+ security.checkSetFactory();
}
- catch (Throwable _)
+ catch (SecurityException e)
{
- // Ignore.
+ if (map != null && FileTypeMap.class.getClassLoader() !=
+ map.getClass().getClassLoader())
+ {
+ throw e;
+ }
}
}
+ defaultMap = map;
}
+ /* Instance scope */
+
/**
- * Add a new runnable to the event dispatch queue. The
- * runnable will be invoked in the event dispatch queue
- * without any locks held.
- * @param runner the Runnable to dispatch
+ * Returns the content type of the specified file.
+ * @param file the file to classify
*/
- public static void dispatch(Runnable runner)
- {
- synchronized (queue)
- {
- queue.add(runner);
- queue.notify();
- }
- }
+ public abstract String getContentType(File file);
+
+ /**
+ * Returns the content type of the specified file path.
+ * @param filename the path of the file to classify
+ */
+ public abstract String getContentType(String filename);
+
}
+
diff --git a/libjava/classpath/javax/activation/MailcapCommandMap.java b/libjava/classpath/javax/activation/MailcapCommandMap.java
new file mode 100644
index 0000000..cca5f04
--- /dev/null
+++ b/libjava/classpath/javax/activation/MailcapCommandMap.java
@@ -0,0 +1,804 @@
+/* MailcapCommandMap.java -- Command map implementation using a mailcap file.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.LinkedHashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Implementation of a command map using a <code>mailcap</code> file (RFC
+ * 1524). Mailcap files are searched for in the following places:
+ * <ol>
+ * <li>Programmatically added entries to this interface</li>
+ * <li>the file <tt>.mailcap</tt> in the user's home directory</li>
+ * <li>the file <i>&lt;java.home&gt;</i><tt>/lib/mailcap</tt></li>
+ * <li>the resource <tt>META-INF/mailcap</tt></li>
+ * <li>the resource <tt>META-INF/mailcap.default</tt> in the JAF
+ * distribution</li>
+ * </ol>
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class MailcapCommandMap
+ extends CommandMap
+{
+
+ private static final int PROG = 0;
+ private static final int HOME = 1;
+ private static final int SYS = 2;
+ private static final int JAR = 3;
+ private static final int DEF = 4;
+ private static boolean debug = false;
+ private static final int NORMAL = 0;
+ private static final int FALLBACK = 1;
+
+ static
+ {
+ try
+ {
+ String d = System.getProperty("javax.activation.debug");
+ debug = Boolean.valueOf(d).booleanValue();
+ }
+ catch (SecurityException e)
+ {
+ }
+ }
+
+ private Map<String,Map<String,List<String>>>[][] mailcaps;
+
+ /**
+ * Default constructor.
+ */
+ public MailcapCommandMap()
+ {
+ init(null);
+ }
+
+ /**
+ * Constructor specifying a filename.
+ * @param fileName the name of the file to read mailcap entries from
+ */
+ public MailcapCommandMap(String fileName)
+ throws IOException
+ {
+ Reader in = null;
+ try
+ {
+ in = new FileReader(fileName);
+ }
+ catch (IOException e)
+ {
+ }
+ init(in);
+ if (in != null)
+ {
+ try
+ {
+ in.close();
+ }
+ catch (IOException e)
+ {
+ }
+ }
+ }
+
+ /**
+ * Constructor specifying an input stream.
+ * @param is the input stream to read mailcap entries from
+ */
+ public MailcapCommandMap(InputStream is)
+ {
+ init(new InputStreamReader(is));
+ }
+
+ private void init(Reader in)
+ {
+ mailcaps = new Map[5][2];
+ for (int i = 0; i < 5; i++)
+ {
+ for (int j = 0; j < 2; j++)
+ {
+ mailcaps[i][j] =
+ new LinkedHashMap<String,Map<String,List<String>>>();
+ }
+ }
+ if (in != null)
+ {
+ if (debug)
+ {
+ System.out.println("MailcapCommandMap: load PROG");
+ }
+ try
+ {
+ parse(PROG, in);
+ }
+ catch (IOException e)
+ {
+ }
+ }
+
+ if (debug)
+ {
+ System.out.println("MailcapCommandMap: load HOME");
+ }
+ try
+ {
+ String home = System.getProperty("user.home");
+ if (home != null)
+ {
+ parseFile(HOME, new CPStringBuilder(home)
+ .append(File.separatorChar)
+ .append(".mailcap")
+ .toString());
+ }
+ }
+ catch (SecurityException e)
+ {
+ }
+
+ if (debug)
+ {
+ System.out.println("MailcapCommandMap: load SYS");
+ }
+ try
+ {
+ parseFile(SYS,
+ new CPStringBuilder(System.getProperty("java.home"))
+ .append(File.separatorChar)
+ .append("lib")
+ .append(File.separatorChar)
+ .append("mailcap")
+ .toString());
+ }
+ catch (SecurityException e)
+ {
+ }
+
+ if (debug)
+ {
+ System.out.println("MailcapCommandMap: load JAR");
+ }
+ List<URL> systemResources = getSystemResources("META-INF/mailcap");
+ int len = systemResources.size();
+ if (len > 0)
+ {
+ for (int i = 0; i < len ; i++)
+ {
+ Reader urlIn = null;
+ URL url = systemResources.get(i);
+ try
+ {
+ if (debug)
+ {
+ System.out.println("\t" + url.toString());
+ }
+ urlIn = new InputStreamReader(url.openStream());
+ parse(JAR, urlIn);
+ }
+ catch (IOException e)
+ {
+ if (debug)
+ {
+ System.out.println(e.getClass().getName() + ": " +
+ e.getMessage());
+ }
+ }
+ finally
+ {
+ if (urlIn != null)
+ {
+ try
+ {
+ urlIn.close();
+ }
+ catch (IOException e)
+ {
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ parseResource(JAR, "/META-INF/mailcap");
+ }
+
+ if (debug)
+ {
+ System.out.println("MailcapCommandMap: load DEF");
+ }
+ parseResource(DEF, "/META-INF/mailcap.default");
+ }
+
+ /**
+ * Returns the list of preferred commands for a given MIME type.
+ * @param mimeType the MIME type
+ */
+ public synchronized CommandInfo[] getPreferredCommands(String mimeType)
+ {
+ List<CommandInfo> cmdList = new ArrayList<CommandInfo>();
+ List<String> verbList = new ArrayList<String>();
+ for (int i = 0; i < 2; i++)
+ {
+ for (int j = 0; j < 5; j++)
+ {
+ Map<String,List<String>> map = getCommands(mailcaps[j][i], mimeType);
+ if (map != null)
+ {
+ for (Map.Entry<String,List<String>> entry : map.entrySet())
+ {
+ String verb = entry.getKey();
+ if (!verbList.contains(verb))
+ {
+ List<String> classNames = entry.getValue();
+ String className = classNames.get(0);
+ CommandInfo cmd = new CommandInfo(verb, className);
+ cmdList.add(cmd);
+ verbList.add(verb);
+ }
+ }
+ }
+ }
+ }
+ CommandInfo[] cmds = new CommandInfo[cmdList.size()];
+ cmdList.toArray(cmds);
+ return cmds;
+ }
+
+ /**
+ * Returns all commands for the given MIME type.
+ * @param mimeType the MIME type
+ */
+ public synchronized CommandInfo[] getAllCommands(String mimeType)
+ {
+ List<CommandInfo> cmdList = new ArrayList<CommandInfo>();
+ for (int i = 0; i < 2; i++)
+ {
+ for (int j = 0; j < 5; j++)
+ {
+ Map<String,List<String>> map = getCommands(mailcaps[j][i], mimeType);
+ if (map != null)
+ {
+ for (Map.Entry<String,List<String>> entry : map.entrySet())
+ {
+ String verb = entry.getKey();
+ List<String> classNames = entry.getValue();
+ int len = classNames.size();
+ for (int l = 0; l < len; l++)
+ {
+ String className = classNames.get(l);
+ CommandInfo cmd = new CommandInfo(verb, className);
+ cmdList.add(cmd);
+ }
+ }
+ }
+ }
+ }
+ CommandInfo[] cmds = new CommandInfo[cmdList.size()];
+ cmdList.toArray(cmds);
+ return cmds;
+ }
+
+ /**
+ * Returns the command with the specified name for the given MIME type.
+ * @param mimeType the MIME type
+ * @param cmdName the command verb
+ */
+ public synchronized CommandInfo getCommand(String mimeType,
+ String cmdName)
+ {
+ for (int i = 0; i < 2; i++)
+ {
+ for (int j = 0; j < 5; j++)
+ {
+ Map<String,List<String>> map =
+ getCommands(mailcaps[j][i], mimeType);
+ if (map != null)
+ {
+ List<String> classNames = map.get(cmdName);
+ if (classNames == null)
+ {
+ classNames = map.get("x-java-" + cmdName);
+ }
+ if (classNames != null)
+ {
+ String className = classNames.get(0);
+ return new CommandInfo(cmdName, className);
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Adds entries programmatically to the registry.
+ * @param mailcap a mailcap string
+ */
+ public synchronized void addMailcap(String mailcap)
+ {
+ if (debug)
+ {
+ System.out.println("MailcapCommandMap: add to PROG");
+ }
+ try
+ {
+ parse(PROG, new StringReader(mailcap));
+ }
+ catch (IOException e)
+ {
+ }
+ }
+
+ /**
+ * Returns the DCH for the specified MIME type.
+ * @param mimeType the MIME type
+ */
+ public synchronized DataContentHandler
+ createDataContentHandler(String mimeType)
+ {
+ if (debug)
+ {
+ System.out.println("MailcapCommandMap: " +
+ "createDataContentHandler for " + mimeType);
+ }
+ for (int i = 0; i < 2; i++)
+ {
+ for (int j = 0; j < 5; j++)
+ {
+ if (debug)
+ {
+ System.out.println(" search DB #" + i);
+ }
+ Map<String,List<String>> map = getCommands(mailcaps[j][i], mimeType);
+ if (map != null)
+ {
+ List<String> classNames = map.get("content-handler");
+ if (classNames == null)
+ {
+ classNames = map.get("x-java-content-handler");
+ }
+ if (classNames != null)
+ {
+ String className = classNames.get(0);
+ if (debug)
+ {
+ System.out.println(" In " + nameOf(j) +
+ ", content-handler=" + className);
+ }
+ try
+ {
+ Class<?> clazz = Class.forName(className);
+ return (DataContentHandler)clazz.newInstance();
+ }
+ catch (IllegalAccessException e)
+ {
+ if (debug)
+ {
+ e.printStackTrace();
+ }
+ }
+ catch (ClassNotFoundException e)
+ {
+ if (debug)
+ {
+ e.printStackTrace();
+ }
+ }
+ catch (InstantiationException e)
+ {
+ if (debug)
+ {
+ e.printStackTrace();
+ }
+ }
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Get the native commands for the given MIME type.
+ * Returns an array of strings where each string is
+ * an entire mailcap file entry. The application
+ * will need to parse the entry to extract the actual
+ * command as well as any attributes it needs. See
+ * <a href="http://www.ietf.org/rfc/rfc1524.txt">RFC 1524</a>
+ * for details of the mailcap entry syntax. Only mailcap
+ * entries that specify a view command for the specified
+ * MIME type are returned.
+ * @return array of native command entries
+ * @since JAF 1.1
+ */
+ public String[] getNativeCommands(String mimeType)
+ {
+ List<String> acc = new ArrayList<String>();
+ for (int i = 0; i < 2; i++)
+ {
+ for (int j = 0; j < 5; j++)
+ {
+ addNativeCommands(acc, mailcaps[j][i], mimeType);
+ }
+ }
+ String[] ret = new String[acc.size()];
+ acc.toArray(ret);
+ return ret;
+ }
+
+ private void addNativeCommands(List<String> acc,
+ Map<String,Map<String,List<String>>> mailcap,
+ String mimeType)
+ {
+ for (Map.Entry<String,Map<String,List<String>>> mEntry : mailcap.entrySet())
+ {
+ String entryMimeType = mEntry.getKey();
+ if (!entryMimeType.equals(mimeType))
+ {
+ continue;
+ }
+ Map<String,List<String>> commands = mEntry.getValue();
+ String viewCommand = commands.get("view-command").get(0);
+ if (viewCommand == null)
+ {
+ continue;
+ }
+ CPStringBuilder buf = new CPStringBuilder();
+ buf.append(mimeType);
+ buf.append(';');
+ buf.append(' ');
+ buf.append(viewCommand);
+ for (Map.Entry<String,List<String>> cEntry : commands.entrySet())
+ {
+ String verb = cEntry.getKey();
+ List<String> classNames = cEntry.getValue();
+ if (!"view-command".equals(verb))
+ {
+ for (String command : classNames)
+ {
+ buf.append(';');
+ buf.append(' ');
+ buf.append(verb);
+ buf.append('=');
+ buf.append(command);
+ }
+ }
+ }
+ if (buf.length() > 0)
+ {
+ acc.add(buf.toString());
+ }
+ }
+ }
+
+ private static String nameOf(int mailcap)
+ {
+ switch (mailcap)
+ {
+ case PROG:
+ return "PROG";
+ case HOME:
+ return "HOME";
+ case SYS:
+ return "SYS";
+ case JAR:
+ return "JAR";
+ case DEF:
+ return "DEF";
+ default:
+ return "ERR";
+ }
+ }
+
+ private void parseFile(int index, String filename)
+ {
+ Reader in = null;
+ try
+ {
+ if (debug)
+ {
+ System.out.println("\t" + filename);
+ }
+ in = new FileReader(filename);
+ parse(index, in);
+ }
+ catch (IOException e)
+ {
+ if (debug)
+ {
+ System.out.println(e.getClass().getName() + ": " +
+ e.getMessage());
+ }
+ }
+ finally
+ {
+ if (in != null)
+ {
+ try
+ {
+ in.close();
+ }
+ catch (IOException e)
+ {
+ }
+ }
+ }
+ }
+
+ private void parseResource(int index, String name)
+ {
+ Reader in = null;
+ try
+ {
+ InputStream is = getClass().getResourceAsStream(name);
+ if (is != null)
+ {
+ if (debug)
+ {
+ System.out.println("\t" + name);
+ }
+ in = new InputStreamReader(is);
+ parse(index, in);
+ }
+ }
+ catch (IOException e)
+ {
+ if (debug)
+ {
+ System.out.println(e.getClass().getName() + ": " +
+ e.getMessage());
+ }
+ }
+ finally
+ {
+ if (in != null)
+ {
+ try
+ {
+ in.close();
+ }
+ catch (IOException e)
+ {
+ }
+ }
+ }
+ }
+
+ private void parse(int index, Reader in)
+ throws IOException
+ {
+ BufferedReader br = new BufferedReader(in);
+ CPStringBuilder buf = null;
+ for (String line = br.readLine(); line != null; line = br.readLine())
+ {
+ line = line.trim();
+ int len = line.length();
+ if (len == 0 || line.charAt(0) == '#')
+ {
+ continue; // Comment
+ }
+ if (line.charAt(len - 1) == '\\')
+ {
+ if (buf == null)
+ {
+ buf = new CPStringBuilder();
+ }
+ buf.append(line.substring(0, len - 1));
+ }
+ else if (buf != null)
+ {
+ buf.append(line);
+ parseEntry(index, buf.toString());
+ buf = null;
+ }
+ else
+ {
+ parseEntry(index, line);
+ }
+ }
+ }
+
+ private void parseEntry(int index, String line)
+ {
+ // Tokenize entry into fields
+ char[] chars = line.toCharArray();
+ int len = chars.length;
+ boolean inQuotedString = false;
+ boolean fallback = false;
+ CPStringBuilder buffer = new CPStringBuilder();
+ List<String> fields = new ArrayList<String>();
+ for (int i = 0; i < len; i++)
+ {
+ char c = chars[i];
+ if (c == '\\')
+ {
+ c = chars[++i]; // qchar
+ }
+ if (c == ';' && !inQuotedString)
+ {
+ String field = buffer.toString().trim();
+ if ("x-java-fallback-entry".equals(field))
+ {
+ fallback = true;
+ }
+ fields.add(field);
+ buffer.setLength(0);
+ }
+ else
+ {
+ if (c == '"')
+ {
+ inQuotedString = !inQuotedString;
+ }
+ buffer.append(c);
+ }
+ }
+ String field = buffer.toString().trim();
+ if ("x-java-fallback-entry".equals(field))
+ {
+ fallback = true;
+ }
+ fields.add(field);
+
+ len = fields.size();
+ if (len < 2)
+ {
+ if (debug)
+ {
+ System.err.println("Invalid mailcap entry: " + line);
+ }
+ return;
+ }
+
+ Map<String,Map<String,List<String>>> mailcap =
+ fallback ? mailcaps[index][FALLBACK] : mailcaps[index][NORMAL];
+ String mimeType = fields.get(0);
+ addField(mailcap, mimeType, "view-command", (String) fields.get(1));
+ for (int i = 2; i < len; i++)
+ {
+ addField(mailcap, mimeType, null, (String) fields.get(i));
+ }
+ }
+
+ private void addField(Map<String,Map<String,List<String>>> mailcap,
+ String mimeType, String verb, String command)
+ {
+ if (verb == null)
+ {
+ int ei = command.indexOf('=');
+ if (ei != -1)
+ {
+ verb = command.substring(0, ei);
+ command = command.substring(ei + 1);
+ }
+ }
+ if (command.length() == 0 || verb == null || verb.length() == 0)
+ {
+ return; // Invalid field or flag
+ }
+
+ Map<String,List<String>> commands = mailcap.get(mimeType);
+ if (commands == null)
+ {
+ commands = new LinkedHashMap<String,List<String>>();
+ mailcap.put(mimeType, commands);
+ }
+ List<String> classNames = commands.get(verb);
+ if (classNames == null)
+ {
+ classNames = new ArrayList<String>();
+ commands.put(verb, classNames);
+ }
+ classNames.add(command);
+ }
+
+ private Map<String,List<String>>
+ getCommands(Map<String,Map<String,List<String>>> mailcap,
+ String mimeType)
+ {
+ int si = mimeType.indexOf('/');
+ String genericMimeType = new CPStringBuilder(mimeType.substring(0, si))
+ .append('/')
+ .append('*')
+ .toString();
+ Map<String,List<String>> specific = mailcap.get(mimeType);
+ Map<String,List<String>> generic = mailcap.get(genericMimeType);
+ if (generic == null)
+ {
+ return specific;
+ }
+ if (specific == null)
+ {
+ return generic;
+ }
+ Map<String,List<String>> combined = new LinkedHashMap<String,List<String>>();
+ combined.putAll(specific);
+ for (String verb : generic.keySet())
+ {
+ List<String> genericClassNames = generic.get(verb);
+ List<String> classNames = combined.get(verb);
+ if (classNames == null)
+ {
+ combined.put(verb, genericClassNames);
+ }
+ else
+ {
+ classNames.addAll(genericClassNames);
+ }
+ }
+ return combined;
+ }
+
+ // -- Utility methods --
+
+ private List<URL> getSystemResources(String name)
+ {
+ List<URL> acc = new ArrayList<URL>();
+ try
+ {
+ for (Enumeration<URL> i = ClassLoader.getSystemResources(name);
+ i.hasMoreElements(); )
+ {
+ acc.add(i.nextElement());
+ }
+ }
+ catch (IOException e)
+ {
+ }
+ return acc;
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/MimeType.java b/libjava/classpath/javax/activation/MimeType.java
new file mode 100644
index 0000000..70045d6
--- /dev/null
+++ b/libjava/classpath/javax/activation/MimeType.java
@@ -0,0 +1,293 @@
+/* MimeType.java -- A MIME type as defined in RFC2046 and RFC2047.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+import java.io.Externalizable;
+import java.io.IOException;
+import java.io.ObjectInput;
+import java.io.ObjectOutput;
+
+/**
+ * A MIME content type, as defined in RFCs 2045 and 2046.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class MimeType
+ implements Externalizable
+{
+
+ static final String TSPECIALS = "()<>@,;:/[]?=\\\"";
+
+ private String primaryType;
+ private String subType;
+ private MimeTypeParameterList parameters;
+
+ /**
+ * Constructor for an <code>application/*</code> content type.
+ */
+ public MimeType()
+ {
+ primaryType = "application";
+ subType = "*";
+ parameters = new MimeTypeParameterList();
+ }
+
+ /**
+ * Constructor that parses a raw String.
+ * @param rawdata the MIME type string
+ */
+ public MimeType(String rawdata)
+ throws MimeTypeParseException
+ {
+ parse(rawdata);
+ }
+
+ /**
+ * Constructor for a new MIME type with the given primary and sub types
+ * and an empty parameter list.
+ * @param primary the primary type
+ * @param sub the subtype
+ */
+ public MimeType(String primary, String sub)
+ throws MimeTypeParseException
+ {
+ checkValidity(primary, "Primary type is invalid");
+ checkValidity(sub, "Sub type is invalid");
+ primaryType = primary.toLowerCase();
+ subType = sub.toLowerCase();
+ parameters = new MimeTypeParameterList();
+ }
+
+ /**
+ * Returns the primary type.
+ */
+ public String getPrimaryType()
+ {
+ return primaryType;
+ }
+
+ /**
+ * Sets the primary type.
+ * @param primary the new primary type
+ */
+ public void setPrimaryType(String primary)
+ throws MimeTypeParseException
+ {
+ checkValidity(primary, "Primary type is invalid");
+ primaryType = primary.toLowerCase();
+ }
+
+ /**
+ * Returns the subtype.
+ */
+ public String getSubType()
+ {
+ return subType;
+ }
+
+ /**
+ * Sets the subtype.
+ * @param sub the new subtype
+ */
+ public void setSubType(String sub)
+ throws MimeTypeParseException
+ {
+ checkValidity(sub, "Sub type is invalid");
+ subType = sub.toLowerCase();
+ }
+
+ /**
+ * Returns the MIME parameters.
+ */
+ public MimeTypeParameterList getParameters()
+ {
+ return parameters;
+ }
+
+ /**
+ * Returns the parameter value for the specified name.
+ * @param name the parameter name
+ */
+ public String getParameter(String name)
+ {
+ return parameters.get(name);
+ }
+
+ /**
+ * Sets the parameter value for the specified name.
+ * @param name the parameter name
+ * @param value the new value
+ */
+ public void setParameter(String name, String value)
+ {
+ parameters.set(name, value);
+ }
+
+ /**
+ * Removes the parameter value for the specified name.
+ * @param name the parameter name
+ */
+ public void removeParameter(String name)
+ {
+ parameters.remove(name);
+ }
+
+ /**
+ * Returns the complete string representation of this MIME type.
+ */
+ public String toString()
+ {
+ return new CPStringBuilder(primaryType)
+ .append('/')
+ .append(subType)
+ .append(parameters.toString())
+ .toString();
+ }
+
+ /**
+ * Returns the string representation of this MIME type without
+ * parameters.
+ */
+ public String getBaseType()
+ {
+ return new CPStringBuilder(primaryType)
+ .append('/')
+ .append(subType)
+ .toString();
+ }
+
+ /**
+ * Returns true if the primary and subtype of this MIME type are the
+ * same as in the given MIME type.
+ */
+ public boolean match(MimeType type)
+ {
+ String primary2 = type.getPrimaryType();
+ String sub2 = type.getSubType();
+ return primaryType.equals(primary2) && (subType.equals(sub2) ||
+ "*".equals(subType) ||
+ "*".equals(sub2));
+ }
+
+ /**
+ * Returns true if the primary and subtype of this MIME type are the
+ * same as in the given MIME type string.
+ */
+ public boolean match(String rawdata)
+ throws MimeTypeParseException
+ {
+ return match(new MimeType(rawdata));
+ }
+
+ public void writeExternal(ObjectOutput out)
+ throws IOException
+ {
+ out.writeUTF(toString());
+ out.flush();
+ }
+
+ public void readExternal(ObjectInput in)
+ throws IOException, ClassNotFoundException
+ {
+ try
+ {
+ parse(in.readUTF());
+ }
+ catch (MimeTypeParseException e)
+ {
+ throw new IOException(e.getMessage());
+ }
+ }
+
+ private void parse(String rawdata)
+ throws MimeTypeParseException
+ {
+ int si = rawdata.indexOf('/');
+ int pi = rawdata.indexOf(';');
+ if (si == -1)
+ {
+ throw new MimeTypeParseException("Unable to find a sub type.");
+ }
+ if (pi == -1)
+ {
+ primaryType = rawdata.substring(0, si).toLowerCase().trim();
+ subType = rawdata.substring(si + 1).toLowerCase().trim();
+ parameters = new MimeTypeParameterList();
+ }
+ else if (si < pi)
+ {
+ primaryType = rawdata.substring(0, si).toLowerCase().trim();
+ subType = rawdata.substring(si + 1, pi).toLowerCase().trim();
+ parameters = new MimeTypeParameterList(rawdata.substring(pi));
+ }
+ else
+ {
+ throw new MimeTypeParseException("Unable to find a sub type.");
+ }
+ checkValidity(primaryType, "Primary type is invalid");
+ checkValidity(subType, "Sub type is invalid");
+ }
+
+ static void checkValidity(String token, String message)
+ throws MimeTypeParseException
+ {
+ int len = token.length();
+ if (len == 0)
+ {
+ throw new MimeTypeParseException(message, token);
+ }
+ for (int i = 0; i < len; i++)
+ {
+ char c = token.charAt(i);
+ if (!isValidChar(c))
+ {
+ throw new MimeTypeParseException(message, token);
+ }
+ }
+ }
+
+ static boolean isValidChar(char c)
+ {
+ return c > ' ' && c <= '~' && TSPECIALS.indexOf(c) == -1;
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/MimeTypeParameterList.java b/libjava/classpath/javax/activation/MimeTypeParameterList.java
new file mode 100644
index 0000000..e15469d
--- /dev/null
+++ b/libjava/classpath/javax/activation/MimeTypeParameterList.java
@@ -0,0 +1,336 @@
+/* MimeTypeParameterList.java -- Handle a list of MIME type parameters.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * A list of MIME type parameters, as specified in RFCs 2045 and 2046.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class MimeTypeParameterList
+{
+
+ private final List<String> parameterNames;
+ private final Map<String,String> parameterValues;
+
+ /**
+ * Constructor for an empty parameter list.
+ */
+ public MimeTypeParameterList()
+ {
+ parameterNames = new ArrayList<String>();
+ parameterValues = new HashMap<String,String>();
+ }
+
+ /**
+ * Constructor that parses the specified MIME parameter data.
+ * @param parameterList a MIME parameter list string representation
+ */
+ public MimeTypeParameterList(String parameterList)
+ throws MimeTypeParseException
+ {
+ this();
+ parse(parameterList);
+ }
+
+ /**
+ * Parses the specified MIME parameter data, storing the results in this
+ * object.
+ * @param parameterList a MIME parameter list string representation
+ */
+ protected void parse(String parameterList)
+ throws MimeTypeParseException
+ {
+ if (parameterList == null)
+ {
+ return;
+ }
+ // Tokenize list into parameters
+ char[] chars = parameterList.toCharArray();
+ int len = chars.length;
+ boolean inQuotedString = false;
+ CPStringBuilder buffer = new CPStringBuilder();
+ List<String> params = new ArrayList<String>();
+ for (int i = 0; i < len; i++)
+ {
+ char c = chars[i];
+ if (c == ';' && !inQuotedString)
+ {
+ String param = buffer.toString().trim();
+ if (param.length() > 0)
+ {
+ params.add(param);
+ }
+ buffer.setLength(0);
+ }
+ else
+ {
+ if (c == '"')
+ {
+ inQuotedString = !inQuotedString;
+ }
+ buffer.append(c);
+ }
+ }
+ String param = buffer.toString().trim();
+ if (param.length() > 0)
+ {
+ params.add(param);
+ }
+
+ // Tokenize each parameter into name + value
+ for (Iterator<String> i = params.iterator(); i.hasNext();)
+ {
+ param = i.next();
+ int ei = param.indexOf('=');
+ if (ei == -1)
+ {
+ throw new MimeTypeParseException("Couldn't find the '=' that " +
+ "separates a parameter name " +
+ "from its value.");
+ }
+ String name = param.substring(0, ei).trim();
+ MimeType.checkValidity(name, "Parameter name is invalid");
+ String value = param.substring(ei + 1).trim();
+ len = value.length();
+ if (len > 1 && value.charAt(0) == '"' &&
+ value.charAt(len - 1) == '"')
+ {
+ value = unquote(value);
+ }
+ else
+ {
+ MimeType.checkValidity(name, "Parameter value is invalid");
+ }
+
+ parameterNames.add(name);
+ parameterValues.put(name.toLowerCase(), value);
+ }
+ }
+
+ /**
+ * Returns the number of parameters.
+ */
+ public synchronized int size()
+ {
+ return parameterNames.size();
+ }
+
+ /**
+ * Indicates if there are no parameters.
+ */
+ public synchronized boolean isEmpty()
+ {
+ return parameterNames.isEmpty();
+ }
+
+ /**
+ * Returns the value for the specified parameter name.
+ * @param name the parameter name
+ */
+ public synchronized String get(String name)
+ {
+ name = name.trim();
+ return parameterValues.get(name.toLowerCase());
+ }
+
+ /**
+ * Sets the value for the specified parameter name.
+ * @param name the parameter name
+ * @param value the parameter value
+ */
+ public synchronized void set(String name, String value)
+ {
+ name = name.trim();
+ boolean exists = false;
+ for (String pname : parameterNames)
+ {
+ if (name.equalsIgnoreCase(pname))
+ {
+ exists = true;
+ }
+ }
+ if (!exists)
+ {
+ parameterNames.add(name);
+ }
+ parameterValues.put(name.toLowerCase(), value);
+ }
+
+ /**
+ * Removes the parameter identified by the specified name.
+ * @param name the parameter name
+ */
+ public synchronized void remove(String name)
+ {
+ name = name.trim();
+ for (Iterator<String> i = parameterNames.iterator();i.hasNext();)
+ {
+ String pname = i.next();
+ if (name.equalsIgnoreCase(pname))
+ {
+ i.remove();
+ }
+ }
+ parameterValues.remove(name.toLowerCase());
+ }
+
+ /**
+ * Returns an enumeration of all the parameter names.
+ */
+ // Raw type is forced by public spec.
+ @SuppressWarnings("unchecked")
+ public synchronized Enumeration getNames()
+ {
+ return new IteratorEnumeration(parameterNames.iterator());
+ }
+
+ /**
+ * Returns an RFC 2045-compliant string representation of this parameter
+ * list.
+ */
+ public synchronized String toString()
+ {
+ CPStringBuilder buffer = new CPStringBuilder();
+ for (String name : parameterNames)
+ {
+ String value = parameterValues.get(name.toLowerCase());
+
+ buffer.append(';');
+ buffer.append(' ');
+ buffer.append(name);
+ buffer.append('=');
+ buffer.append(quote(value));
+ }
+ return buffer.toString();
+ }
+
+ private static String quote(String value)
+ {
+ boolean needsQuoting = false;
+ int len = value.length();
+ for (int i = 0; i < len; i++)
+ {
+ if (!MimeType.isValidChar(value.charAt(i)))
+ {
+ needsQuoting = true;
+ break;
+ }
+ }
+
+ if (needsQuoting)
+ {
+ CPStringBuilder buffer = new CPStringBuilder();
+ buffer.append('"');
+ for (int i = 0; i < len; i++)
+ {
+ char c = value.charAt(i);
+ if (c == '\\' || c == '"')
+ {
+ buffer.append('\\');
+ }
+ buffer.append(c);
+ }
+ buffer.append('"');
+ return buffer.toString();
+ }
+ return value;
+ }
+
+ private static String unquote(String value)
+ {
+ int len = value.length();
+ CPStringBuilder buffer = new CPStringBuilder();
+ for (int i = 1; i < len - 1; i++)
+ {
+ char c = value.charAt(i);
+ if (c == '\\')
+ {
+ i++;
+ if (i < len - 1)
+ {
+ c = value.charAt(i);
+ if (c != '\\' && c != '"')
+ {
+ buffer.append('\\');
+ }
+ }
+ }
+ buffer.append(c);
+ }
+ return buffer.toString();
+ }
+
+ /**
+ * Enumeration proxy for an Iterator.
+ */
+ static class IteratorEnumeration
+ implements Enumeration<String>
+ {
+
+ final Iterator<String> iterator;
+
+ IteratorEnumeration(Iterator<String> iterator)
+ {
+ this.iterator = iterator;
+ }
+
+ public boolean hasMoreElements()
+ {
+ return iterator.hasNext();
+ }
+
+ public String nextElement()
+ {
+ return iterator.next();
+ }
+
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/MimeTypeParseException.java b/libjava/classpath/javax/activation/MimeTypeParseException.java
new file mode 100644
index 0000000..b46e244
--- /dev/null
+++ b/libjava/classpath/javax/activation/MimeTypeParseException.java
@@ -0,0 +1,84 @@
+/* MimeTypeParseException.java -- Exception due to invalid MIME type.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+/**
+ * Exception thrown to indicate a malformed MIME content type.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class MimeTypeParseException
+ extends Exception
+{
+
+ /**
+ * Constructs a MimeTypeParseException with no detail message.
+ */
+ public MimeTypeParseException()
+ {
+ }
+
+ /**
+ * MimeTypeParseException with the specified detail message.
+ * @param message the exception message
+ */
+ public MimeTypeParseException(String message)
+ {
+ super(message);
+ }
+
+ /**
+ * Constructs a MimeTypeParseException with the specified detail message
+ * and token in error.
+ * @param message the exception message
+ * @param token the token in error
+ */
+ MimeTypeParseException(String message, String token)
+ {
+ this(new CPStringBuilder(message)
+ .append(':')
+ .append(' ')
+ .append(token)
+ .toString());
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/MimetypesFileTypeMap.java b/libjava/classpath/javax/activation/MimetypesFileTypeMap.java
new file mode 100644
index 0000000..d1566fd
--- /dev/null
+++ b/libjava/classpath/javax/activation/MimetypesFileTypeMap.java
@@ -0,0 +1,440 @@
+/* MimeTypesFileTypeMap.java -- A file type map using mime.types.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import gnu.java.lang.CPStringBuilder;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileReader;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.io.Reader;
+import java.io.StringReader;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * Implementation of FileTypeMap that uses the <tt>mime.types</tt> format.
+ * File entries are searched for in the following locations and order:
+ * <ol>
+ * <li>Programmatically added entries to this instance</li>
+ * <li>The file <tt>.mime.types</tt> in the user's home directory</li>
+ * <li>The file <i>&lt;java.home&gt;</i><tt>/lib/mime.types</tt></li>
+ * <li>The resource <tt>META-INF/mime.types</tt></li>
+ * <li>The resource <tt>META-INF/mimetypes.default</tt> in the JAF
+ * distribution</li>
+ * </ol>
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class MimetypesFileTypeMap
+ extends FileTypeMap
+{
+
+ private static final int PROG = 0;
+ private static final int HOME = 1;
+ private static final int SYS = 2;
+ private static final int JAR = 3;
+ private static final int DEF = 4;
+ private static final String DEFAULT_MIME_TYPE = "application/octet-stream";
+ private static boolean debug = false;
+ static
+ {
+ try
+ {
+ String d = System.getProperty("javax.activation.debug");
+ debug = Boolean.valueOf(d).booleanValue();
+ }
+ catch (SecurityException e)
+ {
+ }
+ }
+
+ private Map<String,String>[] mimetypes;
+
+ /**
+ * Default constructor.
+ */
+ public MimetypesFileTypeMap()
+ {
+ init(null);
+ }
+
+ /**
+ * Constructor specifying a filename.
+ * @param mimeTypeFileName the name of the file to read mime.types
+ * entries from
+ */
+ public MimetypesFileTypeMap(String mimeTypeFileName)
+ throws IOException
+ {
+ Reader in = null;
+ try
+ {
+ in = new FileReader(mimeTypeFileName);
+ init(in);
+ }
+ finally
+ {
+ if (in != null)
+ {
+ in.close();
+ }
+ }
+ }
+
+ /**
+ * Constructor specifying an input stream.
+ * @param is the input stream to read mime.types entries from
+ */
+ public MimetypesFileTypeMap(InputStream is)
+ {
+ init(new InputStreamReader(is));
+ }
+
+ private void init(Reader in)
+ {
+ mimetypes = new Map[5];
+ for (int i = 0; i < mimetypes.length; i++)
+ {
+ mimetypes[i] = new HashMap<String,String>();
+ }
+ if (in != null)
+ {
+ if (debug)
+ {
+ System.out.println("MimetypesFileTypeMap: load PROG");
+ }
+ try
+ {
+ parse(mimetypes[PROG], in);
+ }
+ catch (IOException e)
+ {
+ }
+ }
+
+ if (debug)
+ {
+ System.out.println("MimetypesFileTypeMap: load HOME");
+ }
+ try
+ {
+ String home = System.getProperty("user.home");
+ if (home != null)
+ {
+ parseFile(mimetypes[HOME], new CPStringBuilder(home)
+ .append(File.separatorChar)
+ .append(".mime.types")
+ .toString());
+ }
+ }
+ catch (SecurityException e)
+ {
+ }
+
+ if (debug)
+ {
+ System.out.println("MimetypesFileTypeMap: load SYS");
+ }
+ try
+ {
+ parseFile(mimetypes[SYS],
+ new CPStringBuilder(System.getProperty("java.home"))
+ .append(File.separatorChar)
+ .append("lib")
+ .append(File.separatorChar)
+ .append("mime.types")
+ .toString());
+ }
+ catch (SecurityException e)
+ {
+ }
+ if (debug)
+ {
+ System.out.println("MimetypesFileTypeMap: load JAR");
+ }
+ List<URL> systemResources = getSystemResources("META-INF/mime.types");
+ int len = systemResources.size();
+ if (len > 0)
+ {
+ for (int i = 0; i < len ; i++)
+ {
+ Reader urlIn = null;
+ URL url = (URL)systemResources.get(i);
+ try
+ {
+ urlIn = new InputStreamReader(url.openStream());
+ parse(mimetypes[JAR], urlIn);
+ }
+ catch (IOException e)
+ {
+ }
+ finally
+ {
+ if (urlIn != null)
+ {
+ try
+ {
+ urlIn.close();
+ }
+ catch (IOException e)
+ {
+ }
+ }
+ }
+ }
+ }
+ else
+ {
+ parseResource(mimetypes[JAR], "/META-INF/mime.types");
+ }
+
+ if (debug)
+ {
+ System.out.println("MimetypesFileTypeMap: load DEF");
+ }
+ parseResource(mimetypes[DEF], "/META-INF/mimetypes.default");
+ }
+
+ /**
+ * Adds entries prorammatically to the registry.
+ * @param mime_types a mime.types formatted entries string
+ */
+ public synchronized void addMimeTypes(String mime_types)
+ {
+ if (debug)
+ {
+ System.out.println("MimetypesFileTypeMap: add to PROG");
+ }
+ try
+ {
+ parse(mimetypes[PROG], new StringReader(mime_types));
+ }
+ catch (IOException e)
+ {
+ }
+ }
+
+ /**
+ * Returns the MIME content type of the file.
+ * This calls <code>getContentType(f.getName())</code>.
+ * @param f the file
+ */
+ public String getContentType(File f)
+ {
+ return getContentType(f.getName());
+ }
+
+ /**
+ * Returns the MIME type based on the given filename.
+ * If no entry is found, returns "application/octet-stream".
+ * @param filename the filename
+ */
+ public synchronized String getContentType(String filename)
+ {
+ int di = filename.lastIndexOf('.');
+ if (di < 0)
+ {
+ return DEFAULT_MIME_TYPE;
+ }
+ String tail = filename.substring(di + 1);
+ if (tail.length() < 1)
+ {
+ return DEFAULT_MIME_TYPE;
+ }
+ for (int i = 0; i < mimetypes.length; i++)
+ {
+ String mimeType = (String)mimetypes[i].get(tail);
+ if (mimeType != null)
+ {
+ return mimeType;
+ }
+ }
+ return DEFAULT_MIME_TYPE;
+ }
+
+ private void parseFile(Map<String,String> mimetypes, String filename)
+ {
+ Reader in = null;
+ try
+ {
+ in = new FileReader(filename);
+ parse(mimetypes, in);
+ }
+ catch (IOException e)
+ {
+ }
+ finally
+ {
+ if (in != null)
+ {
+ try
+ {
+ in.close();
+ }
+ catch (IOException e)
+ {
+ }
+ }
+ }
+ }
+
+ private void parseResource(Map<String,String> mimetypes, String name)
+ {
+ Reader in = null;
+ try
+ {
+ InputStream is = getClass().getResourceAsStream(name);
+ if (is != null)
+ {
+ in = new InputStreamReader(is);
+ parse(mimetypes, in);
+ }
+ }
+ catch (IOException e)
+ {
+ }
+ finally
+ {
+ if (in != null)
+ {
+ try
+ {
+ in.close();
+ }
+ catch (IOException e)
+ {
+ }
+ }
+ }
+ }
+
+ private void parse(Map<String,String> mimetypes, Reader in)
+ throws IOException
+ {
+ BufferedReader br = new BufferedReader(in);
+ CPStringBuilder buf = null;
+ for (String line = br.readLine(); line != null; line = br.readLine())
+ {
+ line = line.trim();
+ int len = line.length();
+ if (len == 0 || line.charAt(0) == '#')
+ {
+ continue; // Empty line / comment
+ }
+ if (line.charAt(len - 1) == '\\')
+ {
+ if (buf == null)
+ {
+ buf = new CPStringBuilder();
+ }
+ buf.append(line.substring(0, len - 1));
+ }
+ else if (buf != null)
+ {
+ buf.append(line);
+ parseEntry(mimetypes, buf.toString());
+ buf = null;
+ }
+ else
+ {
+ parseEntry(mimetypes, line);
+ }
+ }
+ }
+
+ private void parseEntry(Map<String,String> mimetypes,
+ String line)
+ {
+ // Tokenize
+ String mimeType = null;
+ char[] chars = line.toCharArray();
+ int len = chars.length;
+ CPStringBuilder buffer = new CPStringBuilder();
+ for (int i = 0; i < len; i++)
+ {
+ char c = chars[i];
+ if (Character.isWhitespace(c))
+ {
+ if (mimeType == null)
+ {
+ mimeType = buffer.toString();
+ }
+ else if (buffer.length() > 0)
+ {
+ mimetypes.put(buffer.toString(), mimeType);
+ }
+ buffer.setLength(0);
+ }
+ else
+ buffer.append(c);
+ }
+ if (buffer.length() > 0)
+ {
+ mimetypes.put(buffer.toString(), mimeType);
+ }
+ }
+
+ // -- Utility methods --
+
+ private List<URL> getSystemResources(String name)
+ {
+ List<URL> acc = new ArrayList<URL>();
+ try
+ {
+ for (Enumeration<URL> i = ClassLoader.getSystemResources(name);
+ i.hasMoreElements(); )
+ acc.add(i.nextElement());
+ }
+ catch (IOException e)
+ {
+ }
+ return acc;
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/ObjectDataContentHandler.java b/libjava/classpath/javax/activation/ObjectDataContentHandler.java
new file mode 100644
index 0000000..5105cb4
--- /dev/null
+++ b/libjava/classpath/javax/activation/ObjectDataContentHandler.java
@@ -0,0 +1,128 @@
+/* ObjectDataContentHandler.java -- Data content handler using an object.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.awt.datatransfer.DataFlavor;
+import java.awt.datatransfer.UnsupportedFlavorException;
+import java.io.IOException;
+import java.io.OutputStream;
+
+/**
+ * Data content handler that uses an existing DCH and reified object.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+class ObjectDataContentHandler
+ implements DataContentHandler
+{
+
+ private DataContentHandler dch;
+ private Object object;
+ private String mimeType;
+ private DataFlavor[] flavors;
+
+ public ObjectDataContentHandler(DataContentHandler dch, Object object,
+ String mimeType)
+ {
+ this.dch = dch;
+ this.object = object;
+ this.mimeType = mimeType;
+ }
+
+ public Object getContent(DataSource ds)
+ {
+ return object;
+ }
+
+ public DataContentHandler getDCH()
+ {
+ return dch;
+ }
+
+ public Object getTransferData(DataFlavor flavor, DataSource ds)
+ throws UnsupportedFlavorException, IOException
+ {
+ if (dch != null)
+ {
+ return dch.getTransferData(flavor, ds);
+ }
+ if (flavors == null)
+ {
+ getTransferDataFlavors();
+ }
+ if (flavor.equals(flavors[0]))
+ {
+ return object;
+ }
+ throw new UnsupportedFlavorException(flavor);
+ }
+
+ public DataFlavor[] getTransferDataFlavors()
+ {
+ if (flavors == null)
+ {
+ if (dch != null)
+ {
+ flavors = dch.getTransferDataFlavors();
+ }
+ else
+ {
+ flavors = new DataFlavor[1];
+ flavors[0] = new ActivationDataFlavor(object.getClass(),
+ mimeType, mimeType);
+ }
+ }
+ return flavors;
+ }
+
+ public void writeTo(Object object, String mimeType, OutputStream out)
+ throws IOException
+ {
+ if (dch != null)
+ {
+ dch.writeTo(object, mimeType, out);
+ }
+ else
+ {
+ throw new UnsupportedDataTypeException("no object DCH for MIME type " + mimeType);
+ }
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/URLDataSource.java b/libjava/classpath/javax/activation/URLDataSource.java
new file mode 100644
index 0000000..8b77567
--- /dev/null
+++ b/libjava/classpath/javax/activation/URLDataSource.java
@@ -0,0 +1,138 @@
+/* URLDataSource.java -- Data source for a URL object.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URL;
+import java.net.URLConnection;
+
+/**
+ * DataSource implementation that retrieves its data from a URL.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class URLDataSource
+ implements DataSource
+{
+
+ private final URL url;
+ private URLConnection connection;
+
+ /**
+ * Constructor.
+ * This will not open the connection to the URL.
+ */
+ public URLDataSource(URL url)
+ {
+ this.url = url;
+ }
+
+ /**
+ * Returns the Content-Type header for the URL.
+ * In the case of failure or lack of such a header,
+ * returns "application/octet-stream".
+ */
+ public String getContentType()
+ {
+ try
+ {
+ if (connection == null)
+ {
+ connection = url.openConnection();
+ }
+ }
+ catch (IOException e)
+ {
+ }
+ String contentType = null;
+ if (connection != null)
+ {
+ contentType = connection.getContentType();
+ }
+ if (contentType == null)
+ {
+ contentType = "application/octet-stream";
+ }
+ return contentType;
+ }
+
+ /**
+ * Returns the result of <code>getFile</code> of the underlying URL.
+ */
+ public String getName()
+ {
+ return url.getFile();
+ }
+
+ public InputStream getInputStream()
+ throws IOException
+ {
+ connection = url.openConnection();
+ if (connection != null)
+ {
+ connection.setDoInput(true);
+ return connection.getInputStream();
+ }
+ return null;
+ }
+
+ public OutputStream getOutputStream()
+ throws IOException
+ {
+ connection = url.openConnection();
+ if (connection != null)
+ {
+ connection.setDoOutput(true);
+ return connection.getOutputStream();
+ }
+ return null;
+ }
+
+ /**
+ * Returns the underlying URL.
+ */
+ public URL getURL()
+ {
+ return url;
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/UnsupportedDataTypeException.java b/libjava/classpath/javax/activation/UnsupportedDataTypeException.java
new file mode 100644
index 0000000..09460b0
--- /dev/null
+++ b/libjava/classpath/javax/activation/UnsupportedDataTypeException.java
@@ -0,0 +1,70 @@
+/* UnsupportedDataTypeException.java -- Thrown when a data type is not supported.
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package javax.activation;
+
+import java.io.IOException;
+
+/**
+ * Exception indicating that the requested method doesn't support the
+ * specified data type.
+ *
+ * @author <a href='mailto:dog@gnu.org'>Chris Burdess</a>
+ * @version 1.1
+ */
+public class UnsupportedDataTypeException extends IOException
+{
+
+ /**
+ * Constructs an UnsupportedDataTypeException with no detail message.
+ */
+ public UnsupportedDataTypeException()
+ {
+ }
+
+ /**
+ * Constructs an UnsupportedDataTypeException with the specified detail
+ * message.
+ * @param message the message
+ */
+ public UnsupportedDataTypeException(String message)
+ {
+ super(message);
+ }
+
+}
+
diff --git a/libjava/classpath/javax/activation/package.html b/libjava/classpath/javax/activation/package.html
new file mode 100644
index 0000000..74027ec
--- /dev/null
+++ b/libjava/classpath/javax/activation/package.html
@@ -0,0 +1,44 @@
+<body>
+
+<p>
+The GNU JavaBeans&trade; Activation Framework (JAF) provides a
+<a href="http://www.gnu.org/">Free</a> implementation of the
+JavaBeans&trade; Activation Framework, version 1.1.
+</p>
+
+<p>
+JAF links together beans and internet standards for specifying MIME
+types and how MIME types are processed. It provides a means to associate
+data of a given MIME type with bean actions operating on that data.
+</p>
+
+
+<h4>Important files</h4>
+
+<p>
+Standard <code>mime.types</code> files are parsed by the JAF MIME
+handling classes to work out the MIME types available on the local
+system.
+</p>
+
+<p>
+Standard <code>mailcap</code> files (defined in RFC1524) are parsed by
+mail capability handling classes to work out what beans should be linked
+to what MIME types.
+</p>
+
+<p>
+<small>Neither the authors nor the Free Software Foundation offer
+ANY SUPPORT for this software or imply any warranty.<br>
+Use it at your own risk.
+</small>
+</p>
+
+<p>
+<small>If you can suggest improvements in either the implementation
+code or in the documentation please contact the
+<a href="mailto:classpath@gnu.org">GNU Classpath project</a> developers.
+</small>
+</p>
+
+</body>
diff --git a/libjava/classpath/javax/imageio/ImageIO.java b/libjava/classpath/javax/imageio/ImageIO.java
index a3d9677..5f0d71d 100644
--- a/libjava/classpath/javax/imageio/ImageIO.java
+++ b/libjava/classpath/javax/imageio/ImageIO.java
@@ -851,6 +851,7 @@ public final class ImageIO
}
w.write(null, img, null);
+ w.dispose();
output.close();
return true;
}
diff --git a/libjava/classpath/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java b/libjava/classpath/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java
index c0567be..378e11f 100644
--- a/libjava/classpath/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java
+++ b/libjava/classpath/javax/imageio/plugins/jpeg/JPEGHuffmanTable.java
@@ -38,6 +38,8 @@
package javax.imageio.plugins.jpeg;
+import gnu.java.lang.CPStringBuilder;
+
/**
* The JPEGHuffmanTable class represents a Huffman table read from a
* JPEG image file. The standard JPEG AC and DC chrominance and
@@ -263,7 +265,7 @@ public class JPEGHuffmanTable
*/
public String toString()
{
- StringBuffer buffer = new StringBuffer();
+ CPStringBuilder buffer = new CPStringBuilder();
buffer.append("JPEGHuffmanTable:\nlengths:");
diff --git a/libjava/classpath/javax/imageio/plugins/jpeg/JPEGQTable.java b/libjava/classpath/javax/imageio/plugins/jpeg/JPEGQTable.java
index a94e8b1..259d0aa 100644
--- a/libjava/classpath/javax/imageio/plugins/jpeg/JPEGQTable.java
+++ b/libjava/classpath/javax/imageio/plugins/jpeg/JPEGQTable.java
@@ -38,6 +38,8 @@
package javax.imageio.plugins.jpeg;
+import gnu.java.lang.CPStringBuilder;
+
/**
* The JPEGQTable class represents a quantization table that can be
* used to encode or decode a JPEG stream. The standard JPEG
@@ -178,7 +180,7 @@ public class JPEGQTable
*/
public String toString()
{
- StringBuffer buffer = new StringBuffer();
+ CPStringBuilder buffer = new CPStringBuilder();
buffer.append("JPEGQTable:\n");
for (int i = 0; i < 8; i++)
diff --git a/libjava/classpath/javax/imageio/stream/ImageInputStreamImpl.java b/libjava/classpath/javax/imageio/stream/ImageInputStreamImpl.java
index 71eec41..e338f1d 100644
--- a/libjava/classpath/javax/imageio/stream/ImageInputStreamImpl.java
+++ b/libjava/classpath/javax/imageio/stream/ImageInputStreamImpl.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.imageio.stream;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.DataInputStream;
import java.io.EOFException;
import java.io.IOException;
@@ -341,7 +343,7 @@ public abstract class ImageInputStreamImpl implements ImageInputStream
int c = -1;
boolean eol = false;
- StringBuffer buffer = new StringBuffer();
+ CPStringBuilder buffer = new CPStringBuilder();
c = read();
if (c == -1)
diff --git a/libjava/classpath/javax/management/DefaultLoaderRepository.java b/libjava/classpath/javax/management/DefaultLoaderRepository.java
index b905af2..38f7d02 100644
--- a/libjava/classpath/javax/management/DefaultLoaderRepository.java
+++ b/libjava/classpath/javax/management/DefaultLoaderRepository.java
@@ -77,6 +77,8 @@ import java.util.List;
* @throws ClassNotFoundException if all the class loaders fail
* to load the class.
*/
+ // API issue with lack of <?> on Class
+ @SuppressWarnings("unchecked")
public static Class loadClass(String name)
throws ClassNotFoundException
{
@@ -124,6 +126,8 @@ import java.util.List;
* @throws ClassNotFoundException if all the class loaders fail
* to load the class.
*/
+ // API issue with lack of <?> on Class
+ @SuppressWarnings("unchecked")
public static Class loadClassWithout(ClassLoader exclude, String name)
throws ClassNotFoundException
{
diff --git a/libjava/classpath/javax/management/JMX.java b/libjava/classpath/javax/management/JMX.java
index a435d3e..e5fb258 100644
--- a/libjava/classpath/javax/management/JMX.java
+++ b/libjava/classpath/javax/management/JMX.java
@@ -324,6 +324,8 @@ public class JMX
* server using the given name.
* @see #newMXBeanProxy(MBeanServerConnection, ObjectName, Class)
*/
+ // Suppress warnings as we know an instance of T will be returned.
+ @SuppressWarnings("unchecked")
public static <T> T newMXBeanProxy(MBeanServerConnection conn,
ObjectName name, Class<T> iface,
boolean bcast)
diff --git a/libjava/classpath/javax/management/MBeanAttributeInfo.java b/libjava/classpath/javax/management/MBeanAttributeInfo.java
index 2e8475e..85e4e45 100644
--- a/libjava/classpath/javax/management/MBeanAttributeInfo.java
+++ b/libjava/classpath/javax/management/MBeanAttributeInfo.java
@@ -117,7 +117,7 @@ public class MBeanAttributeInfo
{
Type t = setter.getGenericParameterTypes()[0];
if (t instanceof Class)
- attributeType = ((Class) t).getName();
+ attributeType = ((Class<?>) t).getName();
else
attributeType = t.toString();
isRead = false;
@@ -127,7 +127,7 @@ public class MBeanAttributeInfo
{
Type t = getter.getGenericReturnType();
if (t instanceof Class)
- attributeType = ((Class) t).getName();
+ attributeType = ((Class<?>) t).getName();
else
attributeType = t.toString();
isRead = true;
diff --git a/libjava/classpath/javax/management/MBeanConstructorInfo.java b/libjava/classpath/javax/management/MBeanConstructorInfo.java
index 15c8227..041f3e9 100644
--- a/libjava/classpath/javax/management/MBeanConstructorInfo.java
+++ b/libjava/classpath/javax/management/MBeanConstructorInfo.java
@@ -75,6 +75,8 @@ public class MBeanConstructorInfo
* @param desc a description of the attribute.
* @param cons the constructor.
*/
+ // API issue with lack of <?> on Constructor
+ @SuppressWarnings("unchecked")
public MBeanConstructorInfo(String desc, Constructor cons)
{
super(cons.getName(), desc);
@@ -85,7 +87,7 @@ public class MBeanConstructorInfo
Type t = paramTypes[a];
if (t instanceof Class)
signature[a] = new MBeanParameterInfo(null,
- ((Class) t).getName(),
+ ((Class<?>) t).getName(),
null);
else
signature[a] = new MBeanParameterInfo(null, t.toString(), null);
diff --git a/libjava/classpath/javax/management/MBeanOperationInfo.java b/libjava/classpath/javax/management/MBeanOperationInfo.java
index 6495072..03220c1 100644
--- a/libjava/classpath/javax/management/MBeanOperationInfo.java
+++ b/libjava/classpath/javax/management/MBeanOperationInfo.java
@@ -121,14 +121,14 @@ public class MBeanOperationInfo
Type t = paramTypes[a];
if (t instanceof Class)
signature[a] = new MBeanParameterInfo(null,
- ((Class) t).getName(),
+ ((Class<?>) t).getName(),
null);
else
signature[a] = new MBeanParameterInfo(null, t.toString(), null);
}
Type retType = method.getGenericReturnType();
if (retType instanceof Class)
- type = ((Class) retType).getName();
+ type = ((Class<?>) retType).getName();
else
type = retType.toString();
if (method.getReturnType() == Void.TYPE)
diff --git a/libjava/classpath/javax/management/MBeanPermission.java b/libjava/classpath/javax/management/MBeanPermission.java
index 1ee0e71..076ac86 100644
--- a/libjava/classpath/javax/management/MBeanPermission.java
+++ b/libjava/classpath/javax/management/MBeanPermission.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.management;
+import gnu.java.lang.CPStringBuilder;
+
import java.security.Permission;
import java.io.IOException;
@@ -154,19 +156,19 @@ public class MBeanPermission
/**
* The list of actions as an ordered set.
*/
- private transient Set actionSet;
+ private transient Set<String> actionSet;
/**
* The set of valid actions.
*/
- private static final Set validSet;
+ private static final Set<String> validSet;
/**
* Initialise the set of valid actions.
*/
static
{
- validSet = new HashSet();
+ validSet = new HashSet<String>();
validSet.add("addNotificationListener");
validSet.add("getAttribute");
validSet.add("getClassLoader");
@@ -263,8 +265,8 @@ public class MBeanPermission
*/
public String getActions()
{
- Iterator it = actionSet.iterator();
- StringBuilder builder = new StringBuilder();
+ Iterator<String> it = actionSet.iterator();
+ CPStringBuilder builder = new CPStringBuilder();
while (it.hasNext())
{
builder.append(it.next());
@@ -323,10 +325,8 @@ public class MBeanPermission
NameHolder name = new NameHolder(getName());
if (!(name.equals(pName)))
return false;
- Iterator i = mp.getActionSet().iterator();
- while (i.hasNext())
+ for (String nextAction : mp.actionSet)
{
- String nextAction = (String) i.next();
boolean found = actions.contains(nextAction);
if (!found)
if (nextAction.equals("queryNames"))
@@ -502,23 +502,13 @@ public class MBeanPermission
}
/**
- * Returns the set of actions.
- *
- * @return the actions as an ordered set.
- */
- Set getActionSet()
- {
- return actionSet;
- }
-
- /**
* Updates the action set from the current value of
* the actions string.
*/
private void updateActionSet()
{
String[] actionsArray = actions.split(",");
- actionSet = new TreeSet();
+ actionSet = new TreeSet<String>();
for (int a = 0; a < actionsArray.length; ++a)
actionSet.add(actionsArray[a].trim());
}
@@ -548,10 +538,8 @@ public class MBeanPermission
*/
private void checkActions()
{
- Iterator it = actionSet.iterator();
- while (it.hasNext())
+ for (String action : actionSet)
{
- String action = (String) it.next();
if (!(validSet.contains(action)))
throw new IllegalArgumentException("Invalid action "
+ action + " found.");
diff --git a/libjava/classpath/javax/management/MBeanServerDelegate.java b/libjava/classpath/javax/management/MBeanServerDelegate.java
index 9e9d191..c55faa3 100644
--- a/libjava/classpath/javax/management/MBeanServerDelegate.java
+++ b/libjava/classpath/javax/management/MBeanServerDelegate.java
@@ -69,7 +69,8 @@ public class MBeanServerDelegate
/**
* The listeners registered with the delegate.
*/
- private final List listeners = new ArrayList();
+ private final List<ListenerData> listeners =
+ new ArrayList<ListenerData>();
/**
* The sequence identifier used by the delegate.
@@ -234,12 +235,11 @@ public class MBeanServerDelegate
public void removeNotificationListener(NotificationListener listener)
throws ListenerNotFoundException
{
- Iterator it = listeners.iterator();
+ Iterator<ListenerData> it = listeners.iterator();
boolean foundOne = false;
while (it.hasNext())
{
- ListenerData data = (ListenerData) it.next();
- if (data.getListener() == listener)
+ if (it.next().getListener() == listener)
{
it.remove();
foundOne = true;
@@ -293,10 +293,8 @@ public class MBeanServerDelegate
{
if (notification.getSequenceNumber() <= 0)
notification.setSequenceNumber(++seqNo);
- Iterator it = listeners.iterator();
- while (it.hasNext())
+ for (ListenerData ldata : listeners)
{
- ListenerData ldata = (ListenerData) it.next();
NotificationFilter filter = ldata.getFilter();
if (filter == null || filter.isNotificationEnabled(notification))
ldata.getListener().handleNotification(notification, ldata.getPassback());
diff --git a/libjava/classpath/javax/management/MBeanServerFactory.java b/libjava/classpath/javax/management/MBeanServerFactory.java
index a8dac94..d798b0c 100644
--- a/libjava/classpath/javax/management/MBeanServerFactory.java
+++ b/libjava/classpath/javax/management/MBeanServerFactory.java
@@ -89,7 +89,8 @@ public class MBeanServerFactory
/**
* The map of registered servers (identifiers to servers).
*/
- private static final Map<Object,MBeanServer> servers = new HashMap();
+ private static final Map<Object,MBeanServer> servers =
+ new HashMap<Object,MBeanServer>();
/**
* Private constructor to prevent instance creation.
@@ -212,7 +213,7 @@ public class MBeanServerFactory
if (sm != null)
sm.checkPermission(new MBeanServerPermission("findMBeanServer"));
if (id == null)
- return new ArrayList(servers.values());
+ return new ArrayList<MBeanServer>(servers.values());
ArrayList<MBeanServer> list = new ArrayList<MBeanServer>();
MBeanServer server = servers.get(id);
if (server != null)
@@ -342,7 +343,7 @@ public class MBeanServerFactory
cl = MBeanServerFactory.class.getClassLoader();
try
{
- Class bClass = Class.forName(builderClass, true, cl);
+ Class<?> bClass = Class.forName(builderClass, true, cl);
builder = (MBeanServerBuilder) bClass.newInstance();
}
catch (ClassNotFoundException e)
diff --git a/libjava/classpath/javax/management/MBeanServerInvocationHandler.java b/libjava/classpath/javax/management/MBeanServerInvocationHandler.java
index 9489967..acc8543 100644
--- a/libjava/classpath/javax/management/MBeanServerInvocationHandler.java
+++ b/libjava/classpath/javax/management/MBeanServerInvocationHandler.java
@@ -204,7 +204,7 @@ public class MBeanServerInvocationHandler
throws Throwable
{
String mName = method.getName();
- Class proxyClass = proxy.getClass();
+ Class<?> proxyClass = proxy.getClass();
if (mName.equals("toString"))
{
if (inInterface(mName, proxyClass))
@@ -352,6 +352,8 @@ public class MBeanServerInvocationHandler
* @return a proxy for the specified bean.
* @see JMX#newMBeanProxy(MBeanServerConnection,ObjectName,Class)
*/
+ // Suppress warnings as we know an instance of T will be returned.
+ @SuppressWarnings("unchecked")
public static <T> T newProxyInstance(MBeanServerConnection conn,
ObjectName name, Class<T> iface,
boolean broadcaster)
diff --git a/libjava/classpath/javax/management/MBeanServerPermission.java b/libjava/classpath/javax/management/MBeanServerPermission.java
index e622781..045573a 100644
--- a/libjava/classpath/javax/management/MBeanServerPermission.java
+++ b/libjava/classpath/javax/management/MBeanServerPermission.java
@@ -280,6 +280,7 @@ public class MBeanServerPermission
* @see #isReadOnly()
* @see #setReadOnly(boolean)
*/
+ @Override
public void add(Permission p)
{
if (isReadOnly())
@@ -305,13 +306,14 @@ public class MBeanServerPermission
String cps = cp[b].trim();
if (cps.equals(nps))
found = true;
- if (np.equals("newMBeanServer")
+ if (nps.equals("newMBeanServer")
&& createms != -1)
found = true;
- if (np.equals("createMBeanServer")
+ if (nps.equals("createMBeanServer")
&& newms != -1)
- finalString.replace("newMBeanServer",
- "createMBeanServer");
+ finalString =
+ finalString.replace("newMBeanServer",
+ "createMBeanServer");
}
if (!found)
finalString += "," + nps;
@@ -327,7 +329,8 @@ public class MBeanServerPermission
*
* @return an enumeration over the collection permission.
*/
- public Enumeration elements()
+ @Override
+ public Enumeration<Permission> elements()
{
return new
MBeanServerPermissionEnumeration(collectionPermission);
@@ -341,7 +344,7 @@ public class MBeanServerPermission
* @since 1.5
*/
private class MBeanServerPermissionEnumeration
- implements Enumeration
+ implements Enumeration<Permission>
{
/**
@@ -381,7 +384,7 @@ public class MBeanServerPermission
*
* @return the next capability.
*/
- public Object nextElement()
+ public Permission nextElement()
{
if (hasMoreElements())
{
@@ -405,6 +408,7 @@ public class MBeanServerPermission
* @param p the permission to check for implication.
* @return true if this permission implies <code>p</code>.
*/
+ @Override
public boolean implies(Permission p)
{
return collectionPermission.implies(p);
diff --git a/libjava/classpath/javax/management/ObjectName.java b/libjava/classpath/javax/management/ObjectName.java
index 1fb5150..d3ccd20 100644
--- a/libjava/classpath/javax/management/ObjectName.java
+++ b/libjava/classpath/javax/management/ObjectName.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.management;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
import java.util.Hashtable;
@@ -304,17 +306,14 @@ public class ObjectName
"character.");
char[] keychars = new char[] { '\n', ':', ',', '*', '?', '=' };
char[] valchars = new char[] { '\n', ':', ',', '=' };
- Iterator i = properties.entrySet().iterator();
- while (i.hasNext())
+ for (Map.Entry<String,String> entry : properties.entrySet())
{
- Map.Entry entry = (Map.Entry) i.next();
- String key = (String) entry.getKey();
for (int a = 0; a < keychars.length; ++a)
- if (key.indexOf(keychars[a]) != -1)
+ if (entry.getKey().indexOf(keychars[a]) != -1)
throw new MalformedObjectNameException("A key contains a '" +
keychars[a] + "' " +
"character.");
- String value = (String) entry.getValue();
+ String value = entry.getValue();
int quote = value.indexOf('"');
if (quote == 0)
{
@@ -387,15 +386,13 @@ public class ObjectName
if (isPropertyPattern())
{
- Hashtable oProps = name.getKeyPropertyList();
- Iterator i = properties.entrySet().iterator();
- while (i.hasNext())
+ Hashtable<String,String> oProps = name.getKeyPropertyList();
+ for (Map.Entry<String,String> entry : properties.entrySet())
{
- Map.Entry entry = (Map.Entry) i.next();
- String key = (String) entry.getKey();
+ String key = entry.getKey();
if (!(oProps.containsKey(key)))
return false;
- String val = (String) entry.getValue();
+ String val = entry.getValue();
if (!(val.equals(oProps.get(key))))
return false;
}
@@ -476,11 +473,11 @@ public class ObjectName
*/
public String getCanonicalKeyPropertyListString()
{
- StringBuilder builder = new StringBuilder();
- Iterator i = properties.entrySet().iterator();
+ CPStringBuilder builder = new CPStringBuilder();
+ Iterator<Map.Entry<String,String>> i = properties.entrySet().iterator();
while (i.hasNext())
{
- Map.Entry entry = (Map.Entry) i.next();
+ Map.Entry<String,String> entry = i.next();
builder.append(entry.getKey() + "=" + entry.getValue());
if (i.hasNext())
builder.append(",");
@@ -795,7 +792,7 @@ public class ObjectName
*/
public static String quote(String string)
{
- StringBuilder builder = new StringBuilder();
+ CPStringBuilder builder = new CPStringBuilder();
builder.append('"');
for (int a = 0; a < string.length(); ++a)
{
@@ -863,7 +860,7 @@ public class ObjectName
throws IOException
{
out.defaultWriteObject();
- StringBuffer buffer = new StringBuffer(getDomain());
+ CPStringBuilder buffer = new CPStringBuilder(getDomain());
buffer.append(':');
String properties = getKeyPropertyListString();
buffer.append(properties);
@@ -924,7 +921,7 @@ public class ObjectName
if (q.charAt(q.length() - 1) != '"')
throw new IllegalArgumentException("The string does " +
"not end with a quote.");
- StringBuilder builder = new StringBuilder();
+ CPStringBuilder builder = new CPStringBuilder();
for (int a = 1; a < (q.length() - 1); ++a)
{
char n = q.charAt(a);
diff --git a/libjava/classpath/javax/management/StandardMBean.java b/libjava/classpath/javax/management/StandardMBean.java
index bd59c68..13e95bd 100644
--- a/libjava/classpath/javax/management/StandardMBean.java
+++ b/libjava/classpath/javax/management/StandardMBean.java
@@ -569,8 +569,8 @@ public class StandardMBean
if (info != null)
return info;
Method[] methods = iface.getMethods();
- Map attributes = new HashMap();
- List operations = new ArrayList();
+ Map<String,Method[]> attributes = new HashMap<String,Method[]>();
+ List<MBeanOperationInfo> operations = new ArrayList<MBeanOperationInfo>();
for (int a = 0; a < methods.length; ++a)
{
String name = methods[a].getName();
@@ -614,16 +614,14 @@ public class StandardMBean
operations.add(new MBeanOperationInfo(methods[a].getName(),
methods[a]));
}
- List attribs = new ArrayList(attributes.size());
- Iterator it = attributes.entrySet().iterator();
- while (it.hasNext())
+ List<MBeanAttributeInfo> attribs = new ArrayList<MBeanAttributeInfo>(attributes.size());
+ for (Map.Entry<String,Method[]> entry : attributes.entrySet())
{
- Map.Entry entry = (Map.Entry) it.next();
- Method[] amethods = (Method[]) entry.getValue();
+ Method[] amethods = entry.getValue();
try
{
- attribs.add(new MBeanAttributeInfo((String) entry.getKey(),
- (String) entry.getKey(),
+ attribs.add(new MBeanAttributeInfo(entry.getKey(),
+ entry.getKey(),
amethods[0], amethods[1]));
}
catch (IntrospectionException e)
@@ -646,7 +644,7 @@ public class StandardMBean
oldInfo.isWritable(),
oldInfo.isIs());
}
- Constructor[] cons = impl.getClass().getConstructors();
+ Constructor<?>[] cons = impl.getClass().getConstructors();
MBeanConstructorInfo[] cinfo = new MBeanConstructorInfo[cons.length];
for (int a = 0; a < cinfo.length; ++a)
{
@@ -778,10 +776,10 @@ public class StandardMBean
"Invocation of an attribute " +
"method is disallowed.");
ClassLoader loader = getClass().getClassLoader();
- Class[] sigTypes;
+ Class<?>[] sigTypes;
if (signature != null)
{
- sigTypes = new Class[signature.length];
+ sigTypes = new Class<?>[signature.length];
for (int a = 0; a < signature.length; ++a)
try
{
@@ -892,7 +890,7 @@ public class StandardMBean
public AttributeList setAttributes(AttributeList attributes)
{
AttributeList list = new AttributeList(attributes.size());
- Iterator it = attributes.iterator();
+ Iterator<Object> it = attributes.iterator();
while (it.hasNext())
{
try
diff --git a/libjava/classpath/javax/management/openmbean/ArrayType.java b/libjava/classpath/javax/management/openmbean/ArrayType.java
index e6cf526..1a23f66 100644
--- a/libjava/classpath/javax/management/openmbean/ArrayType.java
+++ b/libjava/classpath/javax/management/openmbean/ArrayType.java
@@ -152,7 +152,7 @@ public class ArrayType<T>
throw new IllegalArgumentException("Dimensions must be greater " +
"than or equal to 1.");
if (elementType instanceof ArrayType)
- return dim + ((ArrayType) elementType).getDimension();
+ return dim + ((ArrayType<?>) elementType).getDimension();
return dim;
}
@@ -236,7 +236,7 @@ public class ArrayType<T>
private static final OpenType<?> getElementType(OpenType<?> elemType)
{
if (elemType instanceof ArrayType)
- return ((ArrayType) elemType).getElementOpenType();
+ return ((ArrayType<?>) elemType).getElementOpenType();
return elemType;
}
@@ -257,7 +257,7 @@ public class ArrayType<T>
{
OpenType<?> trueElemType = getElementType(elemType);
if (elemType instanceof ArrayType &&
- ((ArrayType) elemType).isPrimitiveArray())
+ ((ArrayType<?>) elemType).isPrimitiveArray())
return getPrimitiveTypeClass((SimpleType<?>) trueElemType).getName();
return trueElemType.getClassName();
}
@@ -323,7 +323,7 @@ public class ArrayType<T>
dimension = getDimensions(elementType, dim);
this.elementType = getElementType(elementType);
primitiveArray = (elementType instanceof ArrayType &&
- ((ArrayType) elementType).isPrimitiveArray());
+ ((ArrayType<?>) elementType).isPrimitiveArray());
}
/**
@@ -408,7 +408,7 @@ public class ArrayType<T>
{
if (!(obj instanceof ArrayType))
return false;
- ArrayType atype = (ArrayType) obj;
+ ArrayType<?> atype = (ArrayType<?>) obj;
return (atype.getDimension() == dimension &&
atype.getElementOpenType().equals(elementType) &&
atype.isPrimitiveArray() == primitiveArray);
@@ -439,13 +439,14 @@ public class ArrayType<T>
* is not in {@link OpenType#ALLOWED_CLASSNAMES_LIST}.
* @since 1.6
*/
+ @SuppressWarnings("unchecked")
public static <E> ArrayType<E[]> getArrayType(OpenType<E> elementType)
throws OpenDataException
{
ArrayType<E[]> arr = (ArrayType<E[]>) cache.get(elementType);
if (arr != null)
return arr;
- arr = new ArrayType(1, elementType);
+ arr = new ArrayType<E[]>(1, elementType);
cache.put(elementType, arr);
return arr;
}
@@ -484,6 +485,7 @@ public class ArrayType<T>
* array.
* @since 1.6
*/
+ @SuppressWarnings("unchecked")
public static <T> ArrayType<T> getPrimitiveArrayType(Class<T> type)
{
ArrayType<T> arr = (ArrayType<T>) primCache.get(type);
@@ -499,10 +501,9 @@ public class ArrayType<T>
throw new IllegalArgumentException("The given class is " +
"not an array.");
} while (comType.isArray());
- String className = type.getName();
try
{
- arr = new ArrayType(getPrimitiveType(comType), true);
+ arr = new ArrayType<T>(getPrimitiveType(comType), true);
}
catch (OpenDataException e)
{
@@ -512,7 +513,7 @@ public class ArrayType<T>
while (dim > 1)
try
{
- arr = new ArrayType(1, arr);
+ arr = new ArrayType<T>(1, arr);
--dim;
}
catch (OpenDataException e)
@@ -610,12 +611,12 @@ public class ArrayType<T>
{
if (obj == null)
return false;
- Class objClass = obj.getClass();
+ Class<?> objClass = obj.getClass();
if (!(objClass.isArray()))
return false;
if (elementType instanceof SimpleType)
return getClassName().equals(objClass.getName());
- Class elementClass = null;
+ Class<?> elementClass = null;
try
{
elementClass = Class.forName(getClassName());
diff --git a/libjava/classpath/javax/management/openmbean/CompositeDataSupport.java b/libjava/classpath/javax/management/openmbean/CompositeDataSupport.java
index d4c9d45..6bce267 100644
--- a/libjava/classpath/javax/management/openmbean/CompositeDataSupport.java
+++ b/libjava/classpath/javax/management/openmbean/CompositeDataSupport.java
@@ -154,7 +154,7 @@ public class CompositeDataSupport
throw new IllegalArgumentException("The values array is null.");
if (names.length != values.length)
throw new IllegalArgumentException("The sizes of the arrays differ.");
- Set typeKeys = type.keySet();
+ Set<String> typeKeys = type.keySet();
if (typeKeys.size() != names.length)
throw new OpenDataException("The number of field names does not match " +
"the type description.");
@@ -227,10 +227,8 @@ public class CompositeDataSupport
CompositeData data = (CompositeData) obj;
if (!(data.getCompositeType().equals(compositeType)))
return false;
- Iterator it = contents.keySet().iterator();
- while (it.hasNext())
+ for (String key : contents.keySet())
{
- String key = (String) it.next();
if (!(data.containsKey(key)))
return false;
if (!(data.get(key).equals(contents.get(key))))
@@ -308,9 +306,8 @@ public class CompositeDataSupport
public int hashCode()
{
int code = compositeType.hashCode();
- Iterator it = values().iterator();
- while (it.hasNext())
- code += it.next().hashCode();
+ for (Object o : contents.values())
+ code += o.hashCode();
return code;
}
diff --git a/libjava/classpath/javax/management/openmbean/CompositeType.java b/libjava/classpath/javax/management/openmbean/CompositeType.java
index 1a213f6..3244c64 100644
--- a/libjava/classpath/javax/management/openmbean/CompositeType.java
+++ b/libjava/classpath/javax/management/openmbean/CompositeType.java
@@ -118,7 +118,7 @@ public class CompositeType
|| names.length != types.length)
throw new IllegalArgumentException("Arrays must be non-empty " +
"and of equal size.");
- nameToDescription = new TreeMap();
+ nameToDescription = new TreeMap<String,String>();
for (int a = 0; a < names.length; ++a)
{
if (names[a] == null)
@@ -243,10 +243,8 @@ public class CompositeType
if (hashCode == null)
{
int elementTotal = 0;
- Iterator it = nameToType.entrySet().iterator();
- while (it.hasNext())
+ for (Map.Entry<String,OpenType<?>> entry : nameToType.entrySet())
{
- Map.Entry entry = (Map.Entry) it.next();
elementTotal += (entry.getKey().hashCode() +
entry.getValue().hashCode());
}
diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java b/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java
index 22667aa..6da2e95 100644
--- a/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java
+++ b/libjava/classpath/javax/management/openmbean/OpenMBeanAttributeInfoSupport.java
@@ -77,12 +77,12 @@ public class OpenMBeanAttributeInfoSupport
/**
* The minimum value of the attribute (may be <code>null</code>).
*/
- private Comparable<Object> minValue;
+ private Comparable<?> minValue;
/**
* The maximum value of the attribute (may be <code>null</code>).
*/
- private Comparable<Object> maxValue;
+ private Comparable<?> maxValue;
/**
* The hash code of this instance.
@@ -203,6 +203,7 @@ public class OpenMBeanAttributeInfoSupport
* the empty string.
* @throws OpenDataException if any condition in the list above is broken.
*/
+ @SuppressWarnings("unchecked")
public <T> OpenMBeanAttributeInfoSupport(String name, String desc, OpenType<T> type,
boolean isReadable, boolean isWritable,
boolean isIs, T defaultValue,
@@ -224,23 +225,23 @@ public class OpenMBeanAttributeInfoSupport
type instanceof TabularType))
throw new OpenDataException("Default values are not applicable for " +
"array or tabular types.");
- if (minValue != null && maxValue != null
- && minValue.compareTo(maxValue) > 0)
+ if (minimumValue != null && maximumValue != null
+ && minimumValue.compareTo((T) maximumValue) > 0)
throw new OpenDataException("The minimum value is greater than the " +
"maximum.");
- if (minValue != null && defaultValue != null
- && minValue.compareTo(defaultValue) > 0)
+ if (minimumValue != null && defaultValue != null
+ && minimumValue.compareTo(defaultValue) > 0)
throw new OpenDataException("The minimum value is greater than the " +
"default.");
- if (defaultValue != null && maxValue != null
- && maxValue.compareTo(defaultValue) < 0)
+ if (defaultValue != null && maximumValue != null
+ && maximumValue.compareTo(defaultValue) < 0)
throw new OpenDataException("The default value is greater than the " +
"maximum.");
openType = type;
this.defaultValue = defaultValue;
- minValue = (Comparable<Object>) minimumValue;
- maxValue = (Comparable<Object>) maximumValue;
+ minValue = minimumValue;
+ maxValue = maximumValue;
}
/**
@@ -300,7 +301,7 @@ public class OpenMBeanAttributeInfoSupport
"array or tabular types.");
if (legalValues != null && legalValues.length > 0)
{
- Set lv = new HashSet(legalValues.length);
+ Set<T> lv = new HashSet<T>(legalValues.length);
for (int a = 0; a < legalValues.length; ++a)
{
if (legalValues[a] != null &&
diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java b/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java
index 5f8d55b..d67ff76 100644
--- a/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java
+++ b/libjava/classpath/javax/management/openmbean/OpenMBeanInfoSupport.java
@@ -151,10 +151,10 @@ public class OpenMBeanInfoSupport
if (hashCode == null)
hashCode =
Integer.valueOf(getClassName().hashCode() +
- new HashSet(Arrays.asList(getAttributes())).hashCode() +
- new HashSet(Arrays.asList(getConstructors())).hashCode() +
- new HashSet(Arrays.asList(getNotifications())).hashCode() +
- new HashSet(Arrays.asList(getOperations())).hashCode());
+ new HashSet<MBeanAttributeInfo>(Arrays.asList(getAttributes())).hashCode() +
+ new HashSet<MBeanConstructorInfo>(Arrays.asList(getConstructors())).hashCode() +
+ new HashSet<MBeanNotificationInfo>(Arrays.asList(getNotifications())).hashCode() +
+ new HashSet<MBeanOperationInfo>(Arrays.asList(getOperations())).hashCode());
return hashCode.intValue();
}
diff --git a/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java b/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java
index 7fad2a1..5f86bf4 100644
--- a/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java
+++ b/libjava/classpath/javax/management/openmbean/OpenMBeanParameterInfoSupport.java
@@ -78,12 +78,12 @@ public class OpenMBeanParameterInfoSupport
/**
* The minimum value of the parameter (may be <code>null</code>).
*/
- private Comparable<Object> minValue;
+ private Comparable<?> minValue;
/**
* The maximum value of the parameter (may be <code>null</code>).
*/
- private Comparable<Object> maxValue;
+ private Comparable<?> maxValue;
/**
* The hash code of this instance.
@@ -190,6 +190,7 @@ public class OpenMBeanParameterInfoSupport
* the empty string.
* @throws OpenDataException if any condition in the list above is broken.
*/
+ @SuppressWarnings("unchecked")
public <T> OpenMBeanParameterInfoSupport(String name, String desc, OpenType<T> type,
T defaultValue, Comparable<T> minimumValue,
Comparable<T> maximumValue)
@@ -209,22 +210,22 @@ public class OpenMBeanParameterInfoSupport
type instanceof TabularType))
throw new OpenDataException("Default values are not applicable for " +
"array or tabular types.");
- if (minValue != null && maxValue != null
- && minValue.compareTo(maxValue) > 0)
+ if (minimumValue != null && maximumValue != null
+ && minimumValue.compareTo((T) maximumValue) > 0)
throw new OpenDataException("The minimum value is greater than the " +
"maximum.");
- if (minValue != null && defaultValue != null
- && minValue.compareTo(defaultValue) > 0)
+ if (minimumValue != null && defaultValue != null
+ && minimumValue.compareTo(defaultValue) > 0)
throw new OpenDataException("The minimum value is greater than the " +
"default.");
- if (defaultValue != null && maxValue != null
- && maxValue.compareTo(defaultValue) < 0)
+ if (defaultValue != null && maximumValue != null
+ && maximumValue.compareTo(defaultValue) < 0)
throw new OpenDataException("The default value is greater than the " +
"maximum.");
this.defaultValue = defaultValue;
- minValue = (Comparable<Object>) minimumValue;
- maxValue = (Comparable<Object>) maximumValue;
+ minValue = minimumValue;
+ maxValue = maximumValue;
}
/**
@@ -279,7 +280,7 @@ public class OpenMBeanParameterInfoSupport
"array or tabular types.");
if (legalValues != null && legalValues.length > 0)
{
- Set lv = new HashSet(legalValues.length);
+ Set<T> lv = new HashSet<T>(legalValues.length);
for (int a = 0; a < legalValues.length; ++a)
{
if (legalValues[a] != null &&
diff --git a/libjava/classpath/javax/management/openmbean/SimpleType.java b/libjava/classpath/javax/management/openmbean/SimpleType.java
index fb3b1bc..ef05e9d 100644
--- a/libjava/classpath/javax/management/openmbean/SimpleType.java
+++ b/libjava/classpath/javax/management/openmbean/SimpleType.java
@@ -232,7 +232,7 @@ public final class SimpleType<T>
{
if (!(obj instanceof SimpleType))
return false;
- SimpleType sType = (SimpleType) obj;
+ SimpleType<?> sType = (SimpleType<?>) obj;
return sType.getClassName().equals(getClassName());
}
diff --git a/libjava/classpath/javax/management/openmbean/TabularDataSupport.java b/libjava/classpath/javax/management/openmbean/TabularDataSupport.java
index 1d340e8..8557f5f 100644
--- a/libjava/classpath/javax/management/openmbean/TabularDataSupport.java
+++ b/libjava/classpath/javax/management/openmbean/TabularDataSupport.java
@@ -68,7 +68,7 @@ public class TabularDataSupport
*
* @serial the map of rows to column values.
*/
- private Map<Object,Object> dataMap;
+ private HashMap<Object,Object> dataMap;
/**
* The tabular type which represents this tabular data instance.
@@ -141,14 +141,10 @@ public class TabularDataSupport
throw new InvalidOpenTypeException("The type of the given value " +
"does not match the row type " +
"of this instance.");
- List indexNames = tabularType.getIndexNames();
- List matchingIndicies = new ArrayList(indexNames.size());
- Iterator it = indexNames.iterator();
- while (it.hasNext())
- {
- String name = (String) it.next();
- matchingIndicies.add(val.get(name));
- }
+ List<String> indexNames = tabularType.getIndexNames();
+ List<String> matchingIndicies = new ArrayList<String>(indexNames.size());
+ for (String name : indexNames)
+ matchingIndicies.add(val.get(name).toString());
return matchingIndicies.toArray();
}
@@ -167,13 +163,14 @@ public class TabularDataSupport
*
* @return a shallow clone of this {@link TabularDataSupport}.
*/
+ @SuppressWarnings("unchecked")
public Object clone()
{
TabularDataSupport clone = null;
try
{
clone = (TabularDataSupport) super.clone();
- clone.setMap((HashMap) ((HashMap) dataMap).clone());
+ clone.setMap((HashMap<Object,Object>) dataMap.clone());
}
catch (CloneNotSupportedException e)
{
@@ -390,11 +387,11 @@ public class TabularDataSupport
*/
private boolean isKeyValid(Object[] key)
{
- Iterator it = tabularType.getIndexNames().iterator();
+ Iterator<String> it = tabularType.getIndexNames().iterator();
CompositeType rowType = tabularType.getRowType();
for (int a = 0; it.hasNext(); ++a)
{
- OpenType type = rowType.getType((String) it.next());
+ OpenType<?> type = rowType.getType(it.next());
if (!(type.isValue(key[a])))
return false;
}
@@ -496,7 +493,7 @@ public class TabularDataSupport
{
if (vals == null || vals.length == 0)
return;
- Map mapToAdd = new HashMap(vals.length);
+ Map<Object,Object> mapToAdd = new HashMap<Object,Object>(vals.length);
for (int a = 0; a < vals.length; ++a)
{
Object[] key = calculateIndex(vals[a]);
@@ -539,9 +536,9 @@ public class TabularDataSupport
{
if (m == null || m.size() == 0)
return;
- Collection vals = m.values();
+ Collection<?> vals = m.values();
CompositeData[] data = new CompositeData[vals.size()];
- Iterator it = vals.iterator();
+ Iterator<?> it = vals.iterator();
for (int a = 0; it.hasNext(); ++a)
{
data[a] = (CompositeData) it.next();
@@ -591,12 +588,12 @@ public class TabularDataSupport
}
/**
- * Package-private method to set the internal {@link java.util.Map}
+ * Private method to set the internal {@link java.util.Map}
* instance (used in cloning).
*
* @param map the new map used.
*/
- void setMap(Map map)
+ private void setMap(HashMap<Object,Object> map)
{
dataMap = map;
}
diff --git a/libjava/classpath/javax/management/openmbean/TabularType.java b/libjava/classpath/javax/management/openmbean/TabularType.java
index 9a0881e..5a861d0 100644
--- a/libjava/classpath/javax/management/openmbean/TabularType.java
+++ b/libjava/classpath/javax/management/openmbean/TabularType.java
@@ -206,9 +206,8 @@ public class TabularType
if (hashCode == null)
{
int elementTotal = 0;
- Iterator it = indexNames.iterator();
- while (it.hasNext())
- elementTotal += it.next().hashCode();
+ for (String s : indexNames)
+ elementTotal += s.hashCode();
hashCode = Integer.valueOf(elementTotal
+ getTypeName().hashCode()
+ rowType.hashCode());
diff --git a/libjava/classpath/javax/management/remote/rmi/RMIConnection.java b/libjava/classpath/javax/management/remote/rmi/RMIConnection.java
index 38fb544..430f1c7d 100644
--- a/libjava/classpath/javax/management/remote/rmi/RMIConnection.java
+++ b/libjava/classpath/javax/management/remote/rmi/RMIConnection.java
@@ -152,6 +152,7 @@ public interface RMIConnection
* NotificationFilter,
* Object)
*/
+ @SuppressWarnings("unchecked")
void addNotificationListener(ObjectName name, ObjectName listener,
MarshalledObject filter, MarshalledObject passback,
Subject delegationSubject)
@@ -223,6 +224,7 @@ public interface RMIConnection
* NotificationFilter,
* Object)
*/
+ @SuppressWarnings("unchecked")
Integer[] addNotificationListeners(ObjectName[] names, MarshalledObject[] filters,
Subject[] delegationSubjects)
throws InstanceNotFoundException, IOException;
@@ -296,6 +298,7 @@ public interface RMIConnection
* @throws IOException if an I/O error occurred in communicating with
* the bean server.
*/
+ @SuppressWarnings("unchecked")
ObjectInstance createMBean(String className, ObjectName name,
MarshalledObject params, String[] sig,
Subject delegationSubject)
@@ -364,6 +367,7 @@ public interface RMIConnection
* @throws IOException if an I/O error occurred in communicating with
* the bean server.
*/
+ @SuppressWarnings("unchecked")
ObjectInstance createMBean(String className, ObjectName name,
ObjectName loaderName, MarshalledObject params,
String[] sig, Subject delegationSubject)
@@ -763,6 +767,7 @@ public interface RMIConnection
* the bean server.
* @see DynamicMBean#invoke(String, Object[], String[])
*/
+ @SuppressWarnings("unchecked")
Object invoke(ObjectName bean, String name, MarshalledObject params,
String[] sig, Subject delegationSubject)
throws InstanceNotFoundException, MBeanException,
@@ -866,6 +871,7 @@ public interface RMIConnection
* @throws SecurityException if the client or delegated subject (if any) does
* not have permission to invoke this operation.
*/
+ @SuppressWarnings("unchecked")
Set<ObjectInstance> queryMBeans(ObjectName name, MarshalledObject query,
Subject delegationSubject)
throws IOException;
@@ -908,6 +914,7 @@ public interface RMIConnection
* @throws IOException if an I/O error occurred in communicating with
* the bean server.
*/
+ @SuppressWarnings("unchecked")
Set<ObjectName> queryNames(ObjectName name, MarshalledObject query,
Subject delegationSubject)
throws IOException;
@@ -953,6 +960,7 @@ public interface RMIConnection
* NotificationFilter,
* Object)
*/
+ @SuppressWarnings("unchecked")
void removeNotificationListener(ObjectName name,
ObjectName listener,
MarshalledObject filter,
@@ -1072,6 +1080,7 @@ public interface RMIConnection
* @see #getAttribute(ObjectName, String, Subject)
* @see javax.management.DynamicMBean#setAttribute(Attribute)
*/
+ @SuppressWarnings("unchecked")
void setAttribute(ObjectName name, MarshalledObject attribute,
Subject delegationSubject)
throws InstanceNotFoundException, AttributeNotFoundException,
@@ -1112,6 +1121,7 @@ public interface RMIConnection
* @see #getAttributes(ObjectName, String[])
* @see DynamicMBean#setAttributes(AttributeList)
*/
+ @SuppressWarnings("unchecked")
AttributeList setAttributes(ObjectName name, MarshalledObject attributes,
Subject delegationSubject)
throws InstanceNotFoundException, ReflectionException,
diff --git a/libjava/classpath/javax/naming/BinaryRefAddr.java b/libjava/classpath/javax/naming/BinaryRefAddr.java
index 0b813ab..923c48e 100644
--- a/libjava/classpath/javax/naming/BinaryRefAddr.java
+++ b/libjava/classpath/javax/naming/BinaryRefAddr.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.naming;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Arrays;
/**
@@ -139,7 +141,7 @@ public class BinaryRefAddr extends RefAddr
*/
public String toString()
{
- StringBuffer sb = new StringBuffer("[RefAddr type: ");
+ CPStringBuilder sb = new CPStringBuilder("[RefAddr type: ");
sb.append(getType());
sb.append(" content: 0x");
byte[] b = (byte[]) getContent();
diff --git a/libjava/classpath/javax/naming/CompositeName.java b/libjava/classpath/javax/naming/CompositeName.java
index 7227f9d7..4593bae 100644
--- a/libjava/classpath/javax/naming/CompositeName.java
+++ b/libjava/classpath/javax/naming/CompositeName.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.naming;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -85,7 +87,7 @@ public class CompositeName implements Name, Cloneable, Serializable
final char no_quote = 'x'; // Use 'x' to mean no quoting.
char quote = no_quote;
boolean escaped = false;
- StringBuffer new_element = new StringBuffer ();
+ StringBuilder new_element = new StringBuilder ();
for (int i = 0; i < n.length (); ++i)
{
char c = n.charAt (i);
@@ -294,7 +296,7 @@ public class CompositeName implements Name, Cloneable, Serializable
public String toString ()
{
- StringBuffer result = new StringBuffer ();
+ CPStringBuilder result = new CPStringBuilder ();
for (int i = 0; i < elts.size (); ++i)
{
// For simplicity we choose to always quote using escapes and
diff --git a/libjava/classpath/javax/naming/CompoundName.java b/libjava/classpath/javax/naming/CompoundName.java
index f345d3e..26b44c1 100644
--- a/libjava/classpath/javax/naming/CompoundName.java
+++ b/libjava/classpath/javax/naming/CompoundName.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.naming;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -95,7 +97,7 @@ public class CompoundName implements Name, Cloneable, Serializable
mySyntax = syntax;
initializeSyntax ();
- StringBuffer new_element = new StringBuffer ();
+ StringBuilder new_element = new StringBuilder ();
int i = 0;
// QUOTE==null means no quoting right now. When it is set it is
// the value of the closing quote.
@@ -376,7 +378,7 @@ public class CompoundName implements Name, Cloneable, Serializable
public String toString ()
{
- StringBuffer result = new StringBuffer ();
+ CPStringBuilder result = new CPStringBuilder ();
int size = elts.size ();
for (int i = 0; i < size; ++i)
{
diff --git a/libjava/classpath/javax/naming/NamingException.java b/libjava/classpath/javax/naming/NamingException.java
index dbe1e37..7a5c35e 100644
--- a/libjava/classpath/javax/naming/NamingException.java
+++ b/libjava/classpath/javax/naming/NamingException.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.naming;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.PrintStream;
import java.io.PrintWriter;
@@ -237,7 +239,7 @@ public class NamingException extends Exception
*/
public String toString(boolean objectInfo)
{
- StringBuffer sb = new StringBuffer(super.toString());
+ CPStringBuilder sb = new CPStringBuilder(super.toString());
Throwable cause = getRootCause();
if (cause != null)
{
diff --git a/libjava/classpath/javax/naming/spi/NamingManager.java b/libjava/classpath/javax/naming/spi/NamingManager.java
index 3dfba0f..cc8d46f 100644
--- a/libjava/classpath/javax/naming/spi/NamingManager.java
+++ b/libjava/classpath/javax/naming/spi/NamingManager.java
@@ -41,6 +41,8 @@ package javax.naming.spi;
import gnu.classpath.VMStackWalker;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Enumeration;
import java.util.Hashtable;
import java.util.StringTokenizer;
@@ -197,7 +199,7 @@ public class NamingManager
// The final default location, as specified in the documentation.
String finalPrefix = "com.sun.jndi.url";
- StringBuffer allPrefixes = new StringBuffer();
+ CPStringBuilder allPrefixes = new CPStringBuilder();
String prefixes;
if (environment != null)
diff --git a/libjava/classpath/javax/security/auth/x500/X500Principal.java b/libjava/classpath/javax/security/auth/x500/X500Principal.java
index d78b0d3..0a1e8c6 100644
--- a/libjava/classpath/javax/security/auth/x500/X500Principal.java
+++ b/libjava/classpath/javax/security/auth/x500/X500Principal.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.security.auth.x500;
+import gnu.java.lang.CPStringBuilder;
+
import gnu.java.security.OID;
import gnu.java.security.der.DER;
import gnu.java.security.der.DERReader;
@@ -200,7 +202,7 @@ public final class X500Principal implements Principal, Serializable
boolean canon = CANONICAL.equalsIgnoreCase (format);
if (! (rfc2253 || rfc1779 || canon))
throw new IllegalArgumentException ("unsupported format " + format);
- StringBuffer str = new StringBuffer();
+ CPStringBuilder str = new CPStringBuilder();
for (Iterator it = components.iterator(); it.hasNext(); )
{
Map m = (Map) it.next();
@@ -323,7 +325,7 @@ public final class X500Principal implements Principal, Serializable
private String readAttributeType(Reader in) throws IOException
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
int ch;
while ((ch = in.read()) != '=')
{
@@ -345,7 +347,7 @@ public final class X500Principal implements Principal, Serializable
private String readAttributeValue(Reader in) throws IOException
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
int ch = in.read();
if (ch == '#')
{
@@ -518,7 +520,7 @@ public final class X500Principal implements Principal, Serializable
private static String compressWS(String str)
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
char lastChar = 0;
for (int i = 0; i < str.length(); i++)
{
diff --git a/libjava/classpath/javax/security/sasl/SaslException.java b/libjava/classpath/javax/security/sasl/SaslException.java
index 89764bb..f4407e7 100644
--- a/libjava/classpath/javax/security/sasl/SaslException.java
+++ b/libjava/classpath/javax/security/sasl/SaslException.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.security.sasl;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
@@ -178,7 +180,7 @@ public class SaslException extends IOException implements Serializable
*/
public String toString()
{
- StringBuffer sb = new StringBuffer(this.getClass().getName())
+ CPStringBuilder sb = new CPStringBuilder(this.getClass().getName())
.append(": ").append(super.toString());
if (_exception != null)
sb.append("; caused by: ").append(_exception.toString());
diff --git a/libjava/classpath/javax/sound/sampled/AudioFormat.java b/libjava/classpath/javax/sound/sampled/AudioFormat.java
index 7b6ebc4..1f31c99 100644
--- a/libjava/classpath/javax/sound/sampled/AudioFormat.java
+++ b/libjava/classpath/javax/sound/sampled/AudioFormat.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.sound.sampled;
+import gnu.java.lang.CPStringBuilder;
+
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
@@ -329,7 +331,7 @@ public class AudioFormat
*/
public String toString()
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
// usually at least encoding should be somewhat specified
result.append(encoding);
diff --git a/libjava/classpath/javax/sound/sampled/CompoundControl.java b/libjava/classpath/javax/sound/sampled/CompoundControl.java
index 057bdfd..556c805 100644
--- a/libjava/classpath/javax/sound/sampled/CompoundControl.java
+++ b/libjava/classpath/javax/sound/sampled/CompoundControl.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.sound.sampled;
+import gnu.java.lang.CPStringBuilder;
+
/**
* A compound control provides control over several other controls.
* @since 1.3
@@ -88,7 +90,7 @@ public abstract class CompoundControl extends Control
*/
public String toString()
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
result.append(super.toString());
result.append(": ");
for (int i = 0; i < memberControls.length; ++i)
diff --git a/libjava/classpath/javax/sound/sampled/DataLine.java b/libjava/classpath/javax/sound/sampled/DataLine.java
index b7cb70e..4482c98 100644
--- a/libjava/classpath/javax/sound/sampled/DataLine.java
+++ b/libjava/classpath/javax/sound/sampled/DataLine.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.sound.sampled;
+import gnu.java.lang.CPStringBuilder;
+
/**
* The DataLine interface adds data-related functionality to the Line
* interface. For example, it adds methods to start and stop the data
@@ -180,7 +182,7 @@ public interface DataLine extends Line
*/
public String toString()
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
result.append("formats: [");
for (int i = 0; i < formats.length; ++i)
{
diff --git a/libjava/classpath/javax/swing/AbstractButton.java b/libjava/classpath/javax/swing/AbstractButton.java
index cb0f458..8764f6f 100644
--- a/libjava/classpath/javax/swing/AbstractButton.java
+++ b/libjava/classpath/javax/swing/AbstractButton.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Image;
@@ -2445,7 +2447,7 @@ public abstract class AbstractButton extends JComponent
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(super.paramString());
sb.append(",defaultIcon=");
if (getIcon() != null)
diff --git a/libjava/classpath/javax/swing/JButton.java b/libjava/classpath/javax/swing/JButton.java
index 878cfa6..705a863 100644
--- a/libjava/classpath/javax/swing/JButton.java
+++ b/libjava/classpath/javax/swing/JButton.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import javax.accessibility.Accessible;
import javax.accessibility.AccessibleContext;
import javax.accessibility.AccessibleRole;
@@ -225,7 +227,7 @@ public class JButton extends AbstractButton
String superParam = super.paramString();
// 41 is the maximum number of chars which may be needed.
- StringBuffer sb = new StringBuffer(41);
+ CPStringBuilder sb = new CPStringBuilder(41);
sb.append(",defaultButton=").append(isDefaultButton());
sb.append(",defaultCapable=").append(defaultCapable);
diff --git a/libjava/classpath/javax/swing/JComboBox.java b/libjava/classpath/javax/swing/JComboBox.java
index fa6941c..74ff315 100644
--- a/libjava/classpath/javax/swing/JComboBox.java
+++ b/libjava/classpath/javax/swing/JComboBox.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.ItemSelectable;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
@@ -1104,7 +1106,7 @@ public class JComboBox extends JComponent implements ItemSelectable,
protected String paramString()
{
String superParamStr = super.paramString();
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(",isEditable=").append(isEditable());
sb.append(",lightWeightPopupEnabled=").append(isLightWeightPopupEnabled());
sb.append(",maximumRowCount=").append(getMaximumRowCount());
diff --git a/libjava/classpath/javax/swing/JComponent.java b/libjava/classpath/javax/swing/JComponent.java
index a22a92e..f712178 100644
--- a/libjava/classpath/javax/swing/JComponent.java
+++ b/libjava/classpath/javax/swing/JComponent.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.applet.Applet;
import java.awt.AWTEvent;
import java.awt.Color;
@@ -2405,7 +2407,7 @@ public abstract class JComponent extends Container implements Serializable
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(super.paramString());
sb.append(",alignmentX=").append(getAlignmentX());
sb.append(",alignmentY=").append(getAlignmentY());
diff --git a/libjava/classpath/javax/swing/JDesktopPane.java b/libjava/classpath/javax/swing/JDesktopPane.java
index 454870e..b068a29 100644
--- a/libjava/classpath/javax/swing/JDesktopPane.java
+++ b/libjava/classpath/javax/swing/JDesktopPane.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Component;
import java.beans.PropertyVetoException;
@@ -306,7 +308,7 @@ public class JDesktopPane extends JLayeredPane implements Accessible
protected String paramString()
{
String superParamStr = super.paramString();
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(",isOptimizedDrawingPossible=");
sb.append(isOptimizedDrawingEnabled());
sb.append(",desktopManager=");
diff --git a/libjava/classpath/javax/swing/JFileChooser.java b/libjava/classpath/javax/swing/JFileChooser.java
index a508b8f..b7615a5 100644
--- a/libjava/classpath/javax/swing/JFileChooser.java
+++ b/libjava/classpath/javax/swing/JFileChooser.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Component;
import java.awt.Frame;
import java.awt.GraphicsEnvironment;
@@ -1543,7 +1545,7 @@ public class JFileChooser extends JComponent implements Accessible
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer(super.paramString());
+ CPStringBuilder sb = new CPStringBuilder(super.paramString());
sb.append(",approveButtonText=");
if (approveButtonText != null)
sb.append(approveButtonText);
diff --git a/libjava/classpath/javax/swing/JFrame.java b/libjava/classpath/javax/swing/JFrame.java
index e54d453..0c956b3 100644
--- a/libjava/classpath/javax/swing/JFrame.java
+++ b/libjava/classpath/javax/swing/JFrame.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.AWTEvent;
import java.awt.BorderLayout;
import java.awt.Component;
@@ -341,7 +343,7 @@ public class JFrame extends Frame
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer(super.paramString());
+ CPStringBuilder sb = new CPStringBuilder(super.paramString());
sb.append(",defaultCloseOperation=");
sb.append(SwingUtilities.convertWindowConstantToString(
getDefaultCloseOperation()));
diff --git a/libjava/classpath/javax/swing/JLabel.java b/libjava/classpath/javax/swing/JLabel.java
index 721287b..2bbd1ee 100644
--- a/libjava/classpath/javax/swing/JLabel.java
+++ b/libjava/classpath/javax/swing/JLabel.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Component;
import java.awt.Font;
import java.awt.FontMetrics;
@@ -555,7 +557,7 @@ public class JLabel extends JComponent implements Accessible, SwingConstants
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer(super.paramString());
+ CPStringBuilder sb = new CPStringBuilder(super.paramString());
sb.append(",defaultIcon=");
if (icon != null)
sb.append(icon);
diff --git a/libjava/classpath/javax/swing/JList.java b/libjava/classpath/javax/swing/JList.java
index ff1b239..bd74406 100644
--- a/libjava/classpath/javax/swing/JList.java
+++ b/libjava/classpath/javax/swing/JList.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Color;
import java.awt.Component;
import java.awt.ComponentOrientation;
@@ -2481,7 +2483,7 @@ public class JList extends JComponent implements Accessible, Scrollable
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer(super.paramString());
+ CPStringBuilder sb = new CPStringBuilder(super.paramString());
sb.append(",fixedCellHeight=").append(getFixedCellHeight());
sb.append(",fixedCellWidth=").append(getFixedCellWidth());
sb.append(",selectionBackground=");
diff --git a/libjava/classpath/javax/swing/JMenuBar.java b/libjava/classpath/javax/swing/JMenuBar.java
index 73b409e..030fc4c 100644
--- a/libjava/classpath/javax/swing/JMenuBar.java
+++ b/libjava/classpath/javax/swing/JMenuBar.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Component;
import java.awt.Graphics;
import java.awt.Insets;
@@ -481,7 +483,7 @@ public class JMenuBar extends JComponent implements Accessible, MenuElement
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(super.paramString());
sb.append(",margin=");
if (getMargin() != null)
diff --git a/libjava/classpath/javax/swing/JPopupMenu.java b/libjava/classpath/javax/swing/JPopupMenu.java
index 1ae8ada..ac1a9eb 100644
--- a/libjava/classpath/javax/swing/JPopupMenu.java
+++ b/libjava/classpath/javax/swing/JPopupMenu.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Component;
import java.awt.Dimension;
import java.awt.Insets;
@@ -767,7 +769,7 @@ public class JPopupMenu extends JComponent implements Accessible, MenuElement
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(super.paramString());
sb.append(",label=");
if (getLabel() != null)
diff --git a/libjava/classpath/javax/swing/JProgressBar.java b/libjava/classpath/javax/swing/JProgressBar.java
index ed2d008..b20b02a 100644
--- a/libjava/classpath/javax/swing/JProgressBar.java
+++ b/libjava/classpath/javax/swing/JProgressBar.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Graphics;
import java.beans.PropertyChangeEvent;
@@ -786,7 +788,7 @@ public class JProgressBar extends JComponent implements SwingConstants,
protected String paramString()
{
String superParamStr = super.paramString();
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(",orientation=");
if (orientation == HORIZONTAL)
sb.append("HORIZONTAL");
diff --git a/libjava/classpath/javax/swing/JScrollBar.java b/libjava/classpath/javax/swing/JScrollBar.java
index f55feb3..371bb60 100644
--- a/libjava/classpath/javax/swing/JScrollBar.java
+++ b/libjava/classpath/javax/swing/JScrollBar.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Adjustable;
import java.awt.Dimension;
import java.awt.event.AdjustmentEvent;
@@ -671,7 +673,7 @@ public class JScrollBar extends JComponent implements Adjustable, Accessible
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer(super.paramString());
+ CPStringBuilder sb = new CPStringBuilder(super.paramString());
sb.append(",blockIncrement=").append(blockIncrement);
sb.append(",orientation=");
if (this.orientation == JScrollBar.HORIZONTAL)
diff --git a/libjava/classpath/javax/swing/JSlider.java b/libjava/classpath/javax/swing/JSlider.java
index 948a962..979707a 100644
--- a/libjava/classpath/javax/swing/JSlider.java
+++ b/libjava/classpath/javax/swing/JSlider.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.MenuContainer;
import java.awt.image.ImageObserver;
import java.beans.PropertyChangeEvent;
@@ -1104,7 +1106,7 @@ public class JSlider extends JComponent implements SwingConstants, Accessible,
protected String paramString()
{
String superParamStr = super.paramString();
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(",isInverted=").append(getInverted());
sb.append(",majorTickSpacing=").append(getMajorTickSpacing());
sb.append(",minorTickSpacing=").append(getMinorTickSpacing());
diff --git a/libjava/classpath/javax/swing/JSplitPane.java b/libjava/classpath/javax/swing/JSplitPane.java
index fcdc1c0..5b6ec15 100644
--- a/libjava/classpath/javax/swing/JSplitPane.java
+++ b/libjava/classpath/javax/swing/JSplitPane.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Component;
import java.awt.Graphics;
import java.beans.PropertyChangeEvent;
@@ -597,7 +599,7 @@ public class JSplitPane extends JComponent implements Accessible
{
// FIXME: the next line can be restored once PR27208 is fixed
String superParamStr = ""; //super.paramString();
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append(",continuousLayout=").append(isContinuousLayout());
sb.append(",dividerSize=").append(getDividerSize());
sb.append(",lastDividerLocation=").append(getLastDividerLocation());
diff --git a/libjava/classpath/javax/swing/JTabbedPane.java b/libjava/classpath/javax/swing/JTabbedPane.java
index c7244bf..79521be3 100644
--- a/libjava/classpath/javax/swing/JTabbedPane.java
+++ b/libjava/classpath/javax/swing/JTabbedPane.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Color;
import java.awt.Component;
import java.awt.Point;
@@ -1692,7 +1694,7 @@ public class JTabbedPane extends JComponent implements Serializable,
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer(super.paramString());
+ CPStringBuilder sb = new CPStringBuilder(super.paramString());
sb.append(",tabPlacement=");
if (tabPlacement == TOP)
sb.append("TOP");
diff --git a/libjava/classpath/javax/swing/JToolBar.java b/libjava/classpath/javax/swing/JToolBar.java
index fe4d2ae..33ebcfc 100644
--- a/libjava/classpath/javax/swing/JToolBar.java
+++ b/libjava/classpath/javax/swing/JToolBar.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Component;
import java.awt.Container;
import java.awt.Dimension;
@@ -766,7 +768,7 @@ public class JToolBar extends JComponent implements SwingConstants, Accessible
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer(super.paramString());
+ CPStringBuilder sb = new CPStringBuilder(super.paramString());
sb.append(",floatable=").append(floatable);
sb.append(",margin=");
if (margin != null)
diff --git a/libjava/classpath/javax/swing/JToolTip.java b/libjava/classpath/javax/swing/JToolTip.java
index 16bdd2d..f59ec95 100644
--- a/libjava/classpath/javax/swing/JToolTip.java
+++ b/libjava/classpath/javax/swing/JToolTip.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.AWTEvent;
import java.beans.PropertyChangeEvent;
@@ -179,7 +181,7 @@ public class JToolTip extends JComponent implements Accessible
*/
protected String paramString()
{
- StringBuffer sb = new StringBuffer(super.paramString());
+ CPStringBuilder sb = new CPStringBuilder(super.paramString());
sb.append(",tiptext=");
if (text != null)
sb.append(text);
diff --git a/libjava/classpath/javax/swing/UIManager.java b/libjava/classpath/javax/swing/UIManager.java
index 3b1b3f7..0369b65 100644
--- a/libjava/classpath/javax/swing/UIManager.java
+++ b/libjava/classpath/javax/swing/UIManager.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Font;
@@ -107,7 +109,7 @@ public class UIManager implements Serializable
*/
public String toString()
{
- StringBuffer s = new StringBuffer();
+ CPStringBuilder s = new CPStringBuilder();
s.append(getClass().getName());
s.append('[');
s.append(getName());
diff --git a/libjava/classpath/javax/swing/event/EventListenerList.java b/libjava/classpath/javax/swing/event/EventListenerList.java
index 1568039..8c76f7f 100644
--- a/libjava/classpath/javax/swing/event/EventListenerList.java
+++ b/libjava/classpath/javax/swing/event/EventListenerList.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.swing.event;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
@@ -295,7 +297,7 @@ public class EventListenerList
*/
public String toString()
{
- StringBuffer buf = new StringBuffer("EventListenerList: ");
+ CPStringBuilder buf = new CPStringBuilder("EventListenerList: ");
buf.append(listenerList.length / 2);
buf.append(" listeners: ");
for (int i = 0; i < listenerList.length; i += 2)
diff --git a/libjava/classpath/javax/swing/table/AbstractTableModel.java b/libjava/classpath/javax/swing/table/AbstractTableModel.java
index 66b6a074..743e5d4 100644
--- a/libjava/classpath/javax/swing/table/AbstractTableModel.java
+++ b/libjava/classpath/javax/swing/table/AbstractTableModel.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing.table;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
import java.util.EventListener;
@@ -80,7 +82,7 @@ public abstract class AbstractTableModel implements TableModel, Serializable
*/
public String getColumnName(int columnIndex)
{
- StringBuffer buffer = new StringBuffer();
+ CPStringBuilder buffer = new CPStringBuilder();
while (columnIndex >= 0)
{
buffer.insert(0, (char) ('A' + columnIndex % 26));
diff --git a/libjava/classpath/javax/swing/text/AbstractDocument.java b/libjava/classpath/javax/swing/text/AbstractDocument.java
index 72178f8..29b20b3 100644
--- a/libjava/classpath/javax/swing/text/AbstractDocument.java
+++ b/libjava/classpath/javax/swing/text/AbstractDocument.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.font.TextAttribute;
import java.io.PrintStream;
import java.io.Serializable;
@@ -2013,7 +2015,7 @@ public abstract class AbstractDocument implements Document, Serializable
*/
public void dump(PrintStream stream, int indent)
{
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
for (int i = 0; i < indent; ++i)
b.append(' ');
b.append('<');
diff --git a/libjava/classpath/javax/swing/text/DefaultEditorKit.java b/libjava/classpath/javax/swing/text/DefaultEditorKit.java
index aa69dec..0d999a3 100644
--- a/libjava/classpath/javax/swing/text/DefaultEditorKit.java
+++ b/libjava/classpath/javax/swing/text/DefaultEditorKit.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Toolkit;
import java.awt.event.ActionEvent;
@@ -1634,7 +1636,7 @@ public class DefaultEditorKit extends EditorKit
BufferedReader reader = new BufferedReader(in);
String line;
- StringBuffer content = new StringBuffer();
+ CPStringBuilder content = new CPStringBuilder();
while ((line = reader.readLine()) != null)
{
diff --git a/libjava/classpath/javax/swing/text/DefaultStyledDocument.java b/libjava/classpath/javax/swing/text/DefaultStyledDocument.java
index 341579e..8c70a8a 100644
--- a/libjava/classpath/javax/swing/text/DefaultStyledDocument.java
+++ b/libjava/classpath/javax/swing/text/DefaultStyledDocument.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.Color;
import java.awt.Font;
import java.io.Serializable;
@@ -374,7 +376,7 @@ public class DefaultStyledDocument extends AbstractDocument implements
*/
public String toString()
{
- StringBuilder b = new StringBuilder();
+ CPStringBuilder b = new CPStringBuilder();
switch (type)
{
case StartTagType:
@@ -2420,7 +2422,7 @@ public class DefaultStyledDocument extends AbstractDocument implements
writeLock();
// First we collect the content to be inserted.
- StringBuffer contentBuffer = new StringBuffer();
+ CPStringBuilder contentBuffer = new CPStringBuilder();
for (int i = 0; i < data.length; i++)
{
// Collect all inserts into one so we can get the correct
diff --git a/libjava/classpath/javax/swing/text/JTextComponent.java b/libjava/classpath/javax/swing/text/JTextComponent.java
index 8e70fe2..24035e3 100644
--- a/libjava/classpath/javax/swing/text/JTextComponent.java
+++ b/libjava/classpath/javax/swing/text/JTextComponent.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.awt.AWTEvent;
import java.awt.Color;
import java.awt.Container;
@@ -2016,7 +2018,7 @@ public abstract class JTextComponent extends JComponent
d.putProperty(Document.StreamDescriptionProperty, streamDescription);
}
- StringBuffer b = new StringBuffer();
+ CPStringBuilder b = new CPStringBuilder();
int c;
// Read till -1 (EOF).
diff --git a/libjava/classpath/javax/swing/text/MaskFormatter.java b/libjava/classpath/javax/swing/text/MaskFormatter.java
index 581cceb..4ebf65b 100644
--- a/libjava/classpath/javax/swing/text/MaskFormatter.java
+++ b/libjava/classpath/javax/swing/text/MaskFormatter.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.text.ParseException;
import javax.swing.JFormattedTextField;
@@ -311,7 +313,7 @@ public class MaskFormatter extends DefaultFormatter
private String convertStringToValue(String value)
throws ParseException
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
char valueChar;
boolean isPlaceHolder;
@@ -447,7 +449,7 @@ public class MaskFormatter extends DefaultFormatter
private String convertValueToString(String value)
throws ParseException
{
- StringBuffer result = new StringBuffer();
+ CPStringBuilder result = new CPStringBuilder();
char valueChar;
boolean isPlaceHolder;
diff --git a/libjava/classpath/javax/swing/text/TabSet.java b/libjava/classpath/javax/swing/text/TabSet.java
index 0f2c8c7..c08a650 100644
--- a/libjava/classpath/javax/swing/text/TabSet.java
+++ b/libjava/classpath/javax/swing/text/TabSet.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.swing.text;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
/**
@@ -194,7 +196,7 @@ public class TabSet implements Serializable
*/
public String toString()
{
- StringBuffer sb = new StringBuffer();
+ CPStringBuilder sb = new CPStringBuilder();
sb.append("[ ");
for (int i = 0; i < tabs.length; ++i)
{
diff --git a/libjava/classpath/javax/swing/text/html/CSSParser.java b/libjava/classpath/javax/swing/text/html/CSSParser.java
index 54a16bc..d49ac3a 100644
--- a/libjava/classpath/javax/swing/text/html/CSSParser.java
+++ b/libjava/classpath/javax/swing/text/html/CSSParser.java
@@ -163,11 +163,6 @@ class CSSParser
private int pushedChar;
/**
- * Temporary place to hold identifiers.
- */
- private StringBuffer unitBuffer;
-
- /**
* Used to indicate blocks.
*/
private int[] unitStack;
@@ -212,7 +207,6 @@ class CSSParser
*/
CSSParser()
{
- unitBuffer = new StringBuffer();
tokenBuffer = new char[10];
}
diff --git a/libjava/classpath/javax/swing/text/html/HTMLWriter.java b/libjava/classpath/javax/swing/text/html/HTMLWriter.java
index 44119c7..6cc23df 100644
--- a/libjava/classpath/javax/swing/text/html/HTMLWriter.java
+++ b/libjava/classpath/javax/swing/text/html/HTMLWriter.java
@@ -37,6 +37,8 @@ exception statement from your version. */
package javax.swing.text.html;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.IOException;
import java.io.Writer;
@@ -574,7 +576,7 @@ public class HTMLWriter
protected void output(char[] chars, int off, int len)
throws IOException
{
- StringBuffer strBuffer = new StringBuffer();
+ CPStringBuilder strBuffer = new CPStringBuilder();
for (int i = 0; i < chars.length; i++)
{
@@ -1081,4 +1083,4 @@ public class HTMLWriter
return ret_str;
} // private String escapeCharHtmlEntity(char param_char)
-} // public class HTMLWriter extends AbstractWriter \ No newline at end of file
+} // public class HTMLWriter extends AbstractWriter
diff --git a/libjava/classpath/javax/swing/text/html/StyleSheet.java b/libjava/classpath/javax/swing/text/html/StyleSheet.java
index 01f19fd..08578c8 100644
--- a/libjava/classpath/javax/swing/text/html/StyleSheet.java
+++ b/libjava/classpath/javax/swing/text/html/StyleSheet.java
@@ -182,7 +182,7 @@ public class StyleSheet extends StyleContext
*/
private class CSSStyle
extends SimpleAttributeSet
- implements Style, Comparable
+ implements Style, Comparable<CSSStyle>
{
static final int PREC_UA = 0;
@@ -229,9 +229,8 @@ public class StyleSheet extends StyleContext
* Sorts the rule according to the style's precedence and the
* selectors specificity.
*/
- public int compareTo(Object o)
+ public int compareTo(CSSStyle other)
{
- CSSStyle other = (CSSStyle) o;
return other.precedence + other.selector.getSpecificity()
- precedence - selector.getSpecificity();
}
@@ -247,18 +246,18 @@ public class StyleSheet extends StyleContext
/**
* The linked style sheets stored.
*/
- private ArrayList linked;
+ private ArrayList<StyleSheet> linked;
/**
* Maps element names (selectors) to AttributSet (the corresponding style
* information).
*/
- ArrayList css = new ArrayList();
+ ArrayList<CSSStyle> css = new ArrayList<CSSStyle>();
/**
* Maps selectors to their resolved styles.
*/
- private HashMap resolvedStyles;
+ private HashMap<String,Style> resolvedStyles;
/**
* Constructs a StyleSheet.
@@ -267,7 +266,7 @@ public class StyleSheet extends StyleContext
{
super();
baseFontSize = 4; // Default font size from CSS
- resolvedStyles = new HashMap();
+ resolvedStyles = new HashMap<String,Style>();
}
/**
@@ -283,7 +282,7 @@ public class StyleSheet extends StyleContext
{
// Create list of the element and all of its parents, starting
// with the bottommost element.
- ArrayList path = new ArrayList();
+ ArrayList<Element> path = new ArrayList<Element>();
Element el;
AttributeSet atts;
for (el = e; el != null; el = el.getParentElement())
@@ -295,7 +294,7 @@ public class StyleSheet extends StyleContext
// We append the actual element after this loop.
for (int i = count - 1; i > 0; i--)
{
- el = (Element) path.get(i);
+ el = path.get(i);
atts = el.getAttributes();
Object name = atts.getAttribute(StyleConstants.NameAttribute);
selector.append(name.toString());
@@ -322,7 +321,7 @@ public class StyleSheet extends StyleContext
selector.append(' ');
}
selector.append(t.toString());
- el = (Element) path.get(0);
+ el = path.get(0);
atts = el.getAttributes();
// For leaf elements, we have to fetch the tag specific attributes.
if (el.isLeaf())
@@ -372,7 +371,7 @@ public class StyleSheet extends StyleContext
*/
private Style getResolvedStyle(String selector, List path, HTML.Tag tag)
{
- Style style = (Style) resolvedStyles.get(selector);
+ Style style = resolvedStyles.get(selector);
if (style == null)
style = resolveStyle(selector, path, tag);
return style;
@@ -439,11 +438,9 @@ public class StyleSheet extends StyleContext
{
// FIXME: This style resolver is not correct. But it works good enough for
// the default.css.
- int count = tags.length;
- ArrayList styles = new ArrayList();
- for (Iterator i = css.iterator(); i.hasNext();)
+ ArrayList<CSSStyle> styles = new ArrayList<CSSStyle>();
+ for (CSSStyle style : css)
{
- CSSStyle style = (CSSStyle) i.next();
if (style.selector.matches(tags, attributes))
styles.add(style);
}
@@ -453,10 +450,10 @@ public class StyleSheet extends StyleContext
{
for (int i = linked.size() - 1; i >= 0; i--)
{
- StyleSheet ss = (StyleSheet) linked.get(i);
+ StyleSheet ss = linked.get(i);
for (int j = ss.css.size() - 1; j >= 0; j--)
{
- CSSStyle style = (CSSStyle) ss.css.get(j);
+ CSSStyle style = ss.css.get(j);
if (style.selector.matches(tags, attributes))
styles.add(style);
}
@@ -615,7 +612,7 @@ public class StyleSheet extends StyleContext
if (linked != null)
{
linkedSS = new StyleSheet[linked.size()];
- linkedSS = (StyleSheet[]) linked.toArray(linkedSS);
+ linkedSS = linked.toArray(linkedSS);
}
else
{
@@ -1074,7 +1071,7 @@ public class StyleSheet extends StyleContext
*/
public void setBaseFontSize(String size)
{
- size.trim();
+ size = size.trim();
int temp = 0;
try
{
@@ -1446,8 +1443,8 @@ public class StyleSheet extends StyleContext
*/
private Map attributeSetToMap(AttributeSet atts)
{
- HashMap map = new HashMap();
- Enumeration keys = atts.getAttributeNames();
+ HashMap<String,String> map = new HashMap<String,String>();
+ Enumeration<?> keys = atts.getAttributeNames();
while (keys.hasMoreElements())
{
Object key = keys.nextElement();
diff --git a/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java b/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java
index 25db89f..8838646 100644
--- a/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java
+++ b/libjava/classpath/javax/swing/text/html/ViewAttributeSet.java
@@ -83,7 +83,7 @@ class ViewAttributeSet
{
styleSheet = ss;
view = v;
- ArrayList atts = new ArrayList();
+ ArrayList<AttributeSet> atts = new ArrayList<AttributeSet>();
Element el = v.getElement();
AttributeSet elAtts = el.getAttributes();
@@ -93,7 +93,7 @@ class ViewAttributeSet
if (el.isLeaf())
{
- Enumeration n = elAtts.getAttributeNames();
+ Enumeration<?> n = elAtts.getAttributeNames();
while (n.hasMoreElements())
{
Object key = n.nextElement();
@@ -115,7 +115,7 @@ class ViewAttributeSet
}
AttributeSet[] atts1 = new AttributeSet[atts.size()];
- atts1 = (AttributeSet[]) atts.toArray(atts1);
+ atts1 = atts.toArray(atts1);
init(atts1);
}
diff --git a/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java b/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java
index a1afe78..34a70c1 100644
--- a/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java
+++ b/libjava/classpath/javax/swing/tree/DefaultMutableTreeNode.java
@@ -68,7 +68,7 @@ public class DefaultMutableTreeNode
* children.
*/
public static final Enumeration<TreeNode> EMPTY_ENUMERATION =
- EmptyEnumeration.getInstance();
+ new EmptyEnumeration<TreeNode>();
/**
* The parent of this node (possibly <code>null</code>).
diff --git a/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java b/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java
index 2bb0d00..b2806f2 100644
--- a/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java
+++ b/libjava/classpath/javax/swing/tree/DefaultTreeSelectionModel.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.swing.tree;
+import gnu.java.lang.CPStringBuilder;
+
import java.beans.PropertyChangeListener;
import java.io.IOException;
import java.io.ObjectInputStream;
@@ -224,7 +226,7 @@ public class DefaultTreeSelectionModel
return "[selection empty]";
else
{
- StringBuffer b = new StringBuffer("selected rows: [");
+ CPStringBuilder b = new CPStringBuilder("selected rows: [");
for (int i = 0; i < selection.length; i++)
{
b.append(getRow(selection[i]));
diff --git a/libjava/classpath/javax/tools/FileObject.java b/libjava/classpath/javax/tools/FileObject.java
index 56ecaba..a1d65c6 100644
--- a/libjava/classpath/javax/tools/FileObject.java
+++ b/libjava/classpath/javax/tools/FileObject.java
@@ -60,7 +60,7 @@ public interface FileObject
*
* @return a URI that represents this file object
*/
- URI toURI();
+ URI toUri();
/**
* Returns a name for this file object. The exact name is implementation
@@ -99,6 +99,8 @@ public interface FileObject
/**
* Opens this file for reading and returns a reader.
*
+ * @param ignoreEncodingErrors <code>true</code> when encoding errors should be ignored
+ * <code>false</code> otherwise
* @return a reader for reading this file object
*
* @throws IOException if an I/O error occurs
@@ -107,7 +109,7 @@ public interface FileObject
* @throws UnsupportedOperationException if this kind of file does not allow
* character reading
*/
- Reader openReader() throws IOException;
+ Reader openReader(boolean ignoreEncodingErrors) throws IOException;
/**
* Returns the character content of the file, if available. Any byte
diff --git a/libjava/classpath/javax/xml/datatype/DatatypeFactory.java b/libjava/classpath/javax/xml/datatype/DatatypeFactory.java
index 06f465c..386d5b8 100644
--- a/libjava/classpath/javax/xml/datatype/DatatypeFactory.java
+++ b/libjava/classpath/javax/xml/datatype/DatatypeFactory.java
@@ -44,7 +44,7 @@ import java.math.BigInteger;
import java.util.GregorianCalendar;
import java.util.Iterator;
import java.util.Properties;
-import gnu.classpath.ServiceFactory;
+import java.util.ServiceLoader;
/**
* Factory class to create new datatype objects mapping XML to and from Java
@@ -97,11 +97,11 @@ public abstract class DatatypeFactory
return (DatatypeFactory) Class.forName(className).newInstance();
}
// 3. services
- Iterator i = ServiceFactory.lookupProviders(DatatypeFactory.class);
+ Iterator<DatatypeFactory> i = ServiceLoader.load(DatatypeFactory.class).iterator();
if (i.hasNext())
- return (DatatypeFactory) i.next();
+ return i.next();
// 4. fallback
- Class t = Class.forName(DATATYPEFACTORY_IMPLEMENTATION_CLASS);
+ Class<?> t = Class.forName(DATATYPEFACTORY_IMPLEMENTATION_CLASS);
return (DatatypeFactory) t.newInstance();
}
catch (Exception e)
diff --git a/libjava/classpath/javax/xml/namespace/NamespaceContext.java b/libjava/classpath/javax/xml/namespace/NamespaceContext.java
index 1bcb850..b9722a4 100644
--- a/libjava/classpath/javax/xml/namespace/NamespaceContext.java
+++ b/libjava/classpath/javax/xml/namespace/NamespaceContext.java
@@ -61,6 +61,7 @@ public interface NamespaceContext
/**
* Returns all the prefixes currently bound to the given namespace URI.
*/
+ @SuppressWarnings("unchecked")
public Iterator getPrefixes(String namespaceURI);
}
diff --git a/libjava/classpath/javax/xml/namespace/QName.java b/libjava/classpath/javax/xml/namespace/QName.java
index 18dee79..3c75623 100644
--- a/libjava/classpath/javax/xml/namespace/QName.java
+++ b/libjava/classpath/javax/xml/namespace/QName.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package javax.xml.namespace;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.Serializable;
import javax.xml.XMLConstants;
@@ -126,7 +128,7 @@ public class QName implements Serializable
{
if (qName == null)
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
if (namespaceURI.length() > 0)
{
buf.append('{');
diff --git a/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java b/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java
index 9312e65..a1350c5 100644
--- a/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java
+++ b/libjava/classpath/javax/xml/parsers/DocumentBuilderFactory.java
@@ -99,7 +99,7 @@ public abstract class DocumentBuilderFactory
{
try
{
- Class t = (loader != null) ? loader.loadClass(className) :
+ Class<?> t = (loader != null) ? loader.loadClass(className) :
Class.forName(className);
return (DocumentBuilderFactory) t.newInstance();
}
diff --git a/libjava/classpath/javax/xml/parsers/SAXParserFactory.java b/libjava/classpath/javax/xml/parsers/SAXParserFactory.java
index 549fe4b..9f8f7ba 100644
--- a/libjava/classpath/javax/xml/parsers/SAXParserFactory.java
+++ b/libjava/classpath/javax/xml/parsers/SAXParserFactory.java
@@ -99,7 +99,7 @@ public abstract class SAXParserFactory
{
try
{
- Class t = (loader != null) ? loader.loadClass(className) :
+ Class<?> t = (loader != null) ? loader.loadClass(className) :
Class.forName(className);
return (SAXParserFactory) t.newInstance();
}
diff --git a/libjava/classpath/javax/xml/stream/XMLEventFactory.java b/libjava/classpath/javax/xml/stream/XMLEventFactory.java
index cb850ba..30e1607 100644
--- a/libjava/classpath/javax/xml/stream/XMLEventFactory.java
+++ b/libjava/classpath/javax/xml/stream/XMLEventFactory.java
@@ -116,7 +116,7 @@ public abstract class XMLEventFactory
{
try
{
- Class t = (loader != null) ? loader.loadClass(className) :
+ Class<?> t = (loader != null) ? loader.loadClass(className) :
Class.forName(className);
return (XMLEventFactory) t.newInstance();
}
@@ -217,6 +217,7 @@ public abstract class XMLEventFactory
/**
* Create a start-element event.
*/
+ @SuppressWarnings("unchecked")
public abstract StartElement createStartElement(QName name,
Iterator attributes,
Iterator namespaces);
@@ -231,6 +232,7 @@ public abstract class XMLEventFactory
/**
* Create a start-element event.
*/
+ @SuppressWarnings("unchecked")
public abstract StartElement createStartElement(String prefix,
String namespaceUri,
String localName,
@@ -240,6 +242,7 @@ public abstract class XMLEventFactory
/**
* Create a start-element event.
*/
+ @SuppressWarnings("unchecked")
public abstract StartElement createStartElement(String prefix,
String namespaceUri,
String localName,
@@ -250,6 +253,7 @@ public abstract class XMLEventFactory
/**
* Create an end-element event.
*/
+ @SuppressWarnings("unchecked")
public abstract EndElement createEndElement(QName name,
Iterator namespaces);
@@ -263,6 +267,7 @@ public abstract class XMLEventFactory
/**
* Create an end-element event.
*/
+ @SuppressWarnings("unchecked")
public abstract EndElement createEndElement(String prefix,
String namespaceUri,
String localName,
diff --git a/libjava/classpath/javax/xml/stream/XMLEventReader.java b/libjava/classpath/javax/xml/stream/XMLEventReader.java
index 35ad569..ee0354f 100644
--- a/libjava/classpath/javax/xml/stream/XMLEventReader.java
+++ b/libjava/classpath/javax/xml/stream/XMLEventReader.java
@@ -43,6 +43,7 @@ import javax.xml.stream.events.XMLEvent;
/**
* An XML parser.
*/
+@SuppressWarnings("unchecked")
public interface XMLEventReader
extends Iterator
{
diff --git a/libjava/classpath/javax/xml/stream/XMLInputFactory.java b/libjava/classpath/javax/xml/stream/XMLInputFactory.java
index f88451e..437bf83 100644
--- a/libjava/classpath/javax/xml/stream/XMLInputFactory.java
+++ b/libjava/classpath/javax/xml/stream/XMLInputFactory.java
@@ -229,7 +229,7 @@ public abstract class XMLInputFactory
{
try
{
- Class t = (loader != null) ? loader.loadClass(className) :
+ Class<?> t = (loader != null) ? loader.loadClass(className) :
Class.forName(className);
return (XMLInputFactory) t.newInstance();
}
diff --git a/libjava/classpath/javax/xml/stream/XMLOutputFactory.java b/libjava/classpath/javax/xml/stream/XMLOutputFactory.java
index e4c9dd4..908f84f 100644
--- a/libjava/classpath/javax/xml/stream/XMLOutputFactory.java
+++ b/libjava/classpath/javax/xml/stream/XMLOutputFactory.java
@@ -116,7 +116,7 @@ public abstract class XMLOutputFactory
{
try
{
- Class t = (loader != null) ? loader.loadClass(className) :
+ Class<?> t = (loader != null) ? loader.loadClass(className) :
Class.forName(className);
return (XMLOutputFactory) t.newInstance();
}
diff --git a/libjava/classpath/javax/xml/stream/events/DTD.java b/libjava/classpath/javax/xml/stream/events/DTD.java
index 6c7bcc4..943572e 100644
--- a/libjava/classpath/javax/xml/stream/events/DTD.java
+++ b/libjava/classpath/javax/xml/stream/events/DTD.java
@@ -60,11 +60,13 @@ public interface DTD
/**
* Returns the notations declared in the DTD.
*/
+ @SuppressWarnings("unchecked")
List getNotations();
/**
* Returns the entities declared in the DTD.
*/
+ @SuppressWarnings("unchecked")
List getEntities();
}
diff --git a/libjava/classpath/javax/xml/stream/events/EndElement.java b/libjava/classpath/javax/xml/stream/events/EndElement.java
index 86a2e16..3bde8f8 100644
--- a/libjava/classpath/javax/xml/stream/events/EndElement.java
+++ b/libjava/classpath/javax/xml/stream/events/EndElement.java
@@ -55,6 +55,7 @@ public interface EndElement
/**
* Returns the namespaces that have gone out of scope.
*/
+ @SuppressWarnings("unchecked")
Iterator getNamespaces();
}
diff --git a/libjava/classpath/javax/xml/stream/events/StartElement.java b/libjava/classpath/javax/xml/stream/events/StartElement.java
index a35b3b4..0916368 100644
--- a/libjava/classpath/javax/xml/stream/events/StartElement.java
+++ b/libjava/classpath/javax/xml/stream/events/StartElement.java
@@ -56,11 +56,13 @@ public interface StartElement
/**
* Returns the attributes declared on this element.
*/
+ @SuppressWarnings("unchecked")
Iterator getAttributes();
/**
* Returns the namespaces declared on this element.
*/
+ @SuppressWarnings("unchecked")
Iterator getNamespaces();
/**
diff --git a/libjava/classpath/javax/xml/transform/TransformerException.java b/libjava/classpath/javax/xml/transform/TransformerException.java
index 3d97eda..7a0b5ad 100644
--- a/libjava/classpath/javax/xml/transform/TransformerException.java
+++ b/libjava/classpath/javax/xml/transform/TransformerException.java
@@ -34,8 +34,11 @@ or based on this library. If you modify this library, you may extend
this exception to your version of the library, but you are not
obligated to do so. If you do not wish to do so, delete this
exception statement from your version. */
+
package javax.xml.transform;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.PrintStream;
import java.io.PrintWriter;
@@ -179,7 +182,7 @@ public class TransformerException
String systemId = locator.getSystemId();
int lineNumber = locator.getLineNumber();
int columnNumber = locator.getColumnNumber();
- StringBuffer buffer = new StringBuffer ();
+ CPStringBuilder buffer = new CPStringBuilder ();
if (publicId != null)
{
buffer.append ("publicId=");
diff --git a/libjava/classpath/javax/xml/transform/TransformerFactory.java b/libjava/classpath/javax/xml/transform/TransformerFactory.java
index e3c8953..e3e6c0c 100644
--- a/libjava/classpath/javax/xml/transform/TransformerFactory.java
+++ b/libjava/classpath/javax/xml/transform/TransformerFactory.java
@@ -89,7 +89,7 @@ public abstract class TransformerFactory
{
try
{
- Class t = (loader != null) ? loader.loadClass(className) :
+ Class<?> t = (loader != null) ? loader.loadClass(className) :
Class.forName(className);
return (TransformerFactory) t.newInstance();
}
@@ -107,7 +107,7 @@ public abstract class TransformerFactory
while (className == null && count < 3);
try
{
- Class t =
+ Class<?> t =
Class.forName("gnu.xml.transform.TransformerFactoryImpl");
return (TransformerFactory) t.newInstance();
}
diff --git a/libjava/classpath/javax/xml/validation/SchemaFactory.java b/libjava/classpath/javax/xml/validation/SchemaFactory.java
index 0c24104..0b83b6f 100644
--- a/libjava/classpath/javax/xml/validation/SchemaFactory.java
+++ b/libjava/classpath/javax/xml/validation/SchemaFactory.java
@@ -89,7 +89,7 @@ public abstract class SchemaFactory
{
try
{
- Class t = (loader != null) ? loader.loadClass(className) :
+ Class<?> t = (loader != null) ? loader.loadClass(className) :
Class.forName(className);
return (SchemaFactory) t.newInstance();
}
@@ -118,7 +118,7 @@ public abstract class SchemaFactory
for (String line = r.readLine(); line != null;
line = r.readLine())
{
- Class t = (loader != null) ? loader.loadClass(className) :
+ Class<?> t = (loader != null) ? loader.loadClass(className) :
Class.forName(className);
SchemaFactory ret = (SchemaFactory) t.newInstance();
if (ret.isSchemaLanguageSupported(schemaLanguage))
diff --git a/libjava/classpath/javax/xml/xpath/XPathFactory.java b/libjava/classpath/javax/xml/xpath/XPathFactory.java
index e87475f..76a88a1 100644
--- a/libjava/classpath/javax/xml/xpath/XPathFactory.java
+++ b/libjava/classpath/javax/xml/xpath/XPathFactory.java
@@ -117,7 +117,7 @@ public abstract class XPathFactory
{
try
{
- Class t = (loader != null) ? loader.loadClass(className) :
+ Class<?> t = (loader != null) ? loader.loadClass(className) :
Class.forName(className);
XPathFactory ret = (XPathFactory) t.newInstance();
if (ret.isObjectModelSupported(uri))
diff --git a/libjava/classpath/javax/xml/xpath/XPathFunction.java b/libjava/classpath/javax/xml/xpath/XPathFunction.java
index c7ea733..dbda11b 100644
--- a/libjava/classpath/javax/xml/xpath/XPathFunction.java
+++ b/libjava/classpath/javax/xml/xpath/XPathFunction.java
@@ -52,6 +52,7 @@ public interface XPathFunction
* Evaluate the function with the specified arguments.
* @param args the list of arguments
*/
+ @SuppressWarnings("unchecked")
Object evaluate(List args)
throws XPathFunctionException;
diff --git a/libjava/classpath/lib/Makefile.am b/libjava/classpath/lib/Makefile.am
index 74ddaf8..5491a99 100644
--- a/libjava/classpath/lib/Makefile.am
+++ b/libjava/classpath/lib/Makefile.am
@@ -8,20 +8,26 @@ sinclude $(JAVA_DEPEND)
compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(PATH_TO_GLIBJ_ZIP):$(PATH_TO_ESCHER)
# handling source to bytecode compiler programs like gcj, jikes and kjc
-## GCJ LOCAL: use srcdir, don't pass $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.5 -target 1.5
-JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
+if GCJ_JAVAC
+## GCJ LOCAL: use srcdir
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --bootclasspath='' --classpath=$(compile_classpath) -d $(srcdir) @classes
+else
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.5 -target 1.5 -bootclasspath '' -classpath $(compile_classpath) -d . @classes
+endif
if CREATE_COLLECTIONS
COLLECTIONS = collections.jar
+if WITH_JAR
+CREATE_COLLECTIONS_JAR=$(JAR) cf $@ $(COLLECTIONS_PREFIX)
+else
+CREATE_COLLECTIONS_JAR=$(ZIP) -r -D $@ $(COLLECTIONS_PREFIX) > /dev/null
+endif
+
collections.jar: mkcollections.pl
./mkcollections.pl $(top_srcdir)
$(JCOMPILER) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
- if test "$(FASTJAR)" != ""; then \
- "$(FASTJAR)" cf $@ $(COLLECTIONS_PREFIX); \
- else \
- echo "fastjar not found" > collections.jar; \
- fi
+ $(CREATE_COLLECTIONS_JAR)
endif # CREATE_COLLECTIONS
if INSTALL_GLIBJ_ZIP
@@ -67,27 +73,31 @@ glibj.zip:
else
-glibj.zip: classes compile-classes resources
- if test "$(ZIP)" != ""; then $(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null; fi
- if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf glibj.zip gnu java javax org sun META-INF; fi
+if WITH_JAR
+CREATE_GLIBJ_ZIP=$(JAR) cf glibj.zip gnu java javax org sun META-INF
+else
+CREATE_GLIBJ_ZIP=$(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null
+endif
+glibj.zip: classes compile-classes resources
+ $(CREATE_GLIBJ_ZIP)
endif # USE_PREBUILT_GLIBJ_ZIP
resources: copy-vmresources.sh
@list=`cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print -o -name \*\.css -print`; for p in $$list; do \
dirname=`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+ if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
cp $(top_srcdir)/resource/$$p $$p; \
done
@list=`cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name .svn -prune -o -name \*\.in -prune -o -type f -print`; for p in $$list; do \
dirname=`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+ if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
cp $(top_srcdir)/resource/$$p $$p; \
done
@$(SHELL) ./copy-vmresources.sh
@list=`cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print`; for p in $$list; do \
dirname=`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+ if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
cp $(top_srcdir)/$$p $$p; \
done
touch resources
@@ -95,7 +105,7 @@ resources: copy-vmresources.sh
classes: genclasses
$(top_builddir)/gnu/java/locale/LocaleData.java: $(top_srcdir)/scripts/generate-locale-list.sh
- mkdir -p $(top_builddir)/gnu/java/locale
+ @mkdir_p@ $(top_builddir)/gnu/java/locale
$(top_srcdir)/scripts/generate-locale-list.sh > $(top_builddir)/gnu/java/locale/LocaleData.java
genclasses: gen-classlist.sh standard.omit $(top_builddir)/gnu/java/locale/LocaleData.java gen-xpath-parser
@@ -155,7 +165,7 @@ clean-local:
-rm -rf lists
dist-hook:
- mkdir -p $(distdir)
+ @mkdir_p@ $(distdir)
cp -pdfR $(top_srcdir)/gnu $(top_srcdir)/java $(top_srcdir)/javax $(top_srcdir)/org $(top_srcdir)/sun $(top_srcdir)/vm $(top_srcdir)/resource $(distdir)/..
# Delete not wanted files.
$(FIND) $(distdir)/../gnu $(distdir)/../java $(distdir)/../javax $(distdir)/../org $(distdir)/../sun $(distdir)/../vm $(distdir)/../resource -name CVS -print | xargs rm -fr
diff --git a/libjava/classpath/lib/Makefile.in b/libjava/classpath/lib/Makefile.in
index 807da3c..f3d5083 100644
--- a/libjava/classpath/lib/Makefile.in
+++ b/libjava/classpath/lib/Makefile.in
@@ -53,6 +53,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -77,6 +80,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -108,6 +113,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -146,11 +157,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -160,6 +172,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -181,7 +195,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -247,8 +264,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -259,6 +278,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -318,14 +338,20 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
JAVA_DEPEND = java.dep
compile_classpath = $(vm_classes):$(top_srcdir):$(top_srcdir)/external/w3c_dom:$(top_srcdir)/external/sax:$(top_srcdir)/external/relaxngDatatype:$(top_srcdir)/external/jsr166:.:$(PATH_TO_GLIBJ_ZIP):$(PATH_TO_ESCHER)
+@GCJ_JAVAC_FALSE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) $(JAVAC_MEM_OPT) -source 1.5 -target 1.5 -bootclasspath '' -classpath $(compile_classpath) -d . @classes
# handling source to bytecode compiler programs like gcj, jikes and kjc
-JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath '' --classpath $(compile_classpath) -d $(srcdir) @classes
+@GCJ_JAVAC_TRUE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --bootclasspath='' --classpath=$(compile_classpath) -d $(srcdir) @classes
@CREATE_COLLECTIONS_TRUE@COLLECTIONS = collections.jar
+@CREATE_COLLECTIONS_TRUE@@WITH_JAR_FALSE@CREATE_COLLECTIONS_JAR = $(ZIP) -r -D $@ $(COLLECTIONS_PREFIX) > /dev/null
+@CREATE_COLLECTIONS_TRUE@@WITH_JAR_TRUE@CREATE_COLLECTIONS_JAR = $(JAR) cf $@ $(COLLECTIONS_PREFIX)
@BUILD_CLASS_FILES_TRUE@noinst_DATA = genclasses compile-classes resources
+@USE_PREBUILT_GLIBJ_ZIP_FALSE@@WITH_JAR_FALSE@CREATE_GLIBJ_ZIP = $(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null
+@USE_PREBUILT_GLIBJ_ZIP_FALSE@@WITH_JAR_TRUE@CREATE_GLIBJ_ZIP = $(JAR) cf glibj.zip gnu java javax org sun META-INF
# endif
EXTRA_DIST = standard.omit.in mkcollections.pl.in Makefile.gcj split-for-gcj.sh glibj.zip
CLEANFILES = compile-classes resources classes \
@@ -514,11 +540,7 @@ sinclude $(JAVA_DEPEND)
@CREATE_COLLECTIONS_TRUE@collections.jar: mkcollections.pl
@CREATE_COLLECTIONS_TRUE@ ./mkcollections.pl $(top_srcdir)
@CREATE_COLLECTIONS_TRUE@ $(JCOMPILER) `$(FIND) $(COLLECTIONS_PREFIX) -name '*.java' -type f -print`
-@CREATE_COLLECTIONS_TRUE@ if test "$(FASTJAR)" != ""; then \
-@CREATE_COLLECTIONS_TRUE@ "$(FASTJAR)" cf $@ $(COLLECTIONS_PREFIX); \
-@CREATE_COLLECTIONS_TRUE@ else \
-@CREATE_COLLECTIONS_TRUE@ echo "fastjar not found" > collections.jar; \
-@CREATE_COLLECTIONS_TRUE@ fi
+@CREATE_COLLECTIONS_TRUE@ $(CREATE_COLLECTIONS_JAR)
@INSTALL_CLASS_FILES_TRUE@install-data-local: genclasses compile-classes
@INSTALL_CLASS_FILES_TRUE@ $(mkinstalldirs) $(DESTDIR)$(pkgdatadir)
@@ -544,24 +566,23 @@ sinclude $(JAVA_DEPEND)
@USE_PREBUILT_GLIBJ_ZIP_TRUE@ cp $(PATH_TO_GLIBJ_ZIP) .
@USE_PREBUILT_GLIBJ_ZIP_FALSE@glibj.zip: classes compile-classes resources
-@USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(ZIP)" != ""; then $(ZIP) -r -D glibj.zip gnu java javax org sun META-INF > /dev/null; fi
-@USE_PREBUILT_GLIBJ_ZIP_FALSE@ if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf glibj.zip gnu java javax org sun META-INF; fi
+@USE_PREBUILT_GLIBJ_ZIP_FALSE@ $(CREATE_GLIBJ_ZIP)
resources: copy-vmresources.sh
@list=`cd $(top_srcdir)/resource && $(FIND) gnu java javax org -name \*\.properties -print -o -name \*\.css -print`; for p in $$list; do \
dirname=`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+ if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
cp $(top_srcdir)/resource/$$p $$p; \
done
@list=`cd $(top_srcdir)/resource && $(FIND) META-INF -name CVS -prune -o -name .svn -prune -o -name \*\.in -prune -o -type f -print`; for p in $$list; do \
dirname=`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+ if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
cp $(top_srcdir)/resource/$$p $$p; \
done
@$(SHELL) ./copy-vmresources.sh
@list=`cd $(top_srcdir) && $(FIND) gnu/javax/swing/plaf/gtk/icons -name *.png -type f -print`; for p in $$list; do \
dirname=`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
+ if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
cp $(top_srcdir)/$$p $$p; \
done
touch resources
@@ -569,7 +590,7 @@ resources: copy-vmresources.sh
classes: genclasses
$(top_builddir)/gnu/java/locale/LocaleData.java: $(top_srcdir)/scripts/generate-locale-list.sh
- mkdir -p $(top_builddir)/gnu/java/locale
+ @mkdir_p@ $(top_builddir)/gnu/java/locale
$(top_srcdir)/scripts/generate-locale-list.sh > $(top_builddir)/gnu/java/locale/LocaleData.java
genclasses: gen-classlist.sh standard.omit $(top_builddir)/gnu/java/locale/LocaleData.java gen-xpath-parser
@@ -615,7 +636,7 @@ clean-local:
-rm -rf lists
dist-hook:
- mkdir -p $(distdir)
+ @mkdir_p@ $(distdir)
cp -pdfR $(top_srcdir)/gnu $(top_srcdir)/java $(top_srcdir)/javax $(top_srcdir)/org $(top_srcdir)/sun $(top_srcdir)/vm $(top_srcdir)/resource $(distdir)/..
# Delete not wanted files.
$(FIND) $(distdir)/../gnu $(distdir)/../java $(distdir)/../javax $(distdir)/../org $(distdir)/../sun $(distdir)/../vm $(distdir)/../resource -name CVS -print | xargs rm -fr
diff --git a/libjava/classpath/lib/copy-vmresources.sh.in b/libjava/classpath/lib/copy-vmresources.sh.in
index dbda9de..8dc8c0f 100644
--- a/libjava/classpath/lib/copy-vmresources.sh.in
+++ b/libjava/classpath/lib/copy-vmresources.sh.in
@@ -11,7 +11,7 @@ for p in ${vmdirs}; do
(cd $p/META-INF;
dirs=`find . -name "CVS" -prune -o -type d -print`;
for u in ${dirs}; do
- mkdir -p ${destMetaDir}/${u};
+ @mkdir_p@ ${destMetaDir}/${u};
done;
files=`find . -name "CVS" -prune -o -name "*.in" -prune -o -type f -print`;
for u in ${files}; do
@@ -31,7 +31,7 @@ for p in ${vmdirs}; do
resnewdirs=`echo ${resdirs} | uniq`;
for u in ${resnewdirs}; do
- mkdir -p ${destResDir}/${u};
+ @mkdir_p@ ${destResDir}/${u};
done
for f in ${resfiles}; do
diff --git a/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class b/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class
index 88eef1a..9cb32ff 100644
--- a/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class
+++ b/libjava/classpath/lib/gnu/CORBA/BigDecimalHelper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class b/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class
index 1935411..4af7c25 100644
--- a/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class
+++ b/libjava/classpath/lib/gnu/CORBA/CDR/LittleEndianInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/Vio.class b/libjava/classpath/lib/gnu/CORBA/CDR/Vio.class
index 1d738de..5dc83f2 100644
--- a/libjava/classpath/lib/gnu/CORBA/CDR/Vio.class
+++ b/libjava/classpath/lib/gnu/CORBA/CDR/Vio.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class
index 93acd14..79bada0 100644
--- a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class
+++ b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.class b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.class
index 2ed828f..18acc6d 100644
--- a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.class
+++ b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Entry.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class
index f8364f4..4b172dc 100644
--- a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class
+++ b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime$Redirection.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.class b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.class
index a985b18..ebee731 100644
--- a/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.class
+++ b/libjava/classpath/lib/gnu/CORBA/CDR/gnuRuntime.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.class
index 35147ec..7c70824 100644
--- a/libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.class
+++ b/libjava/classpath/lib/gnu/CORBA/GIOP/MessageHeader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.class
index 21fdb44..43a72f2 100644
--- a/libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.class
+++ b/libjava/classpath/lib/gnu/CORBA/GIOP/RequestHeader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class
index 37f52f8..d8a473c 100644
--- a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class
+++ b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/ReplyHeader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class
index 9bcc7b4..9c30524 100644
--- a/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class
+++ b/libjava/classpath/lib/gnu/CORBA/GIOP/v1_0/RequestHeader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.class b/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.class
index 3be7042..994bd17 100644
--- a/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.class
+++ b/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile$CodeSet_component.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.class b/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.class
index ffdb172..08f0aa9 100644
--- a/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.class
+++ b/libjava/classpath/lib/gnu/CORBA/IOR$CodeSets_profile.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.class b/libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.class
index ce08388..455cbc7 100644
--- a/libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.class
+++ b/libjava/classpath/lib/gnu/CORBA/IOR$Internet_profile.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/IOR.class b/libjava/classpath/lib/gnu/CORBA/IOR.class
index 3f1774a..658b34d 100644
--- a/libjava/classpath/lib/gnu/CORBA/IOR.class
+++ b/libjava/classpath/lib/gnu/CORBA/IOR.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class
index 220af43..474588e 100644
--- a/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class
+++ b/libjava/classpath/lib/gnu/CORBA/NamingService/NameParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.class b/libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.class
index a659009..1300ecb 100644
--- a/libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.class
+++ b/libjava/classpath/lib/gnu/CORBA/NamingService/NameTransformer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/OrbFunctional.class b/libjava/classpath/lib/gnu/CORBA/OrbFunctional.class
index 3a723da..d9eb540 100644
--- a/libjava/classpath/lib/gnu/CORBA/OrbFunctional.class
+++ b/libjava/classpath/lib/gnu/CORBA/OrbFunctional.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class
index fa7a141..5ba09f0 100644
--- a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class
+++ b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA$RefTemplate.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class
index 997b427..8f9878b 100644
--- a/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class
+++ b/libjava/classpath/lib/gnu/CORBA/Poa/gnuPOA.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.class b/libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.class
index 7274a87..5c76c50 100644
--- a/libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.class
+++ b/libjava/classpath/lib/gnu/CORBA/Poa/gnuServantObject.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/Configuration.class b/libjava/classpath/lib/gnu/classpath/Configuration.class
index 752cc06..1b3fe05 100644
--- a/libjava/classpath/lib/gnu/classpath/Configuration.class
+++ b/libjava/classpath/lib/gnu/classpath/Configuration.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/SystemProperties.class b/libjava/classpath/lib/gnu/classpath/SystemProperties.class
index 773ebac..b430d07 100644
--- a/libjava/classpath/lib/gnu/classpath/SystemProperties.class
+++ b/libjava/classpath/lib/gnu/classpath/SystemProperties.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.class b/libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.class
index 287db6b..67b8088 100644
--- a/libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.class
+++ b/libjava/classpath/lib/gnu/classpath/jdwp/processor/VirtualMachineCommandSet.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.class b/libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.class
index e952568..b06d5a8 100644
--- a/libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.class
+++ b/libjava/classpath/lib/gnu/classpath/jdwp/util/Signature.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class
index 0ea8a6a..fee6610 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XFontMetrics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class
index 982715f..2c416a3 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer$XLineMetrics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class
index 9162dad..629ac63 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/OpenTypeFontPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/Edge.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/Edge.class
index 967fc08..bf80285 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/autofit/Edge.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/autofit/Edge.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/LatinBlue.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/LatinBlue.class
index 5ca5115..f2f8483 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/autofit/LatinBlue.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/autofit/LatinBlue.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.class
index 5f4b472..34a82a1 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/autofit/Segment.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/autofit/Width.class b/libjava/classpath/lib/gnu/java/awt/font/autofit/Width.class
index ca16b93..aa4a2de 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/autofit/Width.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/autofit/Width.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.class
index 31a1d64..727bd23 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/opentype/GlyphNamer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.class
index 74468fd..699993a 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Fixed.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Point.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Point.class
index 6b1e0dd..bd8faab 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Point.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/Point.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.class b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.class
index 2c2fef0..6bd9b3c 100644
--- a/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.class
+++ b/libjava/classpath/lib/gnu/java/awt/font/opentype/truetype/VirtualMachine.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
index ff4c6e4..fce1b31 100644
--- a/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/AbstractGraphics2D.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ActiveEdges.class b/libjava/classpath/lib/gnu/java/awt/java2d/ActiveEdges.class
index 14be883..43fdc71 100644
--- a/libjava/classpath/lib/gnu/java/awt/java2d/ActiveEdges.class
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/ActiveEdges.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.class b/libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.class
index c52e502..fd0126f 100644
--- a/libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.class
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/RasterGraphics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
index e3b450e..ed1c75d 100644
--- a/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
+++ b/libjava/classpath/lib/gnu/java/awt/java2d/ScanlineConverter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/GnomeDesktopPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/GnomeDesktopPeer.class
index 7419929..59dfdfc 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/GnomeDesktopPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/GnomeDesktopPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class
index e8b5062..a02a464 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/KDEDesktopPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class
index 1dace9a..a30392d 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontLineMetrics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class
index e6495e9..c9afa57 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer$GdkFontMetrics.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
index 1a1b941..ce59f56 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GdkFontPeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.class b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.class
index 65ad993..08cae72 100644
--- a/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.class
+++ b/libjava/classpath/lib/gnu/java/awt/peer/gtk/GtkClipboard.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/CPStringBuilder.class b/libjava/classpath/lib/gnu/java/lang/CPStringBuilder.class
new file mode 100644
index 0000000..7bb5793
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/lang/CPStringBuilder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/ClassHelper.class b/libjava/classpath/lib/gnu/java/lang/ClassHelper.class
index 484c4a8..aff3147 100644
--- a/libjava/classpath/lib/gnu/java/lang/ClassHelper.class
+++ b/libjava/classpath/lib/gnu/java/lang/ClassHelper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/VMCPStringBuilder.class b/libjava/classpath/lib/gnu/java/lang/VMCPStringBuilder.class
new file mode 100644
index 0000000..c2bab06
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/lang/VMCPStringBuilder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.class b/libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.class
index 84f2433..8f33abf 100644
--- a/libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.class
+++ b/libjava/classpath/lib/gnu/java/lang/reflect/GenericArrayTypeImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.class b/libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.class
index 11a8fa0..37070b0 100644
--- a/libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.class
+++ b/libjava/classpath/lib/gnu/java/lang/reflect/GenericSignatureParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.class b/libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.class
index a244f0f..dc2d14a 100644
--- a/libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.class
+++ b/libjava/classpath/lib/gnu/java/lang/reflect/ParameterizedTypeImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class b/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class
index f2eb333..3bb063f 100644
--- a/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class
+++ b/libjava/classpath/lib/gnu/java/lang/reflect/TypeSignature.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.class b/libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.class
index 78946cd..8d5f636 100644
--- a/libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.class
+++ b/libjava/classpath/lib/gnu/java/lang/reflect/TypeVariableImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.class b/libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.class
index 8a717e3..51a3eb0 100644
--- a/libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.class
+++ b/libjava/classpath/lib/gnu/java/lang/reflect/UnresolvedTypeVariable.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.class b/libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.class
index 98b51a9..d128dd2 100644
--- a/libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.class
+++ b/libjava/classpath/lib/gnu/java/lang/reflect/WildcardTypeImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/locale/LocaleData.class b/libjava/classpath/lib/gnu/java/locale/LocaleData.class
index 338cc8f..64d83fd 100644
--- a/libjava/classpath/lib/gnu/java/locale/LocaleData.class
+++ b/libjava/classpath/lib/gnu/java/locale/LocaleData.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/math/GMP.class b/libjava/classpath/lib/gnu/java/math/GMP.class
new file mode 100644
index 0000000..1e1e78b
--- /dev/null
+++ b/libjava/classpath/lib/gnu/java/math/GMP.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.class b/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.class
index 0732369..4bec2e5 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/ftp/FTPConnection.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.class
index 970facb..ca8dcf2 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/http/ChunkedInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.class
index ecba5b0..49736dd 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/http/Cookie.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.class b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.class
index 6cf9d36..ed18303 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool$Reaper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.class b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.class
index 1e1abbd..6808a38 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection$Pool.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.class b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.class
index eb765d1..dba375b 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/http/HTTPConnection.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.class
index 3de6ac4..890feec 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/http/Headers$HeaderElement.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Headers.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Headers.class
index d34ca8e..8692050 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/http/Headers.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/http/Headers.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.class b/libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.class
index 630f16a..cfc5dea 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/http/LimitedLengthInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class b/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class
index fac66ba..a8c4ad3 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/http/Request.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.class b/libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.class
index b175969..c0e5642 100644
--- a/libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.class
+++ b/libjava/classpath/lib/gnu/java/net/protocol/jar/Handler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class
index 27a0d83..af7505b 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteDecodeLoopHelper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class b/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class
index 654da73..ee34d59 100644
--- a/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class
+++ b/libjava/classpath/lib/gnu/java/nio/charset/ByteEncodeLoopHelper.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class
index f453e31..3b2322a 100644
--- a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class
+++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$CacheKey.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class
index 96787de..e68f227 100644
--- a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class
+++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl$MyClassLoader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class
index ca9e129..7dd92cf 100644
--- a/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class
+++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIClassLoaderImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.class b/libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.class
index 1a66149..7f03c62 100644
--- a/libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.class
+++ b/libjava/classpath/lib/gnu/java/rmi/server/RMIHashes.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/Engine.class b/libjava/classpath/lib/gnu/java/security/Engine.class
index cf92b96..e22db95 100644
--- a/libjava/classpath/lib/gnu/java/security/Engine.class
+++ b/libjava/classpath/lib/gnu/java/security/Engine.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/OID.class b/libjava/classpath/lib/gnu/java/security/OID.class
index db37e69..d1cf988 100644
--- a/libjava/classpath/lib/gnu/java/security/OID.class
+++ b/libjava/classpath/lib/gnu/java/security/OID.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/PolicyFile$1.class b/libjava/classpath/lib/gnu/java/security/PolicyFile$1.class
index 99e4c99..9e3951a 100644
--- a/libjava/classpath/lib/gnu/java/security/PolicyFile$1.class
+++ b/libjava/classpath/lib/gnu/java/security/PolicyFile$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/PolicyFile.class b/libjava/classpath/lib/gnu/java/security/PolicyFile.class
index e544dbc..e07bd4c 100644
--- a/libjava/classpath/lib/gnu/java/security/PolicyFile.class
+++ b/libjava/classpath/lib/gnu/java/security/PolicyFile.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/der/BitString.class b/libjava/classpath/lib/gnu/java/security/der/BitString.class
index c70e401..532f719 100644
--- a/libjava/classpath/lib/gnu/java/security/der/BitString.class
+++ b/libjava/classpath/lib/gnu/java/security/der/BitString.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/der/DERReader.class b/libjava/classpath/lib/gnu/java/security/der/DERReader.class
index 44bfc6f..5521a16 100644
--- a/libjava/classpath/lib/gnu/java/security/der/DERReader.class
+++ b/libjava/classpath/lib/gnu/java/security/der/DERReader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/hash/Whirlpool.class b/libjava/classpath/lib/gnu/java/security/hash/Whirlpool.class
index d734a4d..becb2e5 100644
--- a/libjava/classpath/lib/gnu/java/security/hash/Whirlpool.class
+++ b/libjava/classpath/lib/gnu/java/security/hash/Whirlpool.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.class b/libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.class
index 895c8f2..241cfe3 100644
--- a/libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.class
+++ b/libjava/classpath/lib/gnu/java/security/jce/sig/DSSParameters.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.class
index c5462e1..1c72206 100644
--- a/libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.class
+++ b/libjava/classpath/lib/gnu/java/security/key/dss/DSSKey.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.class
index 958c052..426f351 100644
--- a/libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.class
+++ b/libjava/classpath/lib/gnu/java/security/key/dss/DSSPrivateKey.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.class b/libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.class
index 909a027..5449466 100644
--- a/libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.class
+++ b/libjava/classpath/lib/gnu/java/security/key/dss/DSSPublicKey.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.class b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.class
index c95e6c4..83f93b1 100644
--- a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.class
+++ b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAKey.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.class b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.class
index 1c7f6fd..975a662 100644
--- a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.class
+++ b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPrivateKey.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.class b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.class
index 5d93064..27ed78d 100644
--- a/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.class
+++ b/libjava/classpath/lib/gnu/java/security/key/rsa/GnuRSAPublicKey.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.class b/libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.class
index 3fedb12..3f40991 100644
--- a/libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.class
+++ b/libjava/classpath/lib/gnu/java/security/provider/X509CertificateFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/util/ByteArray.class b/libjava/classpath/lib/gnu/java/security/util/ByteArray.class
index beb2df4..dc7b37c 100644
--- a/libjava/classpath/lib/gnu/java/security/util/ByteArray.class
+++ b/libjava/classpath/lib/gnu/java/security/util/ByteArray.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/util/Util.class b/libjava/classpath/lib/gnu/java/security/util/Util.class
index 8e14cae..dd1a573 100644
--- a/libjava/classpath/lib/gnu/java/security/util/Util.class
+++ b/libjava/classpath/lib/gnu/java/security/util/Util.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.class b/libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.class
index bfca58d..251a1d0 100644
--- a/libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.class
+++ b/libjava/classpath/lib/gnu/java/security/x509/PolicyNodeImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/x509/Util.class b/libjava/classpath/lib/gnu/java/security/x509/Util.class
index b21e8d8..cf54f28 100644
--- a/libjava/classpath/lib/gnu/java/security/x509/Util.class
+++ b/libjava/classpath/lib/gnu/java/security/x509/Util.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.class b/libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.class
index eeb8bced..818ef3a 100644
--- a/libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.class
+++ b/libjava/classpath/lib/gnu/java/security/x509/X500DistinguishedName.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class b/libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class
index 265b893..d079038 100644
--- a/libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class
+++ b/libjava/classpath/lib/gnu/java/text/AttributedFormatBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/text/StringFormatBuffer.class b/libjava/classpath/lib/gnu/java/text/StringFormatBuffer.class
index d677e89..a186739 100644
--- a/libjava/classpath/lib/gnu/java/text/StringFormatBuffer.class
+++ b/libjava/classpath/lib/gnu/java/text/StringFormatBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/Base64.class b/libjava/classpath/lib/gnu/java/util/Base64.class
index 3c5f791..254403e 100644
--- a/libjava/classpath/lib/gnu/java/util/Base64.class
+++ b/libjava/classpath/lib/gnu/java/util/Base64.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/EmptyEnumeration.class b/libjava/classpath/lib/gnu/java/util/EmptyEnumeration.class
index 808980d..32153ea 100644
--- a/libjava/classpath/lib/gnu/java/util/EmptyEnumeration.class
+++ b/libjava/classpath/lib/gnu/java/util/EmptyEnumeration.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.class b/libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.class
deleted file mode 100644
index 932eb99..0000000
--- a/libjava/classpath/lib/gnu/java/util/prefs/EventDispatcher.class
+++ /dev/null
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.class b/libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.class
index 78bc0ca..8384bc6 100644
--- a/libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.class
+++ b/libjava/classpath/lib/gnu/java/util/prefs/GConfBasedPreferences.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.class b/libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.class
index 929229e..1d33606 100644
--- a/libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.class
+++ b/libjava/classpath/lib/gnu/java/util/prefs/NodeWriter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.class b/libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.class
index fb4d703..9460692 100644
--- a/libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.class
+++ b/libjava/classpath/lib/gnu/java/util/prefs/gconf/GConfNativePeer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.class b/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.class
index 34b9e51..affd6ba 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack$Backtrack.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.class b/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.class
index b615849..3de5018 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/BacktrackStack.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.class
index 2ede3d6..02a1a0e 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharArray.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.class
index 351c0af..fa65373 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedCharSequence.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.class
index cf5fd88..ce535b6 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.class
index 0710442..9b09ba5 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedString.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.class b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.class
index 8dfff38..2b1f3dc 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/CharIndexedStringBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class b/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class
index f84e8b7..586daf5 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE$CharExpression.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class b/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class
index c4f0720..e067733 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE$CharUnit.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class b/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class
index 8e92613..6218bda 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE$IntPair.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class b/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class
index b0cbde2..b4fb5d1 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE$NamedProperty.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class b/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class
index 25f1aaf..58d5e7c 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE$ParseCharClassResult.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RE.class b/libjava/classpath/lib/gnu/java/util/regex/RE.class
index ff81c59..1f3b9e6 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RE.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RE.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/REException.class b/libjava/classpath/lib/gnu/java/util/regex/REException.class
index 46de3c9..0f064ad 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/REException.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/REException.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.class b/libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.class
index 4683004..ec202a9 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/REFilterInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/REMatch.class b/libjava/classpath/lib/gnu/java/util/regex/REMatch.class
index aa08c34..b2ba9e4 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/REMatch.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/REMatch.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.class b/libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.class
index d3f9af9..4d610dc 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/REMatchEnumeration.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RESyntax.class b/libjava/classpath/lib/gnu/java/util/regex/RESyntax.class
index 6c630cb..b73819e 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RESyntax.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RESyntax.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/REToken.class b/libjava/classpath/lib/gnu/java/util/regex/REToken.class
index 4d63944..b6b04cd 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/REToken.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/REToken.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenAny.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenAny.class
index f41668e..74795b4 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenAny.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenAny.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.class
index 72d37f4..67b1e92 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenBackRef.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenChar.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenChar.class
index f2804f0..ca87498 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenChar.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenChar.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.class
index 47cd3b9..bf26787 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenEnd.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.class
index a5a3db5..ef4ca64 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenEndOfPreviousMatch.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.class
index 15fd74c..4b86e1d 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenEndSub.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.class
index ae764c8..ef4b840 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenIndependent.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.class
index a77b64b..79b4ca1 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookAhead.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.class
index 9c8b3a3..15fd40e 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.class
index 3e09060..fde86c9 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenLookBehind.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class
index 6426e92..eb3b70e 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class
index e974731..0b8ad89 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$Handler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class
index a23e960..89302d3 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$JavaCategoryHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class
index 86b3605..477a6c4 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$POSIXHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class
index b54a750..bfbe101 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeBlockHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class
index 00fe6e6..02546e0 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoriesHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class
index 9aa8ae4..a58e6a3 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty$UnicodeCategoryHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class
index 317420b..fed279b 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenNamedProperty.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.class
index 00c99bd..60459f6 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenOneOf.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.class
index 6db3c46..19637b1 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenPOSIX.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRange.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRange.class
index e5ec4b2..4fce8ef 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenRange.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenRange.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.class
index b265e51..e139579 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$DoablesFinder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.class
index 5deb76f..0db04c3 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.class
deleted file mode 100644
index 6e0260d..0000000
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.class
+++ /dev/null
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.class
index 827bfe7..8e8a99e 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$StackedInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.class
index cc15745..5aed9b0 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated$TryAnotherResult.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.class
index 40629db..6f19726 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenRepeated.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenStart.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenStart.class
index c1bfc44..7a8cdd7 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenStart.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenStart.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.class b/libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.class
index e83e5fd..108f713 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/RETokenWordBoundary.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.class b/libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.class
index e968486..ad6dddd 100644
--- a/libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.class
+++ b/libjava/classpath/lib/gnu/java/util/regex/UncheckedRE.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/activation/viewers/ImageViewer.class b/libjava/classpath/lib/gnu/javax/activation/viewers/ImageViewer.class
new file mode 100644
index 0000000..dcacc9d
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/activation/viewers/ImageViewer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/activation/viewers/TextEditor.class b/libjava/classpath/lib/gnu/javax/activation/viewers/TextEditor.class
new file mode 100644
index 0000000..0a15fdf
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/activation/viewers/TextEditor.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/activation/viewers/TextViewer.class b/libjava/classpath/lib/gnu/javax/activation/viewers/TextViewer.class
new file mode 100644
index 0000000..693f878
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/activation/viewers/TextViewer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.class b/libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.class
index 6b37720..5314fa1 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/assembly/TransformerException.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class b/libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class
index dc48fc2..27ac578 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/cipher/BaseCipher.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.class b/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.class
index 39c15bc..49fb95e 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/jce/sig/DHParameters.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.class b/libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.class
index d56655e..b9320de 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/key/KeyAgreementException.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.class b/libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.class
index f608e3f..daefa75 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/mode/BaseMode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.class b/libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.class
index 8c84683..f26e749 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/pad/BasePad.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.class
index ac4fc0b..179b8e3 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/CramMD5Util.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.class
index 51523b5..230604b 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/sasl/crammd5/PasswordFile.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.class
index b7e4cc0..9d4c810 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PasswordFile.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.class
index 928a869..d9ff9cb 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/sasl/plain/PlainClient.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.class
index e4dfabc..54e69ef 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/PasswordFile.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.class
index e20ffb6..b8fc56d 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPClient.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.class
index c81ddc2..7793ac3 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/SRPServer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.class b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.class
index 9757964..00670dd 100644
--- a/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.class
+++ b/libjava/classpath/lib/gnu/javax/crypto/sasl/srp/ServerStore.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.class
index 23934b7..6d41106 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.class b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.class
index d29770d..1f010f4 100644
--- a/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.class
+++ b/libjava/classpath/lib/gnu/javax/imageio/bmp/BMPImageWriterSpi.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Server$LazyListenersHolder.class b/libjava/classpath/lib/gnu/javax/management/Server$LazyListenersHolder.class
new file mode 100644
index 0000000..a4c3384
--- /dev/null
+++ b/libjava/classpath/lib/gnu/javax/management/Server$LazyListenersHolder.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class
index 0ef1b5c..de23fed 100644
--- a/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class
+++ b/libjava/classpath/lib/gnu/javax/management/Server$ServerInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class
index 6081214..5bad91c 100644
--- a/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class
+++ b/libjava/classpath/lib/gnu/javax/management/Server$ServerInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class b/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class
index 86f3ef0..9588e80 100644
--- a/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class
+++ b/libjava/classpath/lib/gnu/javax/management/Server$ServerNotificationListener.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Server.class b/libjava/classpath/lib/gnu/javax/management/Server.class
index c31cffe..60927a5 100644
--- a/libjava/classpath/lib/gnu/javax/management/Server.class
+++ b/libjava/classpath/lib/gnu/javax/management/Server.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/management/Translator.class b/libjava/classpath/lib/gnu/javax/management/Translator.class
index 4572fa4..eefd7a7 100644
--- a/libjava/classpath/lib/gnu/javax/management/Translator.class
+++ b/libjava/classpath/lib/gnu/javax/management/Translator.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.class b/libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.class
index 77c8c4c..548db71 100644
--- a/libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.class
+++ b/libjava/classpath/lib/gnu/javax/naming/giop/CorbalocParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.class b/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.class
index a264643..6acf5a8 100644
--- a/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.class
+++ b/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.class b/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.class
index 3a731ce..cbb2433 100644
--- a/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.class
+++ b/libjava/classpath/lib/gnu/javax/naming/giop/GiopNamingServiceFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.class b/libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.class
index e668e21..758b7f0 100644
--- a/libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.class
+++ b/libjava/classpath/lib/gnu/javax/naming/giop/ListBindingsEnumeration.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.class b/libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.class
index 0232cc6..56da472 100644
--- a/libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.class
+++ b/libjava/classpath/lib/gnu/javax/naming/giop/ListEnumeration.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.class b/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.class
index 778e041..4623832 100644
--- a/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.class
+++ b/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName$GnuNameEnum.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.class b/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.class
index 23f9833..e7ec8c0 100644
--- a/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.class
+++ b/libjava/classpath/lib/gnu/javax/naming/ictxImpl/trans/GnuName.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.class b/libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.class
index 71ce1ad..975b3d7 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/PrivateCredentials.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.class b/libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.class
index e980398..d21f88b 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/Session$ID.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/Session.class b/libjava/classpath/lib/gnu/javax/net/ssl/Session.class
index fce5c3c..efb1d98 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/Session.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/Session.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.class
index 8c915a6..7060cac 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/HelloRequest.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.class
index 9f0a629..cfa4d13 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.class
index 5368b25..970d3cd 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$2.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.class
index 663d50b..d72c74c 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util$WrappedBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.class b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.class
index 678d148..c410ccb 100644
--- a/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.class
+++ b/libjava/classpath/lib/gnu/javax/net/ssl/provider/Util.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class b/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class
index ef631bb..e23fa9d 100644
--- a/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class
+++ b/libjava/classpath/lib/gnu/javax/print/ipp/IppRequest$RequestWriter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class
index ce51861..95b93f0 100644
--- a/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class
+++ b/libjava/classpath/lib/gnu/javax/print/ipp/attribute/RequestedAttributes.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class
index 6971b3d..9432c30 100644
--- a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class
+++ b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class
index 5389f3d..1a4ed44 100644
--- a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class
+++ b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities$2.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.class b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.class
index 1e31584..e5f3cde 100644
--- a/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.class
+++ b/libjava/classpath/lib/gnu/javax/rmi/CORBA/RmiUtilities.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.class b/libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.class
index e387600..f1ff81e 100644
--- a/libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.class
+++ b/libjava/classpath/lib/gnu/javax/security/auth/callback/AWTCallbackHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.class b/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.class
index 751608e..f4f76c8 100644
--- a/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.class
+++ b/libjava/classpath/lib/gnu/javax/security/auth/login/ConfigFileTokenizer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class
index fc3c438..899bc6e83 100644
--- a/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class
+++ b/libjava/classpath/lib/gnu/javax/sound/sampled/gstreamer/io/GstAudioFileReader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.class
index 5cad229..5408b42 100644
--- a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.class
+++ b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator$hTag.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.class
index db70024..b8ed2c0 100644
--- a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.class
+++ b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/htmlValidator.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.class
index d90cc45..a6351cd 100644
--- a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.class
+++ b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/list.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.class
index f551dbf..80be681 100644
--- a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.class
+++ b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/models/node.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.class
index eb2767d..3d6b595 100644
--- a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.class
+++ b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$1.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.class
index e6f89ee..e25727b 100644
--- a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.class
+++ b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser$2.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class
index 6de4c83..785f0a5 100644
--- a/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class
+++ b/libjava/classpath/lib/gnu/javax/swing/text/html/parser/support/Parser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomAttr.class b/libjava/classpath/lib/gnu/xml/dom/DomAttr.class
index 5a2a8e7..1282e66 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomAttr.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomAttr.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomDocument.class b/libjava/classpath/lib/gnu/xml/dom/DomDocument.class
index 07a45de..c7af6ab 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomDocument.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomDocument.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomElement.class b/libjava/classpath/lib/gnu/xml/dom/DomElement.class
index 4c7d97f..b081fc2 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomElement.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomElement.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.class b/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.class
index d8932f6..f1eee7e1 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomMutationEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.class b/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.class
index 860ab77..4b45d8e 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomEvent$DomUIEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomEvent.class b/libjava/classpath/lib/gnu/xml/dom/DomEvent.class
index a2f853f..c99968d 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomEvent.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class
index ef4159e..3135f87 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNode$DomEventException.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class
index a01897c..aefc7d1 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNode$ListenerRecord.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class
index 9c50f2b..8a65434 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNode$LiveNodeList.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class b/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class
index aef279f..8bdaa3c 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNode$ShadowList.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNode.class b/libjava/classpath/lib/gnu/xml/dom/DomNode.class
index cf1ae63..5b3f6f6 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNode.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomNsNode.class b/libjava/classpath/lib/gnu/xml/dom/DomNsNode.class
index 63a6add..022c857 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomNsNode.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomNsNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/DomText.class b/libjava/classpath/lib/gnu/xml/dom/DomText.class
index fd371db..b321cab 100644
--- a/libjava/classpath/lib/gnu/xml/dom/DomText.class
+++ b/libjava/classpath/lib/gnu/xml/dom/DomText.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.class b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.class
index ebff3b2..fab560d 100644
--- a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.class
+++ b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSInput.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.class b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.class
index 1298baa..1065005 100644
--- a/libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.class
+++ b/libjava/classpath/lib/gnu/xml/dom/ls/DomLSParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class b/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class
index 34ee47d..9a2fe32 100644
--- a/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class
+++ b/libjava/classpath/lib/gnu/xml/dom/ls/SAXEventSink.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.class
index b9bde45..720f64f 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeAttr.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.class
index 1c74626..13be673 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeCharacterData.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.class
index fec9659..54c104d 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocument.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.class
index 0ca7bd4..e7d5151 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeDocumentType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.class
index 8e398a2..c48ea1bb 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeElement.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.class
index 24197b0b..19890e1 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeEntity.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.class
index 3f3b6f3..dd101b6 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.class
index f6b5d11..2dd2e8e 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeNotation.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.class
index 7e0c320..6693379 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeProcessingInstruction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.class
index 79299bd..8ddaba1 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeText.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class
index 3289a59..75b0bb4 100644
--- a/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class
+++ b/libjava/classpath/lib/gnu/xml/libxmlj/dom/GnomeXPathResult.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class b/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class
index 5d989ed..0453ee9 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLEventImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
index af7afc8..7e64954 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AnyContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
index 21af868..45f6ab8 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Attribute.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
index 7ea4289..f0ca4f0 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$AttributeDecl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
index 15ca13c..86cba0f 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
index b9a9d7d..cd7acfe 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ContentParticle.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
index 277d096..3c17511 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Doctype.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
index 756e311..5eeed5a 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ElementContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
index 1beaf13..0275f80 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$EmptyContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
index 8921d02..e2d9b96 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$ExternalIds.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
index 0081e42..0a37ec3 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$Input.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
index d361464..28888f6 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser$MixedContentModel.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/stream/XMLParser.class b/libjava/classpath/lib/gnu/xml/stream/XMLParser.class
index 88a6803..f9f823a 100644
--- a/libjava/classpath/lib/gnu/xml/stream/XMLParser.class
+++ b/libjava/classpath/lib/gnu/xml/stream/XMLParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.class b/libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.class
index 6a14d1b..a94115b 100644
--- a/libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/AbstractNumberNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.class b/libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.class
index bb84b9e..d6f8759 100644
--- a/libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/ApplyTemplatesNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/AttributeNode.class b/libjava/classpath/lib/gnu/xml/transform/AttributeNode.class
index a73cf7e..fd1a2ae 100644
--- a/libjava/classpath/lib/gnu/xml/transform/AttributeNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/AttributeNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/Bindings.class b/libjava/classpath/lib/gnu/xml/transform/Bindings.class
index 70aa63e..c27e72c 100644
--- a/libjava/classpath/lib/gnu/xml/transform/Bindings.class
+++ b/libjava/classpath/lib/gnu/xml/transform/Bindings.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.class b/libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.class
index af045b2..c4c27e1 100644
--- a/libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/CallTemplateNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/ChooseNode.class b/libjava/classpath/lib/gnu/xml/transform/ChooseNode.class
index fa8495e..2b846a6 100644
--- a/libjava/classpath/lib/gnu/xml/transform/ChooseNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/ChooseNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/CopyNode.class b/libjava/classpath/lib/gnu/xml/transform/CopyNode.class
index c74f384..4346c74 100644
--- a/libjava/classpath/lib/gnu/xml/transform/CopyNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/CopyNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/CopyOfNode.class b/libjava/classpath/lib/gnu/xml/transform/CopyOfNode.class
index e15bc89..17a4970 100644
--- a/libjava/classpath/lib/gnu/xml/transform/CopyOfNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/CopyOfNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/ElementNode.class b/libjava/classpath/lib/gnu/xml/transform/ElementNode.class
index b6f5f4a..8ee094a 100644
--- a/libjava/classpath/lib/gnu/xml/transform/ElementNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/ElementNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/ForEachNode.class b/libjava/classpath/lib/gnu/xml/transform/ForEachNode.class
index 1ba6338..a7c7b36 100644
--- a/libjava/classpath/lib/gnu/xml/transform/ForEachNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/ForEachNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/IfNode.class b/libjava/classpath/lib/gnu/xml/transform/IfNode.class
index 4abd1d2..c9802ef 100644
--- a/libjava/classpath/lib/gnu/xml/transform/IfNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/IfNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/MessageNode.class b/libjava/classpath/lib/gnu/xml/transform/MessageNode.class
index b071866..bd9d14e 100644
--- a/libjava/classpath/lib/gnu/xml/transform/MessageNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/MessageNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/ParameterNode.class b/libjava/classpath/lib/gnu/xml/transform/ParameterNode.class
index 7352637..ca0c63c 100644
--- a/libjava/classpath/lib/gnu/xml/transform/ParameterNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/ParameterNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.class b/libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.class
index 9ce2b35..122424f 100644
--- a/libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/ProcessingInstructionNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/SortKey.class b/libjava/classpath/lib/gnu/xml/transform/SortKey.class
index dbcaf40..b8ba353 100644
--- a/libjava/classpath/lib/gnu/xml/transform/SortKey.class
+++ b/libjava/classpath/lib/gnu/xml/transform/SortKey.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class b/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class
index 406c9d5..3371054 100644
--- a/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class
+++ b/libjava/classpath/lib/gnu/xml/transform/StreamSerializer.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class b/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class
index b7f401df..1810ed9 100644
--- a/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class
+++ b/libjava/classpath/lib/gnu/xml/transform/Stylesheet.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/Template.class b/libjava/classpath/lib/gnu/xml/transform/Template.class
index 693eab1..2be0fdc 100644
--- a/libjava/classpath/lib/gnu/xml/transform/Template.class
+++ b/libjava/classpath/lib/gnu/xml/transform/Template.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/TemplateNode.class b/libjava/classpath/lib/gnu/xml/transform/TemplateNode.class
index 507c38f..1c4116a 100644
--- a/libjava/classpath/lib/gnu/xml/transform/TemplateNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/TemplateNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.class b/libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.class
index 34e0f74..cc87920 100644
--- a/libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.class
+++ b/libjava/classpath/lib/gnu/xml/transform/TemplatesImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/TextNode.class b/libjava/classpath/lib/gnu/xml/transform/TextNode.class
index dcea7b9..5c1122f 100644
--- a/libjava/classpath/lib/gnu/xml/transform/TextNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/TextNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/TransformerImpl.class b/libjava/classpath/lib/gnu/xml/transform/TransformerImpl.class
index 55db4fe..05c1284 100644
--- a/libjava/classpath/lib/gnu/xml/transform/TransformerImpl.class
+++ b/libjava/classpath/lib/gnu/xml/transform/TransformerImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.class b/libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.class
index b66ccf7..8785f2e 100644
--- a/libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.class
+++ b/libjava/classpath/lib/gnu/xml/transform/TransformerOutputProperties.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.class b/libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.class
index 470c75c..263c923 100644
--- a/libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.class
+++ b/libjava/classpath/lib/gnu/xml/transform/UnparsedEntityUriFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/ValueOfNode.class b/libjava/classpath/lib/gnu/xml/transform/ValueOfNode.class
index d583dcf..110db7b 100644
--- a/libjava/classpath/lib/gnu/xml/transform/ValueOfNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/ValueOfNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/WhenNode.class b/libjava/classpath/lib/gnu/xml/transform/WhenNode.class
index fccfca9..4f4886b 100644
--- a/libjava/classpath/lib/gnu/xml/transform/WhenNode.class
+++ b/libjava/classpath/lib/gnu/xml/transform/WhenNode.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/XSLComparator.class b/libjava/classpath/lib/gnu/xml/transform/XSLComparator.class
index 2eb3867..1baad2f 100644
--- a/libjava/classpath/lib/gnu/xml/transform/XSLComparator.class
+++ b/libjava/classpath/lib/gnu/xml/transform/XSLComparator.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.class b/libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.class
index 064742c..9d4fe55 100644
--- a/libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.class
+++ b/libjava/classpath/lib/gnu/xml/transform/XSLURIResolver.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.class b/libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.class
index eb178d7..1e83d31 100644
--- a/libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.class
+++ b/libjava/classpath/lib/gnu/xml/util/DoParse$MyErrorHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/util/DoParse.class b/libjava/classpath/lib/gnu/xml/util/DoParse.class
index 7f87a146..c656fd5 100644
--- a/libjava/classpath/lib/gnu/xml/util/DoParse.class
+++ b/libjava/classpath/lib/gnu/xml/util/DoParse.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/util/XCat$Catalog.class b/libjava/classpath/lib/gnu/xml/util/XCat$Catalog.class
index efeb4cb..2c41633 100644
--- a/libjava/classpath/lib/gnu/xml/util/XCat$Catalog.class
+++ b/libjava/classpath/lib/gnu/xml/util/XCat$Catalog.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.class b/libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.class
index 3d8b904..8af5791 100644
--- a/libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.class
+++ b/libjava/classpath/lib/gnu/xml/util/XCat$DoneDelegation.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/util/XCat$Loader.class b/libjava/classpath/lib/gnu/xml/util/XCat$Loader.class
index a603a84..2bb8f57 100644
--- a/libjava/classpath/lib/gnu/xml/util/XCat$Loader.class
+++ b/libjava/classpath/lib/gnu/xml/util/XCat$Loader.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/util/XCat.class b/libjava/classpath/lib/gnu/xml/util/XCat.class
index b80b15b..c558c1a 100644
--- a/libjava/classpath/lib/gnu/xml/util/XCat.class
+++ b/libjava/classpath/lib/gnu/xml/util/XCat.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/util/XMLWriter.class b/libjava/classpath/lib/gnu/xml/util/XMLWriter.class
index 65ac2d0..7ccb56f 100644
--- a/libjava/classpath/lib/gnu/xml/util/XMLWriter.class
+++ b/libjava/classpath/lib/gnu/xml/util/XMLWriter.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.class
index 26034ee..f1a8a34 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/EntitiesType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.class b/libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.class
index f0a0dff..0c6e17f 100644
--- a/libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.class
+++ b/libjava/classpath/lib/gnu/xml/validation/datatype/NMTokensType.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.class b/libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.class
index de7f2fc..652ff64 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/ArithmeticExpr.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.class b/libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.class
index 960604c..f07b533 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/BooleanFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.class b/libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.class
index 361d124..02a47f4 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/CeilingFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.class b/libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.class
index 4c706a2..fac4294 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/ConcatFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.class b/libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.class
index 5fb6023..0d43e27 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/ContainsFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/CountFunction.class b/libjava/classpath/lib/gnu/xml/xpath/CountFunction.class
index fad78ca..05f832f 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/CountFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/CountFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.class b/libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.class
index 8b37585..2d192a3 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/DocumentOrderComparator.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.class b/libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.class
index fb3075b..8960774 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/EqualityExpr.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.class b/libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.class
index ebf27e4..d09ed20 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/Expr$ExprNodeSet.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/Expr.class b/libjava/classpath/lib/gnu/xml/xpath/Expr.class
index cc1e8c7..5553fcf 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/Expr.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/Expr.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/FloorFunction.class b/libjava/classpath/lib/gnu/xml/xpath/FloorFunction.class
index e630680..8f95ae0 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/FloorFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/FloorFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/Function.class b/libjava/classpath/lib/gnu/xml/xpath/Function.class
index eb4c96e..7e7c470 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/Function.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/Function.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/FunctionCall.class b/libjava/classpath/lib/gnu/xml/xpath/FunctionCall.class
index e78249c..a0578b0 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/FunctionCall.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/FunctionCall.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/IdFunction.class b/libjava/classpath/lib/gnu/xml/xpath/IdFunction.class
index 701fe7e..51b3a30 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/IdFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/IdFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/LangFunction.class b/libjava/classpath/lib/gnu/xml/xpath/LangFunction.class
index 454957c..b9f00d6 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/LangFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/LangFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.class b/libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.class
index 3e5d22a..d37032d 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/LocalNameFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/NameFunction.class b/libjava/classpath/lib/gnu/xml/xpath/NameFunction.class
index ae556d2..7cf5546 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/NameFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/NameFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.class b/libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.class
index d143bfd..57ad9a7 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/NamespaceUriFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.class b/libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.class
index 8077365..8cc99c8 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/NormalizeSpaceFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/NotFunction.class b/libjava/classpath/lib/gnu/xml/xpath/NotFunction.class
index a62c05e..6473f2c 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/NotFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/NotFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/NumberFunction.class b/libjava/classpath/lib/gnu/xml/xpath/NumberFunction.class
index 49843d2..abe9e641 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/NumberFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/NumberFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.class b/libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.class
index 3204f7a..bc9ebf2 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/ParenthesizedExpr.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/Path.class b/libjava/classpath/lib/gnu/xml/xpath/Path.class
index 9dfbb9f..c4f9589 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/Path.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/Path.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/Root.class b/libjava/classpath/lib/gnu/xml/xpath/Root.class
index f72433e..09af651 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/Root.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/Root.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/RoundFunction.class b/libjava/classpath/lib/gnu/xml/xpath/RoundFunction.class
index 69af4c9..2af9ee5 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/RoundFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/RoundFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/Selector.class b/libjava/classpath/lib/gnu/xml/xpath/Selector.class
index d31e58c..d4899fa 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/Selector.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/Selector.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.class b/libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.class
index e44af9f..0df9e72 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/StartsWithFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/Steps.class b/libjava/classpath/lib/gnu/xml/xpath/Steps.class
index e2feed6..23cf9e7 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/Steps.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/Steps.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/StringFunction.class b/libjava/classpath/lib/gnu/xml/xpath/StringFunction.class
index de96161..cc96a50 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/StringFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/StringFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.class b/libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.class
index ef7032b..0f7566b 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/StringLengthFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.class b/libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.class
index df689d6..dac3c10 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/SubstringAfterFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.class b/libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.class
index ccbe7c5..fbf682b 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/SubstringBeforeFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.class b/libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.class
index 5374637..9b6906f 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/SubstringFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/SumFunction.class b/libjava/classpath/lib/gnu/xml/xpath/SumFunction.class
index e4fbcbea..9e4c57a 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/SumFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/SumFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.class b/libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.class
index afbe0b2..fc36db2 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/TranslateFunction.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/UnionExpr.class b/libjava/classpath/lib/gnu/xml/xpath/UnionExpr.class
index 1d0f4c3..d806be8 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/UnionExpr.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/UnionExpr.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/VariableReference.class b/libjava/classpath/lib/gnu/xml/xpath/VariableReference.class
index 43e13e0..579dcbd 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/VariableReference.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/VariableReference.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class
index 99015763..b515052 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyCheckClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class
index 5463ec7..4f291f5 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDefRedClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class
index def7756..0edc7d8 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyDgotoClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class
index 210ac23..b31846a 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyGindexClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class
index cf416f5..473e6c0 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLenClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class
index 39660d0..e3c6f9d 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyLhsClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class
index 321c568..c3b44a4 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyNameClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class
index 3305a4a..0c7a8b7 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyRindexClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class
index a02bc9a..3befbea 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YySindexClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class
index c1144a3..1e4c755 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser$YyTableClass.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class b/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class
index ec9063d..cffbc28 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathParser.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.class b/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.class
index 0085423..357503f 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer$XPathToken.class
Binary files differ
diff --git a/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.class b/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.class
index 14b23a3..8338247 100644
--- a/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.class
+++ b/libjava/classpath/lib/gnu/xml/xpath/XPathTokenizer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/AlphaComposite.class b/libjava/classpath/lib/java/awt/AlphaComposite.class
index 9aa4fec..2747d33 100644
--- a/libjava/classpath/lib/java/awt/AlphaComposite.class
+++ b/libjava/classpath/lib/java/awt/AlphaComposite.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class
index 6c5bdeb..80ac959 100644
--- a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class
+++ b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTComponentHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class
index e2e3e87..80a28f7 100644
--- a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class
+++ b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent$AccessibleAWTFocusHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class
index 2253232..10a5172 100644
--- a/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class
+++ b/libjava/classpath/lib/java/awt/Component$AccessibleAWTComponent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class b/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class
index e796a03..5773bf7 100644
--- a/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class
+++ b/libjava/classpath/lib/java/awt/Component$BltBufferStrategy.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class b/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class
index f0857dc..1883e38 100644
--- a/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class
+++ b/libjava/classpath/lib/java/awt/Component$FlipBufferStrategy.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class b/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class
index 60503e6..783f6c5 100644
--- a/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class
+++ b/libjava/classpath/lib/java/awt/Component$HeavyweightInLightweightListener.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Component.class b/libjava/classpath/lib/java/awt/Component.class
index 90b546c..e964339 100644
--- a/libjava/classpath/lib/java/awt/Component.class
+++ b/libjava/classpath/lib/java/awt/Component.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class
index 5f045ab..a65f76a 100644
--- a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class
+++ b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer$AccessibleContainerHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class
index 167660a..7fc7622 100644
--- a/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class
+++ b/libjava/classpath/lib/java/awt/Container$AccessibleAWTContainer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class
index cd7fd4c..00faf85 100644
--- a/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class
+++ b/libjava/classpath/lib/java/awt/Container$GfxPaintAllVisitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class
index 791d857..63ccd7e 100644
--- a/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class
+++ b/libjava/classpath/lib/java/awt/Container$GfxPaintVisitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class
index 0876318..a8dfd54 100644
--- a/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class
+++ b/libjava/classpath/lib/java/awt/Container$GfxPrintAllVisitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class
index c8557e9..6e0285c 100644
--- a/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class
+++ b/libjava/classpath/lib/java/awt/Container$GfxPrintVisitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container$GfxVisitor.class b/libjava/classpath/lib/java/awt/Container$GfxVisitor.class
index 9fd2811..c216c2a 100644
--- a/libjava/classpath/lib/java/awt/Container$GfxVisitor.class
+++ b/libjava/classpath/lib/java/awt/Container$GfxVisitor.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/Container.class b/libjava/classpath/lib/java/awt/Container.class
index 73f5565..f7d3b8c 100644
--- a/libjava/classpath/lib/java/awt/Container.class
+++ b/libjava/classpath/lib/java/awt/Container.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.class b/libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.class
index 6f8e477..441c785 100644
--- a/libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.class
+++ b/libjava/classpath/lib/java/awt/JobAttributes$DefaultSelectionType.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/JobAttributes$DestinationType.class b/libjava/classpath/lib/java/awt/JobAttributes$DestinationType.class
index 944d5ec..046846e 100644
--- a/libjava/classpath/lib/java/awt/JobAttributes$DestinationType.class
+++ b/libjava/classpath/lib/java/awt/JobAttributes$DestinationType.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/JobAttributes$DialogType.class b/libjava/classpath/lib/java/awt/JobAttributes$DialogType.class
index 0657d71..310cda3 100644
--- a/libjava/classpath/lib/java/awt/JobAttributes$DialogType.class
+++ b/libjava/classpath/lib/java/awt/JobAttributes$DialogType.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.class b/libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.class
index ede25d61..9700f78 100644
--- a/libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.class
+++ b/libjava/classpath/lib/java/awt/JobAttributes$MultipleDocumentHandlingType.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/JobAttributes$SidesType.class b/libjava/classpath/lib/java/awt/JobAttributes$SidesType.class
index 23984c1..e0a5292 100644
--- a/libjava/classpath/lib/java/awt/JobAttributes$SidesType.class
+++ b/libjava/classpath/lib/java/awt/JobAttributes$SidesType.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/JobAttributes.class b/libjava/classpath/lib/java/awt/JobAttributes.class
index 7aec916..8c3bb97 100644
--- a/libjava/classpath/lib/java/awt/JobAttributes.class
+++ b/libjava/classpath/lib/java/awt/JobAttributes.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/MouseInfo.class b/libjava/classpath/lib/java/awt/MouseInfo.class
index dd9eb3a..9d180d1 100644
--- a/libjava/classpath/lib/java/awt/MouseInfo.class
+++ b/libjava/classpath/lib/java/awt/MouseInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/datatransfer/MimeType.class b/libjava/classpath/lib/java/awt/datatransfer/MimeType.class
index 32f936a..4994b29 100644
--- a/libjava/classpath/lib/java/awt/datatransfer/MimeType.class
+++ b/libjava/classpath/lib/java/awt/datatransfer/MimeType.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/event/ActionEvent.class b/libjava/classpath/lib/java/awt/event/ActionEvent.class
index 2fa8ea4..8fdce74 100644
--- a/libjava/classpath/lib/java/awt/event/ActionEvent.class
+++ b/libjava/classpath/lib/java/awt/event/ActionEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/event/ComponentEvent.class b/libjava/classpath/lib/java/awt/event/ComponentEvent.class
index 08c2ede..51b83f7 100644
--- a/libjava/classpath/lib/java/awt/event/ComponentEvent.class
+++ b/libjava/classpath/lib/java/awt/event/ComponentEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/event/HierarchyEvent.class b/libjava/classpath/lib/java/awt/event/HierarchyEvent.class
index b1efe79..e85e083 100644
--- a/libjava/classpath/lib/java/awt/event/HierarchyEvent.class
+++ b/libjava/classpath/lib/java/awt/event/HierarchyEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/event/InputEvent.class b/libjava/classpath/lib/java/awt/event/InputEvent.class
index f4fa20c..c7717d7 100644
--- a/libjava/classpath/lib/java/awt/event/InputEvent.class
+++ b/libjava/classpath/lib/java/awt/event/InputEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/event/InputMethodEvent.class b/libjava/classpath/lib/java/awt/event/InputMethodEvent.class
index c1889bb..4b0c340 100644
--- a/libjava/classpath/lib/java/awt/event/InputMethodEvent.class
+++ b/libjava/classpath/lib/java/awt/event/InputMethodEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/event/KeyEvent.class b/libjava/classpath/lib/java/awt/event/KeyEvent.class
index 7b21983..27c8493 100644
--- a/libjava/classpath/lib/java/awt/event/KeyEvent.class
+++ b/libjava/classpath/lib/java/awt/event/KeyEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/event/MouseEvent.class b/libjava/classpath/lib/java/awt/event/MouseEvent.class
index 2f6cffe..f0c16e5 100644
--- a/libjava/classpath/lib/java/awt/event/MouseEvent.class
+++ b/libjava/classpath/lib/java/awt/event/MouseEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/event/WindowEvent.class b/libjava/classpath/lib/java/awt/event/WindowEvent.class
index 38aa1d6..33357d5 100644
--- a/libjava/classpath/lib/java/awt/event/WindowEvent.class
+++ b/libjava/classpath/lib/java/awt/event/WindowEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.class b/libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.class
index 5b4117e..578b710 100644
--- a/libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.class
+++ b/libjava/classpath/lib/java/awt/font/TextLayout$CaretPolicy.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/font/TextLayout$Run.class b/libjava/classpath/lib/java/awt/font/TextLayout$Run.class
index 09bb71d..09a0d03 100644
--- a/libjava/classpath/lib/java/awt/font/TextLayout$Run.class
+++ b/libjava/classpath/lib/java/awt/font/TextLayout$Run.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/font/TextLayout.class b/libjava/classpath/lib/java/awt/font/TextLayout.class
index 706bedb..ef367a4 100644
--- a/libjava/classpath/lib/java/awt/font/TextLayout.class
+++ b/libjava/classpath/lib/java/awt/font/TextLayout.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/BandedSampleModel.class b/libjava/classpath/lib/java/awt/image/BandedSampleModel.class
index 534e15f..53b92f9 100644
--- a/libjava/classpath/lib/java/awt/image/BandedSampleModel.class
+++ b/libjava/classpath/lib/java/awt/image/BandedSampleModel.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/BufferedImage$1.class b/libjava/classpath/lib/java/awt/image/BufferedImage$1.class
index 5d5a3c8..5654d42 100644
--- a/libjava/classpath/lib/java/awt/image/BufferedImage$1.class
+++ b/libjava/classpath/lib/java/awt/image/BufferedImage$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/BufferedImage.class b/libjava/classpath/lib/java/awt/image/BufferedImage.class
index dc90bfc..ea8d17b 100644
--- a/libjava/classpath/lib/java/awt/image/BufferedImage.class
+++ b/libjava/classpath/lib/java/awt/image/BufferedImage.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/ColorModel.class b/libjava/classpath/lib/java/awt/image/ColorModel.class
index 5806aab..7817ed9 100644
--- a/libjava/classpath/lib/java/awt/image/ColorModel.class
+++ b/libjava/classpath/lib/java/awt/image/ColorModel.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/ComponentColorModel.class b/libjava/classpath/lib/java/awt/image/ComponentColorModel.class
index e9be93f..4838fa2 100644
--- a/libjava/classpath/lib/java/awt/image/ComponentColorModel.class
+++ b/libjava/classpath/lib/java/awt/image/ComponentColorModel.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/DirectColorModel.class b/libjava/classpath/lib/java/awt/image/DirectColorModel.class
index a149ac6..006220b 100644
--- a/libjava/classpath/lib/java/awt/image/DirectColorModel.class
+++ b/libjava/classpath/lib/java/awt/image/DirectColorModel.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.class b/libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.class
index 9fae4ab..7c3a3e2 100644
--- a/libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.class
+++ b/libjava/classpath/lib/java/awt/image/MultiPixelPackedSampleModel.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/Raster.class b/libjava/classpath/lib/java/awt/image/Raster.class
index bc95252..c20f40e 100644
--- a/libjava/classpath/lib/java/awt/image/Raster.class
+++ b/libjava/classpath/lib/java/awt/image/Raster.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.class b/libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.class
index 15bf99e..3dd2603 100644
--- a/libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.class
+++ b/libjava/classpath/lib/java/awt/image/SinglePixelPackedSampleModel.class
Binary files differ
diff --git a/libjava/classpath/lib/java/awt/image/WritableRaster.class b/libjava/classpath/lib/java/awt/image/WritableRaster.class
index d80cfee..b70eb32 100644
--- a/libjava/classpath/lib/java/awt/image/WritableRaster.class
+++ b/libjava/classpath/lib/java/awt/image/WritableRaster.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/Statement.class b/libjava/classpath/lib/java/beans/Statement.class
index c9eddc2..d07ba1c 100644
--- a/libjava/classpath/lib/java/beans/Statement.class
+++ b/libjava/classpath/lib/java/beans/Statement.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class
index 8e653bb..a63427f 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class
index a4b93fd..aa6333b 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$BCSSServiceProvider.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class
index d9a621d..27b6ba9 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$Request.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class
index b8af638..449fcd3 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceLease.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class
index 5ecc39b..4f4843d 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport$ServiceRequest.class
Binary files differ
diff --git a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class
index 369f5f9..753e2d8 100644
--- a/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class
+++ b/libjava/classpath/lib/java/beans/beancontext/BeanContextServicesSupport.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/BufferedReader.class b/libjava/classpath/lib/java/io/BufferedReader.class
index 8189aac..9f721f5 100644
--- a/libjava/classpath/lib/java/io/BufferedReader.class
+++ b/libjava/classpath/lib/java/io/BufferedReader.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/DataInputStream.class b/libjava/classpath/lib/java/io/DataInputStream.class
index 87ac5bd..7a14ca3 100644
--- a/libjava/classpath/lib/java/io/DataInputStream.class
+++ b/libjava/classpath/lib/java/io/DataInputStream.class
Binary files differ
diff --git a/libjava/classpath/lib/java/io/StreamTokenizer.class b/libjava/classpath/lib/java/io/StreamTokenizer.class
index 2afe400..c3ae04b 100644
--- a/libjava/classpath/lib/java/io/StreamTokenizer.class
+++ b/libjava/classpath/lib/java/io/StreamTokenizer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/AbstractStringBuffer.class b/libjava/classpath/lib/java/lang/AbstractStringBuffer.class
new file mode 100644
index 0000000..76b509c
--- /dev/null
+++ b/libjava/classpath/lib/java/lang/AbstractStringBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Byte.class b/libjava/classpath/lib/java/lang/Byte.class
index 1ace4ad..56635ac 100644
--- a/libjava/classpath/lib/java/lang/Byte.class
+++ b/libjava/classpath/lib/java/lang/Byte.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/ClassLoader.class b/libjava/classpath/lib/java/lang/ClassLoader.class
index 694b514..67bb49e 100644
--- a/libjava/classpath/lib/java/lang/ClassLoader.class
+++ b/libjava/classpath/lib/java/lang/ClassLoader.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Double.class b/libjava/classpath/lib/java/lang/Double.class
index 8316ce2..a9042ea 100644
--- a/libjava/classpath/lib/java/lang/Double.class
+++ b/libjava/classpath/lib/java/lang/Double.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Enum.class b/libjava/classpath/lib/java/lang/Enum.class
index 82d2041..76411a6 100644
--- a/libjava/classpath/lib/java/lang/Enum.class
+++ b/libjava/classpath/lib/java/lang/Enum.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Float.class b/libjava/classpath/lib/java/lang/Float.class
index 8a47f1e..bccf405 100644
--- a/libjava/classpath/lib/java/lang/Float.class
+++ b/libjava/classpath/lib/java/lang/Float.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/InheritableThreadLocal.class b/libjava/classpath/lib/java/lang/InheritableThreadLocal.class
index 3eea8f7..7d85022 100644
--- a/libjava/classpath/lib/java/lang/InheritableThreadLocal.class
+++ b/libjava/classpath/lib/java/lang/InheritableThreadLocal.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Integer.class b/libjava/classpath/lib/java/lang/Integer.class
index c1d69f8..2f894a4 100644
--- a/libjava/classpath/lib/java/lang/Integer.class
+++ b/libjava/classpath/lib/java/lang/Integer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Long.class b/libjava/classpath/lib/java/lang/Long.class
index 3b8b904..7223992 100644
--- a/libjava/classpath/lib/java/lang/Long.class
+++ b/libjava/classpath/lib/java/lang/Long.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Short.class b/libjava/classpath/lib/java/lang/Short.class
index 0c6abf1..0baf8dc 100644
--- a/libjava/classpath/lib/java/lang/Short.class
+++ b/libjava/classpath/lib/java/lang/Short.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/String.class b/libjava/classpath/lib/java/lang/String.class
index 43cc87f..4855eab 100644
--- a/libjava/classpath/lib/java/lang/String.class
+++ b/libjava/classpath/lib/java/lang/String.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/StringBuffer.class b/libjava/classpath/lib/java/lang/StringBuffer.class
index 60b7144..fd34059 100644
--- a/libjava/classpath/lib/java/lang/StringBuffer.class
+++ b/libjava/classpath/lib/java/lang/StringBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/StringBuilder.class b/libjava/classpath/lib/java/lang/StringBuilder.class
index 90e6fab..c69d892 100644
--- a/libjava/classpath/lib/java/lang/StringBuilder.class
+++ b/libjava/classpath/lib/java/lang/StringBuilder.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Thread$State.class b/libjava/classpath/lib/java/lang/Thread$State.class
index d3d92a8..bbe0634 100644
--- a/libjava/classpath/lib/java/lang/Thread$State.class
+++ b/libjava/classpath/lib/java/lang/Thread$State.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Thread.class b/libjava/classpath/lib/java/lang/Thread.class
index e164da7..5807eca 100644
--- a/libjava/classpath/lib/java/lang/Thread.class
+++ b/libjava/classpath/lib/java/lang/Thread.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/ThreadLocal.class b/libjava/classpath/lib/java/lang/ThreadLocal.class
index 35c7fb8..86f3a03 100644
--- a/libjava/classpath/lib/java/lang/ThreadLocal.class
+++ b/libjava/classpath/lib/java/lang/ThreadLocal.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/ThreadLocalMap$Entry.class b/libjava/classpath/lib/java/lang/ThreadLocalMap$Entry.class
new file mode 100644
index 0000000..ae19442
--- /dev/null
+++ b/libjava/classpath/lib/java/lang/ThreadLocalMap$Entry.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/ThreadLocalMap.class b/libjava/classpath/lib/java/lang/ThreadLocalMap.class
new file mode 100644
index 0000000..aefc7b7
--- /dev/null
+++ b/libjava/classpath/lib/java/lang/ThreadLocalMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Throwable$StaticData.class b/libjava/classpath/lib/java/lang/Throwable$StaticData.class
index 540bf1d..3f7db81 100644
--- a/libjava/classpath/lib/java/lang/Throwable$StaticData.class
+++ b/libjava/classpath/lib/java/lang/Throwable$StaticData.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/Throwable.class b/libjava/classpath/lib/java/lang/Throwable.class
index 48ea036..df135cc 100644
--- a/libjava/classpath/lib/java/lang/Throwable.class
+++ b/libjava/classpath/lib/java/lang/Throwable.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/reflect/AccessibleObject.class b/libjava/classpath/lib/java/lang/reflect/AccessibleObject.class
index 6f4023f..ccf3403 100644
--- a/libjava/classpath/lib/java/lang/reflect/AccessibleObject.class
+++ b/libjava/classpath/lib/java/lang/reflect/AccessibleObject.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class
index 245c4e6..dacb338 100644
--- a/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class
+++ b/libjava/classpath/lib/java/lang/reflect/Proxy$ClassFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.class
index 3556b58..d75929d 100644
--- a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.class
+++ b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyData.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class
index 97905c6..be48467 100644
--- a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class
+++ b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxySignature.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.class b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.class
index d43a483..324f00e 100644
--- a/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.class
+++ b/libjava/classpath/lib/java/lang/reflect/Proxy$ProxyType.class
Binary files differ
diff --git a/libjava/classpath/lib/java/lang/reflect/Proxy.class b/libjava/classpath/lib/java/lang/reflect/Proxy.class
index 96b42f8b..b0803ab 100644
--- a/libjava/classpath/lib/java/lang/reflect/Proxy.class
+++ b/libjava/classpath/lib/java/lang/reflect/Proxy.class
Binary files differ
diff --git a/libjava/classpath/lib/java/math/BigDecimal.class b/libjava/classpath/lib/java/math/BigDecimal.class
index 6ba16ba..6f4b144 100644
--- a/libjava/classpath/lib/java/math/BigDecimal.class
+++ b/libjava/classpath/lib/java/math/BigDecimal.class
Binary files differ
diff --git a/libjava/classpath/lib/java/math/BigInteger.class b/libjava/classpath/lib/java/math/BigInteger.class
index 01a604a..c27e41f 100644
--- a/libjava/classpath/lib/java/math/BigInteger.class
+++ b/libjava/classpath/lib/java/math/BigInteger.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/Inet4Address.class b/libjava/classpath/lib/java/net/Inet4Address.class
index b3a652b..f0b7d32 100644
--- a/libjava/classpath/lib/java/net/Inet4Address.class
+++ b/libjava/classpath/lib/java/net/Inet4Address.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/Inet6Address.class b/libjava/classpath/lib/java/net/Inet6Address.class
index d43e8a7..ad7ea39 100644
--- a/libjava/classpath/lib/java/net/Inet6Address.class
+++ b/libjava/classpath/lib/java/net/Inet6Address.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/SocketPermission.class b/libjava/classpath/lib/java/net/SocketPermission.class
index addeebe..61b3a40 100644
--- a/libjava/classpath/lib/java/net/SocketPermission.class
+++ b/libjava/classpath/lib/java/net/SocketPermission.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URI.class b/libjava/classpath/lib/java/net/URI.class
index c44d223..fdbe858 100644
--- a/libjava/classpath/lib/java/net/URI.class
+++ b/libjava/classpath/lib/java/net/URI.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLClassLoader$1.class b/libjava/classpath/lib/java/net/URLClassLoader$1.class
index 6209502..8f89855 100644
--- a/libjava/classpath/lib/java/net/URLClassLoader$1.class
+++ b/libjava/classpath/lib/java/net/URLClassLoader$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLClassLoader$2.class b/libjava/classpath/lib/java/net/URLClassLoader$2.class
index 7f046b8..0079701 100644
--- a/libjava/classpath/lib/java/net/URLClassLoader$2.class
+++ b/libjava/classpath/lib/java/net/URLClassLoader$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLClassLoader.class b/libjava/classpath/lib/java/net/URLClassLoader.class
index 80a5e08..7c97e36 100644
--- a/libjava/classpath/lib/java/net/URLClassLoader.class
+++ b/libjava/classpath/lib/java/net/URLClassLoader.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLDecoder.class b/libjava/classpath/lib/java/net/URLDecoder.class
index 8c27d42..47d0e4f 100644
--- a/libjava/classpath/lib/java/net/URLDecoder.class
+++ b/libjava/classpath/lib/java/net/URLDecoder.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLEncoder.class b/libjava/classpath/lib/java/net/URLEncoder.class
index d573af8..f12f243 100644
--- a/libjava/classpath/lib/java/net/URLEncoder.class
+++ b/libjava/classpath/lib/java/net/URLEncoder.class
Binary files differ
diff --git a/libjava/classpath/lib/java/net/URLStreamHandler.class b/libjava/classpath/lib/java/net/URLStreamHandler.class
index 2d21739..206be50 100644
--- a/libjava/classpath/lib/java/net/URLStreamHandler.class
+++ b/libjava/classpath/lib/java/net/URLStreamHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/Buffer.class b/libjava/classpath/lib/java/nio/Buffer.class
index 4d9ef52..d564a14 100644
--- a/libjava/classpath/lib/java/nio/Buffer.class
+++ b/libjava/classpath/lib/java/nio/Buffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/ByteBuffer.class b/libjava/classpath/lib/java/nio/ByteBuffer.class
index 183f21f..e460e6f 100644
--- a/libjava/classpath/lib/java/nio/ByteBuffer.class
+++ b/libjava/classpath/lib/java/nio/ByteBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/ByteBufferImpl.class b/libjava/classpath/lib/java/nio/ByteBufferImpl.class
index 91c3530..2508279 100644
--- a/libjava/classpath/lib/java/nio/ByteBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/ByteBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/CharBuffer.class b/libjava/classpath/lib/java/nio/CharBuffer.class
index 5f4bc4e..67b7f77 100644
--- a/libjava/classpath/lib/java/nio/CharBuffer.class
+++ b/libjava/classpath/lib/java/nio/CharBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/CharBufferImpl.class b/libjava/classpath/lib/java/nio/CharBufferImpl.class
index e1beb2e..77c9ba3 100644
--- a/libjava/classpath/lib/java/nio/CharBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/CharBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/CharSequenceBuffer.class b/libjava/classpath/lib/java/nio/CharSequenceBuffer.class
index dbd8f15..836fe11 100644
--- a/libjava/classpath/lib/java/nio/CharSequenceBuffer.class
+++ b/libjava/classpath/lib/java/nio/CharSequenceBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/CharViewBufferImpl.class b/libjava/classpath/lib/java/nio/CharViewBufferImpl.class
index 2e5c5e8..1227884 100644
--- a/libjava/classpath/lib/java/nio/CharViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/CharViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/DirectByteBufferImpl.class b/libjava/classpath/lib/java/nio/DirectByteBufferImpl.class
index c6b685d..8e98339 100644
--- a/libjava/classpath/lib/java/nio/DirectByteBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/DirectByteBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/DoubleBuffer.class b/libjava/classpath/lib/java/nio/DoubleBuffer.class
index ed27462..2a1d81b 100644
--- a/libjava/classpath/lib/java/nio/DoubleBuffer.class
+++ b/libjava/classpath/lib/java/nio/DoubleBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/DoubleBufferImpl.class b/libjava/classpath/lib/java/nio/DoubleBufferImpl.class
index 91f3dc2..ea7b119 100644
--- a/libjava/classpath/lib/java/nio/DoubleBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/DoubleBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class b/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class
index 85c1c4d..6bca010 100644
--- a/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/DoubleViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/FloatBuffer.class b/libjava/classpath/lib/java/nio/FloatBuffer.class
index 5dde0ed..3dbabef 100644
--- a/libjava/classpath/lib/java/nio/FloatBuffer.class
+++ b/libjava/classpath/lib/java/nio/FloatBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/FloatBufferImpl.class b/libjava/classpath/lib/java/nio/FloatBufferImpl.class
index 4cacfea..d680901 100644
--- a/libjava/classpath/lib/java/nio/FloatBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/FloatBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class b/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class
index e5e22a3..0c6dfed 100644
--- a/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/FloatViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/IntBuffer.class b/libjava/classpath/lib/java/nio/IntBuffer.class
index f604662..0b420940 100644
--- a/libjava/classpath/lib/java/nio/IntBuffer.class
+++ b/libjava/classpath/lib/java/nio/IntBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/IntBufferImpl.class b/libjava/classpath/lib/java/nio/IntBufferImpl.class
index 95b0c4d..f18378b 100644
--- a/libjava/classpath/lib/java/nio/IntBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/IntBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/IntViewBufferImpl.class b/libjava/classpath/lib/java/nio/IntViewBufferImpl.class
index ec0607c..41bba35 100644
--- a/libjava/classpath/lib/java/nio/IntViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/IntViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/LongBuffer.class b/libjava/classpath/lib/java/nio/LongBuffer.class
index 510b91e..647b52a 100644
--- a/libjava/classpath/lib/java/nio/LongBuffer.class
+++ b/libjava/classpath/lib/java/nio/LongBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/LongBufferImpl.class b/libjava/classpath/lib/java/nio/LongBufferImpl.class
index 6c85f50..a4bfbe1 100644
--- a/libjava/classpath/lib/java/nio/LongBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/LongBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/LongViewBufferImpl.class b/libjava/classpath/lib/java/nio/LongViewBufferImpl.class
index 5dd6cd4..2ee4ed2 100644
--- a/libjava/classpath/lib/java/nio/LongViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/LongViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/MappedByteBuffer.class b/libjava/classpath/lib/java/nio/MappedByteBuffer.class
index 05f6493..4de3a2a 100644
--- a/libjava/classpath/lib/java/nio/MappedByteBuffer.class
+++ b/libjava/classpath/lib/java/nio/MappedByteBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/MappedByteBufferImpl.class b/libjava/classpath/lib/java/nio/MappedByteBufferImpl.class
index 1c3c7d1..94e64b7 100644
--- a/libjava/classpath/lib/java/nio/MappedByteBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/MappedByteBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/ShortBuffer.class b/libjava/classpath/lib/java/nio/ShortBuffer.class
index 40d4faf..e0f128f 100644
--- a/libjava/classpath/lib/java/nio/ShortBuffer.class
+++ b/libjava/classpath/lib/java/nio/ShortBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/ShortBufferImpl.class b/libjava/classpath/lib/java/nio/ShortBufferImpl.class
index cb5b4f3..9f8b834 100644
--- a/libjava/classpath/lib/java/nio/ShortBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/ShortBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class b/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class
index 5171ca6..76e3467 100644
--- a/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class
+++ b/libjava/classpath/lib/java/nio/ShortViewBufferImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/java/nio/channels/FileLock.class b/libjava/classpath/lib/java/nio/channels/FileLock.class
index 605380d..72969c2 100644
--- a/libjava/classpath/lib/java/nio/channels/FileLock.class
+++ b/libjava/classpath/lib/java/nio/channels/FileLock.class
Binary files differ
diff --git a/libjava/classpath/lib/java/rmi/activation/Activatable.class b/libjava/classpath/lib/java/rmi/activation/Activatable.class
index fd96c1a..7474da8 100644
--- a/libjava/classpath/lib/java/rmi/activation/Activatable.class
+++ b/libjava/classpath/lib/java/rmi/activation/Activatable.class
Binary files differ
diff --git a/libjava/classpath/lib/java/rmi/dgc/VMID.class b/libjava/classpath/lib/java/rmi/dgc/VMID.class
index 35a992d..fd493e3 100644
--- a/libjava/classpath/lib/java/rmi/dgc/VMID.class
+++ b/libjava/classpath/lib/java/rmi/dgc/VMID.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/AlgorithmParameterGenerator.class b/libjava/classpath/lib/java/security/AlgorithmParameterGenerator.class
index 7810eaf..db0edcc 100644
--- a/libjava/classpath/lib/java/security/AlgorithmParameterGenerator.class
+++ b/libjava/classpath/lib/java/security/AlgorithmParameterGenerator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/AlgorithmParameters.class b/libjava/classpath/lib/java/security/AlgorithmParameters.class
index a9d77c9..418d06f 100644
--- a/libjava/classpath/lib/java/security/AlgorithmParameters.class
+++ b/libjava/classpath/lib/java/security/AlgorithmParameters.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/CodeSource.class b/libjava/classpath/lib/java/security/CodeSource.class
index 733d14d..f93af3c 100644
--- a/libjava/classpath/lib/java/security/CodeSource.class
+++ b/libjava/classpath/lib/java/security/CodeSource.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/KeyFactory.class b/libjava/classpath/lib/java/security/KeyFactory.class
index 42a4c97..a03ecef 100644
--- a/libjava/classpath/lib/java/security/KeyFactory.class
+++ b/libjava/classpath/lib/java/security/KeyFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/KeyPairGenerator.class b/libjava/classpath/lib/java/security/KeyPairGenerator.class
index ad30b19..9e4666f 100644
--- a/libjava/classpath/lib/java/security/KeyPairGenerator.class
+++ b/libjava/classpath/lib/java/security/KeyPairGenerator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/MessageDigest.class b/libjava/classpath/lib/java/security/MessageDigest.class
index b2c9e73..6e29544 100644
--- a/libjava/classpath/lib/java/security/MessageDigest.class
+++ b/libjava/classpath/lib/java/security/MessageDigest.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/Permission.class b/libjava/classpath/lib/java/security/Permission.class
index c2a3df6..b267f2f 100644
--- a/libjava/classpath/lib/java/security/Permission.class
+++ b/libjava/classpath/lib/java/security/Permission.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/PermissionCollection.class b/libjava/classpath/lib/java/security/PermissionCollection.class
index bb61795..d6ec0a4 100644
--- a/libjava/classpath/lib/java/security/PermissionCollection.class
+++ b/libjava/classpath/lib/java/security/PermissionCollection.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/ProtectionDomain.class b/libjava/classpath/lib/java/security/ProtectionDomain.class
index cfac87e..46bd0af 100644
--- a/libjava/classpath/lib/java/security/ProtectionDomain.class
+++ b/libjava/classpath/lib/java/security/ProtectionDomain.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/SecureRandom.class b/libjava/classpath/lib/java/security/SecureRandom.class
index 78bdc63..e99049b 100644
--- a/libjava/classpath/lib/java/security/SecureRandom.class
+++ b/libjava/classpath/lib/java/security/SecureRandom.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/Signature.class b/libjava/classpath/lib/java/security/Signature.class
index eed75c1..17eb138 100644
--- a/libjava/classpath/lib/java/security/Signature.class
+++ b/libjava/classpath/lib/java/security/Signature.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.class b/libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.class
index 58cd7b0..a3e8599 100644
--- a/libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.class
+++ b/libjava/classpath/lib/java/security/cert/CertPath$CertPathRep.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/CertPath.class b/libjava/classpath/lib/java/security/cert/CertPath.class
index b16f484..7747cd8 100644
--- a/libjava/classpath/lib/java/security/cert/CertPath.class
+++ b/libjava/classpath/lib/java/security/cert/CertPath.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/CertPathBuilder.class b/libjava/classpath/lib/java/security/cert/CertPathBuilder.class
index fba37d7..ae24ff3 100644
--- a/libjava/classpath/lib/java/security/cert/CertPathBuilder.class
+++ b/libjava/classpath/lib/java/security/cert/CertPathBuilder.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/CertPathValidator$1.class b/libjava/classpath/lib/java/security/cert/CertPathValidator$1.class
index f160e28..50ac04e 100644
--- a/libjava/classpath/lib/java/security/cert/CertPathValidator$1.class
+++ b/libjava/classpath/lib/java/security/cert/CertPathValidator$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/CertPathValidator.class b/libjava/classpath/lib/java/security/cert/CertPathValidator.class
index 3b607d2..7437375 100644
--- a/libjava/classpath/lib/java/security/cert/CertPathValidator.class
+++ b/libjava/classpath/lib/java/security/cert/CertPathValidator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/CertStore$1.class b/libjava/classpath/lib/java/security/cert/CertStore$1.class
index cad6ee2..f4e9a2d 100644
--- a/libjava/classpath/lib/java/security/cert/CertStore$1.class
+++ b/libjava/classpath/lib/java/security/cert/CertStore$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/CertStore.class b/libjava/classpath/lib/java/security/cert/CertStore.class
index 1723402..2ec9e92 100644
--- a/libjava/classpath/lib/java/security/cert/CertStore.class
+++ b/libjava/classpath/lib/java/security/cert/CertStore.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.class b/libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.class
index b6b1425..dd9d6a3 100644
--- a/libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.class
+++ b/libjava/classpath/lib/java/security/cert/PKIXBuilderParameters.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.class b/libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.class
index 383ea72..4ceef49 100644
--- a/libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.class
+++ b/libjava/classpath/lib/java/security/cert/PKIXCertPathBuilderResult.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.class b/libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.class
index 5cbd3ca..30799bc 100644
--- a/libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.class
+++ b/libjava/classpath/lib/java/security/cert/PolicyQualifierInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/X509CRLSelector.class b/libjava/classpath/lib/java/security/cert/X509CRLSelector.class
index 7e1f08c..6327fc8 100644
--- a/libjava/classpath/lib/java/security/cert/X509CRLSelector.class
+++ b/libjava/classpath/lib/java/security/cert/X509CRLSelector.class
Binary files differ
diff --git a/libjava/classpath/lib/java/security/cert/X509CertSelector.class b/libjava/classpath/lib/java/security/cert/X509CertSelector.class
index 6235472..f10ecf8 100644
--- a/libjava/classpath/lib/java/security/cert/X509CertSelector.class
+++ b/libjava/classpath/lib/java/security/cert/X509CertSelector.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/AttributedString$AttributeRange.class b/libjava/classpath/lib/java/text/AttributedString$AttributeRange.class
index f941996..53c5692 100644
--- a/libjava/classpath/lib/java/text/AttributedString$AttributeRange.class
+++ b/libjava/classpath/lib/java/text/AttributedString$AttributeRange.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/AttributedString.class b/libjava/classpath/lib/java/text/AttributedString.class
index 89daccf..dfeeaec 100644
--- a/libjava/classpath/lib/java/text/AttributedString.class
+++ b/libjava/classpath/lib/java/text/AttributedString.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/ChoiceFormat.class b/libjava/classpath/lib/java/text/ChoiceFormat.class
index 77d704b..7fb2c84 100644
--- a/libjava/classpath/lib/java/text/ChoiceFormat.class
+++ b/libjava/classpath/lib/java/text/ChoiceFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/CollationElementIterator.class b/libjava/classpath/lib/java/text/CollationElementIterator.class
index 23e55d7..2e5675e 100644
--- a/libjava/classpath/lib/java/text/CollationElementIterator.class
+++ b/libjava/classpath/lib/java/text/CollationElementIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/DateFormat$Field.class b/libjava/classpath/lib/java/text/DateFormat$Field.class
index 18d8e32..263c86b 100644
--- a/libjava/classpath/lib/java/text/DateFormat$Field.class
+++ b/libjava/classpath/lib/java/text/DateFormat$Field.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/DateFormat.class b/libjava/classpath/lib/java/text/DateFormat.class
index d3e8fc8..b33fe7d 100644
--- a/libjava/classpath/lib/java/text/DateFormat.class
+++ b/libjava/classpath/lib/java/text/DateFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/DateFormatSymbols.class b/libjava/classpath/lib/java/text/DateFormatSymbols.class
index 5e91833..b58baed 100644
--- a/libjava/classpath/lib/java/text/DateFormatSymbols.class
+++ b/libjava/classpath/lib/java/text/DateFormatSymbols.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/DecimalFormat.class b/libjava/classpath/lib/java/text/DecimalFormat.class
index ad90313..ac7c7f9 100644
--- a/libjava/classpath/lib/java/text/DecimalFormat.class
+++ b/libjava/classpath/lib/java/text/DecimalFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/DecimalFormatSymbols.class b/libjava/classpath/lib/java/text/DecimalFormatSymbols.class
index 3719a02..c3b31fd 100644
--- a/libjava/classpath/lib/java/text/DecimalFormatSymbols.class
+++ b/libjava/classpath/lib/java/text/DecimalFormatSymbols.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/Format.class b/libjava/classpath/lib/java/text/Format.class
index 8dae54e..317e543 100644
--- a/libjava/classpath/lib/java/text/Format.class
+++ b/libjava/classpath/lib/java/text/Format.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/MessageFormat.class b/libjava/classpath/lib/java/text/MessageFormat.class
index 35ac131..04e2c62 100644
--- a/libjava/classpath/lib/java/text/MessageFormat.class
+++ b/libjava/classpath/lib/java/text/MessageFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/NumberFormat.class b/libjava/classpath/lib/java/text/NumberFormat.class
index 4398582..0a1939e 100644
--- a/libjava/classpath/lib/java/text/NumberFormat.class
+++ b/libjava/classpath/lib/java/text/NumberFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/RuleBasedCollator.class b/libjava/classpath/lib/java/text/RuleBasedCollator.class
index b11b44c..60a86ed 100644
--- a/libjava/classpath/lib/java/text/RuleBasedCollator.class
+++ b/libjava/classpath/lib/java/text/RuleBasedCollator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class b/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class
index 500c6f2..8423588 100644
--- a/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class
+++ b/libjava/classpath/lib/java/text/SimpleDateFormat$CompiledField.class
Binary files differ
diff --git a/libjava/classpath/lib/java/text/SimpleDateFormat.class b/libjava/classpath/lib/java/text/SimpleDateFormat.class
index 443bb43..0feab9a 100644
--- a/libjava/classpath/lib/java/text/SimpleDateFormat.class
+++ b/libjava/classpath/lib/java/text/SimpleDateFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/AbstractCollection.class b/libjava/classpath/lib/java/util/AbstractCollection.class
index 439e2f8..8114a70 100644
--- a/libjava/classpath/lib/java/util/AbstractCollection.class
+++ b/libjava/classpath/lib/java/util/AbstractCollection.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/AbstractMap$1.class b/libjava/classpath/lib/java/util/AbstractMap$1.class
index 0bafa25..1bd0b3f 100644
--- a/libjava/classpath/lib/java/util/AbstractMap$1.class
+++ b/libjava/classpath/lib/java/util/AbstractMap$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/AbstractMap$2.class b/libjava/classpath/lib/java/util/AbstractMap$2.class
index 8994649..82a6d51 100644
--- a/libjava/classpath/lib/java/util/AbstractMap$2.class
+++ b/libjava/classpath/lib/java/util/AbstractMap$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/AbstractMap$3.class b/libjava/classpath/lib/java/util/AbstractMap$3.class
index cfb86fc..e17978f 100644
--- a/libjava/classpath/lib/java/util/AbstractMap$3.class
+++ b/libjava/classpath/lib/java/util/AbstractMap$3.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/AbstractMap$4.class b/libjava/classpath/lib/java/util/AbstractMap$4.class
index 4f0fb13..0a5b27d 100644
--- a/libjava/classpath/lib/java/util/AbstractMap$4.class
+++ b/libjava/classpath/lib/java/util/AbstractMap$4.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.class b/libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.class
index 2ba043a..91d77c2 100644
--- a/libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.class
+++ b/libjava/classpath/lib/java/util/AbstractMap$SimpleEntry.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.class b/libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.class
index 313d8fd..66e6734 100644
--- a/libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.class
+++ b/libjava/classpath/lib/java/util/AbstractMap$SimpleImmutableEntry.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/AbstractMap.class b/libjava/classpath/lib/java/util/AbstractMap.class
index 77e9a25..d27b5cc 100644
--- a/libjava/classpath/lib/java/util/AbstractMap.class
+++ b/libjava/classpath/lib/java/util/AbstractMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/ArrayList.class b/libjava/classpath/lib/java/util/ArrayList.class
index e61f4d4..0b46df2 100644
--- a/libjava/classpath/lib/java/util/ArrayList.class
+++ b/libjava/classpath/lib/java/util/ArrayList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Arrays$ArrayList.class b/libjava/classpath/lib/java/util/Arrays$ArrayList.class
index 5d2b9d1..e89246a 100644
--- a/libjava/classpath/lib/java/util/Arrays$ArrayList.class
+++ b/libjava/classpath/lib/java/util/Arrays$ArrayList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Arrays.class b/libjava/classpath/lib/java/util/Arrays.class
index be00211..cbde315 100644
--- a/libjava/classpath/lib/java/util/Arrays.class
+++ b/libjava/classpath/lib/java/util/Arrays.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/BitSet.class b/libjava/classpath/lib/java/util/BitSet.class
index fb3ddb4..c5cd4f2 100644
--- a/libjava/classpath/lib/java/util/BitSet.class
+++ b/libjava/classpath/lib/java/util/BitSet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Calendar.class b/libjava/classpath/lib/java/util/Calendar.class
index 5f32ee1..95c75c7 100644
--- a/libjava/classpath/lib/java/util/Calendar.class
+++ b/libjava/classpath/lib/java/util/Calendar.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.class b/libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.class
index 7811885..b636121 100644
--- a/libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.class
+++ b/libjava/classpath/lib/java/util/Collections$1$SynchronizedMapEntry.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$1.class b/libjava/classpath/lib/java/util/Collections$1.class
index 61eee08..7720726 100644
--- a/libjava/classpath/lib/java/util/Collections$1.class
+++ b/libjava/classpath/lib/java/util/Collections$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$2.class b/libjava/classpath/lib/java/util/Collections$2.class
index 1901d11..3a47f69 100644
--- a/libjava/classpath/lib/java/util/Collections$2.class
+++ b/libjava/classpath/lib/java/util/Collections$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$3.class b/libjava/classpath/lib/java/util/Collections$3.class
index 24c30fd..7df076a 100644
--- a/libjava/classpath/lib/java/util/Collections$3.class
+++ b/libjava/classpath/lib/java/util/Collections$3.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$4.class b/libjava/classpath/lib/java/util/Collections$4.class
index 7775957..d0c5a50 100644
--- a/libjava/classpath/lib/java/util/Collections$4.class
+++ b/libjava/classpath/lib/java/util/Collections$4.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$5.class b/libjava/classpath/lib/java/util/Collections$5.class
index 49dfd26..dd7cdba 100644
--- a/libjava/classpath/lib/java/util/Collections$5.class
+++ b/libjava/classpath/lib/java/util/Collections$5.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$6.class b/libjava/classpath/lib/java/util/Collections$6.class
index cedadea..d3981fa 100644
--- a/libjava/classpath/lib/java/util/Collections$6.class
+++ b/libjava/classpath/lib/java/util/Collections$6.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$7.class b/libjava/classpath/lib/java/util/Collections$7.class
index 8f6f01d..cc0a6ae 100644
--- a/libjava/classpath/lib/java/util/Collections$7.class
+++ b/libjava/classpath/lib/java/util/Collections$7.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$8.class b/libjava/classpath/lib/java/util/Collections$8.class
index 3bb01cb..c1b7661 100644
--- a/libjava/classpath/lib/java/util/Collections$8.class
+++ b/libjava/classpath/lib/java/util/Collections$8.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$9.class b/libjava/classpath/lib/java/util/Collections$9.class
index c9c26bc..597af13 100644
--- a/libjava/classpath/lib/java/util/Collections$9.class
+++ b/libjava/classpath/lib/java/util/Collections$9.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CheckedCollection.class b/libjava/classpath/lib/java/util/Collections$CheckedCollection.class
index 5dbf53b..519d8b0 100644
--- a/libjava/classpath/lib/java/util/Collections$CheckedCollection.class
+++ b/libjava/classpath/lib/java/util/Collections$CheckedCollection.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CheckedIterator.class b/libjava/classpath/lib/java/util/Collections$CheckedIterator.class
index 332c194..4012973 100644
--- a/libjava/classpath/lib/java/util/Collections$CheckedIterator.class
+++ b/libjava/classpath/lib/java/util/Collections$CheckedIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CheckedList.class b/libjava/classpath/lib/java/util/Collections$CheckedList.class
index 51c9ab8..f103934 100644
--- a/libjava/classpath/lib/java/util/Collections$CheckedList.class
+++ b/libjava/classpath/lib/java/util/Collections$CheckedList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CheckedListIterator.class b/libjava/classpath/lib/java/util/Collections$CheckedListIterator.class
index d99fb14..621cedf 100644
--- a/libjava/classpath/lib/java/util/Collections$CheckedListIterator.class
+++ b/libjava/classpath/lib/java/util/Collections$CheckedListIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class b/libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class
index f5456d1..a0d77a8 100644
--- a/libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class
+++ b/libjava/classpath/lib/java/util/Collections$CheckedMap$CheckedEntrySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CheckedMap.class b/libjava/classpath/lib/java/util/Collections$CheckedMap.class
index 0072af4..42fbd4a 100644
--- a/libjava/classpath/lib/java/util/Collections$CheckedMap.class
+++ b/libjava/classpath/lib/java/util/Collections$CheckedMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class b/libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class
index 872d031..7cb5ae9 100644
--- a/libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class
+++ b/libjava/classpath/lib/java/util/Collections$CheckedRandomAccessList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CheckedSet.class b/libjava/classpath/lib/java/util/Collections$CheckedSet.class
index dae4ce8..e77d9ec 100644
--- a/libjava/classpath/lib/java/util/Collections$CheckedSet.class
+++ b/libjava/classpath/lib/java/util/Collections$CheckedSet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class b/libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class
index 77936fa..3e00bc0 100644
--- a/libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class
+++ b/libjava/classpath/lib/java/util/Collections$CheckedSortedMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class b/libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class
index 36e4a2f..5763240 100644
--- a/libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class
+++ b/libjava/classpath/lib/java/util/Collections$CheckedSortedSet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$CopiesList.class b/libjava/classpath/lib/java/util/Collections$CopiesList.class
index 80b4c83..be0e555 100644
--- a/libjava/classpath/lib/java/util/Collections$CopiesList.class
+++ b/libjava/classpath/lib/java/util/Collections$CopiesList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$EmptyList.class b/libjava/classpath/lib/java/util/Collections$EmptyList.class
index b8fc748..d6ff9f3 100644
--- a/libjava/classpath/lib/java/util/Collections$EmptyList.class
+++ b/libjava/classpath/lib/java/util/Collections$EmptyList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$EmptyMap.class b/libjava/classpath/lib/java/util/Collections$EmptyMap.class
index 2178607..364722b 100644
--- a/libjava/classpath/lib/java/util/Collections$EmptyMap.class
+++ b/libjava/classpath/lib/java/util/Collections$EmptyMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$EmptySet.class b/libjava/classpath/lib/java/util/Collections$EmptySet.class
index 96fa5c4..a1a88eb 100644
--- a/libjava/classpath/lib/java/util/Collections$EmptySet.class
+++ b/libjava/classpath/lib/java/util/Collections$EmptySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$LIFOQueue.class b/libjava/classpath/lib/java/util/Collections$LIFOQueue.class
index 9f0806a..5716fa2 100644
--- a/libjava/classpath/lib/java/util/Collections$LIFOQueue.class
+++ b/libjava/classpath/lib/java/util/Collections$LIFOQueue.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$MapSet.class b/libjava/classpath/lib/java/util/Collections$MapSet.class
index 59c4ade..8a02ecb 100644
--- a/libjava/classpath/lib/java/util/Collections$MapSet.class
+++ b/libjava/classpath/lib/java/util/Collections$MapSet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$ReverseComparator.class b/libjava/classpath/lib/java/util/Collections$ReverseComparator.class
index 30450fc..c07305a 100644
--- a/libjava/classpath/lib/java/util/Collections$ReverseComparator.class
+++ b/libjava/classpath/lib/java/util/Collections$ReverseComparator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SingletonList.class b/libjava/classpath/lib/java/util/Collections$SingletonList.class
index 05b93b7..ba6f153 100644
--- a/libjava/classpath/lib/java/util/Collections$SingletonList.class
+++ b/libjava/classpath/lib/java/util/Collections$SingletonList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SingletonMap.class b/libjava/classpath/lib/java/util/Collections$SingletonMap.class
index 8025f0d..9fb19b7 100644
--- a/libjava/classpath/lib/java/util/Collections$SingletonMap.class
+++ b/libjava/classpath/lib/java/util/Collections$SingletonMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SingletonSet.class b/libjava/classpath/lib/java/util/Collections$SingletonSet.class
index b5e5a22..53a098d 100644
--- a/libjava/classpath/lib/java/util/Collections$SingletonSet.class
+++ b/libjava/classpath/lib/java/util/Collections$SingletonSet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedCollection.class b/libjava/classpath/lib/java/util/Collections$SynchronizedCollection.class
index 07665ab..eccb9db 100644
--- a/libjava/classpath/lib/java/util/Collections$SynchronizedCollection.class
+++ b/libjava/classpath/lib/java/util/Collections$SynchronizedCollection.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedIterator.class b/libjava/classpath/lib/java/util/Collections$SynchronizedIterator.class
index 67c7dda..78f7edf 100644
--- a/libjava/classpath/lib/java/util/Collections$SynchronizedIterator.class
+++ b/libjava/classpath/lib/java/util/Collections$SynchronizedIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedList.class b/libjava/classpath/lib/java/util/Collections$SynchronizedList.class
index 977bda3..74f9530 100644
--- a/libjava/classpath/lib/java/util/Collections$SynchronizedList.class
+++ b/libjava/classpath/lib/java/util/Collections$SynchronizedList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class b/libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class
index be11fef..2a50db4 100644
--- a/libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class
+++ b/libjava/classpath/lib/java/util/Collections$SynchronizedListIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedMap.class b/libjava/classpath/lib/java/util/Collections$SynchronizedMap.class
index ddcc5f8..6a862be 100644
--- a/libjava/classpath/lib/java/util/Collections$SynchronizedMap.class
+++ b/libjava/classpath/lib/java/util/Collections$SynchronizedMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class b/libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class
index fa128a9..08fdb6c 100644
--- a/libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class
+++ b/libjava/classpath/lib/java/util/Collections$SynchronizedRandomAccessList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedSet.class b/libjava/classpath/lib/java/util/Collections$SynchronizedSet.class
index 9bbf781..1ae8ea3 100644
--- a/libjava/classpath/lib/java/util/Collections$SynchronizedSet.class
+++ b/libjava/classpath/lib/java/util/Collections$SynchronizedSet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class b/libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class
index 525a659..62a25ad 100644
--- a/libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class
+++ b/libjava/classpath/lib/java/util/Collections$SynchronizedSortedMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.class b/libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.class
index 68a5cf6..30ba4a3 100644
--- a/libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.class
+++ b/libjava/classpath/lib/java/util/Collections$SynchronizedSortedSet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.class
index 547d7b5..e51c804 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableCollection.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.class
index aef79e3..6a53b06 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableList.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableList.class
index 5cc5891..db804bf 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableList.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.class
index 962d17e..490e99c 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableListIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.class
index 6eb99a7..56f5692 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet$UnmodifiableMapEntry.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class
index 74a6d46..081bf52 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap$UnmodifiableEntrySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class
index acd7c67..66fe31c 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.class
index eb8b87d..63b38d4 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableRandomAccessList.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class
index cb9ac56..39be8d6 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableSet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class
index ee3e0f6..39be88c 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.class b/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.class
index aae09ac..96c5905 100644
--- a/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.class
+++ b/libjava/classpath/lib/java/util/Collections$UnmodifiableSortedSet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Collections.class b/libjava/classpath/lib/java/util/Collections.class
index afd16bb..1e5ed0c 100644
--- a/libjava/classpath/lib/java/util/Collections.class
+++ b/libjava/classpath/lib/java/util/Collections.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Currency.class b/libjava/classpath/lib/java/util/Currency.class
index bc2a965..0a0d2fe 100644
--- a/libjava/classpath/lib/java/util/Currency.class
+++ b/libjava/classpath/lib/java/util/Currency.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Date.class b/libjava/classpath/lib/java/util/Date.class
index 422dcb5..66b63fa 100644
--- a/libjava/classpath/lib/java/util/Date.class
+++ b/libjava/classpath/lib/java/util/Date.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.class b/libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.class
index a4449b5..ec6433b 100644
--- a/libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.class
+++ b/libjava/classpath/lib/java/util/Formatter$BigDecimalLayoutForm.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Formatter.class b/libjava/classpath/lib/java/util/Formatter.class
index 44bda98..7d9a146 100644
--- a/libjava/classpath/lib/java/util/Formatter.class
+++ b/libjava/classpath/lib/java/util/Formatter.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$1.class b/libjava/classpath/lib/java/util/Hashtable$1.class
index 0efaea7..5b4259f 100644
--- a/libjava/classpath/lib/java/util/Hashtable$1.class
+++ b/libjava/classpath/lib/java/util/Hashtable$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$2.class b/libjava/classpath/lib/java/util/Hashtable$2.class
index 61692f8..55174e6 100644
--- a/libjava/classpath/lib/java/util/Hashtable$2.class
+++ b/libjava/classpath/lib/java/util/Hashtable$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$3.class b/libjava/classpath/lib/java/util/Hashtable$3.class
index 496c00b..50d619e 100644
--- a/libjava/classpath/lib/java/util/Hashtable$3.class
+++ b/libjava/classpath/lib/java/util/Hashtable$3.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.class b/libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.class
index 3211b2b..6aeb344 100644
--- a/libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.class
+++ b/libjava/classpath/lib/java/util/Hashtable$EntryEnumerator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$EntryIterator.class b/libjava/classpath/lib/java/util/Hashtable$EntryIterator.class
index cf206db..2775479 100644
--- a/libjava/classpath/lib/java/util/Hashtable$EntryIterator.class
+++ b/libjava/classpath/lib/java/util/Hashtable$EntryIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$HashEntry.class b/libjava/classpath/lib/java/util/Hashtable$HashEntry.class
index b70be33..b127bcd 100644
--- a/libjava/classpath/lib/java/util/Hashtable$HashEntry.class
+++ b/libjava/classpath/lib/java/util/Hashtable$HashEntry.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class b/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class
index 4e33c8f..4b56114 100644
--- a/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class
+++ b/libjava/classpath/lib/java/util/Hashtable$KeyEnumerator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class b/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class
index e1331ae..d0d68cf 100644
--- a/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class
+++ b/libjava/classpath/lib/java/util/Hashtable$KeyIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class b/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class
index 0a396cb..828a1ac 100644
--- a/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class
+++ b/libjava/classpath/lib/java/util/Hashtable$ValueEnumerator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class b/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class
index 53ab7e1..5c0eb91 100644
--- a/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class
+++ b/libjava/classpath/lib/java/util/Hashtable$ValueIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Hashtable.class b/libjava/classpath/lib/java/util/Hashtable.class
index 6ffdf57..a501bd5 100644
--- a/libjava/classpath/lib/java/util/Hashtable.class
+++ b/libjava/classpath/lib/java/util/Hashtable.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Locale.class b/libjava/classpath/lib/java/util/Locale.class
index 3ea366f..2fa2892 100644
--- a/libjava/classpath/lib/java/util/Locale.class
+++ b/libjava/classpath/lib/java/util/Locale.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Properties.class b/libjava/classpath/lib/java/util/Properties.class
index 9b0ef59f..b627bc2 100644
--- a/libjava/classpath/lib/java/util/Properties.class
+++ b/libjava/classpath/lib/java/util/Properties.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/PropertyResourceBundle.class b/libjava/classpath/lib/java/util/PropertyResourceBundle.class
index f47155d..a2d3b3d 100644
--- a/libjava/classpath/lib/java/util/PropertyResourceBundle.class
+++ b/libjava/classpath/lib/java/util/PropertyResourceBundle.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/ResourceBundle$1.class b/libjava/classpath/lib/java/util/ResourceBundle$1.class
index 32fecc7..b798bab 100644
--- a/libjava/classpath/lib/java/util/ResourceBundle$1.class
+++ b/libjava/classpath/lib/java/util/ResourceBundle$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/ResourceBundle$BundleKey.class b/libjava/classpath/lib/java/util/ResourceBundle$BundleKey.class
index db9c41c..b88a7db 100644
--- a/libjava/classpath/lib/java/util/ResourceBundle$BundleKey.class
+++ b/libjava/classpath/lib/java/util/ResourceBundle$BundleKey.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/ResourceBundle.class b/libjava/classpath/lib/java/util/ResourceBundle.class
index fdc59ab..c66d371 100644
--- a/libjava/classpath/lib/java/util/ResourceBundle.class
+++ b/libjava/classpath/lib/java/util/ResourceBundle.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Scanner.class b/libjava/classpath/lib/java/util/Scanner.class
new file mode 100644
index 0000000..b84f375
--- /dev/null
+++ b/libjava/classpath/lib/java/util/Scanner.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Stack.class b/libjava/classpath/lib/java/util/Stack.class
index 9f51123..b73aed0 100644
--- a/libjava/classpath/lib/java/util/Stack.class
+++ b/libjava/classpath/lib/java/util/Stack.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TimeZone$1.class b/libjava/classpath/lib/java/util/TimeZone$1.class
index 1d418d8..31299b0 100644
--- a/libjava/classpath/lib/java/util/TimeZone$1.class
+++ b/libjava/classpath/lib/java/util/TimeZone$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TimeZone.class b/libjava/classpath/lib/java/util/TimeZone.class
index 53ecf9d..8856dc3 100644
--- a/libjava/classpath/lib/java/util/TimeZone.class
+++ b/libjava/classpath/lib/java/util/TimeZone.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$1.class b/libjava/classpath/lib/java/util/TreeMap$1.class
index a17bbc9..82cbf58 100644
--- a/libjava/classpath/lib/java/util/TreeMap$1.class
+++ b/libjava/classpath/lib/java/util/TreeMap$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$2.class b/libjava/classpath/lib/java/util/TreeMap$2.class
index 25cac02..b29656b 100644
--- a/libjava/classpath/lib/java/util/TreeMap$2.class
+++ b/libjava/classpath/lib/java/util/TreeMap$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$3.class b/libjava/classpath/lib/java/util/TreeMap$3.class
index 4c2a186..7122503 100644
--- a/libjava/classpath/lib/java/util/TreeMap$3.class
+++ b/libjava/classpath/lib/java/util/TreeMap$3.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$4.class b/libjava/classpath/lib/java/util/TreeMap$4.class
index 0fca5eb..44efa91 100644
--- a/libjava/classpath/lib/java/util/TreeMap$4.class
+++ b/libjava/classpath/lib/java/util/TreeMap$4.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$5.class b/libjava/classpath/lib/java/util/TreeMap$5.class
index 22c5151..ae6f7bf 100644
--- a/libjava/classpath/lib/java/util/TreeMap$5.class
+++ b/libjava/classpath/lib/java/util/TreeMap$5.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$6.class b/libjava/classpath/lib/java/util/TreeMap$6.class
index 0cfdc29..63259af 100644
--- a/libjava/classpath/lib/java/util/TreeMap$6.class
+++ b/libjava/classpath/lib/java/util/TreeMap$6.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$7.class b/libjava/classpath/lib/java/util/TreeMap$7.class
index aac1ac1..1dac2e4 100644
--- a/libjava/classpath/lib/java/util/TreeMap$7.class
+++ b/libjava/classpath/lib/java/util/TreeMap$7.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$DescendingMap.class b/libjava/classpath/lib/java/util/TreeMap$DescendingMap.class
index f5675b6..1d592d5 100644
--- a/libjava/classpath/lib/java/util/TreeMap$DescendingMap.class
+++ b/libjava/classpath/lib/java/util/TreeMap$DescendingMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$DescendingSet.class b/libjava/classpath/lib/java/util/TreeMap$DescendingSet.class
index 31497ba..cba2ac5 100644
--- a/libjava/classpath/lib/java/util/TreeMap$DescendingSet.class
+++ b/libjava/classpath/lib/java/util/TreeMap$DescendingSet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$EntrySet.class b/libjava/classpath/lib/java/util/TreeMap$EntrySet.class
index f30a2c9..8573cc5 100644
--- a/libjava/classpath/lib/java/util/TreeMap$EntrySet.class
+++ b/libjava/classpath/lib/java/util/TreeMap$EntrySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$KeySet.class b/libjava/classpath/lib/java/util/TreeMap$KeySet.class
index f03155c..2d7bcff 100644
--- a/libjava/classpath/lib/java/util/TreeMap$KeySet.class
+++ b/libjava/classpath/lib/java/util/TreeMap$KeySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$NavigableEntrySet.class b/libjava/classpath/lib/java/util/TreeMap$NavigableEntrySet.class
index 3f156fa..79ea034 100644
--- a/libjava/classpath/lib/java/util/TreeMap$NavigableEntrySet.class
+++ b/libjava/classpath/lib/java/util/TreeMap$NavigableEntrySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$NavigableKeySet.class b/libjava/classpath/lib/java/util/TreeMap$NavigableKeySet.class
index 000e801..cca2343 100644
--- a/libjava/classpath/lib/java/util/TreeMap$NavigableKeySet.class
+++ b/libjava/classpath/lib/java/util/TreeMap$NavigableKeySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$Node.class b/libjava/classpath/lib/java/util/TreeMap$Node.class
index 8f275d7..07dc834 100644
--- a/libjava/classpath/lib/java/util/TreeMap$Node.class
+++ b/libjava/classpath/lib/java/util/TreeMap$Node.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$SubMap$EntrySet.class b/libjava/classpath/lib/java/util/TreeMap$SubMap$EntrySet.class
index e3fe418..8fa8a61 100644
--- a/libjava/classpath/lib/java/util/TreeMap$SubMap$EntrySet.class
+++ b/libjava/classpath/lib/java/util/TreeMap$SubMap$EntrySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$SubMap$KeySet.class b/libjava/classpath/lib/java/util/TreeMap$SubMap$KeySet.class
index 50bce8e..fe6d6b6 100644
--- a/libjava/classpath/lib/java/util/TreeMap$SubMap$KeySet.class
+++ b/libjava/classpath/lib/java/util/TreeMap$SubMap$KeySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableEntrySet.class b/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableEntrySet.class
index 9924893..3b3c7a8 100644
--- a/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableEntrySet.class
+++ b/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableEntrySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableKeySet.class b/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableKeySet.class
index 2e6fe97..77bf28e 100644
--- a/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableKeySet.class
+++ b/libjava/classpath/lib/java/util/TreeMap$SubMap$NavigableKeySet.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$SubMap.class b/libjava/classpath/lib/java/util/TreeMap$SubMap.class
index 82573b2..528f646 100644
--- a/libjava/classpath/lib/java/util/TreeMap$SubMap.class
+++ b/libjava/classpath/lib/java/util/TreeMap$SubMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap$TreeIterator.class b/libjava/classpath/lib/java/util/TreeMap$TreeIterator.class
index eb6746c..9767965 100644
--- a/libjava/classpath/lib/java/util/TreeMap$TreeIterator.class
+++ b/libjava/classpath/lib/java/util/TreeMap$TreeIterator.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/TreeMap.class b/libjava/classpath/lib/java/util/TreeMap.class
index a8d0a1d..22f8f0c 100644
--- a/libjava/classpath/lib/java/util/TreeMap.class
+++ b/libjava/classpath/lib/java/util/TreeMap.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Vector$1.class b/libjava/classpath/lib/java/util/Vector$1.class
index 42889b5..3822a2e 100644
--- a/libjava/classpath/lib/java/util/Vector$1.class
+++ b/libjava/classpath/lib/java/util/Vector$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/Vector.class b/libjava/classpath/lib/java/util/Vector.class
index 9dd19b6..d3c851e 100644
--- a/libjava/classpath/lib/java/util/Vector.class
+++ b/libjava/classpath/lib/java/util/Vector.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/logging/FileHandler$ostr.class b/libjava/classpath/lib/java/util/logging/FileHandler$ostr.class
index b89bb0e..a869542 100644
--- a/libjava/classpath/lib/java/util/logging/FileHandler$ostr.class
+++ b/libjava/classpath/lib/java/util/logging/FileHandler$ostr.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/logging/FileHandler.class b/libjava/classpath/lib/java/util/logging/FileHandler.class
index 7cb9151..0e0d3f0 100644
--- a/libjava/classpath/lib/java/util/logging/FileHandler.class
+++ b/libjava/classpath/lib/java/util/logging/FileHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/logging/SimpleFormatter.class b/libjava/classpath/lib/java/util/logging/SimpleFormatter.class
index b484f73..c8abf73 100644
--- a/libjava/classpath/lib/java/util/logging/SimpleFormatter.class
+++ b/libjava/classpath/lib/java/util/logging/SimpleFormatter.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/logging/XMLFormatter.class b/libjava/classpath/lib/java/util/logging/XMLFormatter.class
index fd47a7d..833fba2 100644
--- a/libjava/classpath/lib/java/util/logging/XMLFormatter.class
+++ b/libjava/classpath/lib/java/util/logging/XMLFormatter.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.class b/libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.class
index 4f25a3d..4f3c1f7 100644
--- a/libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.class
+++ b/libjava/classpath/lib/java/util/prefs/AbstractPreferences$1.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.class b/libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.class
index 57cf97c..8d3d851 100644
--- a/libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.class
+++ b/libjava/classpath/lib/java/util/prefs/AbstractPreferences$2.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/prefs/AbstractPreferences.class b/libjava/classpath/lib/java/util/prefs/AbstractPreferences.class
index 3675ab8..fcd1c51 100644
--- a/libjava/classpath/lib/java/util/prefs/AbstractPreferences.class
+++ b/libjava/classpath/lib/java/util/prefs/AbstractPreferences.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/regex/Matcher.class b/libjava/classpath/lib/java/util/regex/Matcher.class
index 6cb429c..0eee2c1 100644
--- a/libjava/classpath/lib/java/util/regex/Matcher.class
+++ b/libjava/classpath/lib/java/util/regex/Matcher.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/regex/Pattern.class b/libjava/classpath/lib/java/util/regex/Pattern.class
index fc3c65c..06e4684 100644
--- a/libjava/classpath/lib/java/util/regex/Pattern.class
+++ b/libjava/classpath/lib/java/util/regex/Pattern.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/regex/PatternSyntaxException.class b/libjava/classpath/lib/java/util/regex/PatternSyntaxException.class
index 39d83b6..0f44b98 100644
--- a/libjava/classpath/lib/java/util/regex/PatternSyntaxException.class
+++ b/libjava/classpath/lib/java/util/regex/PatternSyntaxException.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/zip/ZipEntry.class b/libjava/classpath/lib/java/util/zip/ZipEntry.class
index 045a90f..5d39640 100644
--- a/libjava/classpath/lib/java/util/zip/ZipEntry.class
+++ b/libjava/classpath/lib/java/util/zip/ZipEntry.class
Binary files differ
diff --git a/libjava/classpath/lib/java/util/zip/ZipFile.class b/libjava/classpath/lib/java/util/zip/ZipFile.class
index 2e43b08..e9ec7f7 100644
--- a/libjava/classpath/lib/java/util/zip/ZipFile.class
+++ b/libjava/classpath/lib/java/util/zip/ZipFile.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.class b/libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.class
index 43fb3c7..fb6eadd 100644
--- a/libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.class
+++ b/libjava/classpath/lib/javax/accessibility/AccessibleRelationSet.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/accessibility/AccessibleStateSet.class b/libjava/classpath/lib/javax/accessibility/AccessibleStateSet.class
index 68fbea3..4979fa8 100644
--- a/libjava/classpath/lib/javax/accessibility/AccessibleStateSet.class
+++ b/libjava/classpath/lib/javax/accessibility/AccessibleStateSet.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/ActivationDataFlavor.class b/libjava/classpath/lib/javax/activation/ActivationDataFlavor.class
new file mode 100644
index 0000000..47dd5a3
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/ActivationDataFlavor.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/CommandInfo.class b/libjava/classpath/lib/javax/activation/CommandInfo.class
new file mode 100644
index 0000000..6ab8f2f
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/CommandInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/CommandMap.class b/libjava/classpath/lib/javax/activation/CommandMap.class
new file mode 100644
index 0000000..b1f07c6
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/CommandMap.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/CommandObject.class b/libjava/classpath/lib/javax/activation/CommandObject.class
new file mode 100644
index 0000000..2f3c044
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/CommandObject.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/DataContentHandler.class b/libjava/classpath/lib/javax/activation/DataContentHandler.class
new file mode 100644
index 0000000..a9a93a5
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/DataContentHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/DataContentHandlerFactory.class b/libjava/classpath/lib/javax/activation/DataContentHandlerFactory.class
new file mode 100644
index 0000000..ceacdca
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/DataContentHandlerFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/DataHandler$DataContentHandlerWriter.class b/libjava/classpath/lib/javax/activation/DataHandler$DataContentHandlerWriter.class
new file mode 100644
index 0000000..bcd1dc4
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/DataHandler$DataContentHandlerWriter.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/DataHandler.class b/libjava/classpath/lib/javax/activation/DataHandler.class
new file mode 100644
index 0000000..c6103c5
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/DataHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/DataHandlerDataSource.class b/libjava/classpath/lib/javax/activation/DataHandlerDataSource.class
new file mode 100644
index 0000000..74a4c17
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/DataHandlerDataSource.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/DataSource.class b/libjava/classpath/lib/javax/activation/DataSource.class
new file mode 100644
index 0000000..ecbc498
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/DataSource.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/DataSourceDataContentHandler.class b/libjava/classpath/lib/javax/activation/DataSourceDataContentHandler.class
new file mode 100644
index 0000000..973c02a
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/DataSourceDataContentHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/FileDataSource.class b/libjava/classpath/lib/javax/activation/FileDataSource.class
new file mode 100644
index 0000000..aa8ed38
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/FileDataSource.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/FileTypeMap.class b/libjava/classpath/lib/javax/activation/FileTypeMap.class
new file mode 100644
index 0000000..936542e
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/FileTypeMap.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/MailcapCommandMap.class b/libjava/classpath/lib/javax/activation/MailcapCommandMap.class
new file mode 100644
index 0000000..c06df77
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/MailcapCommandMap.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/MimeType.class b/libjava/classpath/lib/javax/activation/MimeType.class
new file mode 100644
index 0000000..d964033
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/MimeType.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/MimeTypeParameterList$IteratorEnumeration.class b/libjava/classpath/lib/javax/activation/MimeTypeParameterList$IteratorEnumeration.class
new file mode 100644
index 0000000..2c88ca1
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/MimeTypeParameterList$IteratorEnumeration.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/MimeTypeParameterList.class b/libjava/classpath/lib/javax/activation/MimeTypeParameterList.class
new file mode 100644
index 0000000..18c1665
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/MimeTypeParameterList.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/MimeTypeParseException.class b/libjava/classpath/lib/javax/activation/MimeTypeParseException.class
new file mode 100644
index 0000000..903aaab
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/MimeTypeParseException.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/MimetypesFileTypeMap.class b/libjava/classpath/lib/javax/activation/MimetypesFileTypeMap.class
new file mode 100644
index 0000000..5d663e5
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/MimetypesFileTypeMap.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/ObjectDataContentHandler.class b/libjava/classpath/lib/javax/activation/ObjectDataContentHandler.class
new file mode 100644
index 0000000..108357b5
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/ObjectDataContentHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/URLDataSource.class b/libjava/classpath/lib/javax/activation/URLDataSource.class
new file mode 100644
index 0000000..5cef940
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/URLDataSource.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/activation/UnsupportedDataTypeException.class b/libjava/classpath/lib/javax/activation/UnsupportedDataTypeException.class
new file mode 100644
index 0000000..5963206
--- /dev/null
+++ b/libjava/classpath/lib/javax/activation/UnsupportedDataTypeException.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/ImageIO$1.class b/libjava/classpath/lib/javax/imageio/ImageIO$1.class
index c503537..46807f9 100644
--- a/libjava/classpath/lib/javax/imageio/ImageIO$1.class
+++ b/libjava/classpath/lib/javax/imageio/ImageIO$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/ImageIO.class b/libjava/classpath/lib/javax/imageio/ImageIO.class
index baa2ccc..02034cd 100644
--- a/libjava/classpath/lib/javax/imageio/ImageIO.class
+++ b/libjava/classpath/lib/javax/imageio/ImageIO.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.class b/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.class
index deac559..7d0383ea 100644
--- a/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.class
+++ b/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGHuffmanTable.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.class b/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.class
index 6f6d576..6a70a36 100644
--- a/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.class
+++ b/libjava/classpath/lib/javax/imageio/plugins/jpeg/JPEGQTable.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.class b/libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.class
index ae7a2ba..89aad2e 100644
--- a/libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.class
+++ b/libjava/classpath/lib/javax/imageio/stream/ImageInputStreamImpl.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/DefaultLoaderRepository.class b/libjava/classpath/lib/javax/management/DefaultLoaderRepository.class
index 12a86e3..0ae912b 100644
--- a/libjava/classpath/lib/javax/management/DefaultLoaderRepository.class
+++ b/libjava/classpath/lib/javax/management/DefaultLoaderRepository.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/JMX.class b/libjava/classpath/lib/javax/management/JMX.class
index e60830e..16f718f 100644
--- a/libjava/classpath/lib/javax/management/JMX.class
+++ b/libjava/classpath/lib/javax/management/JMX.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/MBeanConstructorInfo.class b/libjava/classpath/lib/javax/management/MBeanConstructorInfo.class
index 4933f49..be2167e 100644
--- a/libjava/classpath/lib/javax/management/MBeanConstructorInfo.class
+++ b/libjava/classpath/lib/javax/management/MBeanConstructorInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/MBeanPermission.class b/libjava/classpath/lib/javax/management/MBeanPermission.class
index 15151ce..1f6702e 100644
--- a/libjava/classpath/lib/javax/management/MBeanPermission.class
+++ b/libjava/classpath/lib/javax/management/MBeanPermission.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/MBeanServerDelegate.class b/libjava/classpath/lib/javax/management/MBeanServerDelegate.class
index c0c7619..ffacaaa 100644
--- a/libjava/classpath/lib/javax/management/MBeanServerDelegate.class
+++ b/libjava/classpath/lib/javax/management/MBeanServerDelegate.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/MBeanServerFactory.class b/libjava/classpath/lib/javax/management/MBeanServerFactory.class
index d1a0985..2920d65 100644
--- a/libjava/classpath/lib/javax/management/MBeanServerFactory.class
+++ b/libjava/classpath/lib/javax/management/MBeanServerFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/MBeanServerInvocationHandler.class b/libjava/classpath/lib/javax/management/MBeanServerInvocationHandler.class
index a54f833..9d59650 100644
--- a/libjava/classpath/lib/javax/management/MBeanServerInvocationHandler.class
+++ b/libjava/classpath/lib/javax/management/MBeanServerInvocationHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.class b/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.class
index 9d6fed4..73376ed 100644
--- a/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.class
+++ b/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.class b/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.class
index 272e8d3..7de4089 100644
--- a/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.class
+++ b/libjava/classpath/lib/javax/management/MBeanServerPermission$MBeanServerPermissionCollection.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/MBeanServerPermission.class b/libjava/classpath/lib/javax/management/MBeanServerPermission.class
index e69173d..764d5de 100644
--- a/libjava/classpath/lib/javax/management/MBeanServerPermission.class
+++ b/libjava/classpath/lib/javax/management/MBeanServerPermission.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/ObjectName.class b/libjava/classpath/lib/javax/management/ObjectName.class
index 55cb113..b32ae1f 100644
--- a/libjava/classpath/lib/javax/management/ObjectName.class
+++ b/libjava/classpath/lib/javax/management/ObjectName.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/StandardMBean.class b/libjava/classpath/lib/javax/management/StandardMBean.class
index 8a454a1..087daaf 100644
--- a/libjava/classpath/lib/javax/management/StandardMBean.class
+++ b/libjava/classpath/lib/javax/management/StandardMBean.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/openmbean/ArrayType.class b/libjava/classpath/lib/javax/management/openmbean/ArrayType.class
index fe1fdfa..0b7767c3 100644
--- a/libjava/classpath/lib/javax/management/openmbean/ArrayType.class
+++ b/libjava/classpath/lib/javax/management/openmbean/ArrayType.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.class b/libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.class
index a35581e..ea38f78 100644
--- a/libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.class
+++ b/libjava/classpath/lib/javax/management/openmbean/CompositeDataSupport.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/openmbean/CompositeType.class b/libjava/classpath/lib/javax/management/openmbean/CompositeType.class
index 9daeaed..f26cd8e 100644
--- a/libjava/classpath/lib/javax/management/openmbean/CompositeType.class
+++ b/libjava/classpath/lib/javax/management/openmbean/CompositeType.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.class
index c7833f8..85f53a0 100644
--- a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.class
+++ b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanAttributeInfoSupport.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.class b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.class
index 4f20e69..5f3bf31 100644
--- a/libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.class
+++ b/libjava/classpath/lib/javax/management/openmbean/OpenMBeanParameterInfoSupport.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/openmbean/SimpleType.class b/libjava/classpath/lib/javax/management/openmbean/SimpleType.class
index 7c16993..d61fccc 100644
--- a/libjava/classpath/lib/javax/management/openmbean/SimpleType.class
+++ b/libjava/classpath/lib/javax/management/openmbean/SimpleType.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.class b/libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.class
index 80fded3..b45cdca 100644
--- a/libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.class
+++ b/libjava/classpath/lib/javax/management/openmbean/TabularDataSupport.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/management/openmbean/TabularType.class b/libjava/classpath/lib/javax/management/openmbean/TabularType.class
index d2eb8a9..573d1ec 100644
--- a/libjava/classpath/lib/javax/management/openmbean/TabularType.class
+++ b/libjava/classpath/lib/javax/management/openmbean/TabularType.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/naming/BinaryRefAddr.class b/libjava/classpath/lib/javax/naming/BinaryRefAddr.class
index 8856b98..eac4051 100644
--- a/libjava/classpath/lib/javax/naming/BinaryRefAddr.class
+++ b/libjava/classpath/lib/javax/naming/BinaryRefAddr.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/naming/CompositeName.class b/libjava/classpath/lib/javax/naming/CompositeName.class
index ad737e6..f7c2bac 100644
--- a/libjava/classpath/lib/javax/naming/CompositeName.class
+++ b/libjava/classpath/lib/javax/naming/CompositeName.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/naming/CompoundName.class b/libjava/classpath/lib/javax/naming/CompoundName.class
index 9ce16da..ac8f259 100644
--- a/libjava/classpath/lib/javax/naming/CompoundName.class
+++ b/libjava/classpath/lib/javax/naming/CompoundName.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/naming/NamingException.class b/libjava/classpath/lib/javax/naming/NamingException.class
index 52bdc3e..bfe3c76 100644
--- a/libjava/classpath/lib/javax/naming/NamingException.class
+++ b/libjava/classpath/lib/javax/naming/NamingException.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/naming/spi/NamingManager.class b/libjava/classpath/lib/javax/naming/spi/NamingManager.class
index d0da694..72b3e19 100644
--- a/libjava/classpath/lib/javax/naming/spi/NamingManager.class
+++ b/libjava/classpath/lib/javax/naming/spi/NamingManager.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/security/auth/x500/X500Principal.class b/libjava/classpath/lib/javax/security/auth/x500/X500Principal.class
index e2a1287..7bfdec2 100644
--- a/libjava/classpath/lib/javax/security/auth/x500/X500Principal.class
+++ b/libjava/classpath/lib/javax/security/auth/x500/X500Principal.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/security/sasl/SaslException.class b/libjava/classpath/lib/javax/security/sasl/SaslException.class
index 2121ace..3c41991 100644
--- a/libjava/classpath/lib/javax/security/sasl/SaslException.class
+++ b/libjava/classpath/lib/javax/security/sasl/SaslException.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.class b/libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.class
index e76624c..5f02879 100644
--- a/libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.class
+++ b/libjava/classpath/lib/javax/sound/sampled/AudioFormat$Encoding.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class b/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class
index c9d2849..498ff42 100644
--- a/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class
+++ b/libjava/classpath/lib/javax/sound/sampled/AudioFormat.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.class b/libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.class
index cabba7d..7569c74 100644
--- a/libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.class
+++ b/libjava/classpath/lib/javax/sound/sampled/CompoundControl$Type.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/sound/sampled/CompoundControl.class b/libjava/classpath/lib/javax/sound/sampled/CompoundControl.class
index 4334b13..1c46c33 100644
--- a/libjava/classpath/lib/javax/sound/sampled/CompoundControl.class
+++ b/libjava/classpath/lib/javax/sound/sampled/CompoundControl.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class b/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class
index 81c8b23a..03168bf 100644
--- a/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class
+++ b/libjava/classpath/lib/javax/sound/sampled/DataLine$Info.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/AbstractButton$1.class b/libjava/classpath/lib/javax/swing/AbstractButton$1.class
index 95948d6..5657c38 100644
--- a/libjava/classpath/lib/javax/swing/AbstractButton$1.class
+++ b/libjava/classpath/lib/javax/swing/AbstractButton$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.class b/libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.class
index b17256a..bdc5313 100644
--- a/libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.class
+++ b/libjava/classpath/lib/javax/swing/AbstractButton$AccessibleAbstractButton.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.class b/libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.class
index e8fce21..3b9534b 100644
--- a/libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.class
+++ b/libjava/classpath/lib/javax/swing/AbstractButton$ButtonChangeListener.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.class b/libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.class
index 370e7d3..a19d61a 100644
--- a/libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.class
+++ b/libjava/classpath/lib/javax/swing/AbstractButton$EventHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/AbstractButton.class b/libjava/classpath/lib/javax/swing/AbstractButton.class
index d02ab05..cc93810 100644
--- a/libjava/classpath/lib/javax/swing/AbstractButton.class
+++ b/libjava/classpath/lib/javax/swing/AbstractButton.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.class b/libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.class
index a4fe87b..9d06cbf 100644
--- a/libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.class
+++ b/libjava/classpath/lib/javax/swing/JButton$AccessibleJButton.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JButton.class b/libjava/classpath/lib/javax/swing/JButton.class
index e58fa25..2c2bf77 100644
--- a/libjava/classpath/lib/javax/swing/JButton.class
+++ b/libjava/classpath/lib/javax/swing/JButton.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JComboBox$1.class b/libjava/classpath/lib/javax/swing/JComboBox$1.class
index 0988e4d..0361e52 100644
--- a/libjava/classpath/lib/javax/swing/JComboBox$1.class
+++ b/libjava/classpath/lib/javax/swing/JComboBox$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.class b/libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.class
index 456a832..f2f7e58 100644
--- a/libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.class
+++ b/libjava/classpath/lib/javax/swing/JComboBox$AccessibleJComboBox.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.class b/libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.class
index 3d9fdca..cc25e96 100644
--- a/libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.class
+++ b/libjava/classpath/lib/javax/swing/JComboBox$DefaultKeySelectionManager.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JComboBox.class b/libjava/classpath/lib/javax/swing/JComboBox.class
index 6b4ed6c..87c9f7c 100644
--- a/libjava/classpath/lib/javax/swing/JComboBox.class
+++ b/libjava/classpath/lib/javax/swing/JComboBox.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JComponent$1.class b/libjava/classpath/lib/javax/swing/JComponent$1.class
index b07824f..a13d0e2 100644
--- a/libjava/classpath/lib/javax/swing/JComponent$1.class
+++ b/libjava/classpath/lib/javax/swing/JComponent$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.class b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.class
index e3ff240..4b1507f 100644
--- a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.class
+++ b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleContainerHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.class b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.class
index 04ef17a..9d106d1 100644
--- a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.class
+++ b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent$AccessibleFocusHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.class b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.class
index 43abf64..8f48e55 100644
--- a/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.class
+++ b/libjava/classpath/lib/javax/swing/JComponent$AccessibleJComponent.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.class b/libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.class
index c9939ea..2da01c0 100644
--- a/libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.class
+++ b/libjava/classpath/lib/javax/swing/JComponent$ActionListenerProxy.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JComponent.class b/libjava/classpath/lib/javax/swing/JComponent.class
index 5e3051a..93a4b67 100644
--- a/libjava/classpath/lib/javax/swing/JComponent.class
+++ b/libjava/classpath/lib/javax/swing/JComponent.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.class b/libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.class
index db9bf95..2245d41 100644
--- a/libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.class
+++ b/libjava/classpath/lib/javax/swing/JDesktopPane$AccessibleJDesktopPane.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JDesktopPane.class b/libjava/classpath/lib/javax/swing/JDesktopPane.class
index 1796754..b30dd90 100644
--- a/libjava/classpath/lib/javax/swing/JDesktopPane.class
+++ b/libjava/classpath/lib/javax/swing/JDesktopPane.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JFileChooser$1.class b/libjava/classpath/lib/javax/swing/JFileChooser$1.class
index 079bcd0..3b3e55c 100644
--- a/libjava/classpath/lib/javax/swing/JFileChooser$1.class
+++ b/libjava/classpath/lib/javax/swing/JFileChooser$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.class b/libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.class
index 06cee8e..1b8b8a5 100644
--- a/libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.class
+++ b/libjava/classpath/lib/javax/swing/JFileChooser$AccessibleJFileChooser.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JFileChooser.class b/libjava/classpath/lib/javax/swing/JFileChooser.class
index 7ffc00e..a3d3198 100644
--- a/libjava/classpath/lib/javax/swing/JFileChooser.class
+++ b/libjava/classpath/lib/javax/swing/JFileChooser.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.class b/libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.class
index 6a5f1c8..85c8f0d 100644
--- a/libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.class
+++ b/libjava/classpath/lib/javax/swing/JFrame$AccessibleJFrame.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JFrame.class b/libjava/classpath/lib/javax/swing/JFrame.class
index 4d9e344..6d81d8f 100644
--- a/libjava/classpath/lib/javax/swing/JFrame.class
+++ b/libjava/classpath/lib/javax/swing/JFrame.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.class b/libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.class
index 5273083..b025ca7 100644
--- a/libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.class
+++ b/libjava/classpath/lib/javax/swing/JLabel$AccessibleJLabel.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JLabel.class b/libjava/classpath/lib/javax/swing/JLabel.class
index 20256d0..736eb1b 100644
--- a/libjava/classpath/lib/javax/swing/JLabel.class
+++ b/libjava/classpath/lib/javax/swing/JLabel.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JList$1.class b/libjava/classpath/lib/javax/swing/JList$1.class
index ddfc6e0..66ad6e2 100644
--- a/libjava/classpath/lib/javax/swing/JList$1.class
+++ b/libjava/classpath/lib/javax/swing/JList$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JList$2.class b/libjava/classpath/lib/javax/swing/JList$2.class
index 8d05ac0..ee22592 100644
--- a/libjava/classpath/lib/javax/swing/JList$2.class
+++ b/libjava/classpath/lib/javax/swing/JList$2.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JList$3.class b/libjava/classpath/lib/javax/swing/JList$3.class
index 83935ae..af69f03 100644
--- a/libjava/classpath/lib/javax/swing/JList$3.class
+++ b/libjava/classpath/lib/javax/swing/JList$3.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.class b/libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.class
index 31d2c94..b7cccc6 100644
--- a/libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.class
+++ b/libjava/classpath/lib/javax/swing/JList$AccessibleJList$AccessibleJListChild.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JList$AccessibleJList.class b/libjava/classpath/lib/javax/swing/JList$AccessibleJList.class
index 1d08b8e..378bbba 100644
--- a/libjava/classpath/lib/javax/swing/JList$AccessibleJList.class
+++ b/libjava/classpath/lib/javax/swing/JList$AccessibleJList.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JList$ListListener.class b/libjava/classpath/lib/javax/swing/JList$ListListener.class
index 3a77f55..32fdcfe 100644
--- a/libjava/classpath/lib/javax/swing/JList$ListListener.class
+++ b/libjava/classpath/lib/javax/swing/JList$ListListener.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JList.class b/libjava/classpath/lib/javax/swing/JList.class
index c573c27..06a23e6 100644
--- a/libjava/classpath/lib/javax/swing/JList.class
+++ b/libjava/classpath/lib/javax/swing/JList.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.class b/libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.class
index 1cd34fe..3d94be8 100644
--- a/libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.class
+++ b/libjava/classpath/lib/javax/swing/JMenuBar$AccessibleJMenuBar.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JMenuBar.class b/libjava/classpath/lib/javax/swing/JMenuBar.class
index 92fb670..887bc3a 100644
--- a/libjava/classpath/lib/javax/swing/JMenuBar.class
+++ b/libjava/classpath/lib/javax/swing/JMenuBar.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu$1.class b/libjava/classpath/lib/javax/swing/JPopupMenu$1.class
index bdcf1ed..853d006 100644
--- a/libjava/classpath/lib/javax/swing/JPopupMenu$1.class
+++ b/libjava/classpath/lib/javax/swing/JPopupMenu$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu$2.class b/libjava/classpath/lib/javax/swing/JPopupMenu$2.class
index 7bf24f6..d0e4c7c 100644
--- a/libjava/classpath/lib/javax/swing/JPopupMenu$2.class
+++ b/libjava/classpath/lib/javax/swing/JPopupMenu$2.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.class b/libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.class
index 2faa79d..29222e8 100644
--- a/libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.class
+++ b/libjava/classpath/lib/javax/swing/JPopupMenu$AccessibleJPopupMenu.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.class b/libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.class
index 0699c20..8d7711b 100644
--- a/libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.class
+++ b/libjava/classpath/lib/javax/swing/JPopupMenu$ActionChangeListener.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu$Separator.class b/libjava/classpath/lib/javax/swing/JPopupMenu$Separator.class
index 30e5354..6b30c58 100644
--- a/libjava/classpath/lib/javax/swing/JPopupMenu$Separator.class
+++ b/libjava/classpath/lib/javax/swing/JPopupMenu$Separator.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JPopupMenu.class b/libjava/classpath/lib/javax/swing/JPopupMenu.class
index 5f6d0f5..c90b7b3 100644
--- a/libjava/classpath/lib/javax/swing/JPopupMenu.class
+++ b/libjava/classpath/lib/javax/swing/JPopupMenu.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JProgressBar$1.class b/libjava/classpath/lib/javax/swing/JProgressBar$1.class
index 724d927..c85f931 100644
--- a/libjava/classpath/lib/javax/swing/JProgressBar$1.class
+++ b/libjava/classpath/lib/javax/swing/JProgressBar$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.class b/libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.class
index 7c891a5..de951cd 100644
--- a/libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.class
+++ b/libjava/classpath/lib/javax/swing/JProgressBar$AccessibleJProgressBar.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JProgressBar.class b/libjava/classpath/lib/javax/swing/JProgressBar.class
index c626ad4..e552369 100644
--- a/libjava/classpath/lib/javax/swing/JProgressBar.class
+++ b/libjava/classpath/lib/javax/swing/JProgressBar.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.class b/libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.class
index bb29b1c..8a26293 100644
--- a/libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.class
+++ b/libjava/classpath/lib/javax/swing/JScrollBar$AccessibleJScrollBar.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.class b/libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.class
index e102fcb..5ebce24 100644
--- a/libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.class
+++ b/libjava/classpath/lib/javax/swing/JScrollBar$ScrollBarChangeListener.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JScrollBar.class b/libjava/classpath/lib/javax/swing/JScrollBar.class
index 6b208ed..ebb56b2 100644
--- a/libjava/classpath/lib/javax/swing/JScrollBar.class
+++ b/libjava/classpath/lib/javax/swing/JScrollBar.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JSlider$1.class b/libjava/classpath/lib/javax/swing/JSlider$1.class
index c819820..90becf8 100644
--- a/libjava/classpath/lib/javax/swing/JSlider$1.class
+++ b/libjava/classpath/lib/javax/swing/JSlider$1.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.class b/libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.class
index 76cb9d0..cfd8a33 100644
--- a/libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.class
+++ b/libjava/classpath/lib/javax/swing/JSlider$AccessibleJSlider.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.class b/libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.class
index 7019acc..d874317 100644
--- a/libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.class
+++ b/libjava/classpath/lib/javax/swing/JSlider$LabelUIResource.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JSlider.class b/libjava/classpath/lib/javax/swing/JSlider.class
index bbb3334..73cbffa 100644
--- a/libjava/classpath/lib/javax/swing/JSlider.class
+++ b/libjava/classpath/lib/javax/swing/JSlider.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.class b/libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.class
index 05f9b3e..a11ad3c 100644
--- a/libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.class
+++ b/libjava/classpath/lib/javax/swing/JSplitPane$AccessibleJSplitPane.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JSplitPane.class b/libjava/classpath/lib/javax/swing/JSplitPane.class
index 2e9fff0..7ef0eb0 100644
--- a/libjava/classpath/lib/javax/swing/JSplitPane.class
+++ b/libjava/classpath/lib/javax/swing/JSplitPane.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.class b/libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.class
index 958e838..ee241d2 100644
--- a/libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.class
+++ b/libjava/classpath/lib/javax/swing/JTabbedPane$AccessibleJTabbedPane.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.class b/libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.class
index 5b8d73e..377d5a2 100644
--- a/libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.class
+++ b/libjava/classpath/lib/javax/swing/JTabbedPane$ModelListener.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JTabbedPane$Page.class b/libjava/classpath/lib/javax/swing/JTabbedPane$Page.class
index e28c57d..0937986 100644
--- a/libjava/classpath/lib/javax/swing/JTabbedPane$Page.class
+++ b/libjava/classpath/lib/javax/swing/JTabbedPane$Page.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JTabbedPane.class b/libjava/classpath/lib/javax/swing/JTabbedPane.class
index efd5443..10e0212 100644
--- a/libjava/classpath/lib/javax/swing/JTabbedPane.class
+++ b/libjava/classpath/lib/javax/swing/JTabbedPane.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.class b/libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.class
index 2956636..cc3cccd 100644
--- a/libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.class
+++ b/libjava/classpath/lib/javax/swing/JToolBar$AccessibleJToolBar.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.class b/libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.class
index 59f1e07..1f4fe9a 100644
--- a/libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.class
+++ b/libjava/classpath/lib/javax/swing/JToolBar$DefaultToolBarLayout.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JToolBar$Separator.class b/libjava/classpath/lib/javax/swing/JToolBar$Separator.class
index f046b5f..ec9e062 100644
--- a/libjava/classpath/lib/javax/swing/JToolBar$Separator.class
+++ b/libjava/classpath/lib/javax/swing/JToolBar$Separator.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JToolBar.class b/libjava/classpath/lib/javax/swing/JToolBar.class
index 6a6953b..b6ec040 100644
--- a/libjava/classpath/lib/javax/swing/JToolBar.class
+++ b/libjava/classpath/lib/javax/swing/JToolBar.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.class b/libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.class
index 246aa68..b99cbe5 100644
--- a/libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.class
+++ b/libjava/classpath/lib/javax/swing/JToolTip$AccessibleJToolTip.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/JToolTip.class b/libjava/classpath/lib/javax/swing/JToolTip.class
index 8980fc1..973442a 100644
--- a/libjava/classpath/lib/javax/swing/JToolTip.class
+++ b/libjava/classpath/lib/javax/swing/JToolTip.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.class b/libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.class
index e5c5318..e068c93 100644
--- a/libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.class
+++ b/libjava/classpath/lib/javax/swing/UIManager$LookAndFeelInfo.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class b/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class
index b5d3a36..9819e1e 100644
--- a/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class
+++ b/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults$MultiplexEnumeration.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.class b/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.class
index 287c124..a38776c 100644
--- a/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.class
+++ b/libjava/classpath/lib/javax/swing/UIManager$MultiplexUIDefaults.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/UIManager.class b/libjava/classpath/lib/javax/swing/UIManager.class
index 2cfeef7..f080703 100644
--- a/libjava/classpath/lib/javax/swing/UIManager.class
+++ b/libjava/classpath/lib/javax/swing/UIManager.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/event/EventListenerList.class b/libjava/classpath/lib/javax/swing/event/EventListenerList.class
index d51511e..0db34b6 100644
--- a/libjava/classpath/lib/javax/swing/event/EventListenerList.class
+++ b/libjava/classpath/lib/javax/swing/event/EventListenerList.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/table/AbstractTableModel.class b/libjava/classpath/lib/javax/swing/table/AbstractTableModel.class
index acb354b..48f5945 100644
--- a/libjava/classpath/lib/javax/swing/table/AbstractTableModel.class
+++ b/libjava/classpath/lib/javax/swing/table/AbstractTableModel.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.class
index c7cde32..03c8d40 100644
--- a/libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.class
+++ b/libjava/classpath/lib/javax/swing/text/AbstractDocument$AbstractElement.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.class
index 5b86329..2ffd378 100644
--- a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.class
+++ b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiElement.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.class
index 75bbf7f..4f9dd8c 100644
--- a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.class
+++ b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BidiRootElement.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.class
index 110449a..aa39539 100644
--- a/libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.class
+++ b/libjava/classpath/lib/javax/swing/text/AbstractDocument$BranchElement.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.class
index 9dae382..f65bc2a 100644
--- a/libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.class
+++ b/libjava/classpath/lib/javax/swing/text/AbstractDocument$Bypass.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.class
index 49c7efb..5db3284 100644
--- a/libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.class
+++ b/libjava/classpath/lib/javax/swing/text/AbstractDocument$DefaultDocumentEvent.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.class
index 271079b..02011c5 100644
--- a/libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.class
+++ b/libjava/classpath/lib/javax/swing/text/AbstractDocument$ElementEdit.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.class
index cc08b69..29253c8 100644
--- a/libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.class
+++ b/libjava/classpath/lib/javax/swing/text/AbstractDocument$LeafElement.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/AbstractDocument.class b/libjava/classpath/lib/javax/swing/text/AbstractDocument.class
index 3aef595..8c2d26f 100644
--- a/libjava/classpath/lib/javax/swing/text/AbstractDocument.class
+++ b/libjava/classpath/lib/javax/swing/text/AbstractDocument.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.class
index 0042d05..1a36aa1 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BackwardAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.class
index efb137b..07306c4 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeepAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.class
index b428801..8bd3e99 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.class
index a0d6cf1..f076690 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginLineAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.class
index 64bd8d6..6ba6b1b 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$BeginWordAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.class
index 93e9be5..3894660 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CopyAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.class
index 80b43cb..4602bb7 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$CutAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.class
index 1b14036..4664ea9 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DefaultKeyTypedAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.class
index 2a74bf7..821e347 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeleteNextCharAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.class
index 88c01ad..0b41f8c 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DeletePrevCharAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.class
index 26b7bf4..8d75725 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$DownAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.class
index a8319fa..a9d0820 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.class
index 3708263..2aea497 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndLineAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.class
index 66f079f..4d358f0 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$EndWordAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.class
index bf189a9..1947f10 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$ForwardAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.class
index 1f7c364..5368fac 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertBreakAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.class
index 5701aae..96981c0 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertContentAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.class
index f5a64f8..424fc99 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$InsertTabAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.class
index bbf055fb..45381d8 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$NextWordAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.class
index 8ebb7f4..a4c1403 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PasteAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.class
index 7d2d4b0..ce3b6a2 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$PreviousWordAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.class
index cf44390..c500f59 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectAllAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.class
index ccc5a64..b6d9b9f 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectLineAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.class
index 54ed14c..8aba99c 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectWordAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.class
index 5b0695fa..a9fd71e 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBackwardAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.class
index 4fbaf30..6a9c110 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.class
index a127a55..9303472 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginLineAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.class
index c9cb13f..0bc9186 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionBeginWordAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.class
index 33c351b..24ddfda 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionDownAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.class
index 29fac6c..aa97d95 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.class
index 0f6d39b..653aa35 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndLineAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.class
index de30976..6164035 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionEndWordAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.class
index 162a436..3728da8 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionForwardAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.class
index 3422529..f1017d5 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionNextWordAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.class
index ad3ace4..b821d16 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionPreviousWordAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.class
index 0c5926f..37256d9 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$SelectionUpAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.class
index 41609d3..e8c9ccf 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit$UpAction.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit.class b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit.class
index dd9e724..c1eb005 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultEditorKit.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultEditorKit.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.class
index 1d2bcd8..0eb9279 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$AttributeUndoableEdit.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.class
index f64b587..16573e9 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer$Edit.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class
index 8cfb9d9..78fe23c 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementBuffer.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.class
index b82e725..38ff147 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$ElementSpec.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class
index fdf2590..60a3292 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$SectionElement.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class
index d22f506..82faca1 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument$StyleChangeListener.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class
index 0418b79..d00f9e1 100644
--- a/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class
+++ b/libjava/classpath/lib/javax/swing/text/DefaultStyledDocument.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.class
index e6fda06..fc777b4 100644
--- a/libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.class
+++ b/libjava/classpath/lib/javax/swing/text/JTextComponent$AccessibleJTextComponent.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.class
index 997fa67..50365e2 100644
--- a/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.class
+++ b/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultKeymap.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.class
index 8533861..41f26d9 100644
--- a/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.class
+++ b/libjava/classpath/lib/javax/swing/text/JTextComponent$DefaultTransferHandler.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.class
index bf2683d..0648f7e 100644
--- a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.class
+++ b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeyBinding.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.class
index 8a4084e..d234a5e 100644
--- a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.class
+++ b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapActionMap.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.class b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.class
index 13d41ad..0ef60fb 100644
--- a/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.class
+++ b/libjava/classpath/lib/javax/swing/text/JTextComponent$KeymapWrapper.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/JTextComponent.class b/libjava/classpath/lib/javax/swing/text/JTextComponent.class
index 8e04d60..93fb71c 100644
--- a/libjava/classpath/lib/javax/swing/text/JTextComponent.class
+++ b/libjava/classpath/lib/javax/swing/text/JTextComponent.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/MaskFormatter.class b/libjava/classpath/lib/javax/swing/text/MaskFormatter.class
index 559193a..28c0e25 100644
--- a/libjava/classpath/lib/javax/swing/text/MaskFormatter.class
+++ b/libjava/classpath/lib/javax/swing/text/MaskFormatter.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/TabSet.class b/libjava/classpath/lib/javax/swing/text/TabSet.class
index 5f0b640..9ff1c99 100644
--- a/libjava/classpath/lib/javax/swing/text/TabSet.class
+++ b/libjava/classpath/lib/javax/swing/text/TabSet.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/html/CSSParser.class b/libjava/classpath/lib/javax/swing/text/html/CSSParser.class
index a828807..ecb7ea1 100644
--- a/libjava/classpath/lib/javax/swing/text/html/CSSParser.class
+++ b/libjava/classpath/lib/javax/swing/text/html/CSSParser.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class b/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class
index d390a80..d213fcb 100644
--- a/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class
+++ b/libjava/classpath/lib/javax/swing/text/html/HTMLWriter.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class
index d358e47..9ceb67c 100644
--- a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class
+++ b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$BoxPainter.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.class b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.class
index 790a409..896f55e 100644
--- a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.class
+++ b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$CSSStyle.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class
index f94d394..7640949 100644
--- a/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class
+++ b/libjava/classpath/lib/javax/swing/text/html/StyleSheet$ListPainter.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class b/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class
index 7e6f42c..c56498c 100644
--- a/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class
+++ b/libjava/classpath/lib/javax/swing/text/html/StyleSheet.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.class b/libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.class
index c52ba99..43660e1 100644
--- a/libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.class
+++ b/libjava/classpath/lib/javax/swing/text/html/ViewAttributeSet.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class
index b35ed22..3a2d288 100644
--- a/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class
+++ b/libjava/classpath/lib/javax/swing/tree/DefaultMutableTreeNode.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.class
index 03813c3..4381086 100644
--- a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.class
+++ b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel$PathPlaceHolder.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class
index c879475..ec0e33c 100644
--- a/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class
+++ b/libjava/classpath/lib/javax/swing/tree/DefaultTreeSelectionModel.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/tools/FileObject.class b/libjava/classpath/lib/javax/tools/FileObject.class
index 39db6c5..5da1d39 100644
--- a/libjava/classpath/lib/javax/tools/FileObject.class
+++ b/libjava/classpath/lib/javax/tools/FileObject.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class b/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class
index 1d3209f..a901890 100644
--- a/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class
+++ b/libjava/classpath/lib/javax/xml/datatype/DatatypeFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/namespace/QName.class b/libjava/classpath/lib/javax/xml/namespace/QName.class
index 9c101de..8bef9fe 100644
--- a/libjava/classpath/lib/javax/xml/namespace/QName.class
+++ b/libjava/classpath/lib/javax/xml/namespace/QName.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.class b/libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.class
index 79e8ac5..e9fdeb8 100644
--- a/libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.class
+++ b/libjava/classpath/lib/javax/xml/parsers/DocumentBuilderFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.class b/libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.class
index ae7d1d2..9090c04 100644
--- a/libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.class
+++ b/libjava/classpath/lib/javax/xml/parsers/SAXParserFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class b/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class
index ec7264a..1059715 100644
--- a/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class
+++ b/libjava/classpath/lib/javax/xml/stream/XMLEventFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class b/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class
index 670d77c..24d1a36 100644
--- a/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class
+++ b/libjava/classpath/lib/javax/xml/stream/XMLInputFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class b/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class
index 6917a3b..dab5cee 100644
--- a/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class
+++ b/libjava/classpath/lib/javax/xml/stream/XMLOutputFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/transform/TransformerException.class b/libjava/classpath/lib/javax/xml/transform/TransformerException.class
index 5429f71..099fb58 100644
--- a/libjava/classpath/lib/javax/xml/transform/TransformerException.class
+++ b/libjava/classpath/lib/javax/xml/transform/TransformerException.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/transform/TransformerFactory.class b/libjava/classpath/lib/javax/xml/transform/TransformerFactory.class
index 3828690..b26db70 100644
--- a/libjava/classpath/lib/javax/xml/transform/TransformerFactory.class
+++ b/libjava/classpath/lib/javax/xml/transform/TransformerFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/validation/SchemaFactory.class b/libjava/classpath/lib/javax/xml/validation/SchemaFactory.class
index 74de654..b6ef92c 100644
--- a/libjava/classpath/lib/javax/xml/validation/SchemaFactory.class
+++ b/libjava/classpath/lib/javax/xml/validation/SchemaFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/javax/xml/xpath/XPathFactory.class b/libjava/classpath/lib/javax/xml/xpath/XPathFactory.class
index bcd8cf0..73b9fbe 100644
--- a/libjava/classpath/lib/javax/xml/xpath/XPathFactory.class
+++ b/libjava/classpath/lib/javax/xml/xpath/XPathFactory.class
Binary files differ
diff --git a/libjava/classpath/lib/org/ietf/jgss/Oid.class b/libjava/classpath/lib/org/ietf/jgss/Oid.class
index a920291..f491079 100644
--- a/libjava/classpath/lib/org/ietf/jgss/Oid.class
+++ b/libjava/classpath/lib/org/ietf/jgss/Oid.class
Binary files differ
diff --git a/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class b/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class
index d4900be..7e5cf6a 100644
--- a/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class
+++ b/libjava/classpath/lib/org/omg/CORBA/portable/Delegate.class
Binary files differ
diff --git a/libjava/classpath/ltgcc.m4 b/libjava/classpath/ltgcc.m4
new file mode 100644
index 0000000..844e2bc
--- /dev/null
+++ b/libjava/classpath/ltgcc.m4
@@ -0,0 +1,60 @@
+# _LT_LANG_GCJ_CONFIG([TAG])
+# --------------------------
+# Ensure that the configuration variables for the GNU Java Compiler compiler
+# are suitably defined. These variables are subsequently used by _LT_CONFIG
+# to write the compiler configuration to `libtool'. Locally modified to
+# run its tests on C programs, because we cannot link Java programs until
+# we have finished building libjava.
+AC_DEFUN([_LT_LANG_GCJ_CONFIG],
+[AC_REQUIRE([LT_PROG_GCJ])dnl
+AC_LANG_SAVE
+
+# Source file extension for Java test sources.
+ac_ext=c
+
+# Object file extension for compiled Java test sources.
+objext=o
+_LT_TAGVAR(objext, $1)=$objext
+
+# Code to be used in simple compile tests
+lt_simple_compile_test_code="int some_variable = 0;"
+
+# Code to be used in simple link tests
+lt_simple_link_test_code='int main(){return(0);}'
+
+# ltmain only uses $CC for tagged configurations so make sure $CC is set.
+_LT_TAG_COMPILER
+
+# save warnings/boilerplate of simple test code
+_LT_COMPILER_BOILERPLATE
+_LT_LINKER_BOILERPLATE
+
+# Allow CC to be a program name with arguments.
+GCC=yes
+compiler=$CC
+_LT_TAGVAR(compiler, $1)=$CC
+_LT_CC_BASENAME([$compiler])
+
+# GCJ did not exist at the time GCC didn't implicitly link libc in.
+_LT_TAGVAR(archive_cmds_need_lc, $1)=no
+
+_LT_TAGVAR(old_archive_cmds, $1)=$old_archive_cmds
+
+## CAVEAT EMPTOR:
+## There is no encapsulation within the following macros, do not change
+## the running order or otherwise move them around unless you know exactly
+## what you are doing...
+if test -n "$compiler"; then
+ _LT_COMPILER_NO_RTTI($1)
+ _LT_COMPILER_PIC($1)
+ _LT_COMPILER_C_O($1)
+ _LT_COMPILER_FILE_LOCKS($1)
+ _LT_LINKER_SHLIBS($1)
+ _LT_LINKER_HARDCODE_LIBPATH($1)
+
+ _LT_CONFIG($1)
+fi
+
+_LT_TAGVAR(compiler, $1)=${GCJ-gcj}
+AC_LANG_RESTORE
+])# _LT_LANG_GCJ_CONFIG
diff --git a/libjava/classpath/ltmain.sh b/libjava/classpath/ltmain.sh
index 9d84418..8dfa0b3 100644
--- a/libjava/classpath/ltmain.sh
+++ b/libjava/classpath/ltmain.sh
@@ -1,30 +1,32 @@
-# Generated from ltmain.m4sh; do not edit by hand
+# Generated from ltmain.m4sh.
-# ltmain.sh (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
+# ltmain.sh (GNU libtool) 2.2.6
# Written by Gordon Matzigkeit <gord@gnu.ai.mit.edu>, 1996
-# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+# Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2003, 2004, 2005, 2006, 2007 2008 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.
-# This program is free software; you can redistribute it and/or modify
+# GNU Libtool is free software; you can 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
+# As a special exception to the GNU General Public License,
+# if you distribute this file as part of a program or library that
+# is built using GNU Libtool, you may include this file under the
+# same distribution terms that you use for the rest of that program.
+#
+# GNU Libtool is distributed in the hope that it will be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
# 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.
+# along with GNU Libtool; see the file COPYING. If not, a copy
+# can be downloaded from http://www.gnu.org/licenses/gpl.html,
+# or obtained by writing to the Free Software Foundation, Inc.,
+# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
# Usage: $progname [OPTION]... [MODE-ARG]...
#
@@ -63,7 +65,7 @@
# compiler: $LTCC
# compiler flags: $LTCFLAGS
# linker: $LD (gnu? $with_gnu_ld)
-# $progname: (GNU libtool 1.2435 2007/03/18 18:44:42) 2.1a
+# $progname: (GNU libtool) 2.2.6
# automake: $automake_version
# autoconf: $autoconf_version
#
@@ -71,9 +73,9 @@
PROGRAM=ltmain.sh
PACKAGE=libtool
-VERSION=2.1a
-TIMESTAMP=" 1.2435 2007/03/18 18:44:42"
-package_revision=1.2435
+VERSION=2.2.6
+TIMESTAMP=""
+package_revision=1.3012
# Be Bourne compatible
if test -n "${ZSH_VERSION+set}" && (emulate sh) >/dev/null 2>&1; then
@@ -93,12 +95,16 @@ DUALCASE=1; export DUALCASE # for MKS sh
# Only set LANG and LC_ALL to C if already set.
# These must not be set unconditionally because not all systems understand
# e.g. LANG=C (notably SCO).
-for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+lt_user_locale=
+lt_safe_locale=
+for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
do
eval "if test \"\${$lt_var+set}\" = set; then
save_$lt_var=\$$lt_var
$lt_var=C
export $lt_var
+ lt_user_locale=\"$lt_var=\\\$save_\$lt_var; \$lt_user_locale\"
+ lt_safe_locale=\"$lt_var=C; \$lt_safe_locale\"
fi"
done
@@ -110,15 +116,15 @@ $lt_unset CDPATH
: ${CP="cp -f"}
: ${ECHO="echo"}
-: ${EGREP="/bin/grep -E"}
-: ${FGREP="/bin/grep -F"}
-: ${GREP="/bin/grep"}
+: ${EGREP="/usr/bin/grep -E"}
+: ${FGREP="/usr/bin/grep -F"}
+: ${GREP="/usr/bin/grep"}
: ${LN_S="ln -s"}
: ${MAKE="make"}
: ${MKDIR="mkdir"}
: ${MV="mv -f"}
: ${RM="rm -f"}
-: ${SED="/bin/sed"}
+: ${SED="/opt/local/bin/gsed"}
: ${SHELL="${CONFIG_SHELL-/bin/sh}"}
: ${Xsed="$SED -e 1s/^X//"}
@@ -138,6 +144,32 @@ IFS=" $lt_nl"
dirname="s,/[^/]*$,,"
basename="s,^.*/,,"
+# func_dirname_and_basename file append nondir_replacement
+# perform func_basename and func_dirname in a single function
+# call:
+# dirname: Compute the dirname of FILE. If nonempty,
+# add APPEND to the result, otherwise set result
+# to NONDIR_REPLACEMENT.
+# value returned in "$func_dirname_result"
+# basename: Compute filename of FILE.
+# value retuned in "$func_basename_result"
+# Implementation must be kept synchronized with func_dirname
+# and func_basename. For efficiency, we do not delegate to
+# those functions but instead duplicate the functionality here.
+func_dirname_and_basename ()
+{
+ # Extract subdirectory from the argument.
+ func_dirname_result=`$ECHO "X${1}" | $Xsed -e "$dirname"`
+ if test "X$func_dirname_result" = "X${1}"; then
+ func_dirname_result="${3}"
+ else
+ func_dirname_result="$func_dirname_result${2}"
+ fi
+ func_basename_result=`$ECHO "X${1}" | $Xsed -e "$basename"`
+}
+
+# Generated shell functions inserted here.
+
# 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
@@ -148,13 +180,17 @@ progpath="$0"
# The name of this program:
# In the unlikely event $progname began with a '-', it would play havoc with
# func_echo (imagine progname=-n), so we prepend ./ in that case:
-progname=`$ECHO "X$progpath" | $Xsed -e "$basename" -e 's,^-,./-,'`
+func_dirname_and_basename "$progpath"
+progname=$func_basename_result
+case $progname in
+ -*) progname=./$progname ;;
+esac
# Make sure we have an absolute path for reexecution:
case $progpath in
[\\/]*|[A-Za-z]:\\*) ;;
*[\\/]*)
- progdir=`$ECHO "X$progpath" | $Xsed -e "$dirname"`
+ progdir=$func_dirname_result
progdir=`cd "$progdir" && pwd`
progpath="$progdir/$progname"
;;
@@ -200,13 +236,14 @@ opt_dry_run=false
opt_help=false
opt_quiet=false
opt_verbose=false
+opt_warning=:
# func_echo arg...
# Echo program name prefixed message, along with the current mode
# name if it has been set yet.
func_echo ()
{
- $ECHO "$progname${mode+: }$mode: "${1+"$@"}
+ $ECHO "$progname${mode+: }$mode: $*"
}
# func_verbose arg...
@@ -232,7 +269,10 @@ func_error ()
# Echo program name prefixed warning message to standard error.
func_warning ()
{
- $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+ $opt_warning && $ECHO "$progname${mode+: }$mode: warning: "${1+"$@"} 1>&2
+
+ # bash bug again:
+ :
}
# func_fatal_error arg...
@@ -423,6 +463,32 @@ func_show_eval ()
}
+# func_show_eval_locale cmd [fail_exp]
+# Unless opt_silent is true, then output CMD. Then, if opt_dryrun is
+# not true, evaluate CMD. If the evaluation of CMD fails, and FAIL_EXP
+# is given, then evaluate it. Use the saved locale for evaluation.
+func_show_eval_locale ()
+{
+ my_cmd="$1"
+ my_fail_exp="${2-:}"
+
+ ${opt_silent-false} || {
+ func_quote_for_expand "$my_cmd"
+ eval "func_echo $func_quote_for_expand_result"
+ }
+
+ if ${opt_dry_run-false}; then :; else
+ eval "$lt_user_locale
+ $my_cmd"
+ my_status=$?
+ eval "$lt_safe_locale"
+ if test "$my_status" -eq 0; then :; else
+ eval "(exit $my_status); $my_fail_exp"
+ fi
+ fi
+}
+
+
@@ -515,7 +581,7 @@ EOF
fi
magic="%%%MAGIC variable%%%"
-
+magic_exe="%%%MAGIC EXE variable%%%"
# Global variables.
# $mode is unset
@@ -626,191 +692,6 @@ func_enable_tag ()
esac
}
-
-func_mode_help ()
-{
- # We need to display help for each of the modes.
- case $mode in
- "")
- # Generic help is extracted from the usage comments
- # at the start of this file.
- func_help
- ;;
-
- clean)
- $ECHO \
-"Usage: $progname [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: $progname [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
- -no-suppress do not suppress compiler output for multiple passes
- -prefer-pic try to building PIC objects only
- -prefer-non-pic try to building non-PIC objects only
- -shared do not build a \`.o' file suitable for static linking
- -static only 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: $progname [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: $progname [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: $progname [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 following components of INSTALL-COMMAND are treated specially:
-
- -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation
-
-The rest of the components are interpreted as arguments to that command (only
-BSD-compatible install options are recognized)."
- ;;
-
- link)
- $ECHO \
-"Usage: $progname [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
- -shared only do dynamic linking of libtool libraries
- -shrext SUFFIX override the standard shared library file extension
- -static do not do any dynamic linking of uninstalled libtool libraries
- -static-libtool-libs
- do not do any dynamic linking of libtool libraries
- -version-info CURRENT[:REVISION[:AGE]]
- specify library version info [each variable defaults to 0]
- -weak LIBNAME declare that the target provides the LIBNAME interface
-
-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: $progname [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."
- ;;
-
- *)
- func_fatal_help "invalid operation mode \`$mode'"
- ;;
- esac
-
- $ECHO
- $ECHO "Try \`$progname --help' for more information about other modes."
-
- exit $?
-}
-
-# Generated shell functions inserted here.
-
-
# Parse options once, thoroughly. This comes as soon as possible in
# the script to make things like `libtool --version' happen quickly.
{
@@ -846,11 +727,11 @@ Otherwise, only FILE itself is deleted using RM."
shift
case $opt in
- --config) func_config ;;
+ --config) func_config ;;
--debug) preserve_args="$preserve_args $opt"
- func_echo "enabling shell trace mode"
- opt_debug='set -x'
+ func_echo "enabling shell trace mode"
+ opt_debug='set -x'
$opt_debug
;;
@@ -864,7 +745,7 @@ Otherwise, only FILE itself is deleted using RM."
--finish) mode="finish" ;;
--mode) test "$#" -eq 0 && func_missing_arg "$opt" && break
- case $1 in
+ case $1 in
# Valid mode arguments:
clean) ;;
compile) ;;
@@ -882,19 +763,19 @@ Otherwise, only FILE itself is deleted using RM."
;;
esac
- mode="$1"
+ mode="$1"
shift
;;
--preserve-dup-deps)
- opt_duplicate_deps=: ;;
+ opt_duplicate_deps=: ;;
--quiet|--silent) preserve_args="$preserve_args $opt"
- opt_silent=:
+ opt_silent=:
;;
--verbose| -v) preserve_args="$preserve_args $opt"
- opt_silent=false
+ opt_silent=false
;;
--tag) test "$#" -eq 0 && func_missing_arg "$opt" && break
@@ -917,16 +798,14 @@ Otherwise, only FILE itself is deleted using RM."
-*) func_fatal_help "unrecognized option \`$opt'" ;;
*) nonopt="$opt"
- break
+ break
;;
esac
done
- # Now that we've collected a possible --mode arg, show help if necessary
- $opt_help && func_mode_help
case $host in
- *cygwin* | *mingw* | *pw32*)
+ *cygwin* | *mingw* | *pw32* | *cegcc*)
# don't eliminate duplications in $postdeps and $predeps
opt_duplicate_compiler_generated_deps=:
;;
@@ -980,7 +859,7 @@ _LT_EOF
## Main. ##
## ----------- ##
-{
+$opt_help || {
# Sanity checks first:
func_check_version_match
@@ -1014,8 +893,9 @@ _LT_EOF
# determined imposters.
func_lalib_p ()
{
- $SED -e 4q "$1" 2>/dev/null \
- | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
+ test -f "$1" &&
+ $SED -e 4q "$1" 2>/dev/null \
+ | $GREP "^# Generated by .*$PACKAGE" > /dev/null 2>&1
}
# func_lalib_unsafe_p file
@@ -1028,7 +908,7 @@ func_lalib_p ()
func_lalib_unsafe_p ()
{
lalib_p=no
- if test -r "$1" && exec 5<&1 <"$1"; then
+ if test -f "$1" && test -r "$1" && exec 5<&0 <"$1"; then
for lalib_p_l in 1 2 3 4
do
read lalib_p_line
@@ -1036,18 +916,55 @@ func_lalib_unsafe_p ()
\#\ Generated\ by\ *$PACKAGE* ) lalib_p=yes; break;;
esac
done
- exec 1<&5 5<&-
+ exec 0<&5 5<&-
fi
test "$lalib_p" = yes
}
+# func_ltwrapper_script_p file
+# True iff FILE is a libtool wrapper script
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_script_p ()
+{
+ func_lalib_p "$1"
+}
+
+# func_ltwrapper_executable_p file
+# True iff FILE is a libtool wrapper executable
+# This function is only a basic sanity check; it will hardly flush out
+# determined imposters.
+func_ltwrapper_executable_p ()
+{
+ func_ltwrapper_exec_suffix=
+ case $1 in
+ *.exe) ;;
+ *) func_ltwrapper_exec_suffix=.exe ;;
+ esac
+ $GREP "$magic_exe" "$1$func_ltwrapper_exec_suffix" >/dev/null 2>&1
+}
+
+# func_ltwrapper_scriptname file
+# Assumes file is an ltwrapper_executable
+# uses $file to determine the appropriate filename for a
+# temporary ltwrapper_script.
+func_ltwrapper_scriptname ()
+{
+ func_ltwrapper_scriptname_result=""
+ if func_ltwrapper_executable_p "$1"; then
+ func_dirname_and_basename "$1" "" "."
+ func_stripname '' '.exe' "$func_basename_result"
+ func_ltwrapper_scriptname_result="$func_dirname_result/$objdir/${func_stripname_result}_ltshwrapper"
+ fi
+}
+
# func_ltwrapper_p file
-# True iff FILE is a libtool wrapper script.
+# True iff FILE is a libtool wrapper script or wrapper executable
# This function is only a basic sanity check; it will hardly flush out
# determined imposters.
func_ltwrapper_p ()
{
- func_lalib_p "$1"
+ func_ltwrapper_script_p "$1" || func_ltwrapper_executable_p "$1"
}
@@ -1084,55 +1001,6 @@ func_source ()
}
-# 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 ()
-{
- $opt_debug
- 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 '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.
@@ -1192,359 +1060,6 @@ func_infer_tag ()
-# func_generate_dlsyms outputname originator pic_p
-# Extract symbols from dlprefiles and create ${outputname}S.o with
-# a dlpreopen symbol table.
-func_generate_dlsyms ()
-{
- $opt_debug
- my_outputname="$1"
- my_originator="$2"
- my_pic_p="${3-no}"
- my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
- my_dlsyms=
-
- if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
- if test -n "$NM" && test -n "$global_symbol_pipe"; then
- my_dlsyms="${my_outputname}S.c"
- else
- func_error "not configured to extract global symbols from dlpreopened files"
- fi
- fi
-
- if test -n "$my_dlsyms"; then
- case $my_dlsyms in
- "") ;;
- *.c)
- # Discover the nlist of each of the dlfiles.
- nlist="$output_objdir/${my_outputname}.nm"
-
- func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
-
- # Parse the name list into a source file.
- func_echo "creating $output_objdir/$my_dlsyms"
-
- $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
-/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
-/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
-
-#ifdef __cplusplus
-extern \"C\" {
-#endif
-
-/* External symbol declarations for the compiler. */\
-"
-
- if test "$dlself" = yes; then
- func_echo "generating symbol list for \`$output'"
-
- $opt_dry_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 progfile in $progfiles; do
- func_echo "extracting global C symbols from \`$progfile'"
- $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
- done
-
- if test -n "$exclude_expsyms"; then
- $opt_dry_run || {
- eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- if test -n "$export_symbols_regex"; then
- $opt_dry_run || {
- eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- }
- fi
-
- # Prepare the list of exported symbols
- if test -z "$export_symbols"; then
- export_symbols="$output_objdir/$outputname.exp"
- $opt_dry_run || {
- $RM $export_symbols
- eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
- case $host in
- *cygwin* | *mingw* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- else
- $opt_dry_run || {
- eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
- eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
- eval '$MV "$nlist"T "$nlist"'
- case $host in
- *cygwin | *mingw* )
- eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
- eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
- ;;
- esac
- }
- fi
- fi
-
- for dlprefile in $dlprefiles; do
- func_echo "extracting global C symbols from \`$dlprefile'"
- func_basename "$dlprefile"
- name="$func_basename_result"
- $opt_dry_run || {
- eval '$ECHO ": $name " >> "$nlist"'
- eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
- }
- done
-
- $opt_dry_run || {
- # 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 >/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/$my_dlsyms"'
- else
- $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
- fi
-
- $ECHO >> "$output_objdir/$my_dlsyms" "\
-
-/* The mapping between symbol names and symbols. */
-typedef struct {
- const char *name;
- void *address;
-} lt_dlsymlist;
-"
- case $host in
- *cygwin* | *mingw* )
- $ECHO >> "$output_objdir/$my_dlsyms" "\
-/* DATA imports from DLLs on WIN32 con't be const, because
- runtime relocations are performed -- see ld's documentation
- on pseudo-relocs. */"
- lt_dlsym_const= ;;
- *osf5*)
- echo >> "$output_objdir/$my_dlsyms" "\
-/* This system does not cope well with relocations in const data */"
- lt_dlsym_const= ;;
- *)
- lt_dlsym_const=const ;;
- esac
-
- $ECHO >> "$output_objdir/$my_dlsyms" "\
-extern $lt_dlsym_const lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[];
-$lt_dlsym_const lt_dlsymlist
-lt_${my_prefix}_LTX_preloaded_symbols[] =
-{\
- { \"$my_originator\", (void *) 0 },"
-
- eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
-
- $ECHO >> "$output_objdir/$my_dlsyms" "\
- {0, (void *) 0}
-};
-
-/* This works around a problem in FreeBSD linker */
-#ifdef FREEBSD_WORKAROUND
-static const void *lt_preloaded_setup() {
- return lt_${my_prefix}_LTX_preloaded_symbols;
-}
-#endif
-
-#ifdef __cplusplus
-}
-#endif\
-"
- } # !$opt_dry_run
-
- pic_flag_for_symtable=
- case "$compile_command " in
- *" -static "*) ;;
- *)
- 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*)
- pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
- *-*-hpux*)
- pic_flag_for_symtable=" $pic_flag" ;;
- *)
- if test "X$my_pic_p" != Xno; then
- pic_flag_for_symtable=" $pic_flag"
- fi
- ;;
- esac
- ;;
- esac
- symtab_cflags=
- for arg in $LTCFLAGS; do
- case $arg in
- -pie | -fpie | -fPIE) ;;
- *) symtab_cflags="$symtab_cflags $arg" ;;
- esac
- done
-
- # Now compile the dynamic symbol file.
- func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
-
- # Clean up the generated files.
- func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
-
- # Transform the symbol file into the correct name.
- symfileobj="$output_objdir/${my_outputname}S.$objext"
- case $host in
- *cygwin* | *mingw* )
- if test -f "$output_objdir/$my_outputname.def"; then
- compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
- else
- compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
- fi
- ;;
- *)
- compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
- finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
- ;;
- esac
- ;;
- *)
- func_fatal_error "unknown suffix for \`$my_dlsyms'"
- ;;
- 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
-}
-
-# func_extract_an_archive dir oldlib
-func_extract_an_archive ()
-{
- $opt_debug
- f_ex_an_ar_dir="$1"; shift
- f_ex_an_ar_oldlib="$1"
- func_show_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
- func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
- fi
-}
-
-
-# func_extract_archives gentop oldlib ...
-func_extract_archives ()
-{
- $opt_debug
- my_gentop="$1"; shift
- my_oldlibs=${1+"$@"}
- my_oldobjs=""
- my_xlib=""
- my_xabs=""
- my_xdir=""
-
- 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
- func_basename "$my_xlib"
- my_xlib="$func_basename_result"
- my_xlib_u=$my_xlib
- while :; do
- case " $extracted_archives " in
- *" $my_xlib_u "*)
- extracted_serial=`expr $extracted_serial + 1`
- my_xlib_u=lt$extracted_serial-$my_xlib ;;
- *) break ;;
- esac
- done
- extracted_archives="$extracted_archives $my_xlib_u"
- my_xdir="$my_gentop/$my_xlib_u"
-
- func_mkdir_p "$my_xdir"
-
- case $host in
- *-darwin*)
- func_echo "Extracting $my_xabs"
- # Do not bother doing anything if just a dry run
- $opt_dry_run || {
- darwin_orig_dir=`pwd`
- cd $my_xdir || exit $?
- darwin_archive=$my_xabs
- darwin_curdir=`pwd`
- darwin_base_archive=`basename $darwin_archive`
- darwin_arches=`lipo -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
- if test -n "$darwin_arches"; then
- darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
- darwin_arch=
- func_echo "$darwin_base_archive has multiple architectures $darwin_arches"
- for darwin_arch in $darwin_arches ; do
- func_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've 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 -rf unfat-$$
- cd "$darwin_orig_dir"
- else
- cd $darwin_orig_dir
- func_extract_an_archive "$my_xdir" "$my_xabs"
- fi # $darwin_arches
- } # !$opt_dry_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"
-}
-
-
-
# func_write_libtool_object output_name pic_name nonpic_name
# Create a libtool object file (analogous to a ".la" file),
# but don't create it if we're doing a dry run.
@@ -1578,7 +1093,7 @@ pic_object=$write_lobj
non_pic_object=$write_oldobj
EOF
- mv -f "${write_libobj}T" "${write_libobj}"
+ $MV "${write_libobj}T" "${write_libobj}"
}
}
@@ -1694,26 +1209,16 @@ func_mode_compile ()
# 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 ;;
- *.[fF][09]?) xform='[fF][09].' ;;
- *.for) xform=for ;;
- *.java) xform=java ;;
- *.obj) xform=obj ;;
+ *.[cCFSifmso] | \
+ *.ada | *.adb | *.ads | *.asm | \
+ *.c++ | *.cc | *.ii | *.class | *.cpp | *.cxx | \
+ *.[fF][09]? | *.for | *.java | *.obj | *.sx)
+ func_xform "$libobj"
+ libobj=$func_xform_result
+ ;;
esac
- libobj=`$ECHO "X$libobj" | $Xsed -e "s/\.$xform$/.lo/"`
-
case $libobj in
*.lo) func_lo2o "$libobj"; obj=$func_lo2o_result ;;
*)
@@ -1752,11 +1257,10 @@ func_mode_compile ()
func_quote_for_eval "$libobj"
test "X$libobj" != "X$func_quote_for_eval_result" \
- && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
+ && $ECHO "X$libobj" | $GREP '[]~#^*{};<>?"'"'"' &()|`$[]' \
&& func_warning "libobj name \`$libobj' may not contain shell special characters."
- func_basename "$obj"
+ func_dirname_and_basename "$obj" "/" ""
objname="$func_basename_result"
- func_dirname "$obj" "/" ""
xdir="$func_dirname_result"
lobj=${xdir}$objdir/$objname
@@ -1770,12 +1274,9 @@ func_mode_compile ()
removelist="$lobj $libobj ${libobj}T"
fi
- $opt_dry_run || $RM $removelist
- trap "$opt_dry_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*)
+ cygwin* | mingw* | pw32* | os2* | cegcc*)
pic_mode=default
;;
esac
@@ -1789,8 +1290,6 @@ func_mode_compile ()
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 "$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE" 1 2 15
else
output_obj=
need_locks=no
@@ -1820,17 +1319,20 @@ compiler."
$opt_dry_run || $RM $removelist
exit $EXIT_FAILURE
fi
+ removelist="$removelist $output_obj"
$ECHO "$srcfile" > "$lockfile"
fi
+ $opt_dry_run || $RM $removelist
+ removelist="$removelist $lockfile"
+ trap '$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE' 1 2 15
+
if test -n "$fix_srcfile_path"; then
eval srcfile=\"$fix_srcfile_path\"
fi
func_quote_for_eval "$srcfile"
qsrcfile=$func_quote_for_eval_result
- $opt_dry_run || $RM "$libobj" "${libobj}T"
-
# Only build a PIC object if we are building libtool libraries.
if test "$build_libtool_libs" = yes; then
# Without this assignment, base_compile gets emptied.
@@ -1850,9 +1352,7 @@ compiler."
command="$command -o $lobj"
fi
- $opt_dry_run || $RM "$lobj" "$output_obj"
-
- func_show_eval "$command" \
+ func_show_eval_locale "$command" \
'test -n "$output_obj" && $RM $removelist; exit $EXIT_FAILURE'
if test "$need_locks" = warn &&
@@ -1901,8 +1401,7 @@ compiler."
# Suppress compiler output if we already did a PIC compilation.
command="$command$suppress_output"
- $opt_dry_run || $RM "$obj" "$output_obj"
- func_show_eval "$command" \
+ func_show_eval_locale "$command" \
'$opt_dry_run || $RM $removelist; exit $EXIT_FAILURE'
if test "$need_locks" = warn &&
@@ -1937,6 +1436,7 @@ compiler."
# Unlock the critical section if it was locked
if test "$need_locks" != no; then
+ removelist=$lockfile
$RM "$lockfile"
fi
}
@@ -1944,7 +1444,193 @@ compiler."
exit $EXIT_SUCCESS
}
+$opt_help || {
test "$mode" = compile && func_mode_compile ${1+"$@"}
+}
+
+func_mode_help ()
+{
+ # We need to display help for each of the modes.
+ case $mode in
+ "")
+ # Generic help is extracted from the usage comments
+ # at the start of this file.
+ func_help
+ ;;
+
+ clean)
+ $ECHO \
+"Usage: $progname [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: $progname [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
+ -no-suppress do not suppress compiler output for multiple passes
+ -prefer-pic try to building PIC objects only
+ -prefer-non-pic try to building non-PIC objects only
+ -shared do not build a \`.o' file suitable for static linking
+ -static only 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: $progname [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: $progname [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: $progname [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 following components of INSTALL-COMMAND are treated specially:
+
+ -inst-prefix PREFIX-DIR Use PREFIX-DIR as a staging area for installation
+
+The rest of the components are interpreted as arguments to that command (only
+BSD-compatible install options are recognized)."
+ ;;
+
+ link)
+ $ECHO \
+"Usage: $progname [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
+ -shared only do dynamic linking of libtool libraries
+ -shrext SUFFIX override the standard shared library file extension
+ -static do not do any dynamic linking of uninstalled libtool libraries
+ -static-libtool-libs
+ do not do any dynamic linking of libtool libraries
+ -version-info CURRENT[:REVISION[:AGE]]
+ specify library version info [each variable defaults to 0]
+ -weak LIBNAME declare that the target provides the LIBNAME interface
+
+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: $progname [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."
+ ;;
+
+ *)
+ func_fatal_help "invalid operation mode \`$mode'"
+ ;;
+ esac
+
+ $ECHO
+ $ECHO "Try \`$progname --help' for more information about other modes."
+
+ exit $?
+}
+
+ # Now that we've collected a possible --mode arg, show help if necessary
+ $opt_help && func_mode_help
# func_mode_execute arg...
@@ -2029,9 +1715,13 @@ func_mode_execute ()
-*) ;;
*)
# Do a test to see if this is really a libtool program.
- if func_ltwrapper_p "$file"; then
+ if func_ltwrapper_script_p "$file"; then
func_source "$file"
-
+ # Transform arg to wrapped name.
+ file="$progdir/$program"
+ elif func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ func_source "$func_ltwrapper_scriptname_result"
# Transform arg to wrapped name.
file="$progdir/$program"
fi
@@ -2049,7 +1739,7 @@ func_mode_execute ()
fi
# Restore saved environment variables
- for lt_var in LANG LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
+ for lt_var in LANG LANGUAGE LC_ALL LC_CTYPE LC_COLLATE LC_MESSAGES
do
eval "if test \"\${save_$lt_var+set}\" = set; then
$lt_var=\$save_$lt_var; export $lt_var
@@ -2197,7 +1887,7 @@ func_mode_install ()
case $arg in
-d) isdir=yes ;;
-f)
- case " $install_prog " in
+ case " $install_prog " in
*[\\\ /]cp\ *) ;;
*) prev=$arg ;;
esac
@@ -2251,9 +1941,8 @@ func_mode_install ()
destdir="$dest"
destname=
else
- func_dirname "$dest" "" "."
+ func_dirname_and_basename "$dest" "" "."
destdir="$func_dirname_result"
- func_basename "$dest"
destname="$func_basename_result"
# Not a directory, so check to see that there is only one file specified.
@@ -2358,7 +2047,7 @@ func_mode_install ()
'exit $?'
tstripme="$stripme"
case $host_os in
- cygwin* | mingw* | pw32*)
+ cygwin* | mingw* | pw32* | cegcc*)
case $realname in
*.dll.a)
tstripme=""
@@ -2464,15 +2153,20 @@ func_mode_install ()
# Do a test to see if this is really a libtool program.
case $host in
- *cygwin*|*mingw*)
- func_stripname '' '.exe' "$file"
- wrapper=$func_stripname_result
+ *cygwin* | *mingw*)
+ if func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ wrapper=$func_ltwrapper_scriptname_result
+ else
+ func_stripname '' '.exe' "$file"
+ wrapper=$func_stripname_result
+ fi
;;
*)
wrapper=$file
;;
esac
- if func_ltwrapper_p "$wrapper"; then
+ if func_ltwrapper_script_p "$wrapper"; then
notinst_deplibs=
relink_command=
@@ -2589,12 +2283,1757 @@ func_mode_install ()
test "$mode" = install && func_mode_install ${1+"$@"}
+# func_generate_dlsyms outputname originator pic_p
+# Extract symbols from dlprefiles and create ${outputname}S.o with
+# a dlpreopen symbol table.
+func_generate_dlsyms ()
+{
+ $opt_debug
+ my_outputname="$1"
+ my_originator="$2"
+ my_pic_p="${3-no}"
+ my_prefix=`$ECHO "$my_originator" | sed 's%[^a-zA-Z0-9]%_%g'`
+ my_dlsyms=
+
+ if test -n "$dlfiles$dlprefiles" || test "$dlself" != no; then
+ if test -n "$NM" && test -n "$global_symbol_pipe"; then
+ my_dlsyms="${my_outputname}S.c"
+ else
+ func_error "not configured to extract global symbols from dlpreopened files"
+ fi
+ fi
+
+ if test -n "$my_dlsyms"; then
+ case $my_dlsyms in
+ "") ;;
+ *.c)
+ # Discover the nlist of each of the dlfiles.
+ nlist="$output_objdir/${my_outputname}.nm"
+
+ func_show_eval "$RM $nlist ${nlist}S ${nlist}T"
+
+ # Parse the name list into a source file.
+ func_verbose "creating $output_objdir/$my_dlsyms"
+
+ $opt_dry_run || $ECHO > "$output_objdir/$my_dlsyms" "\
+/* $my_dlsyms - symbol resolution table for \`$my_outputname' dlsym emulation. */
+/* Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION */
+
+#ifdef __cplusplus
+extern \"C\" {
+#endif
+
+/* External symbol declarations for the compiler. */\
+"
+
+ if test "$dlself" = yes; then
+ func_verbose "generating symbol list for \`$output'"
+
+ $opt_dry_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 progfile in $progfiles; do
+ func_verbose "extracting global C symbols from \`$progfile'"
+ $opt_dry_run || eval "$NM $progfile | $global_symbol_pipe >> '$nlist'"
+ done
+
+ if test -n "$exclude_expsyms"; then
+ $opt_dry_run || {
+ eval '$EGREP -v " ($exclude_expsyms)$" "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ if test -n "$export_symbols_regex"; then
+ $opt_dry_run || {
+ eval '$EGREP -e "$export_symbols_regex" "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ }
+ fi
+
+ # Prepare the list of exported symbols
+ if test -z "$export_symbols"; then
+ export_symbols="$output_objdir/$outputname.exp"
+ $opt_dry_run || {
+ $RM $export_symbols
+ eval "${SED} -n -e '/^: @PROGRAM@ $/d' -e 's/^.* \(.*\)$/\1/p' "'< "$nlist" > "$export_symbols"'
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ eval 'cat "$export_symbols" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ else
+ $opt_dry_run || {
+ eval "${SED} -e 's/\([].[*^$]\)/\\\\\1/g' -e 's/^/ /' -e 's/$/$/'"' < "$export_symbols" > "$output_objdir/$outputname.exp"'
+ eval '$GREP -f "$output_objdir/$outputname.exp" < "$nlist" > "$nlist"T'
+ eval '$MV "$nlist"T "$nlist"'
+ case $host in
+ *cygwin | *mingw* | *cegcc* )
+ eval "echo EXPORTS "'> "$output_objdir/$outputname.def"'
+ eval 'cat "$nlist" >> "$output_objdir/$outputname.def"'
+ ;;
+ esac
+ }
+ fi
+ fi
+
+ for dlprefile in $dlprefiles; do
+ func_verbose "extracting global C symbols from \`$dlprefile'"
+ func_basename "$dlprefile"
+ name="$func_basename_result"
+ $opt_dry_run || {
+ eval '$ECHO ": $name " >> "$nlist"'
+ eval "$NM $dlprefile 2>/dev/null | $global_symbol_pipe >> '$nlist'"
+ }
+ done
+
+ $opt_dry_run || {
+ # 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 >/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/$my_dlsyms"'
+ else
+ $ECHO '/* NONE */' >> "$output_objdir/$my_dlsyms"
+ fi
+
+ $ECHO >> "$output_objdir/$my_dlsyms" "\
+
+/* The mapping between symbol names and symbols. */
+typedef struct {
+ const char *name;
+ void *address;
+} lt_dlsymlist;
+"
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ $ECHO >> "$output_objdir/$my_dlsyms" "\
+/* DATA imports from DLLs on WIN32 con't be const, because
+ runtime relocations are performed -- see ld's documentation
+ on pseudo-relocs. */"
+ lt_dlsym_const= ;;
+ *osf5*)
+ echo >> "$output_objdir/$my_dlsyms" "\
+/* This system does not cope well with relocations in const data */"
+ lt_dlsym_const= ;;
+ *)
+ lt_dlsym_const=const ;;
+ esac
+
+ $ECHO >> "$output_objdir/$my_dlsyms" "\
+extern $lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[];
+$lt_dlsym_const lt_dlsymlist
+lt_${my_prefix}_LTX_preloaded_symbols[] =
+{\
+ { \"$my_originator\", (void *) 0 },"
+
+ case $need_lib_prefix in
+ no)
+ eval "$global_symbol_to_c_name_address" < "$nlist" >> "$output_objdir/$my_dlsyms"
+ ;;
+ *)
+ eval "$global_symbol_to_c_name_address_lib_prefix" < "$nlist" >> "$output_objdir/$my_dlsyms"
+ ;;
+ esac
+ $ECHO >> "$output_objdir/$my_dlsyms" "\
+ {0, (void *) 0}
+};
+
+/* This works around a problem in FreeBSD linker */
+#ifdef FREEBSD_WORKAROUND
+static const void *lt_preloaded_setup() {
+ return lt_${my_prefix}_LTX_preloaded_symbols;
+}
+#endif
+
+#ifdef __cplusplus
+}
+#endif\
+"
+ } # !$opt_dry_run
+
+ pic_flag_for_symtable=
+ case "$compile_command " in
+ *" -static "*) ;;
+ *)
+ 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*)
+ pic_flag_for_symtable=" $pic_flag -DFREEBSD_WORKAROUND" ;;
+ *-*-hpux*)
+ pic_flag_for_symtable=" $pic_flag" ;;
+ *)
+ if test "X$my_pic_p" != Xno; then
+ pic_flag_for_symtable=" $pic_flag"
+ fi
+ ;;
+ esac
+ ;;
+ esac
+ symtab_cflags=
+ for arg in $LTCFLAGS; do
+ case $arg in
+ -pie | -fpie | -fPIE) ;;
+ *) symtab_cflags="$symtab_cflags $arg" ;;
+ esac
+ done
+
+ # Now compile the dynamic symbol file.
+ func_show_eval '(cd $output_objdir && $LTCC$symtab_cflags -c$no_builtin_flag$pic_flag_for_symtable "$my_dlsyms")' 'exit $?'
+
+ # Clean up the generated files.
+ func_show_eval '$RM "$output_objdir/$my_dlsyms" "$nlist" "${nlist}S" "${nlist}T"'
+
+ # Transform the symbol file into the correct name.
+ symfileobj="$output_objdir/${my_outputname}S.$objext"
+ case $host in
+ *cygwin* | *mingw* | *cegcc* )
+ if test -f "$output_objdir/$my_outputname.def"; then
+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$output_objdir/$my_outputname.def $symfileobj%"`
+ else
+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+ fi
+ ;;
+ *)
+ compile_command=`$ECHO "X$compile_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+ finalize_command=`$ECHO "X$finalize_command" | $Xsed -e "s%@SYMFILE@%$symfileobj%"`
+ ;;
+ esac
+ ;;
+ *)
+ func_fatal_error "unknown suffix for \`$my_dlsyms'"
+ ;;
+ 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
+}
+
+# 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 ()
+{
+ $opt_debug
+ 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 '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_extract_an_archive dir oldlib
+func_extract_an_archive ()
+{
+ $opt_debug
+ f_ex_an_ar_dir="$1"; shift
+ f_ex_an_ar_oldlib="$1"
+ func_show_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
+ func_fatal_error "object name conflicts in archive: $f_ex_an_ar_dir/$f_ex_an_ar_oldlib"
+ fi
+}
+
+
+# func_extract_archives gentop oldlib ...
+func_extract_archives ()
+{
+ $opt_debug
+ my_gentop="$1"; shift
+ my_oldlibs=${1+"$@"}
+ my_oldobjs=""
+ my_xlib=""
+ my_xabs=""
+ my_xdir=""
+
+ 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
+ func_basename "$my_xlib"
+ my_xlib="$func_basename_result"
+ my_xlib_u=$my_xlib
+ while :; do
+ case " $extracted_archives " in
+ *" $my_xlib_u "*)
+ func_arith $extracted_serial + 1
+ extracted_serial=$func_arith_result
+ my_xlib_u=lt$extracted_serial-$my_xlib ;;
+ *) break ;;
+ esac
+ done
+ extracted_archives="$extracted_archives $my_xlib_u"
+ my_xdir="$my_gentop/$my_xlib_u"
+
+ func_mkdir_p "$my_xdir"
+
+ case $host in
+ *-darwin*)
+ func_verbose "Extracting $my_xabs"
+ # Do not bother doing anything if just a dry run
+ $opt_dry_run || {
+ darwin_orig_dir=`pwd`
+ cd $my_xdir || exit $?
+ darwin_archive=$my_xabs
+ darwin_curdir=`pwd`
+ darwin_base_archive=`basename "$darwin_archive"`
+ darwin_arches=`$LIPO -info "$darwin_archive" 2>/dev/null | $GREP Architectures 2>/dev/null || true`
+ if test -n "$darwin_arches"; then
+ darwin_arches=`$ECHO "$darwin_arches" | $SED -e 's/.*are://'`
+ darwin_arch=
+ func_verbose "$darwin_base_archive has multiple architectures $darwin_arches"
+ for darwin_arch in $darwin_arches ; do
+ func_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've a bunch of thin objects, gotta fatten them up :)
+ darwin_filelist=`find unfat-$$ -type f -name \*.o -print -o -name \*.lo -print | $SED -e "$basename" | sort -u`
+ 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 -rf unfat-$$
+ cd "$darwin_orig_dir"
+ else
+ cd $darwin_orig_dir
+ func_extract_an_archive "$my_xdir" "$my_xabs"
+ fi # $darwin_arches
+ } # !$opt_dry_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"
+}
+
+
+
+# func_emit_wrapper_part1 [arg=no]
+#
+# Emit the first part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part1 ()
+{
+ func_emit_wrapper_part1_arg1=no
+ if test -n "$1" ; then
+ func_emit_wrapper_part1_arg1=$1
+ fi
+
+ $ECHO "\
+#! $SHELL
+
+# $output - temporary wrapper script for $objdir/$outputname
+# Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+#
+# 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'
+
+# 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
+
+# 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 variables:
+ generated_by_libtool_version='$macro_version'
+ 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 "\
+
+ # 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
+"
+}
+# end: func_emit_wrapper_part1
+
+# func_emit_wrapper_part2 [arg=no]
+#
+# Emit the second part of a libtool wrapper script on stdout.
+# For more information, see the description associated with
+# func_emit_wrapper(), below.
+func_emit_wrapper_part2 ()
+{
+ func_emit_wrapper_part2_arg1=no
+ if test -n "$1" ; then
+ func_emit_wrapper_part2_arg1=$1
+ fi
+
+ $ECHO "\
+
+ # Usually 'no', except on cygwin/mingw when embedded into
+ # the cwrapper.
+ WRAPPER_SCRIPT_BELONGS_IN_OBJDIR=$func_emit_wrapper_part2_arg1
+ if test \"\$WRAPPER_SCRIPT_BELONGS_IN_OBJDIR\" = \"yes\"; then
+ # special case for '.'
+ if test \"\$thisdir\" = \".\"; then
+ thisdir=\`pwd\`
+ fi
+ # remove .libs from thisdir
+ case \"\$thisdir\" in
+ *[\\\\/]$objdir ) thisdir=\`\$ECHO \"X\$thisdir\" | \$Xsed -e 's%[\\\\/][^\\\\/]*$%%'\` ;;
+ $objdir ) thisdir=. ;;
+ esac
+ fi
+
+ # Try to get the absolute directory name.
+ absdir=\`cd \"\$thisdir\" && pwd\`
+ test -n \"\$absdir\" && thisdir=\"\$absdir\"
+"
+
+ if test "$fast_install" = yes; then
+ $ECHO "\
+ 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 "\
+
+ # 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 1
+ fi
+ fi
+
+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\" 2>/dev/null ||
+ { $RM \"\$progdir/\$program\";
+ $MV \"\$progdir/\$file\" \"\$progdir/\$program\"; }
+ $RM \"\$progdir/\$file\"
+ fi"
+ else
+ $ECHO "\
+ program='$outputname'
+ progdir=\"\$thisdir/$objdir\"
+"
+ fi
+
+ $ECHO "\
+
+ 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 "\
+ # 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 "\
+ # Add the dll search path components to the executable PATH
+ PATH=$dllsearchpath:\$PATH
+"
+ fi
+
+ $ECHO "\
+ 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* | *-cegcc*)
+ $ECHO "\
+ exec \"\$progdir\\\\\$program\" \${1+\"\$@\"}
+"
+ ;;
+
+ *)
+ $ECHO "\
+ exec \"\$progdir/\$program\" \${1+\"\$@\"}
+"
+ ;;
+ esac
+ $ECHO "\
+ \$ECHO \"\$0: cannot exec \$program \$*\" 1>&2
+ exit 1
+ 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 1
+ fi
+fi\
+"
+}
+# end: func_emit_wrapper_part2
+
+
+# func_emit_wrapper [arg=no]
+#
+# Emit a libtool wrapper script on stdout.
+# Don't directly open a file because we may want to
+# incorporate the script contents within a cygwin/mingw
+# wrapper executable. Must ONLY be called from within
+# func_mode_link because it depends on a number of variables
+# set therein.
+#
+# ARG is the value that the WRAPPER_SCRIPT_BELONGS_IN_OBJDIR
+# variable will take. If 'yes', then the emitted script
+# will assume that the directory in which it is stored is
+# the $objdir directory. This is a cygwin/mingw-specific
+# behavior.
+func_emit_wrapper ()
+{
+ func_emit_wrapper_arg1=no
+ if test -n "$1" ; then
+ func_emit_wrapper_arg1=$1
+ fi
+
+ # split this up so that func_emit_cwrapperexe_src
+ # can call each part independently.
+ func_emit_wrapper_part1 "${func_emit_wrapper_arg1}"
+ func_emit_wrapper_part2 "${func_emit_wrapper_arg1}"
+}
+
+
+# func_to_host_path arg
+#
+# Convert paths to host format when used with build tools.
+# Intended for use with "native" mingw (where libtool itself
+# is running under the msys shell), or in the following cross-
+# build environments:
+# $build $host
+# mingw (msys) mingw [e.g. native]
+# cygwin mingw
+# *nix + wine mingw
+# where wine is equipped with the `winepath' executable.
+# In the native mingw case, the (msys) shell automatically
+# converts paths for any non-msys applications it launches,
+# but that facility isn't available from inside the cwrapper.
+# Similar accommodations are necessary for $host mingw and
+# $build cygwin. Calling this function does no harm for other
+# $host/$build combinations not listed above.
+#
+# ARG is the path (on $build) that should be converted to
+# the proper representation for $host. The result is stored
+# in $func_to_host_path_result.
+func_to_host_path ()
+{
+ func_to_host_path_result="$1"
+ if test -n "$1" ; then
+ case $host in
+ *mingw* )
+ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+ case $build in
+ *mingw* ) # actually, msys
+ # awkward: cmd appends spaces to result
+ lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+ func_to_host_path_tmp1=`( cmd //c echo "$1" |\
+ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+ $SED -e "$lt_sed_naive_backslashify"`
+ ;;
+ *cygwin* )
+ func_to_host_path_tmp1=`cygpath -w "$1"`
+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+ $SED -e "$lt_sed_naive_backslashify"`
+ ;;
+ * )
+ # Unfortunately, winepath does not exit with a non-zero
+ # error code, so we are forced to check the contents of
+ # stdout. On the other hand, if the command is not
+ # found, the shell will set an exit code of 127 and print
+ # *an error message* to stdout. So we must check for both
+ # error code of zero AND non-empty stdout, which explains
+ # the odd construction:
+ func_to_host_path_tmp1=`winepath -w "$1" 2>/dev/null`
+ if test "$?" -eq 0 && test -n "${func_to_host_path_tmp1}"; then
+ func_to_host_path_result=`echo "$func_to_host_path_tmp1" |\
+ $SED -e "$lt_sed_naive_backslashify"`
+ else
+ # Allow warning below.
+ func_to_host_path_result=""
+ fi
+ ;;
+ esac
+ if test -z "$func_to_host_path_result" ; then
+ func_error "Could not determine host path corresponding to"
+ func_error " '$1'"
+ func_error "Continuing, but uninstalled executables may not work."
+ # Fallback:
+ func_to_host_path_result="$1"
+ fi
+ ;;
+ esac
+ fi
+}
+# end: func_to_host_path
+
+# func_to_host_pathlist arg
+#
+# Convert pathlists to host format when used with build tools.
+# See func_to_host_path(), above. This function supports the
+# following $build/$host combinations (but does no harm for
+# combinations not listed here):
+# $build $host
+# mingw (msys) mingw [e.g. native]
+# cygwin mingw
+# *nix + wine mingw
+#
+# Path separators are also converted from $build format to
+# $host format. If ARG begins or ends with a path separator
+# character, it is preserved (but converted to $host format)
+# on output.
+#
+# ARG is a pathlist (on $build) that should be converted to
+# the proper representation on $host. The result is stored
+# in $func_to_host_pathlist_result.
+func_to_host_pathlist ()
+{
+ func_to_host_pathlist_result="$1"
+ if test -n "$1" ; then
+ case $host in
+ *mingw* )
+ lt_sed_naive_backslashify='s|\\\\*|\\|g;s|/|\\|g;s|\\|\\\\|g'
+ # Remove leading and trailing path separator characters from
+ # ARG. msys behavior is inconsistent here, cygpath turns them
+ # into '.;' and ';.', and winepath ignores them completely.
+ func_to_host_pathlist_tmp2="$1"
+ # Once set for this call, this variable should not be
+ # reassigned. It is used in tha fallback case.
+ func_to_host_pathlist_tmp1=`echo "$func_to_host_pathlist_tmp2" |\
+ $SED -e 's|^:*||' -e 's|:*$||'`
+ case $build in
+ *mingw* ) # Actually, msys.
+ # Awkward: cmd appends spaces to result.
+ lt_sed_strip_trailing_spaces="s/[ ]*\$//"
+ func_to_host_pathlist_tmp2=`( cmd //c echo "$func_to_host_pathlist_tmp1" |\
+ $SED -e "$lt_sed_strip_trailing_spaces" ) 2>/dev/null || echo ""`
+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+ $SED -e "$lt_sed_naive_backslashify"`
+ ;;
+ *cygwin* )
+ func_to_host_pathlist_tmp2=`cygpath -w -p "$func_to_host_pathlist_tmp1"`
+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp2" |\
+ $SED -e "$lt_sed_naive_backslashify"`
+ ;;
+ * )
+ # unfortunately, winepath doesn't convert pathlists
+ func_to_host_pathlist_result=""
+ func_to_host_pathlist_oldIFS=$IFS
+ IFS=:
+ for func_to_host_pathlist_f in $func_to_host_pathlist_tmp1 ; do
+ IFS=$func_to_host_pathlist_oldIFS
+ if test -n "$func_to_host_pathlist_f" ; then
+ func_to_host_path "$func_to_host_pathlist_f"
+ if test -n "$func_to_host_path_result" ; then
+ if test -z "$func_to_host_pathlist_result" ; then
+ func_to_host_pathlist_result="$func_to_host_path_result"
+ else
+ func_to_host_pathlist_result="$func_to_host_pathlist_result;$func_to_host_path_result"
+ fi
+ fi
+ fi
+ IFS=:
+ done
+ IFS=$func_to_host_pathlist_oldIFS
+ ;;
+ esac
+ if test -z "$func_to_host_pathlist_result" ; then
+ func_error "Could not determine the host path(s) corresponding to"
+ func_error " '$1'"
+ func_error "Continuing, but uninstalled executables may not work."
+ # Fallback. This may break if $1 contains DOS-style drive
+ # specifications. The fix is not to complicate the expression
+ # below, but for the user to provide a working wine installation
+ # with winepath so that path translation in the cross-to-mingw
+ # case works properly.
+ lt_replace_pathsep_nix_to_dos="s|:|;|g"
+ func_to_host_pathlist_result=`echo "$func_to_host_pathlist_tmp1" |\
+ $SED -e "$lt_replace_pathsep_nix_to_dos"`
+ fi
+ # Now, add the leading and trailing path separators back
+ case "$1" in
+ :* ) func_to_host_pathlist_result=";$func_to_host_pathlist_result"
+ ;;
+ esac
+ case "$1" in
+ *: ) func_to_host_pathlist_result="$func_to_host_pathlist_result;"
+ ;;
+ esac
+ ;;
+ esac
+ fi
+}
+# end: func_to_host_pathlist
+
+# func_emit_cwrapperexe_src
+# emit the source code for a wrapper executable on stdout
+# Must ONLY be called from within func_mode_link because
+# it depends on a number of variable set therein.
+func_emit_cwrapperexe_src ()
+{
+ cat <<EOF
+
+/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
+ Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
+
+ The $output program cannot be directly executed until all the libtool
+ libraries that it depends on are installed.
+
+ This wrapper executable should never be moved out of the build directory.
+ If it is, it will not operate correctly.
+
+ Currently, it simply execs the wrapper *script* "$SHELL $output",
+ but could eventually absorb all of the scripts functionality and
+ exec $objdir/$outputname directly.
+*/
+EOF
+ cat <<"EOF"
+#include <stdio.h>
+#include <stdlib.h>
+#ifdef _MSC_VER
+# include <direct.h>
+# include <process.h>
+# include <io.h>
+# define setmode _setmode
+#else
+# include <unistd.h>
+# include <stdint.h>
+# ifdef __CYGWIN__
+# include <io.h>
+# define HAVE_SETENV
+# ifdef __STRICT_ANSI__
+char *realpath (const char *, char *);
+int putenv (char *);
+int setenv (const char *, const char *, int);
+# endif
+# endif
+#endif
+#include <malloc.h>
+#include <stdarg.h>
+#include <assert.h>
+#include <string.h>
+#include <ctype.h>
+#include <errno.h>
+#include <fcntl.h>
+#include <sys/stat.h>
+
+#if defined(PATH_MAX)
+# define LT_PATHMAX PATH_MAX
+#elif defined(MAXPATHLEN)
+# define LT_PATHMAX MAXPATHLEN
+#else
+# define LT_PATHMAX 1024
+#endif
+
+#ifndef S_IXOTH
+# define S_IXOTH 0
+#endif
+#ifndef S_IXGRP
+# define S_IXGRP 0
+#endif
+
+#ifdef _MSC_VER
+# define S_IXUSR _S_IEXEC
+# define stat _stat
+# ifndef _INTPTR_T_DEFINED
+# define intptr_t int
+# endif
+#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
+# define FOPEN_WB "wb"
+# 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 */
+
+#ifdef __CYGWIN__
+# define FOPEN_WB "wb"
+#endif
+
+#ifndef FOPEN_WB
+# define FOPEN_WB "w"
+#endif
+#ifndef _O_BINARY
+# define _O_BINARY 0
+#endif
+
+#define XMALLOC(type, num) ((type *) xmalloc ((num) * sizeof(type)))
+#define XFREE(stale) do { \
+ if (stale) { free ((void *) stale); stale = 0; } \
+} while (0)
+
+#undef LTWRAPPER_DEBUGPRINTF
+#if defined DEBUGWRAPPER
+# define LTWRAPPER_DEBUGPRINTF(args) ltwrapper_debugprintf args
+static void
+ltwrapper_debugprintf (const char *fmt, ...)
+{
+ va_list args;
+ va_start (args, fmt);
+ (void) vfprintf (stderr, fmt, args);
+ va_end (args);
+}
+#else
+# define LTWRAPPER_DEBUGPRINTF(args)
+#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);
+char *chase_symlinks (const char *pathspec);
+int make_executable (const char *path);
+int check_executable (const char *path);
+char *strendzap (char *str, const char *pat);
+void lt_fatal (const char *message, ...);
+void lt_setenv (const char *name, const char *value);
+char *lt_extend_str (const char *orig_value, const char *add, int to_end);
+void lt_opt_process_env_set (const char *arg);
+void lt_opt_process_env_prepend (const char *arg);
+void lt_opt_process_env_append (const char *arg);
+int lt_split_name_value (const char *arg, char** name, char** value);
+void lt_update_exe_path (const char *name, const char *value);
+void lt_update_lib_path (const char *name, const char *value);
+
+static const char *script_text_part1 =
+EOF
+
+ func_emit_wrapper_part1 yes |
+ $SED -e 's/\([\\"]\)/\\\1/g' \
+ -e 's/^/ "/' -e 's/$/\\n"/'
+ echo ";"
+ cat <<EOF
+
+static const char *script_text_part2 =
+EOF
+ func_emit_wrapper_part2 yes |
+ $SED -e 's/\([\\"]\)/\\\1/g' \
+ -e 's/^/ "/' -e 's/$/\\n"/'
+ echo ";"
+
+ cat <<EOF
+const char * MAGIC_EXE = "$magic_exe";
+const char * LIB_PATH_VARNAME = "$shlibpath_var";
+EOF
+
+ if test "$shlibpath_overrides_runpath" = yes && test -n "$shlibpath_var" && test -n "$temp_rpath"; then
+ func_to_host_pathlist "$temp_rpath"
+ cat <<EOF
+const char * LIB_PATH_VALUE = "$func_to_host_pathlist_result";
+EOF
+ else
+ cat <<"EOF"
+const char * LIB_PATH_VALUE = "";
+EOF
+ fi
+
+ if test -n "$dllsearchpath"; then
+ func_to_host_pathlist "$dllsearchpath:"
+ cat <<EOF
+const char * EXE_PATH_VARNAME = "PATH";
+const char * EXE_PATH_VALUE = "$func_to_host_pathlist_result";
+EOF
+ else
+ cat <<"EOF"
+const char * EXE_PATH_VARNAME = "";
+const char * EXE_PATH_VALUE = "";
+EOF
+ fi
+
+ if test "$fast_install" = yes; then
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "lt-$outputname"; /* hopefully, no .exe */
+EOF
+ else
+ cat <<EOF
+const char * TARGET_PROGRAM_NAME = "$outputname"; /* hopefully, no .exe */
+EOF
+ fi
+
+
+ cat <<"EOF"
+
+#define LTWRAPPER_OPTION_PREFIX "--lt-"
+#define LTWRAPPER_OPTION_PREFIX_LENGTH 5
+
+static const size_t opt_prefix_len = LTWRAPPER_OPTION_PREFIX_LENGTH;
+static const char *ltwrapper_option_prefix = LTWRAPPER_OPTION_PREFIX;
+
+static const char *dumpscript_opt = LTWRAPPER_OPTION_PREFIX "dump-script";
+
+static const size_t env_set_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 7;
+static const char *env_set_opt = LTWRAPPER_OPTION_PREFIX "env-set";
+ /* argument is putenv-style "foo=bar", value of foo is set to bar */
+
+static const size_t env_prepend_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 11;
+static const char *env_prepend_opt = LTWRAPPER_OPTION_PREFIX "env-prepend";
+ /* argument is putenv-style "foo=bar", new value of foo is bar${foo} */
+
+static const size_t env_append_opt_len = LTWRAPPER_OPTION_PREFIX_LENGTH + 10;
+static const char *env_append_opt = LTWRAPPER_OPTION_PREFIX "env-append";
+ /* argument is putenv-style "foo=bar", new value of foo is ${foo}bar */
+
+int
+main (int argc, char *argv[])
+{
+ char **newargz;
+ int newargc;
+ char *tmp_pathspec;
+ char *actual_cwrapper_path;
+ char *actual_cwrapper_name;
+ char *target_name;
+ char *lt_argv_zero;
+ intptr_t rval = 127;
+
+ int i;
+
+ program_name = (char *) xstrdup (base_name (argv[0]));
+ LTWRAPPER_DEBUGPRINTF (("(main) argv[0] : %s\n", argv[0]));
+ LTWRAPPER_DEBUGPRINTF (("(main) program_name : %s\n", program_name));
+
+ /* very simple arg parsing; don't want to rely on getopt */
+ for (i = 1; i < argc; i++)
+ {
+ if (strcmp (argv[i], dumpscript_opt) == 0)
+ {
+EOF
+ case "$host" in
+ *mingw* | *cygwin* )
+ # make stdout use "unix" line endings
+ echo " setmode(1,_O_BINARY);"
+ ;;
+ esac
+
+ cat <<"EOF"
+ printf ("%s", script_text_part1);
+ printf ("%s", script_text_part2);
+ return 0;
+ }
+ }
+
+ newargz = XMALLOC (char *, argc + 1);
+ tmp_pathspec = find_executable (argv[0]);
+ if (tmp_pathspec == NULL)
+ lt_fatal ("Couldn't find %s", argv[0]);
+ LTWRAPPER_DEBUGPRINTF (("(main) found exe (before symlink chase) at : %s\n",
+ tmp_pathspec));
+
+ actual_cwrapper_path = chase_symlinks (tmp_pathspec);
+ LTWRAPPER_DEBUGPRINTF (("(main) found exe (after symlink chase) at : %s\n",
+ actual_cwrapper_path));
+ XFREE (tmp_pathspec);
+
+ actual_cwrapper_name = xstrdup( base_name (actual_cwrapper_path));
+ strendzap (actual_cwrapper_path, actual_cwrapper_name);
+
+ /* wrapper name transforms */
+ strendzap (actual_cwrapper_name, ".exe");
+ tmp_pathspec = lt_extend_str (actual_cwrapper_name, ".exe", 1);
+ XFREE (actual_cwrapper_name);
+ actual_cwrapper_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ /* target_name transforms -- use actual target program name; might have lt- prefix */
+ target_name = xstrdup (base_name (TARGET_PROGRAM_NAME));
+ strendzap (target_name, ".exe");
+ tmp_pathspec = lt_extend_str (target_name, ".exe", 1);
+ XFREE (target_name);
+ target_name = tmp_pathspec;
+ tmp_pathspec = 0;
+
+ LTWRAPPER_DEBUGPRINTF (("(main) libtool target name: %s\n",
+ target_name));
+EOF
+
+ cat <<EOF
+ newargz[0] =
+ XMALLOC (char, (strlen (actual_cwrapper_path) +
+ strlen ("$objdir") + 1 + strlen (actual_cwrapper_name) + 1));
+ strcpy (newargz[0], actual_cwrapper_path);
+ strcat (newargz[0], "$objdir");
+ strcat (newargz[0], "/");
+EOF
+
+ cat <<"EOF"
+ /* stop here, and copy so we don't have to do this twice */
+ tmp_pathspec = xstrdup (newargz[0]);
+
+ /* do NOT want the lt- prefix here, so use actual_cwrapper_name */
+ strcat (newargz[0], actual_cwrapper_name);
+
+ /* DO want the lt- prefix here if it exists, so use target_name */
+ lt_argv_zero = lt_extend_str (tmp_pathspec, target_name, 1);
+ XFREE (tmp_pathspec);
+ tmp_pathspec = NULL;
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ {
+ char* p;
+ while ((p = strchr (newargz[0], '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ while ((p = strchr (lt_argv_zero, '\\')) != NULL)
+ {
+ *p = '/';
+ }
+ }
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+ XFREE (target_name);
+ XFREE (actual_cwrapper_path);
+ XFREE (actual_cwrapper_name);
+
+ lt_setenv ("BIN_SH", "xpg4"); /* for Tru64 */
+ lt_setenv ("DUALCASE", "1"); /* for MSK sh */
+ lt_update_lib_path (LIB_PATH_VARNAME, LIB_PATH_VALUE);
+ lt_update_exe_path (EXE_PATH_VARNAME, EXE_PATH_VALUE);
+
+ newargc=0;
+ for (i = 1; i < argc; i++)
+ {
+ if (strncmp (argv[i], env_set_opt, env_set_opt_len) == 0)
+ {
+ if (argv[i][env_set_opt_len] == '=')
+ {
+ const char *p = argv[i] + env_set_opt_len + 1;
+ lt_opt_process_env_set (p);
+ }
+ else if (argv[i][env_set_opt_len] == '\0' && i + 1 < argc)
+ {
+ lt_opt_process_env_set (argv[++i]); /* don't copy */
+ }
+ else
+ lt_fatal ("%s missing required argument", env_set_opt);
+ continue;
+ }
+ if (strncmp (argv[i], env_prepend_opt, env_prepend_opt_len) == 0)
+ {
+ if (argv[i][env_prepend_opt_len] == '=')
+ {
+ const char *p = argv[i] + env_prepend_opt_len + 1;
+ lt_opt_process_env_prepend (p);
+ }
+ else if (argv[i][env_prepend_opt_len] == '\0' && i + 1 < argc)
+ {
+ lt_opt_process_env_prepend (argv[++i]); /* don't copy */
+ }
+ else
+ lt_fatal ("%s missing required argument", env_prepend_opt);
+ continue;
+ }
+ if (strncmp (argv[i], env_append_opt, env_append_opt_len) == 0)
+ {
+ if (argv[i][env_append_opt_len] == '=')
+ {
+ const char *p = argv[i] + env_append_opt_len + 1;
+ lt_opt_process_env_append (p);
+ }
+ else if (argv[i][env_append_opt_len] == '\0' && i + 1 < argc)
+ {
+ lt_opt_process_env_append (argv[++i]); /* don't copy */
+ }
+ else
+ lt_fatal ("%s missing required argument", env_append_opt);
+ continue;
+ }
+ if (strncmp (argv[i], ltwrapper_option_prefix, opt_prefix_len) == 0)
+ {
+ /* however, if there is an option in the LTWRAPPER_OPTION_PREFIX
+ namespace, but it is not one of the ones we know about and
+ have already dealt with, above (inluding dump-script), then
+ report an error. Otherwise, targets might begin to believe
+ they are allowed to use options in the LTWRAPPER_OPTION_PREFIX
+ namespace. The first time any user complains about this, we'll
+ need to make LTWRAPPER_OPTION_PREFIX a configure-time option
+ or a configure.ac-settable value.
+ */
+ lt_fatal ("Unrecognized option in %s namespace: '%s'",
+ ltwrapper_option_prefix, argv[i]);
+ }
+ /* otherwise ... */
+ newargz[++newargc] = xstrdup (argv[i]);
+ }
+ newargz[++newargc] = NULL;
+
+ LTWRAPPER_DEBUGPRINTF (("(main) lt_argv_zero : %s\n", (lt_argv_zero ? lt_argv_zero : "<NULL>")));
+ for (i = 0; i < newargc; i++)
+ {
+ LTWRAPPER_DEBUGPRINTF (("(main) newargz[%d] : %s\n", i, (newargz[i] ? newargz[i] : "<NULL>")));
+ }
+
+EOF
+
+ case $host_os in
+ mingw*)
+ cat <<"EOF"
+ /* execv doesn't actually work on mingw as expected on unix */
+ rval = _spawnv (_P_WAIT, lt_argv_zero, (const char * const *) newargz);
+ if (rval == -1)
+ {
+ /* failed to start process */
+ LTWRAPPER_DEBUGPRINTF (("(main) failed to launch target \"%s\": errno = %d\n", lt_argv_zero, errno));
+ return 127;
+ }
+ return rval;
+EOF
+ ;;
+ *)
+ cat <<"EOF"
+ execv (lt_argv_zero, newargz);
+ return rval; /* =127, but avoids unused variable warning */
+EOF
+ ;;
+ esac
+
+ cat <<"EOF"
+}
+
+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;
+
+ LTWRAPPER_DEBUGPRINTF (("(check_executable) : %s\n",
+ path ? (*path ? path : "EMPTY!") : "NULL!"));
+ if ((!path) || (!*path))
+ return 0;
+
+ if ((stat (path, &st) >= 0)
+ && (st.st_mode & (S_IXUSR | S_IXGRP | S_IXOTH)))
+ return 1;
+ else
+ return 0;
+}
+
+int
+make_executable (const char *path)
+{
+ int rval = 0;
+ struct stat st;
+
+ LTWRAPPER_DEBUGPRINTF (("(make_executable) : %s\n",
+ path ? (*path ? path : "EMPTY!") : "NULL!"));
+ if ((!path) || (!*path))
+ return 0;
+
+ if (stat (path, &st) >= 0)
+ {
+ rval = chmod (path, st.st_mode | S_IXOTH | S_IXGRP | S_IXUSR);
+ }
+ return rval;
+}
+
+/* Searches for the full path of the wrapper. Returns
+ newly allocated full path name if found, NULL otherwise
+ Does not chase symlinks, even on platforms that support them.
+*/
+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;
+
+ LTWRAPPER_DEBUGPRINTF (("(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 *
+chase_symlinks (const char *pathspec)
+{
+#ifndef S_ISLNK
+ return xstrdup (pathspec);
+#else
+ char buf[LT_PATHMAX];
+ struct stat s;
+ char *tmp_pathspec = xstrdup (pathspec);
+ char *p;
+ int has_symlinks = 0;
+ while (strlen (tmp_pathspec) && !has_symlinks)
+ {
+ LTWRAPPER_DEBUGPRINTF (("checking path component for symlinks: %s\n",
+ tmp_pathspec));
+ if (lstat (tmp_pathspec, &s) == 0)
+ {
+ if (S_ISLNK (s.st_mode) != 0)
+ {
+ has_symlinks = 1;
+ break;
+ }
+
+ /* search backwards for last DIR_SEPARATOR */
+ p = tmp_pathspec + strlen (tmp_pathspec) - 1;
+ while ((p > tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+ p--;
+ if ((p == tmp_pathspec) && (!IS_DIR_SEPARATOR (*p)))
+ {
+ /* no more DIR_SEPARATORS left */
+ break;
+ }
+ *p = '\0';
+ }
+ else
+ {
+ char *errstr = strerror (errno);
+ lt_fatal ("Error accessing file %s (%s)", tmp_pathspec, errstr);
+ }
+ }
+ XFREE (tmp_pathspec);
+
+ if (!has_symlinks)
+ {
+ return xstrdup (pathspec);
+ }
+
+ tmp_pathspec = realpath (pathspec, buf);
+ if (tmp_pathspec == 0)
+ {
+ lt_fatal ("Could not follow symlinks for %s", pathspec);
+ }
+ return xstrdup (tmp_pathspec);
+#endif
+}
+
+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);
+}
+
+void
+lt_setenv (const char *name, const char *value)
+{
+ LTWRAPPER_DEBUGPRINTF (("(lt_setenv) setting '%s' to '%s'\n",
+ (name ? name : "<NULL>"),
+ (value ? value : "<NULL>")));
+ {
+#ifdef HAVE_SETENV
+ /* always make a copy, for consistency with !HAVE_SETENV */
+ char *str = xstrdup (value);
+ setenv (name, str, 1);
+#else
+ int len = strlen (name) + 1 + strlen (value) + 1;
+ char *str = XMALLOC (char, len);
+ sprintf (str, "%s=%s", name, value);
+ if (putenv (str) != EXIT_SUCCESS)
+ {
+ XFREE (str);
+ }
+#endif
+ }
+}
+
+char *
+lt_extend_str (const char *orig_value, const char *add, int to_end)
+{
+ char *new_value;
+ if (orig_value && *orig_value)
+ {
+ int orig_value_len = strlen (orig_value);
+ int add_len = strlen (add);
+ new_value = XMALLOC (char, add_len + orig_value_len + 1);
+ if (to_end)
+ {
+ strcpy (new_value, orig_value);
+ strcpy (new_value + orig_value_len, add);
+ }
+ else
+ {
+ strcpy (new_value, add);
+ strcpy (new_value + add_len, orig_value);
+ }
+ }
+ else
+ {
+ new_value = xstrdup (add);
+ }
+ return new_value;
+}
+
+int
+lt_split_name_value (const char *arg, char** name, char** value)
+{
+ const char *p;
+ int len;
+ if (!arg || !*arg)
+ return 1;
+
+ p = strchr (arg, (int)'=');
+
+ if (!p)
+ return 1;
+
+ *value = xstrdup (++p);
+
+ len = strlen (arg) - strlen (*value);
+ *name = XMALLOC (char, len);
+ strncpy (*name, arg, len-1);
+ (*name)[len - 1] = '\0';
+
+ return 0;
+}
+
+void
+lt_opt_process_env_set (const char *arg)
+{
+ char *name = NULL;
+ char *value = NULL;
+
+ if (lt_split_name_value (arg, &name, &value) != 0)
+ {
+ XFREE (name);
+ XFREE (value);
+ lt_fatal ("bad argument for %s: '%s'", env_set_opt, arg);
+ }
+
+ lt_setenv (name, value);
+ XFREE (name);
+ XFREE (value);
+}
+
+void
+lt_opt_process_env_prepend (const char *arg)
+{
+ char *name = NULL;
+ char *value = NULL;
+ char *new_value = NULL;
+
+ if (lt_split_name_value (arg, &name, &value) != 0)
+ {
+ XFREE (name);
+ XFREE (value);
+ lt_fatal ("bad argument for %s: '%s'", env_prepend_opt, arg);
+ }
+
+ new_value = lt_extend_str (getenv (name), value, 0);
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ XFREE (name);
+ XFREE (value);
+}
+
+void
+lt_opt_process_env_append (const char *arg)
+{
+ char *name = NULL;
+ char *value = NULL;
+ char *new_value = NULL;
+
+ if (lt_split_name_value (arg, &name, &value) != 0)
+ {
+ XFREE (name);
+ XFREE (value);
+ lt_fatal ("bad argument for %s: '%s'", env_append_opt, arg);
+ }
+
+ new_value = lt_extend_str (getenv (name), value, 1);
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ XFREE (name);
+ XFREE (value);
+}
+
+void
+lt_update_exe_path (const char *name, const char *value)
+{
+ LTWRAPPER_DEBUGPRINTF (("(lt_update_exe_path) modifying '%s' by prepending '%s'\n",
+ (name ? name : "<NULL>"),
+ (value ? value : "<NULL>")));
+
+ if (name && *name && value && *value)
+ {
+ char *new_value = lt_extend_str (getenv (name), value, 0);
+ /* some systems can't cope with a ':'-terminated path #' */
+ int len = strlen (new_value);
+ while (((len = strlen (new_value)) > 0) && IS_PATH_SEPARATOR (new_value[len-1]))
+ {
+ new_value[len-1] = '\0';
+ }
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ }
+}
+
+void
+lt_update_lib_path (const char *name, const char *value)
+{
+ LTWRAPPER_DEBUGPRINTF (("(lt_update_lib_path) modifying '%s' by prepending '%s'\n",
+ (name ? name : "<NULL>"),
+ (value ? value : "<NULL>")));
+
+ if (name && *name && value && *value)
+ {
+ char *new_value = lt_extend_str (getenv (name), value, 0);
+ lt_setenv (name, new_value);
+ XFREE (new_value);
+ }
+}
+
+
+EOF
+}
+# end: func_emit_cwrapperexe_src
+
# func_mode_link arg...
func_mode_link ()
{
$opt_debug
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
# It is impossible to link a dll without this setting, and
# we shouldn't force the makefile maintainer to figure out
# which system we are compiling for in order to pass an extra
@@ -2681,9 +4120,6 @@ func_mode_link ()
fi
if test -n "$link_static_flag"; then
dlopen_self=$dlopen_self_static
- # See comment for -static flag below, for more details.
- func_append compile_command " $link_static_flag"
- func_append finalize_command " $link_static_flag"
fi
prefer_static_libs=yes
;;
@@ -2789,7 +4225,7 @@ func_mode_link ()
;;
esac
;;
- esac
+ esac
prev=
continue
;;
@@ -2927,7 +4363,7 @@ func_mode_link ()
continue
;;
shrext)
- shrext_cmds="$arg"
+ shrext_cmds="$arg"
prev=
continue
;;
@@ -2971,7 +4407,11 @@ func_mode_link ()
case $arg in
-all-static)
- # The effects of -all-static are defined in a previous loop.
+ if test -n "$link_static_flag"; then
+ # See comment for -static flag below, for more details.
+ func_append compile_command " $link_static_flag"
+ func_append finalize_command " $link_static_flag"
+ fi
continue
;;
@@ -3037,6 +4477,13 @@ func_mode_link ()
-L*)
func_stripname '-L' '' "$arg"
dir=$func_stripname_result
+ if test -z "$dir"; then
+ if test "$#" -gt 0; then
+ func_fatal_error "require no space between \`-L' and \`$1'"
+ else
+ func_fatal_error "need path for \`-L' option"
+ fi
+ fi
# We need an absolute path.
case $dir in
[\\/]* | [A-Za-z]:[\\/]*) ;;
@@ -3055,14 +4502,16 @@ func_mode_link ()
;;
esac
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
testbindir=`$ECHO "X$dir" | $Xsed -e 's*/lib$*/bin*'`
case :$dllsearchpath: in
*":$dir:"*) ;;
+ ::) dllsearchpath=$dir;;
*) dllsearchpath="$dllsearchpath:$dir";;
esac
case :$dllsearchpath: in
*":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
*) dllsearchpath="$dllsearchpath:$testbindir";;
esac
;;
@@ -3073,7 +4522,7 @@ func_mode_link ()
-l*)
if test "X$arg" = "X-lc" || test "X$arg" = "X-lm"; then
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-beos* | *-cegcc*)
# These systems don't actually have a C or math library (as such)
continue
;;
@@ -3150,9 +4599,9 @@ func_mode_link ()
-no-install)
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-darwin* | *-cegcc*)
# The PATH hackery in wrapper scripts is required on Windows
- # in order for the loader to find any dlls it needs.
+ # and Darwin in order for the loader to find any dlls it needs.
func_warning "\`-no-install' is ignored for $host"
func_warning "assuming \`-no-fast-install' instead"
fast_install=no
@@ -3299,6 +4748,12 @@ func_mode_link ()
continue
;;
+ # -msg_* for osf cc
+ -msg_*)
+ func_quote_for_eval "$arg"
+ arg="$func_quote_for_eval_result"
+ ;;
+
# -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
@@ -3634,7 +5089,12 @@ func_mode_link ()
fi
func_stripname '-l' '' "$deplib"
name=$func_stripname_result
- for searchdir in $newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path; do
+ if test "$linkmode" = lib; then
+ searchdirs="$newlib_search_path $lib_search_path $compiler_lib_search_dirs $sys_lib_search_path $shlib_search_path"
+ else
+ searchdirs="$newlib_search_path $lib_search_path $sys_lib_search_path $shlib_search_path"
+ fi
+ for searchdir in $searchdirs; do
for search_ext in .la $std_shrext .so .a; do
# Search the libtool library
lib="$searchdir/lib${name}${search_ext}"
@@ -3867,12 +5327,6 @@ func_mode_link ()
done
fi
dependency_libs=`$ECHO "X $dependency_libs" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
- if test "$linkmode,$pass" = "prog,link"; then
- compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
- finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
- else
- compiler_flags="$compiler_flags $inherited_linker_flags"
- fi
if test "$linkmode,$pass" = "lib,link" ||
test "$linkmode,$pass" = "prog,scan" ||
{ test "$linkmode" != prog && test "$linkmode" != lib; }; then
@@ -4102,7 +5556,7 @@ func_mode_link ()
if test -n "$library_names" &&
{ test "$use_static_libs" = no || test -z "$old_library"; }; then
case $host in
- *cygwin* | *mingw*)
+ *cygwin* | *mingw* | *cegcc*)
# No point in relinking DLLs because paths are not encoded
notinst_deplibs="$notinst_deplibs $lib"
need_relink=no
@@ -4172,8 +5626,9 @@ func_mode_link ()
elif test -n "$soname_spec"; then
# bleh windows
case $host in
- *cygwin* | mingw*)
- major=`expr $current - $age`
+ *cygwin* | mingw* | *cegcc*)
+ func_arith $current - $age
+ major=$func_arith_result
versuffix="-$major"
;;
esac
@@ -4192,13 +5647,13 @@ func_mode_link ()
# If the library has no export list, then create one now
if test -f "$output_objdir/$soname-def"; then :
else
- func_echo "extracting exported symbol list from \`$soname'"
+ func_verbose "extracting exported symbol list from \`$soname'"
func_execute_cmds "$extract_expsyms_cmds" 'exit $?'
fi
# Create $newlib
if test -f "$output_objdir/$newlib"; then :; else
- func_echo "generating import library for \`$soname'"
+ func_verbose "generating import library for \`$soname'"
func_execute_cmds "$old_archive_from_expsyms_cmds" 'exit $?'
fi
# make sure the library variables are pointing to the new library
@@ -4465,11 +5920,9 @@ func_mode_link ()
done
if test -f "$absdir/$objdir/$depdepl" ; then
depdepl="$absdir/$objdir/$depdepl"
- darwin_install_name=`otool -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
- darwin_install_name=`$ECHO $darwin_install_name`
+ darwin_install_name=`${OTOOL} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
if test -z "$darwin_install_name"; then
- darwin_install_name=`otool64 -L $depdepl | $SED -n -e '3q;2,2p' | $SED -e 's/(.*//'`
- darwin_install_name=`$ECHO $darwin_install_name`
+ darwin_install_name=`${OTOOL64} -L $depdepl | awk '{if (NR == 2) {print $1;exit}}'`
fi
compiler_flags="$compiler_flags ${wl}-dylib_file ${wl}${darwin_install_name}:${depdepl}"
linker_flags="$linker_flags -dylib_file ${darwin_install_name}:${depdepl}"
@@ -4500,6 +5953,14 @@ func_mode_link ()
fi # link_all_deplibs != no
fi # linkmode = lib
done # for deplib in $libs
+ if test "$pass" = link; then
+ if test "$linkmode" = "prog"; then
+ compile_deplibs="$new_inherited_linker_flags $compile_deplibs"
+ finalize_deplibs="$new_inherited_linker_flags $finalize_deplibs"
+ else
+ compiler_flags="$compiler_flags "`$ECHO "X $new_inherited_linker_flags" | $Xsed -e 's% \([^ $]*\).ltframework% -framework \1%g'`
+ fi
+ fi
dependency_libs="$newdependency_libs"
if test "$pass" = dlpreopen; then
# Link the dlpreopened libraries before other libraries
@@ -4609,9 +6070,10 @@ func_mode_link ()
func_warning "\`-dlopen' is ignored for archives"
fi
- test -n "$deplibs" && \
- func_warning "\`-l' and \`-L' are ignored for archives"
-
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ func_warning "\`-l' and \`-L' are ignored for archives" ;;
+ esac
test -n "$rpath" && \
func_warning "\`-rpath' is ignored for archives"
@@ -4727,7 +6189,8 @@ func_mode_link ()
#
case $version_type in
darwin|linux|osf|windows|none)
- current=`expr $number_major + $number_minor`
+ func_arith $number_major + $number_minor
+ current=$func_arith_result
age="$number_minor"
revision="$number_revision"
;;
@@ -4737,9 +6200,11 @@ func_mode_link ()
age="0"
;;
irix|nonstopux)
- current=`expr $number_major + $number_minor - 1`
+ func_arith $number_major + $number_minor
+ current=$func_arith_result
age="$number_minor"
revision="$number_minor"
+ lt_irix_increment=no
;;
esac
;;
@@ -4790,10 +6255,13 @@ func_mode_link ()
darwin)
# Like Linux, but with the current version available in
# verstring for coding it into the library header
- major=.`expr $current - $age`
+ func_arith $current - $age
+ major=.$func_arith_result
versuffix="$major.$age.$revision"
# Darwin ld doesn't like 0 for these options...
- minor_current=`expr $current + 1`
+ func_arith $current + 1
+ minor_current=$func_arith_result
+ xlcverstring="${wl}-compatibility_version ${wl}$minor_current ${wl}-current_version ${wl}$minor_current.$revision"
verstring="-compatibility_version $minor_current -current_version $minor_current.$revision"
;;
@@ -4808,7 +6276,12 @@ func_mode_link ()
;;
irix | nonstopux)
- major=`expr $current - $age + 1`
+ if test "X$lt_irix_increment" = "Xno"; then
+ func_arith $current - $age
+ else
+ func_arith $current - $age + 1
+ fi
+ major=$func_arith_result
case $version_type in
nonstopux) verstring_prefix=nonstopux ;;
@@ -4819,8 +6292,10 @@ func_mode_link ()
# 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`
+ func_arith $revision - $loop
+ iface=$func_arith_result
+ func_arith $loop - 1
+ loop=$func_arith_result
verstring="$verstring_prefix$major.$iface:$verstring"
done
@@ -4830,20 +6305,24 @@ func_mode_link ()
;;
linux)
- major=.`expr $current - $age`
+ func_arith $current - $age
+ major=.$func_arith_result
versuffix="$major.$age.$revision"
;;
osf)
- major=.`expr $current - $age`
+ func_arith $current - $age
+ major=.$func_arith_result
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`
+ func_arith $current - $loop
+ iface=$func_arith_result
+ func_arith $loop - 1
+ loop=$func_arith_result
verstring="$verstring:${iface}.0"
done
@@ -4864,7 +6343,8 @@ func_mode_link ()
windows)
# Use '-' rather than '.', since we only want one
# extension on DOS 8.3 filesystems.
- major=`expr $current - $age`
+ func_arith $current - $age
+ major=$func_arith_result
versuffix="-$major"
;;
@@ -4925,7 +6405,7 @@ func_mode_link ()
tempremovelist=`$ECHO "$output_objdir/*"`
for p in $tempremovelist; do
case $p in
- *.$objext)
+ *.$objext | *.gcno)
;;
$output_objdir/$outputname | $output_objdir/$libname.* | $output_objdir/${libname}${release}.*)
if test "X$precious_files_regex" != "X"; then
@@ -4996,7 +6476,7 @@ func_mode_link ()
if test "$build_libtool_libs" = yes; then
if test -n "$rpath"; then
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-*-beos* | *-cegcc*)
# these systems don't actually have a c library (as such)!
;;
*-*-rhapsody* | *-*-darwin1.[012])
@@ -5014,8 +6494,8 @@ func_mode_link ()
;;
*-*-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"
@@ -5060,9 +6540,10 @@ EOF
if $LTCC $LTCFLAGS -o conftest conftest.c $deplibs; then
ldd_output=`ldd conftest`
for i in $deplibs; do
- name=`expr $i : '-l\(.*\)'`
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" != "0"; then
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in
*" $i "*)
@@ -5089,17 +6570,20 @@ EOF
$ECHO "*** its dynamic dependency list that programs get resolved with at runtime."
fi
fi
- else
+ ;;
+ *)
newdeplibs="$newdeplibs $i"
- fi
+ ;;
+ esac
done
else
# Error occurred in the first compile. Let's try to salvage
# the situation: Compile a separate program for each library.
for i in $deplibs; do
- name=`expr $i : '-l\(.*\)'`
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" != "0"; then
+ case $i in
+ -l*)
+ func_stripname -l '' "$i"
+ name=$func_stripname_result
$opt_dry_run || $RM conftest
if $LTCC $LTCFLAGS -o conftest conftest.c $i; then
ldd_output=`ldd conftest`
@@ -5137,9 +6621,11 @@ EOF
$ECHO "*** library that it depends on before this library will be fully"
$ECHO "*** functional. Installing it before continuing would be even better."
fi
- else
+ ;;
+ *)
newdeplibs="$newdeplibs $i"
- fi
+ ;;
+ esac
done
fi
;;
@@ -5147,9 +6633,10 @@ EOF
set dummy $deplibs_check_method; shift
file_magic_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
for a_deplib in $deplibs; do
- name=`expr $a_deplib : '-l\(.*\)'`
- # If $name is empty we are operating on a -L argument.
- if test "$name" != "" && test "$name" != "0"; then
+ case $a_deplib in
+ -l*)
+ func_stripname -l '' "$a_deplib"
+ name=$func_stripname_result
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in
*" $a_deplib "*)
@@ -5206,19 +6693,22 @@ EOF
$ECHO "*** using a file magic. Last file checked: $potlib"
fi
fi
- else
+ ;;
+ *)
# Add a -L argument.
newdeplibs="$newdeplibs $a_deplib"
- fi
+ ;;
+ esac
done # Gone through all deplibs.
;;
match_pattern*)
set dummy $deplibs_check_method; shift
match_pattern_regex=`expr "$deplibs_check_method" : "$1 \(.*\)"`
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
+ case $a_deplib in
+ -l*)
+ func_stripname -l '' "$a_deplib"
+ name=$func_stripname_result
if test "X$allow_libtool_libs_with_static_runtimes" = "Xyes" ; then
case " $predeps $postdeps " in
*" $a_deplib "*)
@@ -5257,10 +6747,12 @@ EOF
$ECHO "*** using a regex pattern. Last file checked: $potlib"
fi
fi
- else
+ ;;
+ *)
# Add a -L argument.
newdeplibs="$newdeplibs $a_deplib"
- fi
+ ;;
+ esac
done # Gone through all deplibs.
;;
none | unknown | *)
@@ -5273,7 +6765,7 @@ EOF
tmp_deplibs=`$ECHO "X $tmp_deplibs" | $Xsed -e "s,$i,,"`
done
fi
- if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' |
+ if $ECHO "X $tmp_deplibs" | $Xsed -e 's/[ ]//g' |
$GREP . >/dev/null; then
$ECHO
if test "X$deplibs_check_method" = "Xnone"; then
@@ -5483,7 +6975,7 @@ EOF
orig_export_symbols=
case $host_os in
- cygwin* | mingw*)
+ cygwin* | mingw* | cegcc*)
if test -n "$export_symbols" && test -z "$export_symbols_regex"; then
# exporting using user supplied symfile
if test "x`$SED 1q $export_symbols`" != xEXPORTS; then
@@ -5504,7 +6996,7 @@ EOF
# Prepare the list of exported symbols
if test -z "$export_symbols"; then
if test "$always_export_symbols" = yes || test -n "$export_symbols_regex"; then
- func_echo "generating symbol list for \`$libname.la'"
+ func_verbose "generating symbol list for \`$libname.la'"
export_symbols="$output_objdir/$libname.exp"
$opt_dry_run || $RM $export_symbols
cmds=$export_symbols_cmds
@@ -5512,13 +7004,14 @@ EOF
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
+ func_len " $cmd"
+ len=$func_len_result
+ if test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
func_show_eval "$cmd" 'exit $?'
skipped_export=false
else
# The command line is too long to execute in one step.
- func_echo "using reloadable object file for export list..."
+ func_verbose "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.
@@ -5541,7 +7034,7 @@ EOF
if test "X$skipped_export" != "X:" && test -n "$orig_export_symbols"; then
# The given exports_symbols file has to be filtered, so filter it.
- func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
# FIXME: $output_objdir/$libname.filter potentially contains lots of
# 's' commands which not all seds can handle. GNU sed should be fine
# though. Also, the filter scales superlinearly with the number of
@@ -5616,8 +7109,9 @@ EOF
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
+ func_len " $test_cmds" &&
+ len=$func_len_result &&
+ test "$len" -lt "$max_cmd_len" || test "$max_cmd_len" -le -1; then
:
else
# The command line is too long to link in one step, link piecewise
@@ -5648,7 +7142,7 @@ EOF
if test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "$with_gnu_ld" = yes; then
output=${output_objdir}/${output_la}.lnkscript
- func_echo "creating GNU ld script: $output"
+ func_verbose "creating GNU ld script: $output"
$ECHO 'INPUT (' > $output
for obj in $save_libobjs
do
@@ -5658,7 +7152,7 @@ EOF
delfiles="$delfiles $output"
elif test -n "$save_libobjs" && test "X$skipped_export" != "X:" && test "X$file_list_spec" != X; then
output=${output_objdir}/${output_la}.lnk
- func_echo "creating linker input file list: $output"
+ func_verbose "creating linker input file list: $output"
: > $output
set x $save_libobjs
shift
@@ -5675,16 +7169,22 @@ EOF
output=$firstobj\"$file_list_spec$output\"
else
if test -n "$save_libobjs"; then
- func_echo "creating reloadable object files..."
+ func_verbose "creating reloadable object files..."
output=$output_objdir/$output_la-${k}.$objext
+ eval test_cmds=\"$reload_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
+
# Loop over the list of objects to be linked.
for obj in $save_libobjs
do
- eval test_cmds=\"$reload_cmds $objlist $last_robj\"
+ func_len " $obj"
+ func_arith $len + $func_len_result
+ len=$func_arith_result
if test "X$objlist" = X ||
- { len=`expr "X$test_cmds" : ".*" 2>/dev/null` &&
- test "$len" -le "$max_cmd_len"; }; then
- objlist="$objlist $obj"
+ test "$len" -lt "$max_cmd_len"; then
+ func_append objlist " $obj"
else
# The command $test_cmds is almost too long, add a
# command to the queue.
@@ -5694,13 +7194,16 @@ EOF
else
# All subsequent reloadable object files will link in
# the last one created.
- eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj\"
+ eval concat_cmds=\"\$concat_cmds~$reload_cmds $objlist $last_robj~\$RM $last_robj\"
fi
last_robj=$output_objdir/$output_la-${k}.$objext
- k=`expr $k + 1`
+ func_arith $k + 1
+ k=$func_arith_result
output=$output_objdir/$output_la-${k}.$objext
objlist=$obj
- len=1
+ func_len " $last_robj"
+ func_arith $len0 + $func_len_result
+ len=$func_arith_result
fi
done
# Handle the remaining objects by creating one last
@@ -5708,31 +7211,30 @@ EOF
# 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 test -n "$last_robj"; then
+ eval concat_cmds=\"\${concat_cmds}~\$RM $last_robj\"
+ fi
+ delfiles="$delfiles $output"
- # 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
else
output=
fi
if ${skipped_export-false}; then
- func_echo "generating symbol list for \`$libname.la'"
+ func_verbose "generating symbol list for \`$libname.la'"
export_symbols="$output_objdir/$libname.exp"
$opt_dry_run || $RM $export_symbols
libobjs=$output
# Append the command to create the export file.
test -z "$concat_cmds" || concat_cmds=$concat_cmds~
eval concat_cmds=\"\$concat_cmds$export_symbols_cmds\"
+ if test -n "$last_robj"; then
+ eval concat_cmds=\"\$concat_cmds~\$RM $last_robj\"
+ fi
fi
test -n "$save_libobjs" &&
- func_echo "creating a temporary reloadable object file: $output"
+ func_verbose "creating a temporary reloadable object file: $output"
# Loop through the commands generated above and execute them.
save_ifs="$IFS"; IFS='~'
@@ -5772,7 +7274,7 @@ EOF
if test -n "$orig_export_symbols"; then
# The given exports_symbols file has to be filtered, so filter it.
- func_echo "filter symbol list for \`$libname.la' to tag DATA exports"
+ func_verbose "filter symbol list for \`$libname.la' to tag DATA exports"
# FIXME: $output_objdir/$libname.filter potentially contains lots of
# 's' commands which not all seds can handle. GNU sed should be fine
# though. Also, the filter scales superlinearly with the number of
@@ -5883,8 +7385,10 @@ EOF
func_warning "\`-dlopen' is ignored for objects"
fi
- test -n "$deplibs" && \
- func_warning "\`-l' and \`-L' are ignored for objects"
+ case " $deplibs" in
+ *\ -l* | *\ -L*)
+ func_warning "\`-l' and \`-L' are ignored for objects" ;;
+ esac
test -n "$rpath" && \
func_warning "\`-rpath' is ignored for objects"
@@ -6096,14 +7600,16 @@ EOF
esac
fi
case $host in
- *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2*)
+ *-*-cygwin* | *-*-mingw* | *-*-pw32* | *-*-os2* | *-cegcc*)
testbindir=`${ECHO} "$libdir" | ${SED} -e 's*/lib$*/bin*'`
case :$dllsearchpath: in
*":$libdir:"*) ;;
+ ::) dllsearchpath=$libdir;;
*) dllsearchpath="$dllsearchpath:$libdir";;
esac
case :$dllsearchpath: in
*":$testbindir:"*) ;;
+ ::) dllsearchpath=$testbindir;;
*) dllsearchpath="$dllsearchpath:$testbindir";;
esac
;;
@@ -6173,6 +7679,10 @@ EOF
wrappers_required=no
fi
;;
+ *cegcc)
+ # Disable wrappers for cegcc, we are cross compiling anyway.
+ wrappers_required=no
+ ;;
*)
if test "$need_relink" = no || test "$build_libtool_libs" != yes; then
wrappers_required=no
@@ -6267,7 +7777,7 @@ EOF
func_show_eval "$link_command" 'exit $?'
# Now create the wrapper script.
- func_echo "creating $output"
+ func_verbose "creating $output"
# Quote the relink command for shipping.
if test -n "$relink_command"; then
@@ -6315,553 +7825,46 @@ EOF
esac
case $host in
*cygwin* | *mingw* )
- output_name=`basename $output`
- output_path=`dirname $output`
+ func_dirname_and_basename "$output" "" "."
+ output_name=$func_basename_result
+ output_path=$func_dirname_result
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 <<EOF
-
-/* $cwrappersource - temporary wrapper executable for $objdir/$outputname
- Generated by $PROGRAM (GNU $PACKAGE$TIMESTAMP) $VERSION
-
- The $output program cannot be directly executed until all the libtool
- libraries that it depends on are installed.
-
- This wrapper executable should never be moved out of the build directory.
- If it is, it will not operate correctly.
-
- Currently, it simply execs the wrapper *script* "/bin/sh $output",
- but could eventually absorb all of the scripts functionality and
- exec $objdir/$outputname directly.
-*/
-EOF
- cat >> $cwrappersource<<"EOF"
-#include <stdio.h>
-#include <stdlib.h>
-#include <unistd.h>
-#include <malloc.h>
-#include <stdarg.h>
-#include <assert.h>
-#include <string.h>
-#include <ctype.h>
-#include <sys/stat.h>
-
-#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 <<EOF
- newargz[0] = (char *) xstrdup("$SHELL");
-EOF
-
- cat >> $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<argc+1; i++)
- {
- DEBUG("(main) newargz[%d] : %s\n",i,newargz[i]);
- ;
- }
-
-EOF
-
- case $host_os in
- mingw*)
- cat >> $cwrappersource <<EOF
- execv("$SHELL",(char const **)newargz);
-EOF
- ;;
- *)
- cat >> $cwrappersource <<EOF
- execv("$SHELL",newargz);
-EOF
- ;;
- esac
-
- cat >> $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.
- $opt_dry_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$TIMESTAMP) $VERSION
-#
-# 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'
-
-# 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
-
-# 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\"
+ func_emit_cwrapperexe_src > $cwrappersource
-# This environment variable determines our operation mode.
-if test \"\$libtool_install_magic\" = \"$magic\"; then
- # install mode needs the following variables:
- generated_by_libtool_version='$macro_version'
- 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 1
- 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
+ # The wrapper executable is built using the $host compiler,
+ # because it contains $host paths and files. If cross-
+ # compiling, it, like the target executable, must be
+ # executed on the $host or under an emulation environment.
+ $opt_dry_run || {
+ $LTCC $LTCFLAGS -o $cwrapper $cwrappersource
+ $STRIP $cwrapper
+ }
- $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+\"\$@\"}
-"
+ # Now, create the wrapper script for func_source use:
+ func_ltwrapper_scriptname $cwrapper
+ $RM $func_ltwrapper_scriptname_result
+ trap "$RM $func_ltwrapper_scriptname_result; exit $EXIT_FAILURE" 1 2 15
+ $opt_dry_run || {
+ # note: this script will not be executed, so do not chmod.
+ if test "x$build" = "x$host" ; then
+ $cwrapper --lt-dump-script > $func_ltwrapper_scriptname_result
+ else
+ func_emit_wrapper no > $func_ltwrapper_scriptname_result
+ fi
+ }
;;
+ * )
+ $RM $output
+ trap "$RM $output; exit $EXIT_FAILURE" 1 2 15
- *)
- $ECHO >> $output "\
- exec \"\$progdir/\$program\" \${1+\"\$@\"}
-"
+ func_emit_wrapper no > $output
+ chmod +x $output
;;
esac
- $ECHO >> $output "\
- \$ECHO \"\$0: cannot exec \$program \$*\"
- exit 1
- 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 1
- fi
-fi\
-"
- chmod +x $output
}
exit $EXIT_SUCCESS
;;
@@ -6940,7 +7943,8 @@ fi\
# Make sure we don't pick an alternate name that also
# overlaps.
newobj=lt$counter-$objbase
- counter=`expr $counter + 1`
+ func_arith $counter + 1
+ counter=$func_arith_result
case " $oldobjs " in
*[\ /]"$newobj "*) ;;
*) if test ! -f "$gentop/$newobj"; then break; fi ;;
@@ -6955,29 +7959,35 @@ fi\
fi
eval cmds=\"$old_archive_cmds\"
- if len=`expr "X$cmds" : ".*" 2>/dev/null` &&
- test "$len" -le "$max_cmd_len" || test "$max_cmd_len" -le -1; then
+ func_len " $cmds"
+ len=$func_len_result
+ if test "$len" -lt "$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
- func_echo "using piecewise archive linking..."
+ func_verbose "using piecewise archive linking..."
save_RANLIB=$RANLIB
RANLIB=:
objlist=
concat_cmds=
save_oldobjs=$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
+ eval test_cmds=\"$old_archive_cmds\"
+ func_len " $test_cmds"
+ len0=$func_len_result
+ len=$len0
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
+ func_len " $obj"
+ func_arith $len + $func_len_result
+ len=$func_arith_result
+ func_append objlist " $obj"
+ if test "$len" -lt "$max_cmd_len"; then
:
else
# the above command should be used before it gets too long
@@ -6988,6 +7998,7 @@ fi\
test -z "$concat_cmds" || concat_cmds=$concat_cmds~
eval concat_cmds=\"\${concat_cmds}$old_archive_cmds\"
objlist=
+ len=$len0
fi
done
RANLIB=$save_RANLIB
@@ -7010,7 +8021,7 @@ fi\
*.la)
old_library=
test "$build_old_libs" = yes && old_library="$libname.$libext"
- func_echo "creating $output"
+ func_verbose "creating $output"
# Preserve any variables that may affect compiler behavior
for var in $variables_saved_for_relink; do
@@ -7112,7 +8123,7 @@ fi\
# 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 ;;
+ *cygwin*,*lai,yes,no,*.dll | *mingw*,*lai,yes,no,*.dll | *cegcc*,*lai,yes,no,*.dll) tdlname=../bin/$dlname ;;
esac
$ECHO > $output "\
# $outputname - a libtool library file
@@ -7311,8 +8322,15 @@ func_mode_uninstall ()
esac
# Do a test to see if this is a libtool program.
if func_ltwrapper_p "$file"; then
- relink_command=
- func_source $dir/$noexename
+ if func_ltwrapper_executable_p "$file"; then
+ func_ltwrapper_scriptname "$file"
+ relink_command=
+ func_source $func_ltwrapper_scriptname_result
+ rmfiles="$rmfiles $func_ltwrapper_scriptname_result"
+ else
+ relink_command=
+ func_source $dir/$noexename
+ fi
# note $name still contains .exe if it was in $file originally
# as does the version of $file that was added into $rmfiles
@@ -7385,5 +8403,3 @@ build_old_libs=`case $build_libtool_libs in yes) echo no;; *) echo yes;; esac`
# sh-indentation:2
# End:
# vi:sw=2
-
-
diff --git a/libjava/classpath/ltoptions.m4 b/libjava/classpath/ltoptions.m4
new file mode 100644
index 0000000..34151a3
--- /dev/null
+++ b/libjava/classpath/ltoptions.m4
@@ -0,0 +1,368 @@
+# Helper functions for option handling. -*- Autoconf -*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# 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.
+
+# serial 6 ltoptions.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOPTIONS_VERSION], [m4_if([1])])
+
+
+# _LT_MANGLE_OPTION(MACRO-NAME, OPTION-NAME)
+# ------------------------------------------
+m4_define([_LT_MANGLE_OPTION],
+[[_LT_OPTION_]m4_bpatsubst($1__$2, [[^a-zA-Z0-9_]], [_])])
+
+
+# _LT_SET_OPTION(MACRO-NAME, OPTION-NAME)
+# ---------------------------------------
+# Set option OPTION-NAME for macro MACRO-NAME, and if there is a
+# matching handler defined, dispatch to it. Other OPTION-NAMEs are
+# saved as a flag.
+m4_define([_LT_SET_OPTION],
+[m4_define(_LT_MANGLE_OPTION([$1], [$2]))dnl
+m4_ifdef(_LT_MANGLE_DEFUN([$1], [$2]),
+ _LT_MANGLE_DEFUN([$1], [$2]),
+ [m4_warning([Unknown $1 option `$2'])])[]dnl
+])
+
+
+# _LT_IF_OPTION(MACRO-NAME, OPTION-NAME, IF-SET, [IF-NOT-SET])
+# ------------------------------------------------------------
+# Execute IF-SET if OPTION is set, IF-NOT-SET otherwise.
+m4_define([_LT_IF_OPTION],
+[m4_ifdef(_LT_MANGLE_OPTION([$1], [$2]), [$3], [$4])])
+
+
+# _LT_UNLESS_OPTIONS(MACRO-NAME, OPTION-LIST, IF-NOT-SET)
+# -------------------------------------------------------
+# Execute IF-NOT-SET unless all options in OPTION-LIST for MACRO-NAME
+# are set.
+m4_define([_LT_UNLESS_OPTIONS],
+[m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [m4_ifdef(_LT_MANGLE_OPTION([$1], _LT_Option),
+ [m4_define([$0_found])])])[]dnl
+m4_ifdef([$0_found], [m4_undefine([$0_found])], [$3
+])[]dnl
+])
+
+
+# _LT_SET_OPTIONS(MACRO-NAME, OPTION-LIST)
+# ----------------------------------------
+# OPTION-LIST is a space-separated list of Libtool options associated
+# with MACRO-NAME. If any OPTION has a matching handler declared with
+# LT_OPTION_DEFINE, dispatch to that macro; otherwise complain about
+# the unknown option and exit.
+m4_defun([_LT_SET_OPTIONS],
+[# Set options
+m4_foreach([_LT_Option], m4_split(m4_normalize([$2])),
+ [_LT_SET_OPTION([$1], _LT_Option)])
+
+m4_if([$1],[LT_INIT],[
+ dnl
+ dnl Simply set some default values (i.e off) if boolean options were not
+ dnl specified:
+ _LT_UNLESS_OPTIONS([LT_INIT], [dlopen], [enable_dlopen=no
+ ])
+ _LT_UNLESS_OPTIONS([LT_INIT], [win32-dll], [enable_win32_dll=no
+ ])
+ dnl
+ dnl If no reference was made to various pairs of opposing options, then
+ dnl we run the default mode handler for the pair. For example, if neither
+ dnl `shared' nor `disable-shared' was passed, we enable building of shared
+ dnl archives by default:
+ _LT_UNLESS_OPTIONS([LT_INIT], [shared disable-shared], [_LT_ENABLE_SHARED])
+ _LT_UNLESS_OPTIONS([LT_INIT], [static disable-static], [_LT_ENABLE_STATIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [pic-only no-pic], [_LT_WITH_PIC])
+ _LT_UNLESS_OPTIONS([LT_INIT], [fast-install disable-fast-install],
+ [_LT_ENABLE_FAST_INSTALL])
+ ])
+])# _LT_SET_OPTIONS
+
+
+## --------------------------------- ##
+## Macros to handle LT_INIT options. ##
+## --------------------------------- ##
+
+# _LT_MANGLE_DEFUN(MACRO-NAME, OPTION-NAME)
+# -----------------------------------------
+m4_define([_LT_MANGLE_DEFUN],
+[[_LT_OPTION_DEFUN_]m4_bpatsubst(m4_toupper([$1__$2]), [[^A-Z0-9_]], [_])])
+
+
+# LT_OPTION_DEFINE(MACRO-NAME, OPTION-NAME, CODE)
+# -----------------------------------------------
+m4_define([LT_OPTION_DEFINE],
+[m4_define(_LT_MANGLE_DEFUN([$1], [$2]), [$3])[]dnl
+])# LT_OPTION_DEFINE
+
+
+# dlopen
+# ------
+LT_OPTION_DEFINE([LT_INIT], [dlopen], [enable_dlopen=yes
+])
+
+AU_DEFUN([AC_LIBTOOL_DLOPEN],
+[_LT_SET_OPTION([LT_INIT], [dlopen])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `dlopen' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_DLOPEN], [])
+
+
+# win32-dll
+# ---------
+# Declare package support for building win32 dll's.
+LT_OPTION_DEFINE([LT_INIT], [win32-dll],
+[enable_win32_dll=yes
+
+case $host in
+*-*-cygwin* | *-*-mingw* | *-*-pw32* | *-cegcc*)
+ AC_CHECK_TOOL(AS, as, false)
+ AC_CHECK_TOOL(DLLTOOL, dlltool, false)
+ AC_CHECK_TOOL(OBJDUMP, objdump, false)
+ ;;
+esac
+
+test -z "$AS" && AS=as
+_LT_DECL([], [AS], [0], [Assembler program])dnl
+
+test -z "$DLLTOOL" && DLLTOOL=dlltool
+_LT_DECL([], [DLLTOOL], [0], [DLL creation program])dnl
+
+test -z "$OBJDUMP" && OBJDUMP=objdump
+_LT_DECL([], [OBJDUMP], [0], [Object dumper program])dnl
+])# win32-dll
+
+AU_DEFUN([AC_LIBTOOL_WIN32_DLL],
+[AC_REQUIRE([AC_CANONICAL_HOST])dnl
+_LT_SET_OPTION([LT_INIT], [win32-dll])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `win32-dll' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_WIN32_DLL], [])
+
+
+# _LT_ENABLE_SHARED([DEFAULT])
+# ----------------------------
+# implement the --enable-shared flag, and supports the `shared' and
+# `disable-shared' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_SHARED],
+[m4_define([_LT_ENABLE_SHARED_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([shared],
+ [AS_HELP_STRING([--enable-shared@<:@=PKGS@:>@],
+ [build shared libraries @<:@default=]_LT_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=]_LT_ENABLE_SHARED_DEFAULT)
+
+ _LT_DECL([build_libtool_libs], [enable_shared], [0],
+ [Whether or not to build shared libraries])
+])# _LT_ENABLE_SHARED
+
+LT_OPTION_DEFINE([LT_INIT], [shared], [_LT_ENABLE_SHARED([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-shared], [_LT_ENABLE_SHARED([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[shared])
+])
+
+AC_DEFUN([AC_DISABLE_SHARED],
+[_LT_SET_OPTION([LT_INIT], [disable-shared])
+])
+
+AU_DEFUN([AM_ENABLE_SHARED], [AC_ENABLE_SHARED($@)])
+AU_DEFUN([AM_DISABLE_SHARED], [AC_DISABLE_SHARED($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_SHARED], [])
+dnl AC_DEFUN([AM_DISABLE_SHARED], [])
+
+
+
+# _LT_ENABLE_STATIC([DEFAULT])
+# ----------------------------
+# implement the --enable-static flag, and support the `static' and
+# `disable-static' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_STATIC],
+[m4_define([_LT_ENABLE_STATIC_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([static],
+ [AS_HELP_STRING([--enable-static@<:@=PKGS@:>@],
+ [build static libraries @<:@default=]_LT_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=]_LT_ENABLE_STATIC_DEFAULT)
+
+ _LT_DECL([build_old_libs], [enable_static], [0],
+ [Whether or not to build static libraries])
+])# _LT_ENABLE_STATIC
+
+LT_OPTION_DEFINE([LT_INIT], [static], [_LT_ENABLE_STATIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-static], [_LT_ENABLE_STATIC([no])])
+
+# Old names:
+AC_DEFUN([AC_ENABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[static])
+])
+
+AC_DEFUN([AC_DISABLE_STATIC],
+[_LT_SET_OPTION([LT_INIT], [disable-static])
+])
+
+AU_DEFUN([AM_ENABLE_STATIC], [AC_ENABLE_STATIC($@)])
+AU_DEFUN([AM_DISABLE_STATIC], [AC_DISABLE_STATIC($@)])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AM_ENABLE_STATIC], [])
+dnl AC_DEFUN([AM_DISABLE_STATIC], [])
+
+
+
+# _LT_ENABLE_FAST_INSTALL([DEFAULT])
+# ----------------------------------
+# implement the --enable-fast-install flag, and support the `fast-install'
+# and `disable-fast-install' LT_INIT options.
+# DEFAULT is either `yes' or `no'. If omitted, it defaults to `yes'.
+m4_define([_LT_ENABLE_FAST_INSTALL],
+[m4_define([_LT_ENABLE_FAST_INSTALL_DEFAULT], [m4_if($1, no, no, yes)])dnl
+AC_ARG_ENABLE([fast-install],
+ [AS_HELP_STRING([--enable-fast-install@<:@=PKGS@:>@],
+ [optimize for fast installation @<:@default=]_LT_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=]_LT_ENABLE_FAST_INSTALL_DEFAULT)
+
+_LT_DECL([fast_install], [enable_fast_install], [0],
+ [Whether or not to optimize for fast installation])dnl
+])# _LT_ENABLE_FAST_INSTALL
+
+LT_OPTION_DEFINE([LT_INIT], [fast-install], [_LT_ENABLE_FAST_INSTALL([yes])])
+LT_OPTION_DEFINE([LT_INIT], [disable-fast-install], [_LT_ENABLE_FAST_INSTALL([no])])
+
+# Old names:
+AU_DEFUN([AC_ENABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], m4_if([$1], [no], [disable-])[fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `fast-install' option into LT_INIT's first parameter.])
+])
+
+AU_DEFUN([AC_DISABLE_FAST_INSTALL],
+[_LT_SET_OPTION([LT_INIT], [disable-fast-install])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you put
+the `disable-fast-install' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_ENABLE_FAST_INSTALL], [])
+dnl AC_DEFUN([AM_DISABLE_FAST_INSTALL], [])
+
+
+# _LT_WITH_PIC([MODE])
+# --------------------
+# implement the --with-pic flag, and support the `pic-only' and `no-pic'
+# LT_INIT options.
+# MODE is either `yes' or `no'. If omitted, it defaults to `both'.
+m4_define([_LT_WITH_PIC],
+[AC_ARG_WITH([pic],
+ [AS_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=m4_default([$1], [default])
+
+_LT_DECL([], [pic_mode], [0], [What type of objects to build])dnl
+])# _LT_WITH_PIC
+
+LT_OPTION_DEFINE([LT_INIT], [pic-only], [_LT_WITH_PIC([yes])])
+LT_OPTION_DEFINE([LT_INIT], [no-pic], [_LT_WITH_PIC([no])])
+
+# Old name:
+AU_DEFUN([AC_LIBTOOL_PICMODE],
+[_LT_SET_OPTION([LT_INIT], [pic-only])
+AC_DIAGNOSE([obsolete],
+[$0: Remove this warning and the call to _LT_SET_OPTION when you
+put the `pic-only' option into LT_INIT's first parameter.])
+])
+
+dnl aclocal-1.4 backwards compatibility:
+dnl AC_DEFUN([AC_LIBTOOL_PICMODE], [])
+
+## ----------------- ##
+## LTDL_INIT Options ##
+## ----------------- ##
+
+m4_define([_LTDL_MODE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [nonrecursive],
+ [m4_define([_LTDL_MODE], [nonrecursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [recursive],
+ [m4_define([_LTDL_MODE], [recursive])])
+LT_OPTION_DEFINE([LTDL_INIT], [subproject],
+ [m4_define([_LTDL_MODE], [subproject])])
+
+m4_define([_LTDL_TYPE], [])
+LT_OPTION_DEFINE([LTDL_INIT], [installable],
+ [m4_define([_LTDL_TYPE], [installable])])
+LT_OPTION_DEFINE([LTDL_INIT], [convenience],
+ [m4_define([_LTDL_TYPE], [convenience])])
diff --git a/libjava/classpath/ltsugar.m4 b/libjava/classpath/ltsugar.m4
new file mode 100644
index 0000000..9000a05
--- /dev/null
+++ b/libjava/classpath/ltsugar.m4
@@ -0,0 +1,123 @@
+# ltsugar.m4 -- libtool m4 base layer. -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007, 2008 Free Software Foundation, Inc.
+# Written by Gary V. Vaughan, 2004
+#
+# 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.
+
+# serial 6 ltsugar.m4
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTSUGAR_VERSION], [m4_if([0.1])])
+
+
+# lt_join(SEP, ARG1, [ARG2...])
+# -----------------------------
+# Produce ARG1SEPARG2...SEPARGn, omitting [] arguments and their
+# associated separator.
+# Needed until we can rely on m4_join from Autoconf 2.62, since all earlier
+# versions in m4sugar had bugs.
+m4_define([lt_join],
+[m4_if([$#], [1], [],
+ [$#], [2], [[$2]],
+ [m4_if([$2], [], [], [[$2]_])$0([$1], m4_shift(m4_shift($@)))])])
+m4_define([_lt_join],
+[m4_if([$#$2], [2], [],
+ [m4_if([$2], [], [], [[$1$2]])$0([$1], m4_shift(m4_shift($@)))])])
+
+
+# lt_car(LIST)
+# lt_cdr(LIST)
+# ------------
+# Manipulate m4 lists.
+# These macros are necessary as long as will still need to support
+# Autoconf-2.59 which quotes differently.
+m4_define([lt_car], [[$1]])
+m4_define([lt_cdr],
+[m4_if([$#], 0, [m4_fatal([$0: cannot be called without arguments])],
+ [$#], 1, [],
+ [m4_dquote(m4_shift($@))])])
+m4_define([lt_unquote], $1)
+
+
+# lt_append(MACRO-NAME, STRING, [SEPARATOR])
+# ------------------------------------------
+# Redefine MACRO-NAME to hold its former content plus `SEPARATOR'`STRING'.
+# Note that neither SEPARATOR nor STRING are expanded; they are appended
+# to MACRO-NAME as is (leaving the expansion for when MACRO-NAME is invoked).
+# No SEPARATOR is output if MACRO-NAME was previously undefined (different
+# than defined and empty).
+#
+# This macro is needed until we can rely on Autoconf 2.62, since earlier
+# versions of m4sugar mistakenly expanded SEPARATOR but not STRING.
+m4_define([lt_append],
+[m4_define([$1],
+ m4_ifdef([$1], [m4_defn([$1])[$3]])[$2])])
+
+
+
+# lt_combine(SEP, PREFIX-LIST, INFIX, SUFFIX1, [SUFFIX2...])
+# ----------------------------------------------------------
+# Produce a SEP delimited list of all paired combinations of elements of
+# PREFIX-LIST with SUFFIX1 through SUFFIXn. Each element of the list
+# has the form PREFIXmINFIXSUFFIXn.
+# Needed until we can rely on m4_combine added in Autoconf 2.62.
+m4_define([lt_combine],
+[m4_if(m4_eval([$# > 3]), [1],
+ [m4_pushdef([_Lt_sep], [m4_define([_Lt_sep], m4_defn([lt_car]))])]]dnl
+[[m4_foreach([_Lt_prefix], [$2],
+ [m4_foreach([_Lt_suffix],
+ ]m4_dquote(m4_dquote(m4_shift(m4_shift(m4_shift($@)))))[,
+ [_Lt_sep([$1])[]m4_defn([_Lt_prefix])[$3]m4_defn([_Lt_suffix])])])])])
+
+
+# lt_if_append_uniq(MACRO-NAME, VARNAME, [SEPARATOR], [UNIQ], [NOT-UNIQ])
+# -----------------------------------------------------------------------
+# Iff MACRO-NAME does not yet contain VARNAME, then append it (delimited
+# by SEPARATOR if supplied) and expand UNIQ, else NOT-UNIQ.
+m4_define([lt_if_append_uniq],
+[m4_ifdef([$1],
+ [m4_if(m4_index([$3]m4_defn([$1])[$3], [$3$2$3]), [-1],
+ [lt_append([$1], [$2], [$3])$4],
+ [$5])],
+ [lt_append([$1], [$2], [$3])$4])])
+
+
+# lt_dict_add(DICT, KEY, VALUE)
+# -----------------------------
+m4_define([lt_dict_add],
+[m4_define([$1($2)], [$3])])
+
+
+# lt_dict_add_subkey(DICT, KEY, SUBKEY, VALUE)
+# --------------------------------------------
+m4_define([lt_dict_add_subkey],
+[m4_define([$1($2:$3)], [$4])])
+
+
+# lt_dict_fetch(DICT, KEY, [SUBKEY])
+# ----------------------------------
+m4_define([lt_dict_fetch],
+[m4_ifval([$3],
+ m4_ifdef([$1($2:$3)], [m4_defn([$1($2:$3)])]),
+ m4_ifdef([$1($2)], [m4_defn([$1($2)])]))])
+
+
+# lt_if_dict_fetch(DICT, KEY, [SUBKEY], VALUE, IF-TRUE, [IF-FALSE])
+# -----------------------------------------------------------------
+m4_define([lt_if_dict_fetch],
+[m4_if(lt_dict_fetch([$1], [$2], [$3]), [$4],
+ [$5],
+ [$6])])
+
+
+# lt_dict_filter(DICT, [SUBKEY], VALUE, [SEPARATOR], KEY, [...])
+# --------------------------------------------------------------
+m4_define([lt_dict_filter],
+[m4_if([$5], [], [],
+ [lt_join(m4_quote(m4_default([$4], [[, ]])),
+ lt_unquote(m4_split(m4_normalize(m4_foreach(_Lt_key, lt_car([m4_shiftn(4, $@)]),
+ [lt_if_dict_fetch([$1], _Lt_key, [$2], [$3], [_Lt_key ])])))))])[]dnl
+])
diff --git a/libjava/classpath/ltversion.m4 b/libjava/classpath/ltversion.m4
new file mode 100644
index 0000000..b8e154f
--- /dev/null
+++ b/libjava/classpath/ltversion.m4
@@ -0,0 +1,23 @@
+# ltversion.m4 -- version numbers -*- Autoconf -*-
+#
+# Copyright (C) 2004 Free Software Foundation, Inc.
+# Written by Scott James Remnant, 2004
+#
+# 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.
+
+# Generated from ltversion.in.
+
+# serial 3012 ltversion.m4
+# This file is part of GNU Libtool
+
+m4_define([LT_PACKAGE_VERSION], [2.2.6])
+m4_define([LT_PACKAGE_REVISION], [1.3012])
+
+AC_DEFUN([LTVERSION_VERSION],
+[macro_version='2.2.6'
+macro_revision='1.3012'
+_LT_DECL(, macro_version, 0, [Which release of libtool.m4 was used?])
+_LT_DECL(, macro_revision, 0)
+])
diff --git a/libjava/classpath/lt~obsolete.m4 b/libjava/classpath/lt~obsolete.m4
new file mode 100644
index 0000000..637bb20
--- /dev/null
+++ b/libjava/classpath/lt~obsolete.m4
@@ -0,0 +1,92 @@
+# lt~obsolete.m4 -- aclocal satisfying obsolete definitions. -*-Autoconf-*-
+#
+# Copyright (C) 2004, 2005, 2007 Free Software Foundation, Inc.
+# Written by Scott James Remnant, 2004.
+#
+# 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.
+
+# serial 4 lt~obsolete.m4
+
+# These exist entirely to fool aclocal when bootstrapping libtool.
+#
+# In the past libtool.m4 has provided macros via AC_DEFUN (or AU_DEFUN)
+# which have later been changed to m4_define as they aren't part of the
+# exported API, or moved to Autoconf or Automake where they belong.
+#
+# The trouble is, aclocal is a bit thick. It'll see the old AC_DEFUN
+# in /usr/share/aclocal/libtool.m4 and remember it, then when it sees us
+# using a macro with the same name in our local m4/libtool.m4 it'll
+# pull the old libtool.m4 in (it doesn't see our shiny new m4_define
+# and doesn't know about Autoconf macros at all.)
+#
+# So we provide this file, which has a silly filename so it's always
+# included after everything else. This provides aclocal with the
+# AC_DEFUNs it wants, but when m4 processes it, it doesn't do anything
+# because those macros already exist, or will be overwritten later.
+# We use AC_DEFUN over AU_DEFUN for compatibility with aclocal-1.6.
+#
+# Anytime we withdraw an AC_DEFUN or AU_DEFUN, remember to add it here.
+# Yes, that means every name once taken will need to remain here until
+# we give up compatibility with versions before 1.7, at which point
+# we need to keep only those names which we still refer to.
+
+# This is to help aclocal find these macros, as it can't see m4_define.
+AC_DEFUN([LTOBSOLETE_VERSION], [m4_if([1])])
+
+m4_ifndef([AC_LIBTOOL_LINKER_OPTION], [AC_DEFUN([AC_LIBTOOL_LINKER_OPTION])])
+m4_ifndef([AC_PROG_EGREP], [AC_DEFUN([AC_PROG_EGREP])])
+m4_ifndef([_LT_AC_PROG_ECHO_BACKSLASH], [AC_DEFUN([_LT_AC_PROG_ECHO_BACKSLASH])])
+m4_ifndef([_LT_AC_SHELL_INIT], [AC_DEFUN([_LT_AC_SHELL_INIT])])
+m4_ifndef([_LT_AC_SYS_LIBPATH_AIX], [AC_DEFUN([_LT_AC_SYS_LIBPATH_AIX])])
+m4_ifndef([_LT_PROG_LTMAIN], [AC_DEFUN([_LT_PROG_LTMAIN])])
+m4_ifndef([_LT_AC_TAGVAR], [AC_DEFUN([_LT_AC_TAGVAR])])
+m4_ifndef([AC_LTDL_ENABLE_INSTALL], [AC_DEFUN([AC_LTDL_ENABLE_INSTALL])])
+m4_ifndef([AC_LTDL_PREOPEN], [AC_DEFUN([AC_LTDL_PREOPEN])])
+m4_ifndef([_LT_AC_SYS_COMPILER], [AC_DEFUN([_LT_AC_SYS_COMPILER])])
+m4_ifndef([_LT_AC_LOCK], [AC_DEFUN([_LT_AC_LOCK])])
+m4_ifndef([AC_LIBTOOL_SYS_OLD_ARCHIVE], [AC_DEFUN([AC_LIBTOOL_SYS_OLD_ARCHIVE])])
+m4_ifndef([_LT_AC_TRY_DLOPEN_SELF], [AC_DEFUN([_LT_AC_TRY_DLOPEN_SELF])])
+m4_ifndef([AC_LIBTOOL_PROG_CC_C_O], [AC_DEFUN([AC_LIBTOOL_PROG_CC_C_O])])
+m4_ifndef([AC_LIBTOOL_SYS_HARD_LINK_LOCKS], [AC_DEFUN([AC_LIBTOOL_SYS_HARD_LINK_LOCKS])])
+m4_ifndef([AC_LIBTOOL_OBJDIR], [AC_DEFUN([AC_LIBTOOL_OBJDIR])])
+m4_ifndef([AC_LTDL_OBJDIR], [AC_DEFUN([AC_LTDL_OBJDIR])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH], [AC_DEFUN([AC_LIBTOOL_PROG_LD_HARDCODE_LIBPATH])])
+m4_ifndef([AC_LIBTOOL_SYS_LIB_STRIP], [AC_DEFUN([AC_LIBTOOL_SYS_LIB_STRIP])])
+m4_ifndef([AC_PATH_MAGIC], [AC_DEFUN([AC_PATH_MAGIC])])
+m4_ifndef([AC_PROG_LD_GNU], [AC_DEFUN([AC_PROG_LD_GNU])])
+m4_ifndef([AC_PROG_LD_RELOAD_FLAG], [AC_DEFUN([AC_PROG_LD_RELOAD_FLAG])])
+m4_ifndef([AC_DEPLIBS_CHECK_METHOD], [AC_DEFUN([AC_DEPLIBS_CHECK_METHOD])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_NO_RTTI], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_NO_RTTI])])
+m4_ifndef([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE], [AC_DEFUN([AC_LIBTOOL_SYS_GLOBAL_SYMBOL_PIPE])])
+m4_ifndef([AC_LIBTOOL_PROG_COMPILER_PIC], [AC_DEFUN([AC_LIBTOOL_PROG_COMPILER_PIC])])
+m4_ifndef([AC_LIBTOOL_PROG_LD_SHLIBS], [AC_DEFUN([AC_LIBTOOL_PROG_LD_SHLIBS])])
+m4_ifndef([AC_LIBTOOL_POSTDEP_PREDEP], [AC_DEFUN([AC_LIBTOOL_POSTDEP_PREDEP])])
+m4_ifndef([LT_AC_PROG_EGREP], [AC_DEFUN([LT_AC_PROG_EGREP])])
+m4_ifndef([LT_AC_PROG_SED], [AC_DEFUN([LT_AC_PROG_SED])])
+m4_ifndef([_LT_CC_BASENAME], [AC_DEFUN([_LT_CC_BASENAME])])
+m4_ifndef([_LT_COMPILER_BOILERPLATE], [AC_DEFUN([_LT_COMPILER_BOILERPLATE])])
+m4_ifndef([_LT_LINKER_BOILERPLATE], [AC_DEFUN([_LT_LINKER_BOILERPLATE])])
+m4_ifndef([_AC_PROG_LIBTOOL], [AC_DEFUN([_AC_PROG_LIBTOOL])])
+m4_ifndef([AC_LIBTOOL_SETUP], [AC_DEFUN([AC_LIBTOOL_SETUP])])
+m4_ifndef([_LT_AC_CHECK_DLFCN], [AC_DEFUN([_LT_AC_CHECK_DLFCN])])
+m4_ifndef([AC_LIBTOOL_SYS_DYNAMIC_LINKER], [AC_DEFUN([AC_LIBTOOL_SYS_DYNAMIC_LINKER])])
+m4_ifndef([_LT_AC_TAGCONFIG], [AC_DEFUN([_LT_AC_TAGCONFIG])])
+m4_ifndef([AC_DISABLE_FAST_INSTALL], [AC_DEFUN([AC_DISABLE_FAST_INSTALL])])
+m4_ifndef([_LT_AC_LANG_CXX], [AC_DEFUN([_LT_AC_LANG_CXX])])
+m4_ifndef([_LT_AC_LANG_F77], [AC_DEFUN([_LT_AC_LANG_F77])])
+m4_ifndef([_LT_AC_LANG_GCJ], [AC_DEFUN([_LT_AC_LANG_GCJ])])
+m4_ifndef([AC_LIBTOOL_RC], [AC_DEFUN([AC_LIBTOOL_RC])])
+m4_ifndef([AC_LIBTOOL_LANG_C_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_C_CONFIG])])
+m4_ifndef([_LT_AC_LANG_C_CONFIG], [AC_DEFUN([_LT_AC_LANG_C_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_CXX_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_CXX_CONFIG])])
+m4_ifndef([_LT_AC_LANG_CXX_CONFIG], [AC_DEFUN([_LT_AC_LANG_CXX_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_F77_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_F77_CONFIG])])
+m4_ifndef([_LT_AC_LANG_F77_CONFIG], [AC_DEFUN([_LT_AC_LANG_F77_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_GCJ_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_GCJ_CONFIG])])
+m4_ifndef([_LT_AC_LANG_GCJ_CONFIG], [AC_DEFUN([_LT_AC_LANG_GCJ_CONFIG])])
+m4_ifndef([AC_LIBTOOL_LANG_RC_CONFIG], [AC_DEFUN([AC_LIBTOOL_LANG_RC_CONFIG])])
+m4_ifndef([_LT_AC_LANG_RC_CONFIG], [AC_DEFUN([_LT_AC_LANG_RC_CONFIG])])
+m4_ifndef([AC_LIBTOOL_CONFIG], [AC_DEFUN([AC_LIBTOOL_CONFIG])])
+m4_ifndef([_LT_AC_FILE_LTDLL_C], [AC_DEFUN([_LT_AC_FILE_LTDLL_C])])
diff --git a/libjava/classpath/m4/ac_prog_antlr.m4 b/libjava/classpath/m4/ac_prog_antlr.m4
new file mode 100644
index 0000000..e2c1078
--- /dev/null
+++ b/libjava/classpath/m4/ac_prog_antlr.m4
@@ -0,0 +1,46 @@
+
+AC_DEFUN([AC_LIB_ANTLR],[
+ AC_MSG_CHECKING([for the ANTLR parser generator JAR file])
+ if test -z "$ANTLR_JAR"; then
+ for antlr_lib_home in `ls -d /usr/local/share/antlr* 2> /dev/null` \
+ /usr/share/antlr/lib /usr/share/java /usr/lib;
+ do
+ if test -f "$antlr_lib_home/antlr.jar"; then
+ ANTLR_JAR="$antlr_lib_home/antlr.jar"
+ break
+ fi
+ done
+ fi
+ test -f $ANTLR_JAR || AC_MSG_ERROR([specified ANTLR jar file $ANTLR_JAR not found.]) \
+ && AC_MSG_RESULT([$ANTLR_JAR])
+ AC_SUBST(ANTLR_JAR)
+ AC_PROVIDE([$0])dnl
+])
+
+AC_DEFUN([AC_PROG_ANTLR],[
+ AC_REQUIRE([AC_PROG_JAVA])dnl
+ AC_CHECK_TOOLS([ANTLR], [cantlr runantlr antlr])
+ if test "x$ANTLR" = x; then
+ if test -z "$JAVA"; then
+ AC_MSG_ERROR(Failed to find either an antlr binary or a suitable Java runtime for ANTLR.)
+ else
+ ANTLR="$JAVA -classpath $ANTLR_JAR antlr.Tool"
+ fi
+ fi
+ AC_SUBST(ANTLR)
+ AC_MSG_CHECKING([for antlr $1.$2.$3 or better])
+ antlr_version_str=`$ANTLR 2>&1 | head -n 1 | sed '/.*Version */!d; s///;q'`
+ if test "$antlr_version_str"; then
+ antlr_version_regex='s/\([[[:digit:]]]\+\)\.\([[[:digit:]]]\+\)\.\([[[:digit:]]]\+\).*$/'
+ antlr_version_major=`echo $antlr_version_str | sed "$antlr_version_regex\\1/"`
+ antlr_version_minor=`echo $antlr_version_str | sed "$antlr_version_regex\\2/"`
+ antlr_version_micro=`echo $antlr_version_str | sed "$antlr_version_regex\\3/"`
+ (test $antlr_version_major -gt $1 || \
+ (test $antlr_version_major -eq $1 && \
+ test $antlr_version_minor -gt $2) || \
+ (test $antlr_version_major -eq $1 && \
+ test $antlr_version_minor -eq $2 && \
+ test $antlr_version_micro -ge $3))
+ fi
+ AC_MSG_RESULT($antlr_version_major.$antlr_version_minor.$antlr_version_micro)
+])
diff --git a/libjava/classpath/m4/ac_prog_java.m4 b/libjava/classpath/m4/ac_prog_java.m4
new file mode 100644
index 0000000..356d99d
--- /dev/null
+++ b/libjava/classpath/m4/ac_prog_java.m4
@@ -0,0 +1,17 @@
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_prog_java.html
+dnl
+dnl Changes for gjdoc: check for "kaffe, gij, java", not only "kaffe, java"
+dnl Changes for GNU Classpath: check for "cacao, jamvm" as well
+dnl
+AC_DEFUN([AC_PROG_JAVA],[
+AC_REQUIRE([AC_EXEEXT])dnl
+if test "x$JAVAPREFIX" = x; then
+ test "x$JAVA" = x && AC_CHECK_PROGS(JAVA, cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT)
+else
+ test "x$JAVA" = x && AC_CHECK_PROGS(JAVA, cacao$EXEEXT jamvm$EXEEXT kaffe$EXEEXT gij$EXEEXT java$EXEEXT, $JAVAPREFIX)
+fi
+test "x$JAVA" = x && AC_MSG_ERROR([no acceptable Java virtual machine found in \$PATH])
+AC_PROG_JAVA_WORKS
+AC_PROVIDE([$0])dnl
+])
diff --git a/libjava/classpath/m4/ac_prog_java_works.m4 b/libjava/classpath/m4/ac_prog_java_works.m4
new file mode 100644
index 0000000..ffde1ff
--- /dev/null
+++ b/libjava/classpath/m4/ac_prog_java_works.m4
@@ -0,0 +1,109 @@
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_prog_java_works.html
+dnl
+AC_DEFUN([AC_PROG_JAVA_WORKS], [
+AC_CHECK_PROG(uudecode, uudecode$EXEEXT, yes)
+if test x$uudecode = xyes; then
+AC_CACHE_CHECK([if uudecode can decode base 64 file], ac_cv_prog_uudecode_base64, [
+dnl /**
+dnl * Test.java: used to test if java compiler works.
+dnl */
+dnl public class Test
+dnl {
+dnl
+dnl public static void
+dnl main( String[] argv )
+dnl {
+dnl System.exit (0);
+dnl }
+dnl
+dnl }
+cat << \EOF > Test.uue
+begin-base64 644 Test.class
+yv66vgADAC0AFQcAAgEABFRlc3QHAAQBABBqYXZhL2xhbmcvT2JqZWN0AQAE
+bWFpbgEAFihbTGphdmEvbGFuZy9TdHJpbmc7KVYBAARDb2RlAQAPTGluZU51
+bWJlclRhYmxlDAAKAAsBAARleGl0AQAEKEkpVgoADQAJBwAOAQAQamF2YS9s
+YW5nL1N5c3RlbQEABjxpbml0PgEAAygpVgwADwAQCgADABEBAApTb3VyY2VG
+aWxlAQAJVGVzdC5qYXZhACEAAQADAAAAAAACAAkABQAGAAEABwAAACEAAQAB
+AAAABQO4AAyxAAAAAQAIAAAACgACAAAACgAEAAsAAQAPABAAAQAHAAAAIQAB
+AAEAAAAFKrcAErEAAAABAAgAAAAKAAIAAAAEAAQABAABABMAAAACABQ=
+====
+EOF
+if uudecode$EXEEXT Test.uue; then
+ ac_cv_prog_uudecode_base64=yes
+else
+ echo "configure: __oline__: uudecode had trouble decoding base 64 file 'Test.uue'" >&AC_FD_CC
+ echo "configure: failed file was:" >&AC_FD_CC
+ cat Test.uue >&AC_FD_CC
+ ac_cv_prog_uudecode_base64=no
+fi
+rm -f Test.uue])
+fi
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+ rm -f Test.class
+ AC_MSG_WARN([I have to compile Test.class from scratch])
+ if test x$ac_cv_prog_javac_works = xno; then
+ AC_MSG_ERROR([Cannot compile java source. $JAVAC does not work properly])
+ fi
+ if test x$ac_cv_prog_javac_works = x; then
+ AC_PROG_JAVAC
+ fi
+fi
+AC_CACHE_CHECK(if $JAVA works, ac_cv_prog_java_works, [
+JAVA_TEST=Test.java
+CLASS_TEST=Test.class
+TEST=Test
+changequote(, )dnl
+cat << \EOF > $JAVA_TEST
+/* [#]line __oline__ "configure" */
+public class Test {
+public static void main (String args[]) {
+ System.exit (0);
+} }
+EOF
+changequote([, ])dnl
+if test x$ac_cv_prog_uudecode_base64 != xyes; then
+ if AC_TRY_COMMAND($JAVAC $JAVACFLAGS $JAVA_TEST) && test -s $CLASS_TEST; then
+ :
+ else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat $JAVA_TEST >&AC_FD_CC
+ AC_MSG_ERROR(The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?))
+ fi
+fi
+if AC_TRY_COMMAND(CLASSPATH=.:$CLASSPATH $JAVA $JAVAFLAGS $TEST) >/dev/null 2>&1; then
+ ac_cv_prog_java_works=yes
+else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat $JAVA_TEST >&AC_FD_CC
+ AC_MSG_ERROR(The Java VM $JAVA failed (see config.log, check the CLASSPATH?))
+fi
+rm -fr $JAVA_TEST $CLASS_TEST Test.uue
+])
+AC_PROVIDE([$0])dnl
+]
+)
+dnl Available from the GNU Autoconf Macro Archive at:
+dnl http://www.gnu.org/software/ac-archive/htmldoc/ac_try_compile_java.html
+dnl
+AC_DEFUN([AC_TRY_COMPILE_JAVA],[
+AC_REQUIRE([AC_PROG_JAVAC])dnl
+cat << \EOF > Test.java
+/* [#]line __oline__ "configure" */
+ifelse([$1], , , [import $1;])
+public class Test {
+[$2]
+}
+EOF
+if AC_TRY_COMMAND($JAVAC $JAVACFLAGS Test.java) && test -s Test.class
+then
+dnl Don't remove the temporary files here, so they can be examined.
+ ifelse([$3], , :, [$3])
+else
+ echo "configure: failed program was:" >&AC_FD_CC
+ cat Test.java >&AC_FD_CC
+ifelse([$4], , , [ rm -fr Test*
+ $4
+])dnl
+fi
+rm -fr Test*])
diff --git a/libjava/classpath/m4/ac_prog_javac.m4 b/libjava/classpath/m4/ac_prog_javac.m4
index 869c194..0c505da 100644
--- a/libjava/classpath/m4/ac_prog_javac.m4
+++ b/libjava/classpath/m4/ac_prog_javac.m4
@@ -36,12 +36,22 @@ dnl Modified to remove jikes by Andrew John Hughes on 2008-02-11
AC_DEFUN([AC_PROG_JAVAC],[
AC_REQUIRE([AC_EXEEXT])dnl
+ECJ_OPTS="-warn:-deprecation,serial,unusedImport"
+JAVAC_OPTS="-Xlint:unchecked,cast,divzero,empty,finally,overrides"
+GCJ_OPTS="-g"
if test "x$JAVAPREFIX" = x; then
- test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport"] ["javac$EXEEXT -Xlint:unchecked"] "gcj$EXEEXT -C")
+ test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT $ECJ_OPTS"] ["ecj-3.3$EXEEXT $ECJ_OPTS"] ["ecj-3.2$EXEEXT $ECJ_OPTS"] ["javac$EXEEXT $JAVAC_OPTS"] "gcj$EXEEXT -C")
else
- test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.3$EXEEXT -warn:-deprecation,serial,unusedImport"] ["ecj-3.2$EXEEXT -warn:-deprecation,serial,unusedImport"] ["javac$EXEEXT -Xlint:unchecked"] "gcj$EXEEXT -C", $JAVAPREFIX)
+ test "x$JAVAC" = x && AC_CHECK_PROGS(JAVAC, ["ecj$EXEEXT $ECJ_OPTS"] ["ecj-3.3$EXEEXT $ECJ_OPTS"] ["ecj-3.2$EXEEXT $ECJ_OPTS"] ["javac$EXEEXT $JAVAC_OPTS"] "gcj$EXEEXT -C", $JAVAPREFIX)
fi
test "x$JAVAC" = x && AC_MSG_ERROR([no acceptable Java compiler found in \$PATH])
+AC_CACHE_CHECK([if $JAVAC is a version of gcj], ac_cv_prog_javac_is_gcj, [
+if $JAVAC --version | grep gcj > /dev/null; then
+ ac_cv_prog_javac_is_gcj=yes;
+ JAVAC="$JAVAC $GCJ_OPTS";
+fi])
+AC_SUBST(JAVAC_IS_GCJ, $ac_cv_prog_javac_is_gcj)
+AM_CONDITIONAL(GCJ_JAVAC, test x"${JAVAC_IS_GCJ}" = xyes)
dnl GCJ LOCAL
if test "$enable_java_maintainer_mode" = yes; then
AC_PROG_JAVAC_WORKS
diff --git a/libjava/classpath/m4/ac_prog_javac_works.m4 b/libjava/classpath/m4/ac_prog_javac_works.m4
index 827ecc9..a03f476 100644
--- a/libjava/classpath/m4/ac_prog_javac_works.m4
+++ b/libjava/classpath/m4/ac_prog_javac_works.m4
@@ -31,8 +31,12 @@ public class Object
}
}
EOF
-dnl GCJ LOCAL: don't call JAVAC with $JAVACFLAGS -source 1.5 -target 1.5
-if AC_TRY_COMMAND($JAVAC $JAVA_TEST) >/dev/null 2>&1; then
+if test x$JAVAC_IS_GCJ = xyes; then
+ CMD="$JAVAC $JAVACFLAGS -fsource=1.5 -ftarget=1.5 $JAVA_TEST"
+else
+ CMD="$JAVAC $JAVACFLAGS -source 1.5 -target 1.5 $JAVA_TEST"
+fi
+if AC_TRY_COMMAND($CMD) >/dev/null 2>&1; then
ac_cv_prog_javac_works=yes
else
AC_MSG_ERROR([The Java compiler $JAVAC failed (see config.log, check the CLASSPATH?)])
diff --git a/libjava/classpath/m4/acinclude.m4 b/libjava/classpath/m4/acinclude.m4
index 9f98f1c3..65cb8fc 100644
--- a/libjava/classpath/m4/acinclude.m4
+++ b/libjava/classpath/m4/acinclude.m4
@@ -55,18 +55,45 @@ dnl -----------------------------------------------------------
AC_DEFUN([CLASSPATH_WITH_GLIBJ],
[
AC_PATH_PROG(ZIP, zip)
- AC_ARG_WITH([fastjar],
- [AS_HELP_STRING([--with-fastjar=PATH], [define to use a fastjar style tool])],
+
+ AC_MSG_CHECKING(for a jar-like tool)
+ AC_ARG_WITH([jar],
+ [AS_HELP_STRING([--with-jar=PATH], [define to use a jar style tool])],
[
- AC_MSG_CHECKING([for user supplied fastjar])
- FASTJAR=${withval}
- AC_MSG_RESULT([${FASTJAR}])
- ],
- [AC_PATH_PROGS([FASTJAR], [fastjar gjar jar])])
-dnl We disable ZIP by default if we find fastjar.
- if test x"${FASTJAR}" != x; then
- ZIP=""
+ case "${withval}" in
+ yes)
+ JAR=yes
+ ;;
+ no)
+ JAR=no
+ AC_MSG_RESULT(${JAR})
+ ;;
+ *)
+ if test -f "${withval}"; then
+ JAR="${withval}"
+ AC_MSG_RESULT(${JAR})
+ else
+ AC_MSG_RESULT([not found])
+ AC_MSG_ERROR([The jar tool ${withval} was not found.])
+ fi
+ ;;
+ esac
+ ],
+ [
+ JAR=yes
+ ])
+ if test x"${JAR}" = "xyes"; then
+ AC_MSG_RESULT([trying fastjar, gjar and jar])
+ AC_PATH_PROGS([JAR], [fastjar gjar jar])
+ if test x"${RHINO_JAR}" = "xyes"; then
+ AC_MSG_RESULT([not found])
+ fi
+ fi
+ if test x"${JAR}" = "xno" && test x"${ZIP}" = ""; then
+ AC_MSG_ERROR([No zip or jar tool found.])
fi
+ AM_CONDITIONAL(WITH_JAR, test x"${JAR}" != "xno" && test x"${JAR}" != "xyes")
+ AC_SUBST(JAR)
AC_ARG_WITH([glibj],
[AS_HELP_STRING([--with-glibj],[define what to install (zip|flat|both|none|build) [default=zip]])],
@@ -111,7 +138,7 @@ dnl We disable ZIP by default if we find fastjar.
*) AC_MSG_ERROR(bad value ${enableval} for --enable-examples) ;;
esac],
[EXAMPLESDIR="examples"])
- if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
+ if test "x${build_class_files}" = xno; then
EXAMPLESDIR=""
fi
AC_SUBST(EXAMPLESDIR)
@@ -124,7 +151,7 @@ dnl We disable ZIP by default if we find fastjar.
*) AC_MSG_ERROR(bad value ${enableval} for --enable-tools) ;;
esac],
[TOOLSDIR="tools"])
- if test "x${use_zip}" = xno && test "x${install_class_files}" = xno; then
+ if test "x${build_class_files}" = xno; then
TOOLSDIR=""
fi
AC_SUBST(TOOLSDIR)
@@ -155,8 +182,17 @@ AC_DEFUN([CLASSPATH_WITH_GJDOC],
AC_MSG_ERROR("Cannot use ${withval} as gjdoc executable since it doesn't exist"))
fi],
[WITH_GJDOC=no])
-
AM_CONDITIONAL(CREATE_API_DOCS, test "x${WITH_GJDOC}" = xyes)
+ if test "x${WITH_GJDOC}" = xyes; then
+ AC_MSG_CHECKING([version of GJDoc])
+ gjdoc_version=$(${GJDOC} --version|cut -d ' ' -f2)
+ AC_MSG_RESULT(${gjdoc_version})
+ case ${gjdoc_version} in
+ 0.7.9) ;;
+ 0.8*) ;;
+ *) AC_MSG_ERROR([Building documentation requires GJDoc >= 0.7.9, ${gjdoc_version} found.]) ;;
+ esac
+ fi
])
dnl -----------------------------------------------------------
@@ -234,14 +270,16 @@ AC_DEFUN([CLASSPATH_JAVAC_MEM_CHECK],
}
}
EOF
- AC_MSG_CHECKING([whether javac supports -J])
- $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST
- javac_result=$?
- if test "x$javac_result" = "x0"; then
- AC_MSG_RESULT([yes])
- JAVAC_MEM_OPT="-J-Xmx768M"
- else
- AC_MSG_RESULT([no])
+ if test x$JAVAC_IS_GCJ != xyes; then
+ AC_MSG_CHECKING([whether javac supports -J])
+ $JAVAC $JAVACFLAGS -J-Xmx768M -sourcepath '' $JAVA_TEST
+ javac_result=$?
+ if test "x$javac_result" = "x0"; then
+ AC_MSG_RESULT([yes])
+ JAVAC_MEM_OPT="-J-Xmx768M"
+ else
+ AC_MSG_RESULT([no])
+ fi
fi
rm -f $JAVA_TEST $CLASS_TEST
AC_SUBST(JAVAC_MEM_OPT)
diff --git a/libjava/classpath/native/Makefile.in b/libjava/classpath/native/Makefile.in
index eb88748..ea9806e 100644
--- a/libjava/classpath/native/Makefile.in
+++ b/libjava/classpath/native/Makefile.in
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -80,6 +83,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -111,6 +116,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -149,11 +160,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -163,6 +175,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -184,7 +198,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -250,8 +267,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -262,6 +281,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -321,6 +341,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
@CREATE_JNI_LIBRARIES_TRUE@JNIDIR = jni
@CREATE_GTK_PEER_LIBRARIES_TRUE@JAWTDIR = jawt
diff --git a/libjava/classpath/native/fdlibm/Makefile.in b/libjava/classpath/native/fdlibm/Makefile.in
index 172fbed..1fad8eb 100644
--- a/libjava/classpath/native/fdlibm/Makefile.in
+++ b/libjava/classpath/native/fdlibm/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -99,6 +102,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -130,6 +135,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -168,11 +179,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -182,6 +194,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -203,7 +217,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -269,8 +286,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -281,6 +300,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -340,6 +360,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
noinst_LTLIBRARIES = libfdlibm.la
libfdlibm_la_SOURCES = \
diff --git a/libjava/classpath/native/jawt/Makefile.in b/libjava/classpath/native/jawt/Makefile.in
index fbbed4e..705405d 100644
--- a/libjava/classpath/native/jawt/Makefile.in
+++ b/libjava/classpath/native/jawt/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -99,6 +102,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -130,6 +135,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -168,11 +179,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -182,6 +194,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -203,7 +217,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -269,8 +286,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -281,6 +300,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -340,6 +360,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libjawt.la
libjawt_la_SOURCES = jawt.c
diff --git a/libjava/classpath/native/jni/Makefile.am b/libjava/classpath/native/jni/Makefile.am
index f37e738..e8db332 100644
--- a/libjava/classpath/native/jni/Makefile.am
+++ b/libjava/classpath/native/jni/Makefile.am
@@ -32,10 +32,14 @@ if CREATE_XMLJ_LIBRARY
XMLJDIR = xmlj
endif
+if CREATE_GMPBI_LIBRARY
+ GMPDIR = java-math
+endif
+
SUBDIRS = classpath $(JNIDIRS) \
$(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \
- $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR)
-DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
+ $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR) $(GMPDIR)
+DIST_SUBDIRS = classpath java-io java-lang java-math java-net java-nio java-util \
gtk-peer gconf-peer gstreamer-peer qt-peer xmlj midi-alsa \
midi-dssi native-lib
diff --git a/libjava/classpath/native/jni/Makefile.in b/libjava/classpath/native/jni/Makefile.in
index f2aa08e..3d37377 100644
--- a/libjava/classpath/native/jni/Makefile.in
+++ b/libjava/classpath/native/jni/Makefile.in
@@ -50,6 +50,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -80,6 +83,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -111,6 +116,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -149,11 +160,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -163,6 +175,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -184,7 +198,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -250,8 +267,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -262,6 +281,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -321,6 +341,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
@CREATE_CORE_JNI_LIBRARIES_TRUE@JNIDIRS = native-lib java-io java-lang java-net java-nio java-util
@CREATE_ALSA_LIBRARIES_TRUE@ALSADIR = midi-alsa
@@ -330,11 +351,12 @@ vm_classes = @vm_classes@
@CREATE_GCONF_PEER_LIBRARIES_TRUE@CLASSPATH_GCONF_PEER_DIR = gconf-peer
@CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@CLASSPATH_GSTREAMER_PEER_DIR = gstreamer-peer
@CREATE_XMLJ_LIBRARY_TRUE@XMLJDIR = xmlj
+@CREATE_GMPBI_LIBRARY_TRUE@GMPDIR = java-math
SUBDIRS = classpath $(JNIDIRS) \
$(ALSADIR) $(DSSIDIR) $(GTKDIR) $(CLASSPATH_QT_PEER_DIR) $(XMLJDIR) \
- $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR)
+ $(CLASSPATH_GCONF_PEER_DIR) $(CLASSPATH_GSTREAMER_PEER_DIR) $(GMPDIR)
-DIST_SUBDIRS = classpath java-io java-lang java-net java-nio java-util \
+DIST_SUBDIRS = classpath java-io java-lang java-math java-net java-nio java-util \
gtk-peer gconf-peer gstreamer-peer qt-peer xmlj midi-alsa \
midi-dssi native-lib
diff --git a/libjava/classpath/native/jni/classpath/Makefile.in b/libjava/classpath/native/jni/classpath/Makefile.in
index 9aee63f..a2a5b0a 100644
--- a/libjava/classpath/native/jni/classpath/Makefile.in
+++ b/libjava/classpath/native/jni/classpath/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -90,6 +93,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -121,6 +126,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -159,11 +170,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -173,6 +185,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -194,7 +208,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -260,8 +277,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -272,6 +291,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -331,6 +351,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
# Header needed for jawt implementations such as the one found in ../gtk-peer.
diff --git a/libjava/classpath/native/jni/gconf-peer/GConfNativePeer.c b/libjava/classpath/native/jni/gconf-peer/GConfNativePeer.c
index 42986c33..3564f9b 100644
--- a/libjava/classpath/native/jni/gconf-peer/GConfNativePeer.c
+++ b/libjava/classpath/native/jni/gconf-peer/GConfNativePeer.c
@@ -55,8 +55,8 @@
/** Reference count */
static int reference_count = 0;
-/** GConfClient backend */
-static GConfClient *client = NULL;
+/** GConfEngine backend */
+static GConfEngine *engine = NULL;
/** java.util.ArrayList class */
static jclass jlist_class = NULL;
@@ -70,12 +70,10 @@ static jmethodID jlist_add_id = NULL;
/* ***** PRIVATE FUNCTIONS DELCARATION ***** */
/**
- * Gets the reference of the default GConfClient and initialize the
- * the type system.
+ * Gets the reference of the default GConfEngine..
* The client reference should be released with g_object_unref after use.
- * This functions must be called with gdk lock held.
*/
-static void init_gconf_client (void);
+static void init_gconf (void);
/**
* Throws a new runtime exception after a failure, with the given message.
@@ -133,16 +131,14 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache
{
reference_count++;
- gdk_threads_enter ();
- init_gconf_client ();
- gdk_threads_leave ();
+ init_gconf ();
- /* if client is null, there is probably an out of memory */
- if (client == NULL)
+ /* if engine is null, there is probably an out of memory */
+ if (engine == NULL)
{
/* release the string and throw a runtime exception */
throw_exception (env,
- "Unable to initialize GConfClient in native code\n");
+ "Unable to initialize GConfEngine in native code\n");
return;
}
@@ -157,11 +153,11 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_init_1id_1cache
/*
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
- * Method: gconf_client_all_keys
+ * Method: gconf_all_keys
* Signature: (Ljava/lang/String;)Ljava/util/List;
*/
JNIEXPORT jobject JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1all_1keys
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
{
/* TODO: check all the calls to gdk_threads_enter/leave */
@@ -183,9 +179,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys
return NULL;
}
- gdk_threads_enter ();
- entries = gconf_client_all_entries (client, dir, &err);
- gdk_threads_leave ();
+ entries = gconf_engine_all_entries (engine, dir, &err);
if (err != NULL)
{
throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
@@ -235,11 +229,11 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1keys
/*
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
- * Method: gconf_client_all_nodes
+ * Method: gconf_all_nodes
* Signature: (Ljava/lang/String;)Ljava/util/List;
*/
JNIEXPORT jobject JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1all_1nodes
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
{
const char *dir = NULL;
@@ -259,9 +253,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes
return NULL;
}
- gdk_threads_enter ();
- entries = gconf_client_all_dirs (client, dir, &err);
- gdk_threads_leave ();
+ entries = gconf_engine_all_dirs (engine, dir, &err);
if (err != NULL)
{
throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
@@ -311,18 +303,16 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1all_1nodes
/*
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
- * Method: gconf_client_suggest_sync
+ * Method: gconf_suggest_sync
* Signature: ()V
*/
JNIEXPORT void JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1suggest_1sync
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1suggest_1sync
(JNIEnv *env, jclass clazz __attribute__ ((unused)))
{
GError *err = NULL;
- gdk_threads_enter ();
- gconf_client_suggest_sync (client, &err);
- gdk_threads_leave ();
+ gconf_engine_suggest_sync (engine, &err);
if (err != NULL)
{
throw_exception_by_name (env, "java/util/prefs/BackingStoreException",
@@ -334,11 +324,11 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1suggest_1sync
/*
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
- * Method: gconf_client_unset
+ * Method: gconf_unset
* Signature: (Ljava/lang/String;)Z
*/
JNIEXPORT jboolean JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unset
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring key)
{
const char *_key = NULL;
@@ -351,9 +341,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset
return JNI_FALSE;
}
- gdk_threads_enter ();
- result = gconf_client_unset (client, _key, &err);
- gdk_threads_leave ();
+ result = gconf_engine_unset (engine, _key, &err);
if (err != NULL)
{
result = JNI_FALSE;
@@ -368,11 +356,11 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1unset
/*
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
- * Method: gconf_client_get_string
+ * Method: gconf_get_string
* Signature: (Ljava/lang/String;)Ljava/lang/String;
*/
JNIEXPORT jstring JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1get_1string
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring key)
{
const char *_key = NULL;
@@ -386,9 +374,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string
return NULL;
}
- gdk_threads_enter ();
- _value = gconf_client_get_string (client, _key, &err);
- gdk_threads_leave ();
+ _value = gconf_engine_get_string (engine, _key, &err);
JCL_free_cstring (env, key, _key);
if (err != NULL)
{
@@ -407,17 +393,19 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1get_1string
result = (*env)->NewStringUTF (env, _value);
g_free ((gpointer) _value);
}
-
+
+ gconf_engine_suggest_sync (engine, NULL);
+
return result;
}
/*
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
- * Method: gconf_client_set_string
+ * Method: gconf_set_string
* Signature: (Ljava/lang/String;Ljava/lang/String;)Z
*/
JNIEXPORT jboolean JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1set_1string
(JNIEnv *env, jclass clazz __attribute__ ((unused)),
jstring key, jstring value)
{
@@ -435,9 +423,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string
return JNI_FALSE;
}
- gdk_threads_enter ();
- result = gconf_client_set_string (client, _key, _value, &err);
- gdk_threads_leave ();
+ result = gconf_engine_set_string (engine, _key, _value, &err);
if (err != NULL)
{
g_error_free (err);
@@ -453,56 +439,11 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1set_1string
/*
* Class: gnu_java_util_prefs_gconf_GConfNativePeer
- * Method: gconf_client_remove_dir
- * Signature: (Ljava/lang/String;)V
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1remove_1dir
- (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
-{
- const char *dir = NULL;
-
- dir = JCL_jstring_to_cstring (env, node);
- if (dir == NULL)
- return;
-
- gdk_threads_enter ();
- gconf_client_remove_dir (client, dir, NULL);
- gdk_threads_leave ();
-
- JCL_free_cstring (env, node, dir);
-}
-
-/*
- * Class: gnu_java_util_prefs_gconf_GConfNativePeer
- * Method: gconf_client_add_dir
- * Signature: (Ljava/lang/String;)V
- */
-JNIEXPORT void JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1add_1dir
- (JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
-{
- const char *dir = NULL;
-
- dir = JCL_jstring_to_cstring (env, node);
- if (dir == NULL)
- return;
-
- /* ignore errors */
- gdk_threads_enter ();
- gconf_client_add_dir (client, dir, GCONF_CLIENT_PRELOAD_ONELEVEL, NULL);
- gdk_threads_leave ();
-
- JCL_free_cstring (env, node, dir);
-}
-
-/*
- * Class: gnu_java_util_prefs_gconf_GConfNativePeer
- * Method: gconf_client_dir_exists
+ * Method: gconf_dir_exists
* Signature: (Ljava/lang/String;)Z
*/
JNIEXPORT jboolean JNICALL
-Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists
+Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1dir_1exists
(JNIEnv *env, jclass clazz __attribute__ ((unused)), jstring node)
{
const char *dir = NULL;
@@ -514,9 +455,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1client_1dir_1exists
return value;
/* on error return false */
- gdk_threads_enter ();
- value = gconf_client_dir_exists (client, dir, &err);
- gdk_threads_leave ();
+ value = gconf_engine_dir_exists (engine, dir, &err);
if (err != NULL)
value = JNI_FALSE;
@@ -537,10 +476,8 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_finalize_1class
if (reference_count == 0)
{
/* last reference, free all resources and return */
- gdk_threads_enter ();
- g_object_unref (G_OBJECT (client));
- gdk_threads_leave ();
-
+ g_object_unref (G_OBJECT (engine));
+
(*env)->DeleteGlobalRef (env, jlist_class);
jlist_class = NULL;
@@ -572,9 +509,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1escape_1key
return NULL;
}
- gdk_threads_enter ();
escaped = gconf_escape_key (_plain, strlen (_plain));
- gdk_threads_leave ();
JCL_free_cstring (env, plain, _plain);
/* check for NULL, if so prevent string creation */
@@ -606,9 +541,7 @@ Java_gnu_java_util_prefs_gconf_GConfNativePeer_gconf_1unescape_1key
return NULL;
}
- gdk_threads_enter ();
plain = gconf_unescape_key (_escaped, strlen (_escaped));
- gdk_threads_leave ();
JCL_free_cstring (env, escaped, _escaped);
/* check for NULL, if so prevent string creation */
@@ -636,10 +569,9 @@ throw_exception_by_name (JNIEnv *env, const char *name, const char *msg)
JCL_ThrowException (env, name, msg);
}
-static void init_gconf_client (void)
+static void init_gconf (void)
{
- g_type_init ();
- client = gconf_client_get_default ();
+ engine = gconf_engine_get_default ();
}
static gboolean set_jlist_class (JNIEnv *env)
diff --git a/libjava/classpath/native/jni/gconf-peer/Makefile.in b/libjava/classpath/native/jni/gconf-peer/Makefile.in
index 26b2b22..d3163e7 100644
--- a/libjava/classpath/native/jni/gconf-peer/Makefile.in
+++ b/libjava/classpath/native/jni/gconf-peer/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -99,6 +102,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -130,6 +135,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -168,11 +179,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -182,6 +194,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -203,7 +217,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -269,8 +286,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -281,6 +300,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -340,6 +360,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libgconfpeer.la
libgconfpeer_la_SOURCES = GConfNativePeer.c
diff --git a/libjava/classpath/native/jni/gstreamer-peer/Makefile.in b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in
index cecf1ff..3a576a2 100644
--- a/libjava/classpath/native/jni/gstreamer-peer/Makefile.in
+++ b/libjava/classpath/native/jni/gstreamer-peer/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -101,6 +104,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -132,6 +137,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -170,11 +181,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -184,6 +196,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -205,7 +219,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -271,8 +288,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -283,6 +302,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -342,6 +362,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libgstreamerpeer.la
libgstreamerpeer_la_SOURCES = gst_peer.c \
diff --git a/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c b/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c
index 3e32568..e0caa47 100644
--- a/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c
+++ b/libjava/classpath/native/jni/gstreamer-peer/gst_native_pipeline.c
@@ -509,7 +509,7 @@ static jint get_free_space (int fd)
result = GST_DETECTED_PIPE_CAPACITY - result;
-#elif
+#else
g_warning("IMPLEMENT ME!!! - !defined (FIONSPACE), !defined (FIONREAD");
#endif
diff --git a/libjava/classpath/native/jni/gtk-peer/Makefile.in b/libjava/classpath/native/jni/gtk-peer/Makefile.in
index 56d8b80..1941b4e 100644
--- a/libjava/classpath/native/jni/gtk-peer/Makefile.in
+++ b/libjava/classpath/native/jni/gtk-peer/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -137,6 +140,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -168,6 +173,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -206,11 +217,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -220,6 +232,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -241,7 +255,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -307,8 +324,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -319,6 +338,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -378,6 +398,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libgtkpeer.la
diff --git a/libjava/classpath/native/jni/java-io/Makefile.in b/libjava/classpath/native/jni/java-io/Makefile.in
index 6e49428..8423de8 100644
--- a/libjava/classpath/native/jni/java-io/Makefile.in
+++ b/libjava/classpath/native/jni/java-io/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -101,6 +104,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -132,6 +137,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -170,11 +181,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -184,6 +196,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -205,7 +219,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -271,8 +288,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -283,6 +302,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -342,6 +362,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libjavaio.la
libjavaio_la_SOURCES = java_io_VMFile.c \
diff --git a/libjava/classpath/native/jni/java-io/java_io_VMFile.c b/libjava/classpath/native/jni/java-io/java_io_VMFile.c
index e79704f..a15cec7 100644
--- a/libjava/classpath/native/jni/java-io/java_io_VMFile.c
+++ b/libjava/classpath/native/jni/java-io/java_io_VMFile.c
@@ -97,7 +97,7 @@ Java_java_io_VMFile_create (JNIEnv * env,
if (result != CPNATIVE_OK)
{
if (result != EEXIST)
- JCL_ThrowException (env,
+ JCL_ThrowException (env,
"java/io/IOException",
cpnative_getErrorString (result));
JCL_free_cstring (env, name, filename);
@@ -124,12 +124,11 @@ Java_java_io_VMFile_create (JNIEnv * env,
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_canRead (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const char *filename;
- int fd;
int result;
/* Don't use the JCL convert function because it throws an exception
@@ -137,20 +136,18 @@ Java_java_io_VMFile_canRead (JNIEnv * env,
filename = (*env)->GetStringUTFChars (env, name, 0);
if (filename == NULL)
{
- return 0;
+ return JNI_FALSE;
}
- /* The lazy man's way out. We actually do open the file for reading
- briefly to verify it can be done */
- result = cpio_openFile (filename, &fd, CPFILE_FLAG_READ, 0);
+ result = cpio_checkAccess (filename, CPFILE_FLAG_READ);
+
(*env)->ReleaseStringUTFChars (env, name, filename);
if (result != CPNATIVE_OK)
- return 0;
- cpio_closeFile (fd);
+ return JNI_FALSE;
- return 1;
+ return JNI_TRUE;
#else /* not WITHOUT_FILESYSTEM */
- return 0;
+ return JNI_FALSE;
#endif /* not WITHOUT_FILESYSTEM */
}
@@ -166,12 +163,11 @@ Java_java_io_VMFile_canRead (JNIEnv * env,
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_canWrite (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const char *filename;
- int fd;
int result;
/* Don't use the JCL convert function because it throws an exception
@@ -179,27 +175,34 @@ Java_java_io_VMFile_canWrite (JNIEnv * env,
filename = (*env)->GetStringUTFChars (env, name, 0);
if (filename == NULL)
{
- return 0;
+ return JNI_FALSE;
}
- /* The lazy man's way out. We actually do open the file for writing
- briefly to verify it can be done */
- result = cpio_openFile (filename, &fd, CPFILE_FLAG_READWRITE, 0);
+ result = cpio_checkAccess (filename, CPFILE_FLAG_WRITE);
+
(*env)->ReleaseStringUTFChars (env, name, filename);
if (result != CPNATIVE_OK)
{
- return 0;
+ return JNI_FALSE;
}
- cpio_closeFile (fd);
- return 1;
+ return JNI_TRUE;
#else /* not WITHOUT_FILESYSTEM */
- return 0;
+ return JNI_FALSE;
#endif /* not WITHOUT_FILESYSTEM */
}
/*************************************************************************/
+JNIEXPORT jboolean JNICALL
+Java_java_io_VMFile_canWriteDirectory (JNIEnv *env, jclass clazz, jstring path)
+{
+ /* this is only valid on *nix systems */
+ return Java_java_io_VMFile_canWrite(env, clazz, path);
+}
+
+/*************************************************************************/
+
/*
* This method checks to see if we have execute permission on a file.
*
@@ -250,8 +253,8 @@ Java_java_io_VMFile_canExecute (JNIEnv * env,
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_setReadOnly (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const char *filename;
@@ -326,10 +329,10 @@ Java_java_io_VMFile_setWritable (JNIEnv *env,
*/
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_setExecutable (JNIEnv *env,
- jclass clazz __attribute__ ((__unused__)),
- jstring name,
- jboolean executable,
- jboolean ownerOnly)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name,
+ jboolean executable,
+ jboolean ownerOnly)
{
return set_file_permissions (env, name, executable, ownerOnly,
CPFILE_FLAG_EXEC);
@@ -434,8 +437,8 @@ Java_java_io_VMFile_getUsableSpace (JNIEnv *env,
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_exists (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const char *filename;
@@ -471,8 +474,8 @@ Java_java_io_VMFile_exists (JNIEnv * env,
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_isFile (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const char *filename;
@@ -508,8 +511,8 @@ Java_java_io_VMFile_isFile (JNIEnv * env,
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_isDirectory (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const char *filename;
@@ -545,8 +548,8 @@ Java_java_io_VMFile_isDirectory (JNIEnv * env,
JNIEXPORT jlong JNICALL
Java_java_io_VMFile_length (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const char *filename;
@@ -593,8 +596,8 @@ Java_java_io_VMFile_length (JNIEnv * env,
JNIEXPORT jlong JNICALL
Java_java_io_VMFile_lastModified (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const char *filename;
@@ -630,8 +633,8 @@ Java_java_io_VMFile_lastModified (JNIEnv * env,
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_setLastModified (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name, jlong newtime)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name, jlong newtime)
{
#ifndef WITHOUT_FILESYSTEM
const char *filename;
@@ -667,8 +670,8 @@ Java_java_io_VMFile_setLastModified (JNIEnv * env,
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_delete (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const char *filename;
@@ -703,8 +706,8 @@ Java_java_io_VMFile_delete (JNIEnv * env,
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_mkdir (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring name)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const char *pathname;
@@ -739,8 +742,8 @@ Java_java_io_VMFile_mkdir (JNIEnv * env,
JNIEXPORT jboolean JNICALL
Java_java_io_VMFile_renameTo (JNIEnv * env,
- jobject obj __attribute__ ((__unused__)),
- jstring t, jstring d)
+ jclass clazz __attribute__ ((__unused__)),
+ jstring t, jstring d)
{
#ifndef WITHOUT_FILESYSTEM
const char *old_filename, *new_filename;
@@ -783,8 +786,9 @@ Java_java_io_VMFile_renameTo (JNIEnv * env,
*/
JNIEXPORT jobjectArray JNICALL
-Java_java_io_VMFile_list (JNIEnv * env, jobject obj
- __attribute__ ((__unused__)), jstring name)
+Java_java_io_VMFile_list (JNIEnv * env,
+ jclass clazz __attribute__ ((__unused__)),
+ jstring name)
{
#ifndef WITHOUT_FILESYSTEM
const int REALLOC_SIZE = 10;
@@ -991,8 +995,8 @@ maybeGrowBuf (JNIEnv *env, char *buf, int *size, int required)
JNIEXPORT jstring JNICALL
Java_java_io_VMFile_toCanonicalForm (JNIEnv *env,
- jclass class __attribute__ ((__unused__)),
- jstring jpath)
+ jclass class __attribute__ ((__unused__)),
+ jstring jpath)
{
#ifndef WITHOUT_FILESYSTEM
const char *path;
diff --git a/libjava/classpath/native/jni/java-lang/Makefile.in b/libjava/classpath/native/jni/java-lang/Makefile.in
index 1789670..e07e206 100644
--- a/libjava/classpath/native/jni/java-lang/Makefile.in
+++ b/libjava/classpath/native/jni/java-lang/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -115,6 +118,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -146,6 +151,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -184,11 +195,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -198,6 +210,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -219,7 +233,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -285,8 +302,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -297,6 +316,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -356,6 +376,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libjavalang.la libjavalangreflect.la libjavalangmanagement.la
libjavalang_la_SOURCES = java_lang_VMSystem.c \
diff --git a/libjava/classpath/native/jni/java-math/Makefile.am b/libjava/classpath/native/jni/java-math/Makefile.am
new file mode 100644
index 0000000..9bc756b
--- /dev/null
+++ b/libjava/classpath/native/jni/java-math/Makefile.am
@@ -0,0 +1,11 @@
+nativeexeclib_LTLIBRARIES = libjavamath.la
+
+libjavamath_la_SOURCES = gnu_java_math_GMP.c
+
+libjavamath_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
+
+libjavamath_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
+
+AM_LDFLAGS = @CLASSPATH_MODULE@ @GMP_LIBS@
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@
+AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ @GMP_CFLAGS@
diff --git a/libjava/classpath/native/jni/java-math/Makefile.in b/libjava/classpath/native/jni/java-math/Makefile.in
new file mode 100644
index 0000000..832739b
--- /dev/null
+++ b/libjava/classpath/native/jni/java-math/Makefile.in
@@ -0,0 +1,646 @@
+# Makefile.in generated by automake 1.9.6 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005 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 = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = native/jni/java-math
+DIST_COMMON = $(srcdir)/Makefile.am $(srcdir)/Makefile.in
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
+ $(top_srcdir)/../../config/lead-dot.m4 \
+ $(top_srcdir)/../../config/multi.m4 \
+ $(top_srcdir)/../../config/no-executables.m4 \
+ $(top_srcdir)/../../config/override.m4 \
+ $(top_srcdir)/../../config/proginstall.m4 \
+ $(top_srcdir)/../../libtool.m4 \
+ $(top_srcdir)/../../ltoptions.m4 \
+ $(top_srcdir)/../../ltsugar.m4 \
+ $(top_srcdir)/../../ltversion.m4 \
+ $(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
+ $(top_srcdir)/m4/ac_prog_javac.m4 \
+ $(top_srcdir)/m4/ac_prog_javac_works.m4 \
+ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
+ $(top_srcdir)/m4/acinclude.m4 \
+ $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
+ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/lib-ld.m4 $(top_srcdir)/m4/lib-link.m4 \
+ $(top_srcdir)/m4/lib-prefix.m4 $(top_srcdir)/m4/pkg.m4 \
+ $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/include/config.h
+CONFIG_CLEAN_FILES =
+am__vpath_adj_setup = srcdirstrip=`echo "$(srcdir)" | sed 's|.|.|g'`;
+am__vpath_adj = case $$p in \
+ $(srcdir)/*) f=`echo "$$p" | sed "s|^$$srcdirstrip/||"`;; \
+ *) f=$$p;; \
+ esac;
+am__strip_dir = `echo $$p | sed -e 's|^.*/||'`;
+am__installdirs = "$(DESTDIR)$(nativeexeclibdir)"
+nativeexeclibLTLIBRARIES_INSTALL = $(INSTALL)
+LTLIBRARIES = $(nativeexeclib_LTLIBRARIES)
+libjavamath_la_DEPENDENCIES = \
+ $(top_builddir)/native/jni/classpath/jcl.lo
+am_libjavamath_la_OBJECTS = gnu_java_math_GMP.lo
+libjavamath_la_OBJECTS = $(am_libjavamath_la_OBJECTS)
+DEFAULT_INCLUDES = -I. -I$(srcdir) -I$(top_builddir)/include
+depcomp = $(SHELL) $(top_srcdir)/../../depcomp
+am__depfiles_maybe = depfiles
+COMPILE = $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) \
+ $(CPPFLAGS) $(AM_CFLAGS) $(CFLAGS)
+LTCOMPILE = $(LIBTOOL) --tag=CC --mode=compile $(CC) $(DEFS) \
+ $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) \
+ $(AM_CFLAGS) $(CFLAGS)
+CCLD = $(CC)
+LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
+ $(AM_LDFLAGS) $(LDFLAGS) -o $@
+SOURCES = $(libjavamath_la_SOURCES)
+DIST_SOURCES = $(libjavamath_la_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@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+BUILD_CLASS_FILES_FALSE = @BUILD_CLASS_FILES_FALSE@
+BUILD_CLASS_FILES_TRUE = @BUILD_CLASS_FILES_TRUE@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_LIBS = @CAIRO_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@
+CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@
+CLASSPATH_MODULE = @CLASSPATH_MODULE@
+COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@
+CP = @CP@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CREATE_ALSA_LIBRARIES_FALSE = @CREATE_ALSA_LIBRARIES_FALSE@
+CREATE_ALSA_LIBRARIES_TRUE = @CREATE_ALSA_LIBRARIES_TRUE@
+CREATE_API_DOCS_FALSE = @CREATE_API_DOCS_FALSE@
+CREATE_API_DOCS_TRUE = @CREATE_API_DOCS_TRUE@
+CREATE_COLLECTIONS_FALSE = @CREATE_COLLECTIONS_FALSE@
+CREATE_COLLECTIONS_TRUE = @CREATE_COLLECTIONS_TRUE@
+CREATE_CORE_JNI_LIBRARIES_FALSE = @CREATE_CORE_JNI_LIBRARIES_FALSE@
+CREATE_CORE_JNI_LIBRARIES_TRUE = @CREATE_CORE_JNI_LIBRARIES_TRUE@
+CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
+CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
+CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
+CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
+CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
+CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
+CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
+CREATE_GTK_PEER_LIBRARIES_TRUE = @CREATE_GTK_PEER_LIBRARIES_TRUE@
+CREATE_JNI_HEADERS_FALSE = @CREATE_JNI_HEADERS_FALSE@
+CREATE_JNI_HEADERS_TRUE = @CREATE_JNI_HEADERS_TRUE@
+CREATE_JNI_LIBRARIES_FALSE = @CREATE_JNI_LIBRARIES_FALSE@
+CREATE_JNI_LIBRARIES_TRUE = @CREATE_JNI_LIBRARIES_TRUE@
+CREATE_PLUGIN_FALSE = @CREATE_PLUGIN_FALSE@
+CREATE_PLUGIN_TRUE = @CREATE_PLUGIN_TRUE@
+CREATE_QT_PEER_LIBRARIES_FALSE = @CREATE_QT_PEER_LIBRARIES_FALSE@
+CREATE_QT_PEER_LIBRARIES_TRUE = @CREATE_QT_PEER_LIBRARIES_TRUE@
+CREATE_WRAPPERS_FALSE = @CREATE_WRAPPERS_FALSE@
+CREATE_WRAPPERS_TRUE = @CREATE_WRAPPERS_TRUE@
+CREATE_XMLJ_LIBRARY_FALSE = @CREATE_XMLJ_LIBRARY_FALSE@
+CREATE_XMLJ_LIBRARY_TRUE = @CREATE_XMLJ_LIBRARY_TRUE@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATE = @DATE@
+DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+ECJ_JAR = @ECJ_JAR@
+EGREP = @EGREP@
+ENABLE_LOCAL_SOCKETS_FALSE = @ENABLE_LOCAL_SOCKETS_FALSE@
+ENABLE_LOCAL_SOCKETS_TRUE = @ENABLE_LOCAL_SOCKETS_TRUE@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+EXAMPLESDIR = @EXAMPLESDIR@
+EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+FGREP = @FGREP@
+FIND = @FIND@
+FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
+FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GDK_CFLAGS = @GDK_CFLAGS@
+GDK_LIBS = @GDK_LIBS@
+GENINSRC_FALSE = @GENINSRC_FALSE@
+GENINSRC_TRUE = @GENINSRC_TRUE@
+GJDOC = @GJDOC@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
+GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
+INSTALL_CLASS_FILES_FALSE = @INSTALL_CLASS_FILES_FALSE@
+INSTALL_CLASS_FILES_TRUE = @INSTALL_CLASS_FILES_TRUE@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_GLIBJ_ZIP_FALSE = @INSTALL_GLIBJ_ZIP_FALSE@
+INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
+JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
+JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
+JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
+JAVA_MAINTAINER_MODE_TRUE = @JAVA_MAINTAINER_MODE_TRUE@
+JAY = @JAY@
+JAY_SKELETON = @JAY_SKELETON@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDEBUG = @LIBDEBUG@
+LIBICONV = @LIBICONV@
+LIBMAGIC = @LIBMAGIC@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBVERSION = @LIBVERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAINTAINER_MODE_FALSE = @MAINTAINER_MODE_FALSE@
+MAINTAINER_MODE_TRUE = @MAINTAINER_MODE_TRUE@
+MAKEINFO = @MAKEINFO@
+MKDIR = @MKDIR@
+MOC = @MOC@
+MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
+MOZILLA_LIBS = @MOZILLA_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
+PANGOFT2_LIBS = @PANGOFT2_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PATH_TO_ESCHER = @PATH_TO_ESCHER@
+PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGIN_DIR = @PLUGIN_DIR@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+REGEN_PARSERS_FALSE = @REGEN_PARSERS_FALSE@
+REGEN_PARSERS_TRUE = @REGEN_PARSERS_TRUE@
+REMOVE = @REMOVE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
+STRIP = @STRIP@
+TOOLSDIR = @TOOLSDIR@
+USER_JAVAH = @USER_JAVAH@
+USE_ESCHER_FALSE = @USE_ESCHER_FALSE@
+USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
+USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
+USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
+VERSION = @VERSION@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
+XML_CFLAGS = @XML_CFLAGS@
+XML_LIBS = @XML_LIBS@
+XSLT_CFLAGS = @XSLT_CFLAGS@
+XSLT_LIBS = @XSLT_LIBS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DSYMUTIL = @ac_ct_DSYMUTIL@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+ac_ct_LIPO = @ac_ct_LIPO@
+ac_ct_NMEDIT = @ac_ct_NMEDIT@
+ac_ct_OBJDUMP = @ac_ct_OBJDUMP@
+ac_ct_OTOOL = @ac_ct_OTOOL@
+ac_ct_OTOOL64 = @ac_ct_OTOOL64@
+ac_ct_RANLIB = @ac_ct_RANLIB@
+ac_ct_STRIP = @ac_ct_STRIP@
+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@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+datadir = @datadir@
+default_toolkit = @default_toolkit@
+exec_prefix = @exec_prefix@
+glibjdir = @glibjdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localstatedir = @localstatedir@
+lt_ECHO = @lt_ECHO@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+multi_basedir = @multi_basedir@
+nativeexeclibdir = @nativeexeclibdir@
+oldincludedir = @oldincludedir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
+vm_classes = @vm_classes@
+nativeexeclib_LTLIBRARIES = libjavamath.la
+libjavamath_la_SOURCES = gnu_java_math_GMP.c
+libjavamath_la_LIBADD = $(top_builddir)/native/jni/classpath/jcl.lo
+libjavamath_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
+AM_LDFLAGS = @CLASSPATH_MODULE@ @GMP_LIBS@
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@
+AM_CFLAGS = @WARNING_CFLAGS@ @ERROR_CFLAGS@ @GMP_CFLAGS@
+all: all-am
+
+.SUFFIXES:
+.SUFFIXES: .c .lo .o .obj
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh \
+ && exit 0; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu native/jni/java-math/Makefile'; \
+ cd $(top_srcdir) && \
+ $(AUTOMAKE) --gnu native/jni/java-math/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+install-nativeexeclibLTLIBRARIES: $(nativeexeclib_LTLIBRARIES)
+ @$(NORMAL_INSTALL)
+ test -z "$(nativeexeclibdir)" || $(mkdir_p) "$(DESTDIR)$(nativeexeclibdir)"
+ @list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+ if test -f $$p; then \
+ f=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) '$$p' '$(DESTDIR)$(nativeexeclibdir)/$$f'"; \
+ $(LIBTOOL) --mode=install $(nativeexeclibLTLIBRARIES_INSTALL) $(INSTALL_STRIP_FLAG) "$$p" "$(DESTDIR)$(nativeexeclibdir)/$$f"; \
+ else :; fi; \
+ done
+
+uninstall-nativeexeclibLTLIBRARIES:
+ @$(NORMAL_UNINSTALL)
+ @set -x; list='$(nativeexeclib_LTLIBRARIES)'; for p in $$list; do \
+ p=$(am__strip_dir) \
+ echo " $(LIBTOOL) --mode=uninstall rm -f '$(DESTDIR)$(nativeexeclibdir)/$$p'"; \
+ $(LIBTOOL) --mode=uninstall rm -f "$(DESTDIR)$(nativeexeclibdir)/$$p"; \
+ done
+
+clean-nativeexeclibLTLIBRARIES:
+ -test -z "$(nativeexeclib_LTLIBRARIES)" || rm -f $(nativeexeclib_LTLIBRARIES)
+ @list='$(nativeexeclib_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
+libjavamath.la: $(libjavamath_la_OBJECTS) $(libjavamath_la_DEPENDENCIES)
+ $(LINK) -rpath $(nativeexeclibdir) $(libjavamath_la_LDFLAGS) $(libjavamath_la_OBJECTS) $(libjavamath_la_LIBADD) $(LIBS)
+
+mostlyclean-compile:
+ -rm -f *.$(OBJEXT)
+
+distclean-compile:
+ -rm -f *.tab.c
+
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnu_java_math_GMP.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@ DEPDIR=$(DEPDIR) $(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@ DEPDIR=$(DEPDIR) $(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@ DEPDIR=$(DEPDIR) $(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 $(LTLIBRARIES)
+installdirs:
+ for dir in "$(DESTDIR)$(nativeexeclibdir)"; do \
+ test -z "$$dir" || $(mkdir_p) "$$dir"; \
+ done
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool clean-nativeexeclibLTLIBRARIES \
+ 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-nativeexeclibLTLIBRARIES
+
+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 uninstall-nativeexeclibLTLIBRARIES
+
+.PHONY: CTAGS GTAGS all all-am check check-am clean clean-generic \
+ clean-libtool clean-nativeexeclibLTLIBRARIES 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-nativeexeclibLTLIBRARIES 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 \
+ uninstall-nativeexeclibLTLIBRARIES
+
+# 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/libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c b/libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c
new file mode 100644
index 0000000..85c2e6b
--- /dev/null
+++ b/libjava/classpath/native/jni/java-math/gnu_java_math_GMP.c
@@ -0,0 +1,1396 @@
+/* gnu_java_math_GMP.c -- Native MPI implemenetation over GNU MP
+ Copyright (C) 2006 Free Software Foundation, Inc.
+
+This file is a part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or (at
+your option) any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+USA
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+#include <limits.h>
+#include <stdio.h>
+#include <stdlib.h>
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif /* HAVE_CONFIG_H */
+
+#include "gnu_java_math_GMP.h"
+#include <jcl.h>
+
+#if defined(HAVE_GMP_H)
+#include <gmp.h>
+#endif /* defined(HAVE_GMP_H) */
+
+#if defined(WITH_GNU_MP)
+#else
+#warning GNU MP not available or wanted!
+#warning Invocation of natXXX() methods will raise an exception
+#endif
+
+/*
+ * This is the implementation of the native BigInteger$NativeMPI methods which
+ * use the GNU MP (GMP) library.
+ *
+ * In all the Java non-statically declared native methods, the second argument,
+ * an instance of jobject, refers to the current NativeMPI instance; i.e.
+ * "this" in Java parlance. The corresponding allocated data structure
+ * representing the GMP's counter-part is pointed-to by the pointer stored in a
+ * transient java field named "native_ptr". The first thing these methods do is
+ * (a) access that field with a JNI GetObjectField() call to obtain the
+ * reference to the gnu.classpath.Pointer subclass instance, then (b) obtain
+ * the native GMP pointer (an mpz_ptr), in order to perform their job; e.g.
+ *
+ * JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr))
+ *
+ * For static methods the second argument, an instance of jclass, is almost
+ * always unused --except when initializing the library, which is the only time
+ * we get hold of the native pointer field.
+ *
+ * This code was written and tested with GNU MP version 4.1.2. More recent
+ * versions of that library offer more operations; e.g. in the implementation
+ * of the method Java_java_math_BigInteger_00024NativeMPI_natFlipBit, mpz_combit()
+ * should be used with GNU MP versions later than 4.2. As a consequence, this
+ * code should be reviewed, from time to time, to use newer features of the GNU
+ * MP library.
+ */
+
+static jfieldID native_ptr;
+
+#ifdef DEBUG
+#define TRACE(msg) fprintf (stderr, "%s(%s:%d) -- %s\n", __FUNCTION__, __FILE__, __LINE__, msg)
+#else
+#define TRACE(msg)
+#endif
+
+#define throw_config_exception(env) JCL_ThrowException (env, "java/lang/Error", "GNU MP was not specified/found by configure")
+
+/*
+ * Initialize the native library. Specifically this method:
+ *
+ * a. Pass NULLs to the mp_set_memory_functions implying that GMP should use
+ * malloc, realloc and free for memory allocation, and if they fail GMP
+ * will print a message to the standard error output and terminates the
+ * program.
+ * b. Find out and store the reference to the NativeMPI class's 'native_ptr'
+ * field. This is done so later in the method invocations we can access that
+ * field and acquire the native value associated with that Pointer instance.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natInitializeLibrary (JNIEnv *env,
+ jclass nativeMPI)
+{
+#if defined(WITH_GNU_MP)
+ TRACE("Loading GMP-based BigInteger native library");
+ mp_set_memory_functions (NULL, NULL, NULL);
+ native_ptr = (*env)->GetFieldID (env, nativeMPI, "native_ptr",
+ "Lgnu/classpath/Pointer;");
+ TRACE("Loaded GMP-based BigInteger native library");
+#else /* !defined(WITH_GNU_MP) */
+ (void) nativeMPI;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * Allocate and initialize the data structure for an instance of a NativeMPI.
+ *
+ * @param this an instance of NativeMPI.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natInitialize(JNIEnv *env, jobject this)
+{
+#if defined(WITH_GNU_MP)
+ mpz_ptr _this;
+
+ TRACE("begin");
+ _this = (mpz_ptr)JCL_malloc (env, sizeof (mpz_t));
+ /* initialize --GMP sets the value to zero. */
+ mpz_init (_this);
+ /* instantiate the Pointer instance for this NativeMPI. */
+ jobject native_ptr_fld = JCL_NewRawDataObject (env, _this);
+ /* ... and assign it to the native_ptr field. */
+ (*env)->SetObjectField (env, this, native_ptr, native_ptr_fld);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * Clear and free the data structure for an instance of a NativeMPI.
+ *
+ * @param this an instance of NativeMPI.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFinalize(JNIEnv *env, jobject this)
+{
+#if defined(WITH_GNU_MP)
+ mpz_ptr _this;
+
+ TRACE("begin");
+ _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ if (_this != NULL)
+ {
+ mpz_clear (_this);
+ free (_this);
+ _this = NULL;
+ }
+ else
+ {
+ TRACE("WARNING: Already cleared + freed");
+ }
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+
+/*
+ * @param this an instance of NativeMPI. On exit, this will have a value of n.
+ * @param n a Java long primitive value.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFromLong(JNIEnv *env, jobject this,
+ jlong n)
+{
+#if defined(WITH_GNU_MP)
+ mpz_ptr _this;
+
+ TRACE("begin");
+ _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ /* the size of jlong (64-bit) is either the same as a long, or that of a long long.
+ * if it's the former, we use as is. */
+ if (sizeof (jlong) == sizeof (long))
+ {
+ mpz_set_si (_this, (signed long)n);
+ }
+ else
+ {
+ /* ...otherwise, we operate on the two halves of the long long, each half
+ * being 32-bit wide. for simplicity, we work with positive
+ * values negating, if necessary, the final outcome.
+ */
+ const int isnegative = n < 0 ? 1 : 0;
+ if (isnegative)
+ {
+ n = -n;
+ }
+ mpz_set_ui (_this, (unsigned long)(((unsigned long long)n) >> 32));
+ mpz_mul_2exp (_this, _this, 32); /* shift left by 32 bits */
+ mpz_add_ui (_this, _this, (unsigned long)n);
+ if (isnegative)
+ {
+ mpz_neg (_this, _this);
+ }
+ }
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) n;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI. On exit, this will have the same
+ * value as x.
+ * @param x an instance of a NativeMPI's Pointer.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFromBI(JNIEnv *env, jobject this,
+ jobject x)
+{
+#if defined(WITH_GNU_MP)
+ mpz_ptr _this;
+ mpz_srcptr _x;
+
+ TRACE("begin");
+ _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ mpz_set (_this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI. On exit, this will have the value
+ * represented by the v Java byte array (in 2's complement with most
+ * significant byte at index position 0). The sign is implied by the
+ * value of the most significant byte.
+ * @param v a Java byte array containing the byte representation, in 2's
+ * complement of the signed value to assign to this.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFromByteArray(JNIEnv *env,
+ jobject this,
+ jbyteArray v)
+{
+#if defined(WITH_GNU_MP)
+ mpz_ptr _this;
+ jbyte *_v;
+ unsigned long b;
+ int vlength, isnegative, i;
+
+ TRACE("begin");
+ _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _v = (*env)->GetByteArrayElements (env, v, NULL);
+ vlength = (*env)->GetArrayLength (env, v);
+ b = (unsigned long)(_v[0] & 0xFF);
+ isnegative = (b > 0x7F) ? 1 : 0;
+ mpz_set_ui (_this, 0);
+ for (i = 0; i < vlength; i++)
+ {
+ mpz_mul_2exp (_this, _this, 8); /* shift left 8 positions. */
+ b = (unsigned long)(_v[i] & 0xFF);
+ b = (isnegative) ? ~b : b;
+ mpz_add_ui (_this, _this, (unsigned long)(b & 0xFF));
+ }
+ (*env)->ReleaseByteArrayElements (env, v, _v, JNI_ABORT);
+ if (isnegative)
+ {
+ mpz_add_ui (_this, _this, 1);
+ mpz_neg (_this, _this);
+ }
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) v;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI. On exit, this will have the value
+ * represented by the s Java string.
+ * @param s a Java string containing, a possibly signed, value to assign to
+ * this.
+ * @param rdx the base in which the symbols, in s, are represented.
+ * @return 0 if the entire string is a valid number in base rdx. Otherwise it
+ * returns -1.
+ *
+ * Implementation note:
+ * While the GMP library is more tolerant in what it accepts as parameter values
+ * for conversions from strings, the BigInteger code, which calls this method,
+ * ensures that the contract described in the RI's documentation is respected;
+ * e.g. no white spaces in the middle, limited valid radix values, etc...
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natFromString(JNIEnv *env,
+ jobject this, jstring s,
+ jint rdx)
+{
+#if defined(WITH_GNU_MP)
+ mpz_ptr _this;
+ const char *_s;
+ int result;
+
+ TRACE("begin");
+ _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _s = (*env)->GetStringUTFChars (env, s, NULL);
+ result = mpz_set_str (_this, _s, (int)rdx);
+ JCL_free_cstring (env, s, _s);
+ TRACE("end");
+ return (result);
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) s;
+ (void) rdx;
+ throw_config_exception(env);
+ return (-1);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI. On exit, this will have the value
+ * represented by the m Java byte array (most significant byte at
+ * index position 0). It will be positive, or negative, depending on
+ * the value of isnegative.
+ * @param m a Java byte array containing the byte representation of the
+ * absolute value (most significant byte being at index position 0)
+ * to assign to this.
+ * @param isnegative true if this should be negative and false if it should
+ * be positive.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFromSignedMagnitude(JNIEnv *env,
+ jobject this,
+ jbyteArray m,
+ jboolean isnegative)
+{
+#if defined(WITH_GNU_MP)
+ mpz_ptr _this;
+ jbyte *_m;
+ int mlength, i;
+
+ TRACE("begin");
+ _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _m = (*env)->GetByteArrayElements (env, m, NULL);
+ mlength = (*env)->GetArrayLength (env, m);
+ mpz_set_ui (_this, 0);
+ for (i = 0; i < mlength; i++)
+ {
+ mpz_mul_2exp (_this, _this, 8);
+ mpz_add_ui (_this, _this, (unsigned long)(_m[i] & 0xFF));
+ }
+ (*env)->ReleaseByteArrayElements (env, m, _m, JNI_ABORT);
+ if (isnegative == JNI_TRUE)
+ {
+ mpz_neg (_this, _this);
+ }
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) m;
+ (void) isnegative;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param n the base in which to represent this.
+ * @return the Java string representing the value of this in base n.
+ */
+JNIEXPORT jstring JNICALL
+Java_gnu_java_math_GMP_natToString(JNIEnv *env, jobject this,
+ jint n)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ char *cstr;
+ jstring result;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ cstr = mpz_get_str (NULL, (int)n, _this);
+ result = (*env)->NewStringUTF (env, cstr);
+ free (cstr);
+ TRACE("end");
+ return (result);
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) n;
+ throw_config_exception(env);
+ return (NULL);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this a non-ZERO instance of NativeMPI.
+ *
+ * output:
+ * @param r a Java byte array which shall contain the byte representation of
+ * this.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natToByteArray(JNIEnv *env,
+ jobject this,
+ jbyteArray r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ mpz_t _w; /* a temporary work mpi */
+ jbyte *_r;
+ int rlength, sign, i;
+ unsigned long b;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _r = (*env)->GetByteArrayElements (env, r, NULL);
+ rlength = (*env)->GetArrayLength (env, r);
+ mpz_init (_w);
+ /* if this is negative set w to its 2's complement otherwise use as is. */
+ sign = mpz_sgn (_this);
+ if (sign == 1)
+ {
+ mpz_set (_w, _this);
+ }
+ else
+ {
+ mpz_neg (_w, _this);
+ mpz_sub_ui (_w, _w, 1);
+ }
+ /* _w SHOULD be >= 0.
+ * start filling the array starting from the least significant byte. */
+ for (i = rlength; --i >= 0; )
+ {
+ b = mpz_tdiv_q_ui (_w, _w, 256);
+ b = (sign == -1) ? ~b : b;
+ _r[i] = (unsigned long)(b & 0xFF);
+ }
+ (*env)->ReleaseByteArrayElements (env, r, _r, JNI_COMMIT);
+ /* if _w > 0 the byte array was short. */
+ if (mpz_cmp_ui (_w, 0) > 0)
+ {
+ TRACE("WARNING: byte array is too short");
+ }
+ mpz_clear (_w);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @return the "int" value (least significant 32 bits) of the absolute value
+ * of this NativeMPI. The calling code MUST handle the sign. We do
+ * this so we can use the same method when computing the "long" value
+ * as well.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natAbsIntValue(JNIEnv *env,
+ jobject this)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ TRACE("end");
+ return ((jint)mpz_get_ui (_this));
+#else /* !defined(WITH_GNU_MP) */
+ (void) s;
+ throw_config_exception(env);
+ return (-1);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @return the, eventually truncated, double value of this NativeMPI.
+ */
+JNIEXPORT jdouble JNICALL
+Java_gnu_java_math_GMP_natDoubleValue(JNIEnv *env,
+ jobject this)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ TRACE("end");
+ return ((jdouble)mpz_get_d (_this));
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ throw_config_exception(env);
+ return (0.0);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this a NativeMPI instance.
+ * @param x an instance of NativeMPI's Pointer.
+ * @return -1, 0, +1 if x is respectively less than, equal to, or greater
+ * than y.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natCompare(JNIEnv *env, jobject this,
+ jobject x)
+{
+#if defined(WITH_GNU_MP)
+ mpz_ptr _this, _x;
+ int res;
+
+ TRACE("begin");
+ _this = (mpz_ptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_ptr)JCL_GetRawData (env, x);
+ res = mpz_cmp (_this, _x);
+ TRACE("end");
+ if (res == 0)
+ return ((jint)0);
+ else if (res < 0)
+ return ((jint)-1);
+ else
+ return ((jint)1);
+#else /* !defined(WITH_GNU_MP) */
+ (void) x;
+ (void) y;
+ throw_config_exception(env);
+ return (0);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this + x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natAdd(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_add (_r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this - x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natSubtract(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_sub (_r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this * x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natMultiply(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_mul (_r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this div x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natQuotient(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_tdiv_q (_r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this mod x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natRemainder(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_tdiv_r (_r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param q a NativeMPI's Pointer such that q = this div x.
+ * @param r a NativeMPI's Pointer such that r = this mod x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natQuotientAndRemainder(JNIEnv *env,
+ jobject this,
+ jobject x,
+ jobject q,
+ jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _q, _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _q = (mpz_ptr)JCL_GetRawData (env, q);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_tdiv_qr (_q, _r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) q;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this mod x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natModulo(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_mod (_r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param n a non-negative number to raise this to.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this ** n.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natPow(JNIEnv *env, jobject this,
+ jint n, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_pow_ui (_r, _this, (unsigned long)n);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) n;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param e an instance of NativeMPI's Pointer.
+ * @param m another instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = (this**e) mod m.
+ *
+ * @throws java.lang.ArithmeticException if e is negative and (1 / this) mod m
+ * has no multiplicative inverse.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natModPow(JNIEnv *env, jobject this,
+ jobject e, jobject m,
+ jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _e, _m;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _e = (mpz_srcptr)JCL_GetRawData (env, e);
+ _m = (mpz_srcptr)JCL_GetRawData (env, m);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ /* the documentation of mpz_powm(rop, b, e, m) states that it: "Set rop to
+ * (b raised to e) modulo m. Negative e is supported if an inverse b^-1 mod m
+ * exists.... If an inverse doesn't exist then a divide by zero is raised."
+ * to work around this case we use the same code as in the pure java class;
+ * i.e.:
+ * if (e.isNegative())
+ * return this.modInverse(m).modPow(e.negate(), m); */
+ if (mpz_sgn (_e) == -1)
+ {
+ mpz_t _w; /* a temporary work mpi */
+ const int res = mpz_invert (_r, _this, _m);
+ if (res == 0)
+ {
+ JCL_ThrowException (env, "java/lang/ArithmeticException",
+ "No multiplicative inverse modulo the designated number exists");
+ }
+ mpz_init (_w);
+ mpz_neg (_w, _e);
+ mpz_powm (_r, _r, _w, _m);
+ mpz_clear (_w);
+ }
+ else
+ {
+ mpz_powm (_r, _this, _e, _m);
+ }
+
+ while (mpz_sgn (_r) == -1)
+ {
+ mpz_add (_r, _r, _m);
+ }
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) e;
+ (void) m;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param m an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = (1 / this) mod m.
+ * @throws java.lang.ArithmeticException if (1 / this) mod m has no
+ * multiplicative inverse.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natModInverse(JNIEnv *env,
+ jobject this,
+ jobject m, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _m;
+ mpz_ptr _r;
+ int res;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _m = (mpz_srcptr)JCL_GetRawData (env, m);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ res = mpz_invert (_r, _this, _m);
+ if (res == 0)
+ {
+ JCL_ThrowException (env, "java/lang/ArithmeticException",
+ "No multiplicative inverse modulo the designated number exists");
+ }
+
+ while (mpz_sgn (_r) == -1)
+ {
+ mpz_add (_r, _r, _m);
+ }
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r is the GCD of this and x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natGCD(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_gcd (_r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param n number of Miller-Rabin tests to conduct.
+ * @return 2 if this is definitely prime. Returns 1 if this is probably prime
+ * (without being certain). Finally, returns 0 if this is definitely
+ * composite.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natTestPrimality(JNIEnv *env,
+ jobject this, jint n)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ TRACE("end");
+ return ((jint)mpz_probab_prime_p (_this, (int)n));
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) n;
+ throw_config_exception(env);
+ return (0);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param n the non-negative number of positions to shift right this by.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this * 2**n.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natShiftLeft(JNIEnv *env, jobject this,
+ jint n, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_mul_2exp (_r, _this, (unsigned long)n);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) n;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param n the non-negative number of positions to shift left this by.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = floor(this / 2**n).
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natShiftRight(JNIEnv *env,
+ jobject this, jint n,
+ jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_fdiv_q_2exp (_r, _this, (unsigned long)n);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) n;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @return the 0-based index of the lowest significant bit set (to 1) in this.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natLowestSetBit(JNIEnv *env,
+ jobject this)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ TRACE("end");
+ return ((jint)mpz_scan1 (_this, 0));
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ throw_config_exception(env);
+ return (-1);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = abs(x).
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natAbs(JNIEnv *env, jobject this,
+ jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_abs (_r, _this);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = -x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natNegate(JNIEnv *env, jobject this,
+ jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_neg (_r, _this);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @return the number of bits needed to represent this.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natBitLength(JNIEnv *env, jobject this)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ TRACE("end");
+ return ((jint)mpz_sizeinbase (_this, 2));
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ throw_config_exception(env);
+ return (-1);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI. It MUST be >= ZERO.
+ * @return the number of bits set (to 1) in this.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natSetBitCount(JNIEnv *env,
+ jobject this)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ mpz_ptr _bi;
+ unsigned long res = 0;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ switch (mpz_sgn (_this))
+ {
+ case -1:
+ /* initialize --GMP sets the value to zero. */
+ _bi = (mpz_ptr)JCL_malloc (env, sizeof (mpz_t));
+ mpz_init (_bi);
+ mpz_neg (_bi, _this);
+ res = mpz_popcount (_bi);
+ mpz_clear (_bi);
+ free (_bi);
+ break;
+ case 0:
+ res = 0;
+ break;
+ case 1:
+ res = mpz_popcount (_this);
+ default:
+ JCL_ThrowException (env, "java/lang/Error",
+ "Unexpected sign value for a native MPI");
+ }
+ TRACE("end");
+ return ((jint)res);
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ throw_config_exception(env);
+ return (ULONG_MAX);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this ^ x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natXor(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_xor (_r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this | x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natOr(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_ior (_r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this & x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natAnd(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_and (_r, _this, _x);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param x an instance of NativeMPI's Pointer.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = this & ~x.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natAndNot(JNIEnv *env, jobject this,
+ jobject x, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this, _x;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _x = (mpz_srcptr)JCL_GetRawData (env, x);
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_com (_r, _x);
+ mpz_and (_r, _this, _r);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) x;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param n the 0-based index position of the bit to flip in this. n MUST be
+ * greater than, or equal to 0.
+ *
+ * output:
+ * @param r a copy of this NativeMPI's Pointer with its n-th bit flipped.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natFlipBit(JNIEnv *env, jobject this,
+ jint n, jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_set (_r, _this);
+ /* GNU MP versions earlier than 4.2 do not define this method:
+ * mpz_combit (_r, (unsigned long)n); */
+ if (mpz_tstbit (_r, (unsigned long)n) == 1)
+ {
+ mpz_clrbit (_r, (unsigned long)n);
+ }
+ else
+ {
+ mpz_setbit (_r, (unsigned long)n);
+ }
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) n;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param n the 0-based index position of the bit to test in this. n MUST be
+ * greater than, or equal to 0.
+ * @return +1, or -1 depending on whether the n-th bit in this is set or not
+ * respectively.
+ */
+JNIEXPORT jint JNICALL
+Java_gnu_java_math_GMP_natTestBit(JNIEnv *env, jobject this,
+ jint n)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ TRACE("end");
+ return ((jint)mpz_tstbit (_this, (unsigned long)n));
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) n;
+ throw_config_exception(env);
+ return (-1);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ * @param n the 0-based index position of the bit to set, or clear, in this.
+ * n MUST be greater than, or equal to 0.
+ * @param setIt if true, then the n-th bit in this will be set, otherwise it
+ * will be cleared.
+ *
+ * output:
+ * @param r a copy of this NativeMPI's Pointer with its n-th bit set or cleared
+ * as requested.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natSetBit(JNIEnv *env, jobject this,
+ jint n, jboolean setIt,
+ jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_set (_r, _this);
+ if (setIt == JNI_TRUE)
+ {
+ mpz_setbit (_r, (unsigned long)n);
+ }
+ else
+ {
+ mpz_clrbit (_r, (unsigned long)n);
+ }
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) n;
+ (void) setIt;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
+
+/*
+ * @param this an instance of NativeMPI.
+ *
+ * output:
+ * @param r a NativeMPI's Pointer such that r = ~this.
+ */
+JNIEXPORT void JNICALL
+Java_gnu_java_math_GMP_natNot(JNIEnv *env, jobject this,
+ jobject r)
+{
+#if defined(WITH_GNU_MP)
+ mpz_srcptr _this;
+ mpz_ptr _r;
+
+ TRACE("begin");
+ _this = (mpz_srcptr)JCL_GetRawData (env, (*env)->GetObjectField (env, this, native_ptr));
+ _r = (mpz_ptr)JCL_GetRawData (env, r);
+ mpz_com (_r, _this);
+ TRACE("end");
+#else /* !defined(WITH_GNU_MP) */
+ (void) this;
+ (void) r;
+ throw_config_exception(env);
+#endif /* defined(WITH_GNU_MP) */
+}
diff --git a/libjava/classpath/native/jni/java-net/Makefile.in b/libjava/classpath/native/jni/java-net/Makefile.in
index a4e6442..69390bc 100644
--- a/libjava/classpath/native/jni/java-net/Makefile.in
+++ b/libjava/classpath/native/jni/java-net/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -111,6 +114,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -142,6 +147,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -180,11 +191,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -194,6 +206,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -215,7 +229,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -281,8 +298,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -293,6 +312,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -352,6 +372,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libjavanet.la
@ENABLE_LOCAL_SOCKETS_FALSE@local_sources = gnu_java_net_local_LocalSocketImpl.c
diff --git a/libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c b/libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c
index 73da5ee..6582997 100644
--- a/libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c
+++ b/libjava/classpath/native/jni/java-net/java_net_VMNetworkInterface.c
@@ -1,5 +1,5 @@
/* VMNetworkInterface.c - Native methods for NetworkInterface class
- Copyright (C) 2003, 2005, 2006 Free Software Foundation, Inc.
+ Copyright (C) 2003, 2005, 2006, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -50,11 +50,24 @@ exception statement from your version. */
#include <stdio.h>
#include <string.h>
+#include <net/if.h>
+#include <sys/ioctl.h>
+/* Required on Solaris. */
+#include <unistd.h>
+
+#ifdef HAVE_SYS_SOCKIO_H
+# include <sys/sockio.h>
+#endif
+
#include <jni.h>
#include <jcl.h>
+#include <cpnative.h>
+#include <cpnet.h>
+
#include "java_net_VMNetworkInterface.h"
+int iff_flags(JNIEnv *, jstring, jint *);
static jmethodID java_net_VMNetworkInterface_init;
static jmethodID java_net_VMNetworkInterface_addAddress;
@@ -251,4 +264,136 @@ Java_java_net_VMNetworkInterface_getVMInterfaces (JNIEnv * env,
#endif /* HAVE_IFADDRS_H && HAVE_GETIFADDRS */
}
+int iff_flags(JNIEnv *env, jstring name, jint *flags)
+{
+ struct ifreq iff;
+ const char *iff_name;
+ jint socket;
+ int error, retval;
+
+ if ((error = cpnet_openSocketDatagram(env, &socket, AF_INET)))
+ {
+ return error;
+ }
+
+ iff_name = JCL_jstring_to_cstring(env, name);
+ memset(&iff, 0, sizeof(iff));
+ strcpy(iff.ifr_name, iff_name);
+
+ if (ioctl(socket, SIOCGIFFLAGS, &iff) >= 0)
+ {
+ *flags = (jint) iff.ifr_flags;
+
+ retval = 0;
+ }
+ else
+ {
+ retval = errno;
+ }
+
+ cpnet_close(env, socket);
+
+ JCL_free_cstring(env, name, iff_name);
+
+ return retval;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_java_net_VMNetworkInterface_isUp (JNIEnv *env, jclass class UNUSED,
+ jstring name)
+{
+ jint flags;
+ int error;
+ jboolean retval;
+
+ if ((error = iff_flags(env, name, &flags)))
+ {
+ JCL_ThrowException(env, "java/net/SocketException",
+ cpnative_getErrorString(error));
+
+ retval = JNI_FALSE;
+ }
+ else
+ {
+ retval = (flags & (IFF_UP | IFF_RUNNING))
+ ? JNI_TRUE
+ : JNI_FALSE;
+ }
+
+ return retval;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_java_net_VMNetworkInterface_isPointToPoint (JNIEnv *env,
+ jclass class UNUSED,
+ jstring name)
+{
+ jint flags;
+ int error;
+ jboolean retval;
+
+ if ((error = iff_flags(env, name, &flags)))
+ {
+ JCL_ThrowException(env, "java/net/SocketException",
+ cpnative_getErrorString(error));
+
+ retval = JNI_FALSE;
+ }
+ else
+ {
+ retval = (flags & IFF_POINTOPOINT) ? JNI_TRUE
+ : JNI_FALSE;
+ }
+
+ return retval;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_java_net_VMNetworkInterface_isLoopback (JNIEnv *env,
+ jclass class UNUSED,
+ jstring name)
+{
+ jint flags;
+ int error;
+ jboolean retval;
+
+ if ((error = iff_flags(env, name, &flags)))
+ {
+ JCL_ThrowException(env, "java/net/SocketException",
+ cpnative_getErrorString(error));
+
+ retval = JNI_FALSE;
+ }
+ else
+ {
+ retval = (flags & IFF_LOOPBACK) ? JNI_TRUE : JNI_FALSE;
+ }
+
+ return retval;
+}
+
+JNIEXPORT jboolean JNICALL
+Java_java_net_VMNetworkInterface_supportsMulticast (JNIEnv *env,
+ jclass class UNUSED,
+ jstring name)
+{
+ jint flags;
+ int error;
+ jboolean retval;
+
+ if ((error = iff_flags(env, name, &flags)))
+ {
+ JCL_ThrowException(env, "java/net/SocketException",
+ cpnative_getErrorString(error));
+
+ retval = JNI_FALSE;
+ }
+ else
+ {
+ retval = (flags & IFF_MULTICAST) ? JNI_TRUE : JNI_FALSE;
+ }
+
+ return retval;
+}
+
/* end of file */
diff --git a/libjava/classpath/native/jni/java-net/local.c b/libjava/classpath/native/jni/java-net/local.c
index b7ec6f2..53830f3 100644
--- a/libjava/classpath/native/jni/java-net/local.c
+++ b/libjava/classpath/native/jni/java-net/local.c
@@ -73,27 +73,18 @@ local_create (int stream)
return socket (PF_UNIX, stream ? SOCK_STREAM : SOCK_DGRAM, 0);
}
-static int gcc_sucks = 0;
-
int
local_bind (int fd, const char *addr)
{
struct sockaddr_un saddr;
- /* For some reason, GCC 4.0.1 on Darwin/x86 MODIFIES the `addr'
- pointer in the CALLER's STACK FRAME after calling this function,
- but if we add this statement below, it doesn't! */
- if (gcc_sucks)
- fprintf (stderr, "bind %p\n", addr);
-
- if (strlen (addr) > sizeof (saddr.sun_path))
+ if (strlen (addr) >= sizeof (saddr.sun_path))
{
errno = ENAMETOOLONG;
return -1;
}
- strncpy (saddr.sun_path, addr, sizeof (saddr.sun_path));
- saddr.sun_path[sizeof (saddr.sun_path)] = '\0';
+ strcpy (saddr.sun_path, addr);
saddr.sun_family = AF_LOCAL;
return bind (fd, (struct sockaddr *) &saddr, SUN_LEN (&saddr));
diff --git a/libjava/classpath/native/jni/java-nio/Makefile.in b/libjava/classpath/native/jni/java-nio/Makefile.in
index fc40353..150b968 100644
--- a/libjava/classpath/native/jni/java-nio/Makefile.in
+++ b/libjava/classpath/native/jni/java-nio/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -109,6 +112,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -140,6 +145,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -178,11 +189,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -192,6 +204,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -213,7 +227,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -279,8 +296,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -291,6 +310,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -350,6 +370,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libjavanio.la
libjavanio_la_SOURCES = gnu_java_nio_VMPipe.c \
diff --git a/libjava/classpath/native/jni/java-util/Makefile.in b/libjava/classpath/native/jni/java-util/Makefile.in
index 2e3333f..d847924 100644
--- a/libjava/classpath/native/jni/java-util/Makefile.in
+++ b/libjava/classpath/native/jni/java-util/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -98,6 +101,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -129,6 +134,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -167,11 +178,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -181,6 +193,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -202,7 +216,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -268,8 +285,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -280,6 +299,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -339,6 +359,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libjavautil.la
libjavautil_la_SOURCES = java_util_VMTimeZone.c
diff --git a/libjava/classpath/native/jni/midi-alsa/Makefile.am b/libjava/classpath/native/jni/midi-alsa/Makefile.am
index b8433a1..5ea89f3 100644
--- a/libjava/classpath/native/jni/midi-alsa/Makefile.am
+++ b/libjava/classpath/native/jni/midi-alsa/Makefile.am
@@ -8,6 +8,6 @@ libgjsmalsa_la_LIBADD = -lasound
libgjsmalsa_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
AM_LDFLAGS = @CLASSPATH_MODULE@
-AM_CPPFLAGS = @CLASSPATH_INCLUDES@ `pkg-config --cflags-only-I alsa`
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@ `pkg-config --cflags-only-I alsa`
AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ `pkg-config --cflags-only-other alsa` \
@EXTRA_CFLAGS@
diff --git a/libjava/classpath/native/jni/midi-alsa/Makefile.in b/libjava/classpath/native/jni/midi-alsa/Makefile.in
index 64212aa..c9e96f1 100644
--- a/libjava/classpath/native/jni/midi-alsa/Makefile.in
+++ b/libjava/classpath/native/jni/midi-alsa/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -101,6 +104,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -132,6 +137,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -170,11 +181,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -184,6 +196,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -205,7 +219,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -271,8 +288,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -283,6 +302,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -342,6 +362,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libgjsmalsa.la
libgjsmalsa_la_SOURCES = gnu_javax_sound_midi_alsa_AlsaMidiSequencerDevice.c \
@@ -351,7 +372,7 @@ gnu_javax_sound_midi_alsa_AlsaMidiDeviceProvider.c
libgjsmalsa_la_LIBADD = -lasound
libgjsmalsa_la_LDFLAGS = $(AM_LDFLAGS) -avoid-version
AM_LDFLAGS = @CLASSPATH_MODULE@
-AM_CPPFLAGS = @CLASSPATH_INCLUDES@ `pkg-config --cflags-only-I alsa`
+AM_CPPFLAGS = @CLASSPATH_INCLUDES@ `pkg-config --cflags-only-I alsa`
AM_CFLAGS = @WARNING_CFLAGS@ @STRICT_WARNING_CFLAGS@ @ERROR_CFLAGS@ `pkg-config --cflags-only-other alsa` \
@EXTRA_CFLAGS@
diff --git a/libjava/classpath/native/jni/midi-dssi/Makefile.in b/libjava/classpath/native/jni/midi-dssi/Makefile.in
index e478d0f..764f38e 100644
--- a/libjava/classpath/native/jni/midi-dssi/Makefile.in
+++ b/libjava/classpath/native/jni/midi-dssi/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -101,6 +104,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -132,6 +137,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -170,11 +181,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -184,6 +196,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -205,7 +219,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -271,8 +288,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -283,6 +302,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -342,6 +362,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libgjsmdssi.la
libgjsmdssi_la_SOURCES = gnu_javax_sound_midi_dssi_DSSIMidiDeviceProvider.c \
diff --git a/libjava/classpath/native/jni/native-lib/Makefile.in b/libjava/classpath/native/jni/native-lib/Makefile.in
index 535f21b..d1bde49 100644
--- a/libjava/classpath/native/jni/native-lib/Makefile.in
+++ b/libjava/classpath/native/jni/native-lib/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -90,6 +93,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -121,6 +126,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -159,11 +170,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -173,6 +185,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -194,7 +208,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -260,8 +277,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -272,6 +291,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -331,6 +351,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
noinst_LTLIBRARIES = libclasspathnative.la
libclasspathnative_la_SOURCES = cpnet.c \
diff --git a/libjava/classpath/native/jni/qt-peer/Makefile.in b/libjava/classpath/native/jni/qt-peer/Makefile.in
index a045ec1..1c1b8d0 100644
--- a/libjava/classpath/native/jni/qt-peer/Makefile.in
+++ b/libjava/classpath/native/jni/qt-peer/Makefile.in
@@ -54,6 +54,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -116,6 +119,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -147,6 +152,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -185,11 +196,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -199,6 +211,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -220,7 +234,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -286,8 +303,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -298,6 +317,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -357,6 +377,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
noinst_LTLIBRARIES = libqtpeer.la
AM_LDFLAGS = @CLASSPATH_MODULE@ @QT_LIBS@
diff --git a/libjava/classpath/native/jni/xmlj/Makefile.in b/libjava/classpath/native/jni/xmlj/Makefile.in
index fbdca1e..a5b48e1 100644
--- a/libjava/classpath/native/jni/xmlj/Makefile.in
+++ b/libjava/classpath/native/jni/xmlj/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -100,6 +103,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -131,6 +136,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -169,11 +180,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -183,6 +195,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -204,7 +218,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -270,8 +287,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -282,6 +301,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -341,6 +361,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libxmlj.la
libxmlj_la_SOURCES = \
diff --git a/libjava/classpath/native/plugin/Makefile.in b/libjava/classpath/native/plugin/Makefile.in
index 5babda3..d779b74 100644
--- a/libjava/classpath/native/plugin/Makefile.in
+++ b/libjava/classpath/native/plugin/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -98,6 +101,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -129,6 +134,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -167,11 +178,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -181,6 +193,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -202,7 +216,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -268,8 +285,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -280,6 +299,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -339,6 +359,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
nativeexeclib_LTLIBRARIES = libgcjwebplugin.la
libgcjwebplugin_la_SOURCES = gcjwebplugin.cc
diff --git a/libjava/classpath/org/ietf/jgss/Oid.java b/libjava/classpath/org/ietf/jgss/Oid.java
index 7697456..bd01f9c 100644
--- a/libjava/classpath/org/ietf/jgss/Oid.java
+++ b/libjava/classpath/org/ietf/jgss/Oid.java
@@ -67,6 +67,8 @@ MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. */
package org.ietf.jgss;
+import gnu.java.lang.CPStringBuilder;
+
import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.DataInputStream;
@@ -241,7 +243,7 @@ public class Oid
{
if (strOid == null)
{
- StringBuffer buf = new StringBuffer();
+ CPStringBuilder buf = new CPStringBuilder();
for (int i = 0; i < components.length; i++)
{
buf.append(components[i]);
diff --git a/libjava/classpath/org/omg/CORBA/portable/Delegate.java b/libjava/classpath/org/omg/CORBA/portable/Delegate.java
index 2f056ac..6d10244 100644
--- a/libjava/classpath/org/omg/CORBA/portable/Delegate.java
+++ b/libjava/classpath/org/omg/CORBA/portable/Delegate.java
@@ -38,6 +38,8 @@ exception statement from your version. */
package org.omg.CORBA.portable;
+import gnu.java.lang.CPStringBuilder;
+
import org.omg.CORBA.BAD_PARAM;
import org.omg.CORBA.Context;
import org.omg.CORBA.ContextList;
@@ -417,7 +419,7 @@ public abstract class Delegate
if (self instanceof ObjectImpl)
{
ObjectImpl x = (ObjectImpl) self;
- StringBuffer b = new StringBuffer(x.getClass().getName());
+ CPStringBuilder b = new CPStringBuilder(x.getClass().getName());
b.append(": [");
for (int i = 0; i < x._ids().length; i++)
{
diff --git a/libjava/classpath/resource/META-INF/mailcap.default b/libjava/classpath/resource/META-INF/mailcap.default
new file mode 100644
index 0000000..b7bdcd8
--- /dev/null
+++ b/libjava/classpath/resource/META-INF/mailcap.default
@@ -0,0 +1,8 @@
+#
+# Default mailcap entries for GNU JAF
+#
+image/gif;; x-java-view=gnu.javax.activation.viewers.ImageViewer
+image/jpeg;; x-java-view=gnu.javax.activation.viewers.ImageViewer
+image/png;; x-java-view=gnu.javax.activation.viewers.ImageViewer
+text/*;; x-java-view=gnu.javax.activation.viewers.TextViewer
+text/*;; x-java-edit=gnu.javax.activation.viewers.TextEditor
diff --git a/libjava/classpath/resource/META-INF/mimetypes.default b/libjava/classpath/resource/META-INF/mimetypes.default
new file mode 100644
index 0000000..aa87b42
--- /dev/null
+++ b/libjava/classpath/resource/META-INF/mimetypes.default
@@ -0,0 +1,28 @@
+#
+# A simple, old format, mime.types file
+#
+#
+# It would be cool to have this auto-generated by configure.in
+# depending on some dependancy somehow
+#
+text/html html htm
+text/plain txt text
+image/gif gif GIF
+image/ief ief
+image/jpeg jpeg jpg jpe JPG
+image/tiff tiff tif
+image/x-xwindowdump xwd
+application/postscript ai eps ps
+application/rtf rtf
+application/x-tex tex
+application/x-texinfo texinfo texi
+application/x-troff t tr roff
+audio/basic au
+audio/midi midi mid
+audio/x-aifc aifc
+audio/x-aiff aif aiff
+audio/x-mpeg mpeg mpg
+audio/x-wav wav
+video/mpeg mpeg mpg mpe
+video/quicktime qt mov
+video/x-msvideo avi
diff --git a/libjava/classpath/resource/Makefile.in b/libjava/classpath/resource/Makefile.in
index fbf8471..71e9303 100644
--- a/libjava/classpath/resource/Makefile.in
+++ b/libjava/classpath/resource/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -83,6 +86,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -114,6 +119,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -152,11 +163,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -166,6 +178,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -187,7 +201,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -253,8 +270,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -265,6 +284,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -324,6 +344,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
logging_DATA = java/util/logging/logging.properties
loggingdir = $(toolexeclibdir)
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation.properties
index 8bcc77e..5df9ef9 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation.properties
@@ -9,36 +9,36 @@ percent=%
perMill=\u2030
exponential=E
infinity=\u221e
-NaN=\ufffd
+NaN=NaN
minusSign=-
zeroDigit=0
decimalSeparator=.
groupingSeparator=,
digit=#
percentFormat=#,##0%
-currencyFormat=\u00a4 #,##0.00;-\u00a4 #,##0.00
-localPatternChars=GyMdkHmsSEDFwWahKzYeugAZ
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+localPatternChars=GyMdkHmsSEDFwWahKzYeugAZvcL
currenciesDisplayName.INR=INR
currenciesDisplayName.JPY=JPY
currenciesDisplayName.ITL=ITL
currenciesDisplayName.EUR=EUR
currenciesDisplayName.GBP=GBP
+currenciesDisplayName.BRL=BRL
currenciesDisplayName.USD=USD
-currenciesSymbol.INR==0#Rs.|1#Re.|1<Rs.
-currenciesSymbol.JPY=\u00a5
-currenciesSymbol.ITL=\u20a4
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.JPY=JP\u00a5
+currenciesSymbol.ITL=IT\u20a4
currenciesSymbol.EUR=\u20ac
-currenciesSymbol.GBP=\u00a3
-currenciesSymbol.USD=$
-shortMonths=1®2®3®4®5®6®7®8®9®10®11®12®®
-months=1®2®3®4®5®6®7®8®9®10®11®12®®
-shortWeekdays=®1®2®3®4®5®6®7®
-weekdays=®1®2®3®4®5®6®7®
-minNumberOfDaysInFirstWeek=1
-firstDayOfWeek=sun
-eras=BCE®CE®
-ampms=AM®PM®
-shortDateFormat=yy/MM/dd
+currenciesSymbol.GBP=UK\u00a3
+currenciesSymbol.BRL=R$
+currenciesSymbol.USD=US$
+shortMonths=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+weekdays=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yyyy-MM-dd
mediumDateFormat=yyyy MMM d
longDateFormat=yyyy MMMM d
fullDateFormat=EEEE, yyyy MMMM dd
@@ -46,3 +46,4 @@ shortTimeFormat=HH:mm
mediumTimeFormat=HH:mm:ss
longTimeFormat=HH:mm:ss z
fullTimeFormat=HH:mm:ss z
+zoneStrings=Marshall_Islands\u00ae\u00aeMHT\u00ae\u00ae\u00ae\u00a9Shevchenko\u00ae\u00aeSHET\u00ae\u00aeSHEST\u00ae\u00a9Bangladesh\u00ae\u00aeBDT\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00ae\u00aeACWST\u00ae\u00aeACWDT\u00ae\u00a9Marquesas\u00ae\u00aeMART\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00ae\u00aeCIT\u00ae\u00ae\u00ae\u00a9America_Eastern\u00ae\u00aeEST\u00ae\u00aeEDT\u00ae\u00a9China\u00ae\u00aeCST (CN)\u00ae\u00aeCDT (CN)\u00ae\u00a9Omsk\u00ae\u00aeOMST\u00ae\u00aeOMSST\u00ae\u00a9Guyana\u00ae\u00aeGYT\u00ae\u00ae\u00ae\u00a9Uzbekistan\u00ae\u00aeUZT\u00ae\u00aeUZST\u00ae\u00a9Uruguay\u00ae\u00aeUYT\u00ae\u00aeUYST\u00ae\u00a9Kazakhstan_Eastern\u00ae\u00aeEKST\u00ae\u00ae\u00ae\u00a9Karachi\u00ae\u00aeKART\u00ae\u00ae\u00ae\u00a9Tbilisi\u00ae\u00aeTBIT\u00ae\u00aeTBIST\u00ae\u00a9Tashkent\u00ae\u00aeTAST\u00ae\u00aeTASST\u00ae\u00a9Changbai\u00ae\u00aeCHAT\u00ae\u00ae\u00ae\u00a9Chatham\u00ae\u00aeCHAST\u00ae\u00aeCHADT\u00ae\u00a9South_Georgia\u00ae\u00aeGST (GS)\u00ae\u00ae\u00ae\u00a9French_Guiana\u00ae\u00aeGFT\u00ae\u00ae\u00ae\u00a9Frunze\u00ae\u00aeFRUT\u00ae\u00aeFRUST\u00ae\u00a9Europe_Eastern\u00ae\u00aeEET\u00ae\u00aeEEST\u00ae\u00a9Greenland_Eastern\u00ae\u00aeEGT\u00ae\u00aeEGST\u00ae\u00a9Dacca\u00ae\u00aeDACT\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u00aeDUST\u00ae\u00aeDUSST\u00ae\u00a9Chile\u00ae\u00aeCLT\u00ae\u00aeCLST\u00ae\u00a9Europe_Central\u00ae\u00aeCET\u00ae\u00aeCEST\u00ae\u00a9Acre\u00ae\u00aeACT (Acre)\u00ae\u00aeACST (Acre)\u00ae\u00a9Arabian\u00ae\u00aeAST (SA)\u00ae\u00aeADT (SA)\u00ae\u00a9East_Timor\u00ae\u00aeTLT\u00ae\u00ae\u00ae\u00a9New_Zealand\u00ae\u00aeNZST\u00ae\u00aeNZDT\u00ae\u00a9Indochina\u00ae\u00aeICT\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00ae\u00aeSAST\u00ae\u00ae\u00ae\u00a9Kwajalein\u00ae\u00aeKWAT\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u00aeMST\u00ae\u00aeMDT\u00ae\u00a9DumontDUrville\u00ae\u00aeDDUT\u00ae\u00ae\u00ae\u00a9Tokelau\u00ae\u00aeTKT\u00ae\u00ae\u00ae\u00a9Ecuador\u00ae\u00aeECT\u00ae\u00ae\u00ae\u00a9Hovd\u00ae\u00aeHOVT\u00ae\u00aeHOVST\u00ae\u00a9Africa_Central\u00ae\u00aeCAT\u00ae\u00ae\u00ae\u00a9Phoenix_Islands\u00ae\u00aePHOT\u00ae\u00ae\u00ae\u00a9Armenia\u00ae\u00aeAMT (AM)\u00ae\u00aeAMST (AM)\u00ae\u00a9Tuvalu\u00ae\u00aeTVT\u00ae\u00ae\u00ae\u00a9Sakhalin\u00ae\u00aeSAKT\u00ae\u00aeSAKST\u00ae\u00a9Samara\u00ae\u00aeSAMT\u00ae\u00aeSAMST\u00ae\u00a9Palau\u00ae\u00aePWT\u00ae\u00ae\u00ae\u00a9Kosrae\u00ae\u00aeKOST\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u00aeAHST\u00ae\u00aeAHDT\u00ae\u00a9Pitcairn\u00ae\u00aePNT\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\u00aeCST\u00ae\u00aeCDT\u00ae\u00a9Malaysia\u00ae\u00aeMYT\u00ae\u00ae\u00ae\u00a9Moscow\u00ae\u00aeMSK\u00ae\u00aeMSKS\u00ae\u00a9Vanuatu\u00ae\u00aeVUT\u00ae\u00aeVUST\u00ae\u00a9Kamchatka\u00ae\u00aePETT\u00ae\u00aePETST\u00ae\u00a9Cape_Verde\u00ae\u00aeCVT\u00ae\u00aeCVST\u00ae\u00a9Aqtobe\u00ae\u00aeAQTT (Aqtobe)\u00ae\u00aeAQTST (Aqtobe)\u00ae\u00a9Falkland\u00ae\u00aeFKT\u00ae\u00aeFKST\u00ae\u00a9Peru\u00ae\u00aePET\u00ae\u00aePEST\u00ae\u00a9Argentina\u00ae\u00aeART\u00ae\u00aeARST\u00ae\u00a9Krasnoyarsk\u00ae\u00aeKRAT\u00ae\u00aeKRAST\u00ae\u00a9Qyzylorda\u00ae\u00aeQYZT\u00ae\u00aeQYZST\u00ae\u00a9Tahiti\u00ae\u00aeTAHT\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00ae\u00aeIOT\u00ae\u00ae\u00ae\u00a9GMT\u00ae\u00aeGMT\u00ae\u00ae\u00ae\u00a9Vladivostok\u00ae\u00aeVLAT\u00ae\u00aeVLAST\u00ae\u00a9Atlantic\u00ae\u00aeAST\u00ae\u00aeADT\u00ae\u00a9Truk\u00ae\u00aeTRUT\u00ae\u00ae\u00ae\u00a9Rothera\u00ae\u00aeROTT\u00ae\u00ae\u00ae\u00a9Wallis\u00ae\u00aeWFT\u00ae\u00ae\u00ae\u00a9Syowa\u00ae\u00aeSYOT\u00ae\u00ae\u00ae\u00a9Korea\u00ae\u00aeKST\u00ae\u00aeKDT\u00ae\u00a9Ashkhabad\u00ae\u00aeASHT\u00ae\u00aeASHST\u00ae\u00a9Australia_Western\u00ae\u00aeAWST\u00ae\u00aeAWDT\u00ae\u00a9Gilbert_Islands\u00ae\u00aeGILT\u00ae\u00ae\u00ae\u00a9Seychelles\u00ae\u00aeSCT\u00ae\u00ae\u00ae\u00a9Cocos\u00ae\u00aeCCT\u00ae\u00ae\u00ae\u00a9Venezuela\u00ae\u00aeVET\u00ae\u00ae\u00ae\u00a9Solomon\u00ae\u00aeSBT\u00ae\u00ae\u00ae\u00a9Paraguay\u00ae\u00aePYT\u00ae\u00aePYST\u00ae\u00a9Yakutsk\u00ae\u00aeYAKT\u00ae\u00aeYAKST\u00ae\u00a9Azerbaijan\u00ae\u00aeAZT\u00ae\u00aeAZST\u00ae\u00a9Kizilorda\u00ae\u00aeKIZT\u00ae\u00aeKIZST\u00ae\u00a9Yukon\u00ae\u00aeYST\u00ae\u00aeYDT\u00ae\u00a9Dutch_Guiana\u00ae\u00aeNEGT\u00ae\u00ae\u00ae\u00a9Yerevan\u00ae\u00aeYERT\u00ae\u00aeYERST\u00ae\u00a9Turkmenistan\u00ae\u00aeTMT\u00ae\u00aeTMST\u00ae\u00a9Newfoundland\u00ae\u00aeNST\u00ae\u00aeNDT\u00ae\u00a9Africa_Eastern\u00ae\u00aeEAT\u00ae\u00ae\u00ae\u00a9Wake\u00ae\u00aeWAKT\u00ae\u00ae\u00ae\u00a9Pakistan\u00ae\u00aePKT\u00ae\u00aePKST\u00ae\u00a9Singapore\u00ae\u00aeSGT\u00ae\u00ae\u00ae\u00a9Europe_Western\u00ae\u00aeWET\u00ae\u00aeWEST\u00ae\u00a9Kuybyshev\u00ae\u00aeKUYT\u00ae\u00aeKUYST\u00ae\u00a9India\u00ae\u00aeIST\u00ae\u00ae\u00ae\u00a9Chamorro\u00ae\u00aeChST\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00ae\u00aeWGT\u00ae\u00aeWGST\u00ae\u00a9Bolivia\u00ae\u00aeBOT\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u00aeWIT\u00ae\u00ae\u00ae\u00a9Galapagos\u00ae\u00aeGALT\u00ae\u00ae\u00ae\u00a9Iran\u00ae\u00aeIRST\u00ae\u00aeIRDT\u00ae\u00a9Suriname\u00ae\u00aeSRT\u00ae\u00ae\u00ae\u00a9Vostok\u00ae\u00aeVOST\u00ae\u00ae\u00ae\u00a9Papua_New_Guinea\u00ae\u00aePGT\u00ae\u00ae\u00ae\u00a9Malaya\u00ae\u00aeMALT\u00ae\u00ae\u00ae\u00a9Bering\u00ae\u00aeBST (Bering)\u00ae\u00aeBDT (Bering)\u00ae\u00a9Mawson\u00ae\u00aeMAWT\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u00aeGET\u00ae\u00aeGEST\u00ae\u00a9Kyrgystan\u00ae\u00aeKGT\u00ae\u00ae\u00ae\u00a9French_Southern\u00ae\u00aeTFT\u00ae\u00ae\u00ae\u00a9Ponape\u00ae\u00aePONT\u00ae\u00ae\u00ae\u00a9Christmas\u00ae\u00aeCXT\u00ae\u00ae\u00ae\u00a9Lanka\u00ae\u00aeLKT\u00ae\u00ae\u00ae\u00a9Philippines\u00ae\u00aePHT\u00ae\u00aePHST\u00ae\u00a9Argentina_Western\u00ae\u00aeWART\u00ae\u00ae\u00ae\u00a9Volgograd\u00ae\u00aeVOLT\u00ae\u00aeVOLST\u00ae\u00a9Hong_Kong\u00ae\u00aeHKT\u00ae\u00aeHKST\u00ae\u00a9Kazakhstan_Western\u00ae\u00aeWKST\u00ae\u00ae\u00ae\u00a9Guam\u00ae\u00aeGST (GU)\u00ae\u00ae\u00ae\u00a9Amazon\u00ae\u00aeAMT\u00ae\u00aeAMST\u00ae\u00a9Pierre_Miquelon\u00ae\u00aePMST\u00ae\u00aePMDT\u00ae\u00a9Niue\u00ae\u00aeNUT\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u00aeTRT\u00ae\u00aeTRST\u00ae\u00a9Nepal\u00ae\u00aeNPT\u00ae\u00ae\u00ae\u00a9Cook\u00ae\u00aeCKT\u00ae\u00aeCKHST\u00ae\u00a9Macau\u00ae\u00aeMOT\u00ae\u00aeMOST\u00ae\u00a9Mauritius\u00ae\u00aeMUT\u00ae\u00ae\u00ae\u00a9Cuba\u00ae\u00aeCST (CU)\u00ae\u00aeCDT (CU)\u00ae\u00a9Lord_Howe\u00ae\u00aeLHST\u00ae\u00aeLHDT\u00ae\u00a9Tonga\u00ae\u00aeTOT\u00ae\u00aeTOST\u00ae\u00a9Maldives\u00ae\u00aeMVT\u00ae\u00ae\u00ae\u00a9Mongolia\u00ae\u00aeULAT\u00ae\u00aeULAST\u00ae\u00a9Norfolk\u00ae\u00aeNFT\u00ae\u00ae\u00ae\u00a9Anadyr\u00ae\u00aeANAT\u00ae\u00aeANAST\u00ae\u00a9Irkutsk\u00ae\u00aeIRKT\u00ae\u00aeIRKST\u00ae\u00a9Indonesia_Eastern\u00ae\u00aeEIT\u00ae\u00ae\u00ae\u00a9Myanmar\u00ae\u00aeMMT\u00ae\u00ae\u00ae\u00a9Reunion\u00ae\u00aeRET\u00ae\u00ae\u00ae\u00a9Gulf\u00ae\u00aeGST\u00ae\u00ae\u00ae\u00a9Afghanistan\u00ae\u00aeAFT\u00ae\u00ae\u00ae\u00a9Kashgar\u00ae\u00aeKAST\u00ae\u00ae\u00ae\u00a9Brunei\u00ae\u00aeBNT\u00ae\u00ae\u00ae\u00a9Novosibirsk\u00ae\u00aeNOVT\u00ae\u00aeNOVST\u00ae\u00a9Brasilia\u00ae\u00aeBRT\u00ae\u00aeBRST\u00ae\u00a9Line_Islands\u00ae\u00aeLINT\u00ae\u00ae\u00ae\u00a9America_Pacific\u00ae\u00aePST\u00ae\u00aePDT\u00ae\u00a9Hawaii_Aleutian\u00ae\u00aeHST\u00ae\u00ae\u00ae\u00a9Samarkand\u00ae\u00aeSAMT (Samarkand)\u00ae\u00aeSAMST (Samarkand)\u00ae\u00a9Australia_Central\u00ae\u00aeACST\u00ae\u00aeACDT\u00ae\u00a9Long_Shu\u00ae\u00aeLONT\u00ae\u00ae\u00ae\u00a9Fiji\u00ae\u00aeFJT\u00ae\u00aeFJST\u00ae\u00a9Israel\u00ae\u00aeIST (IL)\u00ae\u00aeIDT\u00ae\u00a9Yekaterinburg\u00ae\u00aeYEKT\u00ae\u00aeYEKST\u00ae\u00a9Easter\u00ae\u00aeEAST\u00ae\u00aeEASST\u00ae\u00a9Almaty\u00ae\u00aeALMT\u00ae\u00aeALMST\u00ae\u00a9Sverdlovsk\u00ae\u00aeSVET\u00ae\u00aeSVEST\u00ae\u00a9Africa_Western\u00ae\u00aeWAT\u00ae\u00aeWAST\u00ae\u00a9Samoa\u00ae\u00aeSST\u00ae\u00ae\u00ae\u00a9Bhutan\u00ae\u00aeBTT\u00ae\u00ae\u00ae\u00a9Uralsk\u00ae\u00aeURAT\u00ae\u00aeURAST\u00ae\u00a9Alaska\u00ae\u00aeAKST\u00ae\u00aeAKDT\u00ae\u00a9Urumqi\u00ae\u00aeURUT\u00ae\u00ae\u00ae\u00a9Colombia\u00ae\u00aeCOT\u00ae\u00aeCOST\u00ae\u00a9Aktyubinsk\u00ae\u00aeAKTT\u00ae\u00aeAKTST\u00ae\u00a9Nauru\u00ae\u00aeNRT\u00ae\u00ae\u00ae\u00a9North_Mariana\u00ae\u00aeMPT\u00ae\u00ae\u00ae\u00a9Magadan\u00ae\u00aeMAGT\u00ae\u00aeMAGST\u00ae\u00a9Tajikistan\u00ae\u00aeTJT\u00ae\u00ae\u00ae\u00a9Choibalsan\u00ae\u00aeCHOT\u00ae\u00aeCHOST\u00ae\u00a9New_Caledonia\u00ae\u00aeNCT\u00ae\u00aeNCST\u00ae\u00a9Azores\u00ae\u00aeAZOT\u00ae\u00aeAZOST\u00ae\u00a9Aqtau\u00ae\u00aeAQTT (Aqtau)\u00ae\u00aeAQTST (Aqtau)\u00ae\u00a9Baku\u00ae\u00aeBAKT\u00ae\u00aeBAKST\u00ae\u00a9Australia_Eastern\u00ae\u00aeAEST\u00ae\u00aeAEDT\u00ae\u00a9Davis\u00ae\u00aeDAVT\u00ae\u00ae\u00ae\u00a9Gambier\u00ae\u00aeGAMT\u00ae\u00ae\u00ae\u00a9Noronha\u00ae\u00aeFNT\u00ae\u00aeFNST\u00ae\u00a9Greenland_Central\u00ae\u00aeCGT\u00ae\u00aeCGST\u00ae\u00a9Japan\u00ae\u00aeJST\u00ae\u00aeJDT\u00ae\u00a9Borneo\u00ae\u00aeBORT\u00ae\u00aeBORST\u00ae\u00a9
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa.properties
index ca40f9b..e090033 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa.properties
@@ -5,6 +5,7 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.INR=Indian Rupee
currenciesDisplayName.JPY=Japanese Yen
currenciesDisplayName.RUB=Russian Ruble
@@ -13,32 +14,31 @@ currenciesDisplayName.GBP=British Pound Sterling
currenciesDisplayName.EUR=Euro
currenciesDisplayName.USD=US Dollar
currenciesDisplayName.BRL=Brazilian Real
+currenciesSymbol.ETB=Br
currenciesSymbol.DJF=FD
-currenciesSymbol.ERN=$
-currenciesSymbol.USD=US$
-shortMonths=Qun®Nah®Cig®Agd®Cax®Qas®Qad®Leq®Way®Dit®Xim®Kax®®
-months=Qunxa Garablu®Naharsi Kudo®Ciggilta Kudo®Agda Baxisso®Caxah Alsa®Qasa Dirri®Qado Dirri®Leqeeni®Waysu®Diteli®Ximoli®Kaxxa Garablu®®
-shortWeekdays=®Aca®Etl®Tal®Arb®Kam®Gum®Sab®
-weekdays=®Acaada®Etleeni®Talaata®Arbaqa®Kamiisi®Gumqata®Sabti®
-firstDayOfWeek=sat
-eras=Yaasuusuk Duma®Yaasuusuk Wadir®
-ampms=saaku®carra®
+currenciesSymbol.ERN=Nfk
+shortMonths=Qun\u00aeNah\u00aeCig\u00aeAgd\u00aeCax\u00aeQas\u00aeQad\u00aeLeq\u00aeWay\u00aeDit\u00aeXim\u00aeKax\u00ae\u00ae
+months=Qunxa Garablu\u00aeKudo\u00aeCiggilta Kudo\u00aeAgda Baxis\u00aeCaxah Alsa\u00aeQasa Dirri\u00aeQado Dirri\u00aeLiiqen\u00aeWaysu\u00aeDiteli\u00aeXimoli\u00aeKaxxa Garablu\u00ae\u00ae
+shortWeekdays=\u00aeAca\u00aeEtl\u00aeTal\u00aeArb\u00aeKam\u00aeGum\u00aeSab\u00ae
+weekdays=\u00aeAcaada\u00aeEtleeni\u00aeTalaata\u00aeArbaqa\u00aeKamiisi\u00aeGumqata\u00aeSabti\u00ae
+eras=Yaasuusuk Duma\u00aeYaasuusuk Wadir\u00ae
+ampms=saaku\u00aecarra\u00ae
shortDateFormat=dd/MM/yy
mediumDateFormat=dd-MMM-yyyy
longDateFormat=dd MMMM yyyy
fullDateFormat=EEEE, MMMM dd, yyyy
shortTimeFormat=h:mm a
mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.FR=France
territories.DJ=Yabuuti
territories.IN=India
territories.CN=China
-territories.ET=Otobbia
territories.DE=Germany
-territories.GB=United Kingdom
+territories.ET=Otobbia
territories.ER=Eretria
+territories.GB=United Kingdom
territories.BR=Brazil
territories.RU=Russia
territories.JP=Japan
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_DJ.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_DJ.properties
index 2000d94..fcde5e2 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_DJ.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_DJ.properties
@@ -5,4 +5,6 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ETB=ETB
+currenciesSymbol.ERN=$
+months=\u00aeNaharsi Kudo\u00ae\u00aeAgda Baxisso\u00ae\u00ae\u00ae\u00aeLeqeeni\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER.properties
index 2f6445f..4271bbbd 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER.properties
@@ -5,5 +5,5 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
-months=®Kudo®®Agda Baxis®®®®Liiqen®®®®®®
+currenciesSymbol.ETB=ETB
+currenciesSymbol.ERN=$
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties
index 12ee51e..5399d6c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties
@@ -5,5 +5,5 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortWeekdays=®Nab®San®Sal®Rab®Cam®Jum®Qun®
-weekdays=®Naba Sambat®Sani®Salus®Rabuq®Camus®Jumqata®Qunxa Sambat®
+shortWeekdays=\u00aeNab\u00aeSan\u00aeSal\u00aeRab\u00aeCam\u00aeJum\u00aeQun\u00ae
+weekdays=\u00aeNaba Sambat\u00aeSani\u00aeSalus\u00aeRabuq\u00aeCamus\u00aeJumqata\u00aeQunxa Sambat\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_af.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_af.properties
index cae9284..fd99f45 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_af.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_af.properties
@@ -7,142 +7,397 @@
decimalSeparator=,
groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesDisplayName.ITL=Italiaanse lier
+currenciesDisplayName.NAD=Namibiese dollar
+currenciesDisplayName.JPY=Japannese jen
+currenciesDisplayName.RUB=Roebel
currenciesDisplayName.ZAR=Rand
+currenciesDisplayName.TRL=Ou Turkse lier
+currenciesDisplayName.CHF=Switserse frank
+currenciesDisplayName.BRL=Reaal
+currenciesDisplayName.CNY=Joean
+currenciesDisplayName.USD=Amerikaanse dollar
+currenciesDisplayName.XXX=Onbekende of ongeldige geldeenheid
+currenciesDisplayName.EUR=Euro
+currenciesDisplayName.TRY=Turkse lier
+currenciesDisplayName.GBP=Britse pond
currenciesSymbol.ZAR=R
-shortMonths=Jan®Feb®Mar®Apr®Mei®Jun®Jul®Aug®Sep®Okt®Nov®Des®®
-months=Januarie®Februarie®Maart®April®Mei®Junie®Julie®Augustus®September®Oktober®November®Desember®®
-shortWeekdays=®So®Ma®Di®Wo®Do®Vr®Sa®
-weekdays=®Sondag®Maandag®Dinsdag®Woensdag®Donderdag®Vrydag®Saterdag®
-eras=v.C.®n.C.®
-ampms=vm.®nm.®
-territories.AU=Australi\u00eb
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMei\u00aeJun\u00aeJul\u00aeAug\u00aeSep\u00aeOkt\u00aeNov\u00aeDes\u00ae\u00ae
+months=Januarie\u00aeFebruarie\u00aeMaart\u00aeApril\u00aeMei\u00aeJunie\u00aeJulie\u00aeAugustus\u00aeSeptember\u00aeOktober\u00aeNovember\u00aeDesember\u00ae\u00ae
+shortWeekdays=\u00aeSo\u00aeMa\u00aeDi\u00aeWo\u00aeDo\u00aeVr\u00aeSa\u00ae
+weekdays=\u00aeSondag\u00aeMaandag\u00aeDinsdag\u00aeWoensdag\u00aeDonderdag\u00aeVrydag\u00aeSaterdag\u00ae
+eras=v.C.\u00aen.C.\u00ae
+ampms=vm.\u00aenm.\u00ae
+shortDateFormat=yyyy/MM/dd
+mediumDateFormat=dd MMM yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+territories.TJ=Tadjikistan
+territories.TH=Thailand
territories.TD=Tsjaad
-territories.AT=Oostenryk
-territories.AR=Argentini\u00eb
territories.GW=Guinee-Bissau
-territories.MZ=Mosambiek
-territories.MY=Maleisi\u00eb
-territories.MX=Meksiko
-territories.AM=Armeni\u00eb
territories.GR=Griekeland
-territories.ZA=Suid-Afrika
-territories.MV=Maldive
-territories.AL=Albani\u00eb
territories.GQ=Ekwatoriaal-Guinee
+territories.SZ=Swaziland
territories.SY=Siri\u00eb
territories.GN=Guinee
-territories.MR=Mouritani\u00eb
territories.GM=Gambi\u00eb
+territories.GL=Groenland
territories.SV=Salvador
-territories.AG=Antigua en Barbuda
-territories.AF=Afganistan
territories.ST=Sao Tome en Principe
-territories.AE=Verenigde Arabiese Emirate
-territories.MN=Mongoli\u00eb
-territories.MK=Macedoni\u00eb
-territories.SO=Somali\u00eb
+territories.061=Polinesi\u00eb
+territories.GH=Ghana
+territories.SR=Suriname
+territories.GF=Frans-Guyana
territories.GE=Georgi\u00eb
-territories.MH=Marshall-eilande
-territories.MG=Madagaskar
+territories.SO=Somali\u00eb
+territories.SN=Senegal
+territories.SM=San Marino
territories.GB=Groot-Brittanje
-territories.SK=Slowakye
+territories.SL=Sierra Leone
territories.GA=Gaboen
+territories.SK=Slowakye
territories.SI=Sloweni\u00eb
territories.SG=Singapoer
-territories.MA=Marokko
territories.SE=Swede
territories.SD=Soedan
territories.SC=Seychelle
territories.SB=Solomon Eilande
territories.SA=Saoedi-Arabi\u00eb
-territories.YE=Jemen
-territories.LY=Libi\u00eb
territories.FR=Frankryk
-territories.LV=Letland
-territories.LU=Luxemburg
-territories.LT=Litaue
-territories.LR=Liberi\u00eb
+territories.FO=Faro\u00ebreilande
territories.FM=Mikronesi\u00eb
+territories.RW=Rwanda
+territories.054=Melanesi\u00eb
+territories.FK=Falklandeilande
+territories.053=Australi\u00eb en Nieu-Seeland
territories.RU=Rusland
territories.FJ=Fidji
+territories.FI=Finland
territories.RO=Roemeni\u00eb
-territories.LB=Libanon
-territories.KZ=Kasakstan
+territories.RE=R\u00e9union
territories.ET=Ethiopi\u00eb
territories.ES=Spanje
-territories.KW=Koeweit
-territories.KR=Suid-Korea
-territories.KP=Noord-Korea
-territories.KN=Saint Kitts en Nevis
territories.EH=Wes-Sahara
-territories.KM=Comore
territories.EG=Egipte
territories.EE=Estland
-territories.KH=Kambodja
-territories.KG=Kirgisi\u00eb
-territories.KE=Kenia
territories.DZ=Algeri\u00eb
territories.QA=Katar
+territories.039=Suid-Europa
territories.DO=Dominikaanse Republiek
+territories.PY=Paraguay
+territories.035=Suidoos-Asi\u00eb
+territories.034=Suid-Asi\u00eb
territories.DK=Denemarke
territories.DJ=Djiboeti
-territories.JO=Jordani\u00eb
-territories.JM=Jamaika
+territories.PT=Portugal
+territories.030=Oos-Asi\u00eb
+territories.PR=Puerto Rico
territories.DE=Duitsland
territories.PL=Pole
-territories.VN=Vi\u00ebtnam
+territories.PK=Pakistan
territories.PH=Filippyne
territories.PG=Papoea Nieu-Guinee
territories.CZ=Tjeggiese Republiek
+territories.PE=Peru
territories.CY=Ciprus
territories.CV=Kaap Verde
+territories.PA=Panama
territories.CU=Kuba
-territories.VC=Saint Vincent en die Grenadine
-territories.CS=Serwi\u00eb
-territories.VA=Vatikaan
-territories.IT=Itali\u00eb
+territories.CS=Serwi\u00eb en Montenegro
+territories.CR=Costa Rica
+territories.029=Karibies
territories.CN=Sjina
-territories.IS=Ysland
territories.CM=Kameroen
territories.CL=Chili
-territories.IQ=Irak
-territories.UZ=Oesbekistan
+territories.021=Noord-Amerika
territories.CI=Ivoorkus
-territories.IN=Indi\u00eb
territories.CH=Switserland
territories.CG=Kongo
territories.CF=Sentraal-Afrikaanse Republiek
-territories.US=Verenigde State van Amerika
+territories.OM=Oman
territories.CA=Kanada
-territories.IE=Ierland
-territories.ID=Indonesi\u00eb
territories.BY=Wit-Rusland
+territories.BW=Botswana
territories.BT=Bhoetan
+territories.BS=Bahamas
territories.BR=Brasili\u00eb
-territories.UA=Oekraine
+territories.019=Amerikas
+territories.018=Suider-Afrika
territories.NZ=Nieu-Seeland
-territories.HU=Hongarye
+territories.017=Midde-Afrika
territories.BO=Bolivi\u00eb
-territories.HT=Ha\u00efti
territories.BN=Broenei
-territories.HR=Kroasi\u00eb
-territories.TZ=Tanzani\u00eb
-territories.NR=Naoeroe
+territories.015=Noord-Afrika
+territories.014=Oos-Afrika
+territories.013=Sentraal-Amerika
+territories.BJ=Benin
+territories.011=Wes-Afrika
+territories.172=Statebond
territories.BH=Bahrein
+territories.NR=Naoeroe
territories.BG=Bulgarye
territories.BF=Boerkina Fasso
-territories.TT=Trinidad en Tobago
-territories.NO=Noorwe\u00eb
territories.BE=Belgi\u00eb
+territories.NO=Noorwe\u00eb
territories.BD=Bangladesj
-territories.TR=Turkye
+territories.ZW=Zimbabwe
territories.NL=Nederland
territories.BA=Bosni\u00eb en Herzegowina
-territories.TN=Tunisi\u00eb
-territories.TM=Turkmeni\u00eb
-territories.TJ=Tadjikistan
-territories.NE=Nigeri\u00eb
+territories.NI=Nicaragua
+territories.NG=Nigeri\u00eb
territories.AZ=Aserbeidjan
+territories.NE=Niger
+territories.NC=Nieu-Kaledoni\u00eb
territories.ZM=Zambi\u00eb
territories.NA=Namibi\u00eb
+territories.AU=Australi\u00eb
+territories.AT=Oostenryk
+territories.AS=Amerikaans Samoa
+territories.AR=Argentini\u00eb
+territories.AQ=Antarktika
+territories.009=Oseani\u00eb
+territories.MZ=Mosambiek
+territories.AO=Angola
+territories.MY=Maleisi\u00eb
+territories.AN=Nederlands-Antille
+territories.MX=Meksiko
+territories.AM=Armeni\u00eb
+territories.005=Suid-Amerika
+territories.AL=Albani\u00eb
+territories.MV=Maldive
+territories.ZA=Suid-Afrika
+territories.MU=Mauritius
+territories.002=Afrika
+territories.MT=Malta
+territories.001=W\u00eareld
+territories.MR=Mouritani\u00eb
+territories.AG=Antigua en Barbuda
+territories.AF=Afganistan
+territories.AE=Verenigde Arabiese Emirate
+territories.MO=Macao
+territories.AD=Andorra
+territories.MN=Mongoli\u00eb
+territories.ML=Mali
+territories.MK=Macedoni\u00eb
+territories.MH=Marshall-eilande
+territories.MG=Madagaskar
+territories.MC=Monaco
+territories.MA=Marokko
+territories.YE=Jemen
+territories.LY=Libi\u00eb
+territories.LV=Letland
+territories.155=Wes-Europa
+territories.LU=Luxemburg
+territories.154=Noord-Europa
+territories.LT=Litaue
+territories.LS=Lesotho
+territories.LR=Liberi\u00eb
+territories.151=Oos-Europa
+territories.150=Europa
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LB=Libanon
+territories.LA=Laos
+territories.KZ=Kasakstan
+territories.KY=Kaaimanseilande
+territories.KW=Koeweit
+territories.145=Wes-Asi\u00eb
+territories.143=Sentraal-Asi\u00eb
+territories.142=Asi\u00eb
+territories.KR=Suid-Korea
+territories.KP=Noord-Korea
+territories.KN=Saint Kitts en Nevis
+territories.KM=Comore
+territories.WS=Samoa
+territories.KH=Kambodja
+territories.KG=Kirgisi\u00eb
+territories.KE=Kenia
+territories.JP=Japan
+territories.JO=Jordani\u00eb
+territories.JM=Jamaika
+territories.VN=Vi\u00ebtnam
+territories.VE=Venezuela
+territories.VC=Saint Vincent en die Grenadine
+territories.VA=Vatikaan
+territories.IT=Itali\u00eb
+territories.IS=Ysland
+territories.IR=Iran
+territories.IQ=Irak
+territories.UZ=Oesbekistan
+territories.IN=Indi\u00eb
+territories.IL=Israel
+territories.US=Verenigde State van Amerika
+territories.IE=Ierland
+territories.ID=Indonesi\u00eb
+territories.UG=Uganda
+territories.UA=Oekraine
+territories.HU=Hongarye
+territories.HT=Ha\u00efti
+territories.HR=Kroasi\u00eb
+territories.TZ=Tanzani\u00eb
+territories.TW=Taiwan
+territories.HK=Hongkong
+territories.TT=Trinidad en Tobago
+territories.TR=Turkye
+territories.TO=Tonga
+territories.TN=Tunisi\u00eb
+territories.TM=Turkmeni\u00eb
+languages.la=Latyn
+languages.xh=Xhosa
+languages.ky=Kirgisies
+languages.kw=Kornies
+languages.ku=Koerdies
+languages.ko=Koreaans
+languages.kn=Kannada
+languages.km=Khmer
+languages.grc=Antieke Grieks
+languages.art=Ander Kunsmatig
+languages.ka=Georgies
+languages.gem=Ander Germaans
+languages.afa=Ander Afro-Asiaties
+languages.jv=Javaans
+languages.arc=Aramees
+languages.cel=Ander Kelties
+languages.sco=Skots
+languages.ja=Japannees
+languages.vi=Vi\u00ebtnamees
+languages.ve=Venda
+languages.it=Italiaans
+languages.is=Yslands
+languages.uz=Oesbekies
+languages.ur=Oerdoe
+languages.ie=Interlingue
+languages.id=Indonesies
+languages.hit=Hetities
+languages.ia=Interlingua
+languages.uk=Oekra\u00efens
+languages.ug=Uighoers
+languages.hy=Armeens
+languages.und=Onbepaald
+languages.phn=Fenisies
+languages.got=Goties
+languages.hu=Hongaars
+languages.hr=Kroaties
+languages.fil=Filippyns
+languages.tw=Twi
+languages.hi=Hindi
+languages.ts=Tsonga
+languages.tr=Turks
+languages.cop=Kopties
+languages.he=Hebreeus
+languages.tn=Tswana
+languages.tk=Turkmeens
+languages.ti=Tigrinya
+languages.th=Thais
+languages.te=Telugees
+languages.mas=Masai
+languages.gv=Manx
+languages.ta=Tamil
+languages.gu=Gujarati
+languages.ine=Ander Indo-Europees
+languages.gn=Guarani
+languages.sw=Swahili
+languages.gl=Galicies
+languages.sv=Sweeds
+languages.su=Soedanees
+languages.st=Suid-Sotho
+languages.ss=Swazi
+languages.sr=Serwies
+languages.nso=Sepedi
+languages.sq=Albanees
+languages.so=Somalies
+languages.gd=Skots-Gaelies
+languages.sn=Shona
+languages.sl=Sloweens
+languages.ga=Iers
+languages.sk=Slowaaks
+languages.si=Singalees
+languages.sh=Serwo-Kroaties
+languages.fy=Fries
+languages.sd=Sindhi
+languages.sa=Sanskrit
+languages.fr=Frans
+languages.sla=Ander Slawies
+languages.fo=Faro\u00ebes
+languages.ru=Russies
+languages.fj=Fidjiaans
+languages.fi=Fins
+languages.ro=Roemeens
+languages.fa=Persies
+languages.nl_BE=Vlaams
+languages.es_419=Latyns-Amerikaanse Spaans
+languages.eu=Baskies
+languages.et=Estnies
+languages.es=Spaans
+languages.eo=Esperanto
+languages.en=Engels
+languages.el=Grieks
+languages.pt=Portugees
+languages.pt_BR=Brasiliaanse Portugees
+languages.ber=Berbers
+languages.ps=Pasjtoe
+languages.de=Duits
+languages.pl=Pools
+languages.da=Deens
+languages.cy=Wallies
+languages.pa=Pandjabi
+languages.cu=Kerkslawies
+languages.cs=Tsjeggies
+languages.or=Oria
+languages.ca=Katalaans
+languages.mul=Veelvuldige tale
+languages.oc=Occitaans
+languages.bs=Bosnies
+languages.br=Bretons
+languages.zh_Hans=Vereenvoudigde Sjinees
+languages.bn=Bengaals
+languages.zh_Hant=Tradisionele Sjinees
+languages.bh=Bihari
+languages.nr=Suid-Ndebele
+languages.bg=Bulgaars
+languages.be=Wit-Russies
+languages.no=Noors
+languages.nn=Noorweegse Nynorsk
+languages.nl=Nederlands
+languages.zu=Zoeloe
+languages.sgn=Gebaretaal
+languages.khi=Ander Khoi-San
+languages.az=Aserbeidjaans
+languages.ne=Nepalees
+languages.nd=Noord-Ndebele
+languages.as=Assamees
+languages.ar=Arabies
+languages.zh=Sjinees
+languages.my=Birmaans
+languages.am=Amharies
+languages.mt=Maltees
+languages.ms=Maleisies
+languages.chr=Cherokees
+languages.mr=Mahratti
languages.af=Afrikaans
+languages.mn=Mongalees
+languages.ml=Malabaars
+languages.bnt=Bantoe
+languages.mk=Macedonies
+languages.mg=Malgassies
+languages.egy=Antieke Egipties
+languages.tlh=Klingon
+languages.yi=Jiddisj
+languages.bat=Ander Balties
+languages.lv=Letties
+languages.lt=Litaus
+languages.lo=Laotanees
+languages.ln=Lingala
+languages.li=Limburgs
+languages.sem=Ander Semities
+languages.kru=kru
+variants.1901=Tradisionele Duitse ortografie
+variants.1996=Duitse ortografie van 1996
+variants.REVISED=Hersiene ortografie
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties
new file mode 100644
index 0000000..2f32086
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties
@@ -0,0 +1,16 @@
+# LocaleInformation_af_NA.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+shortDateFormat=yyyy-MM-dd
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ak.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ak.properties
new file mode 100644
index 0000000..11fb2a0
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ak.properties
@@ -0,0 +1,23 @@
+# LocaleInformation_ak.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.GHC=Sidi
+currenciesSymbol.GHC=GH\u00a2
+shortMonths=S-\u0186\u00aeK-\u0186\u00aeE-\u0186\u00aeE-O\u00aeE-K\u00aeO-A\u00aeA-K\u00aeD-\u0186\u00aeF-\u0190\u00ae\u0186-A\u00ae\u0186-O\u00aeM-\u0186\u00ae\u00ae
+months=Sanda-\u0186p\u025bp\u0254n\u00aeKwakwar-\u0186gyefuo\u00aeEb\u0254w-\u0186benem\u00aeEb\u0254bira-Oforisuo\u00aeEsusow Aketseaba-K\u0254t\u0254nimba\u00aeObirade-Ay\u025bwohomumu\u00aeAy\u025bwoho-Kitawonsa\u00aeDifuu-\u0186sandaa\u00aeFankwa-\u0190b\u0254\u00ae\u0186b\u025bs\u025b-Ahinime\u00ae\u0186ber\u025bf\u025bw-Obubuo\u00aeMumu-\u0186p\u025bnimba\u00ae\u00ae
+shortWeekdays=\u00aeKwe\u00aeDwo\u00aeBen\u00aeWuk\u00aeYaw\u00aeFia\u00aeMem\u00ae
+weekdays=\u00aeKwesida\u00aeDwowda\u00aeBenada\u00aeWukuda\u00aeYawda\u00aeFida\u00aeMemeneda\u00ae
+eras=AK\u00aeKE\u00ae
+ampms=AN\u00aeEW\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_am.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_am.properties
index e0f5264..2f4a643 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_am.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_am.properties
@@ -5,25 +5,35 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+decimalSeparator=.
+groupingSeparator=,
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
-currenciesDisplayName.EUR=\u12a0\u12cd\u122e
+currenciesDisplayName.EUR=\u12e9\u122e
currenciesDisplayName.ETB=\u12e8\u12a2\u1275\u12ee\u1335\u12eb \u1265\u122d
currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u1295\u12f5 \u1235\u1270\u122d\u120a\u1295\u130d
-currenciesSymbol.ETB=$
+currenciesSymbol.ETB=\u1265\u122d
currenciesSymbol.CNY=Y
currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u1303\u1295\u12e9®\u134c\u1265\u1229®\u121b\u122d\u127d®\u12a4\u1355\u1228®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235®\u1234\u1355\u1274®\u12a6\u12ad\u1270®\u1296\u126c\u121d®\u12f2\u1234\u121d®®
-months=\u1303\u1295\u12e9\u12c8\u122a®\u134c\u1265\u1229\u12c8\u122a®\u121b\u122d\u127d®\u12a4\u1355\u1228\u120d®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235\u1275®\u1234\u1355\u1274\u121d\u1260\u122d®\u12a6\u12ad\u1270\u12cd\u1260\u122d®\u1296\u126c\u121d\u1260\u122d®\u12f2\u1234\u121d\u1260\u122d®®
-shortWeekdays=®\u12a5\u1211\u12f5®\u1230\u129e®\u121b\u12ad\u1230®\u1228\u1261\u12d5®\u1210\u1219\u1235®\u12d3\u122d\u1265®\u1245\u12f3\u121c®
-weekdays=®\u12a5\u1211\u12f5®\u1230\u129e®\u121b\u12ad\u1230\u129e®\u1228\u1261\u12d5®\u1210\u1219\u1235®\u12d3\u122d\u1265®\u1245\u12f3\u121c®
-firstDayOfWeek=sat
-eras=\u12d3/\u12d3®\u12d3/\u121d®
+shortMonths=\u1303\u1295\u12e9\u00ae\u134c\u1265\u1229\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u00ae\u1234\u1355\u1274\u00ae\u12a6\u12ad\u1270\u00ae\u1296\u126c\u121d\u00ae\u12f2\u1234\u121d\u00ae\u00ae
+months=\u1303\u1295\u12e9\u12c8\u122a\u00ae\u134c\u1265\u1229\u12c8\u122a\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u120d\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u1275\u00ae\u1234\u1355\u1274\u121d\u1260\u122d\u00ae\u12a6\u12ad\u1270\u12cd\u1260\u122d\u00ae\u1296\u126c\u121d\u1260\u122d\u00ae\u12f2\u1234\u121d\u1260\u122d\u00ae\u00ae
+shortWeekdays=\u00ae\u12a5\u1211\u12f5\u00ae\u1230\u129e\u00ae\u121b\u12ad\u1230\u00ae\u1228\u1261\u12d5\u00ae\u1210\u1219\u1235\u00ae\u12d3\u122d\u1265\u00ae\u1245\u12f3\u121c\u00ae
+weekdays=\u00ae\u12a5\u1211\u12f5\u00ae\u1230\u129e\u00ae\u121b\u12ad\u1230\u129e\u00ae\u1228\u1261\u12d5\u00ae\u1210\u1219\u1235\u00ae\u12d3\u122d\u1265\u00ae\u1245\u12f3\u121c\u00ae
+eras=\u12d3/\u12d3\u00ae\u12d3/\u121d\u00ae
+ampms=\u1321\u12cb\u1275\u00ae\u12a8\u1233\u12d3\u1275\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=MMM d yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1363 dd MMMM \u1240\u1295 yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=hh:mm:ss a z
+fullTimeFormat=hh:mm:ss a z
territories.TL=\u121d\u1235\u122b\u1245 \u1272\u121e\u122d
territories.TK=\u1276\u12ad\u120b\u12cd
territories.TJ=\u1273\u1303\u12aa\u1235\u1273\u1295
@@ -47,8 +57,8 @@ territories.GM=\u130b\u121d\u1262\u12eb
territories.GL=\u130d\u122a\u1295\u120b\u1295\u12f5
territories.SV=\u12a4\u120d \u1233\u120d\u126b\u12f6\u122d
territories.ST=\u1233\u12a6 \u1276\u121c \u12a5\u1293 \u1355\u122a\u1295\u1232\u1354
-territories.061=\u1356\u120a\u1294\u12e2\u12eb
territories.GI=\u130a\u1265\u122b\u120d\u1273\u122d
+territories.061=\u1356\u120a\u1294\u12e2\u12eb
territories.GH=\u130b\u1293
territories.SR=\u1231\u122a\u1293\u121d
territories.GF=\u12e8\u1348\u1228\u1295\u1233\u12ed \u1309\u12ca\u12a0\u1293
@@ -71,11 +81,13 @@ territories.SC=\u1232\u123c\u120d\u1235
territories.SB=\u1230\u120e\u121e\u1295 \u12f0\u1234\u1275
territories.SA=\u1233\u12cd\u12f5\u12a0\u1228\u1262\u12eb
territories.FR=\u1348\u1228\u1295\u1233\u12ed
-territories.057=\u121a\u12ad\u122e\u1294\u12e2\u12eb
territories.FO=\u12e8\u134b\u122e\u12ed \u12f0\u1234\u1276\u127d
+territories.057=\u121a\u12ad\u122e\u1294\u12e2\u12eb [057]
territories.FM=\u121a\u12ad\u122e\u1294\u12e2\u12eb
territories.RW=\u1229\u12cb\u1295\u12f3
+territories.054=\u121c\u120b\u1294\u1232\u12eb
territories.FK=\u12e8\u134e\u120d\u12ad\u120b\u1295\u12f5 \u12f0\u1234\u1276\u127d
+territories.053=\u12a0\u12cd\u1235\u1275\u122b\u120a\u12eb \u12a5\u1293 \u1292\u12cd \u12da\u120b\u1295\u12f5
territories.RU=\u122b\u123a\u12eb
territories.FJ=\u134a\u1302
territories.FI=\u134a\u1295\u120b\u1295\u12f5
@@ -87,6 +99,7 @@ territories.ER=\u12a4\u122d\u1275\u122b
territories.EH=\u121d\u12d5\u122b\u1263\u12ca \u1233\u1205\u122b
territories.EG=\u130d\u1265\u133d
territories.EE=\u12a4\u1235\u1276\u1292\u12eb
+territories.QO=\u12c8\u1323 \u12eb\u1208 \u12a6\u123d\u1292\u12eb
territories.EC=\u12a2\u12b3\u12f6\u122d
territories.DZ=\u12a0\u120d\u1304\u122a\u12eb
territories.QA=\u12b3\u1273\u122d
@@ -94,11 +107,14 @@ territories.039=\u12f0\u1261\u1263\u12ca \u12a0\u12cd\u122e\u1353
territories.DO=\u12f6\u121a\u1292\u12ad \u122a\u1351\u1265\u120a\u12ad
territories.PY=\u1353\u122b\u1313\u12ed
territories.DM=\u12f6\u121a\u1292\u12ab
+territories.035=\u12f0\u1261\u1265-\u121d\u1225\u122b\u1243\u12ca \u12a5\u1235\u12eb [035]
territories.PW=\u1353\u120b\u12cd
+territories.034=\u121d\u1225\u122b\u1243\u12ca \u12a5\u1235\u12eb
territories.DK=\u12f4\u1295\u121b\u122d\u12ad
territories.DJ=\u1302\u1261\u1272
territories.PT=\u1356\u122d\u1271\u130b\u120d
territories.PS=\u12e8\u134d\u120d\u1235\u1324\u121d \u130d\u12db\u1275
+territories.030=\u12f0\u1261\u1265-\u121d\u1225\u122b\u1243\u12ca \u12a5\u1235\u12eb [030]
territories.PR=\u1356\u122d\u1273 \u122a\u12ae
territories.DE=\u1300\u122d\u1218\u1295
territories.PN=\u1352\u1275\u12ab\u12a2\u122d\u1295
@@ -117,13 +133,14 @@ territories.PA=\u1353\u1293\u121b
territories.CU=\u12a9\u1263
territories.CS=\u1230\u122d\u1262\u12eb
territories.CR=\u12ae\u1235\u1273 \u122a\u12ab
+territories.029=\u12ab\u122a\u1262\u12eb\u1295
territories.CO=\u12ae\u120e\u121d\u1262\u12eb
territories.CN=\u127b\u12ed\u1293
territories.CM=\u12ab\u121c\u1229\u1295
territories.CL=\u127a\u120a
territories.CK=\u12a9\u12ad \u12f0\u1234\u1276\u127d
-territories.CI=\u12ae\u1275 \u12f2\u126f\u122d
territories.021=\u1230\u121c\u1293\u12ca \u12a0\u121c\u122a\u12ab
+territories.CI=\u12ae\u1275 \u12f2\u126f\u122d
territories.CH=\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5
territories.CG=\u12ae\u1295\u1310
territories.CF=\u12e8\u1218\u12ab\u12a8\u1208\u129b\u12cd \u12a0\u134d\u122a\u12ab \u122a\u1350\u1265\u120a\u12ad
@@ -138,18 +155,20 @@ territories.BV=\u12e8\u1266\u12cd\u126c\u1275 \u12f0\u1234\u1275
territories.BT=\u1261\u1205\u1273\u1295
territories.BS=\u1263\u1203\u121b\u1235
territories.BR=\u1265\u122b\u12da\u120d
+territories.019=\u12a0\u121c\u122a\u12ab\u12ce\u127d
territories.018=\u12f0\u1261\u1263\u12ca \u12a0\u134d\u122a\u12ab
territories.NZ=\u1292\u12cd \u12da\u120b\u1295\u12f5
+territories.017=\u1218\u12ab\u12a8\u1208\u129b \u12a0\u134d\u122a\u12ab
territories.BO=\u1266\u120a\u126a\u12eb
-territories.017=Middle \u12a0\u134d\u122a\u12ab
territories.BN=\u1265\u1229\u1292
-territories.BM=\u1264\u122d\u1219\u12f3
territories.015=\u1230\u121c\u1293\u12ca \u12a0\u134d\u122a\u12ab
+territories.BM=\u1264\u122d\u1219\u12f3
territories.014=\u121d\u1235\u122b\u1243\u12ca \u12a0\u134d\u122a\u12ab
+territories.013=\u1218\u12ab\u12a8\u1208\u129b \u12a0\u121c\u122a\u12ab [013]
territories.NU=\u1292\u12a1\u12ed
territories.BJ=\u1264\u1292\u1295
-territories.BI=\u1265\u1229\u1295\u12f2
territories.011=\u121d\u12d5\u122b\u1263\u12ca \u12a0\u134d\u122a\u12ab
+territories.BI=\u1265\u1229\u1295\u12f2
territories.BH=\u1263\u1205\u122c\u1295
territories.NR=\u1293\u12a1\u1229
territories.BG=\u1261\u120d\u130c\u122a\u12eb
@@ -167,6 +186,7 @@ territories.NG=\u1293\u12ed\u1304\u122a\u12eb
territories.NF=\u1296\u122d\u134e\u120d\u12ad \u12f0\u1234\u1275
territories.AZ=\u12a0\u12d8\u122d\u1263\u1303\u1295
territories.NE=\u1292\u1300\u122d
+territories.AX=\u12e8\u12a0\u120b\u1295\u12f5 \u12f0\u1234\u1276\u127d
territories.NC=\u1292\u12cd \u12ab\u120c\u12f6\u1292\u12eb
territories.AW=\u12a0\u1229\u1263
territories.ZM=\u12db\u121d\u1262\u12eb
@@ -176,22 +196,23 @@ territories.AT=\u12a6\u1235\u1275\u122a\u12eb
territories.AS=\u12e8\u12a0\u121c\u122a\u12ab \u1233\u121e\u12a0
territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
territories.AQ=\u12a0\u1295\u1273\u122d\u12ad\u1272\u12ab
+territories.009=\u12a6\u123d\u1292\u12eb
territories.MZ=\u121e\u12db\u121d\u1262\u12ad
territories.AO=\u12a0\u1295\u1310\u120b
territories.MY=\u121b\u120c\u12e2\u12eb
territories.AN=\u1294\u12d8\u122d\u120b\u1295\u12f5\u1235 \u12a0\u1295\u1272\u120d\u1235
territories.MX=\u121c\u12ad\u1232\u12ae
-territories.005=\u12f0\u1261\u1263\u12ca \u12a0\u121c\u122a\u12ab
territories.AM=\u12a0\u122d\u121c\u1292\u12eb
+territories.005=\u12f0\u1261\u1263\u12ca \u12a0\u121c\u122a\u12ab
territories.MW=\u121b\u120b\u12ca
territories.AL=\u12a0\u120d\u1263\u1292\u12eb
territories.MV=\u121b\u120d\u12f2\u126d\u1235
territories.ZA=\u12f0\u1261\u1265 \u12a0\u134d\u122a\u12ab
territories.MU=\u121b\u1229\u1238\u1235
-territories.002=\u12a0\u121c\u122a\u12ab
+territories.002=\u12a0\u134d\u122a\u12ab
territories.MT=\u121b\u120d\u1273
-territories.001=\u12d3\u1208\u121d
territories.AI=\u12a0\u1295\u1309\u12a2\u120b
+territories.001=\u12d3\u1208\u121d
territories.MS=\u121e\u1295\u1275\u1234\u122b\u1275
territories.MR=\u121e\u122a\u1274\u1292\u12eb
territories.AG=\u12a0\u1295\u1272\u1313 \u12a5\u1293 \u1263\u1229\u12f3
@@ -219,25 +240,26 @@ territories.LU=\u1209\u12ad\u1230\u121d\u1260\u122d\u130d
territories.154=\u1230\u121c\u1293\u12ca \u12a0\u12cd\u122e\u1353
territories.LT=\u120a\u1271\u12cc\u1292\u12eb
territories.LS=\u120c\u1236\u1276
-territories.151=\u121d\u1235\u122b\u1243\u12ca \u12a0\u12cd\u122e\u1353
territories.LR=\u120b\u12ed\u1264\u122a\u12eb
+territories.151=\u121d\u1235\u122b\u1243\u12ca \u12a0\u12cd\u122e\u1353
territories.150=\u12a0\u12cd\u122e\u1353
territories.LK=\u1232\u122a\u120b\u1295\u12ab
territories.LI=\u120a\u127d\u1270\u1295\u1235\u1273\u12ed\u1295
territories.LC=\u1234\u1295\u1275 \u1209\u127a\u12eb
territories.LB=\u120a\u1263\u1296\u1235
territories.LA=\u120b\u12a6\u1235
-territories.KZ=\u12ab\u12db\u12aa\u1235\u1273\u1295
territories.KY=\u12ab\u12ed\u121b\u1295 \u12f0\u1234\u1276\u127d
territories.KW=\u12ad\u12cc\u1275
-territories.KR=\u1230\u121c\u1295 \u12ae\u122a\u12eb
-territories.KP=\u12f0\u1261\u1265 \u12ae\u122a\u12eb
+territories.145=\u121d\u12d5\u122b\u1263\u12ca \u12a5\u1235\u12eb
+territories.143=\u1218\u12ab\u12a8\u1208\u129b \u12a0\u121c\u122a\u12ab [143]
+territories.142=\u12a5\u1235\u12eb
+territories.KR=\u12f0\u1261\u1265 \u12ae\u122a\u12eb
+territories.KP=\u1230\u121c\u1295 \u12ae\u122a\u12eb
territories.KN=\u1245\u12f1\u1235 \u12aa\u1275\u1235 \u12a5\u1293 \u1294\u126a\u1235
territories.KM=\u12ae\u121e\u122e\u1235
territories.KI=\u12aa\u122a\u1263\u1272
territories.WS=\u1233\u121e\u12a0
territories.KH=\u12ab\u121d\u1266\u12f2\u12eb
-territories.KG=\u12ab\u12db\u12aa\u1235\u1273\u1295
territories.KE=\u12ac\u1295\u12eb
territories.WF=\u12cb\u120a\u1235 \u12a5\u1293 \u1349\u1271\u1293 \u12f0\u1234\u1276\u127d
territories.JP=\u1303\u1353\u1295
@@ -279,145 +301,153 @@ territories.TR=\u1271\u122d\u12ad
territories.TO=\u1276\u1295\u130b
territories.TN=\u1271\u1292\u12da\u12eb
territories.TM=\u1271\u122d\u12ad\u121c\u1292\u1235\u1273\u1295
-languages.es=\u1235\u1353\u1292\u123d
+languages.la=\u120b\u1272\u1295\u129b
+languages.xh=\u12de\u1233\u129b
+languages.byn=\u1265\u120a\u1295
+languages.ky=\u12aa\u122d\u130a\u12dd\u129b
languages.ku=\u12a9\u122d\u12f5\u123d\u129b
-languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
-languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
languages.ks=\u12ab\u123d\u121a\u122d\u129b
-languages.el=\u130d\u122a\u12ad\u129b
-languages.qu=\u12b5\u127f\u129b
languages.ko=\u12ae\u122a\u12eb\u129b
languages.kn=\u12ab\u1293\u12f3\u129b
languages.km=\u12ad\u1218\u122d\u129b
languages.kl=\u12ab\u120b\u120a\u1231\u1275\u129b
languages.kk=\u12ab\u12db\u12ad\u129b
+languages.gez=\u130d\u12d5\u12dd\u129b
languages.wo=\u12ce\u120e\u134d\u129b
languages.ka=\u130a\u12ee\u122d\u130a\u12eb\u1295
-languages.dz=\u12f5\u12de\u1295\u130d\u12bb\u129b
languages.jv=\u1303\u126b\u1295\u129b
-languages.pt=\u1356\u122d\u1271\u130b\u120a\u129b
-languages.ps=\u1351\u123d\u1276\u129b
-languages.de=\u1300\u122d\u1218\u1295
-languages.pl=\u1356\u120a\u123d
-languages.da=\u12f4\u1292\u123d
languages.vo=\u126e\u120b\u1351\u12ad\u129b
languages.ja=\u1303\u1353\u1295\u129b
+languages.tig=\u1275\u130d\u1228
languages.vi=\u126a\u1275\u1293\u121d\u129b
-languages.cy=\u12c8\u120d\u123d
-languages.pa=\u1353\u1295\u1303\u1262\u129b
-languages.cs=\u127c\u12ad\u129b
languages.iu=\u12a5\u1291\u12ad\u1272\u1271\u1275\u129b
-languages.co=\u12ae\u122d\u1232\u12ab\u129b
languages.it=\u1323\u120a\u12eb\u1295\u129b
languages.is=\u12a0\u12ed\u1235\u120b\u1295\u12f5\u129b
languages.uz=\u12a1\u12dd\u1260\u12ad\u129b
-languages.or=\u12a6\u122a\u12eb\u129b
languages.ik=\u12a5\u1291\u1352\u12eb\u1245\u129b
languages.ur=\u12a1\u122d\u12f1\u129b
-languages.om=\u12a6\u122e\u121d\u129b
-languages.ca=\u12ab\u1273\u120b\u1295\u129b
languages.ie=\u12a5\u1295\u1270\u122d\u120a\u1295\u130d\u12c8
languages.id=\u12a5\u1295\u12f6\u1292\u1232\u129b
-languages.uk=\u12e9\u12ad\u1228\u1292\u129b
languages.ia=\u12a2\u1295\u1274\u122d\u120a\u1295\u1313
-languages.oc=\u12a6\u12aa\u1273\u1295\u129b
+languages.uk=\u12e9\u12ad\u1228\u1292\u129b
languages.ug=\u12a1\u12ca\u130d\u1201\u122d\u129b
languages.hy=\u12a0\u122d\u1218\u1293\u12ca
-languages.br=\u1265\u122c\u1276\u1295\u129b
+languages.und=\u12eb\u120d\u1270\u12c8\u1230\u1290
languages.hu=\u1200\u1295\u130b\u122a\u129b
-languages.bo=\u1275\u1260\u1275\u1295\u129b
-languages.bn=\u1260\u1295\u130b\u120a\u129b
languages.hr=\u12ad\u122e\u123d\u12eb\u1295\u129b
-languages.bi=\u1262\u1235\u120b\u121d\u129b
+languages.fil=\u134a\u120a\u1355\u1295\u129b
languages.tw=\u1275\u12ca\u129b
-languages.bh=\u1262\u1203\u122a
-languages.bg=\u1261\u120d\u130b\u122a\u129b
languages.tt=\u1273\u1273\u122d\u129b
-languages.no=\u1296\u122d\u12cc\u1302\u12eb\u1295
-languages.be=\u1264\u120b\u122b\u123b\u129b
-languages.ts=\u133e\u1295\u130b\u129b
languages.hi=\u1210\u1295\u12f5\u129b
+languages.ts=\u133e\u1295\u130b\u129b
languages.tr=\u1271\u122d\u12ad\u129b
-languages.nl=\u12f0\u127d
-languages.zu=\u12d9\u1209\u129b
-languages.ba=\u1263\u1235\u12aa\u122d\u129b
-languages.to=\u1276\u1295\u130b
languages.he=\u12d5\u1265\u122b\u1235\u1325
+languages.to=\u1276\u1295\u130b
languages.tn=\u133d\u12cb\u1293\u12ca\u129b
languages.tl=\u1273\u130b\u120e\u1308\u129b
-languages.tk=\u1271\u122d\u12ad\u1218\u1295\u129b
languages.ha=\u1203\u12cd\u1233\u129b
-languages.ne=\u1294\u1353\u120a\u129b
-languages.az=\u12a0\u12dc\u122d\u1263\u12ed\u1303\u1295\u129b
+languages.tk=\u1271\u122d\u12ad\u1218\u1295\u129b
languages.ti=\u1275\u130d\u122d\u129b
-languages.ay=\u12a0\u12eb\u121b\u122d\u129b
languages.th=\u1273\u12ed\u129b
languages.tg=\u1273\u1302\u12aa\u129b
-languages.na=\u1293\u12a1\u1229
languages.te=\u1270\u1209\u1309\u129b
-languages.zh=\u127b\u12ed\u1295\u129b
-languages.as=\u12a0\u1233\u121c\u12db\u12ca
-languages.ar=\u12d0\u122d\u1262\u129b
languages.ta=\u1273\u121a\u120d\u129b
languages.gu=\u1309\u1303\u122d\u1272\u129b
-languages.my=\u1261\u122d\u121b\u129b
-languages.am=\u12a0\u121b\u122d\u129b
-languages.za=\u12e1\u12cb\u1295\u130d\u129b
-languages.mt=\u121b\u120d\u1272\u1235\u129b
-languages.ms=\u121b\u120b\u12ed\u129b
languages.gn=\u1313\u122b\u1292\u129b
-languages.byn=\u1265\u120a\u1295
languages.sw=\u1235\u12cb\u1202\u120a\u129b
-languages.mr=\u121b\u122b\u12da\u129b
-languages.sv=\u1235\u12ca\u12f5\u1295\u129b
languages.gl=\u130b\u1208\u130b\u129b
+languages.sv=\u1235\u12ca\u12f5\u1295\u129b
languages.su=\u1231\u12f3\u1295\u129b
-languages.af=\u12a0\u134d\u122a\u1243\u1295\u1235\u129b
languages.st=\u1236\u12de\u129b
-languages.mo=\u121e\u120d\u12f3\u126b\u12ca\u1293
languages.ss=\u1235\u12cb\u1272\u129b
-languages.mn=\u121e\u1295\u130e\u120b\u12ca\u129b
-languages.gez=\u130d\u12d5\u12dd\u129b
languages.sr=\u1230\u122d\u1262\u129b
languages.sq=\u120d\u1264\u1292\u129b
-languages.ml=\u121b\u120b\u12eb\u120b\u121d\u129b
-languages.ab=\u12a0\u1265\u1210\u12da\u129b
-languages.mk=\u121b\u12a8\u12f6\u1292\u129b
-languages.aa=\u12a0\u134b\u122d\u129b
languages.so=\u1231\u121b\u120d\u129b
-languages.sn=\u123e\u1293\u129b
-languages.mi=\u121b\u12ee\u122a\u129b
languages.gd=\u12a5\u1235\u12ae\u1275\u1235 \u130c\u120d\u12ad\u129b
+languages.sn=\u123e\u1293\u129b
languages.sm=\u1233\u121e\u12a0\u129b
languages.sl=\u1235\u120e\u126a\u129b
-languages.mg=\u121b\u120b\u130b\u1235\u129b
-languages.tig=\u1275\u130d\u1228
-languages.sk=\u1235\u120e\u126b\u12ad\u129b
languages.ga=\u12a0\u12ed\u122a\u123d
-languages.yo=\u12ee\u1229\u1263\u12ca\u129b
+languages.sk=\u1235\u120e\u126b\u12ad\u129b
languages.si=\u1235\u1295\u1203\u120d\u129b
+languages.sh=\u1230\u122d\u1266-\u12ad\u122e\u12a4\u123d\u12eb\u129b
languages.sg=\u1233\u1295\u130e\u129b
-languages.yi=\u12ed\u12f2\u123b\u12ca\u129b
-languages.sd=\u1232\u1295\u12f5\u1202\u129b
languages.fy=\u134d\u122a\u1235\u129b
-languages.sid=\u1232\u12f3\u121d\u129b
+languages.sd=\u1232\u1295\u12f5\u1202\u129b
languages.sa=\u1233\u1295\u1235\u12ad\u122a\u1275\u129b
languages.fr=\u1348\u1228\u1295\u1233\u12ed\u129b
-languages.lv=\u120b\u1275\u126a\u12eb\u1295
languages.fo=\u134b\u122e\u129b
-languages.lt=\u120a\u1271\u12a0\u1292\u12eb\u1295
languages.rw=\u12aa\u1295\u12eb\u122d\u12cb\u1295\u12f5\u129b
languages.ru=\u122b\u123d\u129b
languages.fj=\u134a\u1302\u129b
-languages.lo=\u120b\u12cd\u1235\u129b
languages.fi=\u134a\u1292\u123d
-languages.ln=\u120a\u1295\u130b\u120b\u129b
languages.ro=\u122e\u121b\u1292\u12eb\u1295
languages.rn=\u1229\u1295\u12f2\u129b
languages.rm=\u122e\u121b\u1295\u1235
languages.fa=\u1350\u122d\u1232\u12eb\u129b
-languages.la=\u120b\u1272\u1295\u129b
-languages.xh=\u12de\u1233\u129b
+languages.pt_PT=\u1356\u122d\u1271\u130b\u120a\u129b (\u12e8\u1356\u122d\u1271\u130b\u120d)
languages.eu=\u1263\u1235\u12ad\u129b
languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
-languages.ky=\u12aa\u122d\u130a\u12dd\u129b
+languages.es=\u1235\u1353\u1292\u123d
+languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
+languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
+languages.el=\u130d\u122a\u12ad\u129b
+languages.qu=\u12b5\u127f\u129b
+languages.dz=\u12f5\u12de\u1295\u130d\u12bb\u129b
+languages.pt=\u1356\u122d\u1271\u130b\u120a\u129b
+languages.pt_BR=\u1356\u122d\u1271\u130b\u120a\u129b (\u12e8\u1265\u122b\u12da\u120d)
+languages.ps=\u1351\u123d\u1276\u129b
+languages.de=\u1300\u122d\u1218\u1295
+languages.pl=\u1356\u120a\u123d
+languages.da=\u12f4\u1292\u123d
+languages.cy=\u12c8\u120d\u123d
+languages.pa=\u1353\u1295\u1303\u1262\u129b
+languages.cs=\u127c\u12ad\u129b
+languages.sid=\u1232\u12f3\u121d\u129b
+languages.co=\u12ae\u122d\u1232\u12ab\u129b
+languages.or=\u12a6\u122a\u12eb\u129b
+languages.om=\u12a6\u122e\u121d\u129b
+languages.ca=\u12ab\u1273\u120b\u1295\u129b
+languages.oc=\u12a6\u12aa\u1273\u1295\u129b
+languages.bs=\u1266\u1235\u1292\u12eb\u1295\u129b
+languages.br=\u1265\u122c\u1276\u1295\u129b
+languages.bo=\u1275\u1260\u1275\u1295\u129b
+languages.bn=\u1260\u1295\u130b\u120a\u129b
+languages.bi=\u1262\u1235\u120b\u121d\u129b
+languages.bh=\u1262\u1203\u122a
+languages.bg=\u1261\u120d\u130b\u122a\u129b
+languages.be=\u1264\u120b\u122b\u123b\u129b
+languages.no=\u1296\u122d\u12cc\u1302\u12eb\u1295
+languages.nn=\u12e8\u1296\u122d\u12cc \u12a0\u12f2\u1231 \u1296\u122d\u12cc\u1305\u12eb\u1295\u129b
+languages.nl=\u12f0\u127d
+languages.ba=\u1263\u1235\u12aa\u122d\u129b
+languages.zu=\u12d9\u1209\u129b
+languages.az=\u12a0\u12dc\u122d\u1263\u12ed\u1303\u1295\u129b
+languages.ne=\u1294\u1353\u120a\u129b
+languages.ay=\u12a0\u12eb\u121b\u122d\u129b
+languages.na=\u1293\u12a1\u1229
+languages.as=\u12a0\u1233\u121c\u12db\u12ca
+languages.ar=\u12d0\u122d\u1262\u129b
+languages.zh=\u127b\u12ed\u1295\u129b
+languages.my=\u1261\u122d\u121b\u129b
+languages.am=\u12a0\u121b\u122d\u129b
+languages.za=\u12e1\u12cb\u1295\u130d\u129b
+languages.mt=\u121b\u120d\u1272\u1235\u129b
+languages.ms=\u121b\u120b\u12ed\u129b
+languages.mr=\u121b\u122b\u12da\u129b
+languages.af=\u12a0\u134d\u122a\u12ab\u1295\u1235\u129b
+languages.mo=\u121e\u120d\u12f3\u126b\u12ca\u1293
+languages.mn=\u121e\u1295\u130e\u120b\u12ca\u129b
+languages.ab=\u12a0\u1265\u1210\u12da\u129b
+languages.ml=\u121b\u120b\u12eb\u120b\u121d\u129b
+languages.aa=\u12a0\u134b\u122d\u129b
+languages.mk=\u121b\u12a8\u12f6\u1292\u129b
+languages.mi=\u121b\u12ee\u122a\u129b
+languages.mg=\u121b\u120b\u130b\u1235\u129b
+languages.yo=\u12ee\u1229\u1263\u12ca\u129b
+languages.tlh=\u12ad\u120a\u1295\u130d\u12a6\u1295\u129b
+languages.yi=\u12ed\u12f2\u123b\u12ca\u129b
+languages.lv=\u120b\u1275\u126a\u12eb\u1295
+languages.lt=\u120a\u1271\u12a0\u1292\u12eb\u1295
+languages.lo=\u120b\u12cd\u1235\u129b
+languages.ln=\u120a\u1295\u130b\u120b\u129b
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar.properties
index b929f64..2e9c50f 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar.properties
@@ -6,215 +6,514 @@
# This file was automatically generated by gnu.localegen from CLDR.
percent=\u066a
+exponential=\u0627\u0633
+NaN=\u0644\u064a\u0633 \u0631\u0642\u0645
zeroDigit=\u0660
decimalSeparator=\u066b
groupingSeparator=\u066c
-currencyFormat=\u00a4 #,##0.00;\u00a4 #,##0.00-
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.INR=\u0631\u0648\u0628\u064a\u0647 \u0647\u0646\u062f\u064a
-currenciesDisplayName.RUB=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u064a
-currenciesDisplayName.JPY=\u064a\u0646 \u064a\u0627\u0628\u0627\u0646\u064a
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u062f\u064a\u0646\u0627\u0631 \u064a\u0645\u0646\u0649
+currenciesDisplayName.KES=\u0634\u0644\u0646 \u0643\u064a\u0646\u064a\u064a
+currenciesDisplayName.TWD=\u062f\u0648\u0644\u0627\u0631 \u062a\u0627\u064a\u0648\u0627\u0646\u0649
+currenciesDisplayName.LKR=\u0631\u0648\u0628\u064a\u0629 \u0633\u0631\u064a\u0644\u0627\u0646\u0643\u064a\u0629
+currenciesDisplayName.BYB=\u0631\u0648\u0628\u0644 \u0628\u064a\u0644\u0627\u0631\u0648\u0633\u064a \u062c\u062f\u064a\u062f
+currenciesDisplayName.TJS=\u0633\u0648\u0645\u0648\u0646\u064a \u0637\u0627\u062c\u064a\u0643\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.RWF=\u0641\u0631\u0646\u0643 \u0631\u0648\u0627\u0646\u062f\u0649
+currenciesDisplayName.ERN=\u0646\u0627\u0643\u0641\u0627 \u0623\u0631\u064a\u062a\u0631\u0649
+currenciesDisplayName.TJR=\u0631\u0648\u0628\u0644 \u0637\u0627\u062c\u064a\u0643\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.SDP=\u062c\u0646\u064a\u0647 \u0633\u0648\u062f\u0627\u0646\u0649
+currenciesDisplayName.GRD=\u062f\u0631\u0627\u062e\u0645\u0627 \u064a\u0648\u0646\u0627\u0646\u0649
+currenciesDisplayName.AFN=\u0623\u0641\u063a\u0627\u0646\u0649
+currenciesDisplayName.IEP=\u062c\u0646\u064a\u0647 \u0627\u064a\u0631\u0644\u0646\u062f\u0649
+currenciesDisplayName.ARS=\u0628\u064a\u0632\u0648 \u0623\u0631\u062c\u0646\u062a\u064a\u0646\u064a
+currenciesDisplayName.ARP=\u0632\u0648 \u0623\u0631\u062c\u0646\u062a\u064a\u0646\u064a
currenciesDisplayName.SDD=\u062f\u064a\u0646\u0627\u0631 \u0633\u0648\u062f\u0627\u0646\u064a
-currenciesDisplayName.XAF=\u0641\u0631\u0646\u0643 \u0627\u0641\u0631\u064a\u0642\u064a
+currenciesDisplayName.GEL=\u0644\u0627\u0631\u0649 \u062c\u0648\u0631\u062c\u0649
+currenciesDisplayName.AFA=\u0623\u0641\u063a\u0627\u0646\u064a - 1927-2002
+currenciesDisplayName.CRC=\u0643\u0648\u0644\u0646 \u0643\u0648\u0633\u062a\u0627 \u0631\u064a\u0643\u0649
+currenciesDisplayName.FKP=\u062c\u0646\u064a\u0647 \u062c\u0632\u0631 \u0641\u0648\u0643\u0644\u0627\u0646\u062f
+currenciesDisplayName.EEK=\u0643\u0631\u0648\u0646\u0629 \u0627\u0633\u062a\u0648\u0646\u064a\u0629
+currenciesDisplayName.MDL=\u0644\u0627\u0648 \u0645\u0648\u0644\u062f\u0648\u0641\u0649
+currenciesDisplayName.HKD=\u062f\u0648\u0644\u0627\u0631 \u0647\u0648\u0646\u062c \u0643\u0648\u0646\u062c
+currenciesDisplayName.IQD=\u062f\u064a\u0646\u0627\u0631 \u0639\u0631\u0627\u0642\u0649
+currenciesDisplayName.ARA=\u0627\u0633\u062a\u0631\u0627\u0644 \u0627\u0631\u062c\u0646\u062a\u064a\u0646\u0649
+currenciesDisplayName.SCR=\u0631\u0648\u0628\u064a\u0629 \u0633\u064a\u0634\u064a\u0644\u064a\u0629
+currenciesDisplayName.KPW=\u0648\u0648\u0646 \u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
+currenciesDisplayName.DKK=\u0643\u0631\u0648\u0646\u0629 \u062f\u0627\u0646\u0645\u0627\u0631\u0643\u0649
+currenciesDisplayName.IDR=\u0631\u0648\u0628\u064a\u0629 \u0627\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0629
+currenciesDisplayName.GQE=\u0627\u0643\u0648\u064a\u0644 \u062c\u0648\u0646\u064a\u0646\u0627 \u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u0627\u0633\u062a\u0648\u0627\u0626\u064a\u0651\u0629
+currenciesDisplayName.SOS=\u0634\u0644\u0646 \u0635\u0648\u0645\u0627\u0644\u0649
+currenciesDisplayName.LVR=\u0631\u0648\u0628\u0644 \u0644\u0627\u062a\u0641\u064a\u0627
+currenciesDisplayName.AED=\u062f\u0631\u0647\u0645 \u0627\u0645\u0627\u0631\u0627\u062a\u0649
+currenciesDisplayName.LVL=\u0644\u0627\u062a\u0633 \u0644\u0627\u062a\u0641\u064a\u0627
+currenciesDisplayName.BWP=\u0628\u0648\u0644\u0627 \u0628\u062a\u0633\u0648\u0627\u0646\u0649
+currenciesDisplayName.RUR=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u0649 - 1991-1998
+currenciesDisplayName.XTS=\u0643\u0648\u062f \u0627\u062e\u062a\u0628\u0627\u0631 \u0627\u0644\u0639\u0645\u0644\u0629
+currenciesDisplayName.MOP=\u0628\u0627\u062a\u0627\u0643\u0627 \u0645\u0627\u0643\u0627\u0648\u0649
+currenciesDisplayName.FJD=\u062f\u0648\u0644\u0627\u0631 \u0641\u064a\u062c\u0649
+currenciesDisplayName.ADP=\u0628\u064a\u0633\u062a\u0627 \u0623\u0646\u062f\u0648\u0631\u064a
+currenciesDisplayName.RUB=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u064a
+currenciesDisplayName.CDF=\u0641\u0646\u0643 \u0643\u0648\u0646\u063a\u0648\u0644\u0649
+currenciesDisplayName.NIC=\u0643\u0648\u0631\u062f\u0648\u0628\u0629 \u0646\u064a\u0643\u0627\u0631\u0627\u062c\u0648\u0627
+currenciesDisplayName.DJF=\u0641\u0631\u0646\u0643 \u062c\u064a\u0628\u0648\u062a\u0649
+currenciesDisplayName.UZS=\u0633\u0648\u0645 \u0623\u0648\u0632\u0628\u0643\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.SBD=\u062f\u0648\u0644\u0627\u0631 \u062c\u0632\u0631 \u0633\u0644\u064a\u0645\u0627\u0646
+currenciesDisplayName.LUL=\u0641\u0631\u0646\u0643 \u0644\u0648\u0643\u0633\u0645\u0628\u0631\u062c \u0627\u0644\u0645\u0627\u0644\u0649
+currenciesDisplayName.THB=\u0628\u0627\u062e\u062a \u062a\u0627\u064a\u0644\u0627\u0646\u062f\u0649
+currenciesDisplayName.PHP=\u0628\u064a\u0632\u0648 \u0641\u0644\u0628\u064a\u0646\u0649
+currenciesDisplayName.LUF=\u0641\u0631\u0646\u0643 \u0644\u0648\u0643\u0633\u0645\u0628\u0631\u062c
+currenciesDisplayName.RHD=\u062f\u0648\u0644\u0627\u0631 \u0631\u0648\u062f\u064a\u0633\u0649
+currenciesDisplayName.LUC=\u0641\u0631\u0646\u0643 \u0644\u0648\u0643\u0633\u0645\u0628\u0631\u062c \u0642\u0627\u0628\u0644 \u0644\u0644\u062a\u062d\u0648\u064a\u0644
+currenciesDisplayName.FIM=\u0645\u0627\u0631\u0643\u0627 \u0641\u0646\u0644\u0646\u062f\u0649
+currenciesDisplayName.TTD=\u062f\u0648\u0644\u0627\u0631 \u062a\u0631\u064a\u0646\u062f\u0627\u062f \u0648 \u062a\u0648\u0628\u0627\u062c\u0648
+currenciesDisplayName.SZL=\u0644\u064a\u0644\u0627\u0646\u062c\u064a\u0646\u064a \u0633\u0648\u0627\u0632\u064a\u0644\u0646\u062f\u0649
+currenciesDisplayName.MNT=\u062a\u0648\u063a\u0631\u0648\u063a \u0645\u0646\u063a\u0648\u0644\u0649
+currenciesDisplayName.SAR=\u0631\u064a\u0627\u0644 \u0633\u0639\u0648\u062f\u0649
+currenciesDisplayName.UAH=\u0647\u0631\u064a\u0641\u0646\u064a\u0627 \u0623\u0648\u0643\u0631\u0627\u0646\u0649
+currenciesDisplayName.HUF=\u0641\u0648\u0631\u064a\u0646\u062a \u0645\u062c\u0631\u0649
+currenciesDisplayName.QAR=\u0631\u064a\u0627\u0644 \u0642\u0637\u0631\u0649
+currenciesDisplayName.COP=\u0628\u064a\u0632\u0648 \u0643\u0648\u0644\u0648\u0645\u0628\u0649
+currenciesDisplayName.LTT=\u062a\u0627\u0644\u0648\u0646\u0627\u0633 \u0644\u064a\u062a\u0648\u0627\u0646\u0649
+currenciesDisplayName.PTE=\u0627\u0633\u0643\u0648\u062f \u0628\u0631\u062a\u063a\u0627\u0644\u0649
+currenciesDisplayName.AOR=\u0643\u0648\u0627\u0646\u0632\u0627 \u0623\u0646\u062c\u0648\u0644\u0649 \u0645\u0639\u062f\u0644\u0629 - 1995 - 1999
+currenciesDisplayName.GBP=\u062c\u0646\u064a\u0647 \u0633\u062a\u0631\u0644\u064a\u0646\u064a
+currenciesDisplayName.ZRZ=\u0632\u0627\u0626\u064a\u0631 \u0632\u0627\u0626\u064a\u0631\u0649
+currenciesDisplayName.INR=\u0631\u0648\u0628\u064a\u0647 \u0647\u0646\u062f\u064a
+currenciesDisplayName.BIF=\u0641\u0631\u0646\u0643 \u0628\u0631\u0648\u0646\u062f\u0649
+currenciesDisplayName.LTL=\u0627\u0644\u0644\u064a\u062a\u0627 \u0627\u0644\u0644\u064a\u062a\u0648\u0627\u0646\u064a\u0629
+currenciesDisplayName.AON=\u0643\u0648\u0627\u0646\u0632\u0627 \u0623\u0646\u062c\u0648\u0644\u0649 \u062c\u062f\u064a\u062f\u0629 - 1990-2000
+currenciesDisplayName.UYP=\u0628\u064a\u0632\u0648 \u0623\u0648\u0631\u0648\u062c\u0648\u0627\u0649 - 1975-1993
+currenciesDisplayName.KZT=\u062a\u064a\u0646\u063a \u0643\u0627\u0632\u0627\u062e\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.AOK=\u0643\u0648\u0627\u0646\u0632\u0627 \u0623\u0646\u062c\u0648\u0644\u064a
+currenciesDisplayName.GNS=\u0633\u064a\u0644\u0649 \u063a\u064a\u0646\u064a\u0627
+currenciesDisplayName.BUK=\u0643\u064a\u0627\u062a \u0628\u0648\u0631\u0645\u0649
+currenciesDisplayName.XFO=\u0641\u0631\u0646\u0643 \u0641\u0631\u0646\u0633\u0649 \u0630\u0647\u0628\u0649
+currenciesDisplayName.PGK=\u0643\u064a\u0646\u0627 \u0628\u0627\u0628\u0648\u0627 \u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629
+currenciesDisplayName.SYP=\u062c\u0646\u064a\u0647 \u0633\u0648\u0631\u0649
+currenciesDisplayName.OMR=\u0631\u064a\u0627\u0644 \u0639\u0645\u0627\u0646\u0649
+currenciesDisplayName.MZE=\u0627\u0633\u0643\u0648\u062f \u0645\u0648\u0632\u0645\u0628\u064a\u0642\u0649
+currenciesDisplayName.ZRN=\u0632\u0627\u0626\u064a\u0631 \u0632\u0627\u0626\u064a\u0631\u0649 \u062c\u062f\u064a\u062f
+currenciesDisplayName.NGN=\u0646\u0627\u064a\u0631\u0627 \u0646\u064a\u062c\u064a\u0631\u0649
+currenciesDisplayName.CNY=\u064a\u0648\u0627\u0646 \u0635\u064a\u0646\u064a
+currenciesDisplayName.AOA=\u0643\u0648\u0627\u0646\u0632\u0627 \u0623\u0646\u062c\u0648\u0644\u064a
+currenciesDisplayName.MAF=\u0641\u0631\u0646\u0643 \u0645\u063a\u0631\u0628\u064a
+currenciesDisplayName.GNF=\u0641\u0631\u0646\u0643 \u063a\u064a\u0646\u064a\u0627
+currenciesDisplayName.MAD=\u062f\u0631\u0647\u0645 \u0645\u063a\u0631\u0628\u0649
+currenciesDisplayName.HTG=\u062c\u0648\u0631\u062f\u0649 \u0647\u0627\u064a\u062a\u0649
+currenciesDisplayName.TRY=\u0644\u064a\u0631\u0629 \u062a\u0631\u0643\u064a\u0629 \u062c\u062f\u064a\u062f\u0629
+currenciesDisplayName.MMK=\u0643\u064a\u0627\u062a \u0645\u064a\u0627\u0646\u0645\u0627\u0631
+currenciesDisplayName.MYR=\u0631\u064a\u0646\u063a\u064a\u062a \u0645\u0627\u0644\u064a\u0632\u0649
+currenciesDisplayName.LSM=\u0645\u0627\u0644\u0648\u062a\u0649
+currenciesDisplayName.XEU=\u0648\u062d\u062f\u0629 \u0627\u0644\u0646\u0642\u062f \u0627\u0644\u0623\u0648\u0631\u0648\u0628\u064a\u0629
+currenciesDisplayName.LSL=\u0644\u0648\u062a\u0649 \u0644\u064a\u0633\u0648\u062a\u0648
+currenciesDisplayName.SLL=\u0644\u064a\u0648\u0646 \u0633\u064a\u0631\u0627\u0644\u064a\u0648\u0646\u0649
+currenciesDisplayName.BHD=\u062f\u064a\u0646\u0627\u0631 \u0628\u062d\u0631\u064a\u0646\u064a
+currenciesDisplayName.BTN=\u0646\u0648\u0644\u062a\u0648\u0645 \u0628\u0648\u062a\u0627\u0646\u0649
+currenciesDisplayName.TRL=\u0644\u064a\u0631\u0629 \u062a\u0631\u0643\u064a
currenciesDisplayName.KMF=\u0641\u0631\u0646\u0643 \u062c\u0632\u0631 \u0627\u0644\u0642\u0645\u0631
+currenciesDisplayName.CZK=\u0643\u0631\u0648\u0646\u0629 \u062a\u0634\u064a\u0643\u064a\u0629
+currenciesDisplayName.ANG=\u062c\u0644\u062f\u0631 \u0647\u0648\u0644\u0646\u062f\u0649 [ANG]
+currenciesDisplayName.AZM=\u0645\u0627\u0646\u0627\u062a \u0623\u0630\u0631\u064a\u0628\u062c\u0627\u0646\u064a
+currenciesDisplayName.KYD=\u062f\u0648\u0644\u0627\u0631 \u062c\u0632\u0631 \u0643\u064a\u0645\u0646
+currenciesDisplayName.GMD=\u062f\u0644\u0627\u0633\u064a \u062c\u0627\u0645\u0628\u064a
+currenciesDisplayName.BGN=\u0644\u064a\u0641 \u0628\u0644\u063a\u0627\u0631\u0649 \u062c\u062f\u064a\u062f
+currenciesDisplayName.CAD=\u062f\u0648\u0644\u0627\u0631 \u0643\u0646\u062f\u0649
+currenciesDisplayName.BGL=\u0644\u064a\u0641 \u0628\u0644\u063a\u0627\u0631\u0649
+currenciesDisplayName.VEB=\u0628\u0648\u0644\u064a\u0641\u0627\u0631 \u0641\u0646\u0632\u0648\u064a\u0644\u064a
+currenciesDisplayName.MLF=\u0641\u0631\u0646\u0643 \u0645\u0627\u0644\u0649
+currenciesDisplayName.MXP=\u0628\u064a\u0632\u0648 \u0641\u0636\u0649 \u0645\u0643\u0633\u064a\u0643\u0649 - 1861-1992
+currenciesDisplayName.ILS=\u0634\u064a\u0643\u0644 \u0627\u0633\u0631\u0627\u0626\u064a\u0644\u0649 \u062c\u062f\u064a\u062f
+currenciesDisplayName.MXN=\u0628\u064a\u0632\u0648 \u0645\u0643\u0633\u064a\u0643\u0649
+currenciesDisplayName.GYD=\u062f\u0648\u0644\u0627\u0631 \u063a\u064a\u0627\u0646\u0627
+currenciesDisplayName.ILP=\u062c\u0646\u064a\u0647 \u0627\u0633\u0631\u0627\u0626\u064a\u0644\u0649
+currenciesDisplayName.CYP=\u062c\u0646\u064a\u0647 \u0642\u0628\u0631\u0635\u0649
+currenciesDisplayName.SKK=\u0643\u0631\u0648\u0646\u0629 \u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0629
+currenciesDisplayName.LRD=\u062f\u0648\u0644\u0627\u0631 \u0644\u064a\u0628\u064a\u0631\u064a
+currenciesDisplayName.AMD=\u062f\u0631\u0627\u0645 \u0623\u0631\u0645\u064a\u0646\u064a
+currenciesDisplayName.BSD=\u062f\u0648\u0644\u0627\u0631 \u0628\u0627\u0647\u0627\u0645\u064a
+currenciesDisplayName.XPT=\u0627\u0644\u0628\u0644\u0627\u062a\u064a\u0646
+currenciesDisplayName.HRK=\u0643\u0648\u0646\u0627 \u0643\u0631\u0648\u0627\u062a\u0649
+currenciesDisplayName.HRD=\u062f\u064a\u0646\u0627\u0631 \u0643\u0631\u0648\u0627\u062a\u0649
+currenciesDisplayName.CLP=\u0628\u064a\u0632\u0648 \u0634\u064a\u0644\u0649
+currenciesDisplayName.FRF=\u0641\u0631\u0646\u0643 \u0641\u0631\u0646\u0633\u0649
+currenciesDisplayName.MKD=\u062f\u064a\u0646\u0627\u0631 \u0645\u0642\u062f\u0648\u0646\u0649
+currenciesDisplayName.ALL=\u0644\u064a\u0643 \u0623\u0644\u0628\u0627\u0646\u064a
+currenciesDisplayName.MWK=\u0643\u0648\u0627\u0634\u0627 \u0645\u0627\u0644\u0627\u0648\u0649
currenciesDisplayName.BRL=\u0631\u064a\u0627\u0644 \u0628\u0631\u0627\u0632\u064a\u0644\u064a
-currenciesDisplayName.CNY=\u064a\u0648\u0627\u0646 \u0635\u064a\u0646\u064a
+currenciesDisplayName.TPE=\u0627\u0633\u0643\u0648\u062f \u062a\u064a\u0645\u0648\u0631\u0649
+currenciesDisplayName.BRE=\u0643\u0631\u0648\u0632\u0627\u064a\u0631\u0648 \u0628\u0631\u0627\u0632\u064a\u0644\u0649 - 1990-1993
+currenciesDisplayName.BRC=\u0643\u0631\u0648\u0632\u0627\u062f\u0648 \u0628\u0631\u0627\u0632\u064a\u0644\u0649
+currenciesDisplayName.BRB=\u0646\u0648\u0641\u0648 \u0643\u0631\u0648\u0632\u0627\u064a\u0631\u0648 \u0628\u0631\u0627\u0632\u064a\u0644\u0649 - 1967-1986
+currenciesDisplayName.DEM=\u0645\u0627\u0631\u0643 \u0627\u0644\u0645\u0627\u0646\u0649
+currenciesDisplayName.XCD=\u062f\u0648\u0644\u0627\u0631 \u0634\u0631\u0642 \u0627\u0644\u0643\u0627\u0631\u064a\u0628\u0649
+currenciesDisplayName.KWD=\u062f\u064a\u0646\u0627\u0631 \u0643\u0648\u064a\u062a\u0649
+currenciesDisplayName.NPR=\u0631\u0648\u0628\u064a\u0629 \u0646\u064a\u0628\u0627\u0644\u064a
+currenciesDisplayName.GWP=\u0628\u064a\u0632\u0648 \u063a\u064a\u0646\u064a\u0627 \u0628\u064a\u0633\u0627\u0648
+currenciesDisplayName.YUN=\u062f\u064a\u0646\u0627\u0631 \u064a\u0648\u063a\u0633\u0644\u0627\u0641\u0649 \u0642\u0627\u0628\u0644 \u0644\u0644\u062a\u062d\u0648\u064a\u0644
+currenciesDisplayName.SVC=\u0643\u0648\u0644\u0648\u0646 \u0633\u0644\u0641\u0627\u062f\u0648\u0631\u0649
+currenciesDisplayName.SIT=\u062a\u0648\u0644\u0627\u0631 \u0633\u0644\u0648\u0641\u064a\u0646\u064a
+currenciesDisplayName.BEL=\u0641\u0631\u0646\u0643 \u0628\u0644\u062c\u064a\u0643\u0649 (\u0645\u0627\u0644\u064a)\u200f
+currenciesDisplayName.JPY=\u064a\u0646 \u064a\u0627\u0628\u0627\u0646\u064a
+currenciesDisplayName.MVR=\u0631\u0648\u0641\u064a\u0647 \u062c\u0632\u0631 \u0627\u0644\u0645\u0627\u0644\u062f\u064a\u0641
+currenciesDisplayName.BEF=\u0641\u0631\u0646\u0643 \u0628\u0644\u062c\u064a\u0643\u064a
+currenciesDisplayName.GWE=\u0627\u0633\u0643\u0648\u062f \u0628\u0631\u062a\u063a\u0627\u0644\u0649 \u063a\u064a\u0646\u064a\u0627
+currenciesDisplayName.YUD=\u062f\u064a\u0646\u0627\u0631 \u064a\u0648\u063a\u0633\u0644\u0627\u0641\u0649
+currenciesDisplayName.BEC=\u0641\u0631\u0646\u0643 \u0628\u0644\u062c\u064a\u0643\u0649 (\u062a\u062d\u0648\u064a\u0644\u0627\u062a)\u200f
+currenciesDisplayName.SUR=\u0631\u0648\u0628\u0644 \u0633\u0648\u0641\u064a\u062a\u0649
+currenciesDisplayName.ROL=\u0644\u064a\u0648 \u0631\u0648\u0645\u0627\u0646\u0649 \u0642\u062f\u064a\u0645
+currenciesDisplayName.BDT=\u062a\u0627\u0643\u0627 \u0628\u0646\u062c\u0644\u0627\u062f\u064a\u0634\u064a
+currenciesDisplayName.DDM=\u0623\u0648\u0633\u062a\u0645\u0627\u0631\u0643 \u0627\u0644\u0645\u0627\u0646\u0649 \u0634\u0631\u0642\u0649
+currenciesDisplayName.AWG=\u062c\u0644\u062f\u0631 \u0622\u0631\u0648\u0628\u064a
+currenciesDisplayName.XBC=\u0627\u0644\u0648\u062d\u062f\u0629 \u0627\u0644\u062d\u0633\u0627\u0628\u064a\u0629 \u0627\u0644\u0623\u0648\u0631\u0648\u0628\u064a\u0629
+currenciesDisplayName.XBB=\u0627\u0644\u0648\u062d\u062f\u0629 \u0627\u0644\u0645\u0627\u0644\u064a\u0629 \u0627\u0644\u0623\u0648\u0631\u0648\u0628\u064a\u0629
+currenciesDisplayName.XBA=\u0627\u0644\u0648\u062d\u062f\u0629 \u0627\u0644\u0623\u0648\u0631\u0648\u0628\u064a\u0629 \u0627\u0644\u0645\u0631\u0643\u0628\u0629
+currenciesDisplayName.NOK=\u0643\u0631\u0648\u0646\u0629 \u0646\u0631\u0648\u064a\u062c\u064a\u0629
+currenciesDisplayName.MUR=\u0631\u0648\u0628\u064a \u0645\u0648\u0631\u064a\u0634\u064a
+currenciesDisplayName.ZAR=\u0631\u0627\u0646\u062f \u062c\u0646\u0648\u0628 \u0623\u0641\u0631\u064a\u0642\u064a\u0627
+currenciesDisplayName.SHP=\u062c\u0646\u064a\u0647 \u0633\u0627\u0646\u062a \u0647\u064a\u0644\u064a\u0646
+currenciesDisplayName.XAU=\u0630\u0647\u0628
+currenciesDisplayName.ZAL=\u0631\u0627\u0646\u062f \u062c\u0646\u0648\u0628 \u0623\u0641\u0631\u064a\u0642\u064a\u0627 -\u0645\u0627\u0644\u0649
+currenciesDisplayName.VND=\u062f\u0648\u0646\u062c \u0641\u064a\u062a\u0646\u0627\u0645\u0649
+currenciesDisplayName.TZS=\u0634\u0644\u0646 \u062a\u0646\u0632\u0627\u0646\u0649
+currenciesDisplayName.GIP=\u062c\u0646\u064a\u0647 \u062c\u0628\u0644 \u0637\u0627\u0631\u0642
+currenciesDisplayName.TND=\u062f\u064a\u0646\u0627\u0631\u062a\u0648\u0646\u0633\u0649
+currenciesDisplayName.CVE=\u0627\u0633\u0643\u0648\u062f\u0648 \u0627\u0644\u0631\u0623\u0633 \u0627\u0644\u062e\u0636\u0631\u0627\u0621
+currenciesDisplayName.UGX=\u0634\u0644\u0646 \u0623\u0648\u063a\u0646\u062f\u0649
+currenciesDisplayName.XAG=\u0641\u0636\u0629
+currenciesDisplayName.ZMK=\u0643\u0648\u0627\u0634\u0627 \u0632\u0627\u0645\u0628\u0649
+currenciesDisplayName.JOD=\u062f\u064a\u0646\u0627\u0631 \u0623\u0631\u062f\u0646\u0649
+currenciesDisplayName.XAF=\u0641\u0631\u0646\u0643 \u0627\u0641\u0631\u064a\u0642\u064a
+currenciesDisplayName.LBP=\u062c\u0646\u064a\u0629 \u0644\u0628\u0646\u0627\u0646\u0649
+currenciesDisplayName.UGS=\u0634\u0644\u0646 \u0623\u0648\u063a\u0646\u062f\u0649 - 1966-1987
+currenciesDisplayName.STD=\u062f\u0648\u0628\u0631\u0627 \u0633\u0627\u0648 \u062a\u0648\u0645\u064a \u0648\u0628\u0631\u064a\u0646\u0633\u064a\u0628\u064a
+currenciesDisplayName.KHR=\u0631\u064a\u064a\u0627\u0644 \u0643\u0645\u0628\u0648\u062f\u0649
+currenciesDisplayName.DOP=\u0628\u064a\u0632\u0648 \u0627\u0644\u062f\u0648\u0645\u0646\u064a\u0643\u0627\u0646
+currenciesDisplayName.EUR=\u064a\u0648\u0631\u0648
+currenciesDisplayName.BOV=\u0645\u0641\u062f\u0648\u0644 \u0628\u0648\u0644\u064a\u0641\u0649
+currenciesDisplayName.MTP=\u062c\u0646\u064a\u0647 \u0645\u0627\u0644\u0637\u0649
+currenciesDisplayName.USS=\u062f\u0648\u0644\u0627\u0631 \u0623\u0645\u0631\u064a\u0643\u064a (\u0646\u0641\u0633 \u0627\u0644\u064a\u0648\u0645)\u200f
+currenciesDisplayName.BOP=\u0628\u064a\u0632\u0648 \u0628\u0648\u0644\u064a\u0641\u064a
+currenciesDisplayName.CUP=\u0628\u064a\u0632\u0648 \u0643\u0648\u0628\u0649
+currenciesDisplayName.MTL=\u0644\u064a\u0631\u0629 \u0645\u0627\u0644\u0637\u064a\u0629
+currenciesDisplayName.TMM=\u0645\u0627\u0646\u0627\u062a \u062a\u0631\u0643\u0645\u0646\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.USN=\u062f\u0648\u0644\u0627\u0631 \u0623\u0645\u0631\u064a\u0643\u064a (\u0627\u0644\u064a\u0648\u0645 \u0627\u0644\u062a\u0627\u0644\u064a)\u200f
+currenciesDisplayName.SGD=\u062f\u0648\u0644\u0627\u0631 \u0633\u0646\u063a\u0627\u0641\u0648\u0631\u0649
+currenciesDisplayName.NZD=\u062f\u0648\u0644\u0627\u0631 \u0646\u064a\u0648\u0632\u064a\u0644\u0646\u062f\u0649
currenciesDisplayName.USD=\u062f\u0648\u0644\u0627\u0631 \u0623\u0645\u0631\u064a\u0643\u064a
+currenciesDisplayName.BOB=\u0628\u0648\u0644\u064a\u0641\u0627\u0631\u064a\u0648
+currenciesDisplayName.HNL=\u0644\u064a\u0645\u0628\u064a\u0631\u0627 \u0647\u0646\u062f\u0627\u0631\u0648\u0633
+currenciesDisplayName.ITL=\u0644\u064a\u0631\u0629 \u0627\u064a\u0637\u0627\u0644\u064a\u0629
+currenciesDisplayName.PAB=\u0628\u0627\u0644\u0628\u0648\u0627 \u0628\u0646\u0645\u0649
+currenciesDisplayName.GTQ=\u0643\u0648\u062a\u0632\u0627\u0644 \u062c\u0648\u0627\u062a\u064a\u0645\u0627\u0644\u0627
currenciesDisplayName.XXX=\u0628\u062f\u0648\u0646 \u0639\u0645\u0644\u0629
+currenciesDisplayName.AUD=\u062f\u0648\u0644\u0627\u0631 \u0623\u0633\u062a\u0631\u0627\u0644\u064a
+currenciesDisplayName.GHC=\u0633\u064a\u062f\u0649 \u063a\u0627\u0646\u0649
+currenciesDisplayName.LAK=\u0643\u064a\u0628 \u0644\u0627\u0648\u0633\u0649
+currenciesDisplayName.NAD=\u062f\u0648\u0644\u0627\u0631 \u0646\u0627\u0645\u0628\u064a\u0627
+currenciesDisplayName.KGS=\u0633\u0648\u0645 \u0642\u064a\u0631\u063a\u0633\u062a\u0627\u0646\u0649
+currenciesDisplayName.MGF=\u0641\u0631\u0646\u0643 \u0645\u062f\u063a\u0634\u0642\u0631
+currenciesDisplayName.BBD=\u062f\u0648\u0644\u0627\u0631 \u0628\u0631\u0628\u0627\u062f\u0648\u0633\u064a
+currenciesDisplayName.CHF=\u0641\u0631\u0646\u0643 \u0633\u0648\u064a\u0633\u0631\u0649
+currenciesDisplayName.MGA=\u0627\u0631\u064a\u0627\u0631\u064a \u0645\u062f\u063a\u0634\u0642\u0631
+currenciesDisplayName.PYG=\u062c\u0648\u0627\u0631\u0627\u0646\u064a \u0628\u0627\u0631\u0627\u062c\u0648\u0627\u064a
+currenciesDisplayName.PLZ=\u0632\u0644\u0648\u062a\u0649 \u0628\u0648\u0644\u0646\u062f\u0649 - 1950-1995
+currenciesDisplayName.YER=\u0631\u064a\u0627\u0644 \u064a\u0645\u0646\u0649
+currenciesDisplayName.ATS=\u0634\u0644\u0646 \u0646\u0645\u0633\u0627\u0648\u064a
+currenciesDisplayName.ETB=\u0628\u064a\u0631 \u0623\u062b\u064a\u0648\u0628\u0649
+currenciesDisplayName.BND=\u062f\u0648\u0644\u0627\u0631 \u0628\u0631\u0648\u0646\u0627\u064a
+currenciesDisplayName.EGP=\u062c\u0646\u064a\u0647 \u0645\u0635\u0631\u0649
+currenciesDisplayName.JMD=\u062f\u0648\u0644\u0627\u0631 \u062c\u0627\u0645\u0627\u064a\u0643\u0649
+currenciesDisplayName.PLN=\u0632\u0644\u0648\u062a\u0649 \u0628\u0648\u0644\u0646\u062f\u0649
+currenciesDisplayName.DZD=\u062f\u064a\u0646\u0627\u0631 \u062c\u0632\u0627\u0626\u0631\u0649
+currenciesDisplayName.ISK=\u0643\u0631\u0648\u0646\u0647 \u0623\u064a\u0633\u0644\u0646\u062f\u0649
+currenciesDisplayName.SRG=\u062c\u0644\u062f\u0631 \u0633\u0648\u0631\u064a\u0646\u0627\u0645\u0649
+currenciesDisplayName.LYD=\u062f\u064a\u0646\u0627\u0631 \u0644\u064a\u0628\u0649
+currenciesDisplayName.SRD=\u062f\u0648\u0644\u0627\u0631 \u0633\u0648\u0631\u064a\u0646\u0627\u0645\u0649
+currenciesDisplayName.BAM=\u0645\u0627\u0631\u0643 \u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648 \u0627\u0644\u0647\u0631\u0633\u0643 \u0642\u0627\u0628\u0644 \u0644\u0644\u062a\u062d\u0648\u064a\u0644
+currenciesDisplayName.BZD=\u062f\u0648\u0644\u0627\u0631 \u0628\u0644\u064a\u0632\u064a
+currenciesDisplayName.ESP=\u0628\u064a\u0632\u064a\u062a\u0627 \u0627\u0633\u0628\u0627\u0646\u064a
+currenciesDisplayName.KRW=\u0648\u0648\u0646 \u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
+currenciesDisplayName.NLG=\u062c\u0644\u062f\u0631 \u0647\u0648\u0644\u0646\u062f\u0649
currenciesDisplayName.MRO=\u0623\u0648\u0642\u064a\u0629 \u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0629
-currenciesDisplayName.EUR=\u064a\u0648\u0631\u0648
-currenciesDisplayName.TRY=\u0644\u064a\u0631\u0629 \u062a\u0631\u0643\u064a\u0629 \u062c\u062f\u064a\u062f\u0629
-currenciesDisplayName.GBP=\u062c\u0646\u064a\u0647 \u0633\u062a\u0631\u0644\u064a\u0646\u064a
+currenciesDisplayName.BAD=\u062f\u064a\u0646\u0627\u0631 \u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648 \u0627\u0644\u0647\u0631\u0633\u0643
+currenciesDisplayName.ZWD=\u062f\u0648\u0644\u0627\u0631 \u0632\u0645\u0628\u0627\u0628\u0648\u0649
+currenciesDisplayName.SEK=\u0643\u0631\u0648\u0646\u0629 \u0633\u0648\u064a\u062f\u064a\u0629
+currenciesDisplayName.CSK=\u0643\u0631\u0648\u0646\u0629 \u062a\u0634\u064a\u0643\u0648\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0627
+currenciesDisplayName.BYR=\u0631\u0648\u0628\u0644 \u0628\u064a\u0644\u0627\u0631\u0648\u0633\u064a
+currenciesDisplayName.IRR=\u0631\u064a\u0627\u0644 \u0627\u064a\u0631\u0627\u0646\u0649
+currenciesDisplayName.PKR=\u0631\u0648\u0628\u064a\u0629 \u0628\u0627\u0643\u0633\u062a\u0627\u0646\u064a
+currenciesDisplayName.BMD=\u062f\u0648\u0644\u0627\u0631 \u0628\u0631\u0645\u0648\u062f\u064a
+currenciesDisplayName.CSD=\u062f\u064a\u0646\u0627\u0631 \u0635\u0631\u0628\u0649
currenciesSymbol.OMR=\u0631.\u0639.\u200f
-currenciesSymbol.QAR=\u0631.\u0642.\u200f
currenciesSymbol.INR=.\u200f\u0631.\u0647
+currenciesSymbol.QAR=\u0631.\u0642.\u200f
currenciesSymbol.KMF=.\u200f\u0641.\u062c.\u0642
currenciesSymbol.MAD=\u062f.\u0645.\u200f
currenciesSymbol.SAR=\u0631.\u0633.\u200f
currenciesSymbol.XAF=.\u200f\u0641.\u0627
currenciesSymbol.SDP=\u062c.\u0633.\u200f
currenciesSymbol.JOD=\u062f.\u0623.\u200f
-currenciesSymbol.IQD=\u062f.\u0639.\u200f
currenciesSymbol.SYP=\u0644.\u0633.\u200f
-currenciesSymbol.BHD=\u062f.\u0628.\u200f
+currenciesSymbol.IQD=\u062f.\u0639.\u200f
currenciesSymbol.TND=\u062f.\u062a.\u200f
+currenciesSymbol.BHD=\u062f.\u0628.\u200f
currenciesSymbol.SDD=.\u200f\u062f.\u0633
currenciesSymbol.EGP=\u062c.\u0645.\u200f
currenciesSymbol.KWD=\u062f.\u0643.\u200f
-currenciesSymbol.CNY=.\u200f\u064a.\u0635
-currenciesSymbol.XXX=XXX\u200f
+currenciesSymbol.CNY=\u0649.\u0635
+currenciesSymbol.XXX=***
+currenciesSymbol.DZD=\u062f.\u062c.\u200f
currenciesSymbol.LBP=\u0644.\u0644.\u200f
currenciesSymbol.BRL=.\u200f\u0631.\u0628
-currenciesSymbol.DZD=\u062f.\u062c.\u200f
currenciesSymbol.MRO=.\u200f\u0623.\u0645
currenciesSymbol.LYD=\u062f.\u0644.\u200f
currenciesSymbol.RUB=\u0631.\u0631.\u200f
currenciesSymbol.YER=\u0631.\u064a.\u200f
currenciesSymbol.AED=\u062f.\u0625.\u200f
-shortMonths=\u064a\u0646\u0627\u064a\u0631®\u0641\u0628\u0631\u0627\u064a\u0631®\u0645\u0627\u0631\u0633®\u0623\u0628\u0631\u064a\u0644®\u0645\u0627\u064a\u0648®\u064a\u0648\u0646\u064a\u0648®\u064a\u0648\u0644\u064a\u0648®\u0623\u063a\u0633\u0637\u0633®\u0633\u0628\u062a\u0645\u0628\u0631®\u0623\u0643\u062a\u0648\u0628\u0631®\u0646\u0648\u0641\u0645\u0628\u0631®\u062f\u064a\u0633\u0645\u0628\u0631®®
-months=\u064a\u0646\u0627\u064a\u0631®\u0641\u0628\u0631\u0627\u064a\u0631®\u0645\u0627\u0631\u0633®\u0623\u0628\u0631\u064a\u0644®\u0645\u0627\u064a\u0648®\u064a\u0648\u0646\u064a\u0648®\u064a\u0648\u0644\u064a\u0648®\u0623\u063a\u0633\u0637\u0633®\u0633\u0628\u062a\u0645\u0628\u0631®\u0623\u0643\u062a\u0648\u0628\u0631®\u0646\u0648\u0641\u0645\u0628\u0631®\u062f\u064a\u0633\u0645\u0628\u0631®®
-shortWeekdays=®\u062d®\u0646®\u062b®\u0631®\u062e®\u062c®\u0633®
-weekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
-firstDayOfWeek=sat
-eras=\u0642.\u0645®\u0645®
-ampms=\u0635®\u0645®
-shortDateFormat=d/M/yyyy
-mediumDateFormat=dd/MM/yyyy
-longDateFormat=d MMMM, yyyy
-fullDateFormat=EEEE, d MMMM, yyyy
+shortMonths=\u064a\u0646\u0627\u064a\u0631\u00ae\u0641\u0628\u0631\u0627\u064a\u0631\u00ae\u0645\u0627\u0631\u0633\u00ae\u0623\u0628\u0631\u064a\u0644\u00ae\u0645\u0627\u064a\u0648\u00ae\u064a\u0648\u0646\u064a\u0648\u00ae\u064a\u0648\u0644\u064a\u0648\u00ae\u0623\u063a\u0633\u0637\u0633\u00ae\u0633\u0628\u062a\u0645\u0628\u0631\u00ae\u0623\u0643\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0641\u0645\u0628\u0631\u00ae\u062f\u064a\u0633\u0645\u0628\u0631\u00ae\u00ae
+months=\u064a\u0646\u0627\u064a\u0631\u00ae\u0641\u0628\u0631\u0627\u064a\u0631\u00ae\u0645\u0627\u0631\u0633\u00ae\u0623\u0628\u0631\u064a\u0644\u00ae\u0645\u0627\u064a\u0648\u00ae\u064a\u0648\u0646\u064a\u0648\u00ae\u064a\u0648\u0644\u064a\u0648\u00ae\u0623\u063a\u0633\u0637\u0633\u00ae\u0633\u0628\u062a\u0645\u0628\u0631\u00ae\u0623\u0643\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0641\u0645\u0628\u0631\u00ae\u062f\u064a\u0633\u0645\u0628\u0631\u00ae\u00ae
+shortWeekdays=\u00ae\u0623\u062d\u062f\u00ae\u0627\u062b\u0646\u064a\u0646\u00ae\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u062e\u0645\u064a\u0633\u00ae\u062c\u0645\u0639\u0629\u00ae\u0633\u0628\u062a\u00ae
+weekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
+eras=\u0642.\u0645\u00ae\u0645\u00ae
+ampms=\u0635\u00ae\u0645\u00ae
+shortDateFormat=d\u200f/M\u200f/yyyy
+mediumDateFormat=dd\u200f/MM\u200f/yyyy
+longDateFormat=d MMMM\u060c yyyy
+fullDateFormat=EEEE\u060c d MMMM\u060c yyyy
shortTimeFormat=h:mm a
mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
+longTimeFormat=z h:mm:ss a
fullTimeFormat=z h:mm:ss a
-territories.TJ=\u062a\u0627\u062c\u064a\u0643\u0633\u062a\u0627\u0646
+territories.TL=\u062a\u064a\u0645\u0648\u0631 \u0627\u0644\u0634\u0631\u0642\u064a\u0629
+territories.TK=\u062a\u0648\u0643\u064a\u0644\u0648
+territories.TJ=\u0637\u0627\u062c\u0643\u0633\u062a\u0627\u0646
territories.TH=\u062a\u0627\u064a\u0644\u0646\u062f
-territories.TG=\u062a\u0648\u063a\u0648
-territories.GY=\u063a\u0648\u0627\u064a\u0627\u0646\u0627
+territories.TG=\u062a\u0648\u062c\u0648
+territories.TF=\u0627\u0644\u0645\u0642\u0627\u0637\u0639\u0627\u062a \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629
+territories.GY=\u063a\u064a\u0627\u0646\u0627
territories.TD=\u062a\u0634\u0627\u062f
+territories.TC=\u062c\u0632\u0631 \u0627\u0644\u062a\u0631\u0643 \u0648\u062c\u0627\u064a\u0643\u0648\u0633
territories.GW=\u063a\u064a\u0646\u064a\u0627 \u0628\u064a\u0633\u0627\u0648
-territories.GT=\u063a\u0648\u0627\u062a\u064a\u0645\u0627\u0644\u0627
+territories.GU=\u062c\u0648\u0627\u0645
+territories.GT=\u062c\u0648\u0627\u062a\u064a\u0645\u0627\u0644\u0627
+territories.GS=\u062c\u0648\u0631\u062c\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 \u0648\u062c\u0632\u0631 \u0633\u0627\u0646\u062f\u0648\u064a\u062a\u0634 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
territories.GR=\u0627\u0644\u064a\u0648\u0646\u0627\u0646
territories.GQ=\u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u0627\u0633\u062a\u0648\u0627\u0626\u064a\u0629
+territories.GP=\u062c\u0648\u0627\u062f\u0644\u0648\u0628
territories.SZ=\u0633\u0648\u0627\u0632\u064a\u0644\u0627\u0646\u062f
-territories.SY=\u0633\u0648\u0631\u064a\u0629
+territories.SY=\u0633\u0648\u0631\u064a\u0627
territories.GN=\u063a\u064a\u0646\u064a\u0627
territories.GM=\u063a\u0627\u0645\u0628\u064a\u0627
+territories.GL=\u062c\u0631\u064a\u0646\u0644\u0627\u0646\u062f
territories.SV=\u0627\u0644\u0633\u0644\u0641\u0627\u062f\u0648\u0631
-territories.ST=\u0633\u0627\u0646 \u062a\u0648\u0645\u064a \u0648\u0628\u0631\u064a\u0646\u0633\u064a\u0628\u064a
+territories.062=\u062c\u0646\u0648\u0628 \u0648\u0633\u0637 \u0622\u0633\u064a\u0627
+territories.ST=\u0633\u0627\u0648 \u062a\u0648\u0645\u064a \u0648\u0628\u0631\u064a\u0646\u0633\u064a\u0628\u064a
+territories.GI=\u062c\u0628\u0644 \u0637\u0627\u0631\u0642
+territories.061=\u0628\u0648\u0644\u064a\u0646\u064a\u0632\u064a\u0627
territories.GH=\u063a\u0627\u0646\u0627
territories.SR=\u0633\u0648\u0631\u064a\u0646\u0627\u0645
+territories.GF=\u063a\u0648\u064a\u0627\u0646\u0627
territories.GE=\u062c\u0648\u0631\u062c\u064a\u0627
territories.SO=\u0627\u0644\u0635\u0648\u0645\u0627\u0644
-territories.GD=\u063a\u0631\u064a\u0646\u0627\u062f\u0627
+territories.GD=\u062c\u0631\u064a\u0646\u0627\u062f\u0627
territories.SN=\u0627\u0644\u0633\u0646\u063a\u0627\u0644
territories.SM=\u0633\u0627\u0646 \u0645\u0627\u0631\u064a\u0646\u0648
territories.GB=\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629
territories.SL=\u0633\u064a\u0631\u0627\u0644\u064a\u0648\u0646
-territories.GA=\u063a\u0627\u0628\u0648\u0646
+territories.GA=\u0627\u0644\u062c\u0627\u0628\u0648\u0646
territories.SK=\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0627
+territories.SJ=\u0633\u0641\u0627\u0644\u0628\u0627\u0631\u062f \u0648\u062c\u0627\u0646 \u0645\u0627\u064a\u0627\u0646
territories.SI=\u0633\u0644\u0648\u0641\u064a\u0646\u064a\u0627
+territories.SH=\u0633\u0627\u0646\u062a \u0647\u064a\u0644\u0646\u0627
territories.SG=\u0633\u0646\u063a\u0627\u0641\u0648\u0631\u0629
territories.SE=\u0627\u0644\u0633\u0648\u064a\u062f
territories.SD=\u0627\u0644\u0633\u0648\u062f\u0627\u0646
territories.SC=\u0633\u064a\u0634\u0644
territories.SB=\u062c\u0632\u0631 \u0633\u0644\u064a\u0645\u0627\u0646
-territories.SA=\u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629
+territories.SA=\u0627\u0644\u0645\u0645\u0644\u0643\u0629 \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0633\u0639\u0648\u062f\u064a\u0629
territories.FR=\u0641\u0631\u0646\u0633\u0627
+territories.FO=\u062c\u0632\u0631 \u0641\u0627\u0631\u0648
+territories.057=\u0627\u0644\u062c\u0632\u0631 \u0627\u0644\u0645\u064a\u0643\u0631\u0648\u0646\u064a\u0632\u064a\u0629
territories.FM=\u0645\u064a\u0643\u0631\u0648\u0646\u064a\u0632\u064a\u0627
territories.RW=\u0631\u0648\u0627\u0646\u062f\u0627
+territories.054=\u0645\u064a\u0644\u0627\u0646\u064a\u0632\u064a\u0627
+territories.FK=\u062c\u0632\u0631 \u0641\u0648\u0643\u0644\u0627\u0646\u062f
+territories.053=\u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0627 \u0648\u0646\u064a\u0648\u0632\u064a\u0644\u0646\u062f\u0627
territories.RU=\u0631\u0648\u0633\u064a\u0627
territories.FJ=\u0641\u064a\u062c\u064a
territories.FI=\u0641\u0646\u0644\u0646\u062f\u0627
+territories.RS=\u0635\u0631\u0628\u064a\u0627
territories.RO=\u0631\u0648\u0645\u0627\u0646\u064a\u0627
-territories.ET=\u0627\u062b\u064a\u0648\u0628\u064a\u0627
-territories.ES=\u0627\u0633\u0628\u0627\u0646\u064a\u0627
-territories.ER=\u0627\u0631\u062a\u064a\u0631\u064a\u0627
+territories.RE=\u0631\u0648\u064a\u0646\u064a\u0648\u0646
+territories.ET=\u0625\u062b\u064a\u0648\u0628\u064a\u0627
+territories.ES=\u0623\u0633\u0628\u0627\u0646\u064a\u0627
+territories.ER=\u0623\u0631\u064a\u062a\u0631\u064a\u0627
+territories.QU=\u0627\u0644\u0627\u062a\u062d\u0627\u062f \u0627\u0644\u0623\u0648\u0631\u0648\u0628\u064a
territories.EH=\u0627\u0644\u0635\u062d\u0631\u0627\u0621 \u0627\u0644\u063a\u0631\u0628\u064a\u0629
territories.EG=\u0645\u0635\u0631
territories.EE=\u0627\u0633\u062a\u0648\u0646\u064a\u0627
-territories.EC=\u0627\u0643\u0648\u0627\u062f\u0648\u0631
+territories.QO=\u0623\u0648\u0642\u064a\u0627\u0646\u0648\u0633\u064a\u0627 \u0627\u0644\u0646\u0627\u0626\u064a\u0629
+territories.EC=\u0627\u0644\u0625\u0643\u0648\u0627\u062f\u0648\u0631
territories.DZ=\u0627\u0644\u062c\u0632\u0627\u0626\u0631
territories.QA=\u0642\u0637\u0631
-territories.DO=\u0627\u0644\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u062f\u0648\u0645\u064a\u0646\u064a\u0643\u064a\u0629
-territories.PY=\u0628\u0627\u0631\u0627\u063a\u0648\u0627\u064a
+territories.039=\u062c\u0646\u0648\u0628 \u0623\u0648\u0631\u0648\u0628\u0627
+territories.DO=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u062f\u0648\u0645\u064a\u0646\u064a\u0643
+territories.PY=\u0628\u0627\u0631\u0627\u062c\u0648\u0627\u064a
territories.DM=\u062f\u0648\u0645\u064a\u0646\u064a\u0643\u0627
+territories.035=\u062c\u0646\u0648\u0628 \u0634\u0631\u0642 \u0622\u0633\u064a\u0627
territories.PW=\u0628\u0627\u0644\u0627\u0648
+territories.034=\u062c\u0646\u0648\u0628 \u0622\u0633\u064a\u0627
territories.DK=\u0627\u0644\u062f\u0627\u0646\u0645\u0631\u0643
territories.DJ=\u062c\u064a\u0628\u0648\u062a\u064a
territories.PT=\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644
territories.PS=\u0641\u0644\u0633\u0637\u064a\u0646
-territories.DE=\u0627\u0644\u0645\u0627\u0646\u064a\u0627
+territories.030=\u0634\u0631\u0642 \u0622\u0633\u064a\u0627
+territories.PR=\u0628\u0648\u0631\u062a\u0648\u0631\u064a\u0643\u0648
+territories.DE=\u0623\u0644\u0645\u0627\u0646\u064a\u0627
+territories.PN=\u0628\u062a\u0643\u0627\u064a\u0631\u0646
+territories.PM=\u0633\u0627\u0646\u062a \u0628\u064a\u064a\u0631 \u0648\u0645\u064a\u0643\u0648\u0644\u0648\u0646
territories.PL=\u0628\u0648\u0644\u0646\u062f\u0627
-territories.PK=\u0627\u0644\u0628\u0627\u0643\u0633\u062a\u0627\u0646
+territories.PK=\u0628\u0627\u0643\u0633\u062a\u0627\u0646
territories.PH=\u0627\u0644\u0641\u064a\u0644\u0628\u064a\u0646
territories.PG=\u0628\u0627\u0628\u0648\u0627 \u063a\u064a\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629
+territories.PF=\u0628\u0648\u0644\u064a\u0646\u064a\u0632\u064a\u0627 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629
territories.CZ=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u062a\u0634\u064a\u0643
-territories.CY=\u0642\u0628\u0631\u0635
territories.PE=\u0628\u064a\u0631\u0648
-territories.CV=\u0627\u0644\u0631\u0623\u0633 \u0627\u0644\u0627\u062e\u0636\u0631
-territories.CU=\u0643\u0648\u0628\u0627
+territories.CY=\u0642\u0628\u0631\u0635
+territories.CX=\u062c\u0632\u064a\u0631\u0629 \u0627\u0644\u0643\u0631\u064a\u0633\u0645\u0627\u0633
+territories.CV=\u0627\u0644\u0631\u0623\u0633 \u0627\u0644\u0623\u062e\u0636\u0631
territories.PA=\u0628\u0646\u0645\u0627
+territories.CU=\u0643\u0648\u0628\u0627
+territories.CS=\u0635\u0631\u0628\u064a\u0627 \u0648\u0627\u0644\u062c\u0628\u0644 \u0627\u0644\u0623\u0633\u0648\u062f
territories.CR=\u0643\u0648\u0633\u062a\u0627\u0631\u064a\u0643\u0627
+territories.029=\u0627\u0644\u0643\u0627\u0631\u064a\u0628\u064a
territories.CO=\u0643\u0648\u0644\u0648\u0645\u0628\u064a\u0627
territories.CN=\u0627\u0644\u0635\u064a\u0646
territories.CM=\u0627\u0644\u0643\u0627\u0645\u064a\u0631\u0648\u0646
-territories.CL=\u062a\u0634\u064a\u0644\u064a
+territories.CL=\u0634\u064a\u0644\u064a
+territories.CK=\u062c\u0632\u0631 \u0643\u0648\u0643
+territories.021=\u0634\u0645\u0627\u0644 \u0623\u0645\u0631\u064a\u0643\u0627
+territories.CI=\u0633\u0627\u062d\u0644 \u0627\u0644\u0639\u0627\u062c
territories.CH=\u0633\u0648\u064a\u0633\u0631\u0627
-territories.CG=\u0627\u0644\u0643\u0648\u0646\u063a\u0648
-territories.CF=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0641\u0631\u064a\u0642\u064a\u0627 \u0627\u0644\u0648\u0633\u0637\u0649
+territories.CG=\u0627\u0644\u0643\u0648\u0646\u063a\u0648 - \u0628\u0631\u0627\u0632\u0627\u0641\u064a\u0644
+territories.CF=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0625\u0641\u0631\u064a\u0642\u064a\u0627 \u0627\u0644\u0648\u0633\u0637\u0649
+territories.CD=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u0627\u0644\u0643\u0648\u0646\u063a\u0648 \u0627\u0644\u062f\u064a\u0645\u0642\u0631\u0627\u0637\u064a\u0629
+territories.CC=\u062c\u0632\u0631 \u0643\u0648\u0643\u0648\u0633
territories.OM=\u0639\u0645\u0627\u0646
territories.CA=\u0643\u0646\u062f\u0627
+territories.419=\u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629 \u0648 \u0627\u0644\u0643\u0627\u0631\u064a\u0628\u064a
territories.BZ=\u0628\u0644\u064a\u0632
territories.BY=\u0631\u0648\u0633\u064a\u0627 \u0627\u0644\u0628\u064a\u0636\u0627\u0621
-territories.BW=\u0628\u0648\u062a\u0633\u0648\u0627\u0646\u0627
+territories.BW=\u0628\u062a\u0633\u0648\u0627\u0646\u0627
+territories.BV=\u062c\u0632\u064a\u0631\u0629 \u0628\u0648\u0641\u064a\u0647
territories.BT=\u0628\u0648\u062a\u0627\u0646
-territories.BS=\u0627\u0644\u0628\u0647\u0627\u0645\u0627
+territories.BS=\u0627\u0644\u0628\u0627\u0647\u0627\u0645\u0627
territories.BR=\u0627\u0644\u0628\u0631\u0627\u0632\u064a\u0644
+territories.019=\u0627\u0644\u0623\u0645\u0631\u064a\u0643\u062a\u064a\u0646
+territories.018=\u062c\u0646\u0648\u0628 \u0625\u0641\u0631\u064a\u0642\u064a\u0627
+territories.NZ=\u0646\u064a\u0648\u0632\u064a\u0644\u0627\u0646\u062f\u0627
+territories.017=\u0648\u0633\u0637 \u0625\u0641\u0631\u064a\u0642\u064a\u0627
territories.BO=\u0628\u0648\u0644\u064a\u0641\u064a\u0627
-territories.NZ=\u0632\u064a\u0644\u0646\u062f\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629
territories.BN=\u0628\u0631\u0648\u0646\u0627\u064a
+territories.015=\u0634\u0645\u0627\u0644 \u0625\u0641\u0631\u064a\u0642\u064a\u0627
+territories.BM=\u0628\u0631\u0645\u0648\u062f\u0627
+territories.014=\u0634\u0631\u0642 \u0625\u0641\u0631\u064a\u0642\u064a\u0627
+territories.013=\u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u0648\u0633\u0637\u0649
+territories.NU=\u0646\u064a\u0648\u064a
territories.BJ=\u0628\u0646\u064a\u0646
+territories.011=\u063a\u0631\u0628 \u0625\u0641\u0631\u064a\u0642\u064a\u0627
territories.BI=\u0628\u0648\u0631\u0648\u0646\u062f\u064a
+territories.172=\u0643\u0648\u0645\u0646\u0648\u0644\u062b \u0627\u0644\u062f\u0648\u0644 \u0627\u0644\u0645\u0633\u062a\u0642\u0644\u0629
territories.BH=\u0627\u0644\u0628\u062d\u0631\u064a\u0646
+territories.NR=\u0646\u0648\u0631\u0648
territories.BG=\u0628\u0644\u063a\u0627\u0631\u064a\u0627
-territories.NR=\u0646\u0627\u0648\u0631\u0648
territories.BF=\u0628\u0648\u0631\u0643\u064a\u0646\u0627 \u0641\u0627\u0633\u0648
+territories.NP=\u0646\u064a\u0628\u0627\u0644
territories.BE=\u0628\u0644\u062c\u064a\u0643\u0627
-territories.NP=\u0627\u0644\u0646\u064a\u0628\u0627\u0644
-territories.BD=\u0628\u0646\u063a\u0644\u0627\u062f\u064a\u0634
+territories.ZZ=\u0645\u0646\u0637\u0642\u0629 \u063a\u064a\u0631 \u0645\u0639\u0631\u0641\u0629
territories.NO=\u0627\u0644\u0646\u0631\u0648\u064a\u062c
+territories.BD=\u0628\u0646\u062c\u0644\u0627\u062f\u064a\u0634
territories.BB=\u0628\u0631\u0628\u0627\u062f\u0648\u0633
territories.ZW=\u0632\u064a\u0645\u0628\u0627\u0628\u0648\u064a
-territories.BA=\u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648\u0627\u0644\u0647\u0631\u0633\u0643
territories.NL=\u0647\u0648\u0644\u0646\u062f\u0627
-territories.NI=\u0646\u064a\u0643\u0627\u0631\u0627\u063a\u0648\u0627
+territories.BA=\u0627\u0644\u0628\u0648\u0633\u0646\u0629 \u0648\u0627\u0644\u0647\u0631\u0633\u0643
+territories.NI=\u0646\u064a\u0643\u0627\u0631\u0627\u062c\u0648\u0627
territories.NG=\u0646\u064a\u062c\u064a\u0631\u064a\u0627
-territories.AZ=\u0622\u0630\u0631\u0628\u064a\u062c\u0627\u0646
+territories.NF=\u062c\u0632\u064a\u0631\u0629 \u0646\u0648\u0631\u0641\u0648\u0643
+territories.AZ=\u0623\u0630\u0631\u0628\u064a\u062c\u0627\u0646
territories.NE=\u0627\u0644\u0646\u064a\u062c\u0631
+territories.AX=\u062c\u0632\u0631 \u0623\u0648\u0644\u0627\u0646
+territories.NC=\u0643\u0627\u0644\u064a\u062f\u0648\u0646\u064a\u0627 \u0627\u0644\u062c\u062f\u064a\u062f\u0629
+territories.AW=\u0622\u0631\u0648\u0628\u0627
territories.ZM=\u0632\u0627\u0645\u0628\u064a\u0627
territories.NA=\u0646\u0627\u0645\u064a\u0628\u064a\u0627
-territories.AU=\u0627\u0633\u062a\u0631\u0627\u0644\u064a\u0627
+territories.AU=\u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0627
territories.AT=\u0627\u0644\u0646\u0645\u0633\u0627
-territories.AR=\u0627\u0644\u0627\u0631\u062c\u0646\u062a\u064a\u0646
-territories.AO=\u0627\u0646\u063a\u0648\u0644\u0627
+territories.AS=\u0633\u0627\u0645\u0648\u0627 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629
+territories.AR=\u0627\u0644\u0623\u0631\u062c\u0646\u062a\u064a\u0646
+territories.AQ=\u0627\u0644\u0642\u0637\u0628 \u0627\u0644\u062c\u0646\u0648\u0628\u064a
+territories.009=\u0623\u0648\u0642\u064a\u0627\u0646\u0648\u0633\u064a\u0627
territories.MZ=\u0645\u0648\u0632\u0645\u0628\u064a\u0642
+territories.AO=\u0623\u0646\u062c\u0648\u0644\u0627
territories.MY=\u0645\u0627\u0644\u064a\u0632\u064a\u0627
-territories.AM=\u0627\u0631\u0645\u064a\u0646\u064a\u0627
+territories.AN=\u062c\u0632\u0631 \u0627\u0644\u0623\u0646\u062a\u064a\u0644 \u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u0629
territories.MX=\u0627\u0644\u0645\u0643\u0633\u064a\u0643
+territories.AM=\u0623\u0631\u0645\u064a\u0646\u064a\u0627
+territories.005=\u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
territories.MW=\u0645\u0644\u0627\u0648\u064a
-territories.MV=\u0645\u0627\u0644\u062f\u064a\u0641
-territories.ZA=\u062c\u0646\u0648\u0628 \u0627\u0641\u0631\u064a\u0642\u064a\u0627
-territories.MU=\u0645\u0648\u0631\u064a\u0634\u0648\u0633
-territories.AI=\u0627\u0644\u0628\u0627\u0646\u064a\u0627
-territories.MT=\u0645\u0627\u0644\u0637\u0629
-territories.AG=\u0627\u0646\u062a\u064a\u063a\u0648\u0627 \u0648\u0628\u0631\u0628\u0648\u062f\u0627
+territories.AL=\u0623\u0644\u0628\u0627\u0646\u064a\u0627
+territories.MV=\u062c\u0632\u0631 \u0627\u0644\u0645\u0644\u062f\u064a\u0641
+territories.003=\u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
+territories.ZA=\u062c\u0645\u0647\u0648\u0631\u064a\u0629 \u062c\u0646\u0648\u0628 \u0627\u0641\u0631\u064a\u0642\u064a\u0627
+territories.MU=\u0645\u0648\u0631\u064a\u0634\u064a\u0648\u0633
+territories.002=\u0623\u0641\u0631\u064a\u0642\u064a\u0627
+territories.MT=\u0645\u0627\u0644\u0637\u0627
+territories.AI=\u0623\u0646\u062c\u0648\u064a\u0644\u0627
+territories.001=\u0627\u0644\u0639\u0627\u0644\u0645
+territories.MS=\u0645\u0648\u0646\u062a\u0633\u0631\u0627\u062a
territories.MR=\u0645\u0648\u0631\u064a\u062a\u0627\u0646\u064a\u0627
-territories.AF=\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646
-territories.AE=\u0627\u0644\u0627\u0645\u0627\u0631\u0627\u062a \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629
-territories.AD=\u0627\u0646\u062f\u0648\u0631\u0627
+territories.AG=\u0623\u0646\u062a\u064a\u062c\u0648\u0627 \u0648\u0628\u0631\u0628\u0648\u062f\u0627
+territories.MQ=\u0645\u0627\u0631\u062a\u064a\u0646\u064a\u0643
+territories.AF=\u0623\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646
+territories.MP=\u062c\u0632\u0631 \u0645\u0627\u0631\u064a\u0627\u0646\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
+territories.AE=\u0627\u0644\u0625\u0645\u0627\u0631\u0627\u062a \u0627\u0644\u0639\u0631\u0628\u064a\u0629 \u0627\u0644\u0645\u062a\u062d\u062f\u0629
+territories.MO=\u0645\u0627\u0643\u0627\u0648
+territories.AD=\u0623\u0646\u062f\u0648\u0631\u0627
territories.MN=\u0645\u0646\u063a\u0648\u0644\u064a\u0627
territories.MM=\u0645\u064a\u0627\u0646\u0645\u0627\u0631
territories.ML=\u0645\u0627\u0644\u064a
territories.MK=\u0645\u0642\u062f\u0648\u0646\u064a\u0627
+territories.YT=\u0645\u0627\u064a\u0648\u062a
territories.MH=\u062c\u0632\u0631 \u0627\u0644\u0645\u0627\u0631\u0634\u0627\u0644
territories.MG=\u0645\u062f\u063a\u0634\u0642\u0631
-territories.MD=\u0645\u0648\u0644\u062f\u0648\u0641\u0627
+territories.MF=\u0633\u0627\u0646\u062a \u0645\u0627\u0631\u062a\u064a\u0646
+territories.ME=\u0627\u0644\u062c\u0628\u0644 \u0627\u0644\u0623\u0633\u0648\u062f
+territories.MD=\u0645\u0648\u0644\u062f\u0627\u0641\u064a\u0627
territories.MC=\u0645\u0648\u0646\u0627\u0643\u0648
territories.MA=\u0627\u0644\u0645\u063a\u0631\u0628
territories.YE=\u0627\u0644\u064a\u0645\u0646
territories.LY=\u0644\u064a\u0628\u064a\u0627
territories.LV=\u0644\u0627\u062a\u0641\u064a\u0627
-territories.LU=\u0644\u0648\u0643\u0633\u0648\u0645\u0628\u0631\u063a
+territories.155=\u063a\u0631\u0628 \u0623\u0648\u0631\u0648\u0628\u0627
+territories.LU=\u0644\u0648\u0643\u0633\u0645\u0628\u0648\u0631\u062c
+territories.154=\u0634\u0645\u0627\u0644 \u0623\u0648\u0631\u0648\u0628\u0627
territories.LT=\u0644\u064a\u062a\u0648\u0627\u0646\u064a\u0627
territories.LS=\u0644\u064a\u0633\u0648\u062a\u0648
territories.LR=\u0644\u064a\u0628\u064a\u0631\u064a\u0627
-territories.LK=\u0633\u0631\u064a \u0644\u0627\u0646\u0643\u0627
+territories.151=\u0634\u0631\u0642 \u0623\u0648\u0631\u0648\u0628\u0627
+territories.150=\u0623\u0648\u0631\u0648\u0628\u0627
+territories.LK=\u0633\u0631\u064a\u0644\u0627\u0646\u0643\u0627
territories.LI=\u0644\u064a\u062e\u062a\u0646\u0634\u062a\u0627\u064a\u0646
territories.LC=\u0633\u0627\u0646\u062a \u0644\u0648\u0633\u064a\u0627
territories.LB=\u0644\u0628\u0646\u0627\u0646
territories.LA=\u0644\u0627\u0648\u0633
territories.KZ=\u0643\u0627\u0632\u0627\u062e\u0633\u062a\u0627\u0646
+territories.KY=\u062c\u0632\u0631 \u0627\u0644\u0643\u0627\u064a\u0645\u0646
territories.KW=\u0627\u0644\u0643\u0648\u064a\u062a
+territories.145=\u063a\u0631\u0628 \u0622\u0633\u064a\u0627
+territories.143=\u0648\u0633\u0637 \u0622\u0633\u064a\u0627
+territories.142=\u0622\u0633\u064a\u0627
territories.KR=\u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
territories.KP=\u0643\u0648\u0631\u064a\u0627 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
territories.KN=\u0633\u0627\u0646\u062a \u0643\u064a\u062a\u0633 \u0648\u0646\u064a\u0641\u064a\u0633
@@ -222,117 +521,554 @@ territories.KM=\u062c\u0632\u0631 \u0627\u0644\u0642\u0645\u0631
territories.KI=\u0643\u064a\u0631\u064a\u0628\u0627\u062a\u064a
territories.WS=\u0633\u0627\u0645\u0648\u0627
territories.KH=\u0643\u0645\u0628\u0648\u062f\u064a\u0627
-territories.KG=\u0642\u064a\u0631\u063a\u064a\u0632\u0633\u062a\u0627\u0646
+territories.KG=\u0642\u0631\u063a\u064a\u0632\u0633\u062a\u0627\u0646
territories.KE=\u0643\u064a\u0646\u064a\u0627
+territories.WF=\u062c\u0632\u0631 \u0648\u0627\u0644\u0633 \u0648\u0641\u0648\u062a\u0648\u0646\u0627
territories.JP=\u0627\u0644\u064a\u0627\u0628\u0627\u0646
-territories.JO=\u0627\u0644\u0627\u0631\u062f\u0646
+territories.JO=\u0627\u0644\u0623\u0631\u062f\u0646
territories.JM=\u062c\u0627\u0645\u0627\u064a\u0643\u0627
-territories.VU=\u0641\u0627\u0646\u0648\u0622\u062a\u0648
+territories.VU=\u0641\u0627\u0646\u0648\u0627\u062a\u0648
+territories.JE=\u062c\u064a\u0631\u0633\u064a
territories.VN=\u0641\u064a\u062a\u0646\u0627\u0645
+territories.VI=\u062c\u0632\u0631 \u0641\u0631\u062c\u064a\u0646 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629
+territories.VG=\u062c\u0632\u0631 \u0641\u0631\u062c\u064a\u0646 \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a\u0629
territories.VE=\u0641\u0646\u0632\u0648\u064a\u0644\u0627
-territories.VC=\u0633\u0627\u0646\u062a \u0641\u0646\u0633\u0646\u062a \u0648\u062c\u0632\u0631 \u063a\u0631\u064a\u0646\u0627\u062f\u064a\u0646
+territories.VC=\u0633\u0627\u0646\u062a \u0641\u0646\u0633\u0646\u062a \u0648\u063a\u0631\u0646\u0627\u062f\u064a\u0646
territories.VA=\u0627\u0644\u0641\u0627\u062a\u064a\u0643\u0627\u0646
-territories.IT=\u0627\u064a\u0637\u0627\u0644\u064a\u0627
-territories.IS=\u0627\u064a\u0633\u0644\u0646\u062f\u0627
-territories.IR=\u0627\u064a\u0631\u0627\u0646
+territories.IT=\u0625\u064a\u0637\u0627\u0644\u064a\u0627
+territories.IS=\u0623\u064a\u0633\u0644\u0646\u062f\u0627
+territories.IR=\u0625\u064a\u0631\u0627\u0646
territories.IQ=\u0627\u0644\u0639\u0631\u0627\u0642
-territories.UZ=\u0627\u0632\u0628\u0643\u0633\u062a\u0627\u0646
-territories.UY=\u0627\u0631\u0648\u063a\u0648\u0627\u064a
+territories.UZ=\u0623\u0648\u0632\u0628\u0643\u0633\u062a\u0627\u0646
+territories.IO=\u0627\u0644\u0645\u062d\u064a\u0637 \u0627\u0644\u0647\u0646\u062f\u064a \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a
+territories.UY=\u0623\u0648\u0631\u062c\u0648\u0627\u064a
territories.IN=\u0627\u0644\u0647\u0646\u062f
-territories.IL=\u0627\u0633\u0631\u0627\u0626\u064a\u0644
-territories.US=\u0627\u0644\u0627\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0627\u0645\u0631\u064a\u0643\u064a\u0629
-territories.IE=\u0627\u064a\u0631\u0644\u0646\u062f\u0627
+territories.IM=\u062c\u0632\u064a\u0631\u0629 \u0645\u0627\u0646
+territories.IL=\u0625\u0633\u0631\u0627\u0626\u064a\u0644
+territories.US=\u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629
+territories.IE=\u0623\u064a\u0631\u0644\u0627\u0646\u062f\u0627
territories.ID=\u0627\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0627
-territories.UG=\u0627\u0648\u063a\u0646\u062f\u0627
-territories.UA=\u0627\u0648\u0643\u0631\u0627\u0646\u064a\u0627
-territories.HU=\u0647\u0646\u063a\u0627\u0631\u064a\u0627
+territories.UM=\u062c\u0632\u0631 \u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0628\u0639\u064a\u062f\u0629 \u0627\u0644\u0635\u063a\u064a\u0631\u0629
+territories.UG=\u0623\u0648\u063a\u0646\u062f\u0627
+territories.UA=\u0623\u0648\u0643\u0631\u0627\u0646\u064a\u0627
+territories.HU=\u0627\u0644\u0645\u062c\u0631
territories.HT=\u0647\u0627\u064a\u062a\u064a
territories.HR=\u0643\u0631\u0648\u0627\u062a\u064a\u0627
territories.TZ=\u062a\u0627\u0646\u0632\u0627\u0646\u064a\u0627
territories.HN=\u0647\u0646\u062f\u0648\u0631\u0627\u0633
+territories.HM=\u062c\u0632\u064a\u0631\u0629 \u0647\u064a\u0631\u062f \u0648\u0645\u0627\u0643\u062f\u0648\u0646\u0627\u0644\u062f
territories.TW=\u062a\u0627\u064a\u0648\u0627\u0646
territories.TV=\u062a\u0648\u0641\u0627\u0644\u0648
+territories.HK=\u0647\u0648\u0646\u062c \u0643\u0648\u0646\u062c
territories.TT=\u062a\u0631\u064a\u0646\u064a\u062f\u0627\u062f \u0648\u062a\u0648\u0628\u0627\u063a\u0648
territories.TR=\u062a\u0631\u0643\u064a\u0627
-territories.TO=\u062a\u0648\u0646\u063a\u0627
+territories.TO=\u062a\u0648\u0646\u062c\u0627
territories.TN=\u062a\u0648\u0646\u0633
territories.TM=\u062a\u0631\u0643\u0645\u0627\u0646\u0633\u062a\u0627\u0646
-languages.es=\u0627\u0644\u0627\u0633\u0628\u0627\u0646\u064a\u0629
+languages.akk=\u0627\u0644\u0623\u0643\u0627\u062f\u064a\u0629
+languages.eka=\u0627\u0644\u0627\u0643\u0627\u062c\u0643
+languages.ijo=\u0627\u0644\u0627\u064a\u062c\u0648
+languages.sux=\u0627\u0644\u0633\u0648\u0645\u0627\u0631\u064a\u0629
+languages.sus=\u0627\u0644\u0633\u0648\u0633\u0648
+languages.mis=\u0644\u063a\u0627\u062a \u0645\u062a\u0646\u0648\u0639\u0629
+languages.loz=\u0627\u0644\u0644\u0648\u0632\u0649
+languages.tog=\u062a\u0648\u0646\u062c\u0627 - \u0646\u064a\u0627\u0633\u0627
+languages.pon=\u0627\u0644\u0628\u0648\u0647\u0646\u0628\u064a\u0627\u064a\u0627\u0646
+languages.min=\u0627\u0644\u0645\u064a\u0646\u0627\u0646\u062c\u0643\u0627\u0628\u0627\u0648
+languages.suk=\u0627\u0644\u0633\u0648\u0643\u0648\u0645\u0627
+languages.wo=\u0627\u0644\u0648\u0644\u0648\u0641
+languages.lol=\u0645\u0648\u0646\u062c\u0648
+languages.kut=\u0627\u0644\u0643\u062a\u064a\u0646\u0627\u0649
+languages.mic=\u0627\u0644\u0645\u064a\u0643\u0645\u0627\u0643\u064a\u0648\u0646\u064a\u0629
+languages.wa=\u0627\u0644\u0648\u0644\u0648\u0646\u064a\u0629
+languages.kum=\u0627\u0644\u0643\u0645\u064a\u0643
+languages.zap=\u0627\u0644\u0632\u0627\u0628\u0648\u062a\u064a\u0643
+languages.ain=\u0627\u0644\u0622\u064a\u0646\u0648\u064a\u0629
+languages.cus=\u0644\u063a\u0629 \u0643\u0634\u064a\u062a\u064a\u0643\u064a\u0629
+languages.jbo=\u0627\u0644\u0644\u0648\u062c\u0628\u0627\u0646
+languages.doi=\u0627\u0644\u062f\u0648\u062c\u0631\u0649
+languages.oto=\u0644\u063a\u0629 \u0623\u062a\u0648\u0645\u064a\u0629
+languages.vi=\u0627\u0644\u0641\u064a\u062a\u0646\u0627\u0645\u064a\u0629
+languages.vai=\u0627\u0644\u0641\u0627\u0649
+languages.rar=\u0627\u0644\u0631\u0627\u0631\u0648\u062a\u0648\u0646\u062c\u0627\u0646\u0649
+languages.ve=\u0627\u0644\u0641\u064a\u0646\u062f\u0627
+languages.rap=\u0627\u0644\u0631\u0627\u0628\u0627\u0646\u0649
+languages.raj=\u0627\u0644\u0631\u0627\u062c\u0627\u0633\u062b\u0627\u0646\u064a\u0629
+languages.ota=\u0627\u0644\u062a\u0631\u0643\u064a\u0629 \u0627\u0644\u0639\u062b\u0645\u0627\u0646\u064a\u0629
+languages.nzi=\u0627\u0644\u0646\u0632\u064a\u0645\u0627
+languages.nap=\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0646\u0627\u0628\u0648\u0644\u064a\u0629
+languages.uz=\u0627\u0644\u0627\u0648\u0632\u0628\u0627\u0643\u064a\u0629
+languages.uga=\u0627\u0644\u064a\u062c\u0627\u0631\u064a\u062a\u064a\u0643
+languages.tmh=\u0627\u0644\u062a\u0627\u0645\u0627\u0634\u064a\u0643
+languages.nai=\u0644\u063a\u0629 \u0647\u0646\u062f \u0623\u0645\u0631\u064a\u0643\u064a\u0629 \u0634\u0645\u0627\u0644\u064a\u0629
+languages.nah=\u0627\u0644\u0646\u0627\u0647\u064a\u0648\u062a\u0644
+languages.ur=\u0627\u0644\u0623\u0631\u062f\u064a\u0629
+languages.fat=\u0627\u0644\u0641\u0627\u0646\u062a\u0649
+languages.uk=\u0627\u0644\u0623\u0648\u0643\u0631\u0627\u0646\u064a\u0629
+languages.egy=\u0627\u0644\u0645\u0635\u0631\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.zxx=\u0628\u062f\u0648\u0646 \u0645\u062d\u062a\u0648\u0649 \u0644\u063a\u0648\u064a
+languages.ug=\u0627\u0644\u0623\u063a\u0648\u0631\u064a\u0629
+languages.fan=\u0627\u0644\u0641\u0627\u0646\u062c
+languages.ssa=\u0644\u063a\u0629 \u0646\u064a\u0644\u064a\u0629 \u0635\u062d\u0631\u0627\u0648\u064a\u0629
+languages.mga=\u0627\u0644\u0623\u064a\u0631\u0644\u0646\u062f\u064a\u0629 \u0627\u0644\u0648\u0633\u0637\u0649
+languages.bat=\u0644\u063a\u0629 \u0628\u0644\u0637\u064a\u0642\u064a\u0629
+languages.nyo=\u0627\u0644\u0646\u064a\u0648\u0631\u0648
+languages.bas=\u0627\u0644\u0628\u0627\u0633\u0627
+languages.nyn=\u0627\u0644\u0646\u064a\u0627\u0646\u0643\u0648\u0644
+languages.nym=\u0627\u0644\u0646\u064a\u0627\u0645\u0648\u064a\u0632\u0649
+languages.gsw=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 (\u0633\u0648\u064a\u0633\u0631\u0627)\u200f
+languages.hmn=\u0627\u0644\u0647\u0645\u0648\u0646\u062c\u064a\u0629
+languages.ban=\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0628\u0627\u0644\u064a\u0629
+languages.osa=\u0627\u0644\u0623\u0648\u0633\u0627\u062c
+languages.bal=\u0627\u0644\u0628\u0644\u0648\u0634\u064a\u0629
+languages.ty=\u0627\u0644\u062a\u0627\u0647\u064a\u062a\u064a\u0629
+languages.bai=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0628\u0627\u0645\u064a\u0644\u064a\u0643\u064a\u0629
+languages.tw=\u0627\u0644\u062a\u0648\u0649
+languages.srr=\u0627\u0644\u0633\u0631\u0631
+languages.tli=\u0627\u0644\u062a\u0644\u064a\u0646\u063a\u064a\u062a\u064a\u0629
+languages.tlh=\u0627\u0644\u0643\u0644\u064a\u0646\u062c\u0648\u0646
+languages.tt=\u0627\u0644\u062a\u062a\u0627\u0631\u064a\u0629
+languages.ts=\u0627\u0644\u0633\u0648\u0646\u062c\u0627
+languages.srn=\u0627\u0644\u0633\u0631\u0627\u0646\u0627\u0646 \u062a\u0648\u0646\u062c\u0648
+languages.bad=\u0627\u0644\u0628\u0627\u0646\u062f\u0627
+languages.tr=\u0627\u0644\u062a\u0631\u0643\u064a\u0629
+languages.to=\u062a\u0648\u0646\u062c\u0627 - \u062c\u0632\u0631 \u062a\u0648\u0646\u062c\u0627
+languages.tn=\u0627\u0644\u062a\u0633\u0648\u0627\u0646\u064a\u0629
+languages.tl=\u0627\u0644\u062a\u0627\u063a\u0627\u0644\u0648\u063a\u064a\u0629
+languages.tk=\u0627\u0644\u062a\u0631\u0643\u0645\u0627\u0646\u064a\u0629
+languages.ti=\u0627\u0644\u062a\u064a\u062c\u0631\u064a\u0646\u064a\u0627
+languages.th=\u0627\u0644\u062a\u0627\u064a\u0644\u0627\u0646\u062f\u064a\u0629
+languages.tg=\u0627\u0644\u0637\u0627\u062c\u064a\u0643\u064a\u0629
+languages.byn=\u0627\u0644\u0628\u0644\u064a\u0646\u064a\u0629
+languages.te=\u0627\u0644\u062a\u064a\u0644\u062c\u0648
+languages.kro=\u0627\u0644\u0643\u0631\u0648
+languages.csb=\u0627\u0644\u0643\u0627\u0634\u0628\u0627\u064a\u0627\u0646
+languages.ta=\u0627\u0644\u062a\u0627\u0645\u064a\u0644\u064a\u0629
+languages.krl=\u0627\u0644\u0643\u0631\u064a\u0644\u064a\u0629
+languages.tkl=\u0627\u0644\u062a\u0648\u0643\u064a\u0644\u0627\u0648
+languages.efi=\u0627\u0644\u0627\u0641\u064a\u0643
+languages.sw=\u0627\u0644\u0633\u0648\u0627\u062d\u0644\u064a\u0629
+languages.sv=\u0627\u0644\u0633\u0648\u064a\u062f\u064a\u0629
+languages.su=\u0627\u0644\u0633\u0646\u062f\u064a\u0629
+languages.krc=\u0627\u0644\u0643\u0627\u0631\u0627\u062a\u0634\u0627\u0649-\u0628\u0627\u0644\u0643\u0627\u0631
+languages.st=\u0627\u0644\u0633\u0648\u062a\u0648 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
+languages.ss=\u0627\u0644\u0633\u0648\u0627\u062a\u0649
+languages.sr=\u0627\u0644\u0635\u0631\u0628\u064a\u0629
+languages.sq=\u0627\u0644\u0623\u0644\u0628\u0627\u0646\u064a\u0629
+languages.men=\u0627\u0644\u0645\u064a\u0646\u062f
+languages.crp=\u0627\u0644\u0643\u0631\u064a\u064a\u0648\u0644\u0649 \u0648 \u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u0628\u0633\u0637\u0629 \u0627\u0644\u0623\u062e\u0631\u0649 \u0644\u0644\u062a\u0641\u0627\u0647\u0645 \u0628\u064a\u0646 \u0627\u0644\u0634\u0639\u0648\u0628 - \u0623\u062e\u0631\u0649
+languages.so=\u0627\u0644\u0635\u0648\u0645\u0627\u0644\u064a\u0629
+languages.afh=\u0627\u0644\u0623\u0641\u0631\u064a\u0647\u064a\u0644\u064a\u0629
+languages.sn=\u0627\u0644\u0634\u0648\u0646\u0627
+languages.sm=\u0627\u0644\u0633\u0627\u0645\u0648\u0627\u0626\u064a\u0629
+languages.sl=\u0627\u0644\u0633\u0644\u0648\u0641\u0627\u0646\u064a\u0629
+languages.grc=\u0627\u0644\u064a\u0648\u0646\u0627\u0646\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.sk=\u0627\u0644\u0633\u0644\u0648\u0641\u0627\u0643\u064a\u0629
+languages.grb=\u0627\u0644\u062c\u0631\u064a\u0628\u0648
+languages.si=\u0627\u0644\u0633\u0631\u064a\u0644\u0627\u0646\u0643\u064a\u0629
+languages.crh=\u062a\u0631\u0643\u064a\u0629 \u0643\u0631\u064a\u0645\u064a\u0646\u064a\u0629
+languages.afa=\u0644\u063a\u0629 \u0623\u0641\u0631\u0648 \u0622\u0633\u064a\u0648\u064a\u0629
+languages.sg=\u0627\u0644\u0633\u0627\u0646\u062c\u0648
+languages.se=\u0627\u0644\u0633\u0627\u0645\u064a \u0627\u0644\u0634\u0645\u0627\u0644\u0649
+languages.sd=\u0627\u0644\u0633\u064a\u0646\u062f\u0649
+languages.udm=\u0627\u0644\u0623\u062f\u0645\u0631\u062a
+languages.sc=\u0627\u0644\u0633\u0631\u062f\u064a\u0646\u064a\u0629
+languages.sa=\u0627\u0644\u0633\u0646\u0633\u0643\u0631\u064a\u062a\u064a\u0629
+languages.rw=\u0627\u0644\u0643\u064a\u0646\u064a\u0627\u0631\u0648\u0627\u0646\u062f\u0627
+languages.nwc=\u0627\u0644\u0646\u0648\u0627\u0631\u064a\u0629 \u0627\u0644\u062a\u0642\u0644\u064a\u062f\u064a\u0629
+languages.ru=\u0627\u0644\u0631\u0648\u0633\u064a\u0629
+languages.mdr=\u0627\u0644\u0645\u0627\u0646\u062f\u0627\u0631
+languages.ro=\u0627\u0644\u0631\u0648\u0645\u0627\u0646\u064a\u0629
+languages.rn=\u0627\u0644\u0631\u0646\u062f\u0649
+languages.rm=\u0627\u0644\u0631\u0647\u0627\u064a\u062a\u0648-\u0631\u0648\u0645\u0627\u0646\u0633
+languages.fr_CH=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629 (\u0633\u0648\u064a\u0633\u0631\u0627)\u200f
+languages.mdf=\u0627\u0644\u0645\u0648\u0643\u0634\u0627
+languages.tiv=\u0627\u0644\u062a\u064a\u0641
+languages.fr_CA=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629 \u0627\u0644\u0643\u0646\u062f\u064a\u0629
+languages.ady=\u0627\u0644\u0623\u062f\u064a\u062c\u0647
+languages.zun=\u0627\u0644\u0632\u0648\u0646\u064a\u0629
+languages.kpe=\u0627\u0644\u0643\u0628\u064a\u0644
+languages.qu=\u0627\u0644\u0643\u0648\u064a\u062a\u0634\u0648\u0627
+languages.tig=\u0627\u0644\u062a\u064a\u062c\u0631
+languages.son=\u0627\u0644\u0633\u0648\u0646\u062c\u0647\u0627\u0649
+languages.cpp=\u0627\u0644\u0643\u0631\u064a\u064a\u0648\u0644\u0649 \u0648 \u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u0628\u0633\u0637\u0629 \u0627\u0644\u0623\u062e\u0631\u0649 \u0644\u0644\u062a\u0641\u0627\u0647\u0645 \u0628\u064a\u0646 \u0627\u0644\u0634\u0639\u0648\u0628 \u0639\u0644\u0649 \u0623\u0633\u0627\u0633 \u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629
+languages.rup=\u0627\u0644\u0623\u0631\u0648\u0645\u0627\u0646\u064a\u0627\u0646
+languages.sog=\u0627\u0644\u0633\u0648\u062c\u062f\u064a\u0646
+languages.ada=\u0627\u0644\u0623\u062f\u0627\u0646\u062c\u0645\u064a\u0629
+languages.kos=\u0627\u0644\u0643\u0648\u0633\u0631\u0627\u064a\u0646
+languages.hit=\u0627\u0644\u062d\u062b\u064a\u0629
+languages.cpf=\u0627\u0644\u0643\u0631\u064a\u064a\u0648\u0644\u0649 \u0648 \u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u0628\u0633\u0637\u0629 \u0627\u0644\u0623\u062e\u0631\u0649 \u0644\u0644\u062a\u0641\u0627\u0647\u0645 \u0628\u064a\u0646 \u0627\u0644\u0634\u0639\u0648\u0628 \u0639\u0644\u0649 \u0623\u0633\u0627\u0633 \u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629
+languages.cpe=\u0627\u0644\u0643\u0631\u064a\u064a\u0648\u0644\u0649 \u0648 \u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u0628\u0633\u0637\u0629 \u0627\u0644\u0623\u062e\u0631\u0649 \u0644\u0644\u062a\u0641\u0627\u0647\u0645 \u0628\u064a\u0646 \u0627\u0644\u0634\u0639\u0648\u0628 \u0639\u0644\u0649 \u0623\u0633\u0627\u0633 \u0627\u0644\u0623\u0646\u062c\u0644\u064a\u0632\u064a\u0629
+languages.him=\u0627\u0644\u0647\u064a\u0645\u0627\u062a\u0634\u0627\u0644\u0649
+languages.kok=\u0627\u0644\u0643\u0648\u0646\u0643\u0627\u0646\u064a\u0629
+languages.hil=\u0627\u0644\u0647\u064a\u0644\u064a\u062c\u064a\u0646\u0648\u0646
+languages.got=\u0627\u0644\u0642\u0648\u0637\u064a\u0629
+languages.gor=\u0627\u0644\u062c\u0648\u0631\u0648\u0646\u062a\u0627\u0644\u0648
+languages.gon=\u0627\u0644\u062c\u0646\u062f\u0649
+languages.din=\u0627\u0644\u062f\u0646\u0643\u0627
+languages.nub=\u0644\u063a\u0629 \u0646\u0648\u0628\u064a\u0629
+languages.pt=\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629
+languages.ps=\u0627\u0644\u0628\u0634\u062a\u0648\u0646\u064a\u0629
+languages.fur=\u0627\u0644\u0641\u0631\u064a\u0644\u0627\u064a\u0627\u0646
+languages.phn=\u0627\u0644\u0641\u064a\u0646\u064a\u0642\u064a\u0629
+languages.de_CH=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0639\u0644\u064a\u0627 \u0627\u0644\u0633\u0648\u064a\u0633\u0631\u064a\u0629
+languages.goh=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0639\u0644\u064a\u0627 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.snk=\u0627\u0644\u0633\u0648\u0646\u064a\u0646\u0643
+languages.cop=\u0627\u0644\u0642\u0628\u0637\u064a\u0629
+languages.yap=\u0627\u0644\u064a\u0627\u0628\u064a\u0632
+languages.ach=\u0627\u0644\u0623\u0643\u0648\u0644\u064a\u0629
+languages.yao=\u0627\u0644\u064a\u0627\u0648
+languages.phi=\u0644\u063a\u0629 \u0641\u0644\u0628\u064a\u0646\u064a\u0629
+languages.pl=\u0627\u0644\u0628\u0648\u0644\u0646\u062f\u064a\u0629
+languages.ace=\u0627\u0644\u0623\u062a\u0634\u064a\u0646\u064a\u0632\u064a\u0629
+languages.pi=\u0627\u0644\u0628\u0627\u0644\u064a\u0629
+languages.pt_PT=\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629 \u0627\u0644\u0623\u064a\u0628\u064a\u0631\u064a\u0629
+languages.pa=\u0627\u0644\u0628\u0646\u062c\u0627\u0628\u064a\u0629
+languages.bug=\u0627\u0644\u0628\u062c\u064a\u0646\u064a\u0632\u064a\u0629
+languages.iba=\u0627\u0644\u0627\u064a\u0628\u0627\u0646
+languages.sms=\u0627\u0644\u0633\u0643\u0648\u0644\u062a \u0633\u0627\u0645\u0649
+languages.bua=\u0627\u0644\u0628\u0631\u064a\u0627\u062a\u064a\u0629
+languages.mas=\u0627\u0644\u0645\u0627\u0633\u0627\u064a
+languages.smn=\u0627\u0644\u0627\u064a\u0646\u0627\u0631\u0649 \u0633\u0627\u0645\u0649
+languages.os=\u0627\u0644\u0623\u0648\u0633\u064a\u062a\u064a\u0643
+languages.map=\u0627\u0644\u0623\u0648\u0633\u062a\u0631\u0648\u0646\u064a\u0633\u064a\u0627\u0646
+languages.or=\u0627\u0644\u0623\u0648\u0631\u064a\u064a\u0627
+languages.man=\u0627\u0644\u0645\u0627\u0646\u062f\u064a\u0646\u063a
+languages.smj=\u0627\u0644\u0644\u0648\u0644 \u0633\u0627\u0645\u0649
+languages.smi=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0633\u0627\u0645\u064a\u0629 - \u0623\u062e\u0631\u0649
+languages.mak=\u0627\u0644\u0645\u0627\u0643\u0627\u0633\u0627\u0631
+languages.om=\u0627\u0644\u0623\u0648\u0631\u0648\u0645\u0648
+languages.mai=\u0627\u0644\u0645\u0627\u064a\u062b\u064a\u0644\u064a
+languages.oj=\u0627\u0644\u0623\u0648\u062c\u064a\u0628\u0648\u0627
+languages.mag=\u0627\u0644\u0645\u0627\u062c\u0627
+languages.mad=\u0627\u0644\u0645\u0627\u062f\u0631\u064a\u0632
+languages.sma=\u0627\u0644\u0633\u0627\u0645\u064a \u0627\u0644\u062c\u0646\u0648\u0628\u0649
+languages.oc=\u0627\u0644\u0623\u0648\u0643\u064a\u062a\u0627\u0646\u064a\u0629
+languages.nso=\u0627\u0644\u0633\u0648\u062a\u0648 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
+languages.btk=\u0627\u0644\u0628\u0627\u062a\u0627\u0643\u064a\u0629
+languages.myv=\u0627\u0644\u0644\u063a\u0629 \u0627\u0644\u0627\u0631\u0632\u064a\u0629
+languages.es_ES=\u0627\u0644\u0623\u0633\u0628\u0627\u0646\u064a\u0629 \u0627\u0644\u0623\u064a\u0628\u064a\u0631\u064a\u0629
+languages.de_AT=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0646\u0645\u0633\u0627\u0648\u064a\u0629
+languages.dgr=\u0627\u0644\u062f\u0648\u062c\u0631\u064a\u0628
+languages.ny=\u0627\u0644\u0646\u064a\u0627\u0646\u062c\u0627\u060c \u0627\u0644\u062a\u0634\u064a\u062a\u0634\u0648\u0627\u060c \u0627\u0644\u062a\u0634\u0648\u0627
+languages.myn=\u0644\u063a\u0629 \u0645\u0627\u064a\u0627
+languages.nv=\u0627\u0644\u0646\u0627\u0641\u0627\u062c\u0648
+languages.kmb=\u0627\u0644\u0643\u064a\u0645\u0628\u0646\u062f\u0648
+languages.nr=\u0627\u0644\u0646\u062f\u064a\u0628\u064a\u0644 \u0627\u0644\u062c\u0646\u0648\u0628\u0649
+languages.gmh=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0639\u0644\u064a\u0627 \u0627\u0644\u0648\u0633\u0637\u0649
+languages.no=\u0627\u0644\u0646\u0631\u0648\u064a\u062c\u064a\u0629
+languages.nn=\u0627\u0644\u0646\u064a\u0646\u0648\u0631\u0633\u0643 \u0627\u0644\u0646\u0631\u0648\u064a\u062c\u064a
+languages.nl=\u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u0629
+languages.root=\u0627\u0644\u062c\u0630\u0631
+languages.ng=\u0627\u0644\u0646\u062f\u0648\u0646\u062c\u0627
+languages.sla=\u0644\u063a\u0629 \u0633\u0644\u0627\u0641\u064a\u0629
+languages.ne=\u0627\u0644\u0646\u064a\u0628\u0627\u0644\u064a\u0629
+languages.nd=\u0627\u0644\u0646\u062f\u064a\u0628\u064a\u0644 \u0627\u0644\u0634\u0645\u0627\u0644\u0649
+languages.cmc=\u0644\u063a\u0629 \u062a\u0634\u0627\u0645\u064a\u0643\u064a\u0629
+languages.tet=\u0627\u0644\u062a\u064a\u062a\u0645
+languages.nb=\u0627\u0644\u0628\u0648\u0643\u0645\u0627\u0644\u064a\u0629 \u0627\u0644\u0646\u0631\u0648\u064a\u062c\u064a\u0629
+languages.na=\u0627\u0644\u0646\u0648\u0631\u0648
+languages.ter=\u0627\u0644\u062a\u064a\u0631\u064a\u0646\u0648
+languages.tem=\u0627\u0644\u062a\u064a\u0645\u0646
+languages.my=\u0627\u0644\u0628\u0648\u0631\u0645\u064a\u0629
+languages.lez=\u0627\u0644\u0644\u064a\u0632\u062c\u0647\u0627\u064a\u0627\u0646\u064a\u0629
+languages.mt=\u0627\u0644\u0645\u0627\u0644\u0637\u064a\u0629
+languages.frs=\u0627\u0644\u0641\u0631\u064a\u0632\u064a\u0646\u064a\u0629 \u0627\u0644\u0634\u0631\u0642\u064a\u0629
+languages.peo=\u0627\u0644\u0641\u0627\u0631\u0633\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.ms=\u0644\u063a\u0629 \u0627\u0644\u0645\u0644\u0627\u064a\u0648
+languages.frr=\u0627\u0644\u0641\u0631\u064a\u0632\u064a\u0646\u064a\u0629 \u0627\u0644\u0634\u0645\u0627\u0644\u064a\u0629
+languages.mr=\u0627\u0644\u0645\u0627\u0631\u0627\u062b\u0649
+languages.fro=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.mo=\u0627\u0644\u0645\u0648\u0644\u062f\u0648\u0641\u064a\u0629
+languages.mn=\u0627\u0644\u0645\u0646\u063a\u0648\u0644\u064a\u0629
+languages.frm=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629 \u0627\u0644\u0648\u0633\u0637\u0649
+languages.ml=\u0627\u0644\u0645\u0627\u0644\u064a\u0627\u0644\u0627\u0645
+languages.jrb=\u0627\u0644\u064a\u0647\u0648\u062f\u064a\u0629 - \u0627\u0644\u0639\u0631\u0628\u064a\u0629
+languages.mk=\u0627\u0644\u0645\u0642\u062f\u0648\u0646\u064a\u0629
+languages.mi=\u0627\u0644\u0645\u0627\u0648\u0631\u064a\u0629
+languages.mh=\u0627\u0644\u0645\u0627\u0631\u0634\u0627\u0644\u064a\u0629
+languages.mg=\u0627\u0644\u0645\u0627\u0644\u0627\u062c\u0627\u0634\u064a\u0629
+languages.nqo=\u0627\u0646\u0643\u0648
+languages.mwr=\u0627\u0644\u0645\u0627\u0631\u0648\u0627\u0631\u0649
+languages.bra=\u0627\u0644\u0628\u0631\u0627\u062c\u064a\u0629
+languages.mwl=\u0627\u0644\u0645\u064a\u0631\u0627\u0646\u062f\u064a\u0632
+languages.den=\u0627\u0644\u0633\u0644\u0627\u0641\u064a\u0629
+languages.lv=\u0627\u0644\u0644\u0627\u062a\u0641\u064a\u0629
+languages.lu=\u0627\u0644\u0644\u0628\u0627-\u0643\u0627\u062a\u0627\u0646\u062c\u0627
+languages.del=\u0627\u0644\u062f\u064a\u0644\u0648\u064a\u0631
+languages.lt=\u0627\u0644\u0644\u062a\u0648\u0627\u0646\u064a\u0629
+languages.lo=\u0627\u0644\u0644\u0627\u0648\u064a\u0629
+languages.ln=\u0627\u0644\u0644\u064a\u0646\u062c\u0627\u0644\u0627
+languages.li=\u0627\u0644\u0644\u064a\u0645\u0628\u0631\u062c\u064a\u0634\u064a\u0629
+languages.ewo=\u0627\u0644\u0623\u064a\u0648\u0646\u062f\u0648
+languages.lg=\u0627\u0644\u062c\u0627\u0646\u062f\u0627
+languages.lb=\u0627\u0644\u0644\u0648\u0643\u0633\u0645\u0628\u0631\u062c\u064a\u0629
+languages.la=\u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629
+languages.jpr=\u0627\u0644\u064a\u0647\u0648\u062f\u064a\u0629 - \u0627\u0644\u0641\u0627\u0631\u0633\u064a\u0629
+languages.vot=\u0627\u0644\u0641\u0648\u062a\u064a\u0643
+languages.sit=\u0644\u063a\u0629 \u0635\u064a\u0646\u064a\u0629 \u062a\u0628\u064a\u062a\u064a\u0629
+languages.ky=\u0627\u0644\u0642\u064a\u0631\u063a\u0633\u062a\u0627\u0646\u064a\u0629
+languages.kw=\u0627\u0644\u0643\u0648\u0631\u0646\u064a\u0629
+languages.kv=\u0627\u0644\u0643\u0648\u0645\u0649
languages.ku=\u0627\u0644\u0643\u0631\u062f\u064a\u0629
-languages.eo=\u0627\u0633\u0628\u0631\u0627\u0646\u062a\u0648
-languages.en=\u0627\u0644\u0627\u0646\u062c\u0644\u064a\u0632\u064a\u0629
+languages.sio=\u0644\u063a\u0627\u062a \u0627\u0644\u0633\u064a\u0648\u064a\u0648\u0646
languages.ks=\u0627\u0644\u0643\u0627\u0634\u0645\u064a\u0631\u064a\u0629
-languages.el=\u0627\u0644\u064a\u0648\u0646\u0627\u0646\u064a\u0629
+languages.kr=\u0627\u0644\u0643\u0627\u0646\u064a\u0648\u0631\u0649
+languages.awa=\u0627\u0644\u0623\u0648\u0627\u062f\u064a\u0629
languages.ko=\u0627\u0644\u0643\u0648\u0631\u064a\u0629
+languages.kn=\u0627\u0644\u0643\u0627\u0646\u0627\u062f\u0627
languages.km=\u0627\u0644\u062e\u0645\u064a\u0631\u064a\u0629
+languages.en_GB=\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629 \u0627\u0644\u0628\u0631\u064a\u0637\u0627\u0646\u064a\u0629
+languages.kl=\u0627\u0644\u0643\u0627\u0644\u0627\u0644\u064a\u0633\u062a
+languages.kk=\u0627\u0644\u0643\u0627\u0632\u0627\u062e\u0633\u062a\u0627\u0646\u064a\u0629
+languages.rom=\u0627\u0644\u0631\u0648\u0645\u0627\u0646\u064a\u0629 [rom]
+languages.kj=\u0627\u0644\u0643\u064a\u0648\u0646\u064a\u0627\u0645\u0627
+languages.sid=\u0627\u0644\u0633\u064a\u062f\u0627\u0645\u0648
+languages.ki=\u0627\u0644\u0643\u064a\u0643\u064a\u0648
+languages.kg=\u0627\u0644\u0643\u0648\u0646\u063a\u0648
+languages.non=\u0627\u0644\u0646\u0648\u0631\u0633 \u0627\u0644\u0642\u062f\u064a\u0645
+languages.ka=\u0627\u0644\u062c\u0648\u0631\u062c\u064a\u0629
+languages.mus=\u0627\u0644\u0643\u0631\u064a\u0643
+languages.roa=\u0627\u0644\u0631\u0648\u0645\u0627\u0646\u0633\u064a\u0629 - \u0623\u062e\u0631\u0649
+languages.nog=\u0627\u0644\u0646\u0648\u062c\u0627\u0649
+languages.mun=\u0644\u063a\u0627\u062a \u0627\u0644\u0645\u0646\u062f\u0627
+languages.mul=\u0644\u063a\u0627\u062a \u0645\u062a\u0639\u062f\u062f\u0629
+languages.jv=\u0627\u0644\u062c\u0627\u0648\u064a\u0629
+languages.gil=\u0644\u063a\u0629 \u0623\u0647\u0644 \u062c\u0628\u0644 \u0637\u0627\u0631\u0642
+languages.znd=\u0627\u0644\u0632\u0627\u0646\u062f
+languages.shn=\u0627\u0644\u0634\u0627\u0646\u064a\u0629
+languages.fon=\u0627\u0644\u0641\u0648\u0646
+languages.xal=\u0627\u0644\u0643\u0627\u0644\u0645\u064a\u0643
+languages.aus=\u0644\u063a\u0629 \u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0629
+languages.kho=\u0627\u0644\u062e\u0648\u062a\u0627\u0646\u064a\u0632
+languages.ja=\u0627\u0644\u064a\u0627\u0628\u0627\u0646\u064a\u0629
+languages.khi=\u0644\u063a\u0629 \u062e\u0648\u064a\u0633\u0627\u0646\u064a\u0629
+languages.pau=\u0627\u0644\u0628\u0627\u0644\u0648\u0627\u0646
+languages.chy=\u0627\u0644\u0634\u0627\u064a\u0627\u0646
+languages.tai=\u062a\u0627\u0649 - \u0623\u062e\u0631\u0649
+languages.iu=\u0627\u0644\u0627\u064a\u0646\u0643\u062a\u064a\u062a\u062a
+languages.pap=\u0627\u0644\u0628\u0627\u0628\u064a\u0627\u0645\u064a\u0646\u062a\u0648
+languages.it=\u0627\u0644\u0625\u064a\u0637\u0627\u0644\u064a\u0629
+languages.sgn=\u0644\u063a\u0629 \u0625\u0634\u0627\u0631\u0629
+languages.is=\u0627\u0644\u0623\u064a\u0633\u0644\u0627\u0646\u062f\u064a\u0629
+languages.kha=\u0627\u0644\u0643\u0627\u0632\u064a\u0629
+languages.chr=\u0627\u0644\u0634\u064a\u0631\u0648\u0643\u0649
+languages.pam=\u0627\u0644\u0628\u0627\u0645\u0628\u0627\u0646\u062c\u0627
+languages.pal=\u0627\u0644\u0628\u0647\u0644\u0648\u064a\u0629
+languages.chp=\u0627\u0644\u0634\u064a\u0628\u0627\u0648\u0627\u064a\u0627\u0646
+languages.io=\u0627\u0644\u0627\u064a\u062f\u0648
+languages.cho=\u0627\u0644\u0634\u0648\u0643\u062a\u0648
+languages.chn=\u0627\u0644\u0634\u064a\u0646\u0648\u0643 \u062c\u0627\u0631\u062c\u0648\u0646
+languages.chm=\u0627\u0644\u0645\u0627\u0631\u064a
+languages.bnt=\u0627\u0644\u0628\u0627\u0646\u062a\u0648
+languages.pag=\u0627\u0644\u0628\u0627\u0646\u062c\u0627\u0633\u064a\u0646\u0627\u0646
+languages.ik=\u0627\u0644\u0627\u064a\u0646\u0628\u064a\u0627\u0643
+languages.chk=\u0627\u0644\u062a\u0634\u0643\u064a\u0632\u064a\u0629
+languages.ii=\u0627\u0644\u0633\u064a\u062a\u0634\u064a\u0648\u0646 \u064a\u0649
+languages.haw=\u0644\u063a\u0629 \u0647\u0627\u0648\u0627\u064a
+languages.lam=\u0627\u0644\u0644\u0627\u0645\u0628\u0627
+languages.ig=\u0627\u0644\u0627\u064a\u062c\u0628\u0648
+languages.chg=\u0627\u0644\u062a\u0634\u0627\u062c\u0627\u062a\u0627\u0649
+languages.sga=\u0627\u0644\u0623\u064a\u0631\u0644\u0646\u062f\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.paa=\u0644\u063a\u0629 \u0628\u0627\u0628\u0648\u0646\u064a\u0629
+languages.ie=\u0627\u0644\u0627\u0646\u062a\u0631\u0644\u064a\u0646\u062c
+languages.id=\u0627\u0644\u0625\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0629
+languages.lah=\u0627\u0644\u0644\u0627\u0647\u0646\u062f\u0627
+languages.day=\u0627\u0644\u062f\u064a\u0627\u0643
+languages.chb=\u0627\u0644\u062a\u0634\u064a\u0628\u0634\u0627
+languages.ia=\u0627\u0644\u0644\u0651\u063a\u0629 \u0627\u0644\u0648\u0633\u064a\u0637\u0629
+languages.lad=\u0627\u0644\u0627\u0633\u0628\u0627\u0639\u0628\u0631\u064a\u0629
+languages.hz=\u0627\u0644\u0647\u064a\u0631\u064a\u0631\u0648
+languages.hai=\u0627\u0644\u0647\u064a\u062f\u0627
+languages.dar=\u0627\u0644\u062f\u0627\u0631\u062c\u0648\u0627
+languages.hy=\u0627\u0644\u0623\u0631\u0645\u064a\u0646\u064a\u0629
+languages.ath=\u0644\u063a\u0629 \u0623\u0632\u0628\u0627\u0633\u0643\u0627\u0646\u064a\u0629
+languages.hu=\u0627\u0644\u0647\u0646\u063a\u0627\u0631\u064a\u0629
+languages.ht=\u0627\u0644\u0647\u0627\u064a\u062a\u064a\u0629
+languages.dak=\u0627\u0644\u062f\u0627\u0643\u0648\u062a\u0627
+languages.hr=\u0627\u0644\u0643\u0631\u0648\u0627\u062a\u064a\u0629
+languages.ho=\u0627\u0644\u0647\u064a\u0631\u0649 \u0645\u0648\u062a\u0648
+languages.hi=\u0627\u0644\u0647\u0646\u062f\u064a\u0629
+languages.dyu=\u0627\u0644\u062f\u0627\u064a\u0644\u0627
+languages.he=\u0627\u0644\u0639\u0628\u0631\u064a\u0629
+languages.ast=\u0627\u0644\u0623\u0633\u062a\u0631\u064a\u0629
+languages.kfo=\u0627\u0644\u0643\u0648\u0631\u0648
+languages.ha=\u0627\u0644\u0647\u0648\u0633\u0627
+languages.wen=\u0644\u063a\u0629 \u0635\u0631\u0628\u064a\u0629
+languages.gv=\u0627\u0644\u0645\u0646\u0643\u064a\u0629
+languages.gu=\u0627\u0644\u063a\u0648\u062c\u0627\u0631\u0627\u062a\u064a\u0629
+languages.sem=\u0644\u063a\u0629 \u0633\u0627\u0645\u064a\u0629
+languages.sel=\u0627\u0644\u0633\u064a\u0644\u0643\u0628
+languages.iro=\u0644\u063a\u0629 \u0625\u064a\u0631\u0648\u0643\u0648\u064a\u0627\u0646\u064a\u0629
+languages.gn=\u0627\u0644\u062c\u0648\u0627\u0631\u0627\u0646\u0649
+languages.gl=\u0627\u0644\u062c\u0627\u0644\u064a\u0643\u064a\u0629
+languages.en_CA=\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629 (\u0643\u0646\u062f\u0627)
+languages.arw=\u0627\u0644\u0623\u0631\u0627\u0648\u0627\u0643\u064a\u0629
+languages.gez=\u0627\u0644\u062c\u064a\u0632
+languages.art=\u0644\u063a\u0629 \u0627\u0635\u0637\u0646\u0627\u0639\u064a\u0629
+languages.gd=\u0627\u0644\u063a\u064a\u0644\u064a\u0629 \u0627\u0644\u0623\u0633\u0643\u062a\u0644\u0646\u062f\u064a\u0629
+languages.ira=\u0644\u063a\u0629 \u0625\u064a\u0631\u0627\u0646\u064a\u0629
+languages.ga=\u0627\u0644\u0623\u064a\u0631\u0644\u0646\u062f\u064a\u0629
+languages.arp=\u0627\u0644\u0623\u0631\u0627\u0628\u0627\u0647\u0648
+languages.arn=\u0627\u0644\u0623\u0631\u0648\u0643\u0627\u0646\u064a\u0629
+languages.fy=\u0627\u0644\u0641\u0631\u064a\u0632\u064a\u0627\u0646
+languages.bla=\u0627\u0644\u0633\u064a\u0643\u0633\u064a\u0643\u064a\u0629
+languages.gem=\u0644\u063a\u0629 \u062c\u0631\u0645\u0627\u0646\u064a\u0629
+languages.ypk=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u064a\u0648\u0628\u064a\u0643\u064a\u0629
+languages.arc=\u0627\u0644\u0622\u0631\u0627\u0645\u064a\u0629
+languages.fr=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629
+languages.fo=\u0627\u0644\u0641\u0627\u0631\u0648\u064a\u0632
+languages.cel=\u0644\u063a\u0629 \u0633\u0644\u062a\u064a\u0629
+languages.fj=\u0627\u0644\u0641\u064a\u062c\u064a\u0629
+languages.fi=\u0627\u0644\u0641\u0646\u0644\u0646\u062f\u064a\u0629
+languages.ff=\u0627\u0644\u0641\u0644\u0629
+languages.tvl=\u0627\u0644\u062a\u0648\u0641\u0627\u0644\u0648
+languages.ceb=\u0627\u0644\u0633\u064a\u0628\u064a\u0648\u0646\u0648
+languages.fa=\u0627\u0644\u0641\u0627\u0631\u0633\u064a\u0629
+languages.en_AU=\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629 \u0627\u0644\u0623\u0633\u062a\u0631\u0627\u0644\u064a\u0629
+languages.zh_Hans=\u0627\u0644\u0635\u064a\u0646\u064a\u0629 \u0627\u0644\u0645\u0628\u0633\u0637\u0629
+languages.zh_Hant=\u0627\u0644\u0635\u064a\u0646\u064a\u0629 \u0627\u0644\u062a\u0642\u0644\u064a\u062f\u064a\u0629
+languages.eu=\u0644\u063a\u0629 \u0627\u0644\u0628\u0627\u0633\u0643
+languages.sco=\u0627\u0644\u0623\u0633\u0643\u062a\u0644\u0646\u062f\u064a\u0629
+languages.et=\u0627\u0644\u0625\u0633\u062a\u0648\u0646\u064a\u0629
+languages.scn=\u0627\u0644\u0635\u0642\u0644\u064a\u0629
+languages.es=\u0627\u0644\u0623\u0633\u0628\u0627\u0646\u064a\u0629
+languages.eo=\u0625\u0633\u0628\u0631\u0627\u0646\u062a\u0648
+languages.en=\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629
+languages.el=\u0627\u0644\u064a\u0648\u0646\u0627\u0646\u064a\u0629
+languages.tut=\u0644\u063a\u0629 \u0623\u0644\u0637\u0627\u0626\u064a\u0629
+languages.niu=\u0627\u0644\u0646\u064a\u0648\u064a
+languages.tup=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u062a\u0648\u0628\u064a\u0629
+languages.ee=\u0627\u0644\u0627\u064a\u0648\u064a
+languages.tum=\u0627\u0644\u062a\u0627\u0645\u0628\u0648\u0643\u0627
+languages.es_419=\u0623\u0633\u0628\u0627\u0646\u064a\u0629 \u0623\u0645\u0631\u064a\u0643\u0627 \u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629
+languages.mos=\u0627\u0644\u0645\u0648\u0633\u064a
languages.dz=\u0627\u0644\u0632\u0648\u0646\u062e\u0627\u064a\u0629
-languages.smi=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0633\u0627\u0645\u064a\u0629
-languages.syr=\u0627\u0644\u0633\u0631\u064a\u0627\u0646\u064a\u0629
+languages.nic=\u0627\u0644\u0646\u064a\u062c\u0631 - \u0643\u0648\u0631\u062f\u0648\u0641\u0627\u0646\u0627\u064a\u0627\u0646
+languages.lus=\u0627\u0644\u0644\u0634\u0627\u0649
+languages.fiu=\u0644\u063a\u0629 \u0641\u064a\u0646\u0648 \u0623\u062c\u0631\u064a\u0627\u0646\u064a\u0629
languages.dv=\u0627\u0644\u0645\u0627\u0644\u062f\u064a\u0641\u064a\u0629
-languages.pt=\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629
-languages.ps=\u0627\u0644\u0628\u0634\u062a\u0648\u0646\u064a\u0629
-languages.de=\u0627\u0644\u0627\u0644\u0645\u0627\u0646\u064a\u0629
-languages.pl=\u0627\u0644\u0628\u0648\u0644\u0648\u0646\u064a\u0629
+languages.nia=\u0627\u0644\u0646\u064a\u0627\u0633
+languages.moh=\u0627\u0644\u0645\u0648\u0647\u0648\u0643
+languages.luo=\u0627\u0644\u0644\u0648
+languages.lun=\u0627\u0644\u0644\u0648\u0646\u062f\u0627
+languages.apa=\u0644\u063a\u0629 \u0623\u0628\u0627\u062a\u0634\u064a\u0629
+languages.fil=\u0627\u0644\u0641\u0644\u0628\u064a\u0646\u064a\u0629
+languages.lui=\u0627\u0644\u0644\u0648\u0633\u064a\u0646\u0648
+languages.hup=\u0627\u0644\u0647\u0628\u0627
+languages.cch=\u0627\u0644\u0623\u062a\u0633\u0627\u0645
+languages.bin=\u0627\u0644\u0628\u064a\u0646\u064a\u0629
+languages.de=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629
+languages.lua=\u0627\u0644\u0644\u0628\u0627-\u0644\u0624\u0644\u0624
+languages.bik=\u0627\u0644\u0628\u064a\u0643\u0648\u0644\u064a\u0629
+languages.was=\u0627\u0644\u0648\u0627\u0634\u0648
+languages.und=\u0644\u063a\u0629 \u063a\u064a\u0631 \u0645\u0639\u0631\u0648\u0641\u0629
+languages.war=\u0627\u0644\u0648\u0627\u0631\u0627\u0649
languages.da=\u0627\u0644\u062f\u0627\u0646\u0645\u0627\u0631\u0643\u064a\u0629
-languages.ja=\u0627\u0644\u064a\u0627\u0628\u0627\u0646\u064a\u0629
-languages.cop=\u0642\u0628\u0637\u064a\u0629
-languages.vi=\u0627\u0644\u0641\u064a\u062a\u0646\u0627\u0645\u064a\u0629
+languages.dum=\u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u0629 \u0627\u0644\u0648\u0633\u0637\u0649
+languages.wal=\u0627\u0644\u0648\u0627\u0644\u0627\u0645\u0648
+languages.mno=\u0644\u063a\u0627\u062a \u0645\u0627\u0646\u0648\u0628\u0648
+languages.wak=\u0644\u063a\u0627\u062a \u0627\u0644\u0648\u0627\u0643\u0627\u0634\u0627\u0646
+languages.sat=\u0627\u0644\u0633\u0627\u0646\u062a\u0627\u0644\u0649
languages.cy=\u0627\u0644\u0648\u0644\u0632\u064a\u0629
-languages.pa=\u0627\u0644\u0628\u0646\u062c\u0627\u0628\u064a\u0629
+languages.sas=\u0627\u0644\u0633\u0627\u0633\u0627\u0643
+languages.kbd=\u0627\u0644\u0643\u0627\u0628\u0627\u0631\u062f\u0627\u064a\u0627\u0646
+languages.cv=\u0627\u0644\u062a\u0634\u0641\u0627\u0634
+languages.cu=\u0633\u0644\u0627\u0641\u064a\u0629 \u0643\u0646\u0633\u064a\u0629
+languages.mni=\u0627\u0644\u0645\u0627\u0646\u064a\u0628\u0631\u0649
languages.cs=\u0627\u0644\u062a\u0634\u064a\u0643\u064a\u0629
-languages.it=\u0627\u0644\u0627\u064a\u0637\u0627\u0644\u064a\u0629
+languages.sam=\u0627\u0644\u0622\u0631\u0627\u0645\u064a\u0629 \u0627\u0644\u0633\u0648\u0645\u0627\u0631\u064a\u0629
+languages.cr=\u0627\u0644\u0643\u0631\u0649
+languages.sal=\u0644\u063a\u0627\u062a \u0633\u0627\u0644\u064a\u0634\u0627\u0646
+languages.dua=\u0627\u0644\u062f\u064a\u0648\u0644\u0627
+languages.co=\u0627\u0644\u0643\u0648\u0631\u0633\u064a\u0643\u064a\u0629
+languages.sai=\u0627\u0644\u0647\u0646\u062f\u064a\u0629 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629 - \u0623\u062e\u0631\u0649
+languages.mnc=\u0627\u0644\u0645\u0627\u0646\u0634\u0648
+languages.sah=\u0627\u0644\u064a\u0627\u0643\u062a
+languages.kaw=\u0627\u0644\u0643\u0648\u0649
+languages.inh=\u0627\u0644\u0625\u0646\u062c\u0648\u0634\u064a\u0629
+languages.gba=\u0627\u0644\u062c\u0628\u064a\u0627
+languages.sad=\u0627\u0644\u0633\u0627\u0646\u062f\u0627\u0648\u0649
+languages.ch=\u0627\u0644\u062a\u0634\u0627\u0645\u0648\u0631\u0648
+languages.ine=\u0644\u063a\u0629 \u0647\u0646\u062f \u0623\u0648\u0631\u0648\u0628\u064a\u0629
+languages.bho=\u0627\u0644\u0628\u0647\u0648\u062c\u0628\u0631\u064a\u0629
+languages.enm=\u0627\u0644\u0625\u0646\u062c\u0644\u064a\u0632\u064a\u0629 \u0627\u0644\u0648\u0633\u0637\u0649
+languages.kar=\u0627\u0644\u0643\u0627\u0631\u064a\u064a\u0646
+languages.inc=\u0644\u063a\u0629 \u0647\u0646\u062f\u064a\u0629
languages.ce=\u0627\u0644\u0634\u064a\u0634\u0627\u0646\u064a\u0629
-languages.ur=\u0627\u0644\u0627\u0631\u062f\u064a\u0629
-languages.ca=\u0627\u0644\u0643\u0627\u062a\u0627\u0644\u0648\u064a\u0646\u064a\u0629
-languages.id=\u0627\u0644\u0627\u0646\u062f\u0648\u0646\u064a\u0633\u064a\u0629
-languages.uk=\u0627\u0644\u0627\u0648\u0643\u0631\u0627\u0646\u064a\u0629
-languages.ug=\u0627\u0644\u0627\u063a\u0648\u0631\u064a\u0629
-languages.egy=\u0645\u0635\u0631\u064a\u0629\u060c \u0642\u062f\u064a\u0645\u0629
-languages.hy=\u0627\u0644\u0627\u0631\u0645\u0646\u064a\u0629
+languages.gay=\u0627\u0644\u062c\u0627\u064a\u0648
+languages.ca=\u0627\u0644\u0643\u062a\u0627\u0644\u0648\u0646\u064a\u0629
+languages.umb=\u0627\u0644\u0623\u0645\u0628\u0646\u062f\u0648
+languages.syr=\u0627\u0644\u0633\u0631\u064a\u0627\u0646\u064a\u0629
+languages.kam=\u0627\u0644\u0643\u0627\u0645\u0628\u0627
+languages.anp=\u0627\u0644\u0623\u0646\u062c\u064a\u0643\u0627
+languages.tsi=\u0627\u0644\u062a\u0633\u064a\u0645\u0634\u064a\u0627\u0646
+languages.kaj=\u0627\u0644\u062c\u0648
+languages.ang=\u0627\u0644\u0627\u0646\u062c\u0644\u064a\u0632\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.kac=\u0627\u0644\u0643\u0627\u062a\u0634\u064a\u0646
+languages.cau=\u0644\u063a\u0629 \u0642\u0648\u0642\u0627\u0632\u064a\u0629
+languages.kab=\u0627\u0644\u0642\u0628\u064a\u0644\u064a\u0629
+languages.kaa=\u0627\u0644\u0643\u0627\u0631\u0627-\u0643\u0627\u0644\u0628\u0627\u0643
languages.bs=\u0627\u0644\u0628\u0648\u0633\u0646\u064a\u0629
-languages.hu=\u0627\u0644\u0647\u0646\u063a\u0627\u0631\u064a\u0629
+languages.car=\u0627\u0644\u0643\u0627\u0631\u064a\u0628\u064a\u0629
+languages.br=\u0627\u0644\u0628\u0631\u064a\u062a\u0648\u0646\u064a\u0629
+languages.syc=\u0633\u0631\u064a\u0627\u0646\u064a\u0629 \u062a\u0642\u0644\u064a\u062f\u064a\u0629
languages.bo=\u0627\u0644\u062a\u0628\u062a\u064a\u0629
-languages.ht=\u0627\u0644\u0647\u0627\u064a\u062a\u064a\u0629
languages.bn=\u0627\u0644\u0628\u0646\u063a\u0627\u0644\u064a\u0629
-languages.hr=\u0627\u0644\u0643\u0631\u0648\u0627\u062a\u064a\u0629
+languages.bm=\u0627\u0644\u0628\u0627\u0645\u0628\u0627\u0631\u0627
+languages.gaa=\u0627\u0644\u062c\u0627
+languages.cai=\u0644\u063a\u0629 \u0647\u0646\u062f \u0623\u0645\u0631\u064a\u0643\u064a\u0629 \u0648\u0633\u0637\u0649
+languages.bi=\u0627\u0644\u0628\u064a\u0633\u0644\u0627\u0645\u064a\u0629
+languages.bh=\u0627\u0644\u0628\u064a\u0647\u0627\u0631\u064a\u0629
languages.bg=\u0627\u0644\u0628\u0644\u063a\u0627\u0631\u064a\u0629
-languages.ang=\u0627\u0646\u0643\u0644\u064a\u0632\u064a\u0629\u060c \u0642\u062f\u064a\u0645
-languages.tt=\u0627\u0644\u062a\u062a\u0631\u064a\u0629
-languages.be=\u0627\u0644\u0628\u064a\u0644\u0648\u0631\u0648\u0633\u064a\u0629
-languages.hi=\u0627\u0644\u0647\u0646\u062f\u064a\u0629
-languages.tr=\u0627\u0644\u062a\u0631\u0643\u064a\u0629
-languages.nl=\u0627\u0644\u0647\u0648\u0644\u0646\u062f\u064a\u0629
-languages.he=\u0627\u0644\u0639\u0628\u0631\u064a\u0629
-languages.tl=\u0627\u0644\u062a\u0627\u063a\u0627\u0644\u0648\u063a\u064a\u0629
-languages.bal=\u0627\u0644\u0628\u0644\u0648\u0634\u064a\u0629
-languages.az=\u0627\u0630\u0631\u064a\u0629
-languages.ne=\u0627\u0644\u0646\u064a\u0628\u0627\u0644\u064a\u0629
-languages.th=\u0627\u0644\u062a\u0627\u064a\u0644\u0627\u0646\u062f\u064a\u0629
-languages.zh=\u0627\u0644\u0635\u064a\u0646\u064a\u0629
+languages.be=\u0627\u0644\u0628\u064a\u0644\u0627\u0631\u0648\u0633\u064a\u0629
+languages.pt_BR=\u0627\u0644\u0628\u0631\u062a\u063a\u0627\u0644\u064a\u0629 \u0627\u0644\u0628\u0631\u0627\u0632\u064a\u0644\u064a\u0629
+languages.cad=\u0627\u0644\u0643\u0627\u062f\u0648
+languages.ba=\u0627\u0644\u0628\u0627\u0634\u0643\u064a\u0631\u064a\u0629
+languages.zu=\u0627\u0644\u0632\u0648\u0644\u0648
+languages.zen=\u0627\u0644\u0632\u064a\u0646\u0627\u062c\u0627
+languages.pro=\u0627\u0644\u0628\u0631\u0648\u0641\u0627\u0646\u0633\u064a\u0629 \u0627\u0644\u0642\u062f\u064a\u0645\u0629
+languages.hsb=\u0627\u0644\u0635\u0631\u0628\u064a\u0629 \u0627\u0644\u0639\u0644\u064a\u0627
+languages.az=\u0627\u0644\u0623\u0630\u0631\u064a\u0629
+languages.ay=\u0627\u0644\u0623\u064a\u0645\u0627\u0631\u0627
+languages.av=\u0627\u0644\u0623\u0641\u0627\u0631\u064a\u0643\u064a\u0629
+languages.as=\u0627\u0644\u0623\u0633\u0627\u0645\u064a\u0629
+languages.dsb=\u0627\u0644\u0635\u0631\u0628\u064a\u0629 \u0627\u0644\u0633\u0641\u0644\u0649
languages.ar=\u0627\u0644\u0639\u0631\u0628\u064a\u0629
-languages.gu=\u0627\u0644\u063a\u0648\u062c\u0627\u0631\u0627\u062a\u064a\u0629
-languages.my=\u0627\u0644\u0628\u0648\u0631\u0645\u064a\u0629
-languages.ira=\u0627\u0644\u0627\u064a\u0631\u0627\u0646\u064a\u0629
-languages.mt=\u0627\u0644\u0645\u0627\u0644\u0637\u064a\u0629
-languages.ms=\u0644\u063a\u0629 \u0627\u0644\u0645\u0644\u0627\u064a\u0648
-languages.sw=\u0627\u0644\u0633\u0648\u0627\u062d\u0644\u064a\u0629
-languages.sv=\u0627\u0644\u0633\u0648\u064a\u062f\u064a\u0629
-languages.af=\u0627\u0644\u0627\u0641\u0631\u064a\u0642\u064a\u0629
-languages.mn=\u0627\u0644\u0645\u0646\u063a\u0648\u0644\u064a\u0629
-languages.sr=\u0627\u0644\u0635\u0631\u0628\u064a\u0629
-languages.ab=\u0627\u0644\u0627\u0628\u062e\u0627\u0632\u064a\u0629
-languages.sq=\u0627\u0644\u0627\u0644\u0628\u0627\u0646\u064a\u0629
-languages.aa=\u0627\u0644\u0627\u0641\u0627\u0631\u064a\u0629
-languages.fr=\u0627\u0644\u0641\u0631\u0646\u0633\u064a\u0629
-languages.lv=\u0627\u0644\u0644\u0627\u062a\u0641\u064a\u0629
-languages.lt=\u0627\u0644\u0644\u062a\u0648\u0627\u0646\u064a\u0629
-languages.ru=\u0627\u0644\u0631\u0648\u0633\u064a\u0629
-languages.fj=\u0627\u0644\u0641\u064a\u062c\u064a\u0629
-languages.afa=\u0627\u0641\u0631\u0648-\u0627\u0633\u064a\u0648\u064a\u0629
-languages.fi=\u0627\u0644\u0641\u0646\u0644\u0646\u062f\u064a\u0629
-languages.ro=\u0627\u0644\u0631\u0648\u0645\u0627\u0646\u064a\u0629
-languages.arc=\u0627\u0644\u0627\u0631\u0627\u0645\u064a\u0629
+languages.ilo=\u0627\u0644\u0627\u064a\u0644\u0648\u0643\u0648
+languages.elx=\u0627\u0644\u0627\u0645\u0627\u064a\u062a
+languages.zh=\u0627\u0644\u0635\u064a\u0646\u064a\u0629
+languages.an=\u0627\u0644\u0623\u0631\u0627\u062c\u0648\u0646\u064a\u0629
+languages.pra=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0628\u0631\u0627\u0642\u0631\u064a\u0637\u064a\u0629
+languages.am=\u0627\u0644\u0623\u0645\u0647\u0631\u064a\u0629
+languages.new=\u0627\u0644\u0646\u064a\u0648\u0627\u0631\u0649
+languages.ak=\u0627\u0644\u0623\u0643\u0627\u0646\u064a\u0629
+languages.za=\u0627\u0644\u0632\u0647\u064a\u0648\u0646\u062c
+languages.en_US=\u0627\u0644\u0627\u0646\u062c\u0644\u064a\u0632\u064a\u0629 (\u0627\u0644\u0648\u0644\u0627\u064a\u0627\u062a \u0627\u0644\u0645\u062a\u062d\u062f\u0629 \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629)\u200f
+languages.af=\u0627\u0644\u0623\u0641\u0631\u064a\u0642\u064a\u0629
+languages.ae=\u0627\u0644\u0623\u0641\u0633\u062a\u064a\u0629
+languages.alt=\u0627\u0644\u0623\u0644\u0637\u0627\u0626\u064a\u0629 \u0627\u0644\u062c\u0646\u0648\u0628\u064a\u0629
+languages.ab=\u0627\u0644\u0623\u0628\u062e\u0627\u0632\u064a\u0629
+languages.aa=\u0627\u0644\u0623\u0641\u0627\u0631\u064a\u0629
+languages.yo=\u0627\u0644\u064a\u0648\u0631\u0648\u0628\u064a\u0629
+languages.alg=\u0627\u0644\u0644\u063a\u0627\u062a \u0627\u0644\u0623\u0645\u0631\u064a\u0643\u064a\u0629 \u0627\u0644\u0647\u0646\u062f\u064a\u0629
+languages.ale=\u0627\u0644\u0623\u0644\u064a\u0648\u062a\u064a\u0629
+languages.mkh=\u0644\u063a\u0629 \u0645\u0648\u0646 - \u062e\u0645\u064a\u0631
+languages.yi=\u0627\u0644\u064a\u062f\u064a\u0634\u064a\u0629
+languages.dra=\u0644\u063a\u0629 \u062f\u0631\u0627\u0641\u064a\u062f\u064a\u0646\u064a\u0629
languages.ber=\u0627\u0644\u0628\u0631\u0628\u0631\u064a\u0629
-languages.fa=\u0627\u0644\u0641\u0627\u0631\u0633\u064a\u0629
-languages.la=\u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629
-languages.et=\u0627\u0633\u062a\u0648\u0646\u064a\u0629
+languages.nds=\u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u0633\u0641\u0644\u0649
+languages.bem=\u0627\u0644\u0628\u064a\u0645\u0628\u0627
+languages.bej=\u0627\u0644\u0628\u064a\u062c\u0627
+languages.tpi=\u0627\u0644\u062a\u0648\u0643 \u0628\u064a\u0633\u064a\u0646
+variants.REVISED=\u0643\u062a\u0627\u0628\u0629 \u062a\u0645 \u0645\u0631\u0627\u062c\u0639\u062a\u0647\u0627
+variants.AREVELA=\u0623\u0631\u0645\u0646\u064a\u0629 \u0634\u0631\u0642\u064a\u0629
+variants.POSIX=\u062d\u0627\u0633\u0648\u0628
+variants.POLYTON=\u0645\u062a\u0639\u062f\u062f \u0627\u0644\u0646\u063a\u0645\u0627\u062a
+variants.1996=\u0627\u0644\u0643\u062a\u0627\u0628\u0629 \u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0644\u0639\u0627\u0645 1996
+variants.AREVMDA=\u0627\u0631\u0645\u0646\u064a\u0629 \u063a\u0631\u0628\u064a\u0629
+variants.VALENCIA=\u0628\u0644\u0646\u0633\u064a\u0629
+variants.1901=\u0627\u0644\u0643\u062a\u0627\u0628\u0629 \u0627\u0644\u0623\u0644\u0645\u0627\u0646\u064a\u0629 \u0627\u0644\u062a\u0642\u0644\u064a\u062f\u064a\u0629
+variants.MONOTON=\u0623\u062d\u0627\u062f\u064a \u0627\u0644\u0646\u063a\u0645\u0629
+variants.BAKU1926=\u0627\u0644\u0623\u0628\u062c\u062f\u064a\u0629 \u0627\u0644\u062a\u0631\u0643\u064a\u0629 \u0627\u0644\u0644\u0627\u062a\u064a\u0646\u064a\u0629 \u0627\u0644\u0645\u0648\u062d\u062f\u0629
+variants.NEDIS=\u0644\u0647\u062c\u0629 \u0646\u0627\u062a\u064a\u0633\u0648\u0646
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_JO.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_JO.properties
index e16164c..e397098 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_JO.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_JO.properties
@@ -5,6 +5,6 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0623\u064a\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0623\u064a\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0623\u064a\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0623\u064a\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_LB.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_LB.properties
index 3396386..f033e8c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_LB.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_LB.properties
@@ -5,6 +5,7 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0646\u0648\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0646\u0648\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+exponential=E
+shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0623\u064a\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0623\u064a\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_QA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_QA.properties
index 30061aa..22255f9 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_QA.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_QA.properties
@@ -6,4 +6,4 @@
# This file was automatically generated by gnu.localegen from CLDR.
currencyFormat=\u00a4#0.00;-\u00a4#0.00
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SA.properties
index ebb48f6..fa3f44c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SA.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SA.properties
@@ -6,4 +6,4 @@
# This file was automatically generated by gnu.localegen from CLDR.
currencyFormat=\u00a4#0.00;-\u00a4#0.00
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SY.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SY.properties
index f096477..a14702c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SY.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_SY.properties
@@ -6,7 +6,6 @@
# This file was automatically generated by gnu.localegen from CLDR.
currencyFormat=\u00a4#0.00;-\u00a4#0.00
-shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0646\u0648\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0634\u0628\u0627\u0637®\u0622\u0630\u0627\u0631®\u0646\u064a\u0633\u0627\u0646®\u0646\u0648\u0627\u0631®\u062d\u0632\u064a\u0631\u0627\u0646®\u062a\u0645\u0648\u0632®\u0622\u0628®\u0623\u064a\u0644\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644®\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a®\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644®®
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
-firstDayOfWeek=thu
+shortMonths=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0646\u0648\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+months=\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0634\u0628\u0627\u0637\u00ae\u0622\u0630\u0627\u0631\u00ae\u0646\u064a\u0633\u0627\u0646\u00ae\u0646\u0648\u0627\u0631\u00ae\u062d\u0632\u064a\u0631\u0627\u0646\u00ae\u062a\u0645\u0648\u0632\u00ae\u0622\u0628\u00ae\u0623\u064a\u0644\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u062a\u0634\u0631\u064a\u0646 \u0627\u0644\u062b\u0627\u0646\u064a\u00ae\u0643\u0627\u0646\u0648\u0646 \u0627\u0644\u0623\u0648\u0644\u00ae\u00ae
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_TN.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_TN.properties
index 32a12df..195c92f 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_TN.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_TN.properties
@@ -5,6 +5,7 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+exponential=E
zeroDigit=0
currencyFormat=\u00a4#0.00;-\u00a4#0.00
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_YE.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_YE.properties
index 1cebfe4..aca8eb9 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_YE.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ar_YE.properties
@@ -6,4 +6,4 @@
# This file was automatically generated by gnu.localegen from CLDR.
currencyFormat=\u00a4#0.00;-\u00a4#0.00
-shortWeekdays=®\u0627\u0644\u0623\u062d\u062f®\u0627\u0644\u0627\u062b\u0646\u064a\u0646®\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621®\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621®\u0627\u0644\u062e\u0645\u064a\u0633®\u0627\u0644\u062c\u0645\u0639\u0629®\u0627\u0644\u0633\u0628\u062a®
+shortWeekdays=\u00ae\u0627\u0644\u0623\u062d\u062f\u00ae\u0627\u0644\u0627\u062b\u0646\u064a\u0646\u00ae\u0627\u0644\u062b\u0644\u0627\u062b\u0627\u0621\u00ae\u0627\u0644\u0623\u0631\u0628\u0639\u0627\u0621\u00ae\u0627\u0644\u062e\u0645\u064a\u0633\u00ae\u0627\u0644\u062c\u0645\u0639\u0629\u00ae\u0627\u0644\u0633\u0628\u062a\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_as.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_as.properties
index 0167d43..0a21e2a 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_as.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_as.properties
@@ -5,12 +5,41 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currenciesSymbol.INR=Rs.
-shortMonths=\u099c\u09be\u09a8\u09c1®\u09ab\u09c7\u09ac\u09cd\u09f0\u09c1®\u09ae\u09be\u09f0\u09cd\u099a®\u098f\u09aa\u09cd\u09f0\u09bf\u09b2®\u09ae\u09c7®\u099c\u09c1\u09a8®\u099c\u09c1\u09b2\u09be\u0987®\u0986\u0997®\u09b8\u09c7\u09aa\u09cd\u099f®\u0985\u0995\u09cd\u099f\u09cb®\u09a8\u09ad\u09c7®\u09a1\u09bf\u09b8\u09c7®®
-months=\u099c\u09be\u09a8\u09c1\u09df\u09be\u09f0\u09c0®\u09ab\u09c7\u09ac\u09cd\u09f0\u09c1\u09df\u09be\u09f0\u09c0®\u09ae\u09be\u09f0\u09cd\u099a®\u098f\u09aa\u09cd\u09f0\u09bf\u09b2®\u09ae\u09c7®\u099c\u09c1\u09a8®\u099c\u09c1\u09b2\u09be\u0987®\u0986\u0997\u09b7\u09cd\u099f®\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09f0®\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09f0®\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09f0®\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09f0®®
-shortWeekdays=®\u09f0\u09ac\u09bf®\u09b8\u09cb\u09ae®\u09ae\u0999\u09cd\u0997\u09b2®\u09ac\u09c1\u09a7®\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf®\u09b6\u09c1\u0995\u09cd\u09f0®\u09b6\u09a8\u09bf®
-weekdays=®\u09f0\u09ac\u09bf\u09ac\u09be\u09f0®\u09b8\u09cb\u09ae\u09ac\u09be\u09f0®\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09f0®\u09ac\u09c1\u09a7\u09ac\u09be\u09f0®\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09f0®\u09b6\u09c1\u0995\u09cd\u09f0\u09ac\u09be\u09f0®\u09b6\u09a8\u09bf\u09ac\u09be\u09f0®
-ampms=\u09aa\u09c2\u09f0\u09cd\u09ac\u09be®\u0985\u09aa®
-zoneStrings=Asia/Calcutta®\u09ad\u09be. \u09b8.®\u09ad\u09be\u09f0\u09a4\u09c0\u09df \u09b8\u09ae\u09df®\u09ad\u09be. \u09b8.®\u09ad\u09be\u09f0\u09a4\u09c0\u09df \u09b8\u09ae\u09df®©
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
+currenciesSymbol.INR=\u099f\u0995\u09be
+shortMonths=\u099c\u09be\u09a8\u09c1\u00ae\u09ab\u09c7\u09ac\u09cd\u09f0\u09c1\u00ae\u09ae\u09be\u09f0\u09cd\u099a\u00ae\u098f\u09aa\u09cd\u09f0\u09bf\u09b2\u00ae\u09ae\u09c7\u00ae\u099c\u09c1\u09a8\u00ae\u099c\u09c1\u09b2\u09be\u0987\u00ae\u0986\u0997\u00ae\u09b8\u09c7\u09aa\u09cd\u099f\u00ae\u0985\u0995\u09cd\u099f\u09cb\u00ae\u09a8\u09ad\u09c7\u00ae\u09a1\u09bf\u09b8\u09c7\u00ae\u00ae
+months=\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09f0\u09c0\u00ae\u09ab\u09c7\u09ac\u09cd\u09f0\u09c1\u09af\u09bc\u09be\u09f0\u09c0\u00ae\u09ae\u09be\u09f0\u09cd\u099a\u00ae\u098f\u09aa\u09cd\u09f0\u09bf\u09b2\u00ae\u09ae\u09c7\u00ae\u099c\u09c1\u09a8\u00ae\u099c\u09c1\u09b2\u09be\u0987\u00ae\u0986\u0997\u09b7\u09cd\u099f\u00ae\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09f0\u00ae\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09f0\u00ae\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09f0\u00ae\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09f0\u00ae\u00ae
+shortWeekdays=\u00ae\u09f0\u09ac\u09bf\u00ae\u09b8\u09cb\u09ae\u00ae\u09ae\u0999\u09cd\u0997\u09b2\u00ae\u09ac\u09c1\u09a7\u00ae\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u00ae\u09b6\u09c1\u0995\u09cd\u09f0\u00ae\u09b6\u09a8\u09bf\u00ae
+weekdays=\u00ae\u09a6\u09c7\u0993\u09ac\u09be\u09f0\u00ae\u09b8\u09cb\u09ae\u09ac\u09be\u09f0\u00ae\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09f0\u00ae\u09ac\u09c1\u09a7\u09ac\u09be\u09f0\u00ae\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09f0\u00ae\u09b6\u09c1\u0995\u09cd\u09f0\u09ac\u09be\u09f0\u00ae\u09b6\u09a8\u09bf\u09ac\u09be\u09f0\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u09aa\u09c2\u09f0\u09cd\u09ac\u09be\u00ae\u0985\u09aa\u00ae
+shortDateFormat=d-M-yyyy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM, yyyy
+fullDateFormat=EEEE, d MMMM, yyyy
+shortTimeFormat=h.mm. a
+mediumTimeFormat=h.mm.ss a
+longTimeFormat=h.mm.ss a z
+fullTimeFormat=h.mm.ss a z
+zoneStrings=India\u00ae\u09ad\u09be\u09f0\u09a4\u09c0\u09af\u09bc \u09b8\u09ae\u09af\u09bc\u00ae\u09ad\u09be. \u09b8.\u00ae\u00ae\u00ae\u00a9
+territories.FR=\u09ab\u09cd\u09f0\u09be\u09a8\u09cd\u09b8
+territories.IO=\u09ac\u09cd\u09f0\u09bf\u099f\u09bf\u09b6\u09cd\u09ac \u0987\u09a3\u09cd\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09ae\u09b9\u09be\u09b8\u09be\u0997\u09f0\u09f0 \u0985\u099e\u09cd\u099a\u09b2
territories.IN=\u09ad\u09be\u09f0\u09a4
-languages.as=\u0985\u09b8\u09ae\u09c0\u09df\u09be
+territories.CN=\u099a\u09c0\u09a8
+territories.BV=\u09ac\u09ad\u09c7\u099f \u09a6\u09cd\u09ac\u09c0\u09aa
+territories.DE=\u099c\u09be\u09f0\u09cd\u09ae\u09be\u09a8\u09bf
+territories.GB=\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u09f0\u09be\u099c\u09cd\u09af
+territories.BR=\u09ac\u09cd\u09f0\u09be\u099c\u09bf\u09b2
+territories.HM=\u09b9\u09be\u09f0\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa \u0986\u09f0\u09c1 \u09ae\u09c7\u0995\u09cd\u200c\u09a1\u09cb\u09a8\u09be\u09b2\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa
+territories.GS=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u099c\u09f0\u09cd\u099c\u09bf\u09af\u09bc\u09be \u0986\u09f0\u09c1 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u099a\u09c7\u09a3\u09cd\u09a1\u09f1\u09bf\u099a\u09cd\u200c \u09a6\u09cd\u09ac\u09c0\u09aa
+territories.TF=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u09ab\u09cd\u09f0\u09be\u09a8\u09cd\u09b8\u09f0 \u0985\u099e\u09cd\u099a\u09b2
+territories.ZZ=\u0985\u099c\u09cd\u099e\u09be\u09a4 \u09ac\u09be \u0985\u09ac\u09c8\u09a7 \u0985\u099e\u09cd\u099a\u09b2
+territories.RU=\u09f0\u09c1\u099a
+territories.JP=\u099c\u09be\u09aa\u09be\u09a8
+territories.US=\u09af\u09c1\u0995\u09cd\u09a4\u09f0\u09be\u09b7\u09cd\u099f\u09cd\u09f0
+territories.AQ=\u098f\u09a8\u09cd\u099f\u09be\u09f0\u09cd\u099f\u09bf\u0995\u09be
+territories.IT=\u0987\u099f\u09be\u09b2\u09bf
+languages.as=\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be
+languages.km=\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be\u09a8
+languages.ie=\u0989\u09aa\u09b8\u09cd\u09a5\u09be\u09aa\u09a8 \u09ad\u09be\u09b7\u09be
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_az.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_az.properties
index addff83..cab3fbb 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_az.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_az.properties
@@ -5,14 +5,1071 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
-groupingSeparator=\u00a0
-currenciesDisplayName.AZM=Manat
+groupingSeparator=.
+digit=#
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.YDD=Yemen dinar\u0131
+currenciesDisplayName.KES=Kenya \u015fillingi
+currenciesDisplayName.TWD=Tayvan yeni dollar\u0131
+currenciesDisplayName.LKR=\u015eri Lanka rupisi
+currenciesDisplayName.BYB=Belarusiya yeni rublu
+currenciesDisplayName.TJS=Tacikistan somoni
+currenciesDisplayName.RWF=Rvanda frank\u0131
+currenciesDisplayName.ERN=Eritreya nakfas\u0131
+currenciesDisplayName.TJR=Tacikistan rublu
+currenciesDisplayName.GRD=Yunan draxmas\u0131
+currenciesDisplayName.AFN=\u018ffg\u0259n
+currenciesDisplayName.IEP=\u0130rlandiya paundu
+currenciesDisplayName.ARS=Argentina pesosu
+currenciesDisplayName.SDG=Sudan paundu
+currenciesDisplayName.ARP=Argentina pesosu (ARP)
+currenciesDisplayName.GEL=G\u00fcrc\u00fcstan larisi
+currenciesDisplayName.GEK=G\u00fcrc\u00fcstan kupon lariti
+currenciesDisplayName.AFA=\u018ffg\u0259n (AFA)
+currenciesDisplayName.CRC=Kosta Rika kolonu
+currenciesDisplayName.FKP=Folkland adas\u0131 paundu
+currenciesDisplayName.EEK=Estoniya krunu
+currenciesDisplayName.MDL=Moldova leyusu
+currenciesDisplayName.HKD=Honk Konq dollar\u0131
+currenciesDisplayName.IQD=\u0130raq dinar\u0131
+currenciesDisplayName.ARA=Argentina avstral\u0131
+currenciesDisplayName.SCR=Sey\u00e7el rupiyi
+currenciesDisplayName.KPW=\u015eimal Koreya vonu
+currenciesDisplayName.DKK=Danemarka kronas\u0131
+currenciesDisplayName.IDR=\u0130ndoneziya rupisi
+currenciesDisplayName.GQE=Ekvatoriya Gvineya ekvele quneanas\u0131
+currenciesDisplayName.SOS=Somaliya \u015fillingi
+currenciesDisplayName.LVR=Latviya rublu
+currenciesDisplayName.EQE=Ekvele
+currenciesDisplayName.AED=B\u018fE dirham\u0131
+currenciesDisplayName.LVL=Latviya lats\u0131
+currenciesDisplayName.BWP=Botsvana pulas\u0131
+currenciesDisplayName.RUR=Rusiya rublu (RUR)
+currenciesDisplayName.MOP=Makao patakas\u0131
+currenciesDisplayName.FJD=Fici dollar\u0131
+currenciesDisplayName.ADP=Andora pesetas\u0131
+currenciesDisplayName.RUB=Rusiya rublu
+currenciesDisplayName.CDF=Konqoliz frank konqolays\u0131
+currenciesDisplayName.NIC=Nikaraqua kordobu
+currenciesDisplayName.DJF=Jibouti frankas\u0131
+currenciesDisplayName.UZS=\u00d6zb\u0259kistan sumu
+currenciesDisplayName.SBD=Solomon Adalar\u0131 dollar\u0131
+currenciesDisplayName.LUL=Luksemburq finans frankas\u0131
+currenciesDisplayName.ECS=Ekvador sukresi
+currenciesDisplayName.THB=Tay baht\u0131
+currenciesDisplayName.PHP=Filipin pesosu
+currenciesDisplayName.LUF=Luksemburq frankas\u0131
+currenciesDisplayName.RHD=Rodezian dollar\u0131
+currenciesDisplayName.LUC=Luksemburq d\u0259yi\u015fik frankas\u0131
+currenciesDisplayName.FIM=Fin markas\u0131
+currenciesDisplayName.SZL=Svazil\u0259nd lilangeni
+currenciesDisplayName.MNT=Monqoliya tuqriki
+currenciesDisplayName.UAK=Ukraina karbovenesas\u0131
+currenciesDisplayName.SAR=Saudi riyal\u0131
+currenciesDisplayName.UAH=Ukraina hrivnyas\u0131
+currenciesDisplayName.HUF=Macar\u0131stan forinti
+currenciesDisplayName.QAR=Qatar rial\u0131
+currenciesDisplayName.COP=Kolombiya pesosu
+currenciesDisplayName.LTT=Litva talonas\u0131
+currenciesDisplayName.PTE=Portuqal eskudosu
+currenciesDisplayName.UYU=Uruqvay pesosu
+currenciesDisplayName.AOR=Anqola kvanzasi (AOR)
+currenciesDisplayName.GBP=Britaniya paund sterlingi
+currenciesDisplayName.ZRZ=Zair zairi
+currenciesDisplayName.INR=Hindistan rupisi
+currenciesDisplayName.BIF=Burundi frankas\u0131
+currenciesDisplayName.XFU=Frans\u0131z U\u0130C frank\u0131
+currenciesDisplayName.MZN=Mozambik metikal\u0131
+currenciesDisplayName.LTL=Litva litas\u0131
+currenciesDisplayName.AON=Anqola yeni kvanzasi (AON)
+currenciesDisplayName.UYP=Uruqvay pesosu (UYP)
+currenciesDisplayName.MZM=Q\u0259dim mozambik metikal\u0131
+currenciesDisplayName.KZT=Kazaxstan tenqesi
+currenciesDisplayName.AOK=Anqola kvanzasi (AOK)
+currenciesDisplayName.GNS=Gineya sulisi
+currenciesDisplayName.BUK=Burmis kyat\u0131
+currenciesDisplayName.XFO=Frans\u0131z g\u0131z\u0131l frank\u0131
+currenciesDisplayName.PGK=Papua Yeni Qvineya kini
+currenciesDisplayName.UYI=Uruqvay pesosu unidades indexadas
+currenciesDisplayName.SYP=Siriya paundu
+currenciesDisplayName.OMR=Oman rial\u0131
+currenciesDisplayName.MZE=Mozambik eskudosu
+currenciesDisplayName.ZRN=Zair yeni zairi
+currenciesDisplayName.NGN=Nigeriya nairi
+currenciesDisplayName.CNY=\u00c7in yuan\u0131
+currenciesDisplayName.AOA=Anqola kvanzasi
+currenciesDisplayName.MAF=Morokko frankas\u0131
+currenciesDisplayName.RSD=Serbiya dinar\u0131
+currenciesDisplayName.GNF=qvineya frankas\u0131
+currenciesDisplayName.MAD=Morokko dirham\u0131
+currenciesDisplayName.HTG=Haiti qourdu
+currenciesDisplayName.TRY=T\u00fcrk lira
+currenciesDisplayName.MMK=Myanmar kiyat\u0131
+currenciesDisplayName.MYR=Malaysiya rinqiti
+currenciesDisplayName.LSM=Maloti
+currenciesDisplayName.LSL=Lesoto lotisi
+currenciesDisplayName.BHD=Bahreyn dinar\u0131
+currenciesDisplayName.BTN=Butan ngultrumu
+currenciesDisplayName.TRL=T\u00fcrk k\u00f6hn\u0259 liras\u0131
+currenciesDisplayName.KMF=Komoro frank\u0131
+currenciesDisplayName.CZK=Cex respublika korunas\u0131
+currenciesDisplayName.ANG=Hollandiya Antila gilderi
+currenciesDisplayName.AZN=Az\u0259rbaycan manat\u0131
+currenciesDisplayName.AZM=az\u0259rbaycan manat\u0131 (1993-2006)
+currenciesDisplayName.KYD=Keyman Adalar\u0131 dollar\u0131
+currenciesDisplayName.GMD=Qambiya dalasi
+currenciesDisplayName.VEF=Venesuela Bolivar fuerti
+currenciesDisplayName.BGN=Bolqariya yeni levas\u0131
+currenciesDisplayName.CAD=Kanada dollar\u0131
+currenciesDisplayName.BGL=Bolqariya levas\u0131
+currenciesDisplayName.VEB=Venesuela bolivar\u0131
+currenciesDisplayName.MLF=Mali frank\u0131
+currenciesDisplayName.MXP=Meksika g\u00fcm\u00fc\u015f pesosu
+currenciesDisplayName.ILS=\u0130zrail ail yeni \u015fekeli
+currenciesDisplayName.PES=Peru solu
+currenciesDisplayName.MXN=Meksika pesosu
+currenciesDisplayName.GYD=Quyana dollar\u0131
+currenciesDisplayName.ILP=\u0130zrail paundu
+currenciesDisplayName.CYP=Kipr paundu
+currenciesDisplayName.SKK=Slovak korunas\u0131
+currenciesDisplayName.PEN=Peru sol nuyevosu
+currenciesDisplayName.LRD=Liberiya dollar\u0131
+currenciesDisplayName.PEI=Peru inti
+currenciesDisplayName.AMD=Erm\u0259ni dram\u0131
+currenciesDisplayName.BSD=Bahama dollar\u0131
+currenciesDisplayName.XPT=platinum
+currenciesDisplayName.HRK=Xorvatiya kunu
+currenciesDisplayName.HRD=Xorvatiya dinar\u0131
+currenciesDisplayName.CLP=\u00c7ili pesosu
+currenciesDisplayName.XPF=CFP frank\u0131
+currenciesDisplayName.FRF=Frans\u0131z markas\u0131
+currenciesDisplayName.XPD=Palladium
+currenciesDisplayName.BRR=Braziliya kruzeyrosu
+currenciesDisplayName.MKD=Masedoniya denar\u0131
+currenciesDisplayName.BRN=Braziliya kruzado novas\u0131
+currenciesDisplayName.ALL=Alban leki
+currenciesDisplayName.MWK=Malavi kva\u00e7as\u0131
+currenciesDisplayName.BRL=Braziliya real\u0131
+currenciesDisplayName.TPE=Timor eskudu
+currenciesDisplayName.BRE=Braziliya kruzeyrosu (BRE)
+currenciesDisplayName.BRC=Braziliya kruzadosu
+currenciesDisplayName.BRB=Braziliya kruzeyro novas\u0131
+currenciesDisplayName.DEM=Alman markas\u0131
+currenciesDisplayName.KWD=Kuveyt dinar\u0131
+currenciesDisplayName.XCD=\u015e\u0259rq karib dollar\u0131
+currenciesDisplayName.NPR=Nepal rupiyi
+currenciesDisplayName.GWP=Qvineya-Bisau pesosu
+currenciesDisplayName.YUN=Yuqoslaviya dinar\u0131 (d\u0259yi\u015fik)
+currenciesDisplayName.SVC=El Salvador kolonu
+currenciesDisplayName.YUM=Yuqoslaviya yeni dinar\u0131 (hard)
+currenciesDisplayName.BEL=Bel\u00e7ika frank\u0131 (finans)
+currenciesDisplayName.SIT=Sloveniya tolar\u0131
+currenciesDisplayName.JPY=Yapon yeni
+currenciesDisplayName.XOF=CFA franka BCEAO
+currenciesDisplayName.MVR=Maldiv adalar\u0131 rufiyi
+currenciesDisplayName.BEF=Bel\u00e7ika frank\u0131
+currenciesDisplayName.GWE=Portugal Qvineya eskudosu
+currenciesDisplayName.TOP=Tonqa panqas\u0131
+currenciesDisplayName.YUD=Yuqoslaviya dinar\u0131 (hard)
+currenciesDisplayName.BEC=Bel\u00e7ika frank\u0131 (dey\u015firik)
+currenciesDisplayName.SUR=Sovet rublu
+currenciesDisplayName.RON=Roman leyu
+currenciesDisplayName.ROL=Roman q\u0259dimi leyu
+currenciesDisplayName.BDT=Banqlade\u015f takas\u0131
+currenciesDisplayName.DDM=\u015e\u0259rq Almaniya ostmark\u0131
+currenciesDisplayName.AWG=Aruba qilderi
+currenciesDisplayName.NOK=Norve\u00e7 kronu
+currenciesDisplayName.MUR=Mavritis rupiyi
+currenciesDisplayName.ZAR=C\u0259nub Afrika rand\u0131
+currenciesDisplayName.XAU=q\u0131z\u0131l
+currenciesDisplayName.ZAL=C\u0259nub Afrika rand\u0131 (finans)
+currenciesDisplayName.VND=Vyetnam donqu
+currenciesDisplayName.TZS=Tanzaniya \u015filingi
+currenciesDisplayName.GIP=Gibraltar paundu
+currenciesDisplayName.TND=Tunis dinar\u0131
+currenciesDisplayName.CVE=Kape Verde eskudosu
+currenciesDisplayName.UGX=Uqanda \u015felingi
+currenciesDisplayName.XAG=g\u00fcm\u00fc\u015f
+currenciesDisplayName.ZMK=Zambiya kva\u00e7\u0131
+currenciesDisplayName.JOD=\u0130ordaniya dinar\u0131
+currenciesDisplayName.LBP=Lebanon paundu
+currenciesDisplayName.UGS=Uqanda \u015felingi (UGS)
+currenciesDisplayName.WST=Q\u0259rb Samoa talas\u0131
+currenciesDisplayName.KHR=Kambodiya riyeli
+currenciesDisplayName.DOP=Dominika pesosu
+currenciesDisplayName.EUR=yevro
+currenciesDisplayName.BOV=Boliviya mvdol\u0131
+currenciesDisplayName.MTP=Maltiz paundu
+currenciesDisplayName.USS=AB\u015e dollar\u0131 (h\u0259min g\u00fcn)
+currenciesDisplayName.BOP=Boliviya pesosu
+currenciesDisplayName.CUP=Kuba pesosu
+currenciesDisplayName.TMM=T\u00fcrkm\u0259nistan manat\u0131
+currenciesDisplayName.USN=AB\u015e dollar\u0131 (yeni g\u00fcn)
+currenciesDisplayName.GHS=Qana sedisi
+currenciesDisplayName.SGD=Sinqapur dollar\u0131
+currenciesDisplayName.NZD=Yeni Zelandiya dollar\u0131
+currenciesDisplayName.USD=AB\u015e dollar\u0131
+currenciesDisplayName.BOB=Boliviano
+currenciesDisplayName.HNL=Honduras lempiras\u0131
+currenciesDisplayName.CHW=WIR frankas\u0131
+currenciesDisplayName.ITL=\u0130taliya liras\u0131
+currenciesDisplayName.PAB=Panamaniya balboa
+currenciesDisplayName.GTQ=Qvatemala k\u00fcetzal\u0131
+currenciesDisplayName.XXX=bilinm\u0259y\u0259n v\u0259ya g\u0259c\u0259rsiz
+currenciesDisplayName.AUD=Avstraliya dollar\u0131
+currenciesDisplayName.GHC=Qana sedisi (GHC)
+currenciesDisplayName.LAK=Laotiya kipi
+currenciesDisplayName.NAD=Namibiya dollar\u0131
+currenciesDisplayName.KGS=K\u0131r\u011f\u0131zstan somu
+currenciesDisplayName.MGF=Madaqaskar frankas\u0131
+currenciesDisplayName.BBD=Barbados dollar\u0131
+currenciesDisplayName.CHF=\u0130sve\u00e7riya frankas\u0131
+currenciesDisplayName.CHE=WIR Yevrosu
+currenciesDisplayName.MGA=Madaqaskar ariarisi
+currenciesDisplayName.PYG=Paraqvay quarani
+currenciesDisplayName.PLZ=Polsha zlotisi (PLZ)
+currenciesDisplayName.YER=Yemen rial\u0131
+currenciesDisplayName.ATS=Avstriya \u015filingi
+currenciesDisplayName.ETB=Efiopiya biras\u0131
+currenciesDisplayName.BND=Bruney dollar\u0131
+currenciesDisplayName.EGP=Misir paundu
+currenciesDisplayName.JMD=Yamayka dollar\u0131
+currenciesDisplayName.PLN=Polsha zlotisi
+currenciesDisplayName.DZD=Alc\u0259zir dinar\u0131
+currenciesDisplayName.ISK=Aysland kronas\u0131
+currenciesDisplayName.LYD=Liviya dinar\u0131
+currenciesDisplayName.SRD=Surinam dollar\u0131
+currenciesDisplayName.BAM=Bosniya-Herzeqovina markas\u0131
+currenciesDisplayName.BZD=Beliz dollar\u0131
+currenciesDisplayName.ESP=\u0130span pesetas\u0131
+currenciesDisplayName.KRW=C\u0259nub Koreya vonu
+currenciesDisplayName.NLG=Hollandiya gilderi
+currenciesDisplayName.MRO=Mavritaniya oyuquyas\u0131
+currenciesDisplayName.BAD=Bosniya-Herzeqovina dinar\u0131
+currenciesDisplayName.ZWD=Zimbabve dollar\u0131
+currenciesDisplayName.SEK=\u0130sve\u00e7 kronu
+currenciesDisplayName.CSK=\u00c7exoslavakiya korunas\u0131
+currenciesDisplayName.BYR=Belarusiya rublu
+currenciesDisplayName.ESB=\u0130span pesetas\u0131 (d\u0259y\u015firik)
+currenciesDisplayName.IRR=\u0130ran rial\u0131
+currenciesDisplayName.ESA=\u0130span pesetas\u0131 (A account)
+currenciesDisplayName.PKR=Pakistan rupiyi
+currenciesDisplayName.BMD=Bermuda dollar\u0131
+currenciesDisplayName.CSD=Q\u0259dimi serb dinar\u0131
+currenciesSymbol.GEL=lari
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.JPY=JP\u00a5
+currenciesSymbol.ALL=lek
+currenciesSymbol.AMD=dram
+currenciesSymbol.RUB=RUB
+currenciesSymbol.AZN=AZN
currenciesSymbol.AZM=man.
-shortMonths=yan®fev®mar®apr®may®iyn®iyl®avq®sen®okt®noy®dek®®
-months=Yanvar®Fevral®Mart®Aprel®May®\u0130yun®\u0130yul®Avqust®Sentyabr®Oktyabr®Noyabr®Dekabr®®
-shortWeekdays=®B.®B.e.®\u00c7.a.®\u00c7.®C.a.®C.®\u015e.®
-weekdays=®bazar®bazar ert\u0259si®\u00e7\u0259r\u015f\u0259nb\u0259 ax\u015fam®\u00e7\u0259r\u015f\u0259nb\u0259®c\u00fcm\u0259 ax\u015fam\u0131®c\u00fcm\u0259®\u015f\u0259nb\u0259®
-eras=e.\u0259.®b.e.®
+currenciesSymbol.BRL=R$
+currenciesSymbol.CNY=CNY
+currenciesSymbol.USD=US$
+currenciesSymbol.XXX=XXX
+currenciesSymbol.EUR=\u20ac
+currenciesSymbol.GBP=UK\u00a3
+shortMonths=yan\u00aefev\u00aemar\u00aeapr\u00aemay\u00aeiyn\u00aeiyl\u00aeavq\u00aesen\u00aeokt\u00aenoy\u00aedek\u00ae\u00ae
+months=Yanvar\u00aeFevral\u00aeMart\u00aeAprel\u00aeMay\u00ae\u0130yun\u00ae\u0130yul\u00aeAvqust\u00aeSentyabr\u00aeOktyabr\u00aeNoyabr\u00aeDekabr\u00ae\u00ae
+shortWeekdays=\u00aeB.\u00aeB.E.\u00ae\u00c7.A.\u00ae\u00c7.\u00aeC.A.\u00aeC\u00ae\u015e.\u00ae
+weekdays=\u00aebazar\u00aebazar ert\u0259si\u00ae\u00e7\u0259r\u015f\u0259nb\u0259 ax\u015fam\u0131\u00ae\u00e7\u0259r\u015f\u0259nb\u0259\u00aec\u00fcm\u0259 ax\u015fam\u0131\u00aec\u00fcm\u0259\u00ae\u015f\u0259nb\u0259\u00ae
+eras=e.\u0259.\u00aeb.e.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00ae\u015e\u0259rq Avropa\u00ae\u015e\u0259rq Avropa/standart\u00ae\u015e\u0259rq Avropa/yay\u00ae\u015e\u0259rq Avropa/yaz\u00ae\u00a9Europe_Central\u00aeOrta Avropa\u00aeOrta Avropa/standart\u00aeOrta Avropa/yay\u00aeOrta Avropa/yaz\u00ae\u00a9Samara\u00aeSamara\u00ae\u00aeSamara/yay\u00ae\u00ae\u00a9Moscow\u00aeMoskva/standart\u00ae\u00aeMoskva/yay\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybu\u015fev\u00ae\u00aeKuybu\u015fev/yay\u00ae\u00ae\u00a9Volgograd\u00aeVolqoqrad\u00ae\u00aeVolqoqrad/yay\u00ae\u00ae\u00a9Turkey\u00aeT\u00fcrkiya\u00ae\u00aeT\u00fcrkiya/yay\u00ae\u00ae\u00a9
+territories.TL=\u015e\u0259rq Timor
+territories.TK=Tokelau
+territories.TJ=tacikistan
+territories.TH=tayland
+territories.TG=Toqo
+territories.TF=Frans\u0131z C\u0259nub teritoriyas\u0131
+territories.GY=Quyana
+territories.TD=\u00c7ad
+territories.TC=T\u00fcrk v\u0259 Kaykos Adalar\u0131
+territories.GW=Qvineya-Bisau
+territories.GU=Quam
+territories.GT=Qvatemala
+territories.GS=C\u0259nub G\u00fcrc\u00fcstan v\u0259 C\u0259nub Sandvil\u00e7 Adalar\u0131
+territories.GR=Yunan\u0131stan
+territories.GQ=Ekvator Qineya
+territories.GP=Qvadalup
+territories.SZ=svazil\u0259nd
+territories.SY=siriya
+territories.GN=Qvineya
+territories.GM=Qambiya
+territories.GL=Qrinland
+territories.SV=El Salvador
+territories.062=C\u0259nub Orta Asiya
+territories.ST=Sao Tom v\u0259 Prinsip
+territories.GI=Gibraltar
+territories.061=Polineziya
+territories.GH=Qana
+territories.SR=surinam\u0259
+territories.GG=G\u00f6rnsey
+territories.GF=Frans\u0131z Quyanas\u0131
+territories.GE=G\u00fcrc\u00fcstan
+territories.SO=Somaliya
+territories.GD=Qrenada
+territories.SN=Seneqal
+territories.SM=San Marino
+territories.GB=Birl\u0259\u015fmi\u015f Krall\u0131q
+territories.SL=Siyera Leon
+territories.GA=Qabon
+territories.SK=Slovakiya
+territories.SJ=svalbard v\u0259 yan mayen
+territories.SI=Sloveniya
+territories.SH=Seynt Elena
+territories.SG=Sinqapur
+territories.SE=isve\u00e7
+territories.SD=sudan
+territories.SC=Sey\u00e7els
+territories.SB=Solomon Adalar\u0131
+territories.SA=Saudi \u018fr\u0259bistan
+territories.FR=Fransa
+territories.FO=Faro Adalar\u0131
+territories.057=Mikronesiya reqionu
+territories.FM=Mikronesiya
+territories.RW=Rvanda
+territories.054=Melanesya
+territories.FK=Folkland Adalar\u0131
+territories.053=Avstraliya v\u0259 Yeni Zelandiya
+territories.RU=Rusiya
+territories.FJ=Fici
+territories.FI=Finlandiya
+territories.RS=Serbiya
+territories.RO=Romaniya
+territories.RE=Reyunion
+territories.ET=Efiopiya
+territories.ES=\u0130spaniya
+territories.ER=Eritreya
+territories.QU=Avropa Birl\u0259\u015fliyi
+territories.EH=Q\u0259rb Sahara
+territories.EG=Misir
+territories.EE=Estoniya
+territories.QO=Uzak Okeyaniya
+territories.EC=Ekvador
+territories.DZ=Cezay\u0131r
+territories.QA=Qatar
+territories.039=C\u0259nub Avropa
+territories.DO=Dominik Respublikas\u0131
+territories.PY=Paraqvay
+territories.DM=Dominika
+territories.035=C\u0259nub \u015e\u0259rq Asiya
+territories.PW=Palav
+territories.034=C\u0259nub Asiya
+territories.DK=Danemarka
+territories.DJ=Ciboti
+territories.PT=Portuqal
+territories.PS=F\u0259l\u0259stin B\u00f6lq\u00fcs\u00fc
+territories.030=\u015e\u0259rq Asiya
+territories.PR=Puerto Riko
+territories.DE=Almaniya
+territories.PN=Pitkarn
+territories.PM=Seynt Piyer v\u0259 Mikelon
+territories.PL=Pol\u015fa
+territories.PK=Pakistan
+territories.PH=Filipin
+territories.PG=Papua Yeni Qvineya
+territories.PF=Frans\u0131z Polineziya
+territories.CZ=\u00c7ex respublikas\u0131
+territories.PE=Peru
+territories.CY=Kipr
+territories.CX=\u00c7ristmas Adas\u0131
+territories.CV=Kape Verde
+territories.PA=Panama
+territories.CU=Kuba
+territories.CR=Kosta Rika
+territories.029=Kariy\u0131plar
+territories.CO=Kolumbiya
+territories.CN=\u00c7in
+territories.CM=Kamerun
+territories.CL=\u00c7ile
+territories.CK=Kuk Adalar\u0131
+territories.021=021
+territories.CI=\u0130vori Sahili
+territories.CH=isve\u00e7riya
+territories.CG=Konqo - Brazavil
+territories.CF=Orta Afrika respublikas\u0131
+territories.CD=Konqo - Kin\u015fasa
+territories.CC=Kokos Adalar\u0131
+territories.OM=Oman
+territories.CA=Kanada
+territories.419=Lat\u0131n Amerikas\u0131 v\u0259 Karibl\u0259r
+territories.BZ=Beliz
+territories.BY=Belarus
+territories.BW=Botsvana
+territories.BV=Bove Adas\u0131
+territories.BT=Butan
+territories.BS=Bahamalar
+territories.BR=Braziliya
+territories.019=Amerikalar
+territories.018=018
+territories.NZ=Yeni Zelandiya
+territories.017=Orta Afrika
+territories.BO=Boliviya
+territories.BN=Bruney
+territories.015=\u015eimal Afrika
+territories.BM=Bermuda
+territories.014=\u015e\u0259rq Afrika
+territories.BL=Seynt Bartelemey
+territories.013=Orta Amerika
+territories.NU=Niye
+territories.BJ=Benin
+territories.011=Q\u0259rb afrika
+territories.BI=Burundi
+territories.172=172
+territories.BH=Bahreyn
+territories.NR=Nauru
+territories.BG=Bolqariya
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Bel\u00e7ika
+territories.ZZ=bilinmir
+territories.NO=Norvec
+territories.BD=Banqlade\u015f
+territories.BB=Barbados
+territories.ZW=Zimbabve
+territories.NL=Hollandiya
+territories.BA=Bosniya v\u0259 Herzokovina
+territories.NI=Nikaraqua
+territories.NG=Nijeriya
+territories.NF=Norfolk Adas\u0131
territories.AZ=Az\u0259rbaycan
+territories.NE=nijer
+territories.AX=Aland Adalar\u0131
+territories.NC=Yeni Kaledoniya
+territories.AW=Aruba
+territories.ZM=Zambiya
+territories.NA=Namibiya
+territories.AU=Avstraliya
+territories.AT=Avstriya
+territories.AS=Amerika Samoas\u0131
+territories.AR=Arqentina
+territories.AQ=Antarktika
+territories.009=Okeyaniya
+territories.MZ=Mazambik
+territories.AO=Angola
+territories.MY=Malaysiya
+territories.AN=Hollandiya antilleri
+territories.MX=Meksika
+territories.AM=Erm\u0259nistan
+territories.005=C\u0259nub Amerika
+territories.MW=Malavi
+territories.AL=Albaniya
+territories.MV=Maldiv
+territories.003=\u015eimal Amerika
+territories.ZA=C\u0259nub Afrika
+territories.MU=Mavritis
+territories.002=Afrika
+territories.MT=Malta
+territories.AI=Anquila
+territories.001=D\u00fcnya
+territories.MS=Montserat
+territories.MR=Mavritaniya
+territories.AG=Antiqua v\u0259 Barbuda
+territories.MQ=Martiniqu
+territories.AF=\u018ffq\u0259nistan
+territories.MP=\u015eimal Mariana Adalar\u0131
+territories.AE=Birl\u0259\u015fmi\u015f \u018fr\u0259b Emiratlar\u0131
+territories.MO=Makao
+territories.AD=Andorra
+territories.MN=Monqoliya
+territories.MM=Myanmar
+territories.ML=Mali
+territories.MK=Masedoniya
+territories.YT=Mayot
+territories.MH=Mar\u015fal Adalar\u0131
+territories.MG=Madaqaskar
+territories.MF=Seynt Martin
+territories.ME=Monteneqro
+territories.MD=Moldova
+territories.MC=Monako
+territories.MA=Morokko
+territories.YE=Yemen
+territories.LY=Libya
+territories.LV=Latviya
+territories.155=Q\u0259rb Avropa
+territories.LU=L\u00fcksemburq
+territories.154=\u015eimal Avropa
+territories.LT=Litva
+territories.LS=Lesoto
+territories.LR=Liberiya
+territories.151=\u015e\u0259rq Avropa
+territories.150=Avropa
+territories.LK=\u015eri Lanka
+territories.LI=Lixten\u015fteyn
+territories.LC=Seynt Lusiya
+territories.LB=Lebanon
+territories.LA=Laos
+territories.KZ=Kazaxstan
+territories.KY=Kayman Adalar\u0131
+territories.KW=Kuveyt
+territories.145=Q\u0259rb Asiya
+territories.143=Orta Aziya
+territories.142=Aziya
+territories.KR=C\u0259nub Koreya
+territories.KP=\u015eimal Koreya
+territories.KN=Seynt Kits v\u0259 Nevis
+territories.KM=Komoros
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Kambodiya
+territories.KG=K\u0131rq\u0131zstan
+territories.KE=Kenya
+territories.WF=Valis v\u0259 Futuna
+territories.JP=Yaponiya
+territories.JO=\u00dcrd\u00fcn
+territories.JM=Yamayka
+territories.VU=Vanuatu
+territories.JE=C\u00f6rsi
+territories.VN=Vyetnam
+territories.VI=AB\u015e Virqin Adalar\u0131
+territories.VG=Britaniya Virgin Adalar\u0131
+territories.VE=Venesuela
+territories.VC=Seynt Vinsent v\u0259 Qrenada
+territories.VA=Vatikan
+territories.IT=italiya
+territories.IS=\u0130slandiya
+territories.IR=\u0130ran
+territories.IQ=\u0130rak
+territories.UZ=\u00d6zb\u0259kistan
+territories.IO=Britaniya-Hindistan Okeanik territoriyas\u0131
+territories.UY=Uruqvay
+territories.IN=Hindistan
+territories.IM=Man Adas\u0131
+territories.IL=\u0130zrail
+territories.US=Birl\u0259\u015fmi\u015f \u015etatlar\u0131
+territories.IE=\u0130rlandiya
+territories.ID=\u0130ndoneziya
+territories.UM=Birl\u0259\u015fmi\u015f \u015etatlar\u0131n uzaq adalar\u0131
+territories.UG=Uqanda
+territories.UA=Ukraina
+territories.HU=Macaristan
+territories.HT=Haiti
+territories.HR=Xorvatiya
+territories.TZ=tanzaniya
+territories.HN=Qonduras
+territories.HM=H\u00f6rd v\u0259 Makdonald Adalar\u0131
+territories.TW=tayvan
+territories.TV=Tuvalu
+territories.HK=Honk Konq
+territories.TT=Trinidan v\u0259 Tobaqo
+territories.TR=T\u00fcrkiya
+territories.TO=Tonqa
+territories.TN=Tunisiya
+territories.TM=T\u00fcrkm\u0259nistan
+languages.gwi=qvi\u00e7in dili
+languages.akk=akadianca
+languages.eka=ekacuk dili
+languages.ijo=ico dili
+languages.xh=xosa dili
+languages.sux=sumeryan dili
+languages.sus=susu dili
+languages.mis=\u00e7e\u015fitli diller
+languages.loz=lozi dili
+languages.tog=niyasa tonga dili
+languages.zbl=blisimbols dili
+languages.pon=ponpeyan dili
+languages.min=minanqkaban dili
+languages.suk=sukuma dili
+languages.wo=volof dili
+languages.lol=monqo dili
+languages.kut=kutenay dili
+languages.mic=mikmak dili
+languages.wa=valun dili
+languages.kum=kumuk dili
+languages.zap=zapotek dili
+languages.ain=aynuca
+languages.cus=ku\u015fitik dili
+languages.jbo=lo\u011fban dili
+languages.doi=doqri dili
+languages.zza=zaza dili
+languages.vo=volap\u00fck dili
+languages.oto=otomian dili
+languages.vi=vyetnamca
+languages.vai=vay dili
+languages.rar=rarotonqan dili
+languages.ve=venda dili
+languages.rap=rapanu dili
+languages.raj=racastan dili
+languages.ota=osman dili
+languages.nzi=nizima dili
+languages.nap=neapolital dili
+languages.uz=\u00f6zb\u0259kc\u0259
+languages.uga=uqaritik dili
+languages.tmh=tama\u015fek dili
+languages.nai=\u015fimal amerika yerli dili
+languages.nah=nahuatl dili
+languages.ur=urduca
+languages.fat=fanti dili
+languages.uk=ukraynaca
+languages.egy=q\u0259dimi misir dili
+languages.ug=uy\u011furca
+languages.fan=fang dili
+languages.ssa=nilo-sahara dili
+languages.mga=ortacaq irlandca
+languages.bat=baltik dili
+languages.nyo=niyoro dili
+languages.bas=basa dili
+languages.nyn=nyankol dili
+languages.nym=nyamvezi dili
+languages.gsw=isve\u00e7 almanca
+languages.hmn=monq dili
+languages.ban=balinc\u0259
+languages.osa=osage dili
+languages.bal=baluc dili
+languages.ty=taxiti dili
+languages.bai=bamilek dili
+languages.tw=Tvi dili
+languages.srr=serer dilii
+languages.tli=tlinqit dili
+languages.tlh=klinqon
+languages.tt=tatarca
+languages.ts=sonqa dili
+languages.srn=sranan tonqo dili
+languages.bad=banda dili
+languages.tr=t\u00fcrkc\u0259
+languages.to=tonqa dili
+languages.tn=svana dili
+languages.tl=taqaloq dili
+languages.tk=t\u00fcrkm\u0259nc\u0259
+languages.ti=tiqrin dili
+languages.th=tayca
+languages.kru=kurux dili
+languages.tg=tacik dili
+languages.byn=bilinc\u0259
+languages.te=teluqu dili
+languages.kro=kru dili
+languages.csb=ka\u015fubyan dili
+languages.ta=tamilc\u0259
+languages.krl=karelyan dili
+languages.tkl=tokelay dili
+languages.efi=efik dili
+languages.sw=suahilic\u0259
+languages.sv=isve\u00e7c\u0259
+languages.su=sundanca
+languages.krc=qara\u00e7ay-balkar dili
+languages.st=Sesoto dili
+languages.ss=svati dili
+languages.sr=serb dili
+languages.sq=Albanca
+languages.men=mende dili
+languages.crp=kreol dili
+languages.so=somali dili
+languages.afh=afrihili dili
+languages.sn=\u015fona dili
+languages.sm=samoa dili
+languages.sl=slovenc\u0259
+languages.grc=q\u0259dimi yunanca
+languages.sk=slovakca
+languages.grb=qrebo dili
+languages.si=sinhalisc\u0259
+languages.sh=serb-xorvatca
+languages.crh=kr\u0131m t\u00fcrk\u00e7\u0259
+languages.afa=afro-aziat dili
+languages.sg=sanqo dili
+languages.se=\u015fimal sami dili
+languages.sd=sindhi dili
+languages.udm=udmurt dili
+languages.sc=sardin dili
+languages.sa=Sanskrit dili
+languages.rw=kinyarvanda dili
+languages.ru=rusca
+languages.mdr=mandar dili
+languages.ro=rum\u0131n
+languages.rn=rundi dili
+languages.fr_CH=isve\u00e7 frans\u0131zca
+languages.mdf=mok\u015fa dili
+languages.tiv=tiv dili
+languages.fr_CA=frans\u0131zca (CA)
+languages.ady=aduge dili
+languages.zun=zuni dili
+languages.kpe=kpelle dili
+languages.qu=kuechya dili
+languages.tig=tiqre dili
+languages.son=sonqay dili
+languages.cpp=portugal kreol dili
+languages.rup=aromanca
+languages.sog=soqdiyen dili
+languages.ada=adangme dili
+languages.kos=kosreyan dili
+languages.hit=hittit dili
+languages.cpf=frans\u0131z kreol dili
+languages.cpe=inglis kreol dili
+languages.him=hima\u00e7ali dili
+languages.kok=konkan dili
+languages.hil=hiliqaynon dili
+languages.got=got\u00e7a
+languages.gor=qorontalo dili
+languages.gon=qondi dili
+languages.din=dinka dili
+languages.nub=nubiy dili
+languages.pt=portuqalca
+languages.ps=Pu\u015ftu dili
+languages.fur=friul dili
+languages.phn=foyenik dili
+languages.de_CH=isve\u00e7 y\u00fcks\u0259k almancas\u0131
+languages.goh=q\u0259dimi almanca
+languages.snk=soninke dili
+languages.cop=kopt dili
+languages.yap=yapiz dili
+languages.ach=akoli dili
+languages.yao=yao dili
+languages.phi=filipin dili
+languages.pl=Polish dili
+languages.ace=akin dili
+languages.pi=pali dili
+languages.pt_PT=\u0130ber portuqalca
+languages.pa=puncab dili
+languages.bug=bugin dili
+languages.iba=iban dili
+languages.sms=skolt dili
+languages.bua=buryat dili
+languages.mas=masay dili
+languages.smn=inari sami
+languages.os=osetik dili
+languages.map=avstronezic\u0259
+languages.or=Oriy\u0259 dili
+languages.man=m\u0259ndinqo dili
+languages.smj=lule sami dili
+languages.smi=s\u0259mi dili
+languages.mak=makasar dili
+languages.om=oromo dili
+languages.mai=maitili dili
+languages.oj=ocibva dili
+languages.mag=maqahi dili
+languages.mad=maduriz dili
+languages.sma=c\u0259nub sami dili
+languages.oc=oksitanca
+languages.nso=\u015fimal soto dili
+languages.btk=batak dili
+languages.myv=erzya dili
+languages.es_ES=iber-ispanca
+languages.de_AT=almanca (AT)
+languages.dgr=doqrib dili
+languages.ny=nyanca dili
+languages.myn=maya dili
+languages.nv=navayo dili
+languages.kmb=kimbundu dili
+languages.nr=c\u0259nub ndebele dili
+languages.gmh=ortacaq y\u00fcks\u0259k almanca
+languages.no=norve\u00e7 dili
+languages.nn=norve\u00e7 ninorsk dili
+languages.nl=hollandca
+languages.root=rut dili
+languages.ng=nqonka dili
+languages.sla=slav dili
+languages.ne=nepalca
+languages.nd=\u015fimal ndebele dili
+languages.cmc=\u00e7amik dili
+languages.tet=tetum dili
+languages.nb=norvec bokmal dili
+languages.na=nauru dili
+languages.ter=tereno dili
+languages.tem=timne dili
+languages.my=burmis dili
+languages.lez=l\u0259zqi dili
+languages.mt=malta dili
+languages.peo=q\u0259dimi farsca
+languages.ms=malayca
+languages.frr=\u015fimal fris dili
+languages.mr=marati dili
+languages.fro=q\u0259dimi frans\u0131zca
+languages.mo=moldavca
+languages.mn=monqolca
+languages.frm=ortacaq frans\u0131zca
+languages.ml=malayalamca
+languages.jrb=jude-\u0259r\u0259bc\u0259
+languages.mk=makedoniya dili
+languages.mi=maori dili
+languages.mh=mar\u015fal dili
+languages.mg=malaqas dili
+languages.nqo=nqo dili
+languages.mwr=maruari dili
+languages.bra=braj dili
+languages.mwl=mirand dili
+languages.den=slavey
+languages.lv=lat\u0131\u015fca
+languages.lu=luba-katanqa dili
+languages.del=delaver dili
+languages.lt=litva dili
+languages.lo=laos dili
+languages.ln=Linqala dili
+languages.li=limburqi\u015f dili
+languages.ewo=evondo dili
+languages.lg=qanda dili
+languages.lb=luksemburq dili
+languages.la=lat\u0131nca
+languages.jpr=judo-farsca
+languages.vot=votik dili
+languages.sit=sino-tibet dili
+languages.ky=q\u0131r\u011f\u0131zca
+languages.kw=korni\u015f dili
+languages.kv=komi dili
+languages.ku=k\u00fcrdc\u0259
+languages.sio=sioyan dili
+languages.ks=k\u0259\u015fmir dili
+languages.kr=kanur dili
+languages.awa=avadic\u0259
+languages.ko=koreya dili
+languages.kn=kannada dili
+languages.km=kambodiya dili
+languages.en_GB=ingilisc\u0259 (GB)
+languages.kl=kalalisut dili
+languages.kk=qazax dili
+languages.rom=roman dili
+languages.kj=kuanyama dili
+languages.sid=sidamo dili
+languages.ki=kikuyu dili
+languages.kg=konqo dili
+languages.non=q\u0259dimi norsca
+languages.ka=g\u00fcrc\u00fc dili
+languages.mus=krik dili
+languages.nog=noqay dili
+languages.mun=munda dili
+languages.mul=dig\u0259r dill\u0259r
+languages.jv=yavaca dili
+languages.gil=qilbert gili
+languages.znd=zande dili
+languages.shn=\u015fan dili
+languages.fon=fon dili
+languages.xal=kalm\u0131qca
+languages.aus=avstraliyca
+languages.kho=xotan dili
+languages.ja=yaponca
+languages.khi=xoyzan dili
+languages.pau=palayanca
+languages.chy=\u00e7eyen dili
+languages.tai=tay dili
+languages.iu=inuktikut dili
+languages.pap=papyamento dili
+languages.it=italyanca
+languages.sgn=i\u015far\u0259t dili
+languages.is=isl\u0259ndc\u0259
+languages.kha=xazi dili
+languages.chr=\u00e7iroki dili
+languages.pam=pampanqa dili
+languages.pal=paxlavi dili
+languages.chp=\u00e7ipevyan dili
+languages.io=ido dili
+languages.cho=\u00e7oktau dili
+languages.chn=\u00e7inuk l\u0259h\u00e7\u0259si
+languages.chm=mari dili
+languages.tyv=tuvinyan dili
+languages.bnt=bantu dili
+languages.pag=panqasinan dili
+languages.ik=inupiaq dili
+languages.chk=\u00e7ukiz dili
+languages.ii=si\u00e7uan yi dili
+languages.haw=Qavayca
+languages.lam=lamba dili
+languages.ig=iqbo dili
+languages.chg=\u00e7a\u011fatay dili
+languages.sga=q\u0259dimi irlandca
+languages.paa=papua dili
+languages.ie=interlingue dili
+languages.id=indoneziya dili
+languages.lah=laxnda dili
+languages.day=dayak dili
+languages.chb=\u00e7ib\u00e7\u0259 dili
+languages.ia=interlingua dili
+languages.lad=ladin dili
+languages.hz=Herer dili
+languages.hai=hayda dili
+languages.dar=darqva dili
+languages.hy=Erm\u0259nic\u0259
+languages.ath=atapaskanca
+languages.hu=macarca
+languages.ht=haiti dili
+languages.dak=dakota dili
+languages.hr=xorvatca
+languages.ho=hiri motu dili
+languages.hi=hindi dili
+languages.dyu=dyula dili
+languages.he=ivritc\u0259
+languages.ast=asturic\u0259
+languages.kfo=koro dili
+languages.ha=Hausa dili
+languages.wen=sorb dili
+languages.gv=manks dili
+languages.gu=gujarati dili
+languages.sem=ivrit dili
+languages.sel=selkup dili
+languages.iro=irokuay dili
+languages.gn=quaranic\u0259
+languages.gl=qalisian dili
+languages.en_CA=ingilisc\u0259 (CA)
+languages.arw=aravak\u00e7a
+languages.gez=qez dili
+languages.art=suni dil
+languages.gd=skot gaelik dili
+languages.ira=iranca
+languages.ga=irlandca
+languages.arp=arapaho dili
+languages.arn=araukanca
+languages.fy=frisk dili
+languages.bla=siksik\u0259 dili
+languages.gem=Alman dili
+languages.ypk=yupik dili
+languages.arc=aramik dili
+languages.fr=frans\u0131zca
+languages.fo=farer dili
+languages.cel=kelt dili
+languages.fj=fiji dili
+languages.fi=finc\u0259
+languages.ff=fula dili
+languages.tvl=tuvalu dili
+languages.ceb=kebuano dili
+languages.fa=farsca
+languages.en_AU=ingilisc\u0259 (AU)
+languages.zh_Hans=adi \u00e7inc\u0259
+languages.zh_Hant=g\u0259l\u0259n\u0259ks\u0259l \u00e7inc\u0259
+languages.eu=bask dili
+languages.sco=skots dili
+languages.et=estonca
+languages.scn=sisili dili
+languages.es=ispanca
+languages.eo=esperanto dili
+languages.en=ingilisc\u0259
+languages.el=yunanca
+languages.tut=altaik dili
+languages.niu=niyuan dili
+languages.tup=tupi dili
+languages.ee=eve dili
+languages.tum=tumbuka dili
+languages.nl_BE=flem dili
+languages.es_419=lat\u0131n amerika ispancas\u0131
+languages.mos=mosi dili
+languages.dz=dzonqa dili
+languages.kcg=tiyap dili
+languages.nic=niger-kordofyan dili
+languages.lus=lushayca
+languages.fiu=fin-u\u011fri dili
+languages.dv=diveh dili
+languages.nia=nyas dili
+languages.moh=moxak dili
+languages.luo=luo dili
+languages.lun=lunda dili
+languages.apa=apa\u00e7i dili
+languages.fil=taqaloqca
+languages.lui=luyseno dili
+languages.hup=hupa dili
+languages.cch=atsamca
+languages.bin=bini dili
+languages.de=almanca
+languages.lua=luba-lulua dili
+languages.bik=bikolca
+languages.was=va\u015fo dili
+languages.und=bilinm\u0259y\u0259n v\u0259ya g\u0259c\u0259rsiz dil
+languages.war=varay dili
+languages.da=danimarka dili
+languages.dum=ortacaq hollandca
+languages.wal=valamo dili
+languages.mno=manobo dili
+languages.wak=vaka\u015fan dili
+languages.sat=santal dili
+languages.cy=uelsc\u0259
+languages.sas=sasak dili
+languages.kbd=kabardca
+languages.cv=\u00e7uva\u015f dili
+languages.cu=kils\u0259 slav dili
+languages.mni=manip\u00fcri dili
+languages.cs=\u00e7ex dili
+languages.sam=samaritan dili
+languages.cr=kri dili
+languages.sal=sali\u015fan dili
+languages.dua=duala dili
+languages.co=korsikan dili
+languages.sai=c\u0259nub amerika yerli dili
+languages.mnc=man\u00e7u dili
+languages.sah=yakut dili
+languages.kaw=kavi dili
+languages.inh=inqu\u015f dili
+languages.gba=qabaya dili
+languages.sad=sandave dili
+languages.ch=\u00e7amoro dili
+languages.ine=hint-yevropa dili
+languages.bho=bxo\u00e7puri dili
+languages.enm=ortacaq ingilisc\u0259
+languages.kar=karen dili
+languages.inc=diq\u0259r hint dili
+languages.ce=\u00e7e\u00e7en dili
+languages.gay=qayo dili
+languages.ca=katalanca
+languages.umb=umbundu dili
+languages.syr=siryak dili
+languages.kam=kamba dili
+languages.anp=angik\u0259 dili
+languages.tsi=sim\u015fyan dili
+languages.kaj=ju dili
+languages.ang=q\u0259dimi ingilisc\u0259
+languages.kac=ka\u00e7inca
+languages.cau=qavqaz dili
+languages.kab=kabule dili
+languages.kaa=qara-qalpaq dili
+languages.bs=bosniya dili
+languages.car=karib dili
+languages.br=Bretonca
+languages.bo=tibet dili
+languages.bn=Benqal dili
+languages.bm=bambara dili
+languages.gaa=qa dili
+languages.cai=m\u0259rk\u0259zi amerika indus dili
+languages.bi=bislama dili
+languages.bh=biharic\u0259
+languages.bg=bolqarca
+languages.be=belarusca
+languages.cad=kado dili
+languages.ba=ba\u015fkir dili
+languages.zu=zulu dili
+languages.zen=zenaqa dili
+languages.pro=q\u0259dimi provensialca
+languages.hsb=yuxar\u0131 sorbca
languages.az=az\u0259rbaycanca
+languages.ay=aymarca
+languages.av=avarikc\u0259
+languages.as=Assam dili
+languages.dsb=a\u015fa\u011f\u0131 sorbca
+languages.ar=\u018fr\u0259bc\u0259
+languages.ilo=iloko dili
+languages.elx=elamit dili
+languages.zh=\u00e7inc\u0259
+languages.an=aragonca
+languages.pra=prakrit dili
+languages.am=amarikc\u0259
+languages.new=nevari dili
+languages.ak=akanca
+languages.za=ju\u0259nq dili
+languages.en_US=ingilisc\u0259 (AB\u015e)
+languages.af=Afrikaanca
+languages.ae=avestanca
+languages.alt=c\u0259nub altay dili
+languages.ab=abxazca
+languages.aa=afarca
+languages.yo=yoruba dili
+languages.alg=algonguyan dili
+languages.ale=aleutca
+languages.mkh=mon-xmer dili
+languages.yi=Yahudi dili
+languages.dra=dravid dili
+languages.ber=berber dili
+languages.nds=a\u015fa\u011f\u0131 almanca
+languages.bem=bemba dili
+languages.bej=beja dili
+languages.tpi=tok pisin dili
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties
index 8e7e207..9c9adf4 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_az_Cyrl.properties
@@ -7,7 +7,25 @@
currenciesDisplayName.AZM=\u043c\u0430\u043d\u0430\u0442
currenciesSymbol.AZM=\u043c\u0430\u043d.
-months=\u0458\u0430\u043d\u0432\u0430\u0440®\u0444\u0435\u0432\u0440\u0430\u043b®\u043c\u0430\u0440\u0442®\u0430\u043f\u0440\u0435\u043b®\u043c\u0430\u0439®\u0438\u0458\u0443\u043d®\u0438\u0458\u0443\u043b®\u0430\u0432\u0433\u0443\u0441\u0442®\u0441\u0435\u043d\u0442\u0458\u0430\u0431\u0440®\u043e\u043a\u0442\u0458\u0430\u0431\u0440®\u043d\u043e\u0458\u0430\u0431\u0440®\u0434\u0435\u043a\u0430\u0431\u0440®®
-weekdays=®\u0431\u0430\u0437\u0430\u0440®\u0431\u0430\u0437\u0430\u0440 \u0435\u0440\u0442\u04d9\u0441\u0438®\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b®\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9®\u04b9\u04af\u043c\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b®\u04b9\u04af\u043c\u04d9®\u0448\u04d9\u043d\u0431\u04d9®
+months=\u0458\u0430\u043d\u0432\u0430\u0440\u00ae\u0444\u0435\u0432\u0440\u0430\u043b\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440\u0435\u043b\u00ae\u043c\u0430\u0439\u00ae\u0438\u0458\u0443\u043d\u00ae\u0438\u0458\u0443\u043b\u00ae\u0430\u0432\u0433\u0443\u0441\u0442\u00ae\u0441\u0435\u043d\u0442\u0458\u0430\u0431\u0440\u00ae\u043e\u043a\u0442\u0458\u0430\u0431\u0440\u00ae\u043d\u043e\u0458\u0430\u0431\u0440\u00ae\u0434\u0435\u043a\u0430\u0431\u0440\u00ae\u00ae
+weekdays=\u00ae\u0431\u0430\u0437\u0430\u0440\u00ae\u0431\u0430\u0437\u0430\u0440 \u0435\u0440\u0442\u04d9\u0441\u0438\u00ae\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b\u00ae\u0447\u04d9\u0440\u0448\u04d9\u043d\u0431\u04d9\u00ae\u04b9\u04af\u043c\u04d9 \u0430\u0445\u0448\u0430\u043c\u044b\u00ae\u04b9\u04af\u043c\u04d9\u00ae\u0448\u04d9\u043d\u0431\u04d9\u00ae
+territories.FR=\u0424\u0440\u0430\u043d\u0441\u0430
+territories.IN=\u04ba\u0438\u043d\u0434\u0438\u0441\u0442\u0430\u043d
+territories.CN=\u0427\u0438\u043d
+territories.DE=\u0410\u043b\u043c\u0430\u043d\u0438\u0458\u0430
+territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u0458\u0430
territories.AZ=\u0410\u0437\u04d9\u0440\u0431\u0430\u0458\u04b9\u0430\u043d
+territories.RU=\u0420\u0443\u0441\u0438\u0458\u0430
+territories.JP=\u0408\u0430\u043f\u043e\u043d\u0438\u0458\u0430
+territories.US=\u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0411\u0438\u0440\u043b\u04d9\u0448\u043c\u0438\u0448 \u0428\u0442\u0430\u0442\u043b\u0430\u0440\u044b
+territories.IT=\u0418\u0442\u0430\u043b\u0438\u0458\u0430
+languages.zh=\u0447\u0438\u043d\u04b9\u04d9
+languages.en=\u0438\u043d\u049d\u0438\u043b\u0438\u0441\u04b9\u04d9
+languages.ru=\u0440\u0443\u0441\u04b9\u0430
+languages.it=\u0438\u0442\u0430\u043b\u0458\u0430\u043d\u04b9\u0430
+languages.fr=\u0444\u0440\u0430\u043d\u0441\u044b\u0437\u04b9\u0430
+languages.de=\u0430\u043b\u043c\u0430\u043d\u04b9\u0430
+languages.es=\u0438\u0441\u043f\u0430\u043d\u04b9\u0430
+languages.ja=\u0458\u0430\u043f\u043e\u043d\u04b9\u0430
languages.az=\u0410\u0437\u04d9\u0440\u0431\u0430\u0458\u04b9\u0430\u043d
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u04b9\u0430
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_be.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_be.properties
index feea4f3..15190d5 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_be.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_be.properties
@@ -7,23 +7,35 @@
decimalSeparator=,
groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.ERN=\u044d\u0440\u044b\u0442\u0440\u044d\u0439\u0441\u043a\u0430\u044f \u043d\u0430\u043a\u0444\u0430
currenciesDisplayName.INR=\u0456\u043d\u0434\u044b\u0439\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0456\u044f
-currenciesDisplayName.RUB=\u0440\u0443\u0441\u043a\u0456 \u0440\u0443\u0431\u0435\u043b\u044c
+currenciesDisplayName.NOK=\u043d\u0430\u0440\u0432\u044d\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.JPY=\u044f\u043f\u043e\u043d\u0441\u043a\u0430\u044f \u0456\u0435\u043d\u0430
+currenciesDisplayName.RUB=\u0440\u0430\u0441\u0435\u0439\u0441\u043a\u0456 \u0440\u0443\u0431\u0435\u043b\u044c
currenciesDisplayName.BRL=\u0431\u0440\u0430\u0437\u0456\u043b\u044c\u0441\u043a\u0456 \u0440\u044d\u0430\u043b
-currenciesDisplayName.CNY=\u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0456 \u044e\u0430\u043d\u044c Renminbi
-currenciesDisplayName.USD=\u0434\u043e\u043b\u0430\u0440 \u0417\u0428\u0410
+currenciesDisplayName.CNY=\u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0456 \u044e\u0430\u043d\u044c
+currenciesDisplayName.AUD=\u0430\u045e\u0441\u0442\u0440\u0430\u043b\u0456\u0439\u0441\u043a\u0456 \u0434\u0430\u043b\u044f\u0440
+currenciesDisplayName.USD=\u0434\u0430\u043b\u044f\u0440 \u0417\u0428\u0410
+currenciesDisplayName.XXX=\u043d\u0435\u0432\u044f\u0434\u043e\u043c\u0430\u044f \u0430\u0431\u043e \u043d\u0435\u0434\u0430\u043f\u0443\u0448\u0447\u0430\u043b\u044c\u043d\u0430\u044f \u0432\u0430\u043b\u044e\u0442\u0430
currenciesDisplayName.BYR=\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0456 \u0440\u0443\u0431\u0435\u043b\u044c
-currenciesDisplayName.EUR=\u0435\u045e\u0440\u0430
-currenciesDisplayName.GBP=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u043a\u0456 \u0444\u0443\u043d\u0442
-currenciesSymbol.BYB=\u0420\u0443\u0431
-shortMonths=\u0441\u0442\u0443®\u043b\u044e\u0442®\u0441\u0430\u043a®\u043a\u0440\u0430®\u043c\u0430\u0439®\u0447\u044d\u0440®\u043b\u0456\u043f®\u0436\u043d\u0456®\u0432\u0435\u0440®\u043a\u0430\u0441®\u043b\u0456\u0441®\u0441\u043d\u0435®®
-months=\u0441\u0442\u0443\u0434\u0437\u0435\u043d\u044c®\u043b\u044e\u0442\u044b®\u0441\u0430\u043a\u0430\u0432\u0456\u043a®\u043a\u0440\u0430\u0441\u0430\u0432\u0456\u043a®\u043c\u0430\u0439®\u0447\u044d\u0440\u0432\u0435\u043d\u044c®\u043b\u0456\u043f\u0435\u043d\u044c®\u0436\u043d\u0456\u0432\u0435\u043d\u044c®\u0432\u0435\u0440\u0430\u0441\u0435\u043d\u044c®\u043a\u0430\u0441\u0442\u0440\u044b\u0447\u043d\u0456\u043a®\u043b\u0456\u0441\u0442\u0430\u043f\u0430\u0434®\u0441\u043d\u0435\u0436\u0430\u043d\u044c®®
-shortWeekdays=®\u043d\u0434®\u043f\u043d®\u0430\u045e®\u0441\u0440®\u0447\u0446®\u043f\u0442®\u0441\u0431®
-weekdays=®\u043d\u044f\u0434\u0437\u0435\u043b\u044f®\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a®\u0430\u045e\u0442\u043e\u0440\u0430\u043a®\u0441\u0435\u0440\u0430\u0434\u0430®\u0447\u0430\u0446\u0432\u0435\u0440®\u043f\u044f\u0442\u043d\u0456\u0446\u0430®\u0441\u0443\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u0434\u0430 \u043d.\u0435.®\u043d.\u0435.®
+currenciesDisplayName.EUR=\u044d\u045e\u0440\u0430
+currenciesDisplayName.GBP=\u0431\u0440\u044b\u0442\u0430\u043d\u0441\u043a\u0456 \u0444\u0443\u043d\u0442 \u0441\u0442\u044d\u0440\u043b\u0456\u043d\u0433\u0430\u045e
+currenciesSymbol.BYB=\u0440\u0443\u0431
+currenciesSymbol.INR=Rs.
+currenciesSymbol.JPY=\u00a5
+currenciesSymbol.AUD=$A
+currenciesSymbol.RUB=\u0440\u0430\u0441. \u0440\u0443\u0431.
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.USD=$
+shortMonths=\u00ae\u00ae\u00ae\u00ae\u0442\u0440\u0430\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u00ae\u00ae\u00ae\u00ae\u0442\u0440\u0430\u0432\u0435\u043d\u044c\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00ae\u043d\u0434\u00ae\u043f\u043d\u00ae\u0430\u045e\u00ae\u0441\u0440\u00ae\u0447\u0446\u00ae\u043f\u0442\u00ae\u0441\u0431\u00ae
+weekdays=\u00ae\u043d\u044f\u0434\u0437\u0435\u043b\u044f\u00ae\u043f\u0430\u043d\u044f\u0434\u0437\u0435\u043b\u0430\u043a\u00ae\u0430\u045e\u0442\u043e\u0440\u0430\u043a\u00ae\u0441\u0435\u0440\u0430\u0434\u0430\u00ae\u0447\u0430\u0446\u0432\u0435\u0440\u00ae\u043f\u044f\u0442\u043d\u0456\u0446\u0430\u00ae\u0441\u0443\u0431\u043e\u0442\u0430\u00ae
+eras=\u0434\u0430 \u043d.\u0435.\u00ae\u043d.\u0435.\u00ae
+ampms=\u0434\u0430 \u043f\u0430\u043b\u0443\u0434\u043d\u044f\u00ae\u043f\u0430\u0441\u043b\u044f \u043f\u0430\u043b\u0443\u0434\u043d\u044f\u00ae
shortDateFormat=d.M.yy
mediumDateFormat=d.M.yyyy
longDateFormat=d MMMM yyyy
@@ -32,26 +44,447 @@ shortTimeFormat=HH.mm
mediumTimeFormat=HH.mm.ss
longTimeFormat=HH.mm.ss z
fullTimeFormat=HH.mm.ss z
+zoneStrings=America_Pacific\u00ae\u0426\u0456\u0445\u0430\u0430\u043a\u0456\u044f\u043d\u0441\u043a\u0456 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b \u0447\u0430\u0441\u00ae\u00ae\u0426\u0456\u0445\u0430\u0430\u043a\u0456\u044f\u043d\u0441\u043a\u0456 \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9Europe_Western\u00ae\u0417\u0430\u0445\u043e\u0434\u043d\u0435\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u0447\u0430\u0441\u00ae\u00ae\u0417\u0430\u0445\u043e\u0434\u043d\u0435\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9America_Central\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0446\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b \u0447\u0430\u0441\u00ae\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0446\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u044b \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0423\u0441\u0445\u043e\u0434\u043d\u0435\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u0447\u0430\u0441\u00ae\u00ae\u0423\u0441\u0445\u043e\u0434\u043d\u0435\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9America_Mountain\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0433\u043e\u0440\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b \u0447\u0430\u0441\u00ae\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0433\u043e\u0440\u043d\u044b \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9Europe_Central\u00ae\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u0447\u0430\u0441\u00ae\u00ae\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044d\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9GMT\u00ae\u0413\u0440\u044b\u043d\u0432\u0456\u0447\u0441\u043a\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0443\u0441\u0445\u043e\u0434\u043d\u0456 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b \u0447\u0430\u0441\u00ae\u00ae\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0430\u043c\u044d\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0456 \u0443\u0441\u0445\u043e\u0434\u043d\u0456 \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9Atlantic\u00ae\u0410\u0442\u043b\u044f\u043d\u0442\u044b\u0447\u043d\u044b \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u044b \u0447\u0430\u0441\u00ae\u00ae\u0410\u0442\u043b\u044f\u043d\u0442\u044b\u0447\u043d\u044b \u043b\u0435\u0442\u043d\u0456 \u0447\u0430\u0441\u00ae\u00ae\u00a9
+territories.TL=\u0423\u0441\u0445\u043e\u0434\u043d\u0456 \u0422\u044b\u043c\u043e\u0440
+territories.TK=\u0422\u0430\u043a\u0435\u043b\u0430\u045e
+territories.TJ=\u0422\u0430\u0434\u0436\u044b\u043a\u0456\u0441\u0442\u0430\u043d
+territories.TH=\u0422\u0430\u0439\u043b\u0430\u043d\u0434
+territories.TG=\u0422\u043e\u0433\u0430
+territories.TF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0456\u044f \u041f\u0430\u045e\u0434\u043d\u0451\u0432\u044b\u044f \u0442\u044d\u0440\u044b\u0442\u043e\u0440\u044b\u0456
+territories.GY=\u0413\u0430\u044f\u043d\u0430
+territories.TD=\u0427\u0430\u0434
+territories.TC=\u0422\u044d\u0440\u043a\u0441 \u0456 \u041a\u0430\u0439\u043a\u0430\u0441 \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.GW=\u0413\u0432\u0456\u043d\u0435\u044f-\u0411\u0456\u0441\u0430\u045e
+territories.GT=\u0413\u0432\u0430\u0442\u044d\u043c\u0430\u043b\u0430
+territories.GS=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0414\u0436\u043e\u0440\u0434\u0436\u044b\u044f \u0456 \u041f\u0430\u045e\u0434\u043d\u0451\u0432\u044b\u044f \u0421\u0430\u043d\u0434\u0432\u0456\u0447\u0430\u0432\u044b \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.GR=\u0413\u0440\u044d\u0446\u044b\u044f
+territories.GQ=\u042d\u043a\u0432\u0430\u0442\u0430\u0440\u044b\u044f\u043b\u044c\u043d\u0430\u044f \u0413\u0432\u0456\u043d\u0435\u044f
+territories.GP=\u0413\u0432\u0430\u0434\u044d\u043b\u0443\u043f\u0430
+territories.SZ=\u0421\u0432\u0430\u0437\u0456\u043b\u0435\u043d\u0434
+territories.SY=\u0421\u0456\u0440\u044b\u0439\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0431\u0441\u043a\u0430\u044f \u0420\u044d\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.GN=\u0413\u0432\u0456\u043d\u0435\u044f
+territories.GM=\u0413\u0430\u043c\u0431\u0456\u044f
+territories.GL=\u0413\u0440\u044d\u043d\u043b\u0430\u043d\u0434\u044b\u044f
+territories.SV=\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440
+territories.062=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430-\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u0437\u0456\u044f
+territories.ST=\u0421\u0430\u043d-\u0422\u043e\u043c\u044d \u0456 \u041f\u0440\u044b\u043d\u0441\u0456\u043f\u0456
+territories.GI=\u0413\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440
+territories.061=\u041f\u0430\u043b\u0456\u043d\u0435\u0437\u0456\u044f
+territories.GH=\u0413\u0430\u043d\u0430
+territories.SR=\u0421\u0443\u0440\u044b\u043d\u0430\u043c
+territories.GF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0413\u0432\u0456\u044f\u043d\u0430
+territories.GE=\u0413\u0440\u0443\u0437\u0456\u044f
+territories.SO=\u0421\u0430\u043c\u0430\u043b\u0456
+territories.GD=\u0413\u0440\u044d\u043d\u0430\u0434\u0430
+territories.SN=\u0421\u0435\u043d\u0435\u0433\u0430\u043b
+territories.GB=\u0412\u0435\u043b\u0456\u043a\u0430\u0431\u0440\u044b\u0442\u0430\u043d\u0456\u044f
+territories.SL=\u0421\u044c\u0435\u0440\u0430-\u041b\u0435\u043e\u043d\u044d
+territories.GA=\u0413\u0430\u0431\u043e\u043d
+territories.SK=\u0421\u043b\u0430\u0432\u0430\u043a\u0456\u044f
+territories.SJ=\u0421\u0432\u0430\u043b\u044c\u0431\u0430\u0440\u0434 \u0456 \u042f\u043d-\u041c\u0430\u0435\u043d
+territories.SI=\u0421\u043b\u0430\u0432\u0435\u043d\u0456\u044f
+territories.SH=\u0421\u044c\u0432\u044f\u0442\u0430\u044f \u0410\u043b\u0435\u043d\u0430
+territories.SG=\u0421\u0456\u043d\u0433\u0430\u043f\u0443\u0440
+territories.SE=\u0428\u0432\u0435\u0446\u044b\u044f
+territories.SD=\u0421\u0443\u0434\u0430\u043d
+territories.SC=\u0421\u0435\u0439\u0448\u044d\u043b\u044c\u0441\u043a\u0456\u044f \u0410\u0441\u0442\u0440\u0430\u0432\u044b
+territories.SB=\u0421\u0430\u043b\u0430\u043c\u043e\u043d\u0430\u0432\u044b \u0410\u0441\u0442\u0440\u0430\u0432\u044b
+territories.SA=\u0421\u0430\u0443\u0434\u0430\u045e\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0456\u044f
territories.FR=\u0424\u0440\u0430\u043d\u0446\u044b\u044f
-territories.BY=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c
-territories.IN=\u0406\u043d\u0434\u044b\u044f
-territories.CN=\u041a\u0456\u0442\u0430\u0439
+territories.FM=\u041c\u0456\u043a\u0440\u0430\u043d\u0435\u0437\u0456\u044f
+territories.RW=\u0420\u0443\u0430\u043d\u0434\u0430
+territories.FK=\u0424\u043e\u043b\u043a\u043b\u044d\u043d\u0434\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.053=\u0410\u045e\u0441\u0442\u0440\u0430\u043b\u0456\u044f \u0456 \u041d\u043e\u0432\u0430\u044f \u0417\u044d\u043b\u0430\u043d\u0434\u044b\u044f
+territories.RU=\u0420\u0430\u0441\u0456\u044f
+territories.FJ=\u0424\u0456\u0434\u0436\u044b
+territories.FI=\u0424\u0456\u043d\u043b\u044f\u043d\u0434\u044b\u044f
+territories.RS=\u0421\u0435\u0440\u0431\u0456\u044f
+territories.RO=\u0420\u0443\u043c\u044b\u043d\u0456\u044f
+territories.RE=\u0420\u044d\u044e\u043d\u044c\u0451\u043d
+territories.ET=\u042d\u0444\u0456\u043e\u043f\u0456\u044f
+territories.ES=\u0406\u0441\u043f\u0430\u043d\u0456\u044f
+territories.ER=\u042d\u0440\u044b\u0442\u0440\u044d\u044f
+territories.QU=\u0415\u045e\u0440\u0430\u043f\u0435\u0439\u0441\u043a\u0456 \u0417\u0432\u044f\u0437
+territories.EH=\u0417\u0430\u0445\u043e\u0434\u043d\u044f\u044f \u0421\u0430\u0445\u0430\u0440\u0430
+territories.EG=\u0415\u0433\u0456\u043f\u0435\u0442
+territories.EE=\u042d\u0441\u0442\u043e\u043d\u0456\u044f
+territories.QO=\u0412\u043e\u043d\u043a\u0430\u0432\u0430\u044f \u0410\u043a\u0456\u044f\u043d\u0456\u044f
+territories.EC=\u042d\u043a\u0432\u0430\u0434\u043e\u0440
+territories.DZ=\u0410\u043b\u0436\u044b\u0440
+territories.QA=\u041a\u0430\u0442\u0430\u0440
+territories.039=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0415\u045e\u0440\u043e\u043f\u0430
+territories.DO=\u0414\u0430\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u044d\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.PY=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439
+territories.DM=\u0414\u0430\u043c\u0456\u043d\u0456\u043a\u0430
+territories.035=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430-\u0423\u0441\u0445\u043e\u0434\u043d\u044f\u044f \u0410\u0437\u0456\u044f
+territories.PW=\u041f\u0430\u043b\u0430\u045e
+territories.034=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0410\u0437\u0456\u044f
+territories.DK=\u0414\u0430\u043d\u0456\u044f
+territories.DJ=\u0414\u0436\u044b\u0431\u0443\u0446\u0456
+territories.PT=\u041f\u0430\u0440\u0442\u0443\u0433\u0430\u043b\u0456\u044f
+territories.PS=\u041f\u0430\u043b\u0435\u0441\u0442\u044b\u043d\u0441\u043a\u0456\u044f \u0442\u044d\u0440\u044b\u0442\u043e\u0440\u044b\u0456
+territories.030=\u0423\u0441\u0445\u043e\u0434\u043d\u044f\u044f \u0410\u0437\u0456\u044f
territories.DE=\u0413\u0435\u0440\u043c\u0430\u043d\u0456\u044f
-territories.GB=\u0412\u0435\u043b\u0456\u043a\u0430\u0431\u0440\u044b\u0442\u0430\u043d\u0456\u044f
+territories.PL=\u041f\u043e\u043b\u044c\u0448\u0447\u0430
+territories.PK=\u041f\u0430\u043a\u0456\u0441\u0442\u0430\u043d
+territories.PH=\u0424\u0456\u043b\u0456\u043f\u0456\u043d\u044b
+territories.PG=\u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u0430\u044f \u0413\u0432\u0456\u043d\u0435\u044f
+territories.PF=\u0424\u0440\u0430\u043d\u0443\u0437\u0441\u043a\u0430\u044f \u041f\u0430\u043b\u0456\u043d\u044d\u0437\u0456\u044f
+territories.CZ=\u0427\u044d\u0445\u0456\u044f
+territories.PE=\u041f\u0435\u0440\u0443
+territories.CY=\u041a\u0456\u043f\u0440
+territories.CX=\u041a\u0430\u043b\u044f\u0434\u0430\u045e \u0432\u043e\u0441\u0442\u0440\u0430\u045e
+territories.CV=\u041a\u0430\u0431\u0430-\u0412\u0435\u0440\u0434\u044d
+territories.PA=\u041f\u0430\u043d\u0430\u043c\u0430
+territories.CU=\u041a\u0443\u0431\u0430
+territories.CR=\u041a\u043e\u0441\u0442\u0430-\u0420\u044b\u043a\u0430
+territories.029=\u041a\u0430\u0440\u044b\u0431\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.CO=\u041a\u0430\u043b\u0443\u043c\u0431\u0456\u044f
+territories.CN=\u041a\u0456\u0442\u0430\u0439
+territories.CM=\u041a\u0430\u043c\u0435\u0440\u0443\u043d
+territories.CL=\u0427\u044b\u043b\u0456
+territories.CK=\u041a\u0443\u043a\u0430 \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.021=\u0417\u0428\u0410 \u0456 \u041a\u0430\u043d\u0430\u0434\u0430
+territories.CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u044b\u044f
+territories.CG=\u041a\u043e\u043d\u0433\u0430
+territories.CF=\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430-\u0410\u0444\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u044d\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.CD=\u041a\u043e\u043d\u0433\u0430 - \u041a\u0456\u043d\u0448\u0430\u0441\u0430
+territories.CC=\u041a\u0430\u043a\u043e\u0441\u0430\u0432\u044b\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.OM=\u0410\u043c\u0430\u043d
+territories.CA=\u041a\u0430\u043d\u0430\u0434\u0430
+territories.BZ=\u0411\u0435\u043b\u0456\u0437
+territories.BY=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c
+territories.BW=\u0411\u0430\u0442\u0441\u0432\u0430\u043d\u0430
+territories.BV=\u0411\u0443\u0432\u044d \u0432\u043e\u0441\u0442\u0440\u0430\u045e
+territories.BT=\u0411\u0443\u0442\u0430\u043d
+territories.BS=\u0411\u0430\u0433\u0430\u043c\u0441\u043a\u0456\u044f \u0410\u0441\u0442\u0440\u0430\u0432\u044b
territories.BR=\u0411\u0440\u0430\u0437\u0456\u043b\u0456\u044f
-territories.RU=\u0420\u0430\u0441\u0456\u044f
+territories.019=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u044f \u0456 \u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0410\u043c\u0435\u0440\u044b\u043a\u0456
+territories.018=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0410\u0444\u0440\u044b\u043a\u0430
+territories.NZ=\u041d\u043e\u0432\u0430\u044f \u0417\u0435\u043b\u0430\u043d\u0434\u044b\u044f
+territories.017=\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u0444\u0440\u044b\u043a\u0430
+territories.BO=\u0411\u0430\u043b\u0456\u0432\u0456\u044f
+territories.BN=\u0411\u0440\u0443\u043d\u0435\u0439-\u0414\u0430\u0440\u0443\u0441\u0430\u043b\u0430\u043c
+territories.015=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u044f \u0410\u0444\u0440\u044b\u043a\u0430
+territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.014=\u0423\u0441\u0445\u043e\u0434\u043d\u044f\u044f \u0410\u0444\u0440\u044b\u043a\u0430
+territories.013=\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u043c\u044d\u0440\u044b\u043a\u0430
+territories.NU=\u041d\u0456\u0443\u044d
+territories.BJ=\u0411\u0435\u043d\u0456\u043d
+territories.011=\u0417\u0430\u0445\u043e\u0434\u043d\u044f\u044f \u0410\u0444\u0440\u044b\u043a\u0430
+territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0437\u0456
+territories.172=\u0421\u0430\u0434\u0440\u0443\u0436\u043d\u0430\u0441\u0446\u044c \u041d\u0435\u0437\u0430\u043b\u0435\u0436\u043d\u044b\u0445 \u0414\u0437\u044f\u0440\u0436\u0430\u045e
+territories.BH=\u0411\u0430\u0445\u0440\u044d\u0439\u043d
+territories.NR=\u041d\u0430\u0443\u0440\u0443
+territories.BG=\u0411\u0430\u043b\u0433\u0430\u0440\u044b\u044f
+territories.BF=\u0411\u0443\u0440\u043a\u0456\u043d\u0430-\u0424\u0430\u0441\u043e
+territories.NP=\u041d\u0435\u043f\u0430\u043b
+territories.BE=\u0411\u0435\u043b\u044c\u0433\u0456\u044f
+territories.ZZ=\u041d\u0435\u0432\u044f\u0434\u043e\u043c\u044b \u0440\u044d\u0433\u0456\u0451\u043d
+territories.NO=\u041d\u0430\u0440\u0432\u0435\u0433\u0456\u044f
+territories.BD=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u044d\u0448
+territories.BB=\u0411\u0430\u0440\u0431\u0430\u0434\u0430\u0441
+territories.ZW=\u0417\u0456\u043c\u0431\u0430\u0431\u0432\u044d
+territories.NL=\u041d\u0456\u0434\u044d\u0440\u043b\u0430\u043d\u0434\u044b
+territories.BA=\u0411\u043e\u0441\u043d\u0456\u044f \u0456 \u0413\u0435\u0440\u0446\u0430\u0433\u0430\u0432\u0456\u043d\u0430
+territories.NI=\u041d\u0456\u043a\u0430\u0440\u0430\u0433\u0443\u0430
+territories.NG=\u041d\u0456\u0433\u0435\u0440\u044b\u044f
+territories.NF=\u041d\u043e\u0440\u0444\u0430\u043b\u043a\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.AZ=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d
+territories.NE=\u041d\u0456\u0433\u0435\u0440
+territories.AX=\u0410\u043b\u0430\u043d\u0434\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.NC=\u041d\u043e\u0432\u0430\u044f \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0456\u044f
+territories.AW=\u0410\u0440\u0443\u0431\u0430
+territories.ZM=\u0417\u0430\u043c\u0431\u0456\u044f
+territories.NA=\u041d\u0430\u043c\u0456\u0431\u0456\u044f
+territories.AU=\u0410\u045e\u0441\u0442\u0440\u0430\u043b\u0456\u044f
+territories.AT=\u0410\u045e\u0441\u0442\u0440\u044b\u044f
+territories.AS=\u0410\u043c\u0435\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0430\u0435 \u0421\u0430\u043c\u043e\u0430
+territories.AR=\u0410\u0440\u0433\u0435\u043d\u0446\u0456\u043d\u0430
+territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u044b\u043a\u0430
+territories.009=\u0410\u043a\u0456\u044f\u043d\u0456\u044f
+territories.MZ=\u041c\u0430\u0437\u0430\u043c\u0431\u0456\u043a
+territories.AO=\u0410\u043d\u0433\u043e\u043b\u0430
+territories.MY=\u041c\u0430\u043b\u0430\u0439\u0437\u0456\u044f
+territories.AN=\u041d\u0456\u0434\u044d\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0456\u044f \u0410\u043d\u0442\u044b\u043b\u044b
+territories.MX=\u041c\u0435\u043a\u0441\u0456\u043a\u0430
+territories.AM=\u0410\u0440\u043c\u0435\u043d\u0456\u044f
+territories.005=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u0410\u043c\u044d\u0440\u044b\u043a\u0430
+territories.MW=\u041c\u0430\u043b\u0430\u0432\u0456
+territories.AL=\u0410\u043b\u0431\u0430\u043d\u0456\u044f
+territories.MV=\u041c\u0430\u043b\u044c\u0434\u044b\u045e\u0441\u043a\u0456\u044f \u0410\u0441\u0442\u0440\u0430\u0432\u044b
+territories.003=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u044f \u0410\u043c\u044d\u0440\u044b\u043a\u0430
+territories.ZA=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430-\u0410\u0444\u0440\u044b\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u044d\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.MU=\u041c\u0430\u045e\u0440\u044b\u043a\u0456\u0439
+territories.002=\u0410\u0444\u0440\u044b\u043a\u0430
+territories.MT=\u041c\u0430\u043b\u044c\u0442\u0430
+territories.AI=\u0410\u043d\u0433\u0443\u0456\u043b\u043b\u044f
+territories.001=\u0421\u0432\u0435\u0442
+territories.MS=\u041c\u043e\u043d\u0441\u044d\u0440\u0430\u0442
+territories.MR=\u041c\u0430\u045e\u0440\u044b\u0442\u0430\u043d\u0456\u044f
+territories.AG=\u0410\u043d\u0442\u044b\u0433\u0443\u0430 \u0456 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
+territories.MQ=\u041c\u0430\u0440\u0446\u0456\u043d\u0456\u043a\u0430
+territories.AF=\u0410\u0444\u0433\u0430\u043d\u0456\u0441\u0442\u0430\u043d
+territories.MP=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u044b\u044f \u041c\u0430\u0440\u044b\u044f\u043d\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.AE=\u0410\u0431'\u044f\u0434\u043d\u0430\u043d\u044b\u044f \u0410\u0440\u0430\u0431\u0441\u043a\u0456\u044f \u042d\u043c\u0456\u0440\u0430\u0442\u044b
+territories.MO=\u041c\u0430\u043a\u0430\u043e
+territories.AD=\u0410\u043d\u0434\u043e\u0440\u0430
+territories.MN=\u041c\u0430\u043d\u0433\u043e\u043b\u0456\u044f
+territories.MM=\u041c'\u044f\u043d\u043c\u0430
+territories.ML=\u041c\u0430\u043b\u0456
+territories.MK=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f
+territories.MH=\u041c\u0430\u0440\u0448\u0430\u043b\u0430\u0432\u044b \u0410\u0441\u0442\u0440\u0430\u0432\u044b
+territories.MG=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
+territories.ME=\u0427\u0430\u0440\u043d\u0430\u0433\u043e\u0440\u044b\u044f
+territories.MD=\u041c\u0430\u043b\u0434\u043e\u0432\u0430
+territories.MC=\u041c\u0430\u043d\u0430\u043a\u0430
+territories.MA=\u041c\u0430\u0440\u043e\u043a\u0430
+territories.YE=\u0415\u043c\u0435\u043d
+territories.LY=\u041b\u0456\u0432\u0456\u0439\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0431\u0441\u043a\u0430\u044f \u0414\u0436\u0430\u043c\u0430\u0445\u0456\u0440\u044b\u044f
+territories.LV=\u041b\u0430\u0442\u0432\u0456\u044f
+territories.155=\u0417\u0430\u0445\u043e\u0434\u043d\u044f\u044f \u0415\u045e\u0440\u043e\u043f\u0430
+territories.LU=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433
+territories.154=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u044f \u0415\u045e\u0440\u043e\u043f\u0430
+territories.LT=\u041b\u0456\u0442\u0432\u0430
+territories.LS=\u041b\u0435\u0441\u043e\u0442\u0430
+territories.LR=\u041b\u0456\u0431\u0435\u0440\u044b\u044f
+territories.151=\u0423\u0441\u0445\u043e\u0434\u043d\u044f\u044f \u0415\u045e\u0440\u043e\u043f\u0430
+territories.150=\u0415\u045e\u0440\u043e\u043f\u0430
+territories.LK=\u0428\u0440\u044b-\u041b\u0430\u043d\u043a\u0430
+territories.LI=\u041b\u0456\u0445\u0442\u044d\u043d\u0448\u0442\u044d\u0439\u043d
+territories.LC=\u0421\u044d\u043d\u0442-\u041b\u044e\u0441\u0456\u044f
+territories.LB=\u041b\u0456\u0432\u0430\u043d
+territories.LA=\u041b\u0430\u043e\u0441\u043a\u0430\u044f \u041d\u0430\u0440\u043e\u0434\u043d\u0430-\u0414\u044d\u043c\u0430\u043a\u0440\u0430\u0442\u044b\u0447\u043d\u0430\u044f \u0420\u044d\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.KZ=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d
+territories.KY=\u041a\u0430\u0439\u043c\u0430\u043d\u0430\u0432\u044b \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.KW=\u041a\u0443\u0432\u0435\u0439\u0442
+territories.145=\u0417\u0430\u0445\u043e\u0434\u043d\u044f\u044f \u0410\u0437\u0456\u044f
+territories.143=\u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u0437\u0456\u044f
+territories.142=\u0410\u0437\u0456\u044f
+territories.KR=\u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u044f \u041a\u0430\u0440\u044d\u044f
+territories.KP=\u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u044f \u041a\u0430\u0440\u044d\u044f
+territories.KN=\u0421\u044d\u043d\u0442-\u041a\u0456\u0442\u0441 \u0456 \u041d\u044d\u0432\u0456\u0441
+territories.KM=\u041a\u0430\u043c\u043e\u0440\u0441\u043a\u0456\u044f \u0410\u0441\u0442\u0440\u0430\u0432\u044b
+territories.KI=\u041a\u0456\u0440\u044b\u0431\u0430\u0446\u0456
+territories.WS=\u0421\u0430\u043c\u043e\u0430
+territories.KH=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430
+territories.KG=\u041a\u044b\u0440\u0433\u044b\u0437\u0441\u0442\u0430\u043d
+territories.KE=\u041a\u0435\u043d\u0456\u044f
+territories.WF=\u0423\u043e\u043b\u0456\u0441 \u0456 \u0424\u0443\u0442\u0443\u043d\u0430
territories.JP=\u042f\u043f\u043e\u043d\u0456\u044f
-territories.US=\u0417\u043b\u0443\u0447\u0430\u043d\u044b\u044f \u0428\u0442\u0430\u0442\u044b
+territories.JO=\u0406\u0430\u0440\u0434\u0430\u043d\u0456\u044f
+territories.JM=\u042f\u043c\u0430\u0439\u043a\u0430
+territories.VU=\u0412\u0430\u043d\u0443\u0430\u0442\u0443
+territories.VN=\u0412'\u0435\u0442\u043d\u0430\u043c
+territories.VI=\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b \u0417\u0428\u0410
+territories.VG=\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u043a\u0456\u044f \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.VE=\u0412\u0435\u043d\u0435\u0441\u0443\u044d\u043b\u0430
+territories.VC=\u0421\u044d\u043d\u0442-\u0412\u0456\u043d\u0441\u044d\u043d\u0442 \u0456 \u0413\u0440\u044d\u043d\u0430\u0434\u044b\u043d\u044b
+territories.VA=\u0412\u0430\u0442\u044b\u043a\u0430\u043d
territories.IT=\u0406\u0442\u0430\u043b\u0456\u044f
-languages.zh=\u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0456
-languages.en=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u043a\u0456
-languages.ru=\u0440\u0443\u0441\u043a\u0456
+territories.IS=\u0406\u0441\u043b\u0430\u043d\u0434\u044b\u044f
+territories.IR=\u0406\u0440\u0430\u043d
+territories.IQ=\u0406\u0440\u0430\u043a
+territories.UZ=\u0423\u0437\u0431\u0435\u043a\u0456\u0441\u0442\u0430\u043d
+territories.IO=\u0411\u0440\u044b\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0442\u044d\u0440\u044b\u0442\u043e\u0440\u044b\u044f \u0406\u043d\u0434\u044b\u0439\u0441\u043a\u0430\u0433\u0430 \u0430\u043a\u0456\u044f\u043d\u0443
+territories.UY=\u0423\u0440\u0443\u0433\u0432\u0430\u0439
+territories.IN=\u0406\u043d\u0434\u044b\u044f
+territories.IL=\u0406\u0437\u0440\u0430\u0456\u043b\u044c
+territories.US=\u0417\u043b\u0443\u0447\u0430\u043d\u044b\u044f \u0428\u0442\u0430\u0442\u044b
+territories.IE=\u0406\u0440\u043b\u0430\u043d\u0434\u044b\u044f
+territories.ID=\u0406\u043d\u0434\u0430\u043d\u0435\u0437\u0456\u044f
+territories.UG=\u0423\u0433\u0430\u043d\u0434\u0430
+territories.UA=\u0423\u043a\u0440\u0430\u0456\u043d\u0430
+territories.HU=\u0412\u0435\u043d\u0433\u0440\u044b\u044f
+territories.HT=\u0413\u0430\u0456\u0446\u0456
+territories.HR=\u0425\u0430\u0440\u0432\u0430\u0442\u044b\u044f
+territories.TZ=\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f
+territories.HN=\u0413\u0430\u043d\u0434\u0443\u0440\u0430\u0441
+territories.HM=\u0413\u044d\u0440\u0434\u0430 \u0432\u043e\u0441\u0442\u0440\u0430\u045e \u0456 \u041c\u0430\u043a\u0414\u043e\u043d\u0430\u043b\u0434\u0430 \u0430\u0441\u0442\u0440\u0430\u0432\u044b
+territories.TW=\u0422\u0430\u0439\u0432\u0430\u043d\u044c
+territories.TV=\u0422\u0443\u0432\u0430\u043b\u0443
+territories.HK=\u0413\u0430\u043d\u043a\u043e\u043d\u0433
+territories.TT=\u0422\u0440\u044b\u043d\u0456\u0434\u0430\u0434 \u0456 \u0422\u0430\u0431\u0430\u0433\u0430
+territories.TR=\u0422\u0443\u0440\u0446\u044b\u044f
+territories.TO=\u0422\u0430\u043d\u0433\u0456\u0439\u0441\u043a\u0430\u044f
+territories.TN=\u0422\u0443\u043d\u0456\u0441
+territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0456\u0441\u0442\u0430\u043d
+languages.ast=\u0430\u0441\u0442\u0443\u0440\u044b\u0439\u0441\u043a\u0430\u044f
+languages.la=\u043b\u0430\u0446\u0456\u043d\u0441\u043a\u0430\u044f
+languages.xh=\u0445\u043e\u0441\u0430
+languages.ku=\u043a\u0443\u0440\u0434\u0437\u043a\u0430\u044f
+languages.men=\u043c\u0435\u043d\u0434\u044d
+languages.ko=\u043a\u0430\u0440\u044d\u0439\u0441\u043a\u0430\u044f
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.kk=\u043a\u0430\u0437\u0430\u0445\u0441\u043a\u0430\u044f
+languages.en_GB=\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430\u044f (\u0412\u044f\u043b\u0456\u043a\u0430\u0431\u0440\u044b\u0442\u0430\u043d\u0456\u044f)
+languages.grc=\u0441\u0442\u0430\u0440\u0430\u0433\u0440\u044d\u0447\u0430\u0441\u043a\u0430\u044f
+languages.art=\u0448\u0442\u0443\u0447\u043d\u0430\u044f \u043c\u043e\u0432\u0430
+languages.ka=\u0433\u0440\u0443\u0437\u0456\u043d\u0441\u043a\u0430\u044f
+languages.afa=\u0430\u0444\u0440\u0430-\u0430\u0437\u0456\u044f\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.jv=\u044f\u0432\u0430\u043d\u0441\u043a\u0430\u044f
+languages.arc=\u0430\u0440\u0430\u043c\u0435\u0439\u0441\u043a\u0430\u044f
+languages.cel=\u043a\u0435\u043b\u044c\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.vo=\u0432\u0430\u043b\u0430\u043f\u044e\u043a
+languages.tut=\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.ja=\u044f\u043f\u043e\u043d\u0441\u043a\u0430\u044f
+languages.vi=\u0432'\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0430\u044f
+languages.tup=\u043c\u043e\u0432\u0430 \u0442\u0443\u043f\u0456
+languages.it=\u0456\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0430\u044f
+languages.is=\u0456\u0441\u044c\u043b\u044f\u043d\u0434\u0437\u043a\u0430\u044f
+languages.ady=\u0430\u0434\u044b\u0433\u0435\u0439\u0441\u043a\u0430\u044f
+languages.uz=\u0443\u0437\u0431\u044d\u0446\u043a\u0430\u044f
+languages.mos=\u043c\u043e\u0441\u0456
+languages.ur=\u0443\u0440\u0434\u0443
+languages.ie=\u0456\u043d\u0442\u044d\u0440\u043b\u0456\u043d\u0433\u0432\u0435
+languages.id=\u0456\u043d\u0434\u0430\u043d\u044d\u0437\u0456\u0439\u0441\u043a\u0430\u044f
+languages.ia=\u0456\u043d\u0442\u044d\u0440\u043b\u0456\u043d\u0433\u0432\u0430
+languages.uk=\u0443\u043a\u0440\u0430\u0456\u043d\u0441\u043a\u0430\u044f
+languages.luo=\u043b\u0443\u043e
+languages.ug=\u0443\u0439\u0433\u0443\u0440\u0441\u043a\u0430\u044f
+languages.und=\u043d\u0435\u0432\u044f\u0434\u043e\u043c\u0430\u044f \u043c\u043e\u0432\u0430
+languages.hy=\u0430\u0440\u043c\u044f\u043d\u0441\u043a\u0430\u044f
+languages.nub=\u043d\u0443\u0431\u0456\u0439\u0441\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.phn=\u0444\u0456\u043d\u0456\u043a\u0456\u0439\u0441\u043a\u0430\u044f
+languages.hu=\u0432\u0443\u0433\u043e\u0440\u0441\u043a\u0430\u044f
+languages.hr=\u0445\u0430\u0440\u0432\u0430\u0446\u043a\u0430\u044f
+languages.fil=\u0442\u0430\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.tt=\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0430\u044f
languages.hi=\u0445\u0456\u043d\u0434\u0437\u0456
-languages.ar=\u0430\u0440\u0430\u0431\u0441\u043a\u0456
-languages.it=\u0456\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0456
-languages.be=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0456
-languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0456
-languages.de=\u043d\u044f\u043c\u0435\u0446\u043a\u0456
-languages.es=\u0456\u0441\u043f\u0430\u043d\u0441\u043a\u0456
-languages.ja=\u044f\u043f\u043e\u043d\u0441\u043a\u0456
-languages.pt=\u043f\u0430\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0456
+languages.tr=\u0442\u0443\u0440\u044d\u0446\u043a\u0430\u044f
+languages.cop=\u043a\u043e\u043f\u0446\u043a\u0430\u044f
+languages.he=\u0456\u045e\u0440\u044b\u0442
+languages.sai=\u043c\u043e\u0432\u0430 \u0456\u043d\u0434\u0437\u0435\u0439\u0446\u0430\u045e \u041f\u0430\u045e\u0434\u043d\u0451\u0432\u0430\u0439 \u0410\u043c\u0435\u0440\u044b\u043a\u0456
+languages.sah=\u044f\u043a\u0443\u0446\u043a\u0430\u044f
+languages.tk=\u0442\u0443\u0440\u043a\u043c\u044d\u043d\u0441\u043a\u0430\u044f
+languages.ti=\u0442\u044b\u0433\u0440\u044b\u043d\u044c\u044f
+languages.th=\u0442\u0430\u0439\u0441\u043a\u0430\u044f
+languages.tg=\u0442\u0430\u0434\u0436\u044b\u043a\u0441\u043a\u0430\u044f
+languages.te=\u0442\u044d\u043b\u0443\u0433\u0443
+languages.mas=\u043c\u0430\u0441\u0430\u0456
+languages.ta=\u0442\u0430\u043c\u0456\u043b\u044c\u0441\u043a\u0430\u044f
+languages.gu=\u0433\u0443\u044f\u0440\u0430\u0446\u0456
+languages.map=\u0430\u045e\u0441\u0442\u0440\u0430\u043d\u0435\u0437\u0456\u0439\u0441\u043a\u0430\u044f
+languages.man=\u043c\u0430\u043d\u0434\u044b\u043d\u0433\u0430
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0456
+languages.sw=\u0441\u0443\u0430\u0445\u0456\u043b\u0456
+languages.bua=\u0431\u0443\u0440\u0430\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.gl=\u0433\u0430\u043b\u0456\u0441\u0456\u0439\u0441\u043a\u0430\u044f
+languages.sv=\u0448\u0432\u044d\u0434\u0437\u043a\u0430\u044f
+languages.su=\u0441\u0443\u0434\u0430\u043d\u0441\u043a\u0430\u044f
+languages.sr=\u0441\u044d\u0440\u0431\u0441\u043a\u0430\u044f
+languages.sq=\u0430\u043b\u044c\u0431\u0430\u043d\u0441\u043a\u0430\u044f
+languages.en_CA=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u043a\u0430\u044f (\u043a\u0430\u043d\u0430\u0434.)
+languages.so=\u0441\u0430\u043c\u0430\u043b\u0456\u0439\u0441\u043a\u0430\u044f
+languages.gd=\u0448\u0430\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0430\u044f \u0433\u044d\u043b\u044c\u0441\u043a\u0430\u044f
+languages.sl=\u0441\u043b\u0430\u0432\u0435\u043d\u0441\u043a\u0430\u044f
+languages.ga=\u0456\u0440\u043b\u044f\u043d\u0434\u0437\u043a\u0430\u044f
+languages.sk=\u0441\u043b\u0430\u0432\u0430\u0446\u043a\u0430\u044f
+languages.si=\u0441\u0456\u043d\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.sh=\u0441\u044d\u0440\u0431\u0430-\u0445\u0430\u0440\u0432\u0430\u0446\u043a\u0430\u044f
+languages.fy=\u0444\u0440\u044b\u0437\u0441\u043a\u0430\u044f
+languages.sd=\u0441\u0456\u043d\u0434\u0445\u0456
+languages.cau=\u043a\u0430\u045e\u043a\u0430\u0437\u0441\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.sa=\u0441\u0430\u043d\u0441\u043a\u0440\u044b\u0442
+languages.ang=\u0441\u0442\u0430\u0440\u0430\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430\u044f
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0430\u044f
+languages.sla=\u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.fo=\u0444\u0430\u0440\u044d\u0440\u0441\u043a\u0430\u044f
+languages.pro=\u0441\u0442\u0430\u0440\u0430\u043f\u0440\u0430\u0432\u0430\u043d\u0441\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.ru=\u0440\u0430\u0441\u0435\u0439\u0441\u043a\u0430\u044f
+languages.cai=\u043c\u043e\u0432\u0430 \u0456\u043d\u0434\u0437\u0435\u0439\u0446\u0430\u045e \u0426\u044d\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u0439 \u0410\u043c\u0435\u0440\u044b\u043a\u0456
+languages.fi=\u0444\u0456\u043d\u0441\u043a\u0430\u044f
+languages.ro=\u0440\u0443\u043c\u044b\u043d\u0441\u043a\u0430\u044f
+languages.rm=\u0440\u044d\u0442\u0430-\u0440\u0430\u043c\u0430\u043d\u0441\u043a\u0430\u044f
+languages.fa=\u0444\u0430\u0440\u0441\u0456
+languages.nl_BE=\u0444\u043b\u0430\u043c\u0430\u043d\u0434\u0441\u043a\u0430\u044f
+languages.es_419=\u0456\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u044f (\u043b\u0430\u0446\u0456\u043d\u0430\u0430\u043c\u0435\u0440.)
+languages.en_AU=\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430\u044f (\u0430\u045e\u0441\u0442\u0440\u0430\u043b.)
+languages.peo=\u0441\u0442\u0430\u0440\u0430\u043f\u0435\u0440\u0441\u0456\u0434\u0441\u043a\u0430\u044f
+languages.eu=\u0431\u0430\u0441\u043a\u0441\u043a\u0430\u044f
+languages.et=\u044d\u0441\u0442\u043e\u043d\u0441\u043a\u0430\u044f
+languages.es=\u0433\u0456\u0448\u043f\u0430\u043d\u0441\u043a\u0430\u044f
+languages.eo=\u044d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u0430
+languages.en=\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430\u044f
+languages.el=\u0433\u0440\u044d\u0446\u043a\u0430\u044f
+languages.qu=\u043a\u0435\u0447\u0443\u0430
+languages.fro=\u0441\u0442\u0430\u0440\u0430\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f
+languages.ale=\u0430\u043b\u0435\u0443\u0446\u043a\u0430\u044f
+languages.pt=\u043f\u0430\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.pt_BR=\u043f\u0430\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f (\u0431\u0440\u0430\u0437\u044b\u043b\u0456\u044f)
+languages.ps=\u043f\u0443\u0448\u0442\u0443
+languages.de=\u043d\u044f\u043c\u0435\u0446\u043a\u0430\u044f
+languages.sit=\u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0430-\u0442\u044b\u0431\u0435\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.pl=\u043f\u043e\u043b\u044c\u0441\u043a\u0430\u044f
+languages.da=\u0434\u0430\u0446\u043a\u0430\u044f
+languages.sux=\u0448\u0443\u043c\u0435\u0440\u0441\u043a\u0430\u044f
+languages.cy=\u0432\u0430\u043b\u0456\u0439\u0441\u043a\u0430\u044f
+languages.akk=\u0430\u043a\u0430\u0434\u0441\u043a\u0430\u044f
+languages.cv=\u0447\u0443\u0432\u0430\u0448\u0441\u043a\u0430\u044f
+languages.pa=\u043f\u0430\u043d\u0434\u0436\u0430\u0431\u0456
+languages.cs=\u0447\u044d\u0441\u043a\u0430\u044f
+languages.de_CH=\u043d\u044f\u043c\u0435\u0446\u043a\u0430\u044f (\u0448\u0432\u0435\u0439\u0446.)
+languages.os=\u0430\u0441\u0435\u0446\u0456\u043d\u0441\u043a\u0430\u044f
+languages.or=\u043e\u0440\u044b\u044f
+languages.ce=\u0447\u0430\u0447\u044d\u043d\u0441\u043a\u0430\u044f
+languages.non=\u0441\u0442\u0430\u0440\u0430\u043d\u0430\u0440\u0432\u0435\u0436\u0441\u043a\u0430\u044f
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u0451\u043d\u0441\u043a\u0430\u044f
+languages.oj=\u0430\u0434\u0436\u044b\u0431\u0432\u0435
+languages.zap=\u0441\u0430\u043f\u0430\u0442\u044d\u043a\u0430\u045e
+languages.nog=\u043d\u0430\u0433\u0430\u0439\u0441\u043a\u0430\u044f
+languages.lol=\u043c\u043e\u043d\u0433\u0430
+languages.oc=\u043f\u0440\u0430\u0432\u0430\u043d\u0441\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.bs=\u0431\u0430\u0441\u044c\u043d\u0456\u0439\u0441\u043a\u0430\u044f
+languages.br=\u0431\u0440\u044d\u0442\u043e\u043d\u0441\u043a\u0430\u044f
+languages.zh_Hans=\u0441\u043f\u0440\u043e\u0448\u0447\u0430\u043d\u0430\u044f \u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0430\u044f
+languages.bn=\u0431\u044d\u043d\u0433\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.zh_Hant=\u0442\u0440\u0430\u0434\u044b\u0446\u044b\u0439\u043d\u0430\u044f \u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0430\u044f
+languages.bh=\u0431\u0456\u0445\u0430\u0440\u0441\u043a\u0430\u044f
+languages.bg=\u0431\u0430\u045e\u0433\u0430\u0440\u0441\u043a\u0430\u044f
+languages.be=\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430\u044f
+languages.no=\u043d\u0430\u0440\u0432\u044d\u0441\u043a\u0430\u044f
+languages.nn=\u043d\u0430\u0440\u0432\u044d\u0441\u043a\u0430\u044f \u043d\u044e\u043d\u043e\u0440\u0441\u043a
+languages.tai=\u043c\u043e\u0432\u0430 \u0442\u0430\u0456
+languages.nl=\u0433\u0430\u043b\u044f\u043d\u0434\u0437\u043a\u0430\u044f
+languages.ba=\u0431\u0430\u0448\u043a\u0456\u0440\u0441\u043a\u0430\u044f
+languages.zu=\u0437\u0443\u043b\u0443
+languages.sgn=\u0437\u043d\u0430\u043a\u0430\u0432\u0430\u044f \u043c\u043e\u0432\u0430
+languages.cus=\u043a\u0443\u0448\u044b\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
+languages.raj=\u0440\u0430\u0434\u0436\u0430\u0441\u0442\u0445\u0430\u043d\u0441\u043a\u0430\u044f
+languages.az=\u0430\u0437\u044d\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0430\u044f
+languages.ne=\u043d\u044d\u043f\u0430\u043b\u044c\u0441\u043a\u0430\u044f
+languages.ay=\u0430\u0439\u043c\u0430\u0440\u0430
+languages.tyv=\u0442\u0443\u0432\u0456\u043d\u0441\u043a\u0430\u044f
+languages.nb=\u043d\u0430\u0440\u0432\u0435\u0436\u0441\u043a\u0430\u044f (\u0431\u0443\u043a\u043c\u0430\u043b)
+languages.av=\u0430\u0432\u0430\u0440\u0441\u043a\u0430\u044f
+languages.de_AT=\u043d\u044f\u043c\u0435\u0446\u043a\u0430\u044f (\u0430\u045e\u0441\u0442\u0440.)
+languages.aus=\u0430\u045e\u0441\u0442\u0440\u0430\u043b\u0456\u0439\u0441\u043a\u0430\u044f
+languages.as=\u0430\u0441\u0430\u043c\u0441\u043a\u0430\u044f
+languages.ar=\u0430\u0440\u0430\u0431\u0441\u043a\u0430\u044f
+languages.zh=\u043a\u0456\u0442\u0430\u0439\u0441\u043a\u0430\u044f
+languages.sga=\u0441\u0442\u0430\u0440\u0430\u0456\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0430\u044f
+languages.an=\u0430\u0440\u0430\u0433\u043e\u043d\u0441\u043a\u0430\u044f
+languages.am=\u0430\u043c\u0445\u0430\u0440\u0441\u043a\u0430\u044f
+languages.nai=\u043c\u043e\u0432\u0430 \u0456\u043d\u0434\u0437\u0435\u0439\u0446\u0430\u045e \u041f\u0430\u045e\u043d\u043e\u0447\u043d\u0430\u0439 \u0410\u043c\u0435\u0440\u044b\u043a\u0456
+languages.mt=\u043c\u0430\u043b\u044c\u0442\u044b\u0439\u0441\u043a\u0430\u044f
+languages.ms=\u043c\u0430\u043b\u0430\u0439\u0441\u043a\u0430\u044f
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0445\u0456
+languages.af=\u0430\u0444\u0440\u044b\u043a\u0430\u043d\u0441
+languages.mo=\u043c\u0430\u043b\u0434\u0430\u045e\u0441\u043a\u0430\u044f
+languages.mn=\u043c\u0430\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0430\u044f
+languages.en_US=\u0430\u043d\u0433\u0435\u043b\u044c\u0441\u043a\u0430\u044f (\u0417\u0428\u0410)
+languages.ab=\u0430\u0431\u0445\u0430\u0441\u043a\u0430\u044f
+languages.ml=\u043c\u0430\u043b\u0430\u044f\u043b\u0430\u043c\u0441\u043a\u0430\u044f
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0430\u044f
+languages.mg=\u043c\u0430\u043b\u044c\u0433\u0430\u0448\u0441\u043a\u0430\u044f
+languages.chb=\u0447\u044b\u0431\u0447\u0430
+languages.egy=\u0441\u0442\u0430\u0440\u0430\u0436\u044b\u0442\u043d\u0430-\u0435\u0433\u0456\u043f\u0435\u0446\u043a\u0430\u044f
+languages.tlh=\u043a\u043b\u0456\u043d\u0433\u043e\u043d
+languages.yi=\u0456\u0434\u044b\u0448
+languages.lv=\u043b\u0430\u0442\u044b\u0441\u043a\u0430\u044f
+languages.lt=\u043b\u0456\u0442\u043e\u045e\u0441\u043a\u0430\u044f
+languages.fr_CH=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f (\u0448\u0432\u0435\u0439\u0446.)
+languages.lo=\u043b\u0430\u043e\u0441\u043a\u0430\u044f
+languages.ln=\u043b\u0456\u043d\u0433\u0430\u043b\u0430
+languages.fr_CA=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f (\u043a\u0430\u043d\u0430\u0434.)
+languages.sem=\u0441\u0435\u043c\u0456\u0446\u043a\u0430\u044f \u043c\u043e\u0432\u0430
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bg.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bg.properties
index 9ac9b72..e61392b 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bg.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bg.properties
@@ -5,126 +5,136 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+infinity=\u221e
+NaN=\u041d/\u0427
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+percentFormat=#0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
currenciesDisplayName.YDD=\u0419\u0435\u043c\u0435\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.TWD=\u0422\u0430\u0439\u0432\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.KES=\u041a\u0435\u043d\u0438\u0439\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
-currenciesDisplayName.BYB=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u0440\u0443\u0431\u043b\u0430 (1994-1999)
+currenciesDisplayName.TWD=\u0422\u0430\u0439\u0432\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.LKR=\u0428\u0440\u0438\u043b\u0430\u043d\u043a\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
-currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.BYB=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u0440\u0443\u0431\u043b\u0430 (1994-1999)
currenciesDisplayName.TJS=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0441\u043e\u043c\u043e\u043d\u0438
-currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
-currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
+currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.ERN=\u0415\u0440\u0438\u0442\u0440\u0435\u0439\u0441\u043a\u0430 \u043d\u0430\u043a\u0444\u0430
-currenciesDisplayName.AFN=\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0430\u0444\u0433\u0430\u043d
+currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
+currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
currenciesDisplayName.GRD=\u0413\u0440\u044a\u0446\u043a\u0430 \u0434\u0440\u0430\u0445\u043c\u0430
+currenciesDisplayName.AFN=\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0430\u0444\u0433\u0430\u043d
currenciesDisplayName.IEP=\u0418\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
currenciesDisplayName.ARS=\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e
-currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.ARP=\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e (1983-1985)
+currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.GEL=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438 \u043b\u0430\u0440\u0438
currenciesDisplayName.AFA=\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0430\u0444\u0433\u0430\u043d (1927-2002)
currenciesDisplayName.CRC=\u041a\u043e\u0441\u0442\u0430\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u043a\u043e\u043b\u043e\u043d
currenciesDisplayName.FKP=\u0424\u043e\u043b\u043a\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
currenciesDisplayName.EEK=\u0415\u0441\u0442\u043e\u043d\u0441\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.HKD=\u0425\u043e\u043d\u0433\u043a\u043e\u043d\u0433\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.MDL=\u041c\u043e\u043b\u0434\u043e\u0432\u0441\u043a\u043e \u043b\u0435\u0443
+currenciesDisplayName.HKD=\u0425\u043e\u043d\u0433\u043a\u043e\u043d\u0433\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.IQD=\u0418\u0440\u0430\u043a\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.SCR=\u0421\u0435\u0439\u0448\u0435\u043b\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
currenciesDisplayName.VUV=\u0412\u0430\u043d\u0443\u0430\u0442\u0443 - \u0432\u0430\u0442\u0443
-currenciesDisplayName.DKK=\u0414\u0430\u0442\u0441\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.KPW=\u0421\u0435\u0432\u0435\u0440\u043d\u043e\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438 \u0432\u043e\u043d
+currenciesDisplayName.DKK=\u0414\u0430\u0442\u0441\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.IDR=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
-currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
currenciesDisplayName.SOS=\u0421\u043e\u043c\u0430\u043b\u0438\u0439\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
+currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
currenciesDisplayName.AED=\u041e\u0431\u0435\u0434\u0438\u043d\u0435\u043d\u0438 \u0430\u0440\u0430\u0431\u0441\u043a\u0438 \u0435\u043c\u0438\u0440\u0441\u0442\u0432\u0430-\u0434\u0438\u0440\u0445\u0430\u043c
-currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0443\u0430\u043d\u0441\u043a\u0430 \u043f\u0443\u043b\u0430
currenciesDisplayName.LVL=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0438 \u043b\u0430\u0442
+currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0443\u0430\u043d\u0441\u043a\u0430 \u043f\u0443\u043b\u0430
currenciesDisplayName.RUR=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430 (1991-1998)
-currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0441\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
-currenciesDisplayName.FJD=\u0424\u0438\u0434\u0436\u0438 - \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.MOP=\u041c\u0430\u043a\u0430\u043e - \u043f\u0430\u0442\u0430\u043a\u0430
+currenciesDisplayName.FJD=\u0424\u0438\u0434\u0436\u0438 - \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0441\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
currenciesDisplayName.RUB=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
currenciesDisplayName.CDF=\u041a\u043e\u043d\u0433\u043e\u0430\u043d\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.NIC=\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0443\u0430\u043d\u0441\u043a\u0430 \u043a\u043e\u0440\u0434\u043e\u0431\u0430
currenciesDisplayName.DJF=\u0414\u0436\u0438\u0431\u0443\u0442\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.SBD=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 - \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.UZS=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0441\u0443\u043c
+currenciesDisplayName.SBD=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 - \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.ECS=\u0415\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u043e \u0441\u0443\u043a\u0440\u0435
-currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e
currenciesDisplayName.THB=\u0422\u0430\u0439\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0431\u0430\u0442
+currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e
currenciesDisplayName.LUF=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.FIM=\u0424\u0438\u043d\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
currenciesDisplayName.TTD=\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0442 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e - \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.SZL=\u0421\u0432\u0430\u0437\u0438\u043b\u0435\u043d\u0434\u0441\u043a\u0438 \u043b\u0438\u043b\u0430\u043d\u0433\u0435\u043d\u0438
currenciesDisplayName.MNT=\u041c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438 \u0442\u0443\u0433\u0440\u0438\u043a
-currenciesDisplayName.SAR=\u0421\u0430\u0443\u0434\u0438\u0442\u0441\u043a\u043e\u0430\u0440\u0430\u0431\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
currenciesDisplayName.UAK=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438 \u043a\u0430\u0440\u0431\u043e\u0432\u0430\u043d\u0435\u0446
+currenciesDisplayName.SAR=\u0421\u0430\u0443\u0434\u0438\u0442\u0441\u043a\u043e\u0430\u0440\u0430\u0431\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
currenciesDisplayName.UAH=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0430 \u0445\u0440\u0438\u0432\u043d\u044f
currenciesDisplayName.HUF=\u0423\u043d\u0433\u0430\u0440\u0441\u043a\u0438 \u0444\u043e\u0440\u0438\u043d\u0442
-currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
currenciesDisplayName.QAR=\u041a\u0430\u0442\u0430\u0440\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
+currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
-currenciesDisplayName.AOR=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0446\u0430 (1995-1999)
currenciesDisplayName.UYU=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
+currenciesDisplayName.AOR=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0446\u0430 (1995-1999)
currenciesDisplayName.GBP=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
-currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
currenciesDisplayName.ZRZ=\u0417\u0430\u0438\u0440\u0441\u043a\u043e \u0437\u0430\u0439\u0440\u0435
-currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0446\u0430 (1990-2000)
+currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
+currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.LTL=\u041b\u0438\u0442\u043e\u0432\u0441\u043a\u0438 \u043b\u0438\u0442\u0430\u0437
-currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0441\u043a\u043e \u0442\u0435\u043d\u0433\u0435
-currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u0438 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0446\u0430 (1990-2000)
currenciesDisplayName.UYP=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e (1975-1993)
+currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u0438 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0441\u043a\u043e \u0442\u0435\u043d\u0433\u0435
currenciesDisplayName.AOK=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043a\u0432\u0430\u043d\u0446\u0430 (1977-1990)
currenciesDisplayName.XFO=\u0424\u0440\u0435\u043d\u0441\u043a\u0438 \u0437\u043b\u0430\u0442\u0435\u043d \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.PGK=\u041f\u0430\u043f\u0443\u0430-\u043d\u043e\u0432\u043e\u0433\u0432\u0438\u043d\u0435\u0439\u0441\u043a\u0430 \u043a\u0438\u043d\u0430
currenciesDisplayName.SYP=\u0421\u0438\u0440\u0438\u0439\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
-currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.OMR=\u041e\u043c\u0430\u043d\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
-currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0439\u0441\u043a\u0430 \u043d\u0430\u0439\u0440\u0430
+currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.ZRN=\u0417\u0430\u0438\u0440\u0441\u043a\u043e \u043d\u043e\u0432\u043e \u0437\u0430\u0439\u0440\u0435
-currenciesDisplayName.AOA=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043a\u0432\u0430\u043d\u0446\u0430
+currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0439\u0441\u043a\u0430 \u043d\u0430\u0439\u0440\u0430
currenciesDisplayName.CNY=\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438 \u0440\u0435\u043d\u043c\u0438\u043d\u0431\u0438 \u044e\u0430\u043d
+currenciesDisplayName.AOA=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043a\u0432\u0430\u043d\u0446\u0430
currenciesDisplayName.MAF=\u041c\u0430\u0440\u043e\u043a\u0430\u043d\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.RSD=\u0421\u0440\u044a\u0431\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.GNF=\u0413\u0432\u0438\u043d\u0435\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.HTG=\u0425\u0430\u0438\u0442\u0441\u043a\u0438 \u0433\u0443\u0440\u0434
currenciesDisplayName.MAD=\u041c\u0430\u0440\u043e\u043a\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u0440\u0445\u0430\u043c
+currenciesDisplayName.HTG=\u0425\u0430\u0438\u0442\u0441\u043a\u0438 \u0433\u0443\u0440\u0434
currenciesDisplayName.TRY=\u041d\u043e\u0432\u0430 \u0442\u0443\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
currenciesDisplayName.MMK=\u041c\u0438\u044f\u043d\u043c\u0430\u0440\u0441\u043a\u0438 (\u0411\u0438\u0440\u043c\u0430) \u043a\u0438\u044f\u0442
currenciesDisplayName.MYR=\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u0439\u0441\u043a\u0438 \u0440\u0438\u043d\u0433\u0438\u0442
-currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u043a\u043e \u043b\u043e\u0442\u0438
currenciesDisplayName.XEU=\u0415\u043a\u0443 \u043d\u0430 \u0415\u0418\u041e
-currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u043a\u043e \u043b\u043e\u0442\u0438
currenciesDisplayName.SLL=\u0421\u0438\u0435\u0440\u0430\u043b\u0435\u043e\u043d\u0441\u043a\u043e \u043b\u0435\u043e\u043d\u0435
+currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.BTN=\u0411\u0443\u0442\u0430\u043d\u0441\u043a\u0438 \u043d\u0433\u0443\u043b\u0442\u0440\u0443\u043c
currenciesDisplayName.TRL=\u0422\u0443\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
currenciesDisplayName.KMF=\u041a\u043e\u043c\u043e\u0440\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.ANG=\u0410\u043d\u0442\u0438\u043b\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
currenciesDisplayName.CZK=\u0427\u0435\u0448\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
+currenciesDisplayName.ANG=\u0410\u043d\u0442\u0438\u043b\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
currenciesDisplayName.AZM=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438 \u043c\u0430\u043d\u0430\u0442
currenciesDisplayName.KYD=\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 - \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.GMD=\u0413\u0430\u043c\u0431\u0438\u0439\u0441\u043a\u0438 \u0434\u0430\u043b\u0430\u0441\u0438
currenciesDisplayName.BGN=\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u043b\u0435\u0432
currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.BGL=\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438 \u043b\u0435\u0432 (1962-1999)
currenciesDisplayName.VEB=\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u0441\u043a\u0438 \u0431\u043e\u043b\u0438\u0432\u0430\u0440
-currenciesDisplayName.ILS=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0438 \u043d\u043e\u0432 \u0448\u0435\u043a\u0435\u043b
currenciesDisplayName.MXP=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u043e \u0441\u0440\u0435\u0431\u044a\u0440\u043d\u043e \u043f\u0435\u0441\u043e (1861-1992)
+currenciesDisplayName.ILS=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0438 \u043d\u043e\u0432 \u0448\u0435\u043a\u0435\u043b
currenciesDisplayName.PES=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438 \u0441\u043e\u043b
-currenciesDisplayName.GYD=\u0413\u0430\u044f\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.MXN=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u043e \u043d\u043e\u0432\u043e \u043f\u0435\u0441\u043e
+currenciesDisplayName.GYD=\u0413\u0430\u044f\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.ILP=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
-currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0448\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.CYP=\u041a\u0438\u043f\u044a\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0448\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.PEN=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438 \u043d\u043e\u0432 \u0441\u043e\u043b
currenciesDisplayName.LRD=\u041b\u0438\u0431\u0435\u0440\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.AMD=\u0410\u0440\u043c\u0435\u043d\u0441\u043a\u0438 \u0434\u0440\u0430\u043c
currenciesDisplayName.BSD=\u0411\u0430\u0445\u0430\u043c\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.HRK=\u0425\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0430 \u043a\u0443\u043d\u0430
-currenciesDisplayName.CLP=\u0427\u0438\u043b\u0438\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
currenciesDisplayName.HRD=\u0425\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.CLP=\u0427\u0438\u043b\u0438\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
currenciesDisplayName.XPF=\u0424\u0440\u0435\u043d\u0441\u043a\u043e\u043f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.FRF=\u0424\u0440\u0435\u043d\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.MKD=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438 \u0434\u0435\u043d\u0430\u0440
@@ -133,23 +143,24 @@ currenciesDisplayName.MWK=\u041c\u0430\u043b\u0430\u0432\u0438\u0439\u0441\u043a
currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b\u0441\u043a\u0438 \u0440\u0435\u0430\u043b
currenciesDisplayName.TPE=\u0422\u0438\u043c\u043e\u0440\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.DEM=\u0413\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
-currenciesDisplayName.KWD=\u041a\u0443\u0432\u0435\u0439\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.XCD=\u0418\u0437\u0442\u043e\u0447\u043d\u043e\u043a\u0430\u0440\u0438\u0431\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440 - \u0410\u043d\u0442\u0438\u0433\u0443\u0430
+currenciesDisplayName.KWD=\u041a\u0443\u0432\u0435\u0439\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.NPR=\u041d\u0435\u043f\u0430\u043b\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
currenciesDisplayName.GWP=\u0413\u0432\u0438\u043d\u0435\u044f-\u0411\u0438\u0441\u0430\u0443 \u043f\u0435\u0441\u043e
currenciesDisplayName.YUN=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.SVC=\u0421\u0430\u043b\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u0438 \u043a\u043e\u043b\u043e\u043d
currenciesDisplayName.YUM=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.BEL=\u0411\u0435\u043b\u0433\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a (\u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432)
+currenciesDisplayName.SVC=\u0421\u0430\u043b\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u0438 \u043a\u043e\u043b\u043e\u043d
currenciesDisplayName.SIT=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438 \u0442\u043e\u043b\u0430\u0440
+currenciesDisplayName.BEL=\u0411\u0435\u043b\u0433\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a (\u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432)
currenciesDisplayName.JPY=\u042f\u043f\u043e\u043d\u0441\u043a\u0430 \u0439\u0435\u043d\u0430
currenciesDisplayName.XOF=\u0411\u0435\u043d\u0438\u043d - CFA \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.MVR=\u041c\u0430\u043b\u0434\u0438\u0432\u0441\u043a\u0430 \u0440\u0443\u0444\u0438\u044f
-currenciesDisplayName.BEF=\u0411\u0435\u043b\u0433\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.TOP=\u0422\u043e\u043d\u0433\u0430 - \u043f\u0430 \u0430\u043d\u0433\u0430
+currenciesDisplayName.BEF=\u0411\u0435\u043b\u0433\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.BEC=\u0411\u0435\u043b\u0433\u0438\u0439\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c)
currenciesDisplayName.SUR=\u0421\u044a\u0432\u0435\u0442\u0441\u043a\u0430 \u0440\u0443\u0431\u043b\u0430
-currenciesDisplayName.ROL=\u0420\u0443\u043c\u044a\u043d\u0441\u043a\u0430 \u043b\u0435\u044f
+currenciesDisplayName.RON=\u0420\u0443\u043c\u044a\u043d\u0441\u043a\u0430 \u043b\u0435\u044f
+currenciesDisplayName.ROL=\u0421\u0442\u0430\u0440\u0430 \u0440\u0443\u043c\u044a\u043d\u0441\u043a\u0430 \u043b\u0435\u044f
currenciesDisplayName.BDT=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448\u043a\u0430 \u0442\u0430\u043a\u0430
currenciesDisplayName.AWG=\u0410\u0440\u0443\u0431\u0441\u043a\u0438 \u0433\u0438\u043b\u0434\u0435\u0440 - \u043e. \u0410\u0440\u0443\u0431\u0430
currenciesDisplayName.NOK=\u041d\u043e\u0440\u0432\u0435\u0436\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
@@ -172,46 +183,47 @@ currenciesDisplayName.UGS=\u0423\u0433\u0430\u043d\u0434\u0438\u0439\u0441\u043a
currenciesDisplayName.STD=\u0421\u0430\u043e \u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0441\u0438\u043f\u0438 - \u0434\u043e\u0431\u0440\u0430
currenciesDisplayName.WST=\u0421\u0430\u043c\u043e\u0430 - \u0442\u0430\u043b\u0430
currenciesDisplayName.KHR=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430\u043d\u0441\u043a\u0438 \u0440\u0438\u0435\u043b
-currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
currenciesDisplayName.DOP=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e
+currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
currenciesDisplayName.BOP=\u0411\u043e\u043b\u0438\u0432\u0438\u0439\u0441\u043a\u043e \u043f\u0435\u0441\u043e
-currenciesDisplayName.MTL=\u041c\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
currenciesDisplayName.CUP=\u041a\u0443\u0431\u0438\u043d\u0441\u043a\u043e \u043f\u0435\u0441\u043e
+currenciesDisplayName.MTL=\u041c\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
currenciesDisplayName.TMM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u043c\u0430\u043d\u0430\u0442
currenciesDisplayName.SGD=\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.NZD=\u041d\u043e\u0432\u043e\u0437\u0435\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.USD=\u0421\u0410\u0429 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.HNL=\u0425\u043e\u043d\u0434\u0443\u0440\u0430\u0441\u043a\u0430 \u043b\u0435\u043c\u043f\u0438\u0440\u0430
currenciesDisplayName.BOB=\u0411\u043e\u043b\u0438\u0432\u0438\u0439\u0441\u043a\u043e \u0431\u043e\u043b\u0438\u0432\u0438\u0430\u043d\u043e
-currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u0438 \u0431\u0430\u043b\u0431\u043e\u0430
+currenciesDisplayName.HNL=\u0425\u043e\u043d\u0434\u0443\u0440\u0430\u0441\u043a\u0430 \u043b\u0435\u043c\u043f\u0438\u0440\u0430
currenciesDisplayName.ITL=\u0418\u0442\u0430\u043b\u0438\u0430\u043d\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u0438 \u0431\u0430\u043b\u0431\u043e\u0430
currenciesDisplayName.GTQ=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0441\u043a\u0438 \u043a\u0432\u0435\u0442\u0437\u0430\u043b
-currenciesDisplayName.NAD=\u041d\u0430\u043c\u0438\u0431\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u043a\u0438 \u043a\u0438\u043f
-currenciesDisplayName.GHC=\u0413\u0430\u043d\u0430\u0439\u0441\u043a\u0438 \u0441\u0435\u0434\u0438
+currenciesDisplayName.XXX=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442\u0430 \u0438\u043b\u0438 \u043d\u0435\u0432\u0430\u043b\u0438\u0434\u043d\u0430 \u0432\u0430\u043b\u0443\u0442\u0430
currenciesDisplayName.AUD=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.GHC=\u0413\u0430\u043d\u0430\u0439\u0441\u043a\u0438 \u0441\u0435\u0434\u0438
+currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u043a\u0438 \u043a\u0438\u043f
+currenciesDisplayName.NAD=\u041d\u0430\u043c\u0438\u0431\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.KGS=\u041a\u0438\u0440\u0433\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0441\u043e\u043c
currenciesDisplayName.MGF=\u041c\u0430\u043b\u0433\u0430\u0448\u043a\u0438 \u0444\u0440\u0430\u043d\u043a - \u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
-currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.BBD=\u0411\u0430\u0440\u0431\u0435\u0439\u0434\u043e\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.PYG=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439\u0441\u043a\u043e \u0433\u0443\u0430\u0440\u0430\u043d\u0438
currenciesDisplayName.PLZ=\u041f\u043e\u043b\u0441\u043a\u0430 \u0437\u043b\u043e\u0442\u0430 (1950-1995)
currenciesDisplayName.YER=\u0419\u0435\u043c\u0435\u043d\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
currenciesDisplayName.ATS=\u0410\u0432\u0441\u0442\u0440\u0438\u0439\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
currenciesDisplayName.ETB=\u0415\u0442\u0438\u043e\u043f\u0441\u043a\u0438 \u0431\u0438\u0440
currenciesDisplayName.BND=\u0411\u0440\u0443\u043d\u0435\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.EGP=\u0415\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.PLN=\u041f\u043e\u043b\u0441\u043a\u0430 \u0437\u043b\u043e\u0442\u0430
currenciesDisplayName.DZD=\u0410\u043b\u0436\u0438\u0440\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.ISK=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.SRG=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u043a\u0438 \u0433\u0438\u043b\u0434\u0435\u0440
currenciesDisplayName.LYD=\u041b\u0438\u0431\u0438\u0439\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.BZD=\u0411\u0435\u043b\u0438\u0437\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.BAM=\u0411\u043e\u0441\u043d\u0435\u043d\u0441\u043a\u0430 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u0430 \u043c\u0430\u0440\u043a\u0430
+currenciesDisplayName.BZD=\u0411\u0435\u043b\u0438\u0437\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.ESP=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
-currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
currenciesDisplayName.KRW=\u041a\u041d\u0414\u0420 \u0432\u043e\u043d
+currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
currenciesDisplayName.MRO=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430 \u043e\u0433\u0438\u044f
currenciesDisplayName.BAD=\u0411\u043e\u0441\u043d\u0430 \u0438 \u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u0430-\u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.ZWD=\u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0438\u0439\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
@@ -221,32 +233,31 @@ currenciesDisplayName.BYR=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0430
currenciesDisplayName.IRR=\u0418\u0440\u0430\u043d\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
currenciesDisplayName.PKR=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u044f
currenciesDisplayName.BMD=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesSymbol.BGL=\u043b\u0432
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=\u043b\u0432.
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
@@ -265,27 +276,26 @@ currenciesSymbol.FJD=F$
currenciesSymbol.UYU=Ur$
currenciesSymbol.BDT=Tk
currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
currenciesSymbol.SGD=S$
currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -294,8 +304,8 @@ currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
currenciesSymbol.CNY=Y
@@ -310,10 +320,10 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=NA f.
@@ -323,19 +333,21 @@ currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
currenciesSymbol.BGN=\u043b\u0432.
-shortMonths=\u044f\u043d\u0443®\u0444\u0435\u0432®\u043c\u0430\u0440®\u0430\u043f\u0440®\u043c\u0430\u0439®\u044e\u043d\u0438®\u044e\u043b\u0438®\u0430\u0432\u0433®\u0441\u0435\u043f®\u043e\u043a\u0442®\u043d\u043e\u0435®\u0434\u0435\u043a®®
-months=\u044f\u043d\u0443\u0430\u0440\u0438®\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438®\u043c\u0430\u0440\u0442®\u0430\u043f\u0440\u0438\u043b®\u043c\u0430\u0439®\u044e\u043d\u0438®\u044e\u043b\u0438®\u0430\u0432\u0433\u0443\u0441\u0442®\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438®\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438®\u043d\u043e\u0435\u043c\u0432\u0440\u0438®\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438®®
-shortWeekdays=®\u043d\u0434®\u043f\u043d®\u0432\u0442®\u0441\u0440®\u0447\u0442®\u043f\u0442®\u0441\u0431®
-weekdays=®\u043d\u0435\u0434\u0435\u043b\u044f®\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a®\u0432\u0442\u043e\u0440\u043d\u0438\u043a®\u0441\u0440\u044f\u0434\u0430®\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a®\u043f\u0435\u0442\u044a\u043a®\u0441\u044a\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u043f\u0440.\u0425\u0440.®\u0441\u043b.\u0425\u0440.®
-ampms=\u043f\u0440. \u043e\u0431.®\u0441\u043b. \u043e\u0431.®
+shortMonths=\u044f\u043d.\u00ae\u0444\u0435\u0432\u0440.\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440.\u00ae\u043c\u0430\u0439\u00ae\u044e\u043d\u0438\u00ae\u044e\u043b\u0438\u00ae\u0430\u0432\u0433.\u00ae\u0441\u0435\u043f\u0442.\u00ae\u043e\u043a\u0442.\u00ae\u043d\u043e\u0435\u043c.\u00ae\u0434\u0435\u043a.\u00ae\u00ae
+months=\u044f\u043d\u0443\u0430\u0440\u0438\u00ae\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440\u0438\u043b\u00ae\u043c\u0430\u0439\u00ae\u044e\u043d\u0438\u00ae\u044e\u043b\u0438\u00ae\u0430\u0432\u0433\u0443\u0441\u0442\u00ae\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438\u00ae\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438\u00ae\u043d\u043e\u0435\u043c\u0432\u0440\u0438\u00ae\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438\u00ae\u00ae
+shortWeekdays=\u00ae\u043d\u0434\u00ae\u043f\u043d\u00ae\u0432\u0442\u00ae\u0441\u0440\u00ae\u0447\u0442\u00ae\u043f\u0442\u00ae\u0441\u0431\u00ae
+weekdays=\u00ae\u043d\u0435\u0434\u0435\u043b\u044f\u00ae\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a\u00ae\u0432\u0442\u043e\u0440\u043d\u0438\u043a\u00ae\u0441\u0440\u044f\u0434\u0430\u00ae\u0447\u0435\u0442\u0432\u044a\u0440\u0442\u044a\u043a\u00ae\u043f\u0435\u0442\u044a\u043a\u00ae\u0441\u044a\u0431\u043e\u0442\u0430\u00ae
+eras=\u043f\u0440. \u043d. \u0435.\u00ae\u043e\u0442 \u043d. \u0435.\u00ae
+ampms=\u043f\u0440. \u043e\u0431.\u00ae\u0441\u043b. \u043e\u0431.\u00ae
shortDateFormat=dd.MM.yy
mediumDateFormat=dd.MM.yyyy
longDateFormat=dd MMMM yyyy
fullDateFormat=dd MMMM yyyy, EEEE
-longTimeFormat=HH:mm:ss
-zoneStrings=America/Halifax®AST®\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®ADT®\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/Indianapolis®EST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®EST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©Europe/Paris®CET®\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®CEST®\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/Phoenix®MST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®MST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/Los_Angeles®PST®\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®PDT®\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©Pacific/Honolulu®HST®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0425\u0430\u0432\u0430\u0439®HST®\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0425\u0430\u0432\u0430\u0439®©America/Denver®MST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®MDT®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©Europe/Bucharest®EET®\u0418\u0437\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®EEST®\u0418\u0437\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/New_York®EST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®EDT®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©Asia/Tokyo®JST®\u042f\u043f\u043e\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®JST®\u042f\u043f\u043e\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/Anchorage®AST®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0410\u043b\u044f\u0441\u043a\u0430®ADT®\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0410\u043b\u044f\u0441\u043a\u0430®©Asia/Shanghai®CTT®\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®CDT®\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©America/Chicago®CST®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®CDT®\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430®©Africa/Casablanca®GMT®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0413\u0440\u0438\u043d\u0443\u0438\u0447®GMT®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0413\u0440\u0438\u043d\u0443\u0438\u0447®©America/St_Johns®CNT®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u041d\u044e\u0444\u0430\u0443\u043d\u0434\u043b\u0435\u043d\u0434®CDT®\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u041d\u044e\u0444\u0430\u0443\u043d\u0434\u043b\u0435\u043d\u0434®©Asia/Jerusalem®IST®\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0418\u0437\u0440\u0430\u0435\u043b®IDT®\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0418\u0437\u0440\u0430\u0435\u043b®©
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Central\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9Alaska\u00ae\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0410\u043b\u044f\u0441\u043a\u0430\u00ae\u00ae\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0410\u043b\u044f\u0441\u043a\u0430\u00ae\u00ae\u00a9America_Pacific\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9Israel\u00ae\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0418\u0437\u0440\u0430\u0435\u043b\u00ae\u00ae\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0418\u0437\u0440\u0430\u0435\u043b\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0418\u0437\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0418\u0437\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9Newfoundland\u00ae\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u041d\u044e\u0444\u0430\u0443\u043d\u0434\u043b\u0435\u043d\u0434\u00ae\u00ae\u041b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u041d\u044e\u0444\u0430\u0443\u043d\u0434\u043b\u0435\u043d\u0434\u00ae\u00ae\u00a9Atlantic\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9America_Eastern\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9China\u00ae\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u043f\u043b\u0430\u043d\u0438\u043d\u0441\u043a\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9GMT\u00ae\u0427\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430 \u0413\u0440\u0438\u043d\u0443\u0438\u0447\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u043b\u044f\u0442\u043d\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9Japan\u00ae\u042f\u043f\u043e\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u042f\u043f\u043e\u043d\u0441\u043a\u0430 \u0447\u0430\u0441\u043e\u0432\u0430 \u0437\u043e\u043d\u0430\u00ae\u00ae\u00a9
territories.TL=\u0418\u0437\u0442\u043e\u0447\u0435\u043d \u0422\u0438\u043c\u043e\u0440
territories.TK=\u0422\u043e\u043a\u0435\u043b\u0430\u0443
territories.TJ=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d
@@ -358,12 +370,13 @@ territories.GN=\u0413\u0432\u0438\u043d\u0435\u044f
territories.GM=\u0413\u0430\u043c\u0431\u0438\u044f
territories.GL=\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0438\u044f
territories.SV=\u0415\u043b \u0421\u0430\u043b\u0432\u0430\u0434\u043e\u0440
-territories.062=\u042e\u0436\u043d\u0430 \u0410\u0437\u0438\u044f
+territories.062=\u042e\u0436\u043d\u0430 \u0410\u0437\u0438\u044f [062]
territories.ST=\u0421\u0430\u043e \u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u0435
-territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f
territories.GI=\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440
+territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f
territories.GH=\u0413\u0430\u043d\u0430
territories.SR=\u0421\u0443\u0440\u0438\u043d\u0430\u043c
+territories.GG=\u043e. \u0413\u044a\u0440\u043d\u0437\u0438
territories.GF=\u0424\u0440\u0435\u043d\u0441\u043a\u0430 \u0413\u0432\u0438\u0430\u043d\u0430
territories.GE=\u0413\u0440\u0443\u0437\u0438\u044f
territories.SO=\u0421\u043e\u043c\u0430\u043b\u0438\u044f
@@ -384,36 +397,38 @@ territories.SC=\u0421\u0435\u0439\u0448\u0435\u043b\u0438
territories.SB=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
territories.SA=\u0421\u0430\u0443\u0434\u0438\u0442\u0441\u043a\u0430 \u0410\u0440\u0430\u0431\u0438\u044f
territories.FR=\u0424\u0440\u0430\u043d\u0446\u0438\u044f
-territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
territories.FO=\u0424\u0430\u0440\u044c\u043e\u0440\u0441\u043a\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
+territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
territories.FM=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f, \u041e\u0431\u0435\u0434\u0438\u043d\u0435\u043d\u0438 \u0429\u0430\u0442\u0438
territories.RW=\u0420\u0443\u0430\u043d\u0434\u0430
territories.054=\u041c\u0435\u043b\u0430\u043d\u0435\u0437\u0438\u044f
-territories.053=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f \u0438 \u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f
territories.FK=\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
+territories.053=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f \u0438 \u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f
territories.RU=\u0420\u0443\u0441\u043a\u0430 \u0424\u0435\u0434\u0435\u0440\u0430\u0446\u0438\u044f
territories.FJ=\u0424\u0438\u0434\u0436\u0438
territories.FI=\u0424\u0438\u043d\u043b\u0430\u043d\u0434\u0438\u044f
+territories.RS=\u0421\u044a\u0440\u0431\u0438\u044f
territories.RO=\u0420\u0443\u043c\u044a\u043d\u0438\u044f
territories.RE=\u0420\u0435\u044e\u043d\u0438\u044a\u043d
territories.ET=\u0415\u0442\u0438\u043e\u043f\u0438\u044f
territories.ES=\u0418\u0441\u043f\u0430\u043d\u0438\u044f
territories.ER=\u0415\u0440\u0438\u0442\u0440\u0435\u044f
-territories.833=\u043e.\u041c\u0430\u043d
+territories.QU=\u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438 \u0441\u044a\u044e\u0437
territories.EH=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430
territories.EG=\u0415\u0433\u0438\u043f\u0435\u0442
-territories.830=\u041d\u043e\u0440\u043c\u0430\u043d\u0434\u0441\u043a\u0438 \u043e-\u0432\u0438
territories.EE=\u0415\u0441\u0442\u043e\u043d\u0438\u044f
-territories.QO=\u041e\u043a\u0435\u0430\u043d\u0438\u044f
+territories.830=\u041d\u043e\u0440\u043c\u0430\u043d\u0434\u0441\u043a\u0438 \u043e-\u0432\u0438
+territories.QO=\u041e\u043a\u0435\u0430\u043d\u0438\u044f [QO]
territories.EC=\u0415\u043a\u0432\u0430\u0434\u043e\u0440
territories.DZ=\u0410\u043b\u0436\u0438\u0440
territories.QA=\u041a\u0430\u0442\u0430\u0440
territories.039=\u042e\u0436\u043d\u0430 \u0415\u0432\u0440\u043e\u043f\u0430
territories.DO=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
territories.PY=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439
-territories.035=\u042e\u0433\u043e\u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0410\u0437\u0438\u044f
territories.DM=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430
+territories.035=\u042e\u0433\u043e\u0438\u0437\u0442\u043e\u0447\u043d\u0430 \u0410\u0437\u0438\u044f
territories.PW=\u041f\u0430\u043b\u0430\u0443
+territories.034=\u042e\u0436\u043d\u0430 \u0410\u0437\u0438\u044f
territories.DK=\u0414\u0430\u043d\u0438\u044f
territories.DJ=\u0414\u0436\u0438\u0431\u0443\u0442\u0438
territories.PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u044f
@@ -435,6 +450,7 @@ territories.CX=\u041e\u0441\u0442\u0440\u043e\u0432 \u041a\u0440\u0438\u0441\u04
territories.CV=\u041a\u0430\u0431\u043e \u0412\u0435\u0440\u0434\u0435
territories.PA=\u041f\u0430\u043d\u0430\u043c\u0430
territories.CU=\u041a\u0443\u0431\u0430
+territories.CS=\u0421\u044a\u0440\u0431\u0438\u044f \u0438 \u0427\u0435\u0440\u043d\u0430 \u0413\u043e\u0440\u0430
territories.CR=\u041a\u043e\u0441\u0442\u0430 \u0420\u0438\u043a\u0430
territories.029=\u041a\u0430\u0440\u0438\u0431\u0441\u043a\u0438 \u043e-\u0432\u0438
territories.CO=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u044f
@@ -442,8 +458,8 @@ territories.CN=\u041a\u0438\u0442\u0430\u0439
territories.CM=\u041a\u0430\u043c\u0435\u0440\u0443\u043d
territories.CL=\u0427\u0438\u043b\u0438
territories.CK=\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041a\u0443\u043a
-territories.CI=\u041a\u043e\u0442 \u0434\u2019\u0418\u0432\u043e\u0430\u0440
territories.021=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
+territories.CI=\u0411\u0440\u044f\u0433 \u043d\u0430 \u0421\u043b\u043e\u043d\u043e\u0432\u0430\u0442\u0430 \u043a\u043e\u0441\u0442
territories.CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f
territories.CG=\u041a\u043e\u043d\u0433\u043e
territories.CF=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
@@ -451,6 +467,7 @@ territories.CD=\u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u043
territories.CC=\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u0438 (\u041a\u0438\u0439\u043b\u0438\u043d\u0433) \u043e\u0441\u0442\u0440\u043e\u0432\u0438
territories.OM=\u041e\u043c\u0430\u043d
territories.CA=\u041a\u0430\u043d\u0430\u0434\u0430
+territories.419=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0438 \u041a\u0430\u0440\u0438\u0431\u0441\u043a\u0438 \u0431\u0430\u0441\u0435\u0439\u043d
territories.BZ=\u0411\u0435\u043b\u0438\u0437
territories.BY=\u0411\u0435\u043b\u0430\u0440\u0443\u0441
territories.BW=\u0411\u043e\u0442\u0441\u0443\u0430\u043d\u0430
@@ -459,25 +476,27 @@ territories.BT=\u0411\u0443\u0442\u0430\u043d
territories.BS=\u0411\u0430\u0445\u0430\u043c\u0438
territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f
territories.019=\u0410\u043c\u0435\u0440\u0438\u043a\u0430
-territories.018=\u042e\u0436\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.018=\u042e\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0440\u0435\u0433\u0438\u043e\u043d
territories.NZ=\u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f
-territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u044f
territories.017=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u044f
territories.BN=\u0411\u0440\u0443\u043d\u0435\u0439 \u0414\u0430\u0440\u0443\u0441\u0430\u043b\u0430\u043c
-territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0430
territories.015=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0430
territories.014=\u0418\u0437\u0442\u043e\u0447\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
territories.013=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.NU=\u041d\u0438\u0443\u0435
territories.BJ=\u0411\u0435\u043d\u0438\u043d
-territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
territories.011=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0410\u0444\u0438\u0440\u043a\u0430
+territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
+territories.172=\u041e\u0431\u0449\u043d\u043e\u0441\u0442 \u043d\u0430 \u043d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u0438\u0442\u0435 \u0434\u044a\u0440\u0436\u0430\u0432\u0438
territories.BH=\u0411\u0430\u0445\u0440\u0435\u0439\u043d
territories.NR=\u041d\u0430\u0443\u0440\u0443
territories.BG=\u0411\u044a\u043b\u0433\u0430\u0440\u0438\u044f
territories.BF=\u0411\u0443\u0440\u043a\u0438\u043d\u0430 \u0424\u0430\u0441\u043e
territories.NP=\u041d\u0435\u043f\u0430\u043b
territories.BE=\u0411\u0435\u043b\u0433\u0438\u044f
+territories.ZZ=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442a \u0438\u043b\u0438 \u043d\u0435\u0441\u044a\u0449\u0435\u0441\u0442\u0432\u0443\u0432\u0430\u0449\u0430 \u043e\u0431\u043b\u0430\u0441\u0442
territories.NO=\u041d\u043e\u0440\u0432\u0435\u0433\u0438\u044f
territories.BD=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448
territories.BB=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441
@@ -498,24 +517,25 @@ territories.AU=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f
territories.AT=\u0410\u0432\u0441\u0442\u0440\u0438\u044f
territories.AS=\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e \u0421\u0430\u043c\u043e\u0430
territories.AR=\u0410\u0440\u0436\u0435\u043d\u0442\u0438\u043d\u0430
-territories.009=\u041e\u043a\u0435\u0430\u043d\u0438\u044f
territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a\u0430
+territories.009=\u041e\u043a\u0435\u0430\u043d\u0438\u044f
territories.MZ=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a
territories.AO=\u0410\u043d\u0433\u043e\u043b\u0430
territories.MY=\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u044f
territories.AN=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0410\u043d\u0442\u0438\u043b\u0438
territories.MX=\u041c\u0435\u043a\u0441\u0438\u043a\u043e
-territories.005=\u042e\u0436\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.AM=\u0410\u0440\u043c\u0435\u043d\u0438\u044f
+territories.005=\u042e\u0436\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.MW=\u041c\u0430\u043b\u0430\u0432\u0438
territories.AL=\u0410\u043b\u0431\u0430\u043d\u0438\u044f
territories.MV=\u041c\u0430\u043b\u0434\u0438\u0432\u0438
+territories.003=\u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u043a\u043e\u043d\u0442\u0438\u043d\u0435\u043d\u0442
territories.ZA=\u042e\u0436\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
territories.MU=\u041c\u0430\u0432\u0440\u0438\u0446\u0438\u0439
territories.002=\u0410\u0444\u0440\u0438\u043a\u0430
territories.MT=\u041c\u0430\u043b\u0442\u0430
-territories.001=\u0417\u0435\u043c\u044f\u0442\u0430
territories.AI=\u0410\u043d\u0433\u0443\u0438\u043b\u0430
+territories.001=\u0417\u0435\u043c\u044f\u0442\u0430
territories.MS=\u041c\u043e\u043d\u0441\u0435\u0440\u0430\u0442
territories.MR=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0438\u044f
territories.AG=\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
@@ -523,7 +543,7 @@ territories.MQ=\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a\u0430
territories.AF=\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d
territories.MP=\u0421\u0435\u0432\u0435\u0440\u043d\u0438 \u041c\u0430\u0440\u0438\u0430\u043d\u0441\u043a\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
territories.AE=\u041e\u0431\u0435\u0434\u0438\u043d\u0435\u043d\u0438 \u0410\u0440\u0430\u0431\u0441\u043a\u0438 \u0415\u043c\u0438\u0440\u0441\u0442\u0432\u0430
-territories.MO=\u041c\u0430\u043a\u0430\u043e \u041e.\u0410.\u0420. \u043d\u0430 \u041a\u0438\u0442\u0430\u0439
+territories.MO=\u041c\u0430\u043a\u0430\u043e
territories.AD=\u0410\u043d\u0434\u043e\u0440\u0430
territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u044f
territories.MM=\u041c\u0438\u0430\u043d\u043c\u0430\u0440
@@ -532,6 +552,7 @@ territories.MK=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u044f, \u0420\u0
territories.YT=\u041c\u0435\u0439\u043e\u0442
territories.MH=\u041c\u0430\u0440\u0448\u0430\u043b\u043e\u0432\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
territories.MG=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
+territories.ME=\u0427\u0435\u0440\u043d\u0430 \u0413\u043e\u0440\u0430
territories.MD=\u041c\u043e\u043b\u0434\u043e\u0432\u0430, \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
territories.MC=\u041c\u043e\u043d\u0430\u043a\u043e
territories.MA=\u041c\u0430\u0440\u043e\u043a\u043e
@@ -555,6 +576,7 @@ territories.KZ=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d
territories.KY=\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0438 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
territories.KW=\u041a\u0443\u0432\u0435\u0439\u0442
territories.145=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0410\u0437\u0438\u044f
+territories.143=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0437\u0438\u044f
territories.142=\u0410\u0437\u0438\u044f
territories.KR=\u041a\u043e\u0440\u0435\u044f, \u042e\u0436\u043d\u0430
territories.KP=\u041a\u043e\u0440\u0435\u044f, \u0421\u0435\u0432\u0435\u0440\u043d\u0430
@@ -570,6 +592,7 @@ territories.JP=\u042f\u043f\u043e\u043d\u0438\u044f
territories.JO=\u0419\u043e\u0440\u0434\u0430\u043d\u0438\u044f
territories.JM=\u042f\u043c\u0430\u0439\u043a\u0430
territories.VU=\u0412\u0430\u043d\u0443\u0430\u0442\u0443
+territories.JE=\u043e. \u0414\u0436\u044a\u0440\u0437\u0438
territories.VN=\u0412\u0438\u0435\u0442\u043d\u0430\u043c
territories.VI=\u0421\u0410\u0429, \u0412\u0438\u0440\u0434\u0436\u0438\u043d\u0441\u043a\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
territories.VG=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438 \u0412\u0438\u0440\u0434\u0436\u0438\u043d\u0441\u043a\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
@@ -584,6 +607,7 @@ territories.UZ=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d
territories.IO=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0432 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u044f \u043e\u043a\u0435\u0430\u043d
territories.UY=\u0423\u0440\u0443\u0433\u0432\u0430\u0439
territories.IN=\u0418\u043d\u0434\u0438\u044f
+territories.IM=\u043e.\u041c\u0430\u043d
territories.IL=\u0418\u0437\u0440\u0430\u0435\u043b
territories.US=\u0421\u0410\u0429
territories.IE=\u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f
@@ -599,187 +623,348 @@ territories.HN=\u0425\u043e\u043d\u0434\u0443\u0440\u0430\u0441
territories.HM=\u041e\u0441\u0442\u0440\u043e\u0432 \u0425\u044a\u0440\u0434 \u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u0434
territories.TW=\u0422\u0430\u0439\u0432\u0430\u043d
territories.TV=\u0422\u0443\u0432\u0430\u043b\u0443
-territories.HK=\u0425\u043e\u043d\u0433-\u041a\u043e\u043d\u0433 \u041e.\u0410.\u0420. \u043d\u0430 \u041a\u0438\u0442\u0430\u0439
+territories.HK=\u0425\u043e\u043d\u0433-\u041a\u043e\u043d\u0433
territories.TT=\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e
territories.TR=\u0422\u0443\u0440\u0446\u0438\u044f
territories.TO=\u0422\u043e\u043d\u0433\u0430
territories.TN=\u0422\u0443\u043d\u0438\u0441
territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d
-languages.lb=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0441\u043a\u0438
-languages.la=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0438
-languages.ky=\u041a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438
-languages.ku=\u041a\u044e\u0440\u0434\u0441\u043a\u0438
-languages.ks=\u041a\u0430\u0448\u043c\u0438\u0440\u0441\u043a\u0438
-languages.ko=\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u0438
-languages.km=\u041a\u0445\u043c\u0435\u0440\u0441\u043a\u0438
-languages.ira=\u0418\u0440\u0430\u043d\u0441\u043a\u0438
-languages.kk=\u041a\u0430\u0437\u0430\u0445\u0441\u043a\u0438
-languages.ki=\u043a\u0438\u043a\u0443\u0439\u0443
-languages.kg=\u041a\u043e\u043d\u0433\u043e\u0430\u043d\u0441\u043a\u0438
-languages.grc=\u0414\u0440\u0435\u0432\u043d\u043e\u0433\u0440\u044a\u0446\u043a\u0438 (\u0434\u043e 1453)
-languages.crp=\u041a\u0440\u0435\u043e\u043b\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.art=\u0418\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d (\u0434\u0440\u0443\u0433\u0438)
-languages.afh=\u0410\u0444\u0440\u0438\u0445\u0438\u043b\u0438
-languages.ka=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438
-languages.gem=\u0413\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.afa=\u0410\u0444\u0440\u043e-\u0430\u0437\u0438\u0430\u0442\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.jv=\u042f\u0432\u0430\u043d\u0441\u043a\u0438
-languages.cel=\u041a\u0435\u043b\u0442\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.tut=\u0410\u043b\u0442\u0430\u0439\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ja=\u042f\u043f\u043e\u043d\u0441\u043a\u0438
-languages.vi=\u0412\u0438\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438
-languages.it=\u0418\u0442\u0430\u043b\u0438\u0430\u043d\u0441\u043a\u0438
-languages.is=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438
-languages.uz=\u0423\u0437\u0431\u0435\u043a\u0441\u043a\u0438
-languages.io=\u0418\u0434\u043e
-languages.ur=\u0423\u0440\u0434\u0443
-languages.cpp=\u041a\u0440\u0435\u043e\u043b\u0441\u043a\u0438, \u043e\u0442 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.id=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0438
-languages.hit=\u0425\u0438\u0442\u0441\u043a\u0438
-languages.uk=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438
-languages.cpf=\u041a\u0440\u0435\u043e\u043b\u0441\u043a\u0438, \u043e\u0442 \u0444\u0440\u0435\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.fiu=\u0423\u0433\u0440\u043e\u0444\u0438\u043d\u0441\u043a\u0430 (\u0434\u0440\u0443\u0433\u0438)
-languages.und=\u041d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d
-languages.hy=\u0410\u0440\u043c\u0435\u043d\u0441\u043a\u0438
-languages.cpe=\u041a\u0440\u0435\u043e\u043b\u0441\u043a\u0438, \u043e\u0442 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.nub=\u041d\u0443\u0431\u0438\u0439\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
-languages.got=\u0413\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438
-languages.phn=\u0424\u0438\u043d\u0438\u043a\u0438\u0439\u0441\u043a\u0438
-languages.hu=\u0423\u043d\u0433\u0430\u0440\u0441\u043a\u0438
-languages.ht=\u0425\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438
-languages.hr=\u0425\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438
-languages.phi=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ty=\u0422\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438
-languages.apa=\u0415\u0437\u0438\u0446\u0438 \u043d\u0430 \u0430\u043f\u0430\u0445\u0438\u0442\u0435
-languages.goh=\u041d\u0435\u043c\u0441\u043a\u0438 (750-1050)
-languages.tt=\u0422\u0430\u0442\u0430\u0440\u0441\u043a\u0438
-languages.hi=\u0425\u0438\u043d\u0434\u0438
-languages.tr=\u0422\u0443\u0440\u0441\u043a\u0438
-languages.he=\u0418\u0432\u0440\u0438\u0442
-languages.sai=\u042e\u0436\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.sah=\u042f\u043a\u0443\u0442\u0441\u043a\u0438
-languages.tk=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438
-languages.dum=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438, \u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d (1050-1350)
-languages.th=\u0422\u0430\u0438
-languages.tg=\u0422\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438
-languages.te=\u0422\u0435\u043b\u0443\u0433\u0443
+languages.akk=\u0430\u043a\u0430\u0434\u0441\u043a\u0438
+languages.eka=\u0435\u043a\u0430\u0436\u0443\u043a
+languages.ijo=\u0438\u0434\u0436\u043e
+languages.xh=\u043a\u0441\u043e\u0441\u0430
+languages.sux=\u0448\u0443\u043c\u0435\u0440\u0441\u043a\u0438
+languages.mis=\u0434\u0440\u0443\u0433\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.wo=\u0432\u043e\u043b\u043e\u0444
+languages.kut=\u043a\u0443\u0442\u0435\u043d\u0430\u0439
+languages.kum=\u043a\u0443\u043c\u0438\u043a\u0441\u043a\u0438
+languages.ain=\u0430\u0439\u043d\u0443
+languages.cus=\u043a\u0443\u0448\u0438\u0442\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.jbo=\u043b\u043e\u0434\u0436\u0431\u0430\u043d
+languages.doi=\u0434\u043e\u0433\u0440\u0438
+languages.oto=\u0441\u0442\u0430\u0440\u043e\u0442\u0443\u0440\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.vi=\u0432\u0438\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438
+languages.raj=\u0440\u0430\u0434\u0436\u0430\u0441\u0442\u0430\u043d\u0441\u043a\u0438
+languages.ota=\u043e\u0442\u043e\u043c\u0430\u043d\u0441\u043a\u0438 \u0442\u0443\u0440\u0441\u043a\u0438
+languages.nap=\u043d\u0435\u0430\u043f\u043e\u043b\u0438\u0442\u0430\u043d\u0441\u043a\u0438
+languages.uz=\u0443\u0437\u0431\u0435\u043a\u0441\u043a\u0438
+languages.nai=\u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438
+languages.ur=\u0443\u0440\u0434\u0443
+languages.fat=\u0424\u0430\u043d\u0442\u0438
+languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438
+languages.egy=\u0435\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0438
+languages.ug=\u0443\u0439\u0433\u0443\u0440\u0441\u043a\u0438
+languages.fan=\u0424\u0430\u043d\u0433
+languages.mga=\u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d \u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.bat=\u0431\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438
+languages.bas=\u0431\u0430\u0441\u0430
+languages.hmn=\u0445\u043c\u043e\u043d\u0433
+languages.ban=\u0431\u0430\u043b\u0438\u043d\u0435\u0439\u0441\u043a\u0438
+languages.bal=\u0431\u0430\u043b\u0443\u0447\u0438
+languages.ty=\u0442\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438
+languages.bai=\u0431\u0430\u043c\u0438\u043a\u0435\u043b\u0435
+languages.tw=\u0442\u0443\u0438
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d
+languages.tt=\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0438
+languages.bad=\u0431\u0430\u043d\u0434\u0430
+languages.tr=\u0442\u0443\u0440\u0441\u043a\u0438
+languages.tl=\u0442\u0430\u0433\u0430\u043b\u043e\u0433
+languages.tk=\u0442\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438
+languages.ti=\u0442\u0438\u0433\u0440\u0438\u043d\u044f
+languages.th=\u0442\u0430\u0438
+languages.kru=\u041a\u0443\u0440\u0443\u043a
+languages.tg=\u0442\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438
+languages.byn=\u0431\u0438\u043b\u0435\u043d\u0441\u043a\u0438
+languages.te=\u0442\u0435\u043b\u0443\u0433\u0443
+languages.kro=\u041a\u0440\u0443
+languages.csb=\u043a\u0430\u0448\u0443\u0431\u0441\u043a\u0438
+languages.ta=\u0442\u0430\u043c\u0438\u043b\u0441\u043a\u0438
+languages.efi=\u0435\u0444\u0438\u043a
+languages.sw=\u0441\u0443\u0430\u0445\u0438\u043b\u0438
+languages.sv=\u0448\u0432\u0435\u0434\u0441\u043a\u0438
+languages.su=\u0441\u0443\u043d\u0434\u0430\u043d\u0441\u043a\u0438
+languages.krc=\u043a\u0430\u0440\u0430\u0447\u0430\u0439-\u0431\u0430\u043b\u043a\u0430\u0440\u0441\u043a\u0438
+languages.st=\u0441\u0435\u0441\u0443\u0442\u043e
+languages.ss=\u0441\u0443\u0430\u0437\u0438
+languages.sr=\u0441\u0440\u044a\u0431\u0441\u043a\u0438
+languages.sq=\u0430\u043b\u0431\u0430\u043d\u0441\u043a\u0438
+languages.crp=\u043a\u0440\u0435\u043e\u043b\u0441\u043a\u0438
+languages.so=\u0441\u043e\u043c\u0430\u043b\u0438\u0439\u0441\u043a\u0438
+languages.afh=\u0430\u0444\u0440\u0438\u0445\u0438\u043b\u0438
+languages.sm=\u0441\u0430\u043c\u043e\u0430\u043d\u0441\u043a\u0438
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438
+languages.grc=\u0434\u0440\u0435\u0432\u043d\u043e\u0433\u0440\u044a\u0446\u043a\u0438
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u0448\u043a\u0438
+languages.grb=\u0433\u0440\u0435\u0431\u043e
+languages.si=\u0441\u0438\u043d\u0445\u0430\u043b\u0441\u043a\u0438
+languages.sh=\u0441\u044a\u0440\u0431\u043e\u0445\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.crh=\u043a\u0440\u0438\u043c\u0441\u043a\u043e\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0438
+languages.afa=\u0430\u0444\u0440\u043e-\u0430\u0437\u0438\u0430\u0442\u0441\u043a\u0438
+languages.sg=\u0441\u0430\u043d\u0433\u043e
+languages.sd=\u0441\u0438\u043d\u0434\u0445\u0438
+languages.sc=\u0441\u0430\u0440\u0434\u0438\u043d\u0441\u043a\u0438
+languages.sa=\u0441\u0430\u043d\u043a\u0441\u043a\u0440\u0438\u0442\u0441\u043a\u0438
+languages.rw=\u043a\u0438\u043d\u044f\u0440\u0443\u0430\u043d\u0434\u0430
+languages.ru=\u0440\u0443\u0441\u043a\u0438
+languages.ro=\u0440\u0443\u043c\u044a\u043d\u0441\u043a\u0438
+languages.rn=\u0440\u0443\u043d\u0434\u0438
+languages.rm=\u0440\u0435\u0442\u043e\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438
+languages.ady=\u0430\u0434\u0438\u0433\u0435
+languages.kpe=\u043a\u043f\u0435\u043b\u0435
+languages.qu=\u043a\u0435\u0447\u0443\u0430
+languages.cpp=\u043a\u0440\u0435\u043e\u043b\u0441\u043a\u0438 \u0438\u043b\u0438 \u043f\u0438\u0434\u0436\u0438\u043d \u043e\u0442 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
+languages.ada=\u0430\u0434\u0430\u043d\u0433\u043c\u0435
+languages.hit=\u0445\u0438\u0442\u0441\u043a\u0438
+languages.cpf=\u043a\u0440\u0435\u043e\u043b\u0441\u043a\u0438 \u0438 \u043f\u0438\u0434\u0436\u0438\u043d \u043e\u0442 \u0444\u0440\u0435\u043d\u0441\u043a\u0438
+languages.cpe=\u043a\u0440\u0435\u043e\u043b\u0441\u043a\u0438, \u043e\u0442 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.him=\u0445\u0438\u043c\u0430\u0447\u0430\u043b\u0438
+languages.kok=\u043a\u043e\u043d\u043a\u0430\u043d\u0438
+languages.hil=\u0445\u0438\u043b\u0438\u0433\u0430\u0439\u043d\u043e\u043d
+languages.got=\u0433\u043e\u0442\u0438\u0447\u0435\u0441\u043a\u0438
+languages.gor=\u0433\u043e\u0440\u043e\u043d\u0442\u0430\u043b\u043e
+languages.gon=\u0433\u043e\u043d\u0434\u0438
+languages.din=\u0414\u0438\u043d\u043a\u0430
+languages.nub=\u043d\u0443\u0431\u0438\u0439\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
+languages.fur=\u0424\u0440\u0438\u0443\u043b\u0438\u0430\u043d\u0441\u043a\u0438
+languages.ps=\u043f\u0443\u0449\u0443
+languages.phn=\u0444\u0438\u043d\u0438\u043a\u0438\u0439\u0441\u043a\u0438
+languages.goh=\u0441\u0442\u0430\u0440\u043e\u0432\u0438\u0441\u043e\u043a\u043e\u043d\u0435\u043c\u0441\u043a\u0438
+languages.cop=\u043a\u043e\u043f\u0442\u0441\u043a\u0438
+languages.ach=\u0430\u043a\u043e\u043b\u0438
+languages.phi=\u0444\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438
+languages.ace=\u0430\u0447\u0438\u043d\u0441\u043a\u0438
+languages.pl=\u043f\u043e\u043b\u0441\u043a\u0438
+languages.pa=\u043f\u0435\u043d\u0434\u0436\u0430\u0431\u0441\u043a\u0438
+languages.bug=\u0431\u0443\u0433\u0438\u043d\u0441\u043a\u0438
+languages.iba=\u0438\u0431\u0430\u043d
+languages.bua=\u0431\u0443\u0440\u044f\u0442\u0441\u043a\u0438
languages.mas=\u043c\u0430\u0441\u0430\u0439\u0441\u043a\u0438
-languages.ta=\u0422\u0430\u043c\u0438\u043b\u0441\u043a\u0438
-languages.syr=\u0421\u0438\u0440\u0438\u0439\u0441\u043a\u0438
-languages.gu=\u0413\u0443\u0434\u0436\u0430\u0440\u0430\u0442\u0438
-languages.ine=\u0418\u043d\u0434\u043e-\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.inc=\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.sw=\u0421\u0443\u0430\u0445\u0438\u043b\u0438
-languages.sv=\u0428\u0432\u0435\u0434\u0441\u043a\u0438
-languages.st=\u0421\u0435\u0441\u0443\u0442\u043e
-languages.enm=\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (1100-1500)
-languages.ss=\u0421\u0443\u0430\u0437\u0438
-languages.sr=\u0421\u0440\u044a\u0431\u0441\u043a\u0438
-languages.sq=\u0410\u043b\u0431\u0430\u043d\u0441\u043a\u0438
-languages.so=\u0421\u043e\u043c\u0430\u043b\u0438\u0439\u0441\u043a\u0438
-languages.gd=\u0428\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0430\u043b\u0441\u043a\u0438
-languages.sm=\u0421\u0430\u043c\u043e\u0430\u043d\u0441\u043a\u0438
-languages.sl=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438
-languages.ga=\u0418\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438
-languages.sk=\u0421\u043b\u043e\u0432\u0430\u0448\u043a\u0438
-languages.si=\u0421\u0438\u043d\u0445\u0430\u043b\u0441\u043a\u0438
-languages.sh=\u0421\u044a\u0440\u0431\u043e\u0445\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438
-languages.sg=\u0421\u0430\u043d\u0433\u043e
-languages.sc=\u0421\u0430\u0440\u0434\u0438\u043d\u0441\u043a\u0438
-languages.sa=\u0421\u0430\u043d\u043a\u0441\u043a\u0440\u0438\u0442\u0441\u043a\u0438
-languages.cau=\u041a\u0430\u0432\u043a\u0430\u0437\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ang=\u0421\u0442\u0430\u0440\u043e\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (ca.450-1100)
-languages.fr=\u0424\u0440\u0435\u043d\u0441\u043a\u0438
-languages.car=\u041a\u0430\u0440\u0438\u0431\u0441\u043a\u0438
-languages.sla=\u0421\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.pro=\u041f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u0441\u043a\u0438 (to 1500)
-languages.rw=\u041a\u0438\u043d\u044f\u0440\u0443\u0430\u043d\u0434\u0430
-languages.gmh=\u041d\u0435\u043c\u0441\u043a\u0438 (1050-1500)
-languages.ru=\u0420\u0443\u0441\u043a\u0438
-languages.fi=\u0424\u0438\u043d\u0441\u043a\u0438
-languages.cai=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ro=\u0420\u0443\u043c\u044a\u043d\u0441\u043a\u0438
-languages.rn=\u0420\u0443\u043d\u0434\u0438
-languages.rm=\u0420\u0435\u0442\u043e\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438
-languages.fa=\u041f\u0435\u0440\u0441\u0438\u0439\u0441\u043a\u0438
-languages.peo=\u0421\u0442\u0430\u0440\u043e\u043f\u0435\u0440\u0441\u0438\u0439\u0441\u043a\u0438 (600-400 \u043f\u0440.\u043d.\u0435.)
-languages.eu=\u0411\u0430\u0441\u043a\u0438
-languages.et=\u0415\u0441\u0442\u043e\u043d\u0441\u043a\u0438
-languages.es=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438
-languages.eo=\u0415\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
-languages.en=\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
-languages.el=\u0413\u0440\u044a\u0446\u043a\u0438
+languages.os=\u043e\u0441\u0435\u0442\u0441\u043a\u0438
+languages.or=\u043e\u0440\u0438\u044f
+languages.btk=\u0431\u0430\u0442\u0430\u043a
+languages.oc=\u043e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438
+languages.dgr=\u0434\u043e\u0433\u0440\u0438\u0431
+languages.ny=\u0447\u0438\u043d\u044f\u043d\u0434\u0436\u0430
+languages.kmb=\u043a\u0438\u043c\u0431\u0443\u043d\u0434\u0443
+languages.gmh=\u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d \u043d\u0435\u043c\u0441\u043a\u0438
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0436\u043a\u0438
+languages.nn=\u0441\u044a\u0432\u0440\u0435\u043c\u0435\u043d\u0435\u043d \u043d\u043e\u0440\u0432\u0435\u0436\u043a\u0438
+languages.nl=\u0445\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.sla=\u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438
+languages.ne=\u043d\u0435\u043f\u0430\u043b\u0441\u043a\u0438
+languages.cmc=\u0447\u0430\u043c\u0441\u043a\u0438
+languages.my=\u0431\u0438\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.mt=\u043c\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438
+languages.peo=\u0441\u0442\u0430\u0440\u043e\u043f\u0435\u0440\u0441\u0438\u0439\u0441\u043a\u0438
+languages.ms=\u043c\u0430\u043b\u0430\u0439\u0441\u043a\u0438
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0445\u0438
+languages.fro=\u0441\u0442\u0430\u0440\u043e\u0444\u0440\u0435\u043d\u0441\u043a\u0438
+languages.mo=\u043c\u043e\u043b\u0434\u043e\u0432\u0441\u043a\u0438
+languages.frm=\u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d \u0444\u0440\u0435\u043d\u0441\u043a\u0438
+languages.mn=\u043c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438
languages.jrb=\u0435\u0432\u0440\u0435\u0439\u0441\u043a\u043e-\u0430\u0440\u0430\u0431\u0441\u043a\u0438
-languages.qu=\u041a\u0435\u0447\u0443\u0430
-languages.fro=\u0424\u0440\u0435\u043d\u0441\u043a\u0438 (842-1400)
-languages.frm=\u0424\u0440\u0435\u043d\u0441\u043a\u0438 (1400-1600)
-languages.dv=\u0414\u0438\u0432\u0435\u0445\u0438
-languages.ale=\u0410\u043b\u0435\u0443\u0442\u0441\u043a\u0438
-languages.den=\u0421\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438
-languages.ber=\u0431\u0435\u0440\u0431\u0435\u0440\u0441\u043a\u0438
-languages.pt=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
-languages.ps=\u041f\u0443\u0449\u0443
-languages.de=\u041d\u0435\u043c\u0441\u043a\u0438
-languages.da=\u0414\u0430\u0442\u0441\u043a\u0438
-languages.pl=\u041f\u043e\u043b\u0441\u043a\u0438
-languages.sux=\u0428\u0443\u043c\u0435\u0440\u0441\u043a\u0438
+languages.ml=\u043c\u0430\u043b\u0430\u044f\u043b\u0430\u043c
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438
+languages.mi=\u043c\u0430\u043e\u0440\u0441\u043a\u0438
+languages.mg=\u043c\u0430\u043b\u0433\u0430\u0448\u043a\u0438
+languages.bra=\u0431\u0440\u0430\u0434\u0436
+languages.den=\u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438
+languages.lv=\u043b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0438
+languages.del=\u0414\u0435\u043b\u0430\u0443\u0435\u0440
+languages.lt=\u043b\u0438\u0442\u043e\u0432\u0441\u043a\u0438
+languages.lo=\u043b\u0430\u043e\u0441\u043a\u0438
+languages.ln=\u043b\u0438\u043d\u0433\u0430\u043b\u0430
+languages.ewo=\u0435\u0432\u043e\u043d\u0434\u043e
+languages.lb=\u043b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0441\u043a\u0438
+languages.la=\u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438
languages.jpr=\u0435\u0432\u0440\u0435\u0439\u0441\u043a\u043e-\u043f\u0435\u0440\u0441\u0438\u0439\u0441\u043a\u0438
-languages.cy=\u0423\u0435\u043b\u0441\u043a\u0438
-languages.cu=\u0426\u044a\u0440\u043a\u043e\u0432\u043d\u043e \u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438
-languages.pa=\u041f\u0435\u043d\u0434\u0436\u0430\u0431\u0441\u043a\u0438
-languages.cs=\u0427\u0435\u0448\u043a\u0438
-languages.co=\u041a\u043e\u0440\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438
-languages.mis=\u0414\u0440\u0443\u0433\u0438 \u0435\u0437\u0438\u0446\u0438
-languages.os=\u041e\u0441\u0435\u0442\u0441\u043a\u0438
-languages.roa=\u0420\u043e\u043c\u0430\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ce=\u0427\u0435\u0447\u0435\u043d\u0441\u043a\u0438
-languages.ca=\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438
-languages.bs=\u0411\u043e\u0441\u043d\u0435\u043d\u0441\u043a\u0438
-languages.br=\u0411\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438
-languages.bo=\u0422\u0438\u0431\u0435\u0442\u0441\u043a\u0438
-languages.bn=\u0411\u0435\u043d\u0433\u0430\u043b\u0441\u043a\u0438
-languages.ny=\u0427\u0438\u043d\u044f\u043d\u0434\u0436\u0430
-languages.bg=\u0411\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438
-languages.be=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u043a\u0438
-languages.no=\u041d\u043e\u0440\u0432\u0435\u0436\u043a\u0438
-languages.oto=\u0421\u0442\u0430\u0440\u043e\u0442\u0443\u0440\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
-languages.tai=\u0422\u0430\u0439\u043b\u0430\u043d\u0434\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.ba=\u0411\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u0438
-languages.nl=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438
-languages.zu=\u0417\u0443\u043b\u0443\u0441\u043a\u0438
-languages.az=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438
-languages.raj=\u0420\u0430\u0434\u0436\u0430\u0441\u0442\u0430\u043d\u0441\u043a\u0438
-languages.ay=\u0410\u0439\u043c\u0430\u0440\u0430
-languages.ne=\u041d\u0435\u043f\u0430\u043b\u0441\u043a\u0438
-languages.av=\u0410\u0432\u0430\u0440\u0441\u043a\u0438
-languages.aus=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
-languages.ota=\u0422\u0443\u0440\u0441\u043a\u0438, \u043e\u0442\u043e\u043c\u0430\u043d\u0441\u043a\u0438 (1500-1928)
-languages.ar=\u0410\u0440\u0430\u0431\u0441\u043a\u0438
-languages.nap=\u041d\u0435\u0430\u043f\u043e\u043b\u0438\u0442\u0430\u043d\u0441\u043a\u0438
-languages.zh=\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438
-languages.sga=\u0421\u0442\u0430\u0440\u043e\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438 (\u0434\u043e 900)
-languages.my=\u0411\u0438\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.ky=\u043a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438
+languages.kw=\u043a\u043e\u0440\u043d\u0443\u043e\u043b\u0441\u043a\u0438 \u043a\u0435\u043b\u0442\u0441\u043a\u0438
+languages.kv=\u041a\u043e\u043c\u0438
+languages.ku=\u043a\u044e\u0440\u0434\u0441\u043a\u0438
+languages.ks=\u043a\u0430\u0448\u043c\u0438\u0440\u0441\u043a\u0438
+languages.kr=\u043a\u0430\u043d\u0443\u0440\u0438
+languages.awa=\u0430\u0432\u0430\u0434\u0438
+languages.ko=\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.km=\u043a\u0445\u043c\u0435\u0440\u0441\u043a\u0438
+languages.en_GB=\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438 (\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0438\u044f)
+languages.kl=\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0435\u0441\u043a\u0438\u043c\u043e\u0441\u043a\u0438
+languages.kk=\u043a\u0430\u0437\u0430\u0445\u0441\u043a\u0438
+languages.kj=\u041a\u0432\u0430\u043d\u044f\u043c\u0430
+languages.rom=\u0446\u0438\u0433\u0430\u043d\u0441\u043a\u0438 \u0435\u0437\u0438\u043a
+languages.ki=\u043a\u0438\u043a\u0443\u0439\u0443
+languages.kg=\u043a\u043e\u043d\u0433\u043e\u0430\u043d\u0441\u043a\u0438
+languages.ka=\u0433\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438
+languages.roa=\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438
+languages.jv=\u044f\u0432\u0430\u043d\u0441\u043a\u0438
+languages.gil=\u0413\u0438\u043b\u0431\u0435\u0440\u0442\u0441\u043a\u0438
+languages.fon=\u0424\u043e\u043d
+languages.aus=\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.kho=\u043a\u043e\u0442\u0441\u043a\u0438
+languages.ja=\u044f\u043f\u043e\u043d\u0441\u043a\u0438
+languages.khi=\u0435\u0437\u0438\u0446\u0438 \u043a\u043e\u0438\u0441\u0430\u043d
languages.chy=\u0447\u0435\u0439\u0435\u043d\u0441\u043a\u0438
-languages.am=\u0410\u043c\u0445\u0430\u0440\u0441\u043a\u0438
-languages.nai=\u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.paa=\u041f\u0430\u043f\u0443\u0430\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.mt=\u041c\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438
-languages.ms=\u041c\u0430\u043b\u0430\u0439\u0441\u043a\u0438
+languages.tai=\u0442\u0430\u0439\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.iu=\u0438\u043d\u0443\u043a\u0442\u0438\u0442\u0443\u0442
+languages.it=\u0438\u0442\u0430\u043b\u0438\u0430\u043d\u0441\u043a\u0438
+languages.sgn=\u0436\u0435\u0441\u0442\u043e\u043c\u0438\u043c\u0438\u0447\u0435\u043d \u0435\u0437\u0438\u043a
+languages.is=\u0438\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.kha=\u043a\u0445\u0430\u0441\u0438
languages.chr=\u0447\u0435\u0440\u043e\u043a\u0438
-languages.af=\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441
-languages.mo=\u041c\u043e\u043b\u0434\u043e\u0432\u0441\u043a\u0438
-languages.haw=\u0425\u0430\u0432\u0430\u0439\u0441\u043a\u0438
-languages.mn=\u041c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438
-languages.ab=\u0410\u0431\u043a\u0445\u0430\u0437\u0441\u043a\u0438
-languages.ml=\u041c\u0430\u043b\u0430\u0439\u0441\u043a\u0438
-languages.mk=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438
-languages.bnt=\u0411\u0430\u043d\u0442\u0443
-languages.mi=\u041c\u0430\u043e\u0440\u0441\u043a\u0438
-languages.mg=\u041c\u0430\u043b\u0433\u0430\u0448\u043a\u0438
-languages.mga=\u0418\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438 (900-1200)
-languages.egy=\u0415\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0438 (\u0434\u0440\u0435\u0432\u0435\u043d)
-languages.lv=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0438
-languages.bat=\u041f\u0440\u0438\u0431\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
-languages.lt=\u041b\u0438\u0442\u043e\u0432\u0441\u043a\u0438
-languages.lo=\u041b\u0430\u043e\u0441\u043a\u0438
-languages.sem=\u0421\u0435\u043c\u0438\u0442\u0441\u043a\u0438 (\u0434\u0440\u0443\u0433\u0438)
+languages.chp=\u0427\u0438\u0438\u043f\u0443\u0432\u0441\u043a\u0438
+languages.io=\u0438\u0434\u043e
+languages.cho=\u0447\u043e\u043a\u0442\u043e
+languages.chn=\u0436\u0430\u0440\u0433\u043e\u043d \u0447\u0438\u043d\u0443\u0443\u043a
+languages.chm=\u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438
+languages.bnt=\u0431\u0430\u043d\u0442\u0443
+languages.ik=\u0438\u043d\u0443\u043f\u0438\u0430\u043a
+languages.chk=\u0447\u0443\u0443\u043a
+languages.haw=\u0445\u0430\u0432\u0430\u0439\u0441\u043a\u0438
+languages.ig=\u0438\u0433\u0431\u043e
+languages.chg=\u0447\u0430\u0433\u0430\u0442\u0430\u0439
+languages.sga=\u0441\u0442\u0430\u0440\u043e\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.ie=\u043e\u043a\u0441\u0438\u0434\u0435\u043d\u0442\u0430\u043b
+languages.paa=\u043f\u0430\u043f\u0443\u0430\u0441\u043a\u0438
+languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0438
+languages.day=\u0414\u0430\u044f\u043a\u0441\u043a\u0438
+languages.chb=\u0447\u0438\u0431\u0447\u0430
+languages.ia=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0430
+languages.hz=\u0445\u0435\u0440\u0435\u0440\u043e
+languages.hai=\u0445\u0430\u0439\u0434\u0430
+languages.dar=\u0434\u0430\u0440\u0433\u0432\u0430
+languages.hy=\u0430\u0440\u043c\u0435\u043d\u0441\u043a\u0438
+languages.ath=\u0430\u0442\u0430\u0431\u0430\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.hu=\u0443\u043d\u0433\u0430\u0440\u0441\u043a\u0438
+languages.ht=\u0445\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438
+languages.dak=\u0434\u0430\u043a\u043e\u0442\u0441\u043a\u0438
+languages.hr=\u0445\u044a\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.ho=\u0445\u0438\u0440\u0438 \u043c\u043e\u0442\u0443
+languages.hi=\u0445\u0438\u043d\u0434\u0438
+languages.dyu=\u0434\u0438\u0443\u043b\u0430
+languages.he=\u0438\u0432\u0440\u0438\u0442
+languages.ast=\u0430\u0441\u0442\u0443\u0440\u0441\u043a\u0438
+languages.ha=\u0445\u0430\u0443\u0437\u0430
+languages.gv=\u043c\u0430\u043d\u043a\u0441\u043a\u0438
+languages.gu=\u0433\u0443\u0434\u0436\u0430\u0440\u0430\u0442\u0438
+languages.sem=\u0441\u0435\u043c\u0438\u0442\u0441\u043a\u0438
+languages.iro=\u0418\u0440\u043e\u043a\u0432\u0438\u0430\u043d\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0438
+languages.gl=\u0433\u0430\u043b\u0438\u0441\u0438\u0439\u0441\u043a\u0438
+languages.arw=\u0430\u0440\u0430\u0432\u0430\u043a
+languages.gez=\u0413\u0438\u0438\u0437
+languages.art=\u0438\u0437\u043a\u0443\u0441\u0442\u0432\u0435\u043d
+languages.gd=\u0448\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0430\u043b\u0441\u043a\u0438
+languages.ira=\u0438\u0440\u0430\u043d\u0441\u043a\u0438
+languages.ga=\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.arp=\u0430\u0440\u0430\u043f\u0430\u0445\u043e
+languages.arn=\u043c\u0430\u043f\u0443\u0447\u0435
+languages.fy=\u0444\u0440\u0438\u0437\u0438\u0439\u0441\u043a\u0438
+languages.bla=\u0441\u0438\u043a\u0441\u0438\u043a\u0430
+languages.gem=\u0433\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.arc=\u0430\u0440\u0430\u043c\u0435\u0439\u0441\u043a\u0438
+languages.fr=\u0444\u0440\u0435\u043d\u0441\u043a\u0438
+languages.fo=\u0424\u0430\u0440\u044c\u043e\u0440\u0441\u043a\u0438
+languages.cel=\u043a\u0435\u043b\u0442\u0441\u043a\u0438
+languages.fj=\u0424\u0438\u0434\u0436\u0438\u0439\u0441\u043a\u0438
+languages.fi=\u0444\u0438\u043d\u0441\u043a\u0438
+languages.ff=\u0424\u0443\u043b\u0430
+languages.ceb=\u0441\u0435\u0431\u0443\u0430\u043d\u043e
+languages.fa=\u043f\u0435\u0440\u0441\u0438\u0439\u0441\u043a\u0438
+languages.en_AU=\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.zh_Hans=\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438 (\u043e\u043f\u0440\u043e\u0441\u0442\u0435\u043d)
+languages.zh_Hant=\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438 (\u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u0435\u043d)
+languages.eu=\u0435\u0437\u0438\u043a \u043d\u0430 \u0431\u0430\u0441\u043a\u0438\u0442\u0435
+languages.et=\u0435\u0441\u0442\u043e\u043d\u0441\u043a\u0438
+languages.scn=\u0441\u0438\u0446\u0438\u043b\u0438\u0430\u043d\u0441\u043a\u0438
+languages.es=\u0438\u0441\u043f\u0430\u043d\u0441\u043a\u0438
+languages.eo=\u0435\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.el=\u0433\u0440\u044a\u0446\u043a\u0438
+languages.tut=\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0438
+languages.ee=\u0435\u0443\u0435
+languages.nl_BE=\u0444\u043b\u0430\u043c\u0430\u043d\u0434\u0441\u043a\u0438
+languages.dz=\u0434\u0437\u043e\u043d\u0445\u0430
+languages.fiu=\u0443\u0433\u0440\u043e\u0444\u0438\u043d\u0441\u043a\u0438
+languages.dv=\u0434\u0438\u0432\u0435\u0445\u0438
+languages.apa=\u0435\u0437\u0438\u0446\u0438 \u043d\u0430 \u0430\u043f\u0430\u0445\u0438\u0442\u0435
+languages.fil=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438
+languages.hup=\u0445\u0443\u043f\u0430
+languages.bin=\u0431\u0438\u043d\u0438
+languages.de=\u043d\u0435\u043c\u0441\u043a\u0438
+languages.bik=\u0431\u0438\u043a\u043e\u043b\u0441\u043a\u0438
+languages.und=\u043d\u0435\u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d
+languages.da=\u0434\u0430\u0442\u0441\u043a\u0438
+languages.dum=\u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d \u0445\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.cy=\u0443\u0435\u043b\u0441\u043a\u0438
+languages.kbd=\u043a\u0430\u0431\u0430\u0440\u0434\u0438\u0430\u043d
+languages.cv=\u0447\u0443\u0432\u0430\u0448\u043a\u0438
+languages.cu=\u0446\u044a\u0440\u043a\u043e\u0432\u043d\u043e \u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438
+languages.cs=\u0447\u0435\u0448\u043a\u0438
+languages.cr=\u043a\u0440\u0438\u0438
+languages.dua=\u0434\u0443\u0430\u043b\u0430
+languages.co=\u043a\u043e\u0440\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438
+languages.sai=\u044e\u0436\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438
+languages.sah=\u044f\u043a\u0443\u0442\u0441\u043a\u0438
+languages.kaw=\u043a\u0430\u0432\u0438
+languages.inh=\u0438\u043d\u0433\u0443\u0448\u0435\u0442\u0441\u043a\u0438
+languages.gba=\u0433\u0431\u0430\u044f
+languages.ch=\u0447\u0430\u043c\u043e\u0440\u043e
+languages.ine=\u0438\u043d\u0434\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438
+languages.bho=\u0431\u043e\u0436\u043f\u0443\u0440\u0438
+languages.enm=\u0441\u0440\u0435\u0434\u043d\u043e\u0432\u0435\u043a\u043e\u0432\u0435\u043d \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.kar=\u043a\u0430\u0440\u0435\u043d\u0441\u043a\u0438
+languages.inc=\u0438\u043d\u0434\u0438\u0439\u0441\u043a\u0430 \u0433\u0440\u0443\u043f\u0430
+languages.ce=\u0447\u0435\u0447\u0435\u043d\u0441\u043a\u0438
+languages.gay=\u0433\u0430\u0439\u043e
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438
+languages.syr=\u0441\u0438\u0440\u0438\u0439\u0441\u043a\u0438
+languages.kam=\u043a\u0430\u043c\u0431\u0430
+languages.ang=\u0441\u0442\u0430\u0440\u043e\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.kac=\u041a\u0430\u0447\u0438\u043d\u0441\u043a\u0438
+languages.cau=\u043a\u0430\u0432\u043a\u0430\u0437\u0441\u043a\u0438
+languages.kab=\u043a\u0430\u0431\u0438\u043b\u0441\u043a\u0438
+languages.kaa=\u041a\u0430\u0440\u0430\u043a\u0430\u043b\u043f\u0430\u0448\u043a\u0438
+languages.bs=\u0431\u043e\u0441\u043d\u0435\u043d\u0441\u043a\u0438
+languages.car=\u043a\u0430\u0440\u0438\u0431\u0441\u043a\u0438
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438
+languages.bo=\u0442\u0438\u0431\u0435\u0442\u0441\u043a\u0438
+languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b\u0441\u043a\u0438
+languages.bm=\u0431\u0430\u043c\u0431\u0430\u0440\u0430
+languages.gaa=\u0433\u0430
+languages.cai=\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0438\u043d\u0434\u0438\u0430\u043d\u0441\u043a\u0438
+languages.bi=\u0431\u0438\u0441\u043b\u0430\u043c\u0430
+languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438
+languages.bg=\u0431\u044a\u043b\u0433\u0430\u0440\u0441\u043a\u0438
+languages.be=\u0431\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0438
+languages.cad=\u043a\u0430\u0434\u0434\u043e
+languages.ba=\u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u0438
+languages.zu=\u0437\u0443\u043b\u0443\u0441\u043a\u0438
+languages.pro=\u043f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u0441\u043a\u0438
+languages.hsb=\u0413\u043e\u0440\u043d\u043e\u0441\u0435\u0440\u0431\u0441\u043a\u0438
+languages.az=\u0430\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438
+languages.ay=\u0430\u0439\u043c\u0430\u0440\u0430
+languages.av=\u0430\u0432\u0430\u0440\u0441\u043a\u0438
+languages.as=\u0430\u0441\u0430\u043c\u0441\u043a\u0438
+languages.dsb=\u0414\u043e\u043b\u043d\u043e\u0441\u0435\u0440\u0431\u0441\u043a\u0438
+languages.ar=\u0430\u0440\u0430\u0431\u0441\u043a\u0438
+languages.ilo=\u0438\u043b\u043e\u043a\u043e
+languages.elx=\u0435\u043b\u0430\u043c\u0438\u0442\u0441\u043a\u0438
+languages.zh=\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438
+languages.an=\u0430\u0440\u0430\u0433\u043e\u043d\u0441\u043a\u0438
+languages.am=\u0430\u043c\u0445\u0430\u0440\u0441\u043a\u0438
+languages.ak=\u0430\u043a\u0430\u043d
+languages.en_US=\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438
+languages.af=\u0430\u0444\u0440\u0438\u043a\u0430\u0430\u043d\u0441
+languages.ae=\u0430\u0432\u0435\u0441\u0442\u0441\u043a\u0438
+languages.alt=\u044e\u0436\u043d\u043e\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0438
+languages.ab=\u0430\u0431\u0445\u0430\u0437\u0441\u043a\u0438
+languages.aa=\u0430\u0444\u0430\u0440
+languages.alg=\u0430\u043b\u0433\u043e\u043d\u043a\u0432\u0438\u043d
+languages.ale=\u0430\u043b\u0435\u0443\u0442\u0441\u043a\u0438
+languages.yi=\u0438\u0434\u0438\u0448
+languages.dra=\u0434\u0440\u0430\u0432\u0438\u0434\u0441\u043a\u0438 \u0435\u0437\u0438\u0446\u0438
+languages.ber=\u0431\u0435\u0440\u0431\u0435\u0440\u0441\u043a\u0438
+languages.bem=\u0431\u0435\u043c\u0431\u0430
+languages.bej=\u0431\u0435\u044f
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn.properties
index 9f0d5c3..41b3c9e 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn.properties
@@ -5,118 +5,1075 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+minusSign=-
+zeroDigit=\u09e6
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##,##0%
+currencyFormat=#,##,##0.00\u00a4;(#,##,##0.00\u00a4)
+currenciesDisplayName.YDD=\u0987\u09af\u09bc\u09c7\u09ae\u09c7\u09a8\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.KES=\u0995\u09c7\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09b6\u09bf\u09b2\u09bf\u0982
+currenciesDisplayName.TWD=\u09a8\u09c2\u09a4\u09a8 \u09a4\u09be\u0987\u0993\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09af\u09be\u09b0\u09be\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.LKR=\u09b6\u09cd\u09b0\u09c0\u09b2\u0999\u09cd\u0995\u09be\u09a8 \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.BYB=\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09a8\u09bf\u0989 \u09b0\u09c1\u09ac\u09c7\u09b2 (\u09e7\u09ef\u09ef\u09ea-\u09e7\u09ef\u09ef\u09ef)
+currenciesDisplayName.TJS=\u09a4\u09be\u099c\u09bf\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8 \u09b8\u09cb\u09ae\u09cb\u09a8\u09bf
+currenciesDisplayName.RWF=\u09b0\u09c1\u09af\u09bc\u09be\u09a8\u09cd\u09a1\u09be\u09a8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.TJR=\u09a4\u09be\u099c\u09bf\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8 \u09b0\u09c1\u09ac\u09b2
+currenciesDisplayName.SDP=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09b8\u09c1\u09a6\u09be\u09a8\u09bf \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.GRD=\u0997\u09cd\u09b0\u09c0\u0995 \u09a6\u09cd\u09b0\u09be\u099a\u09ae\u09be
+currenciesDisplayName.AFN=\u0986\u09ab\u0997\u09be\u09a8\u09bf
+currenciesDisplayName.IEP=\u0987\u09b0\u09bf\u09b6 \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.ARS=\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.SDG=\u09b8\u09c1\u09a6\u09be\u09a8\u09bf \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.ARP=\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be \u09aa\u09c7\u09b8\u09cb (\u09e7\u09ef\u09ee\u09e9-\u09e7\u09ef\u09ee\u09eb)
+currenciesDisplayName.SDD=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09b8\u09c1\u09a6\u09be\u09a8\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.GEL=\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be\u09a8 \u09b2\u09be\u09b0\u09bf
+currenciesDisplayName.GEK=\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09c1\u09aa\u09a8 \u09b2\u09be\u09b0\u09bf\u099f
+currenciesDisplayName.AFA=\u0986\u09ab\u0997\u09be\u09a8\u09bf (\u09e7\u09ef\u09e8\u09ed-\u09e8\u09e6\u09e6\u09e8)
+currenciesDisplayName.CRC=\u0995\u09cb\u09b8\u09cd\u099f\u09be \u09b0\u09bf\u0995\u09be \u0995\u09cb\u09b2\u09cb\u09a8
+currenciesDisplayName.FKP=\u09ab\u0995\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.EEK=\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09bf\u09af\u09bc\u09be \u0995\u09cd\u09b0\u09c1\u09a8\u09bf
+currenciesDisplayName.MDL=\u09ae\u09cb\u09b2\u09cd\u09a1\u09cb\u09ad\u09be\u09a8 \u09b2\u09c7\u09af\u09bc\u09c1
+currenciesDisplayName.HKD=\u09b9\u0982\u0995\u0982 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.IQD=\u0987\u09b0\u09be\u0995\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.ARA=\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be \u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09be\u09b2
+currenciesDisplayName.SCR=\u09b8\u09c7\u09af\u09bc\u099a\u09c7\u09b2\u09cd\u09b2\u09cb\u0987\u09b8 \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.KPW=\u09a8\u09be\u0987\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.DKK=\u09a1\u09cd\u09af\u09be\u09a8\u09bf\u09b6 \u0995\u09cd\u09b0\u09cc\u09a8
+currenciesDisplayName.IDR=\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be \u09b0\u09c1\u09aa\u09bf\u09af\u09bc\u09be\u09b9
+currenciesDisplayName.SOS=\u09b8\u09cb\u09ae\u09be\u09b2\u09bf \u09b6\u09bf\u09b2\u09bf\u0982
+currenciesDisplayName.LVR=\u09b2\u09cd\u09af\u09be\u099f\u09ad\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09c1\u09ac\u09b2
+currenciesDisplayName.EQE=\u0987\u0995\u09c1\u09af\u09bc\u09c7\u09b2\u09c7
+currenciesDisplayName.AED=\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0986\u09b0\u09ac \u0986\u09ae\u09bf\u09b0\u09be\u09a4 \u09a6\u09bf\u09b0\u09b9\u09be\u09ae
+currenciesDisplayName.LVL=\u09b2\u09cd\u09af\u09be\u099f\u09cd\u200c\u09b8
+currenciesDisplayName.BWP=\u09ac\u09a4\u09cd\u09b8\u0993\u09af\u09bc\u09be\u09a8\u09be \u09aa\u09c1\u09b2\u09be
+currenciesDisplayName.RUR=\u09b0\u09be\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09c1\u09ac\u09b2 (\u09e7\u09ef\u09ef\u09e7-\u09e7\u09ef\u09ef\u09ee)
+currenciesDisplayName.NIO=\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09be\u09a8 \u0995\u09b0\u09cd\u09a1\u09cb\u09ac\u09be \u0993\u09b0\u09cb
+currenciesDisplayName.MOP=\u09ae\u09cd\u09af\u09be\u0995\u09cd\u09af\u09be\u0993 \u09aa\u09be\u099f\u09be\u0995\u09be
+currenciesDisplayName.FJD=\u09ab\u09bf\u099c\u09bf \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.ADP=\u098f\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09cb\u09b0\u09be\u09a8 \u09aa\u09c7\u09b8\u09c7\u09a4\u09be
+currenciesDisplayName.RUB=\u09b0\u09be\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09c1\u09ac\u09c7\u09b2
+currenciesDisplayName.CDF=\u0995\u0999\u09cd\u0997\u09cb \u09ab\u09cd\u09b0\u09cd\u09af\u09be\u0999\u09cd\u0995 \u0995\u0999\u09cd\u0997\u09cb\u09b2\u09be\u0987\u09b8
+currenciesDisplayName.NIC=\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09be\u09a8 \u0995\u09b0\u09cd\u09a1\u09cb\u09ac\u09be
+currenciesDisplayName.DJF=\u099c\u09bf\u09ac\u09c1\u09a4\u09bf \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.UZS=\u0989\u099c\u09ac\u09c7\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8\u09bf \u09b8\u09cb\u09ae
+currenciesDisplayName.SBD=\u09b8\u09b2\u09cb\u09ae\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.ECV=\u0987\u0995\u09c1\u09af\u09bc\u09be\u09a1\u09cb\u09b0 \u0989\u09a8\u09bf\u09a6\u09be\u09a6\u09c7\u09b8 \u09a6\u09bf \u09ad\u09c7\u09b2\u09b0 \u0995\u09a8\u09b8\u09a4\u09be\u09a8\u09cd\u09a4\u09c7 (UVC)
+currenciesDisplayName.LUL=\u09b2\u09c1\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997 \u09ab\u09be\u0987\u09a8\u09c7\u09a8\u09b6\u09bf\u09af\u09bc\u09be\u09b2 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.ECS=\u0987\u0995\u09c1\u09af\u09bc\u09be\u09a1\u09cb\u09b0 \u09b8\u09c1\u0995\u09cd\u09b0\u09c7
+currenciesDisplayName.THB=\u09a5\u09be\u0987 \u09ac\u09be\u09a4
+currenciesDisplayName.PHP=\u09ab\u09bf\u09b2\u09bf\u09aa\u09be\u0987\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.LUF=\u09b2\u09c1\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.RHD=\u09b0\u09cb\u09a1\u09c7\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.LUC=\u09b2\u09c1\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997 \u09b0\u09c1\u09aa\u09be\u09a8\u09cd\u09a4\u09af\u09cb\u0997\u09cd\u09af \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.TTD=\u09a4\u09cd\u09b0\u09bf\u09a8\u09bf\u09a6\u09be\u09a6 \u098f\u09ac\u0982 \u099f\u09cb\u09ac\u09be\u0997\u09cb \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.SZL=\u09b8\u09cb\u09af\u09bc\u09be\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09b2\u09bf\u09b2\u09be\u0999\u09cd\u0997\u09c7\u09a8\u09bf
+currenciesDisplayName.MNT=\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u09a4\u09c1\u0997\u09b0\u09bf\u0995
+currenciesDisplayName.UAK=\u0987\u0989\u0995\u09cd\u09b0\u09c7\u0987\u09a8 \u0995\u09be\u09b0\u09cd\u09ac\u09cb\u09ad\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09b8
+currenciesDisplayName.SAR=\u09b8\u09cc\u09a6\u09bf \u09b0\u09bf\u09af\u09bc\u09cd\u09af\u09be\u09b2
+currenciesDisplayName.UAH=\u0987\u0989\u0995\u09cd\u09b0\u09c7\u0987\u09a8 \u09b9\u09c3\u09ad\u09a8\u09bf\u09af\u09bc\u09be
+currenciesDisplayName.HUF=\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09ab\u09cb\u09b0\u09bf\u09a8\u09cd\u099f
+currenciesDisplayName.QAR=\u0995\u09be\u09a4\u09be\u09b0 \u09b0\u09bf\u09af\u09bc\u09cd\u09af\u09be\u09b2
+currenciesDisplayName.COP=\u0995\u09b2\u09cb\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.LTT=\u09b2\u09bf\u09a5\u09c1\u0987\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u099f\u09be\u09b2\u09cb\u09a8\u09cd\u09af\u09be\u09b8
+currenciesDisplayName.PTE=\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09bf\u099c \u098f\u09b8\u0995\u09c1\u09a1\u09cb
+currenciesDisplayName.UYU=\u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7 \u09aa\u09c7\u09b8\u09cb \u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7\u0993
+currenciesDisplayName.AOR=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be\u09a8 \u0995\u0993\u09af\u09bc\u09be\u09a8\u099c\u09be (\u09e7\u09ef\u09ef\u09eb-\u09e7\u09ef\u09ef\u09ef)
+currenciesDisplayName.GBP=\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09aa\u09be\u0989\u09a8\u09cd\u09a1 \u09b8\u09cd\u099f\u09be\u09b0\u09cd\u09b2\u09bf\u0982
+currenciesDisplayName.ZRZ=\u099c\u09be\u0987\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u099c\u09be\u0987\u09b0\u09c7
+currenciesDisplayName.INR=\u09ad\u09be\u09b0\u09a4\u09c0\u09af\u09bc \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.BIF=\u09ac\u09c1\u09b0\u09c1\u09a8\u09cd\u09a1\u09bf \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.XFU=\u09ab\u09b0\u09be\u09b8\u09bf \u0987\u0989\u0986\u0987\u09b8\u09bf - \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.MZN=\u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995 \u09ae\u09c7\u099f\u09bf\u0995\u09c7\u09b2
+currenciesDisplayName.LTL=\u09b2\u09bf\u09a5\u09c1\u0987\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09b2\u09bf\u099f\u09be
+currenciesDisplayName.AON=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be\u09a8 \u09a8\u09a4\u09c1\u09a8 \u0995\u0993\u09af\u09bc\u09be\u09a8\u099c\u09be (\u09e7\u09ef\u09ef\u09eb-\u09e8\u09e6\u09e6\u09e6)
+currenciesDisplayName.UYP=\u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7 \u09aa\u09c7\u09b8\u09cb (\u09e7\u09ef\u09ed\u09eb-\u09e7\u09ef\u09ef\u09e9)
+currenciesDisplayName.MZM=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995 \u09ae\u09c7\u099f\u09bf\u0995\u09c7\u09b2
+currenciesDisplayName.KZT=\u0995\u09be\u099c\u09be\u0995\u09cd\u09b8\u099f\u09be\u09a8 \u099f\u09c7\u0999\u09cd\u0997\u09c7
+currenciesDisplayName.AOK=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be\u09a8 \u0995\u0993\u09af\u09bc\u09be\u09a8\u099c\u09be (\u09e7\u09ef\u09ed\u09ed-\u09e7\u09ef\u09ef\u09e6)
+currenciesDisplayName.GNS=\u0997\u09bf\u09a8\u09bf \u09b8\u09be\u0987\u09b2\u09bf
+currenciesDisplayName.BUK=\u09ac\u09b0\u09cd\u09ae\u09bf \u0995\u09bf\u09af\u09bc\u09be\u09ce
+currenciesDisplayName.XFO=\u09ab\u09b0\u09be\u09b8\u09bf \u0997\u09cb\u09b2\u09cd\u09a1 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.PGK=\u09aa\u09aa\u09c1\u09af\u09bc\u09be\u09a8\u09bf\u0989\u0997\u09bf\u09a8\u09bf \u0995\u09bf\u09a8\u09be
+currenciesDisplayName.SYP=\u09b8\u09bf\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.OMR=\u0993\u09ae\u09be\u09a8\u09bf \u09b0\u09bf\u09af\u09bc\u09be\u09b2
+currenciesDisplayName.MZE=\u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995 \u098f\u09b8\u0995\u09c1\u09a1\u09cb
+currenciesDisplayName.ZRN=\u099c\u09be\u0987\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09a8\u09bf\u0989 \u099c\u09be\u0987\u09b0\u09c7
+currenciesDisplayName.NGN=\u09a8\u09be\u0987\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09a8\u09be\u09af\u09bc\u09b0\u09be
+currenciesDisplayName.CNY=\u099a\u09c0\u09a8\u09be \u09af\u09bc\u09c1\u09af\u09bc\u09be\u09a8 \u09b0\u09c7\u09a8\u09cd\u09ae\u09bf\u09a8\u09cd\u200c\u09ac\u09bf
+currenciesDisplayName.AOA=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be\u09a8 \u0995\u0993\u09af\u09bc\u09be\u09a8\u099c\u09be
+currenciesDisplayName.MAF=\u09ae\u09cb\u09b0\u09cb\u0995\u09cd\u0995\u09be\u09a8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.RSD=\u09b8\u09be\u09b0\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.GNF=\u0997\u09bf\u09a8\u09bf \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.MAD=\u09ae\u09cb\u09b0\u09cb\u0995\u09cd\u0995\u09be\u09a8 \u09a6\u09bf\u09b0\u09b9\u09be\u09ae
+currenciesDisplayName.HTG=\u09b9\u09be\u0987\u09a4\u09bf \u0997\u09cc\u09b0\u09cd\u09a6\u09c7
+currenciesDisplayName.TRY=\u09a4\u09c1\u09b0\u09cd\u0995\u09bf \u09b2\u09bf\u09b0\u09be
+currenciesDisplayName.MMK=\u09ae\u09be\u09af\u09bc\u09be\u09a8\u09ae\u09be\u09b0 \u0995\u09bf\u09af\u09bc\u09be\u09a4
+currenciesDisplayName.MYR=\u09ae\u09be\u09b2\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09bf\u0999\u09cd\u0997\u09bf\u09ce
+currenciesDisplayName.LSM=\u09ae\u09be\u09b2\u09cb\u099f\u09bf
+currenciesDisplayName.XEU=\u0987\u0989\u09b0\u09cb\u09aa\u09c0\u09af\u09bc \u09ae\u09c1\u09a6\u09cd\u09b0\u09be \u098f\u0995\u0995
+currenciesDisplayName.LSL=\u09b2\u09c7\u09b8\u09c1\u099f\u09c1 \u09b2\u09cb\u099f\u09bf
+currenciesDisplayName.SLL=\u09b8\u09bf\u09af\u09bc\u09c7\u09b0\u09be\u09b2\u09bf\u09af\u09bc\u09a8 \u09b2\u09bf\u09af\u09bc\u09a8
+currenciesDisplayName.BHD=\u09ac\u09be\u09b9\u09b0\u09be\u0987\u09a8\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.BTN=\u09ad\u09c1\u099f\u09be\u09a8 \u098f\u09a8\u0997\u09c1\u09b2\u09cd\u099f\u09cd\u09b0\u09c1\u09ae
+currenciesDisplayName.TRL=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09a4\u09c1\u09b0\u09cd\u0995\u09bf \u09b2\u09bf\u09b0\u09be
+currenciesDisplayName.KMF=\u0995\u09ae\u09cd\u09ac\u09cb\u09b0\u09cb \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.CZK=\u099a\u09c7\u0995\u09cb\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995 \u0995\u09cb\u09b0\u09c1\u09a8\u09be
+currenciesDisplayName.ANG=\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u098f\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0997\u09c1\u09b2\u09cd\u09a1\u09c7\u09b0
+currenciesDisplayName.AZN=\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8 \u09ae\u09be\u09a8\u09be\u09a4
+currenciesDisplayName.AZM=\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8 \u09ae\u09be\u09a8\u09be\u09a4 (\u09e7\u09ef\u09ef\u09e9-\u09e8\u09e6\u09e6\u09ec)
+currenciesDisplayName.KYD=\u0995\u09c7\u09ae\u09cd\u09af\u09be\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c\u09c7\u09b0 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.GMD=\u0997\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be \u09a1\u09be\u09b2\u09be\u09b8\u09bf
+currenciesDisplayName.VEF=\u09ad\u09c7\u09a8\u09bf\u099c\u09c1\u09af\u09bc\u09c7\u09b2\u09c0\u09af\u09bc \u09ac\u09b2\u09bf\u09ad\u09be\u09b0 \u09b0\u09cd\u09ab\u09c1\u09a4\u09c7
+currenciesDisplayName.BGN=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09c0\u09af\u09bc \u09a8\u09bf\u0989 \u09b2\u09c7\u09ad
+currenciesDisplayName.CAD=\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.BGL=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09c0\u09af\u09bc \u09b9\u09be\u09b0\u09cd\u09a1 \u09b2\u09c7\u09ad
+currenciesDisplayName.VEB=\u09ad\u09c7\u09a8\u09bf\u099c\u09c1\u09af\u09bc\u09c7\u09b2\u09be\u09a8 \u09ac\u09b2\u09bf\u09ad\u09be\u09b0
+currenciesDisplayName.MLF=\u09ae\u09be\u09b2\u09bf \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.MXP=\u09ae\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09bf\u0995\u09be\u09a8 \u09b8\u09bf\u09b2\u09ad\u09be\u09b0 \u09aa\u09c7\u09b8\u09cb (\u09e7\u09ee\u09ec\u09e7-\u09e7\u09ef\u09ef\u09e8)
+currenciesDisplayName.ILS=\u0987\u09b8\u09cd\u09b0\u09be\u0987\u09b2\u09bf \u09a8\u09a4\u09c1\u09a8 \u09b6\u09c7\u0995\u09c7\u09b2
+currenciesDisplayName.PES=\u09aa\u09c7\u09b0\u09c1\u09ad\u09bf\u09af\u09bc\u09be\u09a8 \u09b8\u09cb\u09b2
+currenciesDisplayName.MXN=\u09ae\u09cd\u09af\u09be\u0995\u09cd\u09b8\u09bf\u0995\u09be\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.GYD=\u0997\u09bf\u09a8\u09bf \u09ac\u09bf\u09b8\u09be\u0989 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.ILP=\u0987\u09b8\u09cd\u09b0\u09be\u0987\u09b2\u09bf \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.CYP=\u09b8\u09be\u0987\u09aa\u09cd\u09b0\u09be\u09b8 \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.SKK=\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995 \u0995\u09cb\u09b0\u09c1\u09a8\u09be
+currenciesDisplayName.PEN=\u09aa\u09c7\u09b0\u09c1\u09ad\u09bf\u09af\u09bc\u09be\u09a8 \u09b8\u09cb\u09b2 \u09a8\u09c1\u09af\u09bc\u09c7\u09ad\u09cb
+currenciesDisplayName.LRD=\u09b2\u09be\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.PEI=\u09aa\u09c7\u09b0\u09c1\u09ad\u09bf\u09af\u09bc\u09be\u09a8 \u0987\u09a8\u09cd\u09a4\u09bf
+currenciesDisplayName.AMD=\u0986\u09b0\u09ae\u09c7\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09cd\u09b0\u09be\u09ae
+currenciesDisplayName.BSD=\u09ac\u09be\u09b9\u09be\u09ae\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.XPT=\u09aa\u09cd\u09b2\u09be\u099f\u09bf\u09a8\u09be\u09ae
+currenciesDisplayName.HRK=\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09c1\u09a8\u09be\u09b8
+currenciesDisplayName.HRD=\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.CLP=\u099a\u09bf\u09b2\u09bf \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.XPF=CFP \u09ab\u09cd\u09b0\u09cd\u09af\u09be\u0999\u09cd\u0995
+currenciesDisplayName.FRF=\u09ab\u09b0\u09be\u09b8\u09bf \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.XPD=\u09aa\u09cd\u09af\u09be\u09b2\u09c7\u09a1\u09bf\u09af\u09bc\u09be\u09ae
+currenciesDisplayName.BRR=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09b0\u09c1\u099c\u09c7\u09af\u09bc\u09b0\u09cb
+currenciesDisplayName.MKD=\u09ae\u09cd\u09af\u09be\u09b8\u09c7\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.CLF=\u099a\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0989\u09a8\u09bf\u09a6\u09be\u09a6\u09c7\u09b8 \u09a6\u09bf \u09ab\u09cb\u09ae\u09c7\u09a8\u09cd\u09a4\u09cb
+currenciesDisplayName.ALL=\u0986\u09b2\u09ac\u09c7\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09b2\u09c7\u0995
+currenciesDisplayName.BRN=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09b0\u09c1\u099c\u09c7\u0987\u09a1\u09cb \u09a8\u09cb\u09ad\u09cb
+currenciesDisplayName.MWK=\u09ae\u09be\u09b2\u09be\u0989\u0987\u09af\u09bc\u09be\u09a8 \u0995\u0993\u09af\u09bc\u09be\u099a
+currenciesDisplayName.BRL=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09bf\u09af\u09bc\u09c7\u09b2
+currenciesDisplayName.TPE=\u09a4\u09bf\u09ae\u09c1\u09b0 \u098f\u09b8\u0995\u09c1\u09a1\u09cb
+currenciesDisplayName.BRE=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09b0\u09c1\u099c\u09c7\u09af\u09bc\u09b0\u09cb (\u09e7\u09ef\u09ef\u09e6-\u09e7\u09ef\u09ef\u09e9)
+currenciesDisplayName.BRC=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09b0\u09c1\u099c\u09c7\u0987\u09a1\u09be\u0989
+currenciesDisplayName.BRB=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u09cd\u09b0\u09c1\u099c\u09c7\u09af\u09bc\u09b0\u09cb\u09a8\u09cb\u09ad\u09cb (\u09e7\u09ef\u09ec\u09ed-\u09e7\u09ef\u09ee\u09ec)
+currenciesDisplayName.DEM=\u09a1\u09af\u09bc\u099a\u09cd \u09ae\u09be\u09b0\u09cd\u0995
+currenciesDisplayName.KWD=\u0995\u09c1\u09af\u09bc\u09c7\u09a4\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.XCD=\u09aa\u09c2\u09b0\u09cd\u09ac \u0995\u09cd\u09af\u09be\u09b0\u09be\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.NPR=\u09a8\u09c7\u09aa\u09be\u09b2\u09bf \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.GWP=\u0997\u09bf\u09a8\u09bf \u09ac\u09bf\u09b8\u09be\u0989 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.YUN=\u09af\u09c1\u0997\u09cb\u09b6\u09cd\u09b2\u09be\u09ad\u09bf\u09af\u09bc \u09b0\u09c1\u09aa\u09be\u09a8\u09cd\u09a4\u09b0\u09af\u09cb\u0997\u09cd\u09af \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.SVC=\u098f\u09b2 \u09b8\u09cd\u09af\u09be\u09b2\u09ad\u09cb\u09a1\u09cb\u09b0 \u0995\u09cb\u09b2\u09cb\u09a8
+currenciesDisplayName.YUM=\u09af\u09c1\u0997\u09cb\u09b6\u09cd\u09b2\u09be\u09ad\u09bf\u09af\u09bc \u09a8\u09cb\u09ad\u09bf \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.BEL=\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09a8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995 (\u0986\u09b0\u09cd\u09a5\u09bf\u0995)
+currenciesDisplayName.SIT=\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u09a8\u09bf\u09af\u09bc\u09be \u099f\u09cb\u09b2\u09be\u09b0
+currenciesDisplayName.JPY=\u099c\u09be\u09aa\u09be\u09a8\u09bf\u099c \u0987\u09af\u09bc\u09c7\u09a8
+currenciesDisplayName.XOF=CFA \u09ab\u09cd\u09b0\u09cd\u09af\u09be\u0999\u09cd\u0995 BCEAO
+currenciesDisplayName.BEF=\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09a8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.GWE=\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09bf\u099c \u0997\u09bf\u09a8\u09bf \u098f\u09b8\u0995\u09c1\u09a1\u09cb
+currenciesDisplayName.TOP=\u099f\u09cb\u0999\u09cd\u0997\u09be \u09aa\u09be\u2019\u0986\u0999\u09cd\u0997\u09be
+currenciesDisplayName.YUD=\u09af\u09c1\u0997\u09cb\u09b6\u09cd\u09b2\u09be\u09ad\u09bf\u09af\u09bc \u09b9\u09be\u09b0\u09cd\u09a1 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.BEC=\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09a8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995 (\u09b0\u09c2\u09aa\u09be\u09a8\u09cd\u09a4\u09b0\u09af\u09cb\u0997\u09cd\u09af)
+currenciesDisplayName.SUR=\u09b8\u09cb\u09ad\u09bf\u09af\u09bc\u09c7\u09a4 \u09b0\u09c1\u09ac\u09b2
+currenciesDisplayName.RON=\u09b0\u09c1\u09ae\u09be\u09a8\u09bf\u09af\u09bc\u09be \u09b2\u09c7\u09af\u09bc\u09c1
+currenciesDisplayName.ROL=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09b0\u09c1\u09ae\u09be\u09a8\u09bf\u09af\u09bc\u09be \u09b2\u09c7\u09af\u09bc\u09c1
+currenciesDisplayName.BDT=\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6 \u099f\u09be\u0995\u09be
+currenciesDisplayName.DDM=\u09aa\u09c2\u09b0\u09cd\u09ac \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8 \u09ae\u09be\u09b0\u09cd\u0995
+currenciesDisplayName.AWG=\u0986\u09b0\u09c1\u09ac\u09be \u0997\u09bf\u09b2\u09cd\u09a1\u09be\u09b0
+currenciesDisplayName.XBB=\u0987\u0989\u09b0\u09cb\u09aa\u09c0\u09af\u09bc \u0986\u09b0\u09cd\u09a5\u09bf\u0995 \u098f\u0995\u0995
+currenciesDisplayName.NOK=\u09a8\u09b0\u0993\u09af\u09bc\u09c7 \u0995\u09cd\u09b0\u09cc\u09a8
+currenciesDisplayName.MUR=\u09ae\u09cc\u09b0\u09bf\u09a4\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.ZAR=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09a8 \u09b0\u09c7\u09a8\u09cd\u09a1
+currenciesDisplayName.SHP=\u09b8\u09c7\u09a8\u09cd\u099f \u09b9\u09c7\u09b2\u09c7\u09a8\u09be \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.XAU=\u0997\u09cb\u09b2\u09cd\u09a1
+currenciesDisplayName.ZAL=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09a8 \u09b0\u200c\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+currenciesDisplayName.VND=\u09ad\u09bf\u09af\u09bc\u09c7\u09a4\u09a8\u09be\u09ae\u09bf \u09a1\u0999\u09cd\u0997
+currenciesDisplayName.TZS=\u09a4\u09be\u099e\u09cd\u099c\u09a8\u09bf\u09af\u09bc\u09be \u09b6\u09bf\u09b2\u09bf\u0982
+currenciesDisplayName.GIP=\u099c\u09bf\u09ac\u09cd\u09b0\u09be\u09b2\u09cd\u099f\u09be\u09b0 \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.TND=\u09a4\u09bf\u0989\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.CVE=\u0995\u09c7\u09aa \u09ad\u09be\u09b0\u09cd\u09a6\u09c7 \u098f\u09b8\u0995\u09c1\u09a1\u09cb
+currenciesDisplayName.UGX=\u0989\u0997\u09be\u09a8\u09cd\u09a1\u09be\u09a8 \u09b6\u09bf\u09b2\u09bf\u0982
+currenciesDisplayName.XAG=\u09b8\u09bf\u09b2\u09ad\u09be\u09b0
+currenciesDisplayName.ZMK=\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u0995\u0993\u09af\u09bc\u09be\u099a\u09be
+currenciesDisplayName.JOD=\u099c\u09b0\u09cd\u09a1\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.XAF=CFA \u09ab\u09cd\u09b0\u09cd\u09af\u09be\u0999\u09cd\u0995 BEAC
+currenciesDisplayName.LBP=\u09b2\u09c7\u09ac\u09be\u09a8\u09bf\u099c \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.UGS=\u0989\u0997\u09be\u09a8\u09cd\u09a1\u09be\u09a8 \u09b6\u09bf\u09b2\u09bf\u0982 (\u09e7\u09ef\u09ec\u09ec-\u09e7\u09ef\u09ee\u09ed)
+currenciesDisplayName.STD=\u09b8\u09be\u0993 \u099f\u09cb\u09ae\u09c7 \u098f\u09ac\u0982 \u09aa\u09cd\u09b0\u09bf\u09a8\u09cd\u09b8\u09bf\u09aa\u09c7 \u09a1\u09cb\u09ac\u09b0\u09be
+currenciesDisplayName.WST=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be\u09a8 \u099f\u09be\u09b2\u09be
+currenciesDisplayName.KHR=\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09bf\u09af\u09bc\u09c7\u09b2
+currenciesDisplayName.DOP=\u09a1\u09cb\u09ae\u09bf\u09a8\u09bf\u0995\u09be\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.EUR=\u0987\u0989\u09b0\u09cb
+currenciesDisplayName.BOV=\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be\u09a8 Mvdol
+currenciesDisplayName.MTP=\u09ae\u09be\u09b2\u09cd\u099f\u09be \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.USS=\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09a1\u09b2\u09be\u09b0 (\u098f\u0995\u0987 \u09a6\u09bf\u09a8)
+currenciesDisplayName.BOP=\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.CUP=\u0995\u09bf\u0989\u09ac\u09be\u09a8 \u09aa\u09c7\u09b8\u09cb
+currenciesDisplayName.MTL=\u09ae\u09be\u09b2\u09cd\u099f\u09be \u09b2\u09bf\u09b0\u09be
+currenciesDisplayName.TMM=\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09bf\u09b8\u09cd\u099f\u09be\u09a8\u09bf \u09ae\u09be\u09a8\u09be\u09a4
+currenciesDisplayName.USN=\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09a1\u09b2\u09be\u09b0 (\u09aa\u09b0\u09ac\u09b0\u09cd\u09a4\u09c0 \u09a6\u09bf\u09a8)
+currenciesDisplayName.GHS=\u0998\u09be\u09a8\u09be \u09b8\u09c7\u09a1\u09bf
+currenciesDisplayName.SGD=\u09b8\u09bf\u0999\u09cd\u0997\u09be\u09aa\u09c1\u09b0 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.NZD=\u09a8\u09bf\u0989\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.USD=\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.BOB=\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be\u09a8\u09cb
+currenciesDisplayName.HNL=\u09b9\u09a8\u09cd\u09a1\u09c1\u09b0\u09be\u09b8 \u09b2\u09c7\u09ae\u09cd\u09aa\u09bf\u09b0\u09be
+currenciesDisplayName.CHW=\u09b8\u09c1\u0987\u099c\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.ITL=\u0987\u09a4\u09be\u09b2\u09c0\u09af\u09bc \u09b2\u09bf\u09b0\u09be
+currenciesDisplayName.PAB=\u09aa\u09be\u09a8\u09be\u09ae\u09be \u09ac\u09c7\u09b2\u09ac\u09cb\u09af\u09bc\u09be
+currenciesDisplayName.GTQ=\u0997\u09c1\u09af\u09bc\u09be\u09a4\u09c7\u09ae\u09be\u09b2\u09be \u0995\u09c1\u09af\u09bc\u09c7\u09ce\u099c\u09be\u09b2
+currenciesDisplayName.XXX=\u0985\u099c\u09be\u09a8\u09be \u09ac\u09be \u09ad\u09c1\u09b2 \u09ae\u09c1\u09a6\u09cd\u09b0\u09be
+currenciesDisplayName.AUD=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.GHC=\u0998\u09be\u09a8\u09be \u09b8\u09c7\u09a1\u09bf (\u09e7\u09ef\u09ed\u09ef-\u09e8\u09e6\u09e6\u09ed)
+currenciesDisplayName.LAK=\u09b2\u09c7\u0989\u09b6\u09be\u09a8 \u0995\u09bf\u09aa
+currenciesDisplayName.NAD=\u09a8\u09be\u09ae\u09bf\u09ac\u09bf\u09af\u09bc\u09be \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.KGS=\u0995\u09bf\u09b0\u0997\u09bf\u099c\u09b8\u09cd\u09a4\u09be\u09a8 \u09b8\u09cb\u09ae
+currenciesDisplayName.MGF=\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.BBD=\u09ac\u09be\u09b0\u09cd\u09ac\u09c7\u09a1\u09cb\u099c \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.CHF=\u09b8\u09c1\u0987\u09b8 \u09ab\u09cd\u09b0\u09be\u0999\u09cd\u0995
+currenciesDisplayName.CHE=\u09b8\u09c1\u0987\u099c\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u0987\u0989\u09b0\u09cb
+currenciesDisplayName.MGA=\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0 \u0986\u09b0\u09bf\u09af\u09bc\u09be\u09b0\u09bf
+currenciesDisplayName.PYG=\u09aa\u09cd\u09af\u09be\u09b0\u0997\u09c1\u09af\u09bc\u09be\u09a8
+currenciesDisplayName.PLZ=\u09aa\u09cb\u09b2\u09bf\u09b6 \u099c\u09cd\u09b2\u09cb\u099f\u09bf (\u09e7\u09ef\u09eb\u09e6-\u09e7\u09ef\u09ef\u09eb)
+currenciesDisplayName.YER=\u0987\u09af\u09bc\u09c7\u09ae\u09c7\u09a8\u09bf \u09b0\u09bf\u09af\u09bc\u09be\u09b2
+currenciesDisplayName.ATS=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09b6\u09bf\u09b2\u09bf\u0982
+currenciesDisplayName.BND=\u09ac\u09cd\u09b0\u09c1\u09a8\u09c7\u0987 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.EGP=\u09ae\u09bf\u09b6\u09b0\u09c0\u09af\u09bc \u09aa\u09be\u0989\u09a8\u09cd\u09a1
+currenciesDisplayName.JMD=\u099c\u09cd\u09af\u09be\u09ae\u09be\u0987\u0995\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.PLN=\u09aa\u09cb\u09b2\u09bf\u09b6 \u099c\u09cd\u09b2\u09cb\u099f\u09bf
+currenciesDisplayName.DZD=\u0986\u09b2\u099c\u09c7\u09b0\u09c0\u09af\u09bc \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.ISK=\u0986\u0987\u09b8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u0995\u09cd\u09b0\u09cc\u09a8
+currenciesDisplayName.SRG=\u09b8\u09c1\u09b0\u09bf\u09a8\u09be\u09ae \u0997\u09bf\u09b2\u09cd\u09a1\u09be\u09b0
+currenciesDisplayName.LYD=\u09b2\u09bf\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.SRD=\u09b8\u09c1\u09b0\u09bf\u09a8\u09be\u09ae \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.BAM=\u09ac\u09b8\u09a8\u09bf\u09af\u09bc\u09be \u098f\u09ac\u0982 \u09b9\u09be\u09b0\u09cd\u099c\u09c7\u0997\u09cb\u09ad\u09bf\u09a8\u09be \u09ae\u09be\u09b0\u09cd\u0995
+currenciesDisplayName.BZD=\u09ac\u09c7\u09b2\u09bf\u099c \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.ESP=\u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6 \u09aa\u09c7\u09b8\u09c7\u09a4\u09be
+currenciesDisplayName.KRW=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u0993\u09a8
+currenciesDisplayName.NLG=\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u0997\u09c1\u09b2\u09cd\u09a1\u09c7\u09b0
+currenciesDisplayName.MRO=\u09ae\u09cc\u09b0\u09bf\u09a4\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u0993\u0989\u0997\u09c1\u0987\u09af\u09bc\u09be
+currenciesDisplayName.BAD=\u09ac\u09b8\u09a8\u09bf\u09af\u09bc\u09be \u098f\u09ac\u0982 \u09b9\u09be\u09b0\u09cd\u099c\u09c7\u0997\u09cb\u09ad\u09bf\u09a8\u09be \u09a6\u09bf\u09a8\u09be\u09b0
+currenciesDisplayName.ZWD=\u099c\u09bf\u09ae\u09cd\u09ac\u09be\u09ac\u09c1\u09af\u09bc\u09c7 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.SEK=\u09b8\u09c1\u0987\u09a1\u09c7\u09b6 \u0995\u09cd\u09b0\u09cb\u09a8\u09be
+currenciesDisplayName.CSK=\u099a\u09c7\u0995\u09cb\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995 \u09b9\u09be\u09b0\u09cd\u09a1 \u0995\u09cb\u09b0\u09c1\u09a8\u09be
+currenciesDisplayName.BYR=\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09c1\u09ac\u09c7\u09b2
+currenciesDisplayName.ESB=\u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6 \u09aa\u09c7\u09b8\u09c7\u09a4\u09be (\u09b0\u09c2\u09aa\u09be\u09a8\u09cd\u09a4\u09b0\u09af\u09cb\u0997\u09cd\u09af \u09b9\u09bf\u09b8\u09be\u09ac)
+currenciesDisplayName.IRR=\u0987\u09b0\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09b0\u09bf\u09af\u09bc\u09be\u09b2
+currenciesDisplayName.ESA=\u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6 \u09aa\u09c7\u09b8\u09c7\u09a4\u09be (\u098f\u0995\u0987 \u09b9\u09bf\u09b8\u09be\u09ac)
+currenciesDisplayName.PKR=\u09aa\u09be\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8\u09bf \u09b0\u09c1\u09aa\u09bf
+currenciesDisplayName.BMD=\u09ac\u09be\u09b0\u09ae\u09bf\u0989\u09a1\u09be\u09a8 \u09a1\u09b2\u09be\u09b0
+currenciesDisplayName.CSD=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09b8\u09be\u09b0\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09a6\u09bf\u09a8\u09be\u09b0
currenciesSymbol.INR=\u099f\u09be\u0995\u09be
currenciesSymbol.BDT=\u09f3
-shortMonths=\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0®\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09c0®\u09ae\u09be\u09b0\u09cd\u099a®\u098f\u09aa\u09cd\u09b0\u09bf\u09b2®\u09ae\u09c7®\u099c\u09c1\u09a8®\u099c\u09c1\u09b2\u09be\u0987®\u0986\u0997\u09b8\u09cd\u099f®\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0®\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0®\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0®\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0®®
-months=\u099c\u09be\u09a8\u09c1\u09df\u09be\u09b0\u09c0®\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09df\u09be\u09b0\u09c0®\u09ae\u09be\u09b0\u09cd\u099a®\u098f\u09aa\u09cd\u09b0\u09bf\u09b2®\u09ae\u09c7®\u099c\u09c1\u09a8®\u099c\u09c1\u09b2\u09be\u0987®\u0986\u0997\u09b8\u09cd\u099f®\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0®\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0®\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0®\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0®®
-shortWeekdays=®\u09b0\u09ac\u09bf®\u09b8\u09cb\u09ae®\u09ae\u0999\u09cd\u0997\u09b2®\u09ac\u09c1\u09a7®\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf®\u09b6\u09c1\u0995\u09cd\u09b0®\u09b6\u09a8\u09bf®
-weekdays=®\u09b0\u09ac\u09bf\u09ac\u09be\u09b0®\u09b8\u09cb\u09ae\u09ac\u09be\u09b0®\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0®\u09ac\u09c1\u09a7\u09ac\u09be\u09b0®\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0®\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0®\u09b6\u09a8\u09bf\u09ac\u09be\u09b0®
-ampms=\u09aa\u09c2\u09b0\u09cd\u09ac\u09be\u09b9\u09cd\u09a3®\u0985\u09aa\u09b0\u09be\u09b9\u09cd\u09a3®
-territories.AU=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09df\u09be
-territories.AT=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09df\u09be
-territories.GY=\u0997\u09bf\u09df\u09be\u09a8\u09be
-territories.AR=\u0986\u09b0\u09cd\u099c\u09c7\u09a3\u09cd\u099f\u09be\u0987\u09a8\u09be
-territories.GT=\u0997\u09cb\u09df\u09be\u099f\u09bf\u09ae\u09be\u09b2\u09be
-territories.MY=\u09ae\u09be\u09b2\u09cd\u09af\u09be\u09b6\u09bf\u09df\u09be
-territories.MX=\u09ae\u0995\u09cd\u09b8\u09bf\u0995\u09cb
-territories.AM=\u0986\u09b0\u09cd\u09ae\u09c7\u09a8\u09bf\u09df\u09be
-territories.GR=\u0997\u09cd\u09b0\u09c0\u09b8\u09cd
-territories.ZA=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
-territories.AL=\u0986\u09b2\u09ac\u09cd\u09af\u09be\u09a8\u09bf\u09df\u09be
-territories.SY=\u09b8\u09bf\u09b0\u09bf\u09df\u09be
-territories.SV=\u09b8\u09be\u09b2\u09ad\u09c7\u09a1\u09b0
-territories.AF=\u0986\u09ab\u0997\u09be\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
-territories.MN=\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09df\u09be
-territories.GH=\u0997\u09be\u09a8\u09be
-territories.SO=\u09b8\u09cb\u09ae\u09be\u09b2\u09bf
-territories.GE=\u099c\u09b0\u09cd\u099c\u09bf\u09df\u09be
-territories.GB=\u0997\u09cd\u09b0\u09c7\u099f\u09ac\u09c3\u099f\u09c7\u09a8
-territories.MG=\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0
-territories.SK=\u09b6\u09cd\u09b2\u09cb\u09ad\u09be\u0995\u09bf\u09df\u09be
-territories.MD=\u09ae\u09cb\u09b2\u09cd\u09a6\u09be\u09ad\u09bf\u09df\u09be
+currenciesSymbol.XXX=XXX
+shortMonths=\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0\u00ae\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0\u00ae\u09ae\u09be\u09b0\u09cd\u099a\u00ae\u098f\u09aa\u09cd\u09b0\u09bf\u09b2\u00ae\u09ae\u09c7\u00ae\u099c\u09c1\u09a8\u00ae\u099c\u09c1\u09b2\u09be\u0987\u00ae\u0986\u0997\u09b8\u09cd\u099f\u00ae\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0\u00ae\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u00ae
+months=\u099c\u09be\u09a8\u09c1\u09af\u09bc\u09be\u09b0\u09c0\u00ae\u09ab\u09c7\u09ac\u09cd\u09b0\u09c1\u09af\u09bc\u09be\u09b0\u09c0\u00ae\u09ae\u09be\u09b0\u09cd\u099a\u00ae\u098f\u09aa\u09cd\u09b0\u09bf\u09b2\u00ae\u09ae\u09c7\u00ae\u099c\u09c1\u09a8\u00ae\u099c\u09c1\u09b2\u09be\u0987\u00ae\u0986\u0997\u09b8\u09cd\u099f\u00ae\u09b8\u09c7\u09aa\u09cd\u099f\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u0985\u0995\u09cd\u099f\u09cb\u09ac\u09b0\u00ae\u09a8\u09ad\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u09a1\u09bf\u09b8\u09c7\u09ae\u09cd\u09ac\u09b0\u00ae\u00ae
+shortWeekdays=\u00ae\u09b0\u09ac\u09bf\u00ae\u09b8\u09cb\u09ae\u00ae\u09ae\u0999\u09cd\u0997\u09b2\u00ae\u09ac\u09c1\u09a7\u00ae\u09ac\u09c3\u09b9\u09b8\u09cd\u09aa\u09a4\u09bf\u00ae\u09b6\u09c1\u0995\u09cd\u09b0\u00ae\u09b6\u09a8\u09bf\u00ae
+weekdays=\u00ae\u09b0\u09ac\u09bf\u09ac\u09be\u09b0\u00ae\u09b8\u09cb\u09ae\u09ac\u09be\u09b0\u00ae\u09ae\u0999\u09cd\u0997\u09b2\u09ac\u09be\u09b0\u00ae\u09ac\u09c1\u09a7\u09ac\u09be\u09b0\u00ae\u09ac\u09c3\u09b9\u09b7\u09cd\u09aa\u09a4\u09bf\u09ac\u09be\u09b0\u00ae\u09b6\u09c1\u0995\u09cd\u09b0\u09ac\u09be\u09b0\u00ae\u09b6\u09a8\u09bf\u09ac\u09be\u09b0\u00ae
+eras=\u0996\u09c3\u09b7\u09cd\u099f\u09aa\u09c2\u09b0\u09cd\u09ac\u00ae\u0996\u09c3\u09b7\u09cd\u099f\u09be\u09ac\u09cd\u09a6\u00ae
+ampms=\u09aa\u09c2\u09b0\u09cd\u09ac\u09be\u09b9\u09cd\u09a3\u00ae\u0985\u09aa\u09b0\u09be\u09b9\u09cd\u09a3\u00ae
+shortDateFormat=d/M/yy
+mediumDateFormat=d MMM, yyyy
+longDateFormat=d MMMM, yyyy
+fullDateFormat=EEEE, d MMMM, yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=Bangladesh\u00ae\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6 \u09b8\u09ae\u09af\u09bc\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u09aa\u09c2\u09b0\u09cd\u09ac-\u09a4\u09bf\u09ae\u09c1\u09b0
+territories.TK=\u099f\u09cb\u0995\u09c7\u09b2\u09be\u0989
+territories.TJ=\u09a4\u09be\u099c\u09bf\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+territories.TH=\u09a5\u09be\u0987\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.TG=\u099f\u09cb\u0997\u09cb
+territories.TF=\u09ab\u09b0\u09be\u09b8\u09c0 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2
+territories.GY=\u0997\u09be\u09af\u09bc\u09be\u09a8\u09be
+territories.TD=\u099a\u09be\u09a6
+territories.TC=\u09a4\u09c1\u09b0\u09cd\u0995\u09b8 \u0993 \u0995\u09be\u0987\u0995\u09cb\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.GW=\u0997\u09bf\u09a8\u09bf-\u09ac\u09bf\u09b8\u09be\u0989
+territories.GU=\u0997\u09c1\u09af\u09bc\u09be\u09ae
+territories.GT=\u0997\u09c1\u09af\u09bc\u09be\u09a4\u09c7\u09ae\u09be\u09b2\u09be
+territories.GS=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be \u0993 \u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u09b8\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u0989\u0987\u099a \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e
+territories.GR=\u0997\u09cd\u09b0\u09c0\u09b8
+territories.GQ=\u09a8\u09bf\u09b0\u0995\u09cd\u09b7\u09c0\u09af\u09bc \u0997\u09bf\u09a8\u09bf
+territories.GP=\u0997\u09c1\u09af\u09bc\u09be\u09a6\u09c7\u09b2\u09cc\u09aa
+territories.SZ=\u09b8\u09cb\u09af\u09bc\u09be\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.SY=\u09b8\u09bf\u09b0\u09bf\u09af\u09bc\u09be
+territories.GN=\u0997\u09bf\u09a8\u09bf
+territories.GM=\u0997\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be
+territories.GL=\u0997\u09cd\u09b0\u09c0\u09a8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.SV=\u098f\u09b2 \u09b8\u09be\u09b2\u09ad\u09c7\u09a6\u09b0
+territories.062=\u09a6\u0995\u09cd\u09b7\u09bf\u09a8 \u09ae\u09a7\u09cd\u09af \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.ST=\u09b8\u09be\u0993\u099f\u09cb\u09ae\u09be \u0993 \u09aa\u09cd\u09b0\u09bf\u09a8\u09cd\u09b8\u09bf\u09aa\u09be\u09b2
+territories.GI=\u099c\u09bf\u09ac\u09cd\u09b0\u09be\u09b2\u09cd\u099f\u09be\u09b0
+territories.061=\u09aa\u09b2\u09bf\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.GH=\u0998\u09be\u09a8\u09be
+territories.SR=\u09b8\u09c1\u09b0\u09bf\u09a8\u09be\u09ae
+territories.GG=\u0997\u09cd\u09b0\u09be\u099e\u09cd\u099c\u09bf
+territories.GF=\u09ab\u09b0\u09be\u09b8\u09c0 \u0997\u09be\u09af\u09bc\u09be\u09a8\u09be
+territories.GE=\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be
+territories.SO=\u09b8\u09cb\u09ae\u09be\u09b2\u09bf\u09af\u09bc\u09be
+territories.GD=\u0997\u09cd\u09b0\u09c7\u09a8\u09be\u09a1\u09be
+territories.SN=\u09b8\u09c7\u09a8\u09c7\u0997\u09be\u09b2
+territories.SM=\u09b8\u09be\u09a8 \u09ae\u09be\u09b0\u09bf\u09a8\u09cb
+territories.GB=\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u099c\u09cd\u09af
+territories.SL=\u09b8\u09bf\u09af\u09bc\u09c7\u09b0\u09be\u09b2\u09bf\u0993\u09a8
+territories.GA=\u0997\u09cd\u09af\u09be\u09ac\u09a8
+territories.SK=\u09b6\u09cd\u09b2\u09cb\u09ad\u09be\u0995\u09bf\u09af\u09bc\u09be
+territories.SJ=\u09b8\u09cd\u09ac\u09be\u09b2\u09ac\u09be\u09b0\u09cd\u09a1 \u0993 \u099c\u09be\u09a8 \u09ae\u09c7\u09af\u09bc\u09c7\u09a8
+territories.SI=\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.SH=\u09b8\u09c7\u09a8\u09cd\u099f \u09b9\u09c7\u09b2\u09c7\u09a8
territories.SG=\u09b8\u09bf\u0999\u09cd\u0997\u09be\u09aa\u09c1\u09b0
-territories.MA=\u09ae\u09cb\u09b0\u0995\u09cd\u0995\u09cb
territories.SE=\u09b8\u09c1\u0987\u09a1\u09c7\u09a8
territories.SD=\u09b8\u09c1\u09a6\u09be\u09a8
-territories.SA=\u09b8\u09be\u0989\u09a6\u09bf \u0986\u09b0\u09ac
-territories.YE=\u0987\u09ae\u09c7\u09a8
-territories.LY=\u09b2\u09bf\u09ac\u09bf\u09df\u09be
+territories.SC=\u09b8\u09bf\u09b8\u09bf\u09b2\u09bf
+territories.SB=\u09b8\u09b2\u09cb\u09ae\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.SA=\u09b8\u09cc\u09a6\u09bf \u0986\u09b0\u09ac
territories.FR=\u09ab\u09cd\u09b0\u09be\u09a8\u09cd\u09b8
-territories.LV=\u09b2\u09be\u09a4\u09cd\u09ad\u09bf\u09df\u09be
-territories.LU=\u09b2\u09be\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997
-territories.LT=\u09b2\u09bf\u09a4\u09cd\u09ad\u09be
-territories.LR=\u09b2\u09be\u0987\u09ac\u09bf\u09b0\u09bf\u09df\u09be
-territories.RU=\u09b0\u09be\u09b6\u09bf\u09df\u09be
-territories.FI=\u09ab\u09bf\u09a8\u09cd\u09b2\u09cd\u09af\u09be\u09a3\u09cd\u09a1
-territories.LK=\u09b6\u09cd\u09b0\u09c0\u09b2\u0999\u09cd\u0995\u09be
-territories.RO=\u09b0\u09c1\u09ae\u09be\u09a8\u09bf\u09df\u09be
-territories.LB=\u09b2\u09c7\u09ac\u09be\u09a8\u09a8
-territories.LA=\u09b2\u09be\u0993\u09b8
-territories.KZ=\u0995\u09be\u099c\u09be\u0995\u09b8\u09cd\u09a5\u09be\u09a8
-territories.ET=\u0987\u09ab\u09bf\u0993\u09aa\u09bf\u09df\u09be
+territories.FO=\u09ab\u09cd\u09af\u09be\u09b0\u0993 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.057=\u09ae\u09cd\u09af\u09be\u09b2\u09c7\u09a8\u09bf\u09b6\u09be \u0985\u099e\u09cd\u099a\u09b2
+territories.FM=\u09ae\u09be\u0987\u0995\u09cd\u09b0\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.RW=\u09b0\u09c1\u09af\u09bc\u09be\u09a8\u09cd\u09a1\u09be
+territories.054=\u09ae\u09cd\u09af\u09be\u09b2\u09c7\u09a8\u09bf\u09b6\u09be
+territories.FK=\u09ab\u0995\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.053=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be \u098f\u09ac\u0982 \u09a8\u09bf\u0989\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.RU=\u09b0\u09be\u09b6\u09bf\u09af\u09bc\u09be
+territories.FJ=\u09ab\u09bf\u099c\u09bf
+territories.FI=\u09ab\u09bf\u09a8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.RS=\u09b8\u09be\u09b0\u09ac\u09bf\u09af\u09bc\u09be
+territories.RO=\u09b0\u09cb\u09ae\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.RE=\u09b0\u09bf\u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8
+territories.ET=\u0987\u09a5\u09bf\u0993\u09aa\u09bf\u09af\u09bc\u09be
territories.ES=\u09b8\u09cd\u09aa\u09c7\u09a8
-territories.KR=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0995\u09cb\u09b0\u09bf\u09df\u09be
-territories.EH=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae\u09c0 \u09b8\u09be\u09b9\u09be\u09b0\u09be
+territories.ER=\u0987\u09b0\u09bf\u09a4\u09cd\u09b0\u09bf\u09af\u09bc\u09be
+territories.QU=\u0987\u0989\u09b0\u09cb\u09aa\u09c0\u09af\u09bc \u0987\u0989\u09a8\u09bf\u09af\u09bc\u09a8
+territories.EH=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u09b8\u09be\u09b9\u09be\u09b0\u09be
territories.EG=\u09ae\u09bf\u09b6\u09b0
-territories.EE=\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09bf\u09df\u09be
-territories.EC=\u0987\u0995\u09cb\u09df\u09be\u09a1\u09b0
-territories.KH=\u0995\u09be\u09ae\u09cd\u09ac\u09cb\u099c
-territories.KG=\u0995\u09bf\u09b0\u09cd\u0997\u09bf\u099c\u09bf\u09df\u09be
-territories.KE=\u0995\u09c7\u09a8\u09bf\u09df\u09be
-territories.DZ=\u098f\u09b2\u099c\u09bf\u09b0\u09bf\u09df\u09be
-territories.PY=\u09aa\u09cd\u09af\u09be\u09b0\u09be\u0997\u09cb\u09df\u09c7
-territories.DK=\u09a1\u09c7\u09a8\u09cd\u09ae\u09be\u09b0\u09cd\u0995
-territories.JP=\u099c\u09be\u09aa\u09be\u09a8
+territories.EE=\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09bf\u09af\u09bc\u09be
+territories.QO=\u0986\u0989\u099f\u09b2\u09be\u0987\u09a8\u09bf\u0982 \u0993\u09b8\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.EC=\u0987\u0995\u09c1\u09af\u09bc\u09c7\u09a1\u09b0
+territories.DZ=\u0986\u09b2\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be
+territories.QA=\u0995\u09be\u09a4\u09be\u09b0
+territories.039=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0987\u0989\u09b0\u09cb\u09aa
+territories.DO=\u09a1\u09cb\u09ae\u09c7\u09a8\u09bf\u0995\u09be\u09a8 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0
+territories.PY=\u09aa\u09cd\u09af\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09c7
+territories.DM=\u09a1\u09cb\u09ae\u09c7\u09a8\u09bf\u0995\u09be
+territories.035=\u09a6\u0995\u09cd\u09b7\u09bf\u09a8 \u09aa\u09c2\u09b0\u09cd\u09ac \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.PW=\u09aa\u09be\u09b2\u09be\u0989
+territories.034=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.DK=\u09a1\u09c7\u09a8\u09ae\u09be\u09b0\u09cd\u0995
+territories.DJ=\u099c\u09bf\u09ac\u09c1\u09a4\u09bf
territories.PT=\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09be\u09b2
-territories.JO=\u099c\u09b0\u09cd\u09a1\u09a8
-territories.JM=\u099c\u09cd\u09af\u09be\u09ae\u09c7\u0995\u09be
+territories.PS=\u09ab\u09bf\u09b2\u09bf\u09b8\u09cd\u09a4\u09bf\u09a8 \u0985\u099e\u09cd\u099a\u09b2
+territories.030=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.PR=\u09aa\u09c1\u09af\u09bc\u09c7\u09b0\u09cd\u099f\u09cb\u09b0\u09bf\u0995\u09cb
territories.DE=\u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
-territories.PL=\u09aa\u09cb\u09b2\u09cd\u09af\u09be\u09a3\u09cd\u09a1
+territories.PN=\u09aa\u09bf\u099f\u0995\u09c7\u09af\u09bc\u09be\u09b0\u09cd\u09a8
+territories.PM=\u09b8\u09c7\u09a8\u09cd\u099f \u09aa\u09bf\u09af\u09bc\u09c7\u09b0 \u0993 \u09ae\u09bf\u0995\u09c1\u09af\u09bc\u09c7\u09b2\u09a8
+territories.PL=\u09aa\u09cb\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
territories.PK=\u09aa\u09be\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
-territories.VN=\u09ad\u09bf\u09df\u09c7\u09a4\u09a8\u09be\u09ae
territories.PH=\u09ab\u09bf\u09b2\u09bf\u09aa\u09be\u0987\u09a8
-territories.PE=\u09aa\u09bf\u09b0\u09c1
-territories.CZ=\u099a\u09c7\u0995\u09bf\u09df\u09be
+territories.PG=\u09aa\u09be\u09aa\u09c1\u09af\u09bc\u09be \u09a8\u09bf\u0989 \u0997\u09bf\u09a8\u09bf
+territories.PF=\u09ab\u09b0\u09be\u09b8\u09c0 \u09aa\u09b2\u09bf\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.CZ=\u099a\u09c7\u0995 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0
+territories.PE=\u09aa\u09c7\u09b0\u09c1
+territories.CY=\u09b8\u09be\u0987\u09aa\u09cd\u09b0\u09be\u09b8
+territories.CX=\u0995\u09cd\u09b0\u09bf\u09b8\u09ae\u09be\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa
+territories.CV=\u0995\u09c7\u09aa\u09ad\u09be\u09b0\u09cd\u09a6\u09c7
territories.PA=\u09aa\u09be\u09a8\u09be\u09ae\u09be
-territories.VE=\u09ad\u09c7\u09a8\u09c7\u099c\u09c1\u09df\u09c7\u09b2\u09be
territories.CU=\u0995\u09bf\u0989\u09ac\u09be
territories.CR=\u0995\u09cb\u09b8\u09cd\u099f\u09be\u09b0\u09bf\u0995\u09be
-territories.CO=\u0995\u09cb\u09b2\u09cb\u09ae\u09cd\u09ac\u09bf\u09df\u09be
-territories.IT=\u0987\u09a4\u09be\u09b2\u09c0
+territories.029=\u0995\u09cd\u09af\u09be\u09b0\u09be\u09ac\u09bf\u09af\u09bc\u09be\u09a8
+territories.CO=\u0995\u09b2\u09cb\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be
territories.CN=\u099a\u09c0\u09a8
-territories.IS=\u0986\u0987\u09b8\u09b2\u09a3\u09cd\u09a1
-territories.IR=\u0987\u09b0\u09be\u09a8
+territories.CM=\u0995\u09cd\u09af\u09be\u09ae\u09c7\u09b0\u09c1\u09a8
territories.CL=\u099a\u09bf\u09b2\u09bf
-territories.IQ=\u0987\u09b0\u09be\u0995
-territories.UZ=\u0989\u099c\u09cd\u09ac\u09c7\u0995\u09bf\u09b8\u09cd\u09a5\u09be\u09a8
-territories.UY=\u0989\u09b0\u09c1\u0997\u09cb\u09df\u09c7
-territories.IN=\u09ad\u09be\u09b0\u09a4
-territories.CH=\u09b8\u09c1\u0987\u099c\u09b0\u09cd\u09b2\u09a3\u09cd\u09a1
-territories.CG=\u0995\u0999\u09cd\u0997\u09cb
-territories.IL=\u0987\u09b8\u09cd\u09b0\u09be\u09df\u09c7\u09b2
-territories.US=\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0
-territories.IE=\u0986\u09df\u09be\u09b0\u09cd\u09b2\u09a3\u09cd\u09a1
-territories.ID=\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09bf\u09df\u09be
-territories.BY=\u09ac\u09c7\u09b2\u09cb\u09b0\u09c1\u09b6\u09bf\u09df\u09be
+territories.CK=\u0995\u09c1\u0995 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.021=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be
+territories.CI=\u0986\u0987\u09ad\u09b0\u09bf \u0995\u09cb\u09b8\u09cd\u099f
+territories.CH=\u09b8\u09c1\u0987\u099c\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.CG=\u0995\u0999\u09cd\u0997\u09cb - \u09ac\u09cd\u09b0\u09cd\u09af\u09be\u099c\u09c7\u09ac\u09bf\u09b2
+territories.CF=\u09ae\u09a7\u09cd\u09af \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09a8 \u09aa\u09cd\u09b0\u099c\u09be\u09a4\u09a8\u09cd\u09a4\u09cd\u09b0
+territories.CD=\u0995\u0999\u09cd\u0997\u09cb - \u0995\u09bf\u09a8\u09b8\u09be\u09b8\u09be
+territories.CC=\u0995\u09cb\u0995\u09cb\u09b8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.OM=\u0993\u09ae\u09be\u09a8
+territories.CA=\u0995\u09be\u09a8\u09be\u09a1\u09be
+territories.419=\u09b2\u09cd\u09af\u09be\u099f\u09bf\u09a8 \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be \u098f\u09ac\u0982 \u0995\u09cd\u09af\u09be\u09b0\u09be\u09ac\u09bf\u09af\u09bc\u09be\u09a8
+territories.BZ=\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09ae
+territories.BY=\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b8
+territories.BW=\u09ac\u09a4\u09b8\u09cb\u09af\u09bc\u09be\u09a8\u09be
+territories.BV=\u09ac\u09cb\u09ad\u09c7\u099f \u09a6\u09cd\u09ac\u09c0\u09aa
territories.BT=\u09ad\u09c1\u099f\u09be\u09a8
+territories.BS=\u09ac\u09be\u09b9\u09be\u09ae\u09be \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
territories.BR=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2
-territories.UA=\u0987\u0989\u0995\u09cd\u09b0\u09c7\u0987\u09a8
-territories.NZ=\u09a8\u09bf\u0989 \u099c\u09bf\u09b2\u09a3\u09cd\u09a1
-territories.HU=\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09bf
-territories.BO=\u09ac\u09cb\u09b2\u09bf\u09ad\u09bf\u09df\u09be
-territories.HN=\u09b9\u09a3\u09cd\u09a1\u09c1\u09b0\u09be\u09b8
-territories.TW=\u09a4\u09be\u0987\u0993\u09df\u09be\u09a8
-territories.BG=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09df\u09be
+territories.019=\u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be
+territories.018=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.NZ=\u09a8\u09bf\u0989\u099c\u09bf\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.017=\u09ae\u09a7\u09cd\u09af \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.BO=\u09ac\u09b2\u09bf\u09ad\u09bf\u09af\u09bc\u09be
+territories.BN=\u09ac\u09cd\u09b0\u09c1\u09a8\u09c7\u0987
+territories.015=\u0989\u09a4\u09cd\u09a4\u09b0 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.BM=\u09ac\u09be\u09b0\u09ae\u09c1\u09a1\u09be
+territories.014=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.BL=\u09b8\u09c7\u09a8\u09cd\u099f
+territories.013=\u09ae\u09a7\u09cd\u09af \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be
+territories.NU=\u09a8\u09bf\u0989\u09af\u09bc\u09c7
+territories.BJ=\u09ac\u09c7\u09a8\u09bf\u09a8
+territories.011=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.BI=\u09ac\u09c1\u09b0\u09c1\u09a8\u09cd\u09a1\u09bf
+territories.172=\u09b8\u09cd\u09ac\u09be\u09a7\u09c0\u09a8 \u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0\u09c7\u09b0 \u0995\u09ae\u09a8\u0993\u09af\u09bc\u09c7\u09b2\u09a5
+territories.BH=\u09ac\u09be\u09b9\u09b0\u09be\u0987\u09a8
+territories.NR=\u09a8\u09be\u0989\u09b0\u09c1
+territories.BG=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09af\u09bc\u09be
+territories.BF=\u09ac\u09c1\u09b0\u0995\u09bf\u09a8\u09be \u09ab\u09be\u09b8\u09cb
territories.NP=\u09a8\u09c7\u09aa\u09be\u09b2
-territories.NO=\u09a8\u09b0\u0993\u09df\u09c7
-territories.BE=\u09ac\u09c7\u09b2\u09cd\u099c\u09bf\u09df\u09ae
+territories.BE=\u09ac\u09c7\u09b2\u099c\u09bf\u09af\u09bc\u09be\u09ae
+territories.ZZ=\u0985\u099c\u09be\u09a8\u09be \u0985\u09a5\u09ac\u09be \u09ad\u09c1\u09b2 \u09b8\u09cd\u09a5\u09be\u09a8
+territories.NO=\u09a8\u09b0\u0993\u09af\u09bc\u09c7
territories.BD=\u09ac\u09be\u0982\u09b2\u09be\u09a6\u09c7\u09b6
-territories.TR=\u09a4\u09c1\u09b0\u09b8\u09cd\u0995
-territories.NL=\u09b9\u09b2\u09a3\u09cd\u09a1
-territories.TN=\u099f\u09bf\u0989\u09a8\u09bf\u09b8\u09cd
-territories.NI=\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09cb\u09df\u09be
-territories.TM=\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09bf\u09df\u09be
-territories.TJ=\u09a4\u09be\u099c\u09bf\u0995\u09b8\u09cd\u09a5\u09be\u09a8
+territories.BB=\u09ac\u09be\u09b0\u09ac\u09be\u09a6\u09cb\u09b8
+territories.ZW=\u099c\u09bf\u09ae\u09cd\u09ac\u09be\u09ac\u09c1\u09af\u09bc\u09c7
+territories.NL=\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.BA=\u09ac\u09b8\u09a8\u09bf\u09af\u09bc\u09be \u0993 \u09b9\u09be\u09b0\u09cd\u099c\u09c7\u0997\u09cb\u09ad\u09bf\u09a8\u09be
+territories.NI=\u09a8\u09bf\u0995\u09be\u09b0\u09be\u0997\u09c1\u09af\u09bc\u09be
+territories.NG=\u09a8\u09be\u0987\u099c\u09c7\u09b0\u09bf\u09af\u09bc\u09be
+territories.NF=\u09a8\u09bf\u09b0\u09ab\u09cb\u0995 \u09a6\u09cd\u09ac\u09c0\u09aa
territories.AZ=\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8
-territories.TH=\u09a5\u09be\u0987
+territories.NE=\u09a8\u09be\u0987\u099c\u09be\u09b0
+territories.AX=\u0986\u09b2\u09be\u09a8\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.NC=\u09a8\u09bf\u0989 \u0995\u09cd\u09af\u09be\u09b2\u09c7\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be
+territories.AW=\u0986\u09b0\u09c1\u09ac\u09be
+territories.ZM=\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u09af\u09bc\u09be
+territories.NA=\u09a8\u09be\u09ae\u09bf\u09ac\u09bf\u09af\u09bc\u09be
+territories.AU=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be
+territories.AT=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be
+territories.AS=\u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09a8 \u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be
+territories.AR=\u0986\u09b0\u09cd\u099c\u09c7\u09a8\u09cd\u099f\u09bf\u09a8\u09be
+territories.AQ=\u098f\u09a8\u09cd\u099f\u09be\u09b0\u09cd\u0995\u099f\u09bf\u0995\u09be
+territories.009=\u0993\u09b8\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.MZ=\u09ae\u09cb\u099c\u09be\u09ae\u09cd\u09ac\u09bf\u0995
+territories.AO=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09cb\u09b2\u09be
+territories.MY=\u09ae\u09be\u09b2\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.AN=\u09a8\u09c7\u09a6\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09b8 \u098f\u09cd\u09af\u09be\u09a8\u09cd\u099f\u09bf\u09b2\u09bf\u09b8
+territories.MX=\u09ae\u09c7\u0995\u09cd\u09b8\u09bf\u0995\u09cb
+territories.AM=\u0986\u09b0\u09cd\u09ae\u09c7\u09a8\u09bf\u09af\u09bc\u09be
+territories.005=\u09a6\u0995\u09cd\u09b7\u09bf\u09a8 \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be
+territories.MW=\u09ae\u09be\u09b2\u09be\u0989\u0987
+territories.AL=\u0986\u09b2\u09ac\u09c7\u09a8\u09bf\u09af\u09bc\u09be
+territories.MV=\u09ae\u09be\u09b2\u09a6\u09cd\u09ac\u09c0\u09aa
+territories.003=\u0989\u09a4\u09cd\u09a4\u09b0 \u0986\u09ae\u09c7\u09b0\u09bf\u0995
+territories.ZA=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.MU=\u09ae\u09b0\u09bf\u09b6\u09be\u09b8
+territories.002=\u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be
+territories.MT=\u09ae\u09be\u09b2\u09cd\u099f\u09be
+territories.AI=\u098f\u09cd\u09af\u09be\u0999\u09cd\u0997\u09c1\u0987\u09b2\u09be
+territories.001=\u09aa\u09c3\u09a5\u09bf\u09ac\u09c0
+territories.MS=\u09ae\u09a8\u09cd\u099f\u09b8\u09c7\u09b0\u09be\u099f
+territories.MR=\u09ae\u09b0\u09bf\u09a4\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.AG=\u098f\u09a8\u09cd\u099f\u09bf\u0997\u09c1\u09af\u09bc\u09be \u0993 \u09ac\u09be\u09b0\u09ac\u09c1\u09a1\u09be
+territories.MQ=\u09ae\u09be\u09b0\u09cd\u099f\u09bf\u09a8\u09bf\u0995
+territories.AF=\u0986\u09ab\u0997\u09be\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+territories.MP=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09ae\u09be\u09b0\u09bf\u09af\u09bc\u09be\u09a8\u09be \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.AE=\u09b8\u0982\u09af\u09c1\u0995\u09cd\u09a4 \u0986\u09b0\u09ac \u0986\u09ae\u09bf\u09b0\u09be\u09a4
+territories.MO=\u09ae\u09cd\u09af\u09be\u0995\u09be\u0993
+territories.AD=\u098f\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09cb\u09b0\u09be
+territories.MN=\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09af\u09bc\u09be
+territories.MM=\u09ae\u09be\u09af\u09bc\u09be\u09a8\u09ae\u09be\u09b0
+territories.ML=\u09ae\u09be\u09b2\u09bf
+territories.MK=\u09ae\u09cd\u09af\u09be\u09b8\u09be\u09a1\u09cb\u09a8\u09bf\u09af\u09bc\u09be
+territories.YT=\u09ae\u09be\u09af\u09bc\u09cb\u09a4\u09cd\u09a4\u09c7
+territories.MH=\u09ae\u09be\u09b0\u09cd\u09b6\u09be\u09b2 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.MG=\u09ae\u09be\u09a6\u09be\u0997\u09be\u09b8\u09cd\u0995\u09be\u09b0
+territories.MF=\u09b8\u09c7\u09a8\u09cd\u099f \u09ae\u09be\u09b0\u09cd\u099f\u09bf\u09a8
+territories.ME=\u09ae\u09a8\u09cd\u099f\u09bf\u09a8\u09bf\u0997\u09cd\u09b0\u09cb
+territories.MD=\u09ae\u09b2\u09a1\u09cb\u09ad\u09be
+territories.MC=\u09ae\u09cb\u09a8\u09be\u0995\u09cb
+territories.MA=\u09ae\u09b0\u0995\u09cd\u0995\u09cb
+territories.YE=\u0987\u09af\u09bc\u09c7\u09ae\u09c7\u09a8
+territories.LY=\u09b2\u09bf\u09ac\u09bf\u09af\u09bc\u09be
+territories.LV=\u09b2\u09be\u099f\u09ad\u09bf\u09af\u09bc\u09be
+territories.155=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0987\u0989\u09b0\u09cb\u09aa
+territories.LU=\u09b2\u09c1\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997
+territories.154=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u0987\u0989\u09b0\u09cb\u09aa
+territories.LT=\u09b2\u09bf\u09a5\u09c1\u09af\u09bc\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.LS=\u09b2\u09c7\u09b8\u09cb\u09a5\u09cb
+territories.LR=\u09b2\u09be\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be
+territories.151=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u0987\u0989\u09b0\u09cb\u09aa
+territories.150=\u0987\u0989\u09b0\u09cb\u09aa
+territories.LK=\u09b6\u09cd\u09b0\u09c0\u09b2\u0999\u09cd\u0995\u09be
+territories.LI=\u09b2\u09bf\u099a\u09c7\u09a8\u09b8\u09cd\u099f\u09c7\u0987\u09a8
+territories.LC=\u09b8\u09c7\u09a8\u09cd\u099f \u09b2\u09c1\u09b8\u09bf\u09af\u09bc\u09be
+territories.LB=\u09b2\u09c7\u09ac\u09be\u09a8\u09a8
+territories.LA=\u09b2\u09be\u0993\u09b8
+territories.KZ=\u0995\u09be\u099c\u09be\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+territories.KY=\u0995\u09c7\u09ae\u09cd\u09af\u09be\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.KW=\u0995\u09c1\u09af\u09bc\u09c7\u09a4
+territories.145=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.143=\u09ae\u09a7\u09cd\u09af \u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.142=\u098f\u09b6\u09bf\u09af\u09bc\u09be
+territories.KR=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be
+territories.KP=\u0989\u09a4\u09cd\u09a4\u09b0 \u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be
+territories.KN=\u09b8\u09c7\u09a8\u09cd\u099f \u0995\u09bf\u099f\u09b8 \u0993 \u09a8\u09c7\u09ad\u09bf\u09b8
+territories.KM=\u0995\u09ae\u09cb\u09b0\u09cb\u09b8
+territories.KI=\u0995\u09bf\u09b0\u09bf\u09ac\u09be\u09a4\u09bf
+territories.WS=\u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be
+territories.KH=\u0995\u09ae\u09cd\u09ac\u09cb\u09a1\u09bf\u09af\u09bc\u09be
+territories.KG=\u0995\u09bf\u09b0\u0997\u09bf\u099c\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+territories.KE=\u0995\u09c7\u09a8\u09bf\u09af\u09bc\u09be
+territories.WF=\u0993\u09af\u09bc\u09be\u09b2\u09bf\u09b8 \u0993 \u09ab\u09c1\u099f\u09c1\u09a8\u09be
+territories.JP=\u099c\u09be\u09aa\u09be\u09a8
+territories.JO=\u099c\u09b0\u09cd\u09a1\u09be\u09a8
+territories.JM=\u099c\u09cd\u09af\u09be\u09ae\u09be\u0987\u0995\u09be
+territories.VU=\u09ad\u09be\u09a8\u09c1\u09af\u09bc\u09be\u099f\u09c1
+territories.JE=\u099c\u09be\u09b0\u09cd\u09b8\u09bf
+territories.VN=\u09ad\u09bf\u09af\u09bc\u09c7\u09a4\u09a8\u09be\u09ae
+territories.VI=\u09ae\u09be\u09b0\u09cd\u0995\u09bf\u09a8 \u09ad\u09be\u09b0\u09cd\u099c\u09bf\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.VG=\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09ad\u09be\u09b0\u09cd\u099c\u09bf\u09a8 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.VE=\u09ad\u09c7\u09a8\u09bf\u099c\u09c1\u09af\u09bc\u09c7\u09b2\u09be
+territories.VC=\u09b8\u09c7\u09a8\u09cd\u099f \u09ad\u09bf\u09a8\u09b8\u09c7\u09a8\u09cd\u099f \u0993 \u09a6\u09cd\u09af\u09be \u0997\u09cd\u09b0\u09c7\u09a8\u09be\u09a1\u09bf\u09a8\u09b8
+territories.VA=\u09ad\u09cd\u09af\u09be\u099f\u09bf\u0995\u09be\u09a8 \u09b8\u09bf\u099f\u09bf
+territories.IT=\u0987\u09a4\u09be\u09b2\u09bf
+territories.IS=\u0986\u0987\u09b8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.IR=\u0987\u09b0\u09be\u09a8
+territories.IQ=\u0987\u09b0\u09be\u0995
+territories.UZ=\u0989\u099c\u09ac\u09c7\u0995\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+territories.IO=\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u09ad\u09be\u09b0\u09a4 \u09ae\u09b9\u09be\u09b8\u09be\u0997\u09b0\u09c0\u09af\u09bc \u0985\u099e\u09cd\u099a\u09b2
+territories.UY=\u0989\u09b0\u09c1\u0997\u09c1\u09af\u09bc\u09c7
+territories.IN=\u09ad\u09be\u09b0\u09a4
+territories.IM=\u09ae\u09cd\u09af\u09be\u09a8\u09a6\u09cd\u09ac\u09c0\u09aa
+territories.IL=\u0987\u09b8\u09b0\u09be\u0987\u09b2
+territories.US=\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0
+territories.IE=\u0986\u09af\u09bc\u09be\u09b0\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1
+territories.ID=\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.UM=\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0\u09c7\u09b0 \u0995\u09cd\u09b7\u09c1\u09a6\u09cd\u09b0 \u0993 \u09aa\u09be\u09b0\u09cd\u09b6\u09cd\u09ac\u09ac\u09b0\u09cd\u09a4\u09c0 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.UG=\u0989\u0997\u09be\u09a8\u09cd\u09a1\u09be
+territories.UA=\u0987\u0989\u0995\u09cd\u09b0\u09c7\u09a8
+territories.HU=\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09bf
+territories.HT=\u09b9\u09be\u0987\u09a4\u09bf
+territories.HR=\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc\u09be
+territories.TZ=\u09a4\u09be\u099e\u09cd\u099c\u09be\u09a8\u09bf\u09af\u09bc\u09be
+territories.HN=\u09b9\u09a3\u09cd\u09a1\u09b0\u09be\u09b8
+territories.HM=\u09b9\u09be\u09b0\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa \u098f\u09ac\u0982 \u09ae\u09cd\u09af\u09be\u0995\u09a1\u09cb\u09a8\u09be\u09b2\u09cd\u09a1 \u09a6\u09cd\u09ac\u09c0\u09aa\u09aa\u09c1\u099e\u09cd\u099c
+territories.TW=\u09a4\u09be\u0987\u0993\u09af\u09bc\u09be\u09a8
+territories.TV=\u099f\u09c1\u09ad\u09be\u09b2\u09c1
+territories.HK=\u09b9\u0982\u0995\u0982
+territories.TT=\u09a4\u09cd\u09b0\u09bf\u09a8\u09bf\u09a8\u09be\u09a6 \u0993 \u099f\u09cb\u09ac\u09cd\u09af\u09be\u0997\u09cb
+territories.TR=\u09a4\u09c1\u09b0\u09b8\u09cd\u0995
+territories.TO=\u099f\u09cb\u0999\u09cd\u0997\u09be
+territories.TN=\u09a4\u09bf\u0989\u09a8\u09bf\u09b6\u09bf\u09af\u09bc\u09be
+territories.TM=\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09bf\u09b8\u09cd\u09a4\u09be\u09a8
+languages.gwi=\u0997\u0993\u0987\u099a\u09cd\u2019\u0987\u09a8
+languages.akk=\u0986\u0995\u09cd\u0995\u09be\u09a6\u09bf\u09af\u09bc\u09be\u09a8
+languages.eka=\u0987\u0995\u09be\u099c\u09c1\u0995
+languages.ijo=\u0987\u099c\u09cb
+languages.xh=\u099c\u09cb\u09b8\u09be
+languages.sux=\u09b8\u09c1\u09ae\u09c7\u09b0\u09c0\u09af\u09bc
+languages.sus=\u09b8\u09c1\u09b8\u09c1
+languages.mis=\u09ac\u09bf\u09ac\u09bf\u09a7 \u09ad\u09be\u09b7\u09be
+languages.loz=\u09b2\u09cb\u099c\u09bf
+languages.tog=\u09a8\u09be\u09af\u09bc\u09be\u09b8\u09be \u099f\u09cb\u0999\u09cd\u0997\u09be
+languages.zbl=\u099a\u09bf\u09a4\u09cd\u09b0 \u09ad\u09be\u09b7\u09be
+languages.pon=\u09aa\u09cb\u09b9\u09cd\u09a8\u09aa\u09c7\u0987\u09af\u09bc\u09be\u09a8
+languages.min=\u09ae\u09bf\u09a8\u09be\u0999\u09cd\u0997\u09cd\u200c\u0995\u09be\u09ac\u09be\u0989
+languages.suk=\u09b8\u09c1\u0995\u09c1\u09ae\u09be
+languages.wo=\u0989\u0993\u09b2\u09cb\u09ab
+languages.lol=\u09ae\u09cb\u0999\u09cd\u0997\u09cb
+languages.kut=\u0995\u09c1\u099f\u09c7\u09a8\u09be\u0987
+languages.mic=\u09ae\u09bf\u0995\u09ae\u09cd\u09af\u09be\u0995
+languages.wa=\u0993\u09af\u09bc\u09be\u09b2\u09c1\u09a8
+languages.kum=\u0995\u09c1\u09ae\u09bf\u0995
+languages.zap=\u099c\u09be\u09aa\u09cb\u099f\u09c7\u0995
+languages.ain=\u0986\u0987\u09a8\u09c1
+languages.cus=\u0995\u09c1\u09b6\u09bf\u09a4\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.jbo=\u09b2\u09cb\u099c\u09ac\u09be\u09a8
+languages.doi=\u09a6\u09cb\u0997\u09b0\u09bf
+languages.zza=\u099c\u09be\u099c\u09be
+languages.vo=\u09ad\u09cb\u09b2\u09be\u09aa\u09c1\u0995
+languages.oto=\u0985\u099f\u09cb\u09ae\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.vi=\u09ad\u09bf\u09af\u09bc\u09c7\u09a4\u09a8\u09be\u09ae\u09c0
+languages.vai=\u09ad\u09be\u0987
+languages.rar=\u09b0\u09be\u09b0\u09cb\u099f\u09cb\u0997\u09cd\u09af\u09be\u09a8
+languages.ve=\u09ad\u09c7\u09a8\u09cd\u09a1\u09be
+languages.rap=\u09b0\u09be\u09aa\u09be\u09a8\u09c1\u0987
+languages.raj=\u09b0\u09be\u099c\u09b8\u09cd\u09a5\u09be\u09a8\u09c0
+languages.ota=\u0985\u099f\u09cb\u09ae\u09be\u09a8 \u09a4\u09c1\u09b0\u09cd\u0995\u09bf
+languages.nzi=\u098f\u09a8\u09cd.\u099c\u09bf\u09ae\u09be
+languages.nap=\u09a8\u09c7\u09af\u09bc\u09be\u09aa\u09cb\u09b2\u09bf\u099f\u09be\u09a8
+languages.uz=\u0989\u099c\u09ac\u09c7\u0995\u09c0\u09af\u09bc
+languages.uga=\u0989\u0997\u09be\u09b0\u09bf\u099f\u09bf\u0995
+languages.tmh=\u09a4\u09be\u09ae\u09be\u09b6\u09c7\u0995
+languages.nai=\u0989\u09a4\u09cd\u09a4\u09f1 \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09b0 \u0987\u09a8\u09cd\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.nah=\u09a8\u09be\u09b9\u09c1\u09ce\u09b2
+languages.ur=\u0989\u09b0\u09cd\u09a6\u09c1
+languages.fat=\u09ab\u09be\u09a8\u09cd\u09a4\u09bf
+languages.uk=\u0987\u0989\u0995\u09cd\u09b0\u09c7\u09a8\u09c0\u09af\u09bc
+languages.egy=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09ae\u09bf\u09b6\u09b0\u09c0\u09af\u09bc
+languages.zxx=\u09ad\u09be\u09b7\u09be\u09a4\u09be\u09a4\u09cd\u09a4\u09bf\u0995 \u09ac\u09bf\u09b7\u09af\u09bc\u09b8\u09c2\u099a\u09c0 \u09ac\u09b9\u09bf\u09b0\u09cd\u09ad\u09c1\u09a4
+languages.ug=\u0989\u0987\u0998\u09c1\u09b0
+languages.fan=\u09ab\u09cd\u09af\u09be\u0999\u09cd\u0997
+languages.ssa=\u09a8\u09bf\u09b2\u09cb-\u09b8\u09be\u09b9\u09be\u09b0\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.mga=\u09ae\u09a7\u09cd\u09af \u0986\u0987\u09b0\u09bf\u09b6
+languages.bat=\u09ac\u09be\u09b2\u09cd\u099f\u09bf\u0995
+languages.nyo=\u09a8\u09be\u09af\u09bc\u09cb\u09b0\u09cb
+languages.bas=\u09ac\u09be\u09b8\u09be
+languages.nyn=\u09a8\u09be\u09af\u09bc\u09be\u0999\u09cd\u0995\u09cb\u09b2\u09c7
+languages.nym=\u09a8\u09be\u09af\u09bc\u09be\u09ae\u0993\u09af\u09bc\u09c7\u099c\u09bf
+languages.gsw=\u09b8\u09c1\u0987\u09b8 \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.hmn=\u09b9\u09cd\u200c\u09ae\u09cb\u0999
+languages.ban=\u09ac\u09be\u09b2\u09bf\u09a8\u09c0\u09af\u09bc
+languages.osa=\u0993\u09b8\u09cd\u09af\u09be\u0997\u09c7
+languages.bal=\u09ac\u09c7\u09b2\u09c1\u099a\u09c0\u09af\u09bc
+languages.ty=\u09a4\u09be\u09b9\u09bf\u09a4\u09bf\u09af\u09bc\u09be\u09a8
+languages.bai=\u09ac\u09be\u09ae\u09bf\u09b2\u09c7\u0995\u09c7
+languages.tw=\u099f\u09cb\u09af\u09bc\u09be\u0987
+languages.srr=\u09b8\u09c7\u09b0\u09c7
+languages.tli=\u09a4\u09cd\u09b2\u09bf\u0999\u09cd\u0997\u09bf\u099f
+languages.tlh=\u0995\u09cd\u09b2\u09bf\u0999\u09cd\u0997\u09a8
+languages.tt=\u09a4\u09be\u09a4\u09be\u09b0
+languages.ts=\u09a4\u09cd\u200d\u09b8\u0999\u09cd\u0997\u09be
+languages.srn=\u09b8\u09cd\u09b0\u09be\u09a8\u09be\u09a8 \u099f\u09cb\u0999\u09cd\u0997\u09cb
+languages.bad=\u09ac\u09be\u09a8\u09cd\u09a6\u09be
+languages.tr=\u09a4\u09c1\u09b0\u09cd\u0995\u09c0
+languages.to=\u099f\u0999\u09cd\u0997\u09be
+languages.tn=\u09a4\u09cd\u200d\u09b8\u0993\u09af\u09bc\u09be\u09a8\u09be
+languages.tl=\u09a4\u09be\u0997\u09be\u09b2\u0997
+languages.tk=\u09a4\u09c1\u09b0\u09cd\u0995\u09ae\u09c7\u09a8\u09c0
+languages.ti=\u09a4\u09bf\u0997\u09b0\u09bf\u09a8\u09bf\u09af\u09bc\u09be
+languages.th=\u09a5\u09be\u0987
+languages.kru=\u0995\u09c1\u09b0\u09c1\u0996
+languages.tg=\u09a4\u09be\u099c\u09bf\u0995
+languages.byn=\u09ac\u09cd\u09b2\u09bf\u09a8
+languages.te=\u09a4\u09c7\u09b2\u09c7\u0997\u09c1
+languages.kro=\u0995\u09cd\u09b0\u09c1
+languages.csb=\u0995\u09be\u09b6\u09c1\u09ac\u09bf\u09af\u09bc\u09be\u09a8
+languages.ta=\u09a4\u09be\u09ae\u09bf\u09b2
+languages.krl=\u0995\u09be\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be\u09a8
+languages.tkl=\u099f\u09cb\u0995\u09c7\u09b2\u09be\u0989
+languages.efi=\u098f\u09ab\u09bf\u0995
+languages.sw=\u09b8\u09cb\u09af\u09bc\u09be\u09b9\u09bf\u09b2\u09bf
+languages.sv=\u09b8\u09c1\u0987\u09a1\u09bf\u09b6
+languages.su=\u09b8\u09c1\u09a6\u09be\u09a8\u09c0
+languages.krc=\u0995\u09be\u09b0\u099a\u09c7-\u09ac\u09be\u09b2\u09cd\u0995\u09be\u09b0
+languages.st=\u09a6\u0995\u09cd\u09b7\u09bf\u09a8 \u09b8\u09cb\u09a5\u09cb
+languages.ss=\u09b8\u09cb\u09af\u09bc\u09be\u09a4\u09bf
+languages.sr=\u09b8\u09be\u09b0\u09cd\u09ac\u09c0\u09af\u09bc
+languages.sq=\u0986\u09b2\u09ac\u09c7\u09a8\u09c0\u09af\u09bc
+languages.men=\u09ae\u09c7\u09a8\u09cd\u09a1\u09c7
+languages.crp=\u0995\u09cd\u09b0\u09c7\u0993\u09b2 \u0985\u09a5\u09ac\u09be \u09aa\u09bf\u099c\u09bf\u09a8
+languages.so=\u09b8\u09cb\u09ae\u09be\u09b2\u09c0
+languages.afh=\u0986\u09ab\u09cd\u09b0\u09bf\u09b9\u09bf\u09b2\u09bf
+languages.sn=\u09b6\u09cb\u09a8\u09be
+languages.sm=\u09b8\u09be\u09ae\u09cb\u09af\u09bc\u09be\u09a8
+languages.sl=\u09b8\u09cd\u09b2\u09cb\u09ad\u09c7\u09a8\u09c0\u09af\u09bc
+languages.grc=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u0997\u09cd\u09b0\u09c0\u0995
+languages.sk=\u09b8\u09cd\u09b2\u09cb\u09ad\u09be\u0995
+languages.grb=\u0997\u09cd\u09b0\u09c7\u09ac\u09cb
+languages.si=\u09b8\u09bf\u0982\u09b9\u09b2\u09c0
+languages.sh=\u09b8\u09be\u09b0\u09cd\u09ac\u09cb-\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09bf\u09af\u09bc
+languages.crh=\u0995\u09cd\u09b0\u09be\u0987\u09ae\u09bf\u0993 \u09a4\u09c1\u09b0\u09cd\u0995\u09bf
+languages.afa=\u0985\u09ab\u09cd\u09b0\u09cb-\u098f\u09b6\u09bf\u09af\u09bc\u09be\u099f\u09bf\u0995
+languages.sg=\u09b8\u09be\u0999\u09cd\u0997\u09cb
+languages.se=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09b8\u09be\u09ae\u09bf
+languages.sd=\u09b8\u09bf\u09a8\u09cd\u09a7\u09bf
+languages.udm=\u0989\u09a1\u09ae\u09c1\u09b0\u09cd\u099f
+languages.sc=\u09b8\u09be\u09b0\u09cd\u09a1\u09bf\u09a8\u09cb\u09af\u09bc\u09be\u09a8
+languages.sa=\u09b8\u0982\u09b7\u09cd\u0995\u09c3\u09a4
+languages.rw=\u0995\u09bf\u09a8\u09af\u09bc\u09be\u09b0\u09cb\u09af\u09bc\u09be\u09a8\u09cd\u09a1\u09be
+languages.nwc=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09a8\u09c7\u0993\u09af\u09bc\u09be\u09b0\u09c0
+languages.ru=\u09b0\u09c1\u09b6
+languages.mdr=\u09ae\u09cd\u09af\u09be\u09a3\u09cd\u09a1\u09be\u09b0
+languages.ro=\u09b0\u09cb\u09ae\u09be\u09a8\u09c0\u09af\u09bc
+languages.rn=\u09b0\u09c1\u09a8\u09cd\u09a6\u09bf
+languages.rm=\u09b0\u09c7\u099f\u09cb-\u09b0\u09cb\u09ae\u09be\u09a8\u09c0\u09af\u09bc
+languages.fr_CH=\u09b8\u09c1\u0987\u09b8 \u09ab\u09b0\u09be\u09b8\u09bf
+languages.mdf=\u09ae\u09cb\u0995\u09b6\u09be
+languages.tiv=\u099f\u09bf\u09ad
+languages.fr_CA=\u0995\u09be\u09a8\u09be\u09a1\u09c0\u09af\u09bc \u09ab\u09b0\u09be\u09b8\u09bf
+languages.ady=\u0986\u09a6\u09c7\u0997\u09c7
+languages.zun=\u099c\u09c1\u09a8\u09bf
+languages.kpe=\u0995\u09cd\u200c\u09aa\u09c7\u09b2\u09cd\u09b2\u09c7
+languages.qu=\u0995\u09c7\u099a\u09c1\u09af\u09bc\u09be
+languages.tig=\u099f\u09be\u0987\u0997\u09cd\u09b0\u09c7
+languages.son=\u09b8\u09cb\u0999\u09cd\u0997\u09b9\u09be\u0987
+languages.cpp=\u09aa\u09cb\u09b0\u09cd\u09a4\u09c1\u0997\u09bf\u099c-\u09ad\u09bf\u09a4\u09cd\u09a4\u09bf\u0995 \u0995\u09cd\u09b0\u09c7\u0993\u09b2 \u09ac\u09be \u09aa\u09bf\u099c\u09a8
+languages.rup=\u0986\u09b0\u09cb\u09ae\u09be\u09a8\u09bf\u09af\u09bc
+languages.sog=\u09b8\u09cb\u0997\u09a1\u09bf\u09af\u09bc\u09be\u09a8
+languages.ada=\u0985\u09a6\u09be\u0997\u09cd\u09ae\u09c7
+languages.kos=\u0995\u09cb\u09b8\u09cd\u09b0\u09be\u0987\u09a8
+languages.hit=\u09b9\u09bf\u099f\u09cd\u099f\u09bf\u099f
+languages.cpf=\u09ab\u09b0\u09be\u09b8\u09bf \u099c\u09be\u09a4 \u0995\u09cd\u09b0\u09c7\u0993\u09b2 \u0985\u09a5\u09ac\u09be \u09aa\u09bf\u099c\u09bf\u09a8
+languages.cpe=\u0987\u0982\u09b0\u09c7\u099c\u09bf \u099c\u09be\u09a4 \u0995\u09cd\u09b0\u09c7\u0993\u09b2 \u0985\u09a5\u09ac\u09be \u09aa\u09bf\u099c\u09bf\u09a8
+languages.him=\u09b9\u09bf\u09ae\u09be\u099a\u09be\u09b2\u09bf
+languages.kok=\u0995\u09cb\u0999\u09cd\u0995\u09be\u09a8\u09bf
+languages.hil=\u09b9\u09bf\u09b2\u09bf\u0997\u09cd\u09af\u09be\u09af\u09bc\u09a8\u09cb\u09a8
+languages.got=\u0997\u09a5\u09bf\u0995
+languages.gor=\u0997\u09cb\u09b0\u09cb\u09a8\u09cd\u09a4\u09be\u09b2\u09cb
+languages.gon=\u0997\u09cb\u09a8\u09cd\u09a1\u09bf
+languages.din=\u09a1\u09bf\u0982\u0995\u09be
+languages.nub=\u09a8\u09c1\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.pt=\u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09c0\u099c
+languages.ps=\u09aa\u09b6\u09cd\u09a4\u09c1
+languages.fur=\u09ab\u09cd\u09b0\u09bf\u0989\u09b2\u09bf\u09af\u09bc\u09be\u09a8
+languages.phn=\u09ab\u09bf\u09a8\u09bf\u09b6\u09c0\u09af\u09bc
+languages.de_CH=\u09b8\u09c1\u0987\u09b8 \u0989\u099a\u09cd\u099a \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.goh=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u0989\u099a\u09cd\u099a \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.snk=\u09b8\u09cb\u09a8\u09bf\u0999\u09cd\u0995\u09c7
+languages.cop=\u0995\u09aa\u099f\u09bf\u0995
+languages.yap=\u0987\u09af\u09bc\u09be\u09aa\u09c7\u09b8\u09c7
+languages.ach=\u0986\u0995\u09cb\u09b2\u09c0
+languages.yao=\u0987\u09af\u09bc\u09be\u0993
+languages.phi=\u09ab\u09bf\u09b2\u09bf\u09aa\u09be\u0987\u09a8 \u09ad\u09be\u09b7\u09be
+languages.pl=\u09aa\u09cb\u09b2\u09bf\u09b6
+languages.ace=\u0986\u099a\u09bf\u09a8\u09bf\u09af\u09bc
+languages.pi=\u09aa\u09be\u09b2\u09bf
+languages.pt_PT=\u0986\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09bf\u099c
+languages.pa=\u09aa\u09be\u099e\u09cd\u099c\u09be\u09ac\u09c0
+languages.bug=\u09ac\u09c1\u0997\u09bf\u09a8\u09bf
+languages.iba=\u0987\u09ac\u09be\u09a8
+languages.sms=\u09b8\u09cd\u0995\u09cb\u09b2\u09cd\u099f \u09b8\u09be\u09ae\u09bf
+languages.bua=\u09ac\u09c1\u09b0\u09bf\u09af\u09bc\u09be\u09a4
+languages.mas=\u09ae\u09be\u09b8\u09be\u0987
+languages.smn=\u0987\u09a8\u09be\u09b0\u09bf \u09b8\u09be\u09ae\u09bf
+languages.os=\u0993\u09b8\u09c7\u099f\u09bf\u0995
+languages.map=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09cb\u09a8\u09c7\u09b6\u09c0\u09af\u09bc
+languages.or=\u0989\u09a1\u09bc\u09bf\u09af\u09bc\u09be
+languages.man=\u09ae\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09bf\u0999\u09cd\u0997\u09cb
+languages.smj=\u09b2\u09c1\u09b2\u09c7 \u09b8\u09be\u09ae\u09bf
+languages.smi=\u09b8\u09be\u09ae\u09bf \u09ad\u09be\u09b7\u09be
+languages.mak=\u09ae\u09cd\u09af\u09be\u0995\u09be\u09b8\u09be\u09b0
+languages.om=\u0985\u09b0\u09cb\u09ae\u09cb
+languages.mai=\u09ae\u09c8\u09a5\u09bf\u09b2\u09bf
+languages.oj=\u0993\u099c\u09bf\u09ac\u0993\u09af\u09bc\u09be
+languages.mag=\u09ae\u09be\u0998\u09bf
+languages.mad=\u09ae\u09be\u09a6\u09c1\u09b0\u09c7\u09b8\u09c7
+languages.sma=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09b8\u09be\u09ae\u09bf
+languages.oc=\u0985\u0995\u09cd\u09b8\u09bf\u099f\u09be\u09a8
+languages.nso=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09b8\u09cb\u09a5\u09cb
+languages.btk=\u09ac\u09be\u09a4\u09be\u0995
+languages.myv=\u098f\u09b0\u099c\u09bf\u09af\u09bc\u09be
+languages.es_ES=\u0986\u0987\u09ac\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6
+languages.de_AT=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.dgr=\u09a6\u09cb\u0997\u09cd\u09b0\u09c0\u09ac
+languages.ny=\u09a8\u09be\u09af\u09bc\u09be\u099e\u09cd\u099c\u09be
+languages.myn=\u09ae\u09be\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.nv=\u09a8\u09be\u09ad\u09be\u099c\u09cb
+languages.kmb=\u0995\u09bf\u09ae\u09cd\u09ac\u09c1\u09a8\u09cd\u09a6\u09c1
+languages.nr=\u09a6\u0995\u09cd\u09b7\u09bf\u09a3 \u098f\u09a8\u09a1\u09c7\u09ac\u09c7\u09b2\u09c7
+languages.gmh=\u09ae\u09a7\u09cd\u09af-\u0989\u099a\u09cd\u099a \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.no=\u09a8\u09b0\u0993\u09af\u09bc\u09c7\u099c\u09c0\u09af\u09bc
+languages.nn=\u09a8\u09b0\u0993\u09af\u09bc\u09c7\u099c\u09c0\u09af\u09bc (\u09a8\u09bf\u09a8\u09b0\u09cd\u09b8\u09cd\u0995)
+languages.nl=\u09a1\u09be\u099a
+languages.root=\u09ae\u09c2\u09b2
+languages.ng=\u098f\u09a8\u09cd\u09a6\u09cb\u0999\u09cd\u0997\u09be
+languages.sla=\u09b8\u09cd\u09b2\u09cd\u09af\u09be\u09ad\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.ne=\u09a8\u09c7\u09aa\u09be\u09b2\u09c0
+languages.nd=\u0989\u09a4\u09cd\u09a4\u09b0 \u098f\u09a8\u09cd\u09a6\u09c7\u09ac\u09bf\u09b2\u09bf
+languages.cmc=\u099a\u09be\u09ae\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.tet=\u09a4\u09c7\u09a4\u09c1\u09ae
+languages.nb=\u09a8\u09b0\u0993\u09af\u09bc\u09c7 \u09ac\u09cb\u0995\u09ae\u09be\u09b2
+languages.na=\u09a8\u09be\u0989\u09b0\u09c1
+languages.ter=\u09a4\u09c7\u09b0\u09c7\u09a8\u09cb
+languages.tem=\u099f\u09be\u0987\u09ae\u09cd\u09a8\u09c7
+languages.my=\u09ac\u09b0\u09cd\u09ae\u09bf
+languages.lez=\u09b2\u09c7\u099c\u0998\u09bf\u09af\u09bc\u09be\u09a8
+languages.mt=\u09ae\u09b2\u09cd\u099f\u09bf\u09af\u09bc
+languages.frs=\u09aa\u09c2\u09b0\u09cd\u09ac \u09ab\u09cd\u09b0\u09bf\u09b8\u09bf\u09af\u09bc
+languages.peo=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09ab\u09be\u09b0\u09cd\u09b8\u09bf
+languages.ms=\u09ae\u09be\u09b2\u09c7
+languages.frr=\u0989\u09a4\u09cd\u09a4\u09b0\u09be\u099e\u09cd\u099a\u09b2\u09c0\u09af\u09bc \u09ab\u09cd\u09b0\u09bf\u09b8\u09bf\u09af\u09bc\u09be\u09a8
+languages.mr=\u09ae\u09be\u09b0\u09be\u09a0\u09bf
+languages.fro=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09ab\u09b0\u09be\u09b8\u09bf
+languages.mo=\u09ae\u09b2\u09a6\u09be\u09ad\u09bf\u09af\u09bc
+languages.mn=\u09ae\u0999\u09cd\u0997\u09cb\u09b2\u09bf\u09af\u09bc
+languages.frm=\u09ae\u09a7\u09cd\u09af \u09ab\u09b0\u09be\u09b8\u09bf
+languages.ml=\u09ae\u09be\u09b2\u09c7\u09af\u09bc\u09be\u09b2\u09be\u09ae
+languages.jrb=\u099c\u09c1\u09a6\u09c7\u0993 \u0986\u09b0\u09ac\u09bf
+languages.mk=\u09ae\u09cd\u09af\u09be\u09b8\u09c7\u09a1\u09cb\u09a8\u09c0\u09af
+languages.mi=\u09ae\u09be\u0993\u09b0\u09bf
+languages.mh=\u09ae\u09be\u09b0\u09cd\u09b6\u09be\u09b2\u09bf\u099c
+languages.mg=\u09ae\u09be\u09b2\u09be\u0997\u09be\u09b8\u09bf
+languages.nqo=\u098f\u09a8\u2019\u0995\u09cb
+languages.mwr=\u09ae\u09be\u09b0\u09cb\u09af\u09bc\u09be\u09b0\u09bf
+languages.bra=\u09ac\u09cd\u09b0\u09be\u099c
+languages.mwl=\u09ae\u09bf\u09b0\u09be\u09a8\u09cd\u09a1\u09bf\u099c
+languages.den=\u09b8\u09cd\u09b2\u09cd\u09af\u09be\u09ad
+languages.lv=\u09b2\u09be\u09a4\u09cd\u200c\u09ad\u09c0\u09af\u09bc
+languages.lu=\u09b2\u09c1\u09ac\u09be-\u0995\u09be\u099f\u09be\u0999\u09cd\u0997\u09be
+languages.del=\u09a1\u09c7\u09b2\u09be\u0993\u09af\u09bc\u09c7\u09b0
+languages.lt=\u09b2\u09bf\u09a5\u09c1\u09af\u09bc\u09c7\u09a8\u09c0\u09af
+languages.lo=\u09b2\u09be\u0993
+languages.ln=\u09b2\u09bf\u0999\u09cd\u0997\u09be\u09b2\u09be
+languages.li=\u09b2\u09bf\u09ae\u09cd\u09ac\u09c1\u09b0\u09cd\u0997\u09bf\u09b6
+languages.ewo=\u0987\u0993\u09a8\u09cd\u09a1\u09cb
+languages.lg=\u0997\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09be
+languages.lb=\u09b2\u09c1\u0995\u09cd\u09b8\u09c7\u09ae\u09ac\u09be\u09b0\u09cd\u0997\u09c0\u09af\u09bc
+languages.la=\u09b2\u09be\u099f\u09bf\u09a8
+languages.jpr=\u099c\u09c1\u09a6\u09c7\u0993 \u09ab\u09be\u09b0\u09cd\u09b8\u09bf
+languages.vot=\u09ad\u09cb\u099f\u09bf\u0995
+languages.sit=\u09b8\u09bf\u09a8\u09cb-\u09a4\u09bf\u09ac\u09cd\u09ac\u09cb\u09a4\u09c0\u09af\u09bc \u09ad\u09be\u09b7\u09be
+languages.ky=\u0995\u09bf\u09b0\u09cd\u0997\u09bf\u099c
+languages.kw=\u0995\u09b0\u09cd\u09a3\u09bf\u09b6
+languages.kv=\u0995\u09cb\u09ae\u09bf
+languages.ku=\u0995\u09c1\u09b0\u09cd\u09a6\u09bf
+languages.sio=\u09b8\u09bf\u0993\u09af\u09bc\u09c1\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.ks=\u0995\u09be\u09b6\u09cd\u09ae\u09c0\u09b0\u09c0
+languages.kr=\u0995\u09be\u09a8\u09c1\u09b0\u09bf
+languages.awa=\u0986\u0993\u09af\u09bc\u09be\u09a7\u09bf
+languages.ko=\u0995\u09cb\u09b0\u09bf\u09af\u09bc\u09be\u09a8
+languages.kn=\u0995\u09be\u09a8\u09cd\u09a8\u09be\u09a1\u09bc\u09c0
+languages.km=\u0996\u09ae\u09c7\u09b0
+languages.en_GB=\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.kl=\u0995\u09cd\u09af\u09be\u09b2\u09be\u09b2\u09cd\u09b2\u09bf\u09b8\u09c1\u099f
+languages.kk=\u0995\u09be\u099c\u09be\u0996
+languages.rom=\u09b0\u09cb\u09ae\u09be\u09a8\u09bf
+languages.kj=\u0995\u09cb\u09af\u09bc\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09ae\u09be
+languages.sid=\u09b8\u09bf\u09a1\u09be\u09ae\u09cb
+languages.ki=\u0995\u09bf\u0995\u09c1\u09cd\u0987\u09af\u09bc\u09c1
+languages.kg=\u0995\u09cb\u0999\u09cd\u0997\u09cb
+languages.non=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09a8\u09b0\u09cd\u09b8
+languages.ka=\u099c\u09b0\u09cd\u099c\u09bf\u09af\u09bc\u09be\u09a8
+languages.mus=\u0995\u09cd\u09b0\u09bf\u0995
+languages.roa=\u09b0\u09cb\u09ae\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.nog=\u09a8\u09cc\u0997\u09be\u0987
+languages.mun=\u09ae\u09c1\u09a3\u09cd\u09a1\u09be \u09ad\u09be\u09b7\u09be
+languages.mul=\u09ac\u09b9\u09c1\u0997\u09c1\u09a3\u09bf\u09a4\u0995 \u09ad\u09be\u09b7\u09be\u09b8\u09ae\u09c2\u09b9
+languages.jv=\u099c\u09be\u09ad\u09be\u09a8\u09bf
+languages.gil=\u0997\u09bf\u09b2\u09ac\u09be\u09b0\u09cd\u099f\u09bf\u099c
+languages.znd=\u099c\u09be\u09a8\u09cd\u09a1\u09c7
+languages.shn=\u09b6\u09cd\u09af\u09be\u09a8
+languages.fon=\u09ab\u09a8
+languages.xal=\u0995\u09be\u09b2\u09cd\u09ae\u09be\u0987\u0995
+languages.aus=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc
+languages.kho=\u0996\u09cb\u099f\u09be\u09a8\u09bf\u099c
+languages.ja=\u099c\u09be\u09aa\u09be\u09a8\u09bf
+languages.khi=\u0996\u09cb\u09af\u09bc\u09c7\u09b6\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.pau=\u09aa\u09be\u09b2\u09be\u09af\u09bc\u09c1\u09af\u09bc\u09be\u09a8
+languages.chy=\u09b6\u09be\u0987\u09af\u09bc\u09c7\u09a8
+languages.tai=\u09a4\u09be\u0987 \u09ad\u09be\u09b7\u09be
+languages.iu=\u0987\u09a8\u09c1\u0995\u09cd\u099f\u09bf\u099f\u09c1\u099f
+languages.pap=\u09aa\u09be\u09aa\u09bf\u09af\u09bc\u09be\u09ae\u09c7\u09a8\u09cd\u099f\u09cb
+languages.it=\u0987\u09a4\u09be\u09b2\u09c0\u09af\u09bc
+languages.sgn=\u099a\u09bf\u09b9\u09cd\u09a8 \u09ad\u09be\u09b7\u09be
+languages.is=\u0986\u0987\u09b8\u09b2\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09c0\u09af\u09bc
+languages.kha=\u0996\u09be\u09b6\u09bf
+languages.chr=\u099a\u09c7\u09b0\u09cb\u0995\u09bf
+languages.pam=\u09aa\u09be\u09ae\u09cd\u09aa\u09be\u0999\u09cd\u0997\u09be
+languages.pal=\u09aa\u09be\u09b9\u09cd\u09b2\u09be\u09ad\u09bf
+languages.chp=\u099a\u09bf\u09aa\u09c7\u0993\u09af\u09bc\u09be\u09a8
+languages.io=\u0987\u09a1\u09cb
+languages.cho=\u099a\u0995\u09cd\u099f\u09cb
+languages.chn=\u099a\u09bf\u09a8\u09c1\u0995 \u09aa\u09b0\u09bf\u09ad\u09be\u09b7\u09be
+languages.chm=\u09ae\u09be\u09b0\u09bf
+languages.tyv=\u099f\u09c1\u09ad\u09bf\u09a8\u09bf\u09af\u09bc\u09be\u09a8
+languages.bnt=\u09ac\u09be\u09a8\u09cd\u099f\u09c1
+languages.pag=\u09aa\u09be\u0999\u09cd\u0997\u09be\u09b8\u09bf\u09a8\u09be\u09a8
+languages.ik=\u0987\u09a8\u09c1\u09aa\u09bf\u09af\u09bc\u09be\u0995
+languages.chk=\u099a\u09c1\u0995\u09bf
+languages.ii=\u09b8\u09bf\u099b\u09c1\u09af\u09bc\u09be\u09a8
+languages.haw=\u09b9\u09be\u0993\u09af\u09bc\u09be\u0987\u09af\u09bc\u09be\u09a8
+languages.lam=\u09b2\u09be\u09ae\u09cd\u09ac\u09be
+languages.ig=\u0987\u0997\u09cd\u200c\u09ac\u09cb
+languages.chg=\u099a\u09be\u0997\u09be\u09a4\u09be\u0987
+languages.sga=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u0986\u0987\u09b0\u09bf\u09b6
+languages.paa=\u09aa\u09be\u09aa\u09c1\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.ie=\u0987\u09a8\u09cd\u099f\u09be\u09b0\u09b2\u09bf\u0999\u09cd\u0997\u09cd
+languages.id=\u0987\u09a8\u09cd\u09a6\u09cb\u09a8\u09c7\u09b6\u09c0\u09af\u09bc
+languages.lah=\u09b2\u09be\u09a8\u09cd\u09a1\u09be
+languages.day=\u09a6\u09be\u09af\u09bc\u09be\u0995
+languages.chb=\u099a\u09bf\u09ac\u099a\u09be
+languages.ia=\u0987\u09a8\u09cd\u099f\u09be\u09b0\u09b2\u09bf\u0999\u09cd\u0997\u09c1\u09af\u09bc\u09be
+languages.lad=\u09b2\u09be\u09a1\u09bf\u09a8\u09cb
+languages.hz=\u09b9\u09c7\u09b0\u09c7\u09b0\u09cb
+languages.hai=\u09b9\u09be\u0987\u09a1\u09be
+languages.dar=\u09a6\u09be\u09b0\u09cd\u0997\u0993\u09af\u09bc\u09be
+languages.hy=\u0986\u09b0\u09cd\u09ae\u09c7\u09a8\u09bf\u09af\u09bc
+languages.ath=\u0986\u09a5\u09be\u09aa\u09be\u09b8\u09cd\u0995\u09be\u09a8
+languages.hu=\u09b9\u09be\u0999\u09cd\u0997\u09c7\u09b0\u09c0\u09af\u09bc
+languages.ht=\u09b9\u09be\u0987\u09a4\u09bf\u09af\u09bc\u09be\u09a8
+languages.dak=\u09a1\u09be\u0995\u09cb\u099f\u09be
+languages.hr=\u0995\u09cd\u09b0\u09cb\u09af\u09bc\u09c7\u09b6\u09c0\u09af\u09bc
+languages.ho=\u09b9\u09bf\u09b0\u09bf \u09ae\u09cb\u09a4\u09c1
+languages.hi=\u09b9\u09bf\u09a8\u09cd\u09a6\u09bf
+languages.dyu=\u09a1\u09bf\u0989\u09b2\u09be
+languages.he=\u09b9\u09bf\u09ac\u09cd\u09b0\u09c1
+languages.ast=\u0986\u09b8\u09cd\u09a4\u09c1\u09b0\u09bf\u09af\u09bc
+languages.kfo=\u0995\u09cb\u09b0\u09cb
+languages.ha=\u09b9\u09be\u0989\u09b8\u09be
+languages.wen=\u09b8\u09cb\u09b0\u09ac\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.gv=\u09ae\u09cd\u09af\u09be\u0999\u09cd\u0995\u09b8
+languages.gu=\u0997\u09c1\u099c\u09b0\u09be\u099f\u09bf
+languages.sem=\u09b8\u09c7\u09ae\u09c7\u099f\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.sel=\u09b8\u09c7\u09b2\u09cd\u0995\u09c1\u09aa
+languages.iro=\u0987\u09b0\u09cb\u0995\u09c1\u0993\u0987\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.gn=\u0997\u09c1\u09af\u09bc\u09be\u09b0\u09be\u09a8\u09bf
+languages.gl=\u0997\u09cd\u09af\u09be\u09b2\u09bf\u09b6\u09bf\u09af\u09bc
+languages.en_CA=\u0995\u09be\u09a8\u09be\u09a1\u09c0\u09af\u09bc \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.arw=\u0986\u09b0\u09be\u0993\u09af\u09bc\u09be\u0995
+languages.gez=\u0997\u09c0\u099c
+languages.art=\u0995\u09c3\u09a4\u09cd\u09b0\u09bf\u09ae
+languages.gd=\u09b8\u09cd\u0995\u099f\u09b8-\u0997\u09cd\u09af\u09c7\u09b2\u09bf\u0995
+languages.ira=\u0987\u09b0\u09be\u09a8\u09c0 \u09ad\u09be\u09b7\u09be
+languages.ga=\u0986\u0987\u09b0\u09bf\u09b6
+languages.arp=\u0986\u09b0\u09be\u09aa\u09be\u09b9\u09cb
+languages.arn=\u0985\u09cd\u09af\u09be\u09b0\u09cb\u0995\u09c7\u09a8\u09bf\u09af\u09bc
+languages.fy=\u09aa\u09b6\u09cd\u099a\u09bf\u09ae \u09ab\u09cd\u09b0\u09bf\u09b8\u09bf\u09af\u09bc
+languages.bla=\u09b8\u09bf\u0995\u09b8\u09bf\u0995\u09be
+languages.gem=\u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.ypk=\u0987\u09af\u09bc\u09c1\u09aa\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.arc=\u0986\u09b0\u09be\u09ae\u09be\u0987\u0995
+languages.fr=\u09ab\u09b0\u09be\u09b8\u09bf
+languages.fo=\u09ab\u09c7\u09b0\u09be\u0989\u09a8\u09bf
+languages.cel=\u0995\u09c7\u09b2\u09cd\u099f\u09bf\u0995
+languages.fj=\u09ab\u09bf\u099c\u09bf\u0993
+languages.fi=\u09ab\u09bf\u09a8\u09bf\u09b6
+languages.ff=\u09ab\u09c1\u09b2\u09be\u09b9\u09cd
+languages.tvl=\u099f\u09c1\u09ad\u09be\u09b2\u09c1
+languages.ceb=\u099a\u09c7\u09ac\u09c1\u09af\u09bc\u09be\u09a8\u09cb
+languages.fa=\u09ab\u09be\u09b0\u09cd\u09b8\u09bf
+languages.en_AU=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09c0\u09af\u09bc \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.zh_Hans=\u09b8\u09b9\u099c \u099a\u09c0\u09a8\u09be
+languages.zh_Hant=\u09aa\u09cd\u09b0\u09a5\u09be\u0997\u09a4 \u099a\u09c0\u09a8\u09be
+languages.eu=\u09ac\u09be\u09b8\u09cd\u0995
+languages.sco=\u09b8\u09cd\u0995\u099f\u09b8
+languages.et=\u098f\u09b8\u09cd\u09a4\u09cb\u09a8\u09c0\u09af\u09bc
+languages.scn=\u09b8\u09bf\u09b8\u09bf\u09b2\u09bf\u09af\u09bc\u09be\u09a8
+languages.es=\u09b8\u09cd\u09aa\u09c7\u09a8\u09c0\u09af\u09bc
+languages.eo=\u098f\u09b8\u09cd\u09aa\u09c7\u09b0\u09be\u09a8\u09cd\u09a4\u09cb
+languages.en=\u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.el=\u0997\u09cd\u09b0\u09bf\u0995
+languages.tut=\u0986\u09b2\u09a4\u09be\u09af\u09bc\u09c0\u0995 \u09ad\u09be\u09b7\u09be
+languages.niu=\u09a8\u09bf\u0989\u09af\u09bc\u09be\u09a8
+languages.tup=\u09a4\u09c1\u09aa\u09bf \u09ad\u09be\u09b7\u09be
+languages.ee=\u0987\u0993\u09af\u09bc\u09c7
+languages.tum=\u09a4\u09c1\u09ae\u09cd\u09ac\u09c1\u0995\u09be
+languages.nl_BE=\u09ab\u09cd\u09b2\u09c7\u09ae\u09bf\u09b6
+languages.es_419=\u09b2\u09cd\u09af\u09be\u099f\u09bf\u09a8 \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09a8 \u09b8\u09cd\u09aa\u09cd\u09af\u09be\u09a8\u09bf\u09b6
+languages.mos=\u09ae\u09b8\u09bf
+languages.dz=\u09ad\u09c1\u099f\u09be\u09a8\u09bf
+languages.kcg=\u099f\u09be\u0987\u09af\u09bc\u09be\u09aa
+languages.nic=\u09a8\u09be\u0987\u099c\u09be\u09b0-\u0995\u09cb\u09b0\u09cd\u09a1\u09cb\u09ab\u09be\u09a8\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.lus=\u09b2\u09c1\u09b6\u09be\u0987
+languages.fiu=\u09ab\u09bf\u09a8\u09cb-\u0987\u0989\u0997\u09cd\u09b0\u09bf\u0995
+languages.dv=\u09a6\u09bf\u09ac\u09c7\u09b9\u09bf
+languages.nia=\u09a8\u09bf\u09af\u09bc\u09be\u09b8
+languages.moh=\u09ae\u09cb\u09b9\u09be\u0993\u0995
+languages.luo=\u09b2\u09c1\u09af\u09bc\u09cb
+languages.lun=\u09b2\u09c1\u09a8\u09cd\u09a1\u09be
+languages.apa=\u0985\u09cd\u09af\u09be\u09aa\u09be\u099a\u09bf
+languages.fil=\u09ab\u09bf\u09b2\u09bf\u09aa\u09bf\u09a8\u09cb
+languages.lui=\u09b2\u09c1\u0987\u09b8\u09c7\u09a8\u09cb
+languages.hup=\u09b9\u09c1\u09aa\u09be
+languages.cch=\u0986\u09a4\u09cd\u09b8\u09be\u09ae
+languages.bin=\u09ac\u09bf\u09a8\u09bf
+languages.de=\u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8
+languages.lua=\u09b2\u09c1\u09ac\u09be-\u09b2\u09c1\u09b2\u09c1\u09af\u09bc\u09be
+languages.bik=\u09ac\u09bf\u0995\u09cb\u09b2
+languages.was=\u0993\u09af\u09bc\u09be\u09b6\u09be
+languages.und=\u0985\u099c\u09be\u09a8\u09be \u09ac\u09be \u09ad\u09c1\u09b2 \u09ad\u09be\u09b7\u09be
+languages.war=\u0993\u09af\u09bc\u09be\u09b0\u09c7
+languages.da=\u09a1\u09c7\u09a8\u09bf\u09b6
+languages.dum=\u09ae\u09a7\u09cd\u09af \u09a1\u09be\u099a
+languages.wal=\u0993\u09af\u09bc\u09be\u09b2\u09be\u09ae\u09cb
+languages.mno=\u09ae\u09cd\u09af\u09be\u09a8\u09cb\u09ac\u09cb \u09ad\u09be\u09b7\u09be
+languages.wak=\u0993\u09af\u09bc\u09be\u0995\u09be\u09b6\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.sat=\u09b8\u09be\u0981\u0993\u09a4\u09be\u09b2\u09bf
+languages.cy=\u0993\u09af\u09bc\u09c7\u09b2\u09b6
+languages.sas=\u09b8\u09be\u09b8\u09be\u0995
+languages.kbd=\u0995\u09be\u09ac\u09be\u09b0\u09cd\u09a1\u09bf\u09af\u09bc\u09be\u09a8
+languages.cv=\u099a\u09c1\u09ac\u09be\u09b8
+languages.cu=\u099a\u09be\u09b0\u09cd\u099a \u09b8\u09cd\u09b2\u09be\u09ad\u09bf\u0993
+languages.mni=\u09ae\u09a3\u09bf\u09aa\u09c1\u09b0\u09c0
+languages.cs=\u099a\u09c7\u0995
+languages.sam=\u09b8\u09be\u09ae\u09be\u09b0\u09bf\u099f\u09be\u09a8 \u0986\u09b0\u09be\u09ae\u09bf\u0995
+languages.cr=\u0995\u09cd\u09b0\u09bf
+languages.sal=\u09b6\u09be\u09b2\u09bf\u09b6\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.dua=\u09a6\u09c1\u09af\u09bc\u09be\u09b2\u09be
+languages.co=\u0995\u09b0\u09cd\u09b8\u09bf\u0995\u09be\u09a8
+languages.sai=\u0989\u09a4\u09cd\u09a4\u09b0 \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09a8 \u0987\u09a8\u09cd\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.mnc=\u09ae\u09be\u099e\u09cd\u099a\u09c1
+languages.sah=\u0987\u09af\u09bc\u09be\u0995\u09c1\u099f
+languages.kaw=\u0995\u09be\u0989\u0987
+languages.inh=\u0987\u0999\u09cd\u0997\u09c1\u09b6
+languages.gba=\u09ac\u09be\u09af\u09bc\u09be
+languages.sad=\u09b8\u09cd\u09af\u09be\u09a8\u09cd\u09a1\u09be\u0993\u09af\u09bc\u09c7
+languages.ch=\u099a\u09be\u09ae\u09c7\u09b0\u09cb
+languages.ine=\u0987\u09a8\u09cd\u09a6\u09cb-\u0987\u0989\u09b0\u09cb\u09aa\u09c0\u09af\u09bc \u09ad\u09be\u09b7\u09be
+languages.bho=\u09ad\u09cb\u099c\u09aa\u09c1\u09b0\u09bf
+languages.enm=\u09ae\u09a7\u09cd\u09af \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.kar=\u0995\u09be\u09b0\u09c7\u09a8
+languages.inc=\u09ad\u09be\u09b0\u09a4\u09c0\u09af\u09bc \u09ad\u09be\u09b7\u09be
+languages.ce=\u099a\u09c7\u099a\u09c7\u09a8
+languages.gay=\u0997\u09be\u09af\u09bc\u09cb
+languages.ca=\u0995\u09be\u09a4\u09be\u09b2\u09be\u09a8
+languages.umb=\u0989\u09ae\u09cd\u09ac\u09c1\u09a8\u09cd\u09a6\u09c1
+languages.syr=\u09b8\u09bf\u09b0\u09bf\u09af\u09bc\u09be\u0995
+languages.kam=\u0995\u09be\u09ae\u09cd\u09ac\u09be
+languages.anp=\u0986\u0999\u09cd\u0997\u09c0\u0995\u09be
+languages.tsi=\u09b8\u09bf\u09ae\u09b6\u09bf\u09af\u09bc\u09be\u09a8
+languages.kaj=\u0985\u099c\u09cd\u099c\u09c1
+languages.ang=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u0987\u0982\u09b0\u09c7\u099c\u09c0
+languages.kac=\u0995\u09be\u099a\u09bf\u09a8
+languages.cau=\u0995\u0995\u09c7\u09b6\u09c0\u09af
+languages.kab=\u0995\u09be\u09ac\u09be\u0987\u09b2\u09c7
+languages.kaa=\u0995\u09be\u09b0\u09be-\u0995\u09be\u09b2\u09cd\u09aa\u09be\u0995
+languages.bs=\u09ac\u09b8\u09a8\u09c0\u09af\u09bc
+languages.car=\u0995\u09cd\u09af\u09be\u09b0\u09bf\u09ac
+languages.br=\u09ac\u09cd\u09b0\u09c7\u099f\u09cb\u09a8
+languages.syc=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09b8\u09bf\u09b0\u09bf\u0993
+languages.bo=\u09a4\u09bf\u09ac\u09cd\u09ac\u09a4\u09bf
languages.bn=\u09ac\u09be\u0982\u09b2\u09be
+languages.bm=\u09ac\u09be\u09ae\u09ac\u09be\u09b0\u09be
+languages.gaa=\u0997\u09be
+languages.cai=\u09ae\u09a7\u09cd\u09af \u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u09a0\u09c7\u09b0 \u0986\u09a6\u09bf\u09ac\u09be\u09b8\u09c0\u09a6\u09c7\u09b0 \u09ad\u09be\u09b7\u09be
+languages.bi=\u09ac\u09bf\u09b8\u09b2\u09be\u09ae\u09be
+languages.bh=\u09ac\u09bf\u09b9\u09be\u09b0\u09bf
+languages.bg=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09af\u09bc
+languages.be=\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6\u09bf\u09af\u09bc
+languages.pt_BR=\u09ac\u09cd\u09b0\u09be\u099c\u09bf\u09b2\u09c0\u09af\u09bc \u09aa\u09b0\u09cd\u09a4\u09c1\u0997\u09c0\u099c
+languages.cad=\u0995\u09cd\u09af\u09be\u09a1\u09cb
+languages.ba=\u09ac\u09be\u09b6\u0995\u09bf\u09b0
+languages.zu=\u099c\u09c1\u09b2\u09c1
+languages.zen=\u099c\u09c7\u09a8\u09be\u0997\u09be
+languages.pro=\u09aa\u09cd\u09b0\u09be\u099a\u09c0\u09a8 \u09aa\u09cd\u09b0\u09cb\u09ad\u09c7\u09a8\u0995\u09cd\u09af\u09be\u09b2
+languages.hsb=\u0989\u099a\u09cd\u099a \u09b8\u09cb\u09b0\u09cd\u09ac\u09bf\u09af\u09bc\u09be\u09a8
+languages.az=\u0986\u099c\u09be\u09b0\u09ac\u09be\u0987\u099c\u09be\u09a8\u09c0\u09af\u09bc
+languages.ay=\u0986\u09af\u09bc\u09ae\u09be\u09b0\u09be
+languages.av=\u0986\u09ad\u09c7\u09b0\u09bf\u0995
+languages.as=\u0986\u09b8\u09be\u09ae\u09bf
+languages.dsb=\u09a8\u09bf\u09ae\u09cd\u09a8\u09a4\u09b0 \u09b8\u09cb\u09b0\u09cd\u09ac\u09bf\u09af\u09bc\u09be\u09a8
+languages.ar=\u0986\u09b0\u09ac\u09c0
+languages.ilo=\u0987\u09b2\u09cb\u0995\u09cb
+languages.elx=\u098f\u09b2\u09be\u09ae\u09be\u0987\u099f
+languages.zh=\u099a\u09c0\u09a8\u09be
+languages.an=\u0986\u09b0\u09cd\u0997\u09cb\u09a8\u09bf\u099c
+languages.pra=\u09aa\u09cd\u09b0\u09be\u0995\u09c3\u09a4 \u09ad\u09be\u09b7\u09be
+languages.am=\u0986\u09ae\u09b9\u09be\u09b0\u09bf\u0995
+languages.new=\u09a8\u09c7\u0993\u09af\u09bc\u09be\u09b0\u09bf
+languages.ak=\u0986\u0995\u09be\u09a8
+languages.za=\u099d\u09c1\u09cd\u09af\u09bc\u09be\u0999
+languages.en_US=\u09af\u09c1\u0995\u09cd\u09a4\u09b0\u09be\u09b7\u09cd\u099f\u09cd\u09b0 \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.af=\u0986\u09ab\u09cd\u09b0\u09bf\u0995\u09be\u09a8\u09cd\u09b8
+languages.ae=\u0986\u09ac\u09c7\u09b8\u09cd\u09a4\u09c0\u09af\u09bc
+languages.alt=\u09a6\u0995\u09cd\u09b7\u09bf\u09a8 \u0986\u09b2\u09a4\u09be\u0987
+languages.ab=\u0986\u09ac\u09cd\u0996\u09be\u099c\u09bf\u09af\u09bc
+languages.aa=\u0986\u09ab\u09be\u09b0
+languages.yo=\u0987\u0993\u09b0\u09c1\u09ac\u09be
+languages.alg=\u0986\u09b2\u0997\u09cb\u0999\u0995\u09c1\u0987\u0986\u09a8
+languages.ale=\u0986\u09b2\u09c7\u0989\u09a4
+languages.mkh=\u09ae\u09a8-\u0996\u09ae\u09c7\u09b0 \u09ad\u09be\u09b7\u09be
+languages.yi=\u09af\u09bc\u09bf\u09a6\u09cd\u09a6\u09bf\u09b6
+languages.dra=\u09a6\u09cd\u09b0\u09be\u09ac\u09c0\u09a1\u09bc \u09ad\u09be\u09b7\u09be
+languages.ber=\u09ac\u09c7\u09b0\u09ac\u09c7\u09b0
+languages.nds=\u09a8\u09bf\u09ae\u09cd\u09a8 \u099c\u09be\u09b0\u09cd\u09ae\u09be\u09a8\u09bf
+languages.bem=\u09ac\u09c7\u09ae\u09cd\u09ac\u09be
+languages.bej=\u09ac\u09c7\u099c\u09be
+languages.tpi=\u099f\u09cb\u0995 \u09aa\u09bf\u09b8\u09bf\u09a8
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn_IN.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn_IN.properties
index 4b98a3c..7137758 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn_IN.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bn_IN.properties
@@ -5,14 +5,99 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
-firstDayOfWeek=mon
-shortDateFormat=d-M-yy
-mediumDateFormat=dd-MM-yyyy
-longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE d MMMM yyyy
-shortTimeFormat=h:mm a
-mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a z
-fullTimeFormat=h:mm:ss a z
+territories.CY=CY
+languages.es=es
+languages.akk=akk
+languages.en=en
+languages.ady=\u0986\u09a6\u09bf\u0998\u09bf
+languages.awa=awa
+languages.pt=pt
+languages.ada=\u0986\u09a6\u09be\u0997\u09cd\u09ae\u09bf
+languages.de=de
+languages.map=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09cb\u09a8\u09c7\u09b8\u09bf\u09af\u09bc\u09be\u09a8
+languages.apa=\u0985\u09cd\u09af\u09be\u09aa\u09be\u099a\u09bf \u09ad\u09be\u09b7\u09be
+languages.ja=ja
+languages.bin=bin
+languages.cu=\u099a\u09be\u09b0\u09cd\u099a \u09b8\u09cd\u09b2\u09be\u09ad\u09bf\u0995
+languages.bik=bik
+languages.ain=ain
+languages.ach=\u0986\u0995\u09cb\u09b2\u09bf
+languages.it=it
+languages.ace=\u0985\u09cd\u09af\u09be\u099a\u09be\u0987\u09a8\u09bf\u099c
+languages.aus=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.chy=\u099a\u09c7\u09af\u09bc\u09c7\u09a8\u09bf
+languages.ch=\u099a\u09be\u09ae\u09cb\u09b0\u09cb
+languages.bug=\u09ac\u09c1\u0997\u09bf\u09a8\u09bf\u099c\u09bf
+languages.ce=\u099a\u09c7\u099a\u09c7\u09a8
+languages.chp=\u099a\u09bf\u09aa\u09c7\u0993\u09af\u09bc\u09be\u0987\u09af\u09bc\u09be\u09a8
+languages.bua=\u09ac\u09c1\u09b0\u09bf\u09af\u09bc\u09be\u09a4
+languages.ca=ca
+languages.cho=\u099a\u0995\u099f\u09cb\u0993
+languages.chn=\u099a\u09bf\u09a8\u09c1\u0995 \u099c\u09be\u09b0\u09cd\u0997\u09a8
+languages.bnt=\u09ac\u09be\u09a8\u09cd\u099f\u09c1
+languages.bho=\u09ad\u09cb\u099c\u09aa\u09c1\u09b0\u09c0
+languages.bs=\u09ac\u09b8\u09a8\u09c0\u09af\u09bc\u09be\u09a8
+languages.br=\u09ac\u09cd\u09b0\u09c7\u09a4\u09cb\u09a8
+languages.anp=\u0986\u0999\u09cd\u0997\u09bf\u0995\u09be
+languages.bo=bo
+languages.bm=bm
+languages.cau=\u0995\u0995\u09c7\u09b6\u09c0\u09af\u09bc \u09ad\u09be\u09b7\u09be
+languages.btk=\u09ac\u09be\u09a4\u09be\u0995
+languages.bi=\u09ac\u09bf\u09b8\u09b2\u09be\u09ae\u09be
+languages.car=car
+languages.bh=bh
+languages.bg=\u09ac\u09c1\u09b2\u0997\u09c7\u09b0\u09bf\u09af\u09bc\u09be\u09a8
+languages.fr_CA=\u0995\u09cd\u09af\u09be\u09a8\u09be\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u09ab\u09b0\u09be\u09b8\u09c0
+languages.ang=ang
+languages.be=\u09ac\u09c7\u09b2\u09be\u09b0\u09c1\u09b6\u09be\u09a8
+languages.bat=bat
+languages.bas=\u09ac\u09be\u09b8\u09be
+languages.ath=\u0986\u09a5\u09be\u09aa\u09be\u09b8\u09cd\u0995\u09cd\u09af\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.ba=\u09ac\u09be\u09b8\u0996\u09bf\u09b0
+languages.cai=\u09ae\u09a7\u09cd\u09af \u0986\u09ae\u09c7\u09b0\u09bf\u0995\u09be\u09b0 \u09ad\u09be\u09b0\u09a4\u09c0\u09af\u09bc \u09ad\u09be\u09b7\u09be
+languages.ban=ban
+languages.bal=bal
+languages.az=\u0986\u099c\u09be\u09b0 \u09ac\u09be\u0987\u099c\u09be\u09a8\u09c0\u09af\u09bc
+languages.ay=ay
+languages.cad=\u0995\u09cd\u09af\u09be\u09a1\u09cd\u09a1\u09be\u0993
+languages.bai=\u09ac\u09be\u09ae\u09bf\u09b2\u09c7\u0995\u09c7 \u09ad\u09be\u09b7\u09be
+languages.av=\u0986\u09ad\u09c7\u09b0\u09bf\u0995
+languages.en_CA=\u0995\u09cd\u09af\u09be\u09a8\u09be\u09a1\u09bf\u09af\u09bc\u09be\u09a8 \u0987\u0982\u09b0\u09c7\u099c\u09bf
+languages.zh=\u099a\u09c0\u09a8\u09be
+languages.as=\u0985\u09b8\u09ae\u09c0\u09af\u09bc\u09be
+languages.bad=bad
+languages.ar=ar
+languages.ast=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be\u09a8
+languages.an=an
+languages.am=am
+languages.zbl=\u09ac\u09cd\u09b2\u09bf\u09b8\u09b8\u09bf\u09ae\u09cd\u09ac\u09b2\u09b8
+languages.ak=ak
+languages.byn=\u09ac\u09cd\u09b2\u09bf\u09a8
+languages.af=af
+languages.ae=\u0986\u09ad\u09c7\u09b8\u09cd\u09a4\u09be\u09a8
+languages.ab=\u0986\u09ac\u0996\u09be\u099c\u09bf\u09af\u09bc\u09be\u09a8
+languages.aa=\u0986\u09ab\u09be\u09b0
+languages.tut=\u0986\u09b2\u099f\u09be\u0987\u0995
+languages.alt=alt
+languages.de_AT=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09bf\u09af\u09bc\u09be\u09a8 \u099c\u09be\u09b0\u09ae\u09be\u09a8
+languages.arw=arw
+languages.rup=\u0986\u09b0\u09ae\u09c7\u09a8\u09bf\u09af\u09bc\u09be\u09a8
+languages.art=art
+languages.fr=fr
+languages.afh=\u0986\u09ab\u09cd\u09b0\u09bf\u09b9\u09bf\u09b2\u09bf
+languages.en_AU=\u0985\u09b8\u09cd\u099f\u09cd\u09b0\u09c7\u09b2\u09bf\u09af\u09bc\u09be\u09a8 \u0987\u0982\u09b0\u09be\u099c\u09c0
+languages.arp=arp
+languages.arn=\u0986\u09b0\u09be\u0989\u0995\u09c7\u09a8\u09bf\u09af\u09bc\u09be\u09a8
+languages.ru=ru
+languages.bla=bla
+languages.alg=\u0986\u09b2\u0997\u09cb\u09a8\u0995\u09bf\u0989\u09af\u09bc\u09be\u09a8 \u09ad\u09be\u09b7\u09be
+languages.afa=\u0986\u09ab\u09cd\u09b0\u09cb-\u098f\u09b6\u09bf\u09af\u09bc\u09be\u099f\u09bf\u0995 \u09ad\u09be\u09b7\u09be
+languages.ale=\u0986\u09b2\u09c7\u0989\u09a4
+languages.bra=bra
+languages.cel=\u0995\u09c7\u09b2\u09cd\u099f\u09bf\u0995
+languages.ber=ber
+languages.arc=arc
+languages.bem=bem
+languages.bej=\u09ac\u09c7\u099c\u09be
+languages.ceb=\u0995\u09c7\u09ac\u09c1\u09af\u09bc\u09be\u09a8\u09cb
+languages.en_GB=\u09ac\u09cd\u09b0\u09bf\u099f\u09bf\u09b6 \u0987\u0982\u09b0\u09c7\u099c\u09c0
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bo.properties
new file mode 100644
index 0000000..293e497
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bo.properties
@@ -0,0 +1,242 @@
+# LocaleInformation_bo.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+NaN=\u0f68\u0f44\u0f0b\u0f58\u0f7a\u0f53\u0f0b
+zeroDigit=\u8d10\u7e7b\ufe3d\u8d00\u7e8a\ufe3d
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4 #,##0.00;-\u00a4 #,##0.00
+currenciesDisplayName.INR=\u0f62\u0f92\u0fb1\u0f0b\u0f42\u0f62\u0f0b\u0f66\u0f92\u0f7c\u0f62\u0f0b\u0f58\u0f7c\u0f0d
+currenciesDisplayName.CNY=\u0f61\u0f74\u0f0b\u0f68\u0f53\u0f0d
+currenciesDisplayName.XXX=\u0f58\u0f72\u0f0b\u0f64\u0f7a\u0f66\u0f0b\u0f54\u0f60\u0f58\u0f0b\u0f55\u0f53\u0f0b\u0f58\u0f7a\u0f51\u0f0b\u0f40\u0fb1\u0f72\u0f0b\u0f64\u0f7c\u0f42\u0f0b\u0f51\u0f44\u0f74\u0f63\u0f0d
+currenciesSymbol.XXX=\u0f66\u0f92\u0f7c\u0f62\u0f0b\u0f58\u0f7c\u0f0d
+shortMonths=\u0f5f\u0fb3\u0f0b\u0f21\u00ae\u0f5f\u0fb3\u0f0b\u0f22\u00ae\u0f5f\u0fb3\u0f0b\u0f23\u00ae\u0f5f\u0fb3\u0f0b\u0f24\u00ae\u0f5f\u0fb3\u0f0b\u0f25\u00ae\u0f5f\u0fb3\u0f0b\u0f26\u00ae\u0f5f\u0fb3\u0f0b\u0f27\u00ae\u0f5f\u0fb3\u0f0b\u0f28\u00ae\u0f5f\u0fb3\u0f0b\u0f29\u00ae\u0f5f\u0fb3\u0f0b\u0f21\u0f20\u00ae\u0f5f\u0fb3\u0f0b\u0f21\u0f21\u00ae\u0f5f\u0fb3\u0f0b\u0f21\u0f22\u00ae\u00ae
+months=\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f44\u0f0b\u0f54\u0f7c\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54\u0f0b\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54\u0f0d\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f0d\u00ae\u00ae
+shortWeekdays=\u00ae\u0f49\u0f72\u0f0b\u0f58\u0f0b\u00ae\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u00ae\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b\u00ae\u0f67\u0fb3\u0f42\u0f0b\u0f54\u0f0b\u00ae\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74\u0f0b\u00ae\u0f66\u0f44\u0f66\u0f0b\u00ae\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b\u00ae
+weekdays=\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f67\u0fb3\u0f42\u0f0b\u0f54\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0f44\u0f66\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b\u00ae
+eras=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b\u0f66\u0f94\u0f7c\u0f53\u0f0d\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0d\u00ae
+ampms=\u0f66\u0f94\u0f0b\u0f51\u0fb2\u0f7c\u0f0b\u00ae\u0f55\u0fb1\u0f72\u0f0b\u0f51\u0fb2\u0f7c\u0f0b\u00ae
+mediumDateFormat=yyyy \u0f63\u0f7c\u0f0b\u0f60\u0f72\u0f0bMMM\u0f59\u0f7a\u0f66\u0f0bd
+longDateFormat=\u0f66\u0fa6\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0byyyy MMMM\u0f60\u0f72\u0f0b\u0f59\u0f7a\u0f66\u0f0bd\u0f51
+territories.GY=\u0f42\u0fb7\u0f74\u0f0b\u0f61\u0f71\u0f0b\u0f53\u0f0d
+territories.TD=\u0f45\u0f7b\u0f4c\u0f0d
+territories.GW=\u0f42\u0fb7\u0f72\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0b\u0f56\u0f72\u0f66\u0f84\u0f0b\u0f66\u0f7c\u0f0d
+territories.GT=\u0f42\u0fb7\u0f7c\u0f0b\u0f4a\u0f7a\u0f0b\u0f58\u0f0b\u0f63\u0f0d
+territories.GR=\u0f42\u0fb7\u0f72\u0f0b\u0f62\u0f71\u0f72\u0f0b\u0f66\u0f72\u0f0d
+territories.GN=\u0f42\u0fb7\u0f72\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.GM=\u0f42\u0fb7\u0f58\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.SV=\u0f68\u0f7a\u0f63\u0f0d \u0f66\u0f71\u0f63\u0f0b\u0f5d\u0f0b\u0f4c\u0f7c\u0f62\u0f0d
+territories.ST=\u0f66\u0f0b\u0f60\u0f7c\u0f0b\u0f4f\u0f7c\u0f51\u0f0b\u0f58\u0f51\u0f0d \u0f51\u0f44\u0f0c\u0f0d \u0f54\u0f84\u0f62\u0f72\u0f53\u0f0b\u0f66\u0f72\u0f0b\u0f54\u0f7a\u0f0d
+territories.GI=\u0f47\u0f72\u0f56\u0f0b\u0f62\u0f71\u0f63\u0f0b\u0f4a\u0f62\u0f0d
+territories.GH=\u0f42\u0fb7\u0f0b\u0f53\u0f0d
+territories.SR=\u0f66\u0f74\u0f0b\u0f62\u0f72\u0f0b\u0f53\u0f71\u0f58\u0f0d
+territories.GE=\u0f47\u0f7c\u0f62\u0f0b\u0f47\u0f72\u0f0b\u0f61\u0f0d
+territories.SO=\u0f66\u0f7c\u0f0b\u0f58\u0f71\u0f63\u0f72\u0f0b\u0f61\u0f0d
+territories.GD=\u0f42\u0fb7\u0f0b\u0f62\u0f72\u0f0b\u0f53\u0f0b\u0f4c\u0f0d
+territories.SN=\u0f66\u0f7a\u0f0b\u0f53\u0f72\u0f0b\u0f42\u0fb7\u0f63\u0f0d
+territories.SM=\u0f66\u0f53\u0f0b\u0f58\u0f7a\u0f0b\u0f62\u0f72\u0f0b\u0f53\u0f7c\u0f0d
+territories.GB=\u0f42\u0fb7\u0f84\u0f62\u0f7a\u0f4a\u0f84\u0f0b\u0f56\u0fb2\u0f71\u0f72\u0f0b\u0f4a\u0f7a\u0f53\u0f0d
+territories.SL=\u0f66\u0f7a\u0f0b\u0f61\u0f62\u0f0b\u0f62\u0f0d \u0f63\u0f72\u0f60\u0f7c\u0f53\u0f0d
+territories.GA=\u0f42\u0f7a\u0f0b\u0f56\u0f7d\u0f53\u0f0d
+territories.SK=\u0f66\u0f0b\u0f63\u0f7d\u0f0b\u0f5d\u0f40\u0fb1\u0f0d
+territories.SI=\u0f66\u0f0b\u0f63\u0f7d\u0f0b\u0f5d\u0f7a\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.SH=\u0f66\u0f7a\u0f53\u0f9a\u0f0d \u0f67\u0f7a\u0f0b\u0f63\u0f72\u0f0b\u0f53\u0f0d
+territories.SG=\u0f66\u0f72\u0f44\u0f92\u0f0b\u0f54\u0f74\u0f62\u0f0d
+territories.SD=\u0f66\u0f74\u0f0b\u0f51\u0f71\u0f53\u0f0d
+territories.SC=\u0f66\u0f71\u0f0b\u0f64\u0f7b\u0f63\u0f0d
+territories.SB=\u0f66\u0f7c\u0f0b\u0f63\u0f7c\u0f0b\u0f58\u0f7c\u0f53\u0f0d \u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f55\u0fb2\u0f53\u0f0b\u0f5a\u0f7c\u0f0b\u0f41\u0f42\u0f0d
+territories.SA=\u0f66\u0f7d\u0f0b\u0f51\u0fb7\u0f72\u0f0b\u0f68\u0f0b\u0f62\u0f71\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.FR=\u0f55\u0f0b\u0f62\u0f71\u0f53\u0f0b\u0f66\u0f72\u0f0d
+territories.RW=\u0f62\u0f74\u0f0b\u0f5d\u0f53\u0f0b\u0f4c\u0f0d
+territories.FK=\u0f55\u0f63\u0f90\u0f0b\u0f63\u0f53\u0f9c\u0f0b\u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f55\u0fb2\u0f53\u0f0d
+territories.053=\u0f68\u0f66\u0f9f\u0fb2\u0f7a\u0f0b\u0f63\u0f72\u0f0b\u0f61\u0f0b\u0f51\u0f44\u0f0b\u0f0d \u0f53\u0f72\u0f60\u0f74\u0f0b\u0f5b\u0f72\u0f0b\u0f63\u0f53\u0f84\u0f4c\u0f0d
+territories.RU=\u0f68\u0f74\u0f0b\u0f62\u0f74\u0f0b\u0f66\u0f74\u0f0d
+territories.FJ=\u0f55\u0f72\u0f0b\u0f47\u0f72\u0f0d
+territories.FI=\u0f55\u0f72\u0f53\u0f0b\u0f63\u0f53\u0f84\u0f4c\u0f0d
+territories.RS=\u0f66\u0f7a\u0f62\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.RO=\u0f62\u0f7c\u0f0b\u0f58\u0f71\u0f0b\u0f53\u0f72\u0f61\u0f0d
+territories.ET=\u0f68\u0f72\u0f0b\u0f50\u0f72\u0f60\u0f7c\u0f0b\u0f54\u0f72\u0f0b\u0f61\u0f0d
+territories.ES=\u0f66\u0f72\u0f0b\u0f54\u0f53\u0f0d
+territories.ER=\u0f68\u0f7a\u0f0b\u0f62\u0f72\u0f0b\u0f4f\u0fb2\u0f7a\u0f0b\u0f68\u0f0d
+territories.EG=\u0f68\u0f72\u0f0b\u0f47\u0f72\u0f56\u0f9a\u0f0d
+territories.EE=\u0f68\u0f72\u0f66\u0f9f\u0f7c\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.EC=\u0f68\u0f72\u0f0b\u0f41\u0fad\u0f0b\u0f4c\u0f7c\u0f62\u0f0d
+territories.DZ=\u0f68\u0f63\u0f0b\u0f47\u0f72\u0f0b\u0f62\u0f72\u0f0b\u0f61\u0f0d
+territories.QA=\u0f40\u0f0b\u0f4f\u0f71\u0f62\u0f0d
+territories.DO=\u0f4c\u0f7c\u0f0b\u0f58\u0f72\u0f53\u0f53\u0f72\u0f0b\u0f40\u0f53\u0f0b\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.PY=\u0f54\u0f71\u0f0b\u0f62\u0f0b\u0f42\u0f7a\u0f0d
+territories.DM=\u0f4c\u0f7c\u0f0b\u0f58\u0f72\u0f53\u0f0b\u0f53\u0f72\u0f0b\u0f40\u0f0d
+territories.PW=\u0f54\u0f0b\u0f63\u0f7d\u0f0d
+territories.DK=\u0f4c\u0f7a\u0f53\u0f0b\u0f58\u0f71\u0f62\u0f90\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.DJ=\u0f5b\u0f72\u0f0b\u0f56\u0f74\u0f0b\u0f4f\u0f72\u0f0d
+territories.PT=\u0f54\u0f7c\u0f62\u0f0b\u0f4f\u0f74\u0f0b\u0f42\u0fb7\u0f63\u0f0d
+territories.DE=\u0f60\u0f47\u0f62\u0f0b\u0f58\u0f53\u0f72\u0f0d
+territories.PL=\u0f54\u0f7c\u0f0b\u0f63\u0f53\u0f9c\u0f0d
+territories.PK=\u0f54\u0f40\u0f72\u0f0b\u0f66\u0f9f\u0f71\u0f53\u0f0d
+territories.PH=\u0f55\u0f72\u0f0b\u0f63\u0f72\u0f0b\u0f54\u0f72\u0f53\u0f66\u0f84\u0f0d
+territories.PG=\u0f54\u0f0b\u0f54\u0f74\u0f0b\u0f68\u0f0d \u0f53\u0f72\u0f60\u0f74\u0f0d \u0f42\u0fb7\u0f72\u0f0b\u0f53\u0f72\u0f0d
+territories.CZ=\u0f45\u0f7b\u0f42\u0f0b\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.PE=\u0f54\u0f7a\u0f0b\u0f62\u0f74\u0f0d
+territories.CY=\u0f66\u0f71\u0f61\u0f7a\u0f0b\u0f54\u0f0b\u0f62\u0f66\u0f84\u0f0d
+territories.PA=\u0f54\u0f0b\u0f53\u0f71\u0f0b\u0f58\u0f0d
+territories.CU=\u0f41\u0fb1\u0f74\u0f60\u0f74\u0f0b\u0f56\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.CR=\u0f40\u0f7c\u0f0b\u0f66\u0f84\u0f4a\u0f0b\u0f62\u0f72\u0f0b\u0f40\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.CO=\u0f40\u0f7c\u0f0b\u0f63\u0f7c\u0f58\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.CN=\u0f62\u0f92\u0fb1\u0f0b\u0f53\u0f42\u0f0d
+territories.CM=\u0f40\u0f0b\u0f58\u0f7a\u0f0b\u0f62\u0f74\u0f53\u0f0d
+territories.CL=\u0f45\u0f72\u0f0b\u0f63\u0f72\u0f0b\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.CK=\u0f40\u0f71\u0f74\u0f42 \u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f55\u0fb2\u0f7a\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.CI=\u0f40\u0f7c\u0f0b\u0f4a\u0f7a\u0f0b\u0f4c\u0f72\u0f0d \u0f68\u0f72\u0f0b\u0f5d\u0f7c\u0f0b\u0f62\u0f7a\u0f0d
+territories.OM=\u0f68\u0f7c\u0f0b\u0f58\u0f53\u0f0d
+territories.CA=CA
+territories.BZ=\u0f56\u0f7a\u0f0b\u0f63\u0f72\u0f5b\u0f0d
+territories.BY=\u0f56\u0f7a\u0f0b\u0f63\u0f74\u0f0b\u0f62\u0f74\u0f0b\u0f66\u0f74\u0f0d
+territories.BW=\u0f56\u0f7c\u0f59\u0f0b\u0f5d\u0f0b\u0f53\u0f0d
+territories.BT=\u0f60\u0f56\u0fb2\u0f74\u0f42\u0f0b\u0f61\u0f74\u0f63\u0f0d
+territories.BS=\u0f56\u0fb7\u0f71\u0f0b\u0f58\u0f66\u0f84\u0f0d
+territories.BR=\u0f56\u0f0b\u0f62\u0f71\u0f0b\u0f5b\u0f72\u0f63\u0f0d
+territories.019=\u0f68\u0f0b\u0f58\u0f7a\u0f0b\u0f62\u0f72\u0f0b\u0f40\u0f0d
+territories.NZ=\u0f53\u0f72\u0f60\u0f74\u0f0b\u0f5b\u0f72\u0f0b\u0f63\u0f53\u0f84\u0f4c\u0f0d
+territories.BO=\u0f56\u0f7c\u0f0b\u0f63\u0f72\u0f0b\u0f5d\u0f72\u0f61\u0f0d
+territories.BN=\u0f56\u0f74\u0f0b\u0f62\u0f74\u0f0b\u0f53\u0f7a\u0f0d
+territories.BM=\u0f56\u0f62\u0f0b\u0f58\u0f74\u0f0b\u0f4c\u0f0d
+territories.NU=\u0f53\u0f72\u0f60\u0f74\u0f0b\u0f5d\u0f0d
+territories.BJ=\u0f56\u0f71\u0f7a\u0f0b\u0f53\u0f72\u0f53\u0f0d
+territories.BI=\u0f56\u0f74\u0f0b\u0f62\u0f74\u0f53\u0f0b\u0f4c\u0f72\u0f0d
+territories.BH=\u0f56\u0fb7\u0f71\u0f0b\u0f62\u0f7a\u0f53\u0f0d
+territories.NR=\u0f53\u0f7d\u0f0b\u0f62\u0f74\u0f0d
+territories.BG=\u0f56\u0f74\u0f63\u0f0b\u0f42\u0f0b\u0f62\u0f72\u0f0b\u0f61\u0f0d
+territories.BF=\u0f56\u0f62\u0f40\u0f72\u0f0b\u0f53\u0f0d \u0f55\u0f66\u0f7c\u0f0d
+territories.NP=\u0f56\u0f63\u0f0b\u0f61\u0f74\u0f63\u0f0d
+territories.BE=\u0f56\u0f7a\u0f63\u0f0b\u0f47\u0f72\u0f0b\u0f61\u0f58\u0f0d
+territories.ZZ=\u0f58\u0f72\u0f0b\u0f64\u0f7a\u0f66\u0f0b\u0f54\u0f60\u0f58\u0f0b\u0f55\u0f53\u0f0b\u0f58\u0f7a\u0f51\u0f0b\u0f40\u0fb1\u0f72\u0f0b\u0f66\u0f0b\u0f41\u0f74\u0f63\u0f0d
+territories.NO=\u0f53\u0f7c\u0f62\u0f0b\u0f5d\u0f7a\u0f0d
+territories.BD=\u0f56\u0f44\u0f92\u0f0b\u0f63\u0f0b\u0f51\u0f7a\u0f64\u0f0d
+territories.BB=\u0f56\u0f71\u0f62\u0fa6\u0f0b\u0f4c\u0f7c\u0f66\u0f84\u0f0d
+territories.ZW=\u0f5b\u0f72\u0f58\u0f0b\u0f56\u0fb7\u0f71\u0f0b\u0f56\u0f7a\u0f0d
+territories.NL=\u0f53\u0f7a\u0f0b\u0f50\u0f62\u0f0b\u0f63\u0f53\u0f9c\u0f0d
+territories.BA=\u0f56\u0f7c\u0f66\u0fa3\u0f72\u0f0b\u0f61\u0f0b\u0f51\u0f44\u0f0b\u0f67\u0f62\u0fab\u0f7c\u0f0b\u0f42\u0f7c\u0f0b\u0f5d\u0f72\u0f0b\u0f53\u0f0d
+territories.NI=\u0f53\u0f72\u0f0b\u0f40\u0f0b\u0f62\u0f0b\u0f42\u0f74\u0f0b\u0f68\u0f0d
+territories.NG=\u0f53\u0f71\u0f60\u0f72\u0f0b\u0f47\u0f72\u0f0b\u0f62\u0f72\u0f0b\u0f61\u0f0d
+territories.AZ=\u0f68\u0f5b\u0f62\u0f0b\u0f56\u0f61\u0f7a\u0f0b\u0f47\u0f53\u0f0d
+territories.NE=\u0f53\u0f60\u0f72\u0f0b\u0f47\u0f62\u0f0d
+territories.AW=\u0f68\u0f0b\u0f62\u0f74\u0f0b\u0f56\u0f0d
+territories.ZM=\u0f5b\u0f58\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.AU=\u0f68\u0f66\u0f9f\u0fb2\u0f7a\u0f0b\u0f63\u0f72\u0f0b\u0f61\u0f0d
+territories.NA=\u0f53\u0f0b\u0f58\u0f72\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.AT=\u0f68\u0f66\u0f9f\u0fb2\u0f72\u0f0b\u0f61\u0f0d
+territories.AR=\u0f68\u0f62\u0f0b\u0f47\u0f7a\u0f53\u0f0b\u0f4a\u0f72\u0f0b\u0f53\u0f0d
+territories.AQ=\u0f63\u0fb7\u0f7c\u0f0b\u0f62\u0fa9\u0f7a\u0f60\u0f72\u0f0b\u0f58\u0f50\u0f60\u0f0b\u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f0d
+territories.MZ=\u0f58\u0f7c\u0f0b\u0f5b\u0f58\u0f0b\u0f56\u0f72\u0f42\u0f0d
+territories.AO=AO
+territories.MY=\u0f58\u0f0b\u0f63\u0f7a\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f0d
+territories.MX=\u0f58\u0f7a\u0f40\u0f0b\u0f66\u0f72\u0f0b\u0f40\u0f7c\u0f0d
+territories.AM=\u0f68\u0f62\u0f0b\u0f58\u0f7a\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.005=005
+territories.MW=\u0f58\u0f71\u0f0b\u0f63\u0f71\u0f0b\u0f5d\u0f72\u0f0d
+territories.AL=\u0f68\u0f63\u0f0b\u0f56\u0f71\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.MV=\u0f58\u0f63\u0f0b\u0f51\u0fad\u0f72\u0f56\u0f0d
+territories.ZA=\u0f63\u0fb7\u0f7c\u0f0b \u0f68\u0f55\u0fb2\u0f72\u0f0b\u0f40\u0f0d
+territories.MU=\u0f58\u0f7d\u0f0b\u0f62\u0f72\u0f64\u0f66\u0f84\u0f0d
+territories.002=002
+territories.MT=\u0f58\u0f63\u0f0b\u0f4a\u0f0d
+territories.AI=\u0f68\u0f44\u0f0b\u0f42\u0f74\u0f60\u0f72\u0f0b\u0f63\u0f0d
+territories.001=\u0f60\u0f5b\u0f58\u0f0b\u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f0d
+territories.MR=\u0f58\u0f7d\u0f0b\u0f62\u0f72\u0f0b\u0f4f\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.AG=\u0f68\u0f7a\u0f53\u0f0b\u0f4a\u0f72\u0f0b\u0f42\u0f74\u0f0b\u0f51\u0f44\u0f0b\u0f0d \u0f56\u0fb7\u0f62\u0f0b\u0f56\u0f74\u0f0b\u0f4c\u0f0d
+territories.AF=\u0f68\u0f55\u0f0b\u0f42\u0f0b\u0f53\u0f72\u0f0b\u0f66\u0f9f\u0f71\u0f53\u0f0d
+territories.AE=\u0f68\u0f0b\u0f62\u0f56\u0f0d \u0f68\u0f72\u0f0b\u0f58\u0f72\u0f0b\u0f62\u0f4a\u0f84\u0f0d \u0f46\u0f72\u0f42\u0f0b\u0f66\u0f92\u0fb2\u0f72\u0f63\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.MO=\u0f58\u0f7a\u0f0b\u0f40\u0f60\u0f7c\u0f0d
+territories.AD=\u0f68\u0f7a\u0f53\u0f0b\u0f4c\u0f7c\u0f0b\u0f62\u0f0d
+territories.MN=\u0f58\u0f7c\u0f44\u0f92\u0f7c\u0f0b\u0f63\u0f72\u0f0b\u0f61\u0f0d
+territories.MM=\u0f60\u0f56\u0f62\u0f0b\u0f58\u0f0d
+territories.ML=\u0f58\u0f0b\u0f63\u0f72\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.MH=\u0f58\u0f71\u0f62\u0f0b\u0f64\u0f63\u0f0b\u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f55\u0fb2\u0f7a\u0f53\u0f0d
+territories.MG=\u0f58\u0f0b\u0f51\u0f71\u0f0b\u0f42\u0fb7\u0f66\u0f90\u0f71\u0f62\u0f0d
+territories.MC=\u0f58\u0f7c\u0f0b\u0f53\u0f0b\u0f40\u0f7c\u0f0d
+territories.MA=\u0f58\u0f7c\u0f44\u0f92\u0f7c\u0f0b\u0f63\u0f72\u0f0b\u0f61\u0f0d
+territories.YE=\u0f61\u0f7a\u0f0b\u0f58\u0f7a\u0f53\u0f0d
+territories.LY=\u0f63\u0f72\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.LV=\u0f63\u0f4f\u0f0b\u0f56\u0f72\u0f0b\u0f61\u0f0d
+territories.LU=\u0f63\u0f40\u0f0b\u0f5b\u0f58\u0f0b\u0f56\u0f7c\u0f62\u0f92\u0f0d
+territories.LT=\u0f63\u0f72\u0f0b\u0f50\u0f74\u0f0b\u0f68\u0f7a\u0f0b\u0f53\u0f72\u0f0b\u0f61\u0f0d
+territories.LS=\u0f63\u0f7a\u0f0b\u0f66\u0f7c\u0f0b\u0f50\u0f7c\u0f0d
+territories.LR=\u0f63\u0f72\u0f0b\u0f56\u0f7a\u0f0b\u0f62\u0f72\u0f0b\u0f61\u0f0d
+territories.150=\u0f61\u0f74\u0f0b\u0f62\u0f7c\u0f56\u0f0d
+territories.LK=\u0f64\u0fb2\u0f71\u0f72\u0f0b\u0f63\u0f44\u0f0b\u0f40\u0f0d
+territories.LI=\u0f63\u0f7a\u0f42\u0f0b\u0f4f\u0f7a\u0f53\u0f0b\u0f5a\u0f72\u0f53\u0f0d
+territories.LC=\u0f66\u0f7a\u0f53\u0f9a\u0f0d \u0f63\u0f74\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f0d
+territories.LB=\u0f63\u0f7a\u0f56\u0f0b\u0f53\u0f7c\u0f53\u0f0d
+territories.LA=\u0f63\u0f71\u0f0b\u0f60\u0f7c\u0f66\u0f0d
+territories.KZ=\u0f41\u0f0b\u0f5b\u0f71\u0f42\u0f0b\u0f66\u0f9f\u0f71\u0f53\u0f0d
+territories.KY=\u0f41\u0f7a\u0f0b\u0f58\u0f7a\u0f53\u0f0b\u0f42\u0fb3\u0f72\u0f44\u0f0b\u0f55\u0fb2\u0f53\u0f0d
+territories.KW=\u0f40\u0f74\u0f0b\u0f5d\u0f7a\u0f51\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.142=\u0f68\u0f7a\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f0d
+territories.KR=\u0f40\u0f7c\u0f0b\u0f62\u0f72\u0f0b\u0f61\u0f0d \u0f63\u0fb7\u0f7c\u0f0b\u0f58\u0f0d
+territories.KN=\u0f66\u0f7a\u0f53\u0f9a\u0f0d \u0f40\u0f72\u0f4a\u0f9a\u0f66\u0f84\u0f0d \u0f51\u0f44\u0f0c\u0f0d \u0f53\u0f7a\u0f0b\u0f56\u0f72\u0f66\u0f84\u0f0d
+territories.KI=\u0f40\u0f72\u0f0b\u0f62\u0f72\u0f0b\u0f56\u0f71\u0f0b\u0f4f\u0f72\u0f0d
+territories.WS=\u0f53\u0f74\u0f0b\u0f56\u0f0b\u0f66\u0f0b\u0f58\u0f7c\u0f0b\u0f60\u0f0d
+territories.KH=\u0f40\u0f58\u0f0b\u0f54\u0f74\u0f0b\u0f45\u0f72\u0f0b\u0f61\u0f0d
+territories.KG=\u0f41\u0f72\u0f62\u0f0b\u0f42\u0f72\u0f5b\u0f0b\u0f66\u0f9f\u0f71\u0f53\u0f0d
+territories.KE=\u0f41\u0f7a\u0f53\u0f0b\u0f49\u0f72\u0f0b\u0f61\u0f0d
+territories.JP=\u0f47\u0f0b\u0f54\u0f71\u0f53\u0f0d
+territories.JO=\u0f47\u0f7c\u0f62\u0f0b\u0f4c\u0f53\u0f0d
+territories.JM=\u0f5b\u0f0b\u0f58\u0f7a\u0f0b\u0f40\u0f0d
+territories.VU=\u0f5d\u0f0b\u0f53\u0f74\u0f0b\u0f68\u0f0b\u0f50\u0f74\u0f0d
+territories.VN=\u0f5d\u0f7a\u0f51\u0f0b\u0f53\u0f58\u0f0d
+territories.VE=\u0f5d\u0f7a\u0f0b\u0f53\u0f72\u0f0b\u0f5b\u0f74\u0f60\u0f7a\u0f0b\u0f63\u0f0d
+territories.VC=\u0f66\u0f7a\u0f53\u0f9a\u0f0d \u0f5d\u0f72\u0f53\u0f0b\u0f66\u0f53\u0f0d \u0f51\u0f44\u0f0c\u0f0d \u0f42\u0fb7\u0f72\u0f62\u0f72\u0f53\u0f0b\u0f4c\u0f72\u0f53\u0f0d
+territories.VA=\u0f51\u0f58\u0f0b\u0f54\u0f60\u0f72\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f58\u0f66\u0f0d
+territories.IT=\u0f68\u0f72\u0f0b\u0f4a\u0f0b\u0f63\u0f72\u0f0d
+territories.IS=\u0f68\u0f0b\u0f68\u0f72\u0f0b\u0f66\u0f72\u0f0b\u0f63\u0f53\u0f51\u0f0d
+territories.IR=\u0f68\u0f72\u0f0b\u0f62\u0f71\u0f53\u0f0d
+territories.IQ=\u0f68\u0f72\u0f0b\u0f62\u0f42\u0f0d
+territories.UZ=\u0f68\u0f74\u0f5b\u0f0b\u0f56\u0f7a\u0f0b\u0f40\u0f72\u0f66\u0f9f\u0f71\u0f53\u0f0d
+territories.UY=\u0f68\u0f74\u0f0b\u0f62\u0f74\u0f0b\u0f42\u0fb7\u0f7a\u0f0d
+territories.IN=\u0f62\u0f92\u0fb1\u0f0b\u0f42\u0f62\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f53\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.IL=\u0f68\u0f72\u0f0b\u0f5b\u0f84\u0f0b\u0f62\u0f7a\u0f63\u0f0d
+territories.US=\u0f68\u0f0b\u0f62\u0f72\u0f0b\u0f46\u0f72\u0f42\u0f0b\u0f66\u0f92\u0fb2\u0f72\u0f63\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.IE=\u0f68\u0f0b\u0f61\u0f62\u0f0b\u0f63\u0f53\u0f4c\u0f0d
+territories.ID=\u0f68\u0f72\u0f53\u0f0b\u0f4c\u0f7c\u0f0b\u0f53\u0f7a\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f0d
+territories.UG=\u0f61\u0f74\u0f0b\u0f42\u0f53\u0f0b\u0f4c\u0f0d
+territories.UA=\u0f61\u0f74\u0f0b\u0f40\u0f62\u0f7a\u0f53\u0f0d
+territories.HU=\u0f67\u0f44\u0f92\u0f0b\u0f62\u0f72\u0f0d
+territories.HT=\u0f67\u0f7a\u0f0b\u0f4f\u0f72\u0f0d
+territories.HR=\u0f40\u0f74\u0f62\u0f7c\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f0d \u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f58\u0f50\u0f74\u0f53\u0f0b\u0f62\u0f92\u0fb1\u0f63\u0f0b\u0f41\u0f56\u0f0d
+territories.HN=\u0f67\u0f7c\u0f53\u0f0b\u0f51\u0f74\u0f0b\u0f62\u0f66\u0f84\u0f0d
+territories.TV=\u0f50\u0f74\u0f0b\u0f5d\u0f0b\u0f63\u0f74\u0f0d
+territories.HK=\u0f67\u0f7c\u0f44\u0f0b\u0f40\u0f7c\u0f44\u0f0c\u0f0d
+territories.TR=\u0f4f\u0f74\u0f62\u0f40\u0f72\u0f0d
+languages.en_GB=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64\u0f0d (\u0f62\u0fa6\u0f72\u0f0b\u0f62\u0f72\u0f0b\u0f4a\u0f72\u0f64\u0f0b)
+languages.ja=\u0f62\u0f72\u0f0b\u0f54\u0f72\u0f53\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.zu=\u0f5f\u0f74\u0f0b\u0f63\u0f74\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.und=\u0f58\u0f72\u0f60\u0f72\u0f0b\u0f64\u0f7a\u0f66\u0f0b\u0f62\u0f9f\u0f7c\u0f42\u0f66\u0f0b\u0f58\u0f0b\u0f56\u0fb1\u0f74\u0f44\u0f0b\u0f56\u0f0d \u0f61\u0f44\u0f0b\u0f53\u0f0b\u0f46\u0f51\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f45\u0f53\u0f0b\u0f42\u0fb1\u0f72\u0f0b\u0f66\u0f90\u0f51\u0f0b\u0f56\u0f62\u0fa1\u0f0d
+languages.en=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64\u0f0d
+languages.hi=\u0f62\u0f92\u0fb1\u0f0b\u0f66\u0f90\u0f51\u0f72\u0f0d
+languages.it=\u0f51\u0f56\u0fb1\u0f72\u0f0b\u0f4f\u0f0b\u0f0b\u0f63\u0f60\u0f72\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.ne=\u0f53\u0f7a\u0f0b\u0f54\u0f71\u0f63\u0f72\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.fr=\u0f67\u0fa5\u0f0b\u0f62\u0f53\u0f0b\u0f66\u0f72\u0f60\u0f72\u0f0b\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.zh=\u0f62\u0f92\u0fb1\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.ru=\u0f68\u0f74\u0f0b\u0f62\u0f74\u0f0b\u0f66\u0f74\u0f0b\u0f66\u0f90\u0f51\u0f0b
+languages.en_US=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64\u0f0d (\u0f68\u0f0b\u0f62\u0f72\u0f0b)
+languages.dz=\u0f62\u0fab\u0f7c\u0f44\u0f0b\u0f41\u0f0d
+languages.zen=\u0f5f\u0f7a\u0f0b\u0f53\u0f0b\u0f42\u0f71\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.gu=\u0f42\u0f74\u0f47\u0f0b\u0f62\u0f71\u0f4f\u0f72\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.en_AU=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64\u0f0d (\u0f68\u0f66\u0f9f\u0fb2\u0f0b\u0f63\u0f72\u0f0b\u0f61\u0f0b)
+languages.pt_BR=\u0f54\u0f0b\u0f5e\u0f60\u0f72\u0f0b\u0f58\u0f72\u0f0d \u0f55\u0f72\u0f0b\u0f50\u0f7c\u0f0b\u0f61\u0f60\u0f72\u0f0b\u0f58\u0f72\u0f0d
+languages.pt=\u0f55\u0f72\u0f0b\u0f50\u0f7c\u0f0b\u0f61\u0f60\u0f72\u0f0d
+languages.zh_Hans=\u0f66\u0f9f\u0f56\u0f66\u0f0b\u0f56\u0f62\u0fa1\u0f60\u0f72\u0f0d \u0f40\u0fb2\u0f74\u0f44\u0f0b\u0f42\u0f7c\u0f60\u0f72\u0f0d
+languages.en_CA=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64\u0f0d (\u0f41\u0f7a\u0f0b\u0f53\u0f0b\u0f4c\u0f0b)
+languages.zh_Hant=\u0f66\u0fb2\u0f7c\u0f63\u0f0b\u0f62\u0f92\u0fb1\u0f74\u0f53\u0f0b\u0f42\u0fb1\u0f72\u0f0d
+languages.la=\u0f63\u0f7a\u0f0b\u0f4a\u0f72\u0f53\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.de=\u0f60\u0f47\u0f62\u0f0b\u0f58\u0f53\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.gaa=\u0f42\u0f71\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.es=\u0f5e\u0f72\u0f0b\u0f54\u0f53\u0f0b\u0f61\u0f60\u0f72\u0f0d
+languages.zza=\u0f5f\u0f0b\u0f5f\u0f71\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.zun=\u0f5f\u0f74\u0f0b\u0f53\u0f72\u0f0b\u0f66\u0f90\u0f51\u0f0d
+languages.bo=\u0f56\u0f7c\u0f51\u0f0b\u0f66\u0f90\u0f51\u0f0d
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bs.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bs.properties
index 678a363..49489aa 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bs.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_bs.properties
@@ -8,10 +8,133 @@
decimalSeparator=,
groupingSeparator=.
currenciesDisplayName.BAM=Konvertibilna marka
+currenciesDisplayName.XXX=Nepoznata ili neva\u017ee\u0107a valuta
currenciesSymbol.BAM=KM
-shortMonths=Jan®Feb®Mar®Apr®Maj®Jun®Jul®Avg®Sep®Okt®Nov®Dec®®
-months=Januar®Februar®Mart®April®Maj®Juni®Juli®Avgust®Septembar®Oktobar®Novembar®Decembar®®
-shortWeekdays=®Ned®Pon®Uto®Sri®\u010cet®Pet®Sub®
-weekdays=®Nedjelja®Ponedjeljak®Utorak®Srijeda®\u010cetvrtak®Petak®Subota®
-firstDayOfWeek=mon
-eras=BC®AD®
+currenciesSymbol.XXX=XXX
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMaj\u00aeJun\u00aeJul\u00aeAvg\u00aeSep\u00aeOkt\u00aeNov\u00aeDec\u00ae\u00ae
+months=Januar\u00aeFebruar\u00aeMart\u00aeApril\u00aeMaj\u00aeJuni\u00aeJuli\u00aeAvgust\u00aeSeptembar\u00aeOktobar\u00aeNovembar\u00aeDecembar\u00ae\u00ae
+shortWeekdays=\u00aeNed\u00aePon\u00aeUto\u00aeSri\u00ae\u010cet\u00aePet\u00aeSub\u00ae
+weekdays=\u00aeNedjelja\u00aePonedjeljak\u00aeUtorak\u00aeSrijeda\u00ae\u010cetvrtak\u00aePetak\u00aeSubota\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=Tonga
+territories.BA=Bosna i Hercegovina
+territories.ZZ=Nepoznata ili neva\u017ee\u0107a oblast
+territories.RS=Srbija
+territories.ME=Crna Gora
+languages.es=\u0161panjolski
+languages.ku=kurdski
+languages.eo=esperanto
+languages.en=engleski
+languages.el=gr\u010dki
+languages.ko=koreanski
+languages.kn=kannada
+languages.km=kambod\u017eanski
+languages.ka=gruzijski
+languages.jv=javanski
+languages.fil=filipinski
+languages.pt=portugalski
+languages.ps=pakistanski
+languages.de=njema\u010dki
+languages.pl=poljski
+languages.da=danski
+languages.tlh=klingonski
+languages.ja=japanski
+languages.vi=vijetnamski
+languages.cy=vel\u0161ki
+languages.pa=pend\u017eabi
+languages.cs=\u010de\u0161ki
+languages.it=talijanski
+languages.is=islandski
+languages.uz=uzbekistanski
+languages.or=indijski
+languages.ur=urdu
+languages.ca=katalonski
+languages.ie=me\u0111ujezi\u010dni
+languages.id=indonezijski
+languages.uk=ukrajinski
+languages.ia=interlingua
+languages.oc=oksitanski
+languages.ug=uighur
+languages.hy=armenski
+languages.bs=bosanski
+languages.br=bretonac
+languages.hu=ma\u0111arski
+languages.bo=tibetanski
+languages.pt_PT=portugalski (Portugal)
+languages.bn=bengalski
+languages.hr=hrvatski
+languages.tw=twi
+languages.bh=bihari
+languages.bg=bugarski
+languages.no=norve\u0161ki
+languages.be=bjeloruski
+languages.nn=norve\u0161ki (novonorve\u0161ki)
+languages.hi=hindu
+languages.tr=turski
+languages.nl=holandski
+languages.zu=zulu
+languages.he=hebrejski
+languages.tk=turkmenski
+languages.ne=nepalski
+languages.az=azerbejd\u017eanski
+languages.ti=tigrinya (eritrejski)
+languages.th=tajlandski
+languages.te=telugu
+languages.zh=kineski
+languages.as=asameski
+languages.ar=arapski
+languages.ta=tamilski
+languages.gu=gud\u017earati
+languages.am=amharski
+languages.mt=malte\u0161ki
+languages.ms=malajski
+languages.gn=guarani
+languages.sw=svahili
+languages.mr=marati
+languages.sv=\u0161vedski
+languages.gl=galicijski
+languages.su=sudanski
+languages.af=afrikaans
+languages.st=sesoto
+languages.mn=mongolski
+languages.sr=srpski
+languages.sq=albanski
+languages.ml=malajalamski
+languages.mk=makedonski
+languages.so=somalski
+languages.gd=\u0161kotski gelski
+languages.sl=slovena\u010dki
+languages.sk=slova\u010dki
+languages.ga=irski
+languages.si=sinhaleski
+languages.sh=srpsko-hrvatski
+languages.pt_BR=portugalski (Brazil)
+languages.yi=jidi\u0161
+languages.sd=sindi
+languages.fy=frizijski
+languages.sa=sanskrit
+languages.fr=francuski
+languages.lv=latvijski
+languages.lt=litvanski
+languages.fo=farski
+languages.ru=ruski
+languages.lo=laothian
+languages.ln=n/a
+languages.fi=finski
+languages.ro=rumunski
+languages.fa=perzijski
+languages.und=nepoznati ili neva\u017ee\u0107i jezik
+languages.la=latinski
+languages.xh=bantu
+languages.eu=baskijski
+languages.ky=kirgiski
+languages.et=estonski
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_byn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_byn.properties
index f300c23..cf514c8 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_byn.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_byn.properties
@@ -5,9 +5,10 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
@@ -16,30 +17,34 @@ currenciesDisplayName.ETB=\u12e8\u12a2\u1275\u12ee\u1335\u12eb \u1265\u122d
currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u1295\u12f5 \u1235\u1270\u122d\u120a\u1295\u130d
currenciesSymbol.ETB=$
currenciesSymbol.CNY=Y
-currenciesSymbol.ERN=$
-currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u120d\u12f0\u1275®\u12ab\u1265\u12bd®\u12ad\u1265\u120b®\u134b\u1305\u12ba®\u12ad\u1262\u1245®\u121d/\u1275®\u12b0\u122d®\u121b\u122d\u12eb®\u12eb\u12b8\u1292®\u1218\u1270\u1209®\u121d/\u121d®\u1270\u1215\u1233®®
-months=\u120d\u12f0\u1275\u122a®\u12ab\u1265\u12bd\u1265\u1272®\u12ad\u1265\u120b®\u134b\u1305\u12ba\u122a®\u12ad\u1262\u1245\u122a®\u121d\u12aa\u12a4\u120d \u1275\u1313\u0305\u1292\u122a®\u12b0\u122d\u12a9®\u121b\u122d\u12eb\u121d \u1275\u122a®\u12eb\u12b8\u1292 \u1218\u1233\u1245\u1208\u122a®\u1218\u1270\u1209®\u121d\u12aa\u12a4\u120d \u1218\u123d\u12c8\u122a®\u1270\u1215\u1233\u1235\u122a®®
-shortWeekdays=®\u1230/\u1245®\u1230\u1291®\u1230\u120a\u131d®\u1208\u1313®\u12a3\u121d\u12f5®\u12a3\u122d\u1265®\u1230/\u123d®
-weekdays=®\u1230\u1295\u1260\u122d \u1245\u12f3\u12c5®\u1230\u1291®\u1230\u120a\u131d®\u1208\u1313 \u12c8\u122a \u1208\u1265\u12cb®\u12a3\u121d\u12f5®\u12a3\u122d\u1265®\u1230\u1295\u1260\u122d \u123d\u1313\u12c5®
-firstDayOfWeek=sat
-eras=\u12ed\u1305®\u12a3\u12f5®
-ampms=\u134b\u12f1\u1235 \u1303\u1265®\u134b\u12f1\u1235 \u12f0\u121d\u1262®
+shortMonths=\u120d\u12f0\u1275\u00ae\u12ab\u1265\u12bd\u00ae\u12ad\u1265\u120b\u00ae\u134b\u1305\u12ba\u00ae\u12ad\u1262\u1245\u00ae\u121d/\u1275\u00ae\u12b0\u122d\u00ae\u121b\u122d\u12eb\u00ae\u12eb\u12b8\u1292\u00ae\u1218\u1270\u1209\u00ae\u121d/\u121d\u00ae\u1270\u1215\u1233\u00ae\u00ae
+months=\u120d\u12f0\u1275\u122a\u00ae\u12ab\u1265\u12bd\u1265\u1272\u00ae\u12ad\u1265\u120b\u00ae\u134b\u1305\u12ba\u122a\u00ae\u12ad\u1262\u1245\u122a\u00ae\u121d\u12aa\u12a4\u120d \u1275\u131f\u1292\u122a\u00ae\u12b0\u122d\u12a9\u00ae\u121b\u122d\u12eb\u121d \u1275\u122a\u00ae\u12eb\u12b8\u1292 \u1218\u1233\u1245\u1208\u122a\u00ae\u1218\u1270\u1209\u00ae\u121d\u12aa\u12a4\u120d \u1218\u123d\u12c8\u122a\u00ae\u1270\u1215\u1233\u1235\u122a\u00ae\u00ae
+shortWeekdays=\u00ae\u1230/\u1245\u00ae\u1230\u1291\u00ae\u1230\u120a\u131d\u00ae\u1208\u1313\u00ae\u12a3\u121d\u12f5\u00ae\u12a3\u122d\u1265\u00ae\u1230/\u123d\u00ae
+weekdays=\u00ae\u1230\u1295\u1260\u122d \u1245\u12f3\u12c5\u00ae\u1230\u1291\u00ae\u1230\u120a\u131d\u00ae\u1208\u1313 \u12c8\u122a \u1208\u1265\u12cb\u00ae\u12a3\u121d\u12f5\u00ae\u12a3\u122d\u1265\u00ae\u1230\u1295\u1260\u122d \u123d\u1313\u12c5\u00ae
+eras=\u12ed\u1305\u00ae\u12a3\u12f5\u00ae
+ampms=\u134b\u12f1\u1235 \u1303\u1265\u00ae\u134b\u12f1\u1235 \u12f0\u121d\u1262\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1361 dd MMMM \u130d\u122d\u130b yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.AU=\u12a0\u12cd\u1235\u1275\u122c\u120a\u12eb
territories.TD=\u127b\u12f5
-territories.AT=\u12a6\u1235\u1275\u122a\u12eb
territories.GY=\u1309\u12eb\u1293
-territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
+territories.AT=\u12a6\u1235\u1275\u122a\u12eb
territories.GW=\u1262\u1233\u12ce
+territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
territories.MY=\u121b\u120c\u12e2\u12eb
territories.MX=\u121c\u12ad\u1232\u12ae
territories.AN=\u1294\u12d8\u122d\u120b\u1295\u12f5\u1235 \u12a0\u1295\u1272\u120d\u1235
-territories.AM=\u12a0\u122d\u121c\u1292\u12eb
territories.GR=\u130d\u122a\u12ad
+territories.AM=\u12a0\u122d\u121c\u1292\u12eb
territories.ZA=\u12f0\u1261\u1265 \u12a0\u134d\u122a\u12ab
-territories.AL=\u12a0\u120d\u1263\u1292\u12eb
territories.GQ=\u12a2\u12b3\u1276\u122a\u12eb\u120d \u130a\u1292
+territories.AL=\u12a0\u120d\u1263\u1292\u12eb
territories.MU=\u121b\u1229\u1238\u1235
territories.SY=\u1232\u122a\u12eb
territories.MT=\u121b\u120d\u1273
@@ -85,13 +90,13 @@ territories.KM=\u12ae\u121e\u122e\u1235
territories.EH=\u121d\u12d5\u122b\u1263\u12ca \u1233\u1205\u122b
territories.EG=\u130d\u1265\u133d
territories.EE=\u12a4\u1235\u1276\u1292\u12eb
-territories.EC=\u12a2\u12b3\u12f6\u122d
territories.KH=\u12ab\u121d\u1266\u12f2\u12eb
+territories.EC=\u12a2\u12b3\u12f6\u122d
territories.DZ=\u12a0\u120d\u1304\u122a\u12eb
territories.DO=\u12f6\u121a\u1292\u12ad \u122a\u1351\u1265\u120a\u12ad
territories.DM=\u12f6\u121a\u1292\u12ab
-territories.DK=\u12f4\u1295\u121b\u122d\u12ad
territories.JP=\u1303\u1353\u1295
+territories.DK=\u12f4\u1295\u121b\u122d\u12ad
territories.JO=\u1306\u122d\u12f3\u1295
territories.PR=\u1356\u122d\u1273 \u122a\u12ae
territories.JM=\u1303\u121b\u12ed\u12ab
@@ -107,13 +112,13 @@ territories.VG=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u12f5\u1295\u130d\u120d \u1
territories.CV=\u12ac\u1355 \u126c\u122d\u12f4
territories.VE=\u126c\u1295\u12d9\u12cc\u120b
territories.CS=\u1230\u122d\u1262\u12eb
-territories.CO=\u12ae\u120e\u121d\u1262\u12eb
territories.IT=\u1323\u120a\u12eb\u1295
-territories.CN=\u127b\u12ed\u1293
+territories.CO=\u12ae\u120e\u121d\u1262\u12eb
territories.IS=\u12a0\u12ed\u1235\u120b\u1295\u12f5
+territories.CN=\u127b\u12ed\u1293
territories.CM=\u12ab\u121c\u1229\u1295
-territories.CL=\u127a\u120a
territories.IQ=\u12a2\u122b\u1245
+territories.CL=\u127a\u120a
territories.UZ=\u12e9\u12dd\u1260\u12aa\u1235\u1273\u1295
territories.IN=\u1205\u1295\u12f5
territories.CH=\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5
@@ -130,10 +135,10 @@ territories.BT=\u1261\u1205\u1273\u1295
territories.BR=\u1265\u122b\u12da\u120d
territories.NZ=\u1292\u12cd \u12da\u120b\u1295\u12f5
territories.HU=\u1200\u1295\u130b\u122a
-territories.BO=\u1266\u120a\u126a\u12eb
territories.HT=\u1200\u12ed\u1272
-territories.BM=\u1264\u122d\u1219\u12f3
+territories.BO=\u1266\u120a\u126a\u12eb
territories.HR=\u12ad\u122e\u12a4\u123d\u12eb
+territories.BM=\u1264\u122d\u1219\u12f3
territories.TZ=\u1273\u1295\u12db\u1292\u12eb
territories.BH=\u1263\u1205\u122c\u1295
territories.BG=\u1261\u120d\u130c\u122a\u12eb
@@ -159,8 +164,8 @@ territories.NA=\u1293\u121a\u1262\u12eb
languages.es=\u1235\u1353\u1292\u123d
languages.ku=\u12a9\u122d\u12f5\u123d\u129b
languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
-languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
languages.ks=\u12ab\u123d\u121a\u122d\u129b
+languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
languages.el=\u130d\u122a\u12ad\u129b
languages.qu=\u12b5\u127f\u129b
languages.ko=\u12ae\u122a\u12eb\u129b
@@ -184,8 +189,8 @@ languages.cy=\u12c8\u120d\u123d
languages.pa=\u1353\u1295\u1303\u1262\u129b
languages.cs=\u127c\u12ad\u129b
languages.iu=\u12a5\u1291\u12ad\u1272\u1271\u1275\u129b
-languages.co=\u12ae\u122d\u1232\u12ab\u129b
languages.it=\u1323\u120a\u12eb\u1295\u129b
+languages.co=\u12ae\u122d\u1232\u12ab\u129b
languages.is=\u12a0\u12ed\u1235\u120b\u1295\u12f5\u129b
languages.uz=\u12a1\u12dd\u1260\u12ad\u129b
languages.or=\u12a6\u122a\u12eb\u129b
@@ -242,8 +247,8 @@ languages.am=\u12a0\u121b\u122d\u129b
languages.za=\u12e1\u12cb\u1295\u130d\u129b
languages.mt=\u121b\u120d\u1272\u1235\u129b
languages.ms=\u121b\u120b\u12ed\u129b
-languages.gn=\u1313\u122b\u1292\u129b
languages.byn=\u1265\u120a\u1295
+languages.gn=\u1313\u122b\u1292\u129b
languages.sw=\u1235\u12cb\u1202\u120a\u129b
languages.mr=\u121b\u122b\u12da\u129b
languages.sv=\u1235\u12ca\u12f5\u1295\u129b
@@ -281,14 +286,14 @@ languages.sid=\u1232\u12f3\u121d\u129b
languages.sa=\u1233\u1295\u1235\u12ad\u122a\u1275\u129b
languages.fr=\u1348\u1228\u1295\u1233\u12ed\u129b
languages.lv=\u120b\u1275\u126a\u12eb\u1295
-languages.fo=\u134b\u122e\u129b
languages.lt=\u120a\u1271\u12a0\u1292\u12eb\u1295
+languages.fo=\u134b\u122e\u129b
languages.rw=\u12aa\u1295\u12eb\u122d\u12cb\u1295\u12f5\u129b
languages.ru=\u122b\u123d\u129b
-languages.fj=\u134a\u1302\u129b
languages.lo=\u120b\u12cd\u1235\u129b
-languages.fi=\u134a\u1292\u123d
+languages.fj=\u134a\u1302\u129b
languages.ln=\u120a\u1295\u130b\u120b\u129b
+languages.fi=\u134a\u1292\u123d
languages.ro=\u122e\u121b\u1292\u12eb\u1295
languages.rn=\u1229\u1295\u12f2\u129b
languages.rm=\u122e\u121b\u1295\u1235
@@ -296,5 +301,5 @@ languages.fa=\u1350\u122d\u1232\u12eb\u129b
languages.la=\u120b\u1272\u1295\u129b
languages.xh=\u12de\u1233\u129b
languages.eu=\u1263\u1235\u12ad\u129b
-languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
languages.ky=\u12aa\u122d\u130a\u12dd\u129b
+languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ca.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ca.properties
index 8a598d9..4e7307c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ca.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ca.properties
@@ -5,42 +5,124 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GuMtkHmsSEDFwWahKzUeygAZ
-currenciesDisplayName.INR=Rupia \u00edndia
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GuMtkHmsSEDFwWahKzUeygAZvcL
+currenciesDisplayName.KES=X\u00edling keny\u00e0
+currenciesDisplayName.CYP=Lliures xipriotes
+currenciesDisplayName.HRK=Kuna croata
+currenciesDisplayName.IEP=Lliures irlandeses
+currenciesDisplayName.GRD=Dracmes gregues
+currenciesDisplayName.SIT=Tolars eslovens
+currenciesDisplayName.FRF=Francs franc\u00e8sos
+currenciesDisplayName.CLP=Peso xil\u00e8
+currenciesDisplayName.ZAR=Rand
+currenciesDisplayName.RON=Nou leu roman\u00e8s
+currenciesDisplayName.HKD=D\u00f2lar De Hong Kong
+currenciesDisplayName.ARS=Peso argent\u00ed
+currenciesDisplayName.BRL=Real brasiler
currenciesDisplayName.JPY=Ien japon\u00e8s
+currenciesDisplayName.IDR=Rupia indon\u00e8sia
+currenciesDisplayName.EEK=Corona estoniana
+currenciesDisplayName.LVL=Lats
+currenciesDisplayName.DEM=Marcs alemanys
currenciesDisplayName.RUB=Ruble rus
-currenciesDisplayName.CNY=Iuan renmimbi xin\u00e8s
-currenciesDisplayName.GBP=Lliura esterlina brit\u00e0nica
+currenciesDisplayName.VND=Dong de Vietnam
+currenciesDisplayName.DKK=Corona danesa
+currenciesDisplayName.THB=Baht tailand\u00e8s
+currenciesDisplayName.NOK=Corona noruega
+currenciesDisplayName.BEF=Francs belges
+currenciesDisplayName.PHP=Pes filip\u00ed
+currenciesDisplayName.UAH=Hr\u00edvnia d\u2019Ucra\u00efna
+currenciesDisplayName.AED=Dirhem dels Emirats \u00c0rabs Units
+currenciesDisplayName.SAR=Rial saud\u00ed
+currenciesDisplayName.FJD=D\u00f2lar fiji\u00e0
+currenciesDisplayName.LUF=Francs luxemburgu\u00e8sos
+currenciesDisplayName.XXX=sense moneda
+currenciesDisplayName.PTE=Escuts portugu\u00e8sos
+currenciesDisplayName.USD=D\u00f2lars EUA
+currenciesDisplayName.ADP=Pesseta andorrana
+currenciesDisplayName.SGD=D\u00f2lar De Singapur
+currenciesDisplayName.FIM=Marcs finland\u00e8sos
+currenciesDisplayName.MTL=Lires malteses
+currenciesDisplayName.HUF=Forint hongar\u00e8s
+currenciesDisplayName.LTL=Litas litu\u00e0
+currenciesDisplayName.TRY=Nova lira turca
+currenciesDisplayName.NZD=D\u00f2lar Neozeland\u00e8s
+currenciesDisplayName.XEU=Unitats de compte europea
+currenciesDisplayName.RSD=Dinar serbi
currenciesDisplayName.EUR=Euro
-currenciesDisplayName.USD=D\u00f2lar EUA
-currenciesDisplayName.BRL=Real brasiler
+currenciesDisplayName.INR=Rupia \u00edndia
+currenciesDisplayName.GBP=Lliures esterlines
+currenciesDisplayName.COP=Peso colombi\u00e0
+currenciesDisplayName.TRL=Lira turca (vella)
+currenciesDisplayName.MAD=Dirhem marroqu\u00ed
+currenciesDisplayName.ITL=Lires italianes
+currenciesDisplayName.MYR=Ringgit de Mal\u00e0isia
+currenciesDisplayName.PLN=Nou zloty polon\u00e8s
+currenciesDisplayName.VEB=Bol\u00edvar vene\u00e7ol\u00e0
+currenciesDisplayName.BOB=peso bolivi\u00e0
+currenciesDisplayName.CNY=Iuan renmimbi xin\u00e8s
+currenciesDisplayName.SEK=Corona sueca
+currenciesDisplayName.AUD=D\u00f2lar australi\u00e0
+currenciesDisplayName.SKK=Corona eslovaca
+currenciesDisplayName.CHF=Francs su\u00edssos
+currenciesDisplayName.NLG=Flor\u00eds neerland\u00e8sos
+currenciesDisplayName.PEN=Nou sol peru\u00e0
+currenciesDisplayName.KRW=Won (Corea Del Sud)
+currenciesDisplayName.TWD=D\u00f2lar Taiwan\u00e8s
+currenciesDisplayName.PKR=Rupia paquistanesa
+currenciesDisplayName.ATS=X\u00edlings austr\u00edacs
+currenciesDisplayName.MXN=Peso mexic\u00e0
+currenciesDisplayName.EGP=Lliura eg\u00edpcia
+currenciesDisplayName.CZK=Corona txeca
+currenciesDisplayName.DZD=Dinar algeri\u00e0
+currenciesDisplayName.BND=D\u00f2lar de Brunei
+currenciesDisplayName.ILS=X\u00e9quel
+currenciesDisplayName.ESP=Pessetes espanyoles
+currenciesDisplayName.CAD=D\u00f2lar canadenc
+currenciesDisplayName.BGN=Lev b\u00falgar
+currenciesSymbol.CYP=\u00a3C
currenciesSymbol.ESP=\u20a7
-shortMonths=gen.®febr.®mar\u00e7®abr.®maig®juny®jul.®ag.®set.®oct.®nov.®des.®®
-months=gener®febrer®mar\u00e7®abril®maig®juny®juliol®agost®setembre®octubre®novembre®desembre®®
-shortWeekdays=®dg.®dl.®dt.®dc.®dj.®dv.®ds.®
-weekdays=®diumenge®dilluns®dimarts®dimecres®dijous®divendres®dissabte®
-firstDayOfWeek=mon
-eras=aC®dC®
+currenciesSymbol.IEP=IR\u00a3
+shortMonths=gen.\u00aefeb.\u00aemar.\u00aeabr.\u00aemai.\u00aejun.\u00aejul.\u00aeago.\u00aeset.\u00aeoct.\u00aenov.\u00aedes.\u00ae\u00ae
+months=de gener\u00aede febrer\u00aede mar\u00e7\u00aed'abril\u00aede maig\u00aede juny\u00aede juliol\u00aed'agost\u00aede setembre\u00aede octubre\u00aede novembre\u00aede desembre\u00ae\u00ae
+shortWeekdays=\u00aedg\u00aedl\u00aedt\u00aedc\u00aedj\u00aedv\u00aeds\u00ae
+weekdays=\u00aediumenge\u00aedilluns\u00aedimarts\u00aedimecres\u00aedijous\u00aedivendres\u00aedissabte\u00ae
+eras=aC\u00aedC\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=dd/MM/yy
mediumDateFormat=dd/MM/yyyy
-longDateFormat=d 'd\u2019'MMMM 'de' yyyy
-fullDateFormat=EEEE d 'd\u2019'MMMM 'de' yyyy
+longDateFormat=d MMMM 'de' yyyy
+fullDateFormat=EEEE, d MMMM 'de' yyyy
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
longTimeFormat=H:mm:ss z
fullTimeFormat=H:mm:ss z
-territories.TL=Timor
+zoneStrings=Europe_Central\u00aeHora Central Europea\u00ae\u00aeHora Central Europea de l'estiu\u00ae\u00ae\u00a9
+territories.TL=Timor Oriental
territories.TK=Tokelau
territories.TJ=Tadjikistan
territories.TH=Tail\u00e0ndia
territories.TG=Togo
-territories.TF=Territoris Meridionals Francesos
+territories.TF=Territoris Francesos del Sud
territories.GY=Guyana
territories.TD=Txad
+territories.TC=Illes Turks i Caicos
territories.GW=Guinea Bissau
+territories.GU=Guam
territories.GT=Guatemala
+territories.GS=Illes Ge\u00f2rgia del Sud i Sandwich del Sud
territories.GR=Gr\u00e8cia
territories.GQ=Guinea Equatorial
territories.GP=Guadeloupe
@@ -48,171 +130,250 @@ territories.SZ=Swazil\u00e0ndia
territories.SY=S\u00edria
territories.GN=Guinea
territories.GM=G\u00e0mbia
+territories.GL=Groenl\u00e0ndia
territories.SV=El Salvador
+territories.062=\u00c0sia Sud-central
+territories.ST=S\u00e3o Tom\u00e9 i Pr\u00edncipe
+territories.GI=Gibraltar
+territories.061=Polin\u00e8sia
territories.GH=Ghana
territories.SR=Surinam
+territories.GG=Batllia de Guernsey
territories.GF=Guaiana Francesa
territories.GE=Ge\u00f2rgia
territories.SO=Som\u00e0lia
+territories.GD=Grenada
territories.SN=Senegal
+territories.SM=San Marino
territories.GB=Regne Unit
territories.SL=Sierra Leone
territories.GA=Gabon
territories.SK=Eslov\u00e0quia
+territories.SJ=Svalbard i Jan Mayen
territories.SI=Eslov\u00e8nia
+territories.SH=Saint Helena
territories.SG=Singapur
territories.SE=Su\u00e8cia
territories.SD=Sudan
territories.SC=Seychelles
-territories.SA=Ar\u00e0bia Saud\u00ed
+territories.SB=Illes Salom\u00f3
+territories.SA=Ar\u00e0bia Saudita
territories.FR=Fran\u00e7a
+territories.FO=Illes F\u00e8roe
+territories.057=Regi\u00f3 de la Micron\u00e8sia
territories.FM=Micron\u00e8sia
territories.RW=Rwanda
+territories.054=Melan\u00e8sia
+territories.FK=Illes Malvines
+territories.053=Austr\u00e0lia i Nova Zelanda
territories.RU=R\u00fassia
territories.FJ=Fiji
territories.FI=Finl\u00e0ndia
+territories.RS=S\u00e8rbia
territories.RO=Romania
+territories.RE=Reunion
territories.ET=Eti\u00f2pia
territories.ES=Espanya
territories.ER=Eritrea
+territories.QU=Uni\u00f3 Europea
territories.EH=S\u00e0hara Occidental
territories.EG=Egipte
territories.EE=Est\u00f2nia
territories.EC=Equador
territories.DZ=Alg\u00e8ria
territories.QA=Qatar
+territories.039=Europa meridional
territories.DO=Rep\u00fablica Dominicana
territories.PY=Paraguai
territories.DM=Dominica
+territories.035=\u00c0sia Sud-oriental
+territories.PW=Palau
+territories.034=Sud d'\u00c0sia
territories.DK=Dinamarca
territories.DJ=Djibouti
territories.PT=Portugal
+territories.PS=Palestina
+territories.030=\u00c0sia Oriental
territories.PR=Puerto Rico
territories.DE=Alemanya
+territories.PN=Illes Pitcairn
+territories.PM=Saint Pierre i Miquelon
territories.PL=Pol\u00f2nia
territories.PK=Pakistan
territories.PH=Filipines
territories.PG=Papua Nova Guinea
-territories.CZ=Rep\u00fablica Txeca
territories.PF=Polin\u00e8sia Francesa
-territories.CY=Xipre
+territories.CZ=Rep\u00fablica Txeca
territories.PE=Per\u00fa
+territories.CY=Xipre
+territories.CX=Illa Christmas
territories.CV=Cap Verd
-territories.CU=Cuba
territories.PA=Panam\u00e0
+territories.CU=Cuba
territories.CS=S\u00e8rbia i Montenegro
territories.CR=Costa Rica
+territories.029=Carib
territories.CO=Col\u00f2mbia
territories.CN=Xina
territories.CM=Camerun
territories.CL=Xile
+territories.CK=Illes Cook
+territories.021=Am\u00e8rica septentrional
territories.CI=Costa d\u2019Ivori
-territories.CH=Switzerland
+territories.CH=Su\u00efssa
territories.CG=Congo
territories.CF=Rep\u00fablica Centrafricana
+territories.CD=Rep\u00fablica Democr\u00e0tica del Congo
+territories.CC=Illes Cocos
territories.OM=Oman
territories.CA=Canad\u00e0
+territories.419=Am\u00e8rica Llatina i Carib
territories.BZ=Belize
territories.BY=Bielor\u00fassia
territories.BW=Botswana
+territories.BV=Illa Bouvet
territories.BT=Bhutan
territories.BS=Bahames
territories.BR=Brasil
-territories.BO=Bol\u00edvia
+territories.019=Am\u00e8rica
+territories.018=\u00c0frica meridional
territories.NZ=Nova Zelanda
+territories.017=\u00c0frica Central
+territories.BO=Bol\u00edvia
territories.BN=Brunei
+territories.015=\u00c0frica septentrional
territories.BM=Bermudes
-territories.BJ=Benin
+territories.014=\u00c0frica Oriental
+territories.013=Am\u00e8rica Central
territories.NU=Niue
+territories.BJ=Ben\u00edn
+territories.011=\u00c0frica Occidental
territories.BI=Burundi
+territories.172=Comunitat d'Estats Independents
territories.BH=Bahrain
+territories.NR=Nauru
territories.BG=Bulg\u00e0ria
territories.BF=Burkina Faso
-territories.BE=B\u00e8lgica
territories.NP=Nepal
-territories.BD=Bangla Desh
+territories.BE=B\u00e8lgica
+territories.ZZ=Regi\u00f3 desconeguda o no v\u00e0lida
territories.NO=Noruega
+territories.BD=Bangla Desh
territories.BB=Barbados
territories.ZW=Zimbabwe
-territories.BA=B\u00f2snia i Hercegovina
territories.NL=Pa\u00efsos Baixos
+territories.BA=B\u00f2snia i Hercegovina
territories.NI=Nicaragua
territories.NG=Nig\u00e8ria
+territories.NF=Illa Norfolk
territories.AZ=Azerbaidjan
territories.NE=N\u00edger
-territories.AW=Aruba
+territories.AX=Illes Aland
territories.NC=Nova Caled\u00f2nia
+territories.AW=Aruba
territories.ZM=Z\u00e0mbia
territories.NA=Nam\u00edbia
territories.AU=Austr\u00e0lia
territories.AT=\u00c0ustria
+territories.AS=Samoa Nord-americana
territories.AR=Argentina
-territories.AO=Angola
+territories.AQ=Ant\u00e0rtida
+territories.009=Oceania
territories.MZ=Mo\u00e7ambic
-territories.AN=Antilles Holandeses
+territories.AO=Angola
territories.MY=Mal\u00e0isia
-territories.AM=Arm\u00e8nia
+territories.AN=Antilles Holandeses
territories.MX=M\u00e8xic
+territories.AM=Arm\u00e8nia
+territories.005=Am\u00e8rica del Sud
+territories.MW=Malawi
territories.AL=Alb\u00e0nia
+territories.MV=Maldives
+territories.003=Am\u00e8rica del Nord
territories.ZA=Sud-\u00e0frica
territories.MU=Maurici
-territories.AI=Anguilla
+territories.002=\u00c0frica
territories.MT=Malta
+territories.AI=Anguilla
+territories.001=M\u00f3n
territories.MS=Montserrat
territories.MR=Maurit\u00e0nia
-territories.AF=Afganistan
+territories.AG=Antigua i Barbuda
territories.MQ=Martinica
+territories.AF=Afganistan
+territories.MP=Illes Mariannes del Nord
territories.AE=Uni\u00f3 dels Emirats \u00c0rabs
+territories.MO=Macau
territories.AD=Andorra
territories.MN=Mong\u00f2lia
territories.MM=Myanmar
territories.ML=Mali
territories.MK=Maced\u00f2nia
territories.YT=Mayotte
+territories.MH=Illes Marshall
territories.MG=Madagascar
+territories.MF=Saint Martin
+territories.ME=Montenegro
territories.MD=Mold\u00e0via
territories.MC=M\u00f2naco
territories.MA=Marroc
territories.YE=Iemen
territories.LY=L\u00edbia
territories.LV=Let\u00f2nia
+territories.155=Europa Occidental
territories.LU=Luxemburg
+territories.154=Europa septentrional
territories.LT=Litu\u00e0nia
territories.LS=Lesotho
territories.LR=Lib\u00e8ria
+territories.151=Europa Oriental
+territories.150=Europa
territories.LK=Sri Lanka
territories.LI=Liechtenstein
+territories.LC=Saint Lucia
territories.LB=L\u00edban
territories.LA=Laos
territories.KZ=Kazakhstan
+territories.KY=Illes Caiman
territories.KW=Kuwait
+territories.145=\u00c0sia Occidental
+territories.143=\u00c0sia Central
+territories.142=\u00c0sia
territories.KR=Corea del Sud
territories.KP=Corea del Nord
+territories.KN=Saint Kitts i Nevis
territories.KM=Comores
territories.KI=Kiribati
+territories.WS=Samoa
territories.KH=Cambodja
-territories.KG=Kirgizistan
+territories.KG=Kirguizistan
territories.KE=Kenya
+territories.WF=Wallis i Futuna
territories.JP=Jap\u00f3
territories.JO=Jord\u00e0nia
territories.JM=Jamaica
territories.VU=Vanuatu
+territories.JE=Batllia de Jersey
territories.VN=Vietnam
-territories.VI=Illes Verges dels USA
+territories.VI=Illes Verges nord-americanes
territories.VG=Illes Verges Brit\u00e0niques
territories.VE=Vene\u00e7uela
+territories.VC=Saint Vincent i les Grenadines
territories.VA=Vatic\u00e0
territories.IT=It\u00e0lia
territories.IS=Isl\u00e0ndia
territories.IR=Iran
territories.IQ=Iraq
territories.UZ=Uzbekistan
+territories.IO=Territori Brit\u00e0nic de l'Oce\u00e0 \u00cdndic
territories.UY=Uruguai
territories.IN=\u00cdndia
+territories.IM=Illa de Man
territories.IL=Israel
territories.US=Estats Units
territories.IE=Irlanda
territories.ID=Indon\u00e8sia
+territories.UM=Illes Perif\u00e8riques Menors dels EUA
territories.UG=Uganda
territories.UA=Ucra\u00efna
territories.HU=Hongria
@@ -220,149 +381,397 @@ territories.HT=Hait\u00ed
territories.HR=Cro\u00e0cia
territories.TZ=Tanz\u00e0nia
territories.HN=Hondures
+territories.HM=Illa Heard i Illes McDonald
territories.TW=Taiwan
+territories.TV=Tuvalu
territories.HK=Hong Kong
territories.TT=Trinitat i Tobago
territories.TR=Turquia
territories.TO=Tonga
territories.TN=Tun\u00edsia
territories.TM=Turkmenistan
-languages.es=espanyol
-languages.ku=kurd
-languages.eo=esperanto
-languages.en=angl\u00e8s
-languages.ks=caixmiri
-languages.el=grec
-languages.qu=qu\u00e8txua
-languages.ko=core\u00e0
-languages.kn=kannada
-languages.km=cambodj\u00e0
-languages.kl=greenland\u00e8s
-languages.kk=kazakh
+languages.xh=xosa
+languages.sux=sumeri
+languages.mis=llengua miscel\u00b7l\u00e0nia
+languages.pon=ponape\u00e0
languages.wo=w\u00f2lof
-languages.ka=georgi\u00e0
-languages.dz=bhutan\u00e8s
-languages.jv=javan\u00e8s
-languages.pt=portugu\u00e8s
-languages.ps=paixto
-languages.de=alemany
-languages.pl=polon\u00e8s
-languages.da=dan\u00e8s
+languages.mic=micmac
+languages.wa=val\u00f3
+languages.kum=k\u00famik
+languages.zap=zapoteca
+languages.cus=llengua cuix\u00edtica
+languages.jbo=judeopersa
languages.vo=volapuk
-languages.ja=japon\u00e8s
languages.vi=vietnamita
-languages.cy=gal\u00b7l\u00e8s
-languages.pa=panjabi
-languages.cs=txec
-languages.iu=inuktitut
-languages.co=cors
-languages.it=itali\u00e0
-languages.is=island\u00e8s
+languages.vai=vai
+languages.ve=venda
+languages.raj=rajasthani
+languages.ota=turc otom\u00e0
+languages.nap=napolit\u00e0
languages.uz=uzbek
-languages.or=oriya
-languages.ik=inupiak
+languages.uga=ugar\u00edtic
+languages.tmh=tamazight
+languages.nai=llengua amer\u00edndia septentrional
+languages.nah=n\u00e0huatl
languages.ur=urd\u00fa
-languages.om=oromo (afan)
-languages.ca=catal\u00e0
-languages.ie=interlingue
-languages.id=indonesi
+languages.fat=fanti
languages.uk=ucra\u00efn\u00e8s
-languages.ia=interlingua
-languages.oc=occit\u00e0
+languages.egy=egipci antic
+languages.zxx=sense contingut ling\u00fc\u00edstic
languages.ug=uigur
-languages.hy=armeni
-languages.br=bret\u00f3
-languages.hu=hongar\u00e8s
-languages.bo=tibet\u00e0
-languages.bn=bengal\u00ed
-languages.hr=croat
-languages.bi=bislama
-languages.tw=twi
-languages.bh=bihari
-languages.bg=b\u00falgar
+languages.fan=fang
+languages.mga=ga\u00e8lic irl\u00e0nd\u00e8s mitj\u00e0
+languages.bat=llengua b\u00e0ltica
+languages.ban=balin\u00e8s
+languages.bal=balutxi
+languages.ty=tahiti\u00e0
+languages.bai=bamilek\u00e9
+languages.tw=\u00e0kan
+languages.tli=tlingit
+languages.tlh=llengua klingon
languages.tt=t\u00e0tar
-languages.no=noruec
-languages.be=bielor\u00fas
languages.ts=tsonga
-languages.hi=hindi
languages.tr=turc
-languages.nl=neerland\u00e8s
-languages.zu=zulu
-languages.ba=baixkir
-languages.to=tonga
-languages.he=hebreu
+languages.to=tongal\u00e8s
languages.tn=tswana
languages.tl=tag\u00e0log
languages.tk=turcman
-languages.ha=hausa
-languages.ne=nepal\u00e8s
-languages.az=\u00e0zeri
languages.ti=tigrinya
-languages.ay=aimara
languages.th=thai
languages.tg=tadjik
-languages.na=nauru\u00e0
languages.te=telugu
-languages.zh=xin\u00e9s
-languages.as=assam\u00e8s
-languages.ar=\u00e0rab
+languages.csb=caixubi
languages.ta=t\u00e0mil
-languages.gu=gujarati
-languages.my=birm\u00e0
-languages.am=amh\u00e0ric
-languages.za=zhuang
-languages.mt=malt\u00e8s
-languages.ms=malai
-languages.gn=guaran\u00ed
-languages.sw=swahili
-languages.mr=marathi
+languages.tkl=tokelau\u00e8s
+languages.sw=suahili
languages.sv=suec
-languages.gl=gallec
-languages.su=sundan\u00e8s
-languages.af=afrikaans
-languages.st=sotho
-languages.mo=moldau
-languages.ss=siswati
-languages.mn=mongol
+languages.su=sondan\u00e8s
+languages.krc=karatxai
+languages.st=sotho meridional
+languages.ss=swazi
languages.sr=serbi
languages.sq=alban\u00e8s
-languages.ml=malaialam
-languages.ab=abkhaz
-languages.mk=macedoni
-languages.aa=\u00e0far
+languages.men=mende
+languages.crp=llengua criolla o pidgin
languages.so=somali
+languages.afh=afrihili
languages.sn=shona
-languages.gd=escoc\u00e8s
-languages.mi=maori
languages.sm=samo\u00e0
languages.sl=eslov\u00e8
-languages.mg=malgaix
+languages.grc=grec antic
languages.sk=eslovac
-languages.ga=irland\u00e8s
-languages.yo=ioruba
-languages.si=sinhal\u00e8s
+languages.si=singal\u00e8s
languages.sh=serbo-croat
+languages.crh=t\u00e0tar de Crimea
+languages.afa=llengua afroasi\u00e0tica
languages.sg=sango
-languages.yi=jiddish
+languages.se=sami septentrional
languages.sd=sindhi
-languages.fy=fris\u00f3
+languages.sc=sard
languages.sa=s\u00e0nscrit
-languages.fr=franc\u00e8s
-languages.lv=let\u00f3
-languages.fo=fero\u00e8s
-languages.lt=litu\u00e0
languages.rw=kinyarwanda
+languages.nwc=newari cl\u00e0ssic
+languages.mdr=mandar
languages.ru=rus
-languages.fj=fiji\u00e0
-languages.lo=laosi\u00e0
-languages.fi=fin\u00e8s
-languages.ln=lingala
languages.ro=roman\u00e8s
languages.rn=kirundi
languages.rm=retorom\u00e0nic
-languages.fa=persa
+languages.fr_CH=franc\u00e8s (su\u00eds)
+languages.mdf=mordovi\u00e0 moksha
+languages.tiv=tiv
+languages.ady=adigu\u00e9
+languages.kpe=kpelle
+languages.qu=qu\u00edtxua
+languages.tig=tigr\u00e9
+languages.son=Songhai
+languages.cpp=crioll - basat en el portugu\u00e8s
+languages.rup=aroman\u00e8s
+languages.sog=sogdi\u00e0
+languages.hit=hitita
+languages.cpf=crioll - basat en el franc\u00e8s
+languages.cpe=crioll - basat en l'angl\u00e8s
+languages.got=g\u00f2tic
+languages.din=dinka
+languages.nub=llengua nubiana
+languages.pt=portugu\u00e8s
+languages.fur=fri\u00fcl\u00e0
+languages.ps=paixtu
+languages.phn=fenici
+languages.de_CH=alemany su\u00eds
+languages.goh=alt alemany antic
+languages.snk=soninke
+languages.cop=copte
+languages.yap=yape\u00e0
+languages.pl=polon\u00e8s
+languages.pi=pali
+languages.pt_PT=portugu\u00e8s (portugal)
+languages.pa=panjabi
+languages.bug=bugui
+languages.sms=sami skolt
+languages.bua=buriat
+languages.mas=massai
+languages.smn=sami d'Inari
+languages.map=llengua autron\u00e8sia
+languages.os=osset
+languages.or=oriya
+languages.man=mandinga
+languages.smi=llengua sami
+languages.om=oromo - afan
+languages.oj=ojibwa
+languages.mad=madur\u00e8s
+languages.sma=sami meridional
+languages.nso=sotho septentrional
+languages.btk=batak
+languages.oc=occit\u00e0
+languages.myv=mirand\u00e8s erzya
+languages.es_ES=castell\u00e0 ib\u00e8ric
+languages.de_AT=alemany austriac
+languages.myn=llengua maia
+languages.ny=nyanja
+languages.nv=navaho
+languages.kmb=Kimbundu
+languages.nr=ndebele meridional
+languages.gmh=alt alemany mitj\u00e0
+languages.no=noruec
+languages.nn=noruec nynorsk
+languages.nl=neerland\u00e8s
+languages.sla=llengua eslava
+languages.ne=nepal\u00e8s
+languages.nd=ndebele septentrional
+languages.nb=noruec bokm\u00e5l
+languages.na=nauru\u00e0
+languages.my=birm\u00e0
+languages.lez=lesgui\u00e0
+languages.frs=fris\u00f3 occidental
+languages.mt=malt\u00e8s
+languages.peo=persa antic
+languages.frr=fris\u00f3 septentrional
+languages.ms=malai
+languages.mr=marathi
+languages.fro=franc\u00e8s antic
+languages.mo=moldau
+languages.frm=franc\u00e8s mitj\u00e0
+languages.mn=mongol
+languages.jrb=judeo\u00e0rab
+languages.ml=malaialam
+languages.mk=maced\u00f2nic
+languages.mi=maori
+languages.mh=marshall\u00e8s
+languages.mg=malgaix
+languages.mwl=mirand\u00e8s
+languages.lv=let\u00f3
+languages.del=delaware
+languages.lt=litu\u00e0
+languages.lo=laosi\u00e0
+languages.ln=lingala
+languages.li=limburgu\u00e8s
+languages.lg=ganda
+languages.lb=luxemburgu\u00e8s
languages.la=llat\u00ed
-languages.xh=xosa
+languages.sit=llengua sinotibetana
+languages.ky=kirgu\u00eds
+languages.kv=komi
+languages.ku=kurd
+languages.sio=llengua sioux
+languages.ks=caixmiri
+languages.ko=core\u00e0
+languages.kn=kannada
+languages.km=khmer
+languages.en_GB=angl\u00e8s brit\u00e0nic
+languages.kl=grenland\u00e8s
+languages.kk=kazakh
+languages.rom=roman\u00ed
+languages.ki=kikuiu
+languages.non=noruec antic
+languages.ka=georgi\u00e0
+languages.mus=creek
+languages.roa=llengua rom\u00e0nica
+languages.nog=nogai
+languages.mun=llengua munda
+languages.mul=varies lleng\u00fces
+languages.jv=javan\u00e8s
+languages.gil=gilbert\u00e8s
+languages.xal=calmuc
+languages.aus=llengua australiana
+languages.kho=khotan\u00e8s
+languages.ja=japon\u00e8s
+languages.khi=llengua khoisana
+languages.pau=palau\u00e0
+languages.chy=xeienne
+languages.tai=llengua tai
+languages.iu=inuktitut
+languages.it=itali\u00e0
+languages.pap=papiamento
+languages.sgn=llengua de signes
+languages.is=island\u00e8s
+languages.chr=cherokee
+languages.pal=pahlavi
+languages.chp=chipewyan
+languages.io=ido
+languages.cho=choctaw
+languages.chn=pidgin chinook
+languages.chm=mari
+languages.tyv=tuvini\u00e0
+languages.bnt=bantu
+languages.ik=inupiak
+languages.haw=hawai\u00e0
+languages.ig=igbo
+languages.chg=txagatai
+languages.sga=irland\u00e8s antic
+languages.ie=interlingue
+languages.paa=llengua pap\u00fa
+languages.id=indonesi
+languages.lah=panjabi occidental
+languages.day=daiak
+languages.ia=interlingua
+languages.lad=lad\u00ed
+languages.hai=haida
+languages.dar=dargu\u00e0
+languages.hy=armeni
+languages.ath=llengua atapascana
+languages.hu=hongar\u00e8s
+languages.ht=haiti\u00e0
+languages.dak=dakota
+languages.hr=croat
+languages.hi=hindi
+languages.he=hebreu
+languages.ast=asturi\u00e0
+languages.ha=hausa
+languages.wen=s\u00f2rab
+languages.gv=manx
+languages.gu=gujarati
+languages.sem=llengua sem\u00edtica
+languages.iro=iroqu\u00e8s
+languages.gn=guaran\u00ed
+languages.gl=gallec
+languages.en_CA=angl\u00e8s del Canad\u00e0
+languages.arw=arauac
+languages.gez=gueez
+languages.art=llenguatge artificial
+languages.gd=ga\u00e8lic escoc\u00e8s
+languages.ira=llengua ir\u00e0nica
+languages.ga=ga\u00e8lic irland\u00e8s
+languages.arp=arapaho
+languages.arn=arauc\u00e0
+languages.fy=fris\u00f3
+languages.gem=llengua germ\u00e0nica
+languages.arc=arameu
+languages.fr=franc\u00e8s
+languages.fo=fero\u00e8s
+languages.cel=llengua c\u00e8ltica
+languages.fj=fiji\u00e0
+languages.fi=fin\u00e8s
+languages.ff=ful
+languages.tvl=tuvalu\u00e0
+languages.fa=persa
+languages.en_AU=angl\u00e8s d'Austr\u00e0lia
+languages.zh_Hans=xin\u00e8s (simplificat)
+languages.zh_Hant=xin\u00e8s (tradicional)
languages.eu=basc
languages.et=estoni\u00e0
-languages.ky=kirgu\u00eds
+languages.scn=sicili\u00e0
+languages.es=castell\u00e0
+languages.eo=esperanto
+languages.en=angl\u00e8s
+languages.el=grec
+languages.tut=llengua alta\u00efca
+languages.tup=llengua tup\u00ed
+languages.ee=ewe
+languages.nl_BE=flamenc
+languages.es_419=espanyol de latinoam\u00e8rica
+languages.dz=bhutan\u00e8s
+languages.nic=llengua nigerokurdufaniana
+languages.fiu=llengua fino\u00fagrica
+languages.dv=divehi
+languages.luo=luo
+languages.apa=llengua apatxe
+languages.fil=filip\u00ed
+languages.hup=hupa
+languages.de=alemany
+languages.und=idioma desconegut o no v\u00e0lid
+languages.da=dan\u00e8s
+languages.dum=neerland\u00e8s mitj\u00e0
+languages.mno=llengua manobo
+languages.wak=llengua wakashan
+languages.cy=gal\u00b7l\u00e8s
+languages.sas=sasak
+languages.kbd=kabard\u00ed
+languages.cv=txuvaix
+languages.cu=eslau eclesi\u00e0stic
+languages.cs=txec
+languages.sam=arameu samarit\u00e0
+languages.cr=cree
+languages.sal=llengua salish
+languages.co=cors
+languages.sai=llengua amer\u00edndia meridional
+languages.mnc=manx\u00fa
+languages.sah=iacut
+languages.inh=ing\u00faix
+languages.sad=sandawe
+languages.ch=chamorro
+languages.ine=llenguatge indoeuropeu
+languages.enm=angl\u00e8s mitj\u00e0
+languages.kar=karen
+languages.inc=llengua \u00edndica
+languages.ce=txetx\u00e8
+languages.ca=cat
+languages.umb=Umbundu
+languages.syr=sir\u00edac
+languages.ang=angl\u00e8s antic
+languages.cau=llengua cauc\u00e0sica
+languages.kab=cabilenc
+languages.kaa=karakalpak
+languages.bs=bosni\u00e0
+languages.car=carib
+languages.br=bret\u00f3
+languages.bo=tibet\u00e0
+languages.bn=bengal\u00ed
+languages.bm=bambara
+languages.cai=llengua amer\u00edndia d'Am\u00e8rica Central
+languages.bi=bislama
+languages.bh=bihari
+languages.bg=b\u00falgar
+languages.be=bielor\u00fas
+languages.cad=caddo
+languages.pt_BR=portugu\u00e8s (brasil)
+languages.ba=baixkir
+languages.zu=zulu
+languages.zen=zenaga
+languages.pro=proven\u00e7al antic
+languages.hsb=alt s\u00f2rab
+languages.az=\u00e0zeri
+languages.ay=aimara
+languages.av=\u00e0var
+languages.as=assam\u00e8s
+languages.dsb=baix s\u00f2rab
+languages.ar=\u00e0rab
+languages.ilo=iloc\u00e0
+languages.elx=elamita
+languages.zh=xin\u00e8s
+languages.an=aragon\u00e8s
+languages.pra=pr\u00e0crit
+languages.am=amh\u00e0ric
+languages.new=newari
+languages.ak=\u00e0kan
+languages.za=zhuang
+languages.en_US=angl\u00e8s americ\u00e0
+languages.af=afrikaans
+languages.ae=av\u00e8stic
+languages.alt=altaic meridional
+languages.ab=abkhaz
+languages.aa=\u00e0far
+languages.yo=ioruba
+languages.alg=llengua algonquina
+languages.ale=aleuta
+languages.mkh=llengua monkhmer
+languages.yi=jiddisch
+languages.dra=llengua dravidiana
+languages.ber=berber
+languages.nds=baix alemany
+languages.bem=bemba
+languages.bej=beja
+languages.tpi=tok pisin
+variants.POSIX=ordenador
+variants.1901=ortografia alemana tradicional
+variants.1996=ortografia alemana de 1996
+variants.FONIPA=alfabet fon\u00e8tic internacional
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cch.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cch.properties
new file mode 100644
index 0000000..a8a9162
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cch.properties
@@ -0,0 +1,23 @@
+# LocaleInformation_cch.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=Aman
+currenciesSymbol.NGN=\u20a6
+shortMonths=Dyon\u00aeBaa\u00aeAtat\u00aeAnas\u00aeAtyo\u00aeAchi\u00aeAtar\u00aeAwur\u00aeShad\u00aeShak\u00aeNaba\u00aeNata\u00ae\u00ae
+months=Pen Dyon\u00aePen Ba'a\u00aePen Atat\u00aePen Anas\u00aePen Atyon\u00aePen Achirim\u00aePen Atariba\u00aePen Awurr\u00aePen Shadon\u00aePen Shakur\u00aePen Kur Naba\u00aePen Kur Natat\u00ae\u00ae
+shortWeekdays=\u00aeYok\u00aeTung\u00aeT. Tung\u00aeTsan\u00aeNas\u00aeNat\u00aeChir\u00ae
+weekdays=\u00aeWai Yoka Bawai\u00aeWai Tunga\u00aeToki Gitung\u00aeTsam Kasuwa\u00aeWai Na Nas\u00aeWai Na Tiyon\u00aeWai Na Chirim\u00ae
+eras=GM\u00aeM\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cop.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cop.properties
new file mode 100644
index 0000000..8186034
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cop.properties
@@ -0,0 +1,21 @@
+# LocaleInformation_cop.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cs.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cs.properties
index d7dd185..3ad70c6 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cs.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cs.properties
@@ -5,130 +5,142 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=\u00a0
-localPatternChars=GuMtkHmsSEDFwWahKzUeygAZ
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GuMtkHmsSEDFwWahKzUeygAZvcL
currenciesDisplayName.YDD=Din\u00e1r jemensk\u00fd
-currenciesDisplayName.TWD=Dolar tchajvansk\u00fd nov\u00fd
currenciesDisplayName.KES=\u0160ilink ke\u0148sk\u00fd
-currenciesDisplayName.BYB=Rubl nov\u00fd b\u011blorusk\u00fd (1994-1999)
+currenciesDisplayName.TWD=Dolar tchajvansk\u00fd nov\u00fd
currenciesDisplayName.LKR=Rupie sr\u00edlansk\u00e1
-currenciesDisplayName.RWF=Frank rwandsk\u00fd
+currenciesDisplayName.BYB=Rubl nov\u00fd b\u011blorusk\u00fd (1994-1999)
currenciesDisplayName.TJS=Somoni
-currenciesDisplayName.SDP=Libra s\u00fad\u00e1nsk\u00e1
-currenciesDisplayName.TJR=Tajikistan Ruble
+currenciesDisplayName.RWF=Frank rwandsk\u00fd
currenciesDisplayName.ERN=Nakfa
-currenciesDisplayName.AFN=Afgh\u00e1n
+currenciesDisplayName.TJR=Tajikistan Ruble
+currenciesDisplayName.SDP=Libra s\u00fad\u00e1nsk\u00e1
currenciesDisplayName.GRD=Drachma
+currenciesDisplayName.AFN=Afgh\u00e1n
currenciesDisplayName.IEP=Libra irsk\u00e1
currenciesDisplayName.ARS=Peso argentinsk\u00e9
-currenciesDisplayName.SDD=Din\u00e1r s\u00fad\u00e1nsk\u00fd
currenciesDisplayName.ARP=Peso argentinsk\u00e9 (1983-1985)
+currenciesDisplayName.SDD=Din\u00e1r s\u00fad\u00e1nsk\u00fd
currenciesDisplayName.GEL=Lari
-currenciesDisplayName.AFA=Afgh\u00e1n (1927-2002)
currenciesDisplayName.GEK=Georgian Kupon Larit
+currenciesDisplayName.AFA=Afgh\u00e1n (1927-2002)
currenciesDisplayName.CRC=Col\u00f3n kostarick\u00fd
currenciesDisplayName.FKP=Libra falklandsk\u00e1
currenciesDisplayName.EEK=Kroon
-currenciesDisplayName.HKD=Dolar hongkongsk\u00fd
currenciesDisplayName.MDL=Leu moldavsk\u00fd
-currenciesDisplayName.ARA=Austral
+currenciesDisplayName.HKD=Dolar hongkongsk\u00fd
currenciesDisplayName.IQD=Din\u00e1r ir\u00e1ck\u00fd
+currenciesDisplayName.ARA=Austral
currenciesDisplayName.SCR=Rupie seychelsk\u00e1
currenciesDisplayName.VUV=Vatu
-currenciesDisplayName.DKK=Koruna d\u00e1nsk\u00e1
currenciesDisplayName.KPW=Won severokorejsk\u00fd
-currenciesDisplayName.GQE=Equatorial Guinea Ekwele Guineana
+currenciesDisplayName.DKK=Koruna d\u00e1nsk\u00e1
currenciesDisplayName.IDR=Rupie indon\u00e9zsk\u00e1
-currenciesDisplayName.LVR=Rubl loty\u0161sk\u00fd
+currenciesDisplayName.GQE=Equatorial Guinea Ekwele Guineana
currenciesDisplayName.SOS=\u0160ilink som\u00e1lsk\u00fd
+currenciesDisplayName.LVR=Rubl loty\u0161sk\u00fd
currenciesDisplayName.AED=Dirham SAE
-currenciesDisplayName.BWP=Pula
currenciesDisplayName.LVL=Lat loty\u0161sk\u00fd
+currenciesDisplayName.BWP=Pula
currenciesDisplayName.RUR=Rubl rusk\u00fd (1991-1998)
currenciesDisplayName.NIO=Cordoba oro
-currenciesDisplayName.ADP=Peseta andorrsk\u00e1
-currenciesDisplayName.FJD=Dolar fid\u017eijsk\u00fd
currenciesDisplayName.MOP=Pataca
+currenciesDisplayName.FJD=Dolar fid\u017eijsk\u00fd
+currenciesDisplayName.ADP=Peseta andorrsk\u00e1
currenciesDisplayName.RUB=Rubl rusk\u00fd
currenciesDisplayName.CDF=Frank kon\u017esk\u00fd
currenciesDisplayName.NIC=Cordoba
currenciesDisplayName.DJF=Frank d\u017eibutsk\u00fd
-currenciesDisplayName.ECV=Ecuador Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Dolar \u0160alamounov\u00fdch ostrov\u016f
currenciesDisplayName.UZS=Sum uzbeck\u00fd
+currenciesDisplayName.SBD=Dolar \u0160alamounov\u00fdch ostrov\u016f
+currenciesDisplayName.ECV=Ecuador Unidad de Valor Constante (UVC)
currenciesDisplayName.ECS=Sucre ekv\u00e1dorsk\u00fd
-currenciesDisplayName.PHP=Peso filip\u00ednsk\u00e9
currenciesDisplayName.THB=Baht
+currenciesDisplayName.PHP=Peso filip\u00ednsk\u00e9
currenciesDisplayName.LUF=Frank lucembursk\u00fd
currenciesDisplayName.FIM=Markka
currenciesDisplayName.TTD=Dolar Trinidad a Tobago
currenciesDisplayName.SZL=Lilangeni
currenciesDisplayName.MNT=Tugrik
-currenciesDisplayName.SAR=Rij\u00e1l saudsk\u00fd
currenciesDisplayName.UAK=Karbovanec
+currenciesDisplayName.SAR=Rij\u00e1l saudsk\u00fd
currenciesDisplayName.UAH=H\u0159ivna
currenciesDisplayName.HUF=Forint
-currenciesDisplayName.COP=Peso kolumbijsk\u00e9
currenciesDisplayName.QAR=Rij\u00e1l katarsk\u00fd
+currenciesDisplayName.COP=Peso kolumbijsk\u00e9
currenciesDisplayName.LTT=Talon
currenciesDisplayName.PTE=Escudo portugalsk\u00e9
-currenciesDisplayName.AOR=Kwanza reajustado (1995-1999)
currenciesDisplayName.UYU=Peso uruguaysk\u00e9
+currenciesDisplayName.AOR=Kwanza reajustado (1995-1999)
currenciesDisplayName.GBP=Libra \u0161terlink\u016f
-currenciesDisplayName.BIF=Frank burundsk\u00fd
-currenciesDisplayName.INR=Rupie indick\u00e1
currenciesDisplayName.ZRZ=Zaire
-currenciesDisplayName.AON=Kwanza nov\u00e1 (1990-2000)
-currenciesDisplayName.LTL=Litus litevsk\u00fd
+currenciesDisplayName.INR=Rupie indick\u00e1
+currenciesDisplayName.BIF=Frank burundsk\u00fd
currenciesDisplayName.XFU=Frank UIC
-currenciesDisplayName.KZT=Tenge
-currenciesDisplayName.MZM=Metical
+currenciesDisplayName.LTL=Litus litevsk\u00fd
+currenciesDisplayName.AON=Kwanza nov\u00e1 (1990-2000)
currenciesDisplayName.UYP=Peso uruguaysk\u00e9 (1975-1993)
+currenciesDisplayName.MZM=Metical
+currenciesDisplayName.KZT=Tenge
currenciesDisplayName.AOK=Kwanza (1977-1990)
-currenciesDisplayName.BUK=Kyat barmsk\u00fd
currenciesDisplayName.GNS=Guinea Syli
+currenciesDisplayName.BUK=Kyat barmsk\u00fd
currenciesDisplayName.XFO=Frank zlat\u00fd
currenciesDisplayName.PGK=Kina
currenciesDisplayName.SYP=Libra syrsk\u00e1
-currenciesDisplayName.MZE=Escudo Mosambiku
currenciesDisplayName.OMR=Rij\u00e1l om\u00e1nsk\u00fd
-currenciesDisplayName.NGN=Naira
+currenciesDisplayName.MZE=Escudo Mosambiku
currenciesDisplayName.ZRN=Zaire nov\u00fd
-currenciesDisplayName.AOA=Kwanza
+currenciesDisplayName.NGN=Naira
currenciesDisplayName.CNY=Juan renminbi
+currenciesDisplayName.AOA=Kwanza
currenciesDisplayName.MAF=Frank marock\u00fd
+currenciesDisplayName.RSD=Din\u00e1r srbsk\u00fd
currenciesDisplayName.GNF=Frank guinejsk\u00fd
-currenciesDisplayName.HTG=Gourde
currenciesDisplayName.MAD=Dirham marock\u00fd
+currenciesDisplayName.HTG=Gourde
currenciesDisplayName.TRY=Lira nov\u00e1 tureck\u00e1
currenciesDisplayName.MMK=Kyat
currenciesDisplayName.MYR=Ringgit malajskijsk\u00fd
-currenciesDisplayName.LSL=Loti
currenciesDisplayName.XEU=Evropsk\u00e1 m\u011bnov\u00e1 jednotka
+currenciesDisplayName.LSL=Loti
+currenciesDisplayName.SLL=Leone
currenciesDisplayName.BHD=Din\u00e1r bahrajnsk\u00fd
currenciesDisplayName.BTN=Ngultrum
currenciesDisplayName.TRL=Lira tureck\u00e1
currenciesDisplayName.KMF=Frank komorsk\u00fd
-currenciesDisplayName.ANG=Zlat\u00fd Nizozemsk\u00fdch Antil
currenciesDisplayName.CZK=Koruna \u010desk\u00e1
+currenciesDisplayName.ANG=Zlat\u00fd Nizozemsk\u00fdch Antil
currenciesDisplayName.AZM=Manat \u00e1zerbajd\u017e\u00e1nsk\u00fd
currenciesDisplayName.KYD=Dolar Kajmansk\u00fdch ostrov\u016f
currenciesDisplayName.GMD=Dalasi
currenciesDisplayName.BGN=Lev Bulharsk\u00fd
-currenciesDisplayName.CAD=Dolar kanadsk\u00fd
currenciesDisplayName.MXV=Mexican Unidad de Inversion (UDI)
+currenciesDisplayName.CAD=Dolar kanadsk\u00fd
currenciesDisplayName.BGL=Lev
currenciesDisplayName.VEB=Bolivar
currenciesDisplayName.MLF=Frank malijsk\u00fd
-currenciesDisplayName.ILS=\u0160ekel nov\u00fd izraelsk\u00fd
currenciesDisplayName.MXP=Peso st\u0159\u00edbrn\u00e9 mexick\u00e9 (1861-1992)
+currenciesDisplayName.ILS=\u0160ekel nov\u00fd izraelsk\u00fd
currenciesDisplayName.PES=Sol
-currenciesDisplayName.GYD=Dolar guyansk\u00fd
currenciesDisplayName.MXN=Peso mexick\u00e9
+currenciesDisplayName.GYD=Dolar guyansk\u00fd
currenciesDisplayName.ILP=Libra izraelsk\u00e1
-currenciesDisplayName.SKK=Koruna slovensk\u00e1
currenciesDisplayName.CYP=Libra kypersk\u00e1
+currenciesDisplayName.SKK=Koruna slovensk\u00e1
currenciesDisplayName.XDR=SDR
currenciesDisplayName.PEN=Nuevo sol
currenciesDisplayName.LRD=Dolar liberijsk\u00fd
@@ -136,16 +148,16 @@ currenciesDisplayName.PEI=Inti
currenciesDisplayName.AMD=Dram arm\u00e9nsk\u00fd
currenciesDisplayName.BSD=Dolar bahamsk\u00fd
currenciesDisplayName.HRK=Kuna chorvatsk\u00e1
-currenciesDisplayName.CLP=Peso chilsk\u00e9
currenciesDisplayName.HRD=Dinar chorvatsk\u00fd
+currenciesDisplayName.CLP=Peso chilsk\u00e9
currenciesDisplayName.XPF=Frank CFP
currenciesDisplayName.FRF=Frank francouzsk\u00fd
currenciesDisplayName.BRR=Cruzeiro real
currenciesDisplayName.MKD=Den\u00e1r
currenciesDisplayName.CLF=Unidades de fomento
-currenciesDisplayName.ALL=Lek
currenciesDisplayName.BRN=Cruzado nov\u00e9
-currenciesDisplayName.MWK=Kwacha
+currenciesDisplayName.ALL=Lek
+currenciesDisplayName.MWK=Kwacha malawsk\u00e1
currenciesDisplayName.BRL=Real brazilsk\u00fd
currenciesDisplayName.TPE=Escudo timorsk\u00e9
currenciesDisplayName.BRE=Cruzeiro (1990-1993)
@@ -156,22 +168,24 @@ currenciesDisplayName.KWD=Din\u00e1r kuvajtsk\u00fd
currenciesDisplayName.XCD=Dolar v\u00fdchodokaribsk\u00fd
currenciesDisplayName.NPR=Rupie nep\u00e1lsk\u00e1
currenciesDisplayName.GWP=Peso Guinnea-Bissau
-currenciesDisplayName.YUN=Din\u00e1r jugosl\u00e1vsk\u00fd
+currenciesDisplayName.YUN=Din\u00e1r jugosl\u00e1vsk\u00fd konvertibiln\u00ed
currenciesDisplayName.SVC=Colon salvadorsk\u00fd
-currenciesDisplayName.YUM=Din\u00e1r jugosl\u00e1vsk\u00fd
+currenciesDisplayName.YUM=Din\u00e1r jugosl\u00e1vsk\u00fd nov\u00fd [YUM]
currenciesDisplayName.BEL=Frank finan\u010dn\u00ed
currenciesDisplayName.SIT=Tolar
currenciesDisplayName.JPY=Jen
currenciesDisplayName.XOF=Frank BCEAO/CFA
currenciesDisplayName.MVR=Rufiyaa
-currenciesDisplayName.GWE=Escudo guinejsk\u00e9
currenciesDisplayName.BEF=Frank belgick\u00fd
-currenciesDisplayName.YUD=Din\u00e1r jugosl\u00e1vsk\u00fd nov\u00fd
+currenciesDisplayName.GWE=Escudo guinejsk\u00e9
+currenciesDisplayName.TOP=Pa\u02bbanga
+currenciesDisplayName.YUD=Din\u00e1r jugosl\u00e1vsk\u00fd nov\u00fd [YUD]
currenciesDisplayName.BEC=Frank konvertibiln\u00ed
currenciesDisplayName.SUR=Rubl
+currenciesDisplayName.RON=Leu rumunsk\u00e9
currenciesDisplayName.ROL=Lei
-currenciesDisplayName.DDM=Marka NDR
currenciesDisplayName.BDT=Taka
+currenciesDisplayName.DDM=Marka NDR
currenciesDisplayName.XBD=Evropsk\u00e1 jednotka \u00fa\u010dtu 17 (XBD)
currenciesDisplayName.AWG=Zlat\u00fd arubsk\u00fd
currenciesDisplayName.XBC=Evropsk\u00e1 jednotka \u00fa\u010dtu 9 (XBC)
@@ -183,12 +197,13 @@ currenciesDisplayName.ZAR=Rand
currenciesDisplayName.SHP=Libra Svat\u00e9 Heleny
currenciesDisplayName.XAU=Zlato
currenciesDisplayName.ZAL=Rand finan\u010dn\u00ed
+currenciesDisplayName.VND=Dong vietnamsk\u00fd
currenciesDisplayName.TZS=\u0160ilink tanzansk\u00fd
currenciesDisplayName.GIP=Libra gibraltarsk\u00e1
currenciesDisplayName.TND=Din\u00e1r tunisk\u00fd
currenciesDisplayName.CVE=Escudo kapverdsk\u00e9
currenciesDisplayName.UGX=\u0160ilink ugandsk\u00fd
-currenciesDisplayName.ZMK=Kwacha
+currenciesDisplayName.ZMK=Kwacha zambijsk\u00e1
currenciesDisplayName.JOD=Din\u00e1r jord\u00e1nsk\u00fd
currenciesDisplayName.XAF=Frank BEAC/CFA
currenciesDisplayName.LBP=Libra libanonsk\u00e1
@@ -196,32 +211,33 @@ currenciesDisplayName.UGS=\u0160ilink ugandsk\u00fd (1966-1987)
currenciesDisplayName.STD=Dobra
currenciesDisplayName.WST=Tala
currenciesDisplayName.KHR=Riel
-currenciesDisplayName.EUR=Euro
currenciesDisplayName.DOP=Peso dominik\u00e1nsk\u00e9
+currenciesDisplayName.EUR=Euro
currenciesDisplayName.BOV=Mvdol
currenciesDisplayName.MTP=Libra maltsk\u00e1
currenciesDisplayName.USS=Dolar americk\u00fd (t\u00fd\u017e den)
currenciesDisplayName.BOP=Peso
-currenciesDisplayName.MTL=Lira maltsk\u00e1
currenciesDisplayName.CUP=Peso kub\u00e1nsk\u00e9
+currenciesDisplayName.MTL=Lira maltsk\u00e1
currenciesDisplayName.TMM=Manat
currenciesDisplayName.USN=Dolar americk\u00fd (p\u0159\u00ed\u0161t\u00ed den)
currenciesDisplayName.SGD=Dolar singapursk\u00fd
currenciesDisplayName.NZD=Dolar novoz\u00e9landsk\u00fd
currenciesDisplayName.USD=Dolar americk\u00fd
-currenciesDisplayName.HNL=Lempira
currenciesDisplayName.BOB=Boliviano
+currenciesDisplayName.HNL=Lempira
currenciesDisplayName.ITL=Lira italsk\u00e1
currenciesDisplayName.PAB=Balboa
currenciesDisplayName.GTQ=Quetzal
-currenciesDisplayName.LAK=Kip
-currenciesDisplayName.GHC=Cedi
+currenciesDisplayName.XXX=Nezn\u00e1m\u00e1 nebo neplatn\u00e1 m\u011bna
currenciesDisplayName.AUD=Dolar australsk\u00fd
+currenciesDisplayName.GHC=Cedi
+currenciesDisplayName.LAK=Kip
currenciesDisplayName.NAD=Dolar namibijsk\u00fd
currenciesDisplayName.KGS=Som
currenciesDisplayName.MGF=Frank madagaskarsk\u00fd
-currenciesDisplayName.CHF=Frank \u0161v\u00fdcarsk\u00fd
currenciesDisplayName.BBD=Dolar barbadosk\u00fd
+currenciesDisplayName.CHF=Frank \u0161v\u00fdcarsk\u00fd
currenciesDisplayName.MGA=Ariary madagaskarsk\u00fd
currenciesDisplayName.PYG=Guarani
currenciesDisplayName.PLZ=Zlot\u00fd (1950-1995)
@@ -229,15 +245,15 @@ currenciesDisplayName.YER=Rij\u00e1l jemensk\u00fd
currenciesDisplayName.ATS=\u0160ilink
currenciesDisplayName.ETB=Birr etiopsk\u00fd
currenciesDisplayName.BND=Dolar brunejsk\u00fd
-currenciesDisplayName.JMD=Dolar jamajsk\u00fd
currenciesDisplayName.EGP=Libra egyptsk\u00e1
+currenciesDisplayName.JMD=Dolar jamajsk\u00fd
currenciesDisplayName.PLN=Zlot\u00fd
currenciesDisplayName.DZD=Din\u00e1r al\u017e\u00edrsk\u00fd
currenciesDisplayName.ISK=Koruna islandsk\u00e1
currenciesDisplayName.SRG=Zlat\u00fd surinamsk\u00fd
currenciesDisplayName.LYD=Din\u00e1r lybijsk\u00fd
-currenciesDisplayName.BZD=Dolar belizsk\u00fd
currenciesDisplayName.BAM=Marka konvertibiln\u00ed
+currenciesDisplayName.BZD=Dolar belizsk\u00fd
currenciesDisplayName.ESP=Peseta \u0161pan\u011blsk\u00e1
currenciesDisplayName.KRW=Won jihokorejsk\u00fd
currenciesDisplayName.NLG=Zlat\u00fd holandsk\u00fd
@@ -250,31 +266,29 @@ currenciesDisplayName.BYR=Rubl b\u011blorusk\u00fd
currenciesDisplayName.IRR=Rij\u00e1l \u00edr\u00e1nsk\u00fd
currenciesDisplayName.PKR=Rupie p\u00e1kist\u00e1nsk\u00e1
currenciesDisplayName.BMD=Dolar bermudsk\u00fd
-currenciesSymbol.BGL=lev
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
-currenciesSymbol.CYP=\u00a3
+currenciesSymbol.KES=K Sh
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
@@ -292,27 +306,27 @@ currenciesSymbol.FJD=F$
currenciesSymbol.UYU=Ur$
currenciesSymbol.BDT=Tk
currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
currenciesSymbol.DJF=DF
+currenciesSymbol.XXX=XXX
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -321,8 +335,8 @@ currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
currenciesSymbol.CNY=Y
@@ -337,10 +351,10 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.CZK=K\u010d
currenciesSymbol.DZD=DA
@@ -350,22 +364,21 @@ currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=led®\u00fano®b\u0159e®dub®kv\u011b®\u010drn®\u010drc®srp®z\u00e1\u0159®\u0159\u00edj®lis®pro®®
-months=leden®\u00fanor®b\u0159ezen®duben®kv\u011bten®\u010derven®\u010dervenec®srpen®z\u00e1\u0159\u00ed®\u0159\u00edjen®listopad®prosinec®®
-shortWeekdays=®ne®po®\u00fat®st®\u010dt®p\u00e1®so®
-weekdays=®ned\u011ble®pond\u011bl\u00ed®\u00fater\u00fd®st\u0159eda®\u010dtvrtek®p\u00e1tek®sobota®
-firstDayOfWeek=mon
-eras=p\u0159.Kr.®po Kr.®
-ampms=dop.®odp.®
-shortDateFormat=yy-MM-dd
-mediumDateFormat=yyyy-MM-dd
+shortMonths=1.\u00ae2.\u00ae3.\u00ae4.\u00ae5.\u00ae6.\u00ae7.\u00ae8.\u00ae9.\u00ae10.\u00ae11.\u00ae12.\u00ae\u00ae
+months=leden\u00ae\u00fanor\u00aeb\u0159ezen\u00aeduben\u00aekv\u011bten\u00ae\u010derven\u00ae\u010dervenec\u00aesrpen\u00aez\u00e1\u0159\u00ed\u00ae\u0159\u00edjen\u00aelistopad\u00aeprosinec\u00ae\u00ae
+shortWeekdays=\u00aene\u00aepo\u00ae\u00fat\u00aest\u00ae\u010dt\u00aep\u00e1\u00aeso\u00ae
+weekdays=\u00aened\u011ble\u00aepond\u011bl\u00ed\u00ae\u00fater\u00fd\u00aest\u0159eda\u00ae\u010dtvrtek\u00aep\u00e1tek\u00aesobota\u00ae
+eras=p\u0159.Kr.\u00aepo Kr.\u00ae
+ampms=dop.\u00aeodp.\u00ae
+shortDateFormat=d.M.yy
+mediumDateFormat=d.M.yyyy
longDateFormat=d. MMMM yyyy
fullDateFormat=EEEE, d. MMMM yyyy
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ssZZ
-fullTimeFormat=H:mm:ssZZ
-zoneStrings=Europe/Paris®CET®St\u0159edoevropsk\u00fd standardn\u00ed \u010das®CEST®St\u0159edoevropsk\u00fd letn\u00ed \u010das®©Pacific/Honolulu®HST®Havajsk\u00fd standardn\u00ed \u010das®HST®Havajsk\u00fd letn\u00ed \u010das®©America/Denver®MST®Horsk\u00fd standardn\u00ed \u010das®MDT®Horsk\u00fd letn\u00ed \u010das®©Asia/Jerusalem®IST®Izraelsk\u00fd standardn\u00ed \u010das®IDT®Izraelsk\u00fd letn\u00ed \u010das®©America/Anchorage®AST®Alja\u0161sk\u00fd standardn\u00ed \u010das®ADT®Alja\u0161sk\u00fd letn\u00ed \u010das®©Africa/Casablanca®GMT®Greenwichsk\u00fd st\u0159edn\u00ed \u010das®GMT®Greenwichsk\u00fd st\u0159edn\u00ed \u010das®©America/Phoenix®MST®Horsk\u00fd standardn\u00ed \u010das®MST®Horsk\u00fd letn\u00ed \u010das®©America/Los_Angeles®PST®Pacifick\u00fd standardn\u00ed \u010das®PDT®Pacifick\u00fd letn\u00ed \u010das®©America/Chicago®CST®Centr\u00e1ln\u00ed standardn\u00ed \u010das®CDT®Centr\u00e1ln\u00ed letn\u00ed \u010das®©America/Halifax®AST®Atlantick\u00fd standardn\u00ed \u010das®ADT®Atlantick\u00fd letn\u00ed \u010das®©America/New_York®EST®V\u00fdchodn\u00ed standardn\u00ed \u010das®EDT®V\u00fdchodn\u00ed letn\u00ed \u010das®©Asia/Tokyo®JST®Japonsk\u00fd standardn\u00ed \u010das®JST®Japonsk\u00fd letn\u00ed \u010das®©Europe/Bucharest®EET®V\u00fdchodoevropsk\u00fd standardn\u00ed \u010das®EEST®V\u00fdchodoevropsk\u00fd letn\u00ed \u010das®©America/Indianapolis®EST®V\u00fdchodn\u00ed standardn\u00ed \u010das®EST®V\u00fdchodn\u00ed letn\u00ed \u010das®©
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00aeV\u00fdchodoevropsk\u00fd standardn\u00ed \u010das\u00ae\u00aeV\u00fdchodoevropsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9America_Mountain\u00aeHorsk\u00fd standardn\u00ed \u010das\u00ae\u00aeHorsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundlandsk\u00fd standardn\u00ed \u010das\u00ae\u00aeNewfoundlandsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9America_Pacific\u00aePacifick\u00fd standardn\u00ed \u010das\u00ae\u00aePacifick\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9Europe_Central\u00aeSt\u0159edoevropsk\u00fd standardn\u00ed \u010das\u00ae\u00aeSt\u0159edoevropsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9China\u00ae\u010c\u00ednsk\u00fd standardn\u00ed \u010das\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeIzraelsk\u00fd standardn\u00ed \u010das\u00ae\u00aeIzraelsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9America_Eastern\u00aeV\u00fdchodn\u00ed standardn\u00ed \u010das\u00ae\u00aeV\u00fdchodn\u00ed letn\u00ed \u010das\u00ae\u00ae\u00a9Japan\u00aeJaponsk\u00fd standardn\u00ed \u010das\u00ae\u00aeJaponsk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9America_Central\u00aeCentr\u00e1ln\u00ed standardn\u00ed \u010das\u00ae\u00aeCentr\u00e1ln\u00ed letn\u00ed \u010das\u00ae\u00ae\u00a9GMT\u00aeGreenwichsk\u00fd st\u0159edn\u00ed \u010das\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00aeAtlantick\u00fd standardn\u00ed \u010das\u00ae\u00aeAtlantick\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9Alaska\u00aeAlja\u0161sk\u00fd standardn\u00ed \u010das\u00ae\u00aeAlja\u0161sk\u00fd letn\u00ed \u010das\u00ae\u00ae\u00a9
territories.TL=V\u00fdchodn\u00ed Timor
territories.TK=Tokelau
territories.TJ=T\u00e1d\u017eikist\u00e1n
@@ -390,10 +403,11 @@ territories.GL=Gr\u00f3nsko
territories.SV=El Salvador
territories.062=Ji\u017en\u00ed a centr\u00e1ln\u00ed Asie
territories.ST=Svat\u00fd Tom\u00e1\u0161
-territories.061=Polyn\u00e9sie
territories.GI=Gibraltar
+territories.061=Polyn\u00e9sie
territories.GH=Ghana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Francouzsk\u00e1 Guyana
territories.GE=Gruzie
territories.SO=Som\u00e1lsko
@@ -414,26 +428,27 @@ territories.SC=Seychely
territories.SB=\u0160alamounovy ostrovy
territories.SA=Sa\u00fadsk\u00e1 Ar\u00e1bie
territories.FR=Francie
-territories.057=Mikron\u00e9sie
territories.FO=Faersk\u00e9 ostrovy
-territories.FM=Mikron\u00e9sie, federativn\u00ed st\u00e1t
+territories.057=Mikron\u00e9sie
+territories.FM=Mikron\u00e9zie
territories.RW=Rwanda
territories.054=Melan\u00e9sie
-territories.053=Austr\u00e1lie a Nov\u00fd Z\u00e9land
territories.FK=Falklandsk\u00e9 ostrovy
+territories.053=Austr\u00e1lie a Nov\u00fd Z\u00e9land
territories.RU=Rusko
territories.FJ=Fid\u017ei
territories.FI=Finsko
+territories.RS=Srbsko
territories.RO=Rumunsko
territories.RE=R\u00e9union
territories.ET=Etiopie
territories.ES=\u0160pan\u011blsko
territories.ER=Eritrea
-territories.833=Ostrov Man
+territories.QU=Evropsk\u00e1 unie
territories.EH=Z\u00e1padn\u00ed Sahara
territories.EG=Egypt
-territories.830=Normansk\u00e9 ostrovy
territories.EE=Estonsko
+territories.830=Normansk\u00e9 ostrovy
territories.QO=Vn\u011bj\u0161\u00ed Oce\u00e1nie
territories.EC=Ekv\u00e1dor
territories.DZ=Al\u017e\u00edrsko
@@ -441,13 +456,14 @@ territories.QA=Katar
territories.039=Ji\u017en\u00ed Evropa
territories.DO=Dominik\u00e1nsk\u00e1 republika
territories.PY=Paraguay
-territories.035=Jihov\u00fdchodn\u00ed Asie
territories.DM=Dominika
+territories.035=Jihov\u00fdchodn\u00ed Asie
territories.PW=Palau
+territories.034=Ji\u017en\u00ed Asie
territories.DK=D\u00e1nsko
territories.DJ=D\u017eibuti
territories.PT=Portugalsko
-territories.PS=Palestinian Territory
+territories.PS=Palestinsk\u00e9 \u00fazem\u00ed
territories.030=V\u00fdchodn\u00ed Asie
territories.PR=Portoriko
territories.DE=N\u011bmecko
@@ -473,15 +489,16 @@ territories.CN=\u010c\u00edna
territories.CM=Kamerun
territories.CL=Chile
territories.CK=Cookovy ostrovy
-territories.CI=Pob\u0159e\u017e\u00ed slonoviny
territories.021=Severn\u00ed Amerika
+territories.CI=Pob\u0159e\u017e\u00ed slonoviny
territories.CH=\u0160v\u00fdcarsko
territories.CG=Kongo
territories.CF=St\u0159edoafrick\u00e1 republika
-territories.CD=Kongo, demokratick\u00e1 republika
+territories.CD=Demokratick\u00e1 republika Kongo
territories.CC=Kokosov\u00e9 ostrovy
territories.OM=Om\u00e1n
territories.CA=Kanada
+territories.419=Latinsk\u00e1 Amerika a Karibsk\u00e9 mo\u0159e
territories.BZ=Belize
territories.BY=B\u011blorusko
territories.BW=Botswana
@@ -492,23 +509,24 @@ territories.BR=Braz\u00edlie
territories.019=Amerika
territories.018=Ji\u017en\u00ed Afrika
territories.NZ=Nov\u00fd Z\u00e9land
-territories.BO=Bol\u00edvie
territories.017=St\u0159edn\u00ed Afrika
+territories.BO=Bol\u00edvie
territories.BN=Brunej Darussalam
-territories.BM=Bermudy
territories.015=Severn\u00ed Afrika
+territories.BM=Bermudy
territories.014=V\u00fdchodn\u00ed Afrika
territories.013=St\u0159edn\u00ed Amerika
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Z\u00e1padn\u00ed Afrika
+territories.BI=Burundi
territories.BH=Bahrajn
territories.NR=Nauru
territories.BG=Bulharsko
territories.BF=Burkina Faso
territories.NP=Nep\u00e1l
territories.BE=Belgie
+territories.ZZ=Nezn\u00e1m\u00e1 nebo neplatn\u00e1 oblast
territories.NO=Norsko
territories.BD=Banglad\u00e9\u0161
territories.BB=Barbados
@@ -529,25 +547,26 @@ territories.AU=Austr\u00e1lie
territories.AT=Rakousko
territories.AS=Americk\u00e1 Samoa
territories.AR=Argentina
-territories.009=Oce\u00e1nie
territories.AQ=Antarktida
+territories.009=Oce\u00e1nie
territories.MZ=Mosambik
-territories.200=\u010ceskoslovensko
territories.AO=Angola
+territories.200=\u010ceskoslovensko
territories.MY=Malajsie
territories.AN=Nizozemsk\u00e9 Antily
territories.MX=Mexiko
-territories.005=Ji\u017en\u00ed Amerika
territories.AM=Arm\u00e9nie
+territories.005=Ji\u017en\u00ed Amerika
territories.MW=Malawi
territories.AL=Alb\u00e1nie
territories.MV=Maladivy
-territories.ZA=Ji\u017en\u00ed Afrika
+territories.003=Severn\u00ed Amerika
+territories.ZA=Jihoafrick\u00e1 republika
territories.MU=Mauricius
territories.002=Afrika
territories.MT=Malta
-territories.001=Sv\u011bt
territories.AI=Anguila
+territories.001=Sv\u011bt
territories.MS=Montserrat
territories.MR=Maurit\u00e1nie
territories.AG=Antigua a Barbuda
@@ -555,16 +574,18 @@ territories.MQ=Martinik
territories.AF=Afgh\u00e1nist\u00e1n
territories.MP=Severn\u00ed Mariany
territories.AE=Spojen\u00e9 arabsk\u00e9 emir\u00e1ty
-territories.MO=Macao S.A.R., China
+territories.MO=Macao
territories.AD=Andorra
territories.MN=Mongolsko
-territories.MM=Myanmar (Burma)
+territories.MM=Myanmar
territories.ML=Mali
territories.MK=Macedonia
territories.YT=Mayotte
territories.MH=Marshallovy ostrovy
territories.MG=Madagaskar
-territories.MD=Moldavsko, republika
+territories.MF=Svat\u00fd Martin
+territories.ME=\u010cern\u00e1 Hora
+territories.MD=Mold\u00e1vie
territories.MC=Monako
territories.MA=Maroko
territories.YE=Jemen
@@ -587,6 +608,7 @@ territories.KZ=Kazachst\u00e1n
territories.KY=Kajmansk\u00e9 ostrovy
territories.KW=Kuvajt
territories.145=Z\u00e1padn\u00ed Asie
+territories.143=St\u0159edn\u00ed Asie
territories.142=Asie
territories.KR=Ji\u017en\u00ed Korea
territories.KP=Severn\u00ed Korea
@@ -602,6 +624,7 @@ territories.JP=Japonsko
territories.JO=Jord\u00e1nsko
territories.JM=Jamajka
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=Americk\u00e9 Panensk\u00e9 ostrovy
territories.VG=Britsk\u00e9 Panensk\u00e9 ostrovy
@@ -616,6 +639,7 @@ territories.UZ=Uzbekist\u00e1n
territories.IO=Britsk\u00e9 \u00fazem\u00ed v Indick\u00e9m oce\u00e1nu
territories.UY=Uruguay
territories.IN=Indie
+territories.IM=Ostrov Man
territories.IL=Izrael
territories.US=Spojen\u00e9 st\u00e1ty
territories.IE=Irsko
@@ -631,148 +655,182 @@ territories.HN=Honduras
territories.HM=Ostrovy Heard a McDonald
territories.TW=Tchaj-wan
territories.TV=Tuvalu
-territories.HK=Hongkong, zvl\u00e1\u0161tn\u00ed administrativn\u00ed oblast \u010c\u00edny
+territories.HK=Hongkong
territories.TT=Trinidad a Tobago
territories.TR=Turecko
territories.TO=Tonga
territories.TN=Tunisko
territories.TM=Turkmenist\u00e1n
-languages.es=\u0160pan\u011bl\u0161tina
-languages.ku=Kurd\u0161tina
-languages.eo=Esperanto
-languages.en=Angli\u010dtina
-languages.ks=Ka\u0161m\u00edr\u0161tina
-languages.el=\u0158e\u010dtina
-languages.qu=Ke\u010du\u00e1n\u0161tina
-languages.ko=Korej\u0161tina
-languages.kn=Kannad\u0161tina
-languages.km=Kambod\u017e\u0161tina
-languages.kl=Gr\u00f3n\u0161tina
-languages.kk=Kazach\u0161tina
-languages.wo=Wolof
-languages.ka=Gruz\u00edn\u0161tina
-languages.dz=Bh\u00fat\u00e1n\u0161tina
-languages.jv=Jav\u00e1n\u0161tina
-languages.pt=Portugal\u0161tina
-languages.ps=Pashto (Pushto)
-languages.de=N\u011bm\u010dina
-languages.pl=Pol\u0161tina
-languages.da=D\u00e1n\u0161tina
-languages.vo=Volapuk
-languages.ja=Japon\u0161tina
-languages.vi=Vietnam\u0161tina
-languages.cy=Vel\u0161tina
-languages.pa=Pa\u0148d\u017e\u00e1b\u0161tina
-languages.cs=\u010ce\u0161tina
-languages.iu=Inuktitut\u0161tina
-languages.co=Korsi\u010dtina
-languages.it=Ital\u0161tina
-languages.is=Island\u0161tina
-languages.uz=Uzbe\u010dtina
-languages.or=Oriya
-languages.ik=Inupiak\u0161tina
-languages.ur=Urd\u0161tina
-languages.om=Oromo (Afan)
-languages.ca=Katal\u00e1n\u0161tina
-languages.ie=Interlingue
-languages.id=Indon\u00e9\u0161tina
-languages.uk=Ukrajin\u0161tina
-languages.ia=Interlingua
-languages.oc=Occitan
-languages.ug=Uighur\u0161tina
-languages.hy=Arm\u00e9n\u0161tina
-languages.br=Breta\u0148\u0161tina
-languages.hu=Ma\u010far\u0161tina
-languages.bo=Tibet\u0161tina
-languages.bn=Beng\u00e1l\u0161tina
-languages.hr=Chorvat\u0161tina
-languages.bi=Bisl\u00e1m\u0161tina
-languages.tw=Twi
-languages.bh=Bihar\u0161tina
-languages.bg=Bulhar\u0161tina
-languages.tt=Tatar\u0161tina
-languages.no=Nor\u0161tina
-languages.be=B\u011bloru\u0161tina
-languages.ts=Tsonga
-languages.hi=Hind\u0161tina
-languages.tr=Ture\u010dtina
-languages.nl=Holand\u0161tina
-languages.zu=Zulu
-languages.ba=Baskir\u0161tina
-languages.to=Tonga
-languages.he=Hebrej\u0161tina
-languages.tn=Setswan\u0161tina
-languages.tl=Tagalog
-languages.tk=Turkmen\u0161tina
-languages.ha=Hausa
-languages.ne=Nep\u00e1l\u0161tina
-languages.az=Azerbajd\u017e\u00e1n\u0161tina
-languages.ti=Tigrinij\u0161tina
-languages.ay=Aym\u00e1r\u0161tina
-languages.th=Thaj\u0161tina
-languages.tg=T\u00e1d\u017ei\u010dtina
-languages.na=Nauru
-languages.te=Telug\u0161tina
-languages.zh=\u010c\u00edn\u0161tina
-languages.as=Assam\u00e9\u0161tina
-languages.ar=Arab\u0161tina
-languages.ta=Tamil\u0161tina
-languages.gu=Gujarat\u0161tina
-languages.my=Barm\u0161tina
-languages.am=Amhar\u0161tina
-languages.za=Zhuang
-languages.mt=Malt\u0161tina
-languages.ms=Malaj\u0161tina
-languages.gn=Guaran\u0161tina
-languages.sw=Svahil\u0161tina
-languages.mr=Marathi
-languages.sv=\u0160v\u00e9d\u0161tina
-languages.gl=Hali\u010d\u0161tina
-languages.su=Sundan\u0161tina
-languages.af=Afrik\u00e1n\u0161tina
-languages.st=Sesotho
-languages.mo=Moldav\u0161tina
-languages.ss=Siswat\u0161tina
-languages.mn=Mongol\u0161tina
-languages.sr=Srb\u0161tina
-languages.sq=Alb\u00e1n\u0161tina
-languages.ml=Malabar\u0161tina
-languages.ab=Abch\u00e1z\u0161tina
-languages.mk=Makedon\u0161tina
-languages.aa=Afar\u0161tina
-languages.so=Som\u00e1l\u0161tina
-languages.sn=Shona
-languages.gd=Skotsk\u00e1 gal\u0161tina
-languages.mi=Maor\u0161tina
-languages.sm=Samoy\u0161tina
-languages.sl=Slovin\u0161tina
-languages.mg=Malga\u0161tina
-languages.sk=Sloven\u0161tina
-languages.ga=Ir\u0161tina
-languages.yo=Yoruba
-languages.si=Sinh\u00e1l\u0161tina
-languages.sh=Srbochorvat\u0161tina
-languages.sg=Sangho
-languages.yi=Jidi\u0161
-languages.sd=Sindhi
-languages.fy=Fr\u00ed\u0161tina
-languages.sa=Sanskrt
-languages.fr=Francouz\u0161tina
-languages.lv=Loty\u0161tina
-languages.fo=Faer\u0161tina
-languages.lt=Litev\u0161tina
-languages.rw=Kinyarwand\u0161tina
-languages.ru=Ru\u0161tina
-languages.fj=Fid\u017ei
-languages.lo=Lao\u0161tina
-languages.fi=Fin\u0161tina
-languages.ln=Lingal\u0161tina
-languages.ro=Rumun\u0161tina
-languages.rn=Kirundi
-languages.rm=R\u00e9torom\u00e1n\u0161tina
-languages.fa=Per\u0161tina
-languages.la=Latina
-languages.xh=Xhosa
-languages.eu=Baski\u010dtina
-languages.et=Eston\u0161tina
-languages.ky=Kirgiz\u0161tina
+languages.lb=Lucembur\u0161tina
+languages.la=latina
+languages.xh=xhosa
+languages.ky=kirgiz\u0161tina
+languages.ku=kurd\u0161tina
+languages.ks=ka\u0161m\u00edr\u0161tina
+languages.ko=korej\u0161tina
+languages.kn=kannad\u0161tina
+languages.km=kambod\u017e\u0161tina
+languages.kl=gr\u00f3n\u0161tina
+languages.kk=kazach\u0161tina
+languages.grc=staro\u0159e\u010dtina
+languages.wo=wolof
+languages.ka=gruz\u00edn\u0161tina
+languages.arp=arapa\u017e\u0161tina
+languages.jv=jav\u00e1n\u0161tina
+languages.wa=valon\u0161tina
+languages.vo=volapuk
+languages.ja=japon\u0161tina
+languages.vi=vietnam\u0161tina
+languages.iu=inuktitut\u0161tina
+languages.it=ital\u0161tina
+languages.is=island\u0161tina
+languages.uz=uzbe\u010dtina
+languages.ik=inupiak\u0161tina
+languages.ur=urd\u0161tina
+languages.ie=interlingue
+languages.id=indon\u00e9\u0161tina
+languages.ia=interlingua
+languages.uk=ukrajin\u0161tina
+languages.ug=uighur\u0161tina
+languages.und=nezn\u00e1m\u00fd nebo neplatn\u00fd jazyk
+languages.hy=arm\u00e9n\u0161tina
+languages.hu=ma\u010far\u0161tina
+languages.hr=chorvat\u0161tina
+languages.fil=tagalog\u0161tina
+languages.ty=tahit\u0161tina
+languages.tw=twi
+languages.tt=tatar\u0161tina
+languages.hi=hind\u0161tina
+languages.ts=tsonga
+languages.tr=ture\u010dtina
+languages.he=hebrej\u0161tina
+languages.to=tonga
+languages.tn=setswan\u0161tina
+languages.tl=tagalog
+languages.ha=hausa
+languages.tk=turkmen\u0161tina
+languages.ti=tigrinij\u0161tina
+languages.th=thaj\u0161tina
+languages.tg=t\u00e1d\u017ei\u010dtina
+languages.te=telug\u0161tina
+languages.gv=man\u0161tina
+languages.ta=tamil\u0161tina
+languages.gu=gujarat\u0161tina
+languages.gn=guaran\u0161tina
+languages.mai=maithili\u0161tina
+languages.sw=svahil\u0161tina
+languages.gl=hali\u010d\u0161tina
+languages.mag=magadhi\u0161tina
+languages.sv=\u0161v\u00e9d\u0161tina
+languages.su=sundan\u0161tina
+languages.st=sesotho
+languages.ss=siswat\u0161tina
+languages.sr=srb\u0161tina
+languages.bho=bhojpur\u0161tina
+languages.en_CA=anglicky (Kanada)
+languages.sq=alb\u00e1n\u0161tina
+languages.so=som\u00e1l\u0161tina
+languages.gd=skotsk\u00e1 gal\u0161tina
+languages.sn=shona
+languages.sm=samoy\u0161tina
+languages.sl=slovin\u0161tina
+languages.ga=ir\u0161tina
+languages.sk=sloven\u0161tina
+languages.anp=angika
+languages.si=sinh\u00e1l\u0161tina
+languages.sh=srbochorvat\u0161tina
+languages.sg=sangho
+languages.fy=fr\u00ed\u0161tina
+languages.sd=sindhi
+languages.sa=sanskrt
+languages.fr=francouz\u0161tina
+languages.sla=slovansk\u00fd jazyk
+languages.fo=faer\u0161tina
+languages.rw=kinyarwand\u0161tina
+languages.ru=ru\u0161tina
+languages.fj=fid\u017ei
+languages.fi=fin\u0161tina
+languages.ro=rumun\u0161tina
+languages.rn=kirundi
+languages.rm=r\u00e9torom\u00e1n\u0161tina
+languages.fa=per\u0161tina
+languages.eu=baski\u010dtina
+languages.et=eston\u0161tina
+languages.es=\u0161pan\u011bl\u0161tina
+languages.eo=esperanto
+languages.en=angli\u010dtina
+languages.el=\u0159e\u010dtina
+languages.qu=ke\u010du\u00e1n\u0161tina
+languages.dz=bh\u00fat\u00e1n\u0161tina
+languages.tpi=tok pisin
+languages.pt=portugal\u0161tina
+languages.ps=pa\u0161tun\u0161tina
+languages.de=n\u011bm\u010dina
+languages.pl=pol\u0161tina
+languages.da=d\u00e1n\u0161tina
+languages.sux=sumersk\u00fd
+languages.cy=vel\u0161tina
+languages.akk=akkad\u0161tina
+languages.pa=pa\u0148d\u017e\u00e1b\u0161tina
+languages.cs=\u010de\u0161tina
+languages.co=korsi\u010dtina
+languages.or=oriya
+languages.om=orom\u0161tina (Afan)
+languages.ca=katal\u00e1n\u0161tina
+languages.oc=occitan
+languages.bs=bosen\u0161tina
+languages.br=breton\u0161tina
+languages.bo=tibet\u0161tina
+languages.zh_Hans=\u010d\u00edn\u0161tina (zjednodu\u0161en\u00e1)
+languages.bn=beng\u00e1l\u0161tina
+languages.zh_Hant=\u010d\u00edn\u0161tina (tradi\u010dn\u00ed)
+languages.bm=bambar\u0161tina
+languages.bi=bisl\u00e1m\u0161tina
+languages.bh=bihar\u0161tina
+languages.bg=bulhar\u0161tina
+languages.be=b\u011bloru\u0161tina
+languages.no=nor\u0161tina
+languages.nn=nor\u0161tina (nynorsk)
+languages.nl=nizozem\u0161tina
+languages.ba=baskir\u0161tina
+languages.zu=zulu
+languages.ain=ain\u0161tina
+languages.az=azerbajd\u017e\u00e1n\u0161tina
+languages.ne=nep\u00e1l\u0161tina
+languages.ay=aym\u00e1r\u0161tina
+languages.uga=ugarit\u0161tina
+languages.av=avar\u0161tina
+languages.de_AT=n\u011bmecky (Rakousko)
+languages.na=nauru
+languages.as=as\u00e1m\u0161tina
+languages.ar=arab\u0161tina
+languages.zh=\u010d\u00ednsky
+languages.my=barm\u0161tina
+languages.an=aragon\u0161tina
+languages.am=amhar\u0161tina
+languages.ak=akan\u0161tina
+languages.za=zhuang
+languages.mt=malt\u0161tina
+languages.ms=malaj\u0161tina
+languages.mr=marathi
+languages.af=afrik\u00e1n\u0161tina
+languages.ae=avest\u00e1n\u0161tina
+languages.haw=havajsk\u00fd
+languages.mo=moldav\u0161tina
+languages.mn=mongol\u0161tina
+languages.en_US=angli\u010dtina (USA)
+languages.ab=abch\u00e1z\u0161tina
+languages.ml=malabar\u0161tina
+languages.aa=afar\u0161tina
+languages.mk=makedon\u0161tina
+languages.mi=maor\u0161tina
+languages.mg=malga\u0161tina
+languages.yo=yoruba
+languages.tlh=klingon\u0161tina
+languages.yi=jidi\u0161
+languages.lv=loty\u0161tina
+languages.lt=litev\u0161tina
+languages.lo=lao\u0161tina
+languages.bal=bal\u00fa\u010d\u0161tina
+languages.ln=lingal\u0161tina
+languages.fr_CA=francouzsky (Kanada)
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cy.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cy.properties
index 612de13..b21854c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cy.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_cy.properties
@@ -5,6 +5,7 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.INR=Rwp\u00ee India
currenciesDisplayName.JPY=Yen Siapan
currenciesDisplayName.RUB=Rwbl Rwsia
@@ -14,10 +15,20 @@ currenciesDisplayName.GBP=Punt Sterling Prydain
currenciesDisplayName.BRL=Real Brasil
currenciesDisplayName.USD=Doler yr UDA
currenciesSymbol.EUR=EUR
-shortMonths=Ion®Chwef®Mawrth®Ebrill®Mai®Meh®Gorff®Awst®Medi®Hyd®Tach®Rhag®®
-months=Ionawr®Chwefror®Mawrth®Ebrill®Mai®Mehefin®Gorffenaf®Awst®Medi®Hydref®Tachwedd®Rhagfyr®®
-shortWeekdays=®Sul®Llun®Maw®Mer®Iau®Gwen®Sad®
-weekdays=®Dydd Sul®Dydd Llun®Dydd Mawrth®Dydd Mercher®Dydd Iau®Dydd Gwener®Dydd Sadwrn®
+shortMonths=\u00aeChwe\u00aeMaw\u00aeEbr\u00ae\u00ae\u00aeGor\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u00ae\u00ae\u00ae\u00ae\u00ae\u00aeGorffennaf\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00ae\u00ae\u00ae\u00ae\u00ae\u00aeGwe\u00ae\u00ae
+weekdays=\u00aeDydd Sul\u00aeDydd Llun\u00aeDydd Mawrth\u00aeDydd Mercher\u00aeDydd Iau\u00aeDydd Gwener\u00aeDydd Sadwrn\u00ae
+eras=CC\u00aeOC\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=d MMM yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE, dd MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.TL=Timor-Leste
territories.TK=Tokelau
territories.TJ=Tajicistan
@@ -42,8 +53,8 @@ territories.GL=Yr Ynys Las
territories.SV=El Salfador
territories.062=De Canol Asia
territories.ST=Sao Tome a Principe
-territories.061=Polynesia
territories.GI=Gibraltar
+territories.061=Polynesia
territories.GH=Ghana
territories.SR=Swrinam
territories.GF=Giana Ffrengig
@@ -66,13 +77,13 @@ territories.SC=Seychelles
territories.SB=Ynysoedd Solomon
territories.SA=Sawdi-Arabia
territories.FR=Ffrainc
-territories.057=Micronesia
territories.FO=Ynysoedd Ffar\u00f6e
+territories.057=Micronesia [057]
territories.FM=Micronesia
territories.RW=Rwanda
territories.054=Melanesia
-territories.053=Awstralia a Seland Newydd
territories.FK=Ynysoedd y Falkland
+territories.053=Awstralia a Seland Newydd
territories.RU=Rwsia
territories.FJ=Fiji
territories.FI=Y Ffindir
@@ -81,11 +92,10 @@ territories.RE=R\u00e9union
territories.ET=Ethiopia
territories.ES=Sbaen
territories.ER=Eritrea
-territories.833=Ynys Manaw
territories.EH=Gorllewin Sahara
territories.EG=Yr Aifft
-territories.830=Ynysoedd y Sianel
territories.EE=Estonia
+territories.830=Ynysoedd y Sianel
territories.QO=Ynysoedd Pellenig y De
territories.EC=Ecwador
territories.DZ=Algeria
@@ -93,8 +103,8 @@ territories.QA=Qatar
territories.039=De Ewrop
territories.DO=Y Weriniaeth Ddominicaidd
territories.PY=Paraguay
-territories.035=De ddwyrain Asia
territories.DM=Dominica
+territories.035=De ddwyrain Asia
territories.PW=Palau
territories.DK=Denmarc
territories.DJ=Djibouti
@@ -124,8 +134,8 @@ territories.CN=Tseina
territories.CM=Y Camer\u0175n
territories.CL=Chile
territories.CK=Ynysoedd Cook
-territories.CI=C\u00f4te d\u2019Ivoire
territories.021=Gogledd America
+territories.CI=C\u00f4te d\u2019Ivoire
territories.CH=Y Swistir
territories.CG=Congo
territories.CF=Gweriniaeth Canol Affrica
@@ -141,19 +151,19 @@ territories.BT=Bhwtan
territories.BS=Y Bahamas
territories.BR=Brasil
territories.019=Americas
-territories.018=De Affrica
+territories.018=De Affrica [018]
territories.NZ=Seland Newydd
-territories.BO=Bolifia
territories.017=Canol Affrica
+territories.BO=Bolifia
territories.BN=Brunei
-territories.BM=Bermwda
territories.015=Gogledd Affrica
+territories.BM=Bermwda
territories.014=Dwyrain Affrica
territories.013=Canolbarth America
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Gorllewin Affrica
+territories.BI=Burundi
territories.BH=Bahrain
territories.NR=Nawrw
territories.BG=Bwlgaria
@@ -180,15 +190,15 @@ territories.AU=Awstralia
territories.AT=Awstria
territories.AS=Samoa Americanaidd
territories.AR=Yr Ariannin
-territories.009=Oceania
territories.AQ=Antarctica
+territories.009=Oceania
territories.MZ=Mozambique
territories.AO=Angola
territories.MY=Malaysia
territories.AN=Ynysoedd Carib\u00ee yr Iseldiroedd
territories.MX=Mecsico
-territories.005=De America
territories.AM=Armenia
+territories.005=De America
territories.MW=Malawi
territories.AL=Albania
territories.MV=Maldives
@@ -196,8 +206,8 @@ territories.ZA=De Affrica
territories.MU=Mawrisiws
territories.002=Affrica
territories.MT=Malta
-territories.001=Y Byd
territories.AI=Anguilla
+territories.001=Y Byd
territories.MS=Montserrat
territories.MR=Mawritania
territories.AG=Antigwa a Barbuda
@@ -266,6 +276,7 @@ territories.UZ=Wsbecistan
territories.IO=Tiriogaeth Cefnfor India Prydain
territories.UY=Uruguay
territories.IN=India
+territories.IM=Ynys Manaw
territories.IL=Israel
territories.US=Yr Unol Daleithiau
territories.IE=Iwerddon
@@ -287,15 +298,108 @@ territories.TR=Twrci
territories.TO=Tonga
territories.TN=Tiwnisia
territories.TM=Tyrcmenistan
-languages.zh=Tseineeg
+languages.es=Sbaeneg
+languages.ku=Cwrdeg
+languages.eo=Esperanto
languages.en=Saesneg
-languages.ru=Rwsieg
-languages.hi=Hindi
+languages.el=Groeg
+languages.ko=Cor\u00ebeg
+languages.kn=Kannada
+languages.km=Cambodieg
+languages.ka=Georgeg
+languages.jv=Jafanaeg
+languages.fil=Tagalog
+languages.pt=Portiwgaleg
+languages.ps=Pashto
+languages.de=Almaeneg
+languages.pl=Pwyleg
+languages.da=Daneg
+languages.tlh=Klingon
+languages.ja=Japanaeg
+languages.vi=Fietnameg
languages.cy=Cymraeg
-languages.ar=Arabeg
+languages.pa=Pwnjabi
+languages.cs=Tsiec
languages.it=Eidaleg
+languages.is=Islandeg
+languages.uz=Wsbeceg
+languages.or=Oriya
+languages.ur=Urdu
+languages.ca=Catalaneg
+languages.ie=Interlingue
+languages.id=Indonesieg
+languages.uk=Wcreineg
+languages.ia=Interlingua
+languages.oc=Ocsitaneg
+languages.ug=Uighur
+languages.hy=Armeneg
+languages.bs=Bosnieg
+languages.br=Llydaweg
+languages.hu=Hwngareg
+languages.bn=Bengali; Bangla
+languages.hr=Croateg
+languages.tw=Twi
+languages.bh=Bihari
+languages.bg=Bwlgareg
+languages.no=Norwyeg
+languages.be=Belarwsiyn
+languages.nn=Norwyeg (Nynorsk)
+languages.hi=Hindi
+languages.tr=Twrceg
+languages.nl=Iseldireg
+languages.zu=Zwlw
+languages.he=Hebraeg
+languages.tk=Tyrcmeneg
+languages.ne=Nepali
+languages.az=Azerbaijani
+languages.ti=Tigrinya
+languages.th=Tai
+languages.te=Telugu
+languages.zh=Tsiein\u00ebeg
+languages.as=Asameg
+languages.ar=Arabeg
+languages.ta=Tamil
+languages.gu=Gwjarati
+languages.am=Amhareg
+languages.mt=Malteseg
+languages.ms=Malai
+languages.gn=Guarani
+languages.sw=Swahili
+languages.mr=Marathi
+languages.sv=Swedeg
+languages.gl=Galiseg
+languages.su=Sundaneg
+languages.af=Affricaneg
+languages.st=Sesotheg
+languages.mn=Mongoleg
+languages.sr=Serbeg
+languages.sq=Albaneg
+languages.ml=Malayalam
+languages.mk=Macedoneg
+languages.so=Somaleg
+languages.gd=Gaeleg yr Alban
+languages.sl=Slofeneg
+languages.sk=Slofaceg
+languages.ga=Gwyddeleg
+languages.si=Sinhaleg
+languages.sh=Serbo-Croateg
+languages.yi=Iddew-Almaeneg
+languages.sd=Sindhi
+languages.fy=Ffrisieg
+languages.sa=Sansgrit
languages.fr=Ffrangeg
-languages.de=Almaeneg
-languages.es=Sbaeneg
-languages.ja=Siapaneeg
-languages.pt=Portiwgaleg
+languages.lv=Latfieg
+languages.lt=Lithwaneg
+languages.fo=Ffaroeg
+languages.ru=Rwsieg
+languages.lo=Laoeg
+languages.ln=Lingala
+languages.fi=Ffineg
+languages.ro=Rwmaneg
+languages.fa=Persieg
+languages.und=anh
+languages.la=Lladin
+languages.xh=Xhosa
+languages.eu=Basgeg
+languages.ky=Kyrgyz
+languages.et=Estoneg
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_da.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_da.properties
index 10efdde..61d947b 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_da.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_da.properties
@@ -5,272 +5,297 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
-groupingSeparator=.
-localPatternChars=GuMtkHmsSEDFwWahKzUeygAZ
-currenciesDisplayName.YDD=Yemenitisk dinar
-currenciesDisplayName.TWD=Ny taiwansk dollar
-currenciesDisplayName.KES=Kenyansk shilling
+groupingSeparator=,
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+localPatternChars=GuMtkHmsSEDFwWahKzUeygAZvcL
+currenciesDisplayName.YDD=Yemenitiske dinarer
+currenciesDisplayName.KES=Kenyanske shilling
+currenciesDisplayName.TWD=Taiwanske dollar
+currenciesDisplayName.LKR=Srilankanske rupees
currenciesDisplayName.BYB=Ny hviderussisk rubel (1994-1999)
-currenciesDisplayName.LKR=Srilankansk rupee
+currenciesDisplayName.TJS=Tadsjikiske somoni
currenciesDisplayName.RWF=Rwandisk franc
-currenciesDisplayName.TJS=Tadsjikisk somoni
-currenciesDisplayName.SDP=Sudansk pund
-currenciesDisplayName.TJR=Tadsjikisk rubel
currenciesDisplayName.ERN=Eritreisk nakfa
-currenciesDisplayName.GRD=Gr\u00e6sk drachma
-currenciesDisplayName.IEP=Irsk pund
-currenciesDisplayName.ARS=Argentinsk peso
+currenciesDisplayName.TJR=Tadsjikisk rubel
+currenciesDisplayName.SDP=Sudansk pund
+currenciesDisplayName.GRD=Gr\u00e6ske drakmer
+currenciesDisplayName.AFN=Afghani
+currenciesDisplayName.IEP=Irske pund
+currenciesDisplayName.ARS=Argentinske pesos
+currenciesDisplayName.SDG=Sudanesisk pund
+currenciesDisplayName.ARP=Argentinske pesos (ARP)
currenciesDisplayName.SDD=Sudansk dinar
-currenciesDisplayName.ARP=Argentinsk peso (1983-1985)
-currenciesDisplayName.GEL=Georgisk lari
-currenciesDisplayName.GEK=Georgisk kupon larit
-currenciesDisplayName.CRC=Costaricansk colon
+currenciesDisplayName.GEL=Georgiske lari
+currenciesDisplayName.GEK=Georgiske kupon larit
+currenciesDisplayName.AFA=Afghani (1927-2002)
+currenciesDisplayName.CRC=Costaricanske colon
currenciesDisplayName.FKP=Pund fra Falklands\u00f8erne
-currenciesDisplayName.EEK=Estisk kroon
-currenciesDisplayName.MDL=Moldovisk leu
-currenciesDisplayName.ARA=Argentinsk austral
-currenciesDisplayName.IQD=Irakisk dinar
+currenciesDisplayName.EEK=Estiske kroon
+currenciesDisplayName.MDL=Moldoviske leu
+currenciesDisplayName.HKD=Hongkong dollar
+currenciesDisplayName.IQD=Irakiske dinarer
+currenciesDisplayName.ARA=Argentinske austral
currenciesDisplayName.SCR=Seychellisk rupee
currenciesDisplayName.VUV=Vanuaisk vatu
-currenciesDisplayName.DKK=Dansk krone
-currenciesDisplayName.KPW=Nordkoreansk won
+currenciesDisplayName.KPW=Nordkoreanske won
+currenciesDisplayName.DKK=Danske kroner
+currenciesDisplayName.IDR=Indonesiske rupiah
currenciesDisplayName.GQE=\u00c6kvatorialguineask ekwele guineana
-currenciesDisplayName.IDR=Indonesisk pupiah
-currenciesDisplayName.LVR=Lettisk rubel
-currenciesDisplayName.SOS=Somalisk shilling
+currenciesDisplayName.SOS=Somaliske shilling
+currenciesDisplayName.LVR=Lettiske rubler
currenciesDisplayName.AED=Dirham fra de Forenede Arabiske Emirater
+currenciesDisplayName.LVL=Lettiske lat
currenciesDisplayName.BWP=Botswansk pula
-currenciesDisplayName.LVL=Lettisk lats
currenciesDisplayName.RUR=Russisk rubel (1991-1998)
-currenciesDisplayName.NIO=Nicaraguansk cordoba oro
-currenciesDisplayName.ADP=Andorransk peseta
-currenciesDisplayName.FJD=Fijiansk dollar
+currenciesDisplayName.NIO=Nicaraguanske cordoba oro
currenciesDisplayName.MOP=Macaosk pataca
-currenciesDisplayName.RUB=Russisk rubel
+currenciesDisplayName.FJD=Fijianske dollar
+currenciesDisplayName.ADP=Andorranske pesetas
+currenciesDisplayName.RUB=Russiske rubler
currenciesDisplayName.CDF=Congolesisk franc congolais
-currenciesDisplayName.NIC=Nicaraguansk cordoba
+currenciesDisplayName.NIC=Nicaraguanske cordoba
currenciesDisplayName.DJF=Djiboutisk franc
+currenciesDisplayName.UZS=Usbekiske sum
currenciesDisplayName.SBD=Salomonsk dollar
-currenciesDisplayName.UZS=Usbekisk sum
currenciesDisplayName.ECS=Ecuadoriansk sucre
-currenciesDisplayName.PHP=Filippinsk peso
-currenciesDisplayName.THB=Thailandsk baht
-currenciesDisplayName.LUF=Luxembourgsk franc
-currenciesDisplayName.FIM=Finsk mark
+currenciesDisplayName.THB=Thailandske baht
+currenciesDisplayName.PHP=Filippinske pesos
+currenciesDisplayName.LUF=Luxembourgske franc
+currenciesDisplayName.FIM=Finske mar
currenciesDisplayName.TTD=Dollar fra Trinidad og Tobago
currenciesDisplayName.SZL=Swazilandsk lilangeni
currenciesDisplayName.MNT=Mongolsk tugrik
-currenciesDisplayName.SAR=Saudisk riyal
currenciesDisplayName.UAK=Ukrainsk karbovanetz
-currenciesDisplayName.UAH=Ukrainsk grynia
-currenciesDisplayName.HUF=Ungarsk forint
-currenciesDisplayName.COP=Colombiansk peso
+currenciesDisplayName.SAR=Saudiske riyal
+currenciesDisplayName.UAH=Ukrainske grynia
+currenciesDisplayName.HUF=Ungarske forint
currenciesDisplayName.QAR=Qatarsk rial
-currenciesDisplayName.LTT=Litauisk talonas
-currenciesDisplayName.PTE=Portugisisk escudo
-currenciesDisplayName.AOR=Angolansk kwanza reajustado (1995-1999)
+currenciesDisplayName.COP=Colombianske pesos
+currenciesDisplayName.LTT=Litauiske talonas
+currenciesDisplayName.PTE=Portugisiske escudo
currenciesDisplayName.UYU=Uruguaysk peso uruguayo
-currenciesDisplayName.GBP=Britisk pund
-currenciesDisplayName.BIF=Burundisk franc
-currenciesDisplayName.INR=Indisk rupee
-currenciesDisplayName.ZRZ=Zairisk naire
-currenciesDisplayName.AON=Ny angolansk kwanza (1990-2000)
-currenciesDisplayName.LTL=Litauisk lita
+currenciesDisplayName.AOR=Angolansk kwanza reajustado (1995-1999)
+currenciesDisplayName.GBP=Britiske pund sterling
+currenciesDisplayName.ZRZ=Zairiske zaire
+currenciesDisplayName.INR=Indiske rupees
+currenciesDisplayName.BIF=Burundiske franc
currenciesDisplayName.XFU=Fransk UIC-franc
-currenciesDisplayName.KZT=Kasakhisk tenge
-currenciesDisplayName.MZM=Mozambiquisk metical
+currenciesDisplayName.MZN=Ny mozambiquisk metical
+currenciesDisplayName.LTL=Litauiske lita
+currenciesDisplayName.AON=Ny angolansk kwanza (1990-2000)
currenciesDisplayName.UYP=Uruguaysk peso (1975-1993)
-currenciesDisplayName.AOK=Angolansk kwanza (1977-1990)
+currenciesDisplayName.MZM=Gammel mozambiquisk metical
+currenciesDisplayName.KZT=Kasakhiske tenge
+currenciesDisplayName.AOK=Angolanske kwanza (AOK)
+currenciesDisplayName.GNS=Guineanske syli
currenciesDisplayName.BUK=Burmesisk kyat
-currenciesDisplayName.GNS=Guineansk syli
currenciesDisplayName.XFO=Fransk guldfranc
currenciesDisplayName.PGK=Papuansk kina
-currenciesDisplayName.SYP=Syrisk pund
+currenciesDisplayName.SYP=Syriske pund
+currenciesDisplayName.OMR=Omanske rial
currenciesDisplayName.MZE=Mozambiquisk escudo
-currenciesDisplayName.OMR=Omansk rial
-currenciesDisplayName.NGN=Nigeriansk naira
currenciesDisplayName.ZRN=Ny zairisk zaire
-currenciesDisplayName.AOA=Angolansk kwanza
+currenciesDisplayName.NGN=Nigerianske naira
currenciesDisplayName.CNY=Kinesisk yuan renminbi
-currenciesDisplayName.MAF=Marokkansk franc
-currenciesDisplayName.GNF=Guineansk franc
-currenciesDisplayName.HTG=Haitisk gourde
-currenciesDisplayName.MAD=Marokkansk dirham
-currenciesDisplayName.TRY=Ny tyrkisk lira
-currenciesDisplayName.MMK=Myanmarsk kyat
-currenciesDisplayName.MYR=Malaysisk ringgit
-currenciesDisplayName.LSL=Lesothisk loti
-currenciesDisplayName.BHD=Bahrainsk dinar
+currenciesDisplayName.AOA=Angolanske kwanza
+currenciesDisplayName.MAF=Marokkanske franc
+currenciesDisplayName.RSD=Ny serbisk dinar
+currenciesDisplayName.GNF=Guineanske franc
+currenciesDisplayName.MAD=Marokkanske dirham
+currenciesDisplayName.HTG=Haitiske gourde
+currenciesDisplayName.TRY=Tyrkiske lira
+currenciesDisplayName.MMK=Myanmarske kyat
+currenciesDisplayName.MYR=Malaysiske ringgit
+currenciesDisplayName.LSL=Lesothiske loti
currenciesDisplayName.SLL=Sierraleonsk leone
+currenciesDisplayName.BHD=Bahrainske dinarer
currenciesDisplayName.BTN=Bhutansk ngultrum
-currenciesDisplayName.TRL=Tyrkisk lira
-currenciesDisplayName.KMF=Comorisk franc
-currenciesDisplayName.ANG=Gylden fra De Nederlandske Antiller
-currenciesDisplayName.CZK=Tjekkisk koruna
-currenciesDisplayName.AZM=Aserbajdsjansk manat
+currenciesDisplayName.TRL=Tyrkiske lire
+currenciesDisplayName.KMF=Comoriske franc
+currenciesDisplayName.CZK=Tjekkiske koruna
+currenciesDisplayName.ANG=Gylden fra De Hollandske Antiller
+currenciesDisplayName.AZN=Aserbajdsjanske manat
+currenciesDisplayName.AZM=Aserbajdsjansk manat 1993-2006
currenciesDisplayName.KYD=Dollar fra Cayman\u00f8erne
-currenciesDisplayName.GMD=Gambisk dalasi
-currenciesDisplayName.BGN=Ny Bulgarsk lev
-currenciesDisplayName.CAD=Canadisk dollar
-currenciesDisplayName.BGL=Bulgarsk hard lev
+currenciesDisplayName.GMD=Gambiske dalasi
+currenciesDisplayName.VEF=Venezuelansk bolivar fuerte
+currenciesDisplayName.BGN=Ny bulgarske lev
+currenciesDisplayName.CAD=Canadiske dollar
+currenciesDisplayName.BGL=Bulgarske hard lev
currenciesDisplayName.VEB=Venezuelansk bolivar
-currenciesDisplayName.MLF=Malisk franc
-currenciesDisplayName.ILS=Ny israelsk shekel
+currenciesDisplayName.MLF=Maliske franc
currenciesDisplayName.MXP=Mexicansk silver peso (1861-1992)
+currenciesDisplayName.ILS=Nye israelske shekel
currenciesDisplayName.PES=Peruviansk sol
-currenciesDisplayName.GYD=Guyansk dollar
-currenciesDisplayName.MXN=Mexicansk peso
-currenciesDisplayName.ILP=Israelsk pund
+currenciesDisplayName.MXN=Mexicanske pesos
+currenciesDisplayName.GYD=Guyanske dollar
+currenciesDisplayName.ILP=Israelske pund
+currenciesDisplayName.CYP=Cypriotiske pund
currenciesDisplayName.SKK=Slovakisk koruna
-currenciesDisplayName.CYP=Cypriotisk pund
currenciesDisplayName.PEN=Peruviansk sol nuevo
-currenciesDisplayName.LRD=Liberisk dollar
-currenciesDisplayName.PEI=Peruviansk inti
-currenciesDisplayName.AMD=Armensk dram
-currenciesDisplayName.BSD=Bahamansk dollar
-currenciesDisplayName.HRK=Kroatisk kuna
-currenciesDisplayName.CLP=Chilensk peso
-currenciesDisplayName.HRD=Kroatisk dinar
+currenciesDisplayName.LRD=Liberiske dollar
+currenciesDisplayName.PEI=Peruvianske inti
+currenciesDisplayName.AMD=Armenske dram
+currenciesDisplayName.BSD=Bahamanske dollar
+currenciesDisplayName.HRK=Kroatiske kuna
+currenciesDisplayName.HRD=Kroatiske dinarer
+currenciesDisplayName.CLP=Chilenske pesos
currenciesDisplayName.XPF=CFP-franc
-currenciesDisplayName.FRF=Fransk franc
-currenciesDisplayName.BRR=Brasiliansk cruzeiro
-currenciesDisplayName.MKD=Makedonsk denar
+currenciesDisplayName.FRF=Franske franc
+currenciesDisplayName.BRR=Brasilianske cruzeiro
+currenciesDisplayName.MKD=Makedonske denarer
currenciesDisplayName.CLF=Chilensk unidades de fomento
-currenciesDisplayName.ALL=Albansk lek
currenciesDisplayName.BRN=Brasiliansk cruzado novo
-currenciesDisplayName.MWK=Malawisk kwacha
-currenciesDisplayName.BRL=Brasiliansk real
+currenciesDisplayName.ALL=Albanske lek
+currenciesDisplayName.MWK=Malawiske kwacha
+currenciesDisplayName.BRL=Brasilianske real
currenciesDisplayName.TPE=Escudo fra Timor
currenciesDisplayName.BRE=Brasiliansk cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brasiliansk cruzado
+currenciesDisplayName.BRC=Brasilianske cruzado
currenciesDisplayName.BRB=Brasiliansk cruzeiro novo (1967-1986)
-currenciesDisplayName.DEM=Tysk mark
-currenciesDisplayName.KWD=Kuwaitisk dinar
-currenciesDisplayName.XCD=\u00d8st-karaibisk dollar
-currenciesDisplayName.NPR=Nepalesisk rupee
-currenciesDisplayName.GWP=Guineansk peso
-currenciesDisplayName.YUN=Jugoslavisk convertible dinar
-currenciesDisplayName.SVC=Salvadoransk colon
+currenciesDisplayName.DEM=D-mark
+currenciesDisplayName.KWD=Kuwaitiske dinarer
+currenciesDisplayName.XCD=\u00d8stkaribiske dollar
+currenciesDisplayName.NPR=Nepalesiske rupees
+currenciesDisplayName.GWP=Guinea-Bissau-pesos
+currenciesDisplayName.YUN=Jugoslavisk konvertibel dinar
+currenciesDisplayName.SVC=Salvadoranske colon
currenciesDisplayName.YUM=Jugoslavisk noviy dinar
-currenciesDisplayName.BEL=Belgisk franc (financial)
-currenciesDisplayName.SIT=Slovensk tolar
-currenciesDisplayName.JPY=Japansk yen
-currenciesDisplayName.MVR=Maldivisk rufiyaa
-currenciesDisplayName.GWE=Portugisisk guinea escudo
-currenciesDisplayName.BEF=Belgisk franc
-currenciesDisplayName.TOP=Tongask pa\u02bbanga
+currenciesDisplayName.BEL=Belgiske franc (financial)
+currenciesDisplayName.SIT=Slovenske tolar
+currenciesDisplayName.JPY=Japanske yen
+currenciesDisplayName.XOF=CFA-franc BCEAO
+currenciesDisplayName.MVR=Maldiviske rufiyaa
+currenciesDisplayName.BEF=Belgiske franc
+currenciesDisplayName.GWE=Portugisiske guinea escudo
+currenciesDisplayName.TOP=Tongaske pa\u02bbanga
currenciesDisplayName.YUD=Jugoslavisk hard dinar
-currenciesDisplayName.BEC=Belgisk franc (konvertibel)
-currenciesDisplayName.SUR=Sovjetisk rubel
-currenciesDisplayName.ROL=Rum\u00e6nsk leu
-currenciesDisplayName.DDM=\u00d8sttysk mark
-currenciesDisplayName.BDT=Bangladeshisk taka
-currenciesDisplayName.AWG=Arubansk gylden
-currenciesDisplayName.NOK=Norsk krone
-currenciesDisplayName.MUR=Mauritisk rupee
-currenciesDisplayName.ZAR=Sydafrikansk rand
+currenciesDisplayName.BEC=Belgiske franc (konvertible)
+currenciesDisplayName.SUR=Sovjetiske rubler
+currenciesDisplayName.RON=Rum\u00e6nsk leu
+currenciesDisplayName.ROL=Gammel rum\u00e6nsk leu
+currenciesDisplayName.BDT=Bangladeshiske taka
+currenciesDisplayName.DDM=\u00d8sttyske mark
+currenciesDisplayName.AWG=Arubanske gylden
+currenciesDisplayName.NOK=Norske kroner
+currenciesDisplayName.MUR=Mauritiske rupees
+currenciesDisplayName.ZAR=Sydafrikanske rand
currenciesDisplayName.SHP=Pund fra Saint Helena
currenciesDisplayName.XAU=Guld
currenciesDisplayName.ZAL=Sydafrikansk rand (financial)
-currenciesDisplayName.VND=Vietnamesisk dong
-currenciesDisplayName.TZS=Tanzanisk shilling
-currenciesDisplayName.GIP=Gibraltarisk pund
-currenciesDisplayName.TND=Tunesisk dinar
-currenciesDisplayName.CVE=Kapverdisk escudo
-currenciesDisplayName.UGX=Ugandisk shilling
-currenciesDisplayName.ZMK=Zambisk kwacha
-currenciesDisplayName.JOD=Jordansk dinar
+currenciesDisplayName.VND=Vietnamesiske dong
+currenciesDisplayName.TZS=Tanzaniske shilling
+currenciesDisplayName.GIP=Gibraltariske pund
+currenciesDisplayName.TND=Tunesiske dinarer
+currenciesDisplayName.CVE=Kapverdiske escudos
+currenciesDisplayName.UGX=Ugandiske shilling
+currenciesDisplayName.ZMK=Zambiske kwacha
+currenciesDisplayName.JOD=Jordanske dinarer
currenciesDisplayName.XAF=Beninsk CFA-franc
-currenciesDisplayName.LBP=Libanesisk pund
+currenciesDisplayName.LBP=Libanesiske pund
currenciesDisplayName.UGS=Ugandisk shilling (1966-1987)
currenciesDisplayName.STD=Dobra fra Sao Tome og Principe
-currenciesDisplayName.WST=Samoansk tala
-currenciesDisplayName.KHR=Cambodjansk riel
+currenciesDisplayName.WST=Samoanske tala
+currenciesDisplayName.KHR=Cambodjanske riel
+currenciesDisplayName.DOP=Dominikanske pesos
currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Dominikansk peso
currenciesDisplayName.BOV=Boliviansk mvdol
-currenciesDisplayName.MTP=Maltesisk pund
+currenciesDisplayName.MTP=Maltesiske pund
currenciesDisplayName.USS=Amerikansk dollar (samme dag)
-currenciesDisplayName.BOP=Boliviansk peso
-currenciesDisplayName.MTL=Maltesisk lira
-currenciesDisplayName.CUP=Cubansk peso
+currenciesDisplayName.BOP=Bolivianske pesos
+currenciesDisplayName.CUP=Cubanske pesos
+currenciesDisplayName.MTL=Maltesiske lira
currenciesDisplayName.TMM=Turkmensk manat
currenciesDisplayName.USN=Amerikansk dollar (n\u00e6ste dag)
-currenciesDisplayName.SGD=Singaporeansk dollar
-currenciesDisplayName.NZD=New Zealandsk dollar
-currenciesDisplayName.USD=Amerikanske dollar
+currenciesDisplayName.GHS=Ghanesisk cedi
+currenciesDisplayName.SGD=Singaporeanske dollar
+currenciesDisplayName.NZD=New Zealandske dollar
+currenciesDisplayName.USD=Amerikanske dollars
+currenciesDisplayName.BOB=Bolivianske boliviano
currenciesDisplayName.HNL=Honduransk lempira
-currenciesDisplayName.ITL=Italiensk lira
+currenciesDisplayName.ITL=Italienske lire
currenciesDisplayName.PAB=Panamansk balboa
currenciesDisplayName.GTQ=Guatemalansk quetzal
-currenciesDisplayName.LAK=Laotisk kip
-currenciesDisplayName.GHC=Ghanesisk cedi
+currenciesDisplayName.XXX=Ukendt eller ugyldig valuta
currenciesDisplayName.AUD=Australsk dollar
-currenciesDisplayName.NAD=Namibisk dollar
-currenciesDisplayName.KGS=Kirgisisk som
-currenciesDisplayName.MGF=Madagaskisk franc
-currenciesDisplayName.CHF=Schweizisk franc
-currenciesDisplayName.BBD=Barbadisk dollar
-currenciesDisplayName.MGA=Madagaskisk ariary
-currenciesDisplayName.PYG=Paraguaysk guarani
+currenciesDisplayName.GHC=Ghanesisk cedi 1979-2007
+currenciesDisplayName.LAK=Laotiske kip
+currenciesDisplayName.NAD=Namibiske dollar
+currenciesDisplayName.KGS=Kirgisiske som
+currenciesDisplayName.MGF=Madagaskiske franc
+currenciesDisplayName.BBD=Barbadiske dollar
+currenciesDisplayName.CHF=Schweiziske franc
+currenciesDisplayName.MGA=Madagaskiske ariary
+currenciesDisplayName.PYG=Paraguayske guarani
currenciesDisplayName.PLZ=Polsk zloty (1950-1995)
-currenciesDisplayName.YER=Yemenitisk rial
-currenciesDisplayName.ATS=\u00d8strigsk schilling
-currenciesDisplayName.ETB=Etiopisk birr
-currenciesDisplayName.BND=Bruneisk dollar
-currenciesDisplayName.JMD=Jamaicansk dollar
-currenciesDisplayName.EGP=Egyptisk pund
-currenciesDisplayName.PLN=Polsk zloty
-currenciesDisplayName.DZD=Algerisk dinar
+currenciesDisplayName.YER=Yemenitiske rial
+currenciesDisplayName.ATS=\u00d8strigsk shilling
+currenciesDisplayName.ETB=Etiopiske birr
+currenciesDisplayName.BND=Bruneiske dollar
+currenciesDisplayName.EGP=Egyptiske pund
+currenciesDisplayName.JMD=Jamaicanske dollar
+currenciesDisplayName.PLN=Polske zloty
+currenciesDisplayName.DZD=Algeriske dinarer
currenciesDisplayName.ISK=Islandsk krona
currenciesDisplayName.SRG=Surinamsk guilder
-currenciesDisplayName.LYD=Libysk dinar
+currenciesDisplayName.LYD=Libyske dinarer
+currenciesDisplayName.SRD=Surinamsk dollar
+currenciesDisplayName.BAM=Bosnien-Hercegovinske konvertible mark
currenciesDisplayName.BZD=Belizisk dollar
-currenciesDisplayName.BAM=Bosnien-Hercegovinsk konvertibel mark
-currenciesDisplayName.ESP=Spansk peseta
-currenciesDisplayName.KRW=Sydkoreansk won
-currenciesDisplayName.NLG=Hollandsk guilder
+currenciesDisplayName.ESP=Spanske pesetas
+currenciesDisplayName.KRW=Sydkoreanske won
+currenciesDisplayName.NLG=Hollandske gylden
currenciesDisplayName.MRO=Mauritansk ouguiya
-currenciesDisplayName.BAD=Bosnien-Hercegovinsk dinar
-currenciesDisplayName.ZWD=Zimbabwisk dollar
-currenciesDisplayName.SEK=Svensk krona
-currenciesDisplayName.CSK=Tjekkoslovakisk hard koruna
+currenciesDisplayName.BAD=Bosnien-Hercegovinske dinarer
+currenciesDisplayName.ZWD=Zimbabwiske dollar
+currenciesDisplayName.SEK=Svenske kroner
+currenciesDisplayName.CSK=Tjekkoslovakiske hard koruna
currenciesDisplayName.BYR=Hviderussisk rubel
-currenciesDisplayName.IRR=Iransk rial
-currenciesDisplayName.PKR=Pakistansk rupee
-currenciesDisplayName.BMD=Bermudansk dollar
-currenciesSymbol.BGL=lev
+currenciesDisplayName.IRR=Iranske rial
+currenciesDisplayName.PKR=Pakistanske rupees
+currenciesDisplayName.BMD=Bermudanske dollar
+currenciesDisplayName.CSD=Serbisk dinar
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=SOS
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
+currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
currenciesSymbol.DKK=kr
currenciesSymbol.TZS=T Sh
currenciesSymbol.SBD=SI$
-currenciesSymbol.NOK=NKr
+currenciesSymbol.NOK=NOK
currenciesSymbol.UGX=U Sh
currenciesSymbol.BEF=BF
currenciesSymbol.TTD=TT$
@@ -281,26 +306,28 @@ currenciesSymbol.FJD=F$
currenciesSymbol.UYU=Ur$
currenciesSymbol.BDT=Tk
currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
+currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -309,12 +336,12 @@ currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.CNY=Y
currenciesSymbol.KMF=CF
-currenciesSymbol.SEK=SKr
+currenciesSymbol.SEK=SEK
currenciesSymbol.AUD=$A
currenciesSymbol.LYD=LD
currenciesSymbol.JMD=J$
@@ -324,10 +351,10 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=NA f.
@@ -336,25 +363,24 @@ currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=jan®feb®mar®apr®maj®jun®jul®aug®sep®okt®nov®dec®®
-months=januar®februar®marts®april®maj®juni®juli®august®september®oktober®november®december®®
-shortWeekdays=®s\u00f8n®man®tir®ons®tor®fre®l\u00f8r®
-weekdays=®s\u00f8ndag®mandag®tirsdag®onsdag®torsdag®fredag®l\u00f8rdag®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=f.Kr.®e.Kr.®
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januar\u00aefebruar\u00aemarts\u00aeapril\u00aemaj\u00aejuni\u00aejuli\u00aeaugust\u00aeseptember\u00aeoktober\u00aenovember\u00aedecember\u00ae\u00ae
+shortWeekdays=\u00aes\u00f8n\u00aeman\u00aetir\u00aeons\u00aetor\u00aefre\u00ael\u00f8r\u00ae
+weekdays=\u00aes\u00f8ndag\u00aemandag\u00aetirsdag\u00aeonsdag\u00aetorsdag\u00aefredag\u00ael\u00f8rdag\u00ae
+eras=f.Kr.\u00aee.Kr.\u00ae
+ampms=f.m.\u00aee.m.\u00ae
shortDateFormat=dd/MM/yy
mediumDateFormat=dd/MM/yyyy
longDateFormat=d. MMM yyyy
-fullDateFormat=EEEE 'den' dd. MMM yyyy
-shortTimeFormat=H.mm
-mediumTimeFormat=H.mm.ss
-longTimeFormat=H.mm.ss z
-fullTimeFormat=H.mm.ss z
-zoneStrings=Europe/Paris®CET®Mellemeurop\u00e6isk normaltid®CEST®Mellemeurop\u00e6isk sommertid®©Pacific/Honolulu®HST®Hawaii-normaltid®HST®Hawaii-normaltid®©America/Denver®MST®Mountain-normaltid®MDT®Mountain-sommertid®©Asia/Jerusalem®IST®Israelsk normaltid®IDT®Israelsk sommertid®©America/Anchorage®AST®Alaska-normaltid®ADT®Alaska-sommertid®©Africa/Casablanca®GMT®Verdenstid®GMT®Verdenstid®©America/Phoenix®MST®Mountain-normaltid®MST®Mountain-normaltid®©America/Los_Angeles®PST®Pacific-normaltid®PDT®Pacific-sommertid®©America/Chicago®CST®Central-normaltid®CDT®Central-sommertid®©America/Halifax®AST®Atlantic-normaltid®ADT®Atlantic-sommertid®©America/St_Johns®CNT®Newfoundland-normaltid®CDT®Newfoundland-sommertid®©America/New_York®EST®Eastern-normaltid®EDT®Eastern-sommertid®©Asia/Shanghai®CTT®Kinesisk normaltid®CDT®Kinesisk normaltid®©Asia/Tokyo®JST®Japansk normaltid®JST®Japansk normaltid®©Europe/Bucharest®EET®\u00d8steurop\u00e6isk normaltid®EEST®\u00d8steurop\u00e6isk sommertid®©America/Indianapolis®EST®Eastern-normaltid®EST®Eastern-normaltid®©
-territories.TL=Timor-Leste
+fullDateFormat=EEEE 'den' d. MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00ae\u00f8steurop\u00e6isk normaltid\u00ae\u00ae\u00f8steurop\u00e6isk sommertid\u00ae\u00ae\u00a9Africa_Southern\u00aesydafrikansk normaltid\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00aeCentralaustralsk normaltid\u00ae\u00aeCentralaustralsk sommertid\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u00d8stindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Aqtobe\u00aeAqtobe-tid\u00ae\u00aeAqtobe-sommertid\u00ae\u00ae\u00a9New_Zealand\u00aeNewzealandsk normaltid\u00ae\u00aeNewzealandsk sommertid\u00ae\u00ae\u00a9Noronha\u00aeFernando de Noronha-tid\u00ae\u00aeFernando de Noronha-sommertid\u00ae\u00ae\u00a9America_Mountain\u00aeMountain-normaltid\u00ae\u00aeMountain-sommertid\u00ae\u00ae\u00a9Hong_Kong\u00aeHongkong-tid\u00ae\u00aeHongkong-sommertid\u00ae\u00ae\u00a9Greenland_Western\u00aeVestgr\u00f8nlandsk tid\u00ae\u00aeVestgr\u00f8nlandsk sommertid\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk tid\u00ae\u00aeAktyubinsk sommertid\u00ae\u00ae\u00a9Paraguay\u00aeParaguayansk tid\u00ae\u00aeParaguayansk sommertid\u00ae\u00ae\u00a9Almaty\u00aeAlmaty-tid\u00ae\u00aeAlmaty-sommertid\u00ae\u00ae\u00a9Ecuador\u00aeEcuadoriansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Syowa\u00aeSyowa-tid\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Western\u00aevestafrikansk tid\u00ae\u00aevestafrikansk sommertid\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHollandsk Guiana-tid\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundland-normaltid\u00ae\u00aeNewfoundland-sommertid\u00ae\u00ae\u00a9Uruguay\u00aeUruguayansk tid\u00ae\u00aeUruguayansk sommertid\u00ae\u00ae\u00a9Armenia\u00aeArmensk tid\u00ae\u00aeArmensk sommertid\u00ae\u00ae\u00a9Korea\u00aeKoreansk normaltid\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Central\u00aeCentralgr\u00f8nlandsk tid\u00ae\u00aeCentralgr\u00f8nlandsk sommertid\u00ae\u00ae\u00a9America_Pacific\u00aePacific-normaltid\u00ae\u00aePacific-sommertid\u00ae\u00ae\u00a9Yukon\u00aeYukon-normaltid\u00ae\u00aeYukon-sommertid\u00ae\u00ae\u00a9Davis\u00aeDavis-tid\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Central\u00aecentralafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Argentina\u00aeArgentinsk tid\u00ae\u00aeArgentinsk sommertid\u00ae\u00ae\u00a9Europe_Central\u00aemellemeurop\u00e6isk normaltid\u00ae\u00aemellemeurop\u00e6isk sommertid\u00ae\u00ae\u00a9Venezuela\u00aeVenezuelansk tid\u00ae\u00ae\u00ae\u00ae\u00a9India\u00aeIndisk normaltid\u00ae\u00ae\u00ae\u00ae\u00a9China\u00aeKinesisk normaltid\u00aeCST (Kina)\u00aeKinesisk sommertid\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u00f8stafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre- og Miquelon-normaltid\u00ae\u00aePierre- og Miquelon-sommertid\u00ae\u00ae\u00a9Indochina\u00aeIndokinesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeIsraelsk normaltid\u00aeIST (Israel)\u00aeIsraelsk sommertid\u00ae\u00ae\u00a9Colombia\u00aeColombiansk tid\u00ae\u00aeColombiansk sommertid\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u00d8stgr\u00f8nlandsk tid\u00ae\u00ae\u00d8stgr\u00f8nlandsk sommertid\u00ae\u00ae\u00a9Mawson\u00aeMawson-tid\u00ae\u00ae\u00ae\u00ae\u00a9Argentina_Western\u00aeVestargentinsk tid\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00aeAcre-tid\u00ae\u00aeAcre-sommertid\u00ae\u00ae\u00a9Europe_Western\u00aevesteurop\u00e6isk normaltid\u00ae\u00aevesteurop\u00e6isk sommertid\u00ae\u00ae\u00a9French_Guiana\u00aeFransk Guiana-tid\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeAfghansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeVestindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBering-normaltid\u00ae\u00aeBering-sommertid\u00ae\u00ae\u00a9Anadyr\u00aeAnadyr-tid\u00ae\u00aeAnadyr-sommertid\u00ae\u00ae\u00a9America_Eastern\u00aeEastern-normaltid\u00ae\u00aeEastern-sommertid\u00ae\u00ae\u00a9Cuba\u00aeCubansk normaltid\u00ae\u00aeCubansk sommertid\u00ae\u00ae\u00a9Brasilia\u00aeBrasiliansk tid\u00ae\u00aeBrasiliansk sommertid\u00ae\u00ae\u00a9Suriname\u00aeSurinam-tid\u00ae\u00ae\u00ae\u00ae\u00a9Bolivia\u00aeBoliviansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Aqtau\u00aeAqtau-tid\u00ae\u00aeAqtau-sommertid\u00ae\u00ae\u00a9Chile\u00aeChilensk tid\u00ae\u00aeChilensk sommertid\u00ae\u00ae\u00a9Japan\u00aeJapansk normaltid\u00ae\u00aeJapansk sommertid\u00ae\u00ae\u00a9Rothera\u00aeRothera-tid\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeCentralindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00aeAmazonas-tid\u00ae\u00aeAmazonas-sommertid\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii-normaltid\u00ae\u00aeAlaska-Hawaii-sommertid\u00ae\u00ae\u00a9America_Central\u00aeCentral-normaltid\u00ae\u00aeCentral-sommertid\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u00d8staustralsk normaltid\u00ae\u00ae\u00d8staustralsk sommertid\u00ae\u00ae\u00a9Moscow\u00aeMoskva-normaltid\u00ae\u00aeMoskva-sommertid\u00ae\u00ae\u00a9Peru\u00aePeruviansk tid\u00ae\u00aePeruviansk sommertid\u00ae\u00ae\u00a9GMT\u00aeVerdenstid\u00ae\u00ae\u00ae\u00ae\u00a9Arabian\u00aeArabisk normaltid\u00aeAST (arabisk)\u00aeArabisk sommertid\u00aeADT (arabisk)\u00ae\u00a9Atlantic\u00aeAtlantic-normaltid\u00ae\u00aeAtlantic-sommertid\u00ae\u00ae\u00a9Vostok\u00aeVostok-tid\u00ae\u00ae\u00ae\u00ae\u00a9Guyana\u00aeGuyana-tid\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Western\u00aeVestaustralsk normaltid\u00ae\u00aeVestaustralsk sommertid\u00ae\u00ae\u00a9DumontDUrville\u00aeDumont-d'Urville-tid\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeVestlig centralaustralsk normaltid\u00ae\u00aeVestlig centralaustralsk sommertid\u00ae\u00ae\u00a9Alaska\u00aeAlaska-normaltid\u00ae\u00aeAlaska-sommertid\u00ae\u00ae\u00a9
+territories.TL=\u00d8sttimor
territories.TK=Tokelau
-territories.TJ=Tadsjikistan
+territories.TJ=Tajikistan
territories.TH=Thailand
territories.TG=Togo
territories.TF=Franske Besiddelser i Det Sydlige Indiske Ocean
@@ -374,10 +400,13 @@ territories.GN=Guinea
territories.GM=Gambia
territories.GL=Gr\u00f8nland
territories.SV=El Salvador
+territories.062=Sydcentralasien
territories.ST=S\u00e3o Tom\u00e9 og Pr\u00edncipe
territories.GI=Gibraltar
+territories.061=Polynesien
territories.GH=Ghana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Fransk Guyana
territories.GE=Georgien
territories.SO=Somalia
@@ -390,7 +419,7 @@ territories.GA=Gabon
territories.SK=Slovakiet
territories.SJ=Svalbard og Jan Mayen
territories.SI=Slovenien
-territories.SH=St. Helena
+territories.SH=Saint Helena
territories.SG=Singapore
territories.SE=Sverige
territories.SD=Sudan
@@ -399,31 +428,41 @@ territories.SB=Salomon\u00f8erne
territories.SA=Saudi-Arabien
territories.FR=Frankrig
territories.FO=F\u00e6r\u00f8erne
+territories.057=Mikronesien
territories.FM=Mikronesiens Forenede Stater
territories.RW=Rwanda
+territories.054=Melanesien
territories.FK=Falklands\u00f8erne
+territories.053=Australien og New Zealand
territories.RU=Rusland
territories.FJ=Fiji-\u00f8erne
territories.FI=Finland
+territories.RS=Serbien
territories.RO=Rum\u00e6nien
territories.RE=Reunion
territories.ET=Etiopien
territories.ES=Spanien
territories.ER=Eritrea
+territories.QU=EU
territories.EH=Vestsahara
territories.EG=Egypten
territories.EE=Estland
+territories.QO=Ydre Oceanien
territories.EC=Ecuador
territories.DZ=Algeriet
territories.QA=Qatar
+territories.039=Sydeuropa
territories.DO=Den Dominikanske Republik
territories.PY=Paraguay
territories.DM=Dominica
+territories.035=Syd\u00f8stasien
territories.PW=Palau
+territories.034=Sydasien
territories.DK=Danmark
territories.DJ=Djibouti
territories.PT=Portugal
-territories.PS=De pal\u00e6stinensiske omr\u00e5der
+territories.PS=Pal\u00e6stina
+territories.030=\u00d8stasien
territories.PR=Puerto Rico
territories.DE=Tyskland
territories.PN=Pitcairn
@@ -442,19 +481,22 @@ territories.PA=Panama
territories.CU=Cuba
territories.CS=Serbien og Montenegro
territories.CR=Costa Rica
+territories.029=Caribien
territories.CO=Colombia
territories.CN=Kina
territories.CM=Cameroun
territories.CL=Chile
territories.CK=Cook-\u00f8erne
+territories.021=Nordlige Amerika
territories.CI=Elfenbenskysten
territories.CH=Schweiz
-territories.CG=Congo
+territories.CG=Congo-Brazzaville
territories.CF=Centralafrikanske Republik
-territories.CD=Den Demokratiske Republik Congo
-territories.CC=Cocos-\u00f8erne (Keeling\u00f8erne)
+territories.CD=Congo-Kinshasa
+territories.CC=Cocos\u00f8erne
territories.OM=Oman
territories.CA=Canada
+territories.419=Latinamerika og Caribien
territories.BZ=Belize
territories.BY=Hviderusland
territories.BW=Botswana
@@ -462,19 +504,29 @@ territories.BV=Bouvet\u00f8
territories.BT=Bhutan
territories.BS=Bahamas
territories.BR=Brasilien
+territories.019=Amerika
+territories.018=Sydafrika
territories.NZ=New Zealand
+territories.017=Centralafrika
territories.BO=Bolivia
-territories.BN=Brunei Darussalam
+territories.BN=Brunei
+territories.015=Nordafrika
territories.BM=Bermuda
+territories.014=\u00d8stafrika
+territories.BL=Saint Barth\u00e9lemy
+territories.013=Mellemamerika
territories.NU=Niue
territories.BJ=Benin
+territories.011=Vestafrika
territories.BI=Burundi
+territories.172=Sammenslutningen af uafh\u00e6ngige stater
territories.BH=Bahrain
territories.NR=Nauru
territories.BG=Bulgarien
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgien
+territories.ZZ=ukent region
territories.NO=Norge
territories.BD=Bangladesh
territories.BB=Barbados
@@ -486,6 +538,7 @@ territories.NG=Nigeria
territories.NF=Norfolk Island
territories.AZ=Aserbajdsjan
territories.NE=Niger
+territories.AX=\u00c5land
territories.NC=Ny Caledonien
territories.AW=Aruba
territories.ZM=Zambia
@@ -495,28 +548,33 @@ territories.AT=\u00d8strig
territories.AS=Amerikansk Samoa
territories.AR=Argentina
territories.AQ=Antarktis
+territories.009=Oceanien
territories.MZ=Mozambique
territories.AO=Angola
territories.MY=Malaysia
territories.AN=Hollandske Antiller
territories.MX=Mexico
territories.AM=Armenien
+territories.005=Sydamerika
territories.MW=Malawi
territories.AL=Albanien
territories.MV=Maldiverne
+territories.003=Nordamerika
territories.ZA=Sydafrika
territories.MU=Mauritius
+territories.002=Afrika
territories.MT=Malta
territories.AI=Anguilla
+territories.001=verden
territories.MS=Montserrat
territories.MR=Mauretanien
territories.AG=Antigua og Barbuda
-territories.AF=Afghanistan
territories.MQ=Martinique
-territories.AE=Forenede Arabiske Emirater
+territories.AF=Afghanistan
territories.MP=Nordmarianerne
+territories.AE=Forenede Arabiske Emirater
+territories.MO=Macao
territories.AD=Andorra
-territories.MO=SAR Macao
territories.MN=Mongoliet
territories.MM=Myanmar
territories.ML=Mali
@@ -524,16 +582,22 @@ territories.MK=Republikken Makedonien
territories.YT=Mayotte
territories.MH=Marshall\u00f8erne
territories.MG=Madagaskar
+territories.MF=Saint Martin
+territories.ME=Montenegro
territories.MD=Republikken Moldova
territories.MC=Monaco
territories.MA=Marokko
territories.YE=Yemen
territories.LY=Libyen
territories.LV=Letland
+territories.155=Vesteuropa
territories.LU=Luxembourg
+territories.154=Nordeuropa
territories.LT=Litauen
territories.LS=Lesotho
territories.LR=Liberia
+territories.151=\u00d8steuropa
+territories.150=Europa
territories.LK=Sri Lanka
territories.LI=Liechtenstein
territories.LC=Saint Lucia
@@ -542,6 +606,9 @@ territories.LA=Laos
territories.KZ=Kasakhstan
territories.KY=Cayman\u00f8erne
territories.KW=Kuwait
+territories.145=Vestasien
+territories.143=Centralasien
+territories.142=Asien
territories.KR=Sydkorea
territories.KP=Nordkorea
territories.KN=Saint Kitts og Nevis
@@ -556,11 +623,12 @@ territories.JP=Japan
territories.JO=Jordan
territories.JM=Jamaica
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=De amerikanske jomfru\u00f8er
territories.VG=De britiske jomfru\u00f8er
territories.VE=Venezuela
-territories.VC=St. Vincent og Grenadinerne
+territories.VC=Saint Vincent og Grenadinerne
territories.VA=Vatikanstaten
territories.IT=Italien
territories.IS=Island
@@ -570,11 +638,12 @@ territories.UZ=Usbekistan
territories.IO=Det Britiske Territorium i Det Indiske Ocean
territories.UY=Uruguay
territories.IN=Indien
+territories.IM=Isle of Man
territories.IL=Israel
territories.US=USA
territories.IE=Irland
territories.ID=Indonesien
-territories.UM=De Mindre Amerikanske Overs\u00f8iske \u00d8er
+territories.UM=De mindre amerikanske overs\u00f8iske \u00f8er
territories.UG=Uganda
territories.UA=Ukraine
territories.HU=Ungarn
@@ -585,464 +654,523 @@ territories.HN=Honduras
territories.HM=Heard- og McDonald-\u00f8erne
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=SAR Hongkong
+territories.HK=Hongkong
territories.TT=Trinidad og Tobago
territories.TR=Tyrkiet
territories.TO=Tonga
territories.TN=Tunesien
territories.TM=Turkmenistan
-languages.akk=Akkadisk
-languages.gwi=Gwich\u02bcin
-languages.eka=Ekajuk
-languages.ijo=Ijo
-languages.xh=Xhosa
-languages.sux=Sumerisk
-languages.sus=Susu
-languages.mis=Diverse sprog
-languages.loz=Lozi
+languages.gwi=gwichin
+languages.akk=akkadisk
+languages.eka=ekajuk
+languages.ijo=ijo
+languages.xh=xhosa
+languages.sux=sumerisk
+languages.sus=susu
+languages.mis=annet sprog
+languages.loz=lozi
languages.tog=Tonga (Nyasa)
-languages.pon=Ponape
-languages.min=Minangkabau
-languages.suk=Sukuma
-languages.wo=Wolof
-languages.lol=Mongo
-languages.mic=Micmac
-languages.wa=Vallonsk
-languages.zap=Zapotec
-languages.cus=Kusjitiske sprog (\u00f8vrige)
-languages.doi=Dogri
-languages.jbo=Lojban
-languages.vo=Volap\u00fck
-languages.oto=Otomi sprog
-languages.vi=Vietnamesisk
-languages.vai=Vai
-languages.rar=Rarotongan
-languages.ve=Venda
-languages.rap=Rapanui
-languages.raj=Rajasthani
-languages.ota=Osmannisk (1500-1928)
-languages.nzi=Nzima
-languages.nap=Neapolitansk
-languages.uz=Usbekisk
-languages.uga=Ugaristisk
-languages.tmh=Tamashek
-languages.nai=Nordamerikanske indianske sprog (\u00f8vrige)
-languages.nah=Nahuatl
-languages.ur=Urdu
-languages.fat=Fanti
-languages.uk=Ukrainsk
-languages.egy=Egyptisk (oldtid)
-languages.ug=Uigurisk
-languages.fan=Fang
-languages.ssa=Afrikanske sprog syd for Sahara (\u00f8vrige)
-languages.bat=Baltiske sprog (\u00f8vrige)
-languages.mga=Irsk, Middel- (900-1200)
-languages.nyo=Nyoro sprog
-languages.bas=Basa
-languages.nyn=Nyankole
-languages.nym=Nyamwezi
-languages.hmn=Hmong
-languages.ban=Balinesisk
-languages.osa=Osage
-languages.bal=Baluchi
-languages.ty=Tahitiansk
-languages.tw=Twi
-languages.srr=Serer
-languages.tli=Tlingit
-languages.tt=Tatarisk
-languages.ts=Tsonga
-languages.bad=Banda
-languages.tr=Tyrkisk
-languages.to=Tonga (Tonga\u00f8erne)
-languages.tn=Tswana
-languages.tl=Tagalog
-languages.tk=Turkmensk
-languages.ti=Tigrinya
-languages.th=Thailandsk
-languages.kru=Kurukh
-languages.tg=Tajik
-languages.byn=Blin
-languages.te=Telugu
-languages.csb=Kashubian
-languages.kro=Kru
-languages.ta=Tamilsk
-languages.tkl=Tokelau
-languages.efi=Efik
-languages.sw=Swahili
-languages.sv=Svensk
-languages.su=Sundanesisk
-languages.krc=Karachay-Balkar
-languages.st=Sotho, Southern
-languages.ss=Swati
-languages.sr=Serbisk
-languages.sq=Albansk
-languages.men=Mende
-languages.crp=Kreolsk og pidgin (\u00f8vrige)
-languages.so=Somalisk
-languages.afh=Afrihili
-languages.sn=Shona
-languages.sm=Samoansk
-languages.sl=Slovensk
-languages.grc=Gr\u00e6sk, Old- (til 1453)
-languages.sk=Slovakisk
-languages.grb=Grebo
-languages.si=Singalesisk
-languages.sh=Serbokroatisk
-languages.afa=Afro-asiatisk (\u00f8vrige)
-languages.crh=Krim-tyrkisk; Krim-tatarisk
-languages.sg=Sango
-languages.se=Nordsamisk
-languages.sd=Sindhi
-languages.udm=Udmurt
-languages.sc=Sardinsk
-languages.sa=Sanskrit
-languages.rw=Kinyarwanda
-languages.ru=Russisk
-languages.mdr=Mandar
-languages.ro=Rum\u00e6nsk
-languages.rn=Rundi
-languages.rm=R\u00e6toromansk
-languages.mdf=Moksha
-languages.tiv=Tivi
-languages.ady=Adyghe
-languages.zun=Zuni
-languages.kpe=Kpelle
-languages.qu=Quechua
-languages.tig=Tigre
-languages.son=Songhai
-languages.cpp=Kreolsk og pidgin, baseret p\u00e5 portugisisk (\u00f8vrige)
-languages.sog=Sogdiansk
-languages.ada=Adangme
-languages.cpf=Kreolsk og pidgin, baseret p\u00e5 fransk (\u00f8vrige)
-languages.hit=Hittitisk
-languages.kos=Kosraean
-languages.cpe=Kreolsk og pidgin, baseret p\u00e5 engelsk (\u00f8vrige)
-languages.him=Himachali
-languages.got=Gotisk
-languages.hil=Hiligaynon
-languages.kok=Konkani
-languages.gor=Gorontalo
-languages.gon=Gondi
-languages.din=Dinka
-languages.nub=Nubiske sprog
-languages.pt=Portugisisk
-languages.ps=Pashto (Pushto)
-languages.fur=Friulian
-languages.phn=F\u00f8nikisk
-languages.goh=Tysk, Oldh\u00f8j- (ca.750-1050)
-languages.snk=Soninke
-languages.cop=Koptisk
-languages.yap=Yap
-languages.ach=Acoli
-languages.yao=Yao
-languages.phi=Filippinske sprog (\u00f8vrige)
-languages.pl=Polsk
-languages.ace=Achinesisk
-languages.pi=Pali
-languages.pa=Punjabi
-languages.bug=Buginesisk
-languages.iba=Iban
-languages.sms=Skolt Sami
-languages.bua=Buriat
-languages.mas=Masai
-languages.smn=Inari Sami
-languages.os=Ossetisk
-languages.map=Malajo-polynesiske sprog (\u00f8vrige)
-languages.or=Oriya
-languages.man=Mandingo
-languages.smj=Lule Sami
-languages.smi=Samiske sprog (\u00f8vrige)
-languages.mak=Makasar
-languages.om=Oromo
-languages.mai=Maithili
-languages.oj=Ojibwa
-languages.mag=Magahi
-languages.mad=Madurese
-languages.sma=Sydsamisk
-languages.oc=Occitansk (efter 1500); Provencalsk
-languages.nso=Sotho, Nord
-languages.btk=Batak
-languages.myv=Erzya
-languages.dgr=Dogrib
-languages.ny=Nyanja; Chichewa; Chewa
-languages.myn=Maya sprog
-languages.nv=Navajo
-languages.kmb=Kimbundu
-languages.nr=Ndebele, Syd
-languages.gmh=Tysk, Middelh\u00f8j- (ca.1050-1500)
-languages.no=Norsk
-languages.nn=Nynorsk
-languages.nl=Hollandsk
-languages.ng=Ndonga
-languages.sla=Slaviske sprog (\u00f8vrige)
-languages.ne=Nepalesisk
-languages.nd=Ndebele, Nord
-languages.cmc=Chamic sprog
-languages.tet=Tetum
-languages.nb=Norsk Bokm\u00e5l
-languages.na=Nauru
-languages.ter=Tereno
-languages.tem=Temne
-languages.my=Burmesisk
-languages.lez=Lezghian
-languages.mt=Maltesisk
-languages.peo=Persisk, Old- (ca. 600-400 f. Kr.)
-languages.ms=Malay
-languages.mr=Marathisk
-languages.fro=Fransk, Old- (842-ca.1400)
-languages.mo=Moldovisk
-languages.mn=Mongolsk
-languages.frm=Fransk, Middel- (ca.1400-1600)
-languages.ml=Malayalam
-languages.jrb=J\u00f8disk-arabisk
-languages.mk=Makedonsk
-languages.mi=Maori
-languages.mh=Marshallese
-languages.mg=Malagasy
-languages.mwr=Marwari
-languages.bra=Braj
-languages.lv=Lettisk
-languages.den=Slave (Athapascan)
-languages.lu=Luba-Katanga
-languages.lt=Litauisk
-languages.del=Delaware
-languages.lo=Lao
-languages.ln=Lingala
-languages.li=Limburgsk
-languages.ewo=Ewondo
-languages.lg=Ganda
-languages.lb=Luxembourgsk
-languages.la=Latin
-languages.jpr=J\u00f8disk-persisk
-languages.vot=Votisk
-languages.sit=Sino-tibetanske sprog (\u00f8vrige)
-languages.ky=Kirgisisk
-languages.kw=Cornisk
-languages.ku=Kurdisk
-languages.ks=Kashmiri
-languages.kr=Kanuri
-languages.awa=Awadhi
-languages.ko=Koreansk
-languages.kn=Kannaresisk
-languages.km=Khmer
-languages.kl=Kalaallisut
-languages.kk=Kasakhisk
-languages.rom=Romani
-languages.kj=Kuanyama
-languages.sid=Sidamo
-languages.ki=Kikuyu
-languages.kg=Kongo
-languages.non=Islandsk, Old-
-languages.ka=Georgisk
-languages.mus=Creek
-languages.roa=Romanske sprog (\u00f8vrige)
-languages.nog=Nogai
-languages.mun=Munda (\u00f8vrige)
-languages.mul=Flere sprog
-languages.jv=Javanesisk
-languages.gil=Gilbertesisk
-languages.znd=Zande
-languages.shn=Shan
-languages.fon=Fon
-languages.xal=Kalmyk
-languages.aus=Australske sprog
-languages.kho=Khotanesisk
-languages.ja=Japansk
-languages.khi=Khoisan (\u00f8vrige)
-languages.pau=Palauansk
-languages.chy=Cheyenne
-languages.tai=Tai (\u00f8vrige)
-languages.iu=Inuktitut
-languages.pap=Papiamento
-languages.it=Italiensk
-languages.sgn=Tegnsprog
-languages.kha=Khasi
-languages.is=Islandsk
-languages.chr=Cherokee
-languages.pam=Pampanga
-languages.pal=Pahlavi
-languages.chp=Chipewyan
-languages.cho=Choctaw
-languages.io=Ido
-languages.chn=Chinook
-languages.chm=Mari
-languages.tyv=Tuvinian
-languages.bnt=Bantu
-languages.pag=Pangasinan
-languages.chk=Chuukese
-languages.ik=Inupiaq
-languages.haw=Hawaiiansk
-languages.ii=Sichuan Yi
-languages.lam=Lamba
-languages.chg=Chagatai
-languages.ig=Igbo
-languages.sga=Irsk, Old- (indtil 900)
-languages.paa=Papua-australske sprog (\u00f8vrige)
-languages.ie=Interlingue
-languages.id=Indonesisk
-languages.lah=Lahnda
-languages.chb=Chibcha
-languages.day=Dayak
-languages.ia=Interlingua
-languages.lad=Ladino
-languages.dar=Dargwa
-languages.hai=Haida
-languages.hz=Herero
-languages.hy=Armensk
-languages.hu=Ungarsk
-languages.ht=Haitisk
-languages.dak=Dakota
-languages.hr=Kroatisk
-languages.ho=Hiri Motu
-languages.hi=Hindi
-languages.dyu=Dyula
-languages.he=Hebraisk
-languages.ast=Asturisk
-languages.ha=Hausa
-languages.wen=Vendiske sprog
-languages.gv=Manx
-languages.gu=Gujaratisk
-languages.sem=Semitiske sprog (\u00f8vrige)
-languages.sel=Selkupisk
-languages.iro=Irokesiske sprog
-languages.gn=Guarani
-languages.gl=Galicisk
-languages.arw=Arawak
-languages.gd=G\u00e6lisk (skotsk)
-languages.art=Kunstsprog (\u00f8vrige)
-languages.gez=Geez
-languages.ira=Iranske sprog (\u00f8vrige)
-languages.ga=Irsk
-languages.arp=Arapaho
-languages.arn=Araukansk
-languages.fy=Frisisk
-languages.bla=Siksika
-languages.gem=Germanske sprog (\u00f8vrige)
-languages.fr=Fransk
-languages.arc=Aram\u00e6isk
-languages.fo=F\u00e6r\u00f8sk
-languages.cel=Keltiske sprog (\u00f8vrige)
-languages.fj=Fijian
-languages.fi=Finsk
-languages.ff=Fulah
-languages.tvl=Tuvalu
-languages.ceb=Cebuano
-languages.fa=Persisk
-languages.eu=Baskisk
-languages.sco=Skotsk
-languages.et=Estisk
-languages.es=Spansk
-languages.eo=Esperanto
-languages.en=Engelsk
-languages.el=Gr\u00e6sk
-languages.tut=Tyrkisk-tatariske sprog (\u00f8vrige)
-languages.niu=Niuean
-languages.ee=Ewe
-languages.tum=Tumbuka
-languages.mos=Mossi
-languages.dz=Dzongkha
-languages.nic=Niger-Congo sprog (\u00f8vrige)
-languages.dv=Divehi
-languages.fiu=Finsk-ugriske sprog (\u00f8vrige)
-languages.lus=Lushai
-languages.nia=Nias
-languages.moh=Mohawk
-languages.luo=Luo
-languages.lun=Lunda
-languages.apa=Apache sprog
-languages.lui=Luiseno
-languages.hup=Hupa
-languages.bin=Bini
-languages.de=Tysk
-languages.lua=Luba-Lulua
-languages.bik=Bikol
-languages.was=Washo
-languages.und=Sproget kan ikke bestemmes
-languages.war=Waray
-languages.da=Dansk
-languages.dum=Hollandsk (ca. 1050-1350)
-languages.wal=Walamo
-languages.sat=Santali
-languages.cy=Walisisk
-languages.sas=Sasak
-languages.cv=Chuvash
-languages.kbd=Kabardian
-languages.cu=Kirkeslavisk
-languages.mni=Manipuri
-languages.cs=Tjekkisk
-languages.sam=Samaritansk
-languages.cr=Cree
-languages.dua=Duala
-languages.co=Korsikansk
-languages.sai=Sydamerikanske indianske sprog (\u00f8vrige)
-languages.mnc=Manchu
-languages.sah=Yakut
-languages.gba=Gbaya
-languages.inh=Ingush
-languages.kaw=Kawi
-languages.sad=Sandawe
-languages.ch=Chamorro
-languages.bho=Bhojpuri
-languages.ine=Indoeurop\u00e6iske sprog (\u00f8vrige)
-languages.enm=Engelsk, Middel- (1100-1500)
-languages.ce=Tjetjensk
-languages.inc=Indiske sprog (\u00f8vrige)
-languages.kar=Karen
-languages.gay=Gayo
-languages.ca=Katalansk
-languages.umb=Umbundu
-languages.syr=Syrisk
-languages.kam=Kamba
-languages.tsi=Tsimshisk
-languages.ang=Angelsaksisk (ca.450-1100)
-languages.cau=Kaukasiske sprog (\u00f8vrige)
-languages.kac=Kachin
-languages.kab=Kabyle
-languages.bs=Bosnisk
-languages.kaa=Karakalpakisk
-languages.br=Bretonsk
-languages.car=Caribisk
-languages.bo=Tibetansk
-languages.bn=Bengalsk
-languages.bm=Bambara
-languages.gaa=Ga
-languages.bi=Bislama
-languages.cai=Mellemamerikanske indianske sprog (\u00f8vrige)
-languages.bh=Bihari
-languages.bg=Bulgarsk
-languages.be=Hviderussisk
-languages.cad=Caddo
-languages.ba=Bashkir
-languages.zu=Zulu
-languages.zen=Zenaga
-languages.pro=Provencalsk (f\u00f8r 1500)
-languages.hsb=\u00d8vre sorbisk
-languages.az=Aserbajdsjan
-languages.ay=Aymara
-languages.av=Avarisk
-languages.as=Assamesisk
-languages.ar=Arabisk
-languages.dsb=Nedre sorbisk
-languages.elx=Elamitisk
-languages.ilo=Iloko
-languages.zh=Kinesisk
-languages.an=Aragonesisk
-languages.am=Amharisk
-languages.new=Newari
-languages.ak=Akan
-languages.za=Zhuang
-languages.af=Afrikaans
-languages.ae=Avestan
-languages.ab=Abkhasisk
-languages.aa=Afar
-languages.yo=Yoruba
-languages.alg=Algonkiske sprog
-languages.ale=Aleutiske sprog
-languages.mkh=Mon-khmer (\u00f8vrige)
-languages.yi=Jiddisch
-languages.dra=Dravidiske sprog (\u00f8vrige)
-languages.ber=Berberiske sprog
-languages.nds=Nedertysk; nedersachsisk
-languages.bem=Bemba
-languages.bej=Beja
+languages.zbl=bliss-symboler
+languages.pon=ponape
+languages.min=minangkabau
+languages.suk=sukuma
+languages.wo=wolof
+languages.lol=mongo
+languages.kut=kutenaj
+languages.mic=micmac
+languages.wa=vallonsk
+languages.kum=kymyk
+languages.zap=zapotec
+languages.ain=ainu
+languages.cus=kusjitisk sprog
+languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
+languages.vo=volapyk
+languages.oto=otomisprog
+languages.vi=vietnamesisk
+languages.vai=vaj
+languages.rar=rarotongansk
+languages.ve=venda
+languages.rap=rapanui
+languages.raj=rajasthanisk
+languages.ota=osmannisk-tyrkisk
+languages.nzi=nzima
+languages.nap=neapolitansk
+languages.uz=usbekisk
+languages.uga=ugaristisk
+languages.tmh=tamashek
+languages.nai=nordamerikansk indiansk sprog
+languages.nah=nahuatl
+languages.ur=urdu
+languages.fat=fanti
+languages.uk=ukrainsk
+languages.egy=oldegyptisk
+languages.zxx=intet sprogligt indhold
+languages.ug=uigurisk
+languages.fan=fang
+languages.ssa=nilo-saharansk sprog
+languages.mga=middelirsk
+languages.bat=baltisk sprog
+languages.nyo=nyoro sprog
+languages.bas=basa
+languages.nyn=nyankole
+languages.nym=nyamwezi
+languages.gsw=schweizertysk
+languages.hmn=hmong
+languages.ban=balinesisk
+languages.osa=osage
+languages.bal=baluchi
+languages.ty=tahitiansk
+languages.bai=bamilekisk sprog
+languages.tw=twi
+languages.srr=serer
+languages.tli=tlingit
+languages.tlh=klingonsk
+languages.tt=tatarisk
+languages.ts=tsonga
+languages.srn=sranan tongo
+languages.bad=banda
+languages.tr=tyrkisk
+languages.to=tongansk
+languages.tn=tswana
+languages.tl=tagalog
+languages.tk=turkmensk
+languages.ti=tigrinya
+languages.th=thailandsk
+languages.kru=kurukh
+languages.tg=tajik
+languages.byn=blin
+languages.te=telugu
+languages.kro=kru
+languages.csb=kasjubisk
+languages.ta=tamilsk
+languages.krl=karelsk
+languages.tkl=tokelau
+languages.efi=efik
+languages.sw=swahili
+languages.sv=svensk
+languages.su=sundanesisk
+languages.krc=karatjai-balkar
+languages.st=sydsotho
+languages.ss=swati
+languages.sr=serbisk
+languages.sq=albansk
+languages.men=mende
+languages.crp=kreolsk eller pidginsprog
+languages.so=somalisk
+languages.afh=afrihili
+languages.sn=shona
+languages.sm=samoansk
+languages.sl=slovensk
+languages.grc=oldgr\u00e6sk
+languages.sk=slovakisk
+languages.grb=grebo
+languages.si=singalesisk
+languages.sh=serbokroatisk
+languages.crh=krim tyrkisk
+languages.afa=afroasiatisk
+languages.sg=sango
+languages.se=nordsamisk
+languages.sd=sindhi
+languages.udm=udmurt
+languages.sc=sardinsk
+languages.sa=sanskrit
+languages.rw=kinyarwanda
+languages.nwc=klassisk newarisk
+languages.ru=russisk
+languages.mdr=mandar
+languages.ro=rum\u00e6nsk
+languages.rn=rundi
+languages.rm=r\u00e6toromansk
+languages.fr_CH=schweizer-fransk
+languages.mdf=moksha
+languages.tiv=tivi
+languages.fr_CA=canadisk fransk
+languages.ady=adyghe
+languages.zun=zuni
+languages.kpe=kpelle
+languages.qu=quechua
+languages.tig=tigre
+languages.son=songhai
+languages.cpp=portugisisk baseret kreolsk eller pidginsprog
+languages.rup=arum\u00e6nsk
+languages.sog=sogdiansk
+languages.ada=adangme
+languages.kos=kosraeansk
+languages.hit=hittitisk
+languages.cpf=fransk baseret kreolsk eler pidgin
+languages.cpe=engelsk baseret kreolsk eller pidginsprog
+languages.him=himachali
+languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=gotisk
+languages.gor=gorontalo
+languages.gon=gondi
+languages.din=dinka
+languages.nub=nubisk sprog
+languages.pt=portugisisk
+languages.ps=pashto
+languages.fur=friulian
+languages.phn=f\u00f8nikisk
+languages.de_CH=schweizerh\u00f8jtysk
+languages.goh=oldh\u00f8jtysk
+languages.snk=soninke
+languages.cop=koptisk
+languages.yap=yapisk
+languages.ach=acoli
+languages.yao=yao
+languages.phi=filippinsk sprog
+languages.pl=polsk
+languages.ace=achinesisk
+languages.pi=pali
+languages.pt_PT=iberisk portugisisk
+languages.pa=punjabi
+languages.bug=buginesisk
+languages.iba=iban
+languages.sms=skolt sami
+languages.bua=buriatisk
+languages.mas=masai
+languages.smn=inari sami
+languages.os=ossetisk
+languages.map=austronesisk sprog
+languages.or=oriya
+languages.man=mandingo
+languages.smj=lule sami
+languages.smi=samisk sprog
+languages.mak=makasar
+languages.om=oromo
+languages.mai=maithili
+languages.oj=ojibwa
+languages.mag=magahi
+languages.mad=maduresisk
+languages.sma=sydsamisk
+languages.oc=occitansk
+languages.nso=nordsotho
+languages.btk=batak
+languages.myv=erzya
+languages.es_ES=europeisk spansk
+languages.de_AT=\u00f8strigsk tysk
+languages.dgr=dogrib
+languages.ny=nyanja
+languages.myn=mayasprog
+languages.nv=navajo
+languages.kmb=kimbundu
+languages.nr=sydndebele
+languages.gmh=middelh\u00f8jtysk
+languages.no=norsk
+languages.nn=nynorsk
+languages.nl=hollandsk
+languages.root=rot
+languages.ng=ndonga
+languages.sla=slavisk sprog
+languages.ne=nepalesisk
+languages.nd=nordndebele
+languages.cmc=chamiske sprog
+languages.tet=tetum
+languages.nb=norsk bokm\u00e5l
+languages.na=nauru
+languages.ter=tereno
+languages.tem=temne
+languages.my=burmesisk
+languages.lez=lezghian
+languages.mt=maltesisk
+languages.frs=\u00f8stfrisisk
+languages.peo=oldpersisk
+languages.ms=malajisk
+languages.frr=nordfrisisk
+languages.mr=marathisk
+languages.fro=oldfransk
+languages.mo=moldavisk
+languages.mn=mongolsk
+languages.frm=middelfransk
+languages.ml=malayalam
+languages.jrb=j\u00f8disk-arabisk
+languages.mk=makedonsk
+languages.mi=maorisk
+languages.mh=marshallese
+languages.mg=malagasisk
+languages.nqo=n-ko
+languages.mwr=marwari
+languages.bra=braj
+languages.mwl=mirandesisk
+languages.den=athapaskisk
+languages.lv=lettisk
+languages.lu=luba-Katanga
+languages.del=delaware
+languages.lt=litauisk
+languages.lo=laotisk
+languages.ln=lingala
+languages.li=limburgsk
+languages.ewo=ewondo
+languages.lg=ganda
+languages.lb=luxembourgsk
+languages.la=latinsk
+languages.jpr=j\u00f8disk-persisk
+languages.vot=votisk
+languages.sit=sino-tibetansk sprog
+languages.ky=kirgisisk
+languages.kw=cornisk
+languages.kv=komi
+languages.ku=kurdisk
+languages.sio=sioux sprog
+languages.ks=kashmiri
+languages.kr=kanuri
+languages.awa=awadhi
+languages.ko=koreansk
+languages.kn=kannaresisk
+languages.km=khmer
+languages.en_GB=britisk engelsk
+languages.kl=gr\u00f8nlandsk
+languages.kk=kasakhisk
+languages.rom=romani
+languages.kj=kuanyama
+languages.sid=sidamo
+languages.ki=kikuyu
+languages.kg=kongo
+languages.non=oldislandsk
+languages.ka=georgisk
+languages.mus=creek
+languages.roa=romansk sprog
+languages.nog=nogai
+languages.mun=mundasprog
+languages.mul=flere sprog
+languages.jv=javanesisk
+languages.gil=gilbertesisk
+languages.znd=zande
+languages.shn=shan
+languages.fon=fon
+languages.xal=kalmyk
+languages.aus=australsk sprog
+languages.kho=khotanesisk
+languages.ja=japansk
+languages.khi=khoisansprog
+languages.pau=palauansk
+languages.chy=cheyenne
+languages.tai=thaisprog
+languages.iu=inuktitut
+languages.pap=papiamento
+languages.it=italiensk
+languages.sgn=tegnsprog
+languages.is=islandsk
+languages.kha=khasi
+languages.chr=cherokee
+languages.pam=pampanga
+languages.pal=pahlavi
+languages.chp=chipewyan
+languages.io=ido
+languages.cho=choctaw
+languages.chn=chinook
+languages.chm=mari
+languages.tyv=tuviniansk
+languages.bnt=bantu
+languages.pag=pangasinan
+languages.ik=inupiak
+languages.chk=chuukese
+languages.ii=sichuan yi
+languages.haw=hawaiiansk
+languages.lam=lamba
+languages.ig=igbo
+languages.chg=chagatai
+languages.sga=oldirsk
+languages.paa=papua-australsk sprog
+languages.ie=interlingue
+languages.id=indonesisk
+languages.lah=lahnda
+languages.day=dayak
+languages.chb=chibcha
+languages.ia=interlingua
+languages.lad=ladino
+languages.hz=herero
+languages.hai=haida
+languages.dar=dargwa
+languages.hy=armensk
+languages.ath=athapaskisk sprog
+languages.hu=ungarsk
+languages.ht=haitisk
+languages.dak=dakota
+languages.hr=kroatisk
+languages.ho=hirimotu
+languages.hi=hindi
+languages.dyu=dyula
+languages.he=hebraisk
+languages.ast=asturisk
+languages.kfo=koro
+languages.ha=hausa
+languages.wen=vendisk sprog
+languages.gv=manx
+languages.gu=gujarati
+languages.sem=semitisk sprog
+languages.sel=selkupisk
+languages.iro=irokesisk sprog
+languages.gn=guarani
+languages.gl=galicisk
+languages.en_CA=canadisk engelsk
+languages.arw=arawak
+languages.gez=geez
+languages.art=kunstsprog
+languages.gd=skotsk g\u00e6lisk
+languages.ira=iransk sprog
+languages.ga=irsk
+languages.arp=arapaho
+languages.arn=araukansk
+languages.fy=frisisk
+languages.bla=siksika
+languages.gem=germansk sprog
+languages.ypk=yupisk sprog
+languages.arc=aram\u00e6isk
+languages.fr=fransk
+languages.fo=f\u00e6r\u00f8sk
+languages.cel=keltisk sprog
+languages.fj=fijiansk
+languages.fi=finsk
+languages.ff=fulah
+languages.tvl=tuvalu
+languages.ceb=cebuano
+languages.fa=persisk
+languages.en_AU=australsk engelsk
+languages.zh_Hans=forenklet kinesisk
+languages.zh_Hant=traditionelt kinesisk
+languages.eu=baskisk
+languages.sco=skotsk
+languages.et=estisk
+languages.scn=siciliansk
+languages.es=spansk
+languages.eo=esperanto
+languages.en=engelsk
+languages.el=gr\u00e6sk
+languages.tut=altaisk sprog
+languages.niu=niuean
+languages.tup=tupisprog
+languages.ee=ewe
+languages.tum=tumbuka
+languages.nl_BE=flamsk
+languages.es_419=latinamerikansk spansk
+languages.mos=mossi
+languages.dz=dzongkha
+languages.kcg=tyap
+languages.nic=Niger-Congo sprog
+languages.lus=lushai
+languages.fiu=finsk-ugrisk sprog
+languages.dv=divehi
+languages.nia=nias
+languages.moh=mohawk
+languages.luo=luo
+languages.lun=lunda
+languages.apa=apachesprog
+languages.fil=filippinsk
+languages.lui=luise\u00f1o
+languages.hup=hupa
+languages.cch=atsam
+languages.bin=bini
+languages.de=tysk
+languages.lua=luba-Lulua
+languages.bik=bikol
+languages.was=washo
+languages.und=ukendt eller ugyldigt sprog
+languages.war=waray
+languages.da=dansk
+languages.dum=middelhollandsk
+languages.wal=walamo
+languages.mno=manobo sprog
+languages.wak=wakashansk sprog
+languages.sat=santali
+languages.cy=walisisk
+languages.sas=sasak
+languages.kbd=kabardian
+languages.cv=chuvash
+languages.cu=kirkeslavisk
+languages.mni=manipuri
+languages.cs=tjekkisk
+languages.sam=samaritansk
+languages.cr=cree
+languages.sal=salikisk sprog
+languages.dua=duala
+languages.co=korsikansk
+languages.sai=sydamerikansk indiansk sprog
+languages.mnc=manchu
+languages.sah=yakut
+languages.kaw=kawi
+languages.inh=ingush
+languages.gba=gbaya
+languages.sad=sandawe
+languages.ch=chamorro
+languages.ine=indo-europ\u00e6isk sprog
+languages.bho=bhojpuri
+languages.enm=middelengelsk
+languages.kar=karen
+languages.inc=indisk sprog
+languages.ce=tjetjensk
+languages.gay=gayo
+languages.ca=katalansk
+languages.umb=umbundu
+languages.syr=syrisk
+languages.kam=kamba
+languages.anp=angika
+languages.tsi=tsimshisk
+languages.kaj=jju
+languages.ang=oldengelsk
+languages.kac=kachin
+languages.cau=kaukasisk sprog
+languages.kab=kabyle
+languages.kaa=karakalpakisk
+languages.bs=bosnisk
+languages.car=caribisk
+languages.br=bretonsk
+languages.syc=klassisk syrisk
+languages.bo=tibetansk
+languages.bn=bengalsk
+languages.bm=bambara
+languages.gaa=ga
+languages.cai=mellemamerikansk indiansk sprog
+languages.bi=bislama
+languages.bh=bihari
+languages.bg=bulgarsk
+languages.be=hviderussisk
+languages.pt_BR=brasiliansk portugisisk
+languages.cad=caddo
+languages.ba=bashkir
+languages.zu=zulu
+languages.zen=zenaga
+languages.pro=oldprovencalsk
+languages.hsb=\u00f8vresorbisk
+languages.az=aserbajdsjansk
+languages.ay=aymara
+languages.av=avarisk
+languages.as=assamesisk
+languages.dsb=nedersorbisk
+languages.ar=arabisk
+languages.ilo=iloko
+languages.elx=elamitisk
+languages.zh=kinesisk
+languages.an=aragonesisk
+languages.pra=prakritsprog
+languages.am=amharisk
+languages.new=newari
+languages.ak=akan
+languages.za=zhuang
+languages.en_US=amerikansk engelsk
+languages.af=afrikaans
+languages.ae=avestan
+languages.alt=sydaltaisk
+languages.ab=abkhasisk
+languages.aa=afar
+languages.yo=yoruba
+languages.alg=algonkisk sprog
+languages.ale=aleutisk
+languages.mkh=mon-khmer sprog
+languages.yi=jiddisch
+languages.dra=dravidisk sprog
+languages.ber=berberisk
+languages.nds=nedertysk
+languages.bem=bemba
+languages.bej=beja
languages.tpi=Tok Pisin
+variants.POSIX=computer
+variants.FONUPA=det uraliske fonetiske alfabet
+variants.1901=traditionel tysk retskrivning
+variants.BOONT=boontling
+variants.1996=tysk retskrivning fra 1996
+variants.FONIPA=det internationale fonetiske alfabet
+variants.AREVELA=\u00f8starmensk
+variants.REVISED=revideret retskrivning
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de.properties
index fda1943..9f235a8 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de.properties
@@ -5,266 +5,408 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=\u00d710^
+infinity=\u221e
+NaN=NaN
+minusSign=\u2212
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GjMtkHmsSEDFwWahKzJeugAZ
-currenciesDisplayName.YDD=Jemen Dinar
-currenciesDisplayName.TWD=Neuer Taiwan Dollar
-currenciesDisplayName.KES=Kenia Schilling
-currenciesDisplayName.BYB=Belarus Rubel (alt)
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GjMtkHmsSEDFwWahKzJeugAZvcL
+currenciesDisplayName.YDD=Jemen-Dinar
+currenciesDisplayName.KES=Kenia-Schilling
+currenciesDisplayName.TWD=Neuer Taiwan-Dollar
currenciesDisplayName.LKR=Sri Lanka Rupie
-currenciesDisplayName.RWF=Ruanda Franc
+currenciesDisplayName.BYB=Belarus Rubel (alt)
currenciesDisplayName.TJS=Tadschikistan Somoni
-currenciesDisplayName.SDP=Sudanesisches Pfund
-currenciesDisplayName.TJR=Tadschikistan Rubel
+currenciesDisplayName.RWF=Ruanda-Franc
currenciesDisplayName.ERN=Nakfa
-currenciesDisplayName.AFN=Afghani
+currenciesDisplayName.TJR=Tadschikistan Rubel
+currenciesDisplayName.SDP=Sudanesische Pfund (alt)
currenciesDisplayName.GRD=Griechische Drachme
-currenciesDisplayName.IEP=Irisches Pfund
-currenciesDisplayName.ARS=Argentinischer Peso
-currenciesDisplayName.SDD=Sudanesischer Dinar
-currenciesDisplayName.ARP=Argentinischer Peso (1983-1985)
-currenciesDisplayName.GEL=Georgischer Lari
-currenciesDisplayName.AFA=Afghani
-currenciesDisplayName.GEK=Georgischer Kupon Larit
+currenciesDisplayName.AFN=Afghani
+currenciesDisplayName.IEP=Irische Pfund
+currenciesDisplayName.ARS=Argentinische Peso
+currenciesDisplayName.SDG=Sudanesische Pfund
+currenciesDisplayName.ARP=Argentinische Peso (1983-1985)
+currenciesDisplayName.SDD=Sudanesische Dinar
+currenciesDisplayName.GEL=Georgische Lari
+currenciesDisplayName.GEK=Georgische Kupon Larit
+currenciesDisplayName.AFA=Afghani (1927-2002)
currenciesDisplayName.CRC=Costa Rica Colon
-currenciesDisplayName.FKP=Falkland Pfund
-currenciesDisplayName.EEK=Estnische Krone
-currenciesDisplayName.HKD=Hongkong Dollar
+currenciesDisplayName.FKP=Falkland-Pfund
+currenciesDisplayName.EEK=Estnische Kronen
currenciesDisplayName.MDL=Moldau Leu
-currenciesDisplayName.ARA=Argentinischer Austral
+currenciesDisplayName.HKD=Hongkong-Dollar
currenciesDisplayName.IQD=Irak Dinar
-currenciesDisplayName.SCR=Seychellen Rupie
+currenciesDisplayName.ARA=Argentinische Austral
+currenciesDisplayName.SCR=Seychellen-Rupie
currenciesDisplayName.VUV=Vatu
-currenciesDisplayName.DKK=D\u00e4nische Krone
-currenciesDisplayName.KPW=Nordkoreanischer Won
-currenciesDisplayName.GQE=\u00c4quatorialguinea Ekwele Guineana
+currenciesDisplayName.KPW=Nordkoreanische Won
+currenciesDisplayName.DKK=D\u00e4nische Kronen
currenciesDisplayName.IDR=Rupiah
-currenciesDisplayName.LVR=Lettischer Rubel
-currenciesDisplayName.SOS=Somalia Schilling
-currenciesDisplayName.AED=UAE Dirham
+currenciesDisplayName.GQE=\u00c4quatorialguinea Ekwele Guineana
+currenciesDisplayName.SOS=Somalia-Schilling
+currenciesDisplayName.LVR=Lettische Rubel
+currenciesDisplayName.EQE=Ekwele
+currenciesDisplayName.AED=Dirham der Vereinigten Arabischen Emirate
+currenciesDisplayName.LVL=Lettische Lats
currenciesDisplayName.BWP=Pula
-currenciesDisplayName.LVL=Lettischer Lats
-currenciesDisplayName.RUR=Russischer Rubel (alt)
+currenciesDisplayName.RUR=Russische Rubel (alt)
currenciesDisplayName.NIO=Gold-Cordoba
-currenciesDisplayName.ADP=Andorranische Pesete
-currenciesDisplayName.FJD=Fidschi Dollar
+currenciesDisplayName.XTS=Testw\u00e4hrung
currenciesDisplayName.MOP=Pataca
-currenciesDisplayName.RUB=Russischer Rubel (neu)
+currenciesDisplayName.FJD=Fidschi-Dollar
+currenciesDisplayName.ADP=Andorranische Peseten
+currenciesDisplayName.RUB=Russische Rubel (neu)
currenciesDisplayName.CDF=Franc congolais
currenciesDisplayName.NIC=Cordoba
currenciesDisplayName.DJF=Dschibuti-Franc
-currenciesDisplayName.ECV=Verrechnungseinheit f\u00fcr EC
-currenciesDisplayName.SBD=Salomonen Dollar
currenciesDisplayName.UZS=Usbekistan Sum
-currenciesDisplayName.ECS=Ecuadorianischer Sucre
-currenciesDisplayName.PHP=Philippinischer Peso
+currenciesDisplayName.SBD=Salomonen-Dollar
+currenciesDisplayName.ECV=Verrechnungseinheiten f\u00fcr EC
+currenciesDisplayName.LUL=Luxemburgische Finanz-Franc
+currenciesDisplayName.ECS=Ecuadorianische Sucre
currenciesDisplayName.THB=Baht
-currenciesDisplayName.LUF=Luxemburgischer Franc
+currenciesDisplayName.PHP=Philippinische Peso
+currenciesDisplayName.LUF=Luxemburgische Franc
+currenciesDisplayName.RHD=Rhodesische Dollar
+currenciesDisplayName.LUC=Luxemburgische Franc (konvertibel)
currenciesDisplayName.FIM=Finnische Mark
-currenciesDisplayName.TTD=Trinidad und Tobago Dollar
+currenciesDisplayName.TTD=Trinidad- und Tobago-Dollar
currenciesDisplayName.SZL=Lilangeni
currenciesDisplayName.MNT=Tugrik
+currenciesDisplayName.UAK=Ukrainische Karbovanetz
currenciesDisplayName.SAR=Saudi Riyal
-currenciesDisplayName.UAK=Ukrainischer Karbovanetz
+currenciesDisplayName.COU=Unidad de Valor Real
currenciesDisplayName.UAH=Hryvnia
currenciesDisplayName.HUF=Forint
-currenciesDisplayName.COP=Kolumbianischer Peso
currenciesDisplayName.QAR=Katar Riyal
-currenciesDisplayName.LTT=Litauischer Talonas
-currenciesDisplayName.PTE=Portugiesischer Escudo
+currenciesDisplayName.COP=Kolumbianische Peso
+currenciesDisplayName.LTT=Litauische Talonas
+currenciesDisplayName.PTE=Portugiesische Escudo
+currenciesDisplayName.UYU=Uruguayische Peso
currenciesDisplayName.AOR=Kwanza Reajustado
-currenciesDisplayName.UYU=Uruguayischer Peso
currenciesDisplayName.GBP=Pfund Sterling
-currenciesDisplayName.BIF=Burundi-Franc
-currenciesDisplayName.INR=Indische Rupie
currenciesDisplayName.ZRZ=Zaire
-currenciesDisplayName.AON=Neuer Kwanza
-currenciesDisplayName.LTL=Litauischer Litas
-currenciesDisplayName.XFU=Franz\u00f6sischer UIC-Franc
+currenciesDisplayName.INR=Indische Rupien
+currenciesDisplayName.BIF=Burundi-Franc
+currenciesDisplayName.XFU=Franz\u00f6sische UIC-Franc
+currenciesDisplayName.MZN=Metical
+currenciesDisplayName.LTL=Litauische Litas
+currenciesDisplayName.AON=Neue Kwanza
+currenciesDisplayName.UYP=Uruguayische Neue Pesos (1975-1993)
+currenciesDisplayName.MZM=Alte Metical
currenciesDisplayName.KZT=Tenge
-currenciesDisplayName.MZM=Metical
-currenciesDisplayName.AOK=Angolanischer Kwanza (1977-1990)
-currenciesDisplayName.BUK=Birmanischer Kyat
-currenciesDisplayName.XFO=Franz\u00f6sischer Gold-Franc
+currenciesDisplayName.AOK=Angolanische Kwanza (1977-1990)
+currenciesDisplayName.GNS=Guineische Syli
+currenciesDisplayName.BUK=Birmanische Kyat
+currenciesDisplayName.XFO=Franz\u00f6sische Gold-Franc
currenciesDisplayName.PGK=Kina
-currenciesDisplayName.SYP=Syrisches Pfund
+currenciesDisplayName.SYP=Syrische Pfund
currenciesDisplayName.OMR=Rial Omani
+currenciesDisplayName.MZE=Mozambikanische Escudo
+currenciesDisplayName.ZRN=Neue Zaire
currenciesDisplayName.NGN=Naira
-currenciesDisplayName.ZRN=Neuer Zaire
-currenciesDisplayName.AOA=Kwanza
currenciesDisplayName.CNY=Renminbi Yuan
-currenciesDisplayName.MAF=Marokkanischer Franc
-currenciesDisplayName.GNF=Guinea Franc
+currenciesDisplayName.AOA=Kwanza
+currenciesDisplayName.MAF=Marokkanische Franc
+currenciesDisplayName.RSD=Serbische Dinar
+currenciesDisplayName.GNF=Guinea-Franc
+currenciesDisplayName.MAD=Marokkanische Dirham
currenciesDisplayName.HTG=Gourde
-currenciesDisplayName.MAD=Marokkanischer Dirham
currenciesDisplayName.TRY=Neue T\u00fcrkische Lira
currenciesDisplayName.MMK=Kyat
-currenciesDisplayName.MYR=Malaysischer Ringgit
+currenciesDisplayName.XRE=RINET Funds
+currenciesDisplayName.MYR=Malaysische Ringgit
+currenciesDisplayName.LSM=Maloti
+currenciesDisplayName.XEU=Europ\u00e4ische W\u00e4hrungseinheiten (XEU)
currenciesDisplayName.LSL=Loti
-currenciesDisplayName.BHD=Bahrain-Dinar
currenciesDisplayName.SLL=Leone
+currenciesDisplayName.BHD=Bahrain-Dinar
currenciesDisplayName.BTN=Ngultrum
currenciesDisplayName.TRL=T\u00fcrkische Lira
currenciesDisplayName.KMF=Komoren Franc
+currenciesDisplayName.CZK=Tschechische Kronen
currenciesDisplayName.ANG=Niederl. Antillen Gulden
-currenciesDisplayName.CZK=Tschechische Krone
-currenciesDisplayName.AZM=Aserbeidschan Manat
+currenciesDisplayName.AZN=Aserbaidschan-Manat
+currenciesDisplayName.AZM=Aserbaidschan-Manat (1993-2006)
currenciesDisplayName.KYD=Kaiman-Dollar
currenciesDisplayName.GMD=Dalasi
-currenciesDisplayName.BGN=Lew
-currenciesDisplayName.CAD=Kanadischer Dollar
+currenciesDisplayName.VEF=Bol\u00edvar Fuerte
+currenciesDisplayName.BGN=Bulgarische Lew (BGN)
currenciesDisplayName.MXV=Mexican Unidad de Inversion (UDI)
-currenciesDisplayName.BGL=Lew
+currenciesDisplayName.CAD=Kanadische Dollar
+currenciesDisplayName.BGL=Lew (1962-1999)
currenciesDisplayName.VEB=Bolivar
+currenciesDisplayName.MLF=Malische Franc
+currenciesDisplayName.MXP=Mexikanische Silber-Peso (MXP)
currenciesDisplayName.ILS=Schekel
-currenciesDisplayName.MXP=Mexikanischer Silber-Peso (1861-1992)
currenciesDisplayName.PES=Sol
-currenciesDisplayName.GYD=Guyana Dollar
-currenciesDisplayName.MXN=Mexikanischer Peso
-currenciesDisplayName.ILP=Israelisches Pfund
-currenciesDisplayName.SKK=Slowakische Krone
-currenciesDisplayName.CYP=Zypern Pfund
-currenciesDisplayName.XDR=Sonderziehungsrechte
-currenciesDisplayName.PEN=Neuer Sol
-currenciesDisplayName.LRD=Liberianischer Dollar
-currenciesDisplayName.PEI=Peruanischer Inti
+currenciesDisplayName.MXN=Mexikanische Peso
+currenciesDisplayName.GYD=Guyana-Dollar
+currenciesDisplayName.ILP=Israelische Pfund
+currenciesDisplayName.CYP=Zypern-Pfund
+currenciesDisplayName.SKK=Slowakische Kronen
+currenciesDisplayName.XDR=Sonderziehungsrecht
+currenciesDisplayName.PEN=Neue Sol
+currenciesDisplayName.LRD=Liberianische Dollar
+currenciesDisplayName.PEI=Peruanische Inti
currenciesDisplayName.AMD=Dram
currenciesDisplayName.BSD=Bahama-Dollar
+currenciesDisplayName.XPT=Platin
currenciesDisplayName.HRK=Kuna
-currenciesDisplayName.CLP=Chilenischer Peso
-currenciesDisplayName.HRD=Kroatischer Dinar
+currenciesDisplayName.CLP=Chilenische Peso
+currenciesDisplayName.HRD=Kroatische Dinar
currenciesDisplayName.XPF=CFP Franc
-currenciesDisplayName.FRF=Franz\u00f6sischer Franc
-currenciesDisplayName.BRR=Brasilianischer Cruzeiro
+currenciesDisplayName.FRF=Franz\u00f6sische Franc
+currenciesDisplayName.XPD=Palladium
+currenciesDisplayName.BRR=Brasilianische Cruzeiro
currenciesDisplayName.MKD=Denar
currenciesDisplayName.CLF=Unidades de Fomento
currenciesDisplayName.ALL=Lek
-currenciesDisplayName.BRN=Brasilianischer Cruzado Novo
+currenciesDisplayName.BRN=Brasilianische Cruzado Novo
currenciesDisplayName.MWK=Malawi Kwacha
currenciesDisplayName.BRL=Real
currenciesDisplayName.TPE=Timor Escudo
-currenciesDisplayName.BRE=Brasilianischer Cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brasilianischer Cruzado
-currenciesDisplayName.BRB=Brasilianischer Cruzeiro Novo (1967-1986)
+currenciesDisplayName.BRE=Brasilianische Cruzeiro (1990-1993)
+currenciesDisplayName.BRC=Brasilianische Cruzado
+currenciesDisplayName.BRB=Brasilianische Cruzeiro Novo (1967-1986)
currenciesDisplayName.DEM=Deutsche Mark
currenciesDisplayName.KWD=Kuwait Dinar
-currenciesDisplayName.XCD=Ostkaribischer Dollar
-currenciesDisplayName.NPR=Nepalesische Rupie
-currenciesDisplayName.GWP=Guinea Bissau Peso
-currenciesDisplayName.YUN=Jugoslawischer Dinar (konvertibel)
+currenciesDisplayName.XCD=Ostkaribische Dollar
+currenciesDisplayName.NPR=Nepalesische Rupien
+currenciesDisplayName.GWP=Guinea-Bissau Peso
+currenciesDisplayName.YUN=Jugoslawische Dinar (konvertibel)
currenciesDisplayName.SVC=El Salvador Colon
-currenciesDisplayName.YUM=Neuer Dinar
+currenciesDisplayName.YUM=Neue Dinar
+currenciesDisplayName.BEL=Belgische Finanz-Franc
currenciesDisplayName.SIT=Tolar
currenciesDisplayName.JPY=Yen
currenciesDisplayName.XOF=CFA Franc (West)
currenciesDisplayName.MVR=Rufiyaa
+currenciesDisplayName.BEF=Belgische Franc
currenciesDisplayName.GWE=Portugiesisch Guinea Escudo
-currenciesDisplayName.BEF=Belgischer Franc
currenciesDisplayName.TOP=Pa\u02bbanga
-currenciesDisplayName.YUD=Jugoslawischer Dinar (1966-1990)
-currenciesDisplayName.BEC=Belgischer Franc (konvertibel)
-currenciesDisplayName.SUR=Sowjetischer Rubel
+currenciesDisplayName.YUD=Jugoslawische Dinar (1966-1990)
+currenciesDisplayName.BEC=Belgische Franc (konvertibel)
+currenciesDisplayName.SUR=Sowjetische Rubel
+currenciesDisplayName.RON=Rum\u00e4nische Leu
currenciesDisplayName.ROL=Leu
-currenciesDisplayName.BDT=Taka
-currenciesDisplayName.XBD=Europ\u00e4ische Rechnungseinheit (XBD)
+currenciesDisplayName.BDT=Bangladesch-Taka
+currenciesDisplayName.DDM=Mark der DDR
+currenciesDisplayName.XBD=Europ\u00e4ische Rechnungseinheiten (XBD)
currenciesDisplayName.AWG=Aruba Florin
-currenciesDisplayName.XBC=Europ\u00e4ische Rechnungseinheit (XBC)
-currenciesDisplayName.XBA=Europ\u00e4ische Rechnungseinheit
-currenciesDisplayName.NOK=Norwegische Krone
-currenciesDisplayName.MUR=Mauritius Rupie
+currenciesDisplayName.XBC=Europ\u00e4ische Rechnungseinheiten (XBC)
+currenciesDisplayName.XBB=Europ\u00e4ische W\u00e4hrungseinheiten (XBB)
+currenciesDisplayName.XBA=Europ\u00e4ische Rechnungseinheiten
+currenciesDisplayName.NOK=Norwegische Kronen
+currenciesDisplayName.MUR=Mauritius-Rupie
currenciesDisplayName.ZAR=Rand
currenciesDisplayName.SHP=St. Helena Pfund
currenciesDisplayName.XAU=Gold
currenciesDisplayName.VND=Dong
-currenciesDisplayName.TZS=Tansania Schilling
-currenciesDisplayName.GIP=Gibraltar Pfund
-currenciesDisplayName.TND=Tunesischer Dinar
+currenciesDisplayName.TZS=Tansania-Schilling
+currenciesDisplayName.GIP=Gibraltar-Pfund
+currenciesDisplayName.TND=Tunesische Dinar
currenciesDisplayName.CVE=Kap Verde Escudo
-currenciesDisplayName.UGX=Uganda Schilling
+currenciesDisplayName.UGX=Uganda-Schilling
+currenciesDisplayName.XAG=Silber
currenciesDisplayName.ZMK=Kwacha
-currenciesDisplayName.JOD=Jordanischer Dinar
+currenciesDisplayName.JOD=Jordanische Dinar
currenciesDisplayName.XAF=CFA Franc (\u00c4quatorial)
-currenciesDisplayName.LBP=Libanesisches Pfund
-currenciesDisplayName.UGS=Uganda Schilling (1966-1987)
+currenciesDisplayName.LBP=Libanesische Pfund
+currenciesDisplayName.UGS=Uganda-Schilling (1966-1987)
currenciesDisplayName.STD=Dobra
currenciesDisplayName.WST=Tala
currenciesDisplayName.KHR=Riel
+currenciesDisplayName.DOP=Dominikanische Peso
currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Dominikanischer Peso
currenciesDisplayName.BOV=Mvdol
-currenciesDisplayName.MTP=Maltesisches Pfund
-currenciesDisplayName.USS=US Dollar (Gleicher Tag)
-currenciesDisplayName.BOP=Bolivianischer Peso
+currenciesDisplayName.MTP=Maltesische Pfund
+currenciesDisplayName.USS=US-Dollar (Gleicher Tag)
+currenciesDisplayName.BOP=Bolivianische Peso
+currenciesDisplayName.CUP=Kubanische Peso
currenciesDisplayName.MTL=Maltesische Lira
-currenciesDisplayName.CUP=Kubanischer Peso
currenciesDisplayName.TMM=Turkmenistan-Manat
-currenciesDisplayName.USN=US Dollar (N\u00e4chster Tag)
-currenciesDisplayName.SGD=Singapur Dollar
-currenciesDisplayName.NZD=Neuseeland Dollar
-currenciesDisplayName.USD=US Dollar
-currenciesDisplayName.HNL=Lempira
+currenciesDisplayName.USN=US-Dollar (N\u00e4chster Tag)
+currenciesDisplayName.GHS=Ghanaische Cedi
+currenciesDisplayName.SGD=Singapur-Dollar
+currenciesDisplayName.NZD=Neuseeland-Dollar
+currenciesDisplayName.USD=US-Dollar
currenciesDisplayName.BOB=Boliviano
-currenciesDisplayName.ITL=Italienische Lire
+currenciesDisplayName.HNL=Lempira
+currenciesDisplayName.CHW=WIR Franken
+currenciesDisplayName.ITL=Italienische Lira
currenciesDisplayName.PAB=Balboa
currenciesDisplayName.GTQ=Quetzal
+currenciesDisplayName.XXX=Unbekannte W\u00e4hrung
+currenciesDisplayName.AUD=Australische Dollar
+currenciesDisplayName.GHC=Ghanaische Cedi (GHC)
currenciesDisplayName.LAK=Kip
-currenciesDisplayName.GHC=Cedi
-currenciesDisplayName.AUD=Australischer Dollar
-currenciesDisplayName.NAD=Namibia Dollar
+currenciesDisplayName.NAD=Namibia-Dollar
currenciesDisplayName.KGS=Som
-currenciesDisplayName.MGF=Madagaskar Franc
-currenciesDisplayName.CHF=Schweizer Franken
+currenciesDisplayName.MGF=Madagaskar-Franc
currenciesDisplayName.BBD=Barbados-Dollar
-currenciesDisplayName.MGA=Madagaskar Ariary
+currenciesDisplayName.CHF=Schweizer Franken
+currenciesDisplayName.CHE=WIR-Euro
+currenciesDisplayName.MGA=Madagaskar-Ariary
currenciesDisplayName.PYG=Guarani
currenciesDisplayName.PLZ=Zloty (1950-1995)
-currenciesDisplayName.YER=Jemen Rial
-currenciesDisplayName.ATS=\u00d6sterreichischer Schilling
+currenciesDisplayName.YER=Jemen-Rial
+currenciesDisplayName.ATS=\u00d6sterreichische Schilling
currenciesDisplayName.ETB=Birr
currenciesDisplayName.BND=Brunei-Dollar
-currenciesDisplayName.JMD=Jamaika Dollar
-currenciesDisplayName.EGP=\u00c4gyptisches Pfund
+currenciesDisplayName.EGP=\u00c4gyptische Pfund
+currenciesDisplayName.JMD=Jamaika-Dollar
currenciesDisplayName.PLN=Zloty
-currenciesDisplayName.DZD=Algerischer Dinar
-currenciesDisplayName.ISK=Isl\u00e4ndische Krone
+currenciesDisplayName.DZD=Algerische Dinar
+currenciesDisplayName.ISK=Isl\u00e4ndische Kronen
currenciesDisplayName.SRG=Suriname Gulden
-currenciesDisplayName.LYD=Libyscher Dinar
-currenciesDisplayName.BZD=Belize-Dollar
+currenciesDisplayName.LYD=Libysche Dinar
+currenciesDisplayName.SRD=Surinamische Dollar
currenciesDisplayName.BAM=Konvertierbare Mark
-currenciesDisplayName.ESP=Spanische Pesete
-currenciesDisplayName.KRW=S\u00fcdkoreanischer Won
-currenciesDisplayName.NLG=Holl\u00e4ndischer Gulden
+currenciesDisplayName.BZD=Belize-Dollar
+currenciesDisplayName.ESP=Spanische Peseta
+currenciesDisplayName.KRW=S\u00fcdkoreanische Won
+currenciesDisplayName.NLG=Holl\u00e4ndische Gulden
currenciesDisplayName.MRO=Ouguiya
currenciesDisplayName.BAD=Bosnien und Herzegowina Dinar
-currenciesDisplayName.ZWD=Simbabwe Dollar
-currenciesDisplayName.SEK=Schwedische Krone
+currenciesDisplayName.ZWD=Simbabwe-Dollar
+currenciesDisplayName.SEK=Schwedische Kronen
+currenciesDisplayName.CSK=Tschechoslowakische Kronen
currenciesDisplayName.BYR=Belarus Rubel (neu)
+currenciesDisplayName.ESB=Spanische Peseten (konvertibel)
currenciesDisplayName.IRR=Rial
-currenciesDisplayName.PKR=Pakistanische Rupie
+currenciesDisplayName.ESA=Spanische Peseten (A-Konten)
+currenciesDisplayName.PKR=Pakistanische Rupien
currenciesDisplayName.BMD=Bermuda-Dollar
-currenciesSymbol.ATS=\u00f6S
-currenciesSymbol.KGS=som
-currenciesSymbol.FRF=FF
-currenciesSymbol.CHF=SFr.
-currenciesSymbol.DEM=DM
+currenciesDisplayName.CSD=Alte Serbische Dinar
currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=BGL
+currenciesSymbol.LKR=LKR
+currenciesSymbol.KES=KES
+currenciesSymbol.CYP=CYP
+currenciesSymbol.BYR=BYR
+currenciesSymbol.MKD=MKD
+currenciesSymbol.MWK=MWK
+currenciesSymbol.BMD=BMD
+currenciesSymbol.IEP=IEP
+currenciesSymbol.SCR=SCR
+currenciesSymbol.AMD=dram
+currenciesSymbol.TOP=TOP
+currenciesSymbol.FRF=FF
+currenciesSymbol.SOS=Sh.
+currenciesSymbol.NPR=NPR
+currenciesSymbol.CLP=CLP
+currenciesSymbol.KWD=KWD
+currenciesSymbol.GEL=GEL
currenciesSymbol.AFN=Af
-shortMonths=Jan®Feb®Mrz®Apr®Mai®Jun®Jul®Aug®Sep®Okt®Nov®Dez®®
-months=Januar®Februar®M\u00e4rz®April®Mai®Juni®Juli®August®September®Oktober®November®Dezember®®
-shortWeekdays=®So®Mo®Di®Mi®Do®Fr®Sa®
-weekdays=®Sonntag®Montag®Dienstag®Mittwoch®Donnerstag®Freitag®Samstag®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=v. Chr.®n. Chr.®
-ampms=vorm.®nachm.®
+currenciesSymbol.ZAR=ZAR
+currenciesSymbol.RON=0\u2264lei|1\u2264leu|1
+currenciesSymbol.IQD=IQD
+currenciesSymbol.ARS=ARS
+currenciesSymbol.JPY=\u00a5
+currenciesSymbol.ALL=lek
+currenciesSymbol.CRC=CRC
+currenciesSymbol.IDR=IDR
+currenciesSymbol.DEM=DM
+currenciesSymbol.TZS=TZS
+currenciesSymbol.SBD=SBD
+currenciesSymbol.NOK=NOK
+currenciesSymbol.UGX=UGX
+currenciesSymbol.BEF=BEF
+currenciesSymbol.TTD=TTD
+currenciesSymbol.PHP=PHP
+currenciesSymbol.SZL=SZL
+currenciesSymbol.STD=STD
+currenciesSymbol.SAR=SAR
+currenciesSymbol.FJD=FJD
+currenciesSymbol.UYU=UYU
+currenciesSymbol.BDT=BDT
+currenciesSymbol.QAR=QAR
+currenciesSymbol.MNT=MNT
+currenciesSymbol.LBP=LBP
+currenciesSymbol.DJF=DJF
+currenciesSymbol.JOD=JOD
+currenciesSymbol.USD=$
+currenciesSymbol.SGD=SGD
+currenciesSymbol.KHR=KHR
+currenciesSymbol.SYP=SYP
+currenciesSymbol.MTL=MTL
+currenciesSymbol.MZN=MZN
+currenciesSymbol.MZM=MZM
+currenciesSymbol.YER=YER
+currenciesSymbol.HUF=HUF
+currenciesSymbol.CVE=CVE
+currenciesSymbol.NZD=NZD
+currenciesSymbol.OMR=OMR
+currenciesSymbol.KZT=KZT
+currenciesSymbol.INR=INR
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.NAD=NAD
+currenciesSymbol.GHS=GH\u00a2
+currenciesSymbol.COP=COP
+currenciesSymbol.TRL=TRL
+currenciesSymbol.ITL=IT\u20a4
+currenciesSymbol.HNL=HNL
+currenciesSymbol.KGS=KGS
+currenciesSymbol.ZWD=ZWD
+currenciesSymbol.MYR=MYR
+currenciesSymbol.SRG=SRG
+currenciesSymbol.BIF=BIF
+currenciesSymbol.VEF=BsF
+currenciesSymbol.PLN=PLN
+currenciesSymbol.LSL=LSL
+currenciesSymbol.GNF=GNF
+currenciesSymbol.VEB=VEB
+currenciesSymbol.BOB=BOB
+currenciesSymbol.CNY=CNY
+currenciesSymbol.KMF=KMF
+currenciesSymbol.SEK=SKr
+currenciesSymbol.AUD=AUD
+currenciesSymbol.LYD=LYD
+currenciesSymbol.JMD=JMD
+currenciesSymbol.SKK=SKK
+currenciesSymbol.CHF=SFr.
+currenciesSymbol.ETB=ETB
+currenciesSymbol.MRO=MRO
+currenciesSymbol.BBD=BBD
+currenciesSymbol.PKR=PKR
+currenciesSymbol.BTN=BTN
+currenciesSymbol.BHD=BHD
+currenciesSymbol.TWD=TWD
+currenciesSymbol.ATS=\u00f6S
+currenciesSymbol.MXN=MXN
+currenciesSymbol.DZD=DZD
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.BZD=BZD
+currenciesSymbol.IRR=IRR
+currenciesSymbol.GYD=GYD
+currenciesSymbol.BAM=BAM
+currenciesSymbol.CAD=CAD
+shortMonths=\u00ae\u00aeM\u00e4r\u00ae\u00ae\u00ae\u00aeJul\u00aeAug\u00aeSep\u00aeOkt\u00aeNov\u00aeDez\u00ae\u00ae
+months=Januar\u00aeFebruar\u00aeM\u00e4rz\u00aeApril\u00aeMai\u00aeJuni\u00aeJuli\u00aeAugust\u00aeSeptember\u00aeOktober\u00aeNovember\u00aeDezember\u00ae\u00ae
+shortWeekdays=\u00aeSo.\u00aeMo.\u00aeDi.\u00aeMi.\u00aeDo.\u00aeFr.\u00aeSa.\u00ae
+weekdays=\u00aeSonntag\u00aeMontag\u00aeDienstag\u00aeMittwoch\u00aeDonnerstag\u00aeFreitag\u00aeSamstag\u00ae
+eras=v. Chr.\u00aen. Chr.\u00ae
+ampms=vorm.\u00aenachm.\u00ae
shortDateFormat=dd.MM.yy
mediumDateFormat=dd.MM.yyyy
longDateFormat=d. MMMM yyyy
fullDateFormat=EEEE, d. MMMM yyyy
-fullTimeFormat=H:mm' Uhr 'z
-zoneStrings=Europe/Berlin®MEZ®Mitteleurop\u00e4ische Zeit®MESZ®Mitteleurop\u00e4ische Sommerzeit®©
-territories.TL=Osttimor
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00aeOsteurop\u00e4ische Zeit\u00aeOEZ\u00aeOsteurop\u00e4ische Sommerzeit\u00aeOESZ\u00ae\u00a9Africa_Southern\u00aeS\u00fcdafrikanische Standardzeit\u00ae\u00ae\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk-Zeit\u00ae\u00aeAktyubinsk-Sommerzeit\u00ae\u00ae\u00a9Almaty\u00aeAlmaty-Zeit\u00ae\u00aeAlmaty-Sommerzeit\u00ae\u00ae\u00a9Africa_Western\u00aeWestafrikanische Zeit\u00ae\u00aeWestafrikanische Sommerzeit\u00ae\u00ae\u00a9Africa_Central\u00aeZentralafrikanische Zeit\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Central\u00aeMitteleurop\u00e4ische Zeit\u00aeMEZ\u00aeMitteleurop\u00e4ische Sommerzeit\u00aeMESZ\u00ae\u00a9Africa_Eastern\u00aeOstafrikanische Zeit\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00aeAcre-Zeit\u00ae\u00aeAcre-Sommerzeit\u00ae\u00ae\u00a9Europe_Western\u00aeWesteurop\u00e4ische Zeit\u00aeWEZ\u00aeWesteurop\u00e4ische Sommerzeit\u00aeWESZ\u00ae\u00a9Afghanistan\u00aeAfghanistan-Zeit\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00ae\u00ae\u00aeAmazonas-Sommerzeit\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii-Standardzeit\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeMoskauer Zeit\u00ae\u00aeMoskauer Sommerzeit\u00ae\u00ae\u00a9Alaska\u00aeAlaska-Standardzeit\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=Timor-Leste
territories.TK=Tokelau
territories.TJ=Tadschikistan
territories.TH=Thailand
@@ -288,17 +430,18 @@ territories.GL=Gr\u00f6nland
territories.SV=El Salvador
territories.062=S\u00fcd-Zentralasien
territories.ST=S\u00e3o Tom\u00e9 und Pr\u00edncipe
-territories.061=Polynesien
territories.GI=Gibraltar
+territories.061=Polynesien
territories.GH=Ghana
territories.SR=Suriname
+territories.GG=Guernsey
territories.GF=Franz\u00f6sisch-Guayana
territories.GE=Georgien
territories.SO=Somalia
territories.GD=Grenada
territories.SN=Senegal
territories.SM=San Marino
-territories.GB=Vereinigtes K\u00f6nigreich
+territories.GB=Gro\u00dfbritannien
territories.SL=Sierra Leone
territories.GA=Gabun
territories.SK=Slowakei
@@ -312,26 +455,27 @@ territories.SC=Seychellen
territories.SB=Salomonen
territories.SA=Saudi-Arabien
territories.FR=Frankreich
-territories.057=Mikronesien
territories.FO=F\u00e4r\u00f6er
+territories.057=Mikronesisches Inselgebiet
territories.FM=Mikronesien
territories.RW=Ruanda
territories.054=Melanesien
-territories.053=Australien und Neuseeland
territories.FK=Falklandinseln
-territories.RU=Russische F\u00f6deration
+territories.053=Australien und Neuseeland
+territories.RU=Russland
territories.FJ=Fidschi
territories.FI=Finnland
+territories.RS=Serbien
territories.RO=Rum\u00e4nien
territories.RE=R\u00e9union
territories.ET=\u00c4thiopien
territories.ES=Spanien
territories.ER=Eritrea
-territories.833=Insel Man
+territories.QU=Europ\u00e4ische Union
territories.EH=Westsahara
territories.EG=\u00c4gypten
-territories.830=Kanalinseln
territories.EE=Estland
+territories.830=Kanalinseln
territories.QO=\u00c4u\u00dferes Ozeanien
territories.EC=Ecuador
territories.DZ=Algerien
@@ -339,13 +483,14 @@ territories.QA=Katar
territories.039=S\u00fcdeuropa
territories.DO=Dominikanische Republik
territories.PY=Paraguay
-territories.035=S\u00fcdostasien
territories.DM=Dominica
+territories.035=S\u00fcdostasien
territories.PW=Palau
+territories.034=S\u00fcdasien
territories.DK=D\u00e4nemark
territories.DJ=Dschibuti
territories.PT=Portugal
-territories.PS=Pal\u00e4stinensische Gebiete
+territories.PS=Pal\u00e4stina
territories.030=Ostasien
territories.PR=Puerto Rico
territories.DE=Deutschland
@@ -356,7 +501,7 @@ territories.PK=Pakistan
territories.PH=Philippinen
territories.PG=Papua-Neuguinea
territories.PF=Franz\u00f6sisch-Polynesien
-territories.CZ=Tschechische Republik
+territories.CZ=Tschechien
territories.PE=Peru
territories.CY=Zypern
territories.CX=Weihnachtsinsel
@@ -371,15 +516,16 @@ territories.CN=China
territories.CM=Kamerun
territories.CL=Chile
territories.CK=Cookinseln
-territories.CI=C\u00f4te d\u2019Ivoire
-territories.021=Nordamerika
+territories.021=N\u00f6rdliches Amerika
+territories.CI=Elfenbeink\u00fcste
territories.CH=Schweiz
territories.CG=Kongo
territories.CF=Zentralafrikanische Republik
territories.CD=Demokratische Republik Kongo
-territories.CC=Kokosinseln (Keeling)
+territories.CC=Kokosinseln
territories.OM=Oman
territories.CA=Kanada
+territories.419=Lateinamerika und Karibik
territories.BZ=Belize
territories.BY=Belarus
territories.BW=Botsuana
@@ -388,25 +534,28 @@ territories.BT=Bhutan
territories.BS=Bahamas
territories.BR=Brasilien
territories.019=Nord-, Mittel- und S\u00fcdamerika
-territories.018=S\u00fcdafrika
+territories.018=S\u00fcdliches Afrika
territories.NZ=Neuseeland
-territories.BO=Bolivien
territories.017=Zentralafrika
+territories.BO=Bolivien
territories.BN=Brunei Darussalam
-territories.BM=Bermuda
territories.015=Nordafrika
+territories.BM=Bermuda
territories.014=Ostafrika
+territories.BL=St. Barth\u00e9lemy
territories.013=Mittelamerika
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Westafrika
+territories.BI=Burundi
+territories.172=Gemeinschaft Unabh\u00e4ngiger Staaten
territories.BH=Bahrain
territories.NR=Nauru
territories.BG=Bulgarien
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgien
+territories.ZZ=Unbekannte oder ung\u00fcltige Region
territories.NO=Norwegen
territories.BD=Bangladesch
territories.BB=Barbados
@@ -427,24 +576,25 @@ territories.AU=Australien
territories.AT=\u00d6sterreich
territories.AS=Amerikanisch-Samoa
territories.AR=Argentinien
-territories.009=Ozeanien
territories.AQ=Antarktis
+territories.009=Ozeanien
territories.MZ=Mosambik
territories.AO=Angola
-territories.MY=Malaysia
+territories.MY=Malaysien
territories.AN=Niederl\u00e4ndische Antillen
territories.MX=Mexiko
-territories.005=S\u00fcdamerika
territories.AM=Armenien
+territories.005=S\u00fcdamerika
territories.MW=Malawi
territories.AL=Albanien
territories.MV=Malediven
+territories.003=Nordamerika
territories.ZA=S\u00fcdafrika
territories.MU=Mauritius
territories.002=Afrika
territories.MT=Malta
-territories.001=Welt
territories.AI=Anguilla
+territories.001=Welt
territories.MS=Montserrat
territories.MR=Mauretanien
territories.AG=Antigua und Barbuda
@@ -452,7 +602,7 @@ territories.MQ=Martinique
territories.AF=Afghanistan
territories.MP=N\u00f6rdliche Marianen
territories.AE=Vereinigte Arabische Emirate
-territories.MO=Macau S.A.R., China
+territories.MO=Macau
territories.AD=Andorra
territories.MN=Mongolei
territories.MM=Myanmar
@@ -461,6 +611,8 @@ territories.MK=Mazedonien
territories.YT=Mayotte
territories.MH=Marshallinseln
territories.MG=Madagaskar
+territories.MF=St. Martin
+territories.ME=Montenegro
territories.MD=Republik Moldau
territories.MC=Monaco
territories.MA=Marokko
@@ -481,12 +633,13 @@ territories.LC=St. Lucia
territories.LB=Libanon
territories.LA=Laos
territories.KZ=Kasachstan
-territories.KY=Kaimaninseln
+territories.KY=Cayman-Inseln
territories.KW=Kuwait
territories.145=Westasien
+territories.143=Zentralasien
territories.142=Asien
-territories.KR=Republik Korea
-territories.KP=Demokratische Volksrepublik Korea
+territories.KR=S\u00fcdkorea
+territories.KP=Nordkorea
territories.KN=St. Kitts und Nevis
territories.KM=Komoren
territories.KI=Kiribati
@@ -499,6 +652,7 @@ territories.JP=Japan
territories.JO=Jordanien
territories.JM=Jamaika
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=Amerikanische Jungferninseln
territories.VG=Britische Jungferninseln
@@ -513,6 +667,7 @@ territories.UZ=Usbekistan
territories.IO=Britisches Territorium im Indischen Ozean
territories.UY=Uruguay
territories.IN=Indien
+territories.IM=Isle of Man
territories.IL=Israel
territories.US=Vereinigte Staaten
territories.IE=Irland
@@ -525,38 +680,41 @@ territories.HT=Haiti
territories.HR=Kroatien
territories.TZ=Tansania
territories.HN=Honduras
-territories.HM=Heard und McDonaldinseln
+territories.HM=Heard- und McDonald-Inseln
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R., China
+territories.HK=Hongkong
territories.TT=Trinidad und Tobago
territories.TR=T\u00fcrkei
territories.TO=Tonga
territories.TN=Tunesien
territories.TM=Turkmenistan
-languages.akk=Akkadisch
languages.gwi=Kutchin-Sprache
+languages.akk=Akkadisch
languages.eka=Ekajuk
languages.ijo=Ijo-Sprache
languages.xh=Xhosa
languages.sux=Sumerisch
languages.sus=Susu
-languages.mis=Verschiedene Sprachen
+languages.mis=Diverse Sprache
languages.loz=Rotse-Sprache
-languages.tog=Tonga (Nyasa)
+languages.tog=Tsonga-Sprache
+languages.zbl=Bliss-Symbole
languages.pon=Ponapeanisch
languages.min=Minangkabau-Sprache
languages.suk=Sukuma-Sprache
languages.wo=Wolof
-languages.kut=Kutenai-Sprache
languages.lol=Mongo
+languages.kut=Kutenai-Sprache
languages.mic=Micmac-Sprache
languages.wa=Wallonisch
languages.kum=Kum\u00fckisch
languages.zap=Zapotekisch
-languages.cus=Kuschitische Sprachen (Andere)
-languages.doi=Dogri
+languages.ain=Ainu
+languages.cus=Kuschitische Sprachen
languages.jbo=Lojban
+languages.doi=Dogri
+languages.zza=Zaza
languages.vo=Volap\u00fck
languages.oto=Otomangue-Sprachen
languages.vi=Vietnamesisch
@@ -571,21 +729,23 @@ languages.nap=Neapolitanisch
languages.uz=Usbekisch
languages.uga=Ugaritisch
languages.tmh=Tamaseq
-languages.nai=Indianersprachen, Nordamerika (Andere)
+languages.nai=Indianersprachen Nordamerika
languages.nah=Nahuatl
languages.ur=Urdu
languages.fat=Fanti-Sprache
languages.uk=Ukrainisch
languages.egy=\u00c4gyptisch
+languages.zxx=Kein Sprachinhalt
languages.ug=Uigurisch
languages.fan=Pangwe-Sprache
-languages.ssa=Nilosaharanische Sprachen (Andere)
-languages.bat=Baltische Sprachen (Andere)
+languages.ssa=Nilosaharanische Sprachen
languages.mga=Mittelirisch
+languages.bat=Baltische Sprachen (Andere)
languages.nyo=Nyoro
languages.bas=Basaa-Sprache
-languages.nyn=Nyankole
+languages.nyn=Nkole-Sprache
languages.nym=Nyamwezi-Sprache
+languages.gsw=Hochalemannisch
languages.hmn=Miao-Sprachen
languages.ban=Balinesisch
languages.osa=Osage-Sprache
@@ -595,106 +755,115 @@ languages.bai=Bamileke-Sprache
languages.tw=Twi
languages.srr=Serer-Sprache
languages.tli=Tlingit-Sprache
+languages.tlh=Klingonisch
languages.tt=Tatarisch
languages.ts=Tsonga
+languages.srn=Srananisch
languages.bad=Banda-Sprache
languages.tr=T\u00fcrkisch
languages.to=Tongaisch
languages.tn=Tswana-Sprache
languages.tl=Tagalog
languages.tk=Turkmenisch
-languages.ti=Tigrinja
-languages.th=Thai
+languages.ti=Tigrinja-Sprache
+languages.th=Thail\u00e4ndisch
languages.kru=Oraon-Sprache
languages.tg=Tadschikisch
languages.byn=Blin
languages.te=Telugu
-languages.csb=Kaschubisch
languages.kro=Kru-Sprachen
+languages.csb=Kaschubisch
languages.ta=Tamilisch
+languages.krl=karelisch
languages.tkl=Tokelauanisch
languages.efi=Efik
-languages.sw=Suaheli
+languages.sw=Swahili
languages.sv=Schwedisch
-languages.su=Sudanesisch
-languages.krc=Karatschaiisch-Balkarisch
+languages.su=Sundanesisch
+languages.krc=Karatschaisch
languages.st=S\u00fcd-Sotho-Sprache
languages.ss=Swazi
languages.sr=Serbisch
languages.sq=Albanisch
languages.men=Mende-Sprache
-languages.crp=Kreolische Sprachen
+languages.crp=Kreolische Sprache
languages.so=Somali
languages.afh=Afrihili
-languages.sn=Shona
+languages.sn=Schona-Sprache
languages.sm=Samoanisch
languages.sl=Slowenisch
-languages.grc=Griechisch (bis 1453)
+languages.grc=altgriechisch
languages.sk=Slowakisch
-languages.grb=Grebo-Sprache
+languages.grb=Grebo
languages.si=Singhalesisch
languages.sh=Serbo-Kroatisch
-languages.afa=Afro-Asiatische Sprachen (Andere)
languages.crh=Krimtatarisch
-languages.sg=Sango
+languages.afa=Afro-Asiatische Sprachen
+languages.sg=Sango-Sprache
languages.se=Nord-Samisch
languages.sd=Sindhi
languages.udm=Udmurtisch
languages.sc=Sardisch
languages.sa=Sanskrit
-languages.rw=Ruandisch
+languages.rw=Rwanda-Sprache
+languages.nwc=Alt-Newari
languages.ru=Russisch
languages.mdr=Mandaresisch
languages.ro=Rum\u00e4nisch
languages.rn=Rundi-Sprache
languages.rm=R\u00e4toromanisch
-languages.mdf=Moksha
+languages.fr_CH=Schweizer Franz\u00f6sisch
+languages.mdf=Mokschamordwinisch
languages.tiv=Tiv-Sprache
-languages.ady=Adygai
+languages.fr_CA=Kanadisches Franz\u00f6sisch
+languages.ady=Adygeisch
languages.zun=Zuni-Sprache
languages.kpe=Kpelle-Sprache
-languages.qu=Quechua
+languages.qu=Ketchua
languages.tig=Tigre
languages.son=Songhai-Sprache
-languages.cpp=Kreolisch-Portugiesisch (Andere)
+languages.cpp=kreolisch/pidgin Sprache (Grundsprache portugiesisch)
+languages.rup=Aromunisch
languages.sog=Sogdisch
languages.ada=Adangme
-languages.cpf=Kreolisch-Franz\u00f6sisch (Andere)
-languages.hit=Hethitisch
languages.kos=Kosraeanisch
-languages.cpe=Kreolisch-Englisch (Andere)
+languages.hit=Hethitisch
+languages.cpf=kreolisch/pidgin Sprache (Grundsprache franz\u00f6sisch)
+languages.cpe=kreolisch/pidgin Sprache (Grundsprache englisch)
languages.him=Himachali
-languages.got=Gotisch
-languages.hil=Hiligaynon-Sprache
languages.kok=Konkani
+languages.hil=Hiligaynon-Sprache
+languages.got=Gotisch
languages.gor=Mongondou
languages.gon=Gondi-Sprache
languages.din=Dinka-Sprache
-languages.nub=Nubische Sprachen
+languages.nub=Nubische Sprache
languages.pt=Portugiesisch
-languages.ps=Afghanisch (Paschtu)
+languages.ps=Paschtu
languages.fur=Friulisch
languages.phn=Ph\u00f6nikisch
+languages.de_CH=Schweizer Hochdeutsch
languages.goh=Althochdeutsch
languages.snk=Soninke-Sprache
languages.cop=Koptisch
languages.yap=Yapesisch
languages.ach=Acholi-Sprache
languages.yao=Yao-Sprache
-languages.phi=Philippinen-Austronesisch (Andere)
+languages.phi=Philippinen-Austronesische Sprachen
languages.pl=Polnisch
languages.ace=Aceh-Sprache
languages.pi=Pali
-languages.pa=Pandschabisch
-languages.bug=Buginesisch
+languages.pt_PT=Iberisches Portugiesisch
+languages.pa=Pandschabi-Sprache
+languages.bug=Bugi-Sprache
languages.iba=Iban
languages.sms=Skolt-Lappisch
languages.bua=Burjatisch
languages.mas=Massai-Sprache
languages.smn=Inari-Lappisch
languages.os=Ossetisch
-languages.map=Austronesische Sprachen (Andere)
-languages.or=Orija
+languages.map=austronesische Sprache
+languages.or=Oriya-Sprache
languages.man=Manding-Sprache
languages.smj=Lule-Lappisch
languages.smi=Lappisch
@@ -704,54 +873,61 @@ languages.mai=Maithili
languages.oj=Ojibwa-Sprache
languages.mag=Khotta
languages.mad=Maduresisch
-languages.sma=S\u00fcd-Samisch
+languages.sma=S\u00fcdlappisch
languages.oc=Okzitanisch
-languages.nso=Sotho-Sprache (Nord)
-languages.btk=Batak (Indonesien)
-languages.myv=Erzya
+languages.nso=Nord-Sotho-Sprache
+languages.btk=batak
+languages.myv=erza
+languages.es_ES=Iberisches Spanisch
+languages.de_AT=\u00d6sterreichisches Deutsch
languages.dgr=Dogrib
-languages.ny=Chewa-Sprache
+languages.ny=Nyanja-Sprache
languages.myn=Maya-Sprachen
languages.nv=Navajo-Sprache
-languages.kmb=Kimbundu-Sprache
-languages.nr=Ndebele-Sprache (S\u00fcd)
+languages.kmb=kimbundu
+languages.nr=S\u00fcd-Ndebele-Sprache
languages.gmh=Mittelhochdeutsch
languages.no=Norwegisch
-languages.nn=Norwegisch Nynorsk
+languages.nn=Norwegisch (Nynorsk)
languages.nl=Niederl\u00e4ndisch
+languages.root=Root
languages.ng=Ndonga
-languages.sla=Slawische Sprachen (Andere)
-languages.ne=Nepalesisch
-languages.nd=Ndebele-Sprache (Nord)
+languages.sla=Slawische Sprachen
+languages.ne=Nepali
+languages.nd=Nord-Ndebele-Sprache
languages.cmc=Cham-Sprachen
languages.tet=Tetum-Sprache
-languages.nb=Norwegisch Bokm\u00e5l
-languages.na=Nauruisch
+languages.nb=Norwegisch (Bokm\u00e5l)
+languages.na=nauruisch
languages.ter=Tereno-Sprache
languages.tem=Temne
-languages.my=Birmanisch
+languages.my=birmanisch
languages.lez=Lesgisch
languages.mt=Maltesisch
+languages.frs=Ostfriesisch
languages.peo=Altpersisch
languages.ms=Malaiisch
+languages.frr=Nordfriesisch
languages.mr=Marathi
languages.fro=Altfranz\u00f6sisch
-languages.mo=Moldauisch
+languages.mo=moldauisch
languages.mn=Mongolisch
languages.frm=Mittelfranz\u00f6sisch
languages.ml=Malayalam
languages.jrb=J\u00fcdisch-Arabisch
languages.mk=Mazedonisch
-languages.mi=Maori
+languages.mi=Maori-Sprache
languages.mh=Marschallesisch
-languages.mg=Madagassisch
+languages.mg=madagassisch
+languages.nqo=N\u2019Ko
languages.mwr=Marwari
languages.bra=Braj-Bhakha
+languages.mwl=mirandesisch
+languages.den=slavey
languages.lv=Lettisch
-languages.den=Slave (Athapaskische Sprachen)
languages.lu=Luba
-languages.lt=Litauisch
languages.del=Delaware-Sprache
+languages.lt=Litauisch
languages.lo=Laotisch
languages.ln=Lingala
languages.li=Limburgisch
@@ -761,85 +937,86 @@ languages.lb=Luxemburgisch
languages.la=Latein
languages.jpr=J\u00fcdisch-Persisch
languages.vot=Wotisch
-languages.sit=Sinotibetische Sprachen (Andere)
-languages.ky=Kirgisisch
+languages.sit=Sinotibetische Sprachen
+languages.ky=kirgisisch
languages.kw=Kornisch
languages.kv=Komi-Sprache
languages.ku=Kurdisch
-languages.sio=Sioux-Sprachen
-languages.ks=Kaschmirisch
+languages.sio=Sioux-Sprache
+languages.ks=Kaschmiri
languages.kr=Kanuri-Sprache
languages.awa=Awadhi
languages.ko=Koreanisch
-languages.kn=Kannada
-languages.km=Kambodschanisch
+languages.kn=kannada
+languages.km=Khmer-Sprache
+languages.en_GB=Englisch (Gro\u00dfbritannien)
languages.kl=Gr\u00f6nl\u00e4ndisch
languages.kk=Kasachisch
-languages.rom=Zigeunersprache
+languages.rom=Romani
languages.kj=Kwanyama
languages.sid=Sidamo
languages.ki=Kikuyu-Sprache
languages.kg=Kongo
languages.non=Altnordisch
languages.ka=Georgisch
-languages.mus=Muskogee-Sprachen
-languages.roa=Romanische Sprachen (Andere)
-languages.nog=Nogai
+languages.mus=Muskogee-Sprache
+languages.roa=Romanische Sprachen
+languages.nog=Nogaisch
languages.mun=Munda-Sprachen
-languages.mul=Polyglott
+languages.mul=mehrsprachig
languages.jv=Javanisch
languages.gil=Gilbertesisch
languages.znd=Zande-Sprache
languages.shn=Schan-Sprache
languages.fon=Fon-Sprache
languages.xal=Kalm\u00fcckisch
-languages.aus=Australische Sprachen
+languages.aus=Australische Sprache
languages.kho=Sakisch
languages.ja=Japanisch
-languages.khi=Khoisan-Sprachen (Andere)
+languages.khi=Khoisan-Sprachen
languages.pau=Palau
languages.chy=Cheyenne
-languages.tai=Thaisprachen (Andere)
-languages.iu=Inukitut
+languages.tai=Thaisprachen
+languages.iu=Inuktitut
languages.pap=Papiamento
languages.it=Italienisch
-languages.sgn=Geb\u00e4rdensprache
-languages.kha=Khasi-Sprache
+languages.sgn=Zeichensprache
languages.is=Isl\u00e4ndisch
+languages.kha=Khasi-Sprache
languages.chr=Cherokee
languages.pam=Pampanggan-Sprache
languages.pal=Mittelpersisch
languages.chp=Chipewyan
+languages.io=Sinohoan
languages.cho=Choctaw
-languages.io=Ido-Sprache
languages.chn=Chinook
languages.chm=Tscheremissisch
languages.tyv=Tuwinisch
-languages.bnt=Bantusprachen (Andere)
+languages.bnt=Bantusprachen
languages.pag=Pangasinan-Sprache
+languages.ik=inupiak
languages.chk=Trukesisch
-languages.ik=Inupiak
-languages.haw=Hawaiianisch
-languages.ii=Sichuan Yi
+languages.ii=sichuan yi
+languages.haw=Hawaiisch
languages.lam=Lamba-Sprache
+languages.ig=igbo
languages.chg=Tschagataisch
-languages.ig=Igbo-Sprache
languages.sga=Altirisch
-languages.paa=Papuasprachen (Andere)
+languages.paa=Papuasprachen
languages.ie=Interlingue
languages.id=Indonesisch
languages.lah=Lahnda
-languages.chb=Chibcha-Sprachen
languages.day=Dajak
+languages.chb=Chibcha-Sprache
languages.ia=Interlingua
-languages.lad=Judenspanisch
-languages.dar=Darginisch
-languages.hai=Haida-Sprache
+languages.lad=Ladino
languages.hz=Herero-Sprache
+languages.hai=Haida-Sprache
+languages.dar=Dari
languages.hy=Armenisch
languages.ath=Athapaskische Sprachen
languages.hu=Ungarisch
-languages.ht=Kreolisch
+languages.ht=Haitianisch
languages.dak=Dakota-Sprache
languages.hr=Kroatisch
languages.ho=Hiri-Motu
@@ -847,66 +1024,77 @@ languages.hi=Hindi
languages.dyu=Dyula-Sprache
languages.he=Hebr\u00e4isch
languages.ast=Asturianisch
-languages.ha=Hausa
+languages.kfo=koro
+languages.ha=Haussa-Sprache
languages.wen=Sorbisch
languages.gv=Manx
languages.gu=Gujarati
-languages.sem=Semitische Sprachen (Andere)
+languages.sem=Semitische Sprachen
languages.sel=Selkupisch
-languages.iro=Irokesische Sprachen
+languages.iro=Irokesische Sprache
languages.gn=Guarani
-languages.gl=Galizisch
+languages.gl=galizisch
+languages.en_CA=Kanadisches Englisch
languages.arw=Arawak-Sprachen
-languages.gd=Schottisch-G\u00e4lisch
-languages.art=Kunstsprachen (Andere)
languages.gez=Geez
-languages.ira=Iranische Sprachen (Andere)
+languages.art=Kunstsprachen (Andere)
+languages.gd=G\u00e4lisch-Schottisch
+languages.ira=Iranische Sprachen
languages.ga=Irisch
languages.arp=Arapaho-Sprache
languages.arn=Araukanisch
languages.fy=Friesisch
languages.bla=Blackfoot-Sprache
-languages.gem=Germanische Sprachen (Andere)
+languages.gem=Germanische Sprachen
languages.ypk=Yupik-Sprache
+languages.arc=aram\u00e4isch
languages.fr=Franz\u00f6sisch
-languages.arc=Aram\u00e4isch
languages.fo=F\u00e4r\u00f6isch
-languages.cel=Keltische Sprachen (Andere)
-languages.fj=Fidschianisch
+languages.cel=keltische Sprache
+languages.fj=Fidschi-Sprache
languages.fi=Finnisch
languages.ff=Ful
languages.tvl=Elliceanisch
languages.ceb=Cebuano
languages.fa=Persisch
+languages.en_AU=Australisches Englisch
+languages.zh_Hans=Chinesisch (vereinfacht)
+languages.zh_Hant=Traditionelles Chinesisch
languages.eu=Baskisch
languages.sco=Schottisch
languages.et=Estnisch
+languages.scn=Sizilianisch
languages.es=Spanisch
languages.eo=Esperanto
languages.en=Englisch
languages.el=Griechisch
languages.tut=Altaische Sprachen (Andere)
-languages.niu=Niue-Sprache
+languages.niu=Niue
languages.tup=Tupi-Sprachen
languages.ee=Ewe-Sprache
languages.tum=Tumbuka-Sprache
+languages.nl_BE=Fl\u00e4misch
+languages.es_419=Lateinamerikanisches Spanisch
languages.mos=Mossi-Sprache
-languages.dz=Bhutanisch
-languages.nic=Nigerkordofanische Sprachen (Andere)
-languages.dv=Maledivisch
-languages.fiu=Finnougrische Sprachen (Andere)
+languages.dz=Dzongkha
+languages.kcg=tyap
+languages.nic=Nigerkordofanische Sprachen
languages.lus=Lushai-Sprache
+languages.fiu=finnisch-ugrische Sprache
+languages.dv=Maledivisch
languages.nia=Nias-Sprache
languages.moh=Mohawk-Sprache
languages.luo=Luo-Sprache
-languages.lun=Lunda-Sprache
+languages.lun=lunda
languages.apa=Apachen-Sprache
+languages.fil=Pilipino
languages.lui=Luiseno-Sprache
languages.hup=Hupa
-languages.bin=Bini-Sprache
+languages.cch=Atsam
+languages.bin=bini
languages.de=Deutsch
-languages.lua=Luba-Lulua
-languages.bik=Bikol-Sprache
+languages.lua=luba-Lulua
+languages.bik=Bikolano
languages.was=Washo-Sprache
languages.und=Sprache nicht ermittelt
languages.war=Waray
@@ -914,59 +1102,63 @@ languages.da=D\u00e4nisch
languages.dum=Mittelniederl\u00e4ndisch
languages.wal=Walamo-Sprache
languages.mno=Manobo-Sprache
-languages.wak=Wakashanisch
+languages.wak=Wakash-Sprachen
languages.sat=Santali
-languages.cy=Kymrisch
+languages.cy=Walisisch
languages.sas=Sasak
-languages.cv=Tschuwaschisch
languages.kbd=Kabardinisch
+languages.cv=Tschuwaschisch
languages.cu=Kirchenslawisch
languages.mni=Meithei-Sprache
languages.cs=Tschechisch
languages.sam=Samaritanisch
languages.cr=Cree
languages.sal=Salish-Sprache
-languages.dua=Duala
+languages.dua=duala
languages.co=Korsisch
-languages.sai=Indianersprachen, S\u00fcdamerika (Andere)
+languages.sai=Indianersprachen S\u00fcdamerika
languages.mnc=Mandschurisch
languages.sah=Jakutisch
-languages.gba=Gbaya-Sprache
-languages.inh=Ingush
languages.kaw=Kawi
+languages.inh=Inguschisch
+languages.gba=Gbaya-Sprache
languages.sad=Sandawe-Sprache
languages.ch=Chamorro-Sprache
+languages.ine=Indogermanische Sprachen
languages.bho=Bhodschpuri
-languages.ine=Indogermanische Sprachen (Andere)
languages.enm=Mittelenglisch
-languages.ce=Tschetschenisch
-languages.inc=Indoarische Sprachen (Andere)
languages.kar=Karenisch
+languages.inc=indoarische Sprache
+languages.ce=Tschetschenisch
languages.gay=Gayo
languages.ca=Katalanisch
languages.umb=Mbundu-Sprache
languages.syr=Syrisch
languages.kam=Kamba
+languages.anp=Angika
languages.tsi=Tsimshian-Sprache
+languages.kaj=jju
languages.ang=Altenglisch
-languages.cau=Kaukasische Sprachen (Andere)
languages.kac=Kachin-Sprache
+languages.cau=Kaukasische Sprachen
languages.kab=Kabylisch
-languages.bs=Bosnisch
languages.kaa=Karakalpakisch
+languages.bs=Bosnisch
+languages.car=Karibische Sprache
languages.br=Bretonisch
-languages.car=Karibische Sprachen
-languages.bo=Tibetisch
-languages.bn=Bengalisch
+languages.syc=Altsyrisch
+languages.bo=Tibetanisch
+languages.bn=Bengali
languages.bm=Bambara-Sprache
-languages.gaa=Ga-Sprache
+languages.gaa=g\u00e3
+languages.cai=Indianersprachen Zentralamerika
languages.bi=Bislama
-languages.cai=Indianersprachen, Zentralamerika (Andere)
-languages.bh=Biharisch
+languages.bh=biharisch
languages.bg=Bulgarisch
languages.be=Wei\u00dfrussisch
-languages.cad=Caddo
-languages.ba=Baschkirisch
+languages.pt_BR=Brasilianisches Portugiesisch
+languages.cad=caddo
+languages.ba=baschkirisch
languages.zu=Zulu
languages.zen=Zenaga
languages.pro=Altprovenzalisch
@@ -975,10 +1167,10 @@ languages.az=Aserbaidschanisch
languages.ay=Aymar\u00e1-Sprache
languages.av=Awarisch
languages.as=Assamesisch
-languages.ar=Arabisch
languages.dsb=Niedersorbisch
-languages.elx=Elamisch
+languages.ar=Arabisch
languages.ilo=Ilokano-Sprache
+languages.elx=Elamisch
languages.zh=Chinesisch
languages.an=Aragonesisch
languages.pra=Prakrit
@@ -986,20 +1178,45 @@ languages.am=Amharisch
languages.new=Newari
languages.ak=Akan
languages.za=Zhuang
+languages.en_US=Amerikanisches Englisch
languages.af=Afrikaans
languages.ae=Avestisch
+languages.alt=S\u00fcd-Altaisch
languages.ab=Abchasisch
languages.aa=Afar
-languages.yo=Joruba
+languages.yo=Yoruba-Sprache
languages.alg=Algonkin-Sprachen
languages.ale=Aleutisch
-languages.mkh=Mon-Khmer-Sprachen (Andere)
+languages.mkh=Mon-Khmer-Sprachen
languages.yi=Jiddisch
-languages.dra=Drawidische Sprachen (Andere)
+languages.dra=Drawidische Sprachen
languages.ber=Berbersprachen (Andere)
languages.nds=Niederdeutsch
languages.bem=Bemba-Sprache
-languages.bej=Bedauye
+languages.bej=bedauye
languages.tpi=Neumelanesisch
-variants.POSIX=Posix
-variants.REVISED=Revidiert
+variants.POSIX=POSIX
+variants.AREVMDA=Westarmenisch
+variants.1996=neue deutsche Rechtschreibung
+variants.SOLBA=Solbica-Dialekt
+variants.NEDIS=Natisone-Dialekt
+variants.1994=Standardisierte Resianische Rechtschreibung
+variants.1901=alte deutsche Rechtschreibung
+variants.FONUPA=UPA Phonetisch
+variants.OSOJS=Osojane-Dialekt
+variants.LIPAW=Lipovaz-Dialekt
+variants.REVISED=revidierte Rechtschreibung
+variants.NJIVA=Njiva-Dialekt
+variants.TARASK=Taraskievica-Orthographie
+variants.FONIPA=Phonetisch (IPA)
+variants.BISKE=Bela-Dialekt
+variants.SCOUSE=Scouse-Dialekt
+variants.BAKU1926=Einheitliches T\u00fcrkisches Alphabet
+variants.SAAHO=Saho
+variants.ROZAJ=Resianisch
+variants.MONOTON=Monotonisch
+variants.POLYTON=Polytonisch
+variants.AREVELA=Ostarmenisch
+variants.SCOTLAND=Schottisches Standardenglisch
+variants.BOONT=Boontling
+variants.1606NICT=Sp\u00e4tes Mittelfranz\u00f6sisch
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_AT.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_AT.properties
index 492e674..18d5174 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_AT.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_AT.properties
@@ -5,8 +5,8 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortMonths=J\u00e4n®®M\u00e4r®®®®®®®®®®®
-months=J\u00e4nner®®®®®®®®®®®®®
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+shortMonths=J\u00e4n\u00ae\u00aeM\u00e4r\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=J\u00e4nner\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
longDateFormat=dd. MMMM yyyy
fullDateFormat=EEEE, dd. MMMM yyyy
-fullTimeFormat=HH:mm' Uhr 'z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_BE.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_BE.properties
index c20e7ca..c7debc8 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_BE.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_BE.properties
@@ -5,12 +5,10 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
currenciesDisplayName.FRF=Franken
-shortMonths=®®M\u00e4r®®®®®®®®®®®
-shortWeekdays=®Son®Mon®Die®Mit®Don®Fre®Sam®
+shortMonths=\u00ae\u00aeM\u00e4r\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMon\u00aeDie\u00aeMit\u00aeDon\u00aeFre\u00aeSam\u00ae
shortDateFormat=d/MM/yy
-mediumDateFormat=d-MMM-yy
longDateFormat=d MMMM yyyy
fullDateFormat=EEEE d MMMM yyyy
fullTimeFormat=HH 'h' mm 'min' ss 's' z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_CH.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_CH.properties
index 9f3722b..b8bf962 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_CH.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_CH.properties
@@ -7,9 +7,9 @@
decimalSeparator=.
groupingSeparator='
-currencyFormat=\u00a4 #,##0.00;\u00a4-#,##0.00
-territories.BD=Bangladesh
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4-#,##0.00
territories.MH=Marshall-Inseln
+territories.BD=Bangladesh
territories.DJ=Djibouti
territories.SB=Salomon-Inseln
territories.BW=Botswana
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LI.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LI.properties
index 6ae8f89..6ccc0f5 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LI.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LI.properties
@@ -7,3 +7,4 @@
decimalSeparator=.
groupingSeparator='
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LU.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LU.properties
index 5a325df..4e463e3 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LU.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_de_LU.properties
@@ -5,5 +5,4 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
currenciesSymbol.LUF=F
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_dv.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_dv.properties
index 25153e2..5bd1fa4 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_dv.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_dv.properties
@@ -7,7 +7,21 @@
zeroDigit=\u0660
percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
currenciesSymbol.MVR=\u0783.
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=hh:mm a
+mediumTimeFormat=hh:mm:ss a
+longTimeFormat=hh:mm:ss a z
+fullTimeFormat=hh:mm:ss a z
territories.MV=\u078b\u07a8\u0788\u07ac\u0780\u07a8 \u0783\u07a7\u0787\u07b0\u0796\u07ac
languages.dv=\u078b\u07a8\u0788\u07ac\u0780\u07a8\u0784\u07a6\u0790\u07b0
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_dz.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_dz.properties
index ba202d8..132114d 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_dz.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_dz.properties
@@ -5,13 +5,21 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortMonths=\u0f5f\u0fb3\u0f0b \u0f21®\u0f5f\u0fb3\u0f0b \u0f22®\u0f5f\u0fb3\u0f0b \u0f23®\u0f5f\u0fb3\u0f0b \u0f24®\u0f5f\u0fb3\u0f0b \u0f25®\u0f5f\u0fb3\u0f0b \u0f26®\u0f5f\u0fb3\u0f0b \u0f27®\u0f5f\u0fb3\u0f0b \u0f28®\u0f5f\u0fb3\u0f0b \u0f29®\u0f5f\u0fb3\u0f0b \u0f21\u0f20®\u0f5f\u0fb3\u0f0b \u0f21\u0f21®\u0f5f\u0fb3\u0f0b \u0f21\u0f22®®
-months=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0f44\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54\u0f0b®\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b®®
-shortWeekdays=®\u0f5f\u0fb3\u0f0b®\u0f58\u0f72\u0f62\u0f0b®\u0f63\u0fb7\u0f42\u0f0b®\u0f55\u0f74\u0f62\u0f0b®\u0f66\u0f44\u0f66\u0f0b®\u0f66\u0fa4\u0f7a\u0f53\u0f0b®\u0f49\u0f72\u0f0b®
-weekdays=®\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b®\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b®
-firstDayOfWeek=mon
-ampms=\u0f66\u0f94\u0f0b\u0f46\u0f0b®\u0f55\u0fb1\u0f72\u0f0b\u0f46\u0f0b®
-shortDateFormat=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b yyyy \u0f5f\u0fb3\u0f0b MMM \u0f5a\u0f7a\u0f66\u0f0b dd
+percent=\u0f56\u0f62\u0f92\u0f0b\u0f46\u0f71
+infinity=\u0f42\u0fb2\u0f44\u0f66\u0f0b\u0f58\u0f7a\u0f51
+NaN=\u0f68\u0f44\u0f0b\u0f58\u0f51
+zeroDigit=\u0f20
+percentFormat=#,##,##0\u00a0%
+currencyFormat=\u00a4#,##,##0.00;-\u00a4#,##,##0.00
+currenciesDisplayName.BTN=\u0f51\u0f44\u0f74\u0f63\u0f0b\u0f40\u0fb2\u0f58\u0f0b
+currenciesSymbol.BTN=Nu
+shortMonths=\u0f5f\u0fb3\u0f0b \u0f21\u00ae\u0f5f\u0fb3\u0f0b \u0f22\u00ae\u0f5f\u0fb3\u0f0b \u0f23\u00ae\u0f5f\u0fb3\u0f0b \u0f24\u00ae\u0f5f\u0fb3\u0f0b \u0f25\u00ae\u0f5f\u0fb3\u0f0b \u0f26\u00ae\u0f5f\u0fb3\u0f0b \u0f27\u00ae\u0f5f\u0fb3\u0f0b \u0f28\u00ae\u0f5f\u0fb3\u0f0b \u0f29\u00ae\u0f5f\u0fb3\u0f0b \u0f21\u0f20\u00ae\u0f5f\u0fb3\u0f0b \u0f21\u0f21\u00ae\u0f5f\u0fb3\u0f0b \u0f21\u0f22\u00ae\u00ae
+months=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0f44\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f42\u0f66\u0f74\u0f58\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f5e\u0f72\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f63\u0f94\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0fb2\u0f74\u0f42\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f51\u0f74\u0f53\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f62\u0f92\u0fb1\u0f51\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f51\u0f42\u0f74\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f45\u0f72\u0f42\u0f0b\u0f54\u0f0b\u00ae\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f5f\u0fb3\u0f5d\u0f0b\u0f56\u0f45\u0f74\u0f0b\u0f42\u0f49\u0f72\u0f66\u0f0b\u0f54\u0f0b\u00ae\u00ae
+shortWeekdays=\u00ae\u0f5f\u0fb3\u0f0b\u00ae\u0f58\u0f72\u0f62\u0f0b\u00ae\u0f63\u0fb7\u0f42\u0f0b\u00ae\u0f55\u0f74\u0f62\u0f0b\u00ae\u0f66\u0f44\u0f66\u0f0b\u00ae\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u00ae\u0f49\u0f72\u0f0b\u00ae
+weekdays=\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f5f\u0fb3\u0f0b\u0f56\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f58\u0f72\u0f42\u0f0b\u0f51\u0f58\u0f62\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f63\u0fb7\u0f42\u0f0b\u0f54\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f55\u0f74\u0f62\u0f0b\u0f56\u0f74\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f54\u0f0b\u0f66\u0f44\u0f66\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f66\u0fa4\u0f7a\u0f53\u0f0b\u0f54\u0f0b\u00ae\u0f42\u0f5f\u0f60\u0f0b\u0f49\u0f72\u0f0b\u0f58\u0f0b\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u0f66\u0f94\u0f0b\u0f46\u0f0b\u00ae\u0f55\u0fb1\u0f72\u0f0b\u0f46\u0f0b\u00ae
+shortDateFormat=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0b yyyy \u0f5f\u0fb3\u0f0b MM \u0f5a\u0f7a\u0f66\u0f0b dd
mediumDateFormat=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0byyyy \u0f5f\u0fb3\u0f0b MMM \u0f5a\u0f7a\u0f66\u0f0b dd
longDateFormat=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0byyyy \u0f5f\u0fb3\u0f0b MMMM \u0f5a\u0f7a\u0f66\u0f0b dd
fullDateFormat=\u0f66\u0fa4\u0fb1\u0f72\u0f0b\u0f63\u0f7c\u0f0byyyy \u0f5f\u0fb3\u0f0b MMMM \u0f5a\u0f7a\u0f66\u0f0b dd
@@ -19,7 +27,7 @@ shortTimeFormat=\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b h \u0f66\u0f90\u0f62\
mediumTimeFormat=\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0bh:mm:ss a
longTimeFormat=\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b h \u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b mm \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f71\u0f0b ss a zzz
fullTimeFormat=\u0f46\u0f74\u0f0b\u0f5a\u0f7c\u0f51\u0f0b h \u0f66\u0f90\u0f62\u0f0b\u0f58\u0f0b mm \u0f66\u0f90\u0f62\u0f0b\u0f46\u0f71\u0f0b ss a zzzz
-zoneStrings=Asia/Thimphu®BST®Bhutan Standard Time®BST®Bhutan Standard Time®©
+zoneStrings=Bhutan\u00aeBhutan Standard Time\u00aeBST\u00ae\u00ae\u00ae\u00a9
territories.PT=\u0f54\u0f7c\u0f62\u0f0b\u0f45\u0f74\u0f0b\u0f42\u0f63
territories.JP=\u0f47\u0f0b\u0f54\u0f71\u0f53
territories.PS=\u0f54\u0f7a\u0f0b\u0f63\u0f72\u0f66\u0f72\u0f0b\u0f4a\u0f72\u0f0b\u0f53\u0f72\u0f61 \u0f53\u0f0b\u0f4a\u0f7a\u0f0b\u0f62\u0f72\u0f0b\u0f44\u0f7c\u0f0b\u0f62\u0f72
@@ -37,23 +45,23 @@ territories.SI=\u0f66\u0f72\u0f63\u0f7c\u0f0b\u0f56\u0f7a\u0f0b\u0f53\u0f72\u0f0
territories.SE=\u0f66\u0f74\u0f60\u0f72\u0f0b\u0f4c\u0f53
territories.CZ=\u0f45\u0f7a\u0f40\u0f0b\u0f62\u0f72\u0f0b\u0f54\u0f56\u0f0b\u0f63\u0f72\u0f40
territories.PA=\u0f54\u0f0b\u0f53\u0f0b\u0f58\u0f71
-territories.SA=\u0f66\u0f60\u0f74\u0f0b\u0f51\u0f72\u0f0b\u0f68\u0f7a\u0f0b\u0f62\u0f0b\u0f66 \u0fa6\u0f72\u0f0b\u0f61
+territories.SA=\u0f66\u0f60\u0f74\u0f0b\u0f51\u0f72\u0f0b\u0f68\u0f7a\u0f0b\u0f62\u0f0b\u0f66\u0fa6\u0f72\u0f0b\u0f61
territories.CU=\u0f40\u0f72\u0f60\u0f74\u0f0b\u0f66\u0fa6
-territories.FR=\u0f55\u0f62\u0f71\u0f53\u0f66\u0f72
territories.IT=\u0f68\u0f80\u0f4a\u0f0b\u0f63\u0f72
+territories.FR=\u0f55\u0f62\u0f71\u0f53\u0f66\u0f72
territories.IS=\u0f68\u0f60\u0f72\u0f66\u0f72\u0f0b\u0f63\u0f7a\u0f53\u0f4c
territories.UZ=\u0f68\u0f74\u0f5b\u0f0b\u0f56\u0f7a\u0f0b\u0f40\u0f72\u0f66\u0f72\u0f0b\u0f4f\u0f71\u0f53
-territories.CN=\u0f62\u0f92\u0fb1\u0f0b\u0f58\u0f72
territories.IR=\u0f68\u0f72\u0f0b\u0f62\u0f71\u0f53
+territories.CN=\u0f62\u0f92\u0fb1\u0f0b\u0f58\u0f72
territories.IQ=\u0f68\u0f72\u0f0b\u0f62\u0f40
territories.IN=\u0f62\u0f92\u0fb1\u0f0b\u0f42\u0f62
-territories.CH=\u0f66\u0f74\u0f60\u0f72\u0f4a\u0f0b\u0f5b\u0f62\u0f0b\u0f63\u0f7a\u0f53
territories.IL=\u0f68\u0f72\u0f5b\u0f0b\u0f62\u0f71\u0f7a\u0f63
+territories.CH=\u0f66\u0f74\u0f60\u0f72\u0f4a\u0f0b\u0f5b\u0f62\u0f0b\u0f63\u0f7a\u0f53
territories.US=\u0f61\u0f74\u0f0b\u0f53\u0f60\u0f72\u0f4a\u0f7a\u0f4a\u0f0b\u0f66\u0f72\u0f0b\u0f4a\u0f7a\u0f66\u0f72
territories.FI=\u0f55\u0f72\u0f53\u0f0b\u0f63\u0f7a\u0f53\u0f4c
territories.LK=\u0f64\u0fb2\u0f71\u0f80\u0f0b\u0f63\u0f44\u0f40
-territories.CA=\u0f40\u0f7a\u0f0b\u0f53\u0f0b\u0f4c
territories.IE=\u0f68\u0f60\u0f72\u0f62\u0f72\u0f0b\u0f63\u0f7a\u0f53\u0f4c
+territories.CA=\u0f40\u0f7a\u0f0b\u0f53\u0f0b\u0f4c
territories.LB=\u0f63\u0f7a\u0f0b\u0f56\u0f71\u0f0b\u0f53\u0f71\u0f7c\u0f53
territories.LA=\u0f63\u0f0b\u0f60\u0f7c\u0f66\u0f74
territories.BT=\u0f60\u0f56\u0fb2\u0f74\u0f42
@@ -69,8 +77,8 @@ territories.BH=\u0f56\u0f67\u0f0b\u0f62\u0f7a\u0f53
territories.ZW=\u0f5b\u0f72\u0f58\u0f0b\u0f56\u0f56\u0f0b\u0f5d\u0f7a
territories.NO=\u0f53\u0f7c\u0f0b\u0f5d\u0f7a
territories.HK=\u0f67\u0f7c\u0f44\u0f0b\u0f40\u0f7c\u0f44
-territories.BE=\u0f56\u0f7a\u0f63\u0f0b\u0f47\u0f72\u0f61\u0f58
territories.EG=\u0f68\u0f72\u0f0b\u0f47\u0f72\u0f54\u0f4a
+territories.BE=\u0f56\u0f7a\u0f63\u0f0b\u0f47\u0f72\u0f61\u0f58
territories.NL=\u0f53\u0f7a\u0f0b\u0f51\u0f62\u0f0b\u0f63\u0f7a\u0f53\u0f4c\u0f66\u0f72
territories.BD=\u0f56\u0f44\u0f92\u0f0b\u0f63\u0f0b\u0f51\u0f7a\u0f64
territories.KH=\u0f40\u0f58\u0f0b\u0f56\u0f7c\u0f0b\u0f4c\u0f72\u0f0b\u0f61
@@ -106,8 +114,8 @@ languages.mn=\u0f66\u0f7c\u0f42\u0f0b\u0f54\u0f7c\u0f60\u0f72\u0f0b\u0f41
languages.ml=\u0f58\u0f0b\u0f63\u0f0b\u0f61\u0f0b\u0f63\u0f58
languages.de=\u0f47\u0f71\u0f62\u0f0b\u0f58\u0f71\u0f53
languages.pi=\u0f54\u0f0b\u0f63\u0f72
-languages.art=\u0f56\u0f5f\u0f7c\u0f0b\u0f56\u0f5f\u0f7c\u0f5d (\u0f42\u0f5e\u0f53)
languages.da=\u0f4c\u0f7a\u0f0b\u0f53\u0f72\u0f64
+languages.art=\u0f56\u0f5f\u0f7c\u0f0b\u0f56\u0f5f\u0f7c\u0f5d (\u0f42\u0f5e\u0f53)
languages.si=\u0f66\u0f72\u0f53\u0f0b\u0f67\u0f0b\u0f63\u0f72\u0f66\u0f72
languages.ga=\u0f68\u0f60\u0f72\u0f0b\u0f62\u0f72\u0f64
languages.mni=\u0f58\u0f0b\u0f53\u0f72\u0f0b\u0f54\u0f74\u0f0b\u0f62\u0f72
@@ -116,25 +124,25 @@ languages.pa=\u0f54\u0f71\u0f53\u0f0b\u0f47\u0f0b\u0f56\u0f72
languages.mnc=\u0f58\u0f71\u0f53\u0f0b\u0f45\u0f74
languages.sa=\u0f66\u0f7e\u0f66\u0f90\u0fb2\u0f80\u0f4f
languages.cs=\u0f45\u0f7a\u0f40
-languages.fr=\u0f55\u0f7a\u0f0b\u0f62\u0f7a\u0f53\u0f46\u0f7a
languages.it=\u0f68\u0f72\u0f0b\u0f4a\u0f0b\u0f63\u0f72\u0f0b\u0f62\u0f53
+languages.fr=\u0f55\u0f7a\u0f0b\u0f62\u0f7a\u0f53\u0f46\u0f7a
languages.him=\u0f67\u0f72\u0f0b\u0f58\u0f0b\u0f45\u0f0b\u0f63\u0f72
languages.ru=\u0f62\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f53
languages.or=\u0f68\u0f7c\u0f0b\u0f62\u0f72\u0f0b\u0f61
languages.lo=\u0f63\u0f60\u0f7c
languages.ur=\u0f68\u0f74\u0f62\u0f0b\u0f51\u0f74
languages.fa=\u0f54\u0f62\u0f0b\u0f64\u0f72\u0f0b\u0f61\u0f53
-languages.es=\u0f66\u0f72\u0f54\u0f7a\u0f0b\u0f53\u0f72\u0f64
languages.grc=\u0f42\u0f72\u0f62\u0f72\u0f40, \u0f66\u0f94\u0f0b\u0f51\u0f74\u0f66\u0f0b\u0f40\u0fb1\u0f72 (\u0f21\u0f24\u0f25\u0f23)
+languages.es=\u0f66\u0f72\u0f54\u0f7a\u0f0b\u0f53\u0f72\u0f64
languages.bo=\u0f56\u0f7c\u0f51\u0f0b\u0f41
languages.bn=\u0f56\u0f7a\u0f44\u0f92\u0f0b\u0f63\u0f72
languages.ks=\u0f40\u0f7a\u0f64\u0f0b\u0f58\u0f72\u0f0b\u0f62\u0f72
languages.en=\u0f68\u0f72\u0f44\u0f0b\u0f63\u0f72\u0f64
-languages.inc=\u0f68\u0f72\u0f53\u0f0b\u0f4c\u0f72\u0f40 (\u0f42\u0f5e\u0f53)
languages.el=\u0f42\u0f72\u0f62\u0f72\u0f40
+languages.inc=\u0f68\u0f72\u0f53\u0f0b\u0f4c\u0f72\u0f40 (\u0f42\u0f5e\u0f53)
languages.ko=\u0f40\u0f7c\u0f0b\u0f62\u0f72\u0f61\u0f53
-languages.bh=\u0f56\u0f72\u0f0b\u0f67\u0f0b\u0f63\u0f72
languages.kn=\u0f40\u0f0b\u0f53\u0f0b\u0f4c
+languages.bh=\u0f56\u0f72\u0f0b\u0f67\u0f0b\u0f63\u0f72
languages.no=\u0f53\u0f7c\u0f62\u0f0b\u0f5d\u0f72\u0f0b\u0f47\u0f72\u0f0b\u0f61\u0f53
languages.km=\u0f41\u0f7a\u0f0b\u0f58\u0f62
languages.hi=\u0f67\u0f72\u0f53\u0f0b\u0f51\u0f72
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ee.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ee.properties
new file mode 100644
index 0000000..2e987f5
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ee.properties
@@ -0,0 +1,25 @@
+# LocaleInformation_ee.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.GHC=Si\u0256i
+currenciesDisplayName.XOF=Sefa
+currenciesSymbol.GHC=\u20b5
+currenciesSymbol.XOF=CFA
+shortMonths=Dzv\u00aeDzd\u00aeTed\u00aeAf\u0254\u00aeDam\u00aeMas\u00aeSia\u00aeDea\u00aeAny\u00aeKel\u00aeAde\u00aeDzm\u00ae\u00ae
+months=Dzove\u00aeDzodze\u00aeTedoxe\u00aeAf\u0254fi\u025b\u00aeDama\u00aeMasa\u00aeSiaml\u0254m\u00aeDeasiamime\u00aeAny\u0254ny\u0254\u00aeKele\u00aeAde\u025bmekp\u0254xe\u00aeDzome\u00ae\u00ae
+shortWeekdays=\u00aeK\u0254s Kwe\u00aeDzo\u00aeBra\u00aeKu\u0256\u00aeYaw\u00aeFi\u0256\u00aeMem\u00ae
+weekdays=\u00aeK\u0254si\u0256a\u00aeDzo\u0256a\u00aeBra\u0256a\u00aeKu\u0256a\u00aeYawo\u0256a\u00aeFi\u0256a\u00aeMemle\u0256a\u00ae
+eras=HY\u00aeY\u014a\u00ae
+ampms=AN\u00aeEW\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_el.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_el.properties
index f8b841a..133adb4 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_el.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_el.properties
@@ -5,251 +5,812 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currenciesDisplayName.BGL=\u039c\u03b5\u03c4\u03b1\u03bb\u03bb\u03b9\u03ba\u1f78 \u039b\u1f72\u03b2 \u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
-currenciesDisplayName.XCD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u1f08\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u1fc6\u03c2 \u039a\u03b1\u03c1\u03b1\u03ca\u03b2\u03b9\u03ba\u1fc6\u03c2
-currenciesDisplayName.LKR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u03a3\u03c1\u1f76 \u039b\u03ac\u03bd\u03ba\u03b1\u03c2
-currenciesDisplayName.TPE=\u1f18\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a4\u03b9\u03bc\u03cc\u03c1
-currenciesDisplayName.BAD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0392\u03bf\u03c3\u03bd\u03af\u03b1\u03c2-\u1f19\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7\u03c2
-currenciesDisplayName.CSK=\u03a3\u03ba\u03bb\u03b7\u03c1\u1f74 \u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u03a4\u03c3\u03b5\u03c7\u03bf\u03c3\u03bb\u03bf\u03b2\u03b1\u03ba\u03af\u03b1\u03c2
-currenciesDisplayName.YUD=\u039c\u03b5\u03c4\u03b1\u03bb\u03bb\u03b9\u03ba\u1f78 \u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0393\u03b9\u03bf\u03c5\u03b3\u03ba\u03bf\u03c3\u03bb\u03b1\u03b2\u03af\u03b1\u03c2
-currenciesDisplayName.SVC=Colon \u1f1a\u03bb \u03a3\u03b1\u03bb\u03b2\u03b1\u03b4\u03cc\u03c1
-currenciesDisplayName.SCR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u03a3\u03b5\u03cb\u03c7\u03b5\u03bb\u1ff6\u03bd
-currenciesDisplayName.IEP=\u039b\u03af\u03c1\u03b1 \u1f38\u03c1\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
-currenciesDisplayName.AMD=Dram \u1f08\u03c1\u03bc\u03b5\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.GRD=\u0394\u03c1\u03b1\u03c7\u03bc\u1f74 \u1f19\u03bb\u03bb\u03ac\u03b4\u03b1\u03c2
-currenciesDisplayName.ERN=Nakfa \u1f18\u03c1\u03c5\u03b8\u03c1\u03b1\u03af\u03b1\u03c2
-currenciesDisplayName.CLP=\u03a0\u03ad\u03c3\u03bf \u03a7\u03b9\u03bb\u1fc6\u03c2
-currenciesDisplayName.SUR=\u03a3\u03bf\u03b2\u03b9\u03b5\u03c4\u03b9\u03ba\u1f78 \u03a1\u03bf\u03cd\u03b2\u03bb\u03b9
-currenciesDisplayName.XBD=\u0395\u1f50\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f74 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1 \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u1fe6 (XBD)
-currenciesDisplayName.XBC=\u0395\u1f50\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f74 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1 \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u1fe6 (XBC)
-currenciesDisplayName.XBB=\u0395\u1f50\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f74 \u039d\u03bf\u03bc\u03b9\u03c3\u03bc\u03b1\u03c4\u03b9\u03ba\u1f74 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
-currenciesDisplayName.XBA=\u0395\u1f50\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f74 \u03a3\u03cd\u03bd\u03b8\u03b5\u03c4\u03b7 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
-currenciesDisplayName.CLF=Unidades de Fomento \u03a7\u03b9\u03bb\u1fc6\u03c2
-currenciesDisplayName.ZAR=\u03a1\u1f70\u03bd\u03c4 \u039d\u03cc\u03c4\u03b9\u03b1\u03c2 \u1f08\u03c6\u03c1\u03b9\u03ba\u1fc6\u03c2
-currenciesDisplayName.IQD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u1f38\u03c1\u03ac\u03ba
-currenciesDisplayName.FKP=\u039b\u03af\u03c1\u03b1 \u039d\u03ae\u03c3\u03c9\u03bd \u03a6\u03ce\u03bb\u03ba\u03bb\u03b1\u03bd\u03c4
-currenciesDisplayName.HKD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a7\u1f78\u03bd\u03b3\u03ba \u039a\u03cc\u03bd\u03b3\u03ba
-currenciesDisplayName.ARS=\u03a0\u03ad\u03c3\u03bf \u1f08\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u1fc6\u03c2
-currenciesDisplayName.ALL=\u039b\u1f72\u03ba \u1f08\u03bb\u03b2\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.ZAL=\u03a1\u03b1\u03bd\u03c4 \u039d\u03cc\u03c4\u03b9\u03b1\u03c2 \u1f08\u03c6\u03c1\u03b9\u03ba\u1fc6\u03c2 (\u03bf\u1f30\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03cc)
-currenciesDisplayName.JPY=\u0393\u03b9\u1f72\u03bd \u1f38\u03b1\u03c0\u03c9\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.ARP=\u03a0\u03ad\u03c3\u03bf \u1f08\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u1fc6\u03c2 (1983-1985)
-currenciesDisplayName.EEK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u1f18\u03c3\u03c4\u03bf\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.IDR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u1f38\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03af\u03b1\u03c2
-currenciesDisplayName.GQE=Ekwele Guineana \u1f38\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u1fc6\u03c2 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1\u03c2
-currenciesDisplayName.UZS=Sum \u039f\u1f50\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
-currenciesDisplayName.GWE=\u0393\u03ba\u03b9\u03bd\u03ad\u03b1 \u1f18\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1\u03c2
-currenciesDisplayName.NIO=\u03a7\u03c1\u03c5\u03c3\u1f74 \u039a\u03cc\u03c1\u03b4\u03bf\u03b2\u03b1 \u039d\u03b9\u03ba\u03b1\u03c1\u03ac\u03b3\u03bf\u03c5\u03b1\u03c2
-currenciesDisplayName.SHP=\u039b\u03af\u03c1\u03b1 \u1f08\u03b3\u03af\u03b1\u03c2 \u1f19\u03bb\u03ad\u03bd\u03b7\u03c2
-currenciesDisplayName.ARA=Austral \u1f08\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u1fc6\u03c2
-currenciesDisplayName.SBD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03ae\u03c3\u03c9\u03bd \u03a3\u03bf\u03bb\u03bf\u03bc\u1ff6\u03bd\u03c4\u03bf\u03c2
-currenciesDisplayName.THB=\u039c\u03c0\u1f70\u03c4 \u03a4\u03b1\u03ca\u03bb\u03ac\u03bd\u03b4\u03b7\u03c2
-currenciesDisplayName.BEL=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0392\u03b5\u03bb\u03b3\u03af\u03bf\u03c5 (\u03bf\u1f30\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03cc)
-currenciesDisplayName.MOP=Pataca \u039c\u03b1\u03ba\u03ac\u03bf\u03c5
-currenciesDisplayName.UGX=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u039f\u1f50\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1\u03c2
-currenciesDisplayName.WST=Tala \u0394\u03c5\u03c4\u03b9\u03ba\u1fc6\u03c2 \u03a3\u03b1\u03bc\u03cc\u03b1\u03c2
-currenciesDisplayName.TTD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a4\u03c1\u03b9\u03bd\u03b9\u03b4\u1f70\u03b4 \u03ba\u03b1\u1f76 \u03a4\u03bf\u03bc\u03c0\u03ac\u03b3\u03ba\u03bf
-currenciesDisplayName.UGS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u039f\u1f50\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1\u03c2 (1966-1987)
-currenciesDisplayName.SZL=Lilangeni \u0396\u03bf\u03c5\u03b1\u03b6\u03b9\u03bb\u03ac\u03bd\u03b4\u03b7\u03c2
-currenciesDisplayName.UAK=Karbovanetz \u039f\u1f50\u03ba\u03c1\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.AED=\u039d\u03c4\u03b9\u03c1\u1f70\u03bc \u1f29\u03bd\u03c9\u03bc\u03ad\u03bd\u03c9\u03bd \u1f08\u03c1\u03b1\u03b2\u03b9\u03ba\u1ff6\u03bd \u1f18\u03bc\u03b9\u03c1\u03ac\u03c4\u03c9\u03bd
-currenciesDisplayName.UAH=Hryvnia \u039f\u1f50\u03ba\u03c1\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.USS=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0397\u03a0\u0391 (\u1f3c\u03b4\u03b9\u03b1 \u1f21\u03bc\u03ad\u03c1\u03b1)
-currenciesDisplayName.DDM=Ostmark \u1f08\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u1fc6\u03c2 \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.UYU=\u03a0\u03ad\u03c3\u03bf Uruguayo \u039f\u1f50\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2
-currenciesDisplayName.USN=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0397\u03a0\u0391 (\u1f19\u03c0\u03cc\u03bc\u03b5\u03bd\u03b7 \u1f21\u03bc\u03ad\u03c1\u03b1)
-currenciesDisplayName.TMM=\u039c\u03b1\u03bd\u1f70\u03c4 \u03a4\u03bf\u03c5\u03c1\u03ba\u03bc\u03b5\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd
-currenciesDisplayName.XFO=\u03a7\u03c1\u03c5\u03c3\u1f78 \u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0393\u03b1\u03bb\u03bb\u03af\u03b1\u03c2
-currenciesDisplayName.AWG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u1f08\u03c1\u03bf\u03cd\u03bc\u03c0\u03b1
-currenciesDisplayName.UYP=\u03a0\u03ad\u03c3\u03bf \u039f\u1f50\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2 (1975-1993)
-currenciesDisplayName.PTE=\u1f18\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1\u03c2
-currenciesDisplayName.JOD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u1f38\u03bf\u03c1\u03b4\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.ADP=\u03a0\u03b5\u03c3\u03ad\u03c4\u03b1 \u1f08\u03bd\u03b4\u03cc\u03c1\u03b1\u03c2
-currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) \u1f38\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03bf\u1fe6
-currenciesDisplayName.ECS=Sucre \u1f38\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03bf\u1fe6
-currenciesDisplayName.PGK=Kina \u03a0\u03b1\u03c0\u03bf\u03cd\u03b1 \u039d\u03ad\u03b1 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1\u03c2
-currenciesDisplayName.CVE=\u1f18\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf\u03c5 \u1f08\u03ba\u03c1\u03c9\u03c4\u03b7\u03c1\u03af\u03bf\u03c5
-currenciesDisplayName.YER=Rial \u1f59\u03b5\u03bc\u03ad\u03bd\u03b7\u03c2
-currenciesDisplayName.HUF=\u03a6\u03b9\u03bf\u03c1\u03af\u03bd\u03b9 \u039f\u1f51\u03b3\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
-currenciesDisplayName.PAB=\u039c\u03c0\u03b1\u03bb\u03bc\u03c0\u03cc\u03b1 \u03a0\u03b1\u03bd\u03b1\u03bc\u1fb6
-currenciesDisplayName.XEU=\u0395\u1f50\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f74 \u03a3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03bc\u03b1\u03c4\u03b9\u03ba\u1f74 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
-currenciesDisplayName.EUR=\u0395\u1f50\u03c1\u03ce
-currenciesDisplayName.MZE=\u1f18\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u039c\u03bf\u03b6\u03b1\u03bc\u03b2\u03af\u03ba\u03b7\u03c2
-currenciesDisplayName.INR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u1f38\u03bd\u03b4\u03af\u03b1\u03c2
-currenciesDisplayName.NAD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03b1\u03bc\u03af\u03bc\u03c0\u03b9\u03b1\u03c2
-currenciesDisplayName.PYG=\u0393\u03ba\u03bf\u03c5\u03b1\u03c1\u03b1\u03bd\u1f76 \u03a0\u03b1\u03c1\u03b1\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2
-currenciesDisplayName.ITL=\u039b\u03b9\u03c1\u03ad\u03c4\u03b1 \u1f38\u03c4\u03b1\u03bb\u03af\u03b1\u03c2
-currenciesDisplayName.AOR=Kwanza Reajustado \u1f08\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1995-1999)
-currenciesDisplayName.GTQ=Quetzal \u0393\u03bf\u03c5\u03b1\u03c4\u03b5\u03bc\u03ac\u03bb\u03b1\u03c2
-currenciesDisplayName.AON=\u039d\u03ad\u03b1 Kwanza \u1f08\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1990-2000)
-currenciesDisplayName.HTG=Gourde \u1f09\u03ca\u03c4\u1fc6\u03c2
-currenciesDisplayName.AOK=Kwanza \u1f08\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1977-1990)
-currenciesDisplayName.VEB=\u039c\u03c0\u03bf\u03bb\u03b9\u03b2\u1f70\u03bb \u0392\u03b5\u03bd\u03b5\u03b6\u03bf\u03c5\u03ad\u03bb\u03b1\u03c2
-currenciesDisplayName.XDR=\u0395\u1f30\u03b4\u03b9\u03ba\u1f70 \u0394\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03b1 \u1f08\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7\u03c2
-currenciesDisplayName.AOA=Kwanza \u1f08\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2
-currenciesDisplayName.AUD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0391\u1f50\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1\u03c2
-currenciesDisplayName.YDD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u1f59\u03b5\u03bc\u03ad\u03bd\u03b7\u03c2
-currenciesDisplayName.CHF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u1f19\u03bb\u03b2\u03b5\u03c4\u03af\u03b1\u03c2
-currenciesDisplayName.NLG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u1f49\u03bb\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
-currenciesDisplayName.ISK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u1f38\u03c3\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
-currenciesDisplayName.MXV=Unidad de Inversion (UDI) \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u1fe6
-currenciesDisplayName.ETB=Birr \u0391\u1f30\u03b8\u03b9\u03bf\u03c0\u03af\u03b1\u03c2
-currenciesDisplayName.MXP=\u1f08\u03c3\u03b7\u03bc\u03ad\u03bd\u03b9\u03bf \u03a0\u03ad\u03c3\u03bf \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u1fe6 (1861-1992)
-currenciesDisplayName.ATS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u0391\u1f50\u03c3\u03c4\u03c1\u03af\u03b1\u03c2
-currenciesDisplayName.MXN=\u03a0\u03ad\u03c3\u03bf \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u1fe6
-currenciesDisplayName.EGP=\u039b\u03af\u03c1\u03b1 \u0391\u1f30\u03b3\u03cd\u03c0\u03c4\u03bf\u03c5
-currenciesDisplayName.DZD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u1f08\u03bb\u03b3\u03b5\u03c1\u03af\u03b1\u03c2
-currenciesDisplayName.GMD=Dalasi \u0393\u03ba\u03ac\u03bc\u03c0\u03b9\u03b1\u03c2
-currenciesDisplayName.ANG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u1f49\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u1ff6\u03bd \u1f08\u03bd\u03c4\u03b9\u03bb\u03bb\u1ff6\u03bd
-currenciesDisplayName.ILS=\u039d\u03ad\u03bf Sheqel \u1f38\u03c3\u03c1\u03b1\u03ae\u03bb
-currenciesDisplayName.ESP=\u03a0\u03b5\u03c3\u03ad\u03c4\u03b1 \u1f39\u03c3\u03c0\u03b1\u03bd\u03af\u03b1\u03c2
-currenciesDisplayName.AZM=\u039c\u03b1\u03bd\u1f70\u03c4 \u1f08\u03b6\u03b5\u03c1\u03bc\u03c0\u03b1\u03ca\u03c4\u03b6\u03ac\u03bd
-currenciesDisplayName.ILP=\u039b\u03af\u03c1\u03b1 \u1f38\u03c3\u03c1\u03b1\u03ae\u03bb
-currenciesDisplayName.IRR=Rial \u1f38\u03c1\u03ac\u03ba
-currenciesDisplayName.BAM=\u039c\u03ac\u03c1\u03ba\u03bf \u0392\u03bf\u03c3\u03bd\u03af\u03b1\u03c2-\u1f19\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7\u03c2
-currenciesDisplayName.CAD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039a\u03b1\u03bd\u03b1\u03b4\u1fb6
-currenciesDisplayName.BGN=\u039d\u03ad\u03bf \u039b\u1f72\u03b2 \u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
-currenciesSymbol.CYP= \u00a3
-currenciesSymbol.CRC= C
-currenciesSymbol.KZT= T
-currenciesSymbol.ZAR= R
-currenciesSymbol.SZL= E
-currenciesSymbol.CNY= Y
-currenciesSymbol.GTQ= Q
-currenciesSymbol.EUR= \u20ac
-currenciesSymbol.GBP= \u00a3
-shortMonths=\u1f38\u03b1\u03bd®®®\u1f08\u03c0\u03c1®®\u1f38\u03bf\u03c5\u03bd®\u1f38\u03bf\u03c5\u03bb®\u0391\u1f50\u03b3®®\u1f48\u03ba\u03c4®®®®
-months=\u1f38\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2®®®\u1f08\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2®®\u1f38\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2®\u1f38\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2®\u0391\u1f54\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2®®\u1f48\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2®®®®
-territories.AU=\u0391\u1f50\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1
-territories.TD=\u03a4\u03c3\u03ac\u03bd\u03c4
-territories.AT=\u0391\u1f50\u03c3\u03c4\u03c1\u03af\u03b1
-territories.TC=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a4\u1f72\u03c1\u03ba\u03c2 \u03ba\u03b1\u1f76 \u039a\u03ac\u03b9\u03ba\u03bf\u03c2
-territories.AS=\u1f08\u03bc\u03b5\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u1f74 \u03a3\u03b1\u03bc\u03cc\u03b1
-territories.AR=\u1f08\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae
-territories.AQ=\u1f08\u03bd\u03c4\u03b1\u03c1\u03ba\u03c4\u03b9\u03ba\u03ae
-territories.AO=\u1f08\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1
-territories.AN=\u1f49\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u1f72\u03c2 \u1f08\u03bd\u03c4\u03af\u03bb\u03bb\u03b5\u03c2
-territories.GS=\u039d\u03cc\u03c4\u03b9\u03b1 \u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1 \u03ba\u03b1\u1f76 \u039d\u03ae\u03c3\u03bf\u03b9 \u039d\u03cc\u03c4\u03b9\u03b5\u03c2 \u03a3\u03ac\u03bd\u03c4\u03bf\u03c5\u03b9\u03c4\u03c2
-territories.AM=\u1f08\u03c1\u03bc\u03b5\u03bd\u03af\u03b1
-territories.GR=\u1f19\u03bb\u03bb\u03ac\u03b4\u03b1
-territories.ZA=\u039d\u03cc\u03c4\u03b9\u03b1 \u1f08\u03c6\u03c1\u03b9\u03ba\u03ae
-territories.AL=\u1f08\u03bb\u03b2\u03b1\u03bd\u03af\u03b1
-territories.GQ=\u1f38\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u1f74 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1
-territories.SY=\u03a3\u03c5\u03c1\u03af\u03b1, \u1f08\u03c1\u03b1\u03b2\u03b9\u03ba\u1f74 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1 \u03c4\u1fc6\u03c2
-territories.AI=\u1f08\u03bd\u03b3\u03ba\u03bf\u03c5\u03af\u03bb\u03b1
-territories.SV=\u1f1a\u03bb \u03a3\u03b1\u03bb\u03b2\u03b1\u03b4\u03cc\u03c1
-territories.AG=\u1f08\u03bd\u03c4\u03af\u03b3\u03ba\u03bf\u03c5\u03b1 \u03ba\u03b1\u1f76 \u039c\u03c0\u03b1\u03c1\u03bc\u03c0\u03bf\u03cd\u03bd\u03c4\u03b1
-territories.AF=\u1f08\u03c6\u03b3\u03b1\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd
-territories.MP=\u039d\u1fc6\u03c3\u03bf\u03b9 \u0392\u03cc\u03c1\u03b5\u03b9\u03b5\u03c2 \u039c\u03b1\u03c1\u03b9\u03ac\u03bd\u03b5\u03c2
-territories.ST=\u03a3\u03ac\u03bf \u03a4\u03bf\u03bc\u1f72 \u03ba\u03b1\u1f76 \u03a0\u03c1\u03af\u03bd\u03c3\u03b9\u03c0\u03b5
-territories.AE=\u1f28\u03bd\u03c9\u03bc\u03ad\u03bd\u03b1 \u1f08\u03c1\u03b1\u03b2\u03b9\u03ba\u1f70 \u1f18\u03bc\u03b9\u03c1\u03ac\u03c4\u03b1
-territories.MO=\u039c\u03b1\u03ba\u03ac\u03bf, \u0395\u1f30\u03b4\u03b9\u03ba\u1f74 \u0394\u03b9\u03bf\u03b9\u03ba\u03b7\u03c4\u03b9\u03ba\u1f74 \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03c4\u1fc6\u03c2 \u039a\u03af\u03bd\u03b1\u03c2
-territories.AD=\u1f08\u03bd\u03b4\u03cc\u03c1\u03b1
-territories.ML=\u039c\u03b1\u03bb\u03af
-territories.GF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u1f74 \u0393\u03bf\u03c5\u03b9\u03ac\u03bd\u03b1
-territories.SM=\u1f0d\u03b3\u03b9\u03bf\u03c2 \u039c\u03b1\u03c1\u03af\u03bd\u03bf\u03c2
-territories.MH=\u039d\u1fc6\u03c3\u03bf\u03b9 \u039c\u03ac\u03c1\u03c3\u03b1\u03bb
-territories.GB=\u1f29\u03bd\u03c9\u03bc\u03ad\u03bd\u03bf \u0392\u03b1\u03c3\u03af\u03bb\u03b5\u03b9\u03bf
-territories.SJ=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a3\u03b2\u03ac\u03bb\u03bc\u03c0\u03b1\u03c1 \u03ba\u03b1\u1f76 \u0393\u03b9\u1f70\u03bd \u039c\u03b1\u03b3\u03b9\u03ad\u03bd
-territories.MD=\u039c\u03bf\u03bb\u03b4\u03b1\u03b2\u03af\u03b1, \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1 \u03c4\u1fc6\u03c2
-territories.SH=\u1f09\u03b3\u03af\u03b1 \u1f19\u03bb\u03ad\u03bd\u03b7
-territories.SB=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a3\u03bf\u03bb\u03bf\u03bc\u1ff6\u03bd\u03c4\u03bf\u03c2
-territories.SA=\u03a3\u03b1\u03bf\u03c5\u03b4\u03b9\u03ba\u1f74 \u1f08\u03c1\u03b1\u03b2\u03af\u03b1
-territories.YE=\u1f59\u03b5\u03bc\u03ad\u03bd\u03b7
-territories.LU=\u039b\u03bf\u03c5\u03be\u03b5\u03bc\u03b2\u03bf\u1fe6\u03c1\u03b3\u03bf
-territories.FO=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a6\u03b5\u03c1\u03cc\u03b5\u03c2
-territories.FM=\u039c\u03b9\u03ba\u03c1\u03bf\u03bd\u03b7\u03c3\u03af\u03b1, \u1f49\u03bc\u03cc\u03c3\u03c0\u03bf\u03bd\u03b4\u03b5\u03c2 \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u1fd6\u03b5\u03c2 \u03c4\u1fc6\u03c2
-territories.LK=\u03a3\u03c1\u1f76 \u039b\u03ac\u03bd\u03ba\u03b1
-territories.LC=\u1f09\u03b3\u03af\u03b1 \u039b\u03bf\u03c5\u03ba\u03af\u03b1
-territories.LA=\u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u1f74 \u1f08\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
-territories.ET=\u0391\u1f30\u03b8\u03b9\u03bf\u03c0\u03af\u03b1
-territories.KY=\u039d\u1fc6\u03c3\u03bf\u03b9 \u039a\u03ad\u03b9\u03bc\u03b1\u03bd
-territories.ES=\u1f39\u03c3\u03c0\u03b1\u03bd\u03af\u03b1
-territories.ER=\u1f18\u03c1\u03c5\u03b8\u03c1\u03b1\u03af\u03b1
-territories.KN=\u03a3\u03b1\u1f76\u03bd\u03c4 \u039a\u1f76\u03c4\u03c2 \u03ba\u03b1\u1f76 \u039d\u03ad\u03b2\u03b9\u03c2
-territories.EH=\u0394\u03c5\u03c4\u03b9\u03ba\u1f74 \u03a3\u03b1\u03c7\u03ac\u03c1\u03b1
-territories.EG=\u0391\u1f34\u03b3\u03c5\u03c0\u03c4\u03bf\u03c2
-territories.EE=\u1f18\u03c3\u03b8\u03bf\u03bd\u03af\u03b1
-territories.EC=\u1f38\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03cc\u03c2
-territories.DZ=\u1f08\u03bb\u03b3\u03b5\u03c1\u03af\u03b1
-territories.WF=\u039d\u1fc6\u03c3\u03bf\u03b9 \u039f\u1f50\u03ac\u03bb\u03bb\u03b9\u03c2 \u03ba\u03b1\u1f76 \u03a6\u03bf\u03c5\u03c4\u03bf\u03c5\u03bd\u03ac
-territories.DO=\u0394\u03bf\u03bc\u03b9\u03bd\u03b9\u03ba\u03b1\u03bd\u1f74 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1
-territories.JP=\u1f38\u03b1\u03c0\u03c9\u03bd\u03af\u03b1
-territories.JO=\u1f38\u03bf\u03c1\u03b4\u03b1\u03bd\u03af\u03b1
-territories.PS=\u03a0\u03b1\u03bb\u03b1\u03b9\u03c3\u03c4\u03b9\u03bd\u03b9\u03b1\u03ba\u1f70 \u1f18\u03b4\u03ac\u03c6\u03b7
-territories.PM=\u03a3\u03b1\u1f76\u03bd\u03c4 \u03a0\u03b9\u1f72\u03c1 \u03ba\u03b1\u1f76 \u039c\u03b9\u03ba\u03b5\u03bb\u03cc\u03bd
-territories.PF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u1f74 \u03a0\u03bf\u03bb\u03c5\u03bd\u03b7\u03c3\u03af\u03b1
-territories.VI=\u1f08\u03bc\u03b5\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u1f72\u03c2 \u03a0\u03b1\u03c1\u03b8\u03ad\u03bd\u03bf\u03b9 \u039d\u1fc6\u03c3\u03bf\u03b9
-territories.CX=\u039d\u1fc6\u03c3\u03bf\u03c2 \u03a7\u03c1\u03b9\u03c3\u03c4\u03bf\u03c5\u03b3\u03ad\u03bd\u03bd\u03c9\u03bd
-territories.VG=\u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03b9\u03ba\u1f72\u03c2 \u03a0\u03b1\u03c1\u03b8\u03ad\u03bd\u03bf\u03b9 \u039d\u1fc6\u03c3\u03bf\u03b9
-territories.CV=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf\u03c5 \u1f08\u03ba\u03c1\u03c9\u03c4\u03b7\u03c1\u03af\u03bf\u03c5
-territories.VC=\u1f0d\u03b3\u03b9\u03bf\u03c2 \u0392\u03b9\u03ba\u03ad\u03bd\u03c4\u03b9\u03bf\u03c2 \u03ba\u03b1\u1f76 \u0393\u03c1\u03b5\u03bd\u03b1\u03b4\u03af\u03bd\u03b5\u03c2
-territories.VA=\u1f09\u03b3\u03af\u03b1 \u1f1d\u03b4\u03c1\u03b1 (\u0392\u03b1\u03c4\u03b9\u03ba\u03b1\u03bd\u03cc)
-territories.IT=\u1f38\u03c4\u03b1\u03bb\u03af\u03b1
-territories.IS=\u1f38\u03c3\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
-territories.IR=\u1f38\u03c1\u03ac\u03bd, \u1f38\u03c3\u03bb\u03b1\u03bc\u03b9\u03ba\u1f74 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1 \u03c4\u03bf\u1fe6
-territories.IQ=\u1f38\u03c1\u03ac\u03ba
-territories.UZ=\u039f\u1f50\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
-territories.CK=\u039d\u1fc6\u03c3\u03bf\u03b9 \u039a\u03bf\u03cd\u03ba
-territories.UY=\u039f\u1f50\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7
-territories.IO=\u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03b9\u03ba\u1f70 \u1f18\u03b4\u03ac\u03c6\u03b7 \u1f38\u03bd\u03b4\u03b9\u03ba\u03bf\u1fe6 \u1f68\u03ba\u03b5\u03b1\u03bd\u03bf\u1fe6
-territories.CI=\u1f08\u03ba\u03c4\u1f74 \u1f18\u03bb\u03b5\u03c6\u03b1\u03bd\u03c4\u03cc\u03b4\u03bf\u03bd\u03c4\u03bf\u03c2
-territories.IN=\u1f38\u03bd\u03b4\u03af\u03b1
-territories.CH=\u1f19\u03bb\u03b2\u03b5\u03c4\u03af\u03b1
-territories.IL=\u1f38\u03c3\u03c1\u03b1\u03ae\u03bb
-territories.CF=\u039a\u03b5\u03bd\u03c4\u03c1\u03bf\u03b1\u03c6\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u1f74 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1
-territories.US=\u1f29\u03bd\u03c9\u03bc\u03ad\u03bd\u03b5\u03c2 \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u1fd6\u03b5\u03c2
-territories.CD=\u039a\u03bf\u03bd\u03b3\u03ba\u03cc, \u039b\u03b1\u03ca\u03ba\u1f74 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1 \u03c4\u03bf\u1fe6
-territories.OM=\u1f48\u03bc\u03ac\u03bd
-territories.CC=\u039d\u1fc6\u03c3\u03bf\u03b9 \u039a\u03cc\u03ba\u03bf\u03c2 (\u039a\u03ae\u03bb\u03b9\u03bd\u03b3\u03ba)
-territories.IE=\u1f38\u03c1\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
-territories.ID=\u1f38\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03af\u03b1
-territories.UM=\u1f08\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03b5\u03c2 \u039d\u03b7\u03c3\u03af\u03b4\u03b5\u03c2 \u03c4\u1ff6\u03bd \u1f29\u03bd\u03c9\u03bc\u03ad\u03bd\u03c9\u03bd \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03b9\u1ff6\u03bd
-territories.UG=\u039f\u1f50\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1
-territories.BV=\u039d\u1fc6\u03c3\u03bf\u03c2 \u039c\u03c0\u03bf\u03c5\u03b2\u03ad
-territories.UA=\u039f\u1f50\u03ba\u03c1\u03b1\u03bd\u03af\u03b1
-territories.HU=\u039f\u1f51\u03b3\u03b3\u03b1\u03c1\u03af\u03b1
-territories.HT=\u1f09\u03ca\u03c4\u03ae
-territories.BM=\u0392\u03b5\u03c1\u03bc\u03bf\u1fe6\u03b4\u03b5\u03c2
-territories.HN=\u1f49\u03bd\u03b4\u03bf\u03cd\u03c1\u03b1
-territories.HM=\u039d\u1fc6\u03c3\u03bf\u03b9 \u03a7\u1f72\u03c1\u03bd\u03c4 \u03ba\u03b1\u1f76 \u039c\u03b1\u03ba\u03bd\u03c4\u03cc\u03bd\u03b1\u03bb\u03bd\u03c4
-territories.HK=\u03a7\u1f78\u03bd\u03b3\u03ba \u039a\u03cc\u03bd\u03b3\u03ba, \u0395\u1f30\u03b4\u03b9\u03ba\u1f74 \u0394\u03b9\u03bf\u03b9\u03ba\u03b7\u03c4\u03b9\u03ba\u1f74 \u03a0\u03b5\u03c1\u03b9\u03c6\u03ad\u03c1\u03b5\u03b9\u03b1 \u03c4\u1fc6\u03c2 \u039a\u03af\u03bd\u03b1\u03c2
-territories.TT=\u03a4\u03c1\u03b9\u03bd\u03b9\u03b4\u1f70\u03b4 \u03ba\u03b1\u1f76 \u03a4\u03bf\u03bc\u03c0\u03ac\u03b3\u03ba\u03bf
-territories.NL=\u1f49\u03bb\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
-territories.BA=\u0392\u03bf\u03c3\u03bd\u03af\u03b1 - \u1f18\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7
-territories.TL=\u1f08\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u1f78 \u03a4\u03b9\u03bc\u03cc\u03c1
-territories.NF=\u039d\u1fc6\u03c3\u03bf\u03c2 \u039d\u03cc\u03c1\u03c6\u03bf\u03bb\u03ba
-territories.AZ=\u1f08\u03b6\u03b5\u03c1\u03bc\u03c0\u03b1\u03ca\u03c4\u03b6\u03ac\u03bd
-territories.AW=\u1f08\u03c1\u03bf\u03cd\u03bc\u03c0\u03b1
-territories.TF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u1f70 \u039d\u03cc\u03c4\u03b9\u03b1 \u1f18\u03b4\u03ac\u03c6\u03b7
-languages.ja=\u1f38\u03b1\u03c0\u03c9\u03bd\u03b9\u03ba\u03ac
-languages.en=\u1f08\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac
-languages.el=\u1f19\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac
-languages.phi=\u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03b9\u03bd\u03ad\u03b6\u03b9\u03ba\u03b1 (\u1f04\u03bb\u03bb\u03b1)
-languages.cy=\u039f\u1f50\u03b1\u03bb\u03b9\u03ba\u03ac
-languages.nl=\u1f49\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
-languages.he=\u1f19\u03b2\u03c1\u03b1\u03ca\u03ba\u03ac
-languages.it=\u1f38\u03c4\u03b1\u03bb\u03b9\u03ba\u03ac
-languages.is=\u1f38\u03c3\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
-languages.sla=\u03a3\u03bb\u03b1\u03b2\u03b9\u03ba\u1f70 (\u1f04\u03bb\u03bb\u03b1)
-languages.egy=\u0391\u1f30\u03b3\u03c5\u03c0\u03c4\u03b9\u03b1\u03ba\u1f70 (\u1f00\u03c1\u03c7\u03b1\u1fd6\u03b1)
-languages.arc=\u1f08\u03c1\u03b1\u03bc\u03b1\u03ca\u03ba\u03ac
-languages.ine=\u1f38\u03bd\u03b4\u03bf\u03b5\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u1f70 (\u1f04\u03bb\u03bb\u03b1)
-languages.uk=\u039f\u1f50\u03ba\u03c1\u03b1\u03bd\u03b9\u03ba\u03ac
-languages.ar=\u1f08\u03c1\u03b1\u03b2\u03b9\u03ba\u03ac
-languages.id=\u1f38\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03b9\u03b1\u03ba\u03ac
-languages.nai=\u1f38\u03bd\u03b4\u03b9\u03b1\u03bd\u03b9\u03ba\u1f70 \u03b2\u03cc\u03c1\u03b5\u03b9\u03b1\u03c2 \u1f08\u03bc\u03b5\u03c1\u03b9\u03ba\u1fc6\u03c2 (\u1f04\u03bb\u03bb\u03b1)
-languages.sem=\u03a3\u03b7\u03bc\u03b9\u03c4\u03b9\u03ba\u1f70 (\u1f04\u03bb\u03bb\u03b1)
-languages.grc=\u1f19\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac, \u1f00\u03c1\u03c7\u03b1\u1fd6\u03b1 \u03baa\u1f76 \u03bc\u03b5\u03c3\u03b1\u03b9\u03c9\u03bd\u03b9\u03ba\u1f70 (\u1f15\u03c9\u03c2 \u03c4\u1f78 1453)
-languages.sq=\u1f08\u03bb\u03b2\u03b1\u03bd\u03b9\u03ba\u03ac
-languages.ota=\u03a4\u03bf\u03c5\u03c1\u03ba\u03b9\u03ba\u03ac, \u1f40\u03b8\u03c9\u03bc\u03b1\u03bd\u03b9\u03ba\u1f70 (1500-1928)
-languages.mul=\u03a0\u03bf\u03bb\u03bb\u03b1\u03c0\u03bb\u03ad\u03c2 \u03b3\u03bb\u1ff6\u03c3\u03c3\u03b5\u03c2
-languages.ira=\u1f38\u03c1\u03b1\u03bd\u03b9\u03ba\u03ac
-languages.hy=\u1f08\u03c1\u03bc\u03b5\u03bd\u03b9\u03ba\u03ac
-languages.et=\u1f18\u03c3\u03b8\u03bf\u03bd\u03b9\u03ba\u03ac
-languages.hu=\u039f\u1f51\u03b3\u03b3\u03c1\u03b9\u03ba\u03ac
-languages.es=\u1f39\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ac
-languages.gd=\u03a3\u03ba\u03c9\u03c4\u03b9\u03ba\u1f70 \u03ba\u03b5\u03bb\u03c4\u03b9\u03ba\u03ac
-languages.yi=\u1f38\u03bf\u03c5\u03b4\u03b1\u03ca\u03ba\u03ac
-languages.peo=\u1f08\u03c1\u03c7\u03b1\u1fd6\u03b1 \u03c0\u03b5\u03c1\u03c3\u03b9\u03ba\u1f70 (600-400 \u03c0.\u03a7.)
-languages.ga=\u1f38\u03c1\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+decimalSeparator=,
+groupingSeparator=.
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u03a5\u03b5\u03bc\u03ad\u03bd\u03b7\u03c2
+currenciesDisplayName.KES=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u039a\u03ad\u03bd\u03c5\u03b1\u03c2
+currenciesDisplayName.TWD=\u039d\u03ad\u03bf \u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a4\u03b1\u03ca\u03b2\u03ac\u03bd
+currenciesDisplayName.LKR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u03a3\u03c1\u03b9 \u039b\u03ac\u03bd\u03ba\u03b1
+currenciesDisplayName.BYB=\u039d\u03ad\u03bf \u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u039b\u03b5\u03c5\u03ba\u03bf\u03c1\u03c9\u03c3\u03af\u03b1\u03c2 (1994-1999)
+currenciesDisplayName.TJS=\u03a3\u03bf\u03bc\u03cc\u03bd \u03a4\u03b1\u03c4\u03b6\u03b9\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.RWF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u03a1\u03bf\u03c5\u03ac\u03bd\u03c4\u03b1\u03c2
+currenciesDisplayName.ERN=\u039d\u03ac\u03ba\u03c6\u03b1 \u0395\u03c1\u03c5\u03b8\u03c1\u03b1\u03af\u03b1\u03c2
+currenciesDisplayName.TJR=\u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u03a4\u03b1\u03c4\u03b6\u03b9\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.SDP=\u039b\u03af\u03c1\u03b1 \u03a3\u03bf\u03c5\u03b4\u03ac\u03bd
+currenciesDisplayName.GRD=\u0394\u03c1\u03b1\u03c7\u03bc\u03ae \u0395\u03bb\u03bb\u03ac\u03b4\u03b1\u03c2
+currenciesDisplayName.IEP=\u039b\u03af\u03c1\u03b1 \u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.ARS=\u03a0\u03ad\u03c3\u03bf \u0391\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae\u03c2
+currenciesDisplayName.ARP=\u03a0\u03ad\u03c3\u03bf \u0391\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae\u03c2 (1983-1985)
+currenciesDisplayName.SDD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u03a3\u03bf\u03c5\u03b4\u03ac\u03bd
+currenciesDisplayName.GEL=\u039b\u03ac\u03c1\u03b9 \u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1\u03c2
+currenciesDisplayName.GEK=\u039a\u03bf\u03cd\u03c0\u03bf\u03bd \u039b\u03ac\u03c1\u03b9 \u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1\u03c2
+currenciesDisplayName.CRC=\u039a\u03bf\u03bb\u03cc\u03bd \u039a\u03cc\u03c3\u03c4\u03b1 \u03a1\u03af\u03ba\u03b1
+currenciesDisplayName.FKP=\u039b\u03af\u03c1\u03b1 \u039d\u03b7\u03c3\u03b9\u03ce\u03bd \u03a6\u03ce\u03bb\u03ba\u03bb\u03b1\u03bd\u03c4
+currenciesDisplayName.EEK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u0395\u03c3\u03b8\u03bf\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.MDL=\u039b\u03ad\u03b9 \u039c\u03bf\u03bb\u03b4\u03b1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.HKD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a7\u03bf\u03bd\u03b3\u03ba \u039a\u03bf\u03bd\u03b3\u03ba
+currenciesDisplayName.IQD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0399\u03c1\u03ac\u03ba
+currenciesDisplayName.ARA=Austral \u0391\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae\u03c2
+currenciesDisplayName.SCR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u03a3\u03b5\u03cb\u03c7\u03ad\u03bb\u03b5\u03c2
+currenciesDisplayName.KPW=Won \u0392\u03cc\u03c1\u03b5\u03b9\u03b1\u03c2 \u039a\u03bf\u03c1\u03ad\u03b1\u03c2
+currenciesDisplayName.DKK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u0394\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.IDR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u0399\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03af\u03b1\u03c2
+currenciesDisplayName.GQE=Ekwele Guineana \u0399\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03ae\u03c2 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1\u03c2
+currenciesDisplayName.SOS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u03a3\u03bf\u03bc\u03b1\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.LVR=\u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u039b\u03b5\u03c4\u03bf\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.AED=\u039d\u03c4\u03b9\u03c1\u03ac\u03bc \u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03c9\u03bd \u0391\u03c1\u03b1\u03b2\u03b9\u03ba\u03ce\u03bd \u0395\u03bc\u03b9\u03c1\u03ac\u03c4\u03c9\u03bd
+currenciesDisplayName.LVL=Lats \u039b\u03b5\u03c4\u03bf\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.BWP=\u03a0\u03bf\u03cd\u03bb\u03b1 \u039c\u03c0\u03bf\u03c4\u03c3\u03bf\u03c5\u03ac\u03bd\u03b1\u03c2
+currenciesDisplayName.RUR=\u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u03a1\u03c9\u03c3\u03af\u03b1\u03c2 (1991-1998)
+currenciesDisplayName.NIO=\u03a7\u03c1\u03c5\u03c3\u03ae \u039a\u03cc\u03c1\u03b4\u03bf\u03b2\u03b1 \u039d\u03b9\u03ba\u03b1\u03c1\u03ac\u03b3\u03bf\u03c5\u03b1\u03c2
+currenciesDisplayName.MOP=\u03a0\u03b1\u03c4\u03ac\u03ba\u03b1 \u039c\u03b1\u03ba\u03ac\u03bf
+currenciesDisplayName.FJD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a6\u03af\u03c4\u03b6\u03b9
+currenciesDisplayName.ADP=\u03a0\u03b5\u03c3\u03ad\u03c4\u03b1 \u0391\u03bd\u03b4\u03cc\u03c1\u03b1\u03c2
+currenciesDisplayName.RUB=\u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u03a1\u03c9\u03c3\u03af\u03b1\u03c2
+currenciesDisplayName.CDF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039a\u03bf\u03bd\u03b3\u03ba\u03cc
+currenciesDisplayName.NIC=\u039a\u03cc\u03c1\u03b4\u03bf\u03b2\u03b1 \u039d\u03b9\u03ba\u03b1\u03c1\u03ac\u03b3\u03bf\u03c5\u03b1\u03c2
+currenciesDisplayName.DJF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u03a4\u03b6\u03b9\u03bc\u03c0\u03bf\u03c5\u03c4\u03af
+currenciesDisplayName.UZS=Sum \u039f\u03c5\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.SBD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03ae\u03c3\u03c9\u03bd \u03a3\u03bf\u03bb\u03bf\u03bc\u03ce\u03bd\u03c4\u03bf\u03c2
+currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) \u0399\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03bf\u03cd
+currenciesDisplayName.ECS=\u03a3\u03bf\u03cd\u03ba\u03c1\u03b5 \u0395\u03ba\u03bf\u03c5\u03b1\u03b4\u03cc\u03c1
+currenciesDisplayName.THB=\u039c\u03c0\u03b1\u03c4 \u03a4\u03b1\u03ca\u03bb\u03ac\u03bd\u03b4\u03b7\u03c2
+currenciesDisplayName.PHP=\u03a0\u03ad\u03c3\u03bf \u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03af\u03bd\u03c9\u03bd
+currenciesDisplayName.LUF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039b\u03bf\u03c5\u03be\u03b5\u03bc\u03b2\u03bf\u03cd\u03c1\u03b3\u03bf\u03c5
+currenciesDisplayName.FIM=\u039c\u03ac\u03c1\u03ba\u03bf \u03a6\u03b9\u03bd\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.TTD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a4\u03c1\u03b9\u03bd\u03b9\u03b4\u03ac\u03b4 \u03ba\u03b1\u03b9 \u03a4\u03bf\u03bc\u03c0\u03ac\u03b3\u03ba\u03bf
+currenciesDisplayName.SZL=\u039b\u03b9\u03bb\u03b1\u03bd\u03b3\u03ba\u03ad\u03bd\u03b9 \u03a3\u03bf\u03c5\u03b1\u03b6\u03b9\u03bb\u03ac\u03bd\u03b4\u03b7
+currenciesDisplayName.MNT=\u03a4\u03bf\u03c5\u03b3\u03ba\u03c1\u03af\u03ba \u039c\u03bf\u03b3\u03b3\u03bf\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.UAK=Karbovanetz \u039f\u03c5\u03ba\u03c1\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.SAR=\u03a1\u03b9\u03ac\u03bb \u03a3\u03b1\u03bf\u03c5\u03b4\u03b9\u03ba\u03ae\u03c2 \u0391\u03c1\u03b1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.UAH=\u03a7\u03c1\u03af\u03c6\u03bd\u03b1 \u039f\u03c5\u03ba\u03c1\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.HUF=\u03a6\u03b9\u03bf\u03c1\u03af\u03bd\u03b9 \u039f\u03c5\u03b3\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.QAR=Rial \u039a\u03b1\u03c4\u03ac\u03c1
+currenciesDisplayName.COP=\u03a0\u03ad\u03c3\u03bf \u039a\u03bf\u03bb\u03bf\u03bc\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.LTT=Talonas \u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.PTE=\u0395\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.UYU=\u03a0\u03ad\u03c3\u03bf Uruguayo \u039f\u03c5\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2
+currenciesDisplayName.AOR=Kwanza Reajustado \u0391\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1995-1999)
+currenciesDisplayName.GBP=\u039b\u03af\u03c1\u03b1 \u03a3\u03c4\u03b5\u03c1\u03bb\u03af\u03bd\u03b1 \u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.ZRZ=Zaire \u0396\u03b1\u0390\u03c1
+currenciesDisplayName.INR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u0399\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.BIF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039c\u03c0\u03bf\u03c5\u03c1\u03bf\u03cd\u03bd\u03c4\u03b9
+currenciesDisplayName.XFU=UIC-\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0393\u03b1\u03bb\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.LTL=\u039b\u03af\u03c4\u03b1 \u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.AON=\u039d\u03ad\u03b1 Kwanza \u0391\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1990-2000)
+currenciesDisplayName.UYP=\u03a0\u03ad\u03c3\u03bf \u039f\u03c5\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2 (1975-1993)
+currenciesDisplayName.MZM=\u039c\u03b5\u03c4\u03b9\u03ba\u03ac\u03bb \u039c\u03bf\u03b6\u03b1\u03bc\u03b2\u03af\u03ba\u03b7\u03c2
+currenciesDisplayName.KZT=\u03a4\u03ad\u03bd\u03b3\u03ba\u03b5 \u039a\u03b1\u03b6\u03b1\u03ba\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.AOK=Kwanza \u0391\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2 (1977-1990)
+currenciesDisplayName.GNS=Syli \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1\u03c2
+currenciesDisplayName.BUK=Kyat \u0392\u03b9\u03c1\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.XFO=\u03a7\u03c1\u03c5\u03c3\u03cc \u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0393\u03b1\u03bb\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.PGK=Kina \u03a0\u03b1\u03c0\u03bf\u03cd\u03b1 \u039d\u03ad\u03b1 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1
+currenciesDisplayName.SYP=\u039b\u03af\u03c1\u03b1 \u03a3\u03c5\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.OMR=\u03a1\u03b9\u03ac\u03bb \u039f\u03bc\u03ac\u03bd
+currenciesDisplayName.MZE=\u0395\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u039c\u03bf\u03b6\u03b1\u03bc\u03b2\u03af\u03ba\u03b7\u03c2
+currenciesDisplayName.ZRN=\u039d\u03ad\u03bf Zaire \u0396\u03b1\u0390\u03c1
+currenciesDisplayName.NGN=\u039d\u03ac\u03b9\u03c1\u03b1 \u039d\u03b9\u03b3\u03b7\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.CNY=\u0393\u03b9\u03bf\u03c5\u03ac\u03bd \u03a1\u03b5\u03bd\u03bc\u03af\u03bc\u03c0\u03b9 \u039a\u03af\u03bd\u03b1\u03c2
+currenciesDisplayName.AOA=Kwanza \u0391\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1\u03c2
+currenciesDisplayName.MAF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039c\u03b1\u03c1\u03cc\u03ba\u03bf\u03c5
+currenciesDisplayName.RSD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u03a3\u03b5\u03c1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.GNF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1\u03c2
+currenciesDisplayName.MAD=\u039d\u03c4\u03b9\u03c1\u03ac\u03bc \u039c\u03b1\u03c1\u03cc\u03ba\u03bf\u03c5
+currenciesDisplayName.HTG=\u0393\u03ba\u03bf\u03c5\u03c1\u03bd\u03c4 \u0391\u03ca\u03c4\u03ae\u03c2
+currenciesDisplayName.TRY=\u039d\u03ad\u03b1 \u03a4\u03bf\u03c5\u03c1\u03ba\u03b9\u03ba\u03ae \u039b\u03af\u03c1\u03b1
+currenciesDisplayName.MMK=\u039a\u03c5\u03ac\u03c4 \u039c\u03b9\u03b1\u03bd\u03bc\u03ac\u03c1
+currenciesDisplayName.MYR=\u03a1\u03b9\u03bd\u03b3\u03ba\u03af\u03c4 \u039c\u03b1\u03bb\u03b1\u03b9\u03c3\u03af\u03b1\u03c2
+currenciesDisplayName.XEU=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u03a3\u03c5\u03bd\u03b1\u03bb\u03bb\u03b1\u03b3\u03bc\u03b1\u03c4\u03b9\u03ba\u03ae \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
+currenciesDisplayName.SLL=\u039b\u03b5\u03cc\u03bd\u03b5 \u03c4\u03b7\u03c2 \u03a3\u03b9\u03ad\u03c1\u03b1 \u039b\u03b5\u03cc\u03bd\u03b5
+currenciesDisplayName.BHD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u039c\u03c0\u03b1\u03c7\u03c1\u03ad\u03b9\u03bd
+currenciesDisplayName.BTN=\u039d\u03b3\u03ba\u03bf\u03cd\u03bb\u03c4\u03c1\u03bf\u03c5\u03bc \u039c\u03c0\u03bf\u03c5\u03c4\u03ac\u03bd
+currenciesDisplayName.TRL=\u039b\u03af\u03c1\u03b1 \u03a4\u03bf\u03c5\u03c1\u03ba\u03af\u03b1\u03c2
+currenciesDisplayName.KMF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf Comoro
+currenciesDisplayName.CZK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u03a4\u03c3\u03ad\u03c7\u03b9\u03ba\u03b7\u03c2 \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1\u03c2
+currenciesDisplayName.ANG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ce\u03bd \u0391\u03bd\u03c4\u03b9\u03bb\u03bb\u03ce\u03bd
+currenciesDisplayName.AZM=\u039c\u03b1\u03bd\u03ac\u03c4 \u0391\u03b6\u03b5\u03c1\u03bc\u03c0\u03b1\u03ca\u03c4\u03b6\u03ac\u03bd
+currenciesDisplayName.KYD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03ae\u03c3\u03c9\u03bd \u039a\u03ac\u03b9\u03bc\u03b1\u03bd
+currenciesDisplayName.GMD=\u039d\u03c4\u03b1\u03bb\u03ac\u03c3\u03b9 \u0393\u03ba\u03ac\u03bc\u03c0\u03b9\u03b1\u03c2
+currenciesDisplayName.BGN=\u039d\u03ad\u03bf \u039b\u03b5\u03b2 \u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.MXV=Unidad de Inversion (UDI) \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u03cd
+currenciesDisplayName.CAD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039a\u03b1\u03bd\u03b1\u03b4\u03ac
+currenciesDisplayName.BGL=\u039c\u03b5\u03c4\u03b1\u03bb\u03bb\u03b9\u03ba\u03cc \u039b\u03b5\u03b2 \u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.VEB=\u039c\u03c0\u03bf\u03bb\u03b9\u03b2\u03ac\u03c1 \u0392\u03b5\u03bd\u03b5\u03b6\u03bf\u03c5\u03ad\u03bb\u03b1\u03c2
+currenciesDisplayName.MLF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039c\u03b1\u03bb\u03af
+currenciesDisplayName.MXP=\u0391\u03c3\u03b7\u03bc\u03ad\u03bd\u03b9\u03bf \u03a0\u03ad\u03c3\u03bf \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u03cd (1861-1992)
+currenciesDisplayName.ILS=\u039d\u03ad\u03bf \u03a3\u03ad\u03ba\u03b5\u03bb \u0399\u03c3\u03c1\u03b1\u03ae\u03bb
+currenciesDisplayName.PES=\u03a3\u03bf\u03bb \u03a0\u03b5\u03c1\u03bf\u03cd
+currenciesDisplayName.MXN=\u03a0\u03ad\u03c3\u03bf \u039c\u03b5\u03be\u03b9\u03ba\u03bf\u03cd
+currenciesDisplayName.GYD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0393\u03bf\u03c5\u03b9\u03ac\u03bd\u03b1\u03c2
+currenciesDisplayName.ILP=\u039b\u03af\u03c1\u03b1 \u0399\u03c3\u03c1\u03b1\u03ae\u03bb
+currenciesDisplayName.CYP=\u039b\u03af\u03c1\u03b1 \u039a\u03cd\u03c0\u03c1\u03bf\u03c5
+currenciesDisplayName.SKK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u03a3\u03bb\u03bf\u03b2\u03b5\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.XDR=\u0395\u03b9\u03b4\u03b9\u03ba\u03ac \u0394\u03b9\u03ba\u03b1\u03b9\u03ce\u03bc\u03b1\u03c4\u03b1 \u0391\u03bd\u03ac\u03bb\u03b7\u03c8\u03b7\u03c2
+currenciesDisplayName.PEN=\u039d\u03ad\u03bf \u03a3\u03bf\u03bb \u03a0\u03b5\u03c1\u03bf\u03cd
+currenciesDisplayName.LRD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039b\u03b9\u03b2\u03b5\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.PEI=Inti \u03a0\u03b5\u03c1\u03bf\u03cd
+currenciesDisplayName.AMD=\u039d\u03c4\u03c1\u03b1\u03bc \u0391\u03c1\u03bc\u03b5\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.BSD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039c\u03c0\u03b1\u03c7\u03ac\u03bc\u03b5\u03c2
+currenciesDisplayName.HRK=\u039a\u03bf\u03cd\u03bd\u03b1 \u039a\u03c1\u03bf\u03b1\u03c4\u03af\u03b1\u03c2
+currenciesDisplayName.HRD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u039a\u03c1\u03bf\u03b1\u03c4\u03af\u03b1\u03c2
+currenciesDisplayName.CLP=\u03a0\u03ad\u03c3\u03bf \u03a7\u03b9\u03bb\u03ae\u03c2
+currenciesDisplayName.XPF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf CFP
+currenciesDisplayName.FRF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0393\u03b1\u03bb\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.BRR=Cruzeiro \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.MKD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u03a0.\u0393.\u0394.\u039c.
+currenciesDisplayName.CLF=Unidades de Fomento \u03a7\u03b9\u03bb\u03ae\u03c2
+currenciesDisplayName.BRN=\u039d\u03ad\u03bf Cruzado \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.ALL=\u039b\u03b5\u03ba \u0391\u03bb\u03b2\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.MWK=\u039a\u03bf\u03c5\u03ac\u03c4\u03c3\u03b1 \u039c\u03b1\u03bb\u03ac\u03bf\u03c5\u03b9
+currenciesDisplayName.BRL=\u03a1\u03b5\u03ac\u03bb \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.TPE=\u0395\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a4\u03b9\u03bc\u03cc\u03c1
+currenciesDisplayName.BRE=Cruzeiro \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2 (1990-1993)
+currenciesDisplayName.BRC=Cruzado \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.BRB=\u039d\u03ad\u03bf Cruzeiro \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2 (1967-1986)
+currenciesDisplayName.DEM=\u039c\u03ac\u03c1\u03ba\u03bf \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.KWD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u039a\u03bf\u03c5\u03b2\u03ad\u03b9\u03c4
+currenciesDisplayName.XCD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae\u03c2 \u039a\u03b1\u03c1\u03b1\u03ca\u03b2\u03b9\u03ba\u03ae\u03c2
+currenciesDisplayName.NPR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u039d\u03b5\u03c0\u03ac\u03bb
+currenciesDisplayName.GWP=\u03a0\u03ad\u03c3\u03bf Guinea-Bissau
+currenciesDisplayName.YUN=\u039c\u03b5\u03c4\u03b1\u03c4\u03c1\u03ad\u03c8\u03b9\u03bc\u03bf \u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0393\u03b9\u03bf\u03c5\u03b3\u03ba\u03bf\u03c3\u03bb\u03b1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.SVC=\u039a\u03bf\u03bb\u03cc\u03bd \u0395\u03bb \u03a3\u03b1\u03bb\u03b2\u03b1\u03b4\u03cc\u03c1
+currenciesDisplayName.YUM=\u039d\u03ad\u03bf \u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0393\u03b9\u03bf\u03c5\u03b3\u03ba\u03bf\u03c3\u03bb\u03b1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.BEL=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0392\u03b5\u03bb\u03b3\u03af\u03bf\u03c5 (\u03bf\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03cc)
+currenciesDisplayName.SIT=\u03a4\u03cc\u03bb\u03b1\u03c1 \u03a3\u03bb\u03bf\u03b2\u03b5\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.JPY=\u0393\u03b9\u03b5\u03bd \u0399\u03b1\u03c0\u03c9\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.XOF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf BCEAO CFA
+currenciesDisplayName.MVR=\u03a1\u03bf\u03c5\u03c6\u03af\u03b3\u03b9\u03b1 \u039d\u03ae\u03c3\u03c9\u03bd \u039c\u03b1\u03bb\u03b4\u03af\u03b2\u03c9\u03bd
+currenciesDisplayName.BEF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0392\u03b5\u03bb\u03b3\u03af\u03bf\u03c5
+currenciesDisplayName.GWE=\u0393\u03ba\u03b9\u03bd\u03ad\u03b1 \u0395\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.YUD=\u039c\u03b5\u03c4\u03b1\u03bb\u03bb\u03b9\u03ba\u03cc \u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0393\u03b9\u03bf\u03c5\u03b3\u03ba\u03bf\u03c3\u03bb\u03b1\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.BEC=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0392\u03b5\u03bb\u03b3\u03af\u03bf\u03c5 (\u03bc\u03b5\u03c4\u03b1\u03c4\u03c1\u03ad\u03c8\u03b9\u03bc\u03bf)
+currenciesDisplayName.SUR=\u03a3\u03bf\u03b2\u03b9\u03b5\u03c4\u03b9\u03ba\u03cc \u03a1\u03bf\u03cd\u03b2\u03bb\u03b9
+currenciesDisplayName.RON=\u039b\u03b5\u03b2 \u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.ROL=\u039b\u03ad\u03b9 \u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.BDT=\u03a4\u03ac\u03ba\u03b1 \u039c\u03c0\u03b1\u03b3\u03ba\u03bb\u03b1\u03bd\u03c4\u03ad\u03c2
+currenciesDisplayName.DDM=Ostmark \u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae\u03c2 \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.XBD=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u039c\u03bf\u03bd\u03ac\u03b4\u03b1 \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd (XBD)
+currenciesDisplayName.AWG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u0391\u03c1\u03bf\u03cd\u03bc\u03c0\u03b1
+currenciesDisplayName.XBC=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u039c\u03bf\u03bd\u03ac\u03b4\u03b1 \u039b\u03bf\u03b3\u03b1\u03c1\u03b9\u03b1\u03c3\u03bc\u03bf\u03cd (XBC)
+currenciesDisplayName.XBB=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u039d\u03bf\u03bc\u03b9\u03c3\u03bc\u03b1\u03c4\u03b9\u03ba\u03ae \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
+currenciesDisplayName.XBA=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u03a3\u03cd\u03bd\u03b8\u03b5\u03c4\u03b7 \u039c\u03bf\u03bd\u03ac\u03b4\u03b1
+currenciesDisplayName.NOK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03af\u03b1\u03c2
+currenciesDisplayName.MUR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u039c\u03b1\u03c5\u03c1\u03b9\u03ba\u03af\u03bf\u03c5
+currenciesDisplayName.ZAR=\u03a1\u03b1\u03bd\u03c4 \u039d\u03cc\u03c4\u03b9\u03b1\u03c2 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae\u03c2
+currenciesDisplayName.SHP=\u039b\u03af\u03c1\u03b1 \u0391\u03b3\u03af\u03b1\u03c2 \u0395\u03bb\u03ad\u03bd\u03b7\u03c2
+currenciesDisplayName.XAU=\u03a7\u03c1\u03c5\u03c3\u03cc\u03c2
+currenciesDisplayName.ZAL=\u03a1\u03b1\u03bd\u03c4 \u039d\u03cc\u03c4\u03b9\u03b1\u03c2 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae\u03c2 (\u03bf\u03b9\u03ba\u03bf\u03bd\u03bf\u03bc\u03b9\u03ba\u03cc)
+currenciesDisplayName.VND=Dong \u0392\u03b9\u03b5\u03c4\u03bd\u03ac\u03bc
+currenciesDisplayName.TZS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u03a4\u03b1\u03bd\u03b6\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.GIP=\u039b\u03af\u03c1\u03b1 \u0393\u03b9\u03b2\u03c1\u03b1\u03bb\u03c4\u03ac\u03c1
+currenciesDisplayName.TND=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u03a4\u03c5\u03bd\u03b7\u03c3\u03af\u03b1\u03c2
+currenciesDisplayName.CVE=\u0395\u03c3\u03ba\u03bf\u03cd\u03b4\u03bf \u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf\u03c5 \u0391\u03ba\u03c1\u03c9\u03c4\u03b7\u03c1\u03af\u03bf\u03c5
+currenciesDisplayName.UGX=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u039f\u03c5\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1\u03c2
+currenciesDisplayName.ZMK=Kwacha \u0396\u03ac\u03bc\u03c0\u03b9\u03b1\u03c2
+currenciesDisplayName.JOD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0399\u03bf\u03c1\u03b4\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.XAF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf BEAC CFA
+currenciesDisplayName.LBP=\u039b\u03af\u03c1\u03b1 \u039b\u03b9\u03b2\u03ac\u03bd\u03bf\u03c5
+currenciesDisplayName.UGS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u039f\u03c5\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1\u03c2 (1966-1987)
+currenciesDisplayName.WST=Tala \u0394\u03c5\u03c4\u03b9\u03ba\u03ae\u03c2 \u03a3\u03b1\u03bc\u03cc\u03b1
+currenciesDisplayName.KHR=\u03a1\u03af\u03b5\u03bb \u039a\u03b1\u03bc\u03c0\u03cc\u03c4\u03b6\u03b7\u03c2
+currenciesDisplayName.DOP=\u03a0\u03ad\u03c3\u03bf \u0394\u03bf\u03bc\u03af\u03bd\u03b9\u03ba\u03bf\u03c5
+currenciesDisplayName.EUR=\u0395\u03c5\u03c1\u03ce
+currenciesDisplayName.BOV=Mvdol \u0392\u03bf\u03bb\u03b9\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.MTP=\u039b\u03af\u03c1\u03b1 \u039c\u03ac\u03bb\u03c4\u03b1\u03c2
+currenciesDisplayName.USS=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0397\u03a0\u0391 (\u038a\u03b4\u03b9\u03b1 \u0397\u03bc\u03ad\u03c1\u03b1)
+currenciesDisplayName.BOP=\u03a0\u03ad\u03c3\u03bf \u0392\u03bf\u03bb\u03b9\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.CUP=\u03a0\u03ad\u03c3\u03bf \u039a\u03bf\u03cd\u03b2\u03b1\u03c2
+currenciesDisplayName.MTL=\u039b\u03b9\u03c1\u03ad\u03c4\u03b1 \u039c\u03ac\u03bb\u03c4\u03b1\u03c2
+currenciesDisplayName.TMM=\u039c\u03b1\u03bd\u03ac\u03c4 \u03a4\u03bf\u03c5\u03c1\u03ba\u03bc\u03b5\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.USN=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0397\u03a0\u0391 (\u0395\u03c0\u03cc\u03bc\u03b5\u03bd\u03b7 \u0397\u03bc\u03ad\u03c1\u03b1)
+currenciesDisplayName.SGD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a3\u03b9\u03b3\u03ba\u03b1\u03c0\u03bf\u03cd\u03c1\u03b7\u03c2
+currenciesDisplayName.NZD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03ad\u03b1\u03c2 \u0396\u03b7\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.USD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0397\u03a0\u0391
+currenciesDisplayName.BOB=\u039c\u03c0\u03bf\u03bb\u03b9\u03b2\u03b9\u03ac\u03bd\u03bf \u0392\u03bf\u03bb\u03b9\u03b2\u03af\u03b1\u03c2
+currenciesDisplayName.ITL=\u039b\u03b9\u03c1\u03ad\u03c4\u03b1 \u0399\u03c4\u03b1\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.PAB=\u039c\u03c0\u03b1\u03bb\u03bc\u03c0\u03cc\u03b1 \u03a0\u03b1\u03bd\u03b1\u03bc\u03ac
+currenciesDisplayName.GTQ=\u039a\u03bf\u03c5\u03b5\u03c4\u03c3\u03ac\u03bb \u0393\u03bf\u03c5\u03b1\u03c4\u03b5\u03bc\u03ac\u03bb\u03b1\u03c2
+currenciesDisplayName.XXX=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03bf \u03ae \u0391\u03ba\u03b1\u03c4\u03ac\u03bb\u03bb\u03b7\u03bb\u03bf \u039d\u03cc\u03bc\u03b9\u03c3\u03bc\u03b1
+currenciesDisplayName.AUD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1\u03c2
+currenciesDisplayName.GHC=\u03a3\u03ad\u03bd\u03c4\u03b9 \u0393\u03ba\u03ac\u03bd\u03b1\u03c2
+currenciesDisplayName.LAK=\u039a\u03b9\u03c0 \u039b\u03ac\u03bf\u03c2
+currenciesDisplayName.NAD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039d\u03b1\u03bc\u03af\u03bc\u03c0\u03b9\u03b1
+currenciesDisplayName.MGF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u039c\u03b1\u03b4\u03b1\u03b3\u03b1\u03c3\u03ba\u03ac\u03c1\u03b7\u03c2
+currenciesDisplayName.BBD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039c\u03c0\u03b1\u03c1\u03bc\u03c0\u03ac\u03bd\u03c4\u03bf\u03c2
+currenciesDisplayName.CHF=\u03a6\u03c1\u03ac\u03b3\u03ba\u03bf \u0395\u03bb\u03b2\u03b5\u03c4\u03af\u03b1\u03c2
+currenciesDisplayName.MGA=Ariary \u039c\u03b1\u03b4\u03b1\u03b3\u03b1\u03c3\u03ba\u03ac\u03c1\u03b7\u03c2
+currenciesDisplayName.PYG=\u0393\u03ba\u03bf\u03c5\u03b1\u03c1\u03b1\u03bd\u03af \u03a0\u03b1\u03c1\u03b1\u03b3\u03bf\u03c5\u03ac\u03b7\u03c2
+currenciesDisplayName.PLZ=\u0396\u03bb\u03cc\u03c4\u03c5 \u03a0\u03bf\u03bb\u03c9\u03bd\u03af\u03b1\u03c2 (1950-1995)
+currenciesDisplayName.YER=Rial \u03a5\u03b5\u03bc\u03ad\u03bd\u03b7\u03c2
+currenciesDisplayName.ATS=\u03a3\u03b5\u03bb\u03af\u03bd\u03b9 \u0391\u03c5\u03c3\u03c4\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.ETB=\u039c\u03c0\u03b9\u03c1 \u0391\u03b9\u03b8\u03b9\u03bf\u03c0\u03af\u03b1\u03c2
+currenciesDisplayName.BND=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039c\u03c0\u03c1\u03bf\u03c5\u03bd\u03ad\u03b9
+currenciesDisplayName.EGP=\u039b\u03af\u03c1\u03b1 \u0391\u03b9\u03b3\u03cd\u03c0\u03c4\u03bf\u03c5
+currenciesDisplayName.JMD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u03a4\u03b6\u03b1\u03bc\u03ac\u03b9\u03ba\u03b1\u03c2
+currenciesDisplayName.PLN=\u0396\u03bb\u03cc\u03c4\u03c5 \u03a0\u03bf\u03bb\u03c9\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.DZD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0391\u03bb\u03b3\u03b5\u03c1\u03af\u03b1\u03c2
+currenciesDisplayName.ISK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u0399\u03c3\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.SRG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u03a3\u03bf\u03c5\u03c1\u03b9\u03bd\u03ac\u03bc
+currenciesDisplayName.LYD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u039b\u03b9\u03b2\u03cd\u03b7\u03c2
+currenciesDisplayName.BAM=\u039c\u03ac\u03c1\u03ba\u03bf \u0392\u03bf\u03c3\u03bd\u03af\u03b1\u03c2-\u0395\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7\u03c2
+currenciesDisplayName.BZD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u039c\u03c0\u03b5\u03bb\u03af\u03b6
+currenciesDisplayName.ESP=\u03a0\u03b5\u03c3\u03ad\u03c4\u03b1 \u0399\u03c3\u03c0\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.KRW=Won \u039d\u03cc\u03c4\u03b9\u03b1\u03c2 \u039a\u03bf\u03c1\u03ad\u03b1\u03c2
+currenciesDisplayName.NLG=\u0393\u03ba\u03af\u03bb\u03bd\u03c4\u03b1 \u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.MRO=\u039f\u03c5\u03b3\u03ba\u03bf\u03c5\u03af\u03b3\u03ba\u03b1 \u039c\u03b1\u03c5\u03c1\u03b9\u03c4\u03b1\u03bd\u03af\u03b1\u03c2
+currenciesDisplayName.BAD=\u0394\u03b7\u03bd\u03ac\u03c1\u03b9\u03bf \u0392\u03bf\u03c3\u03bd\u03af\u03b1\u03c2-\u0395\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7\u03c2
+currenciesDisplayName.ZWD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0396\u03b9\u03bc\u03c0\u03ac\u03bc\u03c0\u03bf\u03c5\u03b5
+currenciesDisplayName.SEK=\u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u03a3\u03bf\u03c5\u03b7\u03b4\u03af\u03b1\u03c2
+currenciesDisplayName.CSK=\u03a3\u03ba\u03bb\u03b7\u03c1\u03ae \u039a\u03bf\u03c1\u03cc\u03bd\u03b1 \u03a4\u03c3\u03b5\u03c7\u03bf\u03c3\u03bb\u03bf\u03b2\u03b1\u03ba\u03af\u03b1\u03c2
+currenciesDisplayName.BYR=\u03a1\u03bf\u03cd\u03b2\u03bb\u03b9 \u039b\u03b5\u03c5\u03ba\u03bf\u03c1\u03c9\u03c3\u03af\u03b1\u03c2
+currenciesDisplayName.IRR=\u03a1\u03b9\u03ac\u03bb \u0399\u03c1\u03ac\u03bd
+currenciesDisplayName.PKR=\u03a1\u03bf\u03cd\u03c0\u03b9\u03b1 \u03a0\u03b1\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+currenciesDisplayName.BMD=\u0394\u03bf\u03bb\u03ac\u03c1\u03b9\u03bf \u0392\u03b5\u03c1\u03bc\u03bf\u03cd\u03b4\u03c9\u03bd
+currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=lev
+currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
+currenciesSymbol.CYP=\u039a\u03c5\u03c0\u03c1\u03b9\u03b1\u03ba\u03ae \u039b\u03af\u03c1\u03b1
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.MKD=MDen
+currenciesSymbol.MWK=MK
+currenciesSymbol.BMD=Ber$
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
+currenciesSymbol.GRD=\u0394\u03c1\u03c7
+currenciesSymbol.AMD=dram
+currenciesSymbol.SOS=Sh.
+currenciesSymbol.NPR=Nrs
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.KWD=KD
+currenciesSymbol.GEL=lari
+currenciesSymbol.ZAR=R
+currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
+currenciesSymbol.HKD=HK$
+currenciesSymbol.ARS=Arg$
+currenciesSymbol.ALL=lek
+currenciesSymbol.CRC=C
+currenciesSymbol.IDR=Rp
+currenciesSymbol.DKK=DKr
+currenciesSymbol.TZS=T Sh
+currenciesSymbol.SBD=SI$
+currenciesSymbol.NOK=NKr
+currenciesSymbol.UGX=U Sh
+currenciesSymbol.BEF=BF
+currenciesSymbol.TTD=TT$
+currenciesSymbol.SZL=E
+currenciesSymbol.FJD=F$
+currenciesSymbol.UYU=Ur$
+currenciesSymbol.BDT=Tk
+currenciesSymbol.QAR=QR
+currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
+currenciesSymbol.DJF=DF
+currenciesSymbol.XXX=XXX
+currenciesSymbol.JOD=JD
+currenciesSymbol.SGD=S$
+currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
+currenciesSymbol.MTL=Lm
+currenciesSymbol.MZM=Mt
+currenciesSymbol.YER=YRl
+currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
+currenciesSymbol.NZD=$NZ
+currenciesSymbol.OMR=RO
+currenciesSymbol.KZT=T
+currenciesSymbol.INR=INR
+currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=GBP
+currenciesSymbol.NAD=N$
+currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ZWD=Z$
+currenciesSymbol.MYR=RM
+currenciesSymbol.SRG=Sf
+currenciesSymbol.GTQ=Q
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.PLN=Zl
+currenciesSymbol.GNF=GF
+currenciesSymbol.VEB=Be
+currenciesSymbol.CNY=Y
+currenciesSymbol.KMF=CF
+currenciesSymbol.SEK=SKr
+currenciesSymbol.AUD=$A
+currenciesSymbol.LYD=LD
+currenciesSymbol.JMD=J$
+currenciesSymbol.SKK=Sk
+currenciesSymbol.CHF=SwF
+currenciesSymbol.ETB=Br
+currenciesSymbol.MRO=UM
+currenciesSymbol.BBD=BDS$
+currenciesSymbol.PKR=Pra
+currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
+currenciesSymbol.MXN=MEX$
+currenciesSymbol.DZD=DA
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.IRR=RI
+currenciesSymbol.GYD=G$
+currenciesSymbol.BAM=KM
+currenciesSymbol.CAD=Can$
+shortMonths=\u0399\u03b1\u03bd\u00ae\u03a6\u03b5\u03b2\u00ae\u039c\u03b1\u03c1\u00ae\u0391\u03c0\u03c1\u00ae\u039c\u03b1\u03ca\u00ae\u0399\u03bf\u03c5\u03bd\u00ae\u0399\u03bf\u03c5\u03bb\u00ae\u0391\u03c5\u03b3\u00ae\u03a3\u03b5\u03c0\u00ae\u039f\u03ba\u03c4\u00ae\u039d\u03bf\u03b5\u00ae\u0394\u03b5\u03ba\u00ae\u00ae
+months=\u0399\u03b1\u03bd\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2\u00ae\u03a6\u03b5\u03b2\u03c1\u03bf\u03c5\u03ac\u03c1\u03b9\u03bf\u03c2\u00ae\u039c\u03ac\u03c1\u03c4\u03b9\u03bf\u03c2\u00ae\u0391\u03c0\u03c1\u03af\u03bb\u03b9\u03bf\u03c2\u00ae\u039c\u03ac\u03b9\u03bf\u03c2\u00ae\u0399\u03bf\u03cd\u03bd\u03b9\u03bf\u03c2\u00ae\u0399\u03bf\u03cd\u03bb\u03b9\u03bf\u03c2\u00ae\u0391\u03cd\u03b3\u03bf\u03c5\u03c3\u03c4\u03bf\u03c2\u00ae\u03a3\u03b5\u03c0\u03c4\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2\u00ae\u039f\u03ba\u03c4\u03ce\u03b2\u03c1\u03b9\u03bf\u03c2\u00ae\u039d\u03bf\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2\u00ae\u0394\u03b5\u03ba\u03ad\u03bc\u03b2\u03c1\u03b9\u03bf\u03c2\u00ae\u00ae
+shortWeekdays=\u00ae\u039a\u03c5\u03c1\u00ae\u0394\u03b5\u03c5\u00ae\u03a4\u03c1\u03b9\u00ae\u03a4\u03b5\u03c4\u00ae\u03a0\u03b5\u03bc\u00ae\u03a0\u03b1\u03c1\u00ae\u03a3\u03b1\u03b2\u00ae
+weekdays=\u00ae\u039a\u03c5\u03c1\u03b9\u03b1\u03ba\u03ae\u00ae\u0394\u03b5\u03c5\u03c4\u03ad\u03c1\u03b1\u00ae\u03a4\u03c1\u03af\u03c4\u03b7\u00ae\u03a4\u03b5\u03c4\u03ac\u03c1\u03c4\u03b7\u00ae\u03a0\u03ad\u03bc\u03c0\u03c4\u03b7\u00ae\u03a0\u03b1\u03c1\u03b1\u03c3\u03ba\u03b5\u03c5\u03ae\u00ae\u03a3\u03ac\u03b2\u03b2\u03b1\u03c4\u03bf\u00ae
+eras=\u03c0.\u03a7.\u00ae\u03bc.\u03a7.\u00ae
+ampms=\u03a0\u039c\u00ae\u039c\u039c\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=dd MMM yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE, dd MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+territories.TL=\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03cc \u03a4\u03b9\u03bc\u03cc\u03c1
+territories.TK=\u03a4\u03bf\u03ba\u03b5\u03bb\u03ac\u03bf\u03c5
+territories.TJ=\u03a4\u03b1\u03c4\u03b6\u03b9\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+territories.TH=\u03a4\u03b1\u03ca\u03bb\u03ac\u03bd\u03b4\u03b7
+territories.TG=\u03a4\u03cc\u03b3\u03ba\u03bf
+territories.TF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac \u039d\u03cc\u03c4\u03b9\u03b1 \u0395\u03b4\u03ac\u03c6\u03b7
+territories.GY=\u0393\u03bf\u03c5\u03b9\u03ac\u03bd\u03b1
+territories.TD=\u03a4\u03c3\u03b1\u03bd\u03c4
+territories.TC=\u039d\u03ae\u03c3\u03bf\u03b9 \u03a4\u03b5\u03c1\u03ba\u03c2 \u03ba\u03b1\u03b9 \u039a\u03ac\u03b9\u03ba\u03bf\u03c2
+territories.GW=\u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1-\u039c\u03c0\u03b9\u03c3\u03ac\u03bf\u03c5
+territories.GU=\u0393\u03ba\u03bf\u03c5\u03ac\u03bc
+territories.GT=\u0393\u03bf\u03c5\u03b1\u03c4\u03b5\u03bc\u03ac\u03bb\u03b1
+territories.GS=\u039d\u03cc\u03c4\u03b9\u03b1 \u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1 \u03ba\u03b1\u03b9 \u039d\u03cc\u03c4\u03b9\u03b5\u03c2 \u039d\u03ae\u03c3\u03bf\u03b9 \u03a3\u03ac\u03bd\u03c4\u03bf\u03c5\u03b9\u03c4\u03c2
+territories.GR=\u0395\u03bb\u03bb\u03ac\u03b4\u03b1
+territories.GQ=\u0399\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03ae \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1
+territories.GP=\u0393\u03bf\u03c5\u03b1\u03b4\u03b5\u03bb\u03bf\u03cd\u03c0\u03b7
+territories.SZ=\u0396\u03bf\u03c5\u03b1\u03b6\u03b7\u03bb\u03ac\u03bd\u03b4\u03b7
+territories.SY=\u03a3\u03c5\u03c1\u03af\u03b1
+territories.GN=\u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1
+territories.GM=\u0393\u03ba\u03ac\u03bc\u03c0\u03b9\u03b1
+territories.GL=\u0393\u03c1\u03bf\u03b9\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.SV=\u0395\u03bb \u03a3\u03b1\u03bb\u03b2\u03b1\u03b4\u03cc\u03c1
+territories.062=\u039d\u03cc\u03c4\u03b9\u03b1 \u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03ae \u0391\u03c3\u03af\u03b1
+territories.ST=\u03a3\u03ac\u03bf \u03a4\u03bf\u03bc\u03ad \u03ba\u03b1\u03b9 \u03a0\u03c1\u03af\u03bd\u03c3\u03b9\u03c0\u03b5
+territories.GI=\u0393\u03b9\u03b2\u03c1\u03b1\u03bb\u03c4\u03ac\u03c1
+territories.061=\u03a0\u03bf\u03bb\u03c5\u03bd\u03b7\u03c3\u03af\u03b1
+territories.GH=\u0393\u03ba\u03ac\u03bd\u03b1
+territories.SR=\u03a3\u03bf\u03c5\u03c1\u03b9\u03bd\u03ac\u03bc
+territories.GG=\u0393\u03ba\u03b5\u03c1\u03bd\u03c3\u03ad\u03b9
+territories.GF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ae \u0393\u03bf\u03c5\u03b9\u03ac\u03bd\u03b1
+territories.GE=\u0393\u03b5\u03c9\u03c1\u03b3\u03af\u03b1
+territories.SO=\u03a3\u03bf\u03bc\u03b1\u03bb\u03af\u03b1
+territories.GD=\u0393\u03c1\u03b5\u03bd\u03ac\u03b4\u03b1
+territories.SN=\u03a3\u03b5\u03bd\u03b5\u03b3\u03ac\u03bb\u03b7
+territories.SM=\u0386\u03b3\u03b9\u03bf\u03c2 \u039c\u03b1\u03c1\u03af\u03bd\u03bf\u03c2
+territories.GB=\u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03bf \u0392\u03b1\u03c3\u03af\u03bb\u03b5\u03b9\u03bf
+territories.SL=\u03a3\u03b9\u03ad\u03c1\u03b1 \u039b\u03b5\u03cc\u03bd\u03b5
+territories.GA=\u0393\u03ba\u03b1\u03bc\u03c0\u03cc\u03bd
+territories.SK=\u03a3\u03bb\u03bf\u03b2\u03b1\u03ba\u03af\u03b1
+territories.SJ=\u03a3\u03b2\u03b1\u03bb\u03bc\u03c0\u03ac\u03c1\u03bd\u03c4 \u03ba\u03b1\u03b9 \u0393\u03b9\u03b1\u03bd \u039c\u03b1\u03b3\u03b9\u03ad\u03bd
+territories.SI=\u03a3\u03bb\u03bf\u03b2\u03b5\u03bd\u03af\u03b1
+territories.SH=\u0391\u03b3\u03af\u03b1 \u0395\u03bb\u03ad\u03bd\u03b7
+territories.SG=\u03a3\u03b9\u03b3\u03ba\u03b1\u03c0\u03bf\u03cd\u03c1\u03b7
+territories.SE=\u03a3\u03bf\u03c5\u03b7\u03b4\u03af\u03b1
+territories.SD=\u03a3\u03bf\u03c5\u03b4\u03ac\u03bd
+territories.SC=\u03a3\u03b5\u03cb\u03c7\u03ad\u03bb\u03bb\u03b5\u03c2
+territories.SB=\u039d\u03ae\u03c3\u03bf\u03b9 \u03a3\u03bf\u03bb\u03bf\u03bc\u03ce\u03bd\u03c4\u03bf\u03c2
+territories.SA=\u03a3\u03b1\u03bf\u03c5\u03b4\u03b9\u03ba\u03ae \u0391\u03c1\u03b1\u03b2\u03af\u03b1
+territories.FR=\u0393\u03b1\u03bb\u03bb\u03af\u03b1
+territories.FO=\u039d\u03ae\u03c3\u03bf\u03b9 \u03a6\u03b5\u03c1\u03cc\u03b5\u03c2
+territories.057=\u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u039c\u03b9\u03ba\u03c1\u03bf\u03bd\u03b7\u03c3\u03af\u03b1\u03c2
+territories.FM=\u039c\u03b9\u03ba\u03c1\u03bf\u03bd\u03b7\u03c3\u03af\u03b1
+territories.RW=\u03a1\u03bf\u03c5\u03ac\u03bd\u03c4\u03b1
+territories.054=\u039c\u03b5\u03bb\u03b1\u03bd\u03b7\u03c3\u03af\u03b1
+territories.FK=\u039d\u03ae\u03c3\u03bf\u03b9 \u03a6\u03ce\u03ba\u03bb\u03b1\u03bd\u03c4
+territories.053=\u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1 \u03ba\u03b1\u03b9 \u039d\u03ad\u03b1 \u0396\u03b7\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.RU=\u03a1\u03c9\u03c3\u03af\u03b1
+territories.FJ=\u03a6\u03af\u03c4\u03b6\u03b9
+territories.FI=\u03a6\u03b9\u03bd\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.RS=\u03a3\u03b5\u03c1\u03b2\u03af\u03b1
+territories.RO=\u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03af\u03b1
+territories.RE=\u03a1\u03b5\u03cb\u03bd\u03b9\u03cc\u03bd
+territories.ET=\u0391\u03b9\u03b8\u03b9\u03bf\u03c0\u03af\u03b1
+territories.ES=\u0399\u03c3\u03c0\u03b1\u03bd\u03af\u03b1
+territories.ER=\u0395\u03c1\u03c5\u03b8\u03c1\u03b1\u03af\u03b1
+territories.QU=\u0395\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u0388\u03bd\u03c9\u03c3\u03b7
+territories.EH=\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u03a3\u03b1\u03c7\u03ac\u03c1\u03b1
+territories.EG=\u0391\u03af\u03b3\u03c5\u03c0\u03c4\u03bf\u03c2
+territories.EE=\u0395\u03c3\u03b8\u03bf\u03bd\u03af\u03b1
+territories.830=\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03b1\u03bd\u03b1\u03bb\u03b9\u03bf\u03cd
+territories.QO=\u03a0\u03b5\u03c1\u03b9\u03c6\u03b5\u03c1\u03b5\u03b9\u03b1\u03ba\u03ae \u03a9\u03ba\u03b5\u03b1\u03bd\u03af\u03b1
+territories.EC=\u0399\u03c3\u03b7\u03bc\u03b5\u03c1\u03b9\u03bd\u03cc\u03c2
+territories.DZ=\u0391\u03bb\u03b3\u03b5\u03c1\u03af\u03b1
+territories.QA=\u039a\u03b1\u03c4\u03ac\u03c1
+territories.039=\u039d\u03cc\u03c4\u03b9\u03b1 \u0395\u03c5\u03c1\u03ce\u03c0\u03b7
+territories.DO=\u0394\u03bf\u03bc\u03b9\u03bd\u03b9\u03ba\u03b1\u03bd\u03ae \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1
+territories.PY=\u03a0\u03b1\u03c1\u03b1\u03b3\u03bf\u03c5\u03ac\u03b7
+territories.DM=\u039d\u03c4\u03bf\u03bc\u03af\u03bd\u03b9\u03ba\u03b1
+territories.035=\u039d\u03bf\u03c4\u03b9\u03bf\u03b1\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u0391\u03c3\u03af\u03b1
+territories.PW=\u03a0\u03b1\u03bb\u03ac\u03bf\u03c5
+territories.034=\u039d\u03cc\u03c4\u03b9\u03b1 \u0391\u03c3\u03af\u03b1
+territories.DK=\u0394\u03b1\u03bd\u03af\u03b1
+territories.DJ=\u03a4\u03b6\u03b9\u03bc\u03c0\u03bf\u03c5\u03c4\u03af
+territories.PT=\u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03af\u03b1
+territories.PS=\u03a0\u03b1\u03bb\u03b1\u03b9\u03c3\u03c4\u03b9\u03bd\u03b9\u03b1\u03ba\u03ac \u0395\u03b4\u03ac\u03c6\u03b7
+territories.030=\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u0391\u03c3\u03af\u03b1
+territories.PR=\u03a0\u03bf\u03c5\u03ad\u03c1\u03c4\u03bf \u03a1\u03af\u03ba\u03bf
+territories.DE=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03af\u03b1
+territories.PN=\u03a0\u03af\u03c4\u03ba\u03b5\u03c1\u03bd
+territories.PM=\u03a3\u03b1\u03b9\u03bd\u03c4 \u03a0\u03b9\u03ad\u03c1 \u03ba\u03b1\u03b9 \u039c\u03b9\u03ba\u03b5\u03bb\u03cc\u03bd
+territories.PL=\u03a0\u03bf\u03bb\u03c9\u03bd\u03af\u03b1
+territories.PK=\u03a0\u03b1\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+territories.PH=\u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03af\u03bd\u03b5\u03c2
+territories.PG=\u03a0\u03b1\u03c0\u03bf\u03cd\u03b1 \u039d\u03ad\u03b1 \u0393\u03bf\u03c5\u03b9\u03bd\u03ad\u03b1
+territories.PF=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ae \u03a0\u03bf\u03bb\u03c5\u03bd\u03b7\u03c3\u03af\u03b1
+territories.CZ=\u03a4\u03c3\u03b5\u03c7\u03af\u03b1
+territories.PE=\u03a0\u03b5\u03c1\u03bf\u03cd
+territories.CY=\u039a\u03cd\u03c0\u03c1\u03bf\u03c2
+territories.CX=\u039d\u03ae\u03c3\u03bf\u03c2 \u03a7\u03c1\u03b9\u03c3\u03c4\u03bf\u03c5\u03b3\u03ad\u03bd\u03bd\u03c9\u03bd
+territories.CV=\u03a0\u03c1\u03ac\u03c3\u03b9\u03bd\u03bf \u0391\u03ba\u03c1\u03c9\u03c4\u03ae\u03c1\u03b9\u03bf
+territories.PA=\u03a0\u03b1\u03bd\u03b1\u03bc\u03ac\u03c2
+territories.CU=\u039a\u03bf\u03cd\u03b2\u03b1
+territories.CS=\u03a3\u03b5\u03c1\u03b2\u03af\u03b1 \u03ba\u03b1\u03b9 \u039c\u03b1\u03c5\u03c1\u03bf\u03b2\u03bf\u03cd\u03bd\u03b9\u03bf
+territories.CR=\u039a\u03cc\u03c3\u03c4\u03b1 \u03a1\u03af\u03ba\u03b1
+territories.029=\u039a\u03b1\u03c1\u03b1\u03ca\u03b2\u03b9\u03ba\u03ae
+territories.CO=\u039a\u03bf\u03bb\u03bf\u03bc\u03b2\u03af\u03b1
+territories.CN=\u039a\u03af\u03bd\u03b1
+territories.CM=\u039a\u03b1\u03bc\u03b5\u03c1\u03bf\u03cd\u03bd
+territories.CL=\u03a7\u03b9\u03bb\u03ae
+territories.CK=\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03bf\u03c5\u03ba
+territories.021=\u0392\u03cc\u03c1\u03b5\u03b9\u03bf\u03c2 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
+territories.CI=\u0391\u03ba\u03c4\u03ae \u0395\u03bb\u03b5\u03c6\u03b1\u03bd\u03c4\u03bf\u03c3\u03c4\u03bf\u03cd
+territories.CH=\u0395\u03bb\u03b2\u03b5\u03c4\u03af\u03b1
+territories.CG=\u039a\u03bf\u03bd\u03b3\u03ba\u03cc - \u039c\u03c0\u03c1\u03b1\u03b6\u03b1\u03b2\u03af\u03bb
+territories.CF=\u039a\u03b5\u03bd\u03c4\u03c1\u03bf\u03b1\u03c6\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ae \u0394\u03b7\u03bc\u03bf\u03ba\u03c1\u03b1\u03c4\u03af\u03b1
+territories.CD=\u039a\u03bf\u03bd\u03b3\u03ba\u03cc - \u039a\u03b9\u03bd\u03c3\u03ac\u03c3\u03b1
+territories.CC=\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03cc\u03ba\u03bf\u03c2
+territories.OM=\u039f\u03bc\u03ac\u03bd
+territories.CA=\u039a\u03b1\u03bd\u03b1\u03b4\u03ac\u03c2
+territories.419=\u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ae \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae \u03ba\u03b1\u03b9 \u039a\u03b1\u03c1\u03b1\u03ca\u03b2\u03b9\u03ba\u03ae
+territories.BZ=\u039c\u03c0\u03b5\u03bb\u03af\u03c3\u03b5
+territories.BY=\u039b\u03b5\u03c5\u03ba\u03bf\u03c1\u03c9\u03c3\u03af\u03b1
+territories.BW=\u039c\u03c0\u03bf\u03c4\u03c3\u03bf\u03c5\u03ac\u03bd\u03b1
+territories.BV=\u039d\u03ae\u03c3\u03bf\u03c2 \u039c\u03c0\u03bf\u03c5\u03b2\u03ad
+territories.BT=\u039c\u03c0\u03bf\u03c5\u03c4\u03ac\u03bd
+territories.BS=\u039c\u03c0\u03b1\u03c7\u03ac\u03bc\u03b5\u03c2
+territories.BR=\u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1
+territories.019=\u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
+territories.018=\u039d\u03cc\u03c4\u03b9\u03b1 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae [018]
+territories.NZ=\u039d\u03ad\u03b1 \u0396\u03b7\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.017=\u039c\u03ad\u03c3\u03b7 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.BO=\u0392\u03bf\u03bb\u03b9\u03b2\u03af\u03b1
+territories.BN=\u039c\u03c0\u03c1\u03bf\u03c5\u03bd\u03ad\u03b9
+territories.015=\u0392\u03cc\u03c1\u03b5\u03b9\u03b1 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.BM=\u0392\u03b5\u03c1\u03bc\u03bf\u03cd\u03b4\u03b5\u03c2
+territories.014=\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.BL=\u0386\u03b3\u03b9\u03bf\u03c2 \u0392\u03b1\u03c1\u03b8\u03bf\u03bb\u03bf\u03bc\u03b1\u03af\u03bf\u03c2
+territories.013=\u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03ae \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
+territories.NU=\u039d\u03b9\u03bf\u03cd\u03b5
+territories.BJ=\u039c\u03c0\u03b5\u03bd\u03af\u03bd
+territories.011=\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.BI=\u039c\u03c0\u03bf\u03c5\u03c1\u03bf\u03cd\u03bd\u03c4\u03b9
+territories.172=\u039a\u03bf\u03b9\u03bd\u03bf\u03c0\u03bf\u03bb\u03b9\u03c4\u03b5\u03af\u03b1 \u0391\u03bd\u03b5\u03be\u03b1\u03c1\u03c4\u03ae\u03c4\u03c9\u03bd \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03b9\u03ce\u03bd
+territories.BH=\u039c\u03c0\u03b1\u03c7\u03c1\u03ad\u03b9\u03bd
+territories.NR=\u039d\u03b1\u03bf\u03cd\u03c1\u03bf\u03c5
+territories.BG=\u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03af\u03b1
+territories.BF=\u039c\u03c0\u03bf\u03c5\u03c1\u03ba\u03af\u03bd\u03b1 \u03a6\u03ac\u03c3\u03bf
+territories.NP=\u039d\u03b5\u03c0\u03ac\u03bb
+territories.BE=\u0392\u03ad\u03bb\u03b3\u03b9\u03bf
+territories.ZZ=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03b7 \u03ae \u0386\u03ba\u03c5\u03c1\u03b7 \u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae
+territories.NO=\u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03af\u03b1
+territories.BD=\u039c\u03c0\u03b1\u03bd\u03b3\u03ba\u03bb\u03b1\u03bd\u03c4\u03ad\u03c2
+territories.BB=\u039c\u03c0\u03b1\u03c1\u03bc\u03c0\u03ac\u03bd\u03c4\u03bf\u03c2
+territories.ZW=\u0396\u03b9\u03bc\u03c0\u03ac\u03bc\u03c0\u03bf\u03c5\u03b5
+territories.NL=\u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.BA=\u0392\u03bf\u03c3\u03bd\u03af\u03b1 - \u0395\u03c1\u03b6\u03b5\u03b3\u03bf\u03b2\u03af\u03bd\u03b7
+territories.NI=\u039d\u03b9\u03ba\u03b1\u03c1\u03ac\u03b3\u03bf\u03c5\u03b1
+territories.NG=\u039d\u03b9\u03b3\u03b7\u03c1\u03af\u03b1
+territories.NF=\u039d\u03ae\u03c3\u03bf\u03c2 \u039d\u03cc\u03c1\u03c6\u03bf\u03bb\u03ba
+territories.AZ=\u0391\u03b6\u03b5\u03c1\u03bc\u03c0\u03b1\u03ca\u03c4\u03b6\u03ac\u03bd
+territories.NE=\u039d\u03af\u03b3\u03b7\u03c1
+territories.AX=\u039d\u03ae\u03c3\u03bf\u03b9 \u0386\u03bb\u03b1\u03bd\u03c4
+territories.NC=\u039d\u03ad\u03b1 \u039a\u03b1\u03bb\u03b7\u03b4\u03bf\u03bd\u03af\u03b1
+territories.AW=\u0391\u03c1\u03bf\u03cd\u03bc\u03c0\u03b1
+territories.ZM=\u0396\u03ac\u03bc\u03c0\u03b9\u03b1
+territories.NA=\u039d\u03b1\u03bc\u03af\u03bc\u03c0\u03b9\u03b1
+territories.AU=\u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1
+territories.AT=\u0391\u03c5\u03c3\u03c4\u03c1\u03af\u03b1
+territories.AS=\u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ae \u03a3\u03b1\u03bc\u03cc\u03b1
+territories.AR=\u0391\u03c1\u03b3\u03b5\u03bd\u03c4\u03b9\u03bd\u03ae
+territories.AQ=\u0391\u03bd\u03c4\u03b1\u03c1\u03ba\u03c4\u03b9\u03ba\u03ae
+territories.009=\u03a9\u03ba\u03b5\u03b1\u03bd\u03af\u03b1
+territories.MZ=\u039c\u03bf\u03b6\u03b1\u03bc\u03b2\u03af\u03ba\u03b7
+territories.AO=\u0391\u03bd\u03b3\u03ba\u03cc\u03bb\u03b1
+territories.MY=\u039c\u03b1\u03bb\u03b1\u03b9\u03c3\u03af\u03b1
+territories.AN=\u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ad\u03c2 \u0391\u03bd\u03c4\u03af\u03bb\u03bb\u03b5\u03c2
+territories.MX=\u039c\u03b5\u03be\u03b9\u03ba\u03cc
+territories.AM=\u0391\u03c1\u03bc\u03b5\u03bd\u03af\u03b1
+territories.005=\u039d\u03cc\u03c4\u03b9\u03b1 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
+territories.MW=\u039c\u03b1\u03bb\u03ac\u03bf\u03c5\u03b9
+territories.AL=\u0391\u03bb\u03b2\u03b1\u03bd\u03af\u03b1
+territories.MV=\u039c\u03b1\u03bb\u03b4\u03af\u03b2\u03b5\u03c2
+territories.003=\u0392\u03cc\u03c1\u03b5\u03b9\u03b1 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae
+territories.ZA=\u039d\u03cc\u03c4\u03b9\u03b1 \u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.MU=\u039c\u03b1\u03c5\u03c1\u03af\u03ba\u03b9\u03bf\u03c2
+territories.002=\u0391\u03c6\u03c1\u03b9\u03ba\u03ae
+territories.MT=\u039c\u03ac\u03bb\u03c4\u03b1
+territories.AI=\u0391\u03bd\u03b3\u03ba\u03bf\u03c5\u03af\u03bb\u03b1
+territories.001=\u039a\u03cc\u03c3\u03bc\u03bf\u03c2
+territories.MS=\u039c\u03bf\u03bd\u03c3\u03b5\u03c1\u03ac\u03c4
+territories.MR=\u039c\u03b1\u03c5\u03c1\u03b9\u03c4\u03b1\u03bd\u03af\u03b1
+territories.AG=\u0391\u03bd\u03c4\u03af\u03b3\u03ba\u03bf\u03c5\u03b1 \u03ba\u03b1\u03b9 \u039c\u03c0\u03b1\u03c1\u03bc\u03c0\u03bf\u03cd\u03bd\u03c4\u03b1
+territories.MQ=\u039c\u03b1\u03c1\u03c4\u03b9\u03bd\u03af\u03ba\u03b1
+territories.AF=\u0391\u03c6\u03b3\u03b1\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd
+territories.MP=\u039d\u03ae\u03c3\u03bf\u03b9 \u0392\u03cc\u03c1\u03b5\u03b9\u03b5\u03c2 \u039c\u03b1\u03c1\u03b9\u03ac\u03bd\u03b5\u03c2
+territories.AE=\u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03b1 \u0391\u03c1\u03b1\u03b2\u03b9\u03ba\u03ac \u0395\u03bc\u03b9\u03c1\u03ac\u03c4\u03b1
+territories.MO=\u039c\u03b1\u03ba\u03ac\u03bf
+territories.AD=\u0391\u03bd\u03b4\u03cc\u03c1\u03c1\u03b1
+territories.MN=\u039c\u03bf\u03b3\u03b3\u03bf\u03bb\u03af\u03b1
+territories.MM=\u039c\u03b9\u03b1\u03bd\u03bc\u03ac\u03c1
+territories.ML=\u039c\u03ac\u03bb\u03b9
+territories.MK=\u03a0\u0393\u0394 \u039c\u03b1\u03ba\u03b5\u03b4\u03bf\u03bd\u03af\u03b1\u03c2
+territories.YT=\u039c\u03b1\u03b3\u03b9\u03cc\u03c4
+territories.MH=\u039d\u03ae\u03c3\u03bf\u03b9 \u039c\u03ac\u03c1\u03c3\u03b1\u03bb
+territories.MG=\u039c\u03b1\u03b4\u03b1\u03b3\u03b1\u03c3\u03ba\u03ac\u03c1\u03b7
+territories.MF=\u0386\u03b3\u03b9\u03bf\u03c2 \u039c\u03b1\u03c1\u03c4\u03af\u03bd\u03bf\u03c2
+territories.ME=\u039c\u03b1\u03c5\u03c1\u03bf\u03b2\u03bf\u03cd\u03bd\u03b9\u03bf
+territories.MD=\u039c\u03bf\u03bb\u03b4\u03b1\u03b2\u03af\u03b1
+territories.MC=\u039c\u03bf\u03bd\u03b1\u03ba\u03cc
+territories.MA=\u039c\u03b1\u03c1\u03cc\u03ba\u03bf
+territories.YE=\u03a5\u03b5\u03bc\u03ad\u03bd\u03b7
+territories.LY=\u039b\u03b9\u03b2\u03cd\u03b7
+territories.LV=\u039b\u03b5\u03c4\u03bf\u03bd\u03af\u03b1
+territories.155=\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u0395\u03c5\u03c1\u03ce\u03c0\u03b7
+territories.LU=\u039b\u03bf\u03c5\u03be\u03b5\u03bc\u03b2\u03bf\u03cd\u03c1\u03b3\u03bf
+territories.154=\u0392\u03cc\u03c1\u03b5\u03b9\u03b1 \u0395\u03c5\u03c1\u03ce\u03c0\u03b7
+territories.LT=\u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03af\u03b1
+territories.LS=\u039b\u03b5\u03c3\u03cc\u03c4\u03bf
+territories.LR=\u039b\u03b9\u03b2\u03b5\u03c1\u03af\u03b1
+territories.151=\u0391\u03bd\u03b1\u03c4\u03bf\u03bb\u03b9\u03ba\u03ae \u0395\u03c5\u03c1\u03ce\u03c0\u03b7
+territories.150=\u0395\u03c5\u03c1\u03ce\u03c0\u03b7
+territories.LK=\u03a3\u03c1\u03b9 \u039b\u03ac\u03bd\u03ba\u03b1
+territories.LI=\u039b\u03b9\u03c7\u03c4\u03b5\u03bd\u03c3\u03c4\u03ac\u03b9\u03bd
+territories.LC=\u0391\u03b3\u03af\u03b1 \u039b\u03bf\u03c5\u03ba\u03af\u03b1
+territories.LB=\u039b\u03af\u03b2\u03b1\u03bd\u03bf\u03c2
+territories.LA=\u039b\u03ac\u03bf\u03c2
+territories.KZ=\u039a\u03b1\u03b6\u03b1\u03ba\u03c3\u03c4\u03ac\u03bd
+territories.KY=\u039d\u03ae\u03c3\u03bf\u03b9 \u039a\u03ad\u03b9\u03bc\u03b1\u03bd
+territories.KW=\u039a\u03bf\u03c5\u03b2\u03ad\u03b9\u03c4
+territories.145=\u0394\u03c5\u03c4\u03b9\u03ba\u03ae \u0391\u03c3\u03af\u03b1
+territories.143=\u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03ae \u0391\u03c3\u03af\u03b1
+territories.142=\u0391\u03c3\u03af\u03b1
+territories.KR=\u039d\u03cc\u03c4\u03b9\u03b1 \u039a\u03bf\u03c1\u03ad\u03b1
+territories.KP=\u0392\u03cc\u03c1\u03b5\u03b9\u03b1 \u039a\u03bf\u03c1\u03ad\u03b1
+territories.KN=\u03a3\u03b1\u03b9\u03bd\u03c4 \u039a\u03b9\u03c4\u03c2 \u03ba\u03b1\u03b9 \u039d\u03ad\u03b2\u03b9\u03c2
+territories.KM=\u039a\u03bf\u03bc\u03cc\u03c1\u03bf\u03c2
+territories.KI=\u039a\u03b9\u03c1\u03b9\u03bc\u03c0\u03ac\u03c4\u03b9
+territories.WS=\u03a3\u03b1\u03bc\u03cc\u03b1
+territories.KH=\u039a\u03b1\u03bc\u03c0\u03cc\u03c4\u03b6\u03b7
+territories.KG=\u039a\u03b9\u03c1\u03b3\u03b9\u03b6\u03af\u03b1
+territories.KE=\u039a\u03ad\u03bd\u03c5\u03b1
+territories.WF=\u039d\u03ae\u03c3\u03bf\u03b9 \u039f\u03c5\u03b1\u03bb\u03bb\u03af\u03c2 \u03ba\u03b1\u03b9 \u03a6\u03bf\u03c5\u03c4\u03bf\u03c5\u03bd\u03ac
+territories.JP=\u0399\u03b1\u03c0\u03c9\u03bd\u03af\u03b1
+territories.JO=\u0399\u03bf\u03c1\u03b4\u03b1\u03bd\u03af\u03b1
+territories.JM=\u03a4\u03b6\u03b1\u03bc\u03ac\u03b9\u03ba\u03b1
+territories.VU=\u0392\u03b1\u03bd\u03bf\u03c5\u03ac\u03c4\u03bf\u03c5
+territories.JE=\u03a4\u03b6\u03ad\u03c1\u03c3\u03b5\u03ca
+territories.VN=\u0392\u03b9\u03b5\u03c4\u03bd\u03ac\u03bc
+territories.VI=\u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ad\u03c2 \u03a0\u03b1\u03c1\u03b8\u03ad\u03bd\u03bf\u03b9 \u039d\u03ae\u03c3\u03bf\u03b9
+territories.VG=\u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03b9\u03ba\u03ad\u03c2 \u03a0\u03b1\u03c1\u03b8\u03ad\u03bd\u03bf\u03b9 \u039d\u03ae\u03c3\u03bf\u03b9
+territories.VE=\u0392\u03b5\u03bd\u03b5\u03b6\u03bf\u03c5\u03ad\u03bb\u03b1
+territories.VC=\u0386\u03b3\u03b9\u03bf\u03c2 \u0392\u03b9\u03ba\u03ad\u03bd\u03c4\u03b9\u03bf\u03c2 \u03ba\u03b1\u03b9 \u0393\u03c1\u03b5\u03bd\u03b1\u03b4\u03af\u03bd\u03b5\u03c2
+territories.VA=\u0392\u03b1\u03c4\u03b9\u03ba\u03b1\u03bd\u03cc
+territories.IT=\u0399\u03c4\u03b1\u03bb\u03af\u03b1
+territories.IS=\u0399\u03c3\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.IR=\u0399\u03c1\u03ac\u03bd
+territories.IQ=\u0399\u03c1\u03ac\u03ba
+territories.UZ=\u039f\u03c5\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03c3\u03c4\u03ac\u03bd
+territories.IO=\u0392\u03c1\u03b5\u03c4\u03b1\u03bd\u03b9\u03ba\u03ae \u03a0\u03b5\u03c1\u03b9\u03bf\u03c7\u03ae \u0399\u03bd\u03b4\u03b9\u03ba\u03bf\u03cd \u03a9\u03ba\u03b5\u03b1\u03bd\u03bf\u03cd
+territories.UY=\u039f\u03c5\u03c1\u03bf\u03c5\u03b3\u03bf\u03c5\u03ac\u03b7
+territories.IN=\u0399\u03bd\u03b4\u03af\u03b1
+territories.IM=\u039d\u03ae\u03c3\u03bf\u03c2 \u039c\u03b1\u03bd
+territories.IL=\u0399\u03c3\u03c1\u03b1\u03ae\u03bb
+territories.US=\u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03b5\u03c2 \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03af\u03b5\u03c2
+territories.IE=\u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03af\u03b1
+territories.ID=\u0399\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03af\u03b1
+territories.UM=\u0391\u03c0\u03bf\u03bc\u03b1\u03ba\u03c1\u03c5\u03c3\u03bc\u03ad\u03bd\u03b5\u03c2 \u039d\u03b7\u03c3\u03af\u03b4\u03b5\u03c2 \u03c4\u03c9\u03bd \u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03c9\u03bd \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03b9\u03ce\u03bd
+territories.UG=\u039f\u03c5\u03b3\u03ba\u03ac\u03bd\u03c4\u03b1
+territories.UA=\u039f\u03c5\u03ba\u03c1\u03b1\u03bd\u03af\u03b1
+territories.HU=\u039f\u03c5\u03b3\u03b3\u03b1\u03c1\u03af\u03b1
+territories.HT=\u0391\u03ca\u03c4\u03ae
+territories.HR=\u039a\u03c1\u03bf\u03b1\u03c4\u03af\u03b1
+territories.TZ=\u03a4\u03b1\u03bd\u03b6\u03b1\u03bd\u03af\u03b1
+territories.HN=\u039f\u03bd\u03b4\u03bf\u03cd\u03c1\u03b1
+territories.HM=\u039d\u03ae\u03c3\u03bf\u03b9 \u03a7\u03b5\u03c1\u03bd\u03c4 \u03ba\u03b1\u03b9 \u039c\u03b1\u03ba\u03bd\u03c4\u03cc\u03bd\u03b1\u03bb\u03bd\u03c4
+territories.TW=\u03a4\u03b1\u03ca\u03b2\u03ac\u03bd
+territories.TV=\u03a4\u03bf\u03c5\u03b2\u03b1\u03bb\u03bf\u03cd
+territories.HK=\u03a7\u03bf\u03bd\u03b3\u03ba \u039a\u03bf\u03bd\u03b3\u03ba
+territories.TT=\u03a4\u03c1\u03b9\u03bd\u03b9\u03b4\u03ac\u03b4 \u03ba\u03b1\u03b9 \u03a4\u03bf\u03bc\u03c0\u03ac\u03b3\u03ba\u03bf
+territories.TR=\u03a4\u03bf\u03c5\u03c1\u03ba\u03af\u03b1
+territories.TO=\u03a4\u03cc\u03bd\u03b3\u03ba\u03b1
+territories.TN=\u03a4\u03c5\u03bd\u03b7\u03c3\u03af\u03b1
+territories.TM=\u03a4\u03bf\u03c5\u03c1\u03ba\u03bc\u03b5\u03bd\u03b9\u03c3\u03c4\u03ac\u03bd
+languages.lb=\u039b\u03bf\u03c5\u03be\u03b5\u03bc\u03b2\u03bf\u03c5\u03c1\u03b3\u03b9\u03ba\u03ac
+languages.la=\u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ac
+languages.xh=\u0396\u03cc\u03c3\u03b1
+languages.ky=\u039a\u03c5\u03c1\u03b3\u03b9\u03b6\u03b9\u03ba\u03ac
+languages.ku=\u039a\u03bf\u03c5\u03c1\u03b4\u03b9\u03ba\u03ac
+languages.ks=\u039a\u03b1\u03c3\u03bc\u03af\u03c1\u03b9
+languages.ko=\u039a\u03bf\u03c1\u03b5\u03b1\u03c4\u03b9\u03ba\u03ac
+languages.kn=\u039a\u03b1\u03bd\u03ac\u03bd\u03c4\u03b1
+languages.km=\u039a\u03b1\u03bc\u03c0\u03bf\u03c4\u03b6\u03b9\u03b1\u03bd\u03ac
+languages.ira=\u0399\u03c1\u03b1\u03bd\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.en_GB=\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac \u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03bf\u03c5 \u0392\u03b1\u03c3\u03b9\u03bb\u03b5\u03af\u03bf\u03c5
+languages.grc=\u0391\u03c1\u03c7\u03b1\u03af\u03b1 \u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac
+languages.wo=\u0393\u03bf\u03c5\u03cc\u03bb\u03bf\u03c6
+languages.art=\u03a4\u03b5\u03c7\u03bd\u03b7\u03c4\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.ka=\u0393\u03b5\u03c9\u03c1\u03b3\u03b9\u03b1\u03bd\u03ac
+languages.arp=\u0391\u03c1\u03ac\u03c0\u03b1\u03c7\u03bf
+languages.crh=\u03a4\u03bf\u03c5\u03c1\u03ba\u03b9\u03ba\u03ac \u039a\u03c1\u03b9\u03bc\u03b1\u03af\u03b1\u03c2
+languages.afa=\u0391\u03c6\u03c1\u03bf\u03b1\u03c3\u03b9\u03b1\u03c4\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.jv=\u0399\u03b1\u03b2\u03b1\u03bd\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.arc=\u0391\u03c1\u03b1\u03bc\u03b1\u03ca\u03ba\u03ac
+languages.cel=\u039a\u03b5\u03bb\u03c4\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.ja=\u0399\u03b1\u03c0\u03c9\u03bd\u03b9\u03ba\u03ac
+languages.vi=\u0392\u03b9\u03b5\u03c4\u03bd\u03b1\u03bc\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.it=\u0399\u03c4\u03b1\u03bb\u03b9\u03ba\u03ac
+languages.is=\u0399\u03c3\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.uz=\u039f\u03c5\u03b6\u03bc\u03c0\u03b5\u03ba\u03b9\u03ba\u03ac
+languages.ur=\u039f\u03c5\u03c1\u03bd\u03c4\u03bf\u03cd
+languages.ie=\u0399\u03bd\u03c4\u03b5\u03c1\u03bb\u03af\u03bd\u03b3\u03ba\u03bf\u03c5\u03b5
+languages.id=\u0399\u03bd\u03b4\u03bf\u03bd\u03b7\u03c3\u03b9\u03b1\u03ba\u03ac
+languages.ia=\u0399\u03bd\u03c4\u03b5\u03c1\u03bb\u03af\u03bd\u03b3\u03ba\u03bf\u03c5\u03b1
+languages.uk=\u039f\u03c5\u03ba\u03c1\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.ug=\u039f\u03c5\u03b9\u03b3\u03bf\u03c5\u03c1\u03b9\u03ba\u03ac
+languages.und=\u0386\u03b3\u03bd\u03c9\u03c3\u03c4\u03b7 \u03ae \u0391\u03ba\u03b1\u03c4\u03ac\u03bb\u03bb\u03b7\u03bb\u03b7 \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.hy=\u0391\u03c1\u03bc\u03b5\u03bd\u03b9\u03ba\u03ac
+languages.phn=\u03a6\u03bf\u03b9\u03bd\u03b9\u03ba\u03b9\u03ba\u03ac
+languages.got=\u0393\u03bf\u03c4\u03b8\u03b9\u03ba\u03ac
+languages.es_ES=\u0399\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ac \u0399\u03b2\u03b7\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.hu=\u039f\u03c5\u03b3\u03b3\u03c1\u03b9\u03ba\u03ac
+languages.phi=\u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03b9\u03bd\u03ad\u03b6\u03b9\u03ba\u03b7 \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.hr=\u039a\u03c1\u03bf\u03b1\u03c4\u03b9\u03ba\u03ac
+languages.fil=\u03a6\u03b9\u03bb\u03b9\u03c0\u03c0\u03b9\u03bd\u03b5\u03b6\u03b9\u03ba\u03ac
+languages.apa=\u0393\u03bb\u03ce\u03c3\u03c3\u03b1 \u0391\u03c0\u03ac\u03c4\u03c3\u03b9
+languages.tw=\u03a4\u03bf\u03cd\u03b9
+languages.goh=\u03a0\u03b1\u03bb\u03b1\u03b9\u03ac \u0386\u03bd\u03c9 \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.hi=\u03a7\u03af\u03bd\u03c4\u03b9
+languages.tr=\u03a4\u03bf\u03c5\u03c1\u03ba\u03b9\u03ba\u03ac
+languages.cop=\u039a\u03bf\u03c0\u03c4\u03b9\u03ba\u03ac
+languages.he=\u0395\u03b2\u03c1\u03b1\u03ca\u03ba\u03ac
+languages.sai=\u0399\u03bd\u03b4\u03b9\u03b1\u03bd\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1 \u039d\u03bf\u03c4\u03af\u03bf\u03c5 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.tk=\u03a4\u03bf\u03c5\u03c1\u03ba\u03bc\u03b5\u03bd\u03b9\u03ba\u03ac
+languages.dum=\u039c\u03ad\u03c3\u03b1 \u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.ti=\u03a4\u03b9\u03b3\u03ba\u03c1\u03af\u03bd\u03c5\u03b1
+languages.th=\u03a4\u03b1\u03ca\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.te=\u03a4\u03b5\u03bb\u03bf\u03cd\u03b3\u03ba\u03bf\u03c5
+languages.ta=\u03a4\u03b1\u03bc\u03af\u03bb
+languages.syr=\u03a3\u03c5\u03c1\u03b9\u03b1\u03ba\u03ac
+languages.gu=\u0393\u03ba\u03bf\u03c5\u03b3\u03b9\u03b1\u03c1\u03ac\u03c4\u03b9
+languages.ine=\u0399\u03bd\u03b4\u03bf\u03b5\u03c5\u03c1\u03c9\u03c0\u03b1\u03ca\u03ba\u03ae \u03b3\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.gn=\u0393\u03ba\u03bf\u03c5\u03b1\u03c1\u03ac\u03bd\u03b9
+languages.sw=\u03a3\u03bf\u03c5\u03b1\u03c7\u03af\u03bb\u03b9
+languages.gl=\u0393\u03b1\u03bb\u03b9\u03ba\u03b9\u03b1\u03bd\u03ac
+languages.sv=\u03a3\u03bf\u03c5\u03b7\u03b4\u03b9\u03ba\u03ac
+languages.su=\u03a3\u03bf\u03c5\u03b4\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.enm=\u039c\u03ad\u03c3\u03b1 \u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac
+languages.sr=\u03a3\u03b5\u03c1\u03b2\u03b9\u03ba\u03ac
+languages.sq=\u0391\u03bb\u03b2\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.en_CA=\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac \u039a\u03b1\u03bd\u03b1\u03b4\u03ac
+languages.so=\u03a3\u03bf\u03bc\u03ac\u03bb\u03b9
+languages.gd=\u03a3\u03ba\u03c9\u03c4\u03b9\u03ba\u03ac \u039a\u03b5\u03bb\u03c4\u03b9\u03ba\u03ac
+languages.sl=\u03a3\u03bb\u03bf\u03b2\u03b5\u03bd\u03b9\u03ba\u03ac
+languages.ga=\u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.sk=\u03a3\u03bb\u03bf\u03b2\u03b1\u03ba\u03b9\u03ba\u03ac
+languages.si=\u03a3\u03b9\u03bd\u03c7\u03b1\u03bb\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.sh=\u03a3\u03b5\u03c1\u03b2\u03bf\u03ba\u03c1\u03bf\u03b1\u03c4\u03b9\u03ba\u03ac
+languages.fy=\u03a6\u03c1\u03b9\u03b6\u03b9\u03b1\u03bd\u03ac
+languages.sd=\u03a3\u03af\u03bd\u03c4\u03b9
+languages.cau=\u039a\u03b1\u03c5\u03ba\u03ac\u03c3\u03b9\u03b1 \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.sa=\u03a3\u03b1\u03bd\u03c3\u03ba\u03c1\u03b9\u03c4\u03b9\u03ba\u03ac
+languages.ang=\u03a0\u03b1\u03bb\u03b1\u03b9\u03ac \u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac
+languages.fr=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac
+languages.sla=\u03a3\u03bb\u03b1\u03b2\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.fo=\u03a6\u03b1\u03c1\u03cc\u03b5
+languages.gmh=\u039c\u03ad\u03c3\u03b1 \u0386\u03bd\u03c9 \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.ru=\u03a1\u03c9\u03c3\u03b9\u03ba\u03ac
+languages.cai=\u0399\u03bd\u03b4\u03b9\u03b1\u03bd\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1 \u039a\u03b5\u03bd\u03c4\u03c1\u03b9\u03ba\u03ae\u03c2 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.fi=\u03a6\u03b9\u03bd\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.ro=\u03a1\u03bf\u03c5\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.fa=\u03a0\u03b5\u03c1\u03c3\u03b9\u03ba\u03ac
+languages.pt_PT=\u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03b9\u03ba\u03ac \u0399\u03b2\u03b7\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.nl_BE=\u03a6\u03bb\u03b1\u03bc\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.es_419=\u0399\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ac \u039b\u03b1\u03c4\u03b9\u03bd\u03b9\u03ba\u03ae\u03c2 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.en_AU=\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac \u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03af\u03b1\u03c2
+languages.peo=\u0391\u03c1\u03c7\u03b1\u03af\u03b1 \u03a0\u03b5\u03c1\u03c3\u03b9\u03ba\u03ac
+languages.eu=\u0392\u03b1\u03c3\u03ba\u03b9\u03ba\u03ac
+languages.et=\u0395\u03c3\u03b8\u03bf\u03bd\u03b9\u03ba\u03ac
+languages.es=\u0399\u03c3\u03c0\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.eo=\u0395\u03c3\u03c0\u03b5\u03c1\u03ac\u03bd\u03c4\u03bf
+languages.en=\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac
+languages.el=\u0395\u03bb\u03bb\u03b7\u03bd\u03b9\u03ba\u03ac
+languages.jrb=\u0399\u03bf\u03c5\u03b4\u03b1\u03ca\u03ba\u03ac-\u0391\u03c1\u03b1\u03b2\u03b9\u03ba\u03ac
+languages.fro=\u03a0\u03b1\u03bb\u03b1\u03b9\u03ac \u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac
+languages.frm=\u039c\u03ad\u03c3\u03b1 \u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac
+languages.pt=\u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03b9\u03ba\u03ac
+languages.pt_BR=\u03a0\u03bf\u03c1\u03c4\u03bf\u03b3\u03b1\u03bb\u03b9\u03ba\u03ac \u0392\u03c1\u03b1\u03b6\u03b9\u03bb\u03af\u03b1\u03c2
+languages.ps=\u03a0\u03ac\u03c3\u03c4\u03bf
+languages.de=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.sit=\u03a3\u03b9\u03bd\u03bf\u03b8\u03b9\u03b2\u03b5\u03c4\u03b9\u03b1\u03bd\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.pl=\u03a0\u03bf\u03bb\u03c9\u03bd\u03b9\u03ba\u03ac
+languages.da=\u0394\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.jpr=\u0399\u03bf\u03c5\u03b4\u03b1\u03ca\u03ba\u03ac-\u03a0\u03b5\u03c1\u03c3\u03b9\u03ba\u03ac
+languages.cy=\u039f\u03c5\u03b1\u03bb\u03b9\u03ba\u03ac
+languages.pa=\u03a0\u03b1\u03bd\u03c4\u03b6\u03b1\u03c0\u03b9\u03ba\u03ac
+languages.cs=\u03a4\u03c3\u03b5\u03c7\u03b9\u03ba\u03ac
+languages.rom=\u03a1\u03c9\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.co=\u039a\u03bf\u03c1\u03c3\u03b9\u03ba\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.mis=\u0394\u03b9\u03ac\u03c6\u03bf\u03c1\u03b5\u03c2 \u0393\u03bb\u03ce\u03c3\u03c3\u03b5\u03c2
+languages.de_CH=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac \u0395\u03bb\u03b2\u03b5\u03c4\u03af\u03b1\u03c2
+languages.or=\u039f\u03c1\u03af\u03b3\u03b9\u03b1
+languages.non=\u03a0\u03b1\u03bb\u03b1\u03b9\u03ac \u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03b9\u03ba\u03ac
+languages.ca=\u039a\u03b1\u03c4\u03b1\u03bb\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.mul=\u03a0\u03bf\u03bb\u03bb\u03b1\u03c0\u03bb\u03ad\u03c2 \u0393\u03bb\u03ce\u03c3\u03c3\u03b5\u03c2
+languages.oc=\u039f\u03ba\u03c3\u03b9\u03c4\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.bs=\u0392\u03bf\u03c3\u03bd\u03b9\u03b1\u03ba\u03ac
+languages.br=\u0392\u03c1\u03b5\u03c4\u03bf\u03bd\u03b9\u03ba\u03ac
+languages.bo=\u0398\u03b9\u03b2\u03b5\u03c4\u03b9\u03b1\u03bd\u03ac
+languages.zh_Hans=\u039a\u03b9\u03bd\u03b5\u03b6\u03b9\u03ba\u03ac \u0391\u03c0\u03bb\u03bf\u03c0\u03bf\u03b9\u03b7\u03bc\u03ad\u03bd\u03b1
+languages.bn=\u039c\u03c0\u03b5\u03bd\u03b3\u03ba\u03ac\u03bb\u03b9
+languages.zh_Hant=\u039a\u03b9\u03bd\u03b5\u03b6\u03b9\u03ba\u03ac \u03a0\u03b1\u03c1\u03b1\u03b4\u03bf\u03c3\u03b9\u03b1\u03ba\u03ac
+languages.bh=\u039c\u03c0\u03b9\u03c7\u03ac\u03c1\u03b9
+languages.bg=\u0392\u03bf\u03c5\u03bb\u03b3\u03b1\u03c1\u03b9\u03ba\u03ac
+languages.be=\u039b\u03b5\u03c5\u03ba\u03bf\u03c1\u03c9\u03c3\u03b9\u03ba\u03ac
+languages.no=\u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03b9\u03ba\u03ac
+languages.nn=\u039d\u03bf\u03c1\u03b2\u03b7\u03b3\u03b9\u03ba\u03ac \u039d\u03b9\u03bd\u03cc\u03c1\u03c3\u03ba
+languages.nl=\u039f\u03bb\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.zu=\u0396\u03bf\u03c5\u03bb\u03bf\u03cd
+languages.az=\u0391\u03b6\u03b5\u03c1\u03b9\u03ba\u03ac
+languages.ne=\u039d\u03b5\u03c0\u03ac\u03bb\u03b9
+languages.ay=\u0391\u03ca\u03bc\u03ac\u03c1\u03b1
+languages.de_AT=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac \u0391\u03c5\u03c3\u03c4\u03c1\u03af\u03b1\u03c2
+languages.ota=\u03a4\u03bf\u03c5\u03c1\u03ba\u03b9\u03ba\u03ac \u039f\u03b8\u03c9\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.aus=\u0391\u03c5\u03c3\u03c4\u03c1\u03b1\u03bb\u03b9\u03b1\u03bd\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.as=\u0391\u03c3\u03b1\u03bc\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.ar=\u0391\u03c1\u03b1\u03b2\u03b9\u03ba\u03ac
+languages.zh=\u039a\u03b9\u03bd\u03b5\u03b6\u03b9\u03ba\u03ac
+languages.zxx=\u03a7\u03c9\u03c1\u03af\u03c2 \u03b3\u03bb\u03c9\u03c3\u03c3\u03bf\u03bb\u03bf\u03b3\u03b9\u03ba\u03cc \u03c0\u03b5\u03c1\u03b9\u03b5\u03c7\u03cc\u03bc\u03b5\u03bd\u03bf
+languages.sga=\u03a0\u03b1\u03bb\u03b1\u03b9\u03ac \u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.my=\u0392\u03b9\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.am=\u0391\u03bc\u03b1\u03c1\u03b9\u03ba\u03ac
+languages.nai=\u0399\u03bd\u03b4\u03b9\u03b1\u03bd\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1 \u0392\u03cc\u03c1\u03b5\u03b9\u03b1\u03c2 \u0391\u03bc\u03b5\u03c1\u03b9\u03ba\u03ae\u03c2
+languages.mt=\u039c\u03b1\u03bb\u03c4\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.ms=\u039c\u03b1\u03bb\u03ac\u03b9
+languages.mr=\u039c\u03b1\u03c1\u03ac\u03b8\u03b9
+languages.af=\u0391\u03c6\u03c1\u03b9\u03ba\u03ac\u03b1\u03bd\u03c2
+languages.haw=\u03a7\u03b1\u03b2\u03b1\u03bd\u03ad\u03b6\u03b9\u03ba\u03b1
+languages.mo=\u039c\u03bf\u03bb\u03b4\u03b1\u03b2\u03b9\u03ba\u03ac
+languages.mn=\u039c\u03bf\u03b3\u03b3\u03bf\u03bb\u03b9\u03ba\u03ac
+languages.en_US=\u0391\u03b3\u03b3\u03bb\u03b9\u03ba\u03ac \u0397\u03bd\u03c9\u03bc\u03ad\u03bd\u03c9\u03bd \u03a0\u03bf\u03bb\u03b9\u03c4\u03b5\u03b9\u03ce\u03bd
+languages.ml=\u039c\u03b1\u03bb\u03b1\u03b3\u03b9\u03b1\u03bb\u03ac\u03bc
+languages.mk=\u03a3\u03bb\u03b1\u03b2\u03bf\u03bc\u03b1\u03ba\u03b5\u03b4\u03bf\u03bd\u03b9\u03ba\u03ac
+languages.mga=\u039c\u03ad\u03c3\u03b1 \u0399\u03c1\u03bb\u03b1\u03bd\u03b4\u03b9\u03ba\u03ac
+languages.egy=\u0391\u03c1\u03c7\u03b1\u03af\u03b1 \u0391\u03b9\u03b3\u03c5\u03c0\u03c4\u03b9\u03b1\u03ba\u03ac
+languages.tlh=\u039a\u03bb\u03af\u03bd\u03b3\u03ba\u03bf\u03bd
+languages.yi=\u0399\u03bf\u03c5\u03b4\u03b1\u03ca\u03ba\u03ac
+languages.bat=\u0392\u03b1\u03bb\u03c4\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+languages.lv=\u039b\u03b5\u03c4\u03bf\u03bd\u03b9\u03ba\u03ac
+languages.lt=\u039b\u03b9\u03b8\u03bf\u03c5\u03b1\u03bd\u03b9\u03ba\u03ac
+languages.fr_CH=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac \u0395\u03bb\u03b2\u03b5\u03c4\u03af\u03b1\u03c2
+languages.lo=\u039b\u03b1\u03bf\u03b8\u03b9\u03b1\u03bd\u03ac
+languages.ln=\u039b\u03b9\u03bd\u03b3\u03ba\u03ac\u03bb\u03b1
+languages.fr_CA=\u0393\u03b1\u03bb\u03bb\u03b9\u03ba\u03ac \u039a\u03b1\u03bd\u03b1\u03b4\u03ac
+languages.sem=\u03a3\u03b7\u03bc\u03b9\u03c4\u03b9\u03ba\u03ae \u0393\u03bb\u03ce\u03c3\u03c3\u03b1
+variants.1901=\u03a0\u03b1\u03c1\u03b1\u03b4\u03bf\u03c3\u03b9\u03b1\u03ba\u03ae \u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ae \u039f\u03c1\u03b8\u03bf\u03b3\u03c1\u03b1\u03c6\u03af\u03b1
+variants.MONOTON=\u039c\u03bf\u03bd\u03bf\u03c4\u03bf\u03bd\u03b9\u03ba\u03cc
+variants.1996=\u0393\u03b5\u03c1\u03bc\u03b1\u03bd\u03b9\u03ba\u03ae \u03bf\u03c1\u03b8\u03bf\u03b3\u03c1\u03b1\u03c6\u03af\u03b1 \u03c4\u03bf\u03c5 1996
+variants.POLYTON=\u03a0\u03bf\u03bb\u03c5\u03c4\u03bf\u03bd\u03b9\u03ba\u03cc
+variants.REVISED=\u0391\u03bd\u03b1\u03b8\u03b5\u03c9\u03c1\u03b7\u03bc\u03ad\u03bd\u03b7 \u03bf\u03c1\u03b8\u03bf\u03b3\u03c1\u03b1\u03c6\u03af\u03b1
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en.properties
index 6195ff4..7c767d9 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en.properties
@@ -5,375 +5,415 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
-currenciesDisplayName.YDD=Yemeni Dinar
-currenciesDisplayName.TWD=Taiwan New Dollar
-currenciesDisplayName.KES=Kenyan Shilling
-currenciesDisplayName.BYB=Belarussian New Ruble (1994-1999)
-currenciesDisplayName.LKR=Sri Lanka Rupee
-currenciesDisplayName.RWF=Rwandan Franc
-currenciesDisplayName.TJS=Tajikistan Somoni
-currenciesDisplayName.SDP=Sudanese Pound
-currenciesDisplayName.TJR=Tajikistan Ruble
-currenciesDisplayName.ERN=Eritrean Nakfa
-currenciesDisplayName.AFN=Afghani
-currenciesDisplayName.GRD=Greek Drachma
-currenciesDisplayName.IEP=Irish Pound
-currenciesDisplayName.ARS=Argentine Peso
-currenciesDisplayName.SDD=Sudanese Dinar
-currenciesDisplayName.ARP=Argentine Peso (1983-1985)
-currenciesDisplayName.GEL=Georgian Lari
-currenciesDisplayName.AFA=Afghani (1927-2002)
-currenciesDisplayName.GEK=Georgian Kupon Larit
-currenciesDisplayName.CRC=Costa Rican Colon
-currenciesDisplayName.FKP=Falkland Islands Pound
-currenciesDisplayName.EEK=Estonian Kroon
-currenciesDisplayName.HKD=Hong Kong Dollar
-currenciesDisplayName.MDL=Moldovan Leu
-currenciesDisplayName.ARA=Argentine Austral
-currenciesDisplayName.IQD=Iraqi Dinar
-currenciesDisplayName.SCR=Seychelles Rupee
-currenciesDisplayName.VUV=Vanuatu Vatu
-currenciesDisplayName.DKK=Danish Krone
-currenciesDisplayName.KPW=North Korean Won
-currenciesDisplayName.GQE=Equatorial Guinea Ekwele Guineana
-currenciesDisplayName.IDR=Indonesian Rupiah
-currenciesDisplayName.LVR=Latvian Ruble
-currenciesDisplayName.SOS=Somali Shilling
-currenciesDisplayName.EQE=Ekwele
-currenciesDisplayName.AED=United Arab Emirates Dirham
-currenciesDisplayName.BWP=Botswanan Pula
-currenciesDisplayName.LVL=Latvian Lats
-currenciesDisplayName.RUR=Russian Ruble (1991-1998)
-currenciesDisplayName.NIO=Nicaraguan Cordoba Oro
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
+currenciesDisplayName.YDD=Yemeni dinars
+currenciesDisplayName.KES=Kenyan shillings
+currenciesDisplayName.TWD=Taiwan dollars
+currenciesDisplayName.LKR=Sri Lanka rupees
+currenciesDisplayName.BYB=Belarussian new rubles (BYB)
+currenciesDisplayName.TJS=Tajikistan somonis
+currenciesDisplayName.RWF=Rwandan francs
+currenciesDisplayName.ERN=Eritrean nakfas
+currenciesDisplayName.TJR=Tajikistan rubles
+currenciesDisplayName.SDP=Old Sudanese pounds
+currenciesDisplayName.GRD=Greek drachmas
+currenciesDisplayName.AFN=Afghanis
+currenciesDisplayName.IEP=Irish pounds
+currenciesDisplayName.ARS=Argentine pesos
+currenciesDisplayName.SDG=Sudanese pounds
+currenciesDisplayName.ARP=Argentine pesos (ARP)
+currenciesDisplayName.SDD=Old Sudanese dinars
+currenciesDisplayName.GEL=Georgian laris
+currenciesDisplayName.GEK=Georgian kupon larits
+currenciesDisplayName.AFA=Afghanis (AFA)
+currenciesDisplayName.CRC=Costa Rican colons
+currenciesDisplayName.FKP=Falkland Islands pounds
+currenciesDisplayName.EEK=Estonian kroons
+currenciesDisplayName.MDL=Moldovan leus
+currenciesDisplayName.HKD=Hong Kong dollars
+currenciesDisplayName.IQD=Iraqi dinars
+currenciesDisplayName.ARA=Argentine australs
+currenciesDisplayName.SCR=Seychelles rupees
+currenciesDisplayName.VUV=Vanuatu vatus
+currenciesDisplayName.KPW=North Korean wons
+currenciesDisplayName.DKK=Danish kroner
+currenciesDisplayName.IDR=Indonesian rupiahs
+currenciesDisplayName.GQE=Equatorial Guinea ekwele
+currenciesDisplayName.SOS=Somali shillings
+currenciesDisplayName.LVR=Latvian rubles
+currenciesDisplayName.EQE=ekweles
+currenciesDisplayName.AED=UAE dirhams
+currenciesDisplayName.LVL=Latvian latses
+currenciesDisplayName.BWP=Botswanan pulas
+currenciesDisplayName.RUR=Russian rubles (RUR)
+currenciesDisplayName.NIO=Nicaraguan cordoba oros
currenciesDisplayName.XTS=Testing Currency Code
-currenciesDisplayName.ADP=Andorran Peseta
-currenciesDisplayName.FJD=Fiji Dollar
-currenciesDisplayName.MOP=Macao Pataca
-currenciesDisplayName.RUB=Russian Ruble
-currenciesDisplayName.CDF=Congolese Franc Congolais
-currenciesDisplayName.NIC=Nicaraguan Cordoba
-currenciesDisplayName.DJF=Djibouti Franc
-currenciesDisplayName.ECV=Ecuador Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Solomon Islands Dollar
-currenciesDisplayName.UZS=Uzbekistan Sum
-currenciesDisplayName.LUL=Luxembourg Financial Franc
-currenciesDisplayName.ECS=Ecuador Sucre
-currenciesDisplayName.PHP=Philippine Peso
-currenciesDisplayName.THB=Thai Baht
-currenciesDisplayName.LUF=Luxembourg Franc
-currenciesDisplayName.RHD=Rhodesian Dollar
-currenciesDisplayName.FIM=Finnish Markka
-currenciesDisplayName.LUC=Luxembourg Convertible Franc
-currenciesDisplayName.TTD=Trinidad and Tobago Dollar
-currenciesDisplayName.SZL=Swaziland Lilangeni
-currenciesDisplayName.MNT=Mongolian Tugrik
-currenciesDisplayName.SAR=Saudi Riyal
-currenciesDisplayName.UAK=Ukrainian Karbovanetz
-currenciesDisplayName.COU=Unidad de Valor Real
-currenciesDisplayName.UAH=Ukrainian Hryvnia
-currenciesDisplayName.HUF=Hungarian Forint
-currenciesDisplayName.COP=Colombian Peso
-currenciesDisplayName.QAR=Qatari Rial
-currenciesDisplayName.LTT=Lithuanian Talonas
-currenciesDisplayName.PTE=Portuguese Escudo
-currenciesDisplayName.AOR=Angolan Kwanza Reajustado (1995-1999)
-currenciesDisplayName.UYU=Uruguay Peso Uruguayo
-currenciesDisplayName.GBP=British Pound Sterling
-currenciesDisplayName.BIF=Burundi Franc
-currenciesDisplayName.INR=Indian Rupee
-currenciesDisplayName.ZRZ=Zairean Zaire
-currenciesDisplayName.AON=Angolan New Kwanza (1990-2000)
-currenciesDisplayName.LTL=Lithuanian Lita
-currenciesDisplayName.XFU=French UIC-Franc
-currenciesDisplayName.KZT=Kazakhstan Tenge
-currenciesDisplayName.MZM=Mozambique Metical
-currenciesDisplayName.UYP=Uruguay Peso (1975-1993)
-currenciesDisplayName.AOK=Angolan Kwanza (1977-1990)
-currenciesDisplayName.BUK=Burmese Kyat
-currenciesDisplayName.GNS=Guinea Syli
-currenciesDisplayName.XFO=French Gold Franc
-currenciesDisplayName.PGK=Papua New Guinea Kina
-currenciesDisplayName.SYP=Syrian Pound
-currenciesDisplayName.MZE=Mozambique Escudo
-currenciesDisplayName.OMR=Oman Rial
-currenciesDisplayName.NGN=Nigerian Naira
-currenciesDisplayName.ZRN=Zairean New Zaire
-currenciesDisplayName.AOA=Angolan Kwanza
-currenciesDisplayName.CNY=Chinese Yuan Renminbi
-currenciesDisplayName.MAF=Moroccan Franc
-currenciesDisplayName.GNF=Guinea Franc
-currenciesDisplayName.HTG=Haitian Gourde
-currenciesDisplayName.MAD=Moroccan Dirham
-currenciesDisplayName.TRY=New Turkish Lira
-currenciesDisplayName.MMK=Myanmar Kyat
-currenciesDisplayName.MYR=Malaysian Ringgit
+currenciesDisplayName.MOP=Macao patacas
+currenciesDisplayName.FJD=Fiji dollars
+currenciesDisplayName.ADP=Andorran pesetas
+currenciesDisplayName.RUB=Russian rubles
+currenciesDisplayName.CDF=Congolese francs Congolais
+currenciesDisplayName.NIC=Nicaraguan cordobas
+currenciesDisplayName.DJF=Djibouti francs
+currenciesDisplayName.UZS=Uzbekistan sums
+currenciesDisplayName.SBD=Solomon Islands dollars
+currenciesDisplayName.ECV=Ecuador unidads de valor Constante (UVC)
+currenciesDisplayName.LUL=Luxembourg financial francs
+currenciesDisplayName.ECS=Ecuador sucres
+currenciesDisplayName.THB=Thai bahts
+currenciesDisplayName.PHP=Philippine pesos
+currenciesDisplayName.LUF=Luxembourg francs
+currenciesDisplayName.RHD=Rhodesian dollars
+currenciesDisplayName.LUC=Luxembourg convertible francs
+currenciesDisplayName.FIM=Finnish markkas
+currenciesDisplayName.TTD=Trinidad and Tobago dollars
+currenciesDisplayName.SZL=Swaziland lilangenis
+currenciesDisplayName.MNT=Mongolian tugriks
+currenciesDisplayName.UAK=Ukrainian karbovanetzs
+currenciesDisplayName.SAR=Saudi riyals
+currenciesDisplayName.COU=unidad de valor reals
+currenciesDisplayName.UAH=Ukrainian hryvnias
+currenciesDisplayName.HUF=Hungarian forints
+currenciesDisplayName.QAR=Qatari rials
+currenciesDisplayName.COP=Colombian pesos
+currenciesDisplayName.LTT=Lithuanian talonases
+currenciesDisplayName.PTE=Portuguese escudos
+currenciesDisplayName.UYU=Uruguay peso
+currenciesDisplayName.AOR=Angolan kwanzas reajustado (AOR)
+currenciesDisplayName.GBP=British pound sterlings
+currenciesDisplayName.ZRZ=Zairean zaires
+currenciesDisplayName.INR=Indian rupees
+currenciesDisplayName.BIF=Burundi francs
+currenciesDisplayName.XFU=French UIC-francs
+currenciesDisplayName.MZN=Mozambique meticals
+currenciesDisplayName.LTL=Lithuanian litas
+currenciesDisplayName.AON=Angolan new kwanzas (AON)
+currenciesDisplayName.UYP=Uruguay pesos (UYP)
+currenciesDisplayName.MZM=Old Mozambique meticals
+currenciesDisplayName.KZT=Kazakhstan tenges
+currenciesDisplayName.AOK=Angolan kwanzas (AOK)
+currenciesDisplayName.GNS=Guinea sylis
+currenciesDisplayName.BUK=Burmese kyats
+currenciesDisplayName.XFO=French gold francs
+currenciesDisplayName.PGK=Papua New Guinea kinas
+currenciesDisplayName.UYI=Uruguay pesos en unidades indexadas
+currenciesDisplayName.SYP=Syrian pounds
+currenciesDisplayName.OMR=Oman rials
+currenciesDisplayName.MZE=Mozambique escudos
+currenciesDisplayName.ZRN=Zairean new zaires
+currenciesDisplayName.NGN=Nigerian nairas
+currenciesDisplayName.CNY=Chinese yuan
+currenciesDisplayName.AOA=Angolan kwanzas
+currenciesDisplayName.MAF=Moroccan francs
+currenciesDisplayName.RSD=Serbian dinars
+currenciesDisplayName.GNF=Guinea francs
+currenciesDisplayName.MAD=Moroccan dirhams
+currenciesDisplayName.HTG=Haitian gourdes
+currenciesDisplayName.TRY=Turkish Lira
+currenciesDisplayName.MMK=Myanmar kyats
currenciesDisplayName.XRE=RINET Funds
-currenciesDisplayName.LSM=Maloti
-currenciesDisplayName.LSL=Lesotho Loti
-currenciesDisplayName.XEU=European Currency Unit
-currenciesDisplayName.BHD=Bahraini Dinar
-currenciesDisplayName.SLL=Sierra Leone Leone
-currenciesDisplayName.BTN=Bhutan Ngultrum
-currenciesDisplayName.TRL=Turkish Lira
-currenciesDisplayName.KMF=Comoro Franc
-currenciesDisplayName.ANG=Netherlands Antillan Guilder
-currenciesDisplayName.CZK=Czech Republic Koruna
-currenciesDisplayName.AZM=Azerbaijanian Manat
-currenciesDisplayName.KYD=Cayman Islands Dollar
-currenciesDisplayName.GMD=Gambia Dalasi
-currenciesDisplayName.BGN=Bulgarian New Lev
-currenciesDisplayName.CAD=Canadian Dollar
-currenciesDisplayName.MXV=Mexican Unidad de Inversion (UDI)
-currenciesDisplayName.BGL=Bulgarian Hard Lev
-currenciesDisplayName.VEB=Venezuelan Bolivar
-currenciesDisplayName.MLF=Mali Franc
-currenciesDisplayName.ILS=Israeli New Sheqel
-currenciesDisplayName.MXP=Mexican Silver Peso (1861-1992)
-currenciesDisplayName.PES=Peruvian Sol
-currenciesDisplayName.GYD=Guyana Dollar
-currenciesDisplayName.MXN=Mexican Peso
-currenciesDisplayName.ILP=Israeli Pound
-currenciesDisplayName.SKK=Slovak Koruna
-currenciesDisplayName.CYP=Cyprus Pound
-currenciesDisplayName.XDR=Special Drawing Rights
-currenciesDisplayName.PEN=Peruvian Sol Nuevo
-currenciesDisplayName.LRD=Liberian Dollar
-currenciesDisplayName.PEI=Peruvian Inti
-currenciesDisplayName.AMD=Armenian Dram
+currenciesDisplayName.MYR=Malaysian ringgits
+currenciesDisplayName.LSM=malotis
+currenciesDisplayName.XEU=European currency units
+currenciesDisplayName.LSL=Lesotho lotis
+currenciesDisplayName.SLL=Sierra Leone leones
+currenciesDisplayName.BHD=Bahraini dinars
+currenciesDisplayName.BTN=Bhutan ngultrums
+currenciesDisplayName.TRL=Old Turkish Lira
+currenciesDisplayName.KMF=Comoro francs
+currenciesDisplayName.CZK=Czech Republic korunas
+currenciesDisplayName.ANG=Netherlands Antillan guilders
+currenciesDisplayName.AZN=Azerbaijanian manats
+currenciesDisplayName.AZM=Azerbaijanian manats (AZM)
+currenciesDisplayName.KYD=Cayman Islands dollars
+currenciesDisplayName.GMD=Gambia dalasis
+currenciesDisplayName.VEF=Venezuelan bolivar fuertes
+currenciesDisplayName.BGN=Bulgarian Levs
+currenciesDisplayName.MXV=Mexican unidads de inversion (UDI)
+currenciesDisplayName.CAD=Canadian dollars
+currenciesDisplayName.BGL=Bulgarian hard levs
+currenciesDisplayName.VEB=Venezuelan bolivars
+currenciesDisplayName.MLF=Mali francs
+currenciesDisplayName.MXP=Mexican silver pesos (MXP)
+currenciesDisplayName.ILS=New Israeli Sheqels
+currenciesDisplayName.PES=Peruvian sols
+currenciesDisplayName.MXN=Mexican pesos
+currenciesDisplayName.GYD=Guyana dollars
+currenciesDisplayName.ILP=Israeli pounds
+currenciesDisplayName.CYP=Cyprus pounds
+currenciesDisplayName.SKK=Slovak korunas
+currenciesDisplayName.XDR=special drawing rights
+currenciesDisplayName.PEN=Peruvian sol nuevos
+currenciesDisplayName.LRD=Liberian dollars
+currenciesDisplayName.PEI=Peruvian intis
+currenciesDisplayName.AMD=Armenian drams
+currenciesDisplayName.BSD=Bahamian dollars
currenciesDisplayName.XPT=Platinum
-currenciesDisplayName.BSD=Bahamian Dollar
-currenciesDisplayName.HRK=Croatian Kuna
-currenciesDisplayName.CLP=Chilean Peso
-currenciesDisplayName.HRD=Croatian Dinar
-currenciesDisplayName.XPF=CFP Franc
-currenciesDisplayName.FRF=French Franc
+currenciesDisplayName.HRK=Croatian kunas
+currenciesDisplayName.CLP=Chilean pesos
+currenciesDisplayName.HRD=Croatian dinars
+currenciesDisplayName.XPF=CFP francs
+currenciesDisplayName.FRF=French francs
currenciesDisplayName.XPD=Palladium
-currenciesDisplayName.BRR=Brazilian Cruzeiro
-currenciesDisplayName.MKD=Macedonian Denar
-currenciesDisplayName.CLF=Chilean Unidades de Fomento
-currenciesDisplayName.BRN=Brazilian Cruzado Novo
-currenciesDisplayName.ALL=Albanian Lek
-currenciesDisplayName.MWK=Malawi Kwacha
-currenciesDisplayName.BRL=Brazilian Real
-currenciesDisplayName.TPE=Timor Escudo
-currenciesDisplayName.BRE=Brazilian Cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brazilian Cruzado
-currenciesDisplayName.BRB=Brazilian Cruzeiro Novo (1967-1986)
-currenciesDisplayName.DEM=Deutsche Mark
-currenciesDisplayName.KWD=Kuwaiti Dinar
-currenciesDisplayName.XCD=East Caribbean Dollar
-currenciesDisplayName.NPR=Nepalese Rupee
-currenciesDisplayName.GWP=Guinea-Bissau Peso
-currenciesDisplayName.YUN=Yugoslavian Convertible Dinar
-currenciesDisplayName.SVC=El Salvador Colon
-currenciesDisplayName.YUM=Yugoslavian Noviy Dinar
-currenciesDisplayName.BEL=Belgian Franc (financial)
-currenciesDisplayName.SIT=Slovenia Tolar
-currenciesDisplayName.JPY=Japanese Yen
-currenciesDisplayName.XOF=CFA Franc BCEAO
-currenciesDisplayName.MVR=Maldive Islands Rufiyaa
-currenciesDisplayName.GWE=Portuguese Guinea Escudo
-currenciesDisplayName.BEF=Belgian Franc
-currenciesDisplayName.TOP=Tonga Pa\u02bbanga
-currenciesDisplayName.YUD=Yugoslavian Hard Dinar
-currenciesDisplayName.BEC=Belgian Franc (convertible)
-currenciesDisplayName.SUR=Soviet Rouble
-currenciesDisplayName.ROL=Romanian Lei
-currenciesDisplayName.DDM=East German Ostmark
-currenciesDisplayName.BDT=Bangladesh Taka
-currenciesDisplayName.XBD=European Unit of Account (XBD)
-currenciesDisplayName.AWG=Aruban Guilder
-currenciesDisplayName.XBC=European Unit of Account (XBC)
-currenciesDisplayName.XBB=European Monetary Unit
-currenciesDisplayName.XBA=European Composite Unit
-currenciesDisplayName.NOK=Norwegian Krone
-currenciesDisplayName.MUR=Mauritius Rupee
-currenciesDisplayName.ZAR=South African Rand
-currenciesDisplayName.SHP=Saint Helena Pound
+currenciesDisplayName.BRR=Brazilian cruzeiros
+currenciesDisplayName.MKD=Macedonian denars
+currenciesDisplayName.CLF=Chilean unidades de fomentos
+currenciesDisplayName.ALL=Albanian lek\u00eb
+currenciesDisplayName.BRN=Brazilian cruzado novos
+currenciesDisplayName.MWK=Malawi Kwachas
+currenciesDisplayName.BRL=Brazilian reals
+currenciesDisplayName.TPE=Timor escudos
+currenciesDisplayName.BRE=Brazilian cruzeiros (BRE)
+currenciesDisplayName.BRC=Brazilian cruzados
+currenciesDisplayName.BRB=Brazilian cruzeiros novo (BRB)
+currenciesDisplayName.DEM=Deutsche marks
+currenciesDisplayName.KWD=Kuwaiti dinars
+currenciesDisplayName.XCD=East Caribbean dollars
+currenciesDisplayName.NPR=Nepalese rupees
+currenciesDisplayName.GWP=Guinea-Bissau pesos
+currenciesDisplayName.YUN=Yugoslavian convertible dinars
+currenciesDisplayName.SVC=El Salvador colons
+currenciesDisplayName.YUM=Yugoslavian Noviy dinars
+currenciesDisplayName.BEL=Belgian francs (financial)
+currenciesDisplayName.SIT=Slovenia tolars
+currenciesDisplayName.JPY=Japanese yen
+currenciesDisplayName.XOF=CFA francs BCEAO
+currenciesDisplayName.MVR=Maldive Islands rufiyaas
+currenciesDisplayName.BEF=Belgian francs
+currenciesDisplayName.GWE=Portuguese Guinea escudos
+currenciesDisplayName.TOP=Tonga pa\u02bbangas
+currenciesDisplayName.YUD=Yugoslavian hard dinars
+currenciesDisplayName.BEC=Belgian francs (convertible)
+currenciesDisplayName.SUR=Soviet roubles
+currenciesDisplayName.RON=Romanian lei
+currenciesDisplayName.ROL=Old Romanian Lei
+currenciesDisplayName.BDT=Bangladeshi takas
+currenciesDisplayName.DDM=East German ostmarks
+currenciesDisplayName.XBD=European units of account (XBD)
+currenciesDisplayName.AWG=Aruban florin
+currenciesDisplayName.XBC=European units of account (XBC)
+currenciesDisplayName.XBB=European monetary units
+currenciesDisplayName.XBA=European composite units
+currenciesDisplayName.NOK=Norwegian krones
+currenciesDisplayName.MUR=Mauritius rupees
+currenciesDisplayName.ZAR=South African rands
+currenciesDisplayName.SHP=Saint Helena pounds
currenciesDisplayName.XAU=Gold
-currenciesDisplayName.ZAL=South African Rand (financial)
-currenciesDisplayName.VND=Vietnamese Dong
-currenciesDisplayName.TZS=Tanzanian Shilling
-currenciesDisplayName.GIP=Gibraltar Pound
-currenciesDisplayName.TND=Tunisian Dinar
-currenciesDisplayName.CVE=Cape Verde Escudo
-currenciesDisplayName.UGX=Ugandan Shilling
+currenciesDisplayName.ZAL=South African rands (financial)
+currenciesDisplayName.VND=Vietnamese dongs
+currenciesDisplayName.TZS=Tanzanian shillings
+currenciesDisplayName.GIP=Gibraltar pounds
+currenciesDisplayName.TND=Tunisian dinars
+currenciesDisplayName.CVE=Cape Verde escudos
+currenciesDisplayName.UGX=Ugandan shillings
currenciesDisplayName.XAG=Silver
-currenciesDisplayName.ZMK=Zambian Kwacha
-currenciesDisplayName.JOD=Jordanian Dinar
-currenciesDisplayName.XAF=CFA Franc BEAC
-currenciesDisplayName.LBP=Lebanese Pound
-currenciesDisplayName.UGS=Ugandan Shilling (1966-1987)
-currenciesDisplayName.STD=Sao Tome and Principe Dobra
-currenciesDisplayName.WST=Western Samoa Tala
-currenciesDisplayName.KHR=Cambodian Riel
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Dominican Peso
-currenciesDisplayName.BOV=Bolivian Mvdol
-currenciesDisplayName.MTP=Maltese Pound
-currenciesDisplayName.USS=US Dollar (Same day)
-currenciesDisplayName.BOP=Bolivian Peso
-currenciesDisplayName.CUP=Cuban Peso
-currenciesDisplayName.MTL=Maltese Lira
-currenciesDisplayName.TMM=Turkmenistan Manat
-currenciesDisplayName.USN=US Dollar (Next day)
-currenciesDisplayName.SGD=Singapore Dollar
-currenciesDisplayName.NZD=New Zealand Dollar
-currenciesDisplayName.USD=US Dollar
-currenciesDisplayName.HNL=Hoduras Lempira
-currenciesDisplayName.BOB=Boliviano
-currenciesDisplayName.CHW=WIR Franc
-currenciesDisplayName.ITL=Italian Lira
-currenciesDisplayName.PAB=Panamanian Balboa
-currenciesDisplayName.GTQ=Guatemala Quetzal
-currenciesDisplayName.XXX=No Currency
-currenciesDisplayName.LAK=Laotian Kip
-currenciesDisplayName.GHC=Ghana Cedi
-currenciesDisplayName.AUD=Australian Dollar
-currenciesDisplayName.NAD=Namibia Dollar
-currenciesDisplayName.KGS=Kyrgystan Som
-currenciesDisplayName.MGF=Madagascar Franc
-currenciesDisplayName.CHF=Swiss Franc
-currenciesDisplayName.BBD=Barbados Dollar
-currenciesDisplayName.CHE=WIR Euro
-currenciesDisplayName.MGA=Madagascar Ariary
-currenciesDisplayName.PYG=Paraguay Guarani
-currenciesDisplayName.PLZ=Polish Zloty (1950-1995)
-currenciesDisplayName.YER=Yemeni Rial
-currenciesDisplayName.ATS=Austrian Schilling
-currenciesDisplayName.ETB=Ethiopian Birr
-currenciesDisplayName.BND=Brunei Dollar
-currenciesDisplayName.JMD=Jamaican Dollar
-currenciesDisplayName.EGP=Egyptian Pound
-currenciesDisplayName.PLN=Polish Zloty
-currenciesDisplayName.DZD=Algerian Dinar
-currenciesDisplayName.ISK=Icelandic Krona
-currenciesDisplayName.SRG=Suriname Guilder
-currenciesDisplayName.LYD=Libyan Dinar
-currenciesDisplayName.SRD=Surinam Dollar
-currenciesDisplayName.BZD=Belize Dollar
-currenciesDisplayName.BAM=Bosnia-Herzegovina Convertible Mark
-currenciesDisplayName.ESP=Spanish Peseta
-currenciesDisplayName.KRW=South Korean Won
-currenciesDisplayName.NLG=Netherlands Guilder
-currenciesDisplayName.MRO=Mauritania Ouguiya
-currenciesDisplayName.BAD=Bosnia-Herzegovina Dinar
-currenciesDisplayName.ZWD=Zimbabwe Dollar
-currenciesDisplayName.SEK=Swedish Krona
-currenciesDisplayName.CSK=Czechoslovak Hard Koruna
-currenciesDisplayName.ESB=Spanish Peseta (convertible account)
-currenciesDisplayName.BYR=Belarussian Ruble
-currenciesDisplayName.ESA=Spanish Peseta (A account)
-currenciesDisplayName.IRR=Iranian Rial
-currenciesDisplayName.PKR=Pakistan Rupee
-currenciesDisplayName.BMD=Bermudan Dollar
-currenciesDisplayName.CSD=Serbian Dinar
-currenciesSymbol.BGL=lev
+currenciesDisplayName.ZMK=Zambian kwachas
+currenciesDisplayName.JOD=Jordanian dinars
+currenciesDisplayName.XAF=CFA francs BEAC
+currenciesDisplayName.LBP=Lebanese pounds
+currenciesDisplayName.UGS=Ugandan shillings (UGS)
+currenciesDisplayName.STD=Sao Tome and Principe dobras
+currenciesDisplayName.WST=Western Samoa talas
+currenciesDisplayName.KHR=Cambodian riels
+currenciesDisplayName.DOP=Dominican pesos
+currenciesDisplayName.EUR=euros
+currenciesDisplayName.BOV=Bolivian mvdols
+currenciesDisplayName.MTP=Maltese pounds
+currenciesDisplayName.USS=US dollars (same day)
+currenciesDisplayName.BOP=Bolivian pesos
+currenciesDisplayName.CUP=Cuban pesos
+currenciesDisplayName.MTL=Maltese liras
+currenciesDisplayName.TMM=Turkmenistan manats
+currenciesDisplayName.USN=US dollars (next day)
+currenciesDisplayName.GHS=Ghana cedis
+currenciesDisplayName.SGD=Singapore dollars
+currenciesDisplayName.NZD=New Zealand dollars
+currenciesDisplayName.USD=US dollars
+currenciesDisplayName.BOB=Bolivianos
+currenciesDisplayName.HNL=Honduras lempiras
+currenciesDisplayName.CHW=WIR francs
+currenciesDisplayName.ITL=Italian liras
+currenciesDisplayName.PAB=Panamanian balboas
+currenciesDisplayName.GTQ=Guatemala quetzals
+currenciesDisplayName.XXX=unknown/invalid currency
+currenciesDisplayName.AUD=Australian dollars
+currenciesDisplayName.GHC=Ghana cedis (GHC)
+currenciesDisplayName.LAK=Laotian kips
+currenciesDisplayName.NAD=Namibia dollars
+currenciesDisplayName.KGS=Kyrgystan soms
+currenciesDisplayName.MGF=Madagascar francs
+currenciesDisplayName.BBD=Barbados dollars
+currenciesDisplayName.CHF=Swiss francs
+currenciesDisplayName.CHE=WIR euros
+currenciesDisplayName.MGA=Madagascar Ariaries
+currenciesDisplayName.PYG=Paraguay guaranis
+currenciesDisplayName.PLZ=Polish zlotys (PLZ)
+currenciesDisplayName.YER=Yemeni rials
+currenciesDisplayName.ATS=Austrian schillings
+currenciesDisplayName.ETB=Ethiopian birrs
+currenciesDisplayName.BND=Brunei dollars
+currenciesDisplayName.EGP=Egyptian pounds
+currenciesDisplayName.JMD=Jamaican dollars
+currenciesDisplayName.PLN=Polish zloties
+currenciesDisplayName.DZD=Algerian dinars
+currenciesDisplayName.ISK=Icelandic kronas
+currenciesDisplayName.SRG=Suriname guilders
+currenciesDisplayName.LYD=Libyan dinars
+currenciesDisplayName.SRD=Surinam dollars
+currenciesDisplayName.BAM=Bosnia-Herzegovina convertible marks
+currenciesDisplayName.BZD=Belize dollars
+currenciesDisplayName.ESP=Spanish pesetas
+currenciesDisplayName.KRW=South Korean wons
+currenciesDisplayName.NLG=Netherlands guilders
+currenciesDisplayName.MRO=Mauritania ouguiyas
+currenciesDisplayName.BAD=Bosnia-Herzegovina dinars
+currenciesDisplayName.ZWD=Zimbabwe dollars
+currenciesDisplayName.SEK=Swedish kronas
+currenciesDisplayName.CSK=Czechoslovak hard korunas
+currenciesDisplayName.BYR=Belarussian rubles
+currenciesDisplayName.ESB=Spanish pesetas (convertible account)
+currenciesDisplayName.IRR=Iranian rials
+currenciesDisplayName.ESA=Spanish pesetas (A account)
+currenciesDisplayName.PKR=Pakistan rupees
+currenciesDisplayName.BMD=Bermudan dollars
+currenciesDisplayName.CSD=Old Serbian dinars
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
-currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
+currenciesSymbol.BMD=BD$
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
-currenciesSymbol.CLP=Ch$
+currenciesSymbol.CLP=CL$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
currenciesSymbol.HKD=HK$
-currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.ARS=AR$
+currenciesSymbol.JPY=\u00a5
currenciesSymbol.ALL=lek
-currenciesSymbol.CRC=C
+currenciesSymbol.CRC=\u20a1
currenciesSymbol.IDR=Rp
-currenciesSymbol.DKK=DKr
+currenciesSymbol.VND=\u20ab
+currenciesSymbol.DKK=Dkr
currenciesSymbol.TZS=T Sh
currenciesSymbol.SBD=SI$
+currenciesSymbol.THB=\u0e3f
currenciesSymbol.NOK=NKr
currenciesSymbol.UGX=U Sh
+currenciesSymbol.NIC=C$
currenciesSymbol.BEF=BF
currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=\u20b1
+currenciesSymbol.BWP=P
currenciesSymbol.SZL=E
currenciesSymbol.STD=Db
+currenciesSymbol.UAH=\u20b4
currenciesSymbol.SAR=SRl
currenciesSymbol.FJD=F$
currenciesSymbol.UYU=Ur$
currenciesSymbol.BDT=Tk
+currenciesSymbol.AWG=Afl.
currenciesSymbol.QAR=QR
currenciesSymbol.LBP=LL
-currenciesSymbol.MNT=Tug
-currenciesSymbol.DJF=DF
+currenciesSymbol.MNT=\u20ae
+currenciesSymbol.DJF=Fdj
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
currenciesSymbol.SGD=S$
currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
+currenciesSymbol.CVE=Esc
currenciesSymbol.HUF=Ft
-currenciesSymbol.NZD=$NZ
+currenciesSymbol.NZD=NZ$
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
+currenciesSymbol.INR=\u20a8
+currenciesSymbol.NGN=\u20a6
currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
currenciesSymbol.NAD=N$
+currenciesSymbol.GHS=\u20b5
+currenciesSymbol.COP=CO$
currenciesSymbol.TRL=TL
-currenciesSymbol.COP=Col$
+currenciesSymbol.PYG=\u20b2
+currenciesSymbol.ITL=\u20a4
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
currenciesSymbol.MYR=RM
currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
-currenciesSymbol.BIF=Fbu
-currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
+currenciesSymbol.BIF=FBu
+currenciesSymbol.VEF=BsF
+currenciesSymbol.PLN=z\u0142
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
-currenciesSymbol.CNY=Y
+currenciesSymbol.CNY=RMB
currenciesSymbol.KMF=CF
+currenciesSymbol.AOA=Kz
currenciesSymbol.SEK=SKr
-currenciesSymbol.AUD=$A
+currenciesSymbol.AUD=A$
currenciesSymbol.LYD=LD
currenciesSymbol.JMD=J$
currenciesSymbol.SKK=Sk
-currenciesSymbol.CHF=SwF
+currenciesSymbol.CHF=Fr.
currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
-currenciesSymbol.BBD=BDS$
+currenciesSymbol.BBD=Bds$
+currenciesSymbol.KRW=\u20a9
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
+currenciesSymbol.CZK=K\u010d
currenciesSymbol.DZD=DA
-currenciesSymbol.ANG=NA f.
+currenciesSymbol.BND=B$
+currenciesSymbol.ANG=NAf.
+currenciesSymbol.ILS=\u20aa
currenciesSymbol.ESP=\u20a7
+currenciesSymbol.AZN=man.
currenciesSymbol.BZD=BZ$
currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
-currenciesSymbol.CAD=Can$
-shortMonths=Jan®Feb®Mar®Apr®May®Jun®Jul®Aug®Sep®Oct®Nov®Dec®®
-months=January®February®March®April®May®June®July®August®September®October®November®December®®
-shortWeekdays=®Sun®Mon®Tue®Wed®Thu®Fri®Sat®
-weekdays=®Sunday®Monday®Tuesday®Wednesday®Thursday®Friday®Saturday®
-eras=BC®AD®
+currenciesSymbol.CAD=CA$
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMay\u00aeJun\u00aeJul\u00aeAug\u00aeSep\u00aeOct\u00aeNov\u00aeDec\u00ae\u00ae
+months=January\u00aeFebruary\u00aeMarch\u00aeApril\u00aeMay\u00aeJune\u00aeJuly\u00aeAugust\u00aeSeptember\u00aeOctober\u00aeNovember\u00aeDecember\u00ae\u00ae
+shortWeekdays=\u00aeSun\u00aeMon\u00aeTue\u00aeWed\u00aeThu\u00aeFri\u00aeSat\u00ae
+weekdays=\u00aeSunday\u00aeMonday\u00aeTuesday\u00aeWednesday\u00aeThursday\u00aeFriday\u00aeSaturday\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=a.m.\u00aep.m.\u00ae
shortDateFormat=M/d/yy
mediumDateFormat=MMM d, yyyy
longDateFormat=MMMM d, yyyy
@@ -382,7 +422,7 @@ shortTimeFormat=h:mm a
mediumTimeFormat=h:mm:ss a
longTimeFormat=h:mm:ss a z
fullTimeFormat=h:mm:ss a z
-zoneStrings=Europe/Paris®CEST®Central European Standard Time®CEDT®Central European Daylight Time®©Pacific/Honolulu®HST®Hawaii Standard Time®HDT®Hawaii Daylight Time®©Europe/London®BST®British Standard Time®BDT®British Daylight Time®©America/Edmonton®MST (CA)®Mountain Standard Time (CA)®MDT (CA)®Mountain Daylight Time (CA)®©America/Denver®MST®Mountain Standard Time®MDT®Mountain Daylight Time®©Asia/Jerusalem®IST®Israel Standard Time®IDT®Israel Daylight Time®©America/Anchorage®AKST®Alaska Standard Time®AKDT®Alaska Daylight Time®©America/Phoenix®MST®Mountain Standard Time®MDT®Mountain Daylight Time®©America/Los_Angeles®PST®Pacific Standard Time®PDT®Pacific Daylight Time®©America/Chicago®CST®Central Standard Time®CDT®Central Daylight Time®©America/Halifax®AST®Atlantic Standard Time®ADT®Atlantic Daylight Time®©America/St_Johns®NST®Newfoundland Standard Time®NDT®Newfoundland Daylight Time®©America/Winnipeg®CST (CA)®Central Standard Time (CA)®CDT (CA)®Central Daylight Time (CA)®©America/Vancouver®PST (CA)®Pacific Standard Time (CA)®PDT (CA)®Pacific Daylight Time (CA)®©America/New_York®EST®Eastern Standard Time®EDT®Eastern Daylight Time®©America/Montreal®EST (CA)®Eastern Standard Time (CA)®EDT (CA)®Eastern Daylight Time (CA)®©Asia/Shanghai®CST®China Standard Time®CDT®China Daylight Time®©Asia/Tokyo®JST®Japan Standard Time®JDT®Japan Daylight Time®©Europe/Bucharest®EET®Eastern European Standard Time®EEST®Eastern European Daylight Time®©America/Indianapolis®EST®Eastern Standard Time®EDT®Eastern Daylight Time®©
+zoneStrings=Marshall_Islands\u00aeMarshall Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeShevchenko Time\u00ae\u00aeShevchenko Summer Time\u00ae\u00ae\u00a9Bangladesh\u00aeBangladesh Time\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeAustralian Central Western Standard Time\u00ae\u00aeAustralian Central Western Daylight Time\u00ae\u00ae\u00a9Marquesas\u00aeMarquesas Time\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeCentral Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeEastern Standard Time\u00ae\u00aeEastern Daylight Time\u00ae\u00ae\u00a9China\u00aeChina Standard Time\u00aeCST (China)\u00aeChina Daylight Time\u00aeCDT (China)\u00ae\u00a9Omsk\u00aeOmsk Time\u00ae\u00aeOmsk Summer Time\u00ae\u00ae\u00a9Guyana\u00aeGuyana Time\u00ae\u00ae\u00ae\u00ae\u00a9Europe/Dublin\u00ae\u00ae\u00aeIrish Summer Time\u00aeIST (Irish)\u00ae\u00a9Uzbekistan\u00aeUzbekistan Time\u00ae\u00aeUzbekistan Summer Time\u00ae\u00ae\u00a9Uruguay\u00aeUruguay Time\u00ae\u00aeUruguay Summer Time\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeEast Kazakhstan Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeKarachi Time\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeTbilisi Time\u00ae\u00aeTbilisi Summer Time\u00ae\u00ae\u00a9Tashkent\u00aeTashkent Time\u00ae\u00aeTashkent Summer Time\u00ae\u00ae\u00a9Changbai\u00aeChangbai Time\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeChatham Standard Time\u00ae\u00aeChatham Daylight Time\u00ae\u00ae\u00a9South_Georgia\u00aeSouth Georgia Time\u00aeGST (S. Georgia)\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeFrench Guiana Time\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeFrunze Time\u00ae\u00aeFrunze Summer Time\u00ae\u00ae\u00a9Europe_Eastern\u00aeEastern European Time\u00ae\u00aeEastern European Summer Time\u00ae\u00ae\u00a9Greenland_Eastern\u00aeEast Greenland Time\u00ae\u00aeEast Greenland Summer Time\u00ae\u00ae\u00a9Dacca\u00aeDacca Time\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00aeDushanbe Time\u00ae\u00aeDushanbe Summer Time\u00ae\u00ae\u00a9Chile\u00aeChile Time\u00ae\u00aeChile Summer Time\u00ae\u00ae\u00a9Europe_Central\u00aeCentral European Time\u00ae\u00aeCentral European Summer Time\u00ae\u00ae\u00a9Acre\u00aeAcre Time\u00ae\u00aeAcre Summer Time\u00ae\u00ae\u00a9Arabian\u00aeArabian Standard Time\u00aeAST (Arabian)\u00aeArabian Daylight Time\u00aeADT (Arabian)\u00ae\u00a9East_Timor\u00aeEast Timor Time\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeNew Zealand Standard Time\u00ae\u00aeNew Zealand Daylight Time\u00ae\u00ae\u00a9Indochina\u00aeIndochina Time\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00aeSouth Africa Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeKwajalein Time\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeMountain Standard Time\u00ae\u00aeMountain Daylight Time\u00ae\u00ae\u00a9DumontDUrville\u00aeDumont-d'Urville Time\u00ae\u00ae\u00ae\u00ae\u00a9Tokelau\u00aeTokelau Time\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeEcuador Time\u00ae\u00ae\u00ae\u00ae\u00a9Hovd\u00aeHovd Time\u00ae\u00aeHovd Summer Time\u00ae\u00ae\u00a9Africa_Central\u00aeCentral Africa Time\u00ae\u00ae\u00ae\u00ae\u00a9Phoenix_Islands\u00aePhoenix Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00aeArmenia Time\u00aeAMT (Armenia)\u00aeArmenia Summer Time\u00aeAMST (Armenia)\u00ae\u00a9Tuvalu\u00aeTuvalu Time\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00aeSakhalin Time\u00ae\u00aeSakhalin Summer Time\u00ae\u00ae\u00a9Samara\u00aeSamara Time\u00ae\u00aeSamara Summer Time\u00ae\u00ae\u00a9Palau\u00aePalau Time\u00ae\u00ae\u00ae\u00ae\u00a9Kosrae\u00aeKosrae Time\u00ae\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii Standard Time\u00ae\u00aeAlaska-Hawaii Daylight Time\u00ae\u00ae\u00a9America_Central\u00aeCentral Standard Time\u00ae\u00aeCentral Daylight Time\u00ae\u00ae\u00a9Pitcairn\u00aePitcairn Time\u00ae\u00ae\u00ae\u00ae\u00a9Malaysia\u00aeMalaysia Time\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeMoscow Standard Time\u00ae\u00aeMoscow Summer Time\u00ae\u00ae\u00a9Vanuatu\u00aeVanuatu Time\u00ae\u00aeVanuatu Summer Time\u00ae\u00ae\u00a9Kamchatka\u00aePetropavlovsk-Kamchatski Time\u00ae\u00aePetropavlovsk-Kamchatski Summer Time\u00ae\u00ae\u00a9Cape_Verde\u00aeCape Verde Time\u00ae\u00aeCape Verde Summer Time\u00ae\u00ae\u00a9Aqtobe\u00aeAqtobe Time\u00ae\u00aeAqtobe Summer Time\u00ae\u00ae\u00a9Falkland\u00aeFalkland Islands Time\u00ae\u00aeFalkland Islands Summer Time\u00ae\u00ae\u00a9Argentina\u00aeArgentina Time\u00ae\u00aeArgentina Summer Time\u00ae\u00ae\u00a9Krasnoyarsk\u00aeKrasnoyarsk Time\u00ae\u00aeKrasnoyarsk Summer Time\u00ae\u00ae\u00a9Peru\u00aePeru Time\u00ae\u00aePeru Summer Time\u00ae\u00ae\u00a9Qyzylorda\u00aeQyzylorda Time\u00ae\u00aeQyzylorda Summer Time\u00ae\u00ae\u00a9Tahiti\u00aeTahiti Time\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00aeIndian Ocean Time\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeGreenwich Mean Time\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00aeVladivostok Time\u00ae\u00aeVladivostok Summer Time\u00ae\u00ae\u00a9Atlantic\u00aeAtlantic Standard Time\u00ae\u00aeAtlantic Daylight Time\u00ae\u00ae\u00a9Truk\u00aeTruk Time\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aeRothera Time\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeWallis and Futuna Time\u00ae\u00ae\u00ae\u00ae\u00a9Syowa\u00aeSyowa Time\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00aeKorean Standard Time\u00ae\u00aeKorean Daylight Time\u00ae\u00ae\u00a9Ashkhabad\u00aeAshkhabad Time\u00ae\u00aeAshkhabad Summer Time\u00ae\u00ae\u00a9Australia_Western\u00aeAustralian Western Standard Time\u00ae\u00aeAustralian Western Daylight Time\u00ae\u00ae\u00a9Gilbert_Islands\u00aeGilbert Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Seychelles\u00aeSeychelles Time\u00ae\u00ae\u00ae\u00ae\u00a9Cocos\u00aeCocos Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00aeVenezuela Time\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00aeSolomon Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeParaguay Time\u00ae\u00aeParaguay Summer Time\u00ae\u00ae\u00a9Yakutsk\u00aeYakutsk Time\u00ae\u00aeYakutsk Summer Time\u00ae\u00ae\u00a9Azerbaijan\u00aeAzerbaijan Time\u00ae\u00aeAzerbaijan Summer Time\u00ae\u00ae\u00a9Kizilorda\u00aeKizilorda Time\u00ae\u00aeKizilorda Summer Time\u00ae\u00ae\u00a9Yukon\u00aeYukon Standard Time\u00ae\u00aeYukon Daylight Time\u00ae\u00ae\u00a9Dutch_Guiana\u00aeDutch Guiana Time\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeYerevan Time\u00ae\u00aeYerevan Summer Time\u00ae\u00ae\u00a9Turkmenistan\u00aeTurkmenistan Time\u00ae\u00aeTurkmenistan Summer Time\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundland Standard Time\u00ae\u00aeNewfoundland Daylight Time\u00ae\u00ae\u00a9Africa_Eastern\u00aeEast Africa Time\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00aeWake Island Time\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aePakistan Time\u00ae\u00aePakistan Summer Time\u00ae\u00ae\u00a9Singapore\u00aeSingapore Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Western\u00aeWestern European Time\u00ae\u00aeWestern European Summer Time\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybyshev Time\u00ae\u00aeKuybyshev Summer Time\u00ae\u00ae\u00a9India\u00aeIndia Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeChamorro Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00aeWest Greenland Time\u00ae\u00aeWest Greenland Summer Time\u00ae\u00ae\u00a9Bolivia\u00aeBolivia Time\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeWestern Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeGalapagos Time\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00aeIran Standard Time\u00ae\u00aeIran Daylight Time\u00ae\u00ae\u00a9Suriname\u00aeSuriname Time\u00ae\u00ae\u00ae\u00ae\u00a9Vostok\u00aeVostok Time\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeMalaya Time\u00ae\u00ae\u00ae\u00ae\u00a9Papua_New_Guinea\u00aePapua New Guinea Time\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBering Standard Time\u00ae\u00aeBering Daylight Time\u00ae\u00ae\u00a9Mawson\u00aeMawson Time\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeGeorgia Time\u00ae\u00aeGeorgia Summer Time\u00ae\u00ae\u00a9Kyrgystan\u00aeKyrgystan Time\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeFrench Southern and Antarctic Time\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aePonape Time\u00ae\u00ae\u00ae\u00ae\u00a9Christmas\u00aeChristmas Island Time\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeLanka Time\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aePhilippine Time\u00ae\u00aePhilippine Summer Time\u00ae\u00ae\u00a9Argentina_Western\u00aeWestern Argentina Time\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeVolgograd Time\u00ae\u00aeVolgograd Summer Time\u00ae\u00ae\u00a9Hong_Kong\u00aeHong Kong Time\u00ae\u00aeHong Kong Summer Time\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeWest Kazakhstan Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeGuam Standard Time\u00aeGST (Guam)\u00ae\u00ae\u00ae\u00a9Amazon\u00aeAmazon Time\u00ae\u00aeAmazon Summer Time\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre and Miquelon Standard Time\u00ae\u00aePierre and Miquelon Daylight Time\u00ae\u00ae\u00a9Niue\u00aeNiue Time\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aeTurkey Time\u00ae\u00aeTurkey Summer Time\u00ae\u00ae\u00a9Nepal\u00aeNepal Time\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeCook Islands Time\u00ae\u00aeCook Islands Half Summer Time\u00ae\u00ae\u00a9Macau\u00aeMacau Time\u00ae\u00aeMacau Summer Time\u00ae\u00ae\u00a9Mauritius\u00aeMauritius Time\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aeCuba Standard Time\u00aeCST (Cuba)\u00aeCuba Daylight Time\u00aeCDT (Cuba)\u00ae\u00a9Lord_Howe\u00aeLord Howe Standard Time\u00ae\u00aeLord Howe Daylight Time\u00ae\u00ae\u00a9Tonga\u00aeTonga Time\u00ae\u00aeTonga Summer Time\u00ae\u00ae\u00a9Maldives\u00aeMaldives Time\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00aeUlan Bator Time\u00ae\u00aeUlan Bator Summer Time\u00ae\u00ae\u00a9Norfolk\u00aeNorfolk Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Anadyr\u00aeAnadyr Time\u00ae\u00aeAnadyr Summer Time\u00ae\u00ae\u00a9Irkutsk\u00aeIrkutsk Time\u00ae\u00aeIrkutsk Summer Time\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeEastern Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9Myanmar\u00aeMyanmar Time\u00ae\u00ae\u00ae\u00ae\u00a9Reunion\u00aeReunion Time\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeGulf Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeAfghanistan Time\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeKashgar Time\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeBrunei Darussalam Time\u00ae\u00ae\u00ae\u00ae\u00a9Novosibirsk\u00aeNovosibirsk Time\u00ae\u00aeNovosibirsk Summer Time\u00ae\u00ae\u00a9Brasilia\u00aeBrasilia Time\u00ae\u00aeBrasilia Summer Time\u00ae\u00ae\u00a9Line_Islands\u00aeLine Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9America_Pacific\u00aePacific Standard Time\u00ae\u00aePacific Daylight Time\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHawaii-Aleutian Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeSamarkand Time\u00ae\u00aeSamarkand Summer Time\u00ae\u00ae\u00a9Australia_Central\u00aeAustralian Central Standard Time\u00ae\u00aeAustralian Central Daylight Time\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu Time\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeFiji Time\u00ae\u00aeFiji Summer Time\u00ae\u00ae\u00a9Israel\u00aeIsrael Standard Time\u00aeIST (Israel)\u00aeIsrael Daylight Time\u00ae\u00ae\u00a9Yekaterinburg\u00aeYekaterinburg Time\u00ae\u00aeYekaterinburg Summer Time\u00ae\u00ae\u00a9Easter\u00aeEaster Island Time\u00ae\u00aeEaster Island Summer Time\u00ae\u00ae\u00a9Almaty\u00aeAlmaty Time\u00ae\u00aeAlmaty Summer Time\u00ae\u00ae\u00a9Sverdlovsk\u00aeSverdlovsk Time\u00ae\u00aeSverdlovsk Summer Time\u00ae\u00ae\u00a9Africa_Western\u00aeWest Africa Time\u00ae\u00aeWest Africa Summer Time\u00ae\u00ae\u00a9Samoa\u00aeSamoa Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeBhutan Time\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeUral'sk Time\u00ae\u00aeUral'sk Summer Time\u00ae\u00ae\u00a9Alaska\u00aeAlaska Standard Time\u00ae\u00aeAlaska Daylight Time\u00ae\u00ae\u00a9Urumqi\u00aeUrumqi Time\u00ae\u00ae\u00ae\u00ae\u00a9Colombia\u00aeColombia Time\u00ae\u00aeColombia Summer Time\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk Time\u00ae\u00aeAktyubinsk Summer Time\u00ae\u00ae\u00a9Nauru\u00aeNauru Time\u00ae\u00ae\u00ae\u00ae\u00a9North_Mariana\u00aeNorth Mariana Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Magadan\u00aeMagadan Time\u00ae\u00aeMagadan Summer Time\u00ae\u00ae\u00a9Tajikistan\u00aeTajikistan Time\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aeChoibalsan Time\u00ae\u00aeChoibalsan Summer Time\u00ae\u00ae\u00a9New_Caledonia\u00aeNew Caledonia Time\u00ae\u00aeNew Caledonia Summer Time\u00ae\u00ae\u00a9Azores\u00aeAzores Time\u00ae\u00aeAzores Summer Time\u00ae\u00ae\u00a9Aqtau\u00aeAqtau Time\u00ae\u00aeAqtau Summer Time\u00ae\u00ae\u00a9Baku\u00aeBaku Time\u00ae\u00aeBaku Summer Time\u00ae\u00ae\u00a9Australia_Eastern\u00aeAustralian Eastern Standard Time\u00ae\u00aeAustralian Eastern Daylight Time\u00ae\u00ae\u00a9Davis\u00aeDavis Time\u00ae\u00ae\u00ae\u00ae\u00a9Gambier\u00aeGambier Time\u00ae\u00ae\u00ae\u00ae\u00a9Noronha\u00aeFernando de Noronha Time\u00ae\u00aeFernando de Noronha Summer Time\u00ae\u00ae\u00a9Greenland_Central\u00aeCentral Greenland Time\u00ae\u00aeCentral Greenland Summer Time\u00ae\u00ae\u00a9Japan\u00aeJapan Standard Time\u00ae\u00aeJapan Daylight Time\u00ae\u00ae\u00a9Borneo\u00aeBorneo Time\u00ae\u00aeBorneo Summer Time\u00ae\u00ae\u00a9Europe/London\u00ae\u00ae\u00aeBritish Summer Time\u00aeBST\u00ae\u00a9
territories.GY=Guyana
territories.GW=Guinea-Bissau
territories.GU=Guam
@@ -396,6 +436,7 @@ territories.GM=Gambia
territories.GL=Greenland
territories.GI=Gibraltar
territories.GH=Ghana
+territories.GG=Guernsey
territories.GF=French Guiana
territories.GE=Georgia
territories.GD=Grenada
@@ -429,7 +470,7 @@ territories.CX=Christmas Island
territories.CV=Cape Verde
territories.CU=Cuba
territories.CT=Canton and Enderbury Islands
-territories.CS=Serbia And Montenegro
+territories.CS=Serbia and Montenegro
territories.CR=Costa Rica
territories.CO=Colombia
territories.CN=China
@@ -438,10 +479,10 @@ territories.CL=Chile
territories.CK=Cook Islands
territories.CI=Ivory Coast
territories.CH=Switzerland
-territories.CG=Congo (Brazzaville)
+territories.CG=Congo - Brazzaville
territories.CF=Central African Republic
-territories.CD=Congo (Kinshasa)
-territories.CC=Cocos (Keeling) Islands
+territories.CD=Congo - Kinshasa
+territories.CC=Cocos Islands
territories.CA=Canada
territories.BZ=Belize
territories.BY=Belarus
@@ -454,6 +495,7 @@ territories.BQ=British Antarctic Territory
territories.BO=Bolivia
territories.BN=Brunei
territories.BM=Bermuda
+territories.BL=Saint Barth\u00e9lemy
territories.BJ=Benin
territories.BI=Burundi
territories.BH=Bahrain
@@ -461,6 +503,7 @@ territories.BG=Bulgaria
territories.BF=Burkina Faso
territories.BE=Belgium
territories.BD=Bangladesh
+territories.ZZ=Unknown or Invalid Region
territories.BB=Barbados
territories.BA=Bosnia and Herzegovina
territories.ZW=Zimbabwe
@@ -500,11 +543,12 @@ territories.VN=Vietnam
territories.VI=U.S. Virgin Islands
territories.VG=British Virgin Islands
territories.VE=Venezuela
-territories.VD=North Vietnam
territories.145=Western Asia
+territories.VD=North Vietnam
territories.VC=Saint Vincent and the Grenadines
-territories.VA=Vatican
+territories.143=Central Asia
territories.142=Asia
+territories.VA=Vatican
territories.UZ=Uzbekistan
territories.UY=Uruguay
territories.US=United States
@@ -549,17 +593,19 @@ territories.SB=Solomon Islands
territories.SA=Saudi Arabia
territories.RW=Rwanda
territories.RU=Russia
+territories.RS=Serbia
territories.RO=Romania
territories.RE=Reunion
-territories.062=South-central Asia
+territories.062=South-Central Asia
territories.061=Polynesia
+territories.QU=European Union
territories.QO=Outlying Oceania
territories.QA=Qatar
territories.057=Micronesian Region
-territories.PZ=Panama Canal Zone
territories.054=Melanesia
-territories.PY=Paraguay
+territories.PZ=Panama Canal Zone
territories.053=Australia and New Zealand
+territories.PY=Paraguay
territories.PW=Palau
territories.PU=U.S. Miscellaneous Pacific Islands
territories.PT=Portugal
@@ -576,10 +622,10 @@ territories.PE=Peru
territories.PC=Pacific Islands Trust Territory
territories.PA=Panama
territories.OM=Oman
-territories.833=Isle of Man
territories.830=Channel Islands
territories.039=Southern Europe
-territories.035=South-eastern Asia
+territories.035=South-Eastern Asia
+territories.034=Southern Asia
territories.NZ=New Zealand
territories.030=Eastern Asia
territories.NU=Niue
@@ -599,8 +645,8 @@ territories.029=Caribbean
territories.MZ=Mozambique
territories.MY=Malaysia
territories.MX=Mexico
-territories.MW=Malawi
territories.021=Northern America
+territories.MW=Malawi
territories.MV=Maldives
territories.MU=Mauritius
territories.MT=Malta
@@ -608,15 +654,17 @@ territories.MS=Montserrat
territories.MR=Mauritania
territories.MQ=Martinique
territories.MP=Northern Mariana Islands
-territories.MO=Macao S.A.R., China
+territories.MO=Macau
territories.MN=Mongolia
territories.MM=Myanmar
territories.ML=Mali
territories.MK=Macedonia
-territories.MI=Midway Islands
territories.419=Latin America and the Caribbean
+territories.MI=Midway Islands
territories.MH=Marshall Islands
territories.MG=Madagascar
+territories.MF=Saint Martin
+territories.ME=Montenegro
territories.MD=Moldova
territories.MC=Monaco
territories.MA=Morocco
@@ -625,8 +673,8 @@ territories.018=Southern Africa
territories.017=Middle Africa
territories.015=Northern Africa
territories.014=Eastern Africa
-territories.LY=Libya
territories.013=Central America
+territories.LY=Libya
territories.011=Western Africa
territories.LV=Latvia
territories.LU=Luxembourg
@@ -641,11 +689,11 @@ territories.LA=Laos
territories.009=Oceania
territories.005=South America
territories.KZ=Kazakhstan
-territories.KY=Cayman Islands
territories.003=North America
+territories.KY=Cayman Islands
territories.002=Africa
-territories.KW=Kuwait
territories.001=World
+territories.KW=Kuwait
territories.KR=South Korea
territories.KP=North Korea
territories.KN=Saint Kitts and Nevis
@@ -658,12 +706,14 @@ territories.JT=Johnston Island
territories.JP=Japan
territories.JO=Jordan
territories.JM=Jamaica
+territories.JE=Jersey
territories.IT=Italy
territories.IS=Iceland
territories.IR=Iran
territories.IQ=Iraq
territories.IO=British Indian Ocean Territory
territories.IN=India
+territories.IM=Isle of Man
territories.IL=Israel
territories.IE=Ireland
territories.ID=Indonesia
@@ -672,32 +722,35 @@ territories.HT=Haiti
territories.HR=Croatia
territories.HN=Honduras
territories.HM=Heard Island and McDonald Islands
-territories.HK=Hong Kong S.A.R., China
-languages.akk=Akkadian
+territories.HK=Hong Kong
languages.gwi=Gwich\u02bcin
+languages.akk=Akkadian
languages.eka=Ekajuk
languages.ijo=Ijo
languages.xh=Xhosa
languages.sux=Sumerian
languages.sus=Susu
-languages.mis=Miscellaneous Languages
+languages.mis=Miscellaneous Language
languages.loz=Lozi
-languages.tog=Tonga (Nyasa)
+languages.tog=Nyasa Tonga
+languages.zbl=Blissymbols
languages.pon=Pohnpeian
languages.min=Minangkabau
languages.suk=Sukuma
languages.wo=Wolof
-languages.kut=Kutenai
languages.lol=Mongo
+languages.kut=Kutenai
languages.mic=Micmac
languages.wa=Walloon
languages.kum=Kumyk
languages.zap=Zapotec
-languages.cus=Cushitic (Other)
-languages.doi=Dogri
+languages.ain=Ainu
+languages.cus=Cushitic Language
languages.jbo=Lojban
+languages.doi=Dogri
+languages.zza=Zaza
languages.vo=Volap\u00fck
-languages.oto=Otomian Languages
+languages.oto=Otomian Language
languages.vi=Vietnamese
languages.vai=Vai
languages.rar=Rarotongan
@@ -710,27 +763,29 @@ languages.nap=Neapolitan
languages.uz=Uzbek
languages.uga=Ugaritic
languages.tmh=Tamashek
-languages.nai=North American Indian (Other)
+languages.nai=North American Indian Language
languages.nah=Nahuatl
languages.ur=Urdu
languages.fat=Fanti
languages.uk=Ukrainian
-languages.egy=Egyptian (Ancient)
-languages.ug=Uighur
+languages.egy=Ancient Egyptian
+languages.zxx=No linguistic content
+languages.ug=Uyghur
languages.fan=Fang
-languages.ssa=Nilo-Saharan (Other)
-languages.bat=Baltic (Other)
+languages.ssa=Nilo-Saharan Language
languages.mga=Middle Irish
+languages.bat=Baltic Language
languages.nyo=Nyoro
languages.bas=Basa
languages.nyn=Nyankole
languages.nym=Nyamwezi
+languages.gsw=Swiss German
languages.hmn=Hmong
languages.ban=Balinese
languages.osa=Osage
languages.bal=Baluchi
languages.ty=Tahitian
-languages.bai=Bamileke Languages
+languages.bai=Bamileke Language
languages.tw=Twi
languages.srr=Serer
languages.tli=Tlingit
@@ -740,7 +795,7 @@ languages.ts=Tsonga
languages.srn=Sranan Tongo
languages.bad=Banda
languages.tr=Turkish
-languages.to=Tonga (Tonga Islands)
+languages.to=Tonga
languages.tn=Tswana
languages.tl=Tagalog
languages.tk=Turkmen
@@ -750,9 +805,10 @@ languages.kru=Kurukh
languages.tg=Tajik
languages.byn=Blin
languages.te=Telugu
-languages.csb=Kashubian
languages.kro=Kru
+languages.csb=Kashubian
languages.ta=Tamil
+languages.krl=Karelian
languages.tkl=Tokelau
languages.efi=Efik
languages.sw=Swahili
@@ -764,7 +820,7 @@ languages.ss=Swati
languages.sr=Serbian
languages.sq=Albanian
languages.men=Mende
-languages.crp=Creoles and Pidgins (Other)
+languages.crp=Creole or Pidgin
languages.so=Somali
languages.afh=Afrihili
languages.sn=Shona
@@ -773,10 +829,10 @@ languages.sl=Slovenian
languages.grc=Ancient Greek
languages.sk=Slovak
languages.grb=Grebo
-languages.si=Sinhalese
+languages.si=Sinhala
languages.sh=Serbo-Croatian
-languages.afa=Afro-Asiatic (Other)
-languages.crh=Crimean Turkish; Crimean Tatar
+languages.crh=Crimean Turkish
+languages.afa=Afro-Asiatic Language
languages.sg=Sango
languages.se=Northern Sami
languages.sd=Sindhi
@@ -790,43 +846,48 @@ languages.mdr=Mandar
languages.ro=Romanian
languages.rn=Rundi
languages.rm=Rhaeto-Romance
+languages.fr_CH=Swiss French
languages.mdf=Moksha
languages.tiv=Tiv
+languages.fr_CA=Canadian French
languages.ady=Adyghe
languages.zun=Zuni
languages.kpe=Kpelle
languages.qu=Quechua
languages.tig=Tigre
languages.son=Songhai
-languages.cpp=Other Portuguese-based Creoles and Pidgins
+languages.cpp=Portuguese-based Creole or Pidgin
+languages.rup=Aromanian
languages.sog=Sogdien
languages.ada=Adangme
-languages.cpf=Other French-based Creoles and Pidgins
-languages.hit=Hittite
languages.kos=Kosraean
-languages.cpe=Other English-based Creoles and Pidgins
+languages.hit=Hittite
+languages.cpf=French-based Creole or Pidgin
+languages.cpe=English-based Creole or Pidgin
languages.him=Himachali
-languages.got=Gothic
-languages.hil=Hiligaynon
languages.kok=Konkani
+languages.hil=Hiligaynon
+languages.got=Gothic
languages.gor=Gorontalo
languages.gon=Gondi
languages.din=Dinka
-languages.nub=Nubian Languages
+languages.nub=Nubian Language
languages.pt=Portuguese
-languages.ps=Pashto (Pushto)
+languages.ps=Pushto
languages.fur=Friulian
languages.phn=Phoenician
+languages.de_CH=Swiss High German
languages.goh=Old High German
languages.snk=Soninke
languages.cop=Coptic
languages.yap=Yapese
languages.ach=Acoli
languages.yao=Yao
-languages.phi=Philippine (Other)
+languages.phi=Philippine Language
languages.pl=Polish
languages.ace=Achinese
languages.pi=Pali
+languages.pt_PT=Iberian Portuguese
languages.pa=Punjabi
languages.bug=Buginese
languages.iba=Iban
@@ -839,7 +900,7 @@ languages.map=Austronesian
languages.or=Oriya
languages.man=Mandingo
languages.smj=Lule Sami
-languages.smi=Sami languages (Other)
+languages.smi=Sami Language
languages.mak=Makasar
languages.om=Oromo
languages.mai=Maithili
@@ -847,13 +908,15 @@ languages.oj=Ojibwa
languages.mag=Magahi
languages.mad=Madurese
languages.sma=Southern Sami
-languages.oc=Occitan (post 1500); Proven\u00e7al
+languages.oc=Occitan
languages.nso=Northern Sotho
languages.btk=Batak
languages.myv=Erzya
+languages.es_ES=Iberian Spanish
+languages.de_AT=Austrian German
languages.dgr=Dogrib
-languages.ny=Nyanja; Chichewa; Chewa
-languages.myn=Mayan
+languages.ny=Nyanja
+languages.myn=Mayan Language
languages.nv=Navajo
languages.kmb=Kimbundu
languages.nr=South Ndebele
@@ -863,10 +926,10 @@ languages.nn=Norwegian Nynorsk
languages.nl=Dutch
languages.root=Root
languages.ng=Ndonga
-languages.sla=Slavic (Other)
+languages.sla=Slavic Language
languages.ne=Nepali
languages.nd=North Ndebele
-languages.cmc=Chamic Languages
+languages.cmc=Chamic Language
languages.tet=Tetum
languages.nb=Norwegian Bokm\u00e5l
languages.na=Nauru
@@ -875,8 +938,10 @@ languages.tem=Timne
languages.my=Burmese
languages.lez=Lezghian
languages.mt=Maltese
+languages.frs=Eastern Frisian
languages.peo=Old Persian
languages.ms=Malay
+languages.frr=Northern Frisian
languages.mr=Marathi
languages.fro=Old French
languages.mo=Moldavian
@@ -888,14 +953,15 @@ languages.mk=Macedonian
languages.mi=Maori
languages.mh=Marshallese
languages.mg=Malagasy
+languages.nqo=N\u2019Ko
languages.mwr=Marwari
languages.bra=Braj
languages.mwl=Mirandese
-languages.lv=Latvian
languages.den=Slave
+languages.lv=Latvian
languages.lu=Luba-Katanga
-languages.lt=Lithuanian
languages.del=Delaware
+languages.lt=Lithuanian
languages.lo=Lao
languages.ln=Lingala
languages.li=Limburgish
@@ -905,18 +971,19 @@ languages.lb=Luxembourgish
languages.la=Latin
languages.jpr=Judeo-Persian
languages.vot=Votic
-languages.sit=Sino-Tibetan (Other)
+languages.sit=Sino-Tibetan Language
languages.ky=Kirghiz
languages.kw=Cornish
languages.kv=Komi
languages.ku=Kurdish
-languages.sio=Siouan Languages
+languages.sio=Siouan Language
languages.ks=Kashmiri
languages.kr=Kanuri
languages.awa=Awadhi
languages.ko=Korean
languages.kn=Kannada
languages.km=Khmer
+languages.en_GB=British English
languages.kl=Kalaallisut
languages.kk=Kazakh
languages.rom=Romany
@@ -924,12 +991,12 @@ languages.kj=Kuanyama
languages.sid=Sidamo
languages.ki=Kikuyu
languages.kg=Kongo
-languages.non=Norse, Old
+languages.non=Old Norse
languages.ka=Georgian
languages.mus=Creek
-languages.roa=Romance (Other)
+languages.roa=Romance Language
languages.nog=Nogai
-languages.mun=Munda Languages
+languages.mun=Munda Language
languages.mul=Multiple Languages
languages.jv=Javanese
languages.gil=Gilbertese
@@ -937,51 +1004,51 @@ languages.znd=Zande
languages.shn=Shan
languages.fon=Fon
languages.xal=Kalmyk
-languages.aus=Australian Languages
+languages.aus=Australian Language
languages.kho=Khotanese
languages.ja=Japanese
-languages.khi=Khoisan (Other)
+languages.khi=Khoisan Language
languages.pau=Palauan
languages.chy=Cheyenne
-languages.tai=Tai (Other)
+languages.tai=Tai Language
languages.iu=Inuktitut
languages.pap=Papiamento
languages.it=Italian
-languages.sgn=Sign Languages
-languages.kha=Khasi
+languages.sgn=Sign Language
languages.is=Icelandic
+languages.kha=Khasi
languages.chr=Cherokee
languages.pam=Pampanga
languages.pal=Pahlavi
languages.chp=Chipewyan
-languages.cho=Choctaw
languages.io=Ido
+languages.cho=Choctaw
languages.chn=Chinook Jargon
languages.chm=Mari
languages.tyv=Tuvinian
languages.bnt=Bantu
languages.pag=Pangasinan
-languages.chk=Chuukese
languages.ik=Inupiaq
-languages.haw=Hawaiian
+languages.chk=Chuukese
languages.ii=Sichuan Yi
+languages.haw=Hawaiian
languages.lam=Lamba
-languages.chg=Chagatai
languages.ig=Igbo
+languages.chg=Chagatai
languages.sga=Old Irish
-languages.paa=Papuan (Other)
+languages.paa=Papuan Language
languages.ie=Interlingue
languages.id=Indonesian
languages.lah=Lahnda
-languages.chb=Chibcha
languages.day=Dayak
+languages.chb=Chibcha
languages.ia=Interlingua
languages.lad=Ladino
-languages.dar=Dargwa
-languages.hai=Haida
languages.hz=Herero
+languages.hai=Haida
+languages.dar=Dargwa
languages.hy=Armenian
-languages.ath=Athapascan Languages
+languages.ath=Athapascan Language
languages.hu=Hungarian
languages.ht=Haitian
languages.dak=Dakota
@@ -991,37 +1058,42 @@ languages.hi=Hindi
languages.dyu=Dyula
languages.he=Hebrew
languages.ast=Asturian
+languages.kfo=Koro
languages.ha=Hausa
-languages.wen=Sorbian Languages
+languages.wen=Sorbian Language
languages.gv=Manx
languages.gu=Gujarati
-languages.sem=Semitic (Other)
+languages.sem=Semitic Language
languages.sel=Selkup
-languages.iro=Iroquoian languages
+languages.iro=Iroquoian Language
languages.gn=Guarani
-languages.gl=Gallegan
+languages.gl=Galician
+languages.en_CA=Canadian English
languages.arw=Arawak
-languages.gd=Scottish Gaelic
-languages.art=Artificial (Other)
languages.gez=Geez
-languages.ira=Iranian
+languages.art=Artificial Language
+languages.gd=Scottish Gaelic
+languages.ira=Iranian Language
languages.ga=Irish
languages.arp=Arapaho
languages.arn=Araucanian
-languages.fy=Frisian
+languages.fy=Western Frisian
languages.bla=Siksika
-languages.gem=Germanic (Other)
-languages.ypk=Yupik Languages
-languages.fr=French
+languages.gem=Germanic Language
+languages.ypk=Yupik Language
languages.arc=Aramaic
+languages.fr=French
languages.fo=Faroese
-languages.cel=Celtic (Other)
+languages.cel=Celtic Language
languages.fj=Fijian
languages.fi=Finnish
languages.ff=Fulah
languages.tvl=Tuvalu
languages.ceb=Cebuano
languages.fa=Persian
+languages.en_AU=Australian English
+languages.zh_Hans=Simplified Chinese
+languages.zh_Hant=Traditional Chinese
languages.eu=Basque
languages.sco=Scots
languages.et=Estonian
@@ -1030,134 +1102,162 @@ languages.es=Spanish
languages.eo=Esperanto
languages.en=English
languages.el=Greek
-languages.tut=Altaic (Other)
+languages.tut=Altaic Language
languages.niu=Niuean
-languages.tup=Tupi languages
+languages.tup=Tupi Language
languages.ee=Ewe
languages.tum=Tumbuka
+languages.nl_BE=Flemish
+languages.es_419=Latin American Spanish
languages.mos=Mossi
languages.dz=Dzongkha
-languages.nic=Niger - Kordofanian (Other)
-languages.dv=Divehi
-languages.fiu=Finno - Ugrian (Other)
+languages.kcg=Tyap
+languages.nic=Niger-Kordofanian Language
languages.lus=Lushai
+languages.fiu=Finno-Ugrian Language
+languages.dv=Divehi
languages.nia=Nias
languages.moh=Mohawk
languages.luo=Luo
languages.lun=Lunda
-languages.apa=Apache Languages
+languages.apa=Apache Language
languages.fil=Filipino
languages.lui=Luiseno
languages.hup=Hupa
+languages.cch=Atsam
languages.bin=Bini
languages.de=German
languages.lua=Luba-Lulua
languages.bik=Bikol
languages.was=Washo
-languages.und=Undetermined
+languages.und=Unknown or Invalid Language
languages.war=Waray
languages.da=Danish
languages.dum=Middle Dutch
languages.wal=Walamo
-languages.mno=Manobo Languages
-languages.wak=Wakashan Languages
+languages.mno=Manobo Language
+languages.wak=Wakashan Language
languages.sat=Santali
languages.cy=Welsh
languages.sas=Sasak
-languages.cv=Chuvash
languages.kbd=Kabardian
+languages.cv=Chuvash
languages.cu=Church Slavic
languages.mni=Manipuri
languages.cs=Czech
languages.sam=Samaritan Aramaic
languages.cr=Cree
-languages.sal=Salishan languages
+languages.sal=Salishan Language
languages.dua=Duala
languages.co=Corsican
-languages.sai=South American Indian (Other)
+languages.sai=South American Indian Language
languages.mnc=Manchu
languages.sah=Yakut
-languages.gba=Gbaya
-languages.inh=Ingush
languages.kaw=Kawi
+languages.inh=Ingush
+languages.gba=Gbaya
languages.sad=Sandawe
languages.ch=Chamorro
+languages.ine=Indo-European Language
languages.bho=Bhojpuri
-languages.ine=Indo-European (Other)
languages.enm=Middle English
-languages.ce=Chechen
-languages.inc=Indic (Other)
languages.kar=Karen
+languages.inc=Indic Language
+languages.ce=Chechen
languages.gay=Gayo
languages.ca=Catalan
languages.umb=Umbundu
languages.syr=Syriac
languages.kam=Kamba
+languages.anp=Angika
languages.tsi=Tsimshian
-languages.ang=Old English (ca.450-1100)
-languages.cau=Caucasian (Other)
+languages.kaj=Jju
+languages.ang=Old English
languages.kac=Kachin
+languages.cau=Caucasian Language
languages.kab=Kabyle
-languages.bs=Bosnian
languages.kaa=Kara-Kalpak
-languages.br=Breton
+languages.bs=Bosnian
languages.car=Carib
+languages.br=Breton
+languages.syc=Classical Syriac
languages.bo=Tibetan
languages.bn=Bengali
languages.bm=Bambara
languages.gaa=Ga
+languages.cai=Central American Indian Language
languages.bi=Bislama
-languages.cai=Central American Indian (Other)
languages.bh=Bihari
languages.bg=Bulgarian
languages.be=Belarusian
+languages.pt_BR=Brazilian Portuguese
languages.cad=Caddo
languages.ba=Bashkir
languages.zu=Zulu
languages.zen=Zenaga
languages.pro=Old Proven\u00e7al
languages.hsb=Upper Sorbian
-languages.az=Azerbaijani
+languages.az=Azeri
languages.ay=Aymara
languages.av=Avaric
languages.as=Assamese
-languages.ar=Arabic
languages.dsb=Lower Sorbian
-languages.elx=Elamite
+languages.ar=Arabic
languages.ilo=Iloko
+languages.elx=Elamite
languages.zh=Chinese
languages.an=Aragonese
-languages.pra=Prakrit Languages
+languages.pra=Prakrit Language
languages.am=Amharic
languages.new=Newari
languages.ak=Akan
languages.za=Zhuang
+languages.en_US=U.S. English
languages.af=Afrikaans
languages.ae=Avestan
languages.alt=Southern Altai
languages.ab=Abkhazian
languages.aa=Afar
languages.yo=Yoruba
-languages.alg=Algonquian Languages
+languages.alg=Algonquian Language
languages.ale=Aleut
-languages.mkh=Mon-Khmer (Other)
+languages.mkh=Mon-Khmer Language
languages.yi=Yiddish
-languages.dra=Dravidian (Other)
+languages.dra=Dravidian Language
languages.ber=Berber
-languages.nds=Low German; Low Saxon
+languages.nds=Low German
languages.bem=Bemba
languages.bej=Beja
languages.tpi=Tok Pisin
-variants.BOONT=Boontling
-variants.REVISED=Revised Orthography
-variants.GAULISH=Gaulish
-variants.HAKKA=Hakka
-variants.GUOYU=Mandarin or Standard Chinese
-variants.XIANG=Xiang or Hunanese
variants.POSIX=Computer
+variants.AREVMDA=Western Armenian
variants.1996=German orthography of 1996
-variants.LOJBAN=Lojban
-variants.SCOUSE=Scouse
+variants.SOLBA=Stolvizza/Solbica dialect
+variants.NEDIS=Natisone dialect
+variants.1994=Standardized Resian orthography
variants.1901=Traditional German orthography
+variants.XIANG=Xiang or Hunanese
+variants.FONUPA=UPA Phonetics
+variants.OSOJS=Oseacco/Osojane dialect
+variants.1694ACAD=Early Modern French
+variants.LIPAW=The Lipovaz dialect of Resian
+variants.REVISED=Revised Orthography
+variants.NJIVA=Gniva/Njiva dialect
+variants.TARASK=Taraskievica orthography
+variants.FONIPA=IPA Phonetics
+variants.GAULISH=Gaulish
+variants.BISKE=San Giorgio/Bila dialect
+variants.SCOUSE=Scouse
+variants.BAKU1926=Unified Turkic Latin Alphabet
+variants.LOJBAN=Lojban
+variants.GUOYU=Mandarin or Standard Chinese
+variants.SAAHO=Saho
variants.ROZAJ=Resian
-variants.NEDIS=Natisone dialect
+variants.MONOTON=Monotonic
+variants.POLYTON=Polytonic
+variants.HAKKA=Hakka
+variants.AREVELA=Eastern Armenian
+variants.SCOTLAND=Scottish Standard English
+variants.VALENCIA=Valencian
+variants.BOONT=Boontling
+variants.1606NICT=Late Middle French to 1606
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_AU.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_AU.properties
index f70d4da..b1dddb5 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_AU.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_AU.properties
@@ -5,9 +5,10 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesSymbol.AUD=$
+currenciesSymbol.USD=US$
shortDateFormat=d/MM/yy
mediumDateFormat=dd/MM/yyyy
longDateFormat=d MMMM yyyy
fullDateFormat=EEEE, d MMMM yyyy
-longTimeFormat=h:mm:ss a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BE.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BE.properties
index d3e194f..f32520d 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BE.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BE.properties
@@ -7,14 +7,12 @@
decimalSeparator=,
groupingSeparator=.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
shortDateFormat=dd/MM/yy
mediumDateFormat=dd MMM yyyy
-longDateFormat=EEE d MMM yyyy
+longDateFormat=d MMM yyyy
fullDateFormat=EEEE d MMMM yyyy
shortTimeFormat=HH:mm
mediumTimeFormat=HH:mm:ss
longTimeFormat=HH:mm:ss z
-fullTimeFormat=HH' h 'mm' min 'ss' s 'z
+fullTimeFormat=HH 'h' mm 'min' ss 's' z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BW.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BW.properties
index 0267e54..8206e4f 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BW.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BW.properties
@@ -5,9 +5,8 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.XXX=XXX
shortDateFormat=dd/MM/yy
-mediumDateFormat=MMM dd,yy
longDateFormat=dd MMMM yyyy
fullDateFormat=EEEE dd MMMM yyyy
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BZ.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BZ.properties
index e6fbacb..6be6165 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BZ.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_BZ.properties
@@ -5,9 +5,11 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-firstDayOfWeek=mon
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.BZD=$
+currenciesSymbol.USD=US$
shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
+mediumDateFormat=dd-MMM-yyyy
longDateFormat=dd MMMM yyyy
fullDateFormat=dd MMMM yyyy
shortTimeFormat=HH:mm
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_CA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_CA.properties
index 91233c9..cce5b1c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_CA.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_CA.properties
@@ -5,8 +5,7 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
currenciesSymbol.CAD=$
-minNumberOfDaysInFirstWeek=4
-shortDateFormat=dd/MM/yy
-mediumDateFormat=d-MMM-yy
+currenciesSymbol.USD=US$
+shortDateFormat=yy-MM-dd
+mediumDateFormat=yyyy-MM-dd
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties
new file mode 100644
index 0000000..2b0c190
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties
@@ -0,0 +1,418 @@
+# LocaleInformation_en_Dsrt.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=\ud801\udc16\ud801\udc30\ud801\udc4c\u00ae\u00ae\ud801\udc23\ud801\udc2a\ud801\udc49\u00ae\ud801\udc01\ud801\udc39\ud801\udc49\u00ae\ud801\udc23\ud801\udc29\u00ae\ud801\udc16\ud801\udc2d\ud801\udc4c\u00ae\ud801\udc16\ud801\udc2d\ud801\udc4a\u00ae\ud801\udc02\ud801\udc40\u00ae\ud801\udc1d\ud801\udc2f\ud801\udc39\u00ae\ud801\udc09\ud801\udc3f\ud801\udc3b\u00ae\ud801\udc24\ud801\udc2c\ud801\udc42\u00ae\ud801\udc14\ud801\udc28\ud801\udc45\u00ae\u00ae
+months=\ud801\udc16\ud801\udc30\ud801\udc4c\ud801\udc37\ud801\udc2d\ud801\udc2f\ud801\udc49\ud801\udc28\u00ae\u00ae\ud801\udc23\ud801\udc2a\ud801\udc49\ud801\udc3d\u00ae\ud801\udc01\ud801\udc39\ud801\udc49\ud801\udc2e\ud801\udc4a\u00ae\ud801\udc23\ud801\udc29\u00ae\ud801\udc16\ud801\udc2d\ud801\udc4c\u00ae\ud801\udc16\ud801\udc2d\ud801\udc4a\ud801\udc34\u00ae\ud801\udc02\ud801\udc40\ud801\udc32\ud801\udc45\ud801\udc3b\u00ae\ud801\udc1d\ud801\udc2f\ud801\udc39\ud801\udc3b\ud801\udc2f\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc49\u00ae\ud801\udc09\ud801\udc3f\ud801\udc3b\ud801\udc2c\ud801\udc3a\ud801\udc32\ud801\udc49\u00ae\ud801\udc24\ud801\udc2c\ud801\udc42\ud801\udc2f\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc49\u00ae\ud801\udc14\ud801\udc28\ud801\udc45\ud801\udc2f\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc49\u00ae\u00ae
+shortWeekdays=\u00ae\ud801\udc1d\ud801\udc32\ud801\udc4c\u00ae\ud801\udc23\ud801\udc32\ud801\udc4c\u00ae\ud801\udc13\ud801\udc2d\ud801\udc46\u00ae\ud801\udc0e\ud801\udc2f\ud801\udc4c\u00ae\ud801\udc1b\ud801\udc32\ud801\udc49\u00ae\ud801\udc19\ud801\udc49\ud801\udc34\u00ae\ud801\udc1d\ud801\udc30\ud801\udc3b\u00ae
+weekdays=\u00ae\ud801\udc1d\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc29\u00ae\ud801\udc23\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc29\u00ae\ud801\udc13\ud801\udc2d\ud801\udc46\ud801\udc3c\ud801\udc29\u00ae\ud801\udc0e\ud801\udc2f\ud801\udc4c\ud801\udc46\ud801\udc3c\ud801\udc29\u00ae\ud801\udc1b\ud801\udc32\ud801\udc49\ud801\udc46\ud801\udc3c\ud801\udc29\u00ae\ud801\udc19\ud801\udc49\ud801\udc34\ud801\udc3c\ud801\udc29\u00ae\ud801\udc1d\ud801\udc30\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc3c\ud801\udc29\u00ae
+eras=\ud801\udc12\ud801\udc17\u00ae\ud801\udc08\ud801\udc14\u00ae
+ampms=\ud801\udc30.\ud801\udc4b.\u00ae\ud801\udc39.\ud801\udc4b.\u00ae
+zoneStrings=Bering\u00ae\ud801\udc12\ud801\udc2f\ud801\udc49\ud801\udc2e\ud801\udc4d \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc12\ud801\udc1d\ud801\udc13 (\ud801\udc12\ud801\udc2f\ud801\udc49\ud801\udc2e\ud801\udc4d )\u00ae\ud801\udc12\ud801\udc2f\ud801\udc49\ud801\udc2e\ud801\udc4d \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc12\ud801\udc14\ud801\udc13 (\ud801\udc12\ud801\udc2f\ud801\udc49\ud801\udc2e\ud801\udc4d )\u00ae\u00a9Newfoundland\u00ae\ud801\udc24\ud801\udc2d\ud801\udc41\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc24\ud801\udc1d\ud801\udc13\u00ae\ud801\udc24\ud801\udc2d\ud801\udc41\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc24\ud801\udc14\ud801\udc13\u00ae\u00a9America_Pacific\u00ae\ud801\udc11\ud801\udc32\ud801\udc45\ud801\udc2e\ud801\udc41\ud801\udc2e\ud801\udc3f \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc11\ud801\udc1d\ud801\udc13\u00ae\ud801\udc11\ud801\udc32\ud801\udc45\ud801\udc2e\ud801\udc41\ud801\udc2e\ud801\udc3f \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc11\ud801\udc14\ud801\udc13\u00ae\u00a9Alaska_Hawaii\u00ae\ud801\udc0a\ud801\udc4a\ud801\udc30\ud801\udc45\ud801\udc3f\ud801\udc32-\ud801\udc10\ud801\udc32\ud801\udc36\ud801\udc34\ud801\udc28 \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0a\ud801\udc10\ud801\udc1d\ud801\udc13\u00ae\ud801\udc0a\ud801\udc4a\ud801\udc30\ud801\udc45\ud801\udc3f\ud801\udc32-\ud801\udc10\ud801\udc32\ud801\udc36\ud801\udc34\ud801\udc28 \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0a\ud801\udc10\ud801\udc14\ud801\udc13\u00ae\u00a9America_Central\u00ae\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc1d\ud801\udc1d\ud801\udc13\u00ae\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc1d\ud801\udc14\ud801\udc13\u00ae\u00a9Alaska\u00ae\ud801\udc0a\ud801\udc4a\ud801\udc30\ud801\udc45\ud801\udc3f\ud801\udc32 \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0a\ud801\udc17\ud801\udc1d\ud801\udc13\u00ae\ud801\udc0a\ud801\udc4a\ud801\udc30\ud801\udc45\ud801\udc3f\ud801\udc32\ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0a\ud801\udc17\ud801\udc14\ud801\udc13\u00ae\u00a9America_Mountain\u00ae\ud801\udc23\ud801\udc35\ud801\udc4c\ud801\udc3b\ud801\udc32\ud801\udc4c \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc23\ud801\udc1d\ud801\udc13\u00ae\ud801\udc23\ud801\udc35\ud801\udc4c\ud801\udc3b\ud801\udc32\ud801\udc4c \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc23\ud801\udc14\ud801\udc13\u00ae\u00a9Hong_Kong\u00ae\ud801\udc10\ud801\udc31\ud801\udc4d \ud801\udc17\ud801\udc31\ud801\udc4d \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc10\ud801\udc17\ud801\udc13\u00ae\ud801\udc10\ud801\udc31\ud801\udc4d \ud801\udc17\ud801\udc31\ud801\udc4d \ud801\udc1d\ud801\udc32\ud801\udc4b\ud801\udc32\ud801\udc49 \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc10\ud801\udc17\ud801\udc1d\ud801\udc13\u00ae\u00a9Yukon\u00ae\ud801\udc0f\ud801\udc2d\ud801\udc3f\ud801\udc2a\ud801\udc4c \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0f\ud801\udc1d\ud801\udc13\u00ae\ud801\udc0f\ud801\udc2d\ud801\udc3f\ud801\udc2a\ud801\udc4c \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc0f\ud801\udc14\ud801\udc13\u00ae\u00a9America_Eastern\u00ae\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc00\ud801\udc1d\ud801\udc13\u00ae\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc00\ud801\udc14\ud801\udc13\u00ae\u00a9Atlantic\u00ae\ud801\udc08\ud801\udc3b\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc08\ud801\udc1d\ud801\udc13\u00ae\ud801\udc08\ud801\udc3b\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc14\ud801\udc29\ud801\udc4a\ud801\udc34\ud801\udc3b \ud801\udc13\ud801\udc34\ud801\udc4b\u00ae\ud801\udc08\ud801\udc14\ud801\udc13\u00ae\u00a9
+territories.GY=\ud801\udc18\ud801\udc34\ud801\udc30\ud801\udc4c\ud801\udc32
+territories.GW=\ud801\udc18\ud801\udc2e\ud801\udc4c\ud801\udc28-\ud801\udc12\ud801\udc2e\ud801\udc45\ud801\udc35
+territories.GU=\ud801\udc18\ud801\udc36\ud801\udc2a\ud801\udc4b
+territories.GT=\ud801\udc18\ud801\udc36\ud801\udc2a\ud801\udc3c\ud801\udc32\ud801\udc4b\ud801\udc2a\ud801\udc4a\ud801\udc32
+territories.GS=\ud801\udc1d\ud801\udc35\ud801\udc43 \ud801\udc16\ud801\udc31\ud801\udc49\ud801\udc3e\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc44 \ud801\udc1d\ud801\udc35\ud801\udc43 \ud801\udc1d\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc36\ud801\udc2e\ud801\udc3d \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.GR=\ud801\udc18\ud801\udc49\ud801\udc28\ud801\udc45
+territories.GQ=\ud801\udc07\ud801\udc3f\ud801\udc36\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28\ud801\udc32\ud801\udc4a \ud801\udc18\ud801\udc2e\ud801\udc4c\ud801\udc28
+territories.GP=\ud801\udc18\ud801\udc36\ud801\udc2a\ud801\udc3c\ud801\udc32\ud801\udc4a\ud801\udc2d\ud801\udc39
+territories.GN=\ud801\udc18\ud801\udc2e\ud801\udc4c\ud801\udc28
+territories.GM=\ud801\udc18\ud801\udc30\ud801\udc4b\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.GL=\ud801\udc18\ud801\udc49\ud801\udc28\ud801\udc4c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.GI=\ud801\udc16\ud801\udc32\ud801\udc3a\ud801\udc49\ud801\udc31\ud801\udc4a\ud801\udc3b\ud801\udc32\ud801\udc49
+territories.GH=\ud801\udc18\ud801\udc2a\ud801\udc4c\ud801\udc32
+territories.GG=\ud801\udc18\ud801\udc32\ud801\udc49\ud801\udc4c\ud801\udc46\ud801\udc28
+territories.GF=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d \ud801\udc18\ud801\udc28\ud801\udc2a\ud801\udc4c\ud801\udc32
+territories.GE=\ud801\udc16\ud801\udc31\ud801\udc49\ud801\udc3e\ud801\udc32
+territories.GD=\ud801\udc18\ud801\udc49\ud801\udc32\ud801\udc4c\ud801\udc29\ud801\udc3c\ud801\udc32
+territories.GB=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc34\ud801\udc3b\ud801\udc32\ud801\udc3c \ud801\udc17\ud801\udc28\ud801\udc4d\ud801\udc3c\ud801\udc32\ud801\udc4b
+territories.GA=\ud801\udc18\ud801\udc32\ud801\udc3a\ud801\udc2a\ud801\udc4c
+territories.FX=\ud801\udc23\ud801\udc2f\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc39\ud801\udc2a\ud801\udc4a\ud801\udc32\ud801\udc3b\ud801\udc32\ud801\udc4c \ud801\udc19\ud801\udc49\ud801\udc30\ud801\udc4c\ud801\udc45
+territories.FR=\ud801\udc19\ud801\udc49\ud801\udc30\ud801\udc4c\ud801\udc45
+territories.FQ=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d \ud801\udc1d\ud801\udc32\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc08\ud801\udc4c\ud801\udc3b\ud801\udc2a\ud801\udc49\ud801\udc3f\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28\ud801\udc46
+territories.FO=\ud801\udc19\ud801\udc2f\ud801\udc49\ud801\udc2c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.FM=\ud801\udc23\ud801\udc34\ud801\udc3f\ud801\udc49\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32
+territories.FK=\ud801\udc19\ud801\udc2a\ud801\udc4a\ud801\udc3f\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.FJ=\ud801\udc19\ud801\udc28\ud801\udc3e\ud801\udc28
+territories.FI=\ud801\udc19\ud801\udc2e\ud801\udc4c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.ET=\ud801\udc00\ud801\udc43\ud801\udc28\ud801\udc2c\ud801\udc39\ud801\udc28\ud801\udc32
+territories.ES=\ud801\udc1d\ud801\udc39\ud801\udc29\ud801\udc4c
+territories.ER=\ud801\udc07\ud801\udc49\ud801\udc2e\ud801\udc3b\ud801\udc49\ud801\udc28\ud801\udc32
+territories.EH=\ud801\udc0e\ud801\udc2f\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc1d\ud801\udc32\ud801\udc38\ud801\udc31\ud801\udc49\ud801\udc32
+territories.EG=\ud801\udc00\ud801\udc3e\ud801\udc32\ud801\udc39\ud801\udc3b
+territories.EE=\ud801\udc07\ud801\udc45\ud801\udc3b\ud801\udc2c\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.EC=\ud801\udc07\ud801\udc3f\ud801\udc36\ud801\udc32\ud801\udc3c\ud801\udc31\ud801\udc49
+territories.DZ=\ud801\udc08\ud801\udc4a\ud801\udc3e\ud801\udc2e\ud801\udc49\ud801\udc28\ud801\udc32
+territories.DO=\ud801\udc14\ud801\udc32\ud801\udc4b\ud801\udc2e\ud801\udc4c\ud801\udc32\ud801\udc3f\ud801\udc32\ud801\udc4c \ud801\udc21\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc3a\ud801\udc4a\ud801\udc2e\ud801\udc3f
+territories.DM=\ud801\udc14\ud801\udc2a\ud801\udc4b\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc3f\ud801\udc32
+territories.DK=\ud801\udc14\ud801\udc2f\ud801\udc4c\ud801\udc4b\ud801\udc2a\ud801\udc49\ud801\udc3f
+territories.DJ=\ud801\udc16\ud801\udc32\ud801\udc3a\ud801\udc2d\ud801\udc3c\ud801\udc28
+territories.DE=\ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c\ud801\udc28
+territories.DD=\ud801\udc00\ud801\udc45\ud801\udc3b \ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c\ud801\udc28
+territories.CZ=\ud801\udc15\ud801\udc2f\ud801\udc3f \ud801\udc21\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc3a\ud801\udc4a\ud801\udc2e\ud801\udc3f
+territories.CY=\ud801\udc1d\ud801\udc34\ud801\udc39\ud801\udc49\ud801\udc32\ud801\udc45
+territories.CX=\ud801\udc17\ud801\udc49\ud801\udc2e\ud801\udc45\ud801\udc4b\ud801\udc32\ud801\udc45 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.CV=\ud801\udc17\ud801\udc29\ud801\udc39 \ud801\udc1a\ud801\udc2f\ud801\udc49\ud801\udc3c\ud801\udc28
+territories.CU=\ud801\udc17\ud801\udc37\ud801\udc2d\ud801\udc3a\ud801\udc32
+territories.CT=\ud801\udc17\ud801\udc30\ud801\udc4c\ud801\udc3b\ud801\udc2a\ud801\udc4c \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc07\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3a\ud801\udc2f\ud801\udc49\ud801\udc28 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.CS=\ud801\udc1d\ud801\udc32\ud801\udc49\ud801\udc3a\ud801\udc28\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc23\ud801\udc2a\ud801\udc4c\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc40\ud801\udc49\ud801\udc2c
+territories.CR=\ud801\udc17\ud801\udc31\ud801\udc45\ud801\udc3b\ud801\udc32 \ud801\udc21\ud801\udc28\ud801\udc3f\ud801\udc32
+territories.CO=\ud801\udc17\ud801\udc32\ud801\udc4a\ud801\udc32\ud801\udc4b\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.CN=\ud801\udc15\ud801\udc34\ud801\udc4c\ud801\udc32
+territories.CM=\ud801\udc17\ud801\udc30\ud801\udc4b\ud801\udc32\ud801\udc49\ud801\udc2d\ud801\udc4c
+territories.CL=\ud801\udc15\ud801\udc28\ud801\udc4a\ud801\udc29
+territories.CK=\ud801\udc17\ud801\udc33\ud801\udc3f \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.CI=\ud801\udc0c\ud801\udc42\ud801\udc49\ud801\udc28 \ud801\udc17\ud801\udc2c\ud801\udc45\ud801\udc3b
+territories.CH=\ud801\udc1d\ud801\udc36\ud801\udc2e\ud801\udc3b\ud801\udc45\ud801\udc32\ud801\udc49\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.CG=\ud801\udc17\ud801\udc2a\ud801\udc4d\ud801\udc40\ud801\udc2c - \ud801\udc12\ud801\udc49\ud801\udc2a\ud801\udc46\ud801\udc32\ud801\udc42\ud801\udc2e\ud801\udc4a
+territories.CF=\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32\ud801\udc4c \ud801\udc21\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc3a\ud801\udc4a\ud801\udc2e\ud801\udc3f
+territories.CD=\ud801\udc17\ud801\udc2a\ud801\udc4d\ud801\udc40\ud801\udc2c - \ud801\udc17\ud801\udc32\ud801\udc4c\ud801\udc47\ud801\udc2a\ud801\udc45\ud801\udc32
+territories.CC=\ud801\udc17\ud801\udc2c\ud801\udc3f\ud801\udc2c\ud801\udc46 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.CA=\ud801\udc17\ud801\udc30\ud801\udc4c\ud801\udc32\ud801\udc3c\ud801\udc32
+territories.BZ=\ud801\udc12\ud801\udc32\ud801\udc4a\ud801\udc28\ud801\udc46
+territories.BY=\ud801\udc12\ud801\udc2f\ud801\udc4a\ud801\udc32\ud801\udc49\ud801\udc2d\ud801\udc45
+territories.BW=\ud801\udc12\ud801\udc2a\ud801\udc3b\ud801\udc45\ud801\udc36\ud801\udc2a\ud801\udc4c\ud801\udc32
+territories.BV=\ud801\udc12\ud801\udc2d\ud801\udc42\ud801\udc29 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.BT=\ud801\udc12\ud801\udc2d\ud801\udc3b\ud801\udc2a\ud801\udc4c
+territories.BS=\ud801\udc12\ud801\udc32\ud801\udc38\ud801\udc2a\ud801\udc4b\ud801\udc32\ud801\udc45
+territories.BR=\ud801\udc12\ud801\udc49\ud801\udc32\ud801\udc46\ud801\udc2e\ud801\udc4a
+territories.BQ=\ud801\udc12\ud801\udc49\ud801\udc2e\ud801\udc3c\ud801\udc2e\ud801\udc47 \ud801\udc08\ud801\udc4c\ud801\udc3b\ud801\udc2a\ud801\udc49\ud801\udc3f\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28
+territories.BO=\ud801\udc12\ud801\udc2c\ud801\udc4a\ud801\udc2e\ud801\udc42\ud801\udc28\ud801\udc32
+territories.BN=\ud801\udc12\ud801\udc49\ud801\udc2d\ud801\udc4c\ud801\udc34
+territories.BM=\ud801\udc12\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc37\ud801\udc2d\ud801\udc3c\ud801\udc32
+territories.BL=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc12\ud801\udc2a\ud801\udc49\ud801\udc3b\ud801\udc29\ud801\udc4a\ud801\udc32\ud801\udc4b\ud801\udc28
+territories.BJ=\ud801\udc12\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc4c
+territories.BI=\ud801\udc12\ud801\udc32\ud801\udc49\ud801\udc33\ud801\udc4c\ud801\udc3c\ud801\udc28
+territories.BH=\ud801\udc12\ud801\udc2a\ud801\udc49\ud801\udc29\ud801\udc4c
+territories.BG=\ud801\udc12\ud801\udc32\ud801\udc4a\ud801\udc40\ud801\udc2f\ud801\udc49\ud801\udc28\ud801\udc32
+territories.BF=\ud801\udc12\ud801\udc32\ud801\udc49\ud801\udc3f\ud801\udc29\ud801\udc4c\ud801\udc32 \ud801\udc19\ud801\udc30\ud801\udc45\ud801\udc2c
+territories.BE=\ud801\udc12\ud801\udc2f\ud801\udc4a\ud801\udc3e\ud801\udc32\ud801\udc4b
+territories.BD=\ud801\udc12\ud801\udc2a\ud801\udc4d\ud801\udc40\ud801\udc4a\ud801\udc32\ud801\udc3c\ud801\udc2f\ud801\udc47
+territories.ZZ=\ud801\udc0a\ud801\udc4c\ud801\udc2c\ud801\udc4c \ud801\udc2c\ud801\udc49 \ud801\udc06\ud801\udc4c\ud801\udc42\ud801\udc30\ud801\udc4a\ud801\udc2e\ud801\udc3c \ud801\udc21\ud801\udc28\ud801\udc3e\ud801\udc32\ud801\udc4c
+territories.BB=\ud801\udc12\ud801\udc2a\ud801\udc49\ud801\udc3a\ud801\udc29\ud801\udc3c\ud801\udc2c\ud801\udc45
+territories.BA=\ud801\udc12\ud801\udc31\ud801\udc46\ud801\udc4c\ud801\udc28\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc10\ud801\udc32\ud801\udc49\ud801\udc3b\ud801\udc45\ud801\udc32\ud801\udc40\ud801\udc2c\ud801\udc42\ud801\udc28\ud801\udc4c\ud801\udc32
+territories.ZW=\ud801\udc1e\ud801\udc2e\ud801\udc4b\ud801\udc3a\ud801\udc2a\ud801\udc3a\ud801\udc36\ud801\udc29
+territories.AZ=\ud801\udc08\ud801\udc46\ud801\udc32\ud801\udc49\ud801\udc3a\ud801\udc34\ud801\udc48\ud801\udc2a\ud801\udc4c
+territories.AX=\ud801\udc08\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.AW=\ud801\udc0a\ud801\udc49\ud801\udc2d\ud801\udc3a\ud801\udc32
+territories.ZM=\ud801\udc1e\ud801\udc30\ud801\udc4b\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.AU=\ud801\udc09\ud801\udc45\ud801\udc3b\ud801\udc49\ud801\udc29\ud801\udc4a\ud801\udc28\ud801\udc32
+territories.AT=\ud801\udc09\ud801\udc45\ud801\udc3b\ud801\udc49\ud801\udc28\ud801\udc32
+territories.AS=\ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32\ud801\udc4c \ud801\udc1d\ud801\udc32\ud801\udc4b\ud801\udc2c\ud801\udc32
+territories.AR=\ud801\udc02\ud801\udc49\ud801\udc3e\ud801\udc32\ud801\udc4c\ud801\udc3b\ud801\udc28\ud801\udc4c\ud801\udc32
+territories.AQ=\ud801\udc08\ud801\udc4c\ud801\udc3b\ud801\udc2a\ud801\udc49\ud801\udc3f\ud801\udc3b\ud801\udc2e\ud801\udc3f\ud801\udc32
+territories.AO=\ud801\udc08\ud801\udc4c\ud801\udc40\ud801\udc2c\ud801\udc4a\ud801\udc32
+territories.AN=\ud801\udc24\ud801\udc2f\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46 \ud801\udc08\ud801\udc4c\ud801\udc3b\ud801\udc2e\ud801\udc4a\ud801\udc28\ud801\udc46
+territories.AM=\ud801\udc02\ud801\udc49\ud801\udc4b\ud801\udc28\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.AL=\ud801\udc08\ud801\udc4a\ud801\udc3a\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.ZA=\ud801\udc1d\ud801\udc35\ud801\udc43 \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.AI=\ud801\udc08\ud801\udc4d\ud801\udc40\ud801\udc36\ud801\udc2e\ud801\udc4a\ud801\udc32
+territories.AG=\ud801\udc08\ud801\udc4c\ud801\udc3b\ud801\udc28\ud801\udc40\ud801\udc36\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc12\ud801\udc2a\ud801\udc49\ud801\udc3a\ud801\udc37\ud801\udc2d\ud801\udc3c\ud801\udc32
+territories.AF=\ud801\udc08\ud801\udc41\ud801\udc40\ud801\udc30\ud801\udc4c\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.AE=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc34\ud801\udc3c\ud801\udc2e\ud801\udc3c \ud801\udc07\ud801\udc49\ud801\udc32\ud801\udc3a \ud801\udc07\ud801\udc4b\ud801\udc32\ud801\udc49\ud801\udc29\ud801\udc3b\ud801\udc45
+territories.AD=\ud801\udc08\ud801\udc4c\ud801\udc3c\ud801\udc31\ud801\udc49\ud801\udc32
+territories.YT=\ud801\udc23\ud801\udc2a\ud801\udc37\ud801\udc31\ud801\udc3b
+territories.YE=\ud801\udc0f\ud801\udc2f\ud801\udc4b\ud801\udc32\ud801\udc4c
+territories.YD=\ud801\udc11\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc4a\ud801\udc46 \ud801\udc14\ud801\udc2f\ud801\udc4b\ud801\udc32\ud801\udc3f\ud801\udc49\ud801\udc30\ud801\udc3c\ud801\udc2e\ud801\udc3f \ud801\udc21\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc3a\ud801\udc4a\ud801\udc2e\ud801\udc3f \ud801\udc32\ud801\udc42 \ud801\udc0f\ud801\udc2f\ud801\udc4b\ud801\udc32\ud801\udc4c
+territories.172=\ud801\udc17\ud801\udc2a\ud801\udc4b\ud801\udc32\ud801\udc4c\ud801\udc36\ud801\udc2f\ud801\udc4a\ud801\udc43 \ud801\udc32\ud801\udc42 \ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc39\ud801\udc2f\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc4c\ud801\udc3b \ud801\udc1d\ud801\udc3b\ud801\udc29\ud801\udc3b\ud801\udc45
+territories.200=\ud801\udc15\ud801\udc2f\ud801\udc3f\ud801\udc2c\ud801\udc45\ud801\udc4a\ud801\udc2c\ud801\udc42\ud801\udc2a\ud801\udc3f\ud801\udc28\ud801\udc32
+territories.WS=\ud801\udc1d\ud801\udc32\ud801\udc4b\ud801\udc2c\ud801\udc32
+territories.WK=\ud801\udc0e\ud801\udc29\ud801\udc3f \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.WF=\ud801\udc0e\ud801\udc2a\ud801\udc4a\ud801\udc2e\ud801\udc45 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc19\ud801\udc2d\ud801\udc3b\ud801\udc2d\ud801\udc4c\ud801\udc32
+territories.155=\ud801\udc0e\ud801\udc2f\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39
+territories.154=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39
+territories.151=\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39
+territories.150=\ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39
+territories.VU=\ud801\udc1a\ud801\udc2a\ud801\udc4c\ud801\udc33\ud801\udc2a\ud801\udc3c\ud801\udc2d
+territories.VN=\ud801\udc1a\ud801\udc28\ud801\udc2f\ud801\udc3b\ud801\udc4c\ud801\udc2a\ud801\udc4b
+territories.VI=\ud801\udc0f.\ud801\udc1d. \ud801\udc1a\ud801\udc32\ud801\udc49\ud801\udc3e\ud801\udc32\ud801\udc4c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.VG=\ud801\udc12\ud801\udc49\ud801\udc2e\ud801\udc3c\ud801\udc2e\ud801\udc47 \ud801\udc1a\ud801\udc32\ud801\udc49\ud801\udc3e\ud801\udc32\ud801\udc4c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.145=\ud801\udc0e\ud801\udc2f\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc01\ud801\udc48\ud801\udc32
+territories.VD=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc43 \ud801\udc1a\ud801\udc28\ud801\udc2f\ud801\udc3b\ud801\udc4c\ud801\udc2a\ud801\udc4b
+territories.VC=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc1a\ud801\udc2e\ud801\udc4c\ud801\udc45\ud801\udc32\ud801\udc4c\ud801\udc3b \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc44 \ud801\udc18\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc32\ud801\udc3c\ud801\udc28\ud801\udc4c\ud801\udc46
+territories.143=\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc01\ud801\udc48\ud801\udc32
+territories.142=\ud801\udc01\ud801\udc48\ud801\udc32
+territories.VA=\ud801\udc1a\ud801\udc30\ud801\udc3c\ud801\udc32\ud801\udc3f\ud801\udc32\ud801\udc4c
+territories.UZ=\ud801\udc05\ud801\udc46\ud801\udc3a\ud801\udc2f\ud801\udc3f\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.UY=\ud801\udc0f\ud801\udc33\ud801\udc49\ud801\udc32\ud801\udc40\ud801\udc36\ud801\udc34
+territories.US=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc34\ud801\udc3b\ud801\udc32\ud801\udc3c \ud801\udc1d\ud801\udc3b\ud801\udc29\ud801\udc3b\ud801\udc45
+territories.UM=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc30\ud801\udc2e\ud801\udc3b\ud801\udc32\ud801\udc3c \ud801\udc1d\ud801\udc3b\ud801\udc29\ud801\udc3b\ud801\udc45 \ud801\udc23\ud801\udc34\ud801\udc4c\ud801\udc2c\ud801\udc49 \ud801\udc0d\ud801\udc3b\ud801\udc4a\ud801\udc34\ud801\udc28\ud801\udc4d \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.UG=\ud801\udc0f\ud801\udc2d\ud801\udc40\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32
+territories.TZ=\ud801\udc13\ud801\udc30\ud801\udc4c\ud801\udc46\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.TW=\ud801\udc13\ud801\udc34\ud801\udc36\ud801\udc2a\ud801\udc4c
+territories.TV=\ud801\udc13\ud801\udc32\ud801\udc42\ud801\udc2a\ud801\udc4a\ud801\udc2d
+territories.TT=\ud801\udc13\ud801\udc49\ud801\udc2e\ud801\udc4c\ud801\udc2e\ud801\udc3c\ud801\udc30\ud801\udc3c \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc13\ud801\udc32\ud801\udc3a\ud801\udc29\ud801\udc40\ud801\udc2c
+territories.TR=\ud801\udc13\ud801\udc32\ud801\udc49\ud801\udc3f\ud801\udc28
+territories.TO=\ud801\udc13\ud801\udc2a\ud801\udc4d\ud801\udc40\ud801\udc32
+territories.TM=\ud801\udc13\ud801\udc32\ud801\udc49\ud801\udc3f\ud801\udc4b\ud801\udc2f\ud801\udc4c\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.TL=\ud801\udc00\ud801\udc45\ud801\udc3b \ud801\udc13\ud801\udc28\ud801\udc4b\ud801\udc31\ud801\udc49
+territories.TK=\ud801\udc13\ud801\udc2c\ud801\udc3f\ud801\udc2f\ud801\udc4a\ud801\udc35
+territories.TJ=\ud801\udc13\ud801\udc32\ud801\udc3e\ud801\udc28\ud801\udc3f\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.TH=\ud801\udc13\ud801\udc34\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3c
+territories.TG=\ud801\udc13\ud801\udc2c\ud801\udc40\ud801\udc2c
+territories.TF=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d \ud801\udc1d\ud801\udc32\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28\ud801\udc46
+territories.TD=\ud801\udc15\ud801\udc30\ud801\udc3c
+territories.TC=\ud801\udc13\ud801\udc32\ud801\udc49\ud801\udc3f\ud801\udc45 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc17\ud801\udc34\ud801\udc3f\ud801\udc2c\ud801\udc46 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.SZ=\ud801\udc1d\ud801\udc36\ud801\udc2a\ud801\udc46\ud801\udc28\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3c
+territories.SY=\ud801\udc1d\ud801\udc2e\ud801\udc49\ud801\udc28\ud801\udc32
+territories.SV=\ud801\udc07\ud801\udc4a \ud801\udc1d\ud801\udc30\ud801\udc4a\ud801\udc42\ud801\udc32\ud801\udc3c\ud801\udc31\ud801\udc49
+territories.SU=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc37\ud801\udc32\ud801\udc4c \ud801\udc32\ud801\udc42 \ud801\udc1d\ud801\udc2c\ud801\udc42\ud801\udc28\ud801\udc2f\ud801\udc3b \ud801\udc1d\ud801\udc2c\ud801\udc47\ud801\udc32\ud801\udc4a\ud801\udc2e\ud801\udc45\ud801\udc3b \ud801\udc21\ud801\udc28\ud801\udc39\ud801\udc32\ud801\udc3a\ud801\udc4a\ud801\udc2e\ud801\udc3f\ud801\udc45
+territories.ST=\ud801\udc1d\ud801\udc35 \ud801\udc13\ud801\udc2c\ud801\udc4b \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc11\ud801\udc49\ud801\udc2e\ud801\udc4c\ud801\udc3d\ud801\udc2e\ud801\udc39\ud801\udc29
+territories.SR=\ud801\udc1d\ud801\udc2d\ud801\udc49\ud801\udc32\ud801\udc4c\ud801\udc2a\ud801\udc4b
+territories.SO=\ud801\udc1d\ud801\udc32\ud801\udc4b\ud801\udc2a\ud801\udc4a\ud801\udc28\ud801\udc32
+territories.SN=\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc32\ud801\udc40\ud801\udc31\ud801\udc4a
+territories.SM=\ud801\udc1d\ud801\udc2a\ud801\udc4c \ud801\udc23\ud801\udc32\ud801\udc49\ud801\udc28\ud801\udc4c\ud801\udc2c
+territories.SL=\ud801\udc1d\ud801\udc28\ud801\udc2f\ud801\udc49\ud801\udc32 \ud801\udc22\ud801\udc28\ud801\udc2c\ud801\udc4c
+territories.SK=\ud801\udc1d\ud801\udc4a\ud801\udc2c\ud801\udc42\ud801\udc2a\ud801\udc3f\ud801\udc28\ud801\udc32
+territories.SJ=\ud801\udc1d\ud801\udc42\ud801\udc2a\ud801\udc4a\ud801\udc3a\ud801\udc2a\ud801\udc49\ud801\udc3c \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc16\ud801\udc30\ud801\udc4c \ud801\udc23\ud801\udc34\ud801\udc32\ud801\udc4c
+territories.SI=\ud801\udc1d\ud801\udc4a\ud801\udc2c\ud801\udc42\ud801\udc28\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.SH=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc10\ud801\udc2f\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc32
+territories.SG=\ud801\udc1d\ud801\udc2e\ud801\udc4d\ud801\udc32\ud801\udc39\ud801\udc31\ud801\udc49
+territories.SE=\ud801\udc1d\ud801\udc36\ud801\udc28\ud801\udc3c\ud801\udc4c
+territories.SD=\ud801\udc1d\ud801\udc2d\ud801\udc3c\ud801\udc30\ud801\udc4c
+territories.SC=\ud801\udc1d\ud801\udc29\ud801\udc47\ud801\udc2f\ud801\udc4a\ud801\udc46
+territories.SB=\ud801\udc1d\ud801\udc2a\ud801\udc4a\ud801\udc32\ud801\udc4b\ud801\udc32\ud801\udc4c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.SA=\ud801\udc1d\ud801\udc35\ud801\udc3c\ud801\udc28 \ud801\udc0a\ud801\udc49\ud801\udc29\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.RW=\ud801\udc21\ud801\udc32\ud801\udc36\ud801\udc2a\ud801\udc4c\ud801\udc3c\ud801\udc32
+territories.RU=\ud801\udc21\ud801\udc32\ud801\udc47\ud801\udc32
+territories.RS=\ud801\udc1d\ud801\udc32\ud801\udc49\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.RO=\ud801\udc21\ud801\udc2c\ud801\udc4b\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.RE=\ud801\udc21\ud801\udc28\ud801\udc37\ud801\udc2d\ud801\udc4c\ud801\udc37\ud801\udc32\ud801\udc4c
+territories.062=\ud801\udc1d\ud801\udc35\ud801\udc43-\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc01\ud801\udc48\ud801\udc32
+territories.061=\ud801\udc11\ud801\udc2a\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32
+territories.QU=\ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39\ud801\udc28\ud801\udc32\ud801\udc4c \ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc37\ud801\udc32\ud801\udc4c
+territories.QO=\ud801\udc0d\ud801\udc3b\ud801\udc4a\ud801\udc34\ud801\udc2e\ud801\udc4d \ud801\udc04\ud801\udc47\ud801\udc28\ud801\udc30\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.QA=\ud801\udc17\ud801\udc32\ud801\udc3b\ud801\udc2a\ud801\udc49
+territories.057=\ud801\udc23\ud801\udc34\ud801\udc3f\ud801\udc49\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32\ud801\udc4c \ud801\udc21\ud801\udc28\ud801\udc3e\ud801\udc32\ud801\udc4c
+territories.054=\ud801\udc23\ud801\udc2f\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32
+territories.PZ=\ud801\udc11\ud801\udc30\ud801\udc4c\ud801\udc32\ud801\udc4b\ud801\udc2a \ud801\udc17\ud801\udc32\ud801\udc4c\ud801\udc30\ud801\udc4a \ud801\udc1e\ud801\udc2c\ud801\udc4c
+territories.053=\ud801\udc09\ud801\udc45\ud801\udc3b\ud801\udc49\ud801\udc29\ud801\udc4a\ud801\udc28\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc24\ud801\udc2d \ud801\udc1e\ud801\udc28\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.PY=\ud801\udc11\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc40\ud801\udc36\ud801\udc34
+territories.PW=\ud801\udc11\ud801\udc32\ud801\udc4a\ud801\udc35
+territories.PU=\ud801\udc0f.\ud801\udc1d. \ud801\udc23\ud801\udc2e\ud801\udc45\ud801\udc32\ud801\udc4a\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc45 \ud801\udc11\ud801\udc32\ud801\udc45\ud801\udc2e\ud801\udc41\ud801\udc2e\ud801\udc3f \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.PT=\ud801\udc11\ud801\udc31\ud801\udc49\ud801\udc3d\ud801\udc32\ud801\udc40\ud801\udc32\ud801\udc4a
+territories.PS=\ud801\udc11\ud801\udc30\ud801\udc4a\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc2e\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28
+territories.PR=\ud801\udc11\ud801\udc36\ud801\udc2f\ud801\udc49\ud801\udc3b\ud801\udc2c \ud801\udc21\ud801\udc28\ud801\udc3f\ud801\udc2c
+territories.PN=\ud801\udc11\ud801\udc2e\ud801\udc3b\ud801\udc3f\ud801\udc2f\ud801\udc49\ud801\udc4c
+territories.PM=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc11\ud801\udc28\ud801\udc2f\ud801\udc49 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc23\ud801\udc28\ud801\udc3f\ud801\udc32\ud801\udc4a\ud801\udc2a\ud801\udc4c
+territories.PL=\ud801\udc11\ud801\udc2c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.PK=\ud801\udc11\ud801\udc30\ud801\udc3f\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.PH=\ud801\udc19\ud801\udc2e\ud801\udc4a\ud801\udc32\ud801\udc39\ud801\udc28\ud801\udc4c\ud801\udc46
+territories.PG=\ud801\udc11\ud801\udc30\ud801\udc39\ud801\udc37\ud801\udc33\ud801\udc32 \ud801\udc24\ud801\udc2d \ud801\udc18\ud801\udc2e\ud801\udc4c\ud801\udc28
+territories.PF=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d \ud801\udc11\ud801\udc2a\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32
+territories.PE=\ud801\udc11\ud801\udc32\ud801\udc49\ud801\udc2d
+territories.PC=\ud801\udc11\ud801\udc32\ud801\udc45\ud801\udc2e\ud801\udc41\ud801\udc2e\ud801\udc3f \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46 \ud801\udc13\ud801\udc49\ud801\udc32\ud801\udc45\ud801\udc3b \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28
+territories.PA=\ud801\udc11\ud801\udc30\ud801\udc4c\ud801\udc32\ud801\udc4b\ud801\udc2a
+territories.OM=\ud801\udc04\ud801\udc4b\ud801\udc32\ud801\udc4c
+territories.830=\ud801\udc15\ud801\udc30\ud801\udc4c\ud801\udc32\ud801\udc4a \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.039=\ud801\udc1d\ud801\udc32\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc0f\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc39
+territories.035=\ud801\udc1d\ud801\udc35\ud801\udc43-\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc01\ud801\udc48\ud801\udc32
+territories.034=\ud801\udc1d\ud801\udc32\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc01\ud801\udc48\ud801\udc32
+territories.NZ=\ud801\udc24\ud801\udc2d \ud801\udc1e\ud801\udc28\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.030=\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc01\ud801\udc48\ud801\udc32
+territories.NU=\ud801\udc24\ud801\udc37\ud801\udc2d\ud801\udc29
+territories.NT=\ud801\udc24\ud801\udc2d\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc1e\ud801\udc2c\ud801\udc4c
+territories.NR=\ud801\udc24\ud801\udc2a\ud801\udc2d\ud801\udc49\ud801\udc2d
+territories.NQ=\ud801\udc14\ud801\udc49\ud801\udc31\ud801\udc4c\ud801\udc2e\ud801\udc4d \ud801\udc23\ud801\udc31\ud801\udc3c \ud801\udc22\ud801\udc30\ud801\udc4c\ud801\udc3c
+territories.NP=\ud801\udc24\ud801\udc29\ud801\udc39\ud801\udc2a\ud801\udc4a
+territories.NO=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc36\ud801\udc29
+territories.NL=\ud801\udc24\ud801\udc2f\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.NI=\ud801\udc24\ud801\udc2e\ud801\udc3f\ud801\udc32\ud801\udc49\ud801\udc2a\ud801\udc40\ud801\udc36\ud801\udc32
+territories.NG=\ud801\udc24\ud801\udc34\ud801\udc3e\ud801\udc2e\ud801\udc49\ud801\udc28\ud801\udc32
+territories.NF=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc41\ud801\udc32\ud801\udc3f \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.NE=\ud801\udc24\ud801\udc34\ud801\udc3e\ud801\udc32\ud801\udc49
+territories.NC=\ud801\udc24\ud801\udc2d \ud801\udc17\ud801\udc30\ud801\udc4a\ud801\udc32\ud801\udc3c\ud801\udc2c\ud801\udc4c\ud801\udc37\ud801\udc32
+territories.NA=\ud801\udc24\ud801\udc32\ud801\udc4b\ud801\udc2e\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.029=\ud801\udc17\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3a\ud801\udc28\ud801\udc32\ud801\udc4c
+territories.MZ=\ud801\udc23\ud801\udc2c\ud801\udc46\ud801\udc30\ud801\udc4b\ud801\udc3a\ud801\udc28\ud801\udc3f
+territories.MY=\ud801\udc23\ud801\udc32\ud801\udc4a\ud801\udc29\ud801\udc48\ud801\udc32
+territories.MX=\ud801\udc23\ud801\udc2f\ud801\udc3f\ud801\udc45\ud801\udc32\ud801\udc3f\ud801\udc2c
+territories.021=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.MW=\ud801\udc23\ud801\udc32\ud801\udc4a\ud801\udc2a\ud801\udc36\ud801\udc28
+territories.MV=\ud801\udc23\ud801\udc2a\ud801\udc4a\ud801\udc3c\ud801\udc28\ud801\udc42\ud801\udc46
+territories.MU=\ud801\udc23\ud801\udc31\ud801\udc49\ud801\udc2e\ud801\udc47\ud801\udc32\ud801\udc45
+territories.MT=\ud801\udc23\ud801\udc31\ud801\udc4a\ud801\udc3b\ud801\udc32
+territories.MS=\ud801\udc23\ud801\udc2a\ud801\udc4c\ud801\udc3b\ud801\udc45\ud801\udc32\ud801\udc49\ud801\udc2a\ud801\udc3b
+territories.MR=\ud801\udc23\ud801\udc31\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.MQ=\ud801\udc23\ud801\udc2a\ud801\udc49\ud801\udc3b\ud801\udc4c\ud801\udc28\ud801\udc3f
+territories.MP=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc23\ud801\udc30\ud801\udc49\ud801\udc28\ud801\udc31\ud801\udc4c\ud801\udc32 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.MO=\ud801\udc23\ud801\udc32\ud801\udc3f\ud801\udc35
+territories.MN=\ud801\udc23\ud801\udc2a\ud801\udc4d\ud801\udc40\ud801\udc2c\ud801\udc4a\ud801\udc28\ud801\udc32
+territories.MM=\ud801\udc23\ud801\udc28\ud801\udc32\ud801\udc4c\ud801\udc4b\ud801\udc2a\ud801\udc49
+territories.ML=\ud801\udc23\ud801\udc2a\ud801\udc4a\ud801\udc28
+territories.MK=\ud801\udc23\ud801\udc30\ud801\udc45\ud801\udc32\ud801\udc3c\ud801\udc2c\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.419=\ud801\udc22\ud801\udc30\ud801\udc3b\ud801\udc4c \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc44 \ud801\udc17\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3a\ud801\udc28\ud801\udc32\ud801\udc4c
+territories.MI=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc36\ud801\udc29 \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.MH=\ud801\udc23\ud801\udc2a\ud801\udc49\ud801\udc47\ud801\udc32\ud801\udc4a \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.MG=\ud801\udc23\ud801\udc30\ud801\udc3c\ud801\udc32\ud801\udc40\ud801\udc30\ud801\udc45\ud801\udc3f\ud801\udc32\ud801\udc49
+territories.MF=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc23\ud801\udc2a\ud801\udc49\ud801\udc3b\ud801\udc4c
+territories.ME=\ud801\udc23\ud801\udc2a\ud801\udc4c\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc40\ud801\udc49\ud801\udc2c
+territories.MD=\ud801\udc23\ud801\udc31\ud801\udc4a\ud801\udc3c\ud801\udc2c\ud801\udc42\ud801\udc32
+territories.MC=\ud801\udc23\ud801\udc2a\ud801\udc4c\ud801\udc32\ud801\udc3f\ud801\udc2c
+territories.MA=\ud801\udc23\ud801\udc32\ud801\udc49\ud801\udc2a\ud801\udc3f\ud801\udc2c
+territories.019=\ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32\ud801\udc46
+territories.018=\ud801\udc1d\ud801\udc32\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.017=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc4a \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc2e\ud801\udc3f\ud801\udc32
+territories.015=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc44\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.014=\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.013=\ud801\udc1d\ud801\udc2f\ud801\udc4c\ud801\udc3b\ud801\udc49\ud801\udc32\ud801\udc4a \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.LY=\ud801\udc22\ud801\udc2e\ud801\udc3a\ud801\udc28\ud801\udc32
+territories.011=\ud801\udc0e\ud801\udc2f\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.LV=\ud801\udc22\ud801\udc30\ud801\udc3b\ud801\udc42\ud801\udc28\ud801\udc32
+territories.LU=\ud801\udc22\ud801\udc32\ud801\udc3f\ud801\udc45\ud801\udc32\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc49\ud801\udc40
+territories.LT=\ud801\udc22\ud801\udc2e\ud801\udc43\ud801\udc32\ud801\udc36\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.LS=\ud801\udc22\ud801\udc32\ud801\udc45\ud801\udc2c\ud801\udc43\ud801\udc2c
+territories.LR=\ud801\udc22\ud801\udc34\ud801\udc3a\ud801\udc2e\ud801\udc49\ud801\udc28\ud801\udc32
+territories.LK=\ud801\udc1f\ud801\udc49\ud801\udc28 \ud801\udc22\ud801\udc30\ud801\udc4d\ud801\udc3f\ud801\udc32
+territories.LI=\ud801\udc22\ud801\udc2e\ud801\udc3f\ud801\udc3b\ud801\udc32\ud801\udc4c\ud801\udc45\ud801\udc3b\ud801\udc34\ud801\udc4c
+territories.LB=\ud801\udc22\ud801\udc2f\ud801\udc3a\ud801\udc32\ud801\udc4c\ud801\udc2a\ud801\udc4c
+territories.LA=\ud801\udc22\ud801\udc2a\ud801\udc2c\ud801\udc45
+territories.009=\ud801\udc04\ud801\udc47\ud801\udc28\ud801\udc30\ud801\udc4c\ud801\udc28\ud801\udc32
+territories.005=\ud801\udc1d\ud801\udc35\ud801\udc43 \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.KZ=\ud801\udc17\ud801\udc32\ud801\udc46\ud801\udc2a\ud801\udc3f\ud801\udc45\ud801\udc3b\ud801\udc2a\ud801\udc4c
+territories.003=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc43 \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.KY=\ud801\udc17\ud801\udc29\ud801\udc4b\ud801\udc32\ud801\udc4c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.002=\ud801\udc08\ud801\udc41\ud801\udc49\ud801\udc32\ud801\udc3f\ud801\udc32
+territories.001=\ud801\udc0e\ud801\udc32\ud801\udc49\ud801\udc4a\ud801\udc3c
+territories.KW=\ud801\udc17\ud801\udc32\ud801\udc36\ud801\udc29\ud801\udc3b
+territories.KR=\ud801\udc1d\ud801\udc35\ud801\udc43 \ud801\udc17\ud801\udc32\ud801\udc49\ud801\udc28\ud801\udc32
+territories.KP=\ud801\udc24\ud801\udc31\ud801\udc49\ud801\udc43 \ud801\udc17\ud801\udc32\ud801\udc49\ud801\udc28\ud801\udc32
+territories.KN=\ud801\udc1d\ud801\udc29\ud801\udc4c\ud801\udc3b \ud801\udc17\ud801\udc2e\ud801\udc3b\ud801\udc45 \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc24\ud801\udc28\ud801\udc42\ud801\udc2e\ud801\udc45
+territories.KM=\ud801\udc17\ud801\udc2a\ud801\udc4b\ud801\udc32\ud801\udc49\ud801\udc2c\ud801\udc46
+territories.KI=\ud801\udc17\ud801\udc2e\ud801\udc49\ud801\udc32\ud801\udc3a\ud801\udc2a\ud801\udc3b\ud801\udc28
+territories.KH=\ud801\udc17\ud801\udc30\ud801\udc4b\ud801\udc3a\ud801\udc2c\ud801\udc3c\ud801\udc28\ud801\udc32
+territories.KG=\ud801\udc17\ud801\udc2e\ud801\udc49\ud801\udc40\ud801\udc32\ud801\udc45\ud801\udc3b\ud801\udc30\ud801\udc4c
+territories.KE=\ud801\udc17\ud801\udc2f\ud801\udc4c\ud801\udc37\ud801\udc32
+territories.JT=\ud801\udc16\ud801\udc2a\ud801\udc4c\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc4c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.JP=\ud801\udc16\ud801\udc32\ud801\udc39\ud801\udc30\ud801\udc4c
+territories.JO=\ud801\udc16\ud801\udc31\ud801\udc49\ud801\udc3c\ud801\udc32\ud801\udc4c
+territories.JM=\ud801\udc16\ud801\udc32\ud801\udc4b\ud801\udc29\ud801\udc3f\ud801\udc32
+territories.JE=\ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc46\ud801\udc28
+territories.IT=\ud801\udc06\ud801\udc3b\ud801\udc32\ud801\udc4a\ud801\udc28
+territories.IS=\ud801\udc0c\ud801\udc45\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.IR=\ud801\udc06\ud801\udc49\ud801\udc2a\ud801\udc4c
+territories.IQ=\ud801\udc06\ud801\udc49\ud801\udc30\ud801\udc3f
+territories.IO=\ud801\udc12\ud801\udc49\ud801\udc2e\ud801\udc3c\ud801\udc2e\ud801\udc47 \ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc28\ud801\udc32\ud801\udc4c \ud801\udc04\ud801\udc47\ud801\udc32\ud801\udc4c \ud801\udc13\ud801\udc2f\ud801\udc49\ud801\udc32\ud801\udc3b\ud801\udc31\ud801\udc49\ud801\udc28
+territories.IN=\ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc28\ud801\udc32
+territories.IM=\ud801\udc0c\ud801\udc32\ud801\udc4a \ud801\udc32\ud801\udc41 \ud801\udc23\ud801\udc30\ud801\udc4c
+territories.IL=\ud801\udc06\ud801\udc46\ud801\udc49\ud801\udc28\ud801\udc32\ud801\udc4a
+territories.IE=\ud801\udc0c\ud801\udc49\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c
+territories.ID=\ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32
+territories.HU=\ud801\udc10\ud801\udc32\ud801\udc4d\ud801\udc40\ud801\udc32\ud801\udc49\ud801\udc28
+territories.HT=\ud801\udc10\ud801\udc29\ud801\udc3b\ud801\udc28
+territories.HR=\ud801\udc17\ud801\udc49\ud801\udc2c\ud801\udc29\ud801\udc47\ud801\udc32
+territories.HN=\ud801\udc10\ud801\udc2a\ud801\udc4c\ud801\udc3c\ud801\udc2d\ud801\udc49\ud801\udc32\ud801\udc45
+territories.HM=\ud801\udc10\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c \ud801\udc30\ud801\udc4c\ud801\udc3c \ud801\udc23\ud801\udc3f\ud801\udc14\ud801\udc31\ud801\udc4c\ud801\udc32\ud801\udc4a\ud801\udc3c \ud801\udc0c\ud801\udc4a\ud801\udc32\ud801\udc4c\ud801\udc3c\ud801\udc46
+territories.HK=\ud801\udc10\ud801\udc2c\ud801\udc4d \ud801\udc17\ud801\udc2c\ud801\udc4d
+languages.es=\ud801\udc1d\ud801\udc39\ud801\udc30\ud801\udc4c\ud801\udc2e\ud801\udc47
+languages.kw=\ud801\udc17\ud801\udc2c\ud801\udc49\ud801\udc4c\ud801\udc2e\ud801\udc47
+languages.moh=\ud801\udc10\ud801\udc2c\ud801\udc38\ud801\udc2a\ud801\udc3f
+languages.mul=\ud801\udc23\ud801\udc32\ud801\udc4a\ud801\udc3b\ud801\udc2e\ud801\udc39\ud801\udc32\ud801\udc4a \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e\ud801\udc32\ud801\udc46
+languages.ku=\ud801\udc17\ud801\udc32\ud801\udc49\ud801\udc3c\ud801\udc2e\ud801\udc47
+languages.eo=\ud801\udc07\ud801\udc45\ud801\udc39\ud801\udc2f\ud801\udc49\ud801\udc2a\ud801\udc4c\ud801\udc3b\ud801\udc2c
+languages.en=\ud801\udc00\ud801\udc4d\ud801\udc4a\ud801\udc2e\ud801\udc47
+languages.kut=\ud801\udc22\ud801\udc30\ud801\udc3c\ud801\udc28\ud801\udc4c\ud801\udc2c
+languages.el=\ud801\udc18\ud801\udc49\ud801\udc28\ud801\udc3f
+languages.ko=\ud801\udc17\ud801\udc2c\ud801\udc49\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.zxx=\ud801\udc24\ud801\udc2c \ud801\udc4a\ud801\udc28\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc45\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc3f\ud801\udc31\ud801\udc4c\ud801\udc3b\ud801\udc2f\ud801\udc4c\ud801\udc3b
+languages.km=\ud801\udc17\ud801\udc32\ud801\udc4b\ud801\udc2f\ud801\udc49
+languages.hit=\ud801\udc10\ud801\udc2e\ud801\udc3b\ud801\udc34\ud801\udc3b
+languages.ka=\ud801\udc16\ud801\udc2c\ud801\udc49\ud801\udc3e\ud801\udc32\ud801\udc4c
+languages.got=\ud801\udc18\ud801\udc31\ud801\udc43\ud801\udc2e\ud801\udc3f
+languages.gil=\ud801\udc18\ud801\udc2e\ud801\udc4a\ud801\udc3a\ud801\udc2f\ud801\udc49\ud801\udc3b\ud801\udc28\ud801\udc46
+languages.jv=\ud801\udc16\ud801\udc2a\ud801\udc42\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc46
+languages.cpf=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d-\ud801\udc3a\ud801\udc29\ud801\udc45\ud801\udc3b \ud801\udc17\ud801\udc49\ud801\udc28\ud801\udc2c\ud801\udc4a \ud801\udc2c\ud801\udc49 \ud801\udc11\ud801\udc2e\ud801\udc3e\ud801\udc2e\ud801\udc4c
+languages.cpe=\ud801\udc00\ud801\udc4d\ud801\udc4a\ud801\udc2e\ud801\udc47-\ud801\udc3a\ud801\udc29\ud801\udc45\ud801\udc3b \ud801\udc17\ud801\udc49\ud801\udc28\ud801\udc2c\ud801\udc4a \ud801\udc2c\ud801\udc49 \ud801\udc11\ud801\udc2e\ud801\udc3e\ud801\udc2e\ud801\udc4c
+languages.mnc=\ud801\udc23\ud801\udc30\ud801\udc4c\ud801\udc3d\ud801\udc2d
+languages.nap=\ud801\udc24\ud801\udc28\ud801\udc32\ud801\udc39\ud801\udc31\ud801\udc4a\ud801\udc2e\ud801\udc3b\ud801\udc32\ud801\udc4c
+languages.de=\ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc4c\ud801\udc32
+languages.nai=\ud801\udc24\ud801\udc2c\ud801\udc49\ud801\udc43 \ud801\udc0a\ud801\udc4b\ud801\udc2f\ud801\udc49\ud801\udc2e\ud801\udc3f\ud801\udc32\ud801\udc4c \ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc28\ud801\udc32\ud801\udc4c \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.da=\ud801\udc14\ud801\udc29\ud801\udc4c\ud801\udc2e\ud801\udc47
+languages.apa=\ud801\udc0a\ud801\udc39\ud801\udc30\ud801\udc3d\ud801\udc28 \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.tlh=\ud801\udc17\ud801\udc4a\ud801\udc2e\ud801\udc4d\ud801\udc31\ud801\udc4c
+languages.cop=\ud801\udc17\ud801\udc2c\ud801\udc39\ud801\udc3b\ud801\udc2e\ud801\udc3f
+languages.ja=\ud801\udc16\ud801\udc30\ud801\udc39\ud801\udc32\ud801\udc4c\ud801\udc28\ud801\udc46
+languages.dum=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc32\ud801\udc4a \ud801\udc14\ud801\udc32\ud801\udc3d
+languages.cy=\ud801\udc0e\ud801\udc2f\ud801\udc4a\ud801\udc47
+languages.ine=\ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc2c-\ud801\udc0f\ud801\udc2f\ud801\udc49\ud801\udc2c\ud801\udc39\ud801\udc28\ud801\udc32\ud801\udc4c \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.cs=\ud801\udc15\ud801\udc2f\ud801\udc3f
+languages.inc=\ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc2e\ud801\udc3f \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.cr=\ud801\udc17\ud801\udc49\ud801\udc28
+languages.it=\ud801\udc06\ud801\udc3b\ud801\udc30\ud801\udc4a\ud801\udc37\ud801\udc32\ud801\udc4c
+languages.co=\ud801\udc17\ud801\udc2c\ud801\udc49\ud801\udc45\ud801\udc2e\ud801\udc3f\ud801\udc32\ud801\udc4c
+languages.mga=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc32\ud801\udc4a \ud801\udc0c\ud801\udc49\ud801\udc2e\ud801\udc47
+languages.is=\ud801\udc0c\ud801\udc45\ud801\udc4a\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc2e\ud801\udc3f
+languages.myn=\ud801\udc23\ud801\udc34\ud801\udc32\ud801\udc4c \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.haw=\ud801\udc10\ud801\udc32\ud801\udc36\ud801\udc34\ud801\udc32\ud801\udc4c
+languages.chy=\ud801\udc1f\ud801\udc34\ud801\udc30\ud801\udc4c
+languages.enm=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc32\ud801\udc4a \ud801\udc00\ud801\udc4d\ud801\udc4a\ud801\udc2e\ud801\udc47
+languages.chr=\ud801\udc15\ud801\udc2f\ud801\udc49\ud801\udc2c\ud801\udc3f\ud801\udc28
+languages.ca=\ud801\udc17\ud801\udc2a\ud801\udc3b\ud801\udc32\ud801\udc4a\ud801\udc2a\ud801\udc4c
+languages.id=\ud801\udc06\ud801\udc4c\ud801\udc3c\ud801\udc2c\ud801\udc4c\ud801\udc28\ud801\udc48\ud801\udc32\ud801\udc4c
+languages.ia=\ud801\udc06\ud801\udc4c\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4a\ud801\udc2e\ud801\udc4d\ud801\udc36\ud801\udc32
+languages.bnt=\ud801\udc12\ud801\udc30\ud801\udc4c\ud801\udc3b\ud801\udc2d
+languages.egy=\ud801\udc01\ud801\udc4c\ud801\udc3d\ud801\udc32\ud801\udc4c\ud801\udc3b \ud801\udc00\ud801\udc3e\ud801\udc2e\ud801\udc39\ud801\udc3d\ud801\udc32\ud801\udc4c
+languages.hy=\ud801\udc02\ud801\udc49\ud801\udc4b\ud801\udc28\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.br=\ud801\udc12\ud801\udc49\ud801\udc2f\ud801\udc3b\ud801\udc32\ud801\udc4c
+languages.ht=\ud801\udc10\ud801\udc29\ud801\udc47\ud801\udc32\ud801\udc4c
+languages.hr=\ud801\udc17\ud801\udc49\ud801\udc2c\ud801\udc29\ud801\udc47\ud801\udc32\ud801\udc4c
+languages.nv=\ud801\udc24\ud801\udc2a\ud801\udc42\ud801\udc32\ud801\udc38\ud801\udc2c
+languages.gmh=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc32\ud801\udc4a \ud801\udc10\ud801\udc34 \ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c
+languages.dak=\ud801\udc14\ud801\udc32\ud801\udc3f\ud801\udc2c\ud801\udc3b\ud801\udc32
+languages.bat=\ud801\udc12\ud801\udc2a\ud801\udc4a\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.hi=\ud801\udc10\ud801\udc2e\ud801\udc4c\ud801\udc3c\ud801\udc28
+languages.nl=\ud801\udc14\ud801\udc32\ud801\udc3d
+languages.zh=\ud801\udc15\ud801\udc34\ud801\udc4c\ud801\udc28\ud801\udc46
+languages.jrb=\ud801\udc16\ud801\udc2d\ud801\udc3c\ud801\udc28\ud801\udc2c-\ud801\udc08\ud801\udc49\ud801\udc32\ud801\udc3a\ud801\udc2e\ud801\udc3f
+languages.ar=\ud801\udc07\ud801\udc49\ud801\udc32\ud801\udc3a\ud801\udc2e\ud801\udc3f
+languages.gv=\ud801\udc23\ud801\udc30\ud801\udc4c\ud801\udc3f\ud801\udc45
+languages.my=\ud801\udc12\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc28\ud801\udc46
+languages.an=\ud801\udc08\ud801\udc49\ud801\udc32\ud801\udc40\ud801\udc31\ud801\udc4c\ud801\udc28\ud801\udc46
+languages.dsb=\ud801\udc22\ud801\udc2c\ud801\udc32\ud801\udc49 \ud801\udc1d\ud801\udc2c\ud801\udc49\ud801\udc3a\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.zbl=\ud801\udc12\ud801\udc4a\ud801\udc2e\ud801\udc45-\ud801\udc45\ud801\udc2e\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc4a\ud801\udc46
+languages.byn=\ud801\udc12\ud801\udc4a\ud801\udc2e\ud801\udc4c
+languages.nds=\ud801\udc22\ud801\udc2c \ud801\udc16\ud801\udc2f\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c
+languages.frm=\ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc32\ud801\udc4a \ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d
+languages.mo=\ud801\udc23\ud801\udc2c\ud801\udc4a\ud801\udc3c\ud801\udc29\ud801\udc42\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.mn=\ud801\udc23\ud801\udc31\ud801\udc4d\ud801\udc2c\ud801\udc4a\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.grc=\ud801\udc01\ud801\udc4c\ud801\udc3d\ud801\udc32\ud801\udc4c\ud801\udc3b \ud801\udc18\ud801\udc49\ud801\udc28\ud801\udc3f
+languages.mk=\ud801\udc23\ud801\udc30\ud801\udc45\ud801\udc2f\ud801\udc3c\ud801\udc2c\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.mi=\ud801\udc23\ud801\udc35\ud801\udc49\ud801\udc28
+languages.ga=\ud801\udc0c\ud801\udc49\ud801\udc2e\ud801\udc47
+languages.crp=\ud801\udc17\ud801\udc49\ud801\udc28\ud801\udc2c\ud801\udc4a \ud801\udc2c\ud801\udc49 \ud801\udc11\ud801\udc2e\ud801\udc3e\ud801\udc2e\ud801\udc4c
+languages.gem=\ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc30\ud801\udc4c\ud801\udc2e\ud801\udc3f \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.art=\ud801\udc02\ud801\udc49\ud801\udc3b\ud801\udc2e\ud801\udc41\ud801\udc2e\ud801\udc47\ud801\udc32\ud801\udc4a \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.fr=\ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d
+languages.lv=\ud801\udc22\ud801\udc30\ud801\udc3b\ud801\udc42\ud801\udc28\ud801\udc32\ud801\udc4c
+languages.lo=\ud801\udc22\ud801\udc35
+languages.jpr=\ud801\udc16\ud801\udc2d\ud801\udc3c\ud801\udc28\ud801\udc2c-\ud801\udc11\ud801\udc2f\ud801\udc49\ud801\udc48\ud801\udc32\ud801\udc4c
+languages.mis=\ud801\udc23\ud801\udc2e\ud801\udc45\ud801\udc32\ud801\udc4a\ud801\udc29\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc45 \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.cel=\ud801\udc17\ud801\udc2f\ud801\udc4a\ud801\udc3b\ud801\udc2e\ud801\udc3f \ud801\udc22\ud801\udc29\ud801\udc4d\ud801\udc36\ud801\udc2e\ud801\udc3e
+languages.ber=\ud801\udc12\ud801\udc32\ud801\udc49\ud801\udc3a\ud801\udc32\ud801\udc49
+languages.lb=\ud801\udc22\ud801\udc32\ud801\udc3f\ud801\udc45\ud801\udc2f\ud801\udc4b\ud801\udc3a\ud801\udc32\ud801\udc49\ud801\udc40\ud801\udc2e\ud801\udc47
+languages.la=\ud801\udc22\ud801\udc30\ud801\udc3b\ud801\udc2e\ud801\udc4c
+languages.mus=\ud801\udc17\ud801\udc49\ud801\udc28\ud801\udc3f
+languages.eu=\ud801\udc12\ud801\udc30\ud801\udc45\ud801\udc3f
+languages.et=\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc2c\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c
+variants.POSIX=\ud801\udc17\ud801\udc32\ud801\udc4b\ud801\udc39\ud801\udc37\ud801\udc2d\ud801\udc3b\ud801\udc2f\ud801\udc49
+variants.AREVMDA=\ud801\udc0e\ud801\udc2f\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc02\ud801\udc49\ud801\udc4b\ud801\udc28\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c
+variants.1996=\ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c \ud801\udc31\ud801\udc49\ud801\udc43\ud801\udc2a\ud801\udc40\ud801\udc49\ud801\udc32\ud801\udc41\ud801\udc28 \ud801\udc32\ud801\udc42 1996
+variants.1901=\ud801\udc13\ud801\udc49\ud801\udc32\ud801\udc3c\ud801\udc2e\ud801\udc47\ud801\udc32\ud801\udc4c\ud801\udc4a \ud801\udc16\ud801\udc32\ud801\udc49\ud801\udc4b\ud801\udc32\ud801\udc4c \ud801\udc31\ud801\udc49\ud801\udc43\ud801\udc2a\ud801\udc40\ud801\udc49\ud801\udc32\ud801\udc41\ud801\udc28
+variants.XIANG=\ud801\udc1f\ud801\udc28\ud801\udc30\ud801\udc4d \ud801\udc2c\ud801\udc49 \ud801\udc10\ud801\udc2d\ud801\udc4c\ud801\udc2a\ud801\udc4c\ud801\udc28\ud801\udc46
+variants.1694ACAD=\ud801\udc0a\ud801\udc49\ud801\udc4a\ud801\udc28 \ud801\udc23\ud801\udc2a\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d
+variants.REVISED=\ud801\udc21\ud801\udc32\ud801\udc42\ud801\udc34\ud801\udc46\ud801\udc3c \ud801\udc09\ud801\udc49\ud801\udc43\ud801\udc2a\ud801\udc40\ud801\udc49\ud801\udc32\ud801\udc41\ud801\udc28
+variants.FONIPA=\ud801\udc06\ud801\udc19\ud801\udc08 \ud801\udc19\ud801\udc2c\ud801\udc4c\ud801\udc2f\ud801\udc3b\ud801\udc2e\ud801\udc3f\ud801\udc45
+variants.GAULISH=\ud801\udc18\ud801\udc2a\ud801\udc4a\ud801\udc2e\ud801\udc47
+variants.BAKU1926=\ud801\udc0f\ud801\udc2d\ud801\udc4c\ud801\udc32\ud801\udc41\ud801\udc34\ud801\udc3c \ud801\udc13\ud801\udc32\ud801\udc49\ud801\udc3f\ud801\udc2e\ud801\udc3f \ud801\udc22\ud801\udc30\ud801\udc3b\ud801\udc4c \ud801\udc08\ud801\udc4a\ud801\udc41\ud801\udc32\ud801\udc3a\ud801\udc32\ud801\udc3b
+variants.LOJBAN=\ud801\udc22\ud801\udc31\ud801\udc3e\ud801\udc3a\ud801\udc30\ud801\udc4c
+variants.GUOYU=\ud801\udc23\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc32\ud801\udc4c \ud801\udc2c\ud801\udc49 \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc15\ud801\udc34\ud801\udc4c\ud801\udc28\ud801\udc46
+variants.MONOTON=\ud801\udc23\ud801\udc2a\ud801\udc4c\ud801\udc32\ud801\udc3b\ud801\udc2a\ud801\udc4c\ud801\udc2e\ud801\udc3f
+variants.POLYTON=\ud801\udc11\ud801\udc31\ud801\udc4a\ud801\udc28\ud801\udc3b\ud801\udc31\ud801\udc4c\ud801\udc2e\ud801\udc3f
+variants.HAKKA=\ud801\udc10\ud801\udc32\ud801\udc3f\ud801\udc2a
+variants.AREVELA=\ud801\udc00\ud801\udc45\ud801\udc3b\ud801\udc32\ud801\udc49\ud801\udc4c \ud801\udc02\ud801\udc49\ud801\udc4b\ud801\udc28\ud801\udc4c\ud801\udc28\ud801\udc32\ud801\udc4c
+variants.SCOTLAND=\ud801\udc1d\ud801\udc3f\ud801\udc2a\ud801\udc3c\ud801\udc2e\ud801\udc47 \ud801\udc1d\ud801\udc3b\ud801\udc30\ud801\udc4c\ud801\udc3c\ud801\udc32\ud801\udc49\ud801\udc3c \ud801\udc06\ud801\udc4d\ud801\udc4a\ud801\udc2e\ud801\udc47
+variants.1606NICT=\ud801\udc22\ud801\udc29\ud801\udc3b \ud801\udc23\ud801\udc2e\ud801\udc3c\ud801\udc4a \ud801\udc19\ud801\udc49\ud801\udc2f\ud801\udc4c\ud801\udc3d \ud801\udc3b\ud801\udc2d 1606
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_GB.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_GB.properties
index c35145c..9ed504c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_GB.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_GB.properties
@@ -5,7 +5,7 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-firstDayOfWeek=mon
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
shortDateFormat=dd/MM/yyyy
mediumDateFormat=d MMM yyyy
longDateFormat=d MMMM yyyy
@@ -14,4 +14,3 @@ shortTimeFormat=HH:mm
mediumTimeFormat=HH:mm:ss
longTimeFormat=HH:mm:ss z
fullTimeFormat=HH:mm:ss z
-zoneStrings=Europe/London®GMT®Greenwich Mean Time®BST®British Summer Time®©
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_HK.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_HK.properties
index a86011e..45f0fab 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_HK.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_HK.properties
@@ -5,9 +5,9 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
currenciesDisplayName.USD=USD
currenciesSymbol.HKD=$
+currenciesSymbol.USD=US$
shortDateFormat=dd/MM/yyyy
mediumDateFormat=d MMM yyyy
longDateFormat=d MMMM yyyy
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IE.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IE.properties
index a1ddc36..21e7332 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IE.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IE.properties
@@ -5,8 +5,10 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesSymbol.IEP=\u00a3
-ampms=a.m.®p.m.®
+currenciesSymbol.GBP=GBP
+ampms=a.m.\u00aep.m.\u00ae
shortDateFormat=dd/MM/yyyy
mediumDateFormat=d MMM yyyy
longDateFormat=d MMMM yyyy
@@ -15,4 +17,3 @@ shortTimeFormat=HH:mm
mediumTimeFormat=HH:mm:ss
longTimeFormat=HH:mm:ss z
fullTimeFormat=HH:mm:ss z
-zoneStrings=Europe/Dublin®GMT®Greenwich Mean Time®IST®Irish Summer Time®©
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IN.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IN.properties
index a624a8b..5810543 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IN.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_IN.properties
@@ -6,9 +6,8 @@
# This file was automatically generated by gnu.localegen from CLDR.
percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
-firstDayOfWeek=mon
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
+mediumDateFormat=dd-MMM-yyyy
longDateFormat=d MMMM yyyy
fullDateFormat=EEEE d MMMM yyyy
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties
new file mode 100644
index 0000000..5bd627c
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties
@@ -0,0 +1,8 @@
+# LocaleInformation_en_JM.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_MT.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_MT.properties
index 9a356ad..fbc2b7c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_MT.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_MT.properties
@@ -5,8 +5,8 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesSymbol.GBP=GBP
-minNumberOfDaysInFirstWeek=4
shortDateFormat=dd/MM/yyyy
mediumDateFormat=dd MMM yyyy
longDateFormat=dd MMMM yyyy
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties
new file mode 100644
index 0000000..197665a
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties
@@ -0,0 +1,8 @@
+# LocaleInformation_en_NA.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NZ.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NZ.properties
index 2979719..ab81cde 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NZ.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_NZ.properties
@@ -5,9 +5,11 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+perMill=This symbol is not used in NZ
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesSymbol.NZD=$
+currenciesSymbol.USD=US$
shortDateFormat=d/MM/yy
mediumDateFormat=d/MM/yyyy
longDateFormat=d MMMM yyyy
fullDateFormat=EEEE, d MMMM yyyy
-longTimeFormat=h:mm:ss a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PH.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PH.properties
index 1c894b2..a127aba 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PH.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PH.properties
@@ -5,6 +5,4 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
currenciesDisplayName.PHP=Peso
-mediumDateFormat=MM d, yy
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PK.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PK.properties
index 658494d..07598ff 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PK.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_PK.properties
@@ -6,8 +6,8 @@
# This file was automatically generated by gnu.localegen from CLDR.
percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
+mediumDateFormat=dd-MMM-yyyy
longDateFormat=d MMMM yyyy
fullDateFormat=EEEE d MMMM yyyy
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_SG.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_SG.properties
index fe90755..8e64277 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_SG.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_SG.properties
@@ -5,14 +5,15 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.USD=USD
currenciesSymbol.SGD=$
-shortDateFormat=dd/MM/yyyy
-mediumDateFormat=dd MMM yyyy
-longDateFormat=dd MMMM yyyy
+currenciesSymbol.USD=US$
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMM yyyy
fullDateFormat=EEEE, dd MMMM yyyy
-shortTimeFormat=h:mm a
-mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a z
-fullTimeFormat=h:mm:ss a z
-zoneStrings=Asia/Singapore®SST®Singapore Standard Time®SST®Singapore Standard Time®©
+shortTimeFormat=a hh:mm
+mediumTimeFormat=a hh:mm:ss
+longTimeFormat=a hh:mm:ss z
+fullTimeFormat=a hh:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties
new file mode 100644
index 0000000..9fb5cc7
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties
@@ -0,0 +1,13 @@
+# LocaleInformation_en_Shaw.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=\u00b7\ud801\udc61\ud801\udc68\u00ae\u00b7\ud801\udc53\ud801\udc67\u00ae\u00b7\ud801\udc65\ud801\udc78\u00ae\u00b7\ud801\udc71\ud801\udc50\u00ae\u00b7\ud801\udc65\ud801\udc71\u00ae\u00b7\ud801\udc61\ud801\udc75\u00ae\u00b7\ud801\udc61\ud801\udc6b\u00ae\u00b7\ud801\udc6a\ud801\udc5c\u00ae\u00b7\ud801\udc55\ud801\udc67\u00ae\u00b7\ud801\udc77\ud801\udc52\u00ae\u00b7\ud801\udc6f\ud801\udc74\u00ae\u00b7\ud801\udc5b\ud801\udc6d\u00ae\u00ae
+months=\u00b7\ud801\udc61\ud801\udc68\ud801\udc59\ud801\udc58\ud801\udc6d\ud801\udc62\ud801\udc7a\ud801\udc70\u00ae\u00b7\ud801\udc53\ud801\udc67\ud801\udc5a\ud801\udc58\ud801\udc75\ud801\udc62\ud801\udc7a\ud801\udc70\u00ae\u00b7\ud801\udc65\ud801\udc78\ud801\udc57\u00ae\u00b7\ud801\udc71\ud801\udc50\ud801\udc6e\ud801\udc6d\ud801\udc64\u00ae\u00b7\ud801\udc65\ud801\udc71\u00ae\u00b7\ud801\udc61\ud801\udc75\ud801\udc6f\u00ae\u00b7\ud801\udc61\ud801\udc6b\ud801\udc64\ud801\udc72\u00ae\u00b7\ud801\udc6a\ud801\udc5c\ud801\udc6d\ud801\udc55\ud801\udc51\u00ae\u00b7\ud801\udc55\ud801\udc67\ud801\udc50\ud801\udc51\ud801\udc67\ud801\udc65\ud801\udc5a\ud801\udc78\u00ae\u00b7\ud801\udc77\ud801\udc52\ud801\udc51\ud801\udc74\ud801\udc5a\ud801\udc78\u00ae\u00b7\ud801\udc6f\ud801\udc74\ud801\udc5d\ud801\udc67\ud801\udc65\ud801\udc5a\ud801\udc78\u00ae\u00b7\ud801\udc5b\ud801\udc6d\ud801\udc55\ud801\udc67\ud801\udc65\ud801\udc5a\ud801\udc78\u00ae\u00ae
+shortWeekdays=\u00ae\u00b7\ud801\udc55\ud801\udc6d\u00ae\u00b7\ud801\udc65\ud801\udc6d\u00ae\u00b7\ud801\udc51\ud801\udc75\u00ae\u00b7\ud801\udc62\ud801\udc67\u00ae\u00b7\ud801\udc54\ud801\udc7b\u00ae\u00b7\ud801\udc53\ud801\udc6e\u00ae\u00b7\ud801\udc55\ud801\udc68\u00ae
+weekdays=\u00ae\u00b7\ud801\udc55\ud801\udc6d\ud801\udc59\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc65\ud801\udc6d\ud801\udc59\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc51\ud801\udc75\ud801\udc5f\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc62\ud801\udc67\ud801\udc59\ud801\udc5f\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc54\ud801\udc7b\ud801\udc5f\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc53\ud801\udc6e\ud801\udc72\ud801\udc5b\ud801\udc71\u00ae\u00b7\ud801\udc55\ud801\udc68\ud801\udc5b\ud801\udc7b\ud801\udc5b\ud801\udc71\u00ae
+eras=\ud801\udc5a\u00b7\ud801\udc52\u00ae\ud801\udc68\ud801\udc5b\u00ae
+ampms=\ud801\udc68.\ud801\udc65.\u00ae\ud801\udc50.\ud801\udc65.\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties
new file mode 100644
index 0000000..ff75137
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties
@@ -0,0 +1,8 @@
+# LocaleInformation_en_TT.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties
index 6625bd8..da1da0c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties
@@ -7,6 +7,5 @@
perMill=0/00
infinity=INF
-NaN=NaN
percentFormat=#0%
-currencyFormat=\u00a4 #0.00;-\u00a4 #0.00
+currencyFormat=\u00a4\u00a0#0.00;-\u00a4\u00a0#0.00
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZA.properties
index 6058bcd..f412db2 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZA.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZA.properties
@@ -5,9 +5,10 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+decimalSeparator=,
+groupingSeparator=\u00a0
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
shortDateFormat=yyyy/MM/dd
mediumDateFormat=dd MMM yyyy
longDateFormat=dd MMMM yyyy
fullDateFormat=EEEE dd MMMM yyyy
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZW.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZW.properties
index 1b56a51..368b784 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZW.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_en_ZW.properties
@@ -5,10 +5,9 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.ZWD=Zimbabwean Dollar
shortDateFormat=d/M/yyyy
-mediumDateFormat=dd MMM,yy
+mediumDateFormat=dd MMM,yyyy
longDateFormat=dd MMMM yyyy
fullDateFormat=EEEE dd MMMM yyyy
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_eo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_eo.properties
index c5490af..ee3e424 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_eo.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_eo.properties
@@ -7,20 +7,21 @@
decimalSeparator=,
groupingSeparator=\u00a0
-localPatternChars=GjMtkHmslTDUSnahKzJdugAZ
-shortMonths=jan®feb®mar®apr®maj®jun®jul®a\u016dg®sep®okt®nov®dec®®
-months=januaro®februaro®marto®aprilo®majo®junio®julio®a\u016dgusto®septembro®oktobro®novembro®decembro®®
-shortWeekdays=®di®lu®ma®me®\u0135a®ve®sa®
-weekdays=®diman\u0109o®lundo®mardo®merkredo®\u0135a\u016ddo®vendredo®sabato®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=aK®pK®
-ampms=atm®ptm®
+localPatternChars=GjMtkHmslTDUSnahKzJdugAZvcL
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aea\u016dg\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januaro\u00aefebruaro\u00aemarto\u00aeaprilo\u00aemajo\u00aejunio\u00aejulio\u00aea\u016dgusto\u00aeseptembro\u00aeoktobro\u00aenovembro\u00aedecembro\u00ae\u00ae
+shortWeekdays=\u00aedi\u00aelu\u00aema\u00aeme\u00ae\u0135a\u00aeve\u00aesa\u00ae
+weekdays=\u00aediman\u0109o\u00aelundo\u00aemardo\u00aemerkredo\u00ae\u0135a\u016ddo\u00aevendredo\u00aesabato\u00ae
+eras=aK\u00aepK\u00ae
+ampms=atm\u00aeptm\u00ae
shortDateFormat=yy-MM-dd
mediumDateFormat=yyyy-MMM-dd
longDateFormat=yyyy-MMMM-dd
-fullDateFormat=EEEE, d'-a de 'MMMM yyyy
-fullTimeFormat=H'-a horo kaj 'm z
+fullDateFormat=EEEE, d-'a' 'de' MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=H-'a' 'horo' 'kaj' m:ss z
territories.TJ=Ta\u011dikujo
territories.TH=Tajlando
territories.TG=Togolo
@@ -153,25 +154,25 @@ territories.AU=A\u016dstralio
territories.AT=A\u016dstrujo
territories.AR=Argentino
territories.AQ=Antarkto
-territories.AO=Angolo
territories.MZ=Mozambiko
-territories.AN=Nederlandaj Antiloj
+territories.AO=Angolo
territories.MY=Malajzio
-territories.AM=Armenujo
+territories.AN=Nederlandaj Antiloj
territories.MX=Meksiko
-territories.AL=Albanujo
+territories.AM=Armenujo
territories.MW=Malavio
+territories.AL=Albanujo
territories.MV=Maldivoj
territories.ZA=Sud-Afriko
territories.MU=Ma\u016dricio
-territories.AI=Angvilo
territories.MT=Malto
-territories.AG=Antigvo-Barbudo
+territories.AI=Angvilo
territories.MR=Ma\u016dritanujo
-territories.AF=Afganujo
+territories.AG=Antigvo-Barbudo
territories.MQ=Martiniko
-territories.AE=Unui\u011dintaj Arabaj Emirlandos
+territories.AF=Afganujo
territories.MP=Nord-Marianoj
+territories.AE=Unui\u011dintaj Arabaj Emirlandos
territories.AD=Andoro
territories.MN=Mongolujo
territories.MM=Mjanmao
@@ -246,13 +247,11 @@ territories.TR=Turkujo
territories.TO=Tongo
territories.TN=Tunizio
territories.TM=Turkmenujo
-languages.es=hispana
+languages.la=latino
+languages.xh=ksosa
+languages.ky=kirgiza
languages.ku=kurda
-languages.eo=esperanto
-languages.en=angla
languages.ks=ka\u015dmira
-languages.el=greka
-languages.qu=ke\u0109ua
languages.ko=korea
languages.kn=kanara
languages.km=kmera
@@ -260,127 +259,135 @@ languages.kl=gronlanda
languages.kk=kaza\u0125a
languages.wo=volofa
languages.ka=kartvela
-languages.dz=dzonko
languages.jv=java
-languages.pt=portugala
-languages.ps=pa\u015dtua
-languages.de=germana
-languages.pl=pola
-languages.da=dana
languages.vo=volapuko
languages.ja=japana
languages.vi=vjetnama
-languages.cy=kimra
-languages.pa=pan\u011daba
-languages.cs=\u0109e\u0125a
languages.iu=inuita
-languages.co=korsika
languages.it=itala
languages.is=islanda
languages.uz=uzbeka
-languages.or=orijo
languages.ik=eskima
languages.ur=urduo
-languages.om=oroma
-languages.ca=kataluna
languages.ie=okcidentalo
languages.id=indonezia
-languages.uk=ukraina
languages.ia=interlingvao
-languages.oc=okcitana
+languages.uk=ukraina
languages.ug=ujgura
languages.hy=armena
-languages.br=bretona
languages.hu=hungara
-languages.bo=tibeta
-languages.bn=bengala
languages.hr=kroata
-languages.bi=bislamo
+languages.fil=filipina
languages.tw=akana
-languages.bh=bihara
-languages.bg=bulgara
languages.tt=tatara
-languages.no=norvega
-languages.be=belorusa
-languages.ts=conga
languages.hi=hinda
+languages.ts=conga
languages.tr=turka
-languages.nl=nederlanda
-languages.zu=zulua
-languages.ba=ba\u015dkira
-languages.to=tongaa
languages.he=hebrea
+languages.to=tongaa
languages.tn=cvana
-languages.tl=filipina
-languages.tk=turkmena
+languages.tl=tagaloga
languages.ha=ha\u016dsa
-languages.ne=nepala
-languages.az=azerbaj\u011dana
+languages.tk=turkmena
languages.ti=tigraja
-languages.ay=ajmara
languages.th=taja
languages.tg=ta\u011dika
-languages.na=naura
languages.te=telugua
-languages.zh=\u0109ina
-languages.as=asama
-languages.ar=araba
languages.ta=tamila
languages.gu=gu\u011darata
-languages.my=birma
-languages.am=amhara
-languages.za=\u011duanga
-languages.mt=malta
-languages.ms=malaja
languages.gn=gvarania
languages.sw=svahila
-languages.mr=marata
-languages.sv=sveda
languages.gl=galega
+languages.sv=sveda
languages.su=sunda
-languages.af=afrikansa
languages.st=sota
languages.ss=svazia
-languages.mn=mongola
languages.sr=serba
languages.sq=albana
-languages.ml=malajalama
-languages.ab=ab\u0125aza
-languages.mk=makedona
-languages.aa=afara
languages.so=somala
-languages.sn=\u015dona
languages.gd=gaela
-languages.mi=maoria
+languages.sn=\u015dona
languages.sm=samoa
languages.sl=slovena
-languages.mg=malagasa
-languages.sk=slovaka
languages.ga=irlanda
-languages.yo=joruba
+languages.sk=slovaka
languages.si=sinhala
-languages.sh=serbo-Kroata
+languages.sh=serbokroata
languages.sg=sangoa
-languages.yi=jida
-languages.sd=sinda
languages.fy=frisa
+languages.sd=sinda
languages.sa=sanskrito
languages.fr=franca
-languages.lv=latva
languages.fo=feroa
-languages.lt=litova
languages.rw=ruanda
languages.ru=rusa
languages.fj=fi\u011dia
-languages.lo=la\u016da
languages.fi=finna
-languages.ln=lingala
languages.ro=rumana
languages.rn=burunda
languages.rm=roman\u0109a
languages.fa=persa
-languages.la=latino
-languages.xh=ksosa
+languages.pt_PT=portugalportugala
languages.eu=e\u016dska
languages.et=estona
-languages.ky=kirgiza
+languages.es=hispana
+languages.eo=esperanto
+languages.en=angla
+languages.el=greka
+languages.qu=ke\u0109ua
+languages.dz=dzonko
+languages.pt=portugala
+languages.pt_BR=brazilportugala
+languages.ps=pa\u015dtua
+languages.de=germana
+languages.pl=pola
+languages.da=dana
+languages.cy=kimra
+languages.pa=pan\u011daba
+languages.cs=\u0109e\u0125a
+languages.co=korsika
+languages.or=orijo
+languages.om=oroma
+languages.ca=kataluna
+languages.oc=okcitana
+languages.bs=bosnia
+languages.br=bretona
+languages.bo=tibeta
+languages.bn=bengala
+languages.bi=bislamo
+languages.bh=bihara
+languages.bg=bulgara
+languages.be=belorusa
+languages.no=norvega
+languages.nn=novnorvega
+languages.nl=nederlanda
+languages.ba=ba\u015dkira
+languages.zu=zulua
+languages.az=azerbaj\u011dana
+languages.ne=nepala
+languages.ay=ajmara
+languages.na=naura
+languages.as=asama
+languages.ar=araba
+languages.zh=\u0109ina
+languages.my=birma
+languages.am=amhara
+languages.za=\u011duanga
+languages.mt=malta
+languages.ms=malaja
+languages.mr=marata
+languages.af=afrikansa
+languages.mn=mongola
+languages.ab=ab\u0125aza
+languages.ml=malajalama
+languages.aa=afara
+languages.mk=makedona
+languages.mi=maoria
+languages.mg=malagasa
+languages.yo=joruba
+languages.tlh=klingona
+languages.yi=jida
+languages.lv=latva
+languages.lt=litova
+languages.lo=la\u016da
+languages.ln=lingala
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es.properties
index b109f14..9cc11c3 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es.properties
@@ -7,179 +7,197 @@
decimalSeparator=,
groupingSeparator=.
-currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
-localPatternChars=GuMtkHmsSEDFwWahKzUeygAZ
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GuMtkHmsSEDFwWahKzUeygAZvcL
currenciesDisplayName.YDD=dinar yemen\u00ed
-currenciesDisplayName.TWD=nuevo d\u00f3lar taiwan\u00e9s
currenciesDisplayName.KES=chel\u00edn keniata
-currenciesDisplayName.BYB=nuevo rublo bielorruso (1994-1999)
+currenciesDisplayName.TWD=d\u00f3lar taiwan\u00e9s nuevo
currenciesDisplayName.LKR=rupia de Sri Lanka
-currenciesDisplayName.RWF=franco ruand\u00e9s
+currenciesDisplayName.BYB=nuevo rublo bielorruso (1994-1999)
currenciesDisplayName.TJS=somoni tayiko
-currenciesDisplayName.SDP=libra sudanesa
-currenciesDisplayName.TJR=rublo tayiko
+currenciesDisplayName.RWF=franco ruand\u00e9s
currenciesDisplayName.ERN=nakfa eritreo
+currenciesDisplayName.TJR=rublo tayiko
+currenciesDisplayName.SDP=libra sudanesa
+currenciesDisplayName.GRD=dracmas griegos
currenciesDisplayName.AFN=afgani
-currenciesDisplayName.GRD=dracma griego
-currenciesDisplayName.IEP=libra irlandesa
-currenciesDisplayName.ARS=peso argentino
+currenciesDisplayName.IEP=libras irlandesas
+currenciesDisplayName.ARS=pesos argentinos
+currenciesDisplayName.ARP=pesos argentinos (ARP)
currenciesDisplayName.SDD=dinar sudan\u00e9s
-currenciesDisplayName.ARP=peso argentino (1983-1985)
currenciesDisplayName.GEL=lari georgiano
-currenciesDisplayName.AFA=afgani (1927-2002)
currenciesDisplayName.GEK=kupon larit georgiano
-currenciesDisplayName.CRC=col\u00f3n costarricense
+currenciesDisplayName.AFA=afgani (1927-2002)
+currenciesDisplayName.CRC=colones costarricenses
currenciesDisplayName.FKP=libra de las Islas Malvinas
-currenciesDisplayName.EEK=corona estonia
-currenciesDisplayName.HKD=d\u00f3lar de Hong Kong
+currenciesDisplayName.EEK=coronas estonias
currenciesDisplayName.MDL=leu moldavo
-currenciesDisplayName.ARA=austral argentino
+currenciesDisplayName.HKD=d\u00f3lar de Hong Kong
currenciesDisplayName.IQD=dinar iraqu\u00ed
+currenciesDisplayName.ARA=australes argentinos
currenciesDisplayName.SCR=rupia de Seychelles
currenciesDisplayName.VUV=vatu vanuatuense
-currenciesDisplayName.DKK=corona danesa
currenciesDisplayName.KPW=won norcoreano
-currenciesDisplayName.GQE=ekuele de Guinea Ecuatorial
+currenciesDisplayName.DKK=coronas danesas
currenciesDisplayName.IDR=rupia indonesia
-currenciesDisplayName.LVR=rublo let\u00f3n
+currenciesDisplayName.GQE=ekueles de Guinea Ecuatorial
currenciesDisplayName.SOS=chel\u00edn somal\u00ed
-currenciesDisplayName.AED=dirham de los Emiratos \u00c1rabes Unidos
+currenciesDisplayName.LVR=rublos letones
+currenciesDisplayName.EQE=ekwele
+currenciesDisplayName.AED=d\u00edrham de los Emiratos \u00c1rabes Unidos
+currenciesDisplayName.LVL=lats letones
currenciesDisplayName.BWP=pula botsuano
-currenciesDisplayName.LVL=lats let\u00f3n
-currenciesDisplayName.RUR=rublo ruso (1991-1998)
-currenciesDisplayName.NIO=c\u00f3rdoba oro nicarag\u00fcense
-currenciesDisplayName.ADP=peseta andorrana
-currenciesDisplayName.FJD=d\u00f3lar de las Islas Fiyi
+currenciesDisplayName.RUR=rublos rusos (RUR)
+currenciesDisplayName.NIO=c\u00f3rdobas oro nicarag\u00fcenses
+currenciesDisplayName.XTS=c\u00f3digo reservado para pruebas
currenciesDisplayName.MOP=pataca de Macao
-currenciesDisplayName.RUB=rublo ruso
+currenciesDisplayName.FJD=d\u00f3lar de las Islas Fiyi
+currenciesDisplayName.ADP=pesetas andorranas
+currenciesDisplayName.RUB=rublos rusos
currenciesDisplayName.CDF=franco congole\u00f1o
-currenciesDisplayName.NIC=c\u00f3rdoba nicarag\u00fcense
+currenciesDisplayName.NIC=c\u00f3rdobas nicarag\u00fcenses
currenciesDisplayName.DJF=franco de Yibuti
-currenciesDisplayName.ECV=unidad de valor constante (UVC) ecuatoriana
-currenciesDisplayName.SBD=d\u00f3lar de las Islas Salom\u00f3n
currenciesDisplayName.UZS=sum uzbeko
-currenciesDisplayName.ECS=sucre ecuatoriano
-currenciesDisplayName.PHP=peso filipino
+currenciesDisplayName.SBD=d\u00f3lar de las Islas Salom\u00f3n
+currenciesDisplayName.ECV=unidades de valor constante (UVC) ecuatorianas
+currenciesDisplayName.LUL=francos financieros luxemburgueses
+currenciesDisplayName.ECS=sucres ecuatorianos
currenciesDisplayName.THB=baht tailand\u00e9s
-currenciesDisplayName.LUF=franco luxemburgu\u00e9s
-currenciesDisplayName.FIM=marco finland\u00e9s
+currenciesDisplayName.PHP=pesos filipinos
+currenciesDisplayName.LUF=francos luxemburgueses
+currenciesDisplayName.RHD=d\u00f3lar rodesiano
+currenciesDisplayName.LUC=francos convertibles luxemburgueses
+currenciesDisplayName.FIM=marcos finlandeses
currenciesDisplayName.TTD=d\u00f3lar de Trinidad y Tobago
currenciesDisplayName.SZL=lilangeni suazi
currenciesDisplayName.MNT=tugrik mongol
+currenciesDisplayName.UAK=karbovanets ucranianos
currenciesDisplayName.SAR=riyal saud\u00ed
-currenciesDisplayName.UAK=karbovanet ucraniano
-currenciesDisplayName.UAH=grivna ucraniana
-currenciesDisplayName.HUF=forinto h\u00fangaro
-currenciesDisplayName.COP=peso colombiano
+currenciesDisplayName.COU=unidades de valor reales
+currenciesDisplayName.UAH=grivnas ucranianas
+currenciesDisplayName.HUF=florines h\u00fangaros
currenciesDisplayName.QAR=riyal de Qatar
-currenciesDisplayName.LTT=talonas lituano
-currenciesDisplayName.PTE=escudo portugu\u00e9s
+currenciesDisplayName.COP=pesos colombianos
+currenciesDisplayName.LTT=talonas lituanos
+currenciesDisplayName.PTE=escudos portugueses
+currenciesDisplayName.UYU=pesos uruguayos
currenciesDisplayName.AOR=kwanza reajustado angole\u00f1o (1995-1999)
-currenciesDisplayName.UYU=peso uruguayo
-currenciesDisplayName.GBP=libra esterlina brit\u00e1nica
-currenciesDisplayName.BIF=franco de Burundi
-currenciesDisplayName.INR=rupia india
+currenciesDisplayName.GBP=libras esterlinas brit\u00e1nicas
currenciesDisplayName.ZRZ=zaire zaire\u00f1o
+currenciesDisplayName.INR=rupia hind\u00fa
+currenciesDisplayName.BIF=franco de Burundi
+currenciesDisplayName.XFU=francos UIC franceses
+currenciesDisplayName.MZN=metical mozambique\u00f1o
+currenciesDisplayName.LTL=litas lituanos
currenciesDisplayName.AON=nuevo kwanza angole\u00f1o (1990-2000)
-currenciesDisplayName.LTL=litas lituano
-currenciesDisplayName.XFU=franco UIC franc\u00e9s
+currenciesDisplayName.UYP=pesos uruguayos (UYP)
+currenciesDisplayName.MZM=metical mozambique\u00f1o antiguo
currenciesDisplayName.KZT=tenge kazako
-currenciesDisplayName.MZM=metical mozambique\u00f1o
-currenciesDisplayName.UYP=peso uruguayo (1975-1993)
currenciesDisplayName.AOK=kwanza angole\u00f1o (1977-1990)
-currenciesDisplayName.BUK=kyat birmano
currenciesDisplayName.GNS=syli guineano
-currenciesDisplayName.XFO=franco oro franc\u00e9s
+currenciesDisplayName.BUK=kyat birmano
+currenciesDisplayName.XFO=francos oro franceses
currenciesDisplayName.PGK=kina de Pap\u00faa Nueva Guinea
+currenciesDisplayName.UYI=pesos uruguayos en unidades indexadas
currenciesDisplayName.SYP=libra siria
-currenciesDisplayName.MZE=escudo mozambique\u00f1o
currenciesDisplayName.OMR=rial oman\u00ed
-currenciesDisplayName.NGN=naira nigeriano
+currenciesDisplayName.MZE=escudo mozambique\u00f1o
currenciesDisplayName.ZRN=nuevo zaire zaire\u00f1o
-currenciesDisplayName.AOA=kwanza angole\u00f1o
+currenciesDisplayName.NGN=naira nigeriano
currenciesDisplayName.CNY=yuan renminbi chino
-currenciesDisplayName.MAF=franco marroqu\u00ed
-currenciesDisplayName.GNF=franco guineo
+currenciesDisplayName.AOA=kwanza angole\u00f1o
+currenciesDisplayName.MAF=francos marroqu\u00edes
+currenciesDisplayName.RSD=dinares serbios
+currenciesDisplayName.GNF=franco guineano
+currenciesDisplayName.MAD=d\u00edrham marroqu\u00ed
currenciesDisplayName.HTG=gourde haitiano
-currenciesDisplayName.MAD=dirham marroqu\u00ed
+currenciesDisplayName.TRY=lira turca
currenciesDisplayName.MMK=kyat de Myanmar
+currenciesDisplayName.XRE=fondos RINET
currenciesDisplayName.MYR=ringgit malasio
+currenciesDisplayName.LSM=Loti
+currenciesDisplayName.XEU=unidades de moneda europeas
currenciesDisplayName.LSL=loti lesothense
-currenciesDisplayName.XEU=unidad de moneda europea
-currenciesDisplayName.BHD=dinar bahrein\u00ed
currenciesDisplayName.SLL=leone de Sierra Leona
+currenciesDisplayName.BHD=dinar bahrein\u00ed
currenciesDisplayName.BTN=ngultrum butan\u00e9s
currenciesDisplayName.TRL=lira turca
currenciesDisplayName.KMF=franco comorense
+currenciesDisplayName.CZK=coronas checas
currenciesDisplayName.ANG=flor\u00edn de las Antillas Neerlandesas
-currenciesDisplayName.CZK=corona checa
-currenciesDisplayName.AZM=manat azer\u00ed
+currenciesDisplayName.AZN=manat azer\u00ed
+currenciesDisplayName.AZM=manat azer\u00ed (1993-2006)
currenciesDisplayName.KYD=d\u00f3lar de las Islas Caim\u00e1n
currenciesDisplayName.GMD=dalasi gambiano
-currenciesDisplayName.BGN=nuevo lev b\u00falgaro
-currenciesDisplayName.CAD=d\u00f3lar canadiense
-currenciesDisplayName.MXV=unidad de inversi\u00f3n (UDI) mexicana
-currenciesDisplayName.BGL=lev fuerte b\u00falgaro
-currenciesDisplayName.VEB=bol\u00edvar venezolano
+currenciesDisplayName.VEF=bol\u00edvares fuertes venezolanos
+currenciesDisplayName.BGN=lev b\u00falgaro nuevo
+currenciesDisplayName.MXV=unidades de inversi\u00f3n (UDI) mexicanas
+currenciesDisplayName.CAD=d\u00f3lares canadienses
+currenciesDisplayName.BGL=leva fuertes b\u00falgaros
+currenciesDisplayName.VEB=bol\u00edvares venezolanos
currenciesDisplayName.MLF=franco mal\u00ed
-currenciesDisplayName.ILS=nuevo sheqel israel\u00ed
-currenciesDisplayName.MXP=peso de plata mexicano (1861-1992)
-currenciesDisplayName.PES=sol peruano
+currenciesDisplayName.MXP=pesos de plata mexicanos (MXP)
+currenciesDisplayName.ILS=siclo israel\u00ed nuevo
+currenciesDisplayName.PES=soles peruanos
+currenciesDisplayName.MXN=peso mejicano
currenciesDisplayName.GYD=d\u00f3lar guyan\u00e9s
-currenciesDisplayName.MXN=peso mexicano
currenciesDisplayName.ILP=libra israel\u00ed
-currenciesDisplayName.SKK=corona eslovaca
currenciesDisplayName.CYP=libra chipriota
+currenciesDisplayName.SKK=coronas eslovacas
currenciesDisplayName.XDR=derechos especiales de giro
-currenciesDisplayName.PEN=nuevo sol peruano
+currenciesDisplayName.PEN=nuevos soles peruanos
currenciesDisplayName.LRD=d\u00f3lar liberiano
-currenciesDisplayName.PEI=inti peruano
+currenciesDisplayName.PEI=intis peruanos
currenciesDisplayName.AMD=dram armenio
currenciesDisplayName.BSD=d\u00f3lar de las Bahamas
-currenciesDisplayName.HRK=kuna croata
-currenciesDisplayName.CLP=peso chileno
-currenciesDisplayName.HRD=dinar croata
+currenciesDisplayName.XPT=platino
+currenciesDisplayName.HRK=kunas croatas
+currenciesDisplayName.CLP=pesos chilenos
+currenciesDisplayName.HRD=dinares croatas
currenciesDisplayName.XPF=franco CFP
-currenciesDisplayName.FRF=franco franc\u00e9s
-currenciesDisplayName.BRR=cruceiro brasile\u00f1o
+currenciesDisplayName.FRF=francos franceses
+currenciesDisplayName.XPD=paladio
+currenciesDisplayName.BRR=cruceiros brasile\u00f1os
currenciesDisplayName.MKD=dinar macedonio
-currenciesDisplayName.CLF=unidad de fomento chilena
+currenciesDisplayName.CLF=unidades de fomento chilenas
currenciesDisplayName.ALL=lek alban\u00e9s
-currenciesDisplayName.BRN=nuevo cruzado brasile\u00f1o
+currenciesDisplayName.BRN=nuevos cruzados brasile\u00f1os
currenciesDisplayName.MWK=kwacha de Malawi
-currenciesDisplayName.BRL=real brasile\u00f1o
+currenciesDisplayName.BRL=reales brasile\u00f1os
currenciesDisplayName.TPE=escudo timorense
-currenciesDisplayName.BRE=cruceiro brasile\u00f1o (1990-1993)
-currenciesDisplayName.BRC=cruzado brasile\u00f1o
-currenciesDisplayName.BRB=nuevo cruceiro brasile\u00f1o (1967-1986)
-currenciesDisplayName.DEM=marco alem\u00e1n
+currenciesDisplayName.BRE=cruceiros brasile\u00f1os (BRE)
+currenciesDisplayName.BRC=cruzados brasile\u00f1os
+currenciesDisplayName.BRB=nuevos cruzados brasile\u00f1os (BRB)
+currenciesDisplayName.DEM=marcos alemanes
currenciesDisplayName.KWD=dinar kuwait\u00ed
currenciesDisplayName.XCD=d\u00f3lar del Caribe Oriental
currenciesDisplayName.NPR=rupia nepalesa
currenciesDisplayName.GWP=peso de Guinea-Biss\u00e1u
currenciesDisplayName.YUN=dinar convertible yugoslavo
-currenciesDisplayName.SVC=col\u00f3n salvadore\u00f1o
+currenciesDisplayName.SVC=colones salvadore\u00f1os
currenciesDisplayName.YUM=super dinar yugoslavo
-currenciesDisplayName.BEL=franco belga (financiero)
-currenciesDisplayName.SIT=t\u00f3lar esloveno
-currenciesDisplayName.JPY=yen japon\u00e9s
+currenciesDisplayName.BEL=francos belgas (financieros)
+currenciesDisplayName.SIT=t\u00f3lares eslovenos
+currenciesDisplayName.JPY=yenes japoneses
currenciesDisplayName.XOF=franco CFA BCEAO
currenciesDisplayName.MVR=rufiyaa de Maldivas
+currenciesDisplayName.BEF=francos belgas
currenciesDisplayName.GWE=escudo de Guinea Portuguesa
-currenciesDisplayName.BEF=franco belga
currenciesDisplayName.TOP=pa\u02bbanga tongano
currenciesDisplayName.YUD=dinar fuerte yugoslavo
-currenciesDisplayName.BEC=franco belga (convertible)
-currenciesDisplayName.SUR=rublo sovi\u00e9tico
-currenciesDisplayName.ROL=leu rumano
-currenciesDisplayName.DDM=ostmark de Alemania del Este
+currenciesDisplayName.BEC=francos belgas (convertibles)
+currenciesDisplayName.SUR=rublos sovi\u00e9ticos
+currenciesDisplayName.RON=lei rumanos
+currenciesDisplayName.ROL=antiguos lei rumanos
currenciesDisplayName.BDT=taka de Bangladesh
-currenciesDisplayName.XBD=unidad de cuenta europea (XBD)
+currenciesDisplayName.DDM=ostmarks de Alemania del Este
+currenciesDisplayName.XBD=unidades de cuenta europeas (XBD)
currenciesDisplayName.AWG=flor\u00edn de Aruba
-currenciesDisplayName.XBC=unidad de cuenta europea (XBC)
-currenciesDisplayName.XBB=unidad monetaria europea
-currenciesDisplayName.XBA=unidad compuesta europea
-currenciesDisplayName.NOK=corona noruega
+currenciesDisplayName.XBC=unidades de cuenta europeas (XBC)
+currenciesDisplayName.XBB=unidades monetarias europeas
+currenciesDisplayName.XBA=unidades compuestas europeas
+currenciesDisplayName.NOK=coronas noruegas
currenciesDisplayName.MUR=rupia mauriciana
currenciesDisplayName.ZAR=rand sudafricano
currenciesDisplayName.SHP=libra de Santa Elena
@@ -187,10 +205,11 @@ currenciesDisplayName.XAU=oro
currenciesDisplayName.ZAL=rand sudafricano (financiero)
currenciesDisplayName.VND=dong vietnamita
currenciesDisplayName.TZS=chel\u00edn tanzano
-currenciesDisplayName.GIP=libra de Gibraltar
+currenciesDisplayName.GIP=libras de Gibraltar
currenciesDisplayName.TND=dinar tunecino
currenciesDisplayName.CVE=escudo de Cabo Verde
currenciesDisplayName.UGX=chel\u00edn ugand\u00e9s
+currenciesDisplayName.XAG=plata
currenciesDisplayName.ZMK=kwacha zambiano
currenciesDisplayName.JOD=dinar jordano
currenciesDisplayName.XAF=franco CFA BEAC
@@ -199,86 +218,92 @@ currenciesDisplayName.UGS=chel\u00edn ugand\u00e9s (1966-1987)
currenciesDisplayName.STD=dobra de Santo Tom\u00e9 y Pr\u00edncipe
currenciesDisplayName.WST=tala samoano
currenciesDisplayName.KHR=riel camboyano
-currenciesDisplayName.EUR=euro
-currenciesDisplayName.DOP=peso dominicano
-currenciesDisplayName.BOV=MVDOL boliviano
+currenciesDisplayName.DOP=pesos dominicanos
+currenciesDisplayName.EUR=euros
+currenciesDisplayName.BOV=MVDOL bolivianos
currenciesDisplayName.MTP=libra maltesa
-currenciesDisplayName.USS=d\u00f3lar estadounidense (mismo d\u00eda)
-currenciesDisplayName.BOP=peso boliviano
+currenciesDisplayName.USS=d\u00f3lares estadounidenses (mismo d\u00eda)
+currenciesDisplayName.BOP=pesos bolivianos
+currenciesDisplayName.CUP=pesos cubanos
currenciesDisplayName.MTL=lira maltesa
-currenciesDisplayName.CUP=peso cubano
currenciesDisplayName.TMM=manat turcomano
-currenciesDisplayName.USN=d\u00f3lar estadounidense (d\u00eda siguiente)
+currenciesDisplayName.USN=d\u00f3lares estadounidenses (d\u00eda siguiente)
currenciesDisplayName.SGD=d\u00f3lar singapurense
currenciesDisplayName.NZD=d\u00f3lar neozeland\u00e9s
-currenciesDisplayName.USD=d\u00f3lar estadounidense
-currenciesDisplayName.HNL=lempira hondure\u00f1o
-currenciesDisplayName.BOB=boliviano
-currenciesDisplayName.ITL=lira italiana
-currenciesDisplayName.PAB=balboa paname\u00f1o
-currenciesDisplayName.GTQ=quetzal guatemalteco
-currenciesDisplayName.LAK=kip laosiano
+currenciesDisplayName.USD=d\u00f3lares estadounidenses
+currenciesDisplayName.BOB=bolivianos
+currenciesDisplayName.HNL=lempiras hondure\u00f1os
+currenciesDisplayName.CHW=francos WIR
+currenciesDisplayName.ITL=liras italianas
+currenciesDisplayName.PAB=balboas paname\u00f1os
+currenciesDisplayName.GTQ=quetzales guatemaltecos
+currenciesDisplayName.XXX=moneda desconocida o no v\u00e1lida
+currenciesDisplayName.AUD=d\u00f3lares australianos
currenciesDisplayName.GHC=cedi ghan\u00e9s
-currenciesDisplayName.AUD=d\u00f3lar australiano
+currenciesDisplayName.LAK=kip laosiano
currenciesDisplayName.NAD=d\u00f3lar de Namibia
currenciesDisplayName.KGS=som kirgu\u00eds
currenciesDisplayName.MGF=franco malgache
-currenciesDisplayName.CHF=franco suizo
currenciesDisplayName.BBD=d\u00f3lar de Barbados
+currenciesDisplayName.CHF=francos suizos
+currenciesDisplayName.CHE=euros WIR
currenciesDisplayName.MGA=ariary malgache
-currenciesDisplayName.PYG=guaran\u00ed paraguayo
-currenciesDisplayName.PLZ=zloty polaco (1950-1995)
+currenciesDisplayName.PYG=guaran\u00edes paraguayos
+currenciesDisplayName.PLZ=zlotys polacos (PLZ)
currenciesDisplayName.YER=rial yemen\u00ed
-currenciesDisplayName.ATS=chel\u00edn austriaco
+currenciesDisplayName.ATS=chelines austriacos
currenciesDisplayName.ETB=birr et\u00edope
currenciesDisplayName.BND=d\u00f3lar de Brun\u00e9i
-currenciesDisplayName.JMD=d\u00f3lar de Jamaica
currenciesDisplayName.EGP=libra egipcia
-currenciesDisplayName.PLN=zloty polaco
+currenciesDisplayName.JMD=d\u00f3lar de Jamaica
+currenciesDisplayName.PLN=zloty polaco nuevo
currenciesDisplayName.DZD=dinar argelino
-currenciesDisplayName.ISK=corona islandesa
+currenciesDisplayName.ISK=coronas islandesas
currenciesDisplayName.SRG=flor\u00edn surinam\u00e9s
currenciesDisplayName.LYD=dinar libio
+currenciesDisplayName.SRD=d\u00f3lar surinam\u00e9s
+currenciesDisplayName.BAM=marcos convertibles de Bosnia-Herzegovina
currenciesDisplayName.BZD=d\u00f3lar de Belice
-currenciesDisplayName.BAM=marco bosnio convertible
-currenciesDisplayName.ESP=peseta espa\u00f1ola
+currenciesDisplayName.ESP=pesetas espa\u00f1olas
currenciesDisplayName.KRW=won surcoreano
-currenciesDisplayName.NLG=flor\u00edn neerland\u00e9s
+currenciesDisplayName.NLG=florines neerlandeses
currenciesDisplayName.MRO=ouguiya mauritano
-currenciesDisplayName.BAD=dinar bosnio
+currenciesDisplayName.BAD=dinares bosnios
currenciesDisplayName.ZWD=d\u00f3lar de Zimbabue
-currenciesDisplayName.SEK=corona sueca
-currenciesDisplayName.CSK=corona fuerte checoslovaca
+currenciesDisplayName.SEK=coronas suecas
+currenciesDisplayName.CSK=coronas fuertes checoslovacas
currenciesDisplayName.BYR=rublo bielorruso
+currenciesDisplayName.ESB=pesetas espa\u00f1olas (cuenta convertible)
currenciesDisplayName.IRR=rial iran\u00ed
-currenciesDisplayName.PKR=rupia pakistan\u00ed
+currenciesDisplayName.ESA=pesetas espa\u00f1olas (cuenta A)
+currenciesDisplayName.PKR=rupia paquistan\u00ed
currenciesDisplayName.BMD=d\u00f3lar de Bermudas
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=dinar serbio antiguo
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
@@ -297,27 +322,26 @@ currenciesSymbol.FJD=F$
currenciesSymbol.UYU=Ur$
currenciesSymbol.BDT=Tk
currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
currenciesSymbol.SGD=S$
-currenciesSymbol.ECS=S/
-currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.DOP=RD$
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.PYG=\u20b2
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -325,9 +349,10 @@ currenciesSymbol.MYR=RM
currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
currenciesSymbol.CNY=Y
@@ -342,10 +367,10 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=NA f.
@@ -355,20 +380,23 @@ currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=ene®feb®mar®abr®may®jun®jul®ago®sep®oct®nov®dic®®
-months=enero®febrero®marzo®abril®mayo®junio®julio®agosto®septiembre®octubre®noviembre®diciembre®®
-shortWeekdays=®dom®lun®mar®mi\u00e9®jue®vie®s\u00e1b®
-weekdays=®domingo®lunes®martes®mi\u00e9rcoles®jueves®viernes®s\u00e1bado®
-firstDayOfWeek=mon
-eras=a.C.®d.C.®
-shortDateFormat=d/MM/yy
-mediumDateFormat=dd-MMM-yy
-longDateFormat=d' de 'MMMM' de 'yyyy
-fullDateFormat=EEEE d' de 'MMMM' de 'yyyy
-fullTimeFormat=HH'H'mm''ss\" z
-zoneStrings=Europe/Paris®CET®Hora est\u00e1ndar de Europa Central®CEST®Hora de verano de Europa Central®©Pacific/Honolulu®HST®Hora est\u00e1ndar de Hawai®HST®Hora est\u00e1ndar de Hawai®©America/Denver®MST®Hora est\u00e1ndar de Monta\u00f1a®MDT®Hora de verano de Monta\u00f1a®©Asia/Jerusalem®IST®Hora est\u00e1ndar de Israel®IDT®Hora de verano de Israel®©America/Anchorage®AST®Hora est\u00e1ndar de Alaska®ADT®Hora de verano de Alaska®©Africa/Casablanca®GMT®Hora media de Greenwich®GMT®Hora media de Greenwich®©America/Phoenix®MST®Hora est\u00e1ndar de Monta\u00f1a®MST®Hora est\u00e1ndar de Monta\u00f1a®©America/Los_Angeles®PST®Hora est\u00e1ndar del Pac\u00edfico®PDT®Hora de verano del Pac\u00edfico®©America/Chicago®CST®Hora est\u00e1ndar central®CDT®Hora de verano central®©America/Halifax®AST®Hora est\u00e1ndar del Atl\u00e1ntico®ADT®Hora de verano del Atl\u00e1ntico®©America/St_Johns®CNT®Hora est\u00e1ndar de Newfoundland®CDT®Hora de verano de Newfoundland®©America/New_York®EST®Hora est\u00e1ndar oriental®EDT®Hora de verano oriental®©Asia/Shanghai®CTT®Hora est\u00e1ndar de China®CDT®Hora est\u00e1ndar de China®©Asia/Tokyo®JST®Hora est\u00e1ndar de Jap\u00f3n®JST®Hora est\u00e1ndar de Jap\u00f3n®©Europe/Bucharest®EET®Hora est\u00e1ndar de Europa del Este®EEST®Hora de verano de Europa del Este®©America/Indianapolis®EST®Hora est\u00e1ndar oriental®EST®Hora est\u00e1ndar oriental®©
+shortMonths=ene\u00aefeb\u00aemar\u00aeabr\u00aemay\u00aejun\u00aejul\u00aeago\u00aesep\u00aeoct\u00aenov\u00aedic\u00ae\u00ae
+months=enero\u00aefebrero\u00aemarzo\u00aeabril\u00aemayo\u00aejunio\u00aejulio\u00aeagosto\u00aeseptiembre\u00aeoctubre\u00aenoviembre\u00aediciembre\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aelun\u00aemar\u00aemi\u00e9\u00aejue\u00aevie\u00aes\u00e1b\u00ae
+weekdays=\u00aedomingo\u00aelunes\u00aemartes\u00aemi\u00e9rcoles\u00aejueves\u00aeviernes\u00aes\u00e1bado\u00ae
+eras=a.C.\u00aed.C.\u00ae
+ampms=a.m.\u00aep.m.\u00ae
+shortDateFormat=d/M/yy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d 'de' MMMM 'de' yyyy
+fullDateFormat=EEEE d 'de' MMMM 'de' yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Marshall_Islands\u00aeHora de las Islas Marshall\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeHora de Shevchenko\u00ae\u00aeHora de verano de Shevchenko\u00ae\u00ae\u00a9Bangladesh\u00aeHora de Bangladesh\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeHora est\u00e1ndar de Australia centroriental\u00ae\u00aeHora de verano de Australia centroriental\u00ae\u00ae\u00a9Indonesia_Central\u00aeHora de Indonesia central\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeHora est\u00e1ndar oriental\u00ae\u00aeHora de verano oriental\u00ae\u00ae\u00a9China\u00aeHora est\u00e1ndar de China\u00aeCST (China)\u00aeHora de verano de China\u00ae\u00ae\u00a9Guyana\u00aeHora de la Guyana\u00ae\u00ae\u00ae\u00ae\u00a9Uzbekistan\u00aeHora de Uzbekist\u00e1n\u00ae\u00aeHora de verano de Uzbekist\u00e1n\u00ae\u00ae\u00a9Uruguay\u00aeHora de Uruguay\u00ae\u00aeHora de verano de Uruguay\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeHora est\u00e1ndar de Kazajist\u00e1n oriental\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeHora de Karachi\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeHora de Tbilisi\u00ae\u00aeHora de verano de Tbilisi\u00ae\u00ae\u00a9Tashkent\u00aeHora de Tashkent\u00ae\u00aeHora de verano de Tashkent\u00ae\u00ae\u00a9Changbai\u00aeHora de Changbai\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeHora de la Guayana Francesa\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeHora de Frunze\u00ae\u00aeHora de verano de Frunze\u00ae\u00ae\u00a9Europe_Eastern\u00aeHora de Europa del Este\u00ae\u00aeHora de verano de Europa del Este\u00ae\u00ae\u00a9Greenland_Eastern\u00aeHora de Groenlandia oriental\u00ae\u00aeHora de verano de Groenlandia oriental\u00ae\u00ae\u00a9Dushanbe\u00aeHora de Dusamb\u00e9\u00ae\u00aeHora de verano de Dusamb\u00e9\u00ae\u00ae\u00a9Dacca\u00aeHora de Dacca\u00ae\u00ae\u00ae\u00ae\u00a9Chile\u00aeHora de Chile\u00ae\u00aeHora de verano de Chile\u00ae\u00ae\u00a9Europe_Central\u00aeHora de Europa Central\u00ae\u00aeHora de verano de Europa Central\u00ae\u00ae\u00a9Arabian\u00aeHora est\u00e1ndar de Arabia\u00aeAST (Arabia)\u00aeHora de verano de Arabia\u00aeADT (Arabia)\u00ae\u00a9Acre\u00aeHora de Acre\u00ae\u00aeHora de verano de Acre\u00ae\u00ae\u00a9East_Timor\u00aeHora de Timor Oriental\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeHora est\u00e1ndar de Nueva Zelanda\u00ae\u00aeHora de verano de Nueva Zelanda\u00ae\u00ae\u00a9Indochina\u00aeHora de Indochina\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeHora de Kwajalein\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00aeHora est\u00e1ndar de \u00c1frica meridional\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeHora est\u00e1ndar de las Monta\u00f1as\u00ae\u00aeHora de verano de las Monta\u00f1as\u00ae\u00ae\u00a9Ecuador\u00aeHora de Ecuador\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Central\u00aeHora de \u00c1frica central\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00aeHora de Armenia\u00ae\u00aeHora de verano de Armenia\u00ae\u00ae\u00a9Samara\u00aeHora de Samara\u00ae\u00aeHora de verano de Samara\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeHora est\u00e1ndar de Alaska-Haw\u00e1i\u00ae\u00aeHora de verano de Alaska-Haw\u00e1i\u00ae\u00ae\u00a9America_Central\u00aeHora est\u00e1ndar central\u00ae\u00aeHora de verano central\u00ae\u00ae\u00a9Malaysia\u00aeHora de Malasia\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeHora est\u00e1ndar de Mosc\u00fa\u00ae\u00aeHora de verano de Mosc\u00fa\u00ae\u00ae\u00a9Aqtobe\u00aeHora de Aktobe\u00aeAQTT (Aktobe)\u00aeHora de verano de Aktobe\u00aeAQTST (Aktobe)\u00ae\u00a9Peru\u00aeHora de Per\u00fa\u00ae\u00aeHora de verano de Per\u00fa\u00ae\u00ae\u00a9Argentina\u00aeHora de Argentina\u00ae\u00aeHora de verano de Argentina\u00ae\u00ae\u00a9Qyzylorda\u00aeHora de Qyzylorda\u00ae\u00aeHora de verano de Qyzylorda\u00ae\u00ae\u00a9GMT\u00aeHora media de Greenwich\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00aeHora est\u00e1ndar del Atl\u00e1ntico\u00ae\u00aeHora de verano del Atl\u00e1ntico\u00ae\u00ae\u00a9Korea\u00aeHora est\u00e1ndar de Corea\u00ae\u00aeHora de verano de Corea\u00ae\u00ae\u00a9Ashkhabad\u00aeHora de Asjabad\u00ae\u00aeHora de verano de Asjabad\u00ae\u00ae\u00a9Australia_Western\u00aeHora est\u00e1ndar de Australia occidental\u00ae\u00aeHora de verano de Australia occidental\u00ae\u00ae\u00a9Venezuela\u00aeHora de Venezuela\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeHora de Paraguay\u00ae\u00aeHora de verano de Paraguay\u00ae\u00ae\u00a9Azerbaijan\u00aeHora de Azerbaiy\u00e1n\u00ae\u00aeHora de verano de Azerbaiy\u00e1n\u00ae\u00ae\u00a9Kizilorda\u00aeHora de Kizil Orda\u00ae\u00aeHora de verano de Kizil Orda\u00ae\u00ae\u00a9Yukon\u00aeHora est\u00e1ndar del Yuk\u00f3n\u00ae\u00aeHora de verano del Yuk\u00f3n\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHora de la Guayana Holandesa\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeHora de Erev\u00e1n\u00ae\u00aeHora de verano de Erev\u00e1n\u00ae\u00ae\u00a9Turkmenistan\u00aeHora de Turkmenist\u00e1n\u00ae\u00aeHora de verano de Turkmenist\u00e1n\u00ae\u00ae\u00a9Newfoundland\u00aeHora est\u00e1ndar de Terranova\u00ae\u00aeHora de verano de Terranova\u00ae\u00ae\u00a9Africa_Eastern\u00aeHora de \u00c1frica oriental\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aeHora de Pakist\u00e1n\u00ae\u00aeHora de verano de Pakist\u00e1n\u00ae\u00ae\u00a9Kuybyshev\u00aeHora de Kuibishev\u00ae\u00aeHora de verano de Kuibishev\u00ae\u00ae\u00a9Europe_Western\u00aeHora de Europa Occidental\u00ae\u00aeHora de verano de Europa Occidental\u00ae\u00ae\u00a9India\u00aeHora est\u00e1ndar de la India\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeHora est\u00e1ndar de Chamorro\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00aeHora de Groenlandia occidental\u00ae\u00aeHora de verano de Groenlandia occidental\u00ae\u00ae\u00a9Bolivia\u00aeHora de Bolivia\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeHora de Indonesia occidental\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeHora de Gal\u00e1pagos\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00aeHora de Surinam\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeHora de Malaya\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeHora est\u00e1ndar de Bering\u00ae\u00aeHora de verano de Bering\u00ae\u00ae\u00a9Georgia\u00aeHora de Georgia\u00ae\u00aeHora de verano de Georgia\u00ae\u00ae\u00a9Kyrgystan\u00aeHora de Kirguist\u00e1n\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeHora de Sri Lanka\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeHora de Filipinas\u00ae\u00aeHora de verano de Filipinas\u00ae\u00ae\u00a9Argentina_Western\u00aeHora de Argentina occidental\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeHora de Volgogrado\u00ae\u00aeHora de verano de Volgogrado\u00ae\u00ae\u00a9Hong_Kong\u00aeHora de Hong Kong\u00ae\u00aeHora de verano de Hong Kong\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeHora est\u00e1ndar de Kazajist\u00e1n occidental\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeHora est\u00e1ndar de Guam\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00aeHora del Amazonas\u00ae\u00aeHora de verano del Amazonas\u00ae\u00ae\u00a9Pierre_Miquelon\u00aeHora est\u00e1ndar de San Pedro y Miquel\u00f3n\u00ae\u00aeHora de verano de San Pedro y Miquel\u00f3n\u00ae\u00ae\u00a9Turkey\u00aeHora de Turqu\u00eda\u00ae\u00aeHora de verano de Turqu\u00eda\u00ae\u00ae\u00a9Nepal\u00aeHora de Nepal\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00aeHora de Macao\u00ae\u00aeHora de verano de Macao\u00ae\u00ae\u00a9Cuba\u00aeHora est\u00e1ndar de Cuba\u00ae\u00aeHora de verano de Cuba\u00ae\u00ae\u00a9Lord_Howe\u00aeHora est\u00e1ndar de Lord Howe\u00ae\u00aeHora de verano de Lord Howe\u00ae\u00ae\u00a9Mongolia\u00aeHora de Ul\u00e1n Bator\u00ae\u00aeHora de verano de Ul\u00e1n Bator\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeHora de Indonesia oriental\u00ae\u00ae\u00ae\u00ae\u00a9Myanmar\u00aeHora de Myanmar\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeHora est\u00e1ndar del Golfo\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeHora de Afganist\u00e1n\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeHora de Kashgar\u00ae\u00ae\u00ae\u00ae\u00a9Brasilia\u00aeHora de Brasilia\u00ae\u00aeHora de verano de Brasilia\u00ae\u00ae\u00a9America_Pacific\u00aeHora est\u00e1ndar del Pac\u00edfico\u00ae\u00aeHora de verano del Pac\u00edfico\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHora est\u00e1ndar de Haw\u00e1i-Aleutianas\u00ae\u00aeHora de verano de Haw\u00e1i-Aleutianas\u00ae\u00ae\u00a9Samarkand\u00aeHora de Samarcanda\u00aeSAMT (Samarcanda)\u00aeHora de verano de Samarcanda\u00aeSAMST (Samarcanda)\u00ae\u00a9Australia_Central\u00aeHora est\u00e1ndar de Australia central\u00ae\u00aeHora de verano de Australia central\u00ae\u00ae\u00a9Long_Shu\u00aeHora de Long-Shu\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeHora est\u00e1ndar de Israel\u00aeIST (Israel)\u00aeHora de verano de Israel\u00ae\u00ae\u00a9Yekaterinburg\u00aeHora de Yekaterinburgo\u00ae\u00aeHora de verano de Yekaterinburgo\u00ae\u00ae\u00a9Sverdlovsk\u00aeHora de Sverdlovsk\u00ae\u00aeHora de verano de Sverdlovsk\u00ae\u00ae\u00a9Africa_Western\u00aeHora de \u00c1frica occidental\u00ae\u00aeHora de verano de \u00c1frica occidental\u00ae\u00ae\u00a9Samoa\u00aeHora est\u00e1ndar de Samoa\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeHora de But\u00e1n\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeHora de Oral\u00ae\u00aeHora de verano de Oral\u00ae\u00ae\u00a9Alaska\u00aeHora est\u00e1ndar de Alaska\u00ae\u00aeHora de verano de Alaska\u00ae\u00ae\u00a9Urumqi\u00aeHora de \u00dcr\u00fcmqi\u00ae\u00ae\u00ae\u00ae\u00a9Colombia\u00aeHora de Colombia\u00ae\u00aeHora de verano de Colombia\u00ae\u00ae\u00a9Aktyubinsk\u00aeHora de Aktyubinsk\u00ae\u00aeHora de verano de Aktyubinsk\u00ae\u00ae\u00a9North_Mariana\u00aeHora de las Islas Marianas del Norte\u00ae\u00ae\u00ae\u00ae\u00a9Tajikistan\u00aeHora de Tayikist\u00e1n\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aeHora de Choibalsan\u00ae\u00aeHora de verano de Choibalsan\u00ae\u00ae\u00a9Azores\u00aeHora de las Azores\u00ae\u00aeHora de verano de las Azores\u00ae\u00ae\u00a9Aqtau\u00aeHora de Aktau\u00aeAQTT (Aktau)\u00aeHora de verano de Aktau\u00aeAQTST (Aktau)\u00ae\u00a9Baku\u00aeHora de Bak\u00fa\u00ae\u00aeHora de verano de Bak\u00fa\u00ae\u00ae\u00a9Australia_Eastern\u00aeHora est\u00e1ndar de Australia oriental\u00ae\u00aeHora de verano de Australia oriental\u00ae\u00ae\u00a9Noronha\u00aeHora de Fernando de Noronha\u00ae\u00aeHora de verano de Fernando de Noronha\u00ae\u00ae\u00a9Greenland_Central\u00aeHora de Groenlandia central\u00ae\u00aeHora de verano de Groenlandia central\u00ae\u00ae\u00a9Japan\u00aeHora est\u00e1ndar de Jap\u00f3n\u00ae\u00aeHora de verano de Jap\u00f3n\u00ae\u00ae\u00a9Borneo\u00aeHora de Borneo\u00ae\u00aeHora de verano de Borneo\u00ae\u00ae\u00a9
territories.TL=Timor Oriental
-territories.TK=Islas Tokelau
+territories.TK=Tokelau
territories.TJ=Tayikist\u00e1n
territories.TH=Tailandia
territories.TG=Togo
@@ -389,10 +417,13 @@ territories.GN=Guinea
territories.GM=Gambia
territories.GL=Groenlandia
territories.SV=El Salvador
+territories.062=Asia centromeridional
territories.ST=Santo Tom\u00e9 y Pr\u00edncipe
territories.GI=Gibraltar
+territories.061=Polinesia
territories.GH=Ghana
-territories.SR=Suriname
+territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Guayana Francesa
territories.GE=Georgia
territories.SO=Somalia
@@ -414,31 +445,41 @@ territories.SB=Islas Salom\u00f3n
territories.SA=Arabia Saud\u00ed
territories.FR=Francia
territories.FO=Islas Feroe
+territories.057=Micronesia
territories.FM=Micronesia
territories.RW=Ruanda
-territories.FK=Islas Falkland (Malvinas)
+territories.054=Melanesia
+territories.FK=Islas Malvinas
+territories.053=Australia y Nueva Zelanda
territories.RU=Rusia
territories.FJ=Fiyi
territories.FI=Finlandia
+territories.RS=Serbia
territories.RO=Ruman\u00eda
-territories.RE=R\u00e9union
+territories.RE=Reuni\u00f3n
territories.ET=Etiop\u00eda
territories.ES=Espa\u00f1a
territories.ER=Eritrea
+territories.QU=Uni\u00f3n Europea
territories.EH=S\u00e1hara Occidental
territories.EG=Egipto
territories.EE=Estonia
+territories.QO=Territorios alejados de Ocean\u00eda
territories.EC=Ecuador
territories.DZ=Argelia
territories.QA=Qatar
+territories.039=Europa meridional
territories.DO=Rep\u00fablica Dominicana
territories.PY=Paraguay
territories.DM=Dominica
+territories.035=Sudeste asi\u00e1tico
territories.PW=Palau
+territories.034=Asia meridional
territories.DK=Dinamarca
territories.DJ=Yibuti
territories.PT=Portugal
-territories.PS=Territorios Palestinos
+territories.PS=Palestina
+territories.030=Asia oriental
territories.PR=Puerto Rico
territories.DE=Alemania
territories.PN=Pitcairn
@@ -451,25 +492,28 @@ territories.PF=Polinesia Francesa
territories.CZ=Rep\u00fablica Checa
territories.PE=Per\u00fa
territories.CY=Chipre
-territories.CX=Isla Navidad
+territories.CX=Isla Christmas
territories.CV=Cabo Verde
territories.PA=Panam\u00e1
territories.CU=Cuba
territories.CS=Serbia y Montenegro
territories.CR=Costa Rica
+territories.029=Caribe
territories.CO=Colombia
territories.CN=China
territories.CM=Camer\u00fan
territories.CL=Chile
territories.CK=Islas Cook
+territories.021=Norteam\u00e9rica
territories.CI=Costa de Marfil
territories.CH=Suiza
territories.CG=Congo
territories.CF=Rep\u00fablica Centroafricana
territories.CD=Rep\u00fablica Democr\u00e1tica del Congo
-territories.CC=Islas Cocos (Keeling)
+territories.CC=Islas Cocos
territories.OM=Om\u00e1n
territories.CA=Canad\u00e1
+territories.419=Latinoam\u00e9rica y el Caribe
territories.BZ=Belice
territories.BY=Bielorrusia
territories.BW=Botsuana
@@ -477,30 +521,41 @@ territories.BV=Isla Bouvet
territories.BT=But\u00e1n
territories.BS=Bahamas
territories.BR=Brasil
+territories.019=Am\u00e9ricas
+territories.018=\u00c1frica meridional
territories.NZ=Nueva Zelanda
+territories.017=\u00c1frica central
territories.BO=Bolivia
territories.BN=Brun\u00e9i
+territories.015=\u00c1frica septentrional
territories.BM=Bermudas
+territories.014=\u00c1frica oriental
+territories.BL=San Bartolom\u00e9
+territories.013=Centroam\u00e9rica
territories.NU=Isla Niue
territories.BJ=Ben\u00edn
+territories.011=\u00c1frica occidental
territories.BI=Burundi
-territories.BH=Bahr\u00e1in
+territories.172=Comunidad de Estados Independientes
+territories.BH=Bahr\u00e9in
territories.NR=Nauru
territories.BG=Bulgaria
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=B\u00e9lgica
+territories.ZZ=Regi\u00f3n desconocida o no v\u00e1lida
territories.NO=Noruega
territories.BD=Bangladesh
territories.BB=Barbados
territories.ZW=Zimbabue
territories.NL=Pa\u00edses Bajos
-territories.BA=Bosnia-Herzegovina
+territories.BA=Bosnia y Herzegovina
territories.NI=Nicaragua
territories.NG=Nigeria
territories.NF=Isla Norfolk
territories.AZ=Azerbaiy\u00e1n
territories.NE=N\u00edger
+territories.AX=Islas Aland
territories.NC=Nueva Caledonia
territories.AW=Aruba
territories.ZM=Zambia
@@ -510,53 +565,67 @@ territories.AT=Austria
territories.AS=Samoa Americana
territories.AR=Argentina
territories.AQ=Ant\u00e1rtida
+territories.009=Ocean\u00eda
territories.MZ=Mozambique
territories.AO=Angola
territories.MY=Malasia
territories.AN=Antillas Neerlandesas
territories.MX=M\u00e9xico
territories.AM=Armenia
-territories.MW=Malawi
+territories.005=Suram\u00e9rica
+territories.MW=Malaui
territories.AL=Albania
territories.MV=Maldivas
+territories.003=Am\u00e9rica del Norte
territories.ZA=Sud\u00e1frica
territories.MU=Mauricio
+territories.002=\u00c1frica
territories.MT=Malta
territories.AI=Anguila
+territories.001=Mundo
territories.MS=Montserrat
territories.MR=Mauritania
territories.AG=Antigua y Barbuda
-territories.AF=Afganist\u00e1n
territories.MQ=Martinica
-territories.AE=Emiratos \u00c1rabes Unidos
+territories.AF=Afganist\u00e1n
territories.MP=Islas Marianas del Norte
+territories.AE=Emiratos \u00c1rabes Unidos
+territories.MO=Macao
territories.AD=Andorra
-territories.MO=Macao, Regi\u00f3n administrativa especial de China
territories.MN=Mongolia
territories.MM=Myanmar
-territories.ML=Mal\u00ed
+territories.ML=Mali
territories.MK=Macedonia
territories.YT=Mayotte
territories.MH=Islas Marshall
territories.MG=Madagascar
-territories.MD=Moldova
+territories.MF=San Mart\u00edn
+territories.ME=Montenegro
+territories.MD=Moldavia
territories.MC=M\u00f3naco
territories.MA=Marruecos
territories.YE=Yemen
territories.LY=Libia
territories.LV=Letonia
+territories.155=Europa occidental
territories.LU=Luxemburgo
+territories.154=Europa septentrional
territories.LT=Lituania
-territories.LS=Lesotho
+territories.LS=Lesoto
territories.LR=Liberia
+territories.151=Europa oriental
+territories.150=Europa
territories.LK=Sri Lanka
territories.LI=Liechtenstein
-territories.LC=Saint Lucia
+territories.LC=Santa Luc\u00eda
territories.LB=L\u00edbano
territories.LA=Laos
-territories.KZ=Kazajst\u00e1n
+territories.KZ=Kazajist\u00e1n
territories.KY=Islas Caim\u00e1n
territories.KW=Kuwait
+territories.145=Asia occidental
+territories.143=Asia central
+territories.142=Asia
territories.KR=Corea del Sur
territories.KP=Corea del Norte
territories.KN=San Crist\u00f3bal y Nieves
@@ -564,13 +633,14 @@ territories.KM=Comoras
territories.KI=Kiribati
territories.WS=Samoa
territories.KH=Camboya
-territories.KG=Kirguizist\u00e1n
+territories.KG=Kirguist\u00e1n
territories.KE=Kenia
territories.WF=Wallis y Futuna
territories.JP=Jap\u00f3n
territories.JO=Jordania
territories.JM=Jamaica
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=Islas V\u00edrgenes de los Estados Unidos
territories.VG=Islas V\u00edrgenes Brit\u00e1nicas
@@ -582,9 +652,10 @@ territories.IS=Islandia
territories.IR=Ir\u00e1n
territories.IQ=Iraq
territories.UZ=Uzbekist\u00e1n
-territories.IO=Territorios Brit\u00e1nico del Oc\u00e9ano \u00cdndico
+territories.IO=Territorio Brit\u00e1nico del Oc\u00e9ano \u00cdndico
territories.UY=Uruguay
territories.IN=India
+territories.IM=Isla de Man
territories.IL=Israel
territories.US=Estados Unidos
territories.IE=Irlanda
@@ -600,62 +671,68 @@ territories.HN=Honduras
territories.HM=Islas Heard y McDonald
territories.TW=Taiw\u00e1n
territories.TV=Tuvalu
-territories.HK=Hong-Kong, Regi\u00f3n administrativa especial de China
-territories.TT=Trinidad y Tabago
+territories.HK=Hong Kong
+territories.TT=Trinidad y Tobago
territories.TR=Turqu\u00eda
territories.TO=Tonga
territories.TN=T\u00fanez
territories.TM=Turkmenist\u00e1n
-languages.akk=acadio
languages.gwi=kutchin
+languages.akk=acadio
languages.eka=ekajuk
+languages.ijo=ijo
languages.xh=xhosa
languages.sux=sumerio
languages.sus=susu
languages.mis=lenguas varias
languages.loz=lozi
-languages.tog=tonga (Niasa)
+languages.tog=tonga del Nyasa
languages.pon=pohnpeiano
languages.min=minangkabau
languages.suk=sukuma
languages.wo=uolof
-languages.kut=kutenai
languages.lol=mongo
+languages.kut=kutenai
languages.mic=micmac
languages.wa=val\u00f3n
languages.kum=kumyk
languages.zap=zapoteco
-languages.cus=cusitas (otras)
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=lengua cusita
languages.jbo=lojban
-languages.vo=volapuk
+languages.doi=dogri
+languages.zza=zazaki
+languages.vo=volap\u00fck
languages.oto=lenguas otomanas
languages.vi=vietnamita
+languages.vai=vai
languages.rar=rarotongano
languages.ve=venda
languages.rap=rapanui
languages.raj=rajasthani
-languages.ota=turco otomano (1500-1928)
+languages.ota=turco otomano
languages.nzi=nzima
languages.nap=napolitano
languages.uz=uzbeko
languages.uga=ugar\u00edtico
languages.tmh=tamashek
-languages.nai=indias norteamericanas (otras)
+languages.nai=lengua india norteamericana
languages.nah=n\u00e1huatl
languages.ur=urdu
languages.fat=fanti
languages.uk=ucraniano
-languages.egy=egipcio (antiguo)
-languages.ug=uigur
+languages.egy=egipcio antiguo
+languages.zxx=sin contenido ling\u00fc\u00edstico
+languages.ug=uiguro
languages.fan=fang
-languages.ssa=nilosaharianas (otras)
-languages.bat=b\u00e1lticas (otras)
-languages.mga=irland\u00e9s medieval (900-1200)
+languages.ssa=lengua nilo-sahariana
+languages.mga=irland\u00e9s medieval
+languages.bat=lengua b\u00e1ltica
languages.nyo=nyoro
languages.bas=basa
languages.nyn=nyankole
languages.nym=nyamwezi
+languages.gsw=alem\u00e1n de Suiza
languages.hmn=hmong
languages.ban=balin\u00e9s
languages.osa=osage
@@ -665,23 +742,26 @@ languages.bai=lenguas bamileke
languages.tw=twi
languages.srr=serer
languages.tli=tlingit
-languages.tt=tatar
+languages.tlh=klingon
+languages.tt=t\u00e1rtaro
languages.ts=tsonga
+languages.srn=sranan tongo
languages.bad=banda
languages.tr=turco
-languages.to=tonga (Islas Tonga)
-languages.tn=setchwana
+languages.to=tongano
+languages.tn=sechuan\u00e9s
languages.tl=tagalo
-languages.tk=turkmeno
-languages.ti=tigrinya
+languages.tk=turcomano
+languages.ti=tigri\u00f1a
languages.th=tailand\u00e9s
languages.kru=kurukh
languages.tg=tayiko
languages.byn=blin
languages.te=telugu
-languages.csb=casubio
languages.kro=kru
+languages.csb=casubio
languages.ta=tamil
+languages.krl=carelio
languages.tkl=tokelauano
languages.efi=efik
languages.sw=swahili
@@ -693,19 +773,19 @@ languages.ss=siswati
languages.sr=serbio
languages.sq=alban\u00e9s
languages.men=mende
-languages.crp=criollas y pidgins (otras)
+languages.crp=lengua criolla o pidgin
languages.so=somal\u00ed
languages.afh=afrihili
languages.sn=shona
languages.sm=samoano
languages.sl=esloveno
-languages.grc=griego antiguo (hasta el 1453)
+languages.grc=griego antiguo
languages.sk=eslovaco
languages.grb=grebo
-languages.si=singal\u00e9s
-languages.sh=serbo-croata
-languages.afa=afroasi\u00e1ticas (otras)
+languages.si=cingal\u00e9s
+languages.sh=serbocroata
languages.crh=t\u00e1rtaro de Crimea
+languages.afa=lengua afroasi\u00e1tica
languages.sg=sango
languages.se=sami septentrional
languages.sd=sindhi
@@ -713,58 +793,67 @@ languages.udm=udmurt
languages.sc=sardo
languages.sa=s\u00e1nscrito
languages.rw=kinyarwanda
+languages.nwc=newari cl\u00e1sico
languages.ru=ruso
languages.mdr=mandar
languages.ro=rumano
languages.rn=kiroundi
-languages.rm=reto-romance
+languages.rm=retorrom\u00e1nico
+languages.fr_CH=franc\u00e9s de Suiza
languages.mdf=moksha
+languages.tiv=tiv
+languages.fr_CA=franc\u00e9s canadiense
languages.ady=adigeo
languages.zun=zuni
languages.kpe=kpelle
languages.qu=quechua
languages.tig=tigr\u00e9
languages.son=songhai
-languages.cpp=criollas y pidgins, basadas en el portugu\u00e9s (otras)
+languages.cpp=lengua criolla o pidgin basada en el portugu\u00e9s
+languages.rup=arrumano
languages.sog=sogdiano
languages.ada=adangme
-languages.hit=hitita
languages.kos=kosraeano
-languages.cpe=criollas y pidgins, basadas en el ingl\u00e9s (otras)
+languages.hit=hitita
+languages.cpf=lengua criolla o pidgin basada en el franc\u00e9s
+languages.cpe=lengua criolla o pidgin basada en el ingl\u00e9s
languages.him=himachali
-languages.got=g\u00f3tico
-languages.hil=hiligaynon
languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=g\u00f3tico
languages.gor=gorontalo
languages.gon=gondi
languages.din=dinka
languages.nub=lenguas nubias
languages.pt=portugu\u00e9s
-languages.ps=pashto
+languages.ps=past\u00fan
languages.fur=friulano
languages.phn=fenicio
-languages.goh=alem\u00e1n de la alta edad antigua (750-1050 aprox.)
+languages.de_CH=alem\u00e1n est\u00e1ndar (Suiza)
+languages.goh=alem\u00e1n de la alta edad antigua
languages.snk=sonink\u00e9
languages.cop=copto
languages.yap=yap\u00e9s
languages.ach=acoli
-languages.phi=filipinas (otras)
+languages.yao=yao
+languages.phi=lengua filipina
languages.pl=polaco
languages.ace=acehn\u00e9s
languages.pi=pali
+languages.pt_PT=portugu\u00e9s de Portugal
languages.pa=punjab\u00ed
languages.bug=bugin\u00e9s
languages.iba=iban
-languages.sms=sami sklot
-languages.bua=buriat
+languages.sms=sami skolt
+languages.bua=buriato
languages.mas=masai
languages.smn=sami inari
languages.os=os\u00e9tico
-languages.map=austronesias (otras)
+languages.map=lengua austronesia
languages.or=oriya
languages.man=mandingo
languages.smj=sami lule
-languages.smi=lenguas sami (otras)
+languages.smi=lengua sami
languages.mak=macasar
languages.om=oromo
languages.mai=maithili
@@ -772,23 +861,25 @@ languages.oj=ojibwa
languages.mag=magahi
languages.mad=madur\u00e9s
languages.sma=sami meridional
-languages.oc=occitano (despu\u00e9s del 1500)
+languages.oc=occitano
languages.nso=sotho septentrional
-languages.btk=batak (Indonesia)
+languages.btk=batak
languages.myv=erzya
+languages.es_ES=espa\u00f1ol de Espa\u00f1a
+languages.de_AT=alem\u00e1n austr\u00edaco
languages.dgr=dogrib
languages.ny=nyanja
languages.myn=maya
languages.nv=navajo
languages.kmb=kimbundu
languages.nr=ndebele meridional
-languages.gmh=alem\u00e1n de la alta edad media (1050-1500 aprox.)
+languages.gmh=alem\u00e1n de la alta edad media
languages.no=noruego
-languages.nn=nynorsk noruego
+languages.nn=noruego nynorsk
languages.nl=holand\u00e9s
languages.root=ra\u00edz
languages.ng=ndonga
-languages.sla=eslavas (otras)
+languages.sla=lengua eslava
languages.ne=nepal\u00ed
languages.nd=ndebele septentrional
languages.cmc=lenguas ch\u00e1micas
@@ -800,26 +891,30 @@ languages.tem=temne
languages.my=birmano
languages.lez=lezgiano
languages.mt=malt\u00e9s
-languages.peo=persa antiguo (600-400 a.C. aprox.)
+languages.frs=fris\u00f3n oriental
+languages.peo=persa antiguo
languages.ms=malayo
+languages.frr=fris\u00f3n septentrional
languages.mr=marathi
-languages.fro=franc\u00e9s antiguo (842-1400 aprox.)
+languages.fro=franc\u00e9s antiguo
languages.mo=moldavo
languages.mn=mongol
-languages.frm=franc\u00e9s medieval (1400-1600 aprox.)
+languages.frm=franc\u00e9s medieval
languages.ml=malayalam
languages.jrb=judeo-\u00e1rabe
languages.mk=macedonio
languages.mi=maor\u00ed
languages.mh=marshal\u00e9s
languages.mg=malgache
+languages.nqo=n\u2019ko
languages.mwr=marwari
languages.bra=braj
+languages.mwl=mirand\u00e9s
+languages.den=slave
languages.lv=let\u00f3n
-languages.den=slave (atabasca)
languages.lu=luba-katanga
-languages.lt=lituano
languages.del=delaware
+languages.lt=lituano
languages.lo=laosiano
languages.ln=lingala
languages.li=limburgu\u00e9s
@@ -829,8 +924,8 @@ languages.lb=luxemburgu\u00e9s
languages.la=lat\u00edn
languages.jpr=judeo-persa
languages.vot=v\u00f3tico
-languages.sit=sino-tibetanas (otras)
-languages.ky=kirghiz
+languages.sit=lengua sino-tibetana
+languages.ky=kirgu\u00eds
languages.kw=c\u00f3rnico
languages.kv=komi
languages.ku=kurdo
@@ -841,6 +936,7 @@ languages.awa=avadhi
languages.ko=coreano
languages.kn=canar\u00e9s
languages.km=jemer
+languages.en_GB=ingl\u00e9s brit\u00e1nico
languages.kl=groenland\u00e9s
languages.kk=kazajo
languages.rom=roman\u00ed
@@ -859,50 +955,51 @@ languages.jv=javan\u00e9s
languages.gil=gilbert\u00e9s
languages.znd=zande
languages.shn=shan
+languages.fon=fon
languages.xal=kalmyk
languages.aus=lenguas australianas
languages.kho=kotan\u00e9s
languages.ja=japon\u00e9s
-languages.khi=khoisan (otras)
-languages.pau=palavano
+languages.khi=lengua joisana
+languages.pau=palauano
languages.chy=cheyene
-languages.tai=tai (otras)
+languages.tai=lengua tai
languages.iu=inuktitut
languages.pap=papiamento
languages.it=italiano
languages.sgn=lenguajes de signos
-languages.kha=khasi
languages.is=island\u00e9s
+languages.kha=khasi
languages.chr=cherokee
languages.pam=pampanga
languages.pal=pahlavi
languages.chp=chipewyan
-languages.cho=choctaw
languages.io=ido
+languages.cho=choctaw
languages.chn=jerga chinuk
languages.chm=mar\u00ed
languages.tyv=tuviniano
-languages.bnt=bant\u00faes (otras)
+languages.bnt=bant\u00fa
languages.pag=pangasin\u00e1n
+languages.ik=inupiaq
languages.chk=truk\u00e9s
-languages.ik=inupiak
-languages.haw=hawaiano
languages.ii=sichuan yi
+languages.haw=hawaiano
languages.lam=lamba
-languages.chg=chagat\u00e1i
languages.ig=igbo
-languages.sga=irland\u00e9s antiguo (hasta el 900)
-languages.paa=pap\u00faes (otras)
+languages.chg=chagat\u00e1i
+languages.sga=irland\u00e9s antiguo
+languages.paa=lengua pap\u00fa
languages.ie=interlingue
languages.id=indonesio
languages.lah=lahnda
-languages.chb=chibcha
languages.day=dayak
+languages.chb=chibcha
languages.ia=interlingua
languages.lad=ladino
-languages.dar=dargva
-languages.hai=haida
languages.hz=herero
+languages.hai=haida
+languages.dar=dargva
languages.hy=armenio
languages.ath=lenguas atabascas
languages.hu=h\u00fangaro
@@ -914,61 +1011,73 @@ languages.hi=hindi
languages.dyu=diula
languages.he=hebreo
languages.ast=asturiano
+languages.kfo=koro
languages.ha=hausa
languages.wen=lenguas sorbias
languages.gv=ga\u00e9lico man\u00e9s
languages.gu=gujarati
-languages.sem=sem\u00edticas (otras)
+languages.sem=lengua sem\u00edtica
languages.sel=selkup
languages.iro=lenguas iroquesas
languages.gn=guaran\u00ed
languages.gl=gallego
+languages.en_CA=ingl\u00e9s canadiense
languages.arw=arahuaco
-languages.gd=ga\u00e9lico escoc\u00e9s
-languages.art=artificiales (otras)
languages.gez=geez
-languages.ira=iranias (otras)
+languages.art=lengua artificial
+languages.gd=ga\u00e9lico escoc\u00e9s
+languages.ira=lengua irania
languages.ga=irland\u00e9s
languages.arp=arapaho
languages.arn=araucano
-languages.fy=fris\u00f3n
+languages.fy=fris\u00f3n occidental
languages.bla=siksika
-languages.gem=germ\u00e1nicas (otras)
+languages.gem=lengua germ\u00e1nica
languages.ypk=lenguas yupik
-languages.fr=franc\u00e9s
languages.arc=arameo
+languages.fr=franc\u00e9s
languages.fo=fero\u00e9s
-languages.cel=celtas (otras)
-languages.fj=fidji
+languages.cel=lengua celta
+languages.fj=fidjiano
languages.fi=finland\u00e9s
languages.ff=fula
languages.tvl=tuvaluano
languages.ceb=cebuano
-languages.fa=farsi
+languages.fa=persa
+languages.en_AU=ingl\u00e9s australiano
+languages.zh_Hans=chino simplificado
+languages.zh_Hant=chino tradicional
languages.eu=vasco
languages.sco=escoc\u00e9s
languages.et=estonio
+languages.scn=siciliano
languages.es=espa\u00f1ol
languages.eo=esperanto
languages.en=ingl\u00e9s
languages.el=griego
-languages.tut=altaicas (otras)
+languages.tut=lengua altaica
languages.niu=niueano
languages.tup=lenguas tup\u00ed
languages.ee=ewe
languages.tum=tumbuka
+languages.nl_BE=flamenco
+languages.es_419=espa\u00f1ol (Latinoam\u00e9rica)
languages.mos=mossi
-languages.dz=bhutan\u00ed
-languages.nic=n\u00edger-kordofanianas (otras)
-languages.dv=divehi
-languages.fiu=finougrias (otras)
+languages.dz=butan\u00e9s
+languages.kcg=tyap
+languages.nic=lengua n\u00edger-cordofana
languages.lus=lushai
+languages.fiu=lengua fino\u00fagria
+languages.dv=divehi
languages.nia=nias
languages.moh=mohawk
+languages.luo=luo
languages.lun=lunda
languages.apa=lenguas apache
+languages.fil=filipino
languages.lui=luise\u00f1o
languages.hup=hupa
+languages.cch=atsam
languages.bin=bini
languages.de=alem\u00e1n
languages.lua=luba-lulua
@@ -977,15 +1086,15 @@ languages.was=washo
languages.und=indeterminada
languages.war=waray
languages.da=dan\u00e9s
-languages.dum=neerland\u00e9s medieval (1050-1350 aprox.)
+languages.dum=neerland\u00e9s medieval
languages.wal=walamo
languages.mno=lenguas manobo
languages.wak=lenguas wakasha
languages.sat=santali
languages.cy=gal\u00e9s
languages.sas=sasak
-languages.cv=chuvash
languages.kbd=kabardiano
+languages.cv=chuvash
languages.cu=eslavo eclesi\u00e1stico
languages.mni=manipuri
languages.cs=checo
@@ -994,77 +1103,89 @@ languages.cr=cree
languages.sal=lenguas salish
languages.dua=duala
languages.co=corso
-languages.sai=indias sudamericanas (otras)
+languages.sai=lengua india sudamericana
languages.mnc=manch\u00fa
languages.sah=yakut
-languages.gba=gbaya
-languages.inh=ingush
languages.kaw=kawi
+languages.inh=ingush
+languages.gba=gbaya
languages.sad=sandawe
languages.ch=chamorro
+languages.ine=lengua indoeuropea
languages.bho=bhojpuri
-languages.ine=indoeuropeas (otras)
-languages.enm=ingl\u00e9s medieval (1100-1500)
-languages.ce=checheno
-languages.inc=\u00edndicas (otras)
+languages.enm=ingl\u00e9s medieval
languages.kar=karen
+languages.inc=lengua \u00edndica
+languages.ce=checheno
languages.gay=gayo
languages.ca=catal\u00e1n
languages.umb=umbundu
languages.syr=siriaco
languages.kam=kamba
+languages.anp=angika
languages.tsi=tsimshiano
-languages.ang=ingl\u00e9s antiguo (450-1100 aprox.)
-languages.cau=cauc\u00e1sicas (otras)
+languages.kaj=jju
+languages.ang=ingl\u00e9s antiguo
languages.kac=kachin
+languages.cau=lengua cauc\u00e1sica
languages.kab=cabila
-languages.bs=bosnio
languages.kaa=karakalpako
-languages.br=bret\u00f3n
+languages.bs=bosnio
languages.car=caribe
+languages.br=bret\u00f3n
languages.bo=tibetano
languages.bn=bengal\u00ed
languages.bm=bambara
languages.gaa=ga
+languages.cai=lengua india centroamericana
languages.bi=bislama
-languages.cai=indias centroamericanas (otras)
languages.bh=bihari
languages.bg=b\u00falgaro
languages.be=bielorruso
+languages.pt_BR=portugu\u00e9s brasile\u00f1o
languages.cad=caddo
languages.ba=bashkir
languages.zu=zul\u00fa
languages.zen=zenaga
-languages.pro=provenzal antiguo (hasta el 1500)
+languages.pro=provenzal antiguo
languages.hsb=sorbio superior
languages.az=azer\u00ed
languages.ay=aymara
languages.av=avar
languages.as=asam\u00e9s
-languages.ar=\u00e1rabe
languages.dsb=sorbio inferior
-languages.elx=elamita
+languages.ar=\u00e1rabe
languages.ilo=ilocano
+languages.elx=elamita
languages.zh=chino
languages.an=aragon\u00e9s
-languages.pra=lenguas prakrit
+languages.pra=lenguas pr\u00e1critas
languages.am=am\u00e1rico
languages.new=newari
languages.ak=akan
languages.za=zhuang
+languages.en_US=Ingl\u00e9s (Estados Unidos)
languages.af=afrikaans
languages.ae=av\u00e9stico
-languages.ab=abkhaziano
+languages.alt=alt\u00e1i meridional
+languages.ab=abjasio
languages.aa=afar
languages.yo=yoruba
languages.alg=lenguas algonquinas
languages.ale=aleutiano
-languages.mkh=mon-jemer (otras)
-languages.yi=yidish
-languages.dra=drav\u00eddicas (otras)
-languages.ber=bereberes (otras)
+languages.mkh=lengua mon-jemer
+languages.yi=y\u00eddish
+languages.dra=lengua drav\u00eddica
+languages.ber=bereber
languages.nds=bajo alem\u00e1n
languages.bem=bemba
languages.bej=beja
languages.tpi=tok pisin
-variants.REVISED=Revisado
+variants.POSIX=Ordenador
+variants.1901=Ortograf\u00eda alemana tradicional
+variants.MONOTON=Monot\u00f3nico
+variants.1996=Ortograf\u00eda alemana de 1996
+variants.POLYTON=Polit\u00f3nico
+variants.FONIPA=alfabeto fon\u00e9tico internacional IPA
+variants.AREVELA=Armenio oriental
+variants.REVISED=Ortograf\u00eda revisada
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_AR.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_AR.properties
index 9ab78a9..add3160 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_AR.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_AR.properties
@@ -5,10 +5,13 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currenciesDisplayName.TRY=nueva lira turca
+currenciesDisplayName.TRL=lira turca
currenciesDisplayName.ARS=Peso Argentino
-currenciesDisplayName.USD=D\u00f3lar Americano
currenciesSymbol.ARS=$
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
+ampms=a.m.\u00aep.m.\u00ae
longTimeFormat=H:mm:ss z
-fullTimeFormat=HH'h'''mm z
+fullTimeFormat=HH'h'''mm:ss z
+territories.HK=Hong Kong
+territories.MO=Macao
+variants.REVISED=Ortograf\u00eda revisada
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CL.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CL.properties
index 0498645..deec361 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CL.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CL.properties
@@ -7,7 +7,6 @@
currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
currenciesDisplayName.CLP=Peso Chileno
-currenciesDisplayName.USD=D\u00f3lar Americano
currenciesSymbol.CLP=$
shortDateFormat=dd-MM-yy
mediumDateFormat=dd-MM-yyyy
@@ -15,3 +14,13 @@ shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
longTimeFormat=H:mm:ss z
fullTimeFormat=HH:mm:ss z
+territories.TZ=Tanzan\u00eda
+territories.SA=Arabia Saudita
+territories.005=Sudam\u00e9rica
+territories.AZ=Azerbay\u00e1n
+territories.RO=Rumania
+territories.AN=Antillas Holandesas
+territories.PS=Territorio Palestino
+territories.EH=Sahara Occidental
+languages.arn=mapudungun
+languages.ira=iran\u00edes
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CO.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CO.properties
index 1178909..3c36240 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CO.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CO.properties
@@ -6,8 +6,8 @@
# This file was automatically generated by gnu.localegen from CLDR.
currenciesDisplayName.COP=Peso de Colombia
-currenciesDisplayName.USD=D\u00f3lar Americano
currenciesSymbol.COP=$
+shortDateFormat=d/MM/yy
mediumDateFormat=d/MM/yyyy
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CR.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CR.properties
index 04eb63d..59f95ea 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CR.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_CR.properties
@@ -5,9 +5,4 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+currenciesSymbol.CRC=\u20a1
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_DO.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_DO.properties
index 0214a02..447c869 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_DO.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_DO.properties
@@ -7,9 +7,3 @@
decimalSeparator=.
groupingSeparator=,
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_EC.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_EC.properties
index df3b509..f4e74f6 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_EC.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_EC.properties
@@ -5,12 +5,8 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-decimalSeparator=.
-groupingSeparator=,
currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
currenciesSymbol.USD=$
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
longTimeFormat=H:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_ES.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_ES.properties
index 52dd801..5c06230 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_ES.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_ES.properties
@@ -6,7 +6,17 @@
# This file was automatically generated by gnu.localegen from CLDR.
currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
+currenciesDisplayName.BEF=franco belga
+currenciesDisplayName.AUD=d\u00f3lar australiano
+currenciesDisplayName.ARS=peso argentino
+currenciesDisplayName.NLG=flor\u00edn neerland\u00e9s
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
+fullTimeFormat=HH'H'mm''ss\" v
+territories.KG=Kirguist\u00e1n
+territories.VA=Vaticano
+languages.ast=bable
+languages.chg=chagatai
+languages.eu=euskera
+languages.rom=cal\u00f3
+languages.fi=finland\u00e9s
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_GT.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_GT.properties
index 68a375d..5c7974c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_GT.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_GT.properties
@@ -7,8 +7,5 @@
decimalSeparator=.
groupingSeparator=,
+shortDateFormat=d/MM/yy
mediumDateFormat=d/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_HN.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_HN.properties
index c2dd489..b8a8fca 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_HN.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_HN.properties
@@ -7,11 +7,5 @@
decimalSeparator=.
groupingSeparator=,
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-longDateFormat=dd' de 'MMMM' de 'yyyy
-fullDateFormat=EEEE dd' de 'MMMM' de 'yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+longDateFormat=dd 'de' MMMM 'de' yyyy
+fullDateFormat=EEEE dd 'de' MMMM 'de' yyyy
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_MX.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_MX.properties
index 50f4220..d8af60b3 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_MX.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_MX.properties
@@ -7,12 +7,4 @@
decimalSeparator=.
groupingSeparator=,
-currenciesDisplayName.MXN=MXN
-currenciesDisplayName.USD=D\u00f3lar Americano
currenciesSymbol.MXN=$
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_NI.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_NI.properties
index 5bba6ad..b91435c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_NI.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_NI.properties
@@ -7,9 +7,3 @@
decimalSeparator=.
groupingSeparator=,
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PA.properties
index 89e2982..591efd1 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PA.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PA.properties
@@ -9,7 +9,3 @@ decimalSeparator=.
groupingSeparator=,
shortDateFormat=MM/dd/yy
mediumDateFormat=MM/dd/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PE.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PE.properties
index 1cfe9b7..543d5ae 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PE.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PE.properties
@@ -7,10 +7,5 @@
decimalSeparator=.
groupingSeparator=,
-currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+shortDateFormat=d/MM/yy
+fullTimeFormat=HH'H'mm''ss\" z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PR.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PR.properties
index ece3beb..e69d25a 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PR.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PR.properties
@@ -7,11 +7,6 @@
decimalSeparator=.
groupingSeparator=,
-currenciesDisplayName.USD=D\u00f3lar Americano
currenciesSymbol.USD=$
shortDateFormat=MM/dd/yy
mediumDateFormat=MM/dd/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PY.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PY.properties
index 40bc997..e6eb01e 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PY.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_PY.properties
@@ -5,10 +5,4 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4 #,##0.00;\u00a4 -#,##0.00
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4\u00a0-#,##0.00
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_SV.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_SV.properties
index 1155039..1fe7812 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_SV.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_SV.properties
@@ -7,9 +7,3 @@
decimalSeparator=.
groupingSeparator=,
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_US.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_US.properties
index b45673f..8ee50a2 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_US.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_US.properties
@@ -7,7 +7,6 @@
decimalSeparator=.
groupingSeparator=,
-firstDayOfWeek=sun
shortDateFormat=M/d/yy
mediumDateFormat=MMM d, yyyy
shortTimeFormat=h:mm a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_UY.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_UY.properties
index 5356fcf..7d0b6a9 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_UY.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_UY.properties
@@ -5,11 +5,5 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4 #,##0.00;(\u00a4#,##0.00)
-currenciesSymbol.UYU=$
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+currencyFormat=\u00a4\u00a0#,##0.00;(\u00a4\u00a0#,##0.00)
+currenciesSymbol.UYU=$U
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_VE.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_VE.properties
index 288794f..f465e76 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_VE.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_es_VE.properties
@@ -5,10 +5,4 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;\u00a4 -#,##0.00
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MM/yyyy
-shortTimeFormat=hh:mm a
-mediumTimeFormat=hh:mm:ss a
-longTimeFormat=hh:mm:ss a z
-fullTimeFormat=hh:mm:ss a z
+currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_et.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_et.properties
index 3f01ee6..0065174 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_et.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_et.properties
@@ -7,15 +7,216 @@
decimalSeparator=,
groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=Jeemeni dinaar
+currenciesDisplayName.KES=Keenia \u0161illing
+currenciesDisplayName.TWD=Taiwani dollar
+currenciesDisplayName.BYB=Valgevene uus rubla, 1994-1999
+currenciesDisplayName.TJS=Tad\u017eikistani somoni
+currenciesDisplayName.RWF=Ruanda frank
+currenciesDisplayName.SDP=Sudaani nael
+currenciesDisplayName.GRD=Kreeka drahm
+currenciesDisplayName.AFN=Afganistani afgaani
+currenciesDisplayName.IEP=Iiri nael
+currenciesDisplayName.ARS=Argentina peeso
+currenciesDisplayName.ARP=Argentina peeso, 1983-1985
+currenciesDisplayName.GEL=Gruusia lari
+currenciesDisplayName.AFA=Afganistani afgaani, 1927-2002
+currenciesDisplayName.FKP=Falklandi saarte nael
currenciesDisplayName.EEK=kroon
+currenciesDisplayName.MDL=Moldova leu
+currenciesDisplayName.HKD=Hongkongi dollar
+currenciesDisplayName.IQD=Iraagi dinaar
+currenciesDisplayName.ARA=Argentina austral
+currenciesDisplayName.SCR=Sei\u0161elli saarte ruupia
+currenciesDisplayName.VUV=Vanuatu vatu
+currenciesDisplayName.KPW=P\u00f5hja-Korea vonn
+currenciesDisplayName.DKK=Taani kroon
+currenciesDisplayName.IDR=Indoneesia ruupia
+currenciesDisplayName.SOS=Somaalia \u0161illing
+currenciesDisplayName.AED=Araabia \u00dchendemiraatide dirhem
+currenciesDisplayName.LVL=L\u00e4ti latt
+currenciesDisplayName.BWP=Botswana pula
+currenciesDisplayName.RUR=Venemaa rubla, 1991-1998
+currenciesDisplayName.NIO=Nicaragua kuldkordoba
+currenciesDisplayName.XTS=v\u00e4\u00e4ringute testkood
+currenciesDisplayName.MOP=Macao pataka
+currenciesDisplayName.FJD=Fid\u017ei dollar
+currenciesDisplayName.ADP=Andorra peseeta
+currenciesDisplayName.RUB=Venemaa rubla
+currenciesDisplayName.NIC=Nicaragua kordoba
+currenciesDisplayName.UZS=Usbekistani somm
+currenciesDisplayName.SBD=Saalomoni saarte dollar
+currenciesDisplayName.ECS=Ecuadori sukre
+currenciesDisplayName.THB=Tai baat
+currenciesDisplayName.PHP=Filipiinide peeso
+currenciesDisplayName.LUF=Luksemburgi frank
+currenciesDisplayName.FIM=Soome mark
+currenciesDisplayName.MNT=Mongoolia tugrik
+currenciesDisplayName.UAK=Ukraina karbovanets
+currenciesDisplayName.SAR=Saudi-Araabia riaal
+currenciesDisplayName.UAH=Ukraina grivna
+currenciesDisplayName.HUF=Ungari forint
+currenciesDisplayName.QAR=Quatari riaal
+currenciesDisplayName.COP=Kolumbia peeso
+currenciesDisplayName.PTE=Portugali eskuudo
+currenciesDisplayName.UYU=Uruguai peeso
+currenciesDisplayName.AOR=Angola reformitud kvanza, 1995-1999
+currenciesDisplayName.GBP=Suurbritannia naelsterling
+currenciesDisplayName.ZRZ=Sairi zaire
+currenciesDisplayName.INR=India ruupia
+currenciesDisplayName.BIF=Burundi frank
+currenciesDisplayName.MZN=Mosambiigi metikal
+currenciesDisplayName.LTL=Leedu litt
+currenciesDisplayName.AON=Angola kvanza, 1990-2000
+currenciesDisplayName.KZT=Kasahstani tenge
+currenciesDisplayName.AOK=Angola kvanza, 1977-1990
+currenciesDisplayName.GNS=Guinea syli
+currenciesDisplayName.BUK=Birma kjatt
+currenciesDisplayName.XFO=Prantsuse kuldfrank
+currenciesDisplayName.PGK=Paapua Uus-Guinea kina
+currenciesDisplayName.SYP=S\u00fc\u00fcria nael
+currenciesDisplayName.OMR=Omaani riaal
+currenciesDisplayName.NGN=Nigeeria naira
+currenciesDisplayName.CNY=Hiina j\u00fcaan
+currenciesDisplayName.AOA=Angola kvanza
+currenciesDisplayName.RSD=Serbia dinaar
+currenciesDisplayName.MAD=Maroko dirhem
+currenciesDisplayName.HTG=Haiti gurd
+currenciesDisplayName.TRY=T\u00fcrgi uus liir
+currenciesDisplayName.MMK=Myanmari kjatt
+currenciesDisplayName.MYR=Malaisia ringgit
+currenciesDisplayName.XEU=ek\u00fc\u00fc
+currenciesDisplayName.SLL=Sierra Leone leoone
+currenciesDisplayName.BHD=Bahreini dinaar
+currenciesDisplayName.TRL=T\u00fcrgi liir
+currenciesDisplayName.CZK=T\u0161ehhi kroon
+currenciesDisplayName.ANG=Hollandi Antillide kulden
+currenciesDisplayName.AZN=Aserbaid\u017eaani manat
+currenciesDisplayName.AZM=Aserbaid\u017eaani manat, 1993-2006
+currenciesDisplayName.GMD=Gambia dalasi
+currenciesDisplayName.BGN=Bulgaaria leev
+currenciesDisplayName.CAD=Kanada dollar
+currenciesDisplayName.BGL=Bulgaaria p\u00fcsiv leev
+currenciesDisplayName.VEB=Venezuela boliivar
+currenciesDisplayName.MXP=Mehhiko peeso, 1861-1990
+currenciesDisplayName.ILS=Iisraeli uus seekel
+currenciesDisplayName.PES=Peruu soll
+currenciesDisplayName.MXN=Mehhiko peeso
+currenciesDisplayName.GYD=Guyana dollar
+currenciesDisplayName.ILP=Iisraeli nael
+currenciesDisplayName.CYP=K\u00fcprose nael
+currenciesDisplayName.SKK=Slovakkia kroon
+currenciesDisplayName.PEN=Peruu uus soll
+currenciesDisplayName.PEI=Peruu inti
+currenciesDisplayName.AMD=Armeenia dramm
+currenciesDisplayName.XPT=plaatina
+currenciesDisplayName.HRK=Horvaatia kuna
+currenciesDisplayName.CLP=T\u0161iili peeso
+currenciesDisplayName.FRF=Prantsuse frank
+currenciesDisplayName.XPD=pallaadium
+currenciesDisplayName.ALL=Albaania lekk
+currenciesDisplayName.MWK=Malawi kvat\u0161a
+currenciesDisplayName.BRL=Brasiilia reaal
+currenciesDisplayName.TPE=Timori eskuudo
+currenciesDisplayName.BRC=Brasiilia krusado
+currenciesDisplayName.DEM=Saksa mark
+currenciesDisplayName.XCD=Ida-Kariibi dollar
+currenciesDisplayName.KWD=Kuveidi dinaar
+currenciesDisplayName.NPR=Nepali ruupia
+currenciesDisplayName.GWP=Guinea-Bissau peeso
+currenciesDisplayName.YUN=Jugoslaavia konverteeritav dinaar
+currenciesDisplayName.YUM=Jugoslaavia uus dinaar
+currenciesDisplayName.SVC=Salvadori koloon
+currenciesDisplayName.SIT=Sloveenia tolar
+currenciesDisplayName.BEL=Belgia arveldusfrank
+currenciesDisplayName.JPY=Jaapani jeen
+currenciesDisplayName.MVR=Maldiivide ruupia
+currenciesDisplayName.TOP=Tonga pa'anga
+currenciesDisplayName.BEF=Belgia frank
+currenciesDisplayName.BEC=Belgia konverteeritav frank
+currenciesDisplayName.SUR=NSVL rubla
+currenciesDisplayName.RON=Rumeenia lei
+currenciesDisplayName.ROL=Rumeenia lei, -2005
+currenciesDisplayName.BDT=Bangladeshi taka
+currenciesDisplayName.AWG=Aruba guilder
+currenciesDisplayName.XBA=EURCO
+currenciesDisplayName.NOK=Norra kroon
+currenciesDisplayName.ZAR=LAVi rand
+currenciesDisplayName.MUR=Mauritiuse ruupia
+currenciesDisplayName.SHP=Saint Helena nael
+currenciesDisplayName.XAU=kuld
+currenciesDisplayName.VND=Vietnami dong
+currenciesDisplayName.TZS=Tansaania \u0161illing
+currenciesDisplayName.GIP=Gibraltari nael
+currenciesDisplayName.TND=Tuneesia dinaar
+currenciesDisplayName.UGX=Uganda \u0161illing
+currenciesDisplayName.XAG=h\u00f5be
+currenciesDisplayName.ZMK=Sambia kvat\u0161a
+currenciesDisplayName.XAF=CFA frank BEAC
+currenciesDisplayName.LBP=Liibanoni nael
+currenciesDisplayName.STD=S\u00e3o Tom\u00e9 ja Pr\u00edncipe dobra
+currenciesDisplayName.WST=L\u00e4\u00e4ne-Samoa tala
+currenciesDisplayName.KHR=Kambod\u017ea riaal
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.USS=USA sama p\u00e4eva dollar
+currenciesDisplayName.BOP=Boliivia peeso
+currenciesDisplayName.MTL=Malta liir
+currenciesDisplayName.TMM=T\u00fcrkmenistani manat
+currenciesDisplayName.USN=USA j\u00e4rgmise p\u00e4eva dollar
+currenciesDisplayName.SGD=Singapuri dollar
+currenciesDisplayName.NZD=Uus-Meremaa dollar
+currenciesDisplayName.USD=USA dollar
+currenciesDisplayName.BOB=boliviaano
+currenciesDisplayName.HNL=Hondurase lempiira
+currenciesDisplayName.ITL=Itaalia liir
+currenciesDisplayName.PAB=Panama balboa
+currenciesDisplayName.GTQ=Guatemala ketsal
+currenciesDisplayName.XXX=m\u00e4\u00e4ramata
+currenciesDisplayName.AUD=Austraalia dollar
+currenciesDisplayName.GHC=Ghana sedi
+currenciesDisplayName.LAK=Laose kiip
+currenciesDisplayName.KGS=K\u00f5rg\u00f5zstani somm
+currenciesDisplayName.BBD=Barbadose dollar
+currenciesDisplayName.CHF=\u0160veitsi frank
+currenciesDisplayName.PYG=Paraguai guaranii
+currenciesDisplayName.PLZ=Poola zlott, 1950-1995
+currenciesDisplayName.ATS=Austria \u0161illing
+currenciesDisplayName.ETB=Etioopia birr
+currenciesDisplayName.BND=Brunei dollar
+currenciesDisplayName.EGP=Egiptuse nael
+currenciesDisplayName.JMD=Jamaica dollar
+currenciesDisplayName.PLN=Poola zlott
+currenciesDisplayName.DZD=Al\u017eeeria dinaar
+currenciesDisplayName.ISK=Islandi kroon
+currenciesDisplayName.SRG=Surinami kulden
+currenciesDisplayName.BAM=Bosnia-Hertsegoviina mark
+currenciesDisplayName.ESP=Hispaania peseeta
+currenciesDisplayName.KRW=L\u00f5una-Korea vonn
+currenciesDisplayName.NLG=Hollandi kulden
+currenciesDisplayName.MRO=Mauretaania ugia
+currenciesDisplayName.BAD=Bosnia-Hertsegoviina dinaar
+currenciesDisplayName.ZWD=Zimbabwe dollar
+currenciesDisplayName.SEK=Rootsi kroon
+currenciesDisplayName.BYR=Valgevene rubla
+currenciesDisplayName.IRR=Iraani riaal
+currenciesDisplayName.PKR=Pakistani ruupia
+currenciesDisplayName.BMD=Bermuda dollar
+currenciesDisplayName.CSD=Serbia vana dinaar
+currenciesSymbol.JPY=\u00a5
currenciesSymbol.EEK=kr
-shortMonths=jaan®veebr®m\u00e4rts®apr®mai®juuni®juuli®aug®sept®okt®nov®dets®®
-months=jaanuar®veebruar®m\u00e4rts®aprill®mai®juuni®juuli®august®september®oktoober®november®detsember®®
-shortWeekdays=®P®E®T®K®N®R®L®
-weekdays=®p\u00fchap\u00e4ev®esmasp\u00e4ev®teisip\u00e4ev®kolmap\u00e4ev®neljap\u00e4ev®reede®laup\u00e4ev®
-firstDayOfWeek=mon
-eras=e.m.a.®m.a.j.®
+currenciesSymbol.EUR=\u20ac
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.XXX=XXX
+currenciesSymbol.USD=$
+shortMonths=jaan\u00aeveebr\u00aem\u00e4rts\u00aeapr\u00aemai\u00aejuuni\u00aejuuli\u00aeaug\u00aesept\u00aeokt\u00aenov\u00aedets\u00ae\u00ae
+months=jaanuar\u00aeveebruar\u00aem\u00e4rts\u00aeaprill\u00aemai\u00aejuuni\u00aejuuli\u00aeaugust\u00aeseptember\u00aeoktoober\u00aenovember\u00aedetsember\u00ae\u00ae
+shortWeekdays=\u00aeP\u00aeE\u00aeT\u00aeK\u00aeN\u00aeR\u00aeL\u00ae
+weekdays=\u00aep\u00fchap\u00e4ev\u00aeesmasp\u00e4ev\u00aeteisip\u00e4ev\u00aekolmap\u00e4ev\u00aeneljap\u00e4ev\u00aereede\u00aelaup\u00e4ev\u00ae
+eras=e.m.a.\u00aem.a.j.\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=dd.MM.yy
mediumDateFormat=dd.MM.yyyy
longDateFormat=d MMMM yyyy
@@ -46,17 +247,20 @@ territories.GN=Guinea
territories.GM=Gambia
territories.GL=Gr\u00f6\u00f6nimaa
territories.SV=El Salvador
-territories.ST=Sao Tom\u00e9 ja Principe
+territories.062=Kesk-Aasia l\u00f5unaosa
+territories.ST=S\u00e3o Tom\u00e9 ja Pr\u00edncipe
territories.GI=Gibraltar
+territories.061=Pol\u00fcneesia
territories.GH=Ghana
territories.SR=Suriname
+territories.GG=Guernsey
territories.GF=Prantsuse Guajaana
territories.GE=Gruusia
territories.SO=Somaalia
territories.GD=Grenada
territories.SN=Senegal
territories.SM=San Marino
-territories.GB=\u00dchendkuningriik
+territories.GB=Suurbritannia
territories.SL=Sierra Leone
territories.GA=Gabon
territories.SK=Slovakkia
@@ -71,31 +275,41 @@ territories.SB=Saalomoni Saared
territories.SA=Saudi Araabia
territories.FR=Prantsusmaa
territories.FO=F\u00e4\u00e4ri saared
+territories.057=Mikroneesia
territories.FM=Mikroneesia Liiduriigid
territories.RW=Rwanda
+territories.054=Melaneesia
territories.FK=Falklandi saared
+territories.053=Austraalia ja Uus-Meremaa
territories.RU=Venemaa
territories.FJ=Fid\u017ei
territories.FI=Soome
+territories.RS=Serbia
territories.RO=Rumeenia
territories.RE=R\u00e9union
territories.ET=Etioopia
territories.ES=Hispaania
territories.ER=Eritrea
+territories.QU=Euroopa Liit
territories.EH=L\u00e4\u00e4ne-Sahara
territories.EG=Egiptus
territories.EE=Eesti
+territories.QO=Okeaania hajasaared
territories.EC=Ecuador
territories.DZ=Al\u017eeeria
territories.QA=Katar
+territories.039=L\u00f5una-Euroopa
territories.DO=Dominikaani Vabariik
territories.PY=Paraguay
territories.DM=Dominica
+territories.035=Kagu-Aasia
territories.PW=Belau
+territories.034=L\u00f5una-Aasia
territories.DK=Taani
territories.DJ=Djibouti
territories.PT=Portugal
-territories.PS=Palestiina Omavalitsus
+territories.PS=Palestiina ala
+territories.030=Ida-Aasia
territories.PR=Puerto Rico
territories.DE=Saksamaa
territories.PN=Pitcairn
@@ -105,48 +319,60 @@ territories.PK=Pakistan
territories.PH=Filipiinid
territories.PG=Paapua Uus-Guinea
territories.PF=Prantsuse Pol\u00fcneesia
-territories.CZ=T\u0161ehhi Vabariik
+territories.CZ=T\u0161ehhi
territories.PE=Peruu
territories.CY=K\u00fcpros
territories.CX=J\u00f5ulusaar
-territories.CV=Cabo Verde
+territories.CV=Roheneemesaared
territories.PA=Panama
territories.CU=Kuuba
territories.CS=Serbia ja Montenegro
territories.CR=Costa Rica
+territories.029=Kariibi meri
territories.CO=Colombia
territories.CN=Hiina
territories.CM=Kamerun
territories.CL=T\u0161iili
territories.CK=Cooki saared
-territories.CI=Cote d\u2019Ivoire
+territories.021=Ameerika p\u00f5hjaosa
+territories.CI=C\u00f4te d'Ivoire
territories.CH=\u0160veits
-territories.CG=Kongo
+territories.CG=Kongo Vabariik
territories.CF=Kesk-Aafrika Vabariik
territories.CD=Kongo DV
territories.CC=Kookossaared
territories.OM=Omaan
territories.CA=Kanada
+territories.419=Ladina-Ameerika ja Kariibi meri
territories.BZ=Belize
territories.BY=Valgevene
territories.BW=Botswana
territories.BV=Bouvet\u2019 saar
territories.BT=Bhutan
-territories.BS=Bahama saared
+territories.BS=Bahama
territories.BR=Brasiilia
+territories.019=Ameerika maailmajagu
+territories.018=L\u00f5una-Aafrika
territories.NZ=Uus-Meremaa
+territories.017=Kesk-Aafrika
territories.BO=Boliivia
territories.BN=Brunei
+territories.015=P\u00f5hja-Aafrika
territories.BM=Bermuda
+territories.014=Ida-Aafrika
+territories.013=Kesk-Ameerika
territories.NU=Niue
territories.BJ=Benin
+territories.011=L\u00e4\u00e4ne-Aafrika
territories.BI=Burundi
+territories.172=S\u00f5ltumatute Riikide \u00dchendus
territories.BH=Bahrein
territories.NR=Nauru
territories.BG=Bulgaaria
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgia
+territories.ZZ=m\u00e4\u00e4ramata
territories.NO=Norra
territories.BD=Bangladesh
territories.BB=Barbados
@@ -158,6 +384,7 @@ territories.NG=Nigeeria
territories.NF=Norfolk
territories.AZ=Aserbaid\u017eaan
territories.NE=Niger
+territories.AX=Ahvenamaa
territories.NC=Uus-Kaledoonia
territories.AW=Aruba
territories.ZM=Sambia
@@ -166,54 +393,67 @@ territories.AU=Austraalia
territories.AT=Austria
territories.AS=Ameerika Samoa
territories.AR=Argentina
-territories.AQ=Antarktika
+territories.AQ=Antarktis
+territories.009=Okeaania
territories.MZ=Mosambiik
territories.AO=Angola
territories.MY=Malaisia
territories.AN=Hollandi Antillid
territories.MX=Mehhiko
territories.AM=Armeenia
+territories.005=L\u00f5una-Ameerika
territories.MW=Malawi
territories.AL=Albaania
territories.MV=Maldiivid
+territories.003=P\u00f5hja-Ameerika
territories.ZA=L\u00f5una-Aafrika Vabariik
territories.MU=Mauritius
+territories.002=Aafrika
territories.MT=Malta
territories.AI=Anguilla
+territories.001=maailm
territories.MS=Montserrat
territories.MR=Mauritaania
territories.AG=Antigua ja Barbuda
-territories.AF=Afganistan
territories.MQ=Martinique
-territories.AE=Araabia \u00dchendemiraadid
+territories.AF=Afganistan
territories.MP=P\u00f5hja-Mariaanid
+territories.AE=Araabia \u00dchendemiraadid
+territories.MO=Aomen
territories.AD=Andorra
-territories.MO=Aomeni Hiina erihalduspiirkond
territories.MN=Mongoolia
territories.MM=Myanmar
territories.ML=Mali
-territories.MK=Makedoonia Vabariik
+territories.MK=Makedoonia
territories.YT=Mayotte
territories.MH=Marshalli Saared
territories.MG=Madagaskar
+territories.ME=Montenegro
territories.MD=Moldova
territories.MC=Monaco
territories.MA=Maroko
territories.YE=Jeemen
territories.LY=Liib\u00fca
territories.LV=L\u00e4ti
+territories.155=L\u00e4\u00e4ne-Euroopa
territories.LU=Luksemburg
+territories.154=P\u00f5hja-Euroopa
territories.LT=Leedu
territories.LS=Lesotho
territories.LR=Libeeria
+territories.151=Ida-Euroopa
+territories.150=Euroopa
territories.LK=Sri Lanka
territories.LI=Liechtenstein
territories.LC=Saint Lucia
territories.LB=Liibanon
-territories.LA=Laose DRV
+territories.LA=Laos
territories.KZ=Kasahstan
-territories.KY=Kaimani saared
+territories.KY=Kaimanisaared
territories.KW=Kuveit
+territories.145=L\u00e4\u00e4ne-Aasia
+territories.143=Kesk-Aasia
+territories.142=Aasia
territories.KR=L\u00f5una-Korea
territories.KP=P\u00f5hja-Korea
territories.KN=Saint Kitts ja Nevis
@@ -228,12 +468,13 @@ territories.JP=Jaapan
territories.JO=Jordaania
territories.JM=Jamaica
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=USA Neitsisaared
territories.VG=Briti Neitsisaared
territories.VE=Venezuela
territories.VC=Saint Vincent ja Grenadiinid
-territories.VA=P\u00fcha Tool (Vatikan)
+territories.VA=Vatikan
territories.IT=Itaalia
territories.IS=Island
territories.IR=Iraan
@@ -242,6 +483,7 @@ territories.UZ=Usbekistan
territories.IO=Briti India ookeani ala
territories.UY=Uruguay
territories.IN=India
+territories.IM=Mani saar
territories.IL=Iisrael
territories.US=Ameerika \u00dchendriigid
territories.IE=Iirimaa
@@ -257,39 +499,503 @@ territories.HN=Honduras
territories.HM=Heard ja McDonald
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=Hongkongi erihalduspiirkond
+territories.HK=Hongkong
territories.TT=Trinidad ja Tobago
territories.TR=T\u00fcrgi
territories.TO=Tonga
territories.TN=Tuneesia
territories.TM=T\u00fcrkmenistan
-languages.ja=Jaapani
-languages.en=Inglise
-languages.tr=T\u00fcrgi
-languages.ko=Korea
-languages.no=Norra
-languages.el=Kreeka
-languages.nl=Hollandi
-languages.bg=Bulgaaria
-languages.lv=L\u00e4ti
-languages.cs=T\u0161ehhi
-languages.he=Heebrea
-languages.it=Itaalia
-languages.lt=Leedu
-languages.fr=Prantsuse
-languages.zh=Hiina
-languages.ru=Vene
-languages.ro=Rumeenia
-languages.fi=Soome
-languages.ar=Araabia
-languages.sv=Rootsi
-languages.pt=Portugali
-languages.pl=Poola
-languages.sl=Sloveeni
-languages.sk=Slovaki
-languages.de=Saksa
-languages.et=Eesti
-languages.hu=Ungari
-languages.es=Hispaania
-languages.da=Taani
-languages.hr=Horvaadi
+languages.gwi=gvit\u0161ini
+languages.akk=akadi
+languages.eka=ekad\u017euki
+languages.ijo=id\u017eo
+languages.xh=koosa
+languages.sux=sumeri
+languages.sus=susu
+languages.mis=\u00fcksikkeeled
+languages.loz=lozi
+languages.tog=t\u0161itonga
+languages.pon=poonpei
+languages.min=minangkabau
+languages.suk=sukuma
+languages.wo=volofi
+languages.lol=mongo
+languages.kut=kutenai
+languages.mic=mikmaki
+languages.wa=vallooni
+languages.kum=kum\u00f5ki
+languages.zap=sapoteegi
+languages.ain=ainu
+languages.cus=muu ku\u0161i keel
+languages.jbo=lojbani
+languages.doi=dogri
+languages.vo=volap\u00fcki
+languages.oto=otomi keel
+languages.vi=vietnami
+languages.vai=vai
+languages.rar=rarotonga
+languages.ve=venda
+languages.rap=rapanui
+languages.raj=rad\u017eastani
+languages.ota=osmanit\u00fcrgi
+languages.nzi=nzima
+languages.nap=napoli
+languages.uz=usbeki
+languages.uga=ugariti
+languages.tmh=tama\u0161eki
+languages.nai=muu P\u00f5hja-Ameerika indiaani
+languages.nah=nahua
+languages.ur=urdu
+languages.fat=fanti
+languages.uk=ukraina
+languages.egy=muinasegiptuse
+languages.zxx=mittekeeleline
+languages.ug=uiguuri
+languages.fan=fangi
+languages.ssa=muu Niiluse-Sahara
+languages.mga=keskiiri
+languages.bat=muu balti
+languages.nyo=njoro
+languages.bas=basa
+languages.nyn=nkole
+languages.nym=njamvesi
+languages.gsw=alemanni
+languages.hmn=hmongi
+languages.ban=bali
+languages.osa=oseid\u017ei
+languages.bal=belut\u0161i
+languages.ty=tahiti
+languages.bai=bamileke keeled
+languages.tw=tvii
+languages.srr=sereri
+languages.tli=tlingiti
+languages.tlh=klingoni
+languages.tt=tatari
+languages.ts=tsonga
+languages.srn=sranani
+languages.bad=banda
+languages.tr=t\u00fcrgi
+languages.to=tonga
+languages.tn=tsvana
+languages.tl=tagalogi
+languages.tk=t\u00fcrkmeeni
+languages.ti=tigrinja
+languages.th=tai
+languages.kru=oraoni
+languages.tg=tad\u017eiki
+languages.byn=bilini
+languages.te=telugu
+languages.kro=kruu
+languages.csb=ka\u0161uubi
+languages.ta=tamiili
+languages.krl=karjala
+languages.tkl=tokelau
+languages.efi=ibibio
+languages.sw=suahiili
+languages.sv=rootsi
+languages.su=sunda
+languages.krc=karat\u0161ai-balkaari
+languages.st=l\u00f5unasotho
+languages.ss=svaasi
+languages.sr=serbia
+languages.sq=albaania
+languages.men=mende
+languages.crp=muud kreool- ja pid\u017einkeeled
+languages.so=somaali
+languages.afh=afrihili
+languages.sn=\u0161ona
+languages.sm=samoa
+languages.sl=sloveeni
+languages.grc=vanakreeka
+languages.sk=slovaki
+languages.grb=grebo
+languages.si=singali
+languages.sh=serbia-horvaadi
+languages.crh=krimmitatari
+languages.afa=muu afroaasia
+languages.sg=sango
+languages.se=p\u00f5hjasaami
+languages.sd=sindhi
+languages.udm=udmurdi
+languages.sc=sardiinia
+languages.sa=sanskriti
+languages.rw=ruanda
+languages.nwc=vananevari
+languages.ru=vene
+languages.mdr=mandari
+languages.ro=rumeenia
+languages.rn=rundi
+languages.rm=retoromaani
+languages.mdf=mok\u0161a
+languages.tiv=tivi
+languages.ady=ad\u00f5gee
+languages.zun=sunji
+languages.kpe=kpelle
+languages.qu=ket\u0161ua
+languages.tig=tigree
+languages.son=songai
+languages.cpp=portugalip\u00f5hjalised kreool/pid\u017einkeeled
+languages.rup=aromuuni
+languages.sog=sogdi
+languages.ada=adangme
+languages.kos=kosrae
+languages.hit=heti
+languages.cpf=muud prantsusp\u00f5hjalised kreool- ja pid\u017einkeeled
+languages.cpe=muud inglisp\u00f5hjalised kreool- ja pid\u017einkeeled
+languages.him=himt\u0161ali
+languages.kok=konkani
+languages.hil=hiligainoni
+languages.got=gooti
+languages.gor=gorontalo
+languages.gon=gondi
+languages.din=dinka
+languages.nub=nuubia keel
+languages.pt=portugali
+languages.ps=pu\u0161tu
+languages.fur=friuuli
+languages.phn=foiniikia
+languages.goh=vana\u00fclemsaksa
+languages.snk=soninke
+languages.cop=kopti
+languages.yap=japi
+languages.ach=akoli
+languages.yao=jao
+languages.phi=flipiini keel
+languages.pl=poola
+languages.ace=at\u0161ehi
+languages.pi=paali
+languages.pa=pand\u017eabi
+languages.bug=bugi
+languages.iba=ibani
+languages.sms=koltasaami
+languages.bua=burjaadi
+languages.mas=masai
+languages.smn=Inari saami
+languages.os=osseedi
+languages.map=austroneesia keeled
+languages.or=oria
+languages.man=malinke
+languages.smj=Lule saami
+languages.smi=muu saami
+languages.mak=makassari
+languages.om=oromo
+languages.mai=maithili
+languages.oj=od\u017eibvei
+languages.mag=magali
+languages.mad=madura
+languages.sma=l\u00f5unasaami
+languages.oc=oksitaani
+languages.nso=pedi
+languages.btk=bataki
+languages.myv=ersa
+languages.dgr=dogribi
+languages.ny=njand\u017ea
+languages.myn=maia keeled
+languages.nv=navaho
+languages.kmb=mbundu
+languages.nr=l\u00f5unandebele
+languages.gmh=kesk\u00fclemsaksa
+languages.no=norra
+languages.nn=norra nynorsk
+languages.nl=hollandi
+languages.ng=ndonga
+languages.sla=slaavi keel
+languages.ne=nepali
+languages.nd=p\u00f5hjandebele
+languages.cmc=t\u0161ami keeled
+languages.tet=tetumi
+languages.nb=norra bokm\u00e5l
+languages.na=nauru
+languages.ter=tereno
+languages.tem=temne
+languages.my=birma
+languages.lez=lesgi
+languages.mt=malta
+languages.frs=idafriisi
+languages.peo=vanap\u00e4rsia
+languages.ms=malai
+languages.frr=p\u00f5hjafriisi
+languages.mr=marathi
+languages.fro=vanaprantsuse
+languages.mo=moldova
+languages.frm=keskprantsuse
+languages.mn=mongoli
+languages.jrb=juudiaraabia
+languages.ml=malajalami
+languages.mk=makedoonia
+languages.mi=maoori
+languages.mh=mar\u0161alli
+languages.mg=malagassi
+languages.nqo=nkoo
+languages.mwr=marvari
+languages.bra=brad\u017ei
+languages.mwl=miranda
+languages.den=sleivi
+languages.lv=l\u00e4ti
+languages.lu=luba
+languages.del=delavari
+languages.lt=leedu
+languages.lo=lao
+languages.ln=lingala
+languages.li=limburgi
+languages.ewo=evondo
+languages.lg=ganda
+languages.lb=letseburgi
+languages.la=ladina
+languages.jpr=juudip\u00e4rsia
+languages.vot=vadja
+languages.sit=hiina-tiibeti keel
+languages.ky=kirgiisi
+languages.kw=korni
+languages.kv=komi
+languages.ku=kurdi
+languages.sio=siuu keel
+languages.ks=ka\u0161miiri
+languages.kr=kanuri
+languages.awa=avadhi
+languages.ko=korea
+languages.kn=kannada
+languages.km=khmeeri
+languages.kl=gr\u00f6\u00f6ni
+languages.kk=kasahhi
+languages.rom=mustlaskeel
+languages.kj=ambo
+languages.sid=sidamo
+languages.ki=kikuju
+languages.kg=kongo
+languages.non=vanap\u00f5hjala
+languages.ka=gruusia
+languages.mus=maskogi
+languages.roa=romaani keel
+languages.nog=nogai
+languages.mun=munda keel
+languages.mul=mitu keelt
+languages.jv=jaava
+languages.gil=kiribati
+languages.znd=zande
+languages.shn=\u0161ani
+languages.fon=foni
+languages.xal=kalm\u00f5ki
+languages.aus=Austraalia keeled
+languages.kho=saki
+languages.ja=jaapani
+languages.khi=muu khoisani
+languages.pau=belau
+languages.chy=\u0161aieeni
+languages.tai=tai keel
+languages.iu=inuktituti
+languages.pap=papiamento
+languages.it=itaalia
+languages.sgn=viipekeel
+languages.is=islandi
+languages.kha=khasi
+languages.chr=t\u0161erokii
+languages.pam=pampanga
+languages.pal=pahlavi
+languages.chp=t\u0161ipevai
+languages.io=ido
+languages.cho=t\u0161okto
+languages.chn=t\u0161inuki \u017eargoon
+languages.chm=mari
+languages.tyv=t\u00f5va
+languages.bnt=bantu
+languages.pag=pangasinani
+languages.ik=injupiaki
+languages.chk=t\u0161uugi
+languages.ii=Sichuani jii
+languages.haw=havai
+languages.lam=lamba
+languages.ig=ibo
+languages.chg=t\u0161agatai
+languages.sga=vanaiiri
+languages.paa=paapua keel
+languages.ie=interlingue
+languages.id=indoneesia
+languages.lah=lahnda
+languages.day=dajaki
+languages.chb=t\u0161ibt\u0161a
+languages.ia=interlingua
+languages.lad=ladiino
+languages.hz=herero
+languages.hai=haida
+languages.dar=dargi
+languages.hy=armeenia
+languages.ath=atapaski keeled
+languages.hu=ungari
+languages.ht=haiti
+languages.dak=siuu
+languages.hr=horvaadi
+languages.ho=motu
+languages.hi=hindi
+languages.dyu=djula
+languages.he=heebrea
+languages.ast=astuuria
+languages.ha=hausa
+languages.wen=sorbi keel
+languages.gv=m\u00e4nksi
+languages.gu=gud\u017earati
+languages.sem=semi keel
+languages.sel=s\u00f6lkupi
+languages.iro=irokeesi keeled
+languages.gn=guaranii
+languages.gl=galeegi
+languages.arw=aravaki
+languages.gez=etioopia
+languages.art=muu tehiskeel
+languages.gd=gaeli
+languages.ira=muu Iraani
+languages.ga=iiri
+languages.arp=arapaho
+languages.arn=araukaani
+languages.fy=l\u00e4\u00e4nefriisi
+languages.bla=siksika
+languages.gem=muu germaani
+languages.ypk=jupiki keel
+languages.arc=aramea
+languages.fr=prantsuse
+languages.fo=f\u00e4\u00e4ri
+languages.cel=muu keldi
+languages.fj=fid\u017ei
+languages.fi=soome
+languages.ff=fulbe
+languages.tvl=tuvalu
+languages.ceb=sebu
+languages.fa=p\u00e4rsia
+languages.zh_Hans=lihtsustatud hiina keel
+languages.zh_Hant=traditsiooniline hiina keel
+languages.eu=baski
+languages.sco=\u0161oti
+languages.et=eesti
+languages.scn=sitsiilia
+languages.es=hispaania
+languages.eo=esperanto
+languages.en=inglise
+languages.el=kreeka
+languages.tut=muu Altai
+languages.niu=niue
+languages.tup=tupii keeled
+languages.ee=eve
+languages.tum=tumbuka
+languages.mos=more
+languages.dz=bhutani
+languages.nic=muu Nigeri-Kordofani
+languages.lus=lu\u0161ei
+languages.fiu=muu soomeugri
+languages.dv=maldiivi
+languages.nia=niasi
+languages.moh=mohoogi
+languages.luo=luo
+languages.lun=lunda
+languages.apa=apat\u0161i keeled
+languages.fil=filipino
+languages.lui=luisenjo
+languages.hup=hupa
+languages.bin=edo
+languages.de=saksa
+languages.lua=lulua
+languages.bik=bikoli
+languages.was=va\u0161o
+languages.und=m\u00e4\u00e4ramata
+languages.war=varai
+languages.da=taani
+languages.dum=keskhollandi
+languages.wal=volamo
+languages.mno=manobo keeled
+languages.wak=vaka\u0161i keel
+languages.sat=santali
+languages.cy=k\u00f5mri
+languages.sas=sasaki
+languages.kbd=kabardi-t\u0161erkessi
+languages.cv=t\u0161uva\u0161i
+languages.cu=kirikuslaavi
+languages.mni=manipuri
+languages.cs=t\u0161ehhi
+languages.sam=Samaaria aramea
+languages.cr=krii
+languages.sal=sali\u0161i keel
+languages.dua=duala
+languages.co=korsika
+languages.sai=L\u00f5una-Ameerika indiaani keel
+languages.mnc=mand\u017eu
+languages.sah=jakuudi
+languages.kaw=kaavi
+languages.inh=ingu\u0161i
+languages.gba=gbaja
+languages.sad=sandave
+languages.ch=t\u0161amorro
+languages.ine=muu indoeuroopa
+languages.bho=bhod\u017epuri
+languages.enm=keskinglise
+languages.kar=kareni
+languages.inc=muu India
+languages.ce=t\u0161et\u0161eeni
+languages.gay=gajo
+languages.ca=katalaani
+languages.umb=umbundu
+languages.syr=s\u00fc\u00fcria
+languages.kam=kamba
+languages.anp=angika
+languages.tsi=t\u0161im\u0161i keeled
+languages.ang=vanainglise
+languages.kac=kat\u0161ini
+languages.cau=muu Kaukaasia
+languages.kab=kabiili
+languages.kaa=karakalpaki
+languages.bs=bosnia
+languages.car=kariibi
+languages.br=bretooni
+languages.bo=tiibeti
+languages.bn=bengali
+languages.bm=bambara
+languages.gaa=gaa
+languages.cai=muu Kesk-Ameerika indiaani
+languages.bi=bislama
+languages.bh=bihaari
+languages.bg=bulgaaria
+languages.be=valgevene
+languages.pt_BR=portugali (Braziilia)
+languages.cad=kado
+languages.ba=ba\u0161kiiri
+languages.zu=suulu
+languages.zen=zenaga
+languages.pro=vanaprovansi
+languages.hsb=\u00fclemsorbi
+languages.az=aserbaid\u017eaani
+languages.ay=aimara
+languages.av=avaari
+languages.as=assami
+languages.dsb=alamsorbi
+languages.ar=araabia
+languages.ilo=iloko
+languages.elx=eelami
+languages.zh=hiina
+languages.an=aragoni
+languages.pra=praakriti keel
+languages.am=amhari
+languages.new=nevari
+languages.ak=akani
+languages.za=t\u0161uangi
+languages.en_US=inglise keel (US)
+languages.af=afrikaani
+languages.ae=avesta
+languages.alt=altai
+languages.ab=abhaasi
+languages.aa=afari
+languages.yo=joruba
+languages.alg=algonkini keeled
+languages.ale=aleuudi
+languages.mkh=muu moni-khmeeri
+languages.yi=jidi\u0161i
+languages.dra=muu draviidi keel
+languages.ber=berberi
+languages.nds=alamsaksa
+languages.bem=bemba
+languages.bej=bed\u017ea
+languages.tpi=uusmelaneesia
+variants.1901=saksa traditsiooniline kirjaviis
+variants.1996=saksa reformitud kirjaviis
+variants.POLYTON=pol\u00fctooniline
+variants.ROZAJ=Resia murre
+variants.NEDIS=Natisone murre
+variants.SAAHO=saho murre
+variants.REVISED=uus kirjaviis
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_eu.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_eu.properties
index c606f78..10e7844 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_eu.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_eu.properties
@@ -7,118 +7,346 @@
decimalSeparator=,
groupingSeparator=.
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
currenciesSymbol.ESP=\u20a7
-shortMonths=urt®ots®mar®api®mai®eka®uzt®abu®ira®urr®aza®abe®®
-months=urtarrila®otsaila®martxoa®apirila®maiatza®ekaina®uztaila®abuztua®iraila®urria®azaroa®abendua®®
-shortWeekdays=®ig®al®as®az®og®or®lr®
-weekdays=®igandea®astelehena®asteartea®asteazkena®osteguna®ostirala®larunbata®
+shortMonths=urt\u00aeots\u00aemar\u00aeapi\u00aemai\u00aeeka\u00aeuzt\u00aeabu\u00aeira\u00aeurr\u00aeaza\u00aeabe\u00ae\u00ae
+months=urtarrila\u00aeotsaila\u00aemartxoa\u00aeapirila\u00aemaiatza\u00aeekaina\u00aeuztaila\u00aeabuztua\u00aeiraila\u00aeurria\u00aeazaroa\u00aeabendua\u00ae\u00ae
+shortWeekdays=\u00aeig\u00aeal\u00aeas\u00aeaz\u00aeog\u00aeor\u00aelr\u00ae
+weekdays=\u00aeigandea\u00aeastelehena\u00aeasteartea\u00aeasteazkena\u00aeosteguna\u00aeostirala\u00aelarunbata\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy-MM-dd
+mediumDateFormat=yyyy-MMM-dd
+longDateFormat=yyyy'eko' MMM'ren' dd'a'
+fullDateFormat=EEEE, yyyy'eko' MMMM'ren' dd'a'
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=Ekialdeko Timor
+territories.TK=Tokelau
+territories.TJ=Tadjikistan
+territories.TH=Tailandia
+territories.TG=Togo
+territories.TF=Frantziaren Lurralde Australak
territories.TD=Txad
+territories.TC=Turk eta Caico uharteak
territories.GW=Ginea-Bissau
-territories.AQ=Antartika
-territories.MZ=Mozambike
-territories.MY=Malasia
-territories.MX=Mexiko
+territories.GS=Hegoaldeko Georgia eta Hegoaldeko Sandwich uharteak
territories.GR=Grezia
-territories.ZA=Hegoafrika
-territories.MV=Maldivak
territories.GQ=Ekuatore Ginea
territories.SZ=Swazilandia
-territories.MU=Maurizio
territories.SY=Siria
territories.GN=Ginea
-territories.AG=Antigua eta Barbuda
-territories.AF=Afganistan
+territories.GM=Gambia
+territories.GL=Groenlandia
territories.ST=Sao Tom\u00e9 eta Principe
-territories.AE=Arabiar Emirrerri Batuak
+territories.GH=Ghana
territories.SR=Surinam
-territories.MK=Mazedonia
-territories.MH=Marshall uharteak
+territories.GG=Guernsey
+territories.GF=Guyana Frantsesa
+territories.GE=Georgia
+territories.SO=Somalia
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=Erresuma Batua
territories.SL=Sierra Leona
-territories.MG=Madagaskar
+territories.GA=Gabon
territories.SK=Eslovakia
+territories.SJ=Svalbard eta Jan Mayen uharteak
territories.SI=Eslovenia
-territories.MD=Moldavia
-territories.MC=Monako
+territories.SH=Saint Helena
territories.SG=Singapur
-territories.MA=Maroko
territories.SE=Suedia
+territories.SD=Sudan
territories.SC=Seychelleak
territories.SB=Salomon uharteak
-territories.LY=Libia
+territories.SA=Saudi Arabia
territories.FR=Frantzia
-territories.LV=Letonia
-territories.LU=Luxenburgo
-territories.LT=Lituania
-territories.RW=Ruanda
+territories.FO=Faroe Uharteak
territories.FM=Mikronesia
+territories.RW=Ruanda
+territories.FK=Malvinak
territories.RU=Errusia
territories.FI=Finlandia
+territories.RS=Serbia
territories.RO=Errumania
-territories.LC=Santa Luzia
-territories.LB=Libano
territories.ET=Etiopia
territories.ES=Espainia
-territories.KR=Hego Korea
-territories.KP=Ipar Korea
-territories.KN=Saint Kitts eta Nevis
+territories.ER=Eritrea
territories.EH=Mendebaldeko Sahara
-territories.KM=Komoreak
territories.EG=Egipto
+territories.EE=Estonia
territories.EC=Ekuador
-territories.KH=Kanbodia
-territories.KG=Kirgizistan
-territories.KE=Kenia
territories.DZ=Aljeria
territories.QA=Katar
-territories.PY=Paraguai
territories.DO=Dominikar Errepublika
+territories.PY=Paraguai
territories.DM=Dominika
territories.DK=Danimarka
-territories.JP=Japonia
territories.DJ=Djibuti
-territories.JO=Jordania
-territories.JM=Jamaika
+territories.PT=Portugal
+territories.PS=Palestina
territories.DE=Alemania
+territories.PM=Saint-Pierre eta Mikelune
territories.PL=Polonia
+territories.PK=Pakistan
territories.PH=Filipinak
territories.PG=Papua Ginea Berria
+territories.PF=Polinesia Frantsesa
territories.CZ=Txekiar errepublika
+territories.PE=Peru
territories.CY=Zipre
+territories.CX=Christmas uhartea
territories.CV=Cabo Verde
territories.CU=Kuba
-territories.VC=Saint Vincent eta Grenadinak
territories.CS=Serbia eta Montenegro
-territories.VA=Vatikano
territories.CO=Kolonbia
-territories.IT=Italia
territories.CN=Txina
-territories.IS=Islandia
territories.CM=Kamerun
territories.CL=Txile
-territories.IQ=Irak
-territories.UY=Uruguai
+territories.CK=Cook uharteak
territories.CI=Boli Kosta
territories.CH=Suitza
territories.CG=Kongo
territories.CF=Afrika Erdiko Errepublika
-territories.US=Ameriketako Estatu Batuak
+territories.CD=Kongoko Errepublika Demokratikoa
+territories.CC=Cocos uharteak
+territories.OM=Oman
territories.CA=Kanada
-territories.IE=Irlanda
territories.BY=Bielorrusia
+territories.BW=Botswana
+territories.BV=Bouvet Uhartea
+territories.BT=Bh2utan
territories.BS=Bahamak
territories.BR=Brasil
-territories.UA=Ukraina
territories.NZ=Zeelanda Berria
-territories.HU=Hungaria
territories.BO=Bolibia
-territories.HR=Kroazia
-territories.TT=Trinidad eta Tobago
-territories.NO=Norvegia
+territories.BJ=Benin
+territories.BI=Burundi
+territories.BG=Bulgaria
+territories.BF=Burkina Faso
+territories.NP=Nepal
territories.BE=Belgika
-territories.TR=Turkia
+territories.NO=Norvegia
+territories.BD=Bangladesh
+territories.ZW=Zimbabwe
territories.NL=Herbehereak
territories.BA=Bosnia-Herzegovina
territories.NI=Nikaragua
-territories.TJ=Tadjikistan
-territories.TH=Tailandia
+territories.NG=Nigeria
+territories.NF=Norfolk uhartea
+territories.AZ=Azerbaijan
+territories.NE=Niger
+territories.AX=Aland Uharteak
+territories.NC=Kaledonia Berria
+territories.ZM=Zambia
+territories.AU=Australia
+territories.NA=Namibia
+territories.AT=Austria
+territories.AS=Samoa Estatubatuarra
+territories.AR=Argentina
+territories.AQ=Antartika
+territories.MZ=Mozambike
+territories.AO=Angola
+territories.MY=Malasia
+territories.AN=Nederlandar Antillak
+territories.MX=Mexiko
+territories.AM=Armenia
+territories.MW=Malawi
+territories.AL=Albania
+territories.MV=Maldivak
+territories.ZA=Hegoafrika
+territories.MU=Maurizio
+territories.MR=Mauritania
+territories.AG=Antigua eta Barbuda
+territories.AF=Afganistan
+territories.MP=Iparraldeko Mariana uharteak
+territories.AE=Arabiar Emirrerri Batuak
+territories.MO=Macau
+territories.MN=Mongolia
+territories.MM=Birmania
+territories.ML=Mali
+territories.MK=Mazedonia
+territories.MH=Marshall uharteak
+territories.MG=Madagaskar
+territories.ME=Montenegro
+territories.MD=Moldavia
+territories.MC=Monako
+territories.MA=Maroko
+territories.YE=Yemen
+territories.LY=Libia
+territories.LV=Letonia
+territories.LU=Luxenburgo
+territories.LT=Lituania
+territories.LS=Lesotho
+territories.LR=Liberia
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Santa Luzia
+territories.LB=Libano
+territories.LA=Laos
+territories.KZ=Kazakhstan
+territories.KY=Kaiman Uharteak
+territories.KR=Hego Korea
+territories.KP=Ipar Korea
+territories.KN=Saint Kitts eta Nevis
+territories.KM=Komoreak
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Kanbodia
+territories.KG=Kirgizistan
+territories.KE=Kenia
+territories.WF=Wallis eta Futuna
+territories.JP=Japonia
+territories.JO=Jordania
+territories.JM=Jamaika
+territories.VU=Vanuatu
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VI=Virginia uharteak (Ameriketako Estatu Batuak)
+territories.VG=Virginia uharteak (Erresuma Batua)
+territories.VE=Venezuela
+territories.VC=Saint Vincent eta Grenadinak
+territories.VA=Vatikano
+territories.IT=Italia
+territories.IS=Islandia
+territories.IR=Iran
+territories.IQ=Irak
+territories.UZ=Uzbekistan
+territories.IO=Indiako Ozeanoko Britainiar Lurraldea
+territories.UY=Uruguai
+territories.IN=India
+territories.IM=Man uhartea
+territories.IL=Israel
+territories.US=Ameriketako Estatu Batuak
+territories.IE=Irlanda
+territories.ID=Indonesia
+territories.UM=Estatu Batuetatik urruti dauden uharte txikiak
+territories.UG=Uganda
+territories.UA=Ukraina
+territories.HU=Hungaria
+territories.HT=Haiti
+territories.HR=Kroazia
+territories.TZ=Tanzania
+territories.HN=Honduras
+territories.HM=Heard eta McDonald Uharteak
+territories.TW=Taiwan
+territories.TV=Tuvalu
+territories.TT=Trinidad eta Tobago
+territories.TR=Turkia
+territories.TO=Tonga
+territories.TN=Tunisia
+territories.TM=Turkmenistan
+languages.es=espainiera
+languages.ku=kurduera
+languages.eo=esperantoa
+languages.en=ingelera
+languages.el=greziera
+languages.ko=koreera
+languages.kn=kannada
+languages.km=khemerera
+languages.ka=georgiera
+languages.zh_Hans=txinera (soildua)
+languages.zh_Hant=txinera (tradizionala)
+languages.jv=javera
+languages.fil=tagalo
+languages.pt=portugalera
+languages.ps=paxtuera
+languages.de=alemanera
+languages.pl=poloniera
+languages.da=daniera
+languages.tlh=klingonera
+languages.ja=japoniera
+languages.vi=vietnamera
+languages.cy={0>welsh<}100{>galesera <0}
+languages.pa=punjabera
+languages.cs=txekiera
+languages.it=italiera
+languages.is=islandiera
+languages.uz=uzbekera
+languages.or=oriya
+languages.ur=urdu
+languages.ca=katalana
+languages.ie=interlingue
+languages.id=indonesiera
+languages.uk=ukrainera
+languages.ia=interlingua
+languages.oc=okzitaniera
+languages.ug=uigurrera
+languages.hy=armeniera
+languages.bs=bosniera
+languages.br=bretoiera
+languages.hu=hungariera
+languages.pt_PT=portugesa (portugal)
+languages.bn=bengalera
+languages.hr=kroaziera
+languages.tw=twia
+languages.bh=biharrera
+languages.bg=bulgariera
+languages.no=norvegiera
+languages.be=bielorrusiera
+languages.nn=norvegiera (nynorsk)
+languages.hi=hindia
+languages.tr=turkiera
+languages.nl=nederlandera
+languages.zu=zuluera
+languages.he=hebreera
+languages.tl=tagalog
+languages.tk=turkmeniera
+languages.ne=nepalera
+languages.az=azerbaijanera
+languages.ti=tigrinya
+languages.th=thailandiera
+languages.en_US=ingelesa (aeb)
+languages.te=telugua
+languages.zh=txinera
+languages.as=assamera
+languages.ar=arabiera
+languages.ta=tamilera
+languages.gu=gujaratera
+languages.am=amharikera
+languages.mt=maltera
+languages.ms=malaysiera
+languages.gn=guaraniera
+languages.sw=swahili
+languages.mr=marathera
+languages.sv=suediera
+languages.gl=galegoa
+languages.su=sundanera
+languages.af=afrikaans
+languages.st=sesothoera
+languages.mn=mongoliera
+languages.sr=serbiera
+languages.sq=albaniera
+languages.ml=malayalamera
+languages.mk=mazedoniera
+languages.so=somaliera
+languages.gd=eskoziar gaelikoa
+languages.sl=esloveniera
+languages.sk=eslovakiera
+languages.ga=gaelikoa
+languages.si=sinhala
+languages.sh=serbokroaziera
+languages.pt_BR=portugesa (brasil)
+languages.yi=yiddishera
+languages.sd=sindhia
+languages.fy=frisiarra
+languages.sa=sanskritoa
+languages.fr=frantsesera
+languages.lv=letoniera
+languages.en_AU=ingelesa (australia)
+languages.lt=lituaniera
+languages.fo=faroera
+languages.ru=errusiera
+languages.lo=laosera
+languages.ln=lingala
+languages.fi=finlandiera
+languages.ro=errumaniera
+languages.fa=pertsiera
+languages.la=latina
+languages.xh=xhosa
+languages.en_GB=ingelesa (erresuma batua)
languages.eu=euskara
+languages.ky=kirgizera
+languages.et=estoniera
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa.properties
index a8a5e36..6c35d15 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa.properties
@@ -6,76 +6,153 @@
# This file was automatically generated by gnu.localegen from CLDR.
percent=\u066a
+perMill=\u2030
exponential=\u00d7\u06f1\u06f0^
+infinity=\u221e
+NaN=NaN
minusSign=\u2212
zeroDigit=\u06f0
decimalSeparator=\u066b
groupingSeparator=\u066c
+digit=#
percentFormat='\u202a'%#,##0'\u202c'
-currencyFormat=#,##0.00 \u00a4;'\u202a'-#,##0.00'\u202c' \u00a4
-currenciesDisplayName.CHF=\u0641\u0631\u0627\u0646\u06a9 \u0633\u0648\u0626\u06cc\u0633
-currenciesDisplayName.AUD=\u062f\u0644\u0627\u0631 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
+currencyFormat=#,##0.00\u00a0\u00a4;'\u202a'-#,##0.00'\u202c'\u00a0\u00a4
+currenciesDisplayName.XCD=\u062f\u0644\u0627\u0631 \u0634\u0631\u0642 \u06a9\u0627\u0631\u0627\u0626\u06cc\u0628
+currenciesDisplayName.LKR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0633\u0631\u06cc\u200c\u0644\u0627\u0646\u06a9\u0627
+currenciesDisplayName.KES=\u0634\u06cc\u0644\u06cc\u0646\u06af \u06a9\u0646\u06cc\u0627
+currenciesDisplayName.BAD=\u062f\u06cc\u0646\u0627\u0631 \u0628\u0648\u0633\u0646\u06cc \u0648 \u0647\u0631\u0632\u06af\u0648\u06cc\u0646
+currenciesDisplayName.BYR=\u0631\u0648\u0628\u0644 \u0628\u06cc\u0644\u0648\u0631\u0648\u0633\u06cc
+currenciesDisplayName.CSD=\u062f\u06cc\u0646\u0627\u0631 \u0642\u062f\u06cc\u0645 \u0635\u0631\u0628\u0633\u062a\u0627\u0646
+currenciesDisplayName.HRD=\u062f\u06cc\u0646\u0627\u0631 \u06a9\u0631\u0648\u0627\u0633\u06cc
+currenciesDisplayName.BMD=\u062f\u0644\u0627\u0631 \u0628\u0631\u0645\u0648\u062f\u0627
+currenciesDisplayName.IEP=\u067e\u0648\u0646\u062f \u0627\u06cc\u0631\u0644\u0646\u062f
+currenciesDisplayName.BSD=\u062f\u0644\u0627\u0631 \u0628\u0627\u0647\u0627\u0645\u0627
+currenciesDisplayName.GRD=\u062f\u0631\u0627\u062e\u0645\u0627\u06cc \u06cc\u0648\u0646\u0627\u0646
+currenciesDisplayName.AMD=\u062f\u0631\u0645 \u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646
+currenciesDisplayName.FRF=\u0641\u0631\u0627\u0646\u06a9 \u0641\u0631\u0627\u0646\u0633\u0647
+currenciesDisplayName.NPR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0646\u067e\u0627\u0644
+currenciesDisplayName.CLP=\u067e\u0632\u0648\u06cc \u0634\u06cc\u0644\u06cc
+currenciesDisplayName.KWD=\u062f\u06cc\u0646\u0627\u0631 \u06a9\u0648\u06cc\u062a
+currenciesDisplayName.SUR=\u0631\u0648\u0628\u0644 \u0634\u0648\u0631\u0648\u06cc
+currenciesDisplayName.AFN=\u0627\u0641\u063a\u0627\u0646\u06cc
+currenciesDisplayName.ZAR=\u0631\u0627\u0646\u062f \u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
+currenciesDisplayName.RUR=\u0631\u0648\u0628\u0644 \u0642\u062f\u06cc\u0645 \u0631\u0648\u0633\u06cc\u0647
+currenciesDisplayName.IQD=\u062f\u06cc\u0646\u0627\u0631 \u0639\u0631\u0627\u0642
+currenciesDisplayName.HKD=\u062f\u0644\u0627\u0631 \u0647\u0646\u06af\u200c\u06a9\u0646\u06af
+currenciesDisplayName.ARS=\u067e\u0632\u0648\u06cc \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646
+currenciesDisplayName.BRL=\u0631\u0626\u0627\u0644 \u0628\u0631\u0632\u06cc\u0644
+currenciesDisplayName.LVR=\u0631\u0648\u0628\u0644 \u0644\u062a\u0648\u0646\u06cc
+currenciesDisplayName.JPY=\u06cc\u0646 \u0698\u0627\u067e\u0646
+currenciesDisplayName.ALL=\u0644\u06a9 \u0622\u0644\u0628\u0627\u0646\u06cc
+currenciesDisplayName.GWP=\u067e\u0632\u0648\u06cc \u06af\u06cc\u0646\u0647\u0654 \u0628\u06cc\u0633\u0627\u0626\u0648
+currenciesDisplayName.ARP=\u067e\u0632\u0648\u06cc \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646 (\u06f1\u06f9\u06f8\u06f3 \u062a\u0627 \u06f1\u06f9\u06f8\u06f5)\u200f
+currenciesDisplayName.IDR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0627\u0646\u062f\u0648\u0646\u0632\u06cc
+currenciesDisplayName.XAU=\u0637\u0644\u0627
+currenciesDisplayName.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc \u0642\u062f\u06cc\u0645
+currenciesDisplayName.DEM=\u0645\u0627\u0631\u06a9 \u0622\u0644\u0645\u0627\u0646
currenciesDisplayName.RUB=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u06cc\u0647
-currenciesDisplayName.SEK=\u06a9\u0631\u0648\u0646 \u0633\u0648\u0626\u062f
+currenciesDisplayName.UZS=\u0633\u0648\u0645 \u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646
+currenciesDisplayName.DKK=\u06a9\u0631\u0648\u0646 \u062f\u0627\u0646\u0645\u0627\u0631\u06a9
+currenciesDisplayName.XAG=\u0646\u0642\u0631\u0647
+currenciesDisplayName.TZS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u062a\u0627\u0646\u0632\u0627\u0646\u06cc\u0627
+currenciesDisplayName.SBD=\u062f\u0644\u0627\u0631 \u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u0646
+currenciesDisplayName.THB=\u0628\u0627\u062a \u062a\u0627\u06cc\u0644\u0646\u062f
+currenciesDisplayName.NOK=\u06a9\u0631\u0648\u0646 \u0646\u0631\u0648\u0698
+currenciesDisplayName.UGX=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0627\u0648\u06af\u0627\u0646\u062f\u0627
currenciesDisplayName.TND=\u062f\u06cc\u0646\u0627\u0631 \u062a\u0648\u0646\u0633
-currenciesDisplayName.BHD=\u062f\u06cc\u0646\u0627\u0631 \u0628\u062d\u0631\u06cc\u0646
-currenciesDisplayName.ATS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0627\u062a\u0631\u06cc\u0634
-currenciesDisplayName.BND=\u062f\u0644\u0627\u0631 \u0628\u0631\u0648\u0646\u0626\u06cc
-currenciesDisplayName.HUF=\u0641\u0648\u0631\u06cc\u0646\u062a \u0645\u062c\u0627\u0631\u0633\u062a\u0627\u0646
-currenciesDisplayName.KWD=\u062f\u06cc\u0646\u0627\u0631 \u06a9\u0648\u06cc\u062a
-currenciesDisplayName.INR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0647\u0646\u062f
-currenciesDisplayName.AED=\u062f\u0631\u0647\u0645 \u0627\u0645\u0627\u0631\u0627\u062a
-currenciesDisplayName.TJS=\u0633\u0627\u0645\u0627\u0646\u06cc \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646
-currenciesDisplayName.TJR=\u0631\u0648\u0628\u0644 \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646
-currenciesDisplayName.AZM=\u0645\u0646\u0627\u062a \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646
-currenciesDisplayName.YER=\u0631\u06cc\u0627\u0644 \u06cc\u0645\u0646
-currenciesDisplayName.CAD=\u062f\u0644\u0627\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627
+currenciesDisplayName.BEF=\u0641\u0631\u0627\u0646\u06a9 \u0628\u0644\u0698\u06cc\u06a9
+currenciesDisplayName.UGS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0642\u062f\u06cc\u0645 \u0627\u0648\u06af\u0627\u0646\u062f\u0627
+currenciesDisplayName.TTD=\u062f\u0644\u0627\u0631 \u062a\u0631\u06cc\u0646\u06cc\u062f\u0627\u062f \u0648 \u062a\u0648\u0628\u0627\u06af\u0648
+currenciesDisplayName.RHD=\u062f\u0644\u0627\u0631 \u0631\u0648\u062f\u0632\u06cc\u0627
+currenciesDisplayName.PHP=\u067e\u0632\u0648\u06cc \u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646
+currenciesDisplayName.AED=\u062f\u0631\u0647\u0645 \u0627\u0645\u0627\u0631\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0639\u0631\u0628\u06cc
currenciesDisplayName.SAR=\u0631\u06cc\u0627\u0644 \u0633\u0639\u0648\u062f\u06cc
+currenciesDisplayName.FJD=\u062f\u0644\u0627\u0631 \u0641\u06cc\u062c\u06cc
+currenciesDisplayName.LUF=\u0641\u0631\u0627\u0646\u06a9 \u0644\u0648\u06a9\u0632\u0627\u0645\u0628\u0648\u0631\u06af
+currenciesDisplayName.XFO=\u0641\u0631\u0627\u0646\u06a9 \u0637\u0644\u0627\u06cc \u0641\u0631\u0627\u0646\u0633\u0647
+currenciesDisplayName.TMM=\u0645\u0646\u0627\u062a \u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646
+currenciesDisplayName.QAR=\u0631\u06cc\u0627\u0644 \u0642\u0637\u0631
+currenciesDisplayName.DJF=\u0641\u0631\u0627\u0646\u06a9 \u062c\u06cc\u0628\u0648\u062a\u06cc
+currenciesDisplayName.XXX=\u0627\u0631\u0632 \u0646\u0627\u0645\u0634\u062e\u0635 \u06cc\u0627 \u0646\u0627\u0645\u0639\u062a\u0628\u0631
+currenciesDisplayName.JOD=\u062f\u06cc\u0646\u0627\u0631 \u0627\u0631\u062f\u0646
currenciesDisplayName.USD=\u062f\u0644\u0627\u0631 \u0627\u0645\u0631\u06cc\u06a9\u0627
-currenciesDisplayName.JPY=\u06cc\u0646 \u0698\u0627\u067e\u0646
-currenciesDisplayName.IQD=\u062f\u06cc\u0646\u0627\u0631 \u0639\u0631\u0627\u0642
-currenciesDisplayName.NOK=\u06a9\u0631\u0648\u0646 \u0646\u0631\u0648\u0698
-currenciesDisplayName.FRF=\u0641\u0631\u0627\u0646\u06a9 \u0641\u0631\u0627\u0646\u0633\u0647
-currenciesDisplayName.GBP=\u067e\u0648\u0646\u062f \u0627\u0633\u062a\u0631\u0644\u06cc\u0646\u06af \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627
-currenciesDisplayName.PKR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u067e\u0627\u06a9\u0633\u062a\u0627\u0646
-currenciesDisplayName.EUR=\u06cc\u0648\u0631\u0648
-currenciesDisplayName.NLG=\u06af\u06cc\u0644\u062f\u0631 \u0647\u0644\u0646\u062f
-currenciesDisplayName.BYR=\u0631\u0648\u0628\u0644 \u0628\u06cc\u0644\u0648\u0631\u0648\u0633\u06cc
currenciesDisplayName.SGD=\u062f\u0644\u0627\u0631 \u0633\u0646\u06af\u0627\u067e\u0648\u0631
-currenciesDisplayName.MXN=\u067e\u0632\u0648\u06cc \u0645\u06a9\u0632\u06cc\u06a9
-currenciesDisplayName.QAR=\u0631\u06cc\u0627\u0644 \u0642\u0637\u0631
-currenciesDisplayName.TRY=\u0644\u06cc\u0631\u0647\u0654 \u062c\u062f\u06cc\u062f \u062a\u0631\u06a9\u06cc\u0647
-currenciesDisplayName.XAU=\u0637\u0644\u0627
-currenciesDisplayName.TRL=\u0644\u06cc\u0631\u0647\u0654 \u062a\u0631\u06a9\u06cc\u0647
-currenciesDisplayName.DEM=\u0645\u0627\u0631\u06a9 \u0622\u0644\u0645\u0627\u0646
+currenciesDisplayName.SYP=\u0644\u06cc\u0631\u0647\u0654 \u0633\u0648\u0631\u06cc\u0647
+currenciesDisplayName.MTP=\u067e\u0648\u0646\u062f \u0645\u0627\u0644\u062a
+currenciesDisplayName.MTL=\u0644\u06cc\u0631\u0647\u0654 \u0645\u0627\u0644\u062a
+currenciesDisplayName.HUF=\u0641\u0648\u0631\u06cc\u0646\u062a \u0645\u062c\u0627\u0631\u0633\u062a\u0627\u0646
+currenciesDisplayName.YER=\u0631\u06cc\u0627\u0644 \u06cc\u0645\u0646
+currenciesDisplayName.TRY=\u0644\u06cc\u0631\u0647\u0654 \u062a\u0631\u06a9\u06cc\u0647
+currenciesDisplayName.NZD=\u062f\u0644\u0627\u0631 \u0632\u0644\u0627\u0646\u062f \u0646\u0648
+currenciesDisplayName.OMR=\u0631\u06cc\u0627\u0644 \u0639\u0645\u0627\u0646
+currenciesDisplayName.RSD=\u062f\u06cc\u0646\u0627\u0631 \u0635\u0631\u0628\u0633\u062a\u0627\u0646
+currenciesDisplayName.EUR=\u06cc\u0648\u0631\u0648
+currenciesDisplayName.INR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u0647\u0646\u062f
+currenciesDisplayName.DOP=\u067e\u0632\u0648\u06cc \u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0627
+currenciesDisplayName.GBP=\u067e\u0648\u0646\u062f \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627
+currenciesDisplayName.NAD=\u062f\u0644\u0627\u0631 \u0646\u0627\u0645\u06cc\u0628\u06cc\u0627
+currenciesDisplayName.COP=\u067e\u0632\u0648\u06cc \u06a9\u0644\u0645\u0628\u06cc\u0627
+currenciesDisplayName.TRL=\u0644\u06cc\u0631\u0647\u0654 \u0642\u062f\u06cc\u0645 \u062a\u0631\u06a9\u06cc\u0647
+currenciesDisplayName.MAF=\u0641\u0631\u0627\u0646\u06a9 \u0645\u0631\u0627\u06a9\u0634
+currenciesDisplayName.ITL=\u0644\u06cc\u0631\u0647\u0654 \u0627\u06cc\u062a\u0627\u0644\u06cc\u0627
+currenciesDisplayName.MAD=\u062f\u0631\u0647\u0645 \u0645\u0631\u0627\u06a9\u0634
+currenciesDisplayName.CUP=\u067e\u0632\u0648\u06cc \u06a9\u0648\u0628\u0627
+currenciesDisplayName.BOP=\u067e\u0632\u0648\u06cc \u0628\u0648\u0644\u06cc\u0648\u06cc
+currenciesDisplayName.MGF=\u0641\u0631\u0627\u0646\u06a9 \u0645\u0627\u062f\u0627\u06af\u0627\u0633\u06a9\u0627\u0631
+currenciesDisplayName.ZWD=\u062f\u0644\u0627\u0631 \u0632\u06cc\u0645\u0628\u0627\u0628\u0648\u0647
currenciesDisplayName.BIF=\u0641\u0631\u0627\u0646\u06a9 \u0628\u0648\u0631\u0648\u0646\u062f\u06cc
-currenciesDisplayName.AFN=\u0627\u0641\u063a\u0627\u0646\u06cc
+currenciesDisplayName.SRG=\u06af\u06cc\u0644\u062f\u0631 \u0633\u0648\u0631\u06cc\u0646\u0627\u0645
+currenciesDisplayName.SRD=\u062f\u0644\u0627\u0631 \u0633\u0648\u0631\u06cc\u0646\u0627\u0645
+currenciesDisplayName.GNF=\u0641\u0631\u0627\u0646\u06a9 \u06af\u06cc\u0646\u0647
+currenciesDisplayName.PLN=\u0632\u0648\u0627\u062a\u06cc \u0644\u0647\u0633\u062a\u0627\u0646
+currenciesDisplayName.CNY=\u06cc\u0648\u0622\u0646 \u0686\u06cc\u0646
+currenciesDisplayName.KMF=\u0641\u0631\u0627\u0646\u06a9 \u06a9\u0648\u0645\u0648\u0631\u0648
+currenciesDisplayName.SEK=\u06a9\u0631\u0648\u0646 \u0633\u0648\u0626\u062f
+currenciesDisplayName.AUD=\u062f\u0644\u0627\u0631 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
+currenciesDisplayName.LYD=\u062f\u06cc\u0646\u0627\u0631 \u0644\u06cc\u0628\u06cc
currenciesDisplayName.XPT=\u067e\u0644\u0627\u062a\u06cc\u0646
-currenciesDisplayName.XAG=\u0646\u0642\u0631\u0647
-currenciesDisplayName.OMR=\u0631\u06cc\u0627\u0644 \u0639\u0645\u0627\u0646
-currenciesDisplayName.DKK=\u06a9\u0631\u0648\u0646 \u062f\u0627\u0646\u0645\u0627\u0631\u06a9
-currenciesDisplayName.IRR=\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646
-currenciesDisplayName.JOD=\u062f\u06cc\u0646\u0627\u0631 \u0627\u0631\u062f\u0646
-currenciesDisplayName.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc \u0642\u062f\u06cc\u0645
+currenciesDisplayName.YDD=\u062f\u06cc\u0646\u0627\u0631 \u06cc\u0645\u0646
+currenciesDisplayName.JMD=\u062f\u0644\u0627\u0631 \u062c\u0627\u0645\u0627\u0626\u06cc\u06a9\u0627
+currenciesDisplayName.KYD=\u062f\u0644\u0627\u0631 \u062c\u0632\u0627\u06cc\u0631 \u06a9\u0650\u06cc\u0645\u0646
+currenciesDisplayName.CHF=\u0641\u0631\u0627\u0646\u06a9 \u0633\u0648\u0626\u06cc\u0633
+currenciesDisplayName.NLG=\u06af\u06cc\u0644\u062f\u0631 \u0647\u0644\u0646\u062f
+currenciesDisplayName.BBD=\u062f\u0644\u0627\u0631 \u0628\u0627\u0631\u0628\u0627\u062f\u0648\u0633
+currenciesDisplayName.MLF=\u0641\u0631\u0627\u0646\u06a9 \u0645\u0627\u0644\u06cc
+currenciesDisplayName.BHD=\u062f\u06cc\u0646\u0627\u0631 \u0628\u062d\u0631\u06cc\u0646
+currenciesDisplayName.PKR=\u0631\u0648\u067e\u06cc\u0647\u0654 \u067e\u0627\u06a9\u0633\u062a\u0627\u0646
+currenciesDisplayName.TWD=\u062f\u0644\u0627\u0631 \u062c\u062f\u06cc\u062f \u062a\u0627\u06cc\u0648\u0627\u0646
+currenciesDisplayName.MXN=\u067e\u0632\u0648\u06cc \u0645\u06a9\u0632\u06cc\u06a9
+currenciesDisplayName.ATS=\u0634\u06cc\u0644\u06cc\u0646\u06af \u0627\u062a\u0631\u06cc\u0634
currenciesDisplayName.XPD=\u067e\u0627\u0644\u0627\u062f\u06cc\u0645
-currenciesSymbol.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc
+currenciesDisplayName.DZD=\u062f\u06cc\u0646\u0627\u0631 \u0627\u0644\u062c\u0632\u0627\u06cc\u0631
+currenciesDisplayName.BND=\u062f\u0644\u0627\u0631 \u0628\u0631\u0648\u0646\u0626\u06cc
+currenciesDisplayName.TJS=\u0633\u0627\u0645\u0627\u0646\u06cc \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646
+currenciesDisplayName.TJR=\u0631\u0648\u0628\u0644 \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646
+currenciesDisplayName.RWF=\u0641\u0631\u0627\u0646\u06a9 \u0631\u0648\u0627\u0646\u062f\u0627
+currenciesDisplayName.AZN=\u0645\u0646\u0627\u062a \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646
+currenciesDisplayName.LRD=\u062f\u0644\u0627\u0631 \u0644\u06cc\u0628\u0631\u06cc\u0627
+currenciesDisplayName.AZM=\u0645\u0646\u0627\u062a \u0642\u062f\u06cc\u0645 \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646
+currenciesDisplayName.BZD=\u062f\u0644\u0627\u0631 \u0628\u0644\u06cc\u0632
+currenciesDisplayName.IRR=\u0631\u06cc\u0627\u0644 \u0627\u06cc\u0631\u0627\u0646
+currenciesDisplayName.GYD=\u062f\u0644\u0627\u0631 \u06af\u0648\u06cc\u0627\u0646
+currenciesDisplayName.CAD=\u062f\u0644\u0627\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627
+currenciesDisplayName.SDD=\u062f\u06cc\u0646\u0627\u0631 \u0642\u062f\u06cc\u0645 \u0633\u0648\u062f\u0627\u0646
currenciesSymbol.IRR=\ufdfc
-currenciesSymbol.AFN=\u0627\u0641\u063a\u0627\u0646\u06cc
-shortMonths=®®®®®®®®®®®®®
-months=\u0698\u0627\u0646\u0648\u06cc\u0647®\u0641\u0648\u0631\u06cc\u0647®\u0645\u0627\u0631\u0633®\u0622\u0648\u0631\u06cc\u0644®\u0645\u0647®\u0698\u0648\u0626\u0646®\u0698\u0648\u0626\u06cc\u0647®\u0627\u0648\u062a®\u0633\u067e\u062a\u0627\u0645\u0628\u0631®\u0627\u06a9\u062a\u0628\u0631®\u0646\u0648\u0627\u0645\u0628\u0631®\u062f\u0633\u0627\u0645\u0628\u0631®®
-shortWeekdays=®®®®®®®®
-weekdays=®\u06cc\u06a9\u0634\u0646\u0628\u0647®\u062f\u0648\u0634\u0646\u0628\u0647®\u0633\u0647\u200c\u0634\u0646\u0628\u0647®\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647®\u067e\u0646\u062c\u0634\u0646\u0628\u0647®\u062c\u0645\u0639\u0647®\u0634\u0646\u0628\u0647®
-eras=\u0642.\u0645.®\u0645.®
-ampms=\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631®\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631®
-shortDateFormat=yy/M/d G
+shortMonths=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u0698\u0627\u0646\u0648\u06cc\u0647\u00ae\u0641\u0648\u0631\u06cc\u0647\u00ae\u0645\u0627\u0631\u0633\u00ae\u0622\u0648\u0631\u06cc\u0644\u00ae\u0645\u0647\u00ae\u0698\u0648\u0626\u0646\u00ae\u0698\u0648\u0626\u06cc\u0647\u00ae\u0627\u0648\u062a\u00ae\u0633\u067e\u062a\u0627\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0628\u0631\u00ae\u0646\u0648\u0627\u0645\u0628\u0631\u00ae\u062f\u0633\u0627\u0645\u0628\u0631\u00ae\u00ae
+shortWeekdays=\u00ae\u06cc\u06a9\u0634\u0646\u0628\u0647\u00ae\u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u0633\u0647\u200c\u0634\u0646\u0628\u0647\u00ae\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647\u00ae\u067e\u0646\u062c\u0634\u0646\u0628\u0647\u00ae\u062c\u0645\u0639\u0647\u00ae\u0634\u0646\u0628\u0647\u00ae
+weekdays=\u00ae\u06cc\u06a9\u0634\u0646\u0628\u0647\u00ae\u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u0633\u0647\u200c\u0634\u0646\u0628\u0647\u00ae\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647\u00ae\u067e\u0646\u062c\u0634\u0646\u0628\u0647\u00ae\u062c\u0645\u0639\u0647\u00ae\u0634\u0646\u0628\u0647\u00ae
+eras=\u0642.\u0645.\u00ae\u0645.\u00ae
+ampms=\u0642\u0628\u0644 \u0627\u0632 \u0638\u0647\u0631\u00ae\u0628\u0639\u062f \u0627\u0632 \u0638\u0647\u0631\u00ae
+shortDateFormat=yy/M/d
mediumDateFormat=yyyy/M/d
longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE d MMMM yyyy G
+fullDateFormat=EEEE d MMMM yyyy GGGG
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ss (zz)
+longTimeFormat=H:mm:ss (zzzz)
fullTimeFormat=H:mm:ss (zzzz)
-zoneStrings=Asia/Tehran®IRST®\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0627\u06cc\u0631\u0627\u0646®IRDT®\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u06cc\u0631\u0627\u0646®©
+zoneStrings=Europe_Central\u00ae\u0648\u0642\u062a \u0645\u0631\u06a9\u0632 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0631\u06a9\u0632 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u00a9Africa_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u063a\u0631\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u00a9Urumqi\u00ae\u0648\u0642\u062a \u0627\u0631\u0648\u0645\u0686\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Irkutsk\u00ae\u0648\u0642\u062a \u0627\u06cc\u0631\u06a9\u0648\u062a\u0633\u06a9\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u06cc\u0631\u06a9\u0648\u062a\u0633\u06a9\u00ae\u00ae\u00a9Papua_New_Guinea\u00ae\u0648\u0642\u062a \u067e\u0627\u067e\u0648\u0627 \u06af\u06cc\u0646\u0647\u0654 \u0646\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0634\u0631\u0642 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0634\u0631\u0642 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u00a9Kazakhstan_Western\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u063a\u0631\u0628 \u0642\u0632\u0627\u0642\u0633\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Bangladesh\u00ae\u0648\u0642\u062a \u0628\u0646\u06af\u0644\u0627\u062f\u0634\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00ae\u0648\u0642\u062a \u0645\u0627\u0644\u062f\u06cc\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00ae\u0648\u0642\u062a \u0633\u0645\u0631\u0642\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0633\u0645\u0631\u0642\u0646\u062f\u00ae\u00ae\u00a9Indian_Ocean\u00ae\u0648\u0642\u062a \u0627\u0642\u06cc\u0627\u0646\u0648\u0633 \u0647\u0646\u062f\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00ae\u0648\u0642\u062a \u0641\u06cc\u062c\u06cc\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0641\u06cc\u062c\u06cc\u00ae\u00ae\u00a9Singapore\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0633\u0646\u06af\u0627\u067e\u0648\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00ae\u0648\u0642\u062a \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u00ae\u00ae\u00a9Amazon\u00ae\u0648\u0642\u062a \u0622\u0645\u0627\u0632\u0648\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0622\u0645\u0627\u0632\u0648\u0646\u00ae\u00ae\u00a9Arabian\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0639\u0631\u0628\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0639\u0631\u0628\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Alaska\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0622\u0644\u0627\u0633\u06a9\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0622\u0644\u0627\u0633\u06a9\u0627\u00ae\u00ae\u00a9Dutch_Guiana\u00ae\u0648\u0642\u062a \u06af\u0648\u06cc\u0627\u0646 \u0647\u0644\u0646\u062f\u00ae\u00ae\u00ae\u00ae\u00a9Easter\u00ae\u0648\u0642\u062a \u062c\u0632\u06cc\u0631\u0647\u0654 \u0627\u06cc\u0633\u062a\u0631\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062c\u0632\u06cc\u0631\u0647\u0654 \u0627\u06cc\u0633\u062a\u0631\u00ae\u00ae\u00a9Hong_Kong\u00ae\u0648\u0642\u062a \u0647\u0646\u06af\u200c\u06a9\u0646\u06af\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0647\u0646\u06af\u200c\u06a9\u0646\u06af\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u0648\u0642\u062a \u0634\u0631\u0642 \u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00ae\u0648\u0642\u062a \u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9America_Pacific\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u063a\u0631\u0628 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u063a\u0631\u0628 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u00a9Tajikistan\u00ae\u0648\u0642\u062a \u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00ae\u0648\u0642\u062a \u06af\u0648\u06cc\u0627\u0646 \u0641\u0631\u0627\u0646\u0633\u0647\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00ae\u0648\u0642\u062a \u0646\u067e\u0627\u0644\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u0648\u0642\u062a \u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u00ae\u00a9Yerevan\u00ae\u0648\u0642\u062a \u0627\u06cc\u0631\u0648\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u06cc\u0631\u0648\u0627\u0646\u00ae\u00ae\u00a9Paraguay\u00ae\u0648\u0642\u062a \u067e\u0627\u0631\u0627\u06af\u0648\u0626\u0647\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u067e\u0627\u0631\u0627\u06af\u0648\u0626\u0647\u00ae\u00ae\u00a9Seychelles\u00ae\u0648\u0642\u062a \u0633\u06cc\u0634\u0644\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0627\u0633\u0631\u0627\u0626\u06cc\u0644\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u0633\u0631\u0627\u0626\u06cc\u0644\u00ae\u00ae\u00a9Cocos\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9\u0648\u0633\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u063a\u0631\u0628 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0648\u0642\u062a \u0634\u0631\u0642 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0634\u0631\u0642 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u00a9North_Mariana\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u06cc\u0627\u0646\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Western\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u063a\u0631\u0628 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u063a\u0631\u0628 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u00a9Moscow\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0645\u0633\u06a9\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0633\u06a9\u0648\u00ae\u00ae\u00a9Kyrgystan\u00ae\u0648\u0642\u062a \u0642\u0631\u0642\u06cc\u0632\u0633\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00ae\u0648\u0642\u062a \u0648\u0646\u0632\u0648\u0626\u0644\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Peru\u00ae\u0648\u0642\u062a \u067e\u0631\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u067e\u0631\u0648\u00ae\u00ae\u00a9Christmas\u00ae\u0648\u0642\u062a \u062c\u0632\u06cc\u0631\u0647\u0654 \u06a9\u0631\u06cc\u0633\u0645\u0633\u00ae\u00ae\u00ae\u00ae\u00a9South_Georgia\u00ae\u0648\u0642\u062a \u062c\u0648\u0631\u062c\u06cc\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u06a9\u0631\u0647\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06a9\u0631\u0647\u00ae\u00ae\u00a9Argentina_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0648\u0642\u062a \u0634\u0631\u0642 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00ae\u0648\u0642\u062a \u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Atlantic\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0622\u062a\u0644\u0627\u0646\u062a\u06cc\u06a9\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0622\u062a\u0644\u0627\u0646\u062a\u06cc\u06a9\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0622\u0644\u0627\u0633\u06a9\u0627\u2010\u0647\u0627\u0648\u0627\u0626\u06cc\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0622\u0644\u0627\u0633\u06a9\u0627\u2010\u0647\u0627\u0648\u0627\u0626\u06cc\u00ae\u00ae\u00a9Uzbekistan\u00ae\u0648\u0642\u062a \u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Cape_Verde\u00ae\u0648\u0642\u062a \u06a9\u06cc\u067e \u0648\u0631\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06a9\u06cc\u067e \u0648\u0631\u062f\u00ae\u00ae\u00a9Tbilisi\u00ae\u0648\u0642\u062a \u062a\u0641\u0644\u06cc\u0633\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062a\u0641\u0644\u06cc\u0633\u00ae\u00ae\u00a9Malaysia\u00ae\u0648\u0642\u062a \u0645\u0627\u0644\u0632\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0634\u0631\u0642 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0634\u0631\u0642 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u00a9Baku\u00ae\u0648\u0642\u062a \u0628\u0627\u06a9\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0628\u0627\u06a9\u0648\u00ae\u00ae\u00a9Davis\u00ae\u0648\u0642\u062a \u062f\u06cc\u0648\u06cc\u0633\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00ae\u0648\u0642\u062a \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Samoa\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0633\u0627\u0645\u0648\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Palau\u00ae\u0648\u0642\u062a \u067e\u0627\u0644\u0627\u0626\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00ae\u0648\u0642\u062a \u0627\u06a9\u0648\u0627\u062f\u0648\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Western\u00ae\u0648\u0642\u062a \u063a\u0631\u0628 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u063a\u0631\u0628 \u0627\u0631\u0648\u067e\u0627\u00ae\u00ae\u00a9Africa_Central\u00ae\u0648\u0642\u062a \u0645\u0631\u06a9\u0632 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u0648\u0642\u062a \u062a\u0631\u06a9\u06cc\u0647\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062a\u0631\u06a9\u06cc\u0647\u00ae\u00ae\u00a9Africa_Southern\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u062c\u0646\u0648\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00ae\u0648\u0642\u062a \u0639\u0634\u0642\u200c\u0622\u0628\u0627\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0639\u0634\u0642\u200c\u0622\u0628\u0627\u062f\u00ae\u00ae\u00a9Bering\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0628\u0631\u06cc\u0646\u06af\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0628\u0631\u06cc\u0646\u06af\u00ae\u00ae\u00a9Guam\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u06af\u0648\u0627\u0645\u00ae\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u0634\u0627\u0644\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00ae\u0648\u0642\u062a \u0628\u0648\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00ae\u0648\u0642\u062a \u06a9\u0631\u0627\u0686\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00ae\u0648\u0642\u062a \u062a\u0627\u0634\u06a9\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062a\u0627\u0634\u06a9\u0646\u062f\u00ae\u00ae\u00a9Nauru\u00ae\u0648\u0642\u062a \u0646\u0627\u0626\u0648\u0631\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Tuvalu\u00ae\u0648\u0642\u062a \u062a\u0648\u0648\u0627\u0644\u0648\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00ae\u0648\u0642\u062a \u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u00ae\u00ae\u00a9East_Timor\u00ae\u0648\u0642\u062a \u062a\u06cc\u0645\u0648\u0631 \u0634\u0631\u0642\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00ae\u0648\u0642\u062a \u06cc\u0627\u06a9\u0648\u062a\u0633\u06a9\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06cc\u0627\u06a9\u0648\u062a\u0633\u06a9\u00ae\u00ae\u00a9Iran\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0627\u06cc\u0631\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u06cc\u0631\u0627\u0646\u00ae\u00ae\u00a9Argentina\u00ae\u0648\u0642\u062a \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646\u00ae\u00ae\u00a9Tonga\u00ae\u0648\u0642\u062a \u062a\u0648\u0646\u06af\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062a\u0648\u0646\u06af\u0627\u00ae\u00ae\u00a9New_Zealand\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0632\u0644\u0627\u0646\u062f \u0646\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0632\u0644\u0627\u0646\u062f \u0646\u0648\u00ae\u00ae\u00a9China\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0686\u06cc\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0686\u06cc\u0646\u00ae\u00ae\u00a9Indonesia_Central\u00ae\u0648\u0642\u062a \u0645\u0631\u06a9\u0632 \u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u06a9\u0648\u0647\u0633\u062a\u0627\u0646\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06a9\u0648\u0647\u0633\u062a\u0627\u0646\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u00a9India\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0647\u0646\u062f\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00ae\u0648\u0642\u062a \u0633\u0648\u0631\u06cc\u0646\u0627\u0645\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00ae\u0648\u0642\u062a \u06af\u0631\u06cc\u0646\u0648\u06cc\u0686\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0644\u06a9\u0644\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0644\u06a9\u0644\u0646\u062f\u00ae\u00ae\u00a9Indochina\u00ae\u0648\u0642\u062a \u0647\u0646\u062f\u0648\u0686\u06cc\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00ae\u0648\u0642\u062a \u062c\u0632\u06cc\u0631\u0647\u0654 \u0648\u06cc\u06a9\u00ae\u00ae\u00ae\u00ae\u00a9Uruguay\u00ae\u0648\u0642\u062a \u0627\u0631\u0648\u06af\u0648\u0626\u0647\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0627\u0631\u0648\u06af\u0648\u0626\u0647\u00ae\u00ae\u00a9Chile\u00ae\u0648\u0642\u062a \u0634\u06cc\u0644\u06cc\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0634\u06cc\u0644\u06cc\u00ae\u00ae\u00a9Vanuatu\u00ae\u0648\u0642\u062a \u0648\u0627\u0646\u0627\u062a\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0648\u0627\u0646\u0627\u062a\u0648\u00ae\u00ae\u00a9Brasilia\u00ae\u0648\u0642\u062a \u0628\u0631\u0627\u0632\u06cc\u0644\u06cc\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0628\u0631\u0627\u0632\u06cc\u0644\u06cc\u0627\u00ae\u00ae\u00a9Tahiti\u00ae\u0648\u0642\u062a \u062a\u0627\u0647\u06cc\u062a\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0634\u0631\u0642 \u0642\u0632\u0627\u0642\u0633\u062a\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0645\u0631\u06a9\u0632 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0631\u06a9\u0632 \u0627\u0645\u0631\u06cc\u06a9\u0627\u00ae\u00ae\u00a9Lanka\u00ae\u0648\u0642\u062a \u0644\u0627\u0646\u06a9\u0627\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u0648\u0642\u062a \u0634\u0631\u0642 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0634\u0631\u0642 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u00a9Japan\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0698\u0627\u067e\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0698\u0627\u067e\u0646\u00ae\u00ae\u00a9Greenland_Central\u00ae\u0648\u0642\u062a \u0645\u0631\u06a9\u0632 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0631\u06a9\u0632 \u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f\u00ae\u00ae\u00a9Pakistan\u00ae\u0648\u0642\u062a \u067e\u0627\u06a9\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u067e\u0627\u06a9\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Bolivia\u00ae\u0648\u0642\u062a \u0628\u0648\u0644\u06cc\u0648\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00ae\u0648\u0642\u062a \u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00ae\u0648\u0642\u062a \u06a9\u0627\u0634\u063a\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u0645\u0631\u06a9\u0632 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0631\u06a9\u0632 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u00ae\u00ae\u00a9Guyana\u00ae\u0648\u0642\u062a \u06af\u0648\u06cc\u0627\u0646\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u0648\u0642\u062a \u06af\u0631\u062c\u0633\u062a\u0627\u0646\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06af\u0631\u062c\u0633\u062a\u0627\u0646\u00ae\u00ae\u00a9Colombia\u00ae\u0648\u0642\u062a \u06a9\u0644\u0645\u0628\u06cc\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06a9\u0644\u0645\u0628\u06cc\u0627\u00ae\u00ae\u00a9Galapagos\u00ae\u0648\u0642\u062a \u06af\u0627\u0644\u0627\u067e\u0627\u06af\u0648\u0633\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00ae\u0648\u0642\u062a \u0639\u0627\u062f\u06cc \u06a9\u0648\u0628\u0627\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u06a9\u0648\u0628\u0627\u00ae\u00ae\u00a9Myanmar\u00ae\u0648\u0642\u062a \u0645\u06cc\u0627\u0646\u0645\u0627\u0631\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00ae\u0648\u0642\u062a \u0645\u0627\u06a9\u0627\u0626\u0648\u00ae\u00ae\u0648\u0642\u062a \u062a\u0627\u0628\u0633\u062a\u0627\u0646\u06cc \u0645\u0627\u06a9\u0627\u0626\u0648\u00ae\u00ae\u00a9
territories.TL=\u062a\u06cc\u0645\u0648\u0631 \u0634\u0631\u0642\u06cc
territories.TK=\u062a\u0648\u06a9\u0644\u0627\u0626\u0648
territories.TJ=\u062a\u0627\u062c\u06cc\u06a9\u0633\u062a\u0627\u0646
@@ -98,11 +175,13 @@ territories.GN=\u06af\u06cc\u0646\u0647
territories.GM=\u06af\u0627\u0645\u0628\u06cc\u0627
territories.GL=\u06af\u0631\u0648\u0626\u0646\u0644\u0646\u062f
territories.SV=\u0627\u0644\u0633\u0627\u0644\u0648\u0627\u062f\u0648\u0631
-territories.SU=\u0627\u062a\u062d\u0627\u062f \u062c\u0645\u0627\u0647\u06cc\u0631 \u0633\u0648\u0633\u06cc\u0627\u0644\u06cc\u0633\u062a\u06cc \u0634\u0648\u0631\u0648\u06cc
+territories.062=\u062c\u0646\u0648\u0628 \u0622\u0633\u06cc\u0627 \u0648 \u0622\u0633\u06cc\u0627\u06cc \u0645\u06cc\u0627\u0646\u0647
territories.ST=\u0633\u0627\u0626\u0648 \u062a\u0648\u0645\u0647 \u0648 \u067e\u0631\u06cc\u0646\u0633\u06cc\u067e\u0647
territories.GI=\u06af\u06cc\u0628\u0631\u0627\u0644\u062a\u0627\u0631
+territories.061=\u067e\u0644\u06cc\u200c\u0646\u0632\u06cc
territories.GH=\u063a\u0646\u0627
territories.SR=\u0633\u0648\u0631\u06cc\u0646\u0627\u0645
+territories.GG=\u06af\u0648\u0631\u0646\u0633\u06cc
territories.GF=\u06af\u0648\u06cc\u0627\u0646 \u0641\u0631\u0627\u0646\u0633\u0647
territories.GE=\u06af\u0631\u062c\u0633\u062a\u0627\u0646
territories.SO=\u0633\u0648\u0645\u0627\u0644\u06cc
@@ -124,33 +203,40 @@ territories.SB=\u062c\u0632\u0627\u06cc\u0631 \u0633\u0644\u06cc\u0645\u0627\u06
territories.SA=\u0639\u0631\u0628\u0633\u062a\u0627\u0646 \u0633\u0639\u0648\u062f\u06cc
territories.FR=\u0641\u0631\u0627\u0646\u0633\u0647
territories.FO=\u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0631\u0648
+territories.057=\u0646\u0627\u062d\u06cc\u0647\u0654 \u0645\u06cc\u06a9\u0631\u0648\u0646\u0632\u06cc
territories.FM=\u0645\u06cc\u06a9\u0631\u0648\u0646\u0632\u06cc
territories.RW=\u0631\u0648\u0627\u0646\u062f\u0627
-territories.053=\u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627 \u0648 \u0632\u0644\u0627\u0646\u062f \u0646\u0648
+territories.054=\u0645\u0644\u0627\u0646\u0632\u06cc
territories.FK=\u062c\u0632\u0627\u06cc\u0631 \u0641\u0627\u0644\u06a9\u0644\u0646\u062f
+territories.053=\u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627 \u0648 \u0632\u0644\u0627\u0646\u062f \u0646\u0648
territories.RU=\u0631\u0648\u0633\u06cc\u0647
territories.FJ=\u0641\u06cc\u062c\u06cc
territories.FI=\u0641\u0646\u0644\u0627\u0646\u062f
+territories.RS=\u0635\u0631\u0628\u0633\u062a\u0627\u0646
territories.RO=\u0631\u0648\u0645\u0627\u0646\u06cc
territories.RE=\u0631\u06cc\u0648\u0646\u06cc\u0648\u0646
territories.ET=\u0627\u062a\u06cc\u0648\u067e\u06cc
territories.ES=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627
territories.ER=\u0627\u0631\u06cc\u062a\u0631\u0647
+territories.QU=\u0627\u062a\u062d\u0627\u062f\u06cc\u0647\u0654 \u0627\u0631\u0648\u067e\u0627
territories.EH=\u0635\u062d\u0631\u0627\u06cc \u063a\u0631\u0628\u06cc
territories.EG=\u0645\u0635\u0631
territories.EE=\u0627\u0633\u062a\u0648\u0646\u06cc
+territories.QO=\u0627\u0642\u06cc\u0627\u0646\u0648\u0633\u06cc\u0647\u0654 \u062f\u0648\u0631\u062f\u0633\u062a
territories.EC=\u0627\u06a9\u0648\u0627\u062f\u0631
territories.DZ=\u0627\u0644\u062c\u0632\u0627\u06cc\u0631
territories.QA=\u0642\u0637\u0631
territories.039=\u062c\u0646\u0648\u0628 \u0627\u0631\u0648\u067e\u0627
territories.DO=\u062c\u0645\u0647\u0648\u0631\u06cc \u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0646
territories.PY=\u067e\u0627\u0631\u0627\u06af\u0648\u0626\u0647
+territories.DM=\u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9
territories.035=\u062c\u0646\u0648\u0628 \u0634\u0631\u0642\u06cc \u0622\u0633\u06cc\u0627
-territories.DM=\u062f\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0627
territories.PW=\u067e\u0627\u0644\u0627\u0626\u0648
+territories.034=\u062c\u0646\u0648\u0628 \u0622\u0633\u06cc\u0627
territories.DK=\u062f\u0627\u0646\u0645\u0627\u0631\u06a9
territories.DJ=\u062c\u06cc\u0628\u0648\u062a\u06cc
territories.PT=\u067e\u0631\u062a\u063a\u0627\u0644
+territories.PS=\u0641\u0644\u0633\u0637\u06cc\u0646
territories.030=\u0634\u0631\u0642 \u0622\u0633\u06cc\u0627
territories.PR=\u067e\u0648\u0631\u062a\u0648 \u0631\u06cc\u06a9\u0648
territories.DE=\u0622\u0644\u0645\u0627\u0646
@@ -168,7 +254,7 @@ territories.CX=\u062c\u0632\u06cc\u0631\u0647\u0654 \u06a9\u0631\u06cc\u0633\u06
territories.CV=\u06a9\u06cc\u067e \u0648\u0631\u062f
territories.PA=\u067e\u0627\u0646\u0627\u0645\u0627
territories.CU=\u06a9\u0648\u0628\u0627
-territories.CS=\u0635\u0631\u0628\u0633\u062a\u0627\u0646
+territories.CS=\u0635\u0631\u0628\u0633\u062a\u0627\u0646 \u0648 \u0645\u0648\u0646\u062a\u0647\u200c\u0646\u06af\u0631\u0648
territories.CR=\u06a9\u0627\u0633\u062a\u0627\u0631\u06cc\u06a9\u0627
territories.029=\u06a9\u0627\u0631\u0627\u0626\u06cc\u0628
territories.CO=\u06a9\u0644\u0645\u0628\u06cc\u0627
@@ -176,12 +262,12 @@ territories.CN=\u0686\u06cc\u0646
territories.CM=\u06a9\u0627\u0645\u0631\u0648\u0646
territories.CL=\u0634\u06cc\u0644\u06cc
territories.CK=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9
-territories.CI=\u0633\u0627\u062d\u0644 \u0639\u0627\u062c
territories.021=\u0634\u0645\u0627\u0644 \u0627\u0645\u0631\u06cc\u06a9\u0627
+territories.CI=\u0633\u0627\u062d\u0644 \u0639\u0627\u062c
territories.CH=\u0633\u0648\u0626\u06cc\u0633
-territories.CG=\u06a9\u0648\u0646\u06af\u0648
+territories.CG=\u06a9\u0646\u06af\u0648 \u0628\u0631\u0627\u0632\u0648\u06cc\u0644
territories.CF=\u062c\u0645\u0647\u0648\u0631\u06cc \u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc
-territories.CD=\u062c\u0645\u0647\u0648\u0631\u06cc \u062f\u0645\u0648\u06a9\u0631\u0627\u062a\u06cc\u06a9 \u06a9\u0646\u06af\u0648
+territories.CD=\u06a9\u0646\u06af\u0648 \u06a9\u06cc\u0646\u0634\u0627\u0633\u0627
territories.CC=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0648\u06a9\u0648\u0633
territories.OM=\u0639\u0645\u0627\u0646
territories.CA=\u06a9\u0627\u0646\u0627\u062f\u0627
@@ -196,23 +282,26 @@ territories.BR=\u0628\u0631\u0632\u06cc\u0644
territories.019=\u0627\u0645\u0631\u06cc\u06a9\u0627
territories.018=\u062c\u0646\u0648\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627
territories.NZ=\u0632\u0644\u0627\u0646\u062f \u0646\u0648
-territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc
territories.017=\u0645\u0631\u06a9\u0632 \u0627\u0641\u0631\u06cc\u0642\u0627
+territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc
territories.BN=\u0628\u0631\u0648\u0646\u0626\u06cc
-territories.BM=\u0628\u0631\u0645\u0648\u062f\u0627
territories.015=\u0634\u0645\u0627\u0644 \u0627\u0641\u0631\u06cc\u0642\u0627
+territories.BM=\u0628\u0631\u0645\u0648\u062f\u0627
territories.014=\u0634\u0631\u0642 \u0627\u0641\u0631\u06cc\u0642\u0627
+territories.BL=\u0633\u0646\u062a \u0628\u0627\u0631\u062a\u0644\u06cc\u0645\u06cc
territories.013=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc
territories.NU=\u0646\u06cc\u0648\u0626\u0647
territories.BJ=\u0628\u0646\u06cc\u0646
-territories.BI=\u0628\u0648\u0631\u0648\u0646\u062f\u06cc
territories.011=\u063a\u0631\u0628 \u0627\u0641\u0631\u06cc\u0642\u0627
+territories.BI=\u0628\u0648\u0631\u0648\u0646\u062f\u06cc
+territories.172=\u06a9\u0634\u0648\u0631\u0647\u0627\u06cc \u0645\u0633\u062a\u0642\u0644 \u0645\u0634\u062a\u0631\u06a9\u200c\u0627\u0644\u0645\u0646\u0627\u0641\u0639
territories.BH=\u0628\u062d\u0631\u06cc\u0646
territories.NR=\u0646\u0627\u0626\u0648\u0631\u0648
territories.BG=\u0628\u0644\u063a\u0627\u0631\u0633\u062a\u0627\u0646
territories.BF=\u0628\u0648\u0631\u06a9\u06cc\u0646\u0627\u0641\u0627\u0633\u0648
territories.NP=\u0646\u067e\u0627\u0644
territories.BE=\u0628\u0644\u0698\u06cc\u06a9
+territories.ZZ=\u0646\u0627\u062d\u06cc\u0647\u0654 \u0646\u0627\u0645\u0634\u062e\u0635 \u06cc\u0627 \u0646\u0627\u0645\u0639\u062a\u0628\u0631
territories.NO=\u0646\u0631\u0648\u0698
territories.BD=\u0628\u0646\u06af\u0644\u0627\u062f\u0634
territories.BB=\u0628\u0627\u0631\u0628\u0627\u062f\u0648\u0633
@@ -224,6 +313,7 @@ territories.NG=\u0646\u06cc\u062c\u0631\u06cc\u0647
territories.NF=\u062c\u0632\u06cc\u0631\u0647\u0654 \u0646\u0648\u0631\u0641\u0648\u0644\u06a9
territories.AZ=\u062c\u0645\u0647\u0648\u0631\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646
territories.NE=\u0646\u06cc\u062c\u0631
+territories.AX=\u062c\u0632\u0627\u06cc\u0631 \u0622\u0644\u0627\u0646\u062f
territories.NC=\u06a9\u0627\u0644\u062f\u0648\u0646\u06cc\u0627\u06cc \u062c\u062f\u06cc\u062f
territories.AW=\u0622\u0631\u0648\u0628\u0627
territories.ZM=\u0632\u0627\u0645\u0628\u06cc\u0627
@@ -232,15 +322,15 @@ territories.AU=\u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
territories.AT=\u0627\u062a\u0631\u06cc\u0634
territories.AS=\u0633\u0627\u0645\u0648\u0627\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627
territories.AR=\u0622\u0631\u0698\u0627\u0646\u062a\u06cc\u0646
-territories.009=\u0627\u0642\u06cc\u0627\u0646\u0648\u0633\u06cc\u0647
territories.AQ=\u062c\u0646\u0648\u0628\u06af\u0627\u0646
+territories.009=\u0627\u0642\u06cc\u0627\u0646\u0648\u0633\u06cc\u0647
territories.MZ=\u0645\u0648\u0632\u0627\u0645\u0628\u06cc\u06a9
territories.AO=\u0622\u0646\u06af\u0648\u0644\u0627
territories.MY=\u0645\u0627\u0644\u0632\u06cc
territories.AN=\u0622\u0646\u062a\u06cc\u0644 \u0647\u0644\u0646\u062f
territories.MX=\u0645\u06a9\u0632\u06cc\u06a9
-territories.005=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
territories.AM=\u0627\u0631\u0645\u0646\u0633\u062a\u0627\u0646
+territories.005=\u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
territories.MW=\u0645\u0627\u0644\u0627\u0648\u06cc
territories.AL=\u0622\u0644\u0628\u0627\u0646\u06cc
territories.MV=\u0645\u0627\u0644\u062f\u06cc\u0648
@@ -249,8 +339,8 @@ territories.ZA=\u0627\u0641\u0631\u06cc\u0642\u0627\u06cc \u062c\u0646\u0648\u06
territories.MU=\u0645\u0648\u0631\u06cc\u062a\u06cc\u0648\u0633
territories.002=\u0627\u0641\u0631\u06cc\u0642\u0627
territories.MT=\u0645\u0627\u0644\u062a
-territories.001=\u062c\u0647\u0627\u0646
territories.AI=\u0622\u0646\u06af\u06cc\u0644
+territories.001=\u062c\u0647\u0627\u0646
territories.MS=\u0645\u0648\u0646\u062a\u200c\u0633\u0631\u0627\u062a
territories.MR=\u0645\u0648\u0631\u06cc\u062a\u0627\u0646\u06cc
territories.AG=\u0622\u0646\u062a\u06cc\u06af\u0648\u0627 \u0648 \u0628\u0627\u0631\u0628\u0648\u062f\u0627
@@ -258,7 +348,7 @@ territories.MQ=\u0645\u0627\u0631\u062a\u06cc\u0646\u06cc\u06a9
territories.AF=\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646
territories.MP=\u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u06cc\u0627\u0646\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc
territories.AE=\u0627\u0645\u0627\u0631\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0639\u0631\u0628\u06cc
-territories.MO=\u0645\u0627\u06a9\u0627\u0626\u0648\u060c \u0646\u0627\u062d\u06cc\u0647\u0654 \u0648\u06cc\u0698\u0647\u0654 \u062d\u06a9\u0648\u0645\u062a\u06cc \u0686\u06cc\u0646
+territories.MO=\u0645\u0627\u06a9\u0627\u0626\u0648
territories.AD=\u0622\u0646\u062f\u0648\u0631\u0627
territories.MN=\u0645\u063a\u0648\u0644\u0633\u062a\u0627\u0646
territories.MM=\u0645\u06cc\u0627\u0646\u0645\u0627\u0631
@@ -267,6 +357,8 @@ territories.MK=\u0645\u0642\u062f\u0648\u0646\u06cc\u0647
territories.YT=\u0645\u0627\u06cc\u0648\u062a
territories.MH=\u062c\u0632\u0627\u06cc\u0631 \u0645\u0627\u0631\u0634\u0627\u0644
territories.MG=\u0645\u0627\u062f\u0627\u06af\u0627\u0633\u06a9\u0627\u0631
+territories.MF=\u0633\u0646\u062a \u0645\u0627\u0631\u062a\u06cc\u0646
+territories.ME=\u0645\u0648\u0646\u062a\u0647\u200c\u0646\u06af\u0631\u0648
territories.MD=\u0645\u0648\u0644\u062f\u0648\u0648\u0627
territories.MC=\u0645\u0648\u0646\u0627\u06a9\u0648
territories.MA=\u0645\u0631\u0627\u06a9\u0634
@@ -290,6 +382,7 @@ territories.KZ=\u0642\u0632\u0627\u0642\u0633\u062a\u0627\u0646
territories.KY=\u062c\u0632\u0627\u06cc\u0631 \u06a9\u0650\u06cc\u0645\u0646
territories.KW=\u06a9\u0648\u06cc\u062a
territories.145=\u063a\u0631\u0628 \u0622\u0633\u06cc\u0627
+territories.143=\u0622\u0633\u06cc\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc
territories.142=\u0622\u0633\u06cc\u0627
territories.KR=\u06a9\u0631\u0647\u0654 \u062c\u0646\u0648\u0628\u06cc
territories.KP=\u06a9\u0631\u0647\u0654 \u0634\u0645\u0627\u0644\u06cc
@@ -305,9 +398,10 @@ territories.JP=\u0698\u0627\u067e\u0646
territories.JO=\u0627\u0631\u062f\u0646
territories.JM=\u062c\u0627\u0645\u0627\u0626\u06cc\u06a9\u0627
territories.VU=\u0648\u0627\u0646\u0648\u0627\u062a\u0648
+territories.JE=\u062c\u0631\u0633\u06cc
territories.VN=\u0648\u06cc\u062a\u0646\u0627\u0645
territories.VI=\u062c\u0632\u0627\u06cc\u0631 \u0648\u06cc\u0631\u062c\u06cc\u0646 \u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647
-territories.VG=\u062c\u0632\u0627\u06cc\u0631 \u0648\u06cc\u0631\u062c\u06cc\u0646 \u0627\u0646\u06af\u0644\u0633\u062a\u0627\u0646
+territories.VG=\u062c\u0632\u0627\u06cc\u0631 \u0648\u06cc\u0631\u062c\u06cc\u0646 \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627
territories.VE=\u0648\u0646\u0632\u0648\u0626\u0644\u0627
territories.VC=\u0633\u0646\u062a \u0648\u06cc\u0646\u0633\u0646\u062a \u0648 \u06af\u0631\u0646\u0627\u062f\u06cc\u0646
territories.VA=\u0648\u0627\u062a\u06cc\u06a9\u0627\u0646
@@ -319,6 +413,7 @@ territories.UZ=\u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646
territories.IO=\u0645\u0633\u062a\u0639\u0645\u0631\u0647\u200c\u0647\u0627\u06cc \u0627\u0646\u06af\u0644\u0633\u062a\u0627\u0646 \u062f\u0631 \u0627\u0642\u06cc\u0627\u0646\u0648\u0633 \u0647\u0646\u062f
territories.UY=\u0627\u0648\u0631\u0648\u06af\u0648\u0626\u0647
territories.IN=\u0647\u0646\u062f
+territories.IM=\u062c\u0632\u06cc\u0631\u06c0 \u0645\u0631\u062f
territories.IL=\u0627\u0633\u0631\u0627\u0626\u06cc\u0644
territories.US=\u0627\u06cc\u0627\u0644\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0627\u0645\u0631\u06cc\u06a9\u0627
territories.IE=\u0627\u06cc\u0631\u0644\u0646\u062f
@@ -334,59 +429,76 @@ territories.HN=\u0647\u0646\u062f\u0648\u0631\u0627\u0633
territories.HM=\u062c\u0632\u06cc\u0631\u0647\u0654 \u0647\u0631\u062f \u0648 \u062c\u0632\u0627\u06cc\u0631 \u0645\u06a9\u200c\u062f\u0648\u0646\u0627\u0644\u062f
territories.TW=\u062a\u0627\u06cc\u0648\u0627\u0646
territories.TV=\u062a\u0648\u0648\u0627\u0644\u0648
-territories.HK=\u0647\u0646\u06af\u200c\u06a9\u0646\u06af\u060c \u0646\u0627\u062d\u06cc\u0647\u0654 \u0648\u06cc\u0698\u0647\u0654 \u062d\u06a9\u0648\u0645\u062a\u06cc \u0686\u06cc\u0646
+territories.HK=\u0647\u0646\u06af\u200c\u06a9\u0646\u06af
territories.TT=\u062a\u0631\u06cc\u0646\u06cc\u062f\u0627\u062f \u0648 \u062a\u0648\u0628\u0627\u06af\u0648
territories.TR=\u062a\u0631\u06a9\u06cc\u0647
territories.TO=\u062a\u0648\u0646\u06af\u0627
territories.TN=\u062a\u0648\u0646\u0633
territories.TM=\u062a\u0631\u06a9\u0645\u0646\u0633\u062a\u0627\u0646
+languages.gwi=\u06af\u0648\u06cc\u0686 \u0627\u06cc\u0646
languages.akk=\u0622\u06a9\u062f\u06cc
+languages.eka=\u0627\u06a9\u0627\u062c\u0648\u06a9
languages.ijo=\u0627\u06cc\u062c\u0648\u06cc\u06cc
languages.xh=\u062e\u0648\u0633\u0627\u06cc\u06cc
languages.sux=\u0633\u0648\u0645\u0631\u06cc
languages.sus=\u0633\u0648\u0633\u0648\u06cc\u06cc
-languages.mis=\u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u062a\u0641\u0631\u0642\u0647
+languages.mis=\u0632\u0628\u0627\u0646 \u0645\u062a\u0641\u0631\u0642\u0647
languages.loz=\u0644\u0648\u0632\u06cc\u0627\u06cc\u06cc
-languages.tog=\u062a\u0648\u0646\u06af\u0627\u06cc\u06cc (\u0646\u06cc\u0627\u0633\u0627)
+languages.tog=\u062a\u0648\u0646\u06af\u0627\u06cc\u06cc \u0646\u06cc\u0627\u0633\u0627
+languages.zbl=\u0632\u0628\u0627\u0646 \u0633\u0645\u0628\u0644\u06cc\u06a9 \u0628\u0644\u06cc\u0633
+languages.pon=\u067e\u0645\u067e\u0626\u06cc
languages.min=\u0645\u06cc\u0646\u0627\u0646\u06af\u200c\u06a9\u0627\u0628\u0648\u06cc\u06cc
languages.suk=\u0633\u0648\u06a9\u0648\u0645\u0627\u06cc\u06cc
languages.wo=\u0648\u0644\u0648\u0641\u06cc
languages.lol=\u0645\u0648\u0646\u06af\u0648\u06cc\u06cc
+languages.kut=\u06a9\u0648\u062a\u0646\u06cc
languages.mic=\u0645\u06cc\u06a9\u0645\u0627\u06a9\u06cc
languages.wa=\u0648\u0627\u0644\u0648\u0646\u06cc
languages.kum=\u06a9\u0648\u0645\u06cc\u06a9\u06cc
languages.zap=\u0632\u0627\u067e\u0648\u062a\u06a9\u06cc
-languages.cus=\u06a9\u0648\u0634\u06cc (\u062f\u06cc\u06af\u0631)
+languages.ain=\u0622\u06cc\u0646\u0648
+languages.cus=\u0632\u0628\u0627\u0646 \u06a9\u0648\u0634\u06cc
+languages.jbo=\u0644\u0648\u062c\u0628\u0627\u0646
+languages.doi=\u062f\u0648\u06af\u0631\u06cc
+languages.zza=\u0632\u0627\u0632\u0627\u06cc\u06cc
languages.vo=\u0648\u0644\u0627\u067e\u0648\u06a9
-languages.oto=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0627\u062a\u0648\u0645\u06cc\u0627\u06cc\u06cc
+languages.oto=\u0632\u0628\u0627\u0646 \u0627\u062a\u0648\u0645\u06cc\u0627\u06cc\u06cc
languages.vi=\u0648\u06cc\u062a\u0646\u0627\u0645\u06cc
languages.vai=\u0648\u06cc\u0627\u06cc\u06cc
languages.rar=\u0631\u0627\u0631\u0648\u062a\u0648\u0646\u06af\u0627\u06cc\u06cc
languages.ve=\u0648\u0646\u062f\u0627\u06cc\u06cc
+languages.rap=\u0631\u0627\u067e\u0627\u0646\u0648\u06cc\u06cc
languages.raj=\u0631\u0627\u062c\u0633\u062a\u0627\u0646\u06cc
languages.ota=\u062a\u0631\u06a9\u06cc \u0639\u062b\u0645\u0627\u0646\u06cc
+languages.nzi=\u0646\u0632\u06cc\u0645\u0627\u06cc\u06cc
languages.nap=\u0646\u0627\u067e\u0644\u06cc
languages.uz=\u0627\u0632\u0628\u06a9\u06cc
+languages.uga=\u0627\u0648\u06af\u0627\u0631\u06cc\u062a\u06cc
languages.tmh=\u062a\u0627\u0645\u0627\u0634\u0642\u06cc
-languages.nai=\u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc (\u062f\u06cc\u06af\u0631)
+languages.nai=\u0632\u0628\u0627\u0646 \u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc
languages.nah=\u0646\u0627\u0648\u0627\u062a\u0644\u06cc
languages.ur=\u0627\u0631\u062f\u0648
languages.fat=\u0641\u0627\u0646\u062a\u06cc\u0627\u06cc\u06cc
languages.uk=\u0627\u0648\u06a9\u0631\u0627\u06cc\u0646\u06cc
-languages.egy=\u0645\u0635\u0631\u06cc (\u06a9\u0647\u0646)
+languages.egy=\u0645\u0635\u0631\u06cc \u06a9\u0647\u0646
+languages.zxx=\u0628\u062f\u0648\u0646 \u0645\u062d\u062a\u0648\u0627\u06cc \u0632\u0628\u0627\u0646 \u0634\u062a\u0627\u0633\u06cc
languages.ug=\u0627\u0648\u06cc\u063a\u0648\u0631\u06cc
languages.fan=\u0641\u0627\u0646\u06a9\u06cc
-languages.ssa=\u0646\u06cc\u0644\u06cc \u0648 \u0635\u062d\u0631\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
-languages.bat=\u0628\u0627\u0644\u062a\u06cc\u06a9\u06cc (\u062f\u06cc\u06af\u0631)
+languages.ssa=\u0632\u0628\u0627\u0646 \u0646\u06cc\u0644\u06cc \u0648 \u0635\u062d\u0631\u0627\u06cc\u06cc
languages.mga=\u0627\u06cc\u0631\u0644\u0646\u062f\u06cc \u0645\u06cc\u0627\u0646\u0647
-languages.bas=\u0628\u0627\u0633\u0627\u06cc\u06cc
+languages.bat=\u0632\u0628\u0627\u0646 \u0628\u0627\u0644\u062a\u06cc\u06a9\u06cc
languages.nyo=\u0646\u06cc\u0648\u0631\u0648\u06cc\u06cc
+languages.bas=\u0628\u0627\u0633\u0627\u06cc\u06cc
languages.nyn=\u0646\u06cc\u0627\u0646\u06a9\u0648\u0644\u0647\u200c\u0627\u06cc
+languages.nym=\u0646\u06cc\u0627\u0645\u0648\u0633\u06cc
+languages.gsw=\u0622\u0644\u0645\u0627\u0646\u06cc \u0633\u0648\u0626\u06cc\u0633\u06cc
+languages.hmn=\u0647\u0645\u0648\u0646\u06af
languages.ban=\u0628\u0627\u0644\u06cc\u0627\u06cc\u06cc
languages.osa=\u0627\u0648\u0633\u06cc\u062c\u06cc
languages.bal=\u0628\u0644\u0648\u0686\u06cc
languages.ty=\u062a\u0627\u0647\u06cc\u062a\u06cc\u0627\u06cc\u06cc
-languages.tw=\u062a\u0648\u06cc\u200c\u06cc\u0627\u06cc\u06cc
+languages.bai=\u0632\u0628\u0627\u0646 \u0628\u0627\u0645\u06cc\u0644\u06a9
+languages.tw=\u062a\u0648\u0627\u06cc
languages.srr=\u0633\u0631\u06cc\u0631\u06cc
languages.tli=\u062a\u0644\u06cc\u0646\u200c\u06af\u06cc\u062a\u06cc
languages.tlh=\u06a9\u0644\u06cc\u0646\u06af\u0648\u0646
@@ -402,21 +514,26 @@ languages.ti=\u062a\u06cc\u06af\u0631\u06cc\u0646\u06cc\u0627\u06cc\u06cc
languages.th=\u062a\u0627\u06cc\u0644\u0646\u062f\u06cc
languages.kru=\u06a9\u0648\u0631\u0648\u062e\u06cc
languages.tg=\u062a\u0627\u062c\u06cc\u06a9\u06cc
+languages.byn=\u0628\u0644\u06cc\u0646
languages.te=\u062a\u0644\u0648\u06af\u0648\u06cc\u06cc
-languages.csb=\u06a9\u0627\u0634\u0648\u0628\u06cc
languages.kro=\u06a9\u0631\u0648\u06cc\u06cc
+languages.csb=\u06a9\u0627\u0634\u0648\u0628\u06cc
languages.ta=\u062a\u0627\u0645\u06cc\u0644\u06cc
+languages.krl=\u06a9\u0627\u0631\u0644\u06cc\u0627\u0646
+languages.tkl=\u062a\u0648\u06a9\u0644\u0648\u06cc
languages.efi=\u0627\u0641\u06cc\u06a9\u06cc
-languages.sw=\u0633\u0648\u0627\u062d\u0644\u06cc
+languages.sw=\u0633\u0648\u0627\u062d\u064a\u0644\u06cc
languages.sv=\u0633\u0648\u0626\u062f\u06cc
languages.su=\u0633\u0648\u0646\u062f\u0627\u06cc\u06cc
languages.krc=\u0642\u0631\u0647\u200c\u0686\u0627\u06cc\u06cc\u2010\u0628\u0627\u0644\u06a9\u0627\u0631\u06cc
languages.st=\u0633\u0648\u062a\u0648\u06cc\u06cc \u062c\u0646\u0648\u0628\u06cc
+languages.ss=\u0633\u0648\u0633\u0648\u06cc\u06cc
languages.sr=\u0635\u0631\u0628\u06cc
languages.sq=\u0622\u0644\u0628\u0627\u0646\u06cc\u0627\u06cc\u06cc
languages.men=\u0645\u0646\u062f\u0647\u200c\u0627\u06cc
-languages.crp=\u06a9\u0631\u06cc\u0648\u0644\u200c\u0647\u0627 \u0648 \u067e\u06cc\u062c\u06cc\u0646\u200c\u0647\u0627 (\u062f\u06cc\u06af\u0631)
+languages.crp=\u06a9\u0631\u06cc\u0648\u0644 \u06cc\u0627 \u067e\u06cc\u062c\u06cc\u0646
languages.so=\u0633\u0648\u0645\u0627\u0644\u06cc\u0627\u06cc\u06cc
+languages.afh=\u0622\u0641\u0631\u06cc\u0647\u06cc\u0644\u06cc
languages.sn=\u0634\u0648\u0646\u0627\u06cc\u06cc
languages.sm=\u0633\u0627\u0645\u0648\u0622\u06cc\u06cc
languages.sl=\u0627\u0633\u0644\u0648\u0648\u06cc\u0646\u06cc\u0627\u06cc\u06cc
@@ -425,9 +542,10 @@ languages.sk=\u0627\u0633\u0644\u0648\u0627\u06a9\u06cc
languages.grb=\u06af\u0631\u06cc\u0628\u0648\u06cc\u06cc
languages.si=\u0633\u06cc\u0646\u0647\u0627\u0644\u06cc
languages.sh=\u0635\u0631\u0628 \u0648 \u06a9\u0631\u0648\u0627\u062a\u06cc
-languages.afa=\u0627\u0641\u0631\u06cc\u0642\u0627 \u0648 \u0622\u0633\u06cc\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
-languages.crh=\u062a\u0631\u06a9\u06cc \u06a9\u0631\u06cc\u0645\u0647\u061b \u062a\u0627\u062a\u0627\u0631\u06cc \u06a9\u0631\u06cc\u0645\u0647
+languages.crh=\u062a\u0631\u06a9\u06cc \u06a9\u0631\u06cc\u0645\u0647
+languages.afa=\u0632\u0628\u0627\u0646 \u0627\u0641\u0631\u06cc\u0642\u0627 \u0648 \u0622\u0633\u06cc\u0627\u06cc\u06cc
languages.sg=\u0633\u0627\u0646\u06af\u0648\u06cc\u06cc
+languages.se=\u0633\u0627\u0645\u06cc \u0634\u0645\u0627\u0644\u06cc
languages.sd=\u0633\u0646\u062f\u06cc
languages.udm=\u0627\u0648\u062f\u0645\u0648\u0631\u062a\u06cc
languages.sc=\u0633\u0627\u0631\u062f\u06cc\u0646\u06cc\u0627\u06cc\u06cc
@@ -435,26 +553,33 @@ languages.sa=\u0633\u0646\u0633\u06a9\u0631\u06cc\u062a
languages.rw=\u06a9\u06cc\u0646\u06cc\u0627\u0631\u0648\u0627\u0646\u062f\u0627\u06cc\u06cc
languages.nwc=\u0646\u0648\u0627\u0631\u06cc\u0627\u06cc\u06cc \u06a9\u0644\u0627\u0633\u06cc\u06a9
languages.ru=\u0631\u0648\u0633\u06cc
+languages.mdr=\u0645\u0627\u0646\u062f\u0627\u0631
languages.ro=\u0631\u0648\u0645\u0627\u0646\u06cc\u0627\u06cc\u06cc
languages.rn=\u0631\u0648\u0646\u062f\u06cc\u0627\u06cc\u06cc
languages.rm=\u0631\u062a\u0648\u2010\u0631\u0648\u0645\u06cc\u0627\u06cc\u06cc
+languages.fr_CH=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u0633\u0648\u0626\u06cc\u0633
languages.mdf=\u0645\u06a9\u0634\u0627\u06cc\u06cc
languages.tiv=\u062a\u06cc\u0648\u06cc
+languages.fr_CA=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u06a9\u0627\u0646\u0627\u062f\u0627
languages.ady=\u0622\u062f\u06cc\u062c\u06cc\u0627\u06cc\u06cc
languages.zun=\u0632\u0648\u0646\u06cc\u0627\u06cc\u06cc
languages.kpe=\u06a9\u067e\u0644\u0647\u200c\u0627\u06cc
languages.qu=\u06a9\u0686\u0648\u0627\u06cc\u06cc
languages.tig=\u062a\u06cc\u06af\u0631\u0647\u200c\u0627\u06cc
languages.son=\u0633\u0648\u0646\u063a\u0627\u06cc\u06cc
-languages.cpp=\u06a9\u0631\u06cc\u0648\u0644\u200c\u0647\u0627 \u0648 \u067e\u06cc\u062c\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u067e\u0631\u062a\u063a\u0627\u0644\u06cc (\u062f\u06cc\u06af\u0631)
+languages.cpp=\u06a9\u0631\u06cc\u0648\u0644 \u06cc\u0627 \u067e\u06cc\u062c\u06cc\u0646 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u067e\u0631\u062a\u063a\u0627\u0644\u06cc
+languages.rup=\u0622\u0631\u0648\u0645\u0627\u0646\u06cc\u0646
languages.sog=\u0633\u063a\u062f\u06cc
languages.ada=\u0622\u062f\u0627\u0646\u06af\u0645\u0647\u200c\u0627\u06cc
-languages.cpf=\u06a9\u0631\u06cc\u0648\u0644\u200c\u0647\u0627 \u0648 \u067e\u06cc\u062c\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0641\u0631\u0627\u0646\u0633\u0648\u06cc (\u062f\u06cc\u06af\u0631)
+languages.kos=\u06a9\u0648\u0633\u0631\u0627 \u0626\u0646
languages.hit=\u0647\u06cc\u062a\u06cc
-languages.cpe=\u06a9\u0631\u06cc\u0648\u0644\u200c\u0647\u0627 \u0648 \u067e\u06cc\u062c\u06cc\u0646\u200c\u0647\u0627\u06cc \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc (\u062f\u06cc\u06af\u0631)
-languages.got=\u06af\u0648\u062a\u06cc\u06a9
-languages.hil=\u0647\u06cc\u0644\u06cc\u200c\u06af\u0627\u06cc\u0646\u0648\u0646\u06cc
+languages.cpf=\u06a9\u0631\u06cc\u0648\u0644 \u06cc\u0627 \u067e\u06cc\u062c\u06cc\u0646 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0641\u0631\u0627\u0646\u0633\u0648\u06cc
+languages.cpe=\u06a9\u0631\u06cc\u0648\u0644 \u06cc\u0627 \u067e\u06cc\u062c\u06cc\u0646 \u0645\u0628\u062a\u0646\u06cc \u0628\u0631 \u0627\u0646\u06af\u0644\u06cc\u0633\u06cc
+languages.him=\u0647\u06cc\u0645\u0627\u0686\u0627\u0644\u06cc
languages.kok=\u06a9\u0646\u06a9\u0627\u0646\u06cc
+languages.hil=\u0647\u06cc\u0644\u06cc\u200c\u06af\u0627\u06cc\u0646\u0648\u0646\u06cc
+languages.got=\u06af\u0627\u062a\u06cc\u06a9
+languages.gor=\u06af\u0648\u0631\u0648\u0646\u062a\u0627\u0644\u0648
languages.gon=\u06af\u0648\u0646\u062f\u06cc
languages.din=\u062f\u06cc\u0646\u06a9\u0627\u06cc\u06cc
languages.nub=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0646\u0648\u0628\u06cc\u0627\u06cc\u06cc
@@ -462,53 +587,72 @@ languages.pt=\u067e\u0631\u062a\u063a\u0627\u0644\u06cc
languages.ps=\u067e\u0634\u062a\u0648
languages.fur=\u0641\u0631\u06cc\u0648\u0644\u06cc\u0627\u06cc\u06cc
languages.phn=\u0641\u0646\u06cc\u0642\u06cc
+languages.de_CH=\u0622\u0644\u0645\u0627\u0646\u06cc \u0639\u0644\u06cc\u0627\u06cc \u0633\u0648\u0626\u06cc\u0633
languages.goh=\u0622\u0644\u0645\u0627\u0646\u06cc \u0639\u0644\u06cc\u0627\u06cc \u0628\u0627\u0633\u062a\u0627\u0646
languages.snk=\u0633\u0648\u0646\u06cc\u0646\u06a9\u0647\u200c\u0627\u06cc
languages.cop=\u0642\u0628\u0637\u06cc
languages.yap=\u06cc\u0627\u067e\u06cc
languages.ach=\u0622\u0686\u0648\u0644\u06cc\u0627\u06cc\u06cc
languages.yao=\u06cc\u0627\u0626\u0648\u06cc\u06cc
-languages.phi=\u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u06cc (\u062f\u06cc\u06af\u0631)
+languages.phi=\u0632\u0628\u0627\u0646 \u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u06cc
languages.pl=\u0644\u0647\u0633\u062a\u0627\u0646\u06cc
languages.ace=\u0622\u0686\u0626\u06cc
languages.pi=\u067e\u0627\u0644\u06cc
+languages.pt_PT=\u067e\u0631\u062a\u063a\u0627\u0644\u064a
languages.pa=\u067e\u0646\u062c\u0627\u0628\u06cc
languages.bug=\u0628\u0648\u06af\u06cc\u0627\u06cc\u06cc
+languages.iba=\u0622\u06cc\u0628\u0646
+languages.sms=\u0633\u0627\u0645\u06cc \u0627\u0633\u06a9\u0627\u0644\u062a
languages.bua=\u0628\u0648\u0631\u06cc\u0627\u062a\u06cc
languages.mas=\u0645\u0627\u0633\u0627\u06cc\u06cc
+languages.smn=\u0633\u0627\u0645\u06cc \u0627\u06cc\u0646\u0627\u0631\u06cc
languages.os=\u0622\u0633\u06cc
-languages.map=\u0622\u0633\u062a\u0631\u0648\u0646\u06cc\u0632\u06cc\u0627\u06cc\u06cc\u200c (\u062f\u06cc\u06af\u0631)
+languages.map=\u0622\u0633\u062a\u0631\u0648\u0646\u06cc\u0632\u06cc\u0627\u06cc\u06cc
languages.or=\u0627\u0648\u0631\u06cc\u0647\u200c\u0627\u06cc
languages.man=\u0645\u0627\u0646\u062f\u06cc\u0646\u06af\u0648\u06cc\u06cc
+languages.smj=\u0633\u0627\u0645\u06cc \u0644\u0648\u0644
+languages.smi=\u0632\u0628\u0627\u0646 \u0633\u0627\u0645\u06cc
+languages.mak=\u0645\u0627\u06a9\u0627\u0633\u0627\u0631
+languages.om=\u0627\u0648\u0631\u0648\u0645\u0648\u06cc\u06cc
languages.mai=\u0645\u0627\u06cc\u062f\u06cc\u0644\u06cc
languages.oj=\u0627\u0648\u062c\u06cc\u0628\u0648\u0627\u06cc\u06cc
languages.mag=\u0645\u0627\u06af\u0627\u0647\u06cc\u0627\u06cc\u06cc
languages.mad=\u0645\u0627\u062f\u0648\u0631\u0627\u06cc\u06cc
-languages.btk=\u0628\u0627\u062a\u0627\u06a9\u06cc
+languages.sma=\u0633\u0627\u0645\u06cc \u062c\u0646\u0648\u0628\u06cc
+languages.oc=\u0627\u0648\u06a9\u06cc\u062a\u0627\u06cc\u06cc
languages.nso=\u0633\u0648\u062a\u0648\u06cc\u06cc \u0634\u0645\u0627\u0644\u06cc
+languages.btk=\u0628\u0627\u062a\u0627\u06a9\u06cc
languages.myv=\u0627\u0631\u0632\u06cc\u0627\u06cc\u06cc
-languages.ny=\u0646\u06cc\u0627\u0646\u062c\u0627\u06cc\u06cc\u061b \u0686\u0648\u0627\u06cc\u06cc
-languages.myn=\u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0645\u0627\u06cc\u0627\u06cc\u06cc\u06a9
+languages.es_ES=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc \u0627\u0633\u067e\u0627\u0646\u06cc\u0627
+languages.de_AT=\u0622\u0644\u0645\u0627\u0646\u06cc \u0627\u062a\u0631\u06cc\u0634
+languages.dgr=\u062f\u0648\u06af\u0631\u06cc\u0628
+languages.ny=\u0646\u06cc\u0627\u0646\u062c\u0627\u06cc\u06cc
+languages.myn=\u0632\u0628\u0627\u0646 \u0645\u0627\u06cc\u0627\u06cc\u06cc
languages.nv=\u0646\u0627\u0648\u0627\u0647\u0648\u06cc\u06cc
languages.kmb=\u06a9\u06cc\u0645\u0628\u0648\u0646\u062f\u0648\u06cc\u06cc
languages.nr=\u0627\u0646\u062f\u0647\u200c\u0628\u0644\u0647\u200c\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
languages.gmh=\u0622\u0644\u0645\u0627\u0646\u06cc \u0639\u0644\u06cc\u0627\u06cc \u0645\u06cc\u0627\u0646\u0647
languages.no=\u0646\u0631\u0648\u0698\u06cc
-languages.nn=\u0646\u0631\u0633 \u062c\u062f\u06cc\u062f \u0646\u0631\u0648\u0698\u06cc
+languages.nn=\u0646\u0631\u0648\u0698\u06cc
languages.nl=\u0647\u0644\u0646\u062f\u06cc
languages.root=\u0631\u06cc\u0634\u0647
languages.ng=\u0646\u062f\u0648\u0646\u06af\u0627\u06cc\u06cc
-languages.sla=\u0627\u0633\u0644\u0627\u0648\u06cc (\u062f\u06cc\u06af\u0631)
+languages.sla=\u0632\u0628\u0627\u0646 \u0627\u0633\u0644\u0627\u0648\u06cc
languages.ne=\u0646\u067e\u0627\u0644\u06cc
languages.nd=\u0627\u0646\u062f\u0647\u200c\u0628\u0644\u0647\u200c\u0627\u06cc \u0634\u0645\u0627\u0644\u06cc
+languages.cmc=\u0632\u0628\u0627\u0646 \u0686\u0627\u0645\u06cc\u06a9
+languages.tet=\u062a\u062a\u0648\u0645\u06cc
languages.nb=\u0628\u0648\u06a9\u0633\u0645\u0627\u0644 \u0646\u0631\u0648\u0698\u06cc
languages.na=\u0646\u0627\u0626\u0648\u0631\u0648\u06cc\u06cc
+languages.ter=\u062a\u0631\u0646\u0648
languages.tem=\u062a\u06cc\u0645\u0646\u0647\u200c\u0627\u06cc
languages.my=\u0628\u0631\u0645\u0647\u200c\u0627\u06cc
languages.lez=\u0644\u0632\u06af\u06cc
languages.mt=\u0645\u0627\u0644\u062a\u06cc
-languages.ms=\u0645\u0627\u0644\u0632\u06cc\u0627\u06cc\u06cc
+languages.frs=\u0641\u0631\u06cc\u0632\u06cc \u0634\u0631\u0642\u06cc
languages.peo=\u0641\u0627\u0631\u0633\u06cc \u0628\u0627\u0633\u062a\u0627\u0646
+languages.ms=\u0645\u0627\u0644\u0632\u06cc\u0627\u06cc\u06cc
+languages.frr=\u0641\u0631\u06cc\u0632\u06cc \u0634\u0645\u0627\u0644\u06cc
languages.mr=\u0645\u0631\u0627\u062a\u06cc
languages.fro=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc \u0628\u0627\u0633\u062a\u0627\u0646
languages.mo=\u0645\u0648\u0644\u062f\u0627\u0648\u06cc\u0627\u06cc\u06cc
@@ -520,40 +664,50 @@ languages.mk=\u0645\u0642\u062f\u0648\u0646\u06cc
languages.mi=\u0645\u0627\u0626\u0648\u0631\u06cc\u0627\u06cc\u06cc
languages.mh=\u0645\u0627\u0631\u0634\u0627\u0644\u06cc
languages.mg=\u0645\u0627\u0644\u0627\u06af\u0627\u0633\u06cc\u0627\u06cc\u06cc
+languages.nqo=\u0627\u0646 \u06a9\u0648
+languages.mwr=\u0645\u0627\u0631\u0648\u0627\u0631\u06cc
+languages.bra=\u0628\u0631\u0627\u062c
+languages.mwl=\u0645\u06cc\u0631\u0627\u0646\u062f\u0633\u06cc
+languages.den=\u0628\u0631\u062f\u0647
languages.lv=\u0644\u062a\u0648\u0646\u06cc\u0627\u06cc\u06cc
languages.lu=\u0644\u0648\u0628\u0627\u06cc\u06cc\u2010\u06a9\u0627\u062a\u0627\u0646\u06af\u0627
-languages.lt=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc\u0627\u06cc\u06cc
languages.del=\u062f\u0644\u0627\u0648\u0627\u0631\u06cc
+languages.lt=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc\u0627\u06cc\u06cc
languages.lo=\u0644\u0627\u0626\u0648\u0633\u06cc
languages.ln=\u0644\u06cc\u0646\u06af\u0627\u0644\u0627
languages.li=\u0644\u06cc\u0645\u0628\u0648\u0631\u06af\u06cc
+languages.ewo=\u0627\u0648\u0627\u0646\u062f\u0648
languages.lg=\u06af\u0627\u0646\u062f\u0627\u06cc\u06cc
languages.lb=\u0644\u0648\u06af\u0632\u0627\u0645\u0628\u0648\u0631\u06af\u06cc
-languages.la=\u0644\u0627\u062a\u06cc\u0646\u06cc
+languages.la=\u0644\u0627\u062a\u06cc\u0646
languages.jpr=\u0641\u0627\u0631\u0633\u06cc \u06cc\u0647\u0648\u062f\u06cc
-languages.sit=\u0686\u06cc\u0646 \u0648 \u062a\u0628\u062a\u06cc (\u062f\u06cc\u06af\u0631)
+languages.vot=\u0648\u062a\u06cc\u06a9
+languages.sit=\u0632\u0628\u0627\u0646 \u0686\u06cc\u0646 \u0648 \u062a\u0628\u062a\u06cc
languages.ky=\u0642\u0631\u0642\u06cc\u0632\u06cc
languages.kw=\u06a9\u0631\u0646\u0648\u0627\u0644\u06cc
languages.kv=\u06a9\u0648\u0645\u06cc\u0627\u06cc\u06cc
languages.ku=\u06a9\u0631\u062f\u06cc
-languages.sio=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0633\u0648\u06cc\u06cc
+languages.sio=\u0632\u0628\u0627\u0646 \u0633\u0648\u06cc\u06cc
languages.ks=\u06a9\u0634\u0645\u06cc\u0631\u06cc
languages.kr=\u06a9\u0627\u0646\u0648\u0631\u06cc\u0627\u06cc\u06cc
+languages.awa=\u0622\u0648\u0627\u0647\u06cc
languages.ko=\u06a9\u0631\u0647\u200c\u0627\u06cc
languages.kn=\u06a9\u0627\u0646\u0627\u062f\u0647\u200c\u0627\u06cc
languages.km=\u062e\u0645\u0631\u06cc
+languages.en_GB=\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627
languages.kl=\u06af\u0631\u06cc\u0646\u0644\u0646\u062f\u06cc
languages.kk=\u0642\u0632\u0627\u0642\u06cc
languages.rom=\u0631\u0648\u0645\u0627\u0646\u0648\u06cc\u06cc
+languages.kj=\u06a9\u0648\u0627\u0646\u06cc\u0627\u0645\u0627
languages.sid=\u0633\u06cc\u062f\u0627\u0645\u0648\u06cc\u06cc
languages.ki=\u06a9\u06cc\u06a9\u0648\u06cc\u0648\u06cc\u06cc
languages.kg=\u06a9\u0646\u06af\u0648\u06cc\u06cc
languages.non=\u0646\u0631\u0633 \u0628\u0627\u0633\u062a\u0627\u0646
languages.ka=\u06af\u0631\u062c\u06cc
languages.mus=\u06a9\u0631\u06cc\u06a9\u06cc
-languages.roa=\u0631\u0648\u0645\u06cc\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
+languages.roa=\u0632\u0628\u0627\u0646 \u0631\u0648\u0645\u06cc\u0627\u06cc\u06cc
languages.nog=\u0646\u063a\u0627\u06cc\u06cc
-languages.mun=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0645\u0648\u0646\u062f\u0627\u06cc\u06cc
+languages.mun=\u0632\u0628\u0627\u0646 \u0645\u0648\u0646\u062f\u0627\u06cc\u06cc
languages.mul=\u0686\u0646\u062f\u06cc\u0646 \u0632\u0628\u0627\u0646
languages.jv=\u062c\u0627\u0648\u0647\u200c\u0627\u06cc
languages.gil=\u06af\u06cc\u0644\u0628\u0631\u062a\u06cc
@@ -561,181 +715,234 @@ languages.znd=\u0632\u0627\u0646\u062f\u0647\u200c\u0627\u06cc
languages.shn=\u0634\u0627\u0646\u06cc
languages.fon=\u0641\u0648\u0646\u06cc
languages.xal=\u0642\u0644\u0645\u0648\u0642\u06cc
-languages.aus=\u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u06cc\u06cc
+languages.aus=\u0632\u0628\u0627\u0646 \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627\u06cc\u06cc
languages.kho=\u062e\u062a\u0646\u06cc
languages.ja=\u0698\u0627\u067e\u0646\u06cc
-languages.khi=\u062e\u0648\u0627\u0633\u06cc (\u062f\u06cc\u06af\u0631)
-languages.chy=\u0634\u0627\u06cc\u0627\u0646\u06cc
+languages.khi=\u0632\u0628\u0627\u0646 \u062e\u0648\u0627\u0633\u06cc
languages.pau=\u067e\u0627\u0644\u0627\u0626\u0648\u06cc\u06cc
-languages.tai=\u062a\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
+languages.chy=\u0634\u0627\u06cc\u0627\u0646\u06cc
+languages.tai=\u0632\u0628\u0627\u0646 \u062a\u0627\u06cc\u06cc
languages.iu=\u0627\u06cc\u0646\u0648\u06a9\u062a\u06cc\u062a\u0648\u062a
languages.pap=\u067e\u0627\u067e\u06cc\u0627\u0645\u0646\u062a\u0648
languages.it=\u0627\u06cc\u062a\u0627\u0644\u06cc\u0627\u06cc\u06cc
-languages.sgn=\u0632\u0628\u0627\u0646\u200c\u0647\u0627\u06cc \u0646\u0634\u0627\u0646\u0647\u200c\u0627\u06cc
-languages.kha=\u062e\u0627\u0632\u06cc\u0627\u06cc\u06cc
+languages.sgn=\u0632\u0628\u0627\u0646 \u0646\u0634\u0627\u0646\u0647\u200c\u0627\u06cc
languages.is=\u0627\u06cc\u0633\u0644\u0646\u062f\u06cc
+languages.kha=\u062e\u0627\u0632\u06cc\u0627\u06cc\u06cc
languages.chr=\u0686\u0631\u0648\u06a9\u06cc\u0627\u06cc\u06cc
languages.pam=\u067e\u0627\u0645\u067e\u0627\u0646\u06af\u0627\u06cc\u06cc
-languages.chp=\u0686\u06cc\u067e\u0647\u200c\u0648\u06cc\u0647\u200c\u0627\u06cc
languages.pal=\u067e\u0647\u0644\u0648\u06cc
+languages.chp=\u0686\u06cc\u067e\u0647\u200c\u0648\u06cc\u0647\u200c\u0627\u06cc
+languages.io=\u0627\u06cc\u062f\u0648
languages.cho=\u0686\u0648\u06a9\u062a\u0648\u06cc\u06cc
+languages.chn=\u0644\u0647\u062c\u0647 \u0686\u06cc\u0646\u0648\u06a9
languages.chm=\u0645\u0627\u0631\u06cc\u0627\u06cc\u06cc
languages.tyv=\u062a\u0648\u0648\u0627\u06cc\u06cc
-languages.bnt=\u0628\u0627\u0646\u062a\u0648\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
+languages.bnt=\u0628\u0627\u0646\u062a\u0648\u06cc\u06cc
languages.pag=\u067e\u0627\u0646\u06af\u0627\u0633\u06cc\u0646\u0627\u0646\u06cc
languages.ik=\u0627\u06cc\u0646\u0648\u067e\u06cc\u06a9
-languages.haw=\u0647\u0627\u0648\u0627\u0626\u06cc\u0627\u06cc\u06cc
+languages.chk=\u0686\u0648\u06a9\u0632\u06cc
languages.ii=\u06cc\u06cc \u0633\u06cc\u0686\u0648\u0627\u0646
+languages.haw=\u0647\u0627\u0648\u0627\u0626\u06cc
+languages.lam=\u0644\u0627\u0645\u0628\u0627
languages.ig=\u0627\u06cc\u06af\u0628\u0648\u06cc\u06cc
+languages.chg=\u0686\u0627\u06af\u0627\u062a\u0627\u06cc\u06cc
languages.sga=\u0627\u06cc\u0631\u0644\u0646\u062f\u06cc \u0628\u0627\u0633\u062a\u0627\u0646
-languages.paa=\u067e\u0627\u067e\u0648\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
+languages.paa=\u0632\u0628\u0627\u0646 \u067e\u0627\u067e\u0648\u0627\u06cc\u06cc
+languages.ie=\u0628\u06cc\u0646 \u0632\u0628\u0627\u0646\u06cc
languages.id=\u0627\u0646\u062f\u0648\u0646\u0632\u06cc\u0627\u06cc\u06cc
languages.lah=\u0644\u0627\u0647\u0646\u062f\u0627
+languages.day=\u062f\u0627\u06cc\u0627\u06a9
+languages.chb=\u0686\u06cc\u0628\u0686\u0627
languages.ia=\u0645\u06cc\u0627\u0646\u200c\u0632\u0628\u0627\u0646
languages.lad=\u0644\u0627\u062f\u06cc\u0646\u0648
-languages.hai=\u0647\u0627\u06cc\u062f\u0627\u06cc\u06cc
languages.hz=\u0647\u0631\u06cc\u0631\u0648\u06cc\u06cc
+languages.hai=\u0647\u0627\u06cc\u062f\u0627\u06cc\u06cc
+languages.dar=\u062f\u0627\u0631\u06af\u0648\u0627
languages.hy=\u0627\u0631\u0645\u0646\u06cc
-languages.ath=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0622\u062a\u0627\u067e\u0627\u0633\u06a9\u0627\u06cc\u06cc
+languages.ath=\u0632\u0628\u0627\u0646 \u0622\u062a\u0627\u067e\u0627\u0633\u06a9\u0627\u06cc\u06cc
languages.hu=\u0645\u062c\u0627\u0631\u06cc
languages.ht=\u0647\u0627\u0626\u06cc\u062a\u06cc\u0627\u06cc\u06cc
languages.dak=\u062f\u0627\u06a9\u0648\u062a\u0627\u06cc\u06cc
languages.hr=\u06a9\u0631\u0648\u0627\u062a\u06cc
+languages.ho=\u0647\u06cc\u0631\u06cc \u0645\u0648\u062a\u0648
languages.hi=\u0647\u0646\u062f\u06cc
languages.dyu=\u062f\u0627\u06cc\u0648\u0644\u0627\u06cc\u06cc
languages.he=\u0639\u0628\u0631\u06cc
+languages.ast=\u0622\u0633\u062a\u0648\u0631\u06cc\u0646
+languages.kfo=\u06a9\u0648\u0631\u0648
languages.ha=\u0647\u0648\u0633\u06cc\u0627\u06cc\u06cc
-languages.wen=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0635\u064f\u0631\u0628\u06cc
+languages.wen=\u0632\u0628\u0627\u0646 \u0635\u064f\u0631\u0628\u06cc
languages.gv=\u0645\u0627\u0646\u06cc
languages.gu=\u06af\u062c\u0631\u0627\u062a\u06cc
-languages.sem=\u0633\u0627\u0645\u06cc (\u062f\u06cc\u06af\u0631)
+languages.sem=\u0632\u0628\u0627\u0646 \u0633\u0627\u0645\u06cc
languages.sel=\u0633\u0644\u06a9\u0648\u067e\u06cc
-languages.iro=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0627\u06cc\u0631\u0648\u06a9\u0648\u0627\u06cc\u06cc
-languages.gn=\u06af\u0648\u0627\u0631\u0627\u0646\u06cc
-languages.gl=\u06af\u0627\u0644\u06cc\u0633\u06cc\u0627\u06cc\u06cc
+languages.iro=\u0632\u0628\u0627\u0646 \u0627\u06cc\u0631\u0648\u06a9\u0648\u0627\u06cc\u06cc
+languages.gn=\u0632\u0628\u0627\u0646 \u06af\u0631\u0627\u062a\u06cc-\u0632\u0628\u0627\u0646 \u0633\u0631\u062e\u067e\u0648\u0633\u062a\u0627\u0646 \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
+languages.gl=\u06af\u0627 \u0644\u064a\u06a9\u064a\u0627\u0626\u06cc
+languages.en_CA=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u06a9\u0627\u0646\u0627\u062f\u0627
languages.arw=\u0622\u0631\u0627\u0648\u0627\u06a9\u06cc
-languages.gd=\u06af\u06cc\u0644\u06cc \u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f\u06cc
-languages.art=\u0633\u0627\u062e\u062a\u06af\u06cc (\u062f\u06cc\u06af\u0631)
languages.gez=\u06af\u06cc\u200c\u0626\u0632\u06cc
-languages.ira=\u0627\u06cc\u0631\u0627\u0646\u06cc (\u062f\u06cc\u06af\u0631)
+languages.art=\u0632\u0628\u0627\u0646 \u0633\u0627\u062e\u062a\u06af\u06cc
+languages.gd=\u06af\u06cc\u0644\u06cc \u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f\u06cc
+languages.ira=\u0632\u0628\u0627\u0646 \u0627\u06cc\u0631\u0627\u0646\u06cc
languages.ga=\u0627\u06cc\u0631\u0644\u0646\u062f\u06cc
languages.arp=\u0622\u0631\u0627\u067e\u0627\u0647\u0648\u06cc\u06cc
languages.arn=\u0622\u0631\u0648\u06a9\u0627\u0646\u06cc\u0627\u06cc\u06cc
-languages.fy=\u0641\u0631\u06cc\u0632\u06cc
-languages.gem=\u0698\u0631\u0645\u0646\u06cc (\u062f\u06cc\u06af\u0631)
-languages.ypk=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u06cc\u0648\u067e\u06cc\u06a9\u06cc
-languages.fr=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc
+languages.fy=\u0641\u0631\u06cc\u0632\u06cc \u063a\u0631\u0628\u06cc
+languages.bla=\u0633\u06cc\u06a9 \u0633\u06cc\u06a9\u0627\u06cc\u06cc
+languages.gem=\u0632\u0628\u0627\u0646 \u0698\u0631\u0645\u0646\u06cc
+languages.ypk=\u0632\u0628\u0627\u0646 \u06cc\u0648\u067e\u06cc\u06a9\u06cc
languages.arc=\u0622\u0631\u0627\u0645\u06cc
+languages.fr=\u0641\u0631\u0627\u0646\u0633\u0648\u06cc
languages.fo=\u0641\u0627\u0631\u0648\u06cc\u06cc
-languages.cel=\u0633\u0644\u062a\u06cc (\u062f\u06cc\u06af\u0631)
+languages.cel=\u0632\u0628\u0627\u0646 \u0633\u0644\u062a\u06cc
languages.fj=\u0641\u06cc\u062c\u06cc\u0627\u06cc\u06cc
languages.fi=\u0641\u0646\u0644\u0627\u0646\u062f\u06cc
languages.ff=\u0641\u0648\u0644\u0627\u06cc\u06cc
+languages.tvl=\u062a\u0648\u0648\u0627\u0644\u0648\u06cc\u06cc
languages.ceb=\u0633\u0628\u0648\u06cc\u06cc
languages.fa=\u0641\u0627\u0631\u0633\u06cc
+languages.en_AU=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0627\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
+languages.zh_Hans=\u0686\u06cc\u0646\u06cc \u0633\u0627\u062f\u0647\u200c\u0634\u062f\u0647
+languages.zh_Hant=\u0686\u06cc\u0646\u06cc \u0633\u0646\u062a\u06cc
languages.eu=\u0628\u0627\u0633\u06a9\u06cc
languages.sco=\u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f\u06cc
languages.et=\u0627\u0633\u062a\u0648\u0646\u06cc\u0627\u06cc\u06cc
+languages.scn=\u0633\u06cc\u0633\u06cc\u0644\u06cc
languages.es=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc
languages.eo=\u0627\u0633\u067e\u0631\u0627\u0646\u062a\u0648
languages.en=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc
languages.el=\u06cc\u0648\u0646\u0627\u0646\u06cc
-languages.tut=\u0622\u0644\u062a\u0627\u06cc\u06cc\u06a9 (\u062f\u06cc\u06af\u0631)
+languages.tut=\u0632\u0628\u0627\u0646 \u0622\u0644\u062a\u0627\u06cc\u06cc\u06a9
languages.niu=\u0646\u06cc\u0648\u06cc\u06cc
-languages.tup=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u062a\u0648\u067e\u06cc\u0627\u06cc\u06cc
+languages.tup=\u0632\u0628\u0627\u0646 \u062a\u0648\u067e\u06cc\u0627\u06cc\u06cc
languages.ee=\u0627\u0648\u0647\u200c\u0627\u06cc
languages.tum=\u062a\u0648\u0645\u0628\u0648\u06a9\u0627\u06cc\u06cc
+languages.nl_BE=\u0647\u0644\u0646\u062f\u06cc \u0628\u0644\u0698\u06cc\u06a9
+languages.es_419=\u0627\u0633\u067e\u0627\u0646\u06cc\u0627\u06cc\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0644\u0627\u062a\u06cc\u0646
languages.mos=\u0645\u0627\u0633\u06cc\u0627\u06cc\u06cc
languages.dz=\u062c\u0648\u0646\u062e\u0627\u06cc\u06cc
-languages.fiu=\u0641\u06cc\u0646 \u0648 \u0627\u0648\u06af\u0631\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
+languages.kcg=\u062a\u0627\u06cc\u067e\u0647
+languages.nic=\u0632\u0628\u0627\u0646 \u0646\u06cc\u062c\u0631\u06cc\u0627\u06cc\u06cc-\u06a9\u0648\u0631\u062f\u0648\u0641\u0627\u0646\u06cc
languages.lus=\u0644\u0648\u0634\u0647\u200c\u0627\u06cc
+languages.fiu=\u0632\u0628\u0627\u0646 \u0641\u06cc\u0646 \u0648 \u0627\u0648\u06af\u0631\u0627\u06cc\u06cc
+languages.dv=\u062f\u0627\u06cc\u0648\u0647\u06cc
+languages.nia=\u0646\u06cc\u0627\u0633
languages.moh=\u0645\u0648\u0647\u0627\u06a9\u06cc
languages.luo=\u0644\u0648\u0626\u0648\u06cc\u06cc
languages.lun=\u0644\u0648\u0646\u062f\u0627\u06cc\u06cc
-languages.apa=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0622\u067e\u0627\u0686\u06cc\u0627\u06cc\u06cc
+languages.apa=\u0632\u0628\u0627\u0646 \u0622\u067e\u0627\u0686\u06cc\u0627\u06cc\u06cc
+languages.fil=\u0641\u06cc\u0644\u06cc\u067e\u06cc\u0646\u06cc
+languages.lui=\u0644\u0648\u06cc\u0633\u0646\u0648
+languages.hup=\u0647\u0648\u067e\u0627
+languages.cch=\u0622\u062a\u0633\u0627\u0645
+languages.bin=\u0628\u06cc\u0646\u06cc
languages.de=\u0622\u0644\u0645\u0627\u0646\u06cc
languages.lua=\u0644\u0648\u0628\u0627\u06cc\u06cc\u2010\u0644\u0648\u0644\u0648\u0627
languages.bik=\u0628\u06cc\u06a9\u0648\u0644\u06cc
-languages.und=\u0646\u0627\u0645\u0634\u062e\u0635
+languages.was=\u0648\u0627\u0634\u0648\u06cc\u06cc
+languages.und=\u0632\u0628\u0627\u0646 \u0646\u0627\u0645\u0634\u062e\u0635 \u06cc\u0627 \u0646\u0627\u0645\u0639\u062a\u0628\u0631
+languages.war=\u0648\u0627\u0631\u0627\u06cc\u06cc
languages.da=\u062f\u0627\u0646\u0645\u0627\u0631\u06a9\u06cc
languages.dum=\u0647\u0644\u0646\u062f\u06cc \u0645\u06cc\u0627\u0646\u0647
-languages.wak=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0648\u0627\u06a9\u0627\u0634\u06cc
+languages.wal=\u0648\u0627\u0644\u0627\u0645\u0648
+languages.mno=\u0632\u0628\u0627\u0646 \u0645\u0627\u0646\u0648\u0628\u0648
+languages.wak=\u0632\u0628\u0627\u0646 \u0648\u0627\u06a9\u0627\u0634\u06cc
languages.sat=\u0633\u0627\u0646\u062a\u0627\u0644\u06cc
languages.cy=\u0648\u06cc\u0644\u0632\u06cc
-languages.cv=\u0686\u0648\u0648\u0627\u0634\u06cc
+languages.sas=\u0633\u0627\u0633\u0627\u06a9
languages.kbd=\u06a9\u0627\u0628\u0627\u0631\u062f\u06cc\u0646\u06cc
+languages.cv=\u0686\u0648\u0648\u0627\u0634\u06cc
languages.cu=\u0627\u0633\u0644\u0627\u0648\u06cc \u06a9\u0644\u06cc\u0633\u0627\u06cc\u06cc
-languages.cs=\u0686\u06a9\u06cc
+languages.mni=\u0645\u0627\u0646\u06cc\u067e\u0648\u0631\u06cc
+languages.cs=\u0686\u06a9
+languages.sam=\u0632\u0628\u0627\u0646 \u0633\u0627\u0645\u0631\u06cc \u0622\u0631\u0627\u0645\u06cc
languages.cr=\u06a9\u0631\u06cc\u0627\u06cc\u06cc
-languages.sal=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0633\u0627\u0644\u06cc\u0634\u06cc
+languages.sal=\u0632\u0628\u0627\u0646 \u0633\u0627\u0644\u06cc\u0634\u06cc
languages.dua=\u062f\u0648\u0622\u0644\u0627\u06cc\u06cc
-languages.sai=\u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc (\u062f\u06cc\u06af\u0631)
+languages.co=\u06a9\u0648\u0631\u0633\u06cc
+languages.sai=\u0632\u0628\u0627\u0646 \u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
languages.mnc=\u0645\u0627\u0646\u0686\u0648\u06cc\u06cc
languages.sah=\u06cc\u0627\u0642\u0648\u062a\u06cc
-languages.gba=\u06af\u0628\u0627\u06cc\u0627\u06cc\u06cc
+languages.kaw=\u06a9\u0627\u0648\u06cc
languages.inh=\u0627\u06cc\u0646\u06af\u0648\u0634\u06cc
+languages.gba=\u06af\u0628\u0627\u06cc\u0627\u06cc\u06cc
languages.sad=\u0633\u0627\u0646\u062f\u0627\u0648\u0647\u200c\u0627\u06cc
languages.ch=\u0686\u0627\u0645\u0648\u0631\u0648\u06cc\u06cc
+languages.ine=\u0632\u0628\u0627\u0646 \u0647\u0646\u062f \u0648 \u0627\u0631\u0648\u067e\u0627\u06cc\u06cc
languages.bho=\u0628\u0648\u062c\u067e\u0648\u0631\u06cc
-languages.ine=\u0647\u0646\u062f \u0648 \u0627\u0631\u0648\u067e\u0627\u06cc\u06cc (\u062f\u06cc\u06af\u0631)
languages.enm=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0645\u06cc\u0627\u0646\u0647
-languages.ce=\u0686\u0686\u0646\u06cc
-languages.inc=\u0647\u0646\u062f\u06cc\u06a9 (\u062f\u06cc\u06af\u0631)
languages.kar=\u06a9\u0627\u0631\u0646\u06cc
+languages.inc=\u0632\u0628\u0627\u0646 \u0647\u0646\u062f\u06cc\u06a9
+languages.ce=\u0686\u0686\u0646\u06cc
+languages.gay=\u06af\u0627\u06cc\u0648
languages.ca=\u06a9\u0627\u062a\u0627\u0644\u0648\u0646\u06cc\u0627\u06cc\u06cc
languages.umb=\u0627\u0645\u0628\u0646\u062f\u0648\u06cc\u06cc
languages.syr=\u0633\u0631\u06cc\u0627\u0646\u06cc
languages.kam=\u06a9\u0627\u0645\u0628\u0627\u06cc\u06cc
+languages.anp=\u0622\u0646\u06af\u06cc\u06a9\u0627
languages.tsi=\u062a\u0633\u06cc\u0645\u200c\u0634\u06cc\u0627\u0646\u06cc
+languages.kaj=\u062c\u0648
languages.ang=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0628\u0627\u0633\u062a\u0627\u0646
-languages.cau=\u0642\u0641\u0642\u0627\u0632\u06cc (\u062f\u06cc\u06af\u0631)
languages.kac=\u06a9\u0627\u0686\u06cc\u0646\u06cc
+languages.cau=\u0632\u0628\u0627\u0646 \u0642\u0641\u0642\u0627\u0632\u06cc
languages.kab=\u0642\u0628\u0627\u06cc\u0644\u06cc
-languages.bs=\u0628\u0648\u0633\u0646\u06cc\u0627\u06cc\u06cc
languages.kaa=\u0642\u0631\u0647\u200c\u0642\u0627\u0644\u067e\u0627\u0642\u06cc
-languages.br=\u0628\u0631\u062a\u0627\u0646\u06cc\u0627\u06cc\u06cc
+languages.bs=\u0628\u0648\u0633\u0646\u06cc\u0627\u06cc\u06cc
languages.car=\u06a9\u0627\u0631\u06cc\u0628\u06cc
+languages.br=\u0628\u0631\u062a\u0627\u0646\u06cc\u0627\u06cc\u06cc
+languages.syc=\u0633\u0631\u06cc\u0627\u0646\u06cc \u06a9\u0644\u0627\u0633\u06cc\u06a9
languages.bo=\u062a\u0628\u062a\u06cc
languages.bn=\u0628\u0646\u06af\u0627\u0644\u06cc
languages.bm=\u0628\u0627\u0645\u0628\u0627\u0631\u0627\u06cc\u06cc
languages.gaa=\u06af\u0627\u06cc\u06cc
+languages.cai=\u0632\u0628\u0627\u0646 \u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc
languages.bi=\u0628\u06cc\u0633\u0644\u0627\u0645\u0627
-languages.cai=\u0633\u0631\u062e\u067e\u0648\u0633\u062a\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627\u06cc \u0645\u0631\u06a9\u0632\u06cc (\u062f\u06cc\u06af\u0631)
languages.bh=\u0628\u06cc\u0647\u0627\u0631\u06cc
languages.bg=\u0628\u0644\u063a\u0627\u0631\u06cc
languages.be=\u0628\u0644\u0648\u0631\u0648\u0633\u06cc
+languages.pt_BR=\u067e\u0631\u062a\u063a\u0627\u0644\u064a (\u0628\u0631\u0632\u064a\u0644)
languages.cad=\u06a9\u0627\u062f\u0648\u06cc\u06cc
languages.ba=\u0628\u0627\u0634\u063a\u06cc\u0631\u06cc
languages.zu=\u0632\u0648\u0644\u0648\u06cc\u06cc
+languages.zen=\u0632\u0646\u0627\u06af\u0627
+languages.pro=\u067e\u0631\u0648\u0648\u0646\u0634\u0627\u0644 \u0628\u0627\u0633\u062a\u0627\u0646
languages.hsb=\u0635\u064f\u0631\u0628\u06cc \u0639\u0644\u06cc\u0627
languages.az=\u062a\u0631\u06a9\u06cc \u0622\u0630\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u06cc
languages.ay=\u0622\u06cc\u0645\u0627\u0631\u0627\u06cc\u06cc
languages.av=\u0622\u0648\u0627\u0631\u06cc
languages.as=\u0622\u0633\u0627\u0645\u06cc
-languages.ar=\u0639\u0631\u0628\u06cc
languages.dsb=\u0635\u064f\u0631\u0628\u06cc \u0633\u0641\u0644\u06cc
-languages.elx=\u0639\u06cc\u0644\u0627\u0645\u06cc
+languages.ar=\u0639\u0631\u0628\u06cc
languages.ilo=\u0627\u06cc\u0644\u0648\u06a9\u0648\u06cc\u06cc
+languages.elx=\u0639\u06cc\u0644\u0627\u0645\u06cc
languages.zh=\u0686\u06cc\u0646\u06cc
+languages.an=\u0622\u0631\u0627\u06af\u0648\u0646\u0632
+languages.pra=\u0632\u0628\u0627\u0646 \u067e\u0631\u0627\u06a9\u0631\u06cc\u062a\u06cc
languages.am=\u0627\u0645\u0647\u0631\u06cc
-languages.pra=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u067e\u0631\u0627\u06a9\u0631\u06cc\u062a\u06cc
languages.new=\u0646\u0648\u0627\u0631\u06cc\u0627\u06cc\u06cc
+languages.ak=\u0622\u06a9\u0627\u0646
languages.za=\u0686\u0648\u0627\u0646\u06af\u06cc
-languages.af=\u0622\u0641\u0631\u06cc\u06a9\u0627\u0646\u0633
+languages.en_US=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0627\u0645\u0631\u06cc\u06a9\u0627
+languages.af=\u0622\u0641\u0631\u06cc\u06a9\u0627\u0646
languages.ae=\u0627\u0648\u0633\u062a\u0627\u06cc\u06cc
+languages.alt=\u0622\u0644\u062a\u0627\u06cc \u062c\u0646\u0648\u0628\u06cc
languages.ab=\u0622\u0628\u062e\u0627\u0632\u06cc
languages.aa=\u0622\u0641\u0627\u0631\u06cc
languages.yo=\u06cc\u0648\u0631\u0648\u0628\u0627\u06cc\u06cc
languages.alg=\u0632\u0628\u0627\u0646\u0647\u0627\u06cc \u0622\u0644\u06af\u0648\u0646\u06a9\u06cc\u0646\u06cc
languages.ale=\u0622\u0644\u0626\u0648\u062a\u06cc
-languages.mkh=\u0645\u0648\u0646\u200c\u062e\u0645\u0631\u06cc (\u062f\u06cc\u06af\u0631)
-languages.yi=\u06cc\u062f\u06cc
-languages.dra=\u062f\u0631\u0627\u0648\u06cc\u062f\u06cc (\u062f\u06cc\u06af\u0631)
-languages.ber=\u0628\u0631\u0628\u0631\u06cc (\u062f\u06cc\u06af\u0631)
+languages.mkh=\u0632\u0628\u0627\u0646 \u0645\u0648\u0646\u200c\u062e\u0645\u0631\u06cc
+languages.yi=\u0627\u064a\u062f\u064a\u0634
+languages.dra=\u0632\u0628\u0627\u0646 \u062f\u0631\u0627\u0648\u06cc\u062f\u06cc
+languages.ber=\u0628\u0631\u0628\u0631\u06cc
languages.nds=\u0622\u0644\u0645\u0627\u0646\u06cc \u0633\u0641\u0644\u06cc
languages.bem=\u0628\u0645\u0628\u0627\u06cc\u06cc
languages.bej=\u0628\u062c\u0627\u06cc\u06cc
+languages.tpi=\u062a\u0648\u06a9 \u067e\u06cc\u0633\u06cc\u0646\u06cc
+variants.POSIX=\u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631\u06cc
variants.1901=\u0631\u0633\u0645\u200c\u0627\u0644\u062e\u0637 \u0633\u0646\u062a\u06cc \u0622\u0644\u0645\u0627\u0646\u06cc
-variants.GUOYU=\u0645\u0627\u0646\u062f\u0627\u0631\u06cc\u0646 \u06cc\u0627 \u0686\u06cc\u0646\u06cc \u0627\u0633\u062a\u0627\u0646\u062f\u0627\u0631\u062f
variants.1996=\u0631\u0633\u0645\u200c\u0627\u0644\u062e\u0637 \u0622\u0644\u0645\u0627\u0646\u06cc \u06f1\u06f9\u06f9\u06f6 \u0645\u06cc\u0644\u0627\u062f\u06cc
+variants.AREVELA=\u0627\u0631\u0645\u0646\u06cc \u0634\u0631\u0642\u06cc
+variants.SCOTLAND=\u0627\u0646\u06af\u0644\u06cc\u0633\u06cc \u0645\u0639\u06cc\u0627\u0631 \u0627\u0633\u06a9\u0627\u062a\u0644\u0646\u062f
variants.REVISED=\u0631\u0633\u0645\u200c\u0627\u0644\u062e\u0637 \u062a\u062c\u062f\u06cc\u062f\u0646\u0638\u0631\u0634\u062f\u0647
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa_AF.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa_AF.properties
index cd85688..d6b375d 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa_AF.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fa_AF.properties
@@ -11,13 +11,12 @@ zeroDigit=\u06f0
decimalSeparator=\u066b
groupingSeparator=\u066c
percentFormat='\u202a'#,##0%'\u202c'
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
currenciesDisplayName.NOK=\u06a9\u0631\u0648\u0646 \u0646\u0627\u0631\u0648\u06cc
currenciesDisplayName.BND=\u062f\u0627\u0644\u0631 \u0628\u0631\u0648\u0646\u06cc
-currenciesDisplayName.SGD=\u062f\u0627\u0644\u0631 \u0633\u06cc\u0646\u06af\u0627\u067e\u0648\u0631
currenciesDisplayName.JPY=\u06cc\u0646 \u062c\u0627\u067e\u0627\u0646
-currenciesDisplayName.NLG=\u06af\u06cc\u0644\u062f\u0631 \u0647\u0627\u0644\u0646\u062f
+currenciesDisplayName.SGD=\u062f\u0627\u0644\u0631 \u0633\u06cc\u0646\u06af\u0627\u067e\u0648\u0631
currenciesDisplayName.DKK=\u06a9\u0631\u0648\u0646 \u062f\u0646\u0645\u0627\u0631\u06a9
+currenciesDisplayName.NLG=\u06af\u06cc\u0644\u062f\u0631 \u0647\u0627\u0644\u0646\u062f
currenciesDisplayName.CHF=\u0641\u0631\u0627\u0646\u06a9 \u0633\u0648\u06cc\u0633
currenciesDisplayName.AUD=\u062f\u0627\u0644\u0631 \u0622\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
currenciesDisplayName.USD=\u062f\u0627\u0644\u0631 \u0627\u0645\u0631\u06cc\u06a9\u0627
@@ -26,21 +25,20 @@ currenciesDisplayName.SEK=\u06a9\u0631\u0648\u0646 \u0633\u0648\u06cc\u062f\u064
currenciesDisplayName.BYR=\u0631\u0648\u0628\u0644 \u0631\u0648\u0633\u06cc\u0647\u0654 \u0633\u0641\u06cc\u062f
currenciesDisplayName.TJS=\u0633\u0627\u0645\u0627\u0646\u06cc \u062a\u0627\u062c\u06a9\u0633\u062a\u0627\u0646
currenciesDisplayName.CAD=\u062f\u0627\u0644\u0631 \u06a9\u0627\u0646\u0627\u062f\u0627
-shortMonths=®®®®®®®®®®®®®
-months=\u062c\u0646\u0648\u0631\u06cc®\u0641\u0628\u0631\u0648\u0631\u06cc®\u0645\u0627\u0631\u0686®\u0627\u067e\u0631\u06cc\u0644®\u0645\u06cc®\u062c\u0648\u0646®\u062c\u0648\u0644\u0627\u06cc®\u0627\u06af\u0633\u062a®\u0633\u067e\u062a\u0645\u0628\u0631®\u0627\u06a9\u062a\u0648\u0628\u0631®\u0646\u0648\u0645\u0628\u0631®\u062f\u0633\u0645\u0628\u0631®®
-firstDayOfWeek=sat
-zoneStrings=Asia/Kabul®AFT®\u0648\u0642\u062a \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646®AFT®\u0648\u0642\u062a \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646®©
+currenciesSymbol.AFN=\u060b
+shortMonths=\u062c\u0646\u0648\u00ae\u00ae\u00ae\u00ae\u0645\u0640\u06cc\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u00ae\u00ae\u00ae\u00ae\u00ae\u062f\u0633\u0645\u00ae\u00ae
+months=\u062c\u0646\u0648\u0631\u06cc\u00ae\u0641\u0628\u0631\u0648\u0631\u06cc\u00ae\u0645\u0627\u0631\u0686\u00ae\u0627\u067e\u0631\u06cc\u0644\u00ae\u0645\u06cc\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u0627\u06cc\u00ae\u0627\u06af\u0633\u062a\u00ae\u0633\u067e\u062a\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0645\u0628\u0631\u00ae\u062f\u0633\u0645\u0628\u0631\u00ae\u00ae
territories.AU=\u0622\u0633\u062a\u0631\u0627\u0644\u06cc\u0627
territories.GY=\u06af\u06cc\u0627\u0646\u0627
-territories.AR=\u0627\u0631\u062c\u0646\u062a\u0627\u06cc\u0646
territories.GW=\u06af\u06cc\u0646\u06cc\u0627 \u0628\u06cc\u0633\u0627\u0626\u0648
+territories.AR=\u0627\u0631\u062c\u0646\u062a\u0627\u06cc\u0646
territories.MZ=\u0645\u0648\u0632\u0645\u0628\u06cc\u0642
-territories.AO=\u0627\u0646\u06af\u0648\u0644\u0627
-territories.GT=\u06af\u0648\u0627\u062a\u06cc\u0645\u0627\u0644\u0627
territories.MY=\u0645\u0627\u0644\u06cc\u0632\u06cc\u0627
+territories.GT=\u06af\u0648\u0627\u062a\u06cc\u0645\u0627\u0644\u0627
+territories.AO=\u0627\u0646\u06af\u0648\u0644\u0627
territories.MX=\u0645\u06a9\u0633\u06cc\u06a9\u0648
-territories.AL=\u0627\u0644\u0628\u0627\u0646\u06cc\u0627
territories.GQ=\u06af\u06cc\u0646\u06cc\u0627 \u0627\u0633\u062a\u0648\u0627\u06cc\u06cc
+territories.AL=\u0627\u0644\u0628\u0627\u0646\u06cc\u0627
territories.MT=\u0645\u0627\u0644\u062a\u0627
territories.GN=\u06af\u06cc\u0646\u06cc\u0627
territories.MR=\u0645\u0648\u0631\u06cc\u062a\u0627\u0646\u06cc\u0627
@@ -48,8 +46,8 @@ territories.SV=\u0627\u0644\u0633\u0644\u0648\u0627\u062f\u0648\u0631
territories.AG=\u0627\u0646\u062a\u06cc\u06af\u0648\u0627 \u0648 \u0628\u0627\u0631\u0628\u0648\u062f\u0627
territories.ST=\u0633\u0627\u0626\u0648 \u062a\u0648\u0645\u0647 \u0648 \u067e\u0631\u06cc\u0646\u0633\u06cc\u067e
territories.AE=\u0627\u0645\u0627\u0631\u0627\u062a \u0645\u062a\u062d\u062f\u0647\u0654 \u0639\u0631\u0628\u06cc
-territories.AD=\u0627\u0646\u062f\u0648\u0631\u0627
territories.MN=\u0645\u0646\u06af\u0648\u0644\u06cc\u0627
+territories.AD=\u0627\u0646\u062f\u0648\u0631\u0627
territories.SO=\u0633\u0648\u0645\u0627\u0644\u06cc\u0647
territories.SN=\u0633\u06cc\u0646\u06cc\u06af\u0627\u0644
territories.GD=\u06af\u0631\u06cc\u0646\u0627\u062f\u0627
@@ -77,14 +75,14 @@ territories.KP=\u06a9\u0648\u0631\u06cc\u0627\u06cc \u0634\u0645\u0627\u0644\u06
territories.KN=\u0633\u0646\u062a \u06a9\u06cc\u062a\u0633 \u0648 \u0646\u06cc\u0648\u06cc\u0633
territories.KM=\u06a9\u0648\u0645\u0648\u0631
territories.EE=\u0627\u0633\u062a\u0648\u0646\u06cc\u0627
-territories.WS=\u0633\u0627\u0645\u0648\u0622\u06cc \u063a\u0631\u0628\u06cc
-territories.EC=\u0627\u06a9\u0648\u0627\u062f\u0648\u0631
+territories.WS=\u0633\u0627\u0645\u0648\u0622
territories.KH=\u06a9\u0645\u067e\u0648\u0686\u06cc\u0627
+territories.EC=\u0627\u06a9\u0648\u0627\u062f\u0648\u0631
territories.KG=\u0642\u0631\u063a\u0632\u0633\u062a\u0627\u0646
territories.KE=\u06a9\u06cc\u0646\u06cc\u0627
territories.PY=\u067e\u0627\u0631\u0627\u06af\u0648\u0627\u06cc
-territories.DK=\u062f\u0646\u0645\u0627\u0631\u06a9
territories.JP=\u062c\u0627\u067e\u0627\u0646
+territories.DK=\u062f\u0646\u0645\u0627\u0631\u06a9
territories.PT=\u067e\u0631\u062a\u06af\u0627\u0644
territories.PL=\u067e\u0648\u0644\u0646\u062f
territories.PG=\u067e\u0627\u067e\u0648\u0627 \u0646\u06cc\u0648 \u06af\u06cc\u0646\u06cc\u0627
@@ -110,15 +108,15 @@ territories.BS=\u0628\u0647\u0627\u0645\u0627\u0633
territories.BR=\u0628\u0631\u0627\u0632\u06cc\u0644
territories.UA=\u0627\u06a9\u0631\u0627\u06cc\u0646
territories.NZ=\u0632\u06cc\u0644\u0627\u0646\u062f \u062c\u062f\u06cc\u062f
-territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc\u0627
territories.HT=\u0647\u0627\u06cc\u062a\u06cc
+territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc\u0627
territories.BN=\u0628\u0631\u0648\u0646\u06cc
territories.HR=\u06a9\u0631\u0648\u0634\u06cc\u0627
territories.HN=\u0647\u0627\u0646\u062f\u0648\u0631\u0627\u0633
territories.BG=\u0628\u0644\u063a\u0627\u0631\u06cc\u0627
territories.NP=\u0646\u06cc\u067e\u0627\u0644
-territories.BE=\u0628\u0644\u062c\u06cc\u0645
territories.NO=\u0646\u0627\u0631\u0648\u06cc
+territories.BE=\u0628\u0644\u062c\u06cc\u0645
territories.BD=\u0628\u0646\u06af\u0644\u0647\u200c\u062f\u06cc\u0634
territories.ZW=\u0632\u06cc\u0645\u0628\u0627\u0628\u0648\u06cc
territories.NL=\u0647\u0627\u0644\u0646\u062f
@@ -132,13 +130,13 @@ languages.no=\u0646\u0627\u0631\u0648\u06cc\u0698\u06cc
languages.nl=\u0647\u0627\u0644\u0646\u062f\u06cc
languages.it=\u0627\u06cc\u062a\u0627\u0644\u0648\u06cc
languages.tg=\u062a\u0627\u062c\u06a9\u06cc
-languages.is=\u0622\u06cc\u0633\u0644\u0646\u062f\u06cc
languages.ne=\u0646\u06cc\u067e\u0627\u0644\u06cc
+languages.is=\u0622\u06cc\u0633\u0644\u0646\u062f\u06cc
languages.fi=\u0641\u0646\u0644\u0646\u062f\u06cc
languages.id=\u0627\u0646\u062f\u0648\u0646\u06cc\u0632\u06cc\u0627\u06cc\u06cc
languages.sv=\u0633\u0648\u06cc\u062f\u0646\u06cc
-languages.pt=\u067e\u0631\u062a\u06af\u0627\u0644\u06cc
languages.fa=\u062f\u0631\u06cc
+languages.pt=\u067e\u0631\u062a\u06af\u0627\u0644\u06cc
languages.mn=\u0645\u063a\u0644\u06cc
languages.pl=\u067e\u0648\u0644\u0646\u062f\u06cc
languages.ky=\u0642\u0631\u063a\u0632\u06cc
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fi.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fi.properties
index 8e6a340..a2223b2 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fi.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fi.properties
@@ -5,371 +5,315 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=ep\u00e4luku
+minusSign=-
+zeroDigit=0
decimalSeparator=,
-groupingSeparator=
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.YDD=Jemenin dinaari
-currenciesDisplayName.TWD=Taiwanin uusi dollari
-currenciesDisplayName.KES=Kenian shillinki
-currenciesDisplayName.BYB=Valko-Ven\u00e4j\u00e4n uusi rupla (1994-1999)
-currenciesDisplayName.LKR=Sri Lankan rupia
-currenciesDisplayName.RWF=Ruandan frangi
-currenciesDisplayName.TJS=Tad\u017eikistanin somoni
-currenciesDisplayName.SDP=Sudanin punta
-currenciesDisplayName.TJR=Tad\u017eikistanin rupla
-currenciesDisplayName.ERN=Eritrean nakfa
-currenciesDisplayName.AFN=Afgaani
-currenciesDisplayName.GRD=Kreikan drakhma
-currenciesDisplayName.IEP=Irlannin punta
-currenciesDisplayName.ARS=Argentiinan peso
-currenciesDisplayName.SDD=Sudanin dinaari
-currenciesDisplayName.ARP=Argentiinan peso (1983-1985)
-currenciesDisplayName.GEL=Georgian lari
-currenciesDisplayName.AFA=Afgaani (1927-2002)
-currenciesDisplayName.GEK=Georgian kuponkilari
-currenciesDisplayName.CRC=Costa Rican colon
-currenciesDisplayName.FKP=Falklandinsaarten punta
-currenciesDisplayName.EEK=Viron kruunu
-currenciesDisplayName.HKD=Hongkongin dollari
-currenciesDisplayName.MDL=Moldovan leu
-currenciesDisplayName.ARA=Argentiinan austral
-currenciesDisplayName.IQD=Irakin dinaari
-currenciesDisplayName.SCR=Seychellien rupia
-currenciesDisplayName.VUV=Vanuatun vatu
-currenciesDisplayName.DKK=Tanskan kruunu
-currenciesDisplayName.KPW=Pohjois-Korean won
-currenciesDisplayName.GQE=P\u00e4iv\u00e4ntasaajan Guinean ekwele guineana
-currenciesDisplayName.IDR=Indonesian rupia
-currenciesDisplayName.LVR=Latvian rupla
-currenciesDisplayName.SOS=Somalian shillinki
-currenciesDisplayName.AED=Arabiemiirikuntien dirhami
-currenciesDisplayName.BWP=Botswanan pula
-currenciesDisplayName.LVL=Latvian lati
-currenciesDisplayName.RUR=Ven\u00e4j\u00e4n rupla (1991-1998)
-currenciesDisplayName.NIO=Nicaraguan cordoba oro
-currenciesDisplayName.ADP=Andorran peseta
-currenciesDisplayName.FJD=Fid\u017ein dollari
-currenciesDisplayName.MOP=Macaon pataca
-currenciesDisplayName.RUB=Ven\u00e4j\u00e4n rupla
-currenciesDisplayName.CDF=Kongon kongolainen frangi
-currenciesDisplayName.NIC=Nicaraguan cordoba
-currenciesDisplayName.DJF=Djiboutin frangi
-currenciesDisplayName.ECV=Ecuadorin UVC
-currenciesDisplayName.SBD=Salomonsaarten dollari
-currenciesDisplayName.UZS=Uzbekistanin som
-currenciesDisplayName.ECS=Ecuadorin sucre
-currenciesDisplayName.PHP=Filippiinien peso
-currenciesDisplayName.THB=Thaimaan baht
-currenciesDisplayName.LUF=Luxemburgin frangi
-currenciesDisplayName.FIM=Suomen markka
-currenciesDisplayName.TTD=Trinidadin ja Tobagon dollari
-currenciesDisplayName.SZL=Swazimaan lilangeni
-currenciesDisplayName.MNT=Mongolian tugrik
-currenciesDisplayName.SAR=Saudi-Arabian rial
-currenciesDisplayName.UAK=Ukrainan karbovanetz
-currenciesDisplayName.UAH=Ukrainan hryvnia
-currenciesDisplayName.HUF=Unkarin forintti
-currenciesDisplayName.COP=Kolumbian peso
-currenciesDisplayName.QAR=Qatarin rial
-currenciesDisplayName.LTT=Liettuan talonas
-currenciesDisplayName.PTE=Portugalin escudo
-currenciesDisplayName.AOR=Angolan kwanza reajustado (1995-1999)
-currenciesDisplayName.UYU=Uruguayn peso uruguayo
-currenciesDisplayName.GBP=Iso-Britannian sterling-punta
-currenciesDisplayName.BIF=Burundin frangi
-currenciesDisplayName.INR=Intian rupia
-currenciesDisplayName.ZRZ=Zairen zaire
-currenciesDisplayName.AON=Angolan uusi kwanza (1990-2000)
-currenciesDisplayName.LTL=Liettuan liti
-currenciesDisplayName.XFU=Ranskan UIC-frangi
-currenciesDisplayName.KZT=Kazakstanin tenge
-currenciesDisplayName.MZM=Mosambikin metical
-currenciesDisplayName.UYP=Uruguayn peso (1975-1993)
-currenciesDisplayName.AOK=Angolan kwanza (1977-1990)
-currenciesDisplayName.BUK=Burman kyat
-currenciesDisplayName.GNS=Guinean syli
-currenciesDisplayName.XFO=Ranskan kulta frangi
-currenciesDisplayName.PGK=Papua-Uuden-Guinean kina
-currenciesDisplayName.SYP=Syyrian punta
-currenciesDisplayName.MZE=Mosambikin escudo
-currenciesDisplayName.OMR=Omanin rial
-currenciesDisplayName.NGN=Nigerian naira
-currenciesDisplayName.ZRN=Zairen uusi zaire
-currenciesDisplayName.AOA=Angolan kwanza
-currenciesDisplayName.CNY=Kiinan yuan renminbi
-currenciesDisplayName.MAF=Marokon frangi
-currenciesDisplayName.GNF=Guinean frangi
-currenciesDisplayName.HTG=Haitin gourde
-currenciesDisplayName.MAD=Marokon dirhami
-currenciesDisplayName.TRY=Turkin uusi liira
-currenciesDisplayName.MMK=Myanmarin kyat
-currenciesDisplayName.MYR=Malesian ringgit
-currenciesDisplayName.LSL=Lesothon loti
-currenciesDisplayName.XEU=Euroopan valuuttayksikk\u00f6
-currenciesDisplayName.BHD=Bahrainin dinaari
-currenciesDisplayName.SLL=Sierra Leonen leone
-currenciesDisplayName.BTN=Bhutanin ngultrum
-currenciesDisplayName.TRL=Turkin liira
-currenciesDisplayName.KMF=Komorien frangi
-currenciesDisplayName.ANG=Alankomaiden Antillien guldeni
-currenciesDisplayName.CZK=T\u0161ekin koruna
-currenciesDisplayName.AZM=Azerbaid\u017eanin manat
-currenciesDisplayName.KYD=Caymansaarten dollari
-currenciesDisplayName.GMD=Gambian dalasi
-currenciesDisplayName.BGN=Bulgarian uusi lev
-currenciesDisplayName.CAD=Kanadan dollari
-currenciesDisplayName.MXV=Meksikon UDI
-currenciesDisplayName.BGL=Bulgarian kova leva
-currenciesDisplayName.VEB=Venezuelan bolivar
-currenciesDisplayName.MLF=Malin frangi
-currenciesDisplayName.ILS=Israelin uusi sekeli
-currenciesDisplayName.MXP=Meksikon hopeapeso (1861-1992)
-currenciesDisplayName.PES=Perun sol
-currenciesDisplayName.GYD=Guyanan dollari
-currenciesDisplayName.MXN=Meksikon peso
-currenciesDisplayName.ILP=Israelin punta
-currenciesDisplayName.SKK=Slovakin koruna
-currenciesDisplayName.CYP=Kyproksen punta
-currenciesDisplayName.XDR=erityisnosto-oikeus
-currenciesDisplayName.PEN=Perun uusi sol
-currenciesDisplayName.LRD=Liberian dollari
-currenciesDisplayName.PEI=Perun inti
-currenciesDisplayName.AMD=Armenian dram
-currenciesDisplayName.BSD=Bahaman dollari
-currenciesDisplayName.HRK=Kroatian kuna
-currenciesDisplayName.CLP=Chilen peso
-currenciesDisplayName.HRD=Kroatian dinaari
-currenciesDisplayName.XPF=CFP-frangi
-currenciesDisplayName.FRF=Ranskan frangi
-currenciesDisplayName.BRR=Brasilian cruzeiro
-currenciesDisplayName.MKD=Makedonian dinaari
-currenciesDisplayName.CLF=Chilen unidades de fomento
-currenciesDisplayName.ALL=Albanian lek
-currenciesDisplayName.BRN=Brasilian uusi cruzado
-currenciesDisplayName.MWK=Malawin kwacha
-currenciesDisplayName.BRL=Brasilian real
-currenciesDisplayName.TPE=Timorin escudo
-currenciesDisplayName.BRE=Brasilian cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brasilian cruzado
-currenciesDisplayName.BRB=Brasilian uusi cruzeiro (1967-1986)
-currenciesDisplayName.DEM=Saksan markka
-currenciesDisplayName.KWD=Kuwaitin dinaari
-currenciesDisplayName.XCD=It\u00e4-Karibian dollari
-currenciesDisplayName.NPR=Nepalin rupia
-currenciesDisplayName.GWP=Guinea-Bissaun peso
-currenciesDisplayName.YUN=Jugoslavian vaihdettava dinaari
-currenciesDisplayName.SVC=El Salvadorin colon
-currenciesDisplayName.YUM=Jugoslavian uusi dinaari
+groupingSeparator=\u00a0
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=Jemenin dinaaria
+currenciesDisplayName.KES=Kenian \u0161illinki\u00e4
+currenciesDisplayName.TWD=Taiwanin uutta dollaria
+currenciesDisplayName.LKR=Sri Lankan rupiaa
+currenciesDisplayName.BYB=Valko-Ven\u00e4j\u00e4n uutta ruplaa (1994\u20131999)
+currenciesDisplayName.TJS=Tad\u017eikistanin somonia
+currenciesDisplayName.RWF=Ruandan frangia
+currenciesDisplayName.ERN=Eritrean nakfaa
+currenciesDisplayName.TJR=Tad\u017eikistanin ruplaa
+currenciesDisplayName.SDP=Sudanin puntaa (1957\u20131999)
+currenciesDisplayName.GRD=Kreikan drakmaa
+currenciesDisplayName.AFN=Afganistanin afgaania
+currenciesDisplayName.IEP=Irlannin puntaa
+currenciesDisplayName.ARS=Argentiinan pesoa
+currenciesDisplayName.SDG=Sudanin puntaa
+currenciesDisplayName.ARP=Argentiinan pesoa (1983\u20131985)
+currenciesDisplayName.SDD=Sudanin dinaaria
+currenciesDisplayName.GEL=Georgian laria
+currenciesDisplayName.GEK=Georgian kuponkilaria
+currenciesDisplayName.AFA=Afganistanin afgaania (1927-2002)
+currenciesDisplayName.CRC=Costa Rican colonia
+currenciesDisplayName.FKP=Falklandinsaarten puntaa
+currenciesDisplayName.EEK=Viron kruunua
+currenciesDisplayName.MDL=Moldovan leuta
+currenciesDisplayName.HKD=Hongkongin dollaria
+currenciesDisplayName.IQD=Irakin dinaaria
+currenciesDisplayName.ARA=Argentiinan australia
+currenciesDisplayName.SCR=Seychellien rupiaa
+currenciesDisplayName.VUV=Vanuatun vatua
+currenciesDisplayName.KPW=Pohjois-Korean wonia
+currenciesDisplayName.DKK=Tanskan kruunua
+currenciesDisplayName.IDR=Indonesian rupiaa
+currenciesDisplayName.GQE=P\u00e4iv\u00e4ntasaajan Guinean ekwele\u00e4 (\u20131986)
+currenciesDisplayName.SOS=Somalian \u0161illinki\u00e4
+currenciesDisplayName.LVR=Latvian ruplaa
+currenciesDisplayName.EQE=P\u00e4iv\u00e4ntasaajan Guinean ekwele\u00e4 (1986\u20131989)
+currenciesDisplayName.AED=Arabiemiirikuntien dirhamia
+currenciesDisplayName.LVL=Latvian latia
+currenciesDisplayName.BWP=Botswanan pulaa
+currenciesDisplayName.RUR=Ven\u00e4j\u00e4n ruplaa (1991\u20131998)
+currenciesDisplayName.NIO=Nicaraguan kultacordobaa
+currenciesDisplayName.XTS=testaustarkoitukseen varattua valuuttakoodi
+currenciesDisplayName.MOP=Macaon patacaa
+currenciesDisplayName.FJD=Fid\u017ein dollaria
+currenciesDisplayName.ADP=Andorran pesetaa
+currenciesDisplayName.RUB=Ven\u00e4j\u00e4n ruplaa
+currenciesDisplayName.CDF=Kongon frangia
+currenciesDisplayName.NIC=Nicaraguan cordobaa
+currenciesDisplayName.DJF=Djiboutin frangia
+currenciesDisplayName.UZS=Uzbekistanin somia
+currenciesDisplayName.SBD=Salomonsaarten dollaria
+currenciesDisplayName.ECV=Ecuadorin UVC'ta
+currenciesDisplayName.LUL=Luxemburgin rahoitusfrangia
+currenciesDisplayName.ECS=Ecuadorin sucrea
+currenciesDisplayName.THB=Thaimaan bahtia
+currenciesDisplayName.PHP=Filippiinien pesoa
+currenciesDisplayName.LUF=Luxemburgin frangia
+currenciesDisplayName.RHD=Rhodesian dollaria
+currenciesDisplayName.LUC=Luxemburgin vaihdettavaa frangia
+currenciesDisplayName.FIM=Suomen markkaa
+currenciesDisplayName.TTD=Trinidadin ja Tobagon dollaria
+currenciesDisplayName.SZL=Swazimaan lilangenia
+currenciesDisplayName.MNT=Mongolian tugrikia
+currenciesDisplayName.UAK=Ukrainan karbovanetzi\u00e4
+currenciesDisplayName.SAR=Saudi-Arabian rialia
+currenciesDisplayName.COU=Kolumbian unidad de valor realia
+currenciesDisplayName.UAH=Ukrainan hryvniaa
+currenciesDisplayName.HUF=Unkarin forinttia
+currenciesDisplayName.QAR=Qatarin rialia
+currenciesDisplayName.COP=Kolumbian pesoa
+currenciesDisplayName.LTT=Liettuan talonasia
+currenciesDisplayName.PTE=Portugalin escudoa
+currenciesDisplayName.UYU=Uruguayn pesoa
+currenciesDisplayName.AOR=Angolan kwanza reajustadoa (1995\u20131999)
+currenciesDisplayName.GBP=Englannin puntaa
+currenciesDisplayName.ZRZ=Zairen zairea
+currenciesDisplayName.INR=Intian rupiaa
+currenciesDisplayName.BIF=Burundin frangia
+currenciesDisplayName.XFU=Ranskan UIC-frangia
+currenciesDisplayName.MZN=Mosambikin meticalia
+currenciesDisplayName.LTL=Liettuan liti\u00e4
+currenciesDisplayName.AON=Angolan uutta kwanzaa (1990\u20132000)
+currenciesDisplayName.UYP=Uruguayn pesoa (1975\u20131993)
+currenciesDisplayName.MZM=Mosambikin meticalia (1980\u20132006)
+currenciesDisplayName.KZT=Kazakstanin tenge\u00e4
+currenciesDisplayName.AOK=Angolan kwanzaa (1977\u20131990)
+currenciesDisplayName.GNS=Guinean syli\u00e4
+currenciesDisplayName.BUK=Burman kyatia
+currenciesDisplayName.XFO=Ranskan kultafrangia
+currenciesDisplayName.PGK=Papua-Uuden-Guinean kinaa
+currenciesDisplayName.UYI=Uruguayn pesoa en unidades indexadas
+currenciesDisplayName.SYP=Syyrian puntaa
+currenciesDisplayName.OMR=Omanin rialia
+currenciesDisplayName.MZE=Mosambikin escudoa
+currenciesDisplayName.ZRN=Zairen uutta zairea
+currenciesDisplayName.NGN=Nigerian nairaa
+currenciesDisplayName.CNY=Kiinan yuania
+currenciesDisplayName.AOA=Angolan kwanzaa
+currenciesDisplayName.MAF=Marokon frangia
+currenciesDisplayName.RSD=Serbian dinaaria
+currenciesDisplayName.GNF=Guinean frangia
+currenciesDisplayName.MAD=Marokon dirhamia
+currenciesDisplayName.HTG=Haitin gourdea
+currenciesDisplayName.TRY=Turkin liiraa
+currenciesDisplayName.MMK=Myanmarin kyatia
+currenciesDisplayName.XRE=RINET-rahastoyksikk\u00f6\u00e4
+currenciesDisplayName.MYR=Malesian ringgiti\u00e4
+currenciesDisplayName.LSM=Lesothon malotia
+currenciesDisplayName.XEU=Euroopan valuuttayksikk\u00f6\u00e4 (ECU)
+currenciesDisplayName.LSL=Lesothon lotia
+currenciesDisplayName.SLL=Sierra Leonen leonea
+currenciesDisplayName.BHD=Bahrainin dinaaria
+currenciesDisplayName.BTN=Bhutanin ngultrumia
+currenciesDisplayName.TRL=Turkin vanhaa liiraa
+currenciesDisplayName.KMF=Komorien frangia
+currenciesDisplayName.CZK=T\u0161ekin korunaa
+currenciesDisplayName.ANG=Alankomaiden Antillien guldenia
+currenciesDisplayName.AZN=Azerbaid\u017eanin manatia
+currenciesDisplayName.AZM=Azerbaid\u017eanin manatia (1993\u20132006)
+currenciesDisplayName.KYD=Caymansaarten dollaria
+currenciesDisplayName.GMD=Gambian dalasia
+currenciesDisplayName.VEF=Venezuelan bolivar fuertea
+currenciesDisplayName.BGN=Bulgarian uutta levaa
+currenciesDisplayName.MXV=Meksikon UDI'ta
+currenciesDisplayName.CAD=Kanadan dollaria
+currenciesDisplayName.BGL=Bulgarian kovaa levaa
+currenciesDisplayName.VEB=Venezuelan bolivaria
+currenciesDisplayName.MLF=Malin frangia
+currenciesDisplayName.MXP=Meksikon hopeapesoa (1861\u20131992)
+currenciesDisplayName.ILS=Israelin uutta sekeli\u00e4
+currenciesDisplayName.PES=Perun solia
+currenciesDisplayName.MXN=Meksikon pesoa
+currenciesDisplayName.GYD=Guyanan dollaria
+currenciesDisplayName.ILP=Israelin puntaa
+currenciesDisplayName.CYP=Kyproksen puntaa
+currenciesDisplayName.SKK=Slovakian korunaa
+currenciesDisplayName.XDR=erityisnosto-oikeutta (SDR)
+currenciesDisplayName.PEN=Perun uutta solia
+currenciesDisplayName.LRD=Liberian dollaria
+currenciesDisplayName.PEI=Perun inti\u00e4
+currenciesDisplayName.AMD=Armenian dramia
+currenciesDisplayName.BSD=Bahaman dollaria
+currenciesDisplayName.XPT=platinayksikk\u00f6\u00e4
+currenciesDisplayName.HRK=Kroatian kunaa
+currenciesDisplayName.CLP=Chilen pesoa
+currenciesDisplayName.HRD=Kroatian dinaaria
+currenciesDisplayName.XPF=CFP-frangia
+currenciesDisplayName.FRF=Ranskan frangia
+currenciesDisplayName.XPD=palladiumyksikk\u00f6\u00e4
+currenciesDisplayName.BRR=Brasilian cruzeiroa
+currenciesDisplayName.MKD=Makedonian dinaaria
+currenciesDisplayName.CLF=Chilen unidades de fomentoa
+currenciesDisplayName.ALL=Albanian leki\u00e4
+currenciesDisplayName.BRN=Brasilian uutta cruzadoa
+currenciesDisplayName.MWK=Malawin kwachaa
+currenciesDisplayName.BRL=Brasilian realia
+currenciesDisplayName.TPE=Timorin escudoa
+currenciesDisplayName.BRE=Brasilian cruzeiroa (1990\u20131993)
+currenciesDisplayName.BRC=Brasilian cruzadoa
+currenciesDisplayName.BRB=Brasilian uutta cruzeiroa (1967\u20131986)
+currenciesDisplayName.DEM=Saksan markkaa
+currenciesDisplayName.KWD=Kuwaitin dinaaria
+currenciesDisplayName.XCD=It\u00e4-Karibian dollaria
+currenciesDisplayName.NPR=Nepalin rupiaa
+currenciesDisplayName.GWP=Guinea-Bissaun pesoa
+currenciesDisplayName.YUN=Jugoslavian vaihdettavaa dinaaria
+currenciesDisplayName.SVC=El Salvadorin colonia
+currenciesDisplayName.YUM=Jugoslavian uutta dinaaria
currenciesDisplayName.BEL=Belgian frangi (rahoitus)
-currenciesDisplayName.SIT=Slovenian tolar
-currenciesDisplayName.JPY=Japanin jeni
-currenciesDisplayName.XOF=CFA-frangi BCEAO
-currenciesDisplayName.MVR=Malediivien rufiyaa
-currenciesDisplayName.GWE=Portugalin Guinean escudo
-currenciesDisplayName.BEF=Belgian frangi
-currenciesDisplayName.TOP=Tongan pa\u02bbanga
-currenciesDisplayName.YUD=Jugoslavian kova dinaari
+currenciesDisplayName.SIT=Slovenian tolaria
+currenciesDisplayName.JPY=Japanin jeni\u00e4
+currenciesDisplayName.XOF=CFA-frangia BCEAO
+currenciesDisplayName.MVR=Malediivien rufiyaata
+currenciesDisplayName.BEF=Belgian frangia
+currenciesDisplayName.GWE=Portugalin Guinean escudoa
+currenciesDisplayName.TOP=Tongan pa\u2019angaa
+currenciesDisplayName.YUD=Jugoslavian kovaa dinaaria
currenciesDisplayName.BEC=Belgian frangi (vaihdettava)
-currenciesDisplayName.SUR=Neuvostoliiton rupla
-currenciesDisplayName.ROL=Romanian lei
-currenciesDisplayName.DDM=It\u00e4-Saksan ostmark
-currenciesDisplayName.BDT=Bangladeshin taka
-currenciesDisplayName.XBD=EUA (XBD)
-currenciesDisplayName.AWG=Aruban guldeni
-currenciesDisplayName.XBC=EUA (XBC)
-currenciesDisplayName.XBB=Euroopan rahayksikk\u00f6 (EMU)
-currenciesDisplayName.XBA=EURCO
-currenciesDisplayName.NOK=Norjan kruunu
-currenciesDisplayName.MUR=Mauritiuksen rupia
-currenciesDisplayName.ZAR=Etel\u00e4-Afrikan randi
-currenciesDisplayName.SHP=Saint Helenan punta
-currenciesDisplayName.XAU=kulta
+currenciesDisplayName.SUR=Neuvostoliiton ruplaa
+currenciesDisplayName.RON=Romanian uutta leuta
+currenciesDisplayName.ROL=Romanian vanhaa leuta
+currenciesDisplayName.BDT=Bangladeshin takaa
+currenciesDisplayName.DDM=It\u00e4-Saksan markkaa
+currenciesDisplayName.XBD=EUA'ta (XBD)
+currenciesDisplayName.AWG=Aruban guldenia
+currenciesDisplayName.XBC=EUA'ta (XBC)
+currenciesDisplayName.XBB=Euroopan rahayksikk\u00f6\u00e4 (EMU)
+currenciesDisplayName.XBA=EURCO'a
+currenciesDisplayName.NOK=Norjan kruunua
+currenciesDisplayName.MUR=Mauritiuksen rupiaa
+currenciesDisplayName.ZAR=Etel\u00e4-Afrikan randia
+currenciesDisplayName.SHP=Saint Helenan puntaa
+currenciesDisplayName.XAU=kultayksikk\u00f6\u00e4
currenciesDisplayName.ZAL=Etel\u00e4-Afrikan randi (rahoitus)
-currenciesDisplayName.VND=Vietnamin dong
-currenciesDisplayName.TZS=Tansanian shillinki
-currenciesDisplayName.GIP=Gibraltarin punta
-currenciesDisplayName.TND=Tunisian dinaari
-currenciesDisplayName.CVE=Kap Verden escudo
-currenciesDisplayName.UGX=Ugandan shillinki
-currenciesDisplayName.ZMK=Sambian kwacha
-currenciesDisplayName.JOD=Jordanian dinaari
-currenciesDisplayName.XAF=CFA-frangi BEAC
-currenciesDisplayName.LBP=Libanonin punta
-currenciesDisplayName.UGS=Ugandan shillinki (1966-1987)
-currenciesDisplayName.STD=S\u00e3o Tom\u00e9n ja Princip\u00e9n dobra
-currenciesDisplayName.WST=L\u00e4nsi-Samoan tala
-currenciesDisplayName.KHR=Kambod\u017ean riel
-currenciesDisplayName.EUR=euro
-currenciesDisplayName.DOP=Dominikaanisen tasavallan peso
-currenciesDisplayName.BOV=Bolivian mvdol
-currenciesDisplayName.MTP=Maltan punta
-currenciesDisplayName.USS=Yhdysvaltain dollari (sama p\u00e4iv\u00e4)
-currenciesDisplayName.BOP=Bolivian peso
-currenciesDisplayName.MTL=Maltan liira
-currenciesDisplayName.CUP=Kuuban peso
-currenciesDisplayName.TMM=Turkmenistanin manat
-currenciesDisplayName.USN=Yhdysvaltain dollari (seuraava p\u00e4iv\u00e4)
-currenciesDisplayName.SGD=Singaporen dollari
-currenciesDisplayName.NZD=Uuden-Seelannin dollari
-currenciesDisplayName.USD=Yhdysvaltain dollari
-currenciesDisplayName.HNL=Hondurasin lempira
-currenciesDisplayName.BOB=boliviano
-currenciesDisplayName.ITL=Italian liira
-currenciesDisplayName.PAB=Panaman balboa
-currenciesDisplayName.GTQ=Guatemalan quetzal
-currenciesDisplayName.LAK=Laosin kip
-currenciesDisplayName.GHC=Ghanan cedi
-currenciesDisplayName.AUD=Australian dollari
-currenciesDisplayName.NAD=Namibian dollari
-currenciesDisplayName.KGS=Kirgistanin som
-currenciesDisplayName.MGF=Madagaskarin frangi
-currenciesDisplayName.CHF=Sveitsin frangi
-currenciesDisplayName.BBD=Barbadosin dollari
-currenciesDisplayName.MGA=Madagaskarin ariary
-currenciesDisplayName.PYG=Paraguayn guarani
-currenciesDisplayName.PLZ=Puolan zloty (1950-1995)
-currenciesDisplayName.YER=Jemenin rial
-currenciesDisplayName.ATS=It\u00e4vallan shillinki
-currenciesDisplayName.ETB=Etiopian birr
-currenciesDisplayName.BND=Brunein dollari
-currenciesDisplayName.JMD=Jamaikan dollari
-currenciesDisplayName.EGP=Egyptin punta
-currenciesDisplayName.PLN=Puolan zloty
-currenciesDisplayName.DZD=Algerian dinaari
-currenciesDisplayName.ISK=Islannin kruunu
-currenciesDisplayName.SRG=Surinamin guldeni
-currenciesDisplayName.LYD=Libyan dinaari
-currenciesDisplayName.BZD=Belizen dollari
-currenciesDisplayName.BAM=Bosnia-Hertsegovinan vaihdettava markka
-currenciesDisplayName.ESP=Espanjan peseta
-currenciesDisplayName.KRW=Etel\u00e4-Korean won
-currenciesDisplayName.NLG=Alankomaiden guldeni
-currenciesDisplayName.MRO=Mauritanian ouguiya
-currenciesDisplayName.BAD=Bosnia-Hertsegovinan dinaari
-currenciesDisplayName.ZWD=Zimbabwen dollari
-currenciesDisplayName.SEK=Ruotsin kruunu
-currenciesDisplayName.CSK=T\u0161ekkoslovakian kova koruna
-currenciesDisplayName.BYR=Valko-Ven\u00e4j\u00e4n rupla
-currenciesDisplayName.IRR=Iranin rial
-currenciesDisplayName.PKR=Pakistanin rupia
-currenciesDisplayName.BMD=Bermudan dollari
-currenciesSymbol.BGL=lev
-currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
-currenciesSymbol.LKR=SL Re
-currenciesSymbol.CYP=\u00a3C
-currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
-currenciesSymbol.VUV=VT
-currenciesSymbol.MWK=MK
-currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
-currenciesSymbol.IEP=IR\u00a3
-currenciesSymbol.AMD=dram
-currenciesSymbol.TOP=T$
-currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
-currenciesSymbol.CLP=Ch$
-currenciesSymbol.KWD=KD
-currenciesSymbol.GEL=lari
-currenciesSymbol.AFN=Af
-currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
-currenciesSymbol.IQD=ID
-currenciesSymbol.HKD=HK$
-currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
-currenciesSymbol.ALL=lek
-currenciesSymbol.CRC=C
-currenciesSymbol.IDR=Rp
-currenciesSymbol.DKK=DKr
-currenciesSymbol.TZS=T Sh
-currenciesSymbol.SBD=SI$
-currenciesSymbol.NOK=NKr
-currenciesSymbol.UGX=U Sh
-currenciesSymbol.BEF=BF
-currenciesSymbol.TTD=TT$
-currenciesSymbol.SZL=E
-currenciesSymbol.STD=Db
-currenciesSymbol.SAR=SRl
-currenciesSymbol.FJD=F$
-currenciesSymbol.UYU=Ur$
-currenciesSymbol.BDT=Tk
-currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
-currenciesSymbol.MNT=Tug
-currenciesSymbol.DJF=DF
-currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
-currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
-currenciesSymbol.SYP=LS
-currenciesSymbol.MTL=Lm
+currenciesDisplayName.VND=Vietnamin dongia
+currenciesDisplayName.TZS=Tansanian \u0161illinki\u00e4
+currenciesDisplayName.GIP=Gibraltarin puntaa
+currenciesDisplayName.TND=Tunisian dinaaria
+currenciesDisplayName.CVE=Kap Verden escudoa
+currenciesDisplayName.UGX=Ugandan \u0161illinki\u00e4
+currenciesDisplayName.XAG=hopeayksikk\u00f6\u00e4
+currenciesDisplayName.ZMK=Sambian kwachaa
+currenciesDisplayName.JOD=Jordanian dinaaria
+currenciesDisplayName.XAF=CFA-frangia BEAC
+currenciesDisplayName.LBP=Libanonin puntaa
+currenciesDisplayName.UGS=Ugandan \u0161illinki\u00e4 (1966\u20131987)
+currenciesDisplayName.STD=S\u00e3o Tom\u00e9n ja Pr\u00edncipen dobraa
+currenciesDisplayName.WST=Samoan talaa
+currenciesDisplayName.KHR=Kambod\u017ean rieli\u00e4
+currenciesDisplayName.DOP=Dominikaanisen tasavallan pesoa
+currenciesDisplayName.EUR=euroa
+currenciesDisplayName.BOV=Bolivian mvdol'ia
+currenciesDisplayName.MTP=Maltan puntaa
+currenciesDisplayName.USS=Yhdysvaltain dollaria (sama p\u00e4iv\u00e4)
+currenciesDisplayName.BOP=Bolivian pesoa
+currenciesDisplayName.CUP=Kuuban pesoa
+currenciesDisplayName.MTL=Maltan liiraa
+currenciesDisplayName.TMM=Turkmenistanin manatia
+currenciesDisplayName.USN=Yhdysvaltain dollaria (seuraava p\u00e4iv\u00e4)
+currenciesDisplayName.GHS=Ghanan cedi\u00e4
+currenciesDisplayName.SGD=Singaporen dollaria
+currenciesDisplayName.NZD=Uuden-Seelannin dollaria
+currenciesDisplayName.USD=Yhdysvaltain dollaria
+currenciesDisplayName.BOB=Bolivian bolivianoa
+currenciesDisplayName.HNL=Hondurasin lempiraa
+currenciesDisplayName.CHW=Sveitsin WIR-frangia
+currenciesDisplayName.ITL=Italian liiraa
+currenciesDisplayName.PAB=Panaman balboaa
+currenciesDisplayName.GTQ=Guatemalan quetzalia
+currenciesDisplayName.XXX=tuntematonta tai virheellist\u00e4 rahayksikk\u00f6\u00e4
+currenciesDisplayName.AUD=Australian dollaria
+currenciesDisplayName.GHC=Ghanan cedi\u00e4 (1979\u20132007)
+currenciesDisplayName.LAK=Laosin kipi\u00e4
+currenciesDisplayName.NAD=Namibian dollaria
+currenciesDisplayName.KGS=Kirgisian somia
+currenciesDisplayName.MGF=Madagaskarin frangia
+currenciesDisplayName.BBD=Barbadosin dollaria
+currenciesDisplayName.CHF=Sveitsin frangia
+currenciesDisplayName.CHE=Sveitsin WIR-euroa
+currenciesDisplayName.MGA=Madagaskarin ariarya
+currenciesDisplayName.PYG=Paraguayn guarania
+currenciesDisplayName.PLZ=Puolan zlotya (1950\u20131995)
+currenciesDisplayName.YER=Jemenin rialia
+currenciesDisplayName.ATS=It\u00e4vallan \u0161illinki\u00e4
+currenciesDisplayName.ETB=Etiopian birri\u00e4
+currenciesDisplayName.BND=Brunein dollaria
+currenciesDisplayName.EGP=Egyptin puntaa
+currenciesDisplayName.JMD=Jamaikan dollaria
+currenciesDisplayName.PLN=Puolan zlotya
+currenciesDisplayName.DZD=Algerian dinaaria
+currenciesDisplayName.ISK=Islannin kruunua
+currenciesDisplayName.SRG=Surinamin guldenia
+currenciesDisplayName.LYD=Libyan dinaaria
+currenciesDisplayName.SRD=Surinamin dollaria
+currenciesDisplayName.BAM=Bosnia-Hertsegovinan vaihdettavaa markkaa
+currenciesDisplayName.BZD=Belizen dollaria
+currenciesDisplayName.ESP=Espanjan pesetaa
+currenciesDisplayName.KRW=Etel\u00e4-Korean wonia
+currenciesDisplayName.NLG=Alankomaiden guldenia
+currenciesDisplayName.MRO=Mauritanian ouguiyaa
+currenciesDisplayName.BAD=Bosnia-Hertsegovinan dinaaria
+currenciesDisplayName.ZWD=Zimbabwen dollaria
+currenciesDisplayName.SEK=Ruotsin kruunua
+currenciesDisplayName.CSK=T\u0161ekkoslovakian kovaa korunaa
+currenciesDisplayName.BYR=Valko-Ven\u00e4j\u00e4n ruplaa
+currenciesDisplayName.ESB=Espanjan pesetaa (vaihdettava tili)
+currenciesDisplayName.IRR=Iranin rialia
+currenciesDisplayName.ESA=Espanjan pesetaa (A-tili)
+currenciesDisplayName.PKR=Pakistanin rupiaa
+currenciesDisplayName.BMD=Bermudan dollaria
+currenciesDisplayName.CSD=Serbian vanhaa dinaaria
+currenciesSymbol.INR=INR
+currenciesSymbol.NOK=Nkr
+currenciesSymbol.ITL=ITL
+currenciesSymbol.JPY=\u00a5
+currenciesSymbol.DKK=Tkr
currenciesSymbol.FIM=mk
-currenciesSymbol.MZM=Mt
-currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
-currenciesSymbol.HUF=Ft
-currenciesSymbol.NZD=$NZ
-currenciesSymbol.OMR=RO
-currenciesSymbol.KZT=T
-currenciesSymbol.DOP=RD$
-currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
-currenciesSymbol.COP=Col$
-currenciesSymbol.HNL=L
-currenciesSymbol.KGS=som
-currenciesSymbol.ZWD=Z$
-currenciesSymbol.MYR=RM
-currenciesSymbol.SRG=Sf
-currenciesSymbol.GTQ=Q
-currenciesSymbol.BIF=Fbu
-currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
-currenciesSymbol.VEB=Be
-currenciesSymbol.BOB=Bs
-currenciesSymbol.CNY=Y
-currenciesSymbol.KMF=CF
-currenciesSymbol.SEK=SKr
-currenciesSymbol.AUD=$A
-currenciesSymbol.LYD=LD
-currenciesSymbol.JMD=J$
-currenciesSymbol.SKK=Sk
-currenciesSymbol.CHF=SwF
-currenciesSymbol.ETB=Br
-currenciesSymbol.MRO=UM
-currenciesSymbol.BBD=BDS$
-currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
-currenciesSymbol.BTN=Nu
-currenciesSymbol.MXN=MEX$
-currenciesSymbol.DZD=DA
-currenciesSymbol.ANG=NA f.
-currenciesSymbol.BZD=BZ$
-currenciesSymbol.IRR=RI
-currenciesSymbol.GYD=G$
-currenciesSymbol.BAM=KM
-currenciesSymbol.CAD=Can$
-shortMonths=tammi®helmi®maalis®huhti®touko®kes\u00e4®hein\u00e4®elo®syys®loka®marras®joulu®®
-months=tammikuu®helmikuu®maaliskuu®huhtikuu®toukokuu®kes\u00e4kuu®hein\u00e4kuu®elokuu®syyskuu®lokakuu®marraskuu®joulukuu®®
-shortWeekdays=®su®ma®ti®ke®to®pe®la®
-weekdays=®sunnuntai®maanantai®tiistai®keskiviikko®torstai®perjantai®lauantai®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=eKr.®jKr.®
-ampms=epp.®jpp.®
+currenciesSymbol.BRL=BRL
+currenciesSymbol.USD=$
+currenciesSymbol.SEK=Rkr
+currenciesSymbol.GBP=\u00a3
+shortMonths=tammi\u00aehelmi\u00aemaalis\u00aehuhti\u00aetouko\u00aekes\u00e4\u00aehein\u00e4\u00aeelo\u00aesyys\u00aeloka\u00aemarras\u00aejoulu\u00ae\u00ae
+months=tammikuu\u00aehelmikuu\u00aemaaliskuu\u00aehuhtikuu\u00aetoukokuu\u00aekes\u00e4kuu\u00aehein\u00e4kuu\u00aeelokuu\u00aesyyskuu\u00aelokakuu\u00aemarraskuu\u00aejoulukuu\u00ae\u00ae
+shortWeekdays=\u00aesu\u00aema\u00aeti\u00aeke\u00aeto\u00aepe\u00aela\u00ae
+weekdays=\u00aesunnuntai\u00aemaanantai\u00aetiistai\u00aekeskiviikko\u00aetorstai\u00aeperjantai\u00aelauantai\u00ae
+eras=eKr.\u00aejKr.\u00ae
+ampms=ap.\u00aeip.\u00ae
shortDateFormat=d.M.yyyy
mediumDateFormat=d.M.yyyy
-longDateFormat=d. MMMM'ta 'yyyy
-fullDateFormat=EEEE'na 'd. MMMM'ta 'yyyy
+longDateFormat=d. MMMM'ta' yyyy
+fullDateFormat=EEEE d. MMMM'ta' yyyy
shortTimeFormat=H.mm
mediumTimeFormat=H.mm.ss
-longTimeFormat='klo 'H.mm.ss
+longTimeFormat=H.mm.ss z
fullTimeFormat=H.mm.ss z
-zoneStrings=Pacific/Honolulu®HST®Havaijin normaaliaika®HST®Havaijin normaaliaika®©Europe/Bucharest®EET®It\u00e4-Euroopan normaaliaika®EEST®It\u00e4-Euroopan kes\u00e4aika®©America/Los_Angeles®PST®Yhdysvaltain Tyynenmeren normaaliaika®PDT®Yhdysvaltain Tyynenmeren kes\u00e4aika®©America/Denver®MST®Kalliovuorten normaaliaika®MDT®Kalliovuorten kes\u00e4aika®©Asia/Jerusalem®IST®Israelin normaaliaika®IDT®Israelin kes\u00e4aika®©America/Phoenix®MST®Kalliovuorten normaaliaika®MST®Kalliovuorten normaaliaika®©America/Chicago®CST®Yhdysvaltain keskinen normaaliaika>®CDT®Yhdysvaltain keskinen kes\u00e4aika®©America/Indianapolis®EST®Yhdysvaltain it\u00e4inen normaaliaika®EST®Yhdysvaltain it\u00e4inen normaaliaika®©America/St_Johns®CNT®Newfoundlandin normaaliaika®CDT®Newfoundlandin kes\u00e4aika®©America/Anchorage®AST®Alaskan normaaliaika®ADT®Alaskan kes\u00e4aika®©Asia/Shanghai®CTT®Kiinan normaaliaika®CTT®Kiinan normaaliaika®©Asia/Tokyo®JST®Japanin normaaliaika®JST®Japanin normaaliaika®©Europe/Paris®CET®Keski-Euroopan normaaliaika®CEST®Keski-Euroopan kes\u00e4aika®©America/New_York®EST®Yhdysvaltain it\u00e4inen normaaliaika®EDT®Yhdysvaltain it\u00e4inen kes\u00e4aika®©America/Halifax®AST®Kanadan Atlantin normaaliaika®ADT®Kanadan Atlantin kes\u00e4aika®©Africa/Casablanca®GMT®Greenwichin aika®GMT®Greenwichin aika®©
+zoneStrings=America_Eastern\u00aeYhdysvaltain it\u00e4inen normaaliaika\u00ae\u00aeYhdysvaltain it\u00e4inen kes\u00e4aika\u00ae\u00ae\u00a9China\u00aeKiinan normaaliaika\u00aeCST (Kiina)\u00aeKiinan kes\u00e4aika\u00aeCDT (Kiina)\u00ae\u00a9Europe_Eastern\u00aeIt\u00e4-Euroopan normaaliaika\u00ae\u00aeIt\u00e4-Euroopan kes\u00e4aika\u00ae\u00ae\u00a9Europe_Central\u00aeKeski-Euroopan normaaliaika\u00ae\u00aeKeski-Euroopan kes\u00e4aika\u00ae\u00ae\u00a9America_Mountain\u00aeKalliovuorten normaaliaika\u00ae\u00aeKalliovuorten kes\u00e4aika\u00ae\u00ae\u00a9America_Central\u00aeYhdysvaltain keskinen normaaliaika\u00ae\u00aeYhdysvaltain keskinen kes\u00e4aika\u00ae\u00ae\u00a9GMT\u00aeGreenwichin normaaliaika\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00aeKanadan Atlantin normaaliaika\u00ae\u00aeKanadan Atlantin kes\u00e4aika\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundlandin normaaliaika\u00ae\u00aeNewfoundlandin kes\u00e4aika\u00ae\u00ae\u00a9America_Pacific\u00aeYhdysvaltain Tyynenmeren normaaliaika\u00ae\u00aeYhdysvaltain Tyynenmeren kes\u00e4aika\u00ae\u00ae\u00a9Israel\u00aeIsraelin normaaliaika\u00aeIST (Israel)\u00aeIsraelin kes\u00e4aika\u00ae\u00ae\u00a9Alaska\u00aeAlaskan normaaliaika\u00ae\u00aeAlaskan kes\u00e4aika\u00ae\u00ae\u00a9Japan\u00aeJapanin normaaliaika\u00ae\u00aeJapanin kes\u00e4aika\u00ae\u00ae\u00a9
territories.TL=It\u00e4-Timor
territories.TK=Tokelau
territories.TJ=Tad\u017eikistan
@@ -392,19 +336,20 @@ territories.GN=Guinea
territories.GM=Gambia
territories.GL=Gr\u00f6nlanti
territories.SV=El Salvador
-territories.062=etel\u00e4inen Keski-Aasia
+territories.062=Etel\u00e4- ja Keski-Aasia
territories.ST=S\u00e3o Tom\u00e9 ja Pr\u00edncipe
-territories.061=Polynesia
territories.GI=Gibraltar
+territories.061=Polynesia
territories.GH=Ghana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Ranskan Guayana
territories.GE=Georgia
territories.SO=Somalia
territories.GD=Grenada
territories.SN=Senegal
territories.SM=San Marino
-territories.GB=Iso-Britannia
+territories.GB=Britannia
territories.SL=Sierra Leone
territories.GA=Gabon
territories.SK=Slovakia
@@ -418,36 +363,38 @@ territories.SC=Seychellit
territories.SB=Salomonsaaret
territories.SA=Saudi-Arabia
territories.FR=Ranska
-territories.057=Mikronesia
territories.FO=F\u00e4rsaaret
-territories.FM=Mikronesia
+territories.057=Mikronesia
+territories.FM=Mikronesian liittovaltio
territories.RW=Ruanda
territories.054=Melanesia
-territories.053=Australia ja Uusi-Seelanti
territories.FK=Falklandinsaaret
+territories.053=Australia ja Uusi-Seelanti
territories.RU=Ven\u00e4j\u00e4
territories.FJ=Fid\u017ei
territories.FI=Suomi
+territories.RS=Serbia
territories.RO=Romania
territories.RE=R\u00e9union
territories.ET=Etiopia
territories.ES=Espanja
territories.ER=Eritrea
-territories.833=Mansaari
+territories.QU=Euroopan unioni
territories.EH=L\u00e4nsi-Sahara
territories.EG=Egypti
-territories.830=Kanaalisaaret
territories.EE=Viro
-territories.QO=tuntematon
+territories.830=Kanaalisaaret
+territories.QO=ulkomeri
territories.EC=Ecuador
territories.DZ=Algeria
territories.QA=Qatar
territories.039=Etel\u00e4-Eurooppa
territories.DO=Dominikaaninen tasavalta
territories.PY=Paraguay
-territories.035=Kaakkois-Aasia
territories.DM=Dominica
+territories.035=Kaakkois-Aasia
territories.PW=Palau
+territories.034=Etel\u00e4-Aasia
territories.DK=Tanska
territories.DJ=Djibouti
territories.PT=Portugali
@@ -477,15 +424,16 @@ territories.CN=Kiina
territories.CM=Kamerun
territories.CL=Chile
territories.CK=Cookinsaaret
+territories.021=pohjoinen Amerikka
territories.CI=Norsunluurannikko
-territories.021=Pohjois-Amerikka
territories.CH=Sveitsi
-territories.CG=Kongo (Brazzaville)
+territories.CG=Kongo-Brazzaville
territories.CF=Keski-Afrikan tasavalta
-territories.CD=Kongo (Kinshasa)
+territories.CD=Kongo-Kinshasa
territories.CC=Kookossaaret
territories.OM=Oman
territories.CA=Kanada
+territories.419=Latinalainen Amerikka ja Karibia
territories.BZ=Belize
territories.BY=Valko-Ven\u00e4j\u00e4
territories.BW=Botswana
@@ -496,23 +444,26 @@ territories.BR=Brasilia
territories.019=Amerikka
territories.018=etel\u00e4inen Afrikka
territories.NZ=Uusi-Seelanti
-territories.BO=Bolivia
territories.017=Keski-Afrikka
+territories.BO=Bolivia
territories.BN=Brunei
-territories.BM=Bermuda
territories.015=Pohjois-Afrikka
+territories.BM=Bermuda
territories.014=It\u00e4-Afrikka
+territories.BL=Saint-Barth\u00e9lemy
territories.013=V\u00e4li-Amerikka
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=L\u00e4nsi-Afrikka
+territories.BI=Burundi
+territories.172=Itsen\u00e4isten valtioiden yhteis\u00f6
territories.BH=Bahrain
territories.NR=Nauru
territories.BG=Bulgaria
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgia
+territories.ZZ=tuntematon tai virheellinen alue
territories.NO=Norja
territories.BD=Bangladesh
territories.BB=Barbados
@@ -533,24 +484,25 @@ territories.AU=Australia
territories.AT=It\u00e4valta
territories.AS=Amerikan Samoa
territories.AR=Argentiina
-territories.009=Oseania
territories.AQ=Antarktis
+territories.009=Oseania
territories.MZ=Mosambik
territories.AO=Angola
territories.MY=Malesia
territories.AN=Alankomaiden Antillit
territories.MX=Meksiko
-territories.005=Etel\u00e4-Amerikka
territories.AM=Armenia
+territories.005=Etel\u00e4-Amerikka
territories.MW=Malawi
territories.AL=Albania
territories.MV=Malediivit
+territories.003=Pohjois-Amerikka
territories.ZA=Etel\u00e4-Afrikka
territories.MU=Mauritius
territories.002=Afrikka
territories.MT=Malta
-territories.001=maailma
territories.AI=Anguilla
+territories.001=maailma
territories.MS=Montserrat
territories.MR=Mauritania
territories.AG=Antigua ja Barbuda
@@ -558,7 +510,7 @@ territories.MQ=Martinique
territories.AF=Afganistan
territories.MP=Pohjois-Mariaanit
territories.AE=Arabiemiirikunnat
-territories.MO=Macao, Kiinan erityishallintoalue
+territories.MO=Macao
territories.AD=Andorra
territories.MN=Mongolia
territories.MM=Myanmar
@@ -567,6 +519,8 @@ territories.MK=Makedonia
territories.YT=Mayotte
territories.MH=Marshallinsaaret
territories.MG=Madagaskar
+territories.MF=Saint-Martin
+territories.ME=Montenegro
territories.MD=Moldova
territories.MC=Monaco
territories.MA=Marokko
@@ -590,8 +544,9 @@ territories.KZ=Kazakstan
territories.KY=Caymansaaret
territories.KW=Kuwait
territories.145=L\u00e4nsi-Aasia
+territories.143=Keski-Aasia
territories.142=Aasia
-territories.KR=Korean tasavalta
+territories.KR=Etel\u00e4-Korea
territories.KP=Pohjois-Korea
territories.KN=Saint Kitts ja Nevis
territories.KM=Komorit
@@ -605,12 +560,13 @@ territories.JP=Japani
territories.JO=Jordania
territories.JM=Jamaika
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=Yhdysvaltain Neitsytsaaret
territories.VG=Brittil\u00e4iset Neitsytsaaret
territories.VE=Venezuela
territories.VC=Saint Vincent ja Grenadiinit
-territories.VA=Vatikaanivaltio
+territories.VA=Vatikaani
territories.IT=Italia
territories.IS=Islanti
territories.IR=Iran
@@ -619,6 +575,7 @@ territories.UZ=Uzbekistan
territories.IO=Brittil\u00e4inen Intian valtameren alue
territories.UY=Uruguay
territories.IN=Intia
+territories.IM=Mansaari
territories.IL=Israel
territories.US=Yhdysvallat
territories.IE=Irlanti
@@ -634,115 +591,124 @@ territories.HN=Honduras
territories.HM=Heard- ja McDonaldinsaaret
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=Hongkong, Kiinan erityishallintoalue
+territories.HK=Hongkong
territories.TT=Trinidad ja Tobago
territories.TR=Turkki
territories.TO=Tonga
territories.TN=Tunisia
territories.TM=Turkmenistan
+languages.gwi=gwit\u0161in
languages.akk=akkadi
-languages.gwi=gwich\u2019in
languages.eka=ekajuk
+languages.ijo=id\u017eo
languages.xh=xhosa
languages.sux=sumeri
languages.sus=susu
-languages.mis=luokittelemattomat kielet
+languages.mis=luokittelematon kieli
languages.loz=lozi
-languages.tog=tonga (Malawi)
+languages.tog=malawintonga
+languages.zbl=blisskieli
languages.pon=pohnpei
languages.min=minangkabau
languages.suk=sukuma
languages.wo=wolof
-languages.kut=kutenai
languages.lol=mongo
+languages.kut=kutenai
languages.mic=micmac
languages.wa=valloni
languages.kum=kumykki
languages.zap=sapoteekki
-languages.cus=muut kuu\u0161ilaiset kielet
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=kuu\u0161ilainen kieli
languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
languages.vo=volap\u00fck
-languages.oto=otomi-kielet
+languages.oto=otomi-kieli
languages.vi=vietnam
+languages.vai=vai
languages.rar=rarotonga
languages.ve=venda
languages.rap=rapanui
-languages.raj=rajasthani
+languages.raj=rajastani
languages.ota=osmani
languages.nzi=nzima
languages.nap=napoli
languages.uz=uzbekki
languages.uga=ugarit
-languages.tmh=tamashek
-languages.nai=Pohjois-Amerikan intiaanikielet
+languages.tmh=tama\u0161ek
+languages.nai=pohjoisamerikkalainen intiaanikieli
languages.nah=nahuatl
languages.ur=urdu
languages.fat=fanti
languages.uk=ukraina
languages.egy=muinaisegypti
+languages.zxx=ei kielellist\u00e4 sis\u00e4lt\u00f6\u00e4
languages.ug=uiguuri
languages.fan=fang
-languages.ssa=muut niilil\u00e4is-saharalaiset kielet
-languages.bat=muut balttilaiset kielet
+languages.ssa=niilil\u00e4is-saharalainen kieli
languages.mga=keski-iiri
+languages.bat=balttilainen kieli
languages.nyo=nyoro
languages.bas=basa
languages.nyn=nyankole
languages.nym=nyamwezi
+languages.gsw=sveitsinsaksa
languages.hmn=hmong
languages.ban=bali
languages.osa=osage
languages.bal=belut\u0161i
languages.ty=tahiti
-languages.bai=bamileke-kielet
+languages.bai=bamileke-kieli
languages.tw=twi
languages.srr=serer
languages.tli=tlingit
languages.tlh=klingon
languages.tt=tataari
languages.ts=tsonga
+languages.srn=sranan
languages.bad=banda
languages.tr=turkki
-languages.to=tonga (Tonga)
+languages.to=tongantonga
languages.tn=tswana
languages.tl=tagalog
languages.tk=turkmeeni
-languages.ti=tigrinya
+languages.ti=tigrinja
languages.th=thai
languages.kru=kurukh
languages.tg=tad\u017eikki
-languages.byn=blin
+languages.byn=bilin
languages.te=telugu
+languages.kro=kru-kieli
languages.csb=ka\u0161ubi
-languages.kro=kru-kielet
languages.ta=tamil
+languages.krl=karjala
languages.tkl=tokelau
languages.efi=efik
languages.sw=swahili
languages.sv=ruotsi
languages.su=sunda
languages.krc=karat\u0161ai-balkaari
-languages.st=sotho, etel\u00e4-
+languages.st=etel\u00e4sotho
languages.ss=swazi
languages.sr=serbia
languages.sq=albania
languages.men=mende
-languages.crp=muut kreolit ja pidginit
+languages.crp=kreoli- tai pidgin-kieli
languages.so=somali
languages.afh=afrihili
-languages.sn=shona
+languages.sn=\u0161ona
languages.sm=samoa
languages.sl=sloveeni
languages.grc=muinaiskreikka
languages.sk=slovakki
languages.grb=grebo
-languages.si=sinhali
+languages.si=sinhala
languages.sh=serbokroatia
-languages.afa=muut afroaasialaiset kielet
-languages.crh=krimintataari; kriminturkki
+languages.crh=kriminturkki
+languages.afa=afro-aasialainen kieli
languages.sg=sango
-languages.se=saame, pohjois-
+languages.se=pohjoissaame
languages.sd=sindhi
languages.udm=udmurtti
languages.sc=sardi
@@ -754,89 +720,102 @@ languages.mdr=mandar
languages.ro=romania
languages.rn=rundi
languages.rm=retoromaani
+languages.fr_CH=sveitsinranska
languages.mdf=mok\u0161a
+languages.tiv=tiv
+languages.fr_CA=kanadanranska
languages.ady=adyge
languages.zun=zuni
languages.kpe=kpelle
-languages.qu=quechua
+languages.qu=ket\u0161ua
languages.tig=tigre
languages.son=songhai
-languages.cpp=muut portugaliin perustuvat kreolit ja pidginit
+languages.cpp=portugaliin perustuva kreoli- tai pidgin-kieli
+languages.rup=aromania
languages.sog=sogdi
languages.ada=adangme
-languages.cpf=muut ranskaan perustuvat kreolit ja pidginit
-languages.hit=heetti
languages.kos=kosrae
-languages.cpe=muut englantiin perustuvat kreolit ja pidginit
-languages.him=himachali
-languages.got=gootti
-languages.hil=hiligaynon
+languages.hit=heetti
+languages.cpf=ranskaan perustuva kreoli- tai pidgin-kieli
+languages.cpe=englantiin perustuva kreoli- tai pidgin-kieli
+languages.him=himat\u0161ali
languages.kok=konkani
+languages.hil=hiligaino
+languages.got=gootti
languages.gor=gorontalo
languages.gon=gondi
languages.din=dinka
-languages.nub=nubialaiset kielet
+languages.nub=nubialainen kieli
languages.pt=portugali
-languages.ps=pa\u0161to
+languages.ps=pa\u0161tu
languages.fur=friuli
languages.phn=foinikia
+languages.de_CH=sveitsinyl\u00e4saksa
languages.goh=muinaisyl\u00e4saksa
languages.snk=soninke
languages.cop=kopti
-languages.ach=acholi
-languages.phi=muut filippiinil\u00e4iset kielet
+languages.yap=japi
+languages.ach=at\u0161oli
+languages.yao=jao
+languages.phi=filippiinil\u00e4inen kieli
languages.pl=puola
languages.ace=aceh
languages.pi=paali
-languages.pa=panjabi
+languages.pt_PT=portugalinportugali
+languages.pa=punjabi
languages.bug=bugi
languages.iba=iban
-languages.sms=saame, koltan-
+languages.sms=koltansaame
languages.bua=burjaatti
languages.mas=maasai
-languages.smn=saame, inarin-
+languages.smn=inarinsaame
languages.os=osseetti
-languages.map=muut austronesialaiset kielet
+languages.map=austronesialainen kieli
languages.or=oriya
languages.man=mandingo
-languages.smj=saame, luulajan-
-languages.smi=muut saamen kielet
+languages.smj=luulajansaame
+languages.smi=saamelaiskieli
languages.mak=makassar
languages.om=oromo
languages.mai=maithili
-languages.oj=ojibwa
+languages.oj=od\u017eibwa
languages.mag=magahi
languages.mad=madura
-languages.sma=saame, etel\u00e4-
+languages.sma=etel\u00e4saame
languages.oc=oksitaani
-languages.nso=sotho, pohjois-
+languages.nso=pohjoissotho
languages.btk=batak
languages.myv=ers\u00e4
+languages.es_ES=espanjanespanja
+languages.de_AT=it\u00e4vallansaksa
languages.dgr=dogrib
-languages.ny=nyanja
-languages.myn=maya-kielet
+languages.ny=njand\u017ea
+languages.myn=maya-kieli
languages.nv=navajo
languages.kmb=kimbundu
-languages.nr=ndebele, etel\u00e4-
+languages.nr=etel\u00e4-ndebele
languages.gmh=keskiyl\u00e4saksa
languages.no=norja
-languages.nn=norja (nynorsk)
+languages.nn=norjan nynorsk
languages.nl=hollanti
+languages.root=juuri
languages.ng=ndonga
-languages.sla=muut slaavilaiset kielet
+languages.sla=slaavilainen kieli
languages.ne=nepali
-languages.nd=ndebele, pohjois-
-languages.cmc=cham-kielet
+languages.nd=pohjois-ndebele
+languages.cmc=t\u0161am-kieli
languages.tet=tetum
-languages.nb=norja (bokm\u00e5l)
+languages.nb=norjan bokm\u00e5l
languages.na=nauru
languages.ter=tereno
languages.tem=temne
languages.my=burma
languages.lez=lezgi
languages.mt=malta
+languages.frs=it\u00e4friisi
languages.peo=muinaispersia
languages.ms=malaiji
+languages.frr=pohjoisfriisi
languages.mr=marathi
languages.fro=muinaisranska
languages.mo=moldavia
@@ -848,13 +827,15 @@ languages.mk=makedonia
languages.mi=maori
languages.mh=marshall
languages.mg=malagassi
+languages.nqo=n\u2019ko
languages.mwr=marwari
-languages.bra=braj
+languages.bra=brad\u017e
+languages.mwl=mirandeesi
+languages.den=slevi
languages.lv=latvia
-languages.den=slave
-languages.lu=luba (Katanga)
-languages.lt=liettua
+languages.lu=katanganluba
languages.del=delaware
+languages.lt=liettua
languages.lo=lao
languages.ln=lingala
languages.li=limburg
@@ -864,149 +845,163 @@ languages.lb=luxemburg
languages.la=latina
languages.jpr=juutalaispersia
languages.vot=vatja
-languages.sit=muut sinotiibetil\u00e4iset kielet
+languages.sit=sinotiibetil\u00e4inen kieli
languages.ky=kirgiisi
languages.kw=korni
languages.kv=komi
languages.ku=kurdi
-languages.sio=sioux-kielet
-languages.ks=kashmiri
+languages.sio=sioux-kieli
+languages.ks=ka\u0161miri
languages.kr=kanuri
languages.awa=awadhi
languages.ko=korea
languages.kn=kannada
languages.km=khmer
-languages.kl=kalaallisut; gr\u00f6nlanti
+languages.en_GB=britannianenglanti
+languages.kl=gr\u00f6nlanti
languages.kk=kazakki
languages.rom=romani
-languages.kj=kwanyama
+languages.kj=kuanjama
languages.sid=sidamo
languages.ki=kikuju
languages.kg=kongo
languages.non=muinaisnorja
languages.ka=georgia
languages.mus=creek
-languages.roa=muut romaaniset kielet
+languages.roa=romaaninen kieli
languages.nog=nogai
-languages.mun=mundakielet
+languages.mun=mundakieli
languages.mul=monia kieli\u00e4
languages.jv=jaava
languages.gil=kiribati
languages.znd=zande
languages.shn=shan
+languages.fon=fon
languages.xal=kalmukki
-languages.aus=australialaiset kielet
+languages.aus=australialainen kieli
languages.kho=khotani
languages.ja=japani
-languages.khi=muut khoisan-kielet
+languages.khi=khoisan-kieli
languages.pau=palau
languages.chy=cheyenne
-languages.tai=muut thaikielet
+languages.tai=thaikieli
languages.iu=inuktitut
languages.pap=papiamentu
languages.it=italia
-languages.sgn=viittomakielet
-languages.kha=khasi
+languages.sgn=viittomakieli
languages.is=islanti
+languages.kha=khasi
languages.chr=cherokee
languages.pam=pampanga
languages.pal=pahlavi
languages.chp=chipewyan
-languages.cho=choctaw
languages.io=ido
+languages.cho=choctaw
languages.chn=chinook-jargon
languages.chm=mari
languages.tyv=tuva
-languages.bnt=muut bantukielet
+languages.bnt=bantukieli
languages.pag=pangasinan
+languages.ik=inupiatun
languages.chk=chuuk
-languages.ik=i\u00f1upiak
-languages.haw=havaiji
languages.ii=sichuanin-yi
+languages.haw=havaiji
languages.lam=lamba
-languages.chg=t\u0161agatai
languages.ig=igbo
+languages.chg=t\u0161agatai
languages.sga=muinaisiiri
-languages.paa=muut papualaiskielet
+languages.paa=papualaiskieli
languages.ie=interlingue
languages.id=indonesia
languages.lah=lahnda
-languages.chb=chibcha
-languages.day=dayak
+languages.day=dajakki
+languages.chb=t\u0161ibt\u0161a
languages.ia=interlingua
-languages.lad=ladino; juutalaisespanja
-languages.dar=dargva
-languages.hai=haida
+languages.lad=juutalaisespanja
languages.hz=herero
+languages.hai=haida
+languages.dar=dargi
languages.hy=armenia
-languages.ath=athabasca-kielet
+languages.ath=athabasca-kieli
languages.hu=unkari
languages.ht=haiti
languages.dak=dakota
languages.hr=kroatia
languages.ho=hiri-motu
languages.hi=hindi
-languages.dyu=dyula
+languages.dyu=djula
languages.he=heprea
languages.ast=asturia
+languages.kfo=norsunluurannikonkoro
languages.ha=hausa
-languages.wen=sorbin kielet
+languages.wen=sorbin kieli
languages.gv=manx
-languages.gu=gud\u017earati
-languages.sem=muut seemil\u00e4iset kielet
+languages.gu=gujarati
+languages.sem=seemil\u00e4inen kieli
languages.sel=selkuppi
-languages.iro=irokeesikielet
+languages.iro=irokeesikieli
languages.gn=guarani
languages.gl=galicia
+languages.en_CA=kanadanenglanti
languages.arw=arawak
-languages.gd=gaeli
-languages.art=muut keinotekoiset kielet
languages.gez=ge\u2019ez
-languages.ira=muut iranilaiset kielet
+languages.art=keinotekoinen kieli
+languages.gd=gaeli
+languages.ira=iranilainen kieli
languages.ga=iiri
languages.arp=arapaho
languages.arn=araukaani
-languages.fy=friisi
+languages.fy=l\u00e4nsifriisi
languages.bla=mustajalka
-languages.gem=muut germaaniset kielet
-languages.ypk=jupikkikielet
-languages.fr=ranska
+languages.gem=germaaninen kieli
+languages.ypk=jupikkikieli
languages.arc=aramea
+languages.fr=ranska
languages.fo=f\u00e4\u00e4ri
-languages.cel=muut kelttil\u00e4iset kielet
+languages.cel=kelttil\u00e4inen kieli
languages.fj=fid\u017ei
languages.fi=suomi
languages.ff=fulani
languages.tvl=tuvalu
languages.ceb=cebuano
-languages.fa=farsi; persia
+languages.fa=persia
+languages.en_AU=australianenglanti
+languages.zh_Hans=yksinkertaistettu kiina
+languages.zh_Hant=perinteinen kiina
languages.eu=baski
languages.sco=skotti
languages.et=viro
+languages.scn=sisilia
languages.es=espanja
languages.eo=esperanto
languages.en=englanti
languages.el=kreikka
-languages.tut=muut altailaiset kielet
+languages.tut=altailainen kieli
languages.niu=niue
-languages.tup=tupi-kielet
+languages.tup=tupi-kieli
languages.ee=ewe
languages.tum=tumbuka
+languages.nl_BE=flaami
+languages.es_419=amerikanespanja
languages.mos=mossi
languages.dz=dzongkha
-languages.nic=muut nigeril\u00e4is-kongolaiset kielet
+languages.kcg=tyap
+languages.nic=nigeril\u00e4is-kongolainen kieli
+languages.lus=lusai
+languages.fiu=suomalais-ugrilainen kieli
languages.dv=divehi
-languages.fiu=muut suomalais-ugrilaiset kielet
-languages.lus=lushai
languages.nia=nias
languages.moh=mohawk
+languages.luo=luo
languages.lun=lunda
-languages.apa=apa\u0161\u0161ikielet
+languages.apa=apa\u0161\u0161ikieli
+languages.fil=filipino
languages.lui=luise\u00f1o
languages.hup=hupa
+languages.cch=atsam
languages.bin=bini
languages.de=saksa
-languages.lua=luba (Lulua)
+languages.lua=luluanluba
languages.bik=bikol
languages.was=washo
languages.und=m\u00e4\u00e4ritt\u00e4m\u00e4t\u00f6n
@@ -1014,91 +1009,124 @@ languages.war=waray
languages.da=tanska
languages.dum=keskihollanti
languages.wal=walamo
-languages.mno=manobo-kielet
-languages.wak=wakash-kielet
+languages.mno=manobo-kieli
+languages.wak=wakash-kieli
languages.sat=santali
languages.cy=kymri
languages.sas=sasak
-languages.cv=t\u0161uvassi
languages.kbd=kabardi
+languages.cv=t\u0161uvassi
languages.cu=kirkkoslaavi
languages.mni=manipuri
languages.cs=t\u0161ekki
languages.sam=samarianaramea
languages.cr=cree
-languages.sal=sali\u0161ilaiset kielet
+languages.sal=sali\u0161ilainen kieli
languages.dua=duala
languages.co=korsika
-languages.sai=muut Etel\u00e4-Amerikan intiaanikielet
+languages.sai=etel\u00e4amerikkalainen intiaanikieli
languages.mnc=mant\u0161u
languages.sah=jakuutti
-languages.gba=gbaya
-languages.inh=inguu\u0161i
languages.kaw=kavi
+languages.inh=inguu\u0161i
+languages.gba=gbaja
languages.sad=sandawe
-languages.ch=chamorro
+languages.ch=t\u0161amorro
+languages.ine=indoeurooppalainen kieli
languages.bho=bhojpuri
-languages.ine=muut indoeurooppalaiset kielet
languages.enm=keskienglanti
-languages.ce=t\u0161et\u0161eeni
-languages.inc=muut indoarjalaiset kielet
languages.kar=karen
-languages.gay=gayo
+languages.inc=indoarjalainen kieli
+languages.ce=t\u0161et\u0161eeni
+languages.gay=gajo
languages.ca=katalaani
languages.umb=umbundu
languages.syr=syyria
languages.kam=kamba
-languages.tsi=tsimshian
+languages.anp=angika
+languages.tsi=tsim\u0161i
+languages.kaj=jju
languages.ang=muinaisenglanti
-languages.cau=muut kaukasialaiset kielet
languages.kac=kachin
+languages.cau=kaukasialainen kieli
languages.kab=kabyyli
-languages.bs=bosnia
languages.kaa=karakalpakki
-languages.br=bretoni
+languages.bs=bosnia
languages.car=karibi
+languages.br=bretoni
+languages.syc=syc
languages.bo=tiibet
languages.bn=bengali
languages.bm=bambara
-languages.gaa=g\u00e3
+languages.gaa=ga
+languages.cai=keskiamerikkalainen intiaanikieli
languages.bi=bislama
-languages.cai=muut Keski-Amerikan intiaanikielet
languages.bh=bihari
languages.bg=bulgaria
languages.be=valkoven\u00e4j\u00e4
+languages.pt_BR=brasilianportugali
languages.cad=caddo
-languages.ba=baski
+languages.ba=ba\u0161kiiri
languages.zu=zulu
languages.zen=zenaga
languages.pro=muinaisprovensaali
languages.hsb=yl\u00e4sorbi
languages.az=azeri
-languages.ay=aymara
+languages.ay=aimara
languages.av=avaari
languages.as=assami
-languages.ar=arabia
languages.dsb=alasorbi
-languages.elx=elami
+languages.ar=arabia
languages.ilo=iloko
+languages.elx=elami
languages.zh=kiina
languages.an=aragonia
-languages.pra=prakrit-kielet
+languages.pra=prakrit-kieli
languages.am=amhara
languages.new=newari
languages.ak=akan
languages.za=zhuang
+languages.en_US=amerikanenglanti
languages.af=afrikaans
languages.ae=avesta
+languages.alt=altai
languages.ab=abhaasi
languages.aa=afar
languages.yo=joruba
-languages.alg=algonkin-kielet
+languages.alg=algonkin-kieli
languages.ale=aleutti
-languages.mkh=muut mon-khmer-kielet
+languages.mkh=mon-khmer-kieli
languages.yi=jiddi\u0161
-languages.dra=muut dravidakielet
-languages.ber=muut berberikielet
+languages.dra=dravidakieli
+languages.ber=berberikieli
languages.nds=alasaksa
languages.bem=bemba
-languages.bej=beja
+languages.bej=bed\u017ea
languages.tpi=tok-pisin
+variants.POSIX=tietokonem\u00e4\u00e4rittely POSIX
+variants.AREVMDA=l\u00e4nsiarmenialainen
+variants.1996=saksan uusi oikeinkirjoitus
+variants.SOLBA=sloveenin resian Stolvizzan/Solbican alamurre
+variants.NEDIS=sloveenin natisone-murre
+variants.1994=sloveenin resian murteen yhdenmukaistettu oikeinkirjoitus
+variants.1901=saksan perinteinen oikeinkirjoitus
+variants.FONUPA=suomalais-ugrilainen tarkekirjoitus
+variants.OSOJS=sloveenin resian Oseaccon/Osojanen alamurre
+variants.1694ACAD=varhaisnykyranska
+variants.LIPAW=sloveenin resian Lipovazin/Lipovecin alamurre
+variants.REVISED=uudistettu oikeinkirjoitus
+variants.NJIVA=sloveenin resian Gnivan/Njivan alamurre
+variants.TARASK=valkoven\u00e4j\u00e4n tara\u0161kevitsa-oikeinkirjoitus
+variants.FONIPA=kansainv\u00e4linen foneettinen aakkosto IPA
+variants.BISKE=sloveenin resian San Giorgion/Bilan alamurre
+variants.SCOUSE=englannin scouse-murre
+variants.BAKU1926=yhten\u00e4istetty turkkilainen latinalainen aakkosto
+variants.SAAHO=afarin saho-murre
+variants.ROZAJ=sloveenin resia-murre
+variants.MONOTON=monotoninen kreikka
+variants.POLYTON=polytoninen kreikka
+variants.AREVELA=it\u00e4armenialainen
+variants.SCOTLAND=skotlanninenglanti
+variants.VALENCIA=katalaanin valencia-murre
+variants.BOONT=englannin boontling-murre
+variants.1606NICT=my\u00f6h\u00e4iskeskiranska
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties
new file mode 100644
index 0000000..62194e5
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fil.properties
@@ -0,0 +1,455 @@
+# LocaleInformation_fil.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.CHF=Swiss Francs
+currenciesDisplayName.AUD=Australian Dollar
+currenciesDisplayName.RUB=Russian Ruble
+currenciesDisplayName.CZK=Czech Koruna
+currenciesDisplayName.THB=Thai Baht
+currenciesDisplayName.SEK=Sweden Kronor
+currenciesDisplayName.HRK=Croatian Kuna
+currenciesDisplayName.PLN=Polish NewZloty
+currenciesDisplayName.SKK=Slovak Koruna
+currenciesDisplayName.MAD=Moroccan Dirham
+currenciesDisplayName.TWD=New Taiwan Dollar
+currenciesDisplayName.XXX=XXX
+currenciesDisplayName.MYR=Malaysian Ringgit
+currenciesDisplayName.HUF=Hungarian Forint
+currenciesDisplayName.INR=Indian Rupee
+currenciesDisplayName.AED=United Arab Emirates Dirham
+currenciesDisplayName.SAR=Saudi Riyal
+currenciesDisplayName.CAD=Canadian Dollar
+currenciesDisplayName.USD=US Dollar
+currenciesDisplayName.BGN=Bulgarian Lev
+currenciesDisplayName.JPY=Japanese Yen
+currenciesDisplayName.GBP=British Pounds Sterling
+currenciesDisplayName.PKR=Pakistan Rupee
+currenciesDisplayName.PHP=Philippine Peso
+currenciesDisplayName.PEN=Peruvian Nuevo Sol
+currenciesDisplayName.FRF=French Franc
+currenciesDisplayName.NOK=Norwegian Kroner
+currenciesDisplayName.EUR=Euros
+currenciesDisplayName.HKD=Hong Kong Dollars
+currenciesDisplayName.IDR=Indonesian Rupiah
+currenciesDisplayName.ZAR=South African Rand
+currenciesDisplayName.SGD=Singapore Dollars
+currenciesDisplayName.MXN=Mexico Peso
+currenciesDisplayName.TRY=Turkish Lira
+currenciesDisplayName.CLP=Chilean Peso
+currenciesDisplayName.COP=Colombian Peso
+currenciesDisplayName.KRW=South Korean Won
+currenciesDisplayName.SIT=Slovenian Tolar
+currenciesDisplayName.EEK=Estonian Kroon
+currenciesDisplayName.RSD=Serbian Dinar
+currenciesDisplayName.TRL=Turkish Lira
+currenciesDisplayName.BRL=Brazilian Real
+currenciesDisplayName.DEM=Deutsche Marks
+currenciesDisplayName.VEB=Venezuela Bolivar
+currenciesDisplayName.ARS=Argentine Peso
+currenciesDisplayName.CNY=Yuan Renminbi
+currenciesDisplayName.DKK=Denmark Kroner
+currenciesDisplayName.ILS=Israeli Shekel
+currenciesDisplayName.BOB=Bolivian Boliviano
+currenciesDisplayName.NZD=New Zealand Dollars
+currenciesDisplayName.RON=Romanian Leu
+currenciesDisplayName.LTL=Lithuanian Litas
+currenciesDisplayName.EGP=Egyptian Pound
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.PHP=PhP
+shortMonths=Ene\u00aePeb\u00aeMar\u00aeAbr\u00aeMay\u00aeHun\u00aeHul\u00aeAgo\u00aeSet\u00aeOkt\u00aeNob\u00aeDis\u00ae\u00ae
+months=Enero\u00aePebrero\u00aeMarso\u00aeAbril\u00aeMayo\u00aeHunyo\u00aeHulyo\u00aeAgosto\u00aeSetyembre\u00aeOktubre\u00aeNobyembre\u00aeDisyembre\u00ae\u00ae
+shortWeekdays=\u00ae\u00ae\u00ae\u00aeMiy\u00ae\u00aeBiy\u00ae\u00ae
+weekdays=\u00aeLinggo\u00aeLunes\u00aeMartes\u00aeMiyerkules\u00aeHuwebes\u00aeBiyernes\u00aeSabado\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=M/d/yy
+mediumDateFormat=MMM d, yyyy
+longDateFormat=MMMM d, yyyy
+fullDateFormat=EEEE, MMMM dd yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=East Timor
+territories.TK=Tokelau
+territories.TJ=Tajikistan
+territories.TH=Thailand
+territories.TG=Togo
+territories.TF=French Southern Territories
+territories.TD=Chad
+territories.TC=Turks and Caicos Islands
+territories.GW=Guinea-Bissau
+territories.GS=South Georgia and the South Sandwich Islands
+territories.GR=Griyego
+territories.GQ=Equatorial Guinea
+territories.SZ=Swaziland
+territories.SY=Syria
+territories.GN=Guinea
+territories.GM=Gambia
+territories.GL=Greenland
+territories.SV=El Salvador
+territories.062=Timog-Gitnang Asya
+territories.ST=Sao Tome and Principe
+territories.061=Polynesia
+territories.GH=Ghana
+territories.SR=Suriname
+territories.GG=Guernsey
+territories.GF=French Guiana
+territories.GE=Georgia
+territories.SO=Somalia
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=United Kingdom
+territories.SL=Sierra Leone
+territories.GA=Gabon
+territories.SK=Slovakia
+territories.SJ=Svalbard and Jan Mayen
+territories.SI=Slovenia
+territories.SH=Saint Helena
+territories.SE=Sweden
+territories.SD=Sudan
+territories.SC=Seychelles
+territories.SB=Solomon Islands
+territories.SA=Saudi Arabya
+territories.FR=Pranses
+territories.FO=Faroe Islands
+territories.057=Rehiyong Micronesia
+territories.FM=Micronesia
+territories.RW=Rwanda
+territories.054=Melanesia
+territories.FK=Falkland Islands
+territories.053=Australia at New Zealand
+territories.RU=Russia
+territories.FJ=Fiji
+territories.FI=Finland
+territories.RS=Serbia
+territories.RO=Romania
+territories.ET=Ethiopia
+territories.ES=Espanya
+territories.ER=Eritrea
+territories.QU=European Union
+territories.EH=Western Sahara
+territories.EG=Ehipto
+territories.EE=Estonia
+territories.QO=Malayong bahagi ng Oceania
+territories.EC=Ecuador
+territories.DZ=Algeria
+territories.039=Katimugang Europa
+territories.DO=Dominican Republic
+territories.PY=Paraguay
+territories.DM=Dominica
+territories.035=Timog-Silangang Asya
+territories.034=Katimugang Asya
+territories.DK=Denmark
+territories.DJ=Djibouti
+territories.PT=Portugal
+territories.PS=Palestine
+territories.030=Silangang Asya
+territories.DE=Alemaya
+territories.PM=Saint Pierre at Miquelon
+territories.PL=Poland
+territories.PK=Pakistan
+territories.PH=Pilipinas
+territories.PG=Papua New Guinea
+territories.PF=French Polynesia
+territories.CZ=Czech Republic
+territories.PE=Peru
+territories.CY=Cyprus
+territories.CX=Christmas Island
+territories.CV=Cape Verde
+territories.CU=Cuba
+territories.CS=Serbia at Montenegro
+territories.CR=Costa Rica
+territories.029=Carribbean
+territories.CO=Colombia
+territories.CN=Tsina
+territories.CM=Cameroon
+territories.CL=Chile
+territories.CK=Cook Islands
+territories.021=Hilagang Amerika
+territories.CI=C\u00f4te d'Ivoire
+territories.CH=Switzerland
+territories.CG=Congo
+territories.CF=Central African Republic
+territories.CD=Congo - Kinshasa
+territories.CC=Cocos Islands
+territories.OM=Oman
+territories.CA=Canada
+territories.419=Latin America at ang Caribbean
+territories.BZ=Belize
+territories.BY=Belarus
+territories.BW=Botswana
+territories.BV=Bouvet Island
+territories.BT=Bhutan
+territories.BS=Bahamas
+territories.BR=Brazil
+territories.019=Americas
+territories.018=Katimugang Africa
+territories.NZ=New Zealand
+territories.017=Gitnang Africa
+territories.BO=Bolivia
+territories.BN=Brunei
+territories.015=Hilagang Africa
+territories.BM=Bermuda
+territories.014=Silangang Africa
+territories.013=Gitnang Amerika
+territories.BJ=Benin
+territories.011=Kanlurang Africa
+territories.BI=Burundi
+territories.BH=Bahrain
+territories.BG=Bulgaria
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Belgium
+territories.ZZ=Hindi kilala o Hindi wastong Rehiyon
+territories.NO=Norway
+territories.BD=Bangladesh
+territories.BB=Barbados
+territories.ZW=Zimbabwe
+territories.NL=Netherlands
+territories.BA=Bosnia and Herzegovina
+territories.NI=Nicaragua
+territories.NG=Nigeria
+territories.NF=Norfolk Island
+territories.AZ=Azerbaijan
+territories.NE=Niger
+territories.AX=Aland Islands
+territories.NC=New Caledonia
+territories.AW=Aruba
+territories.ZM=Zambia
+territories.NA=Namibia
+territories.AU=Australia
+territories.AT=Austria
+territories.AS=American Samoa
+territories.AR=Argentina
+territories.AQ=Antartica
+territories.009=Oceania
+territories.MZ=Mozambique
+territories.AO=Angola
+territories.MY=Malaysia
+territories.AN=Netherlands Antilles
+territories.MX=Mehiko
+territories.AM=Armenia
+territories.005=South America
+territories.MW=Malawi
+territories.AL=Albania
+territories.003=North America
+territories.ZA=Timog Afrika
+territories.002=Africa
+territories.AI=Anguilla
+territories.001=Mundo
+territories.MR=Mauritania
+territories.AG=Antigua at Barbuda
+territories.AF=Afghanistan
+territories.MP=Northern Mariana Islands
+territories.AE=United Arab Emirates
+territories.MO=Macao
+territories.AD=Andorra
+territories.MN=Mongolia
+territories.MM=Myanmar
+territories.ML=Mali
+territories.MK=Macedonia
+territories.MH=Marshall Islands
+territories.MG=Madagascar
+territories.ME=Montenegro
+territories.MD=Moldova
+territories.MA=Morocco
+territories.YE=Yemen
+territories.LY=Libya
+territories.LV=Latvia
+territories.155=Kanlurang Europa
+territories.154=Hilagang Europa
+territories.LT=Lithuania
+territories.LS=Lesotho
+territories.LR=Liberia
+territories.151=Silangang Europa
+territories.150=Europa
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Saint Lucia
+territories.LB=Lebanon
+territories.LA=Laos
+territories.KZ=Kazakhstan
+territories.KY=Cayman Islands
+territories.145=Kanlurang Asya
+territories.143=Gitnang Asya
+territories.142=Asya
+territories.KR=Timog Korea
+territories.KP=Hilagang Korea
+territories.KN=Saint Kitts and Nevis
+territories.KM=Comoros
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Cambodia
+territories.KG=Kyrgyzstan
+territories.KE=Kenya
+territories.WF=Wallis and Futuna
+territories.JP=Japan
+territories.JO=Jordan
+territories.VU=Vanuatu
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VI=U.S. Virgin Islands
+territories.VG=British Virgin Islands
+territories.VE=Venezuela
+territories.VC=Saint Vincent and the Grenadines
+territories.VA=Vatican City
+territories.IT=Italya
+territories.IS=Iceland
+territories.IR=Iran
+territories.IQ=Iraq
+territories.UZ=Uzbekistan
+territories.IO=British Indian Ocean Territory
+territories.UY=Uruguay
+territories.IN=India
+territories.IM=Isle of Man
+territories.IL=Israel
+territories.US=United States
+territories.IE=Ireland
+territories.ID=Indonesia
+territories.UM=United States minor outlying islands
+territories.UG=Uganda
+territories.UA=Ukraine
+territories.HU=Hungary
+territories.HT=Haiti
+territories.HR=Croatia
+territories.TZ=Tanzania
+territories.HN=Honduras
+territories.HM=Heard Island and McDonald Islands
+territories.TW=Taiwan
+territories.TV=Tuvalu
+territories.HK=Hong KOng
+territories.TT=Trinidad and Tobago
+territories.TR=Turkey
+territories.TO=Tonga
+territories.TN=Tunisia
+territories.TM=Turkmenistan
+languages.es=Espanyol
+languages.ku=Kurdish
+languages.eo=Esperanto
+languages.en=Ingles
+languages.el=Griyego
+languages.ko=Korean
+languages.kn=Kannada
+languages.km=Khmer
+languages.wo=Wolof
+languages.ka=Georgian
+languages.zh_Hans=Intsik (Pinadali)
+languages.zh_Hant=Intsik (Tradisyunal)
+languages.jv=Javanese
+languages.fil=Filipino
+languages.pt=Portuges
+languages.ps=Pashto
+languages.de=Aleman
+languages.pl=Polish
+languages.da=Danish
+languages.tlh=Klingon
+languages.ja=Japanese
+languages.vi=Vietnamese
+languages.cy=Welsh
+languages.pa=Punjabi
+languages.cs=Czech
+languages.it=Italyano
+languages.is=Icelandic
+languages.uz=Uzbeko
+languages.or=Oriya
+languages.ur=Urdu
+languages.ca=Catalan
+languages.ie=Interlingue
+languages.id=Indonesian
+languages.uk=Ukranian
+languages.ia=Interlingua
+languages.oc=Occitan
+languages.ug=Uighur
+languages.hy=Armenian
+languages.bs=Bosnian
+languages.br=Breton
+languages.hu=Hungarian
+languages.bn=Bengali; Bangla
+languages.hr=Croatian
+languages.tw=Twi
+languages.bh=Bihari
+languages.bg=Bulgarian
+languages.no=Norwegian
+languages.be=Belarusian
+languages.nn=Norwegian Nynorsk
+languages.hi=Hindu
+languages.tr=Turko
+languages.nl=Olandes
+languages.zu=Zulu
+languages.he=Hebreo
+languages.tl=Tagalog
+languages.tk=Turkmen
+languages.ne=Nepali
+languages.az=Azerbaijani
+languages.ti=Tigrinya
+languages.th=Thai
+languages.en_US=Ingles (US)
+languages.te=Telugu
+languages.zh=zh
+languages.as=Assamese
+languages.ar=Arabic
+languages.ta=Tamil
+languages.gu=Gujarati
+languages.am=Amharic
+languages.mt=Maltese
+languages.ms=Malay
+languages.gn=Guarani
+languages.sw=Swahili
+languages.mr=Marathi
+languages.sv=Suwiso
+languages.gl=Galician
+languages.su=Taga Sundan
+languages.af=Afrikaans
+languages.st=Sesoto
+languages.mn=Mongolian
+languages.sr=Serbiran
+languages.sq=Albanian
+languages.ml=Malayalam
+languages.mk=Macedonian
+languages.so=Somali
+languages.gd=Scots Gaelic
+languages.sl=Eslobenyan
+languages.sk=Eslobak
+languages.ga=Irish
+languages.si=Sinhalese
+languages.sh=Serbo-Croatian
+languages.pt_BR=Portuges (Brasil)
+languages.yi=Yiddish
+languages.sd=Sindhi
+languages.fy=Prisian
+languages.sa=Sanskrit
+languages.fr=Pranses
+languages.lv=Latvian
+languages.lt=Lithuanian
+languages.fo=Faroeso
+languages.ru=Ruso
+languages.lo=Lao
+languages.ln=Lingala
+languages.fi=Finnish
+languages.ro=Romanian
+languages.rm=Rhaeto-Romance
+languages.fa=Persian
+languages.und=und
+languages.la=Latin
+languages.xh=Xhosa
+languages.en_GB=Ingles (UK)
+languages.eu=Basque
+languages.ky=Kirghiz
+languages.et=Estonian
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fo.properties
index 6818933..b60243d 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fo.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fo.properties
@@ -5,137 +5,365 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+exponential=\u00d710^
+minusSign=\u2212
decimalSeparator=,
groupingSeparator=.
+currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
currenciesSymbol.DKK=kr
-shortMonths=jan®feb®mar®apr®mai®jun®jul®aug®sep®okt®nov®des®®
-months=januar®februar®mars®apr\u00edl®mai®juni®juli®august®september®oktober®november®desember®®
-shortWeekdays=®sun®m\u00e1n®t\u00fds®mik®h\u00f3s®fr\u00ed®ley®
-weekdays=®sunnudagur®m\u00e1nadagur®t\u00fdsdagur®mikudagur®h\u00f3sdagur®fr\u00edggjadagur®leygardagur®
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemai\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedes\u00ae\u00ae
+months=januar\u00aefebruar\u00aemars\u00aeapr\u00edl\u00aemai\u00aejuni\u00aejuli\u00aeaugust\u00aeseptember\u00aeoktober\u00aenovember\u00aedesember\u00ae\u00ae
+shortWeekdays=\u00aesun\u00aem\u00e1n\u00aet\u00fds\u00aemik\u00aeh\u00f3s\u00aefr\u00ed\u00aeley\u00ae
+weekdays=\u00aesunnudagur\u00aem\u00e1nadagur\u00aet\u00fdsdagur\u00aemikudagur\u00aeh\u00f3sdagur\u00aefr\u00edggjadagur\u00aeleygardagur\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=dd-MM-yy
mediumDateFormat=dd-MM-yyyy
longDateFormat=d. MMM yyyy
fullDateFormat=EEEE dd MMMM yyyy
-territories.AU=Avstralia
-territories.TD=Kjad
-territories.AT=Eysturr\u00edki
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TK=Tokelau
+territories.TJ=Tadsjikistan
+territories.TH=Teiland
+territories.TG=Togo
territories.GY=Gujana
+territories.TD=Kjad
territories.GW=Guinea Bissau
-territories.AQ=Antarktis
-territories.MZ=Mosambik
-territories.MY=Maleisia
-territories.MX=Meksiko
-territories.MW=Malavi
+territories.GU=Guam
+territories.GT=Guatemala
territories.GR=Grikkaland
-territories.ZA=Su\u00f0urafrika
-territories.MV=Maldivuoyggjarnar
territories.GQ=Ekvator Guinea
+territories.GP=Guadeloupe
territories.SZ=Svasiland
-territories.MU=M\u00f3ritius
-territories.MR=M\u00f3ritania
-territories.AG=Antigua og Barbuda
-territories.AF=Afganistan
+territories.SY=Syria
+territories.GN=Guinea
+territories.GM=Gambia
+territories.GL=Gr\u00f8nland
+territories.SV=El Salvador
+territories.062=Su\u00f0ursentralasia
territories.ST=Sao Tome og Prinsipi
-territories.AE=Sameindu Emirr\u00edkini
+territories.GI=Gibraltar
+territories.061=Polynesia
+territories.GH=Ghana
territories.SR=Surinam
-territories.MK=Maked\u00f3nia
-territories.MH=Marshalloyggjarnar
-territories.MG=Madagaskar
-territories.MC=Monako
+territories.GG=Guernsey
+territories.GE=Georgia
+territories.SO=Somalia
+territories.GD=Grenada
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=St\u00f3ra Bretland
+territories.SL=Sierra Leone
+territories.GA=Gabon
+territories.SK=Slovakia
+territories.SI=Slovenia
territories.SG=Singapor
-territories.MA=Marokko
territories.SE=Sv\u00f8r\u00edki
+territories.SD=Sudan
territories.SC=Seyskelloyggjarnar
territories.SB=S\u00e1lomonoyggjarnar
territories.SA=Saudi-Ar\u00e1bia
-territories.YE=Jemen
territories.FR=Frakland
-territories.LV=Lettland
-territories.LU=Luksemborg
territories.FO=F\u00f8royar
-territories.LT=Litava
-territories.LS=Lesoto
-territories.RW=Ruanda
territories.FM=Mikronesia
+territories.RW=Ruanda
+territories.054=Melanesia
+territories.053=Avstralia og N\u00fds\u00e6land
territories.RU=Russland
+territories.FJ=Fiji
territories.FI=Finnland
+territories.RS=Serbia
territories.RO=Rumenia
-territories.LI=Liktenstein
-territories.LC=Saint Lusia
-territories.LB=Libanon
-territories.KZ=Kasakstan
+territories.RE=R\u00e9union
territories.ET=Etiopia
territories.ES=Spania
-territories.KW=Kuvait
-territories.KR=Su\u00f0ur-Korea
-territories.KP=Nor\u00f0ur-Korea
-territories.KN=Saint Kitts og Nevis
-territories.KM=Komorooyggjarnar
+territories.ER=Eritrea
+territories.QU=EU
territories.EG=Egyptaland
territories.EE=Estland
-territories.WS=S\u00e1moa
territories.EC=Ekvador
-territories.KH=Kambodja
-territories.KG=Kirgisia
-territories.KE=Kenja
+territories.DZ=Algeria
territories.QA=Katar
-territories.PY=Paraguei
+territories.039=Su\u00f0urevropa
territories.DO=Domingo l\u00fd\u00f0veldi\u00f0
+territories.PY=Paraguei
territories.DM=Dominika
+territories.035=Su\u00f0ureysturasia
+territories.PW=Palau
+territories.034=Su\u00f0urasia
territories.DK=Danm\u00f8rk
-territories.JM=Jameika
+territories.DJ=Djibouti
+territories.PT=Portugal
+territories.030=Eysturasia
territories.DE=T\u00fdskland
territories.PL=P\u00f3lland
+territories.PK=Pakistan
territories.PH=Filipsoyggjar
territories.PG=Papua N\u00fdguinea
-territories.PE=Per\u00fa
territories.CZ=Kekkia
+territories.PE=Per\u00fa
territories.CY=K\u00fdpros
territories.CV=Gr\u00f8nh\u00f8vdaoyggjarnar
-territories.VE=Venesuela
+territories.PA=Panama
territories.CU=Kuba
-territories.VC=Saint Vinsent og Grenadinoyggjar
territories.CR=Kosta Rika
-territories.VA=Vatikan
+territories.029=Karibia
territories.CO=Kolombia
-territories.IT=Italia
territories.CN=Kina
-territories.IS=\u00cdsland
territories.CM=Kamerun
territories.CL=Kili
-territories.IQ=Irak
-territories.UZ=Usbekistan
-territories.UY=Uruguei
territories.CI=F\u00edlabeinsstrondin
territories.CH=Sveis
-territories.CG=Kongo
-territories.IL=\u00cdsrael
+territories.CG=Kongo-Brazzaville
territories.CF=Mi\u00f0afrikal\u00fd\u00f0veldi\u00f0
-territories.US=Sambandsr\u00edki Amerika
+territories.CD=Kongo-Kinshasa
+territories.OM=Oman
territories.CA=Kanada
-territories.IE=\u00cdrland
territories.BZ=Belis
territories.BY=Hv\u00edtarussland
territories.BW=Botsvana
territories.BT=Butan
+territories.BS=Bahamas
territories.BR=Brasilia
+territories.019=Amerika
+territories.018=Su\u00f0ur Afrika
+territories.NZ=N\u00fds\u00e6land
+territories.017=Mi\u00f0afrika
+territories.BO=Bolivia
+territories.BN=Brunei
+territories.015=Nor\u00f0urafrika
+territories.BM=Bermuda
+territories.014=Eysturafrika
+territories.013=Sentralamerika
+territories.NU=Niue
+territories.BJ=Benin
+territories.011=Vesturafrika
+territories.BI=Burundi
+territories.BH=Bahrain
+territories.NR=Nauru
+territories.BG=Bulgaria
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Belgia
+territories.NO=Noreg
+territories.BD=Bangladesj
+territories.BB=Barbados
+territories.ZW=Simbabvi
+territories.NL=Ni\u00f0urlond
+territories.BA=Bosnia-Hersegovina
+territories.NI=Nikaragua
+territories.NG=Nigeria
+territories.AZ=Aserbadjan
+territories.NE=Niger
+territories.AX=\u00c1land
+territories.AW=Aruba
+territories.ZM=Sambia
+territories.NA=Namibia
+territories.AU=Avstralia
+territories.AT=Eysturr\u00edki
+territories.AR=Argentina
+territories.AQ=Antarktis
+territories.009=Kyrrahavsoyggjarnar
+territories.MZ=Mosambik
+territories.AO=Angola
+territories.MY=Maleisia
+territories.MX=Meksiko
+territories.AM=Armenia
+territories.005=Su\u00f0uramerika
+territories.MW=Malavi
+territories.AL=Albania
+territories.MV=Maldivuoyggjarnar
+territories.003=Nor\u00f0uramerika
+territories.ZA=Su\u00f0urafrika
+territories.MU=M\u00f3ritius
+territories.002=Africa
+territories.MT=Malta
+territories.AI=Anguilla
+territories.MS=Montserrat
+territories.MR=M\u00f3ritania
+territories.AG=Antigua og Barbuda
+territories.AF=Afganistan
+territories.AE=Sameindu Emirr\u00edkini
+territories.MO=Makao
+territories.AD=Andorra
+territories.MN=Mongolia
+territories.MM=Burma
+territories.ML=Mali
+territories.MK=Maked\u00f3nia
+territories.MH=Marshalloyggjarnar
+territories.MG=Madagaskar
+territories.ME=Montenegro
+territories.MD=Moldova
+territories.MC=Monako
+territories.MA=Marokko
+territories.YE=Jemen
+territories.LY=Libya
+territories.LV=Lettland
+territories.155=Vesturevropa
+territories.LU=Luksemborg
+territories.154=Nor\u00f0urevropa
+territories.LT=Litava
+territories.LS=Lesoto
+territories.LR=Liberia
+territories.151=Eysturevropa
+territories.150=Evropa
+territories.LK=Sri Lanka
+territories.LI=Liktenstein
+territories.LC=Saint Lusia
+territories.LB=Libanon
+territories.LA=Laos
+territories.KZ=Kasakstan
+territories.KW=Kuvait
+territories.145=Vesturasia
+territories.143=Sentralasia
+territories.142=Asia
+territories.KR=Su\u00f0urkorea
+territories.KP=Nor\u00f0urkorea
+territories.KN=Saint Kitts og Nevis
+territories.KM=Komorooyggjarnar
+territories.KI=Kiribati
+territories.WS=S\u00e1moa
+territories.KH=Kambodja
+territories.KG=Kirgisia
+territories.KE=Kenja
+territories.JP=Japan
+territories.JO=Jordan
+territories.JM=Jameika
+territories.VU=Vanuatu
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VE=Venesuela
+territories.VC=Saint Vinsent og Grenadinoyggjar
+territories.VA=Vatikan
+territories.IT=Italia
+territories.IS=\u00cdsland
+territories.IR=Iran
+territories.IQ=Irak
+territories.UZ=Usbekistan
+territories.UY=Uruguei
+territories.IN=India
+territories.IL=\u00cdsrael
+territories.US=Sambandsr\u00edki Amerika
+territories.IE=\u00cdrland
+territories.ID=Indonesia
+territories.UG=Uganda
territories.UA=Ukreina
-territories.NZ=N\u00fd S\u00e6land
territories.HU=Ungarn
+territories.HT=Haiti
territories.HR=Kroatia
territories.TZ=Tansania
+territories.HN=Honduras
territories.TW=Teivan
+territories.TV=Tuvalu
+territories.HK=Hongkong
territories.TT=Trinidad og Tobago
-territories.NO=Noreg
-territories.BE=Belgia
-territories.BD=Bangladesj
-territories.ZW=Simbabvi
territories.TR=Turkaland
-territories.NL=Ni\u00f0urlond
-territories.BA=Bosnia-Hersegovina
+territories.TO=Tonga
territories.TN=Tunesia
-territories.NI=Nikaragua
-territories.TJ=Tadsjikistan
-territories.AZ=Aserbajdsjan
-territories.ZM=Sambia
+languages.es=spanskt
+languages.ku=kurdiskt
+languages.eo=esperanto
+languages.en=enskt
+languages.el=grikskt
+languages.ko=koreanskt
+languages.kn=kannada
+languages.km=kambodjanskt
+languages.ka=georgiskt
+languages.jv=javanesiskt
+languages.fil=tagalog
+languages.pt=portugisiskt
+languages.ps=pashto
+languages.de=t\u00fdskt
+languages.pl=polskt
+languages.da=danskt
+languages.tlh=klingonskt
+languages.ja=japanskt
+languages.vi=vietnamesiskt
+languages.cy=valisiskt
+languages.pa=punjabi
+languages.cs=kekkiskt
+languages.it=italskt
+languages.is=\u00edslendskt
+languages.uz=uzbekiskt
+languages.or=oriya
+languages.ur=urdu
+languages.ca=katalanskt
+languages.ie=interlingue
+languages.id=indonesiskum
+languages.uk=ukrainskt
+languages.ia=interlingua
+languages.oc=occitan
+languages.ug=uighur
+languages.hy=armenskum
+languages.bs=bosniskt
+languages.br=bretonskt
+languages.hu=ungarskt
+languages.bn=bengaliskt
+languages.hr=kroatiskum
+languages.tw=twi
+languages.bh=bihariskt
+languages.bg=bulgarskum
+languages.no=norskt
+languages.be=belarussiskt
+languages.nn=n\u00fdnorskt
+languages.hi=hindi
+languages.tr=turkiskt
+languages.nl=hollendskt
+languages.zu=sulu
+languages.he=hebraiskt
+languages.tk=turkmenskt
+languages.ne=nepalskt
+languages.az=azerbaijaniskt
+languages.ti=tigrinya
+languages.th=thailendskt
+languages.nb=norskt bokm\u00e5l
+languages.te=telugu
+languages.as=assamesiskt
+languages.ar=arabiskt
+languages.ta=tamilskt
+languages.gu=gujariti
+languages.am=amhariskt
+languages.mt=maltesiskt
+languages.ms=malay
+languages.gn=guarani
+languages.sw=swahili
+languages.mr=marathiskt
+languages.sv=svenskt
+languages.gl=galliskt
+languages.su=sundanesiskt
+languages.af=afr\u00edska
+languages.st=sesotho
+languages.mn=mongoliskt
+languages.sr=serbiskum
+languages.sq=albanskt
+languages.ml=malayalam
+languages.mk=makedonskt
+languages.so=somaliskt
+languages.gd=skotskt g\u00e6liskt
+languages.sl=slovenskum
+languages.sk=slovakiskum
+languages.ga=\u00edrskt
+languages.si=sinhalesiskt
+languages.sh=serbokroatiskt
+languages.yi=jiddiskt
+languages.sd=sindhi
+languages.fy=frisiskt
+languages.sa=sanskrit
+languages.fr=franskt
+languages.lv=latviskt
+languages.lt=litavskt
languages.fo=f\u00f8royskt
+languages.ru=russiskt
+languages.lo=laothian
+languages.ln=lingala
+languages.fi=finskt
+languages.ro=romanskt
+languages.fa=persiskt
+languages.la=lat\u00edn
+languages.xh=xhosa
+languages.eu=baskiskt
+languages.ky=kyrgyz
+languages.et=estlendskt
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr.properties
index d89b6fe..3adda57 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr.properties
@@ -5,292 +5,501 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=\u00a0
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-localPatternChars=GaMjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.YDD=dinar du Y\u00e9men
-currenciesDisplayName.TWD=dollar ta\u00efwanais
-currenciesDisplayName.KES=shilling du Kenya
-currenciesDisplayName.BYB=nouveau rouble bi\u00e9lorusse (1994-1999)
-currenciesDisplayName.LKR=roupie de Sri Lanka
-currenciesDisplayName.RWF=franc du Rwanda
-currenciesDisplayName.TJS=somoni du Tadjikistan
-currenciesDisplayName.SDP=livre soudanaise
-currenciesDisplayName.TJR=rouble du Tadjikistan
-currenciesDisplayName.ERN=Eritrean Nakfa
-currenciesDisplayName.AFN=afghani
-currenciesDisplayName.GRD=drachme
-currenciesDisplayName.IEP=livre irlandaise
-currenciesDisplayName.ARS=peso argentin
-currenciesDisplayName.SDD=dinar soudanais
-currenciesDisplayName.ARP=peso argentin (1983-1985)
-currenciesDisplayName.GEL=lari
-currenciesDisplayName.AFA=afghani
-currenciesDisplayName.GEK=Georgian Kupon Larit
-currenciesDisplayName.CRC=colon
-currenciesDisplayName.FKP=livre des Falkland (Malvinas)
-currenciesDisplayName.EEK=couronne estonienne
-currenciesDisplayName.HKD=dollar de Hong Kong
-currenciesDisplayName.MDL=leu moldave
-currenciesDisplayName.ARA=austral
-currenciesDisplayName.IQD=dinar irakien
-currenciesDisplayName.SCR=roupie des Seychelles
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GaMjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=dinar nord-y\u00e9m\u00e9nite
+currenciesDisplayName.KES=shillings k\u00e9nyans
+currenciesDisplayName.TWD=nouveaux dollars ta\u00efwanais
+currenciesDisplayName.LKR=roupies srilankaises
+currenciesDisplayName.BYB=nouveau rouble bi\u00e9lorusse (1994\u20131999)
+currenciesDisplayName.TJS=somonis tadjiks
+currenciesDisplayName.RWF=franc rwandais
+currenciesDisplayName.ERN=nakfa d'\u00c9rythr\u00e9e
+currenciesDisplayName.TJR=roubles tadjiks
+currenciesDisplayName.SDP=livres soudanaises (1956\u20132007)
+currenciesDisplayName.GRD=drachmes grecques
+currenciesDisplayName.AFN=afghanis
+currenciesDisplayName.IEP=livres irlandaises
+currenciesDisplayName.ARS=pesos argentins
+currenciesDisplayName.SDG=dinar soudanais
+currenciesDisplayName.ARP=peso argentin (1983\u20131985)
+currenciesDisplayName.SDD=dinar soudanais (1992\u20132007)
+currenciesDisplayName.GEL=laris g\u00e9orgiens
+currenciesDisplayName.GEK=coupon de lari g\u00e9orgien
+currenciesDisplayName.AFA=afghanis (1927\u20132002)
+currenciesDisplayName.CRC=col\u00f3n du Costa Rica
+currenciesDisplayName.FKP=livres des Falkland
+currenciesDisplayName.EEK=couronnes estoniennes
+currenciesDisplayName.MDL=leus moldaves
+currenciesDisplayName.HKD=dollars de Hong Kong
+currenciesDisplayName.IQD=dinars irakiens
+currenciesDisplayName.ARA=austral argentin
+currenciesDisplayName.SCR=roupies des Seychelles
currenciesDisplayName.VUV=vatu
-currenciesDisplayName.DKK=couronne danoise
-currenciesDisplayName.KPW=won nord-cor\u00e9en
-currenciesDisplayName.GQE=ekw\u00e9l\u00e9
-currenciesDisplayName.IDR=rupiah
-currenciesDisplayName.LVR=rouble letton
-currenciesDisplayName.SOS=shilling de Somalie
-currenciesDisplayName.AED=dirham des \u00c9mirats arabes unis
-currenciesDisplayName.BWP=pula
-currenciesDisplayName.LVL=lats letton
-currenciesDisplayName.RUR=rouble de Russie (1991-1998)
-currenciesDisplayName.NIO=cordoba d\u2019or
-currenciesDisplayName.ADP=peseta andorrane
+currenciesDisplayName.KPW=wons nord-cor\u00e9ens
+currenciesDisplayName.DKK=couronnes danoises
+currenciesDisplayName.IDR=roupies indon\u00e9siennes
+currenciesDisplayName.GQE=ekue de Guin\u00e9e \u00e9quatoriale
+currenciesDisplayName.SOS=shillings somaliens
+currenciesDisplayName.LVR=roubles lettons
+currenciesDisplayName.EQE=ekue
+currenciesDisplayName.AED=dirhams des \u00c9mirats arabes unis
+currenciesDisplayName.LVL=lats lettons
+currenciesDisplayName.BWP=pulas botswanais
+currenciesDisplayName.RUR=roubles russes (1991\u20131998)
+currenciesDisplayName.NIO=c\u00f3rdobas oro nicaraguayens
+currenciesDisplayName.XTS=(devise de test)
+currenciesDisplayName.MOP=patacas macanaises
currenciesDisplayName.FJD=dollar de Fidji
-currenciesDisplayName.MOP=pataca
-currenciesDisplayName.RUB=rouble
-currenciesDisplayName.CDF=franc congolais
-currenciesDisplayName.NIC=cordoba
-currenciesDisplayName.DJF=franc de Djibouti
-currenciesDisplayName.ECV=unit\u00e9 de valeur constante \u00e9quatoriale (UVC)
-currenciesDisplayName.SBD=dollar de Salomon
-currenciesDisplayName.UZS=sum
-currenciesDisplayName.ECS=sucre
-currenciesDisplayName.PHP=peso philippin
-currenciesDisplayName.THB=baht
-currenciesDisplayName.LUF=franc luxembourgeois
-currenciesDisplayName.FIM=mark finlandais
-currenciesDisplayName.TTD=dollar de la Trinit\u00e9
-currenciesDisplayName.SZL=lilangeni
-currenciesDisplayName.MNT=tugrik
-currenciesDisplayName.SAR=riyal s\u00e9oudien
-currenciesDisplayName.UAK=karbovanetz
-currenciesDisplayName.UAH=hryvnia
-currenciesDisplayName.HUF=forint
+currenciesDisplayName.ADP=pesetas andorranes
+currenciesDisplayName.RUB=roubles russes
+currenciesDisplayName.CDF=francs congolais
+currenciesDisplayName.NIC=c\u00f3rdoba nicaraguayen (1912\u20131988)
+currenciesDisplayName.DJF=francs djiboutiens
+currenciesDisplayName.UZS=sums ouzbeks
+currenciesDisplayName.SBD=dollar des \u00celes Salomon
+currenciesDisplayName.ECV=unit\u00e9 de valeur constante \u00e9quatorienne (UVC)
+currenciesDisplayName.LUL=francs financiers luxembourgeois
+currenciesDisplayName.ECS=sucres \u00e9quatoriens
+currenciesDisplayName.THB=baths tha\u00eflandais
+currenciesDisplayName.PHP=pesos philippins
+currenciesDisplayName.LUF=francs luxembourgeois
+currenciesDisplayName.RHD=dollar rhod\u00e9sien
+currenciesDisplayName.LUC=francs convertibles luxembourgeois
+currenciesDisplayName.FIM=marks finlandais
+currenciesDisplayName.TTD=dollars trinidadiens
+currenciesDisplayName.SZL=emalangeni swazis
+currenciesDisplayName.MNT=tugriks mongols
+currenciesDisplayName.UAK=karbovanets ukrainien (1992\u20131996)
+currenciesDisplayName.SAR=rial saoudien
+currenciesDisplayName.COU=unit\u00e9 de valeur r\u00e9elle colombienne
+currenciesDisplayName.UAH=hryvnias ukrainiennes
+currenciesDisplayName.HUF=forints hongrois
+currenciesDisplayName.QAR=rials qataris
currenciesDisplayName.COP=peso colombien
-currenciesDisplayName.QAR=rial du Qatar
-currenciesDisplayName.LTT=Talonas de Lithuanie
-currenciesDisplayName.PTE=escudo portugais
-currenciesDisplayName.AOR=kwanza angolais r\u00e9ajust\u00e9 (1995-1999)
-currenciesDisplayName.UYU=peso uruguayen
-currenciesDisplayName.GBP=livre sterling
-currenciesDisplayName.BIF=franc du Burundi
-currenciesDisplayName.INR=roupie indienne
-currenciesDisplayName.ZRZ=za\u00efre
-currenciesDisplayName.AON=nouveau kwanza angolais (1990-2000)
-currenciesDisplayName.LTL=Lita de Lithuanian
-currenciesDisplayName.XFU=franc UIC
-currenciesDisplayName.KZT=tenge du Kazakhstan
-currenciesDisplayName.MZM=m\u00e9tical
-currenciesDisplayName.UYP=peso uruguayen (1975-1993)
-currenciesDisplayName.AOK=kwanza angolais (1977-1990)
+currenciesDisplayName.LTT=talonas lituaniens
+currenciesDisplayName.PTE=escudos portugais
+currenciesDisplayName.UYU=pesos uruguayens
+currenciesDisplayName.AOR=kwanza angolais r\u00e9ajust\u00e9 (1995\u20131999)
+currenciesDisplayName.GBP=livres sterling
+currenciesDisplayName.ZRZ=za\u00efres za\u00efrois
+currenciesDisplayName.INR=roupies indiennes
+currenciesDisplayName.BIF=francs burundais
+currenciesDisplayName.XFU=francs UIC
+currenciesDisplayName.MZN=metical
+currenciesDisplayName.LTL=litas lituanien
+currenciesDisplayName.AON=nouveau kwanza angolais (1990\u20132000)
+currenciesDisplayName.UYP=pesos uruguayens (1975\u20131993)
+currenciesDisplayName.MZM=metical mozambicain (1980\u20132006)
+currenciesDisplayName.KZT=tenges kazakhs
+currenciesDisplayName.AOK=kwanza angolais (1977\u20131990)
+currenciesDisplayName.GNS=sylis guin\u00e9ens
currenciesDisplayName.BUK=kyat
-currenciesDisplayName.GNS=syli
-currenciesDisplayName.XFO=franc or
-currenciesDisplayName.PGK=kina
-currenciesDisplayName.SYP=livre syrienne
-currenciesDisplayName.MZE=escudo du Mozambique
-currenciesDisplayName.OMR=rial omani
-currenciesDisplayName.NGN=naira
-currenciesDisplayName.ZRN=nouveau za\u00efre
-currenciesDisplayName.AOA=kwanza angolais
-currenciesDisplayName.CNY=Yuan Ren-min-bi
-currenciesDisplayName.MAF=franc marocain
-currenciesDisplayName.GNF=franc guin\u00e9en
-currenciesDisplayName.HTG=gourde
-currenciesDisplayName.MAD=dirham marocain
-currenciesDisplayName.MMK=Myanmar Kyat
-currenciesDisplayName.MYR=ringgit
-currenciesDisplayName.LSL=Lesotho Loti
-currenciesDisplayName.XEU=unit\u00e9 de compte europ\u00e9enne (ECU)
-currenciesDisplayName.BHD=dinar de Bahrein
-currenciesDisplayName.SLL=l\u00e9one
-currenciesDisplayName.BTN=ngultrum
-currenciesDisplayName.TRL=livre turque
-currenciesDisplayName.KMF=franc des Comores
-currenciesDisplayName.ANG=florin des Antilles n\u00e9erl.
-currenciesDisplayName.CZK=couronne tch\u00e8que
-currenciesDisplayName.AZM=Azerbaijanian Manat
-currenciesDisplayName.KYD=dollar des \u00eeles Ca\u00efmans
-currenciesDisplayName.GMD=dalasie
-currenciesDisplayName.BGN=nouveau lef
-currenciesDisplayName.CAD=dollar canadien
-currenciesDisplayName.MXV=unit\u00e9 de conversion mexicaine (UDI)
-currenciesDisplayName.BGL=lev
-currenciesDisplayName.VEB=bolivar
-currenciesDisplayName.MLF=franc malien
-currenciesDisplayName.ILS=sh\u00e9kel
-currenciesDisplayName.MXP=peso d\u2019argent mexicain (1861-1992)
-currenciesDisplayName.PES=sol p\u00e9ruvien
-currenciesDisplayName.GYD=dollar de Guyane
-currenciesDisplayName.ILP=livre isra\u00e9lienne
-currenciesDisplayName.SKK=couronne slovaque
-currenciesDisplayName.CYP=livre cypriote
-currenciesDisplayName.PEN=nouveau sol p\u00e9ruvien
-currenciesDisplayName.LRD=dollar lib\u00e9rien
-currenciesDisplayName.PEI=Inti p\u00e9ruvien
-currenciesDisplayName.AMD=dram arm\u00e9nien
+currenciesDisplayName.XFO=francs or
+currenciesDisplayName.PGK=kinas papouan-n\u00e9o-guin\u00e9ens
+currenciesDisplayName.UYI=pesos uruguayen (unit\u00e9s index\u00e9es)
+currenciesDisplayName.SYP=livres syriennes
+currenciesDisplayName.OMR=rials omanis
+currenciesDisplayName.MZE=escudos mozambicains
+currenciesDisplayName.ZRN=nouveaux za\u00efres za\u00efriens
+currenciesDisplayName.NGN=nairas nig\u00e9rians
+currenciesDisplayName.CNY=yuan renminbi
+currenciesDisplayName.AOA=kwanzas angolais
+currenciesDisplayName.MAF=francs marocains
+currenciesDisplayName.RSD=dinars serbes
+currenciesDisplayName.GNF=francs guin\u00e9ens
+currenciesDisplayName.MAD=dirhams marocains
+currenciesDisplayName.HTG=gourdes ha\u00eftiennes
+currenciesDisplayName.TRY=nouvelles livres turques
+currenciesDisplayName.MMK=kyats myanmarais
+currenciesDisplayName.XRE=type de fonds RINET
+currenciesDisplayName.MYR=ringgits malais
+currenciesDisplayName.LSM=loti lesothan
+currenciesDisplayName.XEU=unit\u00e9s de compte europ\u00e9ennes (ECU)
+currenciesDisplayName.LSL=lotis lesothans
+currenciesDisplayName.SLL=leones sierra-l\u00e9onais
+currenciesDisplayName.BHD=dinars bahre\u00efnis
+currenciesDisplayName.BTN=ngultrums bouthanais
+currenciesDisplayName.TRL=livre turque (1844\u20132005)
+currenciesDisplayName.KMF=francs comoriens
+currenciesDisplayName.CZK=couronnes tch\u00e8ques
+currenciesDisplayName.ANG=florins antillais
+currenciesDisplayName.AZN=manat
+currenciesDisplayName.AZM=manat az\u00e9ri (1993\u20132006)
+currenciesDisplayName.KYD=dollars des \u00eeles Ca\u00efmanes
+currenciesDisplayName.GMD=dalasis gambiens
+currenciesDisplayName.VEF=bol\u00edvar
+currenciesDisplayName.BGN=nouveau lev
+currenciesDisplayName.MXV=unit\u00e9s de conversion mexicaines (UDI)
+currenciesDisplayName.CAD=dollars canadiens
+currenciesDisplayName.BGL=ancien lev
+currenciesDisplayName.VEB=bol\u00edvar v\u00e9n\u00e9zu\u00e9lien (1879\u20132008)
+currenciesDisplayName.MLF=francs maliens
+currenciesDisplayName.MXP=pesos d\u2019argent mexicains (1861\u20131992)
+currenciesDisplayName.ILS=shekel
+currenciesDisplayName.PES=sol p\u00e9ruvien (1863\u20131985)
+currenciesDisplayName.MXN=peso mexicain
+currenciesDisplayName.GYD=dollar guyanien
+currenciesDisplayName.ILP=livres isra\u00e9liennes
+currenciesDisplayName.CYP=livres chypriotes
+currenciesDisplayName.SKK=couronnes slovaques
+currenciesDisplayName.XDR=droit de tirage sp\u00e9cial
+currenciesDisplayName.PEN=nouveaux sols p\u00e9ruviens
+currenciesDisplayName.LRD=dollars lib\u00e9riens
+currenciesDisplayName.PEI=intis p\u00e9ruviens
+currenciesDisplayName.AMD=drams arm\u00e9niens
currenciesDisplayName.BSD=dollar des Bahamas
-currenciesDisplayName.HRK=kuna
-currenciesDisplayName.CLP=peso chilien
-currenciesDisplayName.HRD=dinar croate
-currenciesDisplayName.XPF=franc CFP
-currenciesDisplayName.FRF=franc fran\u00e7ais
-currenciesDisplayName.BRR=cruzeiro
-currenciesDisplayName.MKD=dinar mac\u00e9donien
-currenciesDisplayName.CLF=Chilean Unidades de Fomento
-currenciesDisplayName.ALL=lek albanais
-currenciesDisplayName.BRN=nouveau cruzado
-currenciesDisplayName.MWK=kwacha
+currenciesDisplayName.XPT=onces troy de platine
+currenciesDisplayName.HRK=kunas croates
+currenciesDisplayName.CLP=pesos chiliens
+currenciesDisplayName.HRD=dinars croates
+currenciesDisplayName.XPF=francs CFP
+currenciesDisplayName.FRF=francs fran\u00e7ais
+currenciesDisplayName.XPD=onces troy de palladium
+currenciesDisplayName.BRR=cruzeiro r\u00e9al br\u00e9silien (1993\u20131994)
+currenciesDisplayName.MKD=denars mac\u00e9doniens
+currenciesDisplayName.CLF=unit\u00e9s d\u2019investissement chiliennes
+currenciesDisplayName.ALL=leks albanais
+currenciesDisplayName.BRN=nouveau cruzado br\u00e9silien (1989\u20131990)
+currenciesDisplayName.ALK=leks albanais (1947\u20131961)
+currenciesDisplayName.MWK=kwachas malawites
currenciesDisplayName.BRL=r\u00e9al
-currenciesDisplayName.TPE=escudo de Timor
-currenciesDisplayName.BRE=cruzeiro (1990-1993)
-currenciesDisplayName.BRC=cruzeiro
-currenciesDisplayName.BRB=nouveau cruzeiro (1967-1986)
-currenciesDisplayName.DEM=deutsche mark
-currenciesDisplayName.KWD=dinar koweitien
-currenciesDisplayName.XCD=dollar des Cara\u00efbes
-currenciesDisplayName.NPR=roupie du N\u00e9pal
-currenciesDisplayName.GWP=peso de Guin\u00e9e-Bissau
-currenciesDisplayName.YUN=dinar yougoslave convertible
-currenciesDisplayName.SVC=colon
-currenciesDisplayName.YUM=dinar yougoslave Noviy
-currenciesDisplayName.BEL=franc belge (financier)
-currenciesDisplayName.SIT=tolar slov\u00e8ne
-currenciesDisplayName.JPY=yen
-currenciesDisplayName.XOF=franc CFA (BCEAO)
-currenciesDisplayName.MVR=roupie des Maldives
-currenciesDisplayName.GWE=Escudo de Guin\u00e9e Portugaise
-currenciesDisplayName.BEF=franc belge
-currenciesDisplayName.TOP=pa\u02bbanga
-currenciesDisplayName.YUD=nouveau dinar yougoslave
-currenciesDisplayName.BEC=franc belge (convertible)
-currenciesDisplayName.SUR=rouble de C.E.I.
-currenciesDisplayName.ROL=leu
-currenciesDisplayName.DDM=mark est-allemand
-currenciesDisplayName.BDT=taka
-currenciesDisplayName.XBD=unit\u00e9 de compte europ\u00e9enne (XBD)
-currenciesDisplayName.AWG=florin d\u2019Aruba
-currenciesDisplayName.XBC=unit\u00e9 de compte europ\u00e9enne (XBC)
-currenciesDisplayName.XBB=unit\u00e9 mon\u00e9taire europ\u00e9enne
-currenciesDisplayName.XBA=unit\u00e9 composite europ\u00e9enne
-currenciesDisplayName.NOK=couronne norv\u00e9gienne
-currenciesDisplayName.MUR=roupie de l\u2019\u00eele Maurice
-currenciesDisplayName.ZAR=rand
-currenciesDisplayName.SHP=livre de Sainte-H\u00e9l\u00e8ne
-currenciesDisplayName.XAU=Or
-currenciesDisplayName.ZAL=rand sud-africain (financier)
-currenciesDisplayName.VND=dong
-currenciesDisplayName.TZS=shilling de Tanzanie
-currenciesDisplayName.GIP=livre de Gibraltar
-currenciesDisplayName.TND=dinar tunisien
-currenciesDisplayName.CVE=escudo du Cap-Vert
-currenciesDisplayName.UGX=shilling ougandais
-currenciesDisplayName.ZMK=kwacha
-currenciesDisplayName.JOD=dinar jordanien
-currenciesDisplayName.XAF=franc CFA (BEAC)
-currenciesDisplayName.LBP=livre libanaise
-currenciesDisplayName.UGS=shilling ougandais (1966-1987)
-currenciesDisplayName.STD=dobra
-currenciesDisplayName.WST=tala
-currenciesDisplayName.KHR=riel
-currenciesDisplayName.EUR=euro
-currenciesDisplayName.DOP=peso dominicain
-currenciesDisplayName.BOV=Bolivian Mvdol
-currenciesDisplayName.MTP=livre maltaise
-currenciesDisplayName.USS=dollar des Etats-Unis (jour m\u00eame)
-currenciesDisplayName.BOP=peso bolivien
-currenciesDisplayName.MTL=lire maltaise
-currenciesDisplayName.CUP=peso cubain
-currenciesDisplayName.TMM=Turkmenistan Manat
-currenciesDisplayName.USN=dollar des Etats-Unis (jour suivant)
-currenciesDisplayName.SGD=dollar de Singapour
-currenciesDisplayName.NZD=dollar n\u00e9o-z\u00e9landais
-currenciesDisplayName.USD=dollar des \u00c9tats-Unis
-currenciesDisplayName.HNL=lempira
-currenciesDisplayName.BOB=boliviano
-currenciesDisplayName.ITL=lire italienne
-currenciesDisplayName.PAB=balboa
-currenciesDisplayName.GTQ=quetzal
-currenciesDisplayName.LAK=kip
-currenciesDisplayName.GHC=c\u00e9di
-currenciesDisplayName.AUD=dollar australien
-currenciesDisplayName.NAD=dollar de Namibie
-currenciesDisplayName.KGS=som du Kyrgystan
-currenciesDisplayName.MGF=franc malgache
-currenciesDisplayName.CHF=franc suisse
-currenciesDisplayName.BBD=dollar de Barbade
-currenciesDisplayName.MGA=ariary malgache
-currenciesDisplayName.PYG=guarani
-currenciesDisplayName.PLZ=zloty (1950-1995)
-currenciesDisplayName.YER=riyal du Y\u00e9men
-currenciesDisplayName.ATS=schilling autrichien
-currenciesDisplayName.ETB=birr
+currenciesDisplayName.TPE=escudos timorais
+currenciesDisplayName.BRE=cruzeiros br\u00e9siliens (1990\u20131993)
+currenciesDisplayName.BRC=cruzados br\u00e9siliens (1986\u20131989)
+currenciesDisplayName.BRB=nouveaux cruzeiros br\u00e9siliens (1967\u20131986)
+currenciesDisplayName.DEM=marks allemands
+currenciesDisplayName.KWD=dinar kowe\u00eftiens
+currenciesDisplayName.XCD=dollar des Cara\u00efbes orientales
+currenciesDisplayName.NPR=roupies n\u00e9palaises
+currenciesDisplayName.GWP=pesos bissau-guin\u00e9ens
+currenciesDisplayName.YUN=dinar convertible yougoslave (1990\u20131992)
+currenciesDisplayName.SVC=col\u00f3ns salvadoriens
+currenciesDisplayName.YUM=nouveau dinar yougoslave (1994\u20132003)
+currenciesDisplayName.BEL=francs belges (financiers)
+currenciesDisplayName.SIT=tolars slov\u00e8nes
+currenciesDisplayName.JPY=yens japonais
+currenciesDisplayName.XOF=francs CFA (BCEAO)
+currenciesDisplayName.MVR=rufiyaas maldiviennes
+currenciesDisplayName.BEF=francs belges
+currenciesDisplayName.GWE=escudo de Guin\u00e9e portugaise
+currenciesDisplayName.TOP=pa\u2019angas tongans
+currenciesDisplayName.YUD=dinar fort yougoslave (1966\u20131989)
+currenciesDisplayName.BEC=francs belges (convertibles)
+currenciesDisplayName.SUR=roubles sovi\u00e9tiques
+currenciesDisplayName.RON=lei roumains
+currenciesDisplayName.ROL=leu roumain (1952\u20132005)
+currenciesDisplayName.BDT=takas bangladeshis
+currenciesDisplayName.DDM=marks est-allemands
+currenciesDisplayName.XBD=unit\u00e9 de compte 17 europ\u00e9enne (UEC-17)
+currenciesDisplayName.AWG=florins arubais
+currenciesDisplayName.XBC=unit\u00e9 de compte 9 europ\u00e9enne (UEC-9)
+currenciesDisplayName.XBB=unit\u00e9 mon\u00e9taire europ\u00e9enne (UME-6)
+currenciesDisplayName.XBA=unit\u00e9 compos\u00e9e europ\u00e9enne (EURCO)
+currenciesDisplayName.NOK=couronnes norv\u00e9giennes
+currenciesDisplayName.MUR=roupie mauricienne
+currenciesDisplayName.ZAR=rands sud-africains
+currenciesDisplayName.SHP=livres de Sainte-H\u00e9l\u00e8ne
+currenciesDisplayName.XAU=onces troy d\u2019or
+currenciesDisplayName.ZAL=rands sud-africains (financiers)
+currenciesDisplayName.VND=d\u00f4ngs vietnamiens
+currenciesDisplayName.TZS=shillings tanzaniens
+currenciesDisplayName.GIP=livres de Gibraltar
+currenciesDisplayName.TND=dinars tunisiens
+currenciesDisplayName.CVE=escudos capverdiens
+currenciesDisplayName.UGX=shillings ougandais
+currenciesDisplayName.XAG=onces troy d\u2019argent
+currenciesDisplayName.ZMK=kwachas zambiens
+currenciesDisplayName.JOD=dinars jordaniens
+currenciesDisplayName.XAF=francs CFA (BEAC)
+currenciesDisplayName.LBP=livres libanaises
+currenciesDisplayName.UGS=shilling ougandais (1966\u20131987)
+currenciesDisplayName.STD=dobras santom\u00e9ens
+currenciesDisplayName.WST=talas samoans
+currenciesDisplayName.KHR=riels cambodgiens
+currenciesDisplayName.DOP=pesos dominicains
+currenciesDisplayName.EUR=euros
+currenciesDisplayName.BOV=mvdol
+currenciesDisplayName.MTP=livres maltaises
+currenciesDisplayName.USS=dollar des \u00c9tats-Unis (jour m\u00eame)
+currenciesDisplayName.BOP=pesos boliviens
+currenciesDisplayName.CUP=pesos cubains
+currenciesDisplayName.MTL=lires maltaises
+currenciesDisplayName.TMM=manats turkm\u00e8nes
+currenciesDisplayName.USN=dollar des \u00c9tats-Unis (jour suivant)
+currenciesDisplayName.GHS=cedi
+currenciesDisplayName.SGD=dollars de Singapour
+currenciesDisplayName.NZD=dollars n\u00e9o-z\u00e9landais
+currenciesDisplayName.USD=dollars des \u00c9tats-Unis
+currenciesDisplayName.BOB=bolivianos
+currenciesDisplayName.HNL=lempiras honduriens
+currenciesDisplayName.CHW=francs WIR
+currenciesDisplayName.ITL=lires italiennes
+currenciesDisplayName.PAB=balboas panam\u00e9ens
+currenciesDisplayName.GTQ=quetzals guat\u00e9malt\u00e8ques
+currenciesDisplayName.XXX=(devise ind\u00e9termin\u00e9e)
+currenciesDisplayName.AUD=dollars australiens
+currenciesDisplayName.GHC=c\u00e9di ghan\u00e9en (1967\u20132007)
+currenciesDisplayName.LAK=kips loatiens
+currenciesDisplayName.NAD=dollar namibien
+currenciesDisplayName.KGS=soms kirghizes
+currenciesDisplayName.MGF=francs malgaches
+currenciesDisplayName.BBD=dollars barbadiens
+currenciesDisplayName.CHF=francs suisses
+currenciesDisplayName.CHE=euros WIR
+currenciesDisplayName.MGA=ariarys malgaches
+currenciesDisplayName.PYG=guaran\u00eds paraguayens
+currenciesDisplayName.PLZ=zloty polonais (1950\u20131995)
+currenciesDisplayName.YER=rials y\u00e9m\u00e9nites
+currenciesDisplayName.ATS=schillings autrichiens
+currenciesDisplayName.ETB=birr d'\u00c9thiopie
currenciesDisplayName.BND=dollar de Brunei
-currenciesDisplayName.JMD=dollar jama\u00efcain
-currenciesDisplayName.EGP=livre \u00e9gyptienne
-currenciesDisplayName.DZD=dinar alg\u00e9rien
-currenciesDisplayName.ISK=couronne islandaise
-currenciesDisplayName.SRG=florin du Surinam
-currenciesDisplayName.LYD=dinar Iibyen
-currenciesDisplayName.BZD=dollar de B\u00e9lize
-currenciesDisplayName.BAM=mark convertible de Bosnie-Herzegovine
-currenciesDisplayName.ESP=peseta espagnole
-currenciesDisplayName.KRW=won sud-cor\u00e9en
-currenciesDisplayName.NLG=florin n\u00e9erlandais
-currenciesDisplayName.MRO=ouguija
-currenciesDisplayName.BAD=dinar de Bosnie-Herzegovine
-currenciesDisplayName.ZWD=dollar du Zimbabwe
-currenciesDisplayName.SEK=couronne su\u00e9doise
-currenciesDisplayName.CSK=couronne tch\u00e8que
-currenciesDisplayName.BYR=rouble bi\u00e9lorusse
-currenciesDisplayName.IRR=rial iranien
-currenciesDisplayName.PKR=roupie du Pakistan
-currenciesDisplayName.BMD=dollar des Bermudes
-currenciesSymbol.BYR=Rbl
-currenciesSymbol.CHF=sFr.
-currenciesSymbol.ARS=Arg$
-currenciesSymbol.GYD=G$
+currenciesDisplayName.EGP=livres \u00e9gyptiennes
+currenciesDisplayName.JMD=dollars jama\u00efcains
+currenciesDisplayName.PLN=zlotys polonais
+currenciesDisplayName.DZD=dinars alg\u00e9riens
+currenciesDisplayName.ISK=couronnes islandaises
+currenciesDisplayName.SRG=florins surinamais
+currenciesDisplayName.LYD=dinars lybien
+currenciesDisplayName.SRD=dollars surinamais
+currenciesDisplayName.BAM=marks convertibles bosniaques
+currenciesDisplayName.BZD=dollars b\u00e9liz\u00e9ens
+currenciesDisplayName.ESP=pesetas espagnoles
+currenciesDisplayName.KRW=wons sud-cor\u00e9ens
+currenciesDisplayName.NLG=florins n\u00e9erlandais
+currenciesDisplayName.MRO=ouguiyas mauritaniens
+currenciesDisplayName.BAD=dinar de Bosnie-Herz\u00e9govine
+currenciesDisplayName.ZWD=dollars zimbabw\u00e9ens
+currenciesDisplayName.SEK=couronnes su\u00e9doises
+currenciesDisplayName.CSK=couronne de Tch\u00e9quie
+currenciesDisplayName.BYR=roubles bi\u00e9lorusses
+currenciesDisplayName.ESB=pesetas espagnoles (compte convertible)
+currenciesDisplayName.IRR=rials iraniens
+currenciesDisplayName.ESA=pesetas espagnoles (compte A)
+currenciesDisplayName.PKR=roupies pakistanaises
+currenciesDisplayName.BMD=dollars bermudiens
+currenciesDisplayName.CSD=dinars serbo-mont\u00e9n\u00e9grins
+currenciesSymbol.KES=ShK
+currenciesSymbol.TWD=N$T
+currenciesSymbol.LKR=ReSL
+currenciesSymbol.RWF=FRw
+currenciesSymbol.GRD=Dr
currenciesSymbol.AFN=Af
-currenciesSymbol.FRF=F
+currenciesSymbol.IEP=\u00a3IE
+currenciesSymbol.ARS=$Arg
currenciesSymbol.GEL=lari
-currenciesSymbol.ALL=lek
-currenciesSymbol.UGX=U Sh
-currenciesSymbol.DJF=DF
+currenciesSymbol.GEK=KlGe
+currenciesSymbol.CRC=C
+currenciesSymbol.FKP=\u00a3Fk
+currenciesSymbol.EEK=KrE
+currenciesSymbol.MDL=LM
+currenciesSymbol.HKD=$HK
+currenciesSymbol.IQD=DI
+currenciesSymbol.SCR=RpS
+currenciesSymbol.VUV=VT
+currenciesSymbol.KPW=\u20a9kp
+currenciesSymbol.DKK=KrD
+currenciesSymbol.IDR=Rp
+currenciesSymbol.SOS=ShSo
+currenciesSymbol.LVR=RbL
+currenciesSymbol.EQE=ekw\u00e9l\u00e9 de Guin\u00e9e \u00e9quatoriale
+currenciesSymbol.LVL=Ls
+currenciesSymbol.BWP=PBw
+currenciesSymbol.RUR=RuR
+currenciesSymbol.MOP=PMo
+currenciesSymbol.FJD=$F
+currenciesSymbol.ADP=\u20a7A
+currenciesSymbol.RUB=Rub
+currenciesSymbol.CDF=FrCD
+currenciesSymbol.DJF=FDj
+currenciesSymbol.UZS=sum
+currenciesSymbol.SBD=$SI
+currenciesSymbol.ECV=Uvc\u00c9q
+currenciesSymbol.ECS=SEq
+currenciesSymbol.THB=B.
+currenciesSymbol.PHP=Php
+currenciesSymbol.LUF=FL
+currenciesSymbol.RHD=$RH
+currenciesSymbol.TTD=$TT
+currenciesSymbol.SZL=Li
+currenciesSymbol.MNT=Tug
+currenciesSymbol.SAR=Rls
+currenciesSymbol.UAH=hrn
+currenciesSymbol.HUF=Ft
+currenciesSymbol.QAR=RQ
+currenciesSymbol.COP=$Col
+currenciesSymbol.PTE=Esc
+currenciesSymbol.UYU=$Ur
+currenciesSymbol.GBP=\u00a3GB
+currenciesSymbol.ZRZ=Z
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.MZN=MTn
+currenciesSymbol.LTL=Lts
+currenciesSymbol.MZM=Mt
currenciesSymbol.KZT=T
-currenciesSymbol.GNF=GF
+currenciesSymbol.SYP=\u00a3Sy
+currenciesSymbol.OMR=RO
+currenciesSymbol.MZE=EscMz
+currenciesSymbol.ZRN=NZ
+currenciesSymbol.NGN=\u20a6
+currenciesSymbol.CNY=\u04b0
+currenciesSymbol.MAF=FMa
+currenciesSymbol.RSD=DS
+currenciesSymbol.GNF=FG
+currenciesSymbol.MAD=Dm
+currenciesSymbol.HTG=Gd
+currenciesSymbol.TRY=YTL
+currenciesSymbol.MMK=KMm
+currenciesSymbol.MYR=RMy
+currenciesSymbol.LSM=0\u2264M|1\u2264L|1<M
+currenciesSymbol.LSL=0\u2264M|1\u2264L|1<M
+currenciesSymbol.SLL=Ln
+currenciesSymbol.BHD=DB
currenciesSymbol.BTN=Nu
-currenciesSymbol.UYU=Ur$
+currenciesSymbol.TRL=TL
+currenciesSymbol.KMF=FC
+currenciesSymbol.CZK=KrCz
+currenciesSymbol.ANG=f.NA
+currenciesSymbol.AZN=man.
+currenciesSymbol.KYD=$KY
+currenciesSymbol.GMD=Ds
+currenciesSymbol.VEF=BsF
+currenciesSymbol.BGN=NB
+currenciesSymbol.CAD=$Ca
+currenciesSymbol.BGL=lev
+currenciesSymbol.VEB=Be
+currenciesSymbol.MLF=Fml
+currenciesSymbol.ILS=\u20aa
+currenciesSymbol.MXN=$Mex
+currenciesSymbol.GYD=$Gy
+currenciesSymbol.ILP=\u00a3IL
+currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.SKK=KrSk
+currenciesSymbol.PEN=S./
+currenciesSymbol.LRD=$LR
+currenciesSymbol.PEI=I/.
+currenciesSymbol.AMD=dram
+currenciesSymbol.BSD=$Bs
+currenciesSymbol.HRK=Ku
+currenciesSymbol.CLP=$Ch
+currenciesSymbol.XPF=FCFP
+currenciesSymbol.FRF=F
+currenciesSymbol.BRR=CR$
+currenciesSymbol.MKD=DenM
+currenciesSymbol.BRN=NCz$
+currenciesSymbol.ALL=lek
+currenciesSymbol.MWK=KMw
+currenciesSymbol.BRE=Cz$
+currenciesSymbol.BRC=Cz
+currenciesSymbol.BRB=Cr$
+currenciesSymbol.DEM=DM
+currenciesSymbol.XCD=$EC
+currenciesSymbol.KWD=DK
+currenciesSymbol.NPR=RsNe
+currenciesSymbol.GWP=$GW
+currenciesSymbol.SIT=TSi
+currenciesSymbol.JPY=\u00a5JP
+currenciesSymbol.MVR=rf
+currenciesSymbol.TOP=$To
+currenciesSymbol.GWE=EscGW
currenciesSymbol.BEF=FB
+currenciesSymbol.SUR=RbS
+currenciesSymbol.RON=0\u2264lei|1\u2264leu|1
+currenciesSymbol.BDT=Tk
+currenciesSymbol.AWG=f.AW
+currenciesSymbol.NOK=KrNo
+currenciesSymbol.ZAR=R.
+currenciesSymbol.MUR=RpMu
+currenciesSymbol.SHP=\u00a3SH
+currenciesSymbol.VND=\u20ab
+currenciesSymbol.TZS=ShT
+currenciesSymbol.GIP=\u00a3Gi
+currenciesSymbol.TND=DT
+currenciesSymbol.UGX=ShU
+currenciesSymbol.CVE=EscCV
+currenciesSymbol.ZMK=KwZ
+currenciesSymbol.JOD=DJ
+currenciesSymbol.LBP=\u00a3LB
+currenciesSymbol.STD=Db
+currenciesSymbol.KHR=RC
+currenciesSymbol.DOP=$RD
+currenciesSymbol.MTP=\u00a3Mt
+currenciesSymbol.BOP=$Bo
+currenciesSymbol.CUP=PsCu
currenciesSymbol.MTL=Lm
-currenciesSymbol.MKD=MDen
-currenciesSymbol.LSL=M
-currenciesSymbol.AMD=dram
-currenciesSymbol.TRL=TL
-currenciesSymbol.BRL=R$
-currenciesSymbol.NAD=N$
-currenciesSymbol.LYD=LD
+currenciesSymbol.GHS=\u20b5Gh
+currenciesSymbol.SGD=$SG
+currenciesSymbol.NZD=$NZ
+currenciesSymbol.USD=$US
+currenciesSymbol.BOB=Bs
+currenciesSymbol.HNL=LHn
+currenciesSymbol.ITL=\u20a4IT
+currenciesSymbol.PAB=B/.
+currenciesSymbol.GTQ=Q
+currenciesSymbol.AUD=$AU
+currenciesSymbol.GHC=\u20b5
+currenciesSymbol.LAK=KL
+currenciesSymbol.NAD=$Na
currenciesSymbol.KGS=som
-currenciesSymbol.ZWD=Z$
+currenciesSymbol.MGF=FMg
+currenciesSymbol.BBD=$Bds
+currenciesSymbol.CHF=sFr.
+currenciesSymbol.MGA=Ar
+currenciesSymbol.PYG=\u20b2
+currenciesSymbol.YER=RY
+currenciesSymbol.ATS=\u00f6S
+currenciesSymbol.ETB=Br
+currenciesSymbol.BND=$Bn
+currenciesSymbol.EGP=\u00a3Eg
+currenciesSymbol.JMD=$JM
+currenciesSymbol.PLN=Zl
+currenciesSymbol.DZD=DA
+currenciesSymbol.ISK=KrIs
+currenciesSymbol.SRG=f.Sr
+currenciesSymbol.LYD=DL
+currenciesSymbol.SRD=$Sr
currenciesSymbol.BAM=KM
-currenciesSymbol.BOB=Bs
-shortMonths=janv.®f\u00e9vr.®mars®avr.®mai®juin®juil.®ao\u00fbt®sept.®oct.®nov.®d\u00e9c.®®
-months=janvier®f\u00e9vrier®mars®avril®mai®juin®juillet®ao\u00fbt®septembre®octobre®novembre®d\u00e9cembre®®
-shortWeekdays=®dim.®lun.®mar.®mer.®jeu.®ven.®sam.®
-weekdays=®dimanche®lundi®mardi®mercredi®jeudi®vendredi®samedi®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=av. J.-C.®apr. J.-C.®
+currenciesSymbol.BZD=$Bz
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.KRW=\u20a9kr
+currenciesSymbol.NLG=f.
+currenciesSymbol.MRO=UM
+currenciesSymbol.ZWD=$Z
+currenciesSymbol.SEK=KrSw
+currenciesSymbol.CSK=KrCs
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.IRR=RI
+currenciesSymbol.PKR=RaP
+currenciesSymbol.BMD=$Ber
+currenciesSymbol.CSD=CSD
+shortMonths=janv.\u00aef\u00e9vr.\u00aemars\u00aeavr.\u00aemai\u00aejuin\u00aejuil.\u00aeao\u00fbt\u00aesept.\u00aeoct.\u00aenov.\u00aed\u00e9c.\u00ae\u00ae
+months=janvier\u00aef\u00e9vrier\u00aemars\u00aeavril\u00aemai\u00aejuin\u00aejuillet\u00aeao\u00fbt\u00aeseptembre\u00aeoctobre\u00aenovembre\u00aed\u00e9cembre\u00ae\u00ae
+shortWeekdays=\u00aedim.\u00aelun.\u00aemar.\u00aemer.\u00aejeu.\u00aeven.\u00aesam.\u00ae
+weekdays=\u00aedimanche\u00aelundi\u00aemardi\u00aemercredi\u00aejeudi\u00aevendredi\u00aesamedi\u00ae
+eras=av. J.-C.\u00aeap. J.-C.\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=dd/MM/yy
-mediumDateFormat=d MMM yy
+mediumDateFormat=d MMM yyyy
longDateFormat=d MMMM yyyy
fullDateFormat=EEEE d MMMM yyyy
-fullTimeFormat=HH' h 'mm z
-zoneStrings=Pacific/Honolulu®HST®Heure normale d\u2019Hawa\u00ef®HDT®Heure avanc\u00e9e d\u2019Hawa\u00ef®©Europe/Bucharest®HEE®Heure normale de l\u2019Europe de l\u2019Est®HAEE®Heure avanc\u00e9e de l\u2019Europe de l\u2019Est®©America/Montreal®HNE®Heure normale de l\u2019Est®HAE®Heure avanc\u00e9e de l\u2019Est®©America/Los_Angeles®HNP (\u00c9UA)®Heure normale du Pacifique (\u00c9UA)®HAP (\u00c9UA)®Heure avanc\u00e9e du Pacifique (\u00c9UA)®©America/Vancouver®HNP®Heure normale du Pacifique®HAP®Heure avanc\u00e9e du Pacifique®©America/Denver®HNR (\u00c9UA)®Heure normale des Rocheuses (\u00c9UA)®HAR (\u00c9UA)®Heure avanc\u00e9e des Rocheuses (\u00c9UA)®©America/Winnipeg®HNC®Heure normale du Centre®HAC®Heure avanc\u00e9e du Centre®©America/Edmonton®HNR®Heure normale des Rocheuses®HAR®Heure avanc\u00e9e des Rocheuses®©Asia/Jerusalem®HNI®Heure normale d\u2019Isra\u00ebl®HAI®Heure avanc\u00e9e d\u2019Isra\u00ebl®©America/Phoenix®HNR (\u00c9UA)®Heure normale des Rocheuses (\u00c9UA)®HAR (\u00c9UA)®Heure avanc\u00e9e des Rocheuses (\u00c9UA)®©America/Chicago®HNC (\u00c9UA)®Heure normale du Centre (\u00c9UA)®HAC (\u00c9UA)®Heure avanc\u00e9e du Centre (\u00c9UA)®©America/Indianapolis®HNE (\u00c9UA)®Heure normale de l\u2019Est (\u00c9UA)®HAE (\u00c9UA)®Heure avanc\u00e9e de l\u2019Est (\u00c9UA)®©America/St_Johns®HNT®Heure normale de Terre-Neuve®HAT®Heure avanc\u00e9e de Terre-Neuve®©America/Anchorage®HNAK®Heure normale de l\u2019Alaska®HAAK®Heure avanc\u00e9e de l\u2019Alaska®©Asia/Shanghai®HNC®Heure normale de Chine®HAC®Heure avanc\u00e9e de Chine®©Asia/Tokyo®HNJ®Heure normale du Japon®HAJ®Heure avanc\u00e9e du Japon®©Europe/Paris®HNEC®Heure normale de l\u2019Europe centrale®HAEC®Heure avanc\u00e9e de l\u2019Europe centrale®©America/New_York®HNE (\u00c9UA)®Heure normale de l\u2019Est (\u00c9UA)®HAE (\u00c9UA)®Heure avanc\u00e9e de l\u2019Est (\u00c9UA)®©America/Halifax®HNA®Heure normale de l\u2019Atlantique®HAA®Heure avanc\u00e9e de l\u2019Atlantique®©
-territories.TL=Timor-Leste
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Central\u00aeheure normale d\u2019Europe centrale\u00aeHNEC\u00aeHeure avanc\u00e9e de l\u2019Europe centrale\u00aeHAEC\u00ae\u00a9Africa_Western\u00aeHeure normale d\u2019Afrique occidentale\u00aeHNAFO\u00aeHeure avanc\u00e9e d\u2019Afrique occidentale\u00aeHAAFO\u00ae\u00a9Kamchatka\u00aeheure normale de Petropavlovsk-Kamchatski\u00aeHNPET\u00aeheure avanc\u00e9e de Petropavlovsk-Kamchatski\u00aeHAPET\u00ae\u00a9Irkutsk\u00aeheure normale d\u2019Irkoutsk\u00aeHNIRK\u00aeheure avanc\u00e9e d\u2019Irkoutsk\u00aeHAIRK\u00ae\u00a9Borneo\u00aeheure normale de Born\u00e9o\u00aeHNBOR\u00aeheure avanc\u00e9e de Born\u00e9o\u00aeHABOR\u00ae\u00a9Australia_Eastern\u00aeheure normale de l\u2019Est australien\u00aeHNE (AU)\u00aeheure avanc\u00e9e de l\u2019Est australien\u00aeHAE (AU)\u00ae\u00a9Dominican\u00aeheure normale de R\u00e9publique dominicaine\u00aeHNDO\u00aeheure avanc\u00e9e de R\u00e9publique dominicaine\u00aeHADO\u00ae\u00a9Aqtau\u00aeheure normale d\u2019Aktaou\u00aeHNAQT\u00aeheure avanc\u00e9e d\u2019Aktaou\u00aeHAAQT\u00ae\u00a9Kazakhstan_Western\u00aeheure normale de l\u2019Ouest kazakh\u00aeHNO (KZ)\u00aeheure avanc\u00e9e de l\u2019Ouest kazakh\u00aeHAO (KZ)\u00ae\u00a9Bangladesh\u00aeheure normale du Bangladesh\u00aeHNBD\u00aeheure avanc\u00e9e du Bangladesh\u00aeHABD\u00ae\u00a9Indian_Ocean\u00aeheure normale du Territoire britannique de l\u2019oc\u00e9an Indien\u00aeHNIO\u00aeheure avanc\u00e9e du Territoire britannique de l\u2019oc\u00e9an Indien\u00aeHAIO\u00ae\u00a9Fiji\u00aeheure normale des \u00celes Fidji\u00aeHNFJ\u00aeheure avanc\u00e9e des \u00celes Fidji\u00aeHAFJ\u00ae\u00a9Azerbaijan\u00aeheure normale d\u2019Azerba\u00efdjan\u00aeHNAZ\u00aeheure avanc\u00e9e d\u2019Azerba\u00efdjan\u00aeHAAZ\u00ae\u00a9Amazon\u00aeheure normale de l\u2019Amazonie\u00aeHNAMA\u00aeheure avanc\u00e9e de l\u2019Amazonie\u00aeHAAMA\u00ae\u00a9Arabian\u00aeheure normale de l\u2019Arabie\u00aeHNA\u00aeheure avanc\u00e9e de l\u2019Arabie\u00aeHAA\u00ae\u00a9Krasnoyarsk\u00aeheure normale de Krasno\u00efarsk\u00aeHNKRA\u00aeheure avanc\u00e9e de Krasno\u00efarsk\u00aeHAKRA\u00ae\u00a9Alaska\u00aeheure normale de l\u2019Alaska\u00aeHNAK\u00aeheure avanc\u00e9e de l\u2019Alaska\u00aeHAAK\u00ae\u00a9Gulf\u00aeheure normale du Golfe\u00aeHNG\u00aeheure avanc\u00e9e du Golfe\u00aeHAG\u00ae\u00a9Dutch_Guiana\u00aeheure normale de Guyane n\u00e9erlandaise\u00aeHAGNE\u00aeheure avanc\u00e9e de Guyane n\u00e9erlandaise\u00aeHAGNE\u00ae\u00a9Easter\u00aeheure normale de l\u2019\u00eele de P\u00e2ques\u00aeHNPAQ\u00aeheure avanc\u00e9e de l\u2019\u00eele de P\u00e2ques\u00aeHAPAQ\u00ae\u00a9Hong_Kong\u00aeheure normale de Hong Kong\u00aeHNHK\u00aeheure avanc\u00e9e de Hong Kong\u00aeHAHK\u00ae\u00a9Indonesia_Western\u00aeheure normale de l\u2019Ouest indon\u00e9sien\u00aeHNO (ID)\u00aeheure avanc\u00e9e de l\u2019Ouest indon\u00e9sien\u00aeHAO (ID)\u00ae\u00a9Indonesia_Eastern\u00aeheure normale de l\u2019Est indon\u00e9sien\u00aeHNE (ID)\u00aeheure avanc\u00e9e de l\u2019Est indon\u00e9sien\u00aeHAE (ID)\u00ae\u00a9Aqtobe\u00aeheure normale d\u2019Aqt\u00f6be\u00aeHNAQB\u00aeheure avanc\u00e9 d\u2019Aqt\u00f6be\u00aeHAAQB\u00ae\u00a9Chamorro\u00aeheure normale des Chamorro\u00aeHNCh\u00aeheure avanc\u00e9e des Chamorro\u00aeHACh\u00ae\u00a9Kizilorda\u00aeheure normale de Kyzylorda\u00aeHNKYZ\u00aeheure avanc\u00e9e de Kyzylorda\u00aeHAKYZ\u00ae\u00a9Armenia\u00aeheure normale d\u2019Arm\u00e9nie\u00aeHNAM\u00aeheure avanc\u00e9e d\u2019Arm\u00e9nie\u00aeHAAM\u00ae\u00a9America_Pacific\u00aeheure normale du Pacifique\u00aeHNP\u00aeheure avanc\u00e9e du Pacifique\u00aeHAP\u00ae\u00a9Almaty\u00aeheure normale d\u2019Alma Ata\u00aeHNALM\u00aeheure avanc\u00e9e d\u2019Alma Ata\u00aeHAALM\u00ae\u00a9Anadyr\u00aeheure normale d\u2019Anadyr\u00aeHNANA\u00aeheure avanc\u00e9e d\u2019Anadyr\u00aeHAANA\u00ae\u00a9French_Guiana\u00aeheure normale de Guyane fran\u00e7aise\u00aeHNGF\u00aeheure avanc\u00e9e de Guyane fran\u00e7aise\u00aeHAGF\u00ae\u00a9Hawaii_Aleutian\u00aeheure normale d\u2019Hawaii - Al\u00e9outiennes\u00aeHNH\u00aeheure avanc\u00e9e d\u2019Hawaii - Al\u00e9outiennes\u00aeHAH\u00ae\u00a9Brunei\u00aeheure normale du Brun\u00e9i\u00aeHNBN\u00aeheure avanc\u00e9e du Brun\u00e9i\u00aeHABN\u00ae\u00a9Dushanbe\u00aeheure normale de Duchanb\u00e9\u00aeHNDUC\u00aeheure avanc\u00e9e de Duchanb\u00e9\u00aeHADUC\u00ae\u00a9Kosrae\u00aeheure normale de Kosrae\u00aeHNKOS\u00aeheure avanc\u00e9e de Kosrae\u00aeHAKOS\u00ae\u00a9Israel\u00aeheure normale d\u2019Isra\u00ebl\u00aeHNI (IL)\u00aeheure avanc\u00e9e d\u2019Isra\u00ebl\u00aeHAI (IL)\u00ae\u00a9Cocos\u00aeheure normale des \u00eeles Cocos - Keeling\u00aeHNCC\u00aeheure avanc\u00e9e des \u00eeles Cocos - Keeling\u00aeHACC\u00ae\u00a9Volgograd\u00aeheure normale de Volgograd\u00aeHNVO\u00aeHeure avanc\u00e9e de Volgograd\u00ae\u00ae\u00a9Greenland_Western\u00aeheure normale de l\u2019Ouest du Groenland\u00aeHNO (GL)\u00aeheure avanc\u00e9e de l\u2019Ouest du Groenland\u00aeHAO (GL)\u00ae\u00a9British\u00aeheure normale du Royaume-Uni\u00aeHNGB\u00aeheure avanc\u00e9e du Royaume-Uni\u00aeHAGB\u00ae\u00a9Goose_Bay\u00aeheure normale de Goose Bay\u00aeHNGOB\u00aeheure avanc\u00e9e de Goose Bay\u00aeHAGOB\u00ae\u00a9Europe_Eastern\u00aeheure d\u2019Europe de l\u2019Est\u00aeHNEE\u00aeHeure avanc\u00e9e de l\u2019Europe de l\u2019Est\u00aeHAEE\u00ae\u00a9Newfoundland\u00aeHeure normale de Terre-Neuve\u00aeHNT\u00aeHeure avanc\u00e9e de Terre-Neuve\u00aeHAT\u00ae\u00a9Australia_Western\u00aeheure normale de l\u2019Ouest australien\u00aeHNO (AU)\u00aeheure avanc\u00e9e de l\u2019Ouest australien\u00aeHAO (AU)\u00ae\u00a9Moscow\u00aeHeure normale de Moscou\u00aeHNMO\u00aeHeure avanc\u00e9e de Moscou\u00aeHAMO\u00ae\u00a9Christmas\u00aeheure normale de l\u2019\u00eele Christmas\u00aeHNCX\u00aeheure avanc\u00e9e de l\u2019\u00eele Christmas\u00aeHACX\u00ae\u00a9South_Georgia\u00aeheure normale de G\u00e9orgie du Sud\u00aeHNG\u00ae\u00ae\u00ae\u00a9Korea\u00aeheure normale de Cor\u00e9e\u00aeHNKR\u00aeheure avanc\u00e9e de Cor\u00e9e\u00aeHAKR\u00ae\u00a9Argentina_Western\u00aeheure normale de l\u2019Ouest argentin\u00aeHNO (AR)\u00aeheure avanc\u00e9e de l\u2019Ouest argentin\u00aeHAO (AR)\u00ae\u00a9Africa_Eastern\u00aeHeure normale d\u2019Afrique orientale\u00aeHNAFE\u00aeheure avanc\u00e9e d\u2019Afrique de l\u2019Est\u00aeHAAFE\u00ae\u00a9Atlantic\u00aeheure normale de l\u2019Atlantique\u00aeHNA\u00aeheure avanc\u00e9e de l\u2019Atlantique\u00aeHAA\u00ae\u00a9Alaska_Hawaii\u00aeheure normale d\u2019Alaska - Hawaii\u00aeHNAH\u00aeheure avanc\u00e9e d\u2019Alaska - Hawaii\u00aeHAAH\u00ae\u00a9Hovd\u00aeheure normale de Hovd\u00aeHNHOV\u00aeheure avanc\u00e9e de Hovd\u00aeHAHOV\u00ae\u00a9Cape_Verde\u00aeheure normale du Cap-Vert\u00aeHNCV\u00aeheure avanc\u00e9e du Cap-Vert\u00aeHACV\u00ae\u00a9America_Eastern\u00aeheure normale de l\u2019Est\u00aeHNE\u00aeheure avanc\u00e9e de l\u2019Est\u00aeHAE\u00ae\u00a9Baku\u00aeheure normale de Bakou\u00aeHNBAK\u00aeheure avanc\u00e9e de Bakou\u00aeHABAK\u00ae\u00a9Davis\u00aeheure normale de Davis\u00aeHNDAV\u00aeheure avanc\u00e9e de Davis\u00aeHADAV\u00ae\u00a9Chatham\u00aeheure normale des \u00eeles Chatham\u00aeHNCHA (NZ)\u00aeheure avanc\u00e9e des \u00eeles Chatham\u00aeHACHA (NZ)\u00ae\u00a9Afghanistan\u00aeheure normale d\u2019Afghanistan\u00aeHNAF\u00aeheure avanc\u00e9e d\u2019Afghanistan\u00aeHAAF\u00ae\u00a9French_Southern\u00aeheure normale des Terres australes fran\u00e7aises\u00aeHNTF\u00aeheure avanc\u00e9e des Terres australes fran\u00e7aises\u00aeHATF\u00ae\u00a9Ecuador\u00aeheure normale d\u2019\u00c9quateur\u00aeHNEQ\u00aeheure avanc\u00e9e d\u2019\u00c9quateur\u00aeHAEQ\u00ae\u00a9Acre\u00aeheure normale de l\u2019Acre\u00aeHNACR\u00aeheure avanc\u00e9e de l\u2019Acre\u00aeHAACR\u00ae\u00a9Dacca\u00aeheure normale de Dh\u00e2k\u00e2\u00aeHNDAC\u00aeheure avanc\u00e9e de Dh\u00e2k\u00e2\u00aeHADAC\u00ae\u00a9Europe_Western\u00aeheure normale d\u2019Europe de l\u2019Ouest\u00aeHNEO\u00aeheure avanc\u00e9e d\u2019Europe de l\u2019Ouest\u00aeHAEO\u00ae\u00a9Africa_Central\u00aeHeure normale d\u2019Afrique centrale\u00aeHNAFC\u00aeheure avanc\u00e9e d\u2019Afrique centrale\u00aeHAAFC\u00ae\u00a9Turkey\u00aeHeure normale de Turquie\u00aeHNTR\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00aeHeure normale d\u2019Afrique m\u00e9ridionale\u00aeHNAFM\u00aeheure avanc\u00e9e d\u2019Afrique m\u00e9ridionale\u00aeHAAFM\u00ae\u00a9Ashkhabad\u00aeheure normale d\u2019Achgabat\u00aeHNACH\u00aeheure avanc\u00e9e d\u2019Achgabat\u00aeHAACH\u00ae\u00a9Bering\u00aeheure normale de Bering\u00aeHNBER\u00aeheure avanc\u00e9e de Bering\u00aeHABER\u00ae\u00a9Guam\u00aeheure normale de Guam\u00aeHNGU\u00aeheure avanc\u00e9e de Guam\u00aeHAGU\u00ae\u00a9Bhutan\u00aeheure normale du Bhoutan\u00aeHNBT\u00aeheure avanc\u00e9e du Bhoutan\u00aeHABT\u00ae\u00a9Changbai\u00aeheure normale du Changbai\u00aeHNCHA (CN)\u00aeheure avanc\u00e9e du Changbai\u00aeHACHA (CN)\u00ae\u00a9Africa_FarWestern\u00aeheure normale d\u2019Afrique de l\u2019Ouest sah\u00e9lien\u00aeHNAFOS\u00aeheure avanc\u00e9e d\u2019Afrique de l\u2019Ouest sah\u00e9lien\u00aeHAAFOS\u00ae\u00a9Karachi\u00aeheure normale de Kar\u00e2chi\u00aeHNKAR\u00aeheure avanc\u00e9e de Kar\u00e2chi\u00aeHAKAR\u00ae\u00a9Gilbert_Islands\u00aeheure normale des \u00eeles Gilbert\u00aeHNGIL\u00aeheure avanc\u00e9e des \u00eeles Gilbert\u00aeHAGIL\u00ae\u00a9East_Timor\u00aeheure normale du Timor oriental\u00aeHNTL\u00aeheure avanc\u00e9e du Timor oriental\u00aeHATL\u00ae\u00a9Iran\u00aeheure normale d\u2019Iran\u00aeHNIR\u00aeheure avanc\u00e9e d\u2019Iran\u00aeHAIR\u00ae\u00a9Argentina\u00aeheure normale de l\u2019Est argentin\u00aeHNE (AR)\u00aeheure avanc\u00e9e de l\u2019Est argentin\u00aeHAE (AR)\u00ae\u00a9Irish\u00aeheure normale d\u2019Irlande\u00aeHNIE\u00aeheure avanc\u00e9e d\u2019Irlande\u00aeHAIE\u00ae\u00a9Yukon\u00aeheure normale du Yukon\u00aeHNY\u00aeheure avanc\u00e9e du Yukon\u00aeHAY\u00ae\u00a9Gambier\u00aeheure normale des \u00eeles Gambier\u00aeHNGAM\u00aeheure avanc\u00e9e des \u00eeles Gambier\u00aeHAGAM\u00ae\u00a9China\u00aeheure normale de Chine\u00aeHNC (CN)\u00aeheure avanc\u00e9e de Chine\u00aeHAC (CN)\u00ae\u00a9Indonesia_Central\u00aeheure normale du Centre indon\u00e9sien\u00aeHNC (ID)\u00aeheure avanc\u00e9e du Centre indon\u00e9sien\u00aeHAC (ID)\u00ae\u00a9America_Mountain\u00aeheure normale des Rocheuses\u00aeHNR\u00aeheure avanc\u00e9e des Rocheuses\u00aeHAR\u00ae\u00a9India\u00aeheure normale de l\u2019Inde\u00aeHNI (IN)\u00aeheure avanc\u00e9e de l\u2019Inde\u00aeHAI (IN)\u00ae\u00a9GMT\u00aeheure moyenne de Greenwich\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00aeheure normale de Samara\u00aeHNSA\u00aeHeure avanc\u00e9e de Samara\u00ae\u00ae\u00a9Falkland\u00aeheure normale des \u00eeles Malouines\u00aeHNFK\u00aeheure avanc\u00e9e des \u00eeles Malouines\u00aeHAFK\u00ae\u00a9Indochina\u00aeheure normale d\u2019Indochine\u00aeHNIDC\u00aeheure avanc\u00e9e d\u2019Indochine\u00aeHAIDC\u00ae\u00a9Chile\u00aeheure normale du Chili\u00aeHNCL\u00aeheure avanc\u00e9e du Chili\u00aeHACL\u00ae\u00a9Australia_CentralWestern\u00aeheure normale Centre Ouest australien\u00aeHNCO (AU)\u00aeheure avanc\u00e9e du Centre Ouest australien\u00aeHACO (AU)\u00ae\u00a9Brasilia\u00aeheure normale de Brasilia\u00aeHNBR\u00aeheure avanc\u00e9e de Brasilia\u00aeHABR\u00ae\u00a9Kazakhstan_Eastern\u00aeheure normale de l\u2019Est kazakh\u00aeHNE (KZ)\u00aeheure avanc\u00e9e de l\u2019Est kazakh\u00aeHAE (KZ)\u00ae\u00a9DumontDUrville\u00aeheure normale de Dumont-d\u2019Urville\u00aeHNDDU\u00aeheure avanc\u00e9e de Dumont-d\u2019Urville\u00aeHADDU\u00ae\u00a9America_Central\u00aeheure normale du Centre\u00aeHNC\u00aeheure avanc\u00e9e du Centre\u00aeHAC\u00ae\u00a9Frunze\u00aeheure normale de Frounz\u00e9\u00aeFNFRU\u00aeheure avanc\u00e9e de Frounz\u00e9\u00aeHAFRU\u00ae\u00a9Kuybyshev\u00aeheure normale de Kou\u00efbychev\u00aeHNKUY\u00aeHeure avanc\u00e9e de Kou\u00efbychev\u00aeHAKUY\u00ae\u00a9Greenland_Eastern\u00aeheure normale de l\u2019Est du Groenland\u00aeHNE (GL)\u00aeheure avanc\u00e9e de l\u2019Est du Groenland\u00aeHAE (GL)\u00ae\u00a9Azores\u00aeheure normale des A\u00e7ores\u00aeHNAC (PT)\u00aeheure avanc\u00e9e des A\u00e7ores\u00aeHAAC (PT)\u00ae\u00a9Greenland_Central\u00aeheure normale du Centre du Groenland\u00aeHNC (GL)\u00aeheure avanc\u00e9e du Centre du Groenland\u00aeHAC (GL)\u00ae\u00a9Japan\u00aeheure normale du Japon\u00aeHNJ\u00aeheure avanc\u00e9e du Japon\u00aeHAJ\u00ae\u00a9Kwajalein\u00aeheure normale de Kwajalein\u00aeHNKWA\u00aeheure avanc\u00e9e de Kwajalein\u00aeHAKWA\u00ae\u00a9Bolivia\u00aeheure normale de Bolivie\u00aeHNBO\u00aeheure avanc\u00e9e de Bolivie\u00aeHABO\u00ae\u00a9Cook\u00aeheure normale des \u00eeles Cook\u00aeHNCK\u00aeheure avanc\u00e9e des \u00eeles Cook\u00aeHACK\u00ae\u00a9Kashgar\u00aeheure normale de Kachgar\u00aeHNKAC\u00aeheure avanc\u00e9e de Kachgar\u00aeHAKAC\u00ae\u00a9Australia_Central\u00aeheure normale du Centre australien\u00aeHNC (AU)\u00aeheure avanc\u00e9e du Centre australien\u00aeHAC (AU)\u00ae\u00a9Guyana\u00aeheure normale du Guyana\u00aeHNGY\u00aeheure avanc\u00e9e du Guyana\u00aeHAGY\u00ae\u00a9Georgia\u00aeheure normale de G\u00e9orgie\u00aeHNGE\u00aeheure avanc\u00e9e de G\u00e9orgie\u00aeHAGE\u00ae\u00a9Colombia\u00aeheure normale de Colombie\u00aeHNCO\u00aeheure avanc\u00e9e de Colombie\u00aeHACO\u00ae\u00a9Galapagos\u00aeheure normale des \u00eeles Gal\u00e1pagos\u00aeHNGAL\u00aeheure avanc\u00e9e des \u00eeles Gal\u00e1pagos\u00aeHAGAL\u00ae\u00a9Cuba\u00aeheure normale de Cuba\u00aeHNCU\u00aeheure avanc\u00e9e de Cuba\u00aeHACU\u00ae\u00a9Aktyubinsk\u00aeheure normale d\u2019Aqt\u00f6be\u00aeHNAQB\u00aeheure avanc\u00e9e d\u2019Aqt\u00f6be\u00aeHAAQB\u00ae\u00a9
+territories.TL=Timor oriental
territories.TK=Tokelau
territories.TJ=Tadjikistan
territories.TH=Tha\u00eflande
@@ -302,7 +511,7 @@ territories.TC=\u00celes Turks et Ca\u00efques
territories.GW=Guin\u00e9e-Bissau
territories.GU=Guam
territories.GT=Guatemala
-territories.GS=G\u00e9orgie du Sud, \u00celes Sandwich du Sud
+territories.GS=G\u00e9orgie du Sud et les \u00eeles Sandwich du Sud
territories.GR=Gr\u00e8ce
territories.GQ=Guin\u00e9e \u00e9quatoriale
territories.GP=Guadeloupe
@@ -311,13 +520,14 @@ territories.SY=Syrie
territories.GN=Guin\u00e9e
territories.GM=Gambie
territories.GL=Groenland
-territories.SV=El Salvador
+territories.SV=Salvador
territories.062=Asie centrale et du Sud
-territories.ST=Sao Tom\u00e9-et-Principe
-territories.061=Polyn\u00e9sie
+territories.ST=S\u00e3o Tom\u00e9-et-Pr\u00edncipe
territories.GI=Gibraltar
+territories.061=Polyn\u00e9sie
territories.GH=Ghana
-territories.SR=Suriname
+territories.SR=Surinam
+territories.GG=Guernesey
territories.GF=Guyane fran\u00e7aise
territories.GE=G\u00e9orgie
territories.SO=Somalie
@@ -338,36 +548,38 @@ territories.SC=Seychelles
territories.SB=\u00celes Salomon
territories.SA=Arabie saoudite
territories.FR=France
-territories.057=Micron\u00e9sie
territories.FO=\u00celes F\u00e9ro\u00e9
+territories.057=R\u00e9gion micron\u00e9sienne
territories.FM=Micron\u00e9sie
territories.RW=Rwanda
territories.054=M\u00e9lan\u00e9sie
+territories.FK=Iles Malouines
territories.053=Australie et Nouvelle-Z\u00e9lande
-territories.FK=\u00celes Falkland (Malvinas)
territories.RU=Russie
territories.FJ=Fidji
territories.FI=Finlande
+territories.RS=Serbie
territories.RO=Roumanie
territories.RE=R\u00e9union
territories.ET=\u00c9thiopie
territories.ES=Espagne
territories.ER=\u00c9rythr\u00e9e
-territories.833=\u00cele de Man
+territories.QU=Union europ\u00e9enne
territories.EH=Sahara occidental
territories.EG=\u00c9gypte
-territories.830=\u00celes Anglo-Normandes
territories.EE=Estonie
-territories.QO=Autre Oc\u00e9anie
+territories.830=\u00celes Anglo-Normandes
+territories.QO=R\u00e9gions \u00e9loign\u00e9es de l'Oc\u00e9anie
territories.EC=\u00c9quateur
territories.DZ=Alg\u00e9rie
territories.QA=Qatar
territories.039=Europe m\u00e9ridionale
territories.DO=R\u00e9publique dominicaine
territories.PY=Paraguay
-territories.035=Asie du Sud-Est
territories.DM=Dominique
-territories.PW=Palaos
+territories.035=Asie du Sud-Est
+territories.PW=Palau
+territories.034=Asie du Sud
territories.DK=Danemark
territories.DJ=Djibouti
territories.PT=Portugal
@@ -385,8 +597,8 @@ territories.PF=Polyn\u00e9sie fran\u00e7aise
territories.CZ=R\u00e9publique tch\u00e8que
territories.PE=P\u00e9rou
territories.CY=Chypre
-territories.CX=\u00cele Christmas
-territories.CV=Cap Vert
+territories.CX=\u00cele Kiritimati
+territories.CV=Cap-Vert
territories.PA=Panama
territories.CU=Cuba
territories.CS=Serbie-et-Mont\u00e9n\u00e9gro
@@ -397,44 +609,46 @@ territories.CN=Chine
territories.CM=Cameroun
territories.CL=Chili
territories.CK=\u00celes Cook
+territories.021=Am\u00e9rique septentrionale
territories.CI=C\u00f4te d\u2019Ivoire
-territories.021=Am\u00e9rique du Nord
territories.CH=Suisse
territories.CG=Congo
territories.CF=R\u00e9publique centrafricaine
territories.CD=R\u00e9publique d\u00e9mocratique du Congo
-territories.CC=\u00celes Cocos
+territories.CC=\u00celes Cocos (Keeling)
territories.OM=Oman
territories.CA=Canada
territories.419=Am\u00e9rique latine et Cara\u00efbes
territories.BZ=Belize
-territories.BY=B\u00e9larus
+territories.BY=Belarus
territories.BW=Botswana
-territories.BV=\u00cele Bouvet
+territories.BV=\u00cele Bouvet
territories.BT=Bhoutan
territories.BS=Bahamas
territories.BR=Br\u00e9sil
territories.019=Am\u00e9riques
territories.018=Afrique australe
territories.NZ=Nouvelle-Z\u00e9lande
-territories.BO=Bolivie
territories.017=Afrique centrale
+territories.BO=Bolivie
territories.BN=Brunei
-territories.BM=Bermudes
territories.015=Afrique septentrionale
+territories.BM=Bermudes
territories.014=Afrique orientale
+territories.BL=Saint-Barth\u00e9l\u00e9my
territories.013=Am\u00e9rique centrale
-territories.NU=Niu\u00e9
-territories.BJ=Benin
-territories.BI=Burundi
+territories.NU=Niou\u00e9
+territories.BJ=B\u00e9nin
territories.011=Afrique occidentale
+territories.BI=Burundi
+territories.172=Communaut\u00e9 des \u00c9tats ind\u00e9pendants
territories.BH=Bahre\u00efn
-territories.172=Commonwealth of Independent States
territories.NR=Nauru
territories.BG=Bulgarie
territories.BF=Burkina Faso
territories.NP=N\u00e9pal
territories.BE=Belgique
+territories.ZZ=(r\u00e9gion ind\u00e9termin\u00e9e)
territories.NO=Norv\u00e8ge
territories.BD=Bangladesh
territories.BB=Barbade
@@ -442,11 +656,11 @@ territories.ZW=Zimbabwe
territories.NL=Pays-Bas
territories.BA=Bosnie-Herz\u00e9govine
territories.NI=Nicaragua
-territories.NG=Nig\u00e9ria
+territories.NG=Nigeria
territories.NF=\u00cele Norfolk
territories.AZ=Azerba\u00efdjan
territories.NE=Niger
-territories.AX=Iles d\u2019\u00c5land
+territories.AX=\u00c5land
territories.NC=Nouvelle-Cal\u00e9donie
territories.AW=Aruba
territories.ZM=Zambie
@@ -455,25 +669,25 @@ territories.AU=Australie
territories.AT=Autriche
territories.AS=Samoa am\u00e9ricaines
territories.AR=Argentine
-territories.009=Oc\u00e9anie
territories.AQ=Antarctique
+territories.009=Oc\u00e9anie
territories.MZ=Mozambique
territories.AO=Angola
territories.MY=Malaisie
territories.AN=Antilles n\u00e9erlandaises
territories.MX=Mexique
-territories.005=Am\u00e9rique du Sud
territories.AM=Arm\u00e9nie
+territories.005=Am\u00e9rique du Sud
territories.MW=Malawi
territories.AL=Albanie
territories.MV=Maldives
-territories.003=Le continent de l'Am\u00e9rique du Nord
+territories.003=Am\u00e9rique du Nord
territories.ZA=Afrique du Sud
territories.MU=Maurice
territories.002=Afrique
territories.MT=Malte
-territories.001=Monde
territories.AI=Anguilla
+territories.001=Monde
territories.MS=Montserrat
territories.MR=Mauritanie
territories.AG=Antigua-et-Barbuda
@@ -481,7 +695,7 @@ territories.MQ=Martinique
territories.AF=Afghanistan
territories.MP=\u00celes Mariannes du Nord
territories.AE=\u00c9mirats arabes unis
-territories.MO=Macao R.A.S. de Chine
+territories.MO=Macao
territories.AD=Andorre
territories.MN=Mongolie
territories.MM=Myanmar
@@ -490,7 +704,9 @@ territories.MK=Mac\u00e9doine
territories.YT=Mayotte
territories.MH=\u00celes Marshall
territories.MG=Madagascar
-territories.MD=Moldova
+territories.MF=Saint-Martin
+territories.ME=Mont\u00e9n\u00e9gro
+territories.MD=Moldavie
territories.MC=Monaco
territories.MA=Maroc
territories.YE=Y\u00e9men
@@ -499,9 +715,9 @@ territories.LV=Lettonie
territories.155=Europe occidentale
territories.LU=Luxembourg
territories.154=Europe septentrionale
-territories.LT=Lithuanie
+territories.LT=Lituanie
territories.LS=Lesotho
-territories.LR=Lib\u00e9ria
+territories.LR=Liberia
territories.151=Europe orientale
territories.150=Europe
territories.LK=Sri Lanka
@@ -513,40 +729,43 @@ territories.KZ=Kazakhstan
territories.KY=\u00celes Ca\u00efmanes
territories.KW=Kowe\u00eft
territories.145=Asie occidentale
+territories.143=Asie centrale
territories.142=Asie
territories.KR=Cor\u00e9e du Sud
territories.KP=Cor\u00e9e du Nord
-territories.KN=Saint Kitts et Nevis
+territories.KN=Saint-Christophe-et-Ni\u00e9v\u00e8s
territories.KM=Comores
territories.KI=Kiribati
territories.WS=Samoa
territories.KH=Cambodge
territories.KG=Kirghizistan
territories.KE=Kenya
-territories.WF=Wallis et Futuna
+territories.WF=Wallis-et-Futuna
territories.JP=Japon
territories.JO=Jordanie
territories.JM=Jama\u00efque
territories.VU=Vanuatu
-territories.VN=Viet Nam
+territories.JE=Jersey
+territories.VN=Vietnam
territories.VI=\u00celes Vierges des \u00c9tats-Unis
-territories.VG=\u00celes Vierges Britanniques
-territories.VE=V\u00e9n\u00e9zuela
+territories.VG=\u00celes Vierges britanniques
+territories.VE=Venezuela
territories.VC=Saint-Vincent-et-les Grenadines
-territories.VA=Saint-Si\u00e8ge (Etat de la Cit\u00e9 du Vatican)
+territories.VA=\u00c9tat de la Cit\u00e9 du Vatican
territories.IT=Italie
territories.IS=Islande
territories.IR=Iran
-territories.IQ=Iraq
+territories.IQ=Irak
territories.UZ=Ouzb\u00e9kistan
-territories.IO=Territoire britannique de l\u2019oc\u00e9an indien
+territories.IO=Territoire britannique de l\u2019oc\u00e9an Indien
territories.UY=Uruguay
territories.IN=Inde
+territories.IM=\u00cele de Man
territories.IL=Isra\u00ebl
territories.US=\u00c9tats-Unis
territories.IE=Irlande
territories.ID=Indon\u00e9sie
-territories.UM=\u00celes Mineures \u00c9loign\u00e9es des \u00c9tats-Unis
+territories.UM=\u00celes mineures \u00e9loign\u00e9es des \u00c9tats-Unis
territories.UG=Ouganda
territories.UA=Ukraine
territories.HU=Hongrie
@@ -555,80 +774,88 @@ territories.HR=Croatie
territories.TZ=Tanzanie
territories.HN=Honduras
territories.HM=\u00celes Heard et MacDonald
-territories.TW=Ta\u00efwan
+territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=Hong-Kong R.A.S. de Chine
+territories.HK=Hong Kong
territories.TT=Trinit\u00e9-et-Tobago
territories.TR=Turquie
territories.TO=Tonga
territories.TN=Tunisie
-territories.TM=Turkmenistan
-languages.akk=akkadien
+territories.TM=Turkm\u00e9nistan
languages.gwi=gwich\u02bcin
+languages.akk=akkadien
languages.eka=ekajuk
+languages.ijo=ijo
languages.xh=xhosa
languages.sux=sum\u00e9rien
languages.sus=soussou
-languages.mis=langues diverses
+languages.mis=langue diverse
languages.loz=lozi
-languages.tog=tonga (Nyasa)
-languages.pon=pohnpei
+languages.tog=tonga nyasa
+languages.zbl=symboles Bliss
+languages.pon=pohnpe\u00ef
languages.min=minangkabau
languages.suk=sukuma
languages.wo=wolof
-languages.kut=kutenai
languages.lol=mongo
+languages.kut=kutena\u00ef
languages.mic=micmac
languages.wa=wallon
languages.kum=koumyk
languages.zap=zapot\u00e8que
-languages.cus=couchitiques (autre)
-languages.doi=dogra
+languages.ain=a\u00efnou
+languages.cus=langue couchitique
languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zazaki
languages.vo=volap\u00fck
-languages.oto=langues otomangues
+languages.oto=langue otomangue
languages.vi=vietnamien
languages.vai=va\u00ef
-languages.rar=Rarotonga
+languages.rar=rarotongien
languages.ve=venda
languages.rap=rapanui
languages.raj=rajasthani
-languages.ota=turc ottoman (1500-1928)
-languages.nzi=nzema
+languages.ota=turc ottoman
+languages.nzi=nzima
languages.nap=napolitain
languages.uz=ouzbek
languages.uga=ougaritique
languages.tmh=tamacheq
-languages.nai=indiennes d\u2019Am\u00e9rique du Nord (autre)
+languages.nai=langue am\u00e9rindienne du Nord
languages.nah=nahuatl
languages.ur=ourdou
languages.fat=fanti
languages.uk=ukrainien
-languages.egy=\u00e9gyptien (ancien)
+languages.egy=\u00e9gyptien ancien
+languages.zxx=(sans contenu linguistique)
languages.ug=ou\u00efgour
languages.fan=fang
-languages.ssa=nilo-sahariennes (autre)
-languages.bat=baltique (autre)
-languages.mga=irlandais moyen (900-1200)
+languages.ssa=langue nilo-saharienne
+languages.mga=irlandais moyen
+languages.bat=langue balte
languages.nyo=nyoro
languages.bas=bassa
languages.nyn=nyankol\u00e9
languages.nym=nyamwezi
+languages.gsw=suisse allemand
languages.hmn=hmong
-languages.ban=Balinais
+languages.ban=balinais
languages.osa=osage
languages.bal=baloutchi
languages.ty=tahitien
-languages.bai=langues bamilekes
+languages.bai=langue bamil\u00e9k\u00e9e
languages.tw=twi
languages.srr=s\u00e9r\u00e8re
languages.tli=tlingit
+languages.tlh=klingon
languages.tt=tatar
languages.ts=tsonga
+languages.srn=sranan tongo
languages.bad=banda
languages.tr=turc
-languages.to=tongan (\u00celes Tonga)
-languages.tn=setswana
+languages.to=tongan
+languages.tn=tswana
languages.tl=tagalog
languages.tk=turkm\u00e8ne
languages.ti=tigrigna
@@ -637,172 +864,188 @@ languages.kru=kurukh
languages.tg=tadjik
languages.byn=blin
languages.te=t\u00e9lougou
-languages.csb=cashubian
-languages.kro=kru
+languages.kro=krou
+languages.csb=kachoube
languages.ta=tamoul
-languages.tkl=tokelau
+languages.krl=car\u00e9lien
+languages.tkl=tokelauan
languages.efi=efik
languages.sw=swahili
languages.sv=su\u00e9dois
languages.su=soundanais
-languages.krc=karacay-balkar
-languages.st=sotho du Sud
+languages.krc=karatcha\u00ef balkar
+languages.st=sesotho
languages.ss=swati
languages.sr=serbe
languages.sq=albanais
languages.men=mend\u00e9
-languages.crp=pidgins et langues cr\u00e9oles (autre)
+languages.crp=cr\u00e9ole ou pidgin
languages.so=somali
languages.afh=afrihili
languages.sn=shona
languages.sm=samoan
languages.sl=slov\u00e8ne
-languages.grc=vieux grec (avant 1453)
+languages.grc=grec ancien
languages.sk=slovaque
-languages.grb=grebo
-languages.si=singhalais
+languages.grb=gr\u00e9bo
+languages.si=cinghalais
languages.sh=serbo-croate
-languages.afa=afro-asiatique (autre)
-languages.crh=turc de Crim\u00e9e; tatar de Crim\u00e9e
-languages.sg=sango
+languages.crh=turc de Crim\u00e9e
+languages.afa=langue afro-asiatique
+languages.sg=sangho
languages.se=sami du Nord
-languages.sd=sindhi
+languages.sd=sindh\u00ee
languages.udm=oudmourte
languages.sc=sarde
languages.sa=sanskrit
languages.rw=rwanda
+languages.nwc=newar\u00ee classique
languages.ru=russe
languages.mdr=mandar
languages.ro=roumain
languages.rn=roundi
languages.rm=rh\u00e9to-roman
-languages.mdf=moksa
-languages.ady=adygu\u00e9
+languages.fr_CH=fran\u00e7ais suisse
+languages.mdf=mokcha
+languages.tiv=tiv
+languages.fr_CA=fran\u00e7ais canadien
+languages.ady=adygh\u00e9en
languages.zun=zuni
languages.kpe=kpell\u00e9
languages.qu=quechua
languages.tig=tigr\u00e9
-languages.son=songhai
-languages.cpp=pidgin portugais (autre)
+languages.son=songha\u00ef
+languages.cpp=cr\u00e9ole ou pidgin portugais
+languages.rup=aroumain ; valaque ; mac\u00e9do-roumain
languages.sog=sogdien
languages.ada=adangme
-languages.cpf=pidgin fran\u00e7ais (autre)
+languages.kos=kosrae
languages.hit=hittite
-languages.kos=kusaien
-languages.cpe=pidgin anglais (autre)
+languages.cpf=cr\u00e9ole ou pidgin fran\u00e7ais
+languages.cpe=cr\u00e9ole ou pidgin anglais
languages.him=himachali
-languages.got=gotique
-languages.hil=hiligaynon
languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=gotique
languages.gor=gorontalo
languages.gon=gondi
languages.din=dinka
-languages.nub=langues nubiennes
+languages.nub=langue nubienne
languages.pt=portugais
languages.ps=pachto
languages.fur=frioulan
languages.phn=ph\u00e9nicien
-languages.goh=allemand, vieux haut (ca. 750-1050)
+languages.de_CH=allemand suisse
+languages.goh=allemand ancien
languages.snk=sonink\u00e9
languages.cop=copte
languages.yap=yapois
languages.ach=acoli
-languages.phi=philippines (autre)
+languages.yao=yao
+languages.phi=langue philippine
languages.pl=polonais
languages.ace=aceh
-languages.pi=pali
+languages.pi=p\u00e2li
+languages.pt_PT=portugais ib\u00e9rique
languages.pa=pendjabi
languages.bug=bugi
languages.iba=iban
languages.sms=sami skolt
-languages.bua=buriat
-languages.mas=masai
+languages.bua=bouriate
+languages.mas=massa\u00ef
languages.smn=sami d\u2019Inari
languages.os=oss\u00e8te
languages.map=malayo-polyn\u00e9sien
languages.or=oriya
-languages.man=meninka
+languages.man=mandingue
languages.smj=sami de Lule
-languages.smi=sami (autre)
-languages.mak=makasar
-languages.om=galla
-languages.mai=maithili
+languages.smi=langue samie
+languages.mak=makassar
+languages.om=oromo
+languages.mai=ma\u00efthil\u00ee
languages.oj=ojibwa
languages.mag=magahi
languages.mad=madurais
languages.sma=sami du Sud
-languages.oc=occitan (apr\u00e8s 1500)
-languages.nso=sotho du Sud
+languages.oc=occitan
+languages.nso=sotho du Nord
languages.btk=batak
languages.myv=erzya
+languages.es_ES=espagnol ib\u00e9rique
+languages.de_AT=allemand autrichien
languages.dgr=dogrib
languages.ny=nyanja
-languages.myn=langues maya
+languages.myn=langue maya
languages.nv=navaho
-languages.kmb=kiMboundou
+languages.kmb=kimboundou
languages.nr=nd\u00e9b\u00e9l\u00e9 du Sud
-languages.gmh=allemand, moyen haut (ca. 1050-1500)
+languages.gmh=allemand moyen
languages.no=norv\u00e9gien
-languages.nn=nynorsk norv\u00e9gien
+languages.nn=norv\u00e9gien nynorsk
languages.nl=n\u00e9erlandais
languages.root=racine
languages.ng=ndonga
-languages.sla=slaves (autre)
+languages.sla=langue slave
languages.ne=n\u00e9palais
languages.nd=nd\u00e9b\u00e9l\u00e9 du Nord
-languages.cmc=langues chames
-languages.tet=tetum
-languages.nb=bokm\u00e5l norv\u00e9gien
+languages.cmc=langue chame
+languages.tet=t\u00e9toum
+languages.nb=norv\u00e9gien bokm\u00e5l
languages.na=nauruan
languages.ter=tereno
languages.tem=temne
languages.my=birman
languages.lez=lezghien
languages.mt=maltais
-languages.peo=vieux perser (ca. 600-400 av. J.-C.)
+languages.frs=frison oriental
+languages.peo=vieux persan
languages.ms=malais
+languages.frr=frison du Nord
languages.mr=marathe
-languages.fro=vieux fran\u00e7ais (842-ca.1400)
+languages.fro=fran\u00e7ais ancien
languages.mo=moldave
languages.mn=mongol
-languages.frm=fran\u00e7ais moyen (ca.1400-1600)
+languages.frm=fran\u00e7ais moyen
languages.ml=malayalam
languages.jrb=jud\u00e9o-arabe
languages.mk=mac\u00e9donien
languages.mi=maori
-languages.mh=marshall
+languages.mh=marshallais
languages.mg=malgache
-languages.mwr=marwari
+languages.nqo=n\u2019ko
+languages.mwr=marwar\u00ee
languages.bra=braj
+languages.mwl=mirandais
+languages.den=slavey
languages.lv=letton
-languages.den=slave (athapascan)
languages.lu=luba-katanga
-languages.lt=lituanien
languages.del=delaware
+languages.lt=lituanien
languages.lo=lao
languages.ln=lingala
languages.li=limbourgeois
-languages.ewo=ewondo
+languages.ewo=\u00e9wondo
languages.lg=ganda
languages.lb=luxembourgeois
languages.la=latin
languages.jpr=jud\u00e9o-persan
languages.vot=vote
-languages.sit=sino-tib\u00e9taines (autre)
-languages.ky=kirghize
+languages.sit=langue sino-tib\u00e9taine
+languages.ky=kirghiz
languages.kw=cornique
languages.kv=komi
languages.ku=kurde
-languages.sio=langues sioux
-languages.ks=kashmiri
+languages.sio=langue sioux
+languages.ks=cachemiri
languages.kr=kanouri
languages.awa=awadhi
languages.ko=cor\u00e9en
-languages.kn=kannada
+languages.kn=kannara
languages.km=khmer
+languages.en_GB=anglais britannique
languages.kl=groenlandais
languages.kk=kazakh
-languages.rom=tzigane
+languages.rom=tsigane ; romani
languages.kj=kuanyama
languages.sid=sidamo
languages.ki=kikuyu
@@ -810,220 +1053,265 @@ languages.kg=kongo
languages.non=vieux norrois
languages.ka=g\u00e9orgien
languages.mus=creek
-languages.roa=romanes (autre)
-languages.nog=noga\u00ef, nogay
-languages.mun=langues mounda
-languages.mul=langues multiples
+languages.roa=langue romane
+languages.nog=noga\u00ef
+languages.mun=langue mounda
+languages.mul=multilingue
languages.jv=javanais
-languages.gil=gilbertais
-languages.znd=zande
-languages.shn=chan
+languages.gil=gilbertin
+languages.znd=zand\u00e9
+languages.shn=shan
+languages.fon=fon
languages.xal=kalmouk
-languages.aus=langues australiennes
+languages.aus=langue australienne
languages.kho=khotanais
languages.ja=japonais
-languages.khi=khoisan (autre)
-languages.pau=palau
+languages.khi=langue kho\u00efsan
+languages.pau=palauan
languages.chy=cheyenne
-languages.tai=tha\u00ef (autre)
+languages.tai=langue ta\u00efe
languages.iu=inuktitut
languages.pap=papiamento
languages.it=italien
-languages.sgn=langues des signes
-languages.kha=khasi
+languages.sgn=langue des signes
languages.is=islandais
+languages.kha=khasi
languages.chr=cherokee
-languages.pam=pampanga
+languages.pam=pampangan
languages.pal=pahlavi
-languages.chp=chippewyan
-languages.cho=choctaw
+languages.chp=chipewyan
languages.io=ido
+languages.cho=choctaw
languages.chn=jargon chinook
languages.chm=mari
languages.tyv=touva
languages.bnt=bantou
languages.pag=pangasinan
-languages.chk=chuuk
languages.ik=inupiaq
-languages.haw=hawa\u00efen
+languages.chk=chuuk
languages.ii=yi de Sichuan
+languages.haw=hawa\u00efen
languages.lam=lamba
-languages.chg=jagataic
languages.ig=igbo
-languages.sga=irlandais ancien (jusqu\u2019\u00e0 900)
-languages.paa=papoues (autre)
+languages.chg=tchaghata\u00ef ; djaghata\u00ef
+languages.sga=irlandais ancien
+languages.paa=langue papoue
languages.ie=interlingue
languages.id=indon\u00e9sien
languages.lah=lahnda
-languages.chb=chibcha
languages.day=dayak
+languages.chb=chibcha
languages.ia=interlingua
languages.lad=ladino
+languages.hz=herero
+languages.hai=ha\u00efda
languages.dar=dargwa
-languages.hai=haida
-languages.hz=h\u00e9r\u00e9ro
languages.hy=arm\u00e9nien
-languages.ath=langues athapascanes
+languages.ath=langue athapascane
languages.hu=hongrois
languages.ht=ha\u00eftien
languages.dak=dakota
languages.hr=croate
languages.ho=hiri motu
languages.hi=hindi
-languages.dyu=dyula
+languages.dyu=dioula
languages.he=h\u00e9breu
languages.ast=asturien
+languages.kfo=koro
languages.ha=haoussa
-languages.wen=langues sorabes
-languages.gv=manx
-languages.gu=goudjrati
-languages.sem=s\u00e9mitiques (autre)
+languages.wen=langue sorabe
+languages.gv=manx ; mannois
+languages.gu=gujarati
+languages.sem=langue s\u00e9mitique
languages.sel=selkoupe
-languages.iro=langues iroquoiennes
+languages.iro=langue iroquoienne
languages.gn=guarani
languages.gl=galicien
+languages.en_CA=anglais canadien
languages.arw=arawak
-languages.gd=ga\u00e9lique \u00e9cossais
-languages.art=artificielle (autre)
languages.gez=gu\u00e8ze
-languages.ira=iranien
+languages.art=langue artificielle
+languages.gd=ga\u00e9lique \u00e9cossais
+languages.ira=langue iranienne
languages.ga=irlandais
languages.arp=arapaho
languages.arn=araukan
-languages.fy=frison
-languages.bla=pieds-noirs
-languages.gem=germanique (autre)
-languages.ypk=langues yupik
-languages.fr=fran\u00e7ais
+languages.fy=frison occidental
+languages.bla=siksika
+languages.gem=langue germanique
+languages.ypk=langue yupik
languages.arc=aram\u00e9en
+languages.fr=fran\u00e7ais
languages.fo=f\u00e9ro\u00efen
-languages.cel=langue celtique (autre)
+languages.cel=langue celtique
languages.fj=fidjien
languages.fi=finnois
languages.ff=peul
languages.tvl=tuvalu
languages.ceb=cebuano
languages.fa=persan
+languages.en_AU=anglais australien
+languages.zh_Hans=chinois simplifi\u00e9
+languages.zh_Hant=chinois traditionnel
languages.eu=basque
languages.sco=\u00e9cossais
languages.et=estonien
+languages.scn=sicilien
languages.es=espagnol
languages.eo=esp\u00e9ranto
languages.en=anglais
languages.el=grec
-languages.tut=alta\u00efques (autre)
-languages.niu=niu\u00e9
-languages.tup=langues tupi
+languages.tut=langue alta\u00efque
+languages.niu=niuean
+languages.tup=langue tupi
languages.ee=\u00e9w\u00e9
languages.tum=tumbuka
-languages.mos=mossi
+languages.nl_BE=n\u00e9erlandais belge
+languages.es_419=espagnol latino-am\u00e9ricain
+languages.mos=mor\u00e9
languages.dz=dzongkha
-languages.nic=nig\u00e9ro-congolaise (autre)
-languages.dv=maldivien
-languages.fiu=langue finno-ougrienne (autre)
-languages.lus=lushai
+languages.kcg=tyap
+languages.nic=langue nig\u00e9ro-congolaise
+languages.lus=lusha\u00ef
+languages.fiu=langue finno-ougrienne
+languages.dv=maldivien ; divehi
languages.nia=nias
languages.moh=mohawk
+languages.luo=luo
languages.lun=lunda
-languages.apa=langues apaches
+languages.apa=langue apache
+languages.fil=filipino
languages.lui=luiseno
languages.hup=hupa
+languages.cch=atsam
languages.bin=bini
languages.de=allemand
languages.lua=luba-lulua
languages.bik=bikol
languages.was=washo
-languages.und=ind\u00e9termin\u00e9e
+languages.und=(langue ind\u00e9termin\u00e9e)
languages.war=waray
languages.da=danois
-languages.dum=n\u00e9erlandais moyen (ca. 1050-1350)
+languages.dum=n\u00e9erlandais moyen
languages.wal=walamo
-languages.mno=langues manobo
-languages.wak=langues wakashennes
+languages.mno=langue manobo
+languages.wak=langue wakashenne
languages.sat=santal
languages.cy=gallois
languages.sas=sasak
+languages.kbd=kabardin
languages.cv=tchouvache
-languages.kbd=kabardine
languages.cu=slavon d\u2019\u00e9glise
languages.mni=manipuri
languages.cs=tch\u00e8que
-languages.sam=samaritain
+languages.sam=aram\u00e9en samaritain
languages.cr=cree
-languages.sal=langues salisha
+languages.sal=langue salishenne
languages.dua=douala
languages.co=corse
-languages.sai=indiennes d\u2019Am\u00e9rique du Sud (autre)
+languages.sai=langue am\u00e9rindienne du Sud
languages.mnc=mandchou
languages.sah=iakoute
-languages.gba=gbaya
-languages.inh=ingouche
languages.kaw=kawi
+languages.inh=ingouche
+languages.gba=gbaya
languages.sad=sandawe
languages.ch=chamorro
+languages.ine=langue indo-europ\u00e9enne
languages.bho=bhojpuri
-languages.ine=langue indo-europ\u00e9enne (autre)
-languages.enm=anglais moyen (1100-1500)
-languages.ce=tch\u00e9tch\u00e8ne
-languages.inc=langue indo-aryenne (autre)
+languages.enm=anglais moyen
languages.kar=karen
+languages.inc=langue indo-aryenne
+languages.ce=tch\u00e9tch\u00e8ne
languages.gay=gayo
languages.ca=catalan
languages.umb=umbundu
languages.syr=syriaque
languages.kam=kamba
+languages.anp=angika
languages.tsi=tsimshian
-languages.ang=vieil anglais (ca.450-1100)
-languages.cau=langue caucasienne (autre)
+languages.kaj=jju
+languages.ang=anglo-saxon
languages.kac=kachin
+languages.cau=langue caucasienne
languages.kab=kabyle
+languages.kaa=karakalpak
languages.bs=bosniaque
-languages.kaa=kara-kalpak
-languages.br=breton
languages.car=caribe
+languages.br=breton
+languages.syc=syriaque classique
languages.bo=tib\u00e9tain
languages.bn=bengali
languages.bm=bambara
languages.gaa=ga
-languages.bi=bichlamar
-languages.cai=indien d\u2019Am\u00e9rique Centrale (autre)
+languages.cai=langue am\u00e9rindienne centrale
+languages.bi=bichelamar
languages.bh=bihari
languages.bg=bulgare
languages.be=bi\u00e9lorusse
+languages.pt_BR=portugais br\u00e9silien
languages.cad=caddo
languages.ba=bachkir
languages.zu=zoulou
languages.zen=zenaga
-languages.pro=vieux proven\u00e7al (jusqu\u2019\u00e0 1500)
+languages.pro=vieux proven\u00e7al
languages.hsb=haut-sorabe
languages.az=az\u00e9ri
languages.ay=aymara
languages.av=avar
languages.as=assamais
-languages.ar=arabe
languages.dsb=bas-sorabe
+languages.ar=arabe
+languages.ilo=ilokano
languages.elx=\u00e9lamite
-languages.ilo=iloko
languages.zh=chinois
languages.an=aragonais
-languages.pra=langues pr\u00e2krit
+languages.pra=langue pr\u00e2krit
languages.am=amharique
languages.new=newari
languages.ak=akan
languages.za=zhuang
+languages.en_US=anglais am\u00e9ricain
languages.af=afrikaans
languages.ae=avestique
+languages.alt=alta\u00ef du Sud
languages.ab=abkhaze
languages.aa=afar
languages.yo=yoruba
-languages.alg=langues algiques
+languages.alg=langue algonquienne
languages.ale=al\u00e9oute
-languages.mkh=mon-khmer (autre)
+languages.mkh=langue mon-khm\u00e8re
languages.yi=yiddish
-languages.dra=langue dravidienne (autre)
+languages.dra=langue dravidienne
languages.ber=berb\u00e8re
-languages.nds=bas allemand, bas saxon
+languages.nds=bas allemand
languages.bem=bemba
languages.bej=bedja
languages.tpi=tok pisin
-variants.REVISED=R\u00e9vis\u00e9
+variants.POSIX=informatique
+variants.AREVMDA=arm\u00e9nien occidental
+variants.1996=orthographe allemande de 1996
+variants.SOLBA=dialecte de Stolvizza / Solbica
+variants.NEDIS=dialecte de Natisone
+variants.1994=orthographe normalis\u00e9e de Resia
+variants.1901=orthographe allemande traditionnelle
+variants.FONUPA=alphabet phon\u00e9tique ouralique
+variants.OSOJS=dialecte d\u2019Oseacco / Osojane
+variants.1694ACAD=fran\u00e7ois acad\u00e9mique de 1694
+variants.LIPAW=dialecte lipovaz de Resia
+variants.REVISED=orthographe r\u00e9vis\u00e9e
+variants.NJIVA=dialecte de Gniva / Njiva
+variants.TARASK=orthographe taraskievica
+variants.FONIPA=alphabet phon\u00e9tique international
+variants.BISKE=dialecte de San Giorgio / Bila
+variants.SCOUSE=dialecte scouse
+variants.BAKU1926=alphabet latin alta\u00efque unifi\u00e9
+variants.SAAHO=dialecte saho
+variants.ROZAJ=dialecte de Resia
+variants.MONOTON=monotonique
+variants.POLYTON=polytonique
+variants.AREVELA=arm\u00e9nien oriental
+variants.SCOTLAND=anglais standard \u00e9cossais
+variants.VALENCIA=valencien
+variants.BOONT=dialecte boontling
+variants.1606NICT=fran\u00e7oys de 1606
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_BE.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_BE.properties
index 928a89d..9cf97f9 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_BE.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_BE.properties
@@ -7,5 +7,4 @@
groupingSeparator=.
shortDateFormat=d/MM/yy
-mediumDateFormat=dd-MMM-yy
-fullTimeFormat=H' h 'mm' min 'ss' s 'z
+fullTimeFormat=H 'h' mm 'min' ss 's' z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CA.properties
index 9b0bb02..90fb2ed 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CA.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CA.properties
@@ -5,10 +5,9 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=#,##0.00 \u00a4;(#,##0.00\u00a4)
+currencyFormat=#,##0.00\u00a0\u00a4;(#,##0.00\u00a0\u00a4)
currenciesSymbol.CAD=$
currenciesSymbol.USD=$ US
-firstDayOfWeek=sun
shortDateFormat=yy-MM-dd
-mediumDateFormat=yy-MM-dd
-fullTimeFormat=HH' h 'mm' min 'ss' s 'z
+mediumDateFormat=yyyy-MM-dd
+fullTimeFormat=HH 'h' mm 'min' ss 's' z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CH.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CH.properties
index 6a762c2..df353926 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CH.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fr_CH.properties
@@ -7,7 +7,7 @@
decimalSeparator=.
groupingSeparator='
-currencyFormat=\u00a4 #,##0.00;\u00a4-#,##0.00
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4-#,##0.00
shortDateFormat=dd.MM.yy
fullDateFormat=EEEE, d MMMM yyyy
-fullTimeFormat=HH.mm:ss' h' z
+fullTimeFormat=HH.mm:ss 'h' z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fur.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fur.properties
new file mode 100644
index 0000000..3e6fa16
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_fur.properties
@@ -0,0 +1,518 @@
+# LocaleInformation_fur.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.CHF=Franc svuizar
+currenciesDisplayName.AUD=Dolar australian
+currenciesDisplayName.DZD=Dinar algerin
+currenciesDisplayName.NAD=Dolar namibian
+currenciesDisplayName.RUB=Rubli rus
+currenciesDisplayName.CZK=Corone de Republiche Ceche
+currenciesDisplayName.SEK=Corone svedese
+currenciesDisplayName.BEF=Franc de Belgjiche
+currenciesDisplayName.HRK=Kuna cravuate
+currenciesDisplayName.PLN=Zloty polac
+currenciesDisplayName.SKK=Corone slovache
+currenciesDisplayName.XXX=Monede no valide o no cognossude
+currenciesDisplayName.HRD=Dinar cravuat
+currenciesDisplayName.BND=Dolar dal Brunei
+currenciesDisplayName.ATS=Selin austriac
+currenciesDisplayName.INR=Rupie indiane
+currenciesDisplayName.NIO=C\u00f3rdoba oro nicaraguan
+currenciesDisplayName.CAD=Dolar canad\u00eas
+currenciesDisplayName.ITL=Lire taliane
+currenciesDisplayName.LVL=Lats leton
+currenciesDisplayName.USD=Dolar american
+currenciesDisplayName.JPY=Yen gjapon\u00eas
+currenciesDisplayName.GBP=Sterline britaniche
+currenciesDisplayName.PKR=Rupie pachistane
+currenciesDisplayName.FRF=Franc franc\u00eas
+currenciesDisplayName.NOK=Corone norvegj\u00ease
+currenciesDisplayName.EUR=Euro
+currenciesDisplayName.CSD=Vieri dinar serp
+currenciesDisplayName.BYR=Rubli bielor\u00f9s
+currenciesDisplayName.ZAR=Rand sudafrican
+currenciesDisplayName.MXN=Peso messican
+currenciesDisplayName.TRY=Lire turche
+currenciesDisplayName.AMD=Dram armen
+currenciesDisplayName.KRW=Won de Coree dal Sud
+currenciesDisplayName.CUP=Peso cuban
+currenciesDisplayName.SIT=Talar sloven
+currenciesDisplayName.RSD=Dinar serp
+currenciesDisplayName.TRL=Viere Lire turche
+currenciesDisplayName.BIF=Franc burund\u00eas
+currenciesDisplayName.BRL=Real brasilian
+currenciesDisplayName.DEM=Marc todesc
+currenciesDisplayName.ARS=Peso argjentin
+currenciesDisplayName.CNY=Yuan Renminbi cin\u00eas
+currenciesDisplayName.DKK=Corone dan\u00eas
+currenciesDisplayName.NZD=Dollar neozeland\u00eas
+currenciesDisplayName.IRR=Rial iranian
+currenciesSymbol.USD=$
+shortMonths=Zen\u00aeFev\u00aeMar\u00aeAvr\u00aeMai\u00aeJug\u00aeLui\u00aeAvo\u00aeSet\u00aeOtu\u00aeNov\u00aeDic\u00ae\u00ae
+months=Zen\u00e2r\u00aeFevr\u00e2r\u00aeMar\u00e7\u00aeAvr\u00eel\u00aeMai\u00aeJugn\u00aeLui\u00aeAvost\u00aeSetembar\u00aeOtubar\u00aeNovembar\u00aeDicembar\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aelun\u00aemar\u00aemie\u00aejoi\u00aevin\u00aesab\u00ae
+weekdays=\u00aedomenie\u00aelunis\u00aemartars\u00aemiercus\u00aejoibe\u00aevinars\u00aesabide\u00ae
+eras=pdC\u00aeddC\u00ae
+ampms=a.\u00aep.\u00ae
+shortDateFormat=d/MM/yy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d 'di' MMMM 'dal' yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00aeOre de Europe orient\u00e2l\u00ae\u00aeOre estive de Europe orient\u00e2l\u00ae\u00ae\u00a9Europe_Western\u00aeOre de Europe ocident\u00e2l\u00ae\u00aeOre estive de Europe ocident\u00e2l\u00ae\u00ae\u00a9Europe_Central\u00aeOre de Europe centr\u00e2l\u00ae\u00aeOre estive de Europe centr\u00e2l\u00ae\u00ae\u00a9
+territories.TL=Timor orient\u00e2l
+territories.TK=Tokelau
+territories.TJ=Tazikistan
+territories.TH=Tailandie
+territories.TG=Togo
+territories.TF=Teritoris meridion\u00e2i franc\u00eas
+territories.GY=Guyana
+territories.TD=\u00c7ad
+territories.TC=Isulis Turks e Caicos
+territories.GW=Guinea-Bissau
+territories.GU=Guam
+territories.GT=Guatemala
+territories.GS=Georgia dal Sud e Isulis Sandwich dal Sud
+territories.GR=Grecie
+territories.GQ=Guinee ecuatori\u00e2l
+territories.GP=Guadalupe
+territories.SZ=Swaziland
+territories.SY=Sirie
+territories.GN=Guinee
+territories.GM=Gambia
+territories.GL=Groenlande
+territories.SV=El Salvador
+territories.ST=Sao Tom\u00e8 e Principe
+territories.GI=Gjibraltar
+territories.061=Polinesie
+territories.GH=Ghana
+territories.SR=Suriname
+territories.GF=Guiana franc\u00eas
+territories.GE=Gjeorgjie
+territories.SO=Somalie
+territories.GD=Grenada
+territories.SN=Senegal
+territories.SM=San Marin
+territories.GB=Ream un\u00eet
+territories.SL=Sierra Leone
+territories.GA=Gabon
+territories.SK=Slovachie
+territories.SJ=Svalbard e Jan Mayen
+territories.SI=Slovenie
+territories.SH=Sante Eline
+territories.SG=Singapore
+territories.SE=Svezie
+territories.SC=Seychelles
+territories.SB=Isulis Salomon
+territories.SA=Arabie Saudide
+territories.FR=France
+territories.FO=Isulis Faroe
+territories.057=Regjon de Micronesie
+territories.FM=Micronesie
+territories.RW=Ruande
+territories.054=Melanesie
+territories.FK=Isulis Falkland
+territories.053=Australie e Gnove Zelande
+territories.RU=Russie
+territories.FJ=Fizi
+territories.FI=Finlandie
+territories.RS=Serbie
+territories.RO=Romanie
+territories.RE=Reunion
+territories.ET=Etiopie
+territories.ES=Spagne
+territories.ER=Eritree
+territories.QU=Union europeane
+territories.EH=Sahara ocident\u00e2l
+territories.EG=Egjit
+territories.EE=Estonie
+territories.QO=Oceanie periferiche
+territories.EC=Ecuador
+territories.DZ=Alzerie
+territories.QA=Qatar
+territories.039=Europe meridion\u00e2l
+territories.DO=Republiche dominicane
+territories.PY=Paraguay
+territories.DM=Dominiche
+territories.035=Asie sud orient\u00e2l
+territories.PW=Palau
+territories.034=Asie meridion\u00e2l
+territories.DK=Danimarcje
+territories.DJ=Gibuti
+territories.PT=Portugal
+territories.PS=Teritori palestin\u00eas
+territories.030=Asie orient\u00e2l
+territories.PR=Porto Rico
+territories.DE=Gjermanie
+territories.PN=Pitcairn
+territories.PM=San Pierre e Miquelon
+territories.PL=Polonie
+territories.PK=Pakistan
+territories.PH=Filipinis
+territories.PG=Papue Gnove Guinee
+territories.PF=Polinesie franc\u00eas
+territories.CZ=Republiche ceche
+territories.PE=Per\u00f9
+territories.CY=Cipri
+territories.CX=Isule Christmas
+territories.CV=Cj\u00e2f vert
+territories.PA=Panam\u00e0
+territories.CU=Cuba
+territories.CS=Serbia e Montenegro
+territories.CR=Costa Rica
+territories.029=caraibic
+territories.CO=Colombie
+territories.CN=Cine
+territories.CM=Camerun
+territories.CL=Cile
+territories.CK=Isulis Cook
+territories.021=Americhe setentrion\u00e2l
+territories.CI=Cueste di Avoli
+territories.CH=Svuizare
+territories.CG=Congo
+territories.CF=Republiche centri africane
+territories.CD=Republiche Democratiche dal Congo
+territories.CC=Isulis Cocos
+territories.OM=Oman
+territories.CA=Canade
+territories.419=Americhe latine e caraibiche
+territories.BZ=Belize
+territories.BY=Bielorussie
+territories.BW=Botswana
+territories.BV=Isule Bouvet
+territories.BT=Bhutan
+territories.BS=Bahamas
+territories.BR=Bras\u00eel
+territories.019=Americhis
+territories.018=Afriche meridion\u00e2l
+territories.NZ=Gnove Zelande
+territories.017=Afriche di mie\u00e7
+territories.BO=Bolivie
+territories.BN=Brunei
+territories.015=Afriche setentrion\u00e2l
+territories.BM=Bermuda
+territories.014=Afriche orient\u00e2l
+territories.BL=Sant Barth\u00e9lemy
+territories.013=Americhe centr\u00e2l
+territories.NU=Niue
+territories.BJ=Benin
+territories.011=Afriche ocident\u00e2l
+territories.BI=Burundi
+territories.172=Commonwealth dai st\u00e2ts indipendents
+territories.BH=Bahrain
+territories.NR=Nauru
+territories.BG=Bulgarie
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Belgjiche
+territories.ZZ=Regjon no cognossude o no valide
+territories.NO=Norvegje
+territories.BD=Bangladesh
+territories.BB=Barbados
+territories.ZW=Zimbabwe
+territories.NL=Pa\u00ees bas
+territories.BA=Bosnie e Ercegovine
+territories.NI=Nicaragua
+territories.NG=Nigerie
+territories.NF=Isole Norfolk
+territories.AZ=Azerbaigian
+territories.NE=Niger
+territories.AX=Isulis Aland
+territories.NC=Gnove Caledonie
+territories.AW=Aruba
+territories.ZM=Zambia
+territories.NA=Namibie
+territories.AU=Australie
+territories.AT=Austrie
+territories.AS=Samoa merecanis
+territories.AR=Argjentine
+territories.AQ=Antartic
+territories.009=Oceanie
+territories.MZ=Mozambic
+territories.AO=Angola
+territories.MY=Malaysia
+territories.AN=Antilis olandesis
+territories.MX=Messic
+territories.AM=Armenie
+territories.005=Americhe meridion\u00e2l
+territories.MW=Malawi
+territories.AL=Albanie
+territories.MV=Maldivis
+territories.003=Americhe dal Nord
+territories.ZA=Sud Afriche
+territories.MU=Maurizi
+territories.002=Afriche
+territories.MT=Malta
+territories.AI=Anguilla
+territories.001=Mont
+territories.MS=Montserrat
+territories.MR=Mauritanie
+territories.AG=Antigua e Barbuda
+territories.MQ=Martiniche
+territories.AF=Afghanistan
+territories.MP=Isulis Mariana dal Nord
+territories.AE=Emir\u00e2ts araps un\u00eets
+territories.MO=Regjon aministrative speci\u00e2l de Cine di Macao
+territories.AD=Andorra
+territories.MN=Mongolie
+territories.MM=Birmanie
+territories.ML=Mali
+territories.MK=Macedonie
+territories.YT=Mayotte
+territories.MH=Isulis Marshall
+territories.MG=Madagascar
+territories.MF=Sant Martin
+territories.MD=Moldavie
+territories.MC=Monaco
+territories.MA=Maroc
+territories.YE=Yemen
+territories.LY=Libie
+territories.LV=Letonie
+territories.155=Europe ocident\u00e2l
+territories.LU=Lussemburc
+territories.154=Europe setentrion\u00e2l
+territories.LT=Lituanie
+territories.LS=Lesotho
+territories.LR=Liberie
+territories.151=Europe orient\u00e2l
+territories.150=Europe
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Sante Lusie
+territories.LB=Liban
+territories.LA=Laos
+territories.KZ=Kazachistan
+territories.KY=Isulis Cayman
+territories.KW=Kuwait
+territories.145=Asie ocident\u00e2l
+territories.143=Asie centr\u00e2l
+territories.142=Asie
+territories.KR=Coree dal sud
+territories.KP=Coree dal nord
+territories.KN=San Kitts e Nevis
+territories.KM=Comoris
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Camboze
+territories.KG=Kirghizstan
+territories.KE=Kenya
+territories.WF=Wallis e Futuna
+territories.JP=Gjapon
+territories.JO=Jordanie
+territories.JM=Gjamaiche
+territories.VU=Vanuatu
+territories.VN=Vietnam
+territories.VI=Isulis vergjinis americanis
+territories.VG=Isulis vergjinis britanichis
+territories.VE=Venezuela
+territories.VC=San Vincent e lis Grenadinis
+territories.VA=Vatican
+territories.IT=Italie
+territories.IS=Islande
+territories.IR=Iran
+territories.IQ=Iraq
+territories.UZ=Uzbechistan
+territories.IO=Teritori britanic dal Ocean Indian
+territories.UY=Uruguay
+territories.IN=India
+territories.IM=Isule di Man
+territories.IL=Isra\u00eal
+territories.US=St\u00e2ts Un\u00eets
+territories.IE=Irlande
+territories.ID=Indonesie
+territories.UM=Isulis periferichis min\u00f4rs dai St\u00e2ts Un\u00eets
+territories.UG=Uganda
+territories.UA=Ucraine
+territories.HU=Ongjarie
+territories.HT=Haiti
+territories.HR=Cravuazie
+territories.TZ=Tanzanie
+territories.HN=Honduras
+territories.HM=Isule Heard e Isulis McDonald
+territories.TW=Taiwan
+territories.TV=Tuvalu
+territories.HK=Regjon aministrative speci\u00e2l de Cine di Hong Kong
+territories.TT=Trinidad e Tobago
+territories.TR=Turchie
+territories.TO=Tonga
+territories.TN=Tunisie
+territories.TM=Turkmenistan
+languages.ast=asturian
+languages.lb=lussemburgh\u00eas
+languages.la=latin
+languages.kw=cornuali\u00eas
+languages.ku=curd
+languages.ko=corean
+languages.kn=kannada
+languages.km=khmer
+languages.kl=kalaallisut
+languages.kk=kazac
+languages.grc=vieri gr\u00eac
+languages.ka=gjeorgjian
+languages.gem=lenghe gjermaniche
+languages.wa=valon
+languages.arc=aramaic
+languages.cel=lenghe celtiche
+languages.sco=scoz\u00eas
+languages.scn=sicilian
+languages.ja=gjapon\u00eas
+languages.vi=vietnamite
+languages.iu=inuktitut
+languages.it=talian
+languages.is=island\u00eas
+languages.uz=uzbec
+languages.io=ido
+languages.ik=inupiaq
+languages.ur=urdu
+languages.id=indonesian
+languages.uk=ucrain
+languages.und=indeterminade
+languages.hy=armen
+languages.got=gotic
+languages.hu=ongjar\u00eas
+languages.ht=haitian
+languages.hr=cravuat
+languages.ty=tahitian
+languages.apa=lenghe Apache
+languages.fur=furlan
+languages.tt=tartar
+languages.hi=hindi
+languages.tr=turc
+languages.cop=coptic
+languages.he=ebraic
+languages.tl=tagalog
+languages.th=thai
+languages.tg=tagic
+languages.te=telegu
+languages.gv=manx
+languages.ta=tamil
+languages.map=austronesian
+languages.sw=swahili
+languages.gl=galizian
+languages.sv=sved\u00eas
+languages.sr=serp
+languages.sq=alban\u00eas
+languages.so=somal
+languages.gd=gaelic scoz\u00eas
+languages.sm=samoan
+languages.sl=sloven
+languages.ga=gaelic irland\u00eas
+languages.sk=slovac
+languages.si=sinal\u00eas
+languages.myn=lenghis Maya
+languages.se=sami setentrion\u00e2l
+languages.fy=frisian
+languages.sd=sindhi
+languages.sc=sardegn\u00fbl
+languages.sa=sanscrit
+languages.ang=vieri ingl\u00eas
+languages.fr=franc\u00eas
+languages.sla=lenghe sclave
+languages.fo=faro\u00eas
+languages.pro=vieri provenz\u00e2l
+languages.tet=tetum
+languages.ru=rus
+languages.fj=fizian
+languages.fi=finland\u00eas
+languages.ff=fulah
+languages.ro=romen
+languages.rm=ruman\u00e7
+languages.fa=persian
+languages.peo=vieri persian
+languages.eu=basc
+languages.et=eston
+languages.es=spagn\u00fbl
+languages.eo=esperanto
+languages.en=ingl\u00eas
+languages.el=gr\u00eac
+languages.qu=quechua
+languages.fro=vieri franc\u00eas
+languages.mwl=mirand\u00eas
+languages.nds=bas todesc
+languages.den=scl\u00e2f
+languages.pt=portugh\u00eas
+languages.pt_BR=portugh\u00eas brasilian
+languages.ps=pashto
+languages.de=todesc
+languages.pl=polac
+languages.da=dan\u00eas
+languages.sux=sumeric
+languages.cy=gal\u00eas
+languages.pa=punjabi
+languages.cu=scl\u00e2f de glesie
+languages.cs=cec
+languages.cr=cree
+languages.co=cors
+languages.mis=lenghis variis
+languages.os=osetic
+languages.ch=chamorro
+languages.roa=lenghe romanze
+languages.ce=cecen
+languages.non=vieri norvegj\u00eas
+languages.ca=catalan
+languages.mul=lenghis multiplis
+languages.oc=ocitan
+languages.bs=bosniac
+languages.br=breton
+languages.bo=tibetan
+languages.zh_Hans=cin\u00eas semplific\u00e2t
+languages.bn=bengal\u00eas
+languages.zh_Hant=cin\u00eas tradizion\u00e2l
+languages.nv=navajo
+languages.bg=bulgar
+languages.be=bielor\u00f9s
+languages.no=norvegj\u00eas
+languages.nn=norvegj\u00eas nynorsk
+languages.nl=oland\u00eas
+languages.zu=zulu
+languages.az=azerbaijani
+languages.pap=papiamento
+languages.ne=nepal\u00eas
+languages.ay=aymar\u00e0
+languages.nb=norvegj\u00eas bokm\u00e5l
+languages.av=avar
+languages.ota=turc otoman
+languages.aus=lenghis australianis
+languages.as=assam\u00eas
+languages.nap=napoletan
+languages.ar=arap
+languages.zh=cin\u00eas
+languages.sga=vieri irland\u00eas
+languages.an=aragon\u00eas
+languages.am=amaric
+languages.mt=malt\u00eas
+languages.ms=mal\u00eas
+languages.mr=marathi
+languages.af=afrikaans
+languages.ae=avestan
+languages.mo=mold\u00e2f
+languages.mn=mongul
+languages.ml=malayalam
+languages.aa=afar
+languages.mk=macedon
+languages.lad=ladin
+languages.mi=maori
+languages.egy=vieri egjizian
+languages.yi=yiddish
+languages.lv=leton
+languages.lt=lituan
+languages.ln=lingala
+languages.li=limburgh\u00eas
+variants.1901=Ortografie todescje tradizion\u00e2l
+variants.1996=Ortografie todescje dal 1996
+variants.POLYTON=Politoniche
+variants.ROZAJ=Resian
+variants.1994=Ortografie resiane standard
+variants.NEDIS=Dialet des valadis dal Nadison
+variants.REVISED=Ortografie revisade
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ga.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ga.properties
index 675a84d..b41146d 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ga.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ga.properties
@@ -5,127 +5,130 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-localPatternChars=RbMLkUnsSElFtTauKcBeyrAC
+decimalSeparator=.
+groupingSeparator=,
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+localPatternChars=RbMLkUnsSElFtTauKcBeyrACvdz
currenciesDisplayName.YDD=D\u00ednear \u00c9imin
-currenciesDisplayName.TWD=Dollar Nua na T\u00e9av\u00e1ine
currenciesDisplayName.KES=Scilling C\u00e9iniach
-currenciesDisplayName.BYB=R\u00fabal Nua B\u00e9alar\u00faiseach (1994-1999)
+currenciesDisplayName.TWD=Dollar Nua na T\u00e9av\u00e1ine
currenciesDisplayName.LKR=R\u00faip\u00ed Sr\u00ed Lanca
-currenciesDisplayName.RWF=Franc Ruanda
+currenciesDisplayName.BYB=R\u00fabal Nua B\u00e9alar\u00faiseach (1994-1999)
currenciesDisplayName.TJS=Somoni na T\u00e1ids\u00edceast\u00e1ine
-currenciesDisplayName.SDP=Punt na S\u00fad\u00e1ine
+currenciesDisplayName.RWF=Franc Ruanda
currenciesDisplayName.TJR=R\u00fabal na T\u00e1ids\u00edceast\u00e1ine
-currenciesDisplayName.AFN=Afgain\u00ed
+currenciesDisplayName.SDP=Punt na S\u00fad\u00e1ine
currenciesDisplayName.GRD=Drachma Gr\u00e9agach
+currenciesDisplayName.AFN=Afgain\u00ed
currenciesDisplayName.IEP=Punt \u00c9ireannach
currenciesDisplayName.ARS=Peso na Airgint\u00edne
-currenciesDisplayName.SDD=D\u00ednear na S\u00fad\u00e1ine
currenciesDisplayName.ARP=Peso na Airgint\u00edne (1983-1985)
+currenciesDisplayName.SDD=D\u00ednear na S\u00fad\u00e1ine
currenciesDisplayName.GEL=Lari na Gr\u00faise
-currenciesDisplayName.AFA=Afgain\u00ed (1927-2002)
currenciesDisplayName.GEK=Kupon Larit na Gr\u00faise
+currenciesDisplayName.AFA=Afgain\u00ed (1927-2002)
currenciesDisplayName.CRC=Colon Ch\u00f3sta R\u00edce
currenciesDisplayName.FKP=Punt Oile\u00e1in Fh\u00e1clainne
currenciesDisplayName.EEK=Kroon na hEast\u00f3ine
-currenciesDisplayName.HKD=Dollar Hong Cong
currenciesDisplayName.MDL=Leu Mold\u00f3vach
-currenciesDisplayName.ARA=Austral Airgint\u00edneach
+currenciesDisplayName.HKD=Dollar Hong Cong
currenciesDisplayName.IQD=D\u00ednear Ir\u00e1cach
+currenciesDisplayName.ARA=Austral Airgint\u00edneach
currenciesDisplayName.SCR=R\u00faip\u00ed na S\u00e9is\u00e9il
currenciesDisplayName.VUV=Vatu Vanuat\u00fa
-currenciesDisplayName.DKK=Krone Danmhargach
currenciesDisplayName.KPW=Won na C\u00f3ir\u00e9 Thuaidh
-currenciesDisplayName.GQE=Ekwele Guineana na Guine Me\u00e1nchriosa\u00ed
+currenciesDisplayName.DKK=Krone Danmhargach
currenciesDisplayName.IDR=Rupiah Indin\u00e9iseach
-currenciesDisplayName.LVR=R\u00fabal Laitviach
+currenciesDisplayName.GQE=Ekwele Guineana na Guine Me\u00e1nchriosa\u00ed
currenciesDisplayName.SOS=Scilling na S\u00f3m\u00e1ile
+currenciesDisplayName.LVR=R\u00fabal Laitviach
currenciesDisplayName.AED=Dirham Aontas na n\u00c9im\u00edr\u00edochta\u00ed Arabacha
-currenciesDisplayName.BWP=Pula Botsu\u00e1nach
currenciesDisplayName.LVL=Lats Laitviach
+currenciesDisplayName.BWP=Pula Botsu\u00e1nach
currenciesDisplayName.RUR=R\u00fabal R\u00faiseach (1991-1998)
currenciesDisplayName.NIO=Cordoba Oro Nicearagua
-currenciesDisplayName.ADP=Peseta And\u00f3ra
-currenciesDisplayName.FJD=Dollar Fhids\u00ed
currenciesDisplayName.MOP=Pataca Macao
+currenciesDisplayName.FJD=Dollar Fhids\u00ed
+currenciesDisplayName.ADP=Peseta And\u00f3ra
currenciesDisplayName.RUB=R\u00fabal R\u00faiseach
currenciesDisplayName.CDF=Franc Congolais an Chong\u00f3
currenciesDisplayName.NIC=Cordoba Nicearagua
currenciesDisplayName.DJF=Franc Djibouti
-currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) Eacuad\u00f3ir
-currenciesDisplayName.SBD=Dollar Oile\u00e1in Solomon
currenciesDisplayName.UZS=Sum na h\u00daisb\u00e9iceast\u00e1ine
+currenciesDisplayName.SBD=Dollar Oile\u00e1in Solomon
+currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) Eacuad\u00f3ir
currenciesDisplayName.ECS=Sucre Eacuad\u00f3ir
-currenciesDisplayName.PHP=Peso Filip\u00edneach
currenciesDisplayName.THB=Baht na T\u00e9alainne
+currenciesDisplayName.PHP=Peso Filip\u00edneach
currenciesDisplayName.LUF=Franc Lucsamburg
currenciesDisplayName.FIM=Markka Fionnlannach
currenciesDisplayName.TTD=Dollar Oile\u00e1in na Tr\u00edon\u00f3ide agus Tob\u00e1ga
currenciesDisplayName.SZL=Lilangeni na Suasalainne
currenciesDisplayName.MNT=Tugrik Mong\u00f3lach
-currenciesDisplayName.SAR=Riyal S\u00e1dach
currenciesDisplayName.UAK=Karbovanetz \u00dacr\u00e1nach
+currenciesDisplayName.SAR=Riyal S\u00e1dach
currenciesDisplayName.UAH=Hryvnia \u00dacr\u00e1nach
currenciesDisplayName.HUF=Forint Ung\u00e1rach
-currenciesDisplayName.COP=Peso na Col\u00f3ime
currenciesDisplayName.QAR=Rial Catarach
+currenciesDisplayName.COP=Peso na Col\u00f3ime
currenciesDisplayName.LTT=Talonas Liotu\u00e1nach
currenciesDisplayName.PTE=Escudo Portaing\u00e9lach
-currenciesDisplayName.AOR=Kwanza Reajustado Ang\u00f3lach (1995-1999)
currenciesDisplayName.UYU=Peso Uruguayo Uragua
+currenciesDisplayName.AOR=Kwanza Reajustado Ang\u00f3lach (1995-1999)
currenciesDisplayName.GBP=Punt Steirling
-currenciesDisplayName.BIF=Franc na Bur\u00faine
-currenciesDisplayName.INR=R\u00faip\u00ed India
currenciesDisplayName.ZRZ=Zaire S\u00e1\u00edreach
-currenciesDisplayName.AON=Kwanza Nua Ang\u00f3lach (1990-2000)
-currenciesDisplayName.LTL=Lita Liotu\u00e1nach
+currenciesDisplayName.INR=R\u00faip\u00ed India
+currenciesDisplayName.BIF=Franc na Bur\u00faine
currenciesDisplayName.XFU=UIC-Franc Francach
-currenciesDisplayName.KZT=Tenge Casacst\u00e1nach
-currenciesDisplayName.MZM=Metical M\u00f3saimb\u00edce
+currenciesDisplayName.LTL=Lita Liotu\u00e1nach
+currenciesDisplayName.AON=Kwanza Nua Ang\u00f3lach (1990-2000)
currenciesDisplayName.UYP=Peso Uragua (1975-1993)
+currenciesDisplayName.MZM=Metical M\u00f3saimb\u00edce
+currenciesDisplayName.KZT=Tenge Casacst\u00e1nach
currenciesDisplayName.AOK=Kwanza Ang\u00f3lach (1977-1990)
-currenciesDisplayName.BUK=Kyat Burmach
currenciesDisplayName.GNS=Syli Guine
+currenciesDisplayName.BUK=Kyat Burmach
currenciesDisplayName.XFO=Franc \u00d3r Francach
currenciesDisplayName.PGK=Kina Nua-Ghuine Phapua
currenciesDisplayName.SYP=Punt Siria
-currenciesDisplayName.MZE=Escudo M\u00f3saimb\u00edce
currenciesDisplayName.OMR=Rial Omain
-currenciesDisplayName.NGN=Naira N\u00edg\u00e9arach
+currenciesDisplayName.MZE=Escudo M\u00f3saimb\u00edce
currenciesDisplayName.ZRN=Zaire Nua S\u00e1\u00edreach
-currenciesDisplayName.AOA=Kwanza Ang\u00f3lach
+currenciesDisplayName.NGN=Naira N\u00edg\u00e9arach
currenciesDisplayName.CNY=Yuan Renminbi S\u00edneach
+currenciesDisplayName.AOA=Kwanza Ang\u00f3lach
currenciesDisplayName.MAF=Franc Mharac\u00f3
currenciesDisplayName.GNF=Franc Guine
-currenciesDisplayName.HTG=Gourde H\u00e1it\u00ed
currenciesDisplayName.MAD=Dirham Mharac\u00f3
+currenciesDisplayName.HTG=Gourde H\u00e1it\u00ed
currenciesDisplayName.MMK=Kyat Mhaenmar
currenciesDisplayName.MYR=Ringgit Malaeisia
-currenciesDisplayName.LSL=Loti Leos\u00f3ta
currenciesDisplayName.XEU=Aonad Airgeadra Eorpach
-currenciesDisplayName.BHD=D\u00ednear na Bair\u00e9ine
+currenciesDisplayName.LSL=Loti Leos\u00f3ta
currenciesDisplayName.SLL=Leone Shiarra Leon
+currenciesDisplayName.BHD=D\u00ednear na Bair\u00e9ine
currenciesDisplayName.BTN=Ngultrum B\u00fat\u00e1nach
currenciesDisplayName.TRL=Lira Turcach
currenciesDisplayName.KMF=Franc Chom\u00f3ra
-currenciesDisplayName.ANG=Guilder na nAntill\u00ed \u00cdsilt\u00edreach
currenciesDisplayName.CZK=Koruna Phoblacht na Seice
+currenciesDisplayName.ANG=Guilder na nAntill\u00ed \u00cdsilt\u00edreach
currenciesDisplayName.AZM=Manat Asarbaise\u00e1nach
currenciesDisplayName.KYD=Dollar Oile\u00e1in Cayman
currenciesDisplayName.GMD=Dalasi Gaimbia
currenciesDisplayName.BGN=Lev Nua Bulg\u00e1rach
-currenciesDisplayName.CAD=Dollar Ceanada
currenciesDisplayName.MXV=Unidad de Inversion (UDI) Meicsiceo
+currenciesDisplayName.CAD=Dollar Ceanada
currenciesDisplayName.BGL=Lev Bulg\u00e1rach Crua
currenciesDisplayName.VEB=Bolivar Veinis\u00e9ala
currenciesDisplayName.MLF=Franc Mhail\u00ed
-currenciesDisplayName.ILS=Sheqel Nua Iosraelach
currenciesDisplayName.MXP=Peso Airgid Meicsiceo (1861-1992)
+currenciesDisplayName.ILS=Sheqel Nua Iosraelach
currenciesDisplayName.PES=Sol Pheiri\u00fa
-currenciesDisplayName.GYD=Dollar na Gu\u00e1ine
currenciesDisplayName.MXN=Peso Meicsiceo
+currenciesDisplayName.GYD=Dollar na Gu\u00e1ine
currenciesDisplayName.ILP=Punt Iosraelach
-currenciesDisplayName.SKK=Koruna na Sl\u00f3vaice
currenciesDisplayName.CYP=Punt na Cipire
+currenciesDisplayName.SKK=Koruna na Sl\u00f3vaice
currenciesDisplayName.XDR=Cearta Speisialta Tarraingthe
currenciesDisplayName.PEN=Sol Nuevo Pheiri\u00fa
currenciesDisplayName.LRD=Dollar na Lib\u00e9ire
@@ -133,15 +136,15 @@ currenciesDisplayName.PEI=Inti Pheiri\u00fa
currenciesDisplayName.AMD=Dram Airm\u00e9anach
currenciesDisplayName.BSD=Dollar na mBah\u00e1ma\u00ed
currenciesDisplayName.HRK=Kuna Cr\u00f3tach
-currenciesDisplayName.CLP=Peso na Sile
currenciesDisplayName.HRD=D\u00ednear na Cr\u00f3ite
+currenciesDisplayName.CLP=Peso na Sile
currenciesDisplayName.XPF=CFP Franc
currenciesDisplayName.FRF=Franc Francach
currenciesDisplayName.BRR=Cruzeiro Brasa\u00edleach
currenciesDisplayName.MKD=Denar na Macad\u00f3ine
currenciesDisplayName.CLF=Unidades de Fomento na Sile
-currenciesDisplayName.ALL=Lek Alb\u00e1nach
currenciesDisplayName.BRN=Cruzado Novo Brasa\u00edleach
+currenciesDisplayName.ALL=Lek Alb\u00e1nach
currenciesDisplayName.MWK=Kwacha na Mal\u00e1ive
currenciesDisplayName.BRL=Real Brasa\u00edleach
currenciesDisplayName.TPE=Escudo T\u00edom\u00f3ir
@@ -161,15 +164,15 @@ currenciesDisplayName.SIT=Tolar Sl\u00f3v\u00e9nach
currenciesDisplayName.JPY=Yen Seap\u00e1nach
currenciesDisplayName.XOF=CFA Franc BCEAO
currenciesDisplayName.MVR=Maldive Islands Rufiyaa
-currenciesDisplayName.GWE=Escudo na Guine Portaing\u00e9ala\u00ed
currenciesDisplayName.BEF=Franc Beilgeach
+currenciesDisplayName.GWE=Escudo na Guine Portaing\u00e9ala\u00ed
currenciesDisplayName.TOP=Pa\u02bbanga Tonga
currenciesDisplayName.YUD=D\u00ednear Crua I\u00fagslavach
currenciesDisplayName.BEC=Franc Beilgeach (inathraithe)
currenciesDisplayName.SUR=R\u00fabal S\u00f3v\u00e9adach
currenciesDisplayName.ROL=Leu R\u00f3m\u00e1nach
-currenciesDisplayName.DDM=Ostmark na hOirGhearm\u00e1ine
currenciesDisplayName.BDT=Taka Bhanglaid\u00e9iseach
+currenciesDisplayName.DDM=Ostmark na hOirGhearm\u00e1ine
currenciesDisplayName.XBD=Aonad Cuntais Eorpach (XBD)
currenciesDisplayName.AWG=Guilder Aruba
currenciesDisplayName.XBC=Aonad Cuntais Eorpach (XBC)
@@ -195,32 +198,33 @@ currenciesDisplayName.UGS=Scilling Uganda (1966-1987)
currenciesDisplayName.STD=Dobra Sao Tome agus Principe
currenciesDisplayName.WST=Tala Sam\u00f3 Thiar
currenciesDisplayName.KHR=Riel na Camb\u00f3ide
-currenciesDisplayName.EUR=Euro
currenciesDisplayName.DOP=Peso Doimineacach
+currenciesDisplayName.EUR=Euro
currenciesDisplayName.BOV=Mvdol Bolavach
currenciesDisplayName.MTP=Punt Maltach
currenciesDisplayName.USS=Dollar S.A.M. (an la c\u00e9anna)
currenciesDisplayName.BOP=Peso na Bolaive
-currenciesDisplayName.MTL=Lira Maltach
currenciesDisplayName.CUP=Peso C\u00faba
+currenciesDisplayName.MTL=Lira Maltach
currenciesDisplayName.TMM=Manat na An Tuircm\u00e9anast\u00e1ine
currenciesDisplayName.USN=Dollar S.A.M. (an ch\u00e9ad l\u00e1 eile)
currenciesDisplayName.SGD=Dollar Singeap\u00f3ir
currenciesDisplayName.NZD=Dollar na Nua-Sh\u00e9alainne
currenciesDisplayName.USD=Dollar S.A.M.
-currenciesDisplayName.HNL=Lempira Hond\u00farais
currenciesDisplayName.BOB=Boliviano
+currenciesDisplayName.HNL=Lempira Hond\u00farais
currenciesDisplayName.ITL=Lira Iod\u00e1lach
currenciesDisplayName.PAB=Balboa Panamach
currenciesDisplayName.GTQ=Quetzal Guatamala
-currenciesDisplayName.LAK=Kip Laosach
-currenciesDisplayName.GHC=Cedi Gh\u00e1na
+currenciesDisplayName.XXX=Airgeadra Anaithnid n\u00f3 Neamhbhail\u00ed
currenciesDisplayName.AUD=Dollar Astr\u00e1lach
+currenciesDisplayName.GHC=Cedi Gh\u00e1na
+currenciesDisplayName.LAK=Kip Laosach
currenciesDisplayName.NAD=Dollar na Namaibe
currenciesDisplayName.KGS=Som na Cirgeast\u00e1ine
currenciesDisplayName.MGF=Franc Madagascar
-currenciesDisplayName.CHF=Franc na hEilv\u00e9ise
currenciesDisplayName.BBD=Dollar Bharbad\u00f3is
+currenciesDisplayName.CHF=Franc na hEilv\u00e9ise
currenciesDisplayName.MGA=Ariary Madagascar
currenciesDisplayName.PYG=Guarani Pharagua
currenciesDisplayName.PLZ=Zloty Polannach (1950-1995)
@@ -228,15 +232,15 @@ currenciesDisplayName.YER=Rial \u00c9imin
currenciesDisplayName.ATS=Scilling Ostarach
currenciesDisplayName.ETB=Birr na hAet\u00f3ipe
currenciesDisplayName.BND=Dollar Bhr\u00fain\u00e9
-currenciesDisplayName.JMD=Dollar Iam\u00e1cach
currenciesDisplayName.EGP=Punt na h\u00c9igipte
+currenciesDisplayName.JMD=Dollar Iam\u00e1cach
currenciesDisplayName.PLN=Zloty Polannach
currenciesDisplayName.DZD=D\u00ednear na hAilg\u00e9ire
currenciesDisplayName.ISK=Krona \u00cdoslannach
currenciesDisplayName.SRG=Guilder Shuranaim
currenciesDisplayName.LYD=D\u00ednear Libia
-currenciesDisplayName.BZD=Dollar na Beil\u00edse
currenciesDisplayName.BAM=Marc Inathraithe Bhoisnia-Heirseagaiv\u00e9in
+currenciesDisplayName.BZD=Dollar na Beil\u00edse
currenciesDisplayName.ESP=Peseta Sp\u00e1inneach
currenciesDisplayName.KRW=Won na C\u00f3ir\u00e9 Theas
currenciesDisplayName.NLG=Guilder \u00cdsilt\u00edreach
@@ -249,32 +253,31 @@ currenciesDisplayName.BYR=R\u00fabal B\u00e9alar\u00faiseach
currenciesDisplayName.IRR=Rial Iar\u00e1nach
currenciesDisplayName.PKR=R\u00faip\u00ed na Pacast\u00e1ine
currenciesDisplayName.BMD=Dollar Bheirmi\u00fada
-currenciesSymbol.BGL=lev
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
+currenciesSymbol.IEP=\u00a3
currenciesSymbol.SCR=SR
-currenciesSymbol.IEP=IR\u00a3
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
@@ -292,25 +295,25 @@ currenciesSymbol.FJD=F$
currenciesSymbol.UYU=Ur$
currenciesSymbol.BDT=Tk
currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.DOP=RD$
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -319,8 +322,8 @@ currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
currenciesSymbol.CNY=Y
@@ -334,10 +337,10 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=A\u00cd f.
@@ -346,19 +349,27 @@ currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=Ean®Feabh®M\u00e1rta®Aib®Beal®Meith®I\u00fail®L\u00fan®MF\u00f3mh®DF\u00f3mh®Samh®Noll®®
-months=Ean\u00e1ir®Feabhra®M\u00e1rta®Aibre\u00e1n®Bealtaine®Meitheamh®I\u00fail®L\u00fanasa®Me\u00e1n F\u00f3mhair®Deireadh F\u00f3mhair®Samhain®Nollaig®®
-shortWeekdays=®Domh®Luan®M\u00e1irt®C\u00e9ad®D\u00e9ar®Aoine®Sath®
-weekdays=®D\u00e9 Domhnaigh®D\u00e9 Luain®D\u00e9 M\u00e1irt®D\u00e9 C\u00e9adaoin®D\u00e9ardaoin®D\u00e9 hAoine®D\u00e9 Sathairn®
-eras=RC®AD®
-ampms=a.m.®p.m.®
-zoneStrings=Europe/Dublin®MAG®Me\u00e1n-Am Greenwich®AS\u00c9®Am Samhraidh na h\u00c9ireann®©Europe/Belfast®MAG®Me\u00e1n-Am Greenwich®ASB®Am Samhraidh na Breataine®©Europe/London®MAG®Me\u00e1n-Am Greenwich®ASB®Am Samhraidh na Breataine®©
-territories.TL=T\u00edom\u00f3r-Leste
+shortMonths=Ean\u00aeFeabh\u00aeM\u00e1rta\u00aeAib\u00aeBeal\u00aeMeith\u00aeI\u00fail\u00aeL\u00fan\u00aeMF\u00f3mh\u00aeDF\u00f3mh\u00aeSamh\u00aeNoll\u00ae\u00ae
+months=Ean\u00e1ir\u00aeFeabhra\u00aeM\u00e1rta\u00aeAibre\u00e1n\u00aeBealtaine\u00aeMeitheamh\u00aeI\u00fail\u00aeL\u00fanasa\u00aeMe\u00e1n F\u00f3mhair\u00aeDeireadh F\u00f3mhair\u00aeSamhain\u00aeNollaig\u00ae\u00ae
+shortWeekdays=\u00aeDomh\u00aeLuan\u00aeM\u00e1irt\u00aeC\u00e9ad\u00aeD\u00e9ar\u00aeAoine\u00aeSath\u00ae
+weekdays=\u00aeD\u00e9 Domhnaigh\u00aeD\u00e9 Luain\u00aeD\u00e9 M\u00e1irt\u00aeD\u00e9 C\u00e9adaoin\u00aeD\u00e9ardaoin\u00aeD\u00e9 hAoine\u00aeD\u00e9 Sathairn\u00ae
+eras=RC\u00aeAD\u00ae
+ampms=a.m.\u00aep.m.\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe/Dublin\u00ae\u00ae\u00aeAm Samhraidh na h\u00c9ireann\u00aeAS\u00c9\u00ae\u00a9GMT\u00aeMe\u00e1n-Am Greenwich\u00aeMAG\u00ae\u00ae\u00ae\u00a9Europe/London\u00ae\u00ae\u00aeAm Samhraidh na Breataine\u00aeASB\u00ae\u00a9
+territories.TL=T\u00edom\u00f3r Thoir
territories.TK=T\u00f3cal\u00e1
territories.TJ=An T\u00e1ids\u00edceast\u00e1in
territories.TH=An T\u00e9alainn
territories.TG=T\u00f3ga
-territories.TF=Cr\u00edocha Francacha Theas
+territories.TF=Cr\u00edocha Deisceartacha na Fraince
territories.GY=An Ghu\u00e1in
territories.TD=Sead
territories.TC=Oile\u00e1in Turks agus Caicos
@@ -377,8 +388,10 @@ territories.GL=An Ghraonlainn
territories.SV=An tSalvad\u00f3ir
territories.ST=Sao Tome agus Principe
territories.GI=Giobr\u00e1ltar
+territories.061=An Pholain\u00e9is
territories.GH=G\u00e1na
territories.SR=Suranam
+territories.GG=Geansa\u00ed
territories.GF=An Ghu\u00e1in Fhrancach
territories.GE=An tSeoirsia
territories.SO=An tSom\u00e1il
@@ -396,24 +409,30 @@ territories.SG=Singeap\u00f3r
territories.SE=An tSualainn
territories.SD=An tS\u00fad\u00e1in
territories.SC=Na S\u00e9is\u00e9il
-territories.SB=Oile\u00e1in Solomon
+territories.SB=Oile\u00e1in Sholaimh
territories.SA=An Araib Sh\u00e1dach
territories.FR=An Fhrainc
territories.FO=Oile\u00e1in Fhar\u00f3
+territories.057=An R\u00e9igi\u00fan Micrin\u00e9iseach
territories.FM=An Mhicrin\u00e9is
territories.RW=Ruanda
+territories.054=An Mheilin\u00e9is
territories.FK=Oile\u00e1in Fh\u00e1clainne
+territories.053=An Astr\u00e1il agus an Nua-Sh\u00e9alainn
territories.RU=C\u00f3naidhm na R\u00faise
territories.FJ=Fids\u00ed
territories.FI=An Fhionlainn
+territories.RS=An tSeirbia
territories.RO=An R\u00f3m\u00e1in
territories.RE=R\u00e9union
territories.ET=An Aet\u00f3ip
territories.ES=An Sp\u00e1inn
-territories.ER=Eritrea
+territories.ER=An Eiritr\u00e9
+territories.QU=An tAontas Eorpach
territories.EH=An Sah\u00e1ra Thiar
territories.EG=An \u00c9igipt
territories.EE=An East\u00f3in
+territories.QO=An Aig\u00e9ine Imeallach
territories.EC=Eacuad\u00f3r
territories.DZ=An Ailg\u00e9ir
territories.QA=Catar
@@ -438,10 +457,10 @@ territories.CZ=Poblacht na Seice
territories.PE=Peiri\u00fa
territories.CY=An Chipir
territories.CX=Oile\u00e1n na Nollag
-territories.CV=Rinn Verde
+territories.CV=An Rinn Ghlas
territories.PA=Panama
territories.CU=C\u00faba
-territories.CS=An tSeirbia
+territories.CS=An tSeirbia agus Montain\u00e9agr\u00f3
territories.CR=C\u00f3sta R\u00edce
territories.CO=An Chol\u00f3im
territories.CN=An tS\u00edn
@@ -453,42 +472,49 @@ territories.CH=An Eilv\u00e9is
territories.CG=An Cong\u00f3
territories.CF=Poblacht na hAfraice L\u00e1ir
territories.CD=Poblacht Dhaonlathach an Chong\u00f3
-territories.CC=Oile\u00e1in Cocos (Keeling)
-territories.OM=Oman
+territories.CC=Oile\u00e1in na gC\u00f3c\u00f3nna
+territories.OM=\u00d3man
territories.CA=Ceanada
+territories.419=Meirice\u00e1 Laidineach agus an Mhuir Chairib
territories.BZ=An Bheil\u00eds
territories.BY=An Bhealar\u00fais
territories.BW=An Bhotsu\u00e1in
-territories.BV=Oile\u00e1in Bouvet
+territories.BV=Oile\u00e1n Bouvet
territories.BT=An Bh\u00fat\u00e1in
territories.BS=Na Bah\u00e1ma\u00ed
territories.BR=An Bhrasa\u00edl
+territories.019=Na Meirice\u00e1nna
territories.NZ=An Nua-Sh\u00e9alainn
+territories.017=An Afraic L\u00e1ir
territories.BO=An Bholaiv
territories.BN=Br\u00fain\u00e9
territories.BM=Beirmi\u00fada
-territories.NU=Niue
+territories.013=Meirice\u00e1 L\u00e1ir
+territories.NU=N\u00edv\u00e9
territories.BJ=Beinin
territories.BI=An Bhur\u00fain
+territories.172=Comhlathas na St\u00e1t Neamhsple\u00e1cha
territories.BH=Bair\u00e9in
territories.NR=N\u00e1r\u00fa
territories.BG=An Bhulg\u00e1ir
territories.BF=Buirc\u00edne Fas\u00f3
territories.NP=Neipeal
territories.BE=An Bheilg
+territories.ZZ=R\u00e9igi\u00fan Anaithnid n\u00f3 Neamhbhail\u00ed
territories.NO=An Iorua
territories.BD=An Bhanglaid\u00e9is
territories.BB=Barbad\u00f3s
territories.ZW=An tSiomb\u00e1ib
territories.NL=An \u00cdsilt\u00edr
-territories.BA=An Bhoisnia-Heirseagaiv\u00e9in
+territories.BA=An Bhoisnia agus Heirseag\u00f3v\u00e9in
territories.NI=Nicearagua
territories.NG=An Nig\u00e9ir
territories.NF=Oile\u00e1n Norfolk
territories.AZ=An Asarbaise\u00e1in
territories.NE=An N\u00edgir
+territories.AX=Oile\u00e1in Alaind
territories.NC=An Nua-Chalad\u00f3in
-territories.AW=Aruba
+territories.AW=Ar\u00faba
territories.ZM=An tSaimbia
territories.NA=An Namaib
territories.AU=An Astr\u00e1il
@@ -496,6 +522,7 @@ territories.AT=An Ostair
territories.AS=Sam\u00f3 Meirice\u00e1nach
territories.AR=An Airgint\u00edn
territories.AQ=An Antartaice
+territories.009=An Aig\u00e9ine
territories.MZ=M\u00f3saimb\u00edc
territories.AO=Ang\u00f3la
territories.MY=An Mhalaeisia
@@ -504,20 +531,22 @@ territories.MX=Meicsiceo
territories.AM=An Airm\u00e9in
territories.MW=An Mhal\u00e1iv
territories.AL=An Alb\u00e1in
-territories.MV=Mhaildiv\u00ed
+territories.MV=Na Maildiv\u00ed
territories.ZA=An Afraic Theas
territories.MU=Oile\u00e1n Mhuir\u00eds
+territories.002=An Afraic
territories.MT=M\u00e1lta
territories.AI=Anguilla
+territories.001=An Domhan
territories.MS=Montsarat
territories.MR=An Mharat\u00e1in
-territories.AG=Antigua agus Barbuda
+territories.AG=Aint\u00edge agus Barb\u00fada
+territories.MQ=Martain\u00edc
territories.AF=An Afganast\u00e1in
-territories.MQ=Martinique
-territories.AE=Aontas na n\u00c9im\u00edr\u00edochta\u00ed Arabacha
territories.MP=Oile\u00e1in Mariana Thuaidh
+territories.AE=Aontas na n\u00c9im\u00edr\u00edochta\u00ed Arabacha
+territories.MO=Mac\u00e1\u00f3
territories.AD=And\u00f3ra
-territories.MO=Mac\u00e1\u00f3 (R.R.S. na S\u00edne)
territories.MN=An Mhong\u00f3il
territories.MM=Maenmar
territories.ML=Mail\u00ed
@@ -525,6 +554,7 @@ territories.MK=An Mhacad\u00f3in
territories.YT=Mayotte
territories.MH=Oile\u00e1in Marshall
territories.MG=Madagascar
+territories.ME=Montain\u00e9agr\u00f3
territories.MD=An Mhold\u00f3iv
territories.MC=Monac\u00f3
territories.MA=Marac\u00f3
@@ -535,19 +565,22 @@ territories.LU=Lucsamburg
territories.LT=An Liotu\u00e1in
territories.LS=Leos\u00f3ta
territories.LR=An Lib\u00e9ir
+territories.150=An Eoraip
territories.LK=Sr\u00ed Lanca
territories.LI=Lichtinst\u00e9in
-territories.LC=Saint Lucia
+territories.LC=San L\u00faisia
territories.LB=An Liob\u00e1in
territories.LA=Laos
territories.KZ=An Chasacst\u00e1in
-territories.KY=Oile\u00e1in Cayman
+territories.KY=Oile\u00e1in na gCadhman
territories.KW=Cu\u00e1it
+territories.143=An \u00c1ise L\u00e1ir
+territories.142=An \u00c1ise
territories.KR=An Ch\u00f3ir\u00e9 Theas
territories.KP=An Ch\u00f3ir\u00e9 Thuaidh
territories.KN=Saint Kitts agus Nevis
territories.KM=Oile\u00e1in Chom\u00f3ra
-territories.KI=Cireabait\u00ed
+territories.KI=Ciribeas
territories.WS=Sam\u00f3
territories.KH=An Chamb\u00f3id
territories.KG=An Chirgeast\u00e1in
@@ -557,12 +590,13 @@ territories.JP=An tSeap\u00e1in
territories.JO=An Iord\u00e1in
territories.JM=Iam\u00e1ice
territories.VU=Vanuat\u00fa
-territories.VN=V\u00edtneam
+territories.JE=Geirs\u00ed
+territories.VN=V\u00edt Neam
territories.VI=Oile\u00e1in na Maighdean S.A.M.
territories.VG=Oile\u00e1in Bhriotanacha na Maighdean
territories.VE=Veinis\u00e9ala
territories.VC=Saint Vincent agus na Grenadines
-territories.VA=An Chathaoir Naofa (St\u00e1t Chathair na Vatac\u00e1ine)
+territories.VA=An Vatac\u00e1in
territories.IT=An Iod\u00e1il
territories.IS=An \u00cdoslainn
territories.IR=An Iar\u00e1in
@@ -571,12 +605,13 @@ territories.UZ=\u00daisb\u00e9iceast\u00e1in
territories.IO=Cr\u00edocha Briotanacha an Aig\u00e9in Indiagh
territories.UY=Urugua
territories.IN=An India
+territories.IM=Oile\u00e1n Mhanann
territories.IL=Iosrael
territories.US=St\u00e1it Aontaithe Mheirice\u00e1
territories.IE=\u00c9ire
territories.ID=An Indin\u00e9is
territories.UM=Mion-Oile\u00e1in Imeallacha S.A.M.
-territories.UG=Uganda
+territories.UG=\u00daganda
territories.UA=An \u00dacr\u00e1in
territories.HU=An Ung\u00e1ir
territories.HT=H\u00e1it\u00ed
@@ -585,130 +620,155 @@ territories.TZ=An Tans\u00e1in
territories.HN=Hond\u00faras
territories.HM=Oile\u00e1n Heard agus Oile\u00e1in McDonald
territories.TW=An T\u00e9av\u00e1in
-territories.TV=Tuval\u00fa
-territories.HK=Hong Cong (R.R.S. na S\u00edne)
+territories.TV=T\u00fav\u00e1l\u00fa
+territories.HK=Hong Cong
territories.TT=Oile\u00e1in na Tr\u00edon\u00f3ide agus Tob\u00e1ga
territories.TR=An Tuirc
territories.TO=Tonga
territories.TN=An T\u00fain\u00e9is
territories.TM=An Tuircm\u00e9anast\u00e1in
-languages.es=Sp\u00e1innis
+languages.lb=Leitseabuirgis
+languages.la=Laidin
+languages.xh=C\u00f3sais
+languages.ky=Cirgeasais
languages.kw=Cornais
-languages.eo=Esperanto
-languages.en=B\u00e9arla
+languages.ku=Coirdis
languages.ks=Caism\u00edris
-languages.el=Gr\u00e9igis
-languages.qu=Ceatsuais
languages.ko=C\u00f3ir\u00e9is
languages.kn=Cannadais
+languages.km=Camb\u00f3idis
languages.kk=Casachais
languages.ka=Seoirsis
-languages.wa=Vall\u00fanais
languages.jv=I\u00e1vais
-languages.pt=Portaing\u00e9ilis
-languages.ps=Paisteo
-languages.de=Gearm\u00e1inis
-languages.pl=Polainnis
-languages.da=Danmhairgis
+languages.wa=Vall\u00fanais
languages.ja=Seap\u00e1inis
languages.vi=V\u00edtneamais
-languages.cy=Breatnais
-languages.pa=Puinseaibis
-languages.cv=Suvaisis
-languages.cu=Slavais na hEaglaise
-languages.cs=Seicis
-languages.cr=Cra\u00edais
languages.iu=Ion\u00faitis
-languages.co=Corsaicis
languages.it=Iod\u00e1ilis
-languages.is=\u00cdoslainnais
-languages.haw=Hav\u00e1\u00edais
+languages.is=\u00cdoslainnis
languages.uz=\u00daisb\u00e9icis
languages.io=Ido
-languages.os=\u00d3is\u00e9itis
languages.ik=Inupiaq
-languages.ce=Sisinis
languages.ur=Urdais
-languages.ca=Catal\u00f3inis
languages.ie=Interlingue
languages.id=Indin\u00e9isis
-languages.uk=\u00dacr\u00e1inis
languages.ia=Interlingua
-languages.oc=Ocat\u00e1inis (tar \u00e9is 1500); Proven\u00e7al
+languages.uk=\u00dacr\u00e1inis
+languages.ug=ug
languages.hy=Airm\u00e9inis
-languages.bs=Boisnis
-languages.br=Briot\u00e1inis
+languages.und=Teanga Anaithnid n\u00f3 Neamhbhail\u00ed
languages.hu=Ung\u00e1iris
-languages.bo=Tib\u00e9adais
-languages.bn=Beang\u00e1lais
languages.hr=Cr\u00f3itis
-languages.nv=Navach\u00f3is
+languages.fil=fil
languages.ty=Taih\u00edtis
-languages.bg=Bulg\u00e1iris
+languages.tw=Tv\u00eds
languages.tt=Tatarais
-languages.no=Ioruais
-languages.be=Bealar\u00faisis
-languages.nn=Ioruais Nynorsk
languages.hi=Hiond\u00fais
languages.tr=Tuircis
-languages.nl=Ollainnais
-languages.zu=S\u00fal\u00fais
-languages.ba=Baisc\u00edris
languages.he=Eabhrais
languages.tl=Tag\u00e1laigis
-languages.ne=Neipealais
-languages.az=Asarbaise\u00e1inis
+languages.tk=Tuircm\u00e9inis
+languages.ti=Tigrinis
languages.th=T\u00e9alainnis
-languages.nb=Ioruais Bokm\u00e5l
-languages.na=N\u00e1r\u00fais
-languages.zh=S\u00ednis
-languages.as=Asaimis
-languages.ar=Araibis
-languages.ta=Tamailis
+languages.te=Teileag\u00fais
languages.gv=Mannainis
+languages.ta=Tamailis
languages.gu=G\u00faisear\u00e1itis
-languages.my=Burmais
-languages.mt=Maltais
+languages.gn=Guar\u00e1inis
languages.sw=Svaha\u00edlis
-languages.mr=Maraitis
+languages.gl=Gail\u00edsis
languages.sv=Sualainnis
-languages.af=Afrac\u00e1inis
-languages.mo=Mold\u00e1ivis
-languages.ae=Aiv\u00e9istis
-languages.mn=Mong\u00f3ilis
+languages.su=Sundais
+languages.st=S\u00f3tais Dheisceartach
languages.sr=Seirbis
languages.sq=Alb\u00e1inis
-languages.ml=Mail\u00e9alaimis
-languages.ab=Abc\u00e1isis
-languages.aa=Afar
-languages.mk=Macad\u00f3inis
-languages.so=Som\u00e1lais
+languages.so=Som\u00e1ilis
languages.gd=Gaeilge na hAlban
-languages.mi=Maorais
languages.sm=Sam\u00f3is
-languages.sl=Sl\u00f3v\u00e9inis
-languages.mg=Malag\u00e1sais
-languages.sk=Sl\u00f3vacais
+languages.sl=Sl\u00f3iv\u00e9inis
languages.ga=Gaeilge
+languages.sk=Sl\u00f3vaicis
+languages.si=Siol\u00f3inis
languages.sh=Seirbea-Chr\u00f3itis
languages.se=S\u00e1imis Thuaidh
-languages.yi=Gi\u00fadais
+languages.fy=Freaslainnis Iartharach
languages.sd=Sindis
-languages.fy=Freaslainnais
languages.sc=Saird\u00ednis
languages.sa=Sanscrait
languages.fr=Fraincis
-languages.lv=Laitvis
languages.fo=Far\u00f3is
-languages.lt=Liotu\u00e1inis
languages.ru=R\u00faisis
languages.fj=Fidsis
-languages.lo=Laosais
-languages.fi=Fionnlainnis
-languages.ro=Rom\u00e1inis
+languages.fi=Fionlainnis
+languages.ro=R\u00f3m\u00e1inis
languages.fa=Peirsis
-languages.lb=Leitseabuirgis
-languages.la=Laidin
+languages.pt_PT=Portaing\u00e9ilis Ib\u00e9ireach
languages.eu=Bascais
languages.et=East\u00f3inis
-languages.ky=Cirgeasais
+languages.es=Sp\u00e1innis
+languages.eo=Esperanto
+languages.en=B\u00e9arla
+languages.el=Gr\u00e9igis
+languages.qu=Ceatsuais
+languages.pt=Portaing\u00e9ilis
+languages.pt_BR=Portaing\u00e9ilis Bhrasa\u00edleach
+languages.ps=Paistis
+languages.de=Gearm\u00e1inis
+languages.pl=Polainnis
+languages.da=Danmhairgis
+languages.cy=Breatnais
+languages.cv=Suvaisis
+languages.pa=Puinse\u00e1ibis
+languages.cu=Slavais na hEaglaise
+languages.cs=Seicis
+languages.cr=Cra\u00edais
+languages.co=Corsaicis
+languages.os=\u00d3is\u00e9itis
+languages.or=Oraisis
+languages.ce=Sisinis
+languages.ca=Catal\u00f3inis
+languages.oc=Ocat\u00e1inis
+languages.bs=Boisnis
+languages.br=Briot\u00e1inis
+languages.bo=Tib\u00e9adais
+languages.zh_Hans=S\u00ednis Shimplithe
+languages.bn=Beang\u00e1ilis
+languages.zh_Hant=S\u00ednis Thraidisi\u00fanta
+languages.nv=Navach\u00f3is
+languages.bh=Bihairis
+languages.bg=Bulg\u00e1iris
+languages.be=Bealar\u00faisis
+languages.no=Ioruais
+languages.nn=Ioruais Nynorsk
+languages.nl=Ollainnis
+languages.ba=Baisc\u00edris
+languages.zu=S\u00fal\u00fais
+languages.az=Asarbaise\u00e1inis
+languages.ne=Neipealais
+languages.nb=Ioruais Bokm\u00e5l
+languages.na=N\u00e1r\u00fais
+languages.as=Asaimis
+languages.ar=Araibis
+languages.zh=S\u00ednis
+languages.my=Burmais
+languages.am=Amarais
+languages.mt=Maltais
+languages.ms=Malaeis
+languages.mr=Maraitis
+languages.af=Afrac\u00e1inis
+languages.ae=Aiv\u00e9istis
+languages.haw=Hav\u00e1\u00edais
+languages.mo=Mold\u00e1ivis
+languages.mn=Mong\u00f3ilis
+languages.ab=Abc\u00e1isis
+languages.ml=Mail\u00e9alaimis
+languages.aa=aa
+languages.mk=Macad\u00f3inis
+languages.mi=Maorais
+languages.mg=Malag\u00e1sais
+languages.tlh=Klingon
+languages.yi=Gi\u00fadais
+languages.lv=Laitvis
+languages.lt=Liotu\u00e1inis
+languages.lo=Laosais
+languages.ln=ln
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties
new file mode 100644
index 0000000..7bb5d38
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties
@@ -0,0 +1,23 @@
+# LocaleInformation_gaa.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.GHC=Sidi
+currenciesSymbol.GHC=\u20b5
+shortMonths=Aha\u00aeOfl\u00aeOch\u00aeAbe\u00aeAgb\u00aeOtu\u00aeMaa\u00aeMan\u00aeGbo\u00aeAnt\u00aeAle\u00aeAfu\u00ae\u00ae
+months=Aharabata\u00aeOflo\u00aeOchokrikri\u00aeAbeibee\u00aeAgbeinaa\u00aeOtukwadan\u00aeMaawe\u00aeManyawale\u00aeGbo\u00aeAnton\u00aeAlemle\u00aeAfuabee\u00ae\u00ae
+shortWeekdays=\u00aeHo\u00aeDzu\u00aeDzf\u00aeSho\u00aeSoo\u00aeSoh\u00aeHo\u00ae
+weekdays=\u00aeHogbaa\u00aeDzu\u00aeDzufo\u00aeSho\u00aeSoo\u00aeSohaa\u00aeHo\u00ae
+eras=DJ\u00aeKJ\u00ae
+ampms=LB\u00aeSN\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez.properties
index 8e841da..5e87ea6 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez.properties
@@ -5,40 +5,49 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+groupingSeparator=\u12c8
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
currenciesDisplayName.EUR=\u12a0\u12cd\u122e
currenciesDisplayName.ETB=\u12e8\u12a2\u1275\u12ee\u1335\u12eb \u1265\u122d
currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u1295\u12f5 \u1235\u1270\u122d\u120a\u1295\u130d
-currenciesSymbol.ETB=$
+currenciesSymbol.ETB=ETB$
currenciesSymbol.CNY=Y
+currenciesSymbol.ERN=$
currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u1320\u1210\u1228®\u12a8\u1270\u1270®\u1218\u1308\u1260®\u12a0\u1280\u12d8®\u130d\u1295\u1263®\u1220\u1295\u12e8®\u1210\u1218\u1208®\u1290\u1210\u1230®\u12a8\u1228\u1218®\u1320\u1240\u1218®\u1280\u12f0\u1228®\u1280\u1220\u1220®®
-months=\u1320\u1210\u1228®\u12a8\u1270\u1270®\u1218\u1308\u1260®\u12a0\u1280\u12d8®\u130d\u1295\u1263\u1275®\u1220\u1295\u12e8®\u1210\u1218\u1208®\u1290\u1210\u1230®\u12a8\u1228\u1218®\u1320\u1240\u1218®\u1280\u12f0\u1228®\u1280\u1220\u1220®®
-shortWeekdays=®\u12a5\u1281\u12f5®\u1230\u1291\u12ed®\u1220\u1209\u1235®\u122b\u1265\u12d5®\u1210\u1219\u1235®\u12d3\u122d\u1260®\u1240\u12f3\u121a®
-weekdays=®\u12a5\u1281\u12f5®\u1230\u1291\u12ed®\u1220\u1209\u1235®\u122b\u1265\u12d5®\u1210\u1219\u1235®\u12d3\u122d\u1260®\u1240\u12f3\u121a\u1275®
-firstDayOfWeek=sat
-eras=\u12d3/\u12d3®\u12d3/\u121d®
-ampms=\u133d\u1263\u1215®\u121d\u1234\u1275®
+shortMonths=\u1320\u1210\u1228\u00ae\u12a8\u1270\u1270\u00ae\u1218\u1308\u1260\u00ae\u12a0\u1280\u12d8\u00ae\u130d\u1295\u1263\u00ae\u1220\u1295\u12e8\u00ae\u1210\u1218\u1208\u00ae\u1290\u1210\u1230\u00ae\u12a8\u1228\u1218\u00ae\u1320\u1240\u1218\u00ae\u1280\u12f0\u1228\u00ae\u1280\u1220\u1220\u00ae\u00ae
+months=\u1320\u1210\u1228\u00ae\u12a8\u1270\u1270\u00ae\u1218\u1308\u1260\u00ae\u12a0\u1280\u12d8\u00ae\u130d\u1295\u1263\u1275\u00ae\u1220\u1295\u12e8\u00ae\u1210\u1218\u1208\u00ae\u1290\u1210\u1230\u00ae\u12a8\u1228\u1218\u00ae\u1320\u1240\u1218\u00ae\u1280\u12f0\u1228\u00ae\u1280\u1220\u1220\u00ae\u00ae
+shortWeekdays=\u00ae\u12a5\u1281\u12f5\u00ae\u1230\u1291\u12ed\u00ae\u1220\u1209\u1235\u00ae\u122b\u1265\u12d5\u00ae\u1210\u1219\u1235\u00ae\u12d3\u122d\u1260\u00ae\u1240\u12f3\u121a\u00ae
+weekdays=\u00ae\u12a5\u1281\u12f5\u00ae\u1230\u1291\u12ed\u00ae\u1220\u1209\u1235\u00ae\u122b\u1265\u12d5\u00ae\u1210\u1219\u1235\u00ae\u12d3\u122d\u1260\u00ae\u1240\u12f3\u121a\u1275\u00ae
+eras=\u12d3/\u12d3\u00ae\u12d3/\u121d\u00ae
+ampms=\u133d\u1263\u1215\u00ae\u121d\u1234\u1275\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1365 dd MMMM \u1218\u12d3\u120d\u1275 yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.AU=\u12a0\u12cd\u1235\u1275\u122c\u120a\u12eb
territories.TD=\u127b\u12f5
-territories.AT=\u12a6\u1235\u1275\u122a\u12eb
territories.GY=\u1309\u12eb\u1293
-territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
+territories.AT=\u12a6\u1235\u1275\u122a\u12eb
territories.GW=\u1262\u1233\u12ce
+territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
territories.MY=\u121b\u120c\u12e2\u12eb
territories.MX=\u121c\u12ad\u1232\u12ae
territories.AN=\u1294\u12d8\u122d\u120b\u1295\u12f5\u1235\u1361\u12a0\u1295\u1272\u120d\u1235
-territories.AM=\u12a0\u122d\u121c\u1292\u12eb
territories.GR=\u130d\u122a\u12ad
+territories.AM=\u12a0\u122d\u121c\u1292\u12eb
territories.ZA=\u12f0\u1261\u1265\u1361\u12a0\u134d\u122a\u12ab
-territories.AL=\u12a0\u120d\u1263\u1292\u12eb
territories.GQ=\u12a2\u12b3\u1276\u122a\u12eb\u120d\u1361\u130a\u1292
+territories.AL=\u12a0\u120d\u1263\u1292\u12eb
territories.MU=\u121b\u1229\u1238\u1235
territories.SY=\u1232\u122a\u12eb
territories.MT=\u121b\u120d\u1273
@@ -80,17 +89,17 @@ territories.KW=\u12ad\u12cc\u1275
territories.ER=\u12a4\u122d\u1275\u122b
territories.KR=\u1230\u121c\u1295\u1361\u12ae\u122a\u12eb
territories.KP=\u12f0\u1261\u1265\u1361\u12ae\u122a\u12eb
-territories.EH=\u121d\u12d5\u122b\u1263\u12ca\u1361\u1233\u1205\u122b
territories.KM=\u12ae\u121e\u122e\u1235
+territories.EH=\u121d\u12d5\u122b\u1263\u12ca\u1361\u1233\u1205\u122b
territories.EG=\u130d\u1265\u133d
territories.EE=\u12a4\u1235\u1276\u1292\u12eb
-territories.EC=\u12a2\u12b3\u12f6\u122d
territories.KH=\u12ab\u121d\u1266\u12f2\u12eb
+territories.EC=\u12a2\u12b3\u12f6\u122d
territories.DZ=\u12a0\u120d\u1304\u122a\u12eb
territories.DO=\u12f6\u121a\u1292\u12ad\u1361\u122a\u1351\u1265\u120a\u12ad
territories.DM=\u12f6\u121a\u1292\u12ab
-territories.DK=\u12f4\u1295\u121b\u122d\u12ad
territories.JP=\u1303\u1353\u1295
+territories.DK=\u12f4\u1295\u121b\u122d\u12ad
territories.JO=\u1306\u122d\u12f3\u1295
territories.PR=\u1356\u122d\u1273\u1361\u122a\u12ae
territories.JM=\u1303\u121b\u12ed\u12ab
@@ -106,13 +115,13 @@ territories.VG=\u12e8\u12a5\u1295\u130d\u120a\u12dd\u1361\u12f5\u1295\u130d\u120
territories.CV=\u12ac\u1355\u1361\u126c\u122d\u12f4
territories.VE=\u126c\u1295\u12d9\u12cc\u120b
territories.CS=\u1230\u122d\u1262\u12eb
-territories.CO=\u12ae\u120e\u121d\u1262\u12eb
territories.IT=\u1323\u120a\u12eb\u1295
-territories.CN=\u127b\u12ed\u1293
+territories.CO=\u12ae\u120e\u121d\u1262\u12eb
territories.IS=\u12a0\u12ed\u1235\u120b\u1295\u12f5
+territories.CN=\u127b\u12ed\u1293
territories.CM=\u12ab\u121c\u1229\u1295
-territories.CL=\u127a\u120a
territories.IQ=\u12a2\u122b\u1245
+territories.CL=\u127a\u120a
territories.UZ=\u12e9\u12dd\u1260\u12aa\u1235\u1273\u1295
territories.IN=\u1205\u1295\u12f5
territories.CH=\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5
@@ -128,10 +137,10 @@ territories.BT=\u1261\u1205\u1273\u1295
territories.BR=\u1265\u122b\u12da\u120d
territories.NZ=\u1292\u12cd\u1361\u12da\u120b\u1295\u12f5
territories.HU=\u1200\u1295\u130b\u122a
-territories.BO=\u1266\u120a\u126a\u12eb
territories.HT=\u1200\u12ed\u1272
-territories.BM=\u1264\u122d\u1219\u12f3
+territories.BO=\u1266\u120a\u126a\u12eb
territories.HR=\u12ad\u122e\u12a4\u123d\u12eb
+territories.BM=\u1264\u122d\u1219\u12f3
territories.TZ=\u1273\u1295\u12db\u1292\u12eb
territories.BH=\u1263\u1205\u122c\u1295
territories.BG=\u1261\u120d\u130c\u122a\u12eb
@@ -157,8 +166,8 @@ territories.NA=\u1293\u121a\u1262\u12eb
languages.es=\u1235\u1353\u1292\u123d
languages.ku=\u12a9\u122d\u12f5\u123d\u129b
languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
-languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
languages.ks=\u12ab\u123d\u121a\u122d\u129b
+languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
languages.el=\u130d\u122a\u12ad\u129b
languages.qu=\u12b5\u127f\u129b
languages.ko=\u12ae\u122a\u12eb\u129b
@@ -182,8 +191,8 @@ languages.cy=\u12c8\u120d\u123d
languages.pa=\u1353\u1295\u1303\u1262\u129b
languages.cs=\u127c\u12ad\u129b
languages.iu=\u12a5\u1291\u12ad\u1272\u1271\u1275\u129b
-languages.co=\u12ae\u122d\u1232\u12ab\u129b
languages.it=\u1323\u120a\u12eb\u1295\u129b
+languages.co=\u12ae\u122d\u1232\u12ab\u129b
languages.is=\u12a0\u12ed\u1235\u120b\u1295\u12f5\u129b
languages.uz=\u12a1\u12dd\u1260\u12ad\u129b
languages.or=\u12a6\u122a\u12eb\u129b
@@ -240,8 +249,8 @@ languages.am=\u12a0\u121d\u1210\u1228\u129b
languages.za=\u12e1\u12cb\u1295\u130d\u129b
languages.mt=\u121b\u120d\u1272\u1235\u129b
languages.ms=\u121b\u120b\u12ed\u129b
-languages.gn=\u1313\u122b\u1292\u129b
languages.byn=\u1265\u120a\u1295
+languages.gn=\u1313\u122b\u1292\u129b
languages.sw=\u1235\u12cb\u1202\u120a\u129b
languages.mr=\u121b\u122b\u12da\u129b
languages.sv=\u1235\u12ca\u12f5\u1295\u129b
@@ -279,14 +288,14 @@ languages.sid=\u1232\u12f3\u121d\u129b
languages.sa=\u1233\u1295\u1235\u12ad\u122a\u1275\u129b
languages.fr=\u1348\u1228\u1295\u1233\u12ed\u129b
languages.lv=\u120b\u1275\u126a\u12eb\u1295
-languages.fo=\u134b\u122e\u129b
languages.lt=\u120a\u1271\u12a0\u1292\u12eb\u1295
+languages.fo=\u134b\u122e\u129b
languages.rw=\u12aa\u1295\u12eb\u122d\u12cb\u1295\u12f5\u129b
languages.ru=\u122b\u123d\u129b
-languages.fj=\u134a\u1302\u129b
languages.lo=\u120b\u12cd\u1235\u129b
-languages.fi=\u134a\u1292\u123d
+languages.fj=\u134a\u1302\u129b
languages.ln=\u120a\u1295\u130b\u120b\u129b
+languages.fi=\u134a\u1292\u123d
languages.ro=\u122e\u121b\u1292\u12eb\u1295
languages.rn=\u1229\u1295\u12f2\u129b
languages.rm=\u122e\u121b\u1295\u1235
@@ -294,5 +303,5 @@ languages.fa=\u1350\u122d\u1232\u12eb\u129b
languages.la=\u120b\u1272\u1295\u129b
languages.xh=\u12de\u1233\u129b
languages.eu=\u1263\u1235\u12ad\u129b
-languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
languages.ky=\u12aa\u122d\u130a\u12dd\u129b
+languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez_ET.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez_ET.properties
index dbcace9..225ba95 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez_ET.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gez_ET.properties
@@ -5,14 +5,5 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-groupingSeparator=\u12c8
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
-currenciesSymbol.USD=US$
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yyyy
-longDateFormat=dd MMMM yyyy
-fullDateFormat=EEEE\u1365 dd MMMM \u1218\u12d3\u120d\u1275 yyyy G
-shortTimeFormat=h:mm a
-mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
+currenciesSymbol.ETB=$
+currenciesSymbol.ERN=ERN
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gl.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gl.properties
index a0b7006..93a5b2d 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gl.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gl.properties
@@ -5,12 +5,548 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.ESB=Peseta espa\u00f1ola (conta convertible)
+currenciesDisplayName.ESA=Peseta espa\u00f1ola (conta A)
+currenciesDisplayName.SVC=col\u00f3ns salvadore\u00f1os
+currenciesDisplayName.IEP=libras irlandesas
+currenciesDisplayName.GRD=Dracma grego
+currenciesDisplayName.FRF=francos franceses
+currenciesDisplayName.CLP=pesos chilenos
+currenciesDisplayName.SUR=rublos sovi\u00e9ticos
+currenciesDisplayName.BRR=cruzeiros brasileiros
+currenciesDisplayName.ZAR=Rand sudafricano
+currenciesDisplayName.CLF=unidades de fomento chilenas
+currenciesDisplayName.RUR=Rublo ruso (1991-1998)
+currenciesDisplayName.BRN=cruzados novos brasileiros
+currenciesDisplayName.ARS=pesos arxentinos
+currenciesDisplayName.BRL=reais brasileiros
+currenciesDisplayName.JPY=Ien xapon\u00e9s
+currenciesDisplayName.ARP=pesos arxentinos (ARP)
+currenciesDisplayName.CRC=col\u00f3ns costarricenses
+currenciesDisplayName.XAU=Ouro
+currenciesDisplayName.BRE=cruzeiros brasileiros (BRE)
+currenciesDisplayName.GQE=Ekwele guineana
+currenciesDisplayName.DEM=marcos alem\u00e1ns
+currenciesDisplayName.BRC=cruzados brasileiros
+currenciesDisplayName.BRB=cruzeiros novos brasileiros
+currenciesDisplayName.RUB=rublos rusos
+currenciesDisplayName.NIO=C\u00f3rdoba de ouro nicarag\u00fcense
+currenciesDisplayName.DKK=Coroa dinamarquesa
+currenciesDisplayName.XAG=Prata
+currenciesDisplayName.BEL=francos belgas (financeiros)
+currenciesDisplayName.NOK=Coroa norueguesa
+currenciesDisplayName.NIC=C\u00f3rdoba nicarag\u00fcense
+currenciesDisplayName.BEF=francos belgas
+currenciesDisplayName.BEC=francos belgas (convertibles)
+currenciesDisplayName.PHP=Peso filipino
+currenciesDisplayName.LUL=Franco financeiro luxemburgu\u00e9s
+currenciesDisplayName.UYU=pesos uruguaios
+currenciesDisplayName.LUF=Franco luxemburgu\u00e9s
+currenciesDisplayName.UYP=Peso uruguaio (1975-1993)
+currenciesDisplayName.LUC=Franco convertible luxemburgu\u00e9s
+currenciesDisplayName.XXX=unidades monetarias desco\u00f1ecidas ou non v\u00e1lidas
+currenciesDisplayName.PTE=escudos portugueses
+currenciesDisplayName.GIP=libras xibraltare\u00f1as
+currenciesDisplayName.UYI=Peso en unidades indexadas uruguaio
+currenciesDisplayName.USD=d\u00f3lares estadounidenses
+currenciesDisplayName.ADP=pesetas andorranas
+currenciesDisplayName.ECV=Unidade de valor constante ecuatoriana
+currenciesDisplayName.ECS=sucres ecuatorianos
+currenciesDisplayName.HUF=Flor\u00edn h\u00fangaro
+currenciesDisplayName.PAB=Balboa paname\u00f1o
+currenciesDisplayName.EUR=euros
+currenciesDisplayName.INR=Rupia india
+currenciesDisplayName.DOP=pesos dominicanos
+currenciesDisplayName.GBP=libras esterlinas
+currenciesDisplayName.COP=pesos colombianos
+currenciesDisplayName.BOV=MVDOL boliviano
+currenciesDisplayName.MAF=Franco marroqu\u00ed
+currenciesDisplayName.PYG=guaran\u00eds do paraguai
+currenciesDisplayName.MAD=Dirham marroqu\u00ed
+currenciesDisplayName.ITL=Lira italiana
+currenciesDisplayName.GNS=Syli guineano
+currenciesDisplayName.HNL=Lempira hondure\u00f1o
+currenciesDisplayName.CUP=pesos cubanos
+currenciesDisplayName.BOP=pesos bolivianos
+currenciesDisplayName.GTQ=Quetzal guatemalteco
+currenciesDisplayName.VEF=bol\u00edvares fortes venezolanos
+currenciesDisplayName.GNF=Franco guineano
+currenciesDisplayName.VEB=bol\u00edvares venezolanos
+currenciesDisplayName.BOB=bolivianos
+currenciesDisplayName.CNY=iu\u00e1ns chineses
+currenciesDisplayName.SEK=Coroa sueca
+currenciesDisplayName.XPT=Platino
+currenciesDisplayName.ISK=Coroa islandesa
+currenciesDisplayName.NLG=Flor\u00edn holand\u00e9s
+currenciesDisplayName.CHF=Franco suizo
+currenciesDisplayName.MXV=Unidade de inversi\u00f3n mexicana
+currenciesDisplayName.PES=Sol peruano
+currenciesDisplayName.MXP=Peso de prata mexicano (1861-1992)
+currenciesDisplayName.PEN=Sol novo peruano
+currenciesDisplayName.MXN=pesos mexicanos
+currenciesDisplayName.XPD=Paladio
+currenciesDisplayName.PEI=Inti peruano
+currenciesDisplayName.ESP=pesetas
+currenciesDisplayName.CAD=D\u00f3lar canadiano
currenciesSymbol.ESP=\u20a7
-shortMonths=Xan®Feb®Mar®Abr®Mai®Xu\u00f1®Xul®Ago®Set®Out®Nov®Dec®®
-months=Xaneiro®Febreiro®Marzo®Abril®Maio®Xu\u00f1o®Xullo®Agosto®Setembro®Outubro®Novembro®Decembro®®
-shortWeekdays=®Dom®Lun®Mar®M\u00e9r®Xov®Ven®S\u00e1b®
-weekdays=®Domingo®Luns®Martes®M\u00e9rcores®Xoves®Venres®S\u00e1bado®
+shortMonths=xan\u00aefeb\u00aemar\u00aeabr\u00aemai\u00aexu\u00f1\u00aexul\u00aeago\u00aeset\u00aeout\u00aenov\u00aedec\u00ae\u00ae
+months=xaneiro\u00aefebreiro\u00aemarzo\u00aeabril\u00aemaio\u00aexu\u00f1o\u00aexullo\u00aeagosto\u00aesetembro\u00aeoutubro\u00aenovembro\u00aedecembro\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aelun\u00aemar\u00aem\u00e9r\u00aexov\u00aeven\u00aes\u00e1b\u00ae
+weekdays=\u00aedomingo\u00aeluns\u00aemartes\u00aem\u00e9rcores\u00aexoves\u00aevenres\u00aes\u00e1bado\u00ae
+eras=a.C.\u00aed.C.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=d MMM, yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Western\u00aehorario europeo occidental\u00ae\u00aehorario de ver\u00e1n europeo occidental\u00ae\u00ae\u00a9Europe_Eastern\u00aehorario europeo oriental\u00ae\u00aehorario de ver\u00e1n europeo oriental\u00ae\u00ae\u00a9GMT\u00aehorario medio de Greenwich\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Central\u00aehorario europeo central\u00ae\u00aehorario de ver\u00e1n europeo central\u00ae\u00ae\u00a9
+territories.TL=Timor Leste
+territories.TK=Tokelau
+territories.TJ=Taxiquist\u00e1n
+territories.TH=Tailandia
+territories.TG=Togo
+territories.TF=Territorios Franceses do Sul
+territories.GY=G\u00fciana
+territories.TD=Xad
+territories.TC=Illas Turks e Caicos
+territories.GW=Guinea-Bissau
+territories.GU=Guam
+territories.GT=Guatemala
+territories.GS=Xeorxia do Sur e Illas Sandwich
+territories.GR=Grecia
+territories.GQ=Guinea Ecuatorial
+territories.GP=Guadalupe
+territories.SZ=Suacilandia
+territories.SY=Siria
+territories.GN=Guinea
+territories.GM=Gambia
+territories.GL=Grenlandia
+territories.SV=El Salvador
+territories.062=Asia do Sul-Centro
+territories.ST=Santo Tom\u00e9 e Pr\u00edncipe
+territories.GI=Xibraltar
+territories.061=Polinesia
+territories.GH=Gana
+territories.SR=Surinam
+territories.GG=Guernsey
+territories.GF=G\u00fciana Francesa
+territories.GE=Xeorxia
+territories.SO=Somalia
+territories.GD=Granada
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=Reino Unido
+territories.SL=Serra Leoa
+territories.GA=Gab\u00f3n
+territories.SK=Eslovaquia
+territories.SJ=Svalbard e Jan Mayen
+territories.SI=Eslovenia
+territories.SH=Santa Helena
+territories.SG=Singapur
+territories.SE=Suecia
+territories.SD=Sud\u00e1n
+territories.SC=Seixeles
+territories.SB=Illas Salom\u00f3n
+territories.SA=Arabia Saudita
+territories.FR=Francia
+territories.FO=Illas Feroe
+territories.057=Rexi\u00f3n da Micronesia
+territories.FM=Micronesia
+territories.RW=Ruanda
+territories.054=Melanesia
+territories.FK=Illas Malvinas
+territories.053=Australia e Nova Celandia
+territories.RU=Rusia
+territories.FJ=Fixi
+territories.FI=Finlandia
+territories.RS=Serbia
+territories.RO=Roman\u00eda
+territories.RE=Reuni\u00f3n
+territories.ET=Etiop\u00eda
territories.ES=Espa\u00f1a
+territories.ER=Eritrea
+territories.QU=Uni\u00f3n Europea
+territories.EH=Sahara Occidental
+territories.EG=Exipto
+territories.EE=Estonia
+territories.QO=Ocean\u00eda Distante
+territories.EC=Ecuador
+territories.DZ=Arxelia
+territories.QA=Qatar
+territories.039=Europa Meridional
+territories.DO=Rep\u00fablica Dominicana
+territories.PY=Paraguai
+territories.DM=Dominica
+territories.035=Sureste Asi\u00e1tico
+territories.PW=Palau
+territories.034=Sul de Asia
+territories.DK=Dinamarca
+territories.DJ=Xibuti
+territories.PT=Portugal
+territories.PS=Palestina
+territories.030=Asia Oriental
+territories.PR=Porto Rico
+territories.DE=Alema\u00f1a
+territories.PN=Pitcairn
+territories.PM=San Pedro e Miguel\u00f3n
+territories.PL=Polonia
+territories.PK=Paquist\u00e1n
+territories.PH=Filipinas
+territories.PG=Pap\u00faa Nova Guinea
+territories.PF=Polinesia Francesa
+territories.CZ=Rep\u00fablica Checa
+territories.PE=Per\u00fa
+territories.CY=Chipre
+territories.CX=Illa Christmas
+territories.CV=Cabo Verde
+territories.PA=Panam\u00e1
+territories.CU=Cuba
+territories.CS=Serbia e Montenegro
+territories.CR=Costa Rica
+territories.029=Caribe
+territories.CO=Colombia
+territories.CN=China
+territories.CM=Camer\u00fan
+territories.CL=Chile
+territories.CK=Illas Cook
+territories.021=Am\u00e9rica do Norte
+territories.CI=Costa de Marfil
+territories.CH=Su\u00edza
+territories.CG=Congo
+territories.CF=Rep\u00fablica Africana Central
+territories.CD=Rep\u00fablica Democr\u00e1tica do Congo
+territories.CC=Illas Cocos
+territories.OM=Om\u00e1n
+territories.CA=Canad\u00e1
+territories.419=Am\u00e9rica Latina e o Caribe
+territories.BZ=Belice
+territories.BY=Bielorrusia
+territories.BW=Botsuana
+territories.BV=Illa Bouvet
+territories.BT=But\u00e1n
+territories.BS=Bahamas
+territories.BR=Brasil
+territories.019=Am\u00e9rica
+territories.018=\u00c1frica Meridional
+territories.NZ=Nova Celandia
+territories.017=\u00c1frica Central
+territories.BO=Bolivia
+territories.BN=Brunei
+territories.015=\u00c1frica Septentrional
+territories.BM=Bermudas
+territories.014=\u00c1frica Oriental
+territories.BL=San Bartolom\u00e9
+territories.013=Am\u00e9rica Central
+territories.NU=Niue
+territories.BJ=Benin
+territories.011=\u00c1frica Occidental
+territories.BI=Burundi
+territories.172=Comunidade de Estados Independentes
+territories.BH=Bahrein
+territories.NR=Nauru
+territories.BG=Bulgaria
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=B\u00e9lxica
+territories.ZZ=rexi\u00f3n desco\u00f1ecida ou non v\u00e1lida
+territories.NO=Noruega
+territories.BD=Bangladesh
+territories.BB=Barbados
+territories.ZW=Cimbabue
+territories.NL=Pa\u00edses Baixos
+territories.BA=Bosnia e Hercegovina
+territories.NI=Nicaragua
+territories.NG=Nixeria
+territories.NF=Illa Norfolk
+territories.AZ=Acerbaix\u00e1n
+territories.NE=N\u00edxer
+territories.AX=Illas Aland
+territories.NC=Nova Caledonia
+territories.AW=Aruba
+territories.ZM=Zambia
+territories.NA=Namibia
+territories.AU=Australia
+territories.AT=Austria
+territories.AS=Samoa Americana
+territories.AR=Arxentina
+territories.AQ=Ant\u00e1rtida
+territories.009=Ocean\u00eda
+territories.MZ=Mozambique
+territories.AO=Angola
+territories.MY=Malaisia
+territories.AN=Antillas Holandesas
+territories.MX=M\u00e9xico
+territories.AM=Armenia
+territories.005=Sudam\u00e9rica
+territories.MW=Malaui
+territories.AL=Albania
+territories.MV=Maldivas
+territories.003=Norteam\u00e9rica
+territories.ZA=Sud\u00e1frica
+territories.MU=Mauricio
+territories.002=\u00c1frica
+territories.MT=Malta
+territories.AI=Anguila
+territories.001=Mundo
+territories.MS=Montserrat
+territories.MR=Mauritania
+territories.AG=Antiga e Barbuda
+territories.MQ=Martinica
+territories.AF=Afganist\u00e1n
+territories.MP=Illas Marianas do norte
+territories.AE=Emiratos \u00c1rabes Unidos
+territories.MO=Macau
+territories.AD=Andorra
+territories.MN=Mongolia
+territories.MM=Myanmar
+territories.ML=Mali
+territories.MK=Macedonia
+territories.YT=Mayotte
+territories.MH=Illas Marshall
+territories.MG=Madagascar
+territories.MF=San Marti\u00f1o
+territories.ME=Montenegro
+territories.MD=Moldova
+territories.MC=M\u00f3naco
+territories.MA=Marrocos
+territories.YE=Iemen
+territories.LY=Libia
+territories.LV=Letonia
+territories.155=Europa Occidental
+territories.LU=Luxemburgo
+territories.154=Europa Septentrional
+territories.LT=Lituania
+territories.LS=Lesotho
+territories.LR=Liberia
+territories.151=Europa do Leste
+territories.150=Europa
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Santa Luc\u00eda
+territories.LB=L\u00edbano
+territories.LA=Laos
+territories.KZ=Kazakhstan
+territories.KY=Illas Caim\u00e1n
+territories.KW=Kuwait
+territories.145=Asia Occidental
+territories.143=Asia Central
+territories.142=Asia
+territories.KR=Corea do Sur
+territories.KP=Corea do Norte
+territories.KN=San Cristovo e Nevis
+territories.KM=Comores
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Cambodia
+territories.KG=Quirguicist\u00e1n
+territories.KE=Quenia
+territories.WF=Wallis e Futuna
+territories.JP=Xap\u00f3n
+territories.JO=Xordania
+territories.JM=Xamaica
+territories.VU=Vanuatu
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VI=Illas Virxes Estadounidenses
+territories.VG=Illas Virxes Brit\u00e1nicas
+territories.VE=Venezuela
+territories.VC=San Vicente e Granadinas
+territories.VA=Cidade do Vaticano
+territories.IT=Italia
+territories.IS=Islandia
+territories.IR=Ir\u00e1n
+territories.IQ=Iraq
+territories.UZ=Uzbekist\u00e1n
+territories.IO=Territorio Brit\u00e1nico do Oc\u00e9ano \u00cdndico
+territories.UY=Uruguai
+territories.IN=India
+territories.IM=Illa de Man
+territories.IL=Israel
+territories.US=Estados Unidos de Am\u00e9rica
+territories.IE=Irlanda
+territories.ID=Indonesia
+territories.UM=Illas Menores Distantes dos EUA.
+territories.UG=Uganda
+territories.UA=Ucra\u00edna
+territories.HU=Hungr\u00eda
+territories.HT=Hait\u00ed
+territories.HR=Croacia
+territories.TZ=Tanzania
+territories.HN=Honduras
+territories.HM=Illa Heard e Illas McDonald
+territories.TW=Taiw\u00e1n
+territories.TV=Tuvalu
+territories.HK=Hong Kong
+territories.TT=Trindade e Tobago
+territories.TR=Turqu\u00eda
+territories.TO=Tonga
+territories.TN=Tunisia
+territories.TM=Turkmenist\u00e1n
+languages.ast=Asturiano
+languages.la=Lat\u00edn
+languages.xh=Xhosa
+languages.ky=Kyrgiz
+languages.ku=Kurdo
+languages.ko=Coreano
+languages.kn=Kannada
+languages.km=Cambodiano
+languages.en_GB=Ingl\u00e9s brit\u00e1nico
+languages.grc=Grego antigo
+languages.art=Lingua artificial
+languages.ka=Xeorxiano
+languages.gem=Lingua xerm\u00e1nica
+languages.afa=Lingua afro-asi\u00e1tica
+languages.jv=Xavan\u00e9s
+languages.arc=Arameo
+languages.cel=Lingua c\u00e9ltica
+languages.ja=Xapon\u00e9s
+languages.tut=Lingua altaica
+languages.vi=Vietnamita
+languages.it=Italiano
+languages.is=Island\u00e9s
+languages.uz=Uzbeco
+languages.ur=Urd\u00fa
+languages.id=Indonesio
+languages.ia=Interlingua
+languages.uk=Ucra\u00edno
+languages.ug=Uighur
+languages.fiu=Lingua finno-\u00fagrica
+languages.hy=Armenio
+languages.und=Lingua desco\u00f1ecida ou non v\u00e1lida
+languages.nub=Lingua nubia
+languages.es_ES=Castel\u00e1n
+languages.hu=H\u00fangaro
+languages.phi=Lingua filipina
+languages.hr=Croata
+languages.fil=Filipino
+languages.apa=Lingua apache
+languages.tw=Twi
+languages.hi=Hindi
+languages.tr=Turco
+languages.he=Hebreo
+languages.sai=Lingua india sudamericana
+languages.tl=Tagalo
+languages.ti=Tigri\u00f1a
+languages.th=Tailand\u00e9s
+languages.te=Telugu
+languages.ta=Tamil
+languages.gu=Guxaratiano
+languages.ine=Lingua indoeuropea
+languages.gn=Guaran\u00ed
+languages.inc=Lingua \u00edndica
+languages.sw=Suaxili
languages.gl=galego
+languages.sv=Sueco
+languages.su=Sondan\u00e9s
+languages.st=Sesotho
+languages.sr=Serbio
+languages.en_CA=Ingl\u00e9s canadiano
+languages.sq=Alban\u00e9s
+languages.so=Somal\u00ed
+languages.gd=Ga\u00e9lico escoc\u00e9s
+languages.sl=Esloveno
+languages.ga=Irland\u00e9s
+languages.sk=Eslovaco
+languages.si=Sinhal\u00e9s
+languages.sh=Serbocroata
+languages.fy=Fris\u00f3n
+languages.sd=Sindhi
+languages.cau=Lingua cauc\u00e1sica
+languages.sa=S\u00e1nscrito
+languages.fr=Franc\u00e9s
+languages.sla=Lingua esl\u00e1vica
+languages.fo=Faro\u00e9s
+languages.ru=Ruso
+languages.cai=Lingua india centroamericana
+languages.fi=Fin\u00e9s
+languages.ro=Roman\u00e9s
+languages.fa=Persa
+languages.pt_PT=Portugu\u00e9s ib\u00e9rico
+languages.nl_BE=Flamenco
+languages.es_419=Espa\u00f1ol latinoamericano
+languages.en_AU=Ingl\u00e9s australiano
+languages.eu=\u00c9uscaro
+languages.et=Estoniano
+languages.es=Espa\u00f1ol
+languages.eo=Esperanto
+languages.en=Ingl\u00e9s
+languages.el=Grego
+languages.alg=Lingua algonquina
+languages.pt=Portugu\u00e9s
+languages.pt_BR=Portugu\u00e9s brasileiro
+languages.ps=Pashto
+languages.de=Alem\u00e1n
+languages.pl=Polaco
+languages.da=Dinamarqu\u00e9s
+languages.cy=Gal\u00e9s
+languages.pa=Punjabi
+languages.cu=Eslavo eclesi\u00e1stico
+languages.cs=Checo
+languages.mis=Lingua miscel\u00e1nea
+languages.de_CH=Alem\u00e1n su\u00edzo
+languages.or=Orissa
+languages.roa=Lingua rom\u00e1nica
+languages.ca=Catal\u00e1n
+languages.mul=Varias linguas
+languages.oc=Occitano
+languages.bs=Bosnio
+languages.br=Bret\u00f3n
+languages.zh_Hans=Chin\u00e9s simplificado
+languages.bn=Bengal\u00ed
+languages.zh_Hant=Chin\u00e9s tradicional
+languages.bh=Bihariano
+languages.bg=B\u00falgaro
+languages.be=Bielorruso
+languages.no=Noruegu\u00e9s
+languages.nn=Noruegu\u00e9s nynorsk
+languages.nl=Holand\u00e9s
+languages.zu=Zul\u00fa
+languages.sgn=Lingua de signos
+languages.az=Azerbaiano
+languages.ne=Nepal\u00ed
+languages.nb=Noruegu\u00e9s Bokmal
+languages.de_AT=Alem\u00e1n de Austria
+languages.aus=Lingua australiana
+languages.as=Assam\u00e9s
+languages.ar=\u00c1rabe
+languages.zh=Chin\u00e9s
+languages.zxx=Sen contido ling\u00fc\u00edstico
+languages.an=Aragon\u00e9s
+languages.am=Am\u00e1rico
+languages.nai=Lingua india norteamericana
+languages.mt=Malt\u00e9s
+languages.ms=Malaio
+languages.mr=Marathi
+languages.af=Afrikaans
+languages.ssa=Lingua do Nilo-S\u00e1hara
+languages.mn=Mongol
+languages.en_US=Ingl\u00e9s americano
+languages.ml=Malaialam
+languages.mk=Macedonio
+languages.egy=Exipcio antigo
+languages.tlh=Clingon
+languages.yi=Yiddish
+languages.bat=Lingua b\u00e1ltica
+languages.lv=Let\u00f3n
+languages.lt=Lituano
+languages.fr_CH=Franc\u00e9s su\u00edzo
+languages.lo=Laotiano
+languages.ln=Lingala
+languages.fr_CA=Franc\u00e9s canadiano
+languages.sem=Lingua semita
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gu.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gu.properties
index 8627e5c..aed977c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gu.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gu.properties
@@ -6,20 +6,133 @@
# This file was automatically generated by gnu.localegen from CLDR.
zeroDigit=\u0ae6
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
currenciesSymbol.INR=\u0ab0\u0ac1
-shortMonths=\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1®\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1®\u0aae\u0abe\u0ab0\u0acd\u0a9a®\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2®\u0aae\u0ac7®\u0a9c\u0ac2\u0aa8®\u0a9c\u0ac1\u0ab2\u0abe\u0a88®\u0a91\u0a97\u0ab8\u0acd\u0a9f®\u0ab8\u0aaa\u0acd\u0a9f\u0ac7®\u0a91\u0a95\u0acd\u0a9f\u0acb®\u0aa8\u0ab5\u0ac7®\u0aa1\u0abf\u0ab8\u0ac7®®
-months=\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0®\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0®\u0aae\u0abe\u0ab0\u0acd\u0a9a®\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2®\u0aae\u0ac7®\u0a9c\u0ac2\u0aa8®\u0a9c\u0ac1\u0ab2\u0abe\u0a88®\u0a91\u0a97\u0ab8\u0acd\u0a9f®\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0®\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0®\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0®\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0®®
-shortWeekdays=®\u0ab0\u0ab5\u0abf®\u0ab8\u0acb\u0aae®\u0aae\u0a82\u0a97\u0ab3®\u0aac\u0ac1\u0aa7®\u0a97\u0ac1\u0ab0\u0ac1®\u0ab6\u0ac1\u0a95\u0acd\u0ab0®\u0ab6\u0aa8\u0abf®
-weekdays=®\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0®\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0®\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0®\u0aac\u0ac1\u0aa7\u0ab5\u0abe\u0ab0®\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0®\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0®\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0®
-ampms=\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u00a0\u0aae\u0aa7\u0acd\u0aaf\u0abe\u0ab9\u0acd\u0aa8®\u0a89\u0aa4\u0acd\u0aa4\u0ab0\u00a0\u0aae\u0aa7\u0acd\u0aaf\u0abe\u0ab9\u0acd\u0aa8®
+shortMonths=\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u00ae\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u00ae\u0aae\u0abe\u0ab0\u0acd\u0a9a\u00ae\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2\u00ae\u0aae\u0ac7\u00ae\u0a9c\u0ac2\u0aa8\u00ae\u0a9c\u0ac1\u0ab2\u0abe\u0a88\u00ae\u0a91\u0a97\u0ab8\u0acd\u0a9f\u00ae\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u00ae\u0a91\u0a95\u0acd\u0a9f\u0acb\u00ae\u0aa8\u0ab5\u0ac7\u00ae\u0aa1\u0abf\u0ab8\u0ac7\u00ae\u00ae
+months=\u0a9c\u0abe\u0aa8\u0acd\u0aaf\u0ac1\u0a86\u0ab0\u0ac0\u00ae\u0aab\u0ac7\u0aac\u0acd\u0ab0\u0ac1\u0a86\u0ab0\u0ac0\u00ae\u0aae\u0abe\u0ab0\u0acd\u0a9a\u00ae\u0a8f\u0aaa\u0acd\u0ab0\u0abf\u0ab2\u00ae\u0aae\u0ac7\u00ae\u0a9c\u0ac2\u0aa8\u00ae\u0a9c\u0ac1\u0ab2\u0abe\u0a88\u00ae\u0a91\u0a97\u0ab8\u0acd\u0a9f\u00ae\u0ab8\u0aaa\u0acd\u0a9f\u0ac7\u0aae\u0acd\u0aac\u0ab0\u00ae\u0a91\u0a95\u0acd\u0a9f\u0acd\u0aac\u0ab0\u00ae\u0aa8\u0ab5\u0ac7\u0aae\u0acd\u0aac\u0ab0\u00ae\u0aa1\u0abf\u0ab8\u0ac7\u0aae\u0acd\u0aac\u0ab0\u00ae\u00ae
+shortWeekdays=\u00ae\u0ab0\u0ab5\u0abf\u00ae\u0ab8\u0acb\u0aae\u00ae\u0aae\u0a82\u0a97\u0ab3\u00ae\u0aac\u0ac1\u0aa7\u00ae\u0a97\u0ac1\u0ab0\u0ac1\u00ae\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u00ae\u0ab6\u0aa8\u0abf\u00ae
+weekdays=\u00ae\u0ab0\u0ab5\u0abf\u0ab5\u0abe\u0ab0\u00ae\u0ab8\u0acb\u0aae\u0ab5\u0abe\u0ab0\u00ae\u0aae\u0a82\u0a97\u0ab3\u0ab5\u0abe\u0ab0\u00ae\u0aac\u0ac1\u0aa7\u0ab5\u0abe\u0ab0\u00ae\u0a97\u0ac1\u0ab0\u0ac1\u0ab5\u0abe\u0ab0\u00ae\u0ab6\u0ac1\u0a95\u0acd\u0ab0\u0ab5\u0abe\u0ab0\u00ae\u0ab6\u0aa8\u0abf\u0ab5\u0abe\u0ab0\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u0aaa\u0ac2\u0ab0\u0acd\u0ab5\u00a0\u0aae\u0aa7\u0acd\u0aaf\u0abe\u0ab9\u0acd\u0aa8\u00ae\u0a89\u0aa4\u0acd\u0aa4\u0ab0\u00a0\u0aae\u0aa7\u0acd\u0aaf\u0abe\u0ab9\u0acd\u0aa8\u00ae
+shortDateFormat=d-MM-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=hh:mm a
+mediumTimeFormat=hh:mm:ss a
+longTimeFormat=hh:mm:ss a z
+fullTimeFormat=hh:mm:ss a z
territories.TR=\u0aa4\u0ac1\u0ab0\u0acd\u0a95\u0ab8\u0acd\u0aa4\u0abe\u0aa8
territories.IN=\u0aad\u0abe\u0ab0\u0aa4
-territories.GE=\u0a9c\u0acd\u0aaf\u0acb\u0ab0\u0acd\u0a9c\u0ac0\u0aaf\u0abe
territories.CN=\u0a9a\u0ac0\u0aa8
+territories.GE=\u0a9c\u0acd\u0aaf\u0acb\u0ab0\u0acd\u0a9c\u0ac0\u0aaf\u0abe
territories.DE=\u0a9c\u0aae\u0abf\u0aa8\u0ac0
territories.NP=\u0aa8\u0ac7\u0aaa\u0abe\u0ab3
territories.TM=\u0aa4\u0ac1\u0ab0\u0acd\u0a95\u0acd\u0aae\u0aa8\u0abf\u0ab8\u0acd\u0aa4\u0abe\u0aa8
territories.US=\u0ab8\u0a82\u0aaf\u0ac1\u0a95\u0aa4 \u0ab0\u0abe\u0a9c\u0acd\u0aaf \u0a85\u0aae\u0ac7\u0ab0\u0abf\u0a95\u0abe
+territories.EG=\u0a88\u0a9c\u0ac0\u0aaa\u0acd\u0aa4
territories.PK=\u0a95\u0ab0\u0abe\u0a82\u0a9a\u0ac0
-territories.EG=\u0aae\u0abf\u0ab8\u0ab0
+languages.es=\u0ab8\u0acd\u0aaa\u0ac7\u0aa8\u0abf\u0ab8
+languages.ku=\u0a95\u0ac1\u0ab0\u0acd\u0aa1\u0abf\u0ab6
+languages.eo=\u0a8d\u0ab8\u0acd\u0aaa\u0ac5\u0ab0\u0ac7\u0aa8\u0acd\u0aa4\u0acb
+languages.en=\u0a85\u0a82\u0a97\u0acd\u0ab0\u0ac7\u0a9c\u0ac0
+languages.el=\u0a97\u0acd\u0ab0\u0ac0\u0a95
+languages.ko=\u0a95\u0acb\u0ab0\u0ac0\u0aaf\u0aa8
+languages.kn=\u0a95\u0aa8\u0acd\u0aa8\u0aa1
+languages.km=\u0a95\u0aae\u0acd\u0aac\u0acb\u0aa1\u0abf\u0aaf\u0aa8
+languages.ka=\u0a9c\u0acd\u0aaf\u0acb\u0ab0\u0acd\u0a9c\u0abf\u0aaf\u0aa8
+languages.jv=\u0a9c\u0abe\u0ab5\u0abe\u0aa8\u0ac0\u0a9d
+languages.fil=\u0aab\u0abf\u0ab2\u0abf\u0aaa\u0abf\u0aa8\u0acb
+languages.pt=\u0aaa\u0acb\u0ab0\u0acd\u0a9a\u0a97\u0ac0\u0a9d
+languages.ps=\u0aaa\u0abe\u0ab6\u0acd\u0aa4\u0ac1\u0aa8
+languages.de=\u0a9c\u0ab0\u0acd\u0aae\u0aa8
+languages.pl=\u0aaa\u0acb\u0ab2\u0abf\u0ab6
+languages.da=\u0aa1\u0ac5\u0aa8\u0abf\u0ab6
+languages.ja=\u0a9c\u0abe\u0aaa\u0abe\u0aa8\u0ac0
+languages.vi=\u0ab5\u0abf\u0aaf\u0ac7\u0aa4\u0aa8\u0abe\u0aae\u0ac0
+languages.cy=\u0ab5\u0ac7\u0ab2\u0acd\u0ab6
+languages.pa=\u0aaa\u0a82\u0a9c\u0abe\u0aac\u0ac0
+languages.cs=\u0a9a\u0ac7\u0a95
+languages.it=\u0a87\u0a9f\u0abe\u0ab2\u0abf\u0aaf\u0aa8
+languages.is=\u0a86\u0a87\u0ab8\u0ab2\u0ac5\u0aa8\u0acd\u0aa1\u0abf\u0a95
+languages.uz=\u0a89\u0a9d\u0aac\u0ac7\u0a95
+languages.or=\u0a8a\u0aa1\u0abf\u0aaf\u0abe
+languages.ca=\u0a95\u0ac7\u0a9f\u0ab2\u0ac5\u0aa8
+languages.id=\u0a87\u0aa8\u0acd\u0aa1\u0acb\u0aa8\u0ac7\u0ab6\u0abf\u0aaf\u0aa8
+languages.uk=\u0aaf\u0ac1\u0a95\u0acd\u0ab0\u0ac7\u0aa8\u0abf\u0aaf\u0aa8
+languages.ia=\u0a87\u0aa8\u0acd\u0a9f\u0ab0\u0ab2\u0abf\u0a82\u0a97\u0abe
+languages.bho=\u0aad\u0acb\u0a9c\u0aaa\u0ac1\u0ab0\u0ac0
+languages.oc=\u0a91\u0a95\u0acd\u0ab8\u0ac0\u0a9f\u0ac5\u0aa8
+languages.ug=\u0ab5\u0abf\u0a97\u0abc\u0ac1\u0ab0
+languages.hy=\u0a86\u0ab0\u0acd\u0aae\u0ac7\u0aa8\u0abf\u0aaf\u0aa8
+languages.bs=\u0aac\u0ac9\u0a9d\u0acd\u0aa8\u0abf\u0aaf\u0aa8
+languages.br=\u0aac\u0acd\u0ab0\u0ac7\u0a9f\u0acb\u0aa8
+languages.hu=\u0ab9\u0a82\u0a97\u0ac7\u0ab0\u0abf\u0aaf\u0aa8
+languages.pt_PT=\u0aaa\u0acb\u0ab0\u0acd\u0a9a\u0a97\u0ac0\u0a9d (\u0aaa\u0acb\u0ab0\u0acd\u0a9a\u0a97\u0ab2)
+languages.bn=\u0aac\u0a82\u0a97\u0abe\u0ab3\u0ac0
+languages.hr=\u0a95\u0acd\u0ab0\u0acb\u0a8f\u0ab6\u0abf\u0aaf\u0aa8
+languages.tw=\u0a9f\u0acd\u0ab5\u0ac0
+languages.bh=\u0aac\u0abf\u0ab9\u0abe\u0ab0\u0ac0
+languages.bg=\u0aac\u0ab2\u0acd\u0a97\u0ac7\u0ab0\u0abf\u0aaf\u0aa8
+languages.no=\u0aa8\u0acb\u0ab0\u0acd\u0ab5\u0ac7\u0a9c\u0abf\u0aaf\u0aa8
+languages.be=\u0aac\u0ac7\u0ab2\u0ab0\u0ac2\u0ab6\u0abf\u0aaf\u0aa8
+languages.nn=\u0aa8\u0acb\u0ab0\u0acd\u0ab5\u0ac7\u0a9c\u0abf\u0aaf\u0aa8 (\u0aa8\u0ac1\u0aa8\u0acb\u0ab0\u0acd\u0ab8\u0acd\u0a95)
+languages.hi=\u0ab9\u0abf\u0aa8\u0acd\u0aa6\u0ac0
+languages.tr=\u0aa4\u0ac1\u0ab0\u0acd\u0a95\u0ac0
+languages.nl=\u0aa1\u0a9a\u0acd\u0a9a
+languages.zu=\u0a9d\u0ac1\u0ab2\u0ac1
+languages.he=\u0ab9\u0ac0\u0aac\u0acd\u0ab0\u0ac2
+languages.tk=\u0aa4\u0ac1\u0ab0\u0acd\u0a95\u0aae\u0abf\u0aa8
+languages.ne=\u0aa8\u0ac7\u0aaa\u0abe\u0ab3\u0ac0
+languages.az=\u0a8d\u0a9d\u0ab0\u0aac\u0ac8\u0a9c\u0abe\u0aa8\u0ac0
+languages.ti=\u0a9f\u0a97\u0acd\u0ab0\u0abf\u0aa8\u0acd\u0aaf\u0abe
+languages.th=\u0aa5\u0abe\u0a87
+languages.te=\u0aa4\u0ac7\u0ab2\u0ac1\u0a97\u0ac1
+languages.as=\u0a86\u0ab8\u0abe\u0aae\u0ac0
+languages.ar=\u0a85\u0ab0\u0aac\u0ac0
+languages.ta=\u0aa4\u0aae\u0abf\u0ab2
languages.gu=\u0a97\u0ac1\u0a9c\u0ab0\u0abe\u0aa4\u0ac0
+languages.am=\u0a8d\u0aae\u0acd\u0ab9\u0ac5\u0ab0\u0abf\u0a95 (\u0a88\u0aa5\u0abf\u0aaf\u0acb\u0aaa\u0abf\u0aaf\u0abe)
+languages.mt=\u0aae\u0abe\u0ab2\u0acd\u0a9f\u0ac0
+languages.ms=\u0aae\u0ab2\u0aaf
+languages.gn=\u0a97\u0acd\u0ab5\u0abe\u0ab0\u0aa8\u0ac0
+languages.sw=\u0ab8\u0acd\u0ab5\u0abe\u0ab9\u0abf\u0ab2\u0ac0
+languages.mr=\u0aae\u0ab0\u0abe\u0aa0\u0ac0
+languages.sv=\u0ab8\u0acd\u0ab5\u0ac0\u0aa1\u0ac0\u0ab6
+languages.gl=\u0a97\u0ac5\u0ab2\u0abf\u0ab6\u0abf\u0aaf\u0aa8
+languages.su=\u0ab8\u0ac1\u0aa8\u0acd\u0aa1\u0aa8\u0ac0\u0a9d
+languages.af=\u0a86\u0aab\u0acd\u0ab0\u0abf\u0a95\u0ac0
+languages.st=\u0ab8\u0ac7\u0ab8\u0acb\u0aa5\u0acb
+languages.mn=\u0aae\u0acb\u0a82\u0a97\u0acb\u0ab2\u0abf\u0aaf\u0aa8
+languages.sr=\u0ab8\u0ab0\u0acd\u0aac\u0abf\u0aaf\u0aa8
+languages.sq=\u0a86\u0ab2\u0acd\u0aac\u0ac7\u0aa8\u0abf\u0aaf\u0aa8
+languages.ml=\u0aae\u0ab3\u0aaf\u0abe\u0ab2\u0aae
+languages.mk=\u0aae\u0ac5\u0ab8\u0abf\u0aa1\u0acb\u0aa8\u0abf\u0aaf\u0aa8
+languages.so=\u0ab8\u0acb\u0aae\u0abe\u0ab2\u0ac0
+languages.gd=\u0a97\u0ac7\u0ab2\u0abf\u0a95 (\u0ab8\u0acd\u0a95\u0ac9\u0a9f\u0ab2\u0ac5\u0aa8\u0acd\u0aa1)
+languages.sl=\u0ab8\u0acd\u0ab2\u0acb\u0ab5\u0ac7\u0aa8\u0abf\u0aaf\u0aa8
+languages.sk=\u0ab8\u0acd\u0ab2\u0acb\u0ab5\u0ac5\u0a95
+languages.ga=\u0a86\u0aaf\u0ab0\u0abf\u0ab6
+languages.si=\u0ab8\u0abf\u0a82\u0ab9\u0abe\u0ab2\u0ac0
+languages.sh=\u0ab8\u0ab0\u0acd\u0aac\u0acb-\u0a95\u0acd\u0ab0\u0acb\u0a8f\u0ab6\u0acd\u0aaf\u0aa8
+languages.pt_BR=\u0aaa\u0acb\u0ab0\u0acd\u0a9a\u0a97\u0ac0\u0a9d (\u0aac\u0acd\u0ab0\u0abe\u0a9d\u0abf\u0ab2)
+languages.yi=\u0aaf\u0abf\u0aa1\u0abf\u0ab6
+languages.sd=\u0ab8\u0abf\u0a82\u0aa7\u0ac0
+languages.fy=\u0aab\u0acd\u0ab0\u0abf\u0a9d\u0aa8
+languages.sa=\u0ab8\u0a82\u0ab8\u0acd\u0a95\u0ac3\u0aa4
+languages.fr=\u0aab\u0acd\u0ab0\u0ac7\u0a82\u0a9a
+languages.lv=\u0ab2\u0abe\u0aa4\u0ab5\u0ac0
+languages.lt=\u0ab2\u0abf\u0aa5\u0acd\u0ab5\u0ac7\u0aa8\u0abf\u0aaf\u0aa8
+languages.fo=\u0aab\u0abe\u0ab0\u0acb\u0a88\u0a9d
+languages.ru=\u0ab0\u0ac2\u0ab8\u0ac0
+languages.lo=\u0ab2\u0ac5\u0a93\u0aa5\u0abf\u0aaf\u0aa8
+languages.ln=\u0ab2\u0abf\u0a82\u0a97\u0abe\u0ab2\u0abe
+languages.fi=\u0aab\u0abf\u0aa8\u0acd\u0aa8\u0abf\u0ab6
+languages.ro=\u0ab0\u0acb\u0aae\u0ac5\u0aa8\u0abf\u0aaf\u0aa8
+languages.fa=\u0aab\u0abe\u0ab0\u0ab8\u0ac0 (\u0aaa\u0ab0\u0acd\u0ab6\u0abf\u0aaf\u0aa8)
+languages.la=\u0ab2\u0ac5\u0a9f\u0abf\u0aa8
+languages.xh=\u0a95\u0acb\u0ab8\u0abe
+languages.eu=\u0aac\u0abe\u0ab8\u0acd\u0a95
+languages.ky=\u0a95\u0abf\u0ab0\u0acd\u0a97\u0abf\u0a9d
+languages.et=\u0a8f\u0ab8\u0acd\u0a9f\u0acb\u0aa8\u0abf\u0aaf\u0aa8
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gv.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gv.properties
index 3ee6a8b..96e5910 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gv.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_gv.properties
@@ -5,11 +5,20 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortMonths=J-guer®T-arree®Mayrnt®Avrril®Boaldyn®M-souree®J-souree®Luanistyn®M-fouyir®J-fouyir®M.Houney®M.Nollick®®
-months=Jerrey-geuree®Toshiaght-arree®Mayrnt®Averil®Boaldyn®Mean-souree®Jerrey-souree®Luanistyn®Mean-fouyir®Jerrey-fouyir®Mee Houney®Mee ny Nollick®®
-shortWeekdays=®Jed®Jel®Jem®Jerc®Jerd®Jeh®Jes®
-weekdays=®Jedoonee®Jelhein®Jemayrt®Jercean®Jerdein®Jeheiney®Jesarn®
-eras=RC®AD®
-ampms=a.m.®p.m.®
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+shortMonths=J-guer\u00aeT-arree\u00aeMayrnt\u00aeAvrril\u00aeBoaldyn\u00aeM-souree\u00aeJ-souree\u00aeLuanistyn\u00aeM-fouyir\u00aeJ-fouyir\u00aeM.Houney\u00aeM.Nollick\u00ae\u00ae
+months=Jerrey-geuree\u00aeToshiaght-arree\u00aeMayrnt\u00aeAveril\u00aeBoaldyn\u00aeMean-souree\u00aeJerrey-souree\u00aeLuanistyn\u00aeMean-fouyir\u00aeJerrey-fouyir\u00aeMee Houney\u00aeMee ny Nollick\u00ae\u00ae
+shortWeekdays=\u00aeJed\u00aeJel\u00aeJem\u00aeJerc\u00aeJerd\u00aeJeh\u00aeJes\u00ae
+weekdays=\u00aeJedoonee\u00aeJelhein\u00aeJemayrt\u00aeJercean\u00aeJerdein\u00aeJeheiney\u00aeJesarn\u00ae
+eras=RC\u00aeAD\u00ae
+ampms=a.m.\u00aep.m.\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=MMM dd, yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
territories.GB=Rywvaneth Unys
languages.gv=Gaelg
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha.properties
new file mode 100644
index 0000000..cfb3003
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha.properties
@@ -0,0 +1,136 @@
+# LocaleInformation_ha.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.GHC=Sidi
+currenciesDisplayName.NGN=Neira
+currenciesDisplayName.XOF=Sefa
+currenciesSymbol.NGN=\u20a6
+currenciesSymbol.XOF=CFA
+shortMonths=Jan\u00aeFab\u00aeMar\u00aeAfr\u00aeMay\u00aeYun\u00aeYul\u00aeAug\u00aeSat\u00aeOkt\u00aeNuw\u00aeDis\u00ae\u00ae
+months=Janairu\u00aeFabrairu\u00aeMaris\u00aeAfrilu\u00aeMayu\u00aeYuni\u00aeYuli\u00aeAugusta\u00aeSatumba\u00aeOktoba\u00aeNuwamba\u00aeDisamba\u00ae\u00ae
+shortWeekdays=\u00aeLah\u00aeLit\u00aeTal\u00aeLar\u00aeAlh\u00aeJum\u00aeAsa\u00ae
+weekdays=\u00aeLahadi\u00aeLitini\u00aeTalata\u00aeLaraba\u00aeAlhamis\u00aeJumma'a\u00aeAsabar\u00ae
+eras=GM\u00aeM\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=d/M/yy
+mediumDateFormat=d MMM, yyyy
+longDateFormat=d MMMM, yyyy
+fullDateFormat=EEEE, d MMMM, yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.NG=Nijeriya
+languages.es=Mutanen Espanya
+languages.ku=Kurdanci
+languages.eo=D'an/'Yar Kabilar Andalus
+languages.en=Turanci
+languages.el=Girkanci
+languages.ko=Yaren mutanen Koriya
+languages.kn=Dan/'Yar Kabilar Kannada
+languages.km=Kambodiyanci
+languages.ka=Jojiyanci
+languages.jv=Javanisanci
+languages.fil=Dan Filifin
+languages.pt=Yaren mutanen Portugal
+languages.ps=Pashtanci
+languages.de=Jamusanchi
+languages.pl=Yaren mutanen Poland
+languages.da=Danish
+languages.tlh=Klingon
+languages.ja=Jafananci
+languages.vi=K'abilan Biyetnam
+languages.cy=Kabilar Welsh
+languages.pa=Dan/'Yar Garin Punjab
+languages.cs=Yaren Jamhuriyar Cek
+languages.it=Italiyanci
+languages.is=Yaren mutanen Iceland
+languages.uz=Uzbek
+languages.or=Oriyanci
+languages.ur=Urdu
+languages.ca=Kataloniyanci
+languages.ie=Intagulanci
+languages.id=Indonesiyan
+languages.uk=Dan Ukirain
+languages.ia=Yare Tsakanin Kasashe
+languages.oc=Ositanci
+languages.ug=Ugiranci
+languages.hy=Armeniyanci
+languages.bs=Bosniyanci
+languages.br=Buretananci
+languages.hu=Hongeriyanci
+languages.pt_PT=Yaren Kasar Portugal
+languages.bn=Dan Bengal
+languages.hr=Kuroshiyan
+languages.tw=Tiwiniyanci
+languages.bh=Bihari
+languages.bg=Bulgeriyan
+languages.no=Yaren mutanen Norway
+languages.be=Belarushiyanci
+languages.nn=Yaren Kasar Norway
+languages.hi=Bahinde
+languages.tr=Baturke
+languages.nl=Yaren mutanen Holland
+languages.zu=Bazule
+languages.he=Yahudanci
+languages.tk=Tukmenistanci
+languages.ha=Haoussa
+languages.ne=D'an/'Yar Kabilar Nepal
+languages.az=Azerbaijanci
+languages.ti=Tigriyanci
+languages.th=Tayanci
+languages.te=D'an/'Yar Kabilar Telug
+languages.as=Asamisanci
+languages.ar=Harshen Larabci
+languages.ta=D'an/'Yar Kabilar Tamil
+languages.gu=Gujarati
+languages.am=Amharic
+languages.mt=Harshen Maltis
+languages.ms=Dan Kabilar Male
+languages.gn=Guwaraniyanci
+languages.sw=Harshen Suwahili
+languages.mr=K'abilan Marathi
+languages.sv=Yaren mutanen Sweden
+languages.gl=Bagalike
+languages.su=Sundanese
+languages.af=Afirkanci
+languages.st=Sesotanci
+languages.mn=Mongolian
+languages.sr=Sabiyan
+languages.sq=D'an/'Yar Kabilar Albaniya
+languages.ml=Kabilar Maleyalam
+languages.mk=Dan Masedoniya
+languages.so=Somaali
+languages.gd=K'abilan Scots Gaelic
+languages.sl=Basulabe
+languages.sk=Basulake
+languages.ga=Dan Ailan
+languages.si=Sinhalanci
+languages.sh=Kuroweshiyancin-Sabiya
+languages.pt_BR=Fotigis (Burazil)
+languages.sd=Sindiyanci
+languages.fy=K'abilan Firsi
+languages.sa=sanskrit
+languages.fr=Faranshi
+languages.lv=Latbiyanci
+languages.lt=Lituweniyanci
+languages.fo=Faroese
+languages.ru=Rashanci
+languages.lo=Laothian
+languages.ln=Lingala
+languages.fi=Yaren mutanen Finland
+languages.ro=Romaniyanci
+languages.fa=Persian
+languages.la=Dan Kabilar Latin
+languages.xh=Bazosa
+languages.eu=Dan/'Yar Kabilar Bas
+languages.ky=Kirgizanci
+languages.et=Istoniyanci
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties
new file mode 100644
index 0000000..a02b755
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties
@@ -0,0 +1,14 @@
+# LocaleInformation_ha_Arab.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=\u0646\u064e\u064a\u0652\u0631\u064e
+shortMonths=\u062c\u064e\u0646\u00ae\u06a2\u064e\u0628\u00ae\u0645\u064e\u0631\u00ae\u0623\u064e\u06a2\u0652\u0631\u00ae\u0645\u064e\u064a\u00ae\u064a\u064f\u0648\u0646\u00ae\u064a\u064f\u0648\u0644\u00ae\u0623\u064e\u063a\u064f\u00ae\u0633\u064e\u062a\u00ae\u0623\u064f\u0643\u0652\u062a\u00ae\u0646\u064f\u0648\u00ae\u062f\u0650\u0633\u00ae\u00ae
+months=\u062c\u064e\u0646\u064e\u064a\u0652\u0631\u064f\u00ae\u06a2\u064e\u0628\u0652\u0631\u064e\u064a\u0652\u0631\u064f\u00ae\u0645\u064e\u0631\u0650\u0633\u0652\u00ae\u0623\u064e\u06a2\u0652\u0631\u0650\u0644\u064f\u00ae\u0645\u064e\u064a\u064f\u00ae\u064a\u064f\u0648\u0646\u0650\u00ae\u064a\u064f\u0648\u0644\u0650\u00ae\u0623\u064e\u063a\u064f\u0633\u0652\u062a\u064e\u00ae\u0633\u064e\u062a\u064f\u0645\u0652\u0628\u064e\u00ae\u0623\u064f\u0643\u0652\u062a\u0648\u064f\u0628\u064e\u00ae\u0646\u064f\u0648\u064e\u0645\u0652\u0628\u064e\u00ae\u062f\u0650\u0633\u064e\u0645\u0652\u0628\u064e\u00ae\u00ae
+shortWeekdays=\u00ae\u0644\u064e\u062d\u00ae\u0644\u0650\u062a\u00ae\u062a\u064e\u0644\u00ae\u0644\u064e\u0631\u00ae\u0623\u064e\u0644\u0652\u062d\u00ae\u062c\u064f\u0645\u00ae\u0623\u064e\u0633\u064e\u00ae
+weekdays=\u00ae\u0644\u064e\u062d\u064e\u062f\u0650\u00ae\u0644\u0650\u062a\u0650\u0646\u0650\u0646\u0652\u00ae\u062a\u064e\u0644\u064e\u062a\u064e\u00ae\u0644\u064e\u0631\u064e\u0628\u064e\u00ae\u0623\u064e\u0644\u0652\u062d\u064e\u0645\u0650\u0633\u0652\u00ae\u062c\u064f\u0645\u064e\u0639\u064e\u00ae\u0623\u064e\u0633\u064e\u0628\u064e\u0631\u0652\u00ae
+eras=\u063a\u064e\u0628\u064e\u0646\u0650\u0646\u0652 \u0645\u0650\u0644\u064e\u062f\u0650\u00ae\u0645\u0650\u0644\u064e\u062f\u0650\u00ae
+ampms=A.M.\u00aeP.M.\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_haw.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_haw.properties
index ab0beb6..8364366 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_haw.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_haw.properties
@@ -5,10 +5,21 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortMonths=Ian.®Pep.®Mal.®\u02bbAp.®Mei®Iun.®Iul.®\u02bbAu.®Kep.®\u02bbOk.®Now.®Kek.®®
-months=Ianuali®Pepeluali®Malaki®\u02bbApelila®Mei®Iune®Iulai®\u02bbAukake®Kepakemapa®\u02bbOkakopa®Nowemapa®Kekemapa®®
-shortWeekdays=®LP®P1®P2®P3®P4®P5®P6®
-weekdays=®L\u0101pule®Po\u02bbakahi®Po\u02bbalua®Po\u02bbakolu®Po\u02bbah\u0101®Po\u02bbalima®Po\u02bbaono®
+currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
+shortMonths=Ian.\u00aePep.\u00aeMal.\u00ae\u02bbAp.\u00aeMei\u00aeIun.\u00aeIul.\u00ae\u02bbAu.\u00aeKep.\u00ae\u02bbOk.\u00aeNow.\u00aeKek.\u00ae\u00ae
+months=Ianuali\u00aePepeluali\u00aeMalaki\u00ae\u02bbApelila\u00aeMei\u00aeIune\u00aeIulai\u00ae\u02bbAukake\u00aeKepakemapa\u00ae\u02bbOkakopa\u00aeNowemapa\u00aeKekemapa\u00ae\u00ae
+shortWeekdays=\u00aeLP\u00aeP1\u00aeP2\u00aeP3\u00aeP4\u00aeP5\u00aeP6\u00ae
+weekdays=\u00aeL\u0101pule\u00aePo\u02bbakahi\u00aePo\u02bbalua\u00aePo\u02bbakolu\u00aePo\u02bbah\u0101\u00aePo\u02bbalima\u00aePo\u02bbaono\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=d/M/yy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE, d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.IT=\u02bb\u012ak\u0101lia
territories.FR=Palani
territories.RU=L\u016bkia
@@ -19,8 +30,8 @@ territories.IL=\u02bbIsera\u02bbela
territories.AU=N\u016bh\u014dlani
territories.MX=Mekiko
territories.IE=\u02bbIlelani
-territories.CA=Kanak\u0101
territories.GR=Helene
+territories.CA=Kanak\u0101
territories.JP=I\u0101pana
territories.DK=Kenemaka
territories.NZ=Aotearoa
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_he.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_he.properties
index 4195ce2..ec07da4 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_he.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_he.properties
@@ -5,36 +5,256 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.INR=\u05e8\u05d5\u05e4\u05d9 \u05d4\u05d5\u05d3\u05d9\u05ea
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u05d3\u05d9\u05e0\u05e8 \u05ea\u05d9\u05de\u05e0\u05d9
+currenciesDisplayName.KES=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05e7\u05e0\u05d9\u05d9\u05ea\u05d9
+currenciesDisplayName.TWD=\u05d3\u05d5\u05dc\u05e8 \u05d8\u05d0\u05d9\u05d9\u05d5\u05e0\u05d9 \u05d7\u05d3\u05e9
+currenciesDisplayName.LKR=\u05e8\u05d5\u05e4\u05d9 \u05e1\u05e8\u05d9 \u05dc\u05e0\u05e7\u05d9
+currenciesDisplayName.TJS=\u05e1\u05d5\u05de\u05d5\u05e0\u05d9 \u05d8\u05d2'\u05e7\u05d9\u05e1\u05d8\u05e0\u05d9
+currenciesDisplayName.RWF=\u05e4\u05e8\u05e0\u05e7 \u05e8\u05d5\u05d0\u05e0\u05d3\u05d9
+currenciesDisplayName.ERN=\u05e0\u05d0\u05e7\u05e4\u05d4
+currenciesDisplayName.SDP=\u05dc\u05d9\u05e8\u05d4 \u05e1\u05d5\u05d3\u05e0\u05d9\u05ea
+currenciesDisplayName.GRD=\u05d3\u05e8\u05db\u05de\u05d4
+currenciesDisplayName.AFN=\u05d0\u05e4\u05d2\u05e0\u05d9
+currenciesDisplayName.IEP=\u05dc\u05d9\u05e8\u05d4 \u05d0\u05d9\u05e8\u05d9\u05ea
+currenciesDisplayName.ARS=\u05e4\u05d6\u05d5 \u05d0\u05e8\u05d2\u05e0\u05d8\u05d9\u05e0\u05d0\u05d9
+currenciesDisplayName.ARP=\u05e4\u05d6\u05d5 \u05d0\u05e8\u05d2\u05e0\u05d8\u05d9\u05e0\u05d0\u05d9 (1983-1985)
+currenciesDisplayName.SDD=\u05d3\u05d9\u05e0\u05e8 \u05e1\u05d5\u05d3\u05e0\u05d9
+currenciesDisplayName.GEL=\u05dc\u05e8\u05d9
+currenciesDisplayName.CRC=\u05e7\u05d5\u05dc\u05d5\u05df
+currenciesDisplayName.FKP=\u05e4\u05d0\u05d5\u05e0\u05d3
+currenciesDisplayName.EEK=\u05e7\u05e8\u05d5\u05df \u05d0\u05e1\u05d8\u05d5\u05e0\u05d9
+currenciesDisplayName.MDL=\u05dc\u05d9\u05d0\u05d5 \u05de\u05d5\u05dc\u05d3\u05d5\u05d1\u05e0\u05d9
+currenciesDisplayName.HKD=\u05d3\u05d5\u05dc\u05e8 \u05d4\u05d5\u05e0\u05d2 \u05e7\u05d5\u05e0\u05d2\u05d9
+currenciesDisplayName.IQD=\u05d3\u05d9\u05e0\u05e8 \u05e2\u05d9\u05e8\u05e7\u05d9
+currenciesDisplayName.SCR=\u05e8\u05d5\u05e4\u05d9 \u05e1\u05d9\u05d9\u05e9\u05dc\u05d9
+currenciesDisplayName.VUV=\u05d5\u05d0\u05d8\u05d5
+currenciesDisplayName.KPW=\u05d5\u05d5\u05df \u05e6\u05e4\u05d5\u05df \u05e7\u05d5\u05e8\u05d0\u05e0\u05d9
+currenciesDisplayName.DKK=\u05db\u05ea\u05e8 \u05d3\u05e0\u05d9
+currenciesDisplayName.IDR=\u05e8\u05d5\u05e4\u05d9\u05d4 \u05d0\u05d9\u05e0\u05d3\u05d5\u05e0\u05d6\u05d9\u05ea
+currenciesDisplayName.SOS=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05e1\u05d5\u05de\u05d0\u05dc\u05d9
+currenciesDisplayName.EQE=\u05d0\u05e7\u05d5\u05d5\u05dc\u05d4
+currenciesDisplayName.AED=\u05d3\u05d9\u05e8\u05d4\u05dd \u05e9\u05dc \u05d0\u05d9\u05d7\u05d5\u05d3 \u05d4\u05e0\u05e1\u05d9\u05db\u05d5\u05d9\u05d5\u05ea \u05d4\u05e2\u05e8\u05d1\u05d9\u05d5\u05ea
+currenciesDisplayName.LVL=\u05dc\u05d8
+currenciesDisplayName.BWP=\u05e4\u05d5\u05dc\u05d4
+currenciesDisplayName.RUR=\u05e8\u05d5\u05d1\u05dc \u05e8\u05d5\u05e1\u05d9 (1991 - 1998)
+currenciesDisplayName.NIO=\u05e7\u05d5\u05e8\u05d3\u05d5\u05d1\u05d4
+currenciesDisplayName.XTS=\u05e1\u05d9\u05de\u05d5\u05df \u05dc\u05de\u05d8\u05e8\u05d5\u05ea \u05d1\u05d3\u05d9\u05e7\u05d4
+currenciesDisplayName.MOP=\u05e4\u05d8\u05e7\u05d4
+currenciesDisplayName.FJD=\u05d3\u05d5\u05dc\u05e8 \u05e4\u05d9\u05d2'\u05d9
+currenciesDisplayName.ADP=\u05e4\u05d6\u05d5 \u05d0\u05e0\u05d3\u05d5\u05e8\u05d9
currenciesDisplayName.RUB=\u05e8\u05d5\u05d1\u05dc
-currenciesDisplayName.JPY=\u05d9\u05df
-currenciesDisplayName.BRL=\u05e8\u05d9\u05d0\u05dc \u05d1\u05e8\u05d6\u05d9\u05dc\u05d0\u05d9
+currenciesDisplayName.CDF=\u05e4\u05e8\u05e0\u05e7 \u05e7\u05d5\u05e0\u05d2\u05d9\u05e0\u05d9
+currenciesDisplayName.DJF=\u05e4\u05e8\u05e0\u05e7 [DJF]
+currenciesDisplayName.UZS=\u05e1\u05d5\u05dd \u05d0\u05d5\u05d6\u05d1\u05e7\u05d9
+currenciesDisplayName.SBD=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05d9\u05d9 \u05e9\u05dc\u05de\u05d4
+currenciesDisplayName.ECS=\u05e1\u05d5\u05e7\u05e8
+currenciesDisplayName.THB=\u05d1\u05d4\u05d8 \u05ea\u05d0\u05d9\u05dc\u05e0\u05d3\u05d9
+currenciesDisplayName.PHP=\u05e4\u05d6\u05d5 \u05e4\u05d9\u05dc\u05d9\u05e4\u05d9\u05e0\u05d9
+currenciesDisplayName.LUF=\u05e4\u05e8\u05e0\u05e7 \u05dc\u05d5\u05e7\u05e1\u05de\u05d1\u05d5\u05e8\u05d2\u05d9
+currenciesDisplayName.FIM=\u05de\u05e8\u05e7 \u05e4\u05d9\u05e0\u05d9
+currenciesDisplayName.TTD=\u05d3\u05d5\u05dc\u05e8 \u05d8\u05e8\u05d9\u05e0\u05d9\u05d3\u05d3\u05d9
+currenciesDisplayName.SZL=\u05dc\u05d9\u05dc\u05e0\u05d2\u05e0\u05d9
+currenciesDisplayName.MNT=\u05d8\u05d5\u05d2\u05e8\u05d5\u05d2
+currenciesDisplayName.SAR=\u05e8\u05d9\u05d0\u05dc \u05e1\u05e2\u05d5\u05d3\u05d9
+currenciesDisplayName.UAH=\u05d2\u05e8\u05d9\u05d1\u05e0\u05d4 \u05d0\u05d5\u05e7\u05e8\u05d0\u05d9\u05e0\u05d9
+currenciesDisplayName.HUF=\u05e4\u05d5\u05e8\u05d9\u05e0\u05d8 \u05d4\u05d5\u05e0\u05d2\u05e8\u05d9
+currenciesDisplayName.QAR=\u05e8\u05d9\u05d0\u05dc \u05e7\u05d8\u05d0\u05e8\u05d9
+currenciesDisplayName.COP=\u05e4\u05d6\u05d5 \u05e7\u05d5\u05dc\u05d5\u05de\u05d1\u05d9\u05d0\u05e0\u05d9
+currenciesDisplayName.PTE=\u05d0\u05e1\u05e7\u05d5\u05d3\u05d5
+currenciesDisplayName.UYU=\u05e4\u05d6\u05d5 \u05d0\u05d5\u05e8\u05d5\u05d2\u05d5\u05d5\u05d0\u05d9
+currenciesDisplayName.AOR=\u05e7\u05d5\u05d0\u05e0\u05d6\u05d4 \u05e8\u05d2'\u05d5\u05e1\u05d8\u05d3\u05d5
+currenciesDisplayName.GBP=\u05dc\u05d9\u05e8\u05d4 \u05e9\u05d8\u05e8\u05dc\u05d9\u05e0\u05d2
+currenciesDisplayName.INR=\u05e8\u05d5\u05e4\u05d9 \u05d4\u05d5\u05d3\u05d9\u05ea
+currenciesDisplayName.BIF=\u05e4\u05e8\u05e0\u05e7 \u05d1\u05d5\u05e8\u05d5\u05e0\u05d3\u05d9
+currenciesDisplayName.LTL=\u05dc\u05d9\u05d8\u05d0 \u05dc\u05d9\u05d8\u05d0\u05d9
+currenciesDisplayName.AON=\u05e7\u05d5\u05d0\u05e0\u05d6\u05d4 \u05d7\u05d3\u05e9 \u05d0\u05e0\u05d2\u05d5\u05dc\u05d9
+currenciesDisplayName.MZM=\u05de\u05d8\u05d9\u05e7\u05dc
+currenciesDisplayName.KZT=\u05d8\u05e0\u05d2\u05d4
+currenciesDisplayName.XFO=\u05e4\u05e8\u05e0\u05e7 \u05d6\u05d4\u05d1
+currenciesDisplayName.PGK=\u05e7\u05d9\u05e0\u05d4
+currenciesDisplayName.SYP=\u05dc\u05d9\u05e8\u05d4 \u05e1\u05d5\u05e8\u05d9\u05ea
+currenciesDisplayName.ZRN=\u05d6\u05d0\u05d9\u05e8 \u05d7\u05d3\u05e9
+currenciesDisplayName.NGN=\u05e0\u05d0\u05d9\u05e8\u05d4
currenciesDisplayName.CNY=\u05d9\u05d5\u05d0\u05df
-currenciesDisplayName.USD=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9
-currenciesDisplayName.ILS=\u05e9\"\u05d7
-currenciesDisplayName.EUR=\u05d9\u05d5\u05e8\u05d5
+currenciesDisplayName.AOA=\u05e7\u05d5\u05d0\u05e0\u05d6\u05d4 \u05d0\u05e0\u05d2\u05d5\u05dc\u05d9
+currenciesDisplayName.MAF=\u05e4\u05e8\u05e0\u05e7 \u05de\u05d0\u05dc\u05d9
+currenciesDisplayName.RSD=\u05d3\u05d9\u05e0\u05e8 \u05e1\u05e8\u05d1\u05d9
+currenciesDisplayName.GNF=\u05e4\u05e8\u05e0\u05e7 \u05d2\u05d9\u05e0\u05d0\u05d9
+currenciesDisplayName.MAD=\u05d3\u05d9\u05e8\u05d4\u05dd \u05de\u05e8\u05d5\u05e7\u05d0\u05d9
+currenciesDisplayName.HTG=\u05d2\u05d0\u05e8\u05d3
currenciesDisplayName.TRY=\u05dc\u05d9\u05e8\u05d4 \u05d8\u05d5\u05e8\u05e7\u05d9\u05ea \u05d7\u05d3\u05e9\u05d4
-currenciesDisplayName.GBP=\u05dc\u05d9\u05e8\u05d4 \u05e9\u05d8\u05e8\u05dc\u05d9\u05e0\u05d2
+currenciesDisplayName.MMK=\u05e7\u05d9\u05d0\u05d8
+currenciesDisplayName.MYR=\u05e8\u05d9\u05e0\u05d2\u05d9\u05d8 \u05de\u05dc\u05d6\u05d9
+currenciesDisplayName.LSL=\u05dc\u05d5\u05d8\u05d9
+currenciesDisplayName.SLL=\u05dc\u05d9\u05d0\u05d5\u05df
+currenciesDisplayName.BHD=\u05d3\u05d9\u05e0\u05e8 \u05d1\u05d7\u05e8\u05d9\u05d9\u05e0\u05d9
+currenciesDisplayName.BTN=\u05e0\u05d2\u05d5\u05dc\u05d8\u05e8\u05d5\u05dd
+currenciesDisplayName.TRL=\u05dc\u05d9\u05e8\u05d4 \u05d8\u05d5\u05e8\u05e7\u05d9\u05ea
+currenciesDisplayName.KMF=\u05e4\u05e8\u05e0\u05e7 \u05e7\u05d5\u05de\u05d5\u05e8\u05d5\u05d0\u05d9
+currenciesDisplayName.CZK=\u05e7\u05d5\u05e8\u05d5\u05e0\u05d4 \u05e6'\u05db\u05d9\u05ea
+currenciesDisplayName.ANG=\u05d2\u05d9\u05dc\u05d3\u05e8 [ANG]
+currenciesDisplayName.AZN=\u05de\u05d0\u05e0\u05d0\u05d8 \u05d0\u05d6\u05e8\u05d1\u05d9\u05d2\u05f3\u05e0\u05d9
+currenciesDisplayName.AZM=\u05de\u05d0\u05e0\u05d0\u05d8
+currenciesDisplayName.KYD=\u05d3\u05d5\u05dc\u05e8 \u05e7\u05d9\u05d9\u05de\u05d0\u05e0\u05d9
+currenciesDisplayName.GMD=\u05d3\u05dc\u05e1\u05d9
+currenciesDisplayName.BGN=\u05dc\u05d1 \u05d1\u05d5\u05dc\u05d2\u05e8\u05d9
+currenciesDisplayName.CAD=\u05d3\u05d5\u05dc\u05e8 \u05e7\u05e0\u05d3\u05d9
+currenciesDisplayName.BGL=\u05dc\u05d1
+currenciesDisplayName.VEB=\u05d1\u05d5\u05dc\u05d9\u05d1\u05e8 \u05d5\u05e0\u05e6\u05d5\u05d0\u05dc\u05d9
+currenciesDisplayName.MXP=\u05e4\u05d6\u05d5 \u05de\u05e7\u05e1\u05d9\u05e7\u05e0\u05d9 (1861 - 1992)
+currenciesDisplayName.ILS=\u05e9\u05e7\u05dc \u05d7\u05d3\u05e9
+currenciesDisplayName.MXN=\u05e4\u05d6\u05d5 \u05de\u05e7\u05e1\u05d9\u05e7\u05e0\u05d9
+currenciesDisplayName.GYD=\u05d3\u05d5\u05dc\u05e8 \u05d2\u05d9\u05d0\u05e0\u05d9
+currenciesDisplayName.ILP=\u05dc\u05d9\u05e8\u05d4 \u05d9\u05e9\u05e8\u05d0\u05dc\u05d9\u05ea
+currenciesDisplayName.CYP=\u05dc\u05d9\u05e8\u05d4 \u05e7\u05e4\u05e8\u05d9\u05e1\u05d0\u05d9\u05ea
+currenciesDisplayName.SKK=\u05e7\u05d5\u05e8\u05d5\u05e0\u05d4 \u05e1\u05dc\u05d5\u05d1\u05e7\u05d9
+currenciesDisplayName.XDR=\u05d6\u05db\u05d5\u05d9\u05d5\u05ea \u05de\u05e9\u05d9\u05db\u05d4 \u05de\u05d9\u05d5\u05d7\u05d3\u05d5\u05ea
+currenciesDisplayName.PEN=\u05e1\u05d5\u05dc \u05e4\u05e8\u05d5\u05d0\u05e0\u05d9 \u05d7\u05d3\u05e9
+currenciesDisplayName.LRD=\u05d3\u05d5\u05dc\u05e8 \u05dc\u05d9\u05d1\u05e8\u05d9
+currenciesDisplayName.AMD=\u05d3\u05e8\u05d0\u05dd \u05d0\u05e8\u05de\u05e0\u05d9
+currenciesDisplayName.BSD=\u05d3\u05d5\u05dc\u05e8 \u05d1\u05d4\u05d0\u05de\u05d9
+currenciesDisplayName.XPT=\u05e4\u05dc\u05d8\u05d9\u05e0\u05d4
+currenciesDisplayName.HRK=\u05e7\u05d5\u05e0\u05d4 \u05e7\u05e8\u05d5\u05d0\u05d8\u05d9
+currenciesDisplayName.CLP=\u05e4\u05d6\u05d5 \u05e6'\u05d9\u05dc\u05d0\u05e0\u05d9
+currenciesDisplayName.FRF=\u05e4\u05e8\u05e0\u05e7 \u05e6\u05e8\u05e4\u05ea\u05d9
+currenciesDisplayName.XPD=\u05e4\u05dc\u05d3\u05d9\u05d5\u05dd
+currenciesDisplayName.ALL=\u05dc\u05e7 \u05d0\u05dc\u05d1\u05e0\u05d9
+currenciesDisplayName.MWK=\u05e7\u05d0\u05d5\u05d5\u05e6'\u05d4
+currenciesDisplayName.BRL=\u05e8\u05d9\u05d0\u05dc \u05d1\u05e8\u05d6\u05d9\u05dc\u05d0\u05d9
+currenciesDisplayName.TPE=\u05d0\u05e1\u05e7\u05d5\u05d3\u05d5 \u05d8\u05d9\u05de\u05d5\u05e8\u05d0\u05d9
+currenciesDisplayName.BRC=\u05e7\u05e8\u05d5\u05d6\u05d3\u05d5
+currenciesDisplayName.BRB=\u05e7\u05e8\u05d5\u05d6\u05d9\u05d0\u05e8\u05d5
+currenciesDisplayName.DEM=\u05de\u05e8\u05e7 \u05d2\u05e8\u05de\u05e0\u05d9
+currenciesDisplayName.XCD=\u05d3\u05d5\u05dc\u05e8 \u05de\u05d6\u05e8\u05d7 \u05e7\u05e8\u05d9\u05d1\u05d9
+currenciesDisplayName.KWD=\u05d3\u05d9\u05e0\u05e8 \u05db\u05d5\u05d5\u05d9\u05ea\u05d9
+currenciesDisplayName.NPR=\u05e8\u05d5\u05e4\u05d9 \u05e0\u05e4\u05d0\u05dc\u05d9
+currenciesDisplayName.GWP=\u05e4\u05d6\u05d5 \u05d2\u05d9\u05e0\u05d0\u05d9
+currenciesDisplayName.YUM=\u05d3\u05d9\u05e0\u05e8 \u05d9\u05d2\u05d5\u05e1\u05dc\u05d1\u05d9
+currenciesDisplayName.SIT=\u05d8\u05d5\u05dc\u05d0\u05e8 \u05e1\u05dc\u05d5\u05d1\u05e0\u05d9
+currenciesDisplayName.JPY=\u05d9\u05df \u05d9\u05e4\u05e0\u05d9
+currenciesDisplayName.MVR=\u05e8\u05d5\u05e4\u05d9\u05d4
+currenciesDisplayName.YUD=\u05d3\u05d9\u05e0\u05e8 \u05d9\u05d2\u05d5\u05e1\u05dc\u05d1\u05d9 \u05d7\u05d3\u05e9
+currenciesDisplayName.TOP=\u05e4\u05d0\u05e0\u05d2\u05d4
+currenciesDisplayName.BEF=\u05e4\u05e8\u05e0\u05e7 \u05d1\u05dc\u05d2\u05d9
+currenciesDisplayName.BEC=\u05e4\u05e8\u05e0\u05e7 \u05d1\u05dc\u05d2\u05d9 (\u05d1\u05e8 \u05d4\u05de\u05e8\u05d4)
+currenciesDisplayName.SUR=\u05e8\u05d5\u05d1\u05dc \u05e1\u05d5\u05d1\u05d9\u05d9\u05d8\u05d9
+currenciesDisplayName.RON=\u05dc\u05d0\u05d5 \u05e8\u05d5\u05de\u05e0\u05d9 \u05d7\u05d3\u05e9
+currenciesDisplayName.ROL=\u05dc\u05d0\u05d5
+currenciesDisplayName.DDM=\u05de\u05e8\u05e7 \u05de\u05d6\u05e8\u05d7 \u05d2\u05e8\u05de\u05e0\u05d9
+currenciesDisplayName.BDT=\u05d8\u05d0\u05e7\u05d4
+currenciesDisplayName.AWG=\u05e4\u05dc\u05d5\u05e8\u05d9\u05df
+currenciesDisplayName.NOK=\u05db\u05ea\u05e8 \u05e0\u05d5\u05e8\u05d1\u05d2\u05d9
+currenciesDisplayName.ZAR=\u05e8\u05d0\u05e0\u05d3 \u05d3\u05e8\u05d5\u05dd \u05d0\u05e4\u05e8\u05d9\u05e7\u05d0\u05d9
+currenciesDisplayName.MUR=\u05e8\u05d5\u05e4\u05d9 \u05de\u05d0\u05d5\u05e8\u05d9\u05e6\u05d9\u05e0\u05d9
+currenciesDisplayName.SHP=\u05e4\u05d0\u05d5\u05e0\u05d3 \u05e1\u05e0\u05d8 \u05d4\u05dc\u05e0\u05d9
+currenciesDisplayName.XAU=\u05d6\u05d4\u05d1
+currenciesDisplayName.ZAL=\u05e8\u05d0\u05e0\u05d3 \u05d3\u05e8\u05d5\u05dd \u05d0\u05e4\u05e8\u05d9\u05e7\u05d0\u05d9 (\u05db\u05e1\u05e4\u05d9)
+currenciesDisplayName.VND=\u05d3\u05d5\u05e0\u05d2 \u05d5\u05d9\u05d9\u05d8\u05e0\u05d0\u05de\u05d9
+currenciesDisplayName.TZS=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05d8\u05e0\u05d6\u05e0\u05d9
+currenciesDisplayName.GIP=\u05e4\u05d0\u05d5\u05e0\u05d3 \u05d2\u05d9\u05d1\u05e8\u05dc\u05d8\u05e8
+currenciesDisplayName.TND=\u05d3\u05d9\u05e0\u05e8 \u05d8\u05d5\u05e0\u05d9\u05e1\u05d0\u05d9
+currenciesDisplayName.UGX=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05d0\u05d5\u05d2\u05e0\u05d3\u05d9
+currenciesDisplayName.XAG=\u05db\u05e1\u05e3
+currenciesDisplayName.ZMK=\u05e7\u05d5\u05d5\u05d0\u05e6'\u05d4
+currenciesDisplayName.JOD=\u05d3\u05d9\u05e0\u05e8 \u05d9\u05e8\u05d3\u05e0\u05d9
+currenciesDisplayName.XAF=\u05e4\u05e8\u05e0\u05e7
+currenciesDisplayName.LBP=\u05dc\u05d9\u05e8\u05d4 \u05dc\u05d1\u05e0\u05d5\u05e0\u05d9\u05ea
+currenciesDisplayName.UGS=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05d0\u05d5\u05d2\u05e0\u05d3\u05d9 (1966 - 1987)
+currenciesDisplayName.STD=\u05d3\u05d5\u05d1\u05e8\u05d4
+currenciesDisplayName.WST=\u05d8\u05dc\u05d4
+currenciesDisplayName.KHR=\u05e8\u05d9\u05dc
+currenciesDisplayName.DOP=\u05e4\u05d6\u05d5
+currenciesDisplayName.EUR=\u05d0\u05d9\u05e8\u05d5
+currenciesDisplayName.USS=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9 (\u05d4\u05d9\u05d5\u05dd \u05d4\u05d6\u05d4)
+currenciesDisplayName.BOP=\u05e4\u05d6\u05d5 \u05d1\u05d5\u05dc\u05d9\u05d1\u05d9
+currenciesDisplayName.CUP=\u05e4\u05d6\u05d5 \u05e7\u05d5\u05d1\u05e0\u05d9
+currenciesDisplayName.MTL=\u05dc\u05d9\u05e8\u05d4 \u05de\u05dc\u05d8\u05d9\u05ea
+currenciesDisplayName.TMM=\u05de\u05e0\u05d0\u05d8 \u05d8\u05d5\u05e8\u05e7\u05de\u05d0\u05e0\u05d9
+currenciesDisplayName.USN=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9 (\u05d4\u05d9\u05d5\u05dd \u05d4\u05d1\u05d0)
+currenciesDisplayName.SGD=\u05d3\u05d5\u05dc\u05e8 \u05e1\u05d9\u05e0\u05d2\u05e4\u05d5\u05e8\u05d9
+currenciesDisplayName.NZD=\u05d3\u05d5\u05dc\u05e8 \u05e0\u05d9\u05d5 \u05d6\u05d9\u05dc\u05e0\u05d3\u05d9
+currenciesDisplayName.USD=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9
+currenciesDisplayName.BOB=\u05d1\u05d5\u05dc\u05d9\u05d1\u05d9\u05d0\u05e0\u05d5
+currenciesDisplayName.HNL=\u05dc\u05de\u05e4\u05d9\u05e8\u05d4
+currenciesDisplayName.ITL=\u05dc\u05d9\u05e8\u05d4 \u05d0\u05d9\u05d8\u05dc\u05e7\u05d9\u05ea
+currenciesDisplayName.PAB=\u05d1\u05dc\u05d1\u05d5\u05d0\u05d4
+currenciesDisplayName.GTQ=\u05e7\u05e6\u05d0\u05dc
+currenciesDisplayName.XXX=\u05e1\u05d9\u05de\u05d5\u05df \"\u05dc\u05dc\u05d0 \u05de\u05d8\u05d1\u05e2\"
+currenciesDisplayName.AUD=\u05d3\u05d5\u05dc\u05e8 \u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9
+currenciesDisplayName.LAK=\u05e7\u05d9\u05e4
+currenciesDisplayName.NAD=\u05d3\u05d5\u05dc\u05e8 \u05e0\u05de\u05d9\u05d1\u05d9
+currenciesDisplayName.KGS=\u05e1\u05d5\u05dd \u05e7\u05d9\u05e8\u05d2\u05d9\u05d6\u05d9
+currenciesDisplayName.MGF=\u05e4\u05e8\u05e0\u05e7 \u05de\u05d3\u05d2\u05e1\u05e7\u05d0\u05e8\u05d9
+currenciesDisplayName.BBD=\u05d3\u05d5\u05dc\u05e8 \u05d1\u05e8\u05d1\u05d3\u05d9\u05d0\u05e0\u05d9
+currenciesDisplayName.CHF=\u05e4\u05e8\u05e0\u05e7 \u05e9\u05d5\u05d5\u05d9\u05e6\u05e8\u05d9
+currenciesDisplayName.PYG=\u05d2\u05d5\u05d5\u05d0\u05e8\u05e0\u05d9
+currenciesDisplayName.PLZ=\u05d6\u05dc\u05d5\u05d8\u05d9 (1950 - 1995)
+currenciesDisplayName.YER=\u05e8\u05d9\u05d0\u05dc \u05ea\u05d9\u05de\u05e0\u05d9
+currenciesDisplayName.ATS=\u05e9\u05d9\u05dc\u05d9\u05e0\u05d2 \u05d0\u05d5\u05e1\u05d8\u05e8\u05d9
+currenciesDisplayName.ETB=\u05d1\u05d9\u05e8
+currenciesDisplayName.BND=\u05d3\u05d5\u05dc\u05e8 \u05d1\u05e8\u05d5\u05e0\u05d9\u05d9
+currenciesDisplayName.EGP=\u05dc\u05d9\u05e8\u05d4 \u05de\u05e6\u05e8\u05d9\u05ea
+currenciesDisplayName.JMD=\u05d3\u05d5\u05dc\u05e8 \u05d2'\u05de\u05d0\u05d9\u05e7\u05e0\u05d9
+currenciesDisplayName.PLN=\u05d6\u05dc\u05d5\u05d8\u05d9 \u05e4\u05d5\u05dc\u05e0\u05d9
+currenciesDisplayName.DZD=\u05d3\u05d9\u05e0\u05e8 \u05d0\u05dc\u05d2'\u05d9\u05e8\u05d9
+currenciesDisplayName.ISK=\u05e7\u05e8\u05d5\u05e0\u05d4 \u05d0\u05d9\u05e1\u05dc\u05e0\u05d3\u05d9\u05ea
+currenciesDisplayName.SRG=\u05d2\u05d9\u05dc\u05d3\u05e8 \u05e1\u05d5\u05e8\u05d9\u05e0\u05d0\u05de\u05d9
+currenciesDisplayName.LYD=\u05d3\u05d9\u05e0\u05e8 \u05dc\u05d5\u05d1\u05d9
+currenciesDisplayName.SRD=\u05d3\u05d5\u05dc\u05e8 \u05e1\u05d5\u05e8\u05d9\u05e0\u05d0\u05de\u05d9
+currenciesDisplayName.BAM=\u05de\u05d0\u05e8\u05e7 \u05d1\u05e8 \u05d4\u05de\u05e8\u05d4
+currenciesDisplayName.BZD=\u05d3\u05d5\u05dc\u05e8 \u05d1\u05dc\u05d9\u05d6\u05d0\u05d9
+currenciesDisplayName.ESP=\u05e4\u05e1\u05d8\u05d4 \u05e1\u05e4\u05e8\u05d3\u05d9
+currenciesDisplayName.KRW=\u05d5\u05d5\u05df \u05d3\u05e8\u05d5\u05dd \u05e7\u05d5\u05e8\u05d0\u05e0\u05d9
+currenciesDisplayName.NLG=\u05d2\u05d9\u05dc\u05d3\u05e8
+currenciesDisplayName.BAD=\u05d3\u05d9\u05e0\u05e8 \u05e9\u05dc \u05d1\u05d5\u05e1\u05e0\u05d9\u05d4-\u05d4\u05e8\u05e6\u05d2\u05d5\u05d1\u05d9\u05e0\u05d4
+currenciesDisplayName.ZWD=\u05d3\u05d5\u05dc\u05e8 \u05d6\u05d9\u05de\u05d1\u05d1\u05d5\u05d0\u05d9
+currenciesDisplayName.SEK=\u05db\u05ea\u05e8 \u05e9\u05d5\u05d5\u05d3\u05d9
+currenciesDisplayName.CSK=\u05e7\u05d5\u05e8\u05d5\u05e0\u05d4 \u05e6'\u05db\u05d9\u05ea [1953-1992]
+currenciesDisplayName.ESB=\u05e4\u05d6\u05d8\u05d4 [ESB]
+currenciesDisplayName.IRR=\u05e8\u05d9\u05d0\u05dc \u05d0\u05d9\u05e8\u05d0\u05e0\u05d9
+currenciesDisplayName.ESA=\u05e4\u05d6\u05d8\u05d4 [ESA]
+currenciesDisplayName.PKR=\u05e8\u05d5\u05e4\u05d9 \u05e4\u05e7\u05d9\u05e1\u05d8\u05e0\u05d9
+currenciesDisplayName.BMD=\u05d3\u05d5\u05dc\u05e8 \u05d1\u05e8\u05de\u05d5\u05d3\u05d4
+currenciesDisplayName.CSD=\u05d3\u05d9\u05e0\u05e8 \u05e1\u05e8\u05d1\u05d9 \u05d9\u05e9\u05df
currenciesSymbol.ILS=\u20aa
-shortMonths=\u05d9\u05e0\u05d5®\u05e4\u05d1\u05e8®\u05de\u05e8\u05e5®\u05d0\u05e4\u05e8®\u05de\u05d0\u05d9®\u05d9\u05d5\u05e0®\u05d9\u05d5\u05dc®\u05d0\u05d5\u05d2®\u05e1\u05e4\u05d8®\u05d0\u05d5\u05e7®\u05e0\u05d5\u05d1®\u05d3\u05e6\u05de®®
-months=\u05d9\u05e0\u05d5\u05d0\u05e8®\u05e4\u05d1\u05e8\u05d5\u05d0\u05e8®\u05de\u05e8\u05e5®\u05d0\u05e4\u05e8\u05d9\u05dc®\u05de\u05d0\u05d9®\u05d9\u05d5\u05e0\u05d9®\u05d9\u05d5\u05dc\u05d9®\u05d0\u05d5\u05d2\u05d5\u05e1\u05d8®\u05e1\u05e4\u05d8\u05de\u05d1\u05e8®\u05d0\u05d5\u05e7\u05d8\u05d5\u05d1\u05e8®\u05e0\u05d5\u05d1\u05de\u05d1\u05e8®\u05d3\u05e6\u05de\u05d1\u05e8®®
-shortWeekdays=®\u05d0®\u05d1®\u05d2®\u05d3®\u05d4®\u05d5®\u05e9®
-weekdays=®\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df®\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9®\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9®\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9®\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9®\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9\u05d9®\u05e9\u05d1\u05ea®
-eras=\u05dc\u05e4\u05e0\u05d4\u05f4\u05e1®\u05dc\u05e1\u05d4\u05f4\u05e0®
+currenciesSymbol.ILP=\u05dc\u05f4\u05d9
+shortMonths=\u00ae\u00ae\u05de\u05e8\u05e1\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u00ae\u00ae\u05de\u05e8\u05e1\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00ae\u05d0\u00ae\u05d1\u00ae\u05d2\u00ae\u05d3\u00ae\u05d4\u00ae\u05d5\u00ae\u05e9\u00ae
+weekdays=\u00ae\u05d9\u05d5\u05dd \u05e8\u05d0\u05e9\u05d5\u05df\u00ae\u05d9\u05d5\u05dd \u05e9\u05e0\u05d9\u00ae\u05d9\u05d5\u05dd \u05e9\u05dc\u05d9\u05e9\u05d9\u00ae\u05d9\u05d5\u05dd \u05e8\u05d1\u05d9\u05e2\u05d9\u00ae\u05d9\u05d5\u05dd \u05d7\u05de\u05d9\u05e9\u05d9\u00ae\u05d9\u05d5\u05dd \u05e9\u05d9\u05e9\u05d9\u00ae\u05e9\u05d1\u05ea\u00ae
+eras=\u05dc\u05e4\u05e0\u05d4\u05f4\u05e1\u00ae\u05dc\u05e1\u05d4\u05f4\u05e0\u00ae
+ampms=\u05dc\u05e4\u05e0\u05d4\"\u05e6\u00ae\u05d0\u05d7\u05d4\"\u05e6\u00ae
shortDateFormat=dd/MM/yy
mediumDateFormat=dd/MM/yyyy
-longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE d MMMM yyyy
-territories.TL=\u05d8\u05d9\u05de\u05d5\u05e8 \u05d4\u05de\u05d6\u05e8\u05d7\u05d9\u05ea
+longDateFormat=d \u05d1MMMM yyyy
+fullDateFormat=EEEE, d \u05d1MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Israel\u00ae\u00aeIST\u00ae\u00ae\u00ae\u00a9India\u00ae\u00aeIST (\u05d4\u05d5\u05d3\u05d5)\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u05de\u05d6\u05e8\u05d7 \u05d8\u05d9\u05de\u05d5\u05e8
territories.TK=\u05d8\u05d5\u05e7\u05dc\u05d0\u05d5
-territories.TJ=\u05d8\u05d2\u05f3\u05d9\u05e7\u05d9\u05e1\u05d8\u05d0\u05df
-territories.TH=\u05ea\u05d0\u05d9\u05d9\u05dc\u05e0\u05d3
+territories.TJ=\u05d8\u05d2\u05f3\u05d9\u05e7\u05d9\u05e1\u05d8\u05df
+territories.TH=\u05ea\u05d0\u05d9\u05dc\u05e0\u05d3
territories.TG=\u05d8\u05d5\u05d2\u05d5
territories.TF=\u05d8\u05e8\u05d9\u05d8\u05d5\u05e8\u05d9\u05d5\u05ea \u05d3\u05e8\u05d5\u05de\u05d9\u05d5\u05ea \u05e9\u05dc \u05e6\u05e8\u05e4\u05ea
territories.GY=\u05d2\u05d9\u05d0\u05e0\u05d4
territories.TD=\u05e6\u05f3\u05d0\u05d3
-territories.TC=\u05d8\u05e8\u05e7\u05e1 \u05d5\u05e7\u05d9\u05d9\u05e7\u05d5\u05e1, \u05d0\u05d9\u05d9
+territories.TC=\u05d0\u05d9\u05d9 \u05d8\u05d5\u05e8\u05e7\u05e1 \u05d5\u05e7\u05d0\u05d9\u05e7\u05d5\u05e1
territories.GW=\u05d2\u05d9\u05e0\u05d9\u05d0\u05d4-\u05d1\u05d9\u05e1\u05d0\u05d5
territories.GU=\u05d2\u05d5\u05d0\u05dd
territories.GT=\u05d2\u05d5\u05d5\u05d0\u05d8\u05de\u05d0\u05dc\u05d4
@@ -46,81 +266,86 @@ territories.SZ=\u05e1\u05d5\u05d5\u05d0\u05d6\u05d9\u05dc\u05e0\u05d3
territories.SY=\u05e1\u05d5\u05e8\u05d9\u05d4
territories.GN=\u05d2\u05d9\u05e0\u05d9\u05d0\u05d4
territories.GM=\u05d2\u05de\u05d1\u05d9\u05d4
-territories.GL=\u05d2\u05e8\u05e0\u05dc\u05e0\u05d3
-territories.SV=\u05d0\u05dc \u05e1\u05dc\u05d5\u05d5\u05d0\u05d3\u05d5\u05e8
-territories.062=\u05d3\u05e8\u05d5\u05dd-\u05de\u05e8\u05db\u05d6 \u05d0\u05e1\u05d9\u05d4
+territories.GL=\u05d2\u05e8\u05d9\u05e0\u05dc\u05e0\u05d3
+territories.SV=\u05d0\u05dc \u05e1\u05dc\u05d1\u05d0\u05d3\u05d5\u05e8
+territories.062=\u05d3\u05e8\u05d5\u05dd\u05be\u05de\u05e8\u05db\u05d6 \u05d0\u05e1\u05d9\u05d4
territories.ST=\u05e1\u05d0\u05d5 \u05d8\u05d5\u05de\u05d4 \u05d5\u05e4\u05e8\u05d9\u05e0\u05e1\u05d9\u05e4\u05d4
-territories.061=\u05e4\u05d5\u05dc\u05d9\u05e0\u05d6\u05d9\u05d4
territories.GI=\u05d2\u05d9\u05d1\u05e8\u05dc\u05d8\u05e8
+territories.061=\u05e4\u05d5\u05dc\u05d9\u05e0\u05d6\u05d9\u05d4
territories.GH=\u05d2\u05d0\u05e0\u05d4
territories.SR=\u05e1\u05d5\u05e8\u05d9\u05e0\u05d0\u05dd
+territories.GG=\u05d2\u05e8\u05e0\u05e1\u05d9
territories.GF=\u05d2\u05d9\u05d0\u05e0\u05d4 \u05d4\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea
-territories.GE=\u05d2\u05e8\u05d5\u05d6\u05d9\u05d4
-territories.SO=\u05e1\u05d5\u05de\u05d0\u05dc\u05d9\u05d4
-territories.GD=\u05d2\u05e8\u05e0\u05d0\u05d3\u05d4
-territories.SN=\u05e1\u05e0\u05d2\u05d0\u05dc
-territories.SM=\u05e1\u05d0\u05df \u05de\u05d0\u05e8\u05d9\u05e0\u05d5
+territories.GE=\u05d2\u05d0\u05d5\u05e8\u05d2\u05d9\u05d4
+territories.SO=\u05e1\u05d5\u05de\u05dc\u05d9\u05d4
+territories.GD=\u05d2\u05e8\u05e0\u05d3\u05d4
+territories.SN=\u05e1\u05e0\u05d2\u05dc
+territories.SM=\u05e1\u05df \u05de\u05e8\u05d9\u05e0\u05d5
territories.GB=\u05d1\u05e8\u05d9\u05d8\u05e0\u05d9\u05d4
territories.SL=\u05e1\u05d9\u05d9\u05e8\u05d4 \u05dc\u05d0\u05d5\u05e0\u05d4
territories.GA=\u05d2\u05d0\u05d1\u05d5\u05df
territories.SK=\u05e1\u05dc\u05d5\u05d1\u05e7\u05d9\u05d4
-territories.SJ=\u05e1\u05d5\u05d5\u05d0\u05dc\u05d1\u05e8\u05d3 \u05d5\u05d9\u05d0\u05df \u05de\u05d0\u05d9\u05d9\u05df
+territories.SJ=\u05e1\u05d5\u05d5\u05dc\u05d1\u05d0\u05e8\u05d3 \u05d5\u05d6\u05f3\u05d0\u05df \u05de\u05d0\u05d9\u05d9\u05df
territories.SI=\u05e1\u05dc\u05d5\u05d1\u05e0\u05d9\u05d4
territories.SH=\u05e1\u05e0\u05d8 \u05d4\u05dc\u05e0\u05d4
territories.SG=\u05e1\u05d9\u05e0\u05d2\u05e4\u05d5\u05e8
territories.SE=\u05e9\u05d5\u05d5\u05d3\u05d9\u05d4
territories.SD=\u05e1\u05d5\u05d3\u05d0\u05df
-territories.SC=\u05e1\u05d9\u05d9\u05e9\u05dc
-territories.SB=\u05e9\u05dc\u05de\u05d4, \u05d0\u05d9\u05d9
+territories.SC=\u05d0\u05d9\u05d9 \u05e1\u05d9\u05d9\u05e9\u05dc
+territories.SB=\u05d0\u05d9\u05d9 \u05e9\u05dc\u05de\u05d4
territories.SA=\u05e2\u05e8\u05d1 \u05d4\u05e1\u05e2\u05d5\u05d3\u05d9\u05ea
territories.FR=\u05e6\u05e8\u05e4\u05ea
-territories.057=\u05de\u05e7\u05e8\u05d5\u05e0\u05d6\u05d9\u05d4
-territories.FO=\u05e4\u05e8\u05d5\u05d0\u05e8, \u05d0\u05d9\u05d9
+territories.FO=\u05d0\u05d9\u05d9 \u05e4\u05d0\u05e8\u05d5
+territories.057=\u05d4\u05d0\u05d9\u05d6\u05d5\u05e8 \u05d4\u05de\u05d9\u05e7\u05e8\u05d5\u05e0\u05d6\u05d9
territories.FM=\u05de\u05d9\u05e7\u05e8\u05d5\u05e0\u05d6\u05d9\u05d4
territories.RW=\u05e8\u05d5\u05d0\u05e0\u05d3\u05d4
territories.054=\u05de\u05dc\u05e0\u05e1\u05d9\u05d4
-territories.053=\u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05d4 \u05d5\u05e0\u05d9\u05d5-\u05d6\u05d9\u05dc\u05e0\u05d3
-territories.FK=\u05e4\u05d5\u05e7\u05dc\u05e0\u05d3, \u05d0\u05d9\u05d9
-territories.RU=\u05e8\u05d5\u05e1\u05d9\u05d4, \u05d4\u05e4\u05d3\u05e8\u05e6\u05d9\u05d4 \u05e9\u05dc
+territories.FK=\u05d0\u05d9\u05d9 \u05e4\u05d5\u05e7\u05dc\u05e0\u05d3
+territories.053=\u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05d4 \u05d5\u05e0\u05d9\u05d5\u05be\u05d6\u05d9\u05dc\u05e0\u05d3
+territories.RU=\u05e8\u05d5\u05e1\u05d9\u05d4
territories.FJ=\u05e4\u05d9\u05d2\u05f3\u05d9
territories.FI=\u05e4\u05d9\u05e0\u05dc\u05e0\u05d3
+territories.RS=\u05e1\u05e8\u05d1\u05d9\u05d4
territories.RO=\u05e8\u05d5\u05de\u05e0\u05d9\u05d4
territories.RE=\u05e8\u05d0\u05d5\u05e0\u05d9\u05d5\u05df
territories.ET=\u05d0\u05ea\u05d9\u05d5\u05e4\u05d9\u05d4
territories.ES=\u05e1\u05e4\u05e8\u05d3
territories.ER=\u05d0\u05e8\u05d9\u05d8\u05e8\u05d0\u05d4
+territories.QU=\u05d4\u05d0\u05d9\u05d7\u05d5\u05d3 \u05d4\u05d0\u05d9\u05e8\u05d5\u05e4\u05d9
territories.EH=\u05e1\u05d4\u05e8\u05d4 \u05d4\u05de\u05e2\u05e8\u05d1\u05d9\u05ea
territories.EG=\u05de\u05e6\u05e8\u05d9\u05dd
-territories.830=\u05d0\u05d9\u05d9 \u05e7\u05e0\u05dc
territories.EE=\u05d0\u05e1\u05d8\u05d5\u05e0\u05d9\u05d4
+territories.830=\u05d0\u05d9\u05d9 \u05d4\u05ea\u05e2\u05dc\u05d4
+territories.QO=QO
territories.EC=\u05d0\u05e7\u05d5\u05d5\u05d0\u05d3\u05d5\u05e8
territories.DZ=\u05d0\u05dc\u05d2\u05f3\u05d9\u05e8\u05d9\u05d4
territories.QA=\u05e7\u05d0\u05d8\u05d0\u05e8
territories.039=\u05d3\u05e8\u05d5\u05dd \u05d0\u05d9\u05e8\u05d5\u05e4\u05d4
territories.DO=\u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05d4\u05d3\u05d5\u05de\u05d9\u05e0\u05d9\u05e7\u05e0\u05d9\u05ea
territories.PY=\u05e4\u05e8\u05d2\u05d5\u05d5\u05d0\u05d9
-territories.035=\u05d3\u05e8\u05d5\u05dd-\u05de\u05d6\u05e8\u05d7 \u05d0\u05e1\u05d9\u05d4
territories.DM=\u05d3\u05d5\u05de\u05d9\u05e0\u05d9\u05e7\u05d4
+territories.035=\u05d3\u05e8\u05d5\u05dd\u05be\u05de\u05d6\u05e8\u05d7 \u05d0\u05e1\u05d9\u05d4
territories.PW=\u05e4\u05d0\u05dc\u05d0\u05d5
+territories.034=\u05d3\u05e8\u05d5\u05dd \u05d0\u05e1\u05d9\u05d4
territories.DK=\u05d3\u05e0\u05de\u05e8\u05e7
territories.DJ=\u05d2\u05f3\u05d9\u05d1\u05d5\u05d8\u05d9
territories.PT=\u05e4\u05d5\u05e8\u05d8\u05d5\u05d2\u05dc
-territories.PS=\u05d4\u05e8\u05e9\u05d5\u05ea \u05d4\u05e4\u05dc\u05e9\u05ea\u05d9\u05e0\u05d9\u05ea
+territories.PS=\u05e9\u05d8\u05d7\u05d9 \u05d4\u05e8\u05e9\u05d5\u05ea \u05d4\u05e4\u05dc\u05e9\u05ea\u05d9\u05e0\u05d9\u05ea
territories.030=\u05de\u05d6\u05e8\u05d7 \u05d0\u05e1\u05d9\u05d4
-territories.PR=\u05e4\u05d5\u05d0\u05e8\u05d8\u05d5 \u05e8\u05d9\u05e7\u05d5
+territories.PR=\u05e4\u05d5\u05e8\u05d8\u05d5 \u05e8\u05d9\u05e7\u05d5
territories.DE=\u05d2\u05e8\u05de\u05e0\u05d9\u05d4
territories.PN=\u05e4\u05d9\u05d8\u05e7\u05e8\u05df
territories.PM=\u05e1\u05e0\u05d8 \u05e4\u05d9\u05d9\u05e8 \u05d5\u05de\u05d9\u05e7\u05dc\u05d5\u05df
territories.PL=\u05e4\u05d5\u05dc\u05d9\u05df
-territories.PK=\u05e4\u05e7\u05d9\u05e1\u05d8\u05d0\u05df
+territories.PK=\u05e4\u05e7\u05d9\u05e1\u05d8\u05df
territories.PH=\u05e4\u05d9\u05dc\u05d9\u05e4\u05d9\u05e0\u05d9\u05dd
-territories.PG=\u05e4\u05d0\u05e4\u05d5\u05d0\u05d4 \u05e0\u05d9\u05d5-\u05d2\u05d9\u05e0\u05d9\u05d0\u05d4
+territories.PG=\u05e4\u05e4\u05d5\u05d0\u05d4 \u05d2\u05d9\u05e0\u05d9\u05d0\u05d4 \u05d4\u05d7\u05d3\u05e9\u05d4
territories.PF=\u05e4\u05d5\u05dc\u05d9\u05e0\u05d6\u05d9\u05d4 \u05d4\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea
-territories.CZ=\u05e6\u05f3\u05db\u05d9\u05d4, \u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05e9\u05dc
+territories.CZ=\u05e6\u05f3\u05db\u05d9\u05d4
territories.PE=\u05e4\u05e8\u05d5
territories.CY=\u05e7\u05e4\u05e8\u05d9\u05e1\u05d9\u05df
-territories.CX=\u05e7\u05e8\u05d9\u05e1\u05de\u05e1, \u05d0\u05d9
-territories.CV=\u05e7\u05d0\u05e4 \u05d5\u05e8\u05d3\u05d4
+territories.CX=\u05d0\u05d9\u05d9 \u05db\u05e8\u05d9\u05e1\u05d8\u05de\u05e1
+territories.CV=\u05e7\u05d9\u05d9\u05e4 \u05d5\u05e8\u05d3\u05d4
territories.PA=\u05e4\u05e0\u05de\u05d4
territories.CU=\u05e7\u05d5\u05d1\u05d4
territories.CS=\u05e1\u05e8\u05d1\u05d9\u05d4 \u05d5\u05de\u05d5\u05e0\u05d8\u05e0\u05d2\u05e8\u05d5
@@ -128,45 +353,49 @@ territories.CR=\u05e7\u05d5\u05e1\u05d8\u05d4 \u05e8\u05d9\u05e7\u05d4
territories.029=\u05e7\u05e8\u05d9\u05d1\u05d9\u05d9\u05dd
territories.CO=\u05e7\u05d5\u05dc\u05d5\u05de\u05d1\u05d9\u05d4
territories.CN=\u05e1\u05d9\u05df
-territories.CM=\u05e7\u05d0\u05de\u05e8\u05d5\u05df
+territories.CM=\u05e7\u05de\u05e8\u05d5\u05df
territories.CL=\u05e6\u05f3\u05d9\u05dc\u05d4
-territories.CK=\u05e7\u05d5\u05e7, \u05d0\u05d9\u05d9
+territories.CK=\u05d0\u05d9\u05d9 \u05e7\u05d5\u05e7
+territories.021=\u05d0\u05de\u05e8\u05d9\u05e7\u05d4 \u05d4\u05e6\u05e4\u05d5\u05e0\u05d9\u05ea
territories.CI=\u05d7\u05d5\u05e3 \u05d4\u05e9\u05e0\u05d4\u05d1
-territories.021=\u05e6\u05e4\u05d5\u05df \u05d0\u05de\u05e8\u05d9\u05e7\u05d4
territories.CH=\u05e9\u05d5\u05d5\u05d9\u05d9\u05e5
territories.CG=\u05e7\u05d5\u05e0\u05d2\u05d5
-territories.CF=\u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05e9\u05dc \u05de\u05e8\u05db\u05d6 \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
-territories.CD=\u05e7\u05d5\u05e0\u05d2\u05d5, \u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05d4\u05d3\u05de\u05d5\u05e7\u05e8\u05d8\u05d9\u05ea \u05e9\u05dc
-territories.CC=\u05e7\u05d5\u05e7\u05d5\u05e1, \u05d0\u05d9\u05d9
+territories.CF=\u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05d4\u05de\u05e8\u05db\u05d6\u05be\u05d0\u05e4\u05e8\u05d9\u05e7\u05d0\u05d9\u05ea
+territories.CD=\u05d4\u05e8\u05e4\u05d5\u05d1\u05dc\u05d9\u05e7\u05d4 \u05d4\u05d3\u05de\u05d5\u05e7\u05e8\u05d8\u05d9\u05ea \u05e9\u05dc \u05e7\u05d5\u05e0\u05d2\u05d5
+territories.CC=\u05d0\u05d9\u05d9 \u05e7\u05d5\u05e7\u05d5\u05e1
territories.OM=\u05e2\u05d5\u05de\u05d0\u05df
territories.CA=\u05e7\u05e0\u05d3\u05d4
+territories.419=\u05d0\u05de\u05e8\u05d9\u05e7\u05d4 \u05d4\u05dc\u05d8\u05d9\u05e0\u05d9\u05ea \u05d5\u05d4\u05e7\u05e8\u05d9\u05d1\u05d9\u05d9\u05dd
territories.BZ=\u05d1\u05dc\u05d9\u05d6
-territories.BY=\u05d1\u05dc\u05d0\u05e8\u05d5\u05e1
-territories.BW=\u05d1\u05d5\u05e6\u05d5\u05d5\u05d0\u05e0\u05d4
-territories.BV=\u05d1\u05d5\u05d1\u05d4, \u05d0\u05d9
-territories.BT=\u05d1\u05d4\u05d5\u05d8\u05d0\u05df
-territories.BS=\u05d1\u05d0\u05d4\u05d0\u05de\u05d4, \u05d0\u05d9\u05d9
+territories.BY=\u05d1\u05dc\u05e8\u05d5\u05e1
+territories.BW=\u05d1\u05d5\u05d8\u05e1\u05d5\u05d5\u05d0\u05e0\u05d4
+territories.BV=\u05d0\u05d9\u05d9 \u05d1\u05d5\u05d1\u05d4
+territories.BT=\u05d1\u05d4\u05d5\u05d8\u05df
+territories.BS=\u05d0\u05d9\u05d9 \u05d1\u05d4\u05d0\u05de\u05d4
territories.BR=\u05d1\u05e8\u05d6\u05d9\u05dc
territories.019=\u05d0\u05de\u05e8\u05d9\u05e7\u05d5\u05ea
-territories.018=\u05d3\u05e8\u05d5\u05dd \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
+territories.018=\u05d3\u05e8\u05d5\u05dd \u05d9\u05d1\u05e9\u05ea \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
territories.NZ=\u05e0\u05d9\u05d5 \u05d6\u05d9\u05dc\u05e0\u05d3
-territories.BO=\u05d1\u05d5\u05dc\u05d9\u05d1\u05d9\u05d4
territories.017=\u05de\u05e8\u05db\u05d6 \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
-territories.BN=\u05d1\u05e8\u05d5\u05e0\u05d9\u05d9 \u05d3\u05d0\u05e8\u05d5\u05e1\u05d0\u05dc\u05d0\u05dd
-territories.BM=\u05d1\u05e8\u05de\u05d5\u05d3\u05d4
+territories.BO=\u05d1\u05d5\u05dc\u05d9\u05d1\u05d9\u05d4
+territories.BN=\u05d1\u05e8\u05d5\u05e0\u05d9\u05d9
territories.015=\u05e6\u05e4\u05d5\u05df \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
+territories.BM=\u05d1\u05e8\u05de\u05d5\u05d3\u05d4
territories.014=\u05de\u05d6\u05e8\u05d7 \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
+territories.BL=\u05e1\u05e0\u05d8 \u05d1\u05e8\u05ea\u05d5\u05dc\u05d5\u05de\u05d9\u05d0\u05d5
territories.013=\u05de\u05e8\u05db\u05d6 \u05d0\u05de\u05e8\u05d9\u05e7\u05d4
-territories.NU=\u05e0\u05d9\u05d0\u05d5
+territories.NU=\u05e0\u05d9\u05d5\u05d5\u05d4
territories.BJ=\u05d1\u05e0\u05d9\u05df
-territories.BI=\u05d1\u05d5\u05e8\u05d5\u05e0\u05d3\u05d9
territories.011=\u05de\u05e2\u05e8\u05d1 \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
-territories.BH=\u05d1\u05d7\u05e8\u05d9\u05df
+territories.BI=\u05d1\u05d5\u05e8\u05d5\u05e0\u05d3\u05d9
+territories.172=\u05d7\u05d1\u05e8 \u05d4\u05de\u05d3\u05d9\u05e0\u05d5\u05ea \u05d4\u05e2\u05e6\u05de\u05d0\u05d9\u05d5\u05ea
+territories.BH=\u05d1\u05d7\u05e8\u05d9\u05d9\u05df
territories.NR=\u05e0\u05d0\u05d5\u05e8\u05d5
territories.BG=\u05d1\u05d5\u05dc\u05d2\u05e8\u05d9\u05d4
territories.BF=\u05d1\u05d5\u05e8\u05e7\u05d9\u05e0\u05d4 \u05e4\u05d0\u05e1\u05d5
territories.NP=\u05e0\u05e4\u05d0\u05dc
territories.BE=\u05d1\u05dc\u05d2\u05d9\u05d4
+territories.ZZ=\u05d0\u05d9\u05d6\u05d5\u05e8 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2 \u05d0\u05d5 \u05dc\u05d0 \u05ea\u05e7\u05e3
territories.NO=\u05e0\u05d5\u05e8\u05d5\u05d5\u05d2\u05d9\u05d4
territories.BD=\u05d1\u05e0\u05d2\u05dc\u05d0\u05d3\u05e9
territories.BB=\u05d1\u05e8\u05d1\u05d3\u05d5\u05e1
@@ -175,54 +404,57 @@ territories.NL=\u05d4\u05d5\u05dc\u05e0\u05d3
territories.BA=\u05d1\u05d5\u05e1\u05e0\u05d9\u05d4 \u05d5\u05d4\u05e8\u05e6\u05d2\u05d5\u05d1\u05d9\u05e0\u05d4
territories.NI=\u05e0\u05d9\u05e7\u05d0\u05e8\u05d0\u05d2\u05d5\u05d0\u05d4
territories.NG=\u05e0\u05d9\u05d2\u05e8\u05d9\u05d4
-territories.NF=\u05e0\u05d5\u05e8\u05e4\u05d5\u05e7, \u05d0\u05d9\u05d9
+territories.NF=\u05d0\u05d9\u05d9 \u05e0\u05d5\u05e8\u05e4\u05d5\u05e7
territories.AZ=\u05d0\u05d6\u05e8\u05d1\u05d9\u05d9\u05d2\u05f3\u05d0\u05df
territories.NE=\u05e0\u05d9\u05d6\u05f3\u05e8
territories.AX=\u05d0\u05d9\u05d9 \u05d0\u05dc\u05e0\u05d3
territories.NC=\u05e7\u05dc\u05d3\u05d5\u05e0\u05d9\u05d4 \u05d4\u05d7\u05d3\u05e9\u05d4
territories.AW=\u05d0\u05e8\u05d5\u05d1\u05d4
territories.ZM=\u05d6\u05de\u05d1\u05d9\u05d4
-territories.NA=\u05e0\u05d0\u05de\u05d9\u05d1\u05d9\u05d4
+territories.NA=\u05e0\u05de\u05d9\u05d1\u05d9\u05d4
territories.AU=\u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05d4
territories.AT=\u05d0\u05d5\u05e1\u05d8\u05e8\u05d9\u05d4
territories.AS=\u05e1\u05de\u05d5\u05d0\u05d4 \u05d4\u05d0\u05de\u05e8\u05d9\u05e7\u05e0\u05d9\u05ea
territories.AR=\u05d0\u05e8\u05d2\u05e0\u05d8\u05d9\u05e0\u05d4
-territories.009=\u05d0\u05d5\u05e7\u05d9\u05e0\u05d9\u05d4
territories.AQ=\u05d0\u05e0\u05d8\u05d0\u05e8\u05e7\u05d8\u05d9\u05e7\u05d4
+territories.009=\u05d0\u05d5\u05e7\u05d9\u05d0\u05e0\u05d9\u05d4
territories.MZ=\u05de\u05d5\u05d6\u05de\u05d1\u05d9\u05e7
territories.AO=\u05d0\u05e0\u05d2\u05d5\u05dc\u05d4
territories.MY=\u05de\u05dc\u05d6\u05d9\u05d4
territories.AN=\u05d0\u05e0\u05d8\u05d9\u05dc\u05d9\u05dd \u05d4\u05d5\u05dc\u05e0\u05d3\u05d9\u05d9\u05dd
territories.MX=\u05de\u05e7\u05e1\u05d9\u05e7\u05d5
-territories.005=\u05d3\u05e8\u05d5\u05dd \u05d0\u05de\u05e8\u05d9\u05e7\u05d4
territories.AM=\u05d0\u05e8\u05de\u05e0\u05d9\u05d4
+territories.005=\u05d3\u05e8\u05d5\u05dd \u05d0\u05de\u05e8\u05d9\u05e7\u05d4
territories.MW=\u05de\u05dc\u05d0\u05d5\u05d5\u05d9
territories.AL=\u05d0\u05dc\u05d1\u05e0\u05d9\u05d4
territories.MV=\u05de\u05dc\u05d3\u05d9\u05d1\u05d9\u05dd
+territories.003=\u05e6\u05e4\u05d5\u05df \u05d0\u05de\u05e8\u05d9\u05e7\u05d4
territories.ZA=\u05d3\u05e8\u05d5\u05dd \u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
territories.MU=\u05de\u05d0\u05d5\u05e8\u05d9\u05e6\u05d9\u05d5\u05e1
territories.002=\u05d0\u05e4\u05e8\u05d9\u05e7\u05d4
territories.MT=\u05de\u05dc\u05d8\u05d4
-territories.001=\u05e2\u05d5\u05dc\u05dd
territories.AI=\u05d0\u05e0\u05d2\u05d5\u05d5\u05d9\u05dc\u05d4
-territories.MS=\u05de\u05d5\u05e0\u05e1\u05e8\u05d0\u05d8
+territories.001=\u05d4\u05e2\u05d5\u05dc\u05dd
+territories.MS=\u05de\u05d5\u05e0\u05d8\u05e1\u05e8\u05d0\u05d8
territories.MR=\u05de\u05d0\u05d5\u05e8\u05d9\u05d8\u05e0\u05d9\u05d4
territories.AG=\u05d0\u05e0\u05d8\u05d9\u05d2\u05d5\u05d0\u05d4 \u05d5\u05d1\u05e8\u05d1\u05d5\u05d3\u05d4
territories.MQ=\u05de\u05e8\u05d8\u05d9\u05e0\u05d9\u05e7
-territories.AF=\u05d0\u05e4\u05d2\u05e0\u05d9\u05e1\u05d8\u05d0\u05df
-territories.MP=\u05de\u05e8\u05d9\u05d0\u05e0\u05d4 \u05d4\u05e6\u05e4\u05d5\u05e0\u05d9\u05d9\u05dd, \u05d0\u05d9\u05d9
-territories.AE=\u05d1\u05e8\u05d9\u05ea \u05d4\u05d0\u05de\u05d9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d4\u05e2\u05e8\u05d1\u05d9\u05d5\u05ea
-territories.MO=\u05de\u05e7\u05d0\u05d5 S.A.R.\u200e \u05e9\u05dc \u05e1\u05d9\u05df
+territories.AF=\u05d0\u05e4\u05d2\u05e0\u05d9\u05e1\u05d8\u05df
+territories.MP=\u05d0\u05d9\u05d9 \u05de\u05e8\u05d9\u05d0\u05e0\u05d4 \u05d4\u05e6\u05e4\u05d5\u05e0\u05d9\u05d9\u05dd
+territories.AE=\u05d0\u05d9\u05d7\u05d5\u05d3 \u05d4\u05d0\u05de\u05d9\u05e8\u05d5\u05d9\u05d5\u05ea \u05d4\u05e2\u05e8\u05d1\u05d9\u05d5\u05ea
+territories.MO=\u05de\u05e7\u05d0\u05d5
territories.AD=\u05d0\u05e0\u05d3\u05d5\u05e8\u05d4
territories.MN=\u05de\u05d5\u05e0\u05d2\u05d5\u05dc\u05d9\u05d4
territories.MM=\u05de\u05d9\u05d9\u05d0\u05e0\u05de\u05d0\u05e8
territories.ML=\u05de\u05d0\u05dc\u05d9
territories.MK=\u05de\u05e7\u05d3\u05d5\u05e0\u05d9\u05d4
territories.YT=\u05de\u05d0\u05d9\u05d5\u05d8
-territories.MH=\u05de\u05e8\u05e9\u05dc, \u05d0\u05d9\u05d9
+territories.MH=\u05d0\u05d9\u05d9 \u05de\u05e8\u05e9\u05dc
territories.MG=\u05de\u05d3\u05d2\u05e1\u05e7\u05e8
+territories.MF=\u05e1\u05e0\u05d8 \u05de\u05e8\u05d8\u05d9\u05df
+territories.ME=\u05de\u05d5\u05e0\u05d8\u05e0\u05d2\u05e8\u05d5
territories.MD=\u05de\u05d5\u05dc\u05d3\u05d5\u05d1\u05d4
-territories.MC=\u05de\u05d5\u05e0\u05d0\u05e7\u05d5
+territories.MC=\u05de\u05d5\u05e0\u05e7\u05d5
territories.MA=\u05de\u05e8\u05d5\u05e7\u05d5
territories.YE=\u05ea\u05d9\u05de\u05df
territories.LY=\u05dc\u05d5\u05d1
@@ -231,7 +463,7 @@ territories.155=\u05de\u05e2\u05e8\u05d1 \u05d0\u05d9\u05e8\u05d5\u05e4\u05d4
territories.LU=\u05dc\u05d5\u05e7\u05e1\u05de\u05d1\u05d5\u05e8\u05d2
territories.154=\u05e6\u05e4\u05d5\u05df \u05d0\u05d9\u05e8\u05d5\u05e4\u05d4
territories.LT=\u05dc\u05d9\u05d8\u05d0
-territories.LS=\u05dc\u05e1\u05d5\u05ea\u05d5
+territories.LS=\u05dc\u05e1\u05d5\u05d8\u05d5
territories.LR=\u05dc\u05d9\u05d1\u05e8\u05d9\u05d4
territories.151=\u05de\u05d6\u05e8\u05d7 \u05d0\u05d9\u05e8\u05d5\u05e4\u05d4
territories.150=\u05d0\u05d9\u05e8\u05d5\u05e4\u05d4
@@ -240,44 +472,47 @@ territories.LI=\u05dc\u05d9\u05db\u05d8\u05e0\u05e9\u05d8\u05d9\u05d9\u05df
territories.LC=\u05e1\u05e0\u05d8 \u05dc\u05d5\u05e1\u05d9\u05d4
territories.LB=\u05dc\u05d1\u05e0\u05d5\u05df
territories.LA=\u05dc\u05d0\u05d5\u05e1
-territories.KZ=\u05e7\u05d6\u05d0\u05d7\u05e1\u05d8\u05d0\u05df
-territories.KY=\u05e7\u05d9\u05d9\u05de\u05d0\u05df, \u05d0\u05d9\u05d9
-territories.KW=\u05db\u05d5\u05d5\u05d9\u05d9\u05ea
-territories.145=\u05de\u05d6\u05e8\u05d7 \u05d0\u05e1\u05d9\u05d4
+territories.KZ=\u05e7\u05d6\u05d7\u05e1\u05d8\u05df
+territories.KY=\u05d0\u05d9\u05d9 \u05e7\u05d9\u05d9\u05de\u05df
+territories.KW=\u05db\u05d5\u05d5\u05d9\u05ea
+territories.145=\u05de\u05e2\u05e8\u05d1 \u05d0\u05e1\u05d9\u05d4
+territories.143=\u05de\u05e8\u05db\u05d6 \u05d0\u05e1\u05d9\u05d4
territories.142=\u05d0\u05e1\u05d9\u05d4
-territories.KR=\u05e7\u05d5\u05e8\u05d9\u05d0\u05d4 \u05d4\u05d3\u05e8\u05d5\u05de\u05d9\u05ea
-territories.KP=\u05e7\u05d5\u05e8\u05d9\u05d0\u05d4 \u05d4\u05e6\u05e4\u05d5\u05e0\u05d9\u05ea
+territories.KR=\u05d3\u05e8\u05d5\u05dd \u05e7\u05d5\u05e8\u05d9\u05d0\u05d4
+territories.KP=\u05e6\u05e4\u05d5\u05df \u05e7\u05d5\u05e8\u05d9\u05d0\u05d4
territories.KN=\u05e1\u05e0\u05d8 \u05e7\u05d9\u05d8\u05e1 \u05d5\u05e0\u05d5\u05d5\u05d9\u05e1
territories.KM=\u05e7\u05d5\u05de\u05d5\u05e8\u05d5\u05e1
territories.KI=\u05e7\u05d9\u05e8\u05d9\u05d1\u05d0\u05d8\u05d9
territories.WS=\u05e1\u05de\u05d5\u05d0\u05d4
territories.KH=\u05e7\u05de\u05d1\u05d5\u05d3\u05d9\u05d4
-territories.KG=\u05e7\u05d9\u05e8\u05d2\u05d9\u05d6\u05e1\u05d8\u05d0\u05df
+territories.KG=\u05e7\u05d9\u05e8\u05d2\u05d9\u05d6\u05e1\u05d8\u05df
territories.KE=\u05e7\u05e0\u05d9\u05d4
-territories.WF=\u05d5\u05d5\u05dc\u05d9\u05e1 \u05d5\u05e4\u05d5\u05d8\u05d5\u05e0\u05d4
+territories.WF=\u05d0\u05d9\u05d9 \u05d5\u05d5\u05dc\u05d9\u05e1 \u05d5\u05e4\u05d5\u05d8\u05d5\u05e0\u05d4
territories.JP=\u05d9\u05e4\u05df
territories.JO=\u05d9\u05e8\u05d3\u05df
-territories.JM=\u05d2\u05f3\u05d0\u05de\u05d9\u05d9\u05e7\u05d4
+territories.JM=\u05d2\u05f3\u05de\u05d9\u05d9\u05e7\u05d4
territories.VU=\u05d5\u05d0\u05e0\u05d5\u05d0\u05d8\u05d5
+territories.JE=\u05d2\u05f3\u05e8\u05e1\u05d9
territories.VN=\u05d5\u05d9\u05d9\u05d8\u05e0\u05d0\u05dd
-territories.VI=\u05d1\u05ea\u05d5\u05dc\u05d4, \u05d0\u05d9\u05d9 (\u05d0\u05e8\u05d4\"\u05d1)
-territories.VG=\u05d1\u05ea\u05d5\u05dc\u05d4, \u05d0\u05d9\u05d9 (\u05d1\u05e8\u05d9\u05d8\u05d9\u05d9\u05dd)
+territories.VI=\u05d0\u05d9\u05d9 \u05d4\u05d1\u05ea\u05d5\u05dc\u05d4 \u05d4\u05d0\u05de\u05e8\u05d9\u05e7\u05e0\u05d9\u05d9\u05dd
+territories.VG=\u05d0\u05d9\u05d9 \u05d4\u05d1\u05ea\u05d5\u05dc\u05d4 \u05d4\u05d1\u05e8\u05d9\u05d8\u05d9\u05d9\u05dd
territories.VE=\u05d5\u05e0\u05e6\u05d5\u05d0\u05dc\u05d4
-territories.VC=\u05e1\u05e0\u05d8 \u05d5\u05d9\u05e0\u05e1\u05e0\u05d8 \u05d5\u05d0\u05d9\u05d9 \u05d2\u05e8\u05e0\u05d0\u05d3\u05d9\u05df
-territories.VA=\u05d5\u05d8\u05d9\u05e7\u05d0\u05df
+territories.VC=\u05e1\u05e0\u05d8 \u05d5\u05d9\u05e0\u05e1\u05e0\u05d8 \u05d5\u05d4\u05d2\u05e8\u05e0\u05d3\u05d9\u05e0\u05d9\u05dd
+territories.VA=\u05d5\u05ea\u05d9\u05e7\u05df
territories.IT=\u05d0\u05d9\u05d8\u05dc\u05d9\u05d4
territories.IS=\u05d0\u05d9\u05e1\u05dc\u05e0\u05d3
territories.IR=\u05d0\u05d9\u05e8\u05d0\u05df
territories.IQ=\u05e2\u05d9\u05e8\u05e7
-territories.UZ=\u05d0\u05d5\u05d6\u05d1\u05e7\u05d9\u05e1\u05d8\u05d0\u05df
+territories.UZ=\u05d0\u05d5\u05d6\u05d1\u05e7\u05d9\u05e1\u05d8\u05df
territories.IO=\u05d8\u05e8\u05d9\u05d8\u05d5\u05e8\u05d9\u05d4 \u05d1\u05e8\u05d9\u05d8\u05d9\u05ea \u05d1\u05d0\u05d5\u05e7\u05d9\u05d0\u05e0\u05d5\u05e1 \u05d4\u05d4\u05d5\u05d3\u05d9
territories.UY=\u05d0\u05d5\u05e8\u05d5\u05d2\u05d5\u05d5\u05d0\u05d9
territories.IN=\u05d4\u05d5\u05d3\u05d5
+territories.IM=\u05d4\u05d0\u05d9 \u05de\u05d0\u05df
territories.IL=\u05d9\u05e9\u05e8\u05d0\u05dc
territories.US=\u05d0\u05e8\u05e6\u05d5\u05ea \u05d4\u05d1\u05e8\u05d9\u05ea
territories.IE=\u05d0\u05d9\u05e8\u05dc\u05e0\u05d3
territories.ID=\u05d0\u05d9\u05e0\u05d3\u05d5\u05e0\u05d6\u05d9\u05d4
-territories.UM=\u05d0\u05d9\u05d9\u05dd \u05e9\u05d5\u05e0\u05d9\u05dd \u05e9\u05dc \u05d0\u05e8\u05e6\u05d5\u05ea \u05d4\u05d1\u05e8\u05d9\u05ea \u05d1\u05d0\u05d5\u05e7\u05d9\u05d0\u05e0\u05d5\u05e1 \u05d4\u05e9\u05e7\u05d8
+territories.UM=\u05d0\u05d9\u05d9\u05dd \u05e7\u05d8\u05e0\u05d9\u05dd \u05e9\u05dc\u05d7\u05d5\u05e3 \u05d0\u05e8\u05e6\u05d5\u05ea \u05d4\u05d1\u05e8\u05d9\u05ea
territories.UG=\u05d0\u05d5\u05d2\u05e0\u05d3\u05d4
territories.UA=\u05d0\u05d5\u05e7\u05e8\u05d0\u05d9\u05e0\u05d4
territories.HU=\u05d4\u05d5\u05e0\u05d2\u05e8\u05d9\u05d4
@@ -285,86 +520,337 @@ territories.HT=\u05d4\u05d0\u05d9\u05d8\u05d9
territories.HR=\u05e7\u05e8\u05d5\u05d0\u05d8\u05d9\u05d4
territories.TZ=\u05d8\u05e0\u05d6\u05e0\u05d9\u05d4
territories.HN=\u05d4\u05d5\u05e0\u05d3\u05d5\u05e8\u05e1
-territories.HM=\u05d4\u05e8\u05d3 \u05d5\u05de\u05e7\u05d3\u05d5\u05e0\u05dc\u05e0\u05d3, \u05d0\u05d9\u05d9
-territories.TW=\u05d8\u05d9\u05d9\u05d5\u05d5\u05d0\u05df
+territories.HM=\u05d0\u05d9\u05d9 \u05d4\u05e8\u05d3 \u05d5\u05d0\u05d9\u05d9 \u05de\u05e7\u05d3\u05d5\u05e0\u05dc\u05e0\u05d3
+territories.TW=\u05d8\u05d0\u05d9\u05d5\u05d5\u05d0\u05df
territories.TV=\u05d8\u05d5\u05d1\u05d0\u05dc\u05d5
-territories.HK=\u05d4\u05d5\u05e0\u05d2 \u05e7\u05d5\u05e0\u05d2 S.A.R.\u200e \u05e9\u05dc \u05e1\u05d9\u05df
-territories.TT=\u05d8\u05e8\u05d9\u05e0\u05d9\u05d3\u05d0\u05d3 \u05d5\u05d8\u05d5\u05d1\u05d2\u05d5
+territories.HK=\u05d4\u05d5\u05e0\u05d2 \u05e7\u05d5\u05e0\u05d2
+territories.TT=\u05d8\u05e8\u05d9\u05e0\u05d9\u05d3\u05d3 \u05d5\u05d8\u05d5\u05d1\u05d2\u05d5
territories.TR=\u05d8\u05d5\u05e8\u05e7\u05d9\u05d4
territories.TO=\u05d8\u05d5\u05e0\u05d2\u05d4
territories.TN=\u05d8\u05d5\u05e0\u05d9\u05e1\u05d9\u05d4
-territories.TM=\u05d8\u05d5\u05e8\u05e7\u05de\u05e0\u05d9\u05e1\u05d8\u05d0\u05df
-languages.es=\u05e1\u05e4\u05e8\u05d3\u05d9\u05ea
-languages.mul=\u05de\u05e1\u05e4\u05e8 \u05e9\u05e4\u05d5\u05ea
-languages.eo=\u05d0\u05e1\u05e4\u05e8\u05e0\u05d8\u05d5
-languages.en=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea
-languages.el=\u05d9\u05d5\u05d5\u05e0\u05d9\u05ea
-languages.ko=\u05e7\u05d5\u05e8\u05d9\u05d0\u05e0\u05d9\u05ea
-languages.sgn=\u05e9\u05e4\u05ea \u05e1\u05d9\u05de\u05e0\u05d9\u05dd
-languages.ka=\u05d2\u05e8\u05d5\u05d6\u05d9\u05e0\u05d9\u05ea
+territories.TM=\u05d8\u05d5\u05e8\u05e7\u05de\u05e0\u05d9\u05e1\u05d8\u05df
+languages.akk=\u05d0\u05db\u05d3\u05d9\u05ea
+languages.eka=eka
+languages.xh=xh
+languages.sux=\u05e9\u05d5\u05de\u05e8\u05d9\u05ea
+languages.mis=\u05e9\u05e4\u05d5\u05ea \u05e9\u05d5\u05e0\u05d5\u05ea
+languages.zbl=zbl
+languages.wo=\u05d2'\u05d5\u05dc\u05d5\u05e3
+languages.zap=\u05d6\u05d0\u05e4\u05d5\u05d8\u05e7
+languages.ain=\u05d0\u05d9\u05e0\u05d5
+languages.cus=cus
+languages.doi=\u05d3\u05d5\u05d2\u05e8\u05d9
+languages.vi=\u05d5\u05d9\u05d9\u05d8\u05e0\u05d0\u05de\u05d9\u05ea
+languages.raj=\u05e8\u05d0\u05d2'\u05e1\u05d8\u05df
+languages.ota=\u05d8\u05d5\u05e8\u05e7\u05d9\u05ea \u05e2\u05d5\u05ea\u05d5\u05de\u05e0\u05d9\u05ea
languages.nap=\u05e0\u05e4\u05d5\u05dc\u05d9\u05d8\u05e0\u05d9\u05ea
+languages.uz=\u05d0\u05d5\u05d6\u05d1\u05e7\u05d9\u05ea
+languages.uga=\u05d0\u05d5\u05d2\u05e8\u05d9\u05ea\u05d9\u05ea
+languages.nai=\u05d0\u05d9\u05e0\u05d3\u05d9\u05d0\u05e0\u05d9\u05ea \u05e6\u05e4\u05d5\u05df \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9\u05ea \u05d0\u05d7\u05e8\u05ea
+languages.nah=\u05e0\u05d0\u05d4\u05d5\u05d0\u05d8\u05dc
+languages.ur=\u05d0\u05d5\u05e8\u05d3\u05d5
+languages.fat=fat
+languages.uk=\u05d0\u05d5\u05e7\u05e8\u05d0\u05d9\u05e0\u05d9\u05ea
+languages.egy=\u05de\u05e6\u05e8\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.zxx=\u05dc\u05dc\u05d0 \u05ea\u05d5\u05db\u05df \u05dc\u05e9\u05d5\u05e0\u05d9
+languages.ug=\u05d0\u05d5\u05d9\u05d2\u05d4\u05d5\u05e8
+languages.fan=fan
+languages.mga=\u05d0\u05d9\u05e8\u05d9\u05ea \u05ea\u05d9\u05db\u05d5\u05e0\u05d4
+languages.bat=bat
+languages.bas=bas
+languages.gsw=\u05d2\u05e8\u05de\u05e0\u05d9\u05ea \u05e9\u05d5\u05d5\u05d9\u05e6\u05e8\u05d9\u05ea
+languages.ban=\u05d1\u05dc\u05d9\u05e0\u05d6\u05d9\u05ea
+languages.bal=\u05d1\u05d0\u05dc\u05d5\u05e6'\u05d9
+languages.ty=\u05d8\u05d4\u05d9\u05d8\u05d9\u05ea
+languages.bai=bai
+languages.tw=\u05d8\u05d5\u05d5\u05d9
+languages.tlh=\u05e7\u05dc\u05d9\u05e0\u05d2\u05d5\u05e0\u05d9\u05ea
+languages.tt=\u05d8\u05d8\u05e8\u05d9\u05ea
+languages.bad=bad
+languages.tr=\u05d8\u05d5\u05e8\u05e7\u05d9\u05ea
+languages.tl=\u05d8\u05d2\u05dc\u05d5\u05d2
+languages.tk=\u05d8\u05d5\u05e8\u05e7\u05de\u05e0\u05d9\u05ea
+languages.ti=\u05d8\u05d9\u05d2\u05e8\u05d9\u05e0\u05d0\u05d9\u05ea
+languages.th=\u05ea\u05d0\u05d9
+languages.byn=byn
+languages.te=\u05d8\u05dc\u05d5\u05d2\u05d5
+languages.ta=\u05d8\u05de\u05d9\u05dc\u05d9\u05ea
+languages.efi=efi
+languages.sw=\u05e1\u05d5\u05d5\u05d4\u05d9\u05dc\u05d9\u05ea
+languages.sv=\u05e9\u05d5\u05d5\u05d3\u05d9\u05ea
+languages.su=\u05e1\u05d5\u05d3\u05e0\u05d9\u05ea
+languages.st=\u05e1\u05e1\u05d5\u05ea'\u05d5
+languages.sr=\u05e1\u05e8\u05d1\u05d9\u05ea
+languages.sq=\u05d0\u05dc\u05d1\u05e0\u05d9\u05ea
+languages.crp=crp
+languages.afh=\u05d0\u05e4\u05e8\u05d9\u05d4\u05d9\u05dc\u05d9
+languages.so=\u05e1\u05d5\u05de\u05dc\u05d9\u05ea
+languages.sm=\u05e1\u05de\u05d5\u05d0\u05d9\u05ea
+languages.grc=\u05d9\u05d5\u05d5\u05e0\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.sl=\u05e1\u05dc\u05d5\u05d1\u05e0\u05d9\u05ea
+languages.grb=grb
+languages.sk=\u05e1\u05dc\u05d5\u05d1\u05e7\u05d9\u05ea
+languages.si=\u05e1\u05d9\u05e0\u05d4\u05dc\u05d4
+languages.crh=\u05d8\u05d8\u05e8\u05d9\u05ea \u05e9\u05dc \u05e7\u05e8\u05d9\u05dd
+languages.afa=\u05e9\u05e4\u05d4 \u05d0\u05e4\u05e8\u05d5-\u05d0\u05e1\u05d9\u05d0\u05ea\u05d9\u05ea
+languages.sh=\u05e1\u05e8\u05d1\u05d5\u05be\u05e7\u05e8\u05d5\u05d0\u05d8\u05d9\u05ea
+languages.sd=\u05e1\u05d9\u05e0\u05d3\u05d4\u05d9\u05ea
+languages.sc=\u05e1\u05e8\u05d3\u05d9\u05e0\u05d9\u05ea
+languages.sa=\u05e1\u05e0\u05e1\u05e7\u05e8\u05d9\u05d8
+languages.rw=\u05e7\u05d9\u05e0\u05d9\u05d4\u05e8\u05d5\u05d0\u05e0\u05d3\u05d4
+languages.nwc=\u05e0\u05d5\u05d5\u05d0\u05e8\u05d9\u05ea \u05e7\u05dc\u05d0\u05e1\u05d9\u05ea
+languages.ru=\u05e8\u05d5\u05e1\u05d9\u05ea
+languages.ro=\u05e8\u05d5\u05de\u05e0\u05d9\u05ea
+languages.fr_CH=\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea \u05e9\u05d5\u05d5\u05d9\u05e6\u05e8\u05d9\u05ea
+languages.fr_CA=\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea \u05e7\u05e0\u05d3\u05d9\u05ea
+languages.ady=\u05d0\u05d3\u05d9\u05d2\u05d9\u05ea
+languages.rup=\u05d0\u05e8\u05d5\u05de\u05e0\u05d9\u05ea
+languages.ada=ada
+languages.hit=\u05d7\u05d9\u05ea\u05d9\u05ea
+languages.cpf=cpf
+languages.cpe=cpe
+languages.got=\u05d2\u05d5\u05ea\u05d9\u05ea
+languages.gor=gor
+languages.gon=\u05d2\u05d5\u05e0\u05d3\u05d9
+languages.din=din
+languages.nub=\u05e9\u05e4\u05d4 \u05e0\u05d5\u05d1\u05d9\u05ea
languages.pt=\u05e4\u05d5\u05e8\u05d8\u05d5\u05d2\u05d6\u05d9\u05ea
-languages.mas=\u05de\u05d0\u05e1\u05d0\u05d9\u05ea
-languages.de=\u05d2\u05e8\u05de\u05e0\u05d9\u05ea
+languages.fur=fur
+languages.ps=\u05e4\u05d0\u05e9\u05d8\u05d5
+languages.phn=\u05e4\u05d9\u05e0\u05d9\u05e7\u05d9\u05ea
+languages.cop=\u05e7\u05d5\u05e4\u05d8\u05d9\u05ea
+languages.yap=\u05d9\u05d0\u05e4\u05d6\u05d9\u05ea
+languages.ach=ach
+languages.phi=\u05e9\u05e4\u05d4 \u05e4\u05d9\u05dc\u05d9\u05e4\u05d9\u05e0\u05d9\u05ea
+languages.ace=ace
languages.pl=\u05e4\u05d5\u05dc\u05e0\u05d9\u05ea
-languages.da=\u05d3\u05e0\u05d9\u05ea
+languages.pa=\u05e4\u05d5\u05e0\u05d2\u05f3\u05d0\u05d1\u05d9\u05ea
+languages.bug=bug
+languages.bua=bua
+languages.mas=\u05de\u05d0\u05e1\u05d0\u05d9\u05ea
+languages.map=\u05d0\u05d5\u05e1\u05d8\u05e8\u05d5\u05e0\u05d6\u05d9\u05ea
+languages.or=\u05d0\u05d5\u05e8\u05d9\u05d4
+languages.smi=\u05e9\u05e4\u05d4 \u05e1\u05d0\u05de\u05d9\u05ea
+languages.mai=\u05de\u05d0\u05d9\u05d8\u05d9\u05dc\u05d9\u05ea
+languages.mag=\u05de\u05d0\u05d2\u05d0\u05d4\u05d9\u05ea
+languages.btk=btk
+languages.oc=\u05d0\u05d5\u05e7\u05e1\u05d9\u05d8\u05e0\u05d9\u05ea
+languages.myv=myv
+languages.es_ES=\u05e1\u05e4\u05e8\u05d3\u05d9\u05ea \u05d0\u05d9\u05d1\u05e8\u05d9\u05ea
+languages.de_AT=\u05d2\u05e8\u05de\u05e0\u05d9\u05ea \u05d0\u05d5\u05e1\u05d8\u05e8\u05d9\u05ea
+languages.dgr=dgr
+languages.myn=\u05de\u05d0\u05d9\u05d4
+languages.nv=\u05e0\u05d1\u05d7\u05d5
+languages.no=\u05e0\u05d5\u05e8\u05d5\u05d5\u05d2\u05d9\u05ea
+languages.nn=\u05e0\u05d5\u05e8\u05d1\u05d2\u05d9\u05ea \u05d7\u05d3\u05e9\u05d4 - \u05e0\u05d9\u05e0\u05d5\u05e8\u05e9\u05e7
+languages.nl=\u05d4\u05d5\u05dc\u05e0\u05d3\u05d9\u05ea
+languages.sla=\u05e9\u05e4\u05d4 \u05e1\u05dc\u05d0\u05d1\u05d9\u05ea
+languages.ne=\u05e0\u05e4\u05d0\u05dc\u05d9\u05ea
+languages.cmc=cmc
+languages.nb=\u05e0\u05d5\u05e8\u05d1\u05d2\u05d9\u05ea \u05e9\u05e4\u05d4 \u05d4\u05e1\u05e4\u05e8 - \u05d1\u05d5\u05e7\u05de\u05d5\u05dc
+languages.na=\u05e0\u05d0\u05d5\u05e8\u05d9\u05ea
+languages.my=\u05d1\u05d5\u05e8\u05de\u05d6\u05d9\u05ea
+languages.frs=frs
+languages.mt=\u05de\u05dc\u05d8\u05d6\u05d9\u05ea
+languages.peo=\u05e4\u05e8\u05e1\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.ms=\u05de\u05dc\u05d0\u05d9\u05ea
+languages.mr=\u05de\u05d0\u05e8\u05ea\u05d9\u05ea
+languages.fro=\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.mo=\u05de\u05d5\u05dc\u05d3\u05d1\u05d9\u05ea
+languages.frm=\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea \u05ea\u05d9\u05db\u05d5\u05e0\u05d4
+languages.mn=\u05de\u05d5\u05e0\u05d2\u05d5\u05dc\u05d9\u05ea
+languages.jrb=\u05e2\u05e8\u05d1\u05d9\u05ea \u05d9\u05d4\u05d5\u05d3\u05d9\u05ea
+languages.ml=\u05de\u05dc\u05d0\u05d9\u05d0\u05dc\u05dd
+languages.mk=\u05de\u05e7\u05d3\u05d5\u05e0\u05d9\u05ea
+languages.mi=\u05de\u05d0\u05d5\u05e8\u05d9\u05ea
+languages.mg=\u05de\u05dc\u05d2\u05e9\u05d9\u05ea
+languages.bra=bra
+languages.den=\u05e1\u05dc\u05d0\u05d1\u05d9\u05ea
+languages.lv=\u05dc\u05d8\u05d1\u05d9\u05ea
+languages.del=\u05d3\u05dc\u05d0\u05d5\u05d5\u05e8
+languages.lt=\u05dc\u05d9\u05d8\u05d0\u05d9\u05ea
+languages.lo=\u05dc\u05d0\u05d5
+languages.ln=\u05dc\u05d9\u05e0\u05d2\u05d0\u05dc\u05d4
+languages.ewo=ewo
+languages.lg=lg
+languages.lb=\u05dc\u05d5\u05e7\u05e1\u05de\u05d1\u05d5\u05e8\u05d2\u05d9\u05ea
+languages.la=\u05dc\u05d8\u05d9\u05e0\u05d9\u05ea
+languages.jpr=\u05e4\u05e8\u05e1\u05d9\u05ea \u05d9\u05d4\u05d5\u05d3\u05d9\u05ea
+languages.ky=\u05e7\u05d9\u05e8\u05d2\u05d9\u05d6\u05d9\u05ea
+languages.sit=\u05e9\u05e4\u05d4 \u05e1\u05d9\u05e0\u05d5\u05be\u05d8\u05d9\u05d1\u05d8\u05d9\u05ea
+languages.kw=\u05e7\u05d5\u05e8\u05e0\u05d9\u05ea
+languages.ku=\u05db\u05d5\u05e8\u05d3\u05d9\u05ea
+languages.ks=\u05e7\u05e9\u05de\u05d9\u05e8\u05d9\u05ea
+languages.awa=\u05d0\u05d5\u05d5\u05d0\u05d3\u05d9\u05ea
+languages.ko=\u05e7\u05d5\u05e8\u05d9\u05d0\u05e0\u05d9\u05ea
+languages.kn=\u05e7\u05d0\u05e0\u05d0\u05d3\u05d4
+languages.km=\u05e7\u05de\u05e8\u05d9\u05ea
+languages.en_GB=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05d1\u05e8\u05d9\u05d8\u05d9\u05ea
+languages.kk=\u05e7\u05d6\u05d7\u05d9\u05ea
+languages.rom=\u05e8\u05d5\u05de\u05d0\u05e0\u05d9\u05ea
+languages.sid=\u05e1\u05d9\u05d3\u05de\u05d5
+languages.ka=\u05d2\u05e8\u05d5\u05d6\u05d9\u05e0\u05d9\u05ea
+languages.mus=mus
+languages.mul=\u05de\u05e1\u05e4\u05e8 \u05e9\u05e4\u05d5\u05ea
+languages.jv=\u05d2'\u05d0\u05d5\u05d5\u05d4\u05e0\u05d9\u05ea
+languages.gil=gil
+languages.fon=fon
+languages.aus=\u05e9\u05e4\u05d4 \u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05ea
languages.ja=\u05d9\u05e4\u05e0\u05d9\u05ea
-languages.cy=\u05d5\u05d5\u05dc\u05e9\u05d9\u05ea
-languages.cs=\u05e6\u05f3\u05db\u05d9\u05ea
-languages.lad=\u05dc\u05d3\u05d9\u05e0\u05d5
+languages.chy=chy
languages.it=\u05d0\u05d9\u05d8\u05dc\u05e7\u05d9\u05ea
languages.is=\u05d0\u05d9\u05e1\u05dc\u05e0\u05d3\u05d9\u05ea
-languages.myn=\u05de\u05d0\u05d9\u05d4
-languages.aus=\u05e9\u05e4\u05d5\u05ea \u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05d5\u05ea
-languages.ca=\u05e7\u05d8\u05dc\u05d5\u05e0\u05d9\u05ea
+languages.sgn=\u05e9\u05e4\u05ea \u05e1\u05d9\u05de\u05e0\u05d9\u05dd
+languages.chr=\u05e6'\u05d9\u05e8\u05d5\u05e7\u05d9\u05ea
+languages.chp=chp
+languages.io=\u05d0\u05d9\u05d3\u05d5
+languages.cho=cho
+languages.chn=chn
+languages.bnt=\u05d1\u05e0\u05d8\u05d5
+languages.chk=chk
+languages.haw=\u05d4\u05d5\u05d5\u05d0\u05d9\u05ea
+languages.chg=\u05e6'\u05d0\u05d2\u05d0\u05d8\u05d0\u05d9
+languages.sga=\u05d0\u05d9\u05e8\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.ie=ie
languages.id=\u05d0\u05d9\u05e0\u05d3\u05d5\u05e0\u05d6\u05d9\u05ea
-languages.uk=\u05d0\u05d5\u05e7\u05e8\u05d0\u05d9\u05e0\u05d9\u05ea
-languages.egy=\u05de\u05e6\u05e8\u05d9\u05ea (\u05e2\u05ea\u05d9\u05e7\u05d4)
+languages.day=day
+languages.chb=chb
+languages.ia=ia
+languages.lad=\u05dc\u05d3\u05d9\u05e0\u05d5
+languages.dar=dar
languages.hy=\u05d0\u05e8\u05de\u05e0\u05d9\u05ea
-languages.bs=\u05d1\u05d5\u05e1\u05e0\u05d9\u05ea
+languages.ath=ath
languages.hu=\u05d4\u05d5\u05e0\u05d2\u05e8\u05d9\u05ea
-languages.bo=\u05d8\u05d9\u05d1\u05d8\u05d9\u05ea
-languages.bn=\u05d1\u05e0\u05d2\u05dc\u05d9\u05ea
+languages.ht=\u05d4\u05d0\u05d9\u05d8\u05d9\u05ea
+languages.dak=\u05d3\u05e7\u05d5\u05d8\u05d4
languages.hr=\u05e7\u05e8\u05d5\u05d0\u05d8\u05d9\u05ea
-languages.bg=\u05d1\u05d5\u05dc\u05d2\u05e8\u05d9\u05ea
-languages.no=\u05e0\u05d5\u05e8\u05d5\u05d5\u05d2\u05d9\u05ea
+languages.ho=\u05d4\u05d0\u05e8\u05d9 \u05de\u05d5\u05d8\u05d5
languages.hi=\u05d4\u05d9\u05e0\u05d3\u05d9\u05ea
-languages.tr=\u05d8\u05d5\u05e8\u05e7\u05d9\u05ea
-languages.nl=\u05d4\u05d5\u05dc\u05e0\u05d3\u05d9\u05ea
-languages.zu=\u05d6\u05d5\u05dc\u05d5
+languages.dyu=dyu
languages.he=\u05e2\u05d1\u05e8\u05d9\u05ea
-languages.tk=\u05d8\u05d5\u05e8\u05e7\u05de\u05e0\u05d9\u05ea
-languages.ne=\u05e0\u05e4\u05d0\u05dc\u05d9\u05ea
-languages.cad=\u05e7\u05d0\u05d3\u05d5
-languages.th=\u05ea\u05d0\u05d9
-languages.zh=\u05e1\u05d9\u05e0\u05d9\u05ea
-languages.ar=\u05e2\u05e8\u05d1\u05d9\u05ea
languages.ast=\u05d0\u05d5\u05e1\u05d8\u05e8\u05d9\u05ea
-languages.mt=\u05de\u05dc\u05d8\u05d6\u05d9\u05ea
-languages.sw=\u05e1\u05d5\u05d5\u05d4\u05d9\u05dc\u05d9\u05ea
-languages.sv=\u05e9\u05d5\u05d5\u05d3\u05d9\u05ea
-languages.af=\u05d0\u05e4\u05e8\u05d9\u05e7\u05e0\u05d9\u05ea
-languages.mo=\u05de\u05d5\u05dc\u05d3\u05d1\u05d9\u05ea
-languages.mn=\u05de\u05d5\u05e0\u05d2\u05d5\u05dc\u05d9\u05ea
-languages.sr=\u05e1\u05e8\u05d1\u05d9\u05ea
-languages.aa=\u05d0\u05ea\u05d9\u05d5\u05e4\u05d9\u05ea
-languages.mk=\u05de\u05e7\u05d3\u05d5\u05e0\u05d9\u05ea
-languages.gd=\u05e1\u05e7\u05d5\u05d8\u05d9\u05ea \u05d2\u05d0\u05dc\u05d9\u05ea
-languages.mi=\u05de\u05d0\u05d5\u05e8\u05d9\u05ea
-languages.sl=\u05e1\u05dc\u05d5\u05d1\u05e0\u05d9\u05ea
+languages.ha=\u05d4\u05d0\u05d5\u05e1\u05d4
+languages.gv=\u05de\u05d0\u05e0\u05d9\u05ea
+languages.gu=\u05d2\u05d5\u05d2'\u05e8\u05d0\u05d8\u05d9\u05ea
+languages.sem=\u05e9\u05e4\u05d4 \u05e9\u05de\u05d9\u05ea
+languages.gn=\u05d2\u05d5\u05d0\u05e8\u05e0\u05d9
+languages.gl=\u05d2\u05dc\u05d9\u05e6\u05d9\u05d0\u05e0\u05d9\u05ea
+languages.en_CA=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05e7\u05e0\u05d3\u05d9\u05ea
+languages.arw=arw
+languages.gez=\u05d2\u05e2\u05d6
+languages.art=\u05e9\u05e4\u05d4 \u05de\u05dc\u05d0\u05db\u05d5\u05ea\u05d9\u05ea \u05d0\u05d7\u05e8\u05ea
+languages.gd=\u05d2\u05d0\u05dc\u05d9\u05ea \u05e1\u05e7\u05d5\u05d8\u05d9\u05ea
+languages.ira=\u05d0\u05d9\u05e8\u05d0\u05e0\u05d9\u05ea
languages.ga=\u05d0\u05d9\u05e8\u05d9\u05ea
-languages.sk=\u05e1\u05dc\u05d5\u05d1\u05e7\u05d9\u05ea
-languages.sh=\u05e1\u05e8\u05d1\u05d5-\u05e7\u05e8\u05d5\u05d0\u05d8\u05d9\u05ea
-languages.yi=\u05d9\u05d9\u05d3\u05d9\u05e9
-languages.sa=\u05e1\u05e0\u05e1\u05e7\u05e8\u05d9\u05ea
+languages.arp=arp
+languages.arn=arn
+languages.fy=\u05e4\u05e8\u05d9\u05d6\u05d9\u05ea
+languages.gem=\u05d2\u05e8\u05de\u05d0\u05e0\u05d9\u05ea \u05d0\u05d7\u05e8\u05ea
+languages.arc=\u05d0\u05e8\u05de\u05d9\u05ea
languages.fr=\u05e6\u05e8\u05e4\u05ea\u05d9\u05ea
-languages.lv=\u05dc\u05d8\u05d1\u05d9\u05ea
-languages.lt=\u05dc\u05d9\u05d8\u05d0\u05d9\u05ea
-languages.ru=\u05e8\u05d5\u05e1\u05d9\u05ea
+languages.fo=\u05e4\u05d0\u05e8\u05d5\u05d0\u05d6\u05d9\u05ea
+languages.cel=\u05e9\u05e4\u05d4 \u05e7\u05dc\u05d8\u05d9\u05ea
+languages.fj=\u05e4\u05d9\u05d2'\u05d9\u05ea
languages.fi=\u05e4\u05d9\u05e0\u05d9\u05ea
-languages.ro=\u05e8\u05d5\u05de\u05e0\u05d9\u05ea
-languages.arc=\u05d0\u05e8\u05de\u05d9\u05ea
+languages.ff=ff
+languages.ceb=\u05e7\u05d1\u05d5\u05d0\u05e0\u05d5
languages.fa=\u05e4\u05e8\u05e1\u05d9\u05ea
-languages.la=\u05dc\u05d8\u05d9\u05e0\u05d9\u05ea
-languages.eu=\u05d1\u05e1\u05e7\u05d9\u05ea
+languages.en_AU=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05d0\u05d5\u05e1\u05d8\u05e8\u05dc\u05d9\u05ea
+languages.zh_Hans=\u05e1\u05d9\u05e0\u05d9\u05ea \u05de\u05d5\u05d3\u05e8\u05e0\u05d9\u05ea
+languages.zh_Hant=\u05e1\u05d9\u05e0\u05d9\u05ea \u05de\u05e1\u05d5\u05e8\u05ea\u05d9\u05ea
+languages.eu=\u05d1\u05d0\u05e1\u05e7\u05d9\u05ea
+languages.sco=\u05e1\u05e7\u05d5\u05d8\u05d9\u05ea
languages.et=\u05d0\u05e1\u05d8\u05d5\u05e0\u05d9\u05ea
+languages.scn=\u05e1\u05d9\u05e6\u05d9\u05dc\u05d9\u05d0\u05e0\u05d9\u05ea
+languages.es=\u05e1\u05e4\u05e8\u05d3\u05d9\u05ea
+languages.eo=\u05d0\u05e1\u05e4\u05e8\u05e0\u05d8\u05d5
+languages.en=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea
+languages.el=\u05d9\u05d5\u05d5\u05e0\u05d9\u05ea
+languages.tut=tut
+languages.ee=ee
+languages.nl_BE=\u05e4\u05dc\u05de\u05d9\u05ea
+languages.es_419=\u05e1\u05e4\u05e8\u05d3\u05d9\u05ea \u05de\u05d0\u05de\u05e8\u05d9\u05e7\u05d4 \u05d4\u05dc\u05d8\u05d9\u05e0\u05d9\u05ea
+languages.dz=\u05d3\u05d6\u05d5\u05e0\u05e7\u05d4
+languages.fiu=fiu
+languages.dv=\u05d3\u05d9\u05d1\u05d4\u05d9
+languages.apa=\u05e9\u05e4\u05d4 \u05d0\u05e4\u05d0\u05e6\u05f3\u05d9\u05ea
+languages.fil=\u05e4\u05d9\u05dc\u05d9\u05e4\u05d9\u05e0\u05d9\u05ea
+languages.cch=cch
+languages.bin=bin
+languages.de=\u05d2\u05e8\u05de\u05e0\u05d9\u05ea
+languages.bik=bik
+languages.und=\u05e9\u05e4\u05d4 \u05dc\u05d0 \u05d9\u05d3\u05d5\u05e2\u05d4 \u05d0\u05d5 \u05dc\u05d0 \u05ea\u05e7\u05e4\u05d4
+languages.da=\u05d3\u05e0\u05d9\u05ea
+languages.dum=\u05d4\u05d5\u05dc\u05e0\u05d3\u05d9\u05ea \u05ea\u05d9\u05db\u05d5\u05e0\u05d4
+languages.sat=\u05e1\u05d0\u05e0\u05d8\u05dc\u05d9
+languages.cy=\u05d5\u05d5\u05dc\u05e9\u05d9\u05ea
+languages.cv=cv
+languages.cu=\u05e1\u05dc\u05d0\u05d1\u05d9\u05ea \u05db\u05e0\u05e1\u05d9\u05d9\u05ea\u05d9\u05ea
+languages.mni=\u05de\u05e0\u05d9\u05e4\u05d5\u05e8\u05d9\u05ea
+languages.cs=\u05e6\u05f3\u05db\u05d9\u05ea
+languages.sam=\u05d0\u05e8\u05de\u05d9\u05ea \u05e9\u05d5\u05de\u05e8\u05d5\u05e0\u05d9\u05ea
+languages.cr=cr
+languages.dua=dua
+languages.co=\u05e7\u05d5\u05e8\u05e1\u05d9\u05e7\u05d0\u05d9\u05ea
+languages.sai=\u05d0\u05d9\u05e0\u05d3\u05d9\u05d0\u05e0\u05d9\u05ea \u05d3\u05e8\u05d5\u05dd \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9\u05ea (\u05d0\u05d7\u05e8)
+languages.inh=\u05d0\u05d9\u05e0\u05d2\u05d5\u05e9\u05d9\u05ea
+languages.gba=gba
+languages.ch=ch
+languages.ine=\u05d0\u05d9\u05e0\u05d3\u05d5-\u05d0\u05d9\u05e8\u05d5\u05e4\u05d9\u05ea \u05d0\u05d7\u05e8\u05ea
+languages.bho=bho
+languages.enm=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05ea\u05d9\u05db\u05d5\u05e0\u05d4
+languages.ce=\u05e6'\u05e6'\u05e0\u05d9\u05ea
+languages.gay=gay
+languages.ca=\u05e7\u05d8\u05dc\u05d5\u05e0\u05d9\u05ea
+languages.syr=\u05e1\u05d5\u05e8\u05d9\u05ea
+languages.anp=anp
+languages.ang=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05e2\u05ea\u05d9\u05e7\u05d4
+languages.cau=\u05e9\u05e4\u05d4 \u05e7\u05d5\u05d5\u05e7\u05d6\u05d9\u05ea
+languages.kab=\u05e7\u05d1\u05d9\u05dc\u05d4
+languages.bs=\u05d1\u05d5\u05e1\u05e0\u05d9\u05ea
+languages.car=car
+languages.br=\u05d1\u05e8\u05d8\u05d5\u05e0\u05d9\u05ea
+languages.syc=syc
+languages.bo=\u05d8\u05d9\u05d1\u05d8\u05d9\u05ea
+languages.bn=\u05d1\u05e0\u05d2\u05d0\u05dc\u05d9\u05ea
+languages.bm=bm
+languages.gaa=gaa
+languages.cai=\u05d0\u05d9\u05e0\u05d3\u05d9\u05d0\u05e0\u05d9\u05ea \u05de\u05e8\u05db\u05d6 \u05d0\u05de\u05e8\u05d9\u05e7\u05d0\u05d9\u05ea \u05d0\u05d7\u05e8\u05ea
+languages.bi=\u05d1\u05d9\u05e1\u05dc\u05de\u05d4
+languages.bh=\u05d1\u05d9\u05d4\u05d0\u05e8\u05d9
+languages.bg=\u05d1\u05d5\u05dc\u05d2\u05e8\u05d9\u05ea
+languages.be=\u05d1\u05dc\u05d0\u05e8\u05d5\u05e1\u05d9\u05ea
+languages.cad=\u05e7\u05d0\u05d3\u05d5
+languages.pt_BR=\u05e4\u05d5\u05e8\u05d8\u05d5\u05d2\u05d6\u05d9\u05ea \u05d1\u05e8\u05d6\u05d9\u05dc\u05d0\u05d9\u05ea
+languages.ba=\u05d1\u05e9\u05e7\u05d9\u05e8\u05d9\u05ea
+languages.zu=\u05d6\u05d5\u05dc\u05d5
+languages.zen=\u05d6\u05e0\u05d0\u05d2\u05d4
+languages.az=\u05d0\u05d6\u05e8\u05d9\u05ea
+languages.ay=\u05d0\u05d9\u05d9\u05de\u05d0\u05e8\u05d9\u05ea
+languages.av=av
+languages.as=\u05d0\u05e1\u05de\u05d9\u05ea
+languages.ar=\u05e2\u05e8\u05d1\u05d9\u05ea
+languages.elx=\u05e2\u05d9\u05dc\u05de\u05d9\u05ea
+languages.zh=\u05e1\u05d9\u05e0\u05d9\u05ea
+languages.an=an
+languages.am=\u05d0\u05de\u05d4\u05e8\u05d9\u05ea
+languages.ak=\u05d0\u05e7\u05d0\u05df
+languages.en_US=\u05d0\u05e0\u05d2\u05dc\u05d9\u05ea \u05d0\u05de\u05e8\u05d9\u05e7\u05e0\u05d9\u05ea
+languages.af=\u05d0\u05e4\u05e8\u05d9\u05e7\u05d0\u05e0\u05e1
+languages.ae=\u05d0\u05d1\u05e1\u05d8\u05df
+languages.ab=\u05d0\u05d1\u05d7\u05d6\u05d9\u05ea
+languages.aa=\u05d0\u05ea\u05d9\u05d5\u05e4\u05d9\u05ea
+languages.yo=\u05d9\u05d5\u05e8\u05d5\u05d1\u05d4
+languages.alg=alg
+languages.ale=ale
+languages.yi=\u05d9\u05d9\u05d3\u05d9\u05e9
+languages.dra=dra
+languages.ber=\u05d1\u05e8\u05d1\u05e8\u05d9\u05ea
+languages.nds=\u05d2\u05e8\u05de\u05e0\u05d9\u05ea \u05ea\u05d7\u05ea\u05d9\u05ea
+languages.bem=bem
+languages.bej=\u05d1\u05d6'\u05d4
+variants.POSIX=\u05de\u05d7\u05e9\u05d1
+variants.1901=\u05db\u05ea\u05d9\u05d1 \u05d2\u05e8\u05de\u05e0\u05d9 \u05de\u05e1\u05d5\u05e8\u05ea\u05d9
+variants.MONOTON=\u05de\u05d5\u05e0\u05d5\u05d8\u05d5\u05e0\u05d9\u05ea
+variants.AREVELA=\u05de\u05d6\u05e8\u05d7 \u05d0\u05e8\u05de\u05e0\u05d9\u05ea
+variants.AREVMDA=\u05de\u05e2\u05e8\u05d1 \u05d0\u05e8\u05de\u05e0\u05d9\u05ea
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hi.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hi.properties
index 5add447..26e76ce 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hi.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hi.properties
@@ -5,322 +5,626 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
zeroDigit=\u0966
-currenciesSymbol.INR=\u0930\u0941
-shortMonths=\u091c\u0928\u0935\u0930\u0940®\u092b\u0930\u0935\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u0905\u092a\u094d\u0930\u0948\u0932®\u092e\u0908®\u091c\u0942\u0928®\u091c\u0941\u0932\u093e\u0908®\u0905\u0917\u0938\u094d\u0924®\u0938\u093f\u0924\u092e\u094d\u092c\u0930®\u0905\u0915\u094d\u0924\u0942\u092c\u0930®\u0928\u0935\u092e\u094d\u092c\u0930®\u0926\u093f\u0938\u092e\u094d\u092c\u0930®®
-months=\u091c\u0928\u0935\u0930\u0940®\u092b\u0930\u0935\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u0905\u092a\u094d\u0930\u0948\u0932®\u092e\u0908®\u091c\u0942\u0928®\u091c\u0941\u0932\u093e\u0908®\u0905\u0917\u0938\u094d\u0924®\u0938\u093f\u0924\u092e\u094d\u092c\u0930®\u0905\u0915\u094d\u0924\u0942\u092c\u0930®\u0928\u0935\u092e\u094d\u092c\u0930®\u0926\u093f\u0938\u092e\u094d\u092c\u0930®®
-shortWeekdays=®\u0930\u0935\u093f®\u0938\u094b\u092e®\u092e\u0902\u0917\u0932®\u092c\u0941\u0927®\u0917\u0941\u0930\u0941®\u0936\u0941\u0915\u094d\u0930®\u0936\u0928\u093f®
-weekdays=®\u0930\u0935\u093f\u0935\u093e\u0930®\u0938\u094b\u092e\u0935\u093e\u0930®\u092e\u0902\u0917\u0932\u0935\u093e\u0930®\u092c\u0941\u0927\u0935\u093e\u0930®\u0917\u0941\u0930\u0941\u0935\u093e\u0930®\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930®\u0936\u0928\u093f\u0935\u093e\u0930®
-eras=\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935®\u0938\u0928®
-ampms=\u092a\u0942\u0930\u094d\u0935\u093e\u0939\u094d\u0928®\u0905\u092a\u0930\u093e\u0939\u094d\u0928®
-zoneStrings=Asia/Calcutta®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®©
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
+currenciesDisplayName.LKR=\u0936\u094d\u0930\u0940\u0932\u0902\u0915\u093e\u0908 \u0930\u0941\u092a\u092f\u093e
+currenciesDisplayName.CYP=\u0938\u093e\u0908\u092a\u094d\u0930\u0938 \u092a\u093e\u090a\u0902\u0921
+currenciesDisplayName.HRK=\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u093e\u0908 \u0915\u0941\u0928\u093e
+currenciesDisplayName.CSD=\u092a\u0941\u0930\u093e\u0928\u093e \u0938\u0930\u094d\u092c\u093f\u092f\u093e\u0908 \u0926\u0940\u0928\u093e\u0930
+currenciesDisplayName.HRD=\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u0928 \u0926\u093f\u0928\u093e\u0930
+currenciesDisplayName.AMD=\u0905\u0930\u092e\u0947\u0928\u093f\u092f\u093e\u0908 \u0926\u0930\u092e
+currenciesDisplayName.SIT=\u0938\u094d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u093e\u0908 \u0924\u094b\u0932\u093e\u0930
+currenciesDisplayName.FRF=\u092b\u093c\u094d\u0930\u093e\u0902\u0938\u0940\u0938\u0940 \u092b\u093c\u094d\u0930\u0948\u0902\u0915
+currenciesDisplayName.SOS=\u0938\u094b\u092e\u093e\u0932\u0940 \u0936\u093f\u0932\u093f\u0902\u0917
+currenciesDisplayName.NPR=\u0928\u0947\u092a\u093e\u0932\u0940 \u0930\u0941\u092a\u092f\u093e
+currenciesDisplayName.CLP=\u091a\u093f\u0932\u0940 \u092a\u0940\u0938\u094b
+currenciesDisplayName.KWD=\u0915\u0941\u0935\u0948\u0924\u0940 \u0926\u093f\u0928\u093e\u0930
+currenciesDisplayName.SUR=\u0938\u094b\u0935\u093f\u092f\u0924 \u0930\u0942\u092c\u0932
+currenciesDisplayName.AFN=\u0905\u092b\u0917\u093e\u0928\u0940
+currenciesDisplayName.ZAR=\u0926\u0915\u094d\u0937\u093f\u0923 \u0905\u092b\u093c\u094d\u0930\u0940\u0915\u0940 \u0930\u0945\u0923\u094d\u0921
+currenciesDisplayName.RON=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e\u0908 \u0932\u094d\u092f\u0942
+currenciesDisplayName.KPW=\u0926\u0915\u094d\u0937\u093f\u0923 \u0915\u094b\u0930\u093f\u092f\u093e\u0908 \u0935\u094b\u0928
+currenciesDisplayName.IQD=\u0907\u0930\u093e\u0915\u0940 \u0926\u093f\u0928\u093e\u0930
+currenciesDisplayName.HKD=\u0939\u093e\u0901\u0917\u0915\u093e\u0901\u0917 \u0921\u0949\u0932\u0930
+currenciesDisplayName.ARS=\u0905\u0930\u094d\u091c\u0947\u0923\u094d\u091f\u0940\u0928\u0940 \u092a\u0940\u0938\u094b
+currenciesDisplayName.BRL=\u092c\u094d\u0930\u093e\u091c\u0940\u0932\u0940 \u0930\u093f\u092f\u093e\u0932
+currenciesDisplayName.JPY=\u091c\u093e\u092a\u093e\u0928\u0940 \u092f\u0947\u0928
+currenciesDisplayName.IDR=\u0907\u0923\u094d\u0921\u094b\u0928\u0947\u0936\u093f\u092f\u093e\u0908 \u0930\u0941\u092a\u093f\u092f\u093e
+currenciesDisplayName.EEK=\u090f\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u093e\u0908 \u0915\u094d\u0930\u0942\u0928\u094d
+currenciesDisplayName.AFA=\u0905\u092b\u0917\u093e\u0928\u0940
+currenciesDisplayName.DEM=\u0921\u091a \u092e\u093e\u0930\u094d\u0915
+currenciesDisplayName.RUB=\u0930\u0942\u0938\u0940 \u0930\u0942\u092c\u0932
+currenciesDisplayName.VND=\u0935\u093f\u092f\u0924\u0928\u093e\u092e\u0940 \u0921\u094b\u0902\u0917
+currenciesDisplayName.DKK=\u0921\u0947\u0928\u092e\u093e\u0930\u094d\u0915 \u0915\u094d\u0930\u094b\u0928
+currenciesDisplayName.THB=\u0925\u093e\u0908 \u092c\u093e\u0939\u0924
+currenciesDisplayName.NOK=\u0928\u0949\u0930\u094d\u0935\u0947 \u0915\u094d\u0930\u094b\u0928
+currenciesDisplayName.RHD=\u0930\u094b\u0921\u0947\u0936\u093f\u092f\u093e\u0908 \u0921\u093e\u0932\u0930
+currenciesDisplayName.PHP=\u092b\u093c\u093f\u0932\u093f\u092a\u0940\u0928\u0940 \u092a\u0940\u0938\u094b
+currenciesDisplayName.AED=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0905\u0930\u092c \u0905\u092e\u0940\u0930\u093e\u0924 \u0926\u093f\u0930\u094d\u0939\u093e\u092e
+currenciesDisplayName.SAR=\u0938\u0909\u0926\u0940 \u0930\u093f\u092f\u093e\u0932
+currenciesDisplayName.USS=\u0905\u092e\u0947\u0930\u0940\u0915\u0940 \u0921\u093e\u0932\u0930 (\u0906\u091c)
+currenciesDisplayName.FJD=\u092b\u093c\u093f\u091c\u0940 \u0921\u0949\u0932\u0930
+currenciesDisplayName.USN=\u0905\u092e\u0947\u0930\u0940\u0915\u0940 \u0921\u093e\u0932\u0930 (\u0915\u0932)
+currenciesDisplayName.LBP=\u0932\u0947\u092c\u0928\u093e\u0928\u0940 \u092a\u093e\u0909\u0902\u0921
+currenciesDisplayName.XXX=\u0905\u091c\u094d\u091e\u093e\u0924 \u092f\u093e \u0905\u0935\u0948\u0927 \u092e\u0941\u0926\u094d\u0930\u093e
+currenciesDisplayName.USD=\u0905\u092e\u0947\u0930\u0940\u0915\u0940 \u0921\u093e\u0932\u0930
+currenciesDisplayName.SGD=\u0938\u093f\u0902\u0917\u093e\u092a\u0941\u0930 \u0921\u0949\u0932\u0930
+currenciesDisplayName.SYP=\u0938\u0940\u0930\u093f\u092f\u093e\u0908 \u092a\u093e\u0909\u0902\u0921
+currenciesDisplayName.HUF=\u0939\u0902\u0917\u0930\u0940 \u092b\u094b\u0930\u0947\u0902\u091f\u094d
+currenciesDisplayName.LTL=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u093e\u0908 \u0932\u093f\u0924\u093e\u0938
+currenciesDisplayName.TRY=\u0928\u0908 \u0924\u0941\u0930\u094d\u0915\u0940 \u0932\u0940\u0930\u093e
+currenciesDisplayName.NZD=\u0928\u094d\u092f\u0942\u091c\u093c\u0940\u0932\u0948\u0902\u0921 \u0921\u0949\u0932\u0930
+currenciesDisplayName.OMR=\u0913\u092e\u093e\u0928\u0940 \u0930\u093f\u092f\u093e\u0932
+currenciesDisplayName.RSD=\u0938\u0930\u094d\u092c\u093f\u092f\u0928 \u0926\u093f\u0928\u093e\u0930
+currenciesDisplayName.EUR=\u092f\u0942\u0930\u094b
+currenciesDisplayName.INR=\u092d\u093e\u0930\u0924\u0940\u092f \u0930\u0942\u092a\u092f\u093e
+currenciesDisplayName.GBP=\u092c\u094d\u0930\u093f\u0924\u093e\u0928\u0940 \u092a\u093e\u0909\u0902\u0921 \u0938\u094d\u091f\u0930\u094d\u0932\u093f\u0902\u0917
+currenciesDisplayName.NAD=\u0928\u093e\u092e\u0940\u092c\u093f\u092f\u093e\u0908 \u0921\u093e\u0932\u0930
+currenciesDisplayName.COP=\u0915\u094b\u0932\u092e\u094d\u092c\u093f\u092f\u093e\u0908 \u092a\u0940\u0938\u094b
+currenciesDisplayName.TRL=\u092a\u0941\u0930\u093e\u0928\u0940 \u0924\u0941\u0930\u094d\u0915\u0940 \u0932\u0940\u0930\u093e
+currenciesDisplayName.MAF=\u092e\u094b\u0930\u0915\u094d\u0915\u094b \u092b\u094d\u0930\u0948\u0902\u0915
+currenciesDisplayName.MAD=\u092e\u094b\u0930\u093e\u0915\u094d\u0915\u094b \u0926\u093f\u0930\u0939\u092e
+currenciesDisplayName.ITL=\u0907\u091f\u093e\u0932\u0935\u0940 \u0932\u0940\u0930\u093e
+currenciesDisplayName.MYR=\u092e\u0932\u0947\u0936\u093f\u092f\u093e\u0908 \u0930\u093f\u0902\u0917\u093f\u0924
+currenciesDisplayName.SRG=\u0938\u0942\u0930\u0940\u0928\u093e\u092e\u0940 \u0917\u093f\u0932\u094d\u0921\u0930
+currenciesDisplayName.SRD=\u0938\u0942\u0930\u0940\u0928\u093e\u092e\u0940 \u0921\u093e\u0932\u0930
+currenciesDisplayName.PLN=\u092a\u094b\u0932\u093f\u0936 \u0928\u092f\u093e \u091c\u093c\u094d\u0932\u0949\u091f\u0940
+currenciesDisplayName.VEB=\u0935\u0947\u0928\u0947\u091c\u093c\u0941\u090f\u0932\u093e\u0908 \u092c\u094b\u0932\u093f\u0935\u093e\u0930
+currenciesDisplayName.BOB=\u092c\u094b\u0932\u093f\u0935\u093f\u092f\u093e\u0908 \u092c\u094b\u0932\u093f\u0935\u093f\u092f\u093e\u0928\u094b
+currenciesDisplayName.CNY=\u091a\u0940\u0928\u0940 \u092f\u0941\u092f\u093e\u0928
+currenciesDisplayName.SEK=\u0938\u094d\u0935\u0940\u0921\u0928 \u0915\u094d\u0930\u094b\u0928\u093e
+currenciesDisplayName.AUD=\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e\u0908 \u0921\u0949\u0932\u0930
+currenciesDisplayName.SKK=\u0938\u094d\u0932\u094b\u0935\u093e\u0915 \u0915\u094b\u0930\u0941\u0928\u093e
+currenciesDisplayName.CHF=\u0938\u094d\u0935\u093f\u0938 \u092b\u093c\u094d\u0930\u0948\u0902\u0915
+currenciesDisplayName.PEN=\u092a\u0947\u0930\u0941\u0935\u093e\u0908 \u0928\u094d\u092f\u0942\u0935\u094b \u0938\u094b\u0932
+currenciesDisplayName.KRW=\u0926\u0915\u094d\u0937\u093f\u0923 \u0915\u094b\u0930\u093f\u092f\u093e\u0908 \u0935\u094b\u0928
+currenciesDisplayName.PKR=\u092a\u093e\u0915\u093f\u0938\u094d\u0924\u093e\u0928\u0940 \u0930\u0941\u092a\u092f\u093e
+currenciesDisplayName.TWD=\u0928\u092f\u093e \u0924\u093e\u0908\u0935\u093e\u0928\u0940 \u0921\u0949\u0932\u0930
+currenciesDisplayName.EGP=\u092e\u093f\u0938\u094d\u0930\u0940 \u092a\u093e\u0909\u0923\u094d\u0921
+currenciesDisplayName.MXN=\u092e\u0947\u0915\u094d\u0938\u093f\u0915\u094b \u092a\u0947\u0938\u094b
+currenciesDisplayName.CZK=\u091a\u0947\u0915 \u0915\u094b\u0930\u0941\u0928\u093e
+currenciesDisplayName.DZD=\u0905\u0932\u094d\u091c\u0940\u0930\u0940\u092f\u093e\u0908 \u0926\u093f\u0928\u093e\u0930
+currenciesDisplayName.TJS=\u0924\u091c\u093e\u0916\u0940 \u0938\u094b\u092e\u094b\u0928\u0940
+currenciesDisplayName.TJR=\u0924\u091c\u093e\u0916\u0940 \u0930\u0942\u092c\u0932
+currenciesDisplayName.ILS=\u0907\u0938\u094d\u0930\u093e\u0907\u0932\u0940 \u0936\u0947\u0915\u0947\u0932
+currenciesDisplayName.RWF=\u0930\u0935\u093e\u0902\u0921\u093e\u0908 \u092b\u094d\u0930\u0948\u0902\u0915
+currenciesDisplayName.SDP=\u092a\u0941\u0930\u093e\u0928\u093e \u0938\u0942\u0921\u093e\u0928\u0940 \u092a\u093e\u0909\u0902\u0921
+currenciesDisplayName.LRD=\u0932\u093e\u0908\u092c\u0947\u0930\u0940\u092f\u093e\u0908 \u0921\u093e\u0932\u0930
+currenciesDisplayName.SDG=\u0938\u0942\u0921\u093e\u0928\u0940 \u092a\u093e\u0909\u0902\u0921
+currenciesDisplayName.CAD=\u0915\u0928\u0947\u0921\u093f\u092f\u0928 \u0921\u0949\u0932\u0930
+currenciesDisplayName.BGN=\u092c\u0941\u0932\u094d\u0917\u093e\u0930\u093f\u092f\u093e\u0908 \u0932\u0947\u0935\u094d
+currenciesDisplayName.SDD=\u092a\u0941\u0930\u093e\u0928\u0940 \u0938\u0942\u0921\u093e\u0928\u0940 \u0926\u093f\u0928\u093e\u0930
+currenciesSymbol.INR=\u0930\u0941.
+currenciesSymbol.AMD=\u0926\u0930\u092e
+currenciesSymbol.RUB=\u0930\u0942\u092c\u0932
+currenciesSymbol.FJD=\u092b\u093c\u093f\u091c\u0940 \u0915\u093e \u0921\u093e\u0932\u0930
+currenciesSymbol.BRL=\u0930\u0940\u092f\u093e\u0932
+currenciesSymbol.CNY=\u092f\u0941\u092f\u093e\u0928
+currenciesSymbol.HKD=\u0939\u0949\u0902\u0917\u0915\u0949\u0902\u0917 \u0921\u0949\u0932\u0930
+currenciesSymbol.XXX=\u0967\u0968,\u0969\u096a\u096b.\u096c\u096e \u0930\u0941\u092a\u092f\u0947
+currenciesSymbol.CSD=\u0938\u0930\u094d\u092c\u093f\u092f\u093e\u0908 \u0926\u0940\u0928\u093e\u0930
+shortMonths=\u091c\u0928\u0935\u0930\u0940\u00ae\u092b\u093c\u0930\u0935\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u0905\u092a\u094d\u0930\u0948\u0932\u00ae\u092e\u0908\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u093e\u0908\u00ae\u0905\u0917\u0938\u094d\u0924\u00ae\u0938\u093f\u0924\u092e\u094d\u092c\u0930\u00ae\u0905\u0915\u094d\u091f\u0942\u092c\u0930\u00ae\u0928\u0935\u0902\u092c\u0930\u00ae\u0926\u093f\u0938\u0902\u092c\u0930\u00ae\u00ae
+months=\u091c\u0928\u0935\u0930\u0940\u00ae\u092b\u0930\u0935\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u0905\u092a\u094d\u0930\u0948\u0932\u00ae\u092e\u0908\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u093e\u0908\u00ae\u0905\u0917\u0938\u094d\u0924\u00ae\u0938\u093f\u0924\u092e\u094d\u092c\u0930\u00ae\u0905\u0915\u094d\u0924\u0942\u092c\u0930\u00ae\u0928\u0935\u092e\u094d\u092c\u0930\u00ae\u0926\u093f\u0938\u092e\u094d\u092c\u0930\u00ae\u00ae
+shortWeekdays=\u00ae\u0930\u0935\u093f\u00ae\u0938\u094b\u092e\u00ae\u092e\u0902\u0917\u0932\u00ae\u092c\u0941\u0927\u00ae\u0917\u0941\u0930\u0941\u00ae\u0936\u0941\u0915\u094d\u0930\u00ae\u0936\u0928\u093f\u00ae
+weekdays=\u00ae\u0930\u0935\u093f\u0935\u093e\u0930\u00ae\u0938\u094b\u092e\u0935\u093e\u0930\u00ae\u092e\u0902\u0917\u0932\u0935\u093e\u0930\u00ae\u092c\u0941\u0927\u0935\u093e\u0930\u00ae\u0917\u0941\u0930\u0942\u0935\u093e\u0930\u00ae\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930\u00ae\u0936\u0928\u093f\u0935\u093e\u0930\u00ae
+eras=\u0908\u0938\u093e \u092a\u0942\u0930\u094d\u0935\u00ae\u0938\u0928\u094d\u00ae
+ampms=\u092a\u0942\u0930\u094d\u0935\u093e\u0939\u094d\u0928\u00ae\u0905\u092a\u0930\u093e\u0939\u094d\u0928\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=India\u00ae\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u091f\u093f\u092e\u094b\u0930-\u0932\u0947\u0938\u094d\u0924
+territories.TK=\u091f\u094b\u0915\u0947\u0932\u094c
territories.TJ=\u0924\u093e\u091c\u093f\u0915\u093f\u0938\u094d\u0924\u093e\u0928
territories.TH=\u0925\u093e\u0907\u0932\u0948\u0902\u0921
territories.TG=\u091f\u094b\u0917\u094b
+territories.TF=\u092b\u093c\u094d\u0930\u0947\u0902\u091a \u0938\u0926\u0930\u094d\u0928 \u091f\u0947\u0930\u093f\u091f\u0930\u0940\u091c\u093c
territories.GY=\u0917\u0941\u092f\u093e\u0928\u093e
-territories.TD=\u091a\u093e\u0921
+territories.TD=\u091a\u0921
+territories.TC=\u0924\u0941\u0930\u094d\u0915\u094d \u0914\u0930\u094d \u0915\u0948\u0915\u094b\u091c\u093c \u0926\u094d\u0935\u0940\u092a
territories.GW=\u0917\u0940\u0928\u0940-\u092c\u093f\u0938\u093e\u0909
-territories.GT=\u0917\u094b\u0924\u0947\u0926\u093e\u0932\u093e
-territories.GR=\u0917\u094d\u0930\u0940\u0938
-territories.SZ=\u0938\u0941\u0906\u091c\u0940\u0932\u0948\u0902\u0921
+territories.GU=\u0917\u0941\u0906\u092e
+territories.GT=\u0917\u0941\u0906\u091f\u0947\u092e\u093e\u0932\u093e
+territories.GS=\u0926\u0915\u094d\u0937\u093f\u0923 \u091c\u094b\u0930\u094d\u091c\u093f\u092f\u093e \u0914\u0930 \u0926\u0915\u094d\u0937\u093f\u0923 \u0938\u0948\u0902\u0921\u0935\u0940\u091a \u0926\u094d\u0935\u0940\u092a
+territories.GR=\u092f\u0942\u0928\u093e\u0928
+territories.GQ=\u092d\u0942\u092e\u0927\u094d\u092f\u0940\u092f \u0917\u093f\u0928\u0940
+territories.GP=\u0917\u094d\u0935\u093e\u0921\u0947\u0932\u094b\u092a
+territories.SZ=\u0938\u094d\u0935\u093e\u091c\u093c\u0940\u0932\u0948\u0902\u0921
territories.SY=\u0938\u0940\u0930\u093f\u092f\u093e
+territories.GN=\u0917\u093f\u0928\u0940
+territories.GM=\u0917\u0948\u092e\u094d\u092c\u093f\u092f\u093e
+territories.GL=\u0917\u094d\u0930\u0940\u0928\u0932\u0948\u0902\u0921
territories.SV=\u0905\u0932 \u0938\u093e\u0932\u094d\u0935\u093e\u0921\u094b\u0930
+territories.062=\u0926\u0915\u094d\u0937\u093f\u0923-\u092e\u0927\u094d\u092f \u090f\u0936\u093f\u092f\u093e
territories.ST=\u0938\u093e\u0909-\u0924\u094b\u092e-\u092a\u094d\u0930\u093f\u0902\u0938\u093f\u092a
-territories.SR=\u0938\u0941\u0930\u093f\u0928\u093e\u092e
+territories.GI=\u091c\u093f\u092c\u094d\u0930\u093e\u0932\u094d\u091f\u0930
+territories.061=\u092a\u094b\u0932\u0940\u0928\u0947\u0936\u093f\u092f\u093e
+territories.GH=\u0918\u093e\u0928\u093e
+territories.SR=\u0938\u0942\u0930\u0940\u0928\u093e\u092e
+territories.GG=\u0917\u094d\u0935\u0947\u0930\u094d\u0928\u0938\u0947
+territories.GF=\u092b\u093c\u094d\u0930\u0947\u0902\u091a \u0917\u092f\u093e\u0928\u093e
+territories.GE=\u091c\u0949\u0930\u094d\u091c\u093f\u092f\u093e
territories.SO=\u0938\u094b\u092e\u093e\u0932\u093f\u092f\u093e
+territories.GD=\u0917\u094d\u0930\u0947\u0928\u0947\u0921\u093e
territories.SN=\u0938\u0947\u0928\u0947\u0917\u0932
territories.SM=\u0938\u0948\u0928 \u092e\u0947\u0930\u0940\u0928\u094b
+territories.GB=\u092c\u093f\u0930\u094d\u091f\u0947\u0928
territories.SL=\u0938\u093f\u092f\u0930\u093e\u0932\u0947\u0913\u0928
+territories.GA=\u0917\u0948\u092c\u0949\u0928
territories.SK=\u0938\u094d\u0932\u094b\u0935\u093e\u0915\u093f\u092f\u093e
+territories.SJ=\u0938\u094d\u0935\u093e\u0932\u094d\u092c\u093e\u0930\u094d\u0921 \u0914\u0930 \u091c\u0945\u0928 \u092e\u0947\u092f\u0928
territories.SI=\u0938\u094d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u093e
+territories.SH=\u0938\u0947\u0923\u094d\u200d\u091f \u0939\u0947\u0932\u0947\u0928\u093e
territories.SG=\u0938\u093f\u0902\u0917\u093e\u092a\u0941\u0930
territories.SE=\u0938\u094d\u0935\u0940\u0921\u0928
territories.SD=\u0938\u0942\u0921\u093e\u0928
+territories.SC=\u0938\u0947\u0936\u0947\u0932\u094d\u0938
+territories.SB=\u0938\u094b\u0932\u094b\u092e\u0928 \u0926\u094d\u0935\u0940\u092a
territories.SA=\u0938\u090a\u0926\u0940 \u0905\u0930\u092c
territories.FR=\u092b\u094d\u0930\u093e\u0902\u0938
+territories.FO=\u092b\u093c\u0948\u0930\u094b \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
+territories.FM=\u092e\u093e\u0907\u0915\u094d\u0930\u094b\u0928\u0947\u0936\u093f\u092f\u093e
territories.RW=\u0930\u0942\u0906\u0923\u094d\u0921\u093e
-territories.FJ=\u092b\u093f\u091c\u0940
+territories.FK=\u092b\u093c\u0949\u0915\u0932\u0948\u0902\u0921 \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
+territories.053=\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e \u090f\u0935\u0902 \u0928\u094d\u092f\u0942\u091c\u0940\u0932\u0948\u0902\u0921
territories.RU=\u0930\u0942\u0938
+territories.FJ=\u092b\u093f\u091c\u0940
territories.FI=\u092b\u093f\u0928\u0932\u0948\u0902\u0921
+territories.RS=\u0938\u0930\u094d\u092c\u093f\u092f\u093e
territories.RO=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e
+territories.RE=\u0930\u093f\u092f\u0942\u0928\u093f\u092f\u0928
territories.ET=\u0907\u0925\u093f\u092f\u094b\u092a\u093f\u092f\u093e
territories.ES=\u0938\u094d\u092a\u0947\u0928
territories.ER=\u0907\u0930\u093f\u091f\u094d\u0930\u093f\u092f\u093e
+territories.QU=\u092f\u0942\u0930\u094b\u092a\u0940\u092f \u0938\u0902\u0918
territories.EH=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u0938\u0939\u093e\u0930\u093e
territories.EG=\u092e\u093f\u0938\u094d\u0930
territories.EE=\u090f\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u093e
territories.EC=\u0907\u0915\u094d\u0935\u093e\u0921\u094b\u0930
territories.DZ=\u0905\u0932\u094d\u091c\u0940\u0930\u093f\u092f\u093e
territories.QA=\u0915\u0924\u0930
+territories.039=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u092f\u0942\u0930\u094b\u092a
territories.DO=\u0921\u094b\u092e\u093f\u0928\u093f\u0915\u0928 \u0917\u0923\u0930\u093e\u091c\u094d\u092f
territories.PY=\u092a\u093e\u0930\u093e\u0917\u0941\u090f
-territories.DM=\u0921\u094b\u092e\u093f\u0928\u093f\u0915\u093e
+territories.DM=\u0921\u094b\u092e\u093f\u0928\u093f\u0915
+territories.035=\u0926\u0915\u094d\u0937\u093f\u0923-\u092a\u0942\u0930\u094d\u0935 \u090f\u0936\u093f\u092f\u093e
+territories.PW=\u092a\u0932\u093e\u090a
+territories.034=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u090f\u0936\u093f\u092f\u093e
territories.DK=\u0921\u0947\u0928\u092e\u093e\u0930\u094d\u0915
territories.DJ=\u091c\u093f\u092c\u0942\u0924\u0940
territories.PT=\u092a\u0941\u0930\u094d\u0924\u0917\u093e\u0932
+territories.PS=\u092b\u093c\u093f\u0932\u093f\u0938\u094d\u0924\u0940\u0928
+territories.030=\u092a\u0942\u0930\u094d\u0935\u0940 \u090f\u0936\u093f\u092f\u093e
+territories.PR=\u092a\u0930\u094d\u091f\u094b \u0930\u0940\u0915\u094b
territories.DE=\u091c\u0930\u094d\u092e\u0928\u0940
+territories.PN=\u092a\u093f\u091f\u0915\u0947\u0930\u094d\u0928
+territories.PM=\u0938\u0947\u0923\u094d\u200d\u091f \u092a\u0940\u092f\u0930 \u0914\u0930 \u092e\u093f\u200d\u0915\u094d\u200d\u0935\u0947\u0932\u094b\u0928
territories.PL=\u092a\u094b\u0932\u0948\u0902\u0921
territories.PK=\u092a\u093e\u0915\u093f\u0938\u094d\u0924\u093e\u0928
territories.PH=\u092b\u093f\u0932\u0940\u092a\u093f\u0902\u0938
territories.PG=\u092a\u093e\u092a\u0941\u0906 \u0928\u094d\u092f\u0942 \u0917\u093f\u0928\u0940
+territories.PF=\u092b\u093c\u094d\u0930\u0947\u0902\u091a \u092a\u094b\u0932\u093f\u0928\u0947\u0936\u093f\u092f\u093e
territories.CZ=\u091a\u0947\u0915 \u0917\u0923\u0930\u093e\u091c\u094d\u092f
-territories.CY=\u0938\u093e\u0907\u092a\u094d\u0930\u0938
territories.PE=\u092a\u0947\u0930\u0942
-territories.CV=\u0915\u0948\u092a \u0935\u0930\u094d\u0924
-territories.CU=\u0915\u094d\u092f\u0942\u092c\u093e
+territories.CY=\u0938\u093e\u0907\u092a\u094d\u0930\u0938
+territories.CX=\u0915\u094d\u0930\u093f\u0938\u092e\u0938 \u0906\u0907\u0932\u0948\u0902\u0921
+territories.CV=\u0915\u0948\u092a \u0935\u0930\u094d\u0921\u0947
territories.PA=\u092a\u0928\u093e\u092e\u093e
+territories.CU=\u0915\u094d\u092f\u0942\u092c\u093e
+territories.CS=\u0938\u0930\u094d\u092c\u093f\u092f\u093e \u0935 \u092e\u0949\u0923\u094d\u091f\u0947\u0928\u0947\u0917\u094d\u0930\u094b
territories.CR=\u0915\u094b\u0938\u094d\u091f\u093e\u0930\u0940\u0915\u093e
+territories.029=\u0915\u0948\u0930\u093f\u092c\u093f\u092f\u0928
territories.CO=\u0915\u094b\u0932\u092e\u094d\u092c\u093f\u092f\u093e
territories.CN=\u091a\u0940\u0928
-territories.CM=\u0915\u093e\u092e\u0947\u0930\u093e\u0928
+territories.CM=\u0915\u0948\u092e\u0930\u0942\u0928
territories.CL=\u091a\u093f\u0932\u0940
-territories.CI=\u0906\u0908\u0935\u0930\u0940 \u0915\u094b\u0938\u094d\u091f
-territories.CH=\u0938\u094d\u0935\u093f\u0938
-territories.CG=\u0915\u093e\u0902\u0917\u094b
-territories.CF=\u0938\u0947\u0902\u091f\u094d\u0930\u0932 \u0905\u092b\u094d\u0930\u0940\u0915\u0928 \u0930\u093f\u092a\u092c\u094d\u0932\u093f\u0915
-territories.CC=\u0915\u093f\u0902\u0936\u093e\u0938\u093e
+territories.CK=\u0915\u0941\u0915 \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
+territories.021=\u0909\u0924\u094d\u0924\u0930\u0940 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
+territories.CI=\u0906\u0908\u0935\u0930\u0940 \u0924\u091f
+territories.CH=\u0938\u094d\u0935\u093f\u091f\u091c\u093c\u0930\u0932\u0948\u0902\u0921
+territories.CG=\u0915\u094b\u0902\u0917\u094b
+territories.CF=\u092e\u0927\u094d\u092f \u0905\u092b\u093c\u094d\u0930\u0940\u0915\u0940 \u0917\u0923\u0930\u093e\u091c\u094d\u092f
+territories.CD=\u0915\u094b\u0902\u0917\u094b \u091c\u0928\u0924\u093e\u0902\u0924\u094d\u0930\u093f\u0915 \u0917\u0923\u0924\u0902\u0924\u094d\u0930
+territories.CC=\u0915\u094b\u0915\u094b\u0938 \u0926\u094d\u0935\u0940\u092a
+territories.OM=\u0913\u092e\u093e\u0928
territories.CA=\u0915\u0928\u093e\u0921\u093e
-territories.BZ=\u092c\u0947\u0932\u093f\u091c
+territories.BZ=\u092c\u0947\u0932\u0940\u091c\u093c
territories.BY=\u092c\u0947\u0932\u093e\u0930\u0942\u0938
territories.BW=\u092c\u094b\u0924\u094d\u0938\u094d\u0935\u093e\u0928\u093e
+territories.BV=\u092c\u094b\u0935\u091f \u0906\u0907\u0932\u0948\u0902\u0921
territories.BT=\u092d\u0942\u091f\u093e\u0928
territories.BS=\u092c\u0939\u093e\u092e\u093e
-territories.BR=\u092c\u094d\u0930\u093e\u091c\u0940\u0932
+territories.BR=\u092c\u094d\u0930\u093e\u091c\u093c\u0940\u0932
+territories.019=\u0905\u092e\u0947\u0930\u0940\u0915\u093e\u0938
+territories.018=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u0905\u092b\u094d\u0930\u0940\u0915\u093e
+territories.NZ=\u0928\u094d\u092f\u0942 \u091c\u093c\u0940\u0932\u0948\u0923\u094d\u0921
+territories.017=\u092e\u0927\u094d\u092f \u0905\u092b\u094d\u0930\u0940\u0915\u093e
territories.BO=\u092c\u094b\u0932\u0940\u0935\u093f\u092f\u093e
-territories.BN=\u092c\u094d\u0930\u0942\u0928\u0907
+territories.BN=\u092c\u094d\u0930\u0941\u0928\u0947\u0908
+territories.015=\u0909\u0924\u094d\u0924\u0930\u0940 \u0905\u092b\u094d\u0930\u0940\u0915\u093e
+territories.BM=\u092c\u0930\u092e\u0942\u0921\u093e
+territories.014=\u092a\u0942\u0930\u094d\u0935\u0940 \u0905\u092b\u094d\u0930\u0940\u0915\u093e
+territories.013=\u092e\u0927\u094d\u092f \u0905\u092e\u0930\u0940\u0915\u093e
+territories.NU=\u0928\u0940\u092f\u0942
territories.BJ=\u092c\u0947\u0928\u093f\u0928
+territories.011=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u0905\u092b\u094d\u0930\u0940\u0915\u093e
territories.BI=\u092c\u0941\u0930\u0941\u0902\u0921\u0940
-territories.BH=\u092c\u0939\u0930\u0948\u0928
+territories.BH=\u092c\u0939\u0930\u0940\u0928
+territories.NR=\u0928\u0949\u0930\u0942
territories.BG=\u092c\u0941\u0932\u094d\u0917\u093e\u0930\u093f\u092f\u093e
-territories.BF=\u092c\u0930\u094d\u0915\u093f\u0928\u093e \u092b\u093e\u0938\u094b
+territories.BF=\u092c\u0941\u0930\u094d\u0915\u093f\u0928\u093e \u092b\u093c\u093e\u0938\u094b
+territories.NP=\u0928\u0947\u092a\u093e\u0932
territories.BE=\u092c\u0947\u0932\u094d\u091c\u093f\u092f\u092e
-territories.BD=\u092c\u0902\u0917\u0932\u093e\u0926\u0947\u0936
+territories.ZZ=\u0905\u091c\u094d\u091e\u093e\u0924 \u092a\u094d\u0930\u0926\u0947\u0936
+territories.NO=\u0928\u0949\u0930\u094d\u0935\u0947
+territories.BD=\u092c\u093e\u0901\u0917\u094d\u0932\u093e\u0926\u0947\u0936
territories.BB=\u092c\u093e\u0930\u092c\u093e\u0921\u094b\u0938
territories.ZW=\u091c\u093f\u092e\u094d\u092c\u093e\u092c\u094d\u0935\u0947
-territories.BA=\u092c\u094b\u0938\u0928\u093f\u092f\u093e \u0939\u0930\u094d\u091c\u093f\u0917\u094b\u0935\u093f\u0928\u093e
-territories.AZ=\u0905\u091c\u0930\u092c\u0948\u091c\u093e\u0928
+territories.NL=\u0928\u0940\u0926\u0930\u0932\u0948\u0923\u094d\u0921
+territories.BA=\u092c\u094b\u0938\u094d\u0928\u093f\u092f\u093e \u0914\u0930 \u0939\u0930\u094d\u091c\u093c\u093f\u0917\u094b\u0935\u093f\u0928\u093e
+territories.NI=\u0928\u093f\u0915\u093e\u0930\u093e\u0917\u0941\u0906
+territories.NG=\u0928\u093e\u0907\u091c\u0940\u0930\u093f\u092f\u093e
+territories.NF=\u0928\u0949\u0930\u092b\u093c\u0949\u0915 \u0906\u0907\u0932\u0948\u0902\u0921
+territories.AZ=\u0905\u091c\u093c\u0930\u094d\u092c\u0947\u091c\u093e\u0928
+territories.NE=\u0928\u093e\u0907\u091c\u0930
+territories.AX=\u0906\u0932\u0948\u0902\u0921 \u0906\u092f\u0932\u0948\u0902\u0921\u094d\u0938
+territories.NC=\u0928\u094d\u092f\u0942 \u0915\u0948\u0932\u0947\u0921\u094b\u0928\u093f\u092f\u093e
+territories.AW=\u0905\u0930\u0942\u092c\u093e
territories.ZM=\u091c\u093e\u092e\u094d\u092c\u093f\u092f\u093e
+territories.NA=\u0928\u093e\u092e\u0940\u092c\u093f\u092f\u093e
territories.AU=\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e
territories.AT=\u0911\u0938\u094d\u091f\u094d\u0930\u093f\u092f\u093e
+territories.AS=\u0905\u092e\u0947\u0930\u093f\u0915\u0928 \u0938\u092e\u094b\u0906
territories.AR=\u0905\u0930\u094d\u091c\u0947\u0928\u094d\u091f\u0940\u0928\u093e
-territories.AO=\u0905\u0902\u0917\u094b\u0932\u093e
+territories.AQ=\u0905\u0902\u091f\u093e\u0930\u094d\u091f\u093f\u0915
+territories.009=\u0913\u0936\u093f\u0906\u0928\u093f\u092f\u093e
territories.MZ=\u092e\u094b\u091c\u093e\u092e\u094d\u092c\u093f\u0915
+territories.AO=\u0905\u0902\u0917\u094b\u0932\u093e
territories.MY=\u092e\u0932\u0947\u0936\u093f\u092f\u093e
-territories.AM=\u0906\u0930\u094d\u092e\u0947\u0928\u093f\u092f\u093e
+territories.AN=\u0928\u0940\u0926\u0930\u0932\u0948\u0902\u0921\u094d\u0938 \u090f\u0902\u091f\u093f\u0932\u0940\u091c\u093c
territories.MX=\u092e\u0947\u0915\u094d\u0938\u093f\u0915\u094b
-territories.AL=\u0905\u0932\u094d\u092c\u093e\u0928\u093f\u092f\u093e
+territories.AM=\u0905\u0930\u094d\u092e\u0940\u0928\u093f\u092f\u093e
+territories.005=\u0926\u0915\u094d\u0937\u093f\u0923 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
territories.MW=\u092e\u0932\u093e\u0935\u0940
+territories.AL=\u0905\u0932\u094d\u092c\u093e\u0928\u093f\u092f\u093e
territories.MV=\u092e\u093e\u0932\u0926\u0940\u0935
+territories.003=\u0909\u0924\u094d\u0924\u0930 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
territories.ZA=\u0926\u0915\u094d\u0937\u093f\u0923 \u0905\u092b\u094d\u0930\u0940\u0915\u093e
-territories.MU=\u092e\u094c\u0930\u093f\u0938
+territories.MU=\u092e\u093e\u0930\u0940\u0936\u0938
+territories.002=\u0905\u092b\u094d\u0930\u0940\u0915\u093e
territories.MT=\u092e\u093e\u0932\u094d\u091f\u093e
-territories.AG=\u090f\u0928\u094d\u091f\u093f\u0917\u0941\u0935\u093e \u0914\u0930 \u092c\u093e\u0930\u092c\u0942\u0921\u093e
+territories.AI=\u090f\u0902\u0917\u0941\u0907\u0932\u093e
+territories.001=\u0926\u0941\u0928\u093f\u092f\u093e
+territories.MS=\u092e\u0949\u0928\u094d\u091f\u094d\u0938\u0947\u0930\u093e\u091f
territories.MR=\u092e\u0949\u0930\u093f\u091f\u093e\u0928\u093f\u092f\u093e
-territories.AF=\u0905\u092b\u0917\u093e\u0928\u093f\u0938\u094d\u0924\u093e\u0928
+territories.AG=\u090f\u0902\u091f\u093f\u0917\u0941\u0906 \u0914\u0930 \u092c\u0930\u092c\u0941\u0921\u093e
+territories.MQ=\u092e\u093e\u0930\u094d\u091f\u0940\u0928\u093f\u0915
+territories.AF=\u0905\u092b\u093c\u0917\u093e\u0928\u093f\u0938\u094d\u0924\u093e\u0928
+territories.MP=\u0909\u0924\u094d\u0924\u0930\u0940 \u092e\u093e\u0930\u093f\u092f\u093e\u0928\u093e \u0926\u094d\u0935\u0940\u092a
territories.AE=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0905\u0930\u092c \u0905\u092e\u0940\u0930\u093e\u0924
+territories.MO=\u092e\u0915\u093e\u0913
territories.AD=\u0905\u0928\u094d\u0921\u094b\u0930\u093e
territories.MN=\u092e\u0902\u0917\u094b\u0932\u093f\u092f\u093e
territories.MM=\u092e\u094d\u092f\u093e\u0928\u092e\u093e\u0930
territories.ML=\u092e\u093e\u0932\u0940
territories.MK=\u092e\u0948\u0938\u0947\u0921\u094b\u0928\u093f\u092f\u093e
+territories.YT=\u092e\u0948\u092f\u091f
+territories.MH=\u092e\u093e\u0930\u094d\u0936\u0932 \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
territories.MG=\u092e\u0926\u093e\u0917\u093e\u0938\u094d\u0915\u0930
+territories.MF=\u0938\u0902\u0924 \u092e\u093e\u0930\u094d\u091f\u0940\u0928
+territories.ME=\u092e\u094b\u0902\u091f\u0947\u0928\u0947\u0917\u094d\u0930\u094b
territories.MD=\u092e\u094b\u0932\u094d\u0921\u093e\u0935\u093f\u092f\u093e
territories.MC=\u092e\u094b\u0928\u093e\u0915\u094b
territories.MA=\u092e\u094b\u0930\u0915\u094d\u0915\u094b
territories.YE=\u092f\u092e\u0928
territories.LY=\u0932\u0940\u092c\u093f\u092f\u093e
-territories.LV=\u0932\u093e\u0924\u094d\u0935\u093f\u092f\u093e
+territories.LV=\u0932\u093e\u091f\u0935\u093f\u092f\u093e
+territories.155=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u092f\u0942\u0930\u094b\u092a\u094d
territories.LU=\u0932\u0915\u094d\u0938\u092e\u092c\u0930\u094d\u0917
+territories.154=\u0909\u0924\u094d\u0924\u0930\u0940 \u092f\u0942\u0930\u094b\u092a
territories.LT=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u093e
territories.LS=\u0932\u0947\u0938\u094b\u0925\u094b
territories.LR=\u0932\u093e\u0907\u092c\u0947\u0930\u093f\u092f\u093e
+territories.151=\u092a\u0942\u0930\u094d\u0935\u0940 \u092f\u0942\u0930\u094b\u092a
+territories.150=\u092f\u0942\u0930\u094b\u092a
territories.LK=\u0936\u094d\u0930\u0940\u0932\u0902\u0915\u093e
territories.LI=\u0932\u093f\u0915\u091f\u0947\u0902\u0938\u094d\u091f\u0940\u0928
territories.LC=\u0938\u0947\u0902\u091f \u0932\u0942\u0938\u093f\u092f\u093e
territories.LB=\u0932\u0947\u092c\u0928\u093e\u0928
territories.LA=\u0932\u093e\u0913\u0938
-territories.KZ=\u0915\u091c\u093e\u0916\u0938\u094d\u0924\u093e\u0928
+territories.KZ=\u0915\u091c\u093c\u093e\u0915\u0938\u094d\u0924\u093e\u0928
+territories.KY=\u0915\u0947\u092e\u0948\u0928 \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
territories.KW=\u0915\u0941\u0935\u0948\u0924
+territories.145=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u0910\u0936\u093f\u092f\u093e
+territories.143=\u092e\u0927\u094d\u092f \u090f\u0936\u093f\u092f\u093e
+territories.142=\u090f\u0936\u093f\u092f\u093e
territories.KR=\u0926\u0915\u094d\u0937\u093f\u0923 \u0915\u094b\u0930\u093f\u092f\u093e
territories.KP=\u0909\u0924\u094d\u0924\u0930 \u0915\u094b\u0930\u093f\u092f\u093e
territories.KN=\u0938\u0947\u0902\u091f \u0915\u093f\u091f\u094d\u0938 \u0914\u0930 \u0928\u0947\u0935\u093f\u0938
-territories.KM=\u0915\u094b\u092e\u094b\u0930\u0938
-territories.KH=\u0915\u092e\u094d\u092c\u094b\u0921\u093f\u092f\u093e
-territories.KG=\u0915\u093f\u0930\u094d\u0917\u093f\u091c
+territories.KM=\u0915\u094b\u092e\u094b\u0930\u094b\u0938
+territories.KI=\u0915\u093f\u0930\u093f\u092c\u0924\u0940
+territories.WS=\u0938\u092e\u094b\u0906
+territories.KH=\u0915\u0902\u092c\u094b\u0921\u093f\u092f\u093e
+territories.KG=\u0915\u093c\u093f\u0930\u094d\u0917\u093f\u0938\u094d\u0924\u093e\u0928
territories.KE=\u0915\u0947\u0928\u094d\u092f\u093e
+territories.WF=\u0935\u093e\u0932\u093f\u0938 \u0914\u0930 \u092b\u093c\u094d\u092f\u0942\u091a\u0942\u0928\u093e
territories.JP=\u091c\u093e\u092a\u093e\u0928
-territories.JO=\u091c\u094b\u0930\u094d\u0921\u0928
-territories.JM=\u091c\u092e\u093e\u0907\u0915\u093e
+territories.JO=\u091c\u0949\u0930\u094d\u0921\u0928
+territories.JM=\u091c\u0948\u092e\u0947\u0915\u093e
territories.VU=\u0935\u093e\u0928\u0941\u0905\u0924\u0941
+territories.JE=\u091c\u0930\u094d\u0938\u0940
territories.VN=\u0935\u093f\u092f\u0924\u0928\u093e\u092e
-territories.VI=\u0908\u0909, \u090f\u0938 \u0935\u0930\u094d\u091c\u0940\u0928 \u0906\u0908\u0932\u0948\u0902\u0921\u0938\u094d
-territories.VG=\u092c\u094d\u0930\u093f\u091f\u093f\u0936 \u0935\u0930\u094d\u091c\u0940\u0928 \u090c\u0908\u0932\u0948\u0902\u0921\u0938\u094d
+territories.VI=\u0905\u092e\u0947\u0930\u093f\u0915\u0940 \u0935\u0930\u094d\u091c\u093f\u0928 \u091f\u093e\u092a\u0942
+territories.VG=\u092c\u094d\u0930\u093f\u091f\u093f\u0936 \u0935\u0930\u094d\u091c\u093f\u0928 \u091f\u093e\u092a\u0942
territories.VE=\u0935\u0947\u0928\u0947\u091c\u0941\u090f\u0932\u093e
-territories.VA=\u0935\u0948\u091f\u093f\u0915\u0928
+territories.VC=\u0938\u0947\u0902\u091f \u0935\u093f\u0902\u0938\u0947\u0902\u091f \u0914\u0930 \u0926 \u0917\u094d\u0930\u0947\u0928\u093e\u0921\u093e\u0907\u0928\u094d\u0938
+territories.VA=\u0935\u0947\u091f\u093f\u0915\u0928
territories.IT=\u0907\u091f\u0932\u0940
territories.IS=\u0906\u0907\u0938\u0932\u0948\u0902\u0921
territories.IR=\u0908\u0930\u093e\u0928
territories.IQ=\u0907\u0930\u093e\u0915
-territories.UZ=\u0909\u091c\u092c\u0947\u0915\u093f\u0938\u094d\u0924\u093e\u0928
-territories.UY=\u092f\u0941\u0930\u0942\u0917\u0941\u090f
+territories.UZ=\u0909\u091c\u093c\u094d\u092c\u0947\u0915\u093f\u0938\u094d\u0924\u093e\u0928
+territories.IO=\u092c\u094d\u0930\u093f\u0924\u093e\u0928\u0940 \u092d\u093e\u0930\u0924\u0940\u092f \u092e\u0939\u093e\u0938\u093e\u0917\u0930 \u0915\u094d\u0937\u0947\u0924\u094d\u0930
+territories.UY=\u0909\u0930\u0942\u0917\u094d\u0935\u0947
territories.IN=\u092d\u093e\u0930\u0924
-territories.IL=\u0907\u0938\u0930\u093e\u0907\u0932
-territories.US=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0905\u092e\u0930\u093f\u0915\u093e
+territories.IL=\u0907\u091c\u0930\u093e\u0907\u0932
+territories.US=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0905\u092e\u0947\u0930\u093f\u0915\u093e
territories.IE=\u0906\u092f\u0930\u0932\u0948\u0902\u0921
territories.ID=\u0907\u0902\u0921\u094b\u0928\u0947\u0936\u093f\u092f\u093e
+territories.UM=\u092f\u0941\u0928\u093e\u0907\u091f\u0947\u0921 \u0938\u094d\u091f\u0947\u091f\u094d\u0938 \u091b\u094b\u091f\u0947 \u0906\u0909\u091f\u0932\u093e\u0907\u0902\u0917 \u0926\u094d\u0935\u0940\u092a
territories.UG=\u092f\u0941\u0917\u093e\u0902\u0921\u093e
territories.UA=\u092f\u0942\u0915\u094d\u0930\u0947\u0928
territories.HU=\u0939\u0902\u0917\u0930\u0940
territories.HT=\u0939\u093e\u0907\u0924\u0940
-territories.HR=\u0915\u094d\u0930\u094b\u0936\u093f\u092f\u093e
-territories.TZ=\u0924\u0902\u091c\u093e\u0928\u093f\u092f\u093e
-territories.HN=\u0939\u093e\u0923\u094d\u0921\u0942\u0930\u0938
+territories.HR=\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u093e
+territories.TZ=\u0924\u0902\u091c\u093c\u093e\u0928\u093f\u092f\u093e
+territories.HN=\u0939\u094c\u0902\u0921\u0941\u0930\u0938
+territories.HM=\u0939\u0930\u094d\u0921 \u0906\u0907\u0932\u0948\u0902\u0921 \u0910\u0902\u0921 \u092e\u0948\u0915\u094d\u0921\u094b\u0928\u093e\u0932\u094d\u0921 \u0906\u0907\u0932\u0948\u0902\u0921\u094d\u0938
territories.TW=\u0924\u093e\u0907\u0935\u093e\u0928
territories.TV=\u0924\u0941\u0935\u093e\u0932\u0941
-territories.TT=\u091f\u094d\u0930\u093f\u0928\u093f\u0921\u093e\u0921 \u0914\u0930 \u091f\u094b\u092c\u0948\u0917\u094b
+territories.HK=\u0939\u093e\u0902\u0917\u0915\u093e\u0902\u0917
+territories.TT=\u0924\u094d\u0930\u093f\u0928\u093f\u0926\u093e\u0926 \u0914\u0930 \u091f\u094b\u092c\u0948\u0917\u094b
territories.TR=\u0924\u0941\u0930\u094d\u0915\u0940
territories.TO=\u091f\u094b\u0902\u0917\u093e
territories.TN=\u0924\u0941\u0928\u093f\u0936\u093f\u092f\u093e
territories.TM=\u0924\u0941\u0930\u094d\u0915\u092e\u0947\u0928\u093f\u0938\u094d\u0924\u093e\u0928
-languages.es=\u0938\u094d\u092a\u0947\u0928\u093f\u0936
+languages.la=\u0932\u0948\u091f\u0940\u0928
+languages.xh=\u0939\u094b\u0938\u093e
+languages.ky=\u0915\u093f\u0930\u0917\u093f\u091c\u093c
languages.ku=\u0915\u0941\u0930\u0926\u0940\u0936
-languages.eo=\u090f\u0938\u094d\u092a\u0947\u0930\u093e\u0928\u094d\u0924\u094b
-languages.en=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u0940
-languages.ks=\u0915\u093e\u0936\u094d\u092e\u093f\u0930\u0940
-languages.el=\u0917\u094d\u0930\u0940\u0915
-languages.qu=\u0915\u094d\u0935\u0947\u0936\u0941\u0906
-languages.ko=\u0915\u094b\u0930\u0940\u092f\u0928\u094d
+languages.ks=\u0915\u0936\u094d\u092e\u0940\u0930\u0940
+languages.ko=\u0915\u094b\u0930\u093f\u092f\u093e\u0908
languages.kn=\u0915\u0928\u094d\u0928\u0921\u093c
-languages.km=\u0915\u0948\u092e\u094d\u092c\u094b\u0921\u093f\u092f\u0928\u094d
-languages.kok=\u0915\u094b\u0902\u0915\u0923\u0940
-languages.kl=\u0917\u094d\u0930\u0940\u0928\u0932\u0948\u0902\u0921\u093f\u0915
-languages.kk=\u0915\u095b\u093e\u0916
+languages.km=\u0916\u092e\u0947\u0930
+languages.kl=\u0915\u0932\u093e\u0932\u0940\u0938\u0942\u0924
+languages.kk=\u0915\u091c\u093c\u093e\u0916
+languages.ira=\u0908\u0930\u093e\u0928\u0940 \u092d\u093e\u0937\u093e
+languages.en_GB=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940 (\u092f\u0942 \u0915\u0947)
+languages.grc=\u092a\u094d\u0930\u093e\u091a\u0940\u0928 \u092f\u0942\u0928\u093e\u0928\u0940
languages.wo=\u0935\u094b\u0932\u094b\u092b
-languages.raj=\u0930\u093e\u091c\u0947\u0938\u094d\u0925\u093e\u0928\u0940
-languages.ka=\u091c\u0949\u0930\u094d\u091c\u0940\u092f\u0928\u094d
-languages.dz=\u092d\u0941\u091f\u093e\u0928\u0940
-languages.jv=\u091c\u093e\u0935\u093e\u0928\u0940\u0938
-languages.pt=\u092a\u0941\u0930\u094d\u0924\u0941\u0917\u0940
-languages.ps=\u092a\u0949\u0936\u0924\u094b (\u092a\u0941\u0936\u0924\u094b)
-languages.de=\u095b\u0930\u094d\u092e\u0928
-languages.pl=\u092a\u0949\u0932\u093f\u0936
-languages.da=\u0921\u0948\u0928\u0940\u0936
+languages.art=\u0915\u0943\u0924\u094d\u0930\u093f\u092e \u092d\u093e\u0937\u093e
+languages.ka=\u091c\u0949\u0930\u094d\u091c\u093f\u092f\u0928
+languages.afh=\u0905\u092b\u094d\u0930\u0940\u0932\u0940\u092f\u093e\u0908
+languages.arp=\u0905\u0930\u093e\u092b\u093e\u0913
+languages.nwc=\u092a\u093e\u0930\u092e\u094d\u092a\u0930\u093f\u0915 \u0928\u0947\u0935\u093e\u0930\u0940
+languages.afa=\u0905\u092b\u094d\u0930\u094b-\u090f\u0936\u093f\u092f\u093e\u0908 \u092d\u093e\u0937\u093e\u0910
+languages.jv=\u091c\u093e\u0935\u093e\u0908
+languages.mdr=\u092e\u0902\u0926\u093e\u0930
+languages.arc=\u0905\u0930\u093e\u092e\u0940
+languages.cel=\u0915\u0947\u0932\u094d\u091f \u092d\u093e\u0937\u093e
languages.vo=\u0935\u094b\u0932\u093e\u092a\u0941\u0915
languages.ja=\u091c\u093e\u092a\u093e\u0928\u0940
-languages.vi=\u0935\u093f\u092f\u0947\u0924\u0928\u093e\u092e\u0940
-languages.cy=\u0935\u0947\u0932\u094d\u0936
-languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
-languages.cs=\u091a\u0947\u0915
+languages.vi=\u0935\u093f\u092f\u0924\u0928\u093e\u092e\u0940
languages.iu=\u0907\u0928\u0942\u0915\u0940\u091f\u0942\u0924\u094d
-languages.co=\u0915\u094b\u0930\u094d\u0938\u0940\u0915\u0928
-languages.it=\u0908\u091f\u093e\u0932\u093f\u092f\u0928\u094d
-languages.is=\u0906\u0908\u0938\u094d\u0932\u0948\u0902\u0921\u093f\u0915\u094d
-languages.uz=\u0909\u095b\u092c\u0947\u0915\u094d
-languages.or=\u0909\u0921\u093c\u093f\u092f\u093e
+languages.it=\u0907\u0924\u093e\u0932\u0935\u0940
+languages.is=\u0906\u0907\u0938\u0932\u0948\u0902\u0921\u093f\u0915
+languages.uz=\u0909\u091c\u093c\u094d\u092c\u0947\u0915
languages.ik=\u0907\u0928\u0941\u092a\u093f\u092f\u093e\u0915\u094d
-languages.ur=\u090a\u0930\u094d\u0926\u0941
-languages.om=\u0913\u0930\u094b\u092e\u094b (\u0905\u092b\u093c\u093e\u0928)
-languages.ca=\u0915\u093e\u0924\u093e\u0932\u093e\u0928
+languages.ur=\u0909\u0930\u094d\u0926\u0942
languages.ie=\u0908\u0928\u094d\u091f\u0930\u0932\u093f\u0902\u0917\u0941\u0907
-languages.id=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0936\u093f\u092f\u0928\u094d
-languages.uk=\u092f\u0942\u0915\u094d\u0930\u0947\u0928\u093f\u092f\u0928\u094d
+languages.kcg=kcg
+languages.id=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0936\u093f\u092f\u093e\u0908
languages.ia=\u0908\u0928\u094d\u091f\u0930\u0932\u093f\u0902\u0917\u0941\u0906
-languages.oc=\u0913\u0938\u0940\u091f\u093e\u0928
-languages.ug=\u0909\u0908\u0918\u0941\u0930
-languages.hy=\u0905\u0930\u092e\u0947\u0928\u093f\u092f\u0928\u094d
-languages.br=\u092c\u094d\u0930\u0947\u091f\u0928
-languages.hu=\u0939\u0902\u0917\u0947\u0930\u0940
-languages.bo=\u0924\u093f\u092c\u094d\u092c\u0924\u0940
-languages.bn=\u092c\u0901\u0917\u093e\u0932\u0940
-languages.hr=\u0915\u094d\u0930\u094b\u090f\u0936\u0928\u094d
-languages.bi=\u092c\u093f\u0938\u094d\u0932\u093e\u092e\u093e
+languages.uk=\u092f\u0942\u0915\u094d\u0930\u0947\u0928\u0940
+languages.kok=\u0915\u094b\u0902\u0915\u0923\u0940
+languages.ug=\u0909\u0907\u0918\u0941\u0930
+languages.und=\u0905\u091c\u094d\u091e\u093e\u0924 \u092d\u093e\u0937\u093e
+languages.him=\u0939\u093f\u092e\u093e\u0902\u091a\u0932\u0940
+languages.hy=\u0905\u0930\u094d\u092e\u0940\u0928\u093f\u092f\u093e\u0908
+languages.got=\u0917\u0949\u0925\u093f\u0915
+languages.es_ES=\u0908\u0935\u0947\u0930\u093f\u092f\u093e\u0908 \u0938\u094d\u092a\u0947\u0928\u093f\u0936
+languages.hu=\u0939\u0902\u0917\u0947\u0930\u093f\u092f\u0928
+languages.hr=\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u093e\u0908
+languages.hup=\u0939\u0942\u092a\u093e
+languages.gon=\u0917\u093e\u0901\u0921\u0940
+languages.fil=\u092b\u093f\u0932\u093f\u092a\u093f\u0928\u094b
+languages.sat=\u0938\u0902\u0924\u093e\u0932\u0940
+languages.apa=\u0905\u092a\u093e\u091a\u0947 \u092d\u093e\u0937\u093e
languages.tw=\u091f\u094d\u0935\u0940
-languages.bh=\u092c\u093f\u0939\u093e\u0930\u0940
-languages.bg=\u092c\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u0928\u094d
languages.tt=\u091f\u093e\u091f\u0930
-languages.no=\u0928\u093e\u0930\u094d\u0935\u0947\u091c\u0940\u092f\u0928\u094d
-languages.be=\u092c\u0948\u0932\u094b\u0930\u0942\u0936\u093f\u092f\u0928\u094d
+languages.hi=\u0939\u093f\u0928\u094d\u0926\u0940
languages.ts=\u0938\u094b\u0902\u0917\u093e
-languages.hi=\u0939\u093f\u0902\u0926\u0940
-languages.tr=\u0924\u0941\u0915\u094d\u0930\u0940\u0936
-languages.nl=\u0921\u091a\u094d
-languages.zu=\u095b\u0941\u0932\u0942
-languages.ba=\u092c\u0936\u0959\u093f\u0930
+languages.tr=\u0924\u0941\u0930\u094d\u0915\u0940
+languages.he=\u0939\u0940\u092c\u094d\u0930\u0942
languages.to=\u091f\u094b\u0902\u0917\u093e
-languages.he=\u0939\u093f\u092c\u094d\u0930\u0940\u090a
-languages.tn=\u0938\u0947\u0924\u094d\u0938\u094d\u0935\u093e\u0928\u093e
-languages.tl=\u0924\u093e\u0917\u093e\u0932\u094b\u0917
+languages.tn=\u0938\u094d\u0935\u093e\u0928\u093e
+languages.mni=\u092e\u0923\u093f\u092a\u0942\u0930\u0940
+languages.tl=\u0924\u0917\u093e\u0932\u094b\u0917
+languages.ach=\u0905\u0915\u094b\u0932\u0940
+languages.ha=\u0939\u094c\u0938\u093e
languages.tk=\u0924\u0941\u0915\u094d\u0930\u092e\u0947\u0928
-languages.ha=\u0939\u094b\u0909\u0938\u093e
-languages.ne=\u0928\u0947\u092a\u093e\u0932\u0940
-languages.az=\u0905\u095b\u0930\u092c\u0948\u0902\u091c\u093e\u0928\u0940
-languages.ti=\u0924\u093f\u0917\u094d\u0930\u0940\u0928\u094d\u092f\u093e
-languages.ay=\u0906\u092f\u092e\u093e\u0930\u093e
+languages.dum=\u092e\u0927\u094d\u092f \u092a\u0941\u0930\u094d\u0924\u0917\u093e\u0932\u0940
+languages.ti=\u091f\u093f\u0917\u094d\u0930\u093f\u0928\u094d\u092f\u093e
languages.th=\u0925\u093e\u0908
languages.tg=\u0924\u093e\u091c\u093f\u0915\u094d
-languages.na=\u0928\u093e\u092f\u0930\u0942
-languages.te=\u0924\u0947\u0932\u0947\u0917\u0941
-languages.zh=\u091a\u0940\u0928\u0940
-languages.as=\u0905\u0938\u093e\u092e\u0940
-languages.ar=\u0905\u0930\u092c\u0940
+languages.te=\u0924\u0947\u0932\u0941\u0917\u0941
+languages.smi=\u0938\u093e\u092e\u0940 \u092d\u093e\u0937\u093e
languages.ta=\u0924\u092e\u093f\u0932
-languages.gu=\u0917\u0941\u095b\u0930\u093e\u0924\u0940
-languages.my=\u092c\u0930\u094d\u0932\u093f\u0938
-languages.am=\u0905\u092e\u094d\u0939\u093e\u0930\u093f\u0915\u094d
-languages.za=\u095b\u0941\u0906\u0902\u0917
-languages.mt=\u092e\u093e\u0932\u091f\u093f\u0938\u094d
-languages.ms=\u092e\u0932\u092f
+languages.gu=\u0917\u0941\u091c\u0930\u093e\u0924\u0940
languages.gn=\u0917\u0941\u0906\u0930\u093e\u0928\u0940
languages.sw=\u0938\u094d\u0935\u093e\u0939\u093f\u0932\u0940
-languages.mr=\u092e\u0930\u093e\u0920\u0940
-languages.sv=\u0938\u094d\u0935\u093f\u0921\u093f\u0936
languages.gl=\u0917\u0948\u0932\u093f\u0936\u093f\u092f\u0928\u094d
-languages.su=\u0938\u0941\u0928\u094d\u0926\u093e\u0928\u0940\u0938
-languages.af=\u0905\u092b\u094d\u0930\u0940\u0915\u0940
+languages.sv=\u0938\u094d\u0935\u0940\u0921\u093f\u0936
+languages.su=\u0938\u0941\u0902\u0921\u093e\u0928\u0940
languages.st=\u0938\u0947\u0938\u094b\u0925\u094b
-languages.mo=\u092e\u094b\u0932\u0921\u093e\u0935\u093f\u092f\u0928\u094d
-languages.ss=\u0938\u0940\u0938\u094d\u0935\u093e\u091f\u093f
-languages.mn=\u092e\u094b\u0902\u0917\u094b\u0932\u093f\u092f\u0928
-languages.sr=\u0938\u0930\u094d\u092c\u093f\u092f\u0928\u094d
-languages.sq=\u0905\u0932\u094d\u092c\u0947\u0928\u093f\u092f\u0928\u094d
-languages.ml=\u092e\u0932\u092f\u093e\u0932\u092e
-languages.ab=\u0905\u092c\u094d\u0916\u093e\u095b\u093f\u092f\u0928\u094d
-languages.mk=\u092e\u0948\u0938\u0947\u0921\u094b\u0928\u093f\u092f\u0928\u094d
-languages.aa=\u0905\u092b\u093c\u093e\u0930
+languages.ss=\u0938\u094d\u0935\u093e\u0924\u0940
+languages.gay=\u0917\u093e\u092f\u094b
+languages.sr=\u0938\u0930\u094d\u092c\u093f\u092f\u093e\u0908
+languages.sq=\u0905\u0932\u094d\u092c\u0947\u0928\u093f\u092f\u093e\u0908
+languages.bho=\u092d\u094b\u091c\u092a\u0941\u0930\u0940
+languages.en_CA=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940(\u0915\u0928\u093e\u0921\u093e\u0908)
languages.so=\u0938\u094b\u092e\u093e\u0932\u0940
+languages.gd=\u0938\u094d\u0915\u0949\u091f\u094d\u0938 \u0917\u0947\u0932\u093f\u0915
languages.sn=\u0938\u094b\u0923\u093e
-languages.mi=\u092e\u0947\u0913\u0930\u0940
-languages.gd=\u0938\u094d\u0915\u093e\u091f\u094d\u0938\u094d \u0917\u093e\u092f\u0947\u0932\u093f\u0915\u094d
languages.sm=\u0938\u093e\u092e\u094b\u0928
-languages.sl=\u0938\u094d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u0928\u094d
-languages.mg=\u092e\u093e\u0932\u093e\u0917\u093e\u0938\u0940
+languages.sl=\u0938\u094d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u093e\u0908
+languages.ga=\u0906\u092f\u0930\u093f\u0936
languages.sk=\u0938\u094d\u0932\u094b\u0935\u093e\u0915\u094d
-languages.ga=\u0906\u0908\u0930\u093f\u0936
-languages.yo=\u092f\u094b\u0930\u0942\u092c\u093e
languages.si=\u0936\u093f\u0902\u0918\u093e\u0932\u0940\u0938\u094d
-languages.sh=\u0938\u0947\u0930\u094d\u092c\u094b-\u0915\u094d\u0930\u094b\u090f\u0936\u0928\u094d
-languages.sg=\u0938\u093e\u0901\u0917\u094d\u0930\u094b
-languages.yi=\u092f\u0947\u0939\u0941\u0926\u0940
+languages.anp=\u0905\u0902\u0917\u0940\u0915\u093e
+languages.sh=\u0938\u0930\u094d\u092c\u094b-\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u093e\u0908
+languages.sg=\u0938\u093e\u0902\u0917\u094b
+languages.myn=\u092e\u093e\u092f\u093e \u092d\u093e\u0937\u093e
+languages.fy=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u092b\u093c\u094d\u0930\u093f\u0938\u093f\u092f\u093e\u0908
languages.sd=\u0938\u093f\u0928\u094d\u0927\u0940
-languages.fy=\u092b\u094d\u0930\u0940\u091c\u093c\u0928\u094d
languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924
-languages.fr=\u092b\u094d\u0930\u0947\u0902\u091a
-languages.lv=\u0932\u093e\u091f\u0935\u093f\u092f\u0928\u094d (\u0932\u0947\u091f\u094d\u091f\u0940\u0936)
-languages.fo=\u092b\u093f\u0930\u094b\u095b\u0940
-languages.lt=\u0932\u093f\u0925\u0941\u0928\u093f\u092f\u0928\u094d
+languages.cau=\u0915\u093e\u0915\u0947\u0936\u0940 \u092d\u093e\u0937\u093e
+languages.ang=\u092a\u0941\u0930\u093e\u0928\u0940 \u0905\u0902\u0917\u094d\u0930\u0947\u091c\u0940
+languages.fr=\u092b\u094d\u0930\u093e\u0902\u0938\u093f\u0938\u0940
+languages.sla=\u0938\u094d\u0932\u094b\u0935\u093f\u092f\u093e\u0908 \u092d\u093e\u0937\u093e
+languages.fo=\u092b\u093c\u0930\u094b\u0908\u091c\u093c
languages.rw=\u0915\u093f\u0928\u094d\u092f\u093e\u0930\u0935\u093e\u0923\u094d\u0921\u093e
-languages.root=\u0936\u093f\u0916\u0930
-languages.ru=\u0930\u0941\u0938\u0940
-languages.fj=\u095e\u0940\u091c\u0940
-languages.lo=\u0932\u093e\u0913\u0925\u0940\u092f\u0928\u094d
+languages.ru=\u0930\u0942\u0938\u0940
+languages.fj=\u092b\u093c\u0940\u091c\u0940
+languages.cai=\u092e\u0927\u094d\u092f \u0905\u092e\u0947\u0930\u093f\u0915\u0940 \u092d\u093e\u0930\u0924\u0940\u092f \u092d\u093e\u0937\u093e
languages.fi=\u092b\u093f\u0928\u093f\u0936
-languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
-languages.ro=\u0930\u0942\u092e\u093e\u0928\u0940\u092f\u0928\u094d
-languages.rn=\u0915\u093f\u0930\u0942\u0928\u094d\u0926\u0940
+languages.ro=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e\u0908
+languages.rn=\u0930\u0941\u0928\u094d\u0926\u0940
languages.rm=\u0930\u0939\u0947\u092f\u094d\u091f\u094b-\u0930\u094b\u092e\u093e\u0928\u094d\u0938
-languages.fa=\u092a\u0930\u094d\u0936\u093f\u092f\u0928\u094d
-languages.la=\u0932\u0948\u091f\u0940\u0928
-languages.xh=\u0937\u094b\u0938\u093e
+languages.fa=\u092b\u093e\u0930\u0938\u0940
+languages.pt_PT=\u0908\u0935\u0947\u0930\u093f\u092f\u093e\u0908 \u092a\u0941\u0930\u094d\u0924\u0917\u093e\u0932\u0940
+languages.pra=\u092a\u094d\u0930\u093e\u0915\u0943\u0924
+languages.es_419=\u0932\u0947\u091f\u093f\u0928 \u0905\u092e\u0947\u0930\u093f\u0915\u0940 \u0938\u094d\u092a\u0947\u0928\u093f\u0936
+languages.en_AU=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940 (\u0911\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e)
+languages.new=\u0928\u0947\u0935\u093e\u0921\u0940
+languages.peo=\u092a\u0941\u0930\u093e\u0928\u0940 \u092b\u093e\u0930\u0938\u0940
languages.eu=\u092c\u093e\u0938\u094d\u0915\u094d
-languages.et=\u0910\u0938\u094d\u0924\u094b\u0928\u093f\u092f\u0928\u094d
-languages.ky=\u0915\u093f\u0930\u0918\u093f\u095b
+languages.et=\u090d\u0938\u094d\u091f\u094b\u0928\u0940
+languages.es=\u0938\u094d\u092a\u0947\u0928\u093f\u0936
+languages.eo=\u090d\u0938\u094d\u092a\u0947\u0930\u093e\u0928\u094d\u0924\u094b
+languages.en=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940
+languages.el=\u0917\u094d\u0930\u0940\u0915
+languages.qu=\u0915\u094d\u0935\u0947\u0936\u0941\u0906
+languages.fro=\u092a\u0941\u0930\u093e\u0928\u0940 \u092b\u094d\u0930\u093e\u0902\u0938\u0940\u0938\u0940
+languages.mwr=\u092e\u093e\u0930\u0935\u093e\u0921\u0940
+languages.dz=\u092d\u0941\u091f\u093e\u0928\u0940
+languages.mwl=\u092e\u093f\u0930\u093e\u0902\u0921\u0940
+languages.dra=\u0926\u094d\u0930\u0935\u093f\u0923 \u092d\u093e\u0937\u093e
+languages.bra=\u092c\u094d\u0930\u091c
+languages.pt_BR=\u092a\u0941\u0930\u094d\u0924\u0917\u093e\u0932\u0940 (\u092c\u094d\u0930\u093e\u091c\u093c\u0940\u0932)
+languages.pt=\u092a\u0941\u0930\u094d\u0924\u0917\u093e\u0932\u0940
+languages.ps=\u092a\u0949\u0936\u0924\u094b (\u092a\u0941\u0936\u0924\u094b)
+languages.de=\u091c\u0930\u094d\u092e\u0928
+languages.sit=\u091a\u0940\u0928\u0940-\u0924\u093f\u092c\u094d\u092c\u094d\u0924\u0940 \u092d\u093e\u0937\u093e
+languages.pl=\u092a\u0949\u0932\u093f\u0936
+languages.da=\u0921\u0948\u0928\u093f\u0936
+languages.pi=\u092a\u093e\u0932\u0940
+languages.cy=\u0935\u0947\u0932\u094d\u0936
+languages.akk=\u0905\u0915\u093e\u0921\u093f\u0928\u0940
+languages.sus=\u0938\u0941\u0938\u0941
+languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
+languages.cs=\u091a\u0947\u0915\u093c
+languages.co=\u0915\u094b\u0930\u094d\u0938\u0940\u0915\u0928
+languages.mis=\u0935\u093f\u0935\u093f\u0927 \u092d\u093e\u0937\u093e
+languages.or=\u0909\u0930\u093f\u092f\u093e
+languages.ce=\u091a\u0947\u091a\u0928
+languages.awa=\u0905\u0935\u0927\u0940
+languages.om=\u0913\u0930\u094b\u092e\u094b (\u0905\u092b\u093c\u093e\u0928)
+languages.ca=\u0915\u093e\u0924\u093e\u0932\u093e\u0928
+languages.mun=\u092e\u0941\u0928\u094d\u0921\u093e \u092d\u093e\u0937\u093e
+languages.lol=\u092e\u094b\u0902\u0917\u094b
+languages.mul=\u0935\u093f\u0935\u093f\u0927 \u092d\u093e\u0937\u093e\u090f
+languages.oc=\u0913\u0938\u0940\u091f\u093e\u0928
+languages.bs=\u092c\u094b\u0938\u094d\u0928\u093f\u092f\u093e\u0908
+languages.br=\u092c\u094d\u0930\u0947\u091f\u0928
+languages.bo=\u0924\u093f\u092c\u094d\u092c\u0924\u0940
+languages.zh_Hans=\u091a\u0940\u0928\u0940 (\u0938\u0930\u0932\u0940\u0915\u0943\u0924)
+languages.bn=\u092c\u0901\u0917\u093e\u0932\u0940
+languages.zh_Hant=\u092a\u093e\u0930\u0902\u092a\u0930\u093f\u0915 \u091a\u0940\u0928\u0940
+languages.bi=\u092c\u093f\u0938\u094d\u0932\u093e\u092e\u093e
+languages.bh=\u092c\u093f\u0939\u093e\u0930\u0940
+languages.bg=\u092c\u0941\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u093e\u0908
+languages.be=\u092c\u0947\u0932\u093e\u0930\u0942\u0938\u0940
+languages.no=\u0928\u093e\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u0928
+languages.nn=\u0928\u0949\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u0928 - \u0928\u093e\u092f\u0928\u0949\u0930\u094d\u0938\u094d\u0915
+languages.nl=\u0921\u091a
+languages.ba=\u092c\u0936\u0916\u093c\u093f\u0930
+languages.zu=\u091d\u0941\u0932\u0942
+languages.sgn=\u0938\u093e\u0902\u0915\u0947\u0924\u093f\u0915 \u092d\u093e\u0937\u093e
+languages.ain=\u0910\u0928\u0942
+languages.raj=\u0930\u093e\u091c\u0938\u094d\u0925\u093e\u0928\u0940
+languages.az=\u0905\u091c\u093c\u0930\u092c\u0948\u0902\u091c\u093e\u0928\u0940
+languages.ne=\u0928\u0947\u092a\u093e\u0932\u0940
+languages.ay=\u090e\u092e\u0930\u093e
+languages.av=\u0905\u0935\u0947\u0930\u093f\u0915
+languages.de_AT=\u091c\u0930\u094d\u092e\u0928 (\u0911\u0938\u094d\u091f\u094d\u0930\u093f\u092f\u093e\u0908)
+languages.aus=\u0906\u0938\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e\u0908 \u092d\u093e\u0937\u093e
+languages.na=\u0928\u093e\u092f\u0930\u0942
+languages.as=\u0906\u0938\u093e\u092e\u0940
+languages.ar=\u0905\u0930\u092c\u0940
+languages.zh=\u091a\u0940\u0928\u0940
+languages.my=\u092c\u0930\u094d\u092e\u0940
+languages.an=\u0905\u0930\u094d\u0917\u094b\u0928\u0940
+languages.am=\u0905\u092e\u094d\u0939\u093e\u0930\u093f\u0915\u094d
+languages.ak=\u0905\u0915\u0928
+languages.za=\u091c\u093c\u0941\u0906\u0902\u0917
+languages.mt=\u092e\u093e\u0932\u094d\u091f\u0940\u091c\u093c
+languages.ms=\u092e\u0932\u092f
+languages.mr=\u092e\u0930\u093e\u0920\u0940
+languages.af=\u0905\u092b\u094d\u0930\u0940\u0915\u0940
+languages.ae=\u0905\u0935\u0947\u0938\u094d\u0924\u0928
+languages.ssa=\u0928\u0940\u0932 \u0938\u0939\u093e\u0930\u0940 \u092d\u093e\u0937\u093e
+languages.mo=\u092e\u094b\u0932\u0921\u093e\u0935\u093f\u092f\u0928\u094d
+languages.mn=\u092e\u0902\u0917\u094b\u0932\u0940\u092f\u093e\u0908
+languages.en_US=\u0905\u0902\u0917\u094d\u0930\u0947\u091c\u093c\u0940 \u0905\u092e\u0947\u0930\u0940\u0915\u0940
+languages.ab=\u0905\u092c\u094d\u0916\u093e\u091c\u093c\u093f\u092f\u0928\u094d
+languages.ml=\u092e\u0932\u092f\u093e\u0932\u092e
+languages.aa=\u0905\u092b\u093c\u0930
+languages.mk=\u092e\u0947\u0938\u093f\u0921\u094b\u0928\u093f\u092f\u0928
+languages.root=\u091c\u0921
+languages.mi=\u092e\u093e\u0913\u0930\u0940
+languages.mg=\u092e\u0947\u0932\u0947\u0917\u0947\u0938\u0940
+languages.yo=\u092f\u094b\u0930\u0942\u092c\u093e
+languages.egy=\u092a\u094d\u0930\u093e\u091a\u0940\u0928 \u092e\u093f\u0938\u094d\u0930\u0940
+languages.tlh=\u0915\u094d\u0932\u093f\u0902\u0917\u0928
+languages.yi=\u092f\u093f\u0921\u093f\u0936
+languages.bat=\u092c\u0932\u094d\u0915\u093e\u0928\u0940 \u092d\u093e\u0937\u093e
+languages.lv=\u0932\u093e\u0924\u0935\u0940
+languages.lt=\u0932\u093f\u0925\u0941\u092f\u093e\u0928\u093f\u092f\u093e\u0908
+languages.lo=\u0932\u093e\u0913
+languages.bal=\u092c\u0932\u0942\u091a\u0940
+languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
+languages.fr_CA=\u092b\u093c\u094d\u0930\u0947\u0902\u091a(\u0915\u0928\u093e\u0921\u093e\u0908)
+variants.POSIX=\u0915\u092e\u094d\u092a\u094d\u092f\u0942\u091f\u0930
+variants.1901=\u092a\u093e\u0930\u092e\u094d\u092a\u093e\u0930\u093f\u0915 \u091c\u0930\u094d\u092e\u0928 \u0935\u0930\u094d\u0924\u0928\u0940
+variants.MONOTON=\u090f\u0915\u0938\u094d\u0935\u0930\u0940\u092f
+variants.1996=\u091c\u0930\u094d\u092e\u0947\u0928\u0940 \u0915\u0940 1996 \u0935\u0930\u094d\u0924\u0928\u0940
+variants.POLYTON=\u092c\u0939\u0941\u0938\u094d\u0935\u0930\u0940\u092f
+variants.NJIVA=\u091c\u0940\u0935\u093e \u092c\u094b\u0932\u0940
+variants.AREVELA=\u092a\u0942\u0930\u094d\u0935\u0940 \u0905\u0930\u094d\u092e\u0947\u0928\u093f\u092f\u093e\u0908
+variants.REVISED=\u0938\u0902\u0936\u094b\u0927\u093f\u0924 \u0935\u0930\u094d\u0924\u0928\u0940
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hr.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hr.properties
index 5ea7f5a..44f8ab2 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hr.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hr.properties
@@ -7,200 +7,225 @@
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
currenciesDisplayName.YDD=jemenski dinar
+currenciesDisplayName.KES=kenijski \u0161iling
currenciesDisplayName.TWD=Novotajvanski dolar
-currenciesDisplayName.KES=Kenijski \u0161iling
currenciesDisplayName.LKR=Sri Lanka Rupee
+currenciesDisplayName.BYB=bjeloruska nova rublja (1994-1999)
currenciesDisplayName.TJS=Tad\u017eikistanski somoni
-currenciesDisplayName.SDP=Sudanska funta
-currenciesDisplayName.ERN=Eritrean Nakfa
-currenciesDisplayName.GRD=Gr\u010dka drahma
-currenciesDisplayName.IEP=Irska funta
-currenciesDisplayName.ARS=Argentinski pezo
-currenciesDisplayName.SDD=Sudanski dinar
-currenciesDisplayName.ARP=Argentinski pezo (1983-1985)
-currenciesDisplayName.GEL=Gruzijski lari
+currenciesDisplayName.ERN=nakfa
+currenciesDisplayName.SDP=sudanska funta
+currenciesDisplayName.GRD=gr\u010dka drahma
+currenciesDisplayName.IEP=irska funta
+currenciesDisplayName.ARS=argentinski pezo
+currenciesDisplayName.ARP=argentinski pezo (1983-1985)
+currenciesDisplayName.SDD=sudanski dinar
+currenciesDisplayName.GEL=lari
currenciesDisplayName.GEK=Georgian Kupon Larit
-currenciesDisplayName.CRC=Kostarikanski kolon
-currenciesDisplayName.FKP=Falklandska funta
-currenciesDisplayName.EEK=Estonian Kroon
-currenciesDisplayName.HKD=Honkon\u0161ki dolar
-currenciesDisplayName.MDL=Moldovski lej
-currenciesDisplayName.IQD=Ira\u010dki dinar
+currenciesDisplayName.CRC=kostarikanski kolon
+currenciesDisplayName.FKP=falklandska funta
+currenciesDisplayName.EEK=estonska kruna
+currenciesDisplayName.MDL=moldavski lej
+currenciesDisplayName.HKD=hongkon\u0161ki dolar
+currenciesDisplayName.IQD=ira\u010dki dinar
currenciesDisplayName.SCR=Sej\u0161elska rupija
-currenciesDisplayName.DKK=Danska kruna
+currenciesDisplayName.DKK=danska kruna
+currenciesDisplayName.IDR=indonezijska rupija
currenciesDisplayName.GQE=Equatorial Guinea Ekwele Guineana
-currenciesDisplayName.IDR=Indonezijska rupija
-currenciesDisplayName.LVR=Latvian Ruble
currenciesDisplayName.SOS=Somalijski \u0161iling
-currenciesDisplayName.LVL=Latvian Lats
+currenciesDisplayName.LVR=Latvian Ruble
+currenciesDisplayName.AED=UAE dirham
+currenciesDisplayName.LVL=letonski lats
+currenciesDisplayName.BWP=pula
currenciesDisplayName.RUR=Ruska rublja (1991-1998)
-currenciesDisplayName.FJD=Fid\u017eijski dolar
currenciesDisplayName.MOP=Macao Pataca
+currenciesDisplayName.FJD=fid\u017eijski dolar
+currenciesDisplayName.ADP=andorska pezeta
currenciesDisplayName.RUB=Ruska rublja
-currenciesDisplayName.DJF=Djibouti Franc
-currenciesDisplayName.ECV=Ecuador Unidad de Valor Constante (UVC)
+currenciesDisplayName.DJF=d\u017eibutski franak
currenciesDisplayName.SBD=Solomonskooto\u010dni dolar
+currenciesDisplayName.ECV=Ecuador Unidad de Valor Constante (UVC)
currenciesDisplayName.ECS=Ecuador Sucre
-currenciesDisplayName.PHP=Filipinski pezo
-currenciesDisplayName.LUF=Luksembur\u0161ki franak
-currenciesDisplayName.FIM=Finska marka
+currenciesDisplayName.THB=tajlandski bat
+currenciesDisplayName.PHP=filipinski pezo
+currenciesDisplayName.LUF=luksembur\u0161ki franak
+currenciesDisplayName.FIM=finska marka
currenciesDisplayName.TTD=Trinidadtoba\u0161ki dolar
currenciesDisplayName.SZL=Lilangeni
currenciesDisplayName.MNT=Mongolski tugrik
+currenciesDisplayName.SAR=saudijski rial
currenciesDisplayName.UAH=Ukrajinska hrivnja
-currenciesDisplayName.HUF=Ma\u0111arska forinta
-currenciesDisplayName.COP=Kolumbijski pezo
-currenciesDisplayName.LTT=Lithuanian Talonas
+currenciesDisplayName.HUF=ma\u0111arska forinta
+currenciesDisplayName.COP=kolumbijski pezo
+currenciesDisplayName.LTT=litavski talonas
currenciesDisplayName.PTE=Portugalski eskudo
-currenciesDisplayName.GBP=Britanska funta
-currenciesDisplayName.INR=Indijska rupija
+currenciesDisplayName.GBP=britanska funta
currenciesDisplayName.ZRZ=Zairski zair
-currenciesDisplayName.LTL=Lithuanian Lita
-currenciesDisplayName.KZT=Kazakhstan Tenge
-currenciesDisplayName.MZM=Mozambique Metical
+currenciesDisplayName.INR=indijska rupija
+currenciesDisplayName.LTL=litavski litas
+currenciesDisplayName.AON=angolska nova kvanza (1990-2000)
currenciesDisplayName.UYP=Urugvajski pezo (1975-1993)
-currenciesDisplayName.AOK=Angolska kvanza (1977-1990)
+currenciesDisplayName.MZM=metikal
+currenciesDisplayName.KZT=tenge
+currenciesDisplayName.AOK=angolska kvanza (1977-1990)
currenciesDisplayName.GNS=Guinea Syli
currenciesDisplayName.SYP=Sirijska funta
-currenciesDisplayName.MZE=Mozambique Escudo
-currenciesDisplayName.OMR=Omanski rijal
-currenciesDisplayName.NGN=Nigerijska naira
+currenciesDisplayName.OMR=omanski rijal
+currenciesDisplayName.MZE=mozambijski eskudo
currenciesDisplayName.ZRN=Zairski novi zair
-currenciesDisplayName.AOA=Angolska kvanza
-currenciesDisplayName.CNY=Kineski Yuan Renminbi
-currenciesDisplayName.MAF=Morokanski franak
-currenciesDisplayName.GNF=Gvinejski franak
-currenciesDisplayName.HTG=Haitian Gourde
-currenciesDisplayName.MAD=Morokanski dirham
+currenciesDisplayName.NGN=nigerijska naira
+currenciesDisplayName.CNY=renminbi-juan
+currenciesDisplayName.AOA=angolska kvanza
+currenciesDisplayName.MAF=marokanski franak
+currenciesDisplayName.RSD=srpski dinar
+currenciesDisplayName.GNF=gvinejski franak
+currenciesDisplayName.MAD=marokanski dirham
+currenciesDisplayName.HTG=gourd
currenciesDisplayName.TRY=Nova Turska Lira
currenciesDisplayName.MMK=Myanmar Kyat
-currenciesDisplayName.MYR=Malaysian Ringgit
-currenciesDisplayName.LSL=Lesotho Loti
-currenciesDisplayName.TRL=Turska lira
-currenciesDisplayName.KMF=Comoro Franc
-currenciesDisplayName.CZK=\u010ce\u0161ka kruna
-currenciesDisplayName.AZM=Azerbejd\u017eanski manat
-currenciesDisplayName.KYD=Kajmanski dolar
-currenciesDisplayName.GMD=Gambia Dalasi
-currenciesDisplayName.CAD=Kanadski dolar
+currenciesDisplayName.MYR=malezijski ringit
+currenciesDisplayName.XEU=europska monetarna jedinica
+currenciesDisplayName.LSL=loti
+currenciesDisplayName.BHD=bahreinski dinar
+currenciesDisplayName.TRL=turska lira
+currenciesDisplayName.KMF=komorski franak
+currenciesDisplayName.CZK=\u010de\u0161ka kruna
+currenciesDisplayName.AZM=azerbajd\u017eanski manat
+currenciesDisplayName.KYD=kajmanski dolar
+currenciesDisplayName.GMD=dalasi
+currenciesDisplayName.BGN=bugarski novi lev
+currenciesDisplayName.CAD=kanadski dolar
currenciesDisplayName.VEB=Venezuelski bolivar
-currenciesDisplayName.MLF=Mali Franc
-currenciesDisplayName.ILS=Novi izraelski \u0161ekel
-currenciesDisplayName.MXP=Meksi\u010dki srebrni pezo (1861-1992)
-currenciesDisplayName.PES=Peruanski sol
-currenciesDisplayName.GYD=Guyana Dollar
-currenciesDisplayName.MXN=Meksi\u010dki pezo
-currenciesDisplayName.ILP=Israelska funta
+currenciesDisplayName.MLF=CFA franak
+currenciesDisplayName.MXP=meksi\u010dki srebrni pezo (1861-1992)
+currenciesDisplayName.ILS=novi izraelski \u0161ekel
+currenciesDisplayName.PES=sol
+currenciesDisplayName.MXN=meksi\u010dki pezo
+currenciesDisplayName.GYD=gvajanski dolar
+currenciesDisplayName.ILP=izraelska funta
+currenciesDisplayName.CYP=ciparska funta
currenciesDisplayName.SKK=Slova\u010dka kruna
-currenciesDisplayName.CYP=Ciparska funta
-currenciesDisplayName.PEN=Peruanski novi sol
-currenciesDisplayName.LRD=Liberijski dolar
-currenciesDisplayName.PEI=Peruanski inti
-currenciesDisplayName.AMD=Armenian Dram
-currenciesDisplayName.HRK=Kuna
-currenciesDisplayName.CLP=\u010cileanski pezo
-currenciesDisplayName.HRD=Hrvatski dinar
-currenciesDisplayName.FRF=Francuski franak
-currenciesDisplayName.MKD=Makedonski denar
+currenciesDisplayName.PEN=novi sol
+currenciesDisplayName.LRD=liberijski dolar
+currenciesDisplayName.PEI=peruanski inti
+currenciesDisplayName.AMD=armenski dram
+currenciesDisplayName.BSD=bahamski dolar
+currenciesDisplayName.HRK=kuna
+currenciesDisplayName.HRD=hrvatski dinar
+currenciesDisplayName.CLP=\u010dileanski pezo
+currenciesDisplayName.FRF=francuski franak
+currenciesDisplayName.MKD=makedonski denar
currenciesDisplayName.CLF=Chilean Unidades de Fomento
-currenciesDisplayName.ALL=Albanski lek
+currenciesDisplayName.ALL=albanski lek
currenciesDisplayName.MWK=Malawi Kwacha
-currenciesDisplayName.BRL=Brazilski Real
+currenciesDisplayName.BRL=brazilski real
currenciesDisplayName.TPE=Timorski eskudo
-currenciesDisplayName.DEM=Njema\u010dka marka
-currenciesDisplayName.KWD=Kuvajtski dinar
-currenciesDisplayName.NPR=Nepalska rupija
-currenciesDisplayName.GWP=Gvinejskobisauski pezo
+currenciesDisplayName.DEM=njema\u010dka marka
+currenciesDisplayName.KWD=kuvajtski dinar
+currenciesDisplayName.NPR=nepalska rupija
+currenciesDisplayName.GWP=gvinejskobisauski pezo
currenciesDisplayName.YUN=Jugoslavenski konvertibilni dinar
currenciesDisplayName.YUM=Jugoslavenski novi dinar
currenciesDisplayName.SIT=Slovenski tolar
-currenciesDisplayName.JPY=Japanski jen
-currenciesDisplayName.BEF=Belgijski franak
-currenciesDisplayName.GWE=Portuguese Guinea Escudo
+currenciesDisplayName.JPY=japanski jen
currenciesDisplayName.YUD=Jugoslavenski \u010dvrsti dinar
-currenciesDisplayName.ROL=Rumunjski lej
-currenciesDisplayName.BDT=Taka
+currenciesDisplayName.GWE=Portuguese Guinea Escudo
+currenciesDisplayName.BEF=belgijski franak
+currenciesDisplayName.RON=novi rumunjski lev
+currenciesDisplayName.ROL=starorumunjski lek
currenciesDisplayName.DDM=East German Ostmark
+currenciesDisplayName.BDT=taka
+currenciesDisplayName.AWG=arupski gulden
currenciesDisplayName.XBB=Europska monetarna jedinica
currenciesDisplayName.XBA=Europska slo\u017eena jedinica
-currenciesDisplayName.NOK=Norve\u0161ka kruna
-currenciesDisplayName.MUR=Mauricijska rupija
+currenciesDisplayName.NOK=norve\u0161ka kruna
currenciesDisplayName.ZAR=Ju\u017enoafri\u010dki rand
-currenciesDisplayName.XAU=Zlato
+currenciesDisplayName.MUR=mauricijska rupija
+currenciesDisplayName.XAU=zlato
currenciesDisplayName.ZAL=Ju\u017enoafri\u010dki rand (financijski)
currenciesDisplayName.VND=Viejetnamski dong
currenciesDisplayName.TZS=Tanzanijski \u0161iling
-currenciesDisplayName.GIP=Gibraltarska funta
+currenciesDisplayName.GIP=gibraltarska funta
currenciesDisplayName.TND=Tuniski dinar
-currenciesDisplayName.CVE=Zelenortski eskudo
currenciesDisplayName.UGX=Ugandski \u0161iling
+currenciesDisplayName.CVE=zelenortski eskudo
currenciesDisplayName.ZMK=Zambijska kva\u010da
-currenciesDisplayName.JOD=Jordanski dinar
+currenciesDisplayName.JOD=jordanski dinar
currenciesDisplayName.UGS=Ugandski \u0161iling (1966-1987)
-currenciesDisplayName.KHR=Cambodian Riel
-currenciesDisplayName.DOP=Dominikanski pezo
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.MTP=Malte\u0161ka funta
+currenciesDisplayName.KHR=rijal
+currenciesDisplayName.DOP=dominikanski pezo
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BOV=bolivijski mvdol
+currenciesDisplayName.MTP=malte\u0161ka funta
currenciesDisplayName.USS=Ameri\u010dki dolar (isti dan)
-currenciesDisplayName.CUP=Kubanski pezo
-currenciesDisplayName.MTL=Malte\u0161ka lira
+currenciesDisplayName.BOP=bolivijski pezo
+currenciesDisplayName.CUP=kubanski pezo
+currenciesDisplayName.MTL=malte\u0161ka lira
currenciesDisplayName.TMM=Turkmenistanski manat
currenciesDisplayName.USN=Ameri\u010dki dolar (sljede\u0107i dan)
currenciesDisplayName.SGD=Singapurski dolar
-currenciesDisplayName.NZD=Novozelandski dolar
+currenciesDisplayName.NZD=novozelandski dolar
currenciesDisplayName.USD=Ameri\u010dki dolar
-currenciesDisplayName.HNL=Hodura\u0161ka lempira
-currenciesDisplayName.PAB=Panamska balboa
+currenciesDisplayName.BOB=bolivijano
+currenciesDisplayName.HNL=lempira
currenciesDisplayName.ITL=Talijanska lira
-currenciesDisplayName.GTQ=Kvecal
-currenciesDisplayName.NAD=Namibijski dolar
-currenciesDisplayName.LAK=Laotian Kip
-currenciesDisplayName.AUD=Australski dolar
-currenciesDisplayName.KGS=Kyrgystan Som
+currenciesDisplayName.PAB=balboa
+currenciesDisplayName.GTQ=kvecal
+currenciesDisplayName.XXX=nepoznata ili neva\u017ee\u0107a valuta
+currenciesDisplayName.AUD=australski dolar
+currenciesDisplayName.LAK=kip
+currenciesDisplayName.NAD=namibijski dolar
+currenciesDisplayName.KGS=som
+currenciesDisplayName.BBD=barbadoski dolar
currenciesDisplayName.CHF=\u0160vicarski franak
-currenciesDisplayName.BBD=Barbadoski dolar
-currenciesDisplayName.PYG=Paragvajski gvarani
+currenciesDisplayName.PYG=gvarani
currenciesDisplayName.PLZ=Poljska zlota (1950-1995)
currenciesDisplayName.YER=Jemenski rial
-currenciesDisplayName.ATS=Austrijski \u0161iling
-currenciesDisplayName.ETB=Etiopski bir
-currenciesDisplayName.BND=Brunejski dolar
-currenciesDisplayName.PLN=Poljska zlota
-currenciesDisplayName.JMD=Jamai\u010danski dolar
-currenciesDisplayName.EGP=Egipatska funta
-currenciesDisplayName.DZD=Al\u017eirski dinar
+currenciesDisplayName.ATS=austrijski \u0161iling
+currenciesDisplayName.ETB=etiopski bir
+currenciesDisplayName.BND=brunejski dolar
+currenciesDisplayName.EGP=egipatska funta
+currenciesDisplayName.JMD=jamaj\u010danski dolar
+currenciesDisplayName.PLN=poljska zlota
+currenciesDisplayName.DZD=al\u017eirski dinar
+currenciesDisplayName.ISK=islandska kruna
currenciesDisplayName.SRG=Surinamski gulden
-currenciesDisplayName.ISK=Islandska kruna
-currenciesDisplayName.LYD=Libijski dinar
-currenciesDisplayName.BAM=Konvertibilna marka
+currenciesDisplayName.LYD=libijski dinar
+currenciesDisplayName.BAM=konvertibilna marka
+currenciesDisplayName.BZD=belizeanski dolar
currenciesDisplayName.ESP=\u0160panjolska pezeta
-currenciesDisplayName.NLG=Nizozemski gulden
-currenciesDisplayName.MRO=Mauritanska ouguja
+currenciesDisplayName.KRW=ju\u017enokorejski won
+currenciesDisplayName.NLG=nizozemski gulden
+currenciesDisplayName.MRO=oruguja
+currenciesDisplayName.BAD=bosansko-hercegova\u010dki dinar
currenciesDisplayName.ZWD=Zimbabveanski dolar
currenciesDisplayName.SEK=\u0160vedska kruna
currenciesDisplayName.CSK=Czechoslovak Hard Koruna
-currenciesDisplayName.IRR=Iranski rijal
-currenciesDisplayName.PKR=Pakistanska rupija
-currenciesDisplayName.BMD=Bermudski dolar
-currenciesSymbol.KES=K Sh
+currenciesDisplayName.BYR=bjeloruska rublja
+currenciesDisplayName.IRR=iranski rijal
+currenciesDisplayName.PKR=pakistanska rupija
+currenciesDisplayName.BMD=bermudski dolar
+currenciesDisplayName.CSD=stari srpski dinar
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.HRK=Kn
currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
currenciesSymbol.ALL=lek
@@ -218,33 +243,33 @@ currenciesSymbol.FJD=F$
currenciesSymbol.BDT=Tk
currenciesSymbol.MNT=Tug
currenciesSymbol.DJF=DF
+currenciesSymbol.XXX=XXX
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
-currenciesSymbol.CVE=CVEsc
-currenciesSymbol.YER=YRl
currenciesSymbol.HUF=Ft
+currenciesSymbol.YER=YRl
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
currenciesSymbol.MYR=RM
currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.KMF=CF
currenciesSymbol.SEK=SKr
@@ -264,28 +289,33 @@ currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=sij®vel®o\u017eu®tra®svi®lip®srp®kol®ruj®lis®stu®pro®®
-months=sije\u010danj®velja\u010da®o\u017eujak®travanj®svibanj®lipanj®srpanj®kolovoz®rujan®listopad®studeni®prosinac®®
-shortWeekdays=®ned®pon®uto®sri®\u010det®pet®sub®
-weekdays=®nedjelja®ponedjeljak®utorak®srijeda®\u010detvrtak®petak®subota®
-firstDayOfWeek=mon
-shortDateFormat=yyyy.MM.dd
-mediumDateFormat=yyyy.MM.dd
-longDateFormat=yyyy. MMMM dd
-fullDateFormat=yyyy. MMMM dd
+shortMonths=sij\u00aevelj\u00aeo\u017eu\u00aetra\u00aesvi\u00aelip\u00aesrp\u00aekol\u00aeruj\u00aelis\u00aestu\u00aepro\u00ae\u00ae
+months=sije\u010danj\u00aevelja\u010da\u00aeo\u017eujak\u00aetravanj\u00aesvibanj\u00aelipanj\u00aesrpanj\u00aekolovoz\u00aerujan\u00aelistopad\u00aestudeni\u00aeprosinac\u00ae\u00ae
+shortWeekdays=\u00aened\u00aepon\u00aeuto\u00aesri\u00ae\u010det\u00aepet\u00aesub\u00ae
+weekdays=\u00aenedjelja\u00aeponedjeljak\u00aeutorak\u00aesrijeda\u00ae\u010detvrtak\u00aepetak\u00aesubota\u00ae
+eras=pr.n.e.\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd.MM.yyyy.
+mediumDateFormat=d. MMM. yyyy.
+longDateFormat=d. MMMM yyyy.
+fullDateFormat=EEEE, d. MMMM yyyy.
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
territories.TL=Isto\u010dni Timor
territories.TK=Tokelau
territories.TJ=Tad\u017eikistan
territories.TH=Tajland
territories.TG=Togo
-territories.TF=Francuske Ju\u017ene Teritorije
+territories.TF=Francuski Ju\u017eni Teritoriji
territories.GY=Gvajana
territories.TD=\u010cad
-territories.TC=Turkski i Kaikos Otoci
+territories.TC=Otoci Turks i Caicos
territories.GW=Gvineja Bisau
territories.GU=Guam
territories.GT=Gvatemala
-territories.GS=Ju\u017ena Gruzija i Ju\u017eni Sendvi\u010d Otoci
+territories.GS=Ju\u017ena D\u017eord\u017eija i Otoci Ju\u017eni Sendvi\u010d
territories.GR=Gr\u010dka
territories.GQ=Ekvatorska Gvineja
territories.GP=Guadeloupe
@@ -293,21 +323,22 @@ territories.SZ=Svazi
territories.SY=Sirija
territories.GN=Gvineja
territories.GM=Gambija
-territories.GL=Greenland
+territories.GL=Grenland
territories.SV=El Salvador
-territories.062=Ju\u017eno-centralna Azija
+territories.062=Ju\u017ena Azija
territories.ST=Sveti Toma i Prinsipe
-territories.061=Polinezija
territories.GI=Gibraltar
+territories.061=Polinezija
territories.GH=Gana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Francuska Gvajana
territories.GE=Gruzija
territories.SO=Somalija
territories.GD=Grenada
territories.SN=Senegal
territories.SM=San Marino
-territories.GB=Ujedinjena Kraljevina
+territories.GB=Velika Britanija
territories.SL=Sijera Leone
territories.GA=Gabon
territories.SK=Slova\u010dka
@@ -318,29 +349,30 @@ territories.SG=Singapur
territories.SE=\u0160vedska
territories.SD=Sudan
territories.SC=Sej\u0161eli
-territories.SB=Salamunovi Otoci
+territories.SB=Solomonski Otoci
territories.SA=Saudijska Arabija
territories.FR=Francuska
+territories.FO=Ferojski Otoci
territories.057=Micronezija
-territories.FO=Farski Otoci
-territories.FM=Mikronezija, Federalne Dr\u017eave
+territories.FM=Mikronezija
territories.RW=Ruanda
territories.054=Melanezija
-territories.053=Australija i Novi Zeland
territories.FK=Falklandski Otoci
-territories.RU=Ruska Federacija
+territories.053=Australija i Novi Zeland
+territories.RU=Rusija
territories.FJ=Fid\u017ei
territories.FI=Finska
+territories.RS=Srbija
territories.RO=Rumunjska
territories.RE=Reunion
territories.ET=Etiopija
territories.ES=\u0160panjolska
territories.ER=Eritreja
-territories.833=Otok Man
+territories.QU=Europska Unija
territories.EH=Zapadna Sahara
territories.EG=Egipat
-territories.830=Kanalski otoci
territories.EE=Estonija
+territories.830=Kanalski otoci
territories.QO=Ostala oceanija
territories.EC=Ekvador
territories.DZ=Al\u017eir
@@ -348,13 +380,14 @@ territories.QA=Katar
territories.039=Ju\u017ena Europa
territories.DO=Dominikanska Republika
territories.PY=Paragvaj
-territories.035=Jugoisto\u010dna Azija
territories.DM=Dominika
+territories.035=Jugoisto\u010dna Azija
territories.PW=Palau
+territories.034=Ju\u017ena Azija
territories.DK=Danska
territories.DJ=D\u017eibuti
territories.PT=Portugal
-territories.PS=Palestinska Teritoija
+territories.PS=Palestinsko Podru\u010dje
territories.030=Isto\u010dna Azija
territories.PR=Portoriko
territories.DE=Njema\u010dka
@@ -368,7 +401,7 @@ territories.PF=Francuska Polinezija
territories.CZ=\u010ce\u0161ka Republika
territories.PE=Peru
territories.CY=Cipar
-territories.CX=Bo\u017ei\u0107ni Otoci
+territories.CX=Bo\u017ei\u0107ni Otok
territories.CV=Zeleni Rt
territories.PA=Panama
territories.CU=Kuba
@@ -380,15 +413,16 @@ territories.CN=Kina
territories.CM=Kamerun
territories.CL=\u010cile
territories.CK=Kukovi Otoci
-territories.CI=Obala Bjelokosti
territories.021=Sjeverna Amerika
+territories.CI=Bjelokosna Obala
territories.CH=\u0160vicarska
territories.CG=Kongo
territories.CF=Srednjoafri\u010dka Republika
-territories.CD=Kongo, Demokratska Republika
-territories.CC=Kokos (Keeling) Otoci
+territories.CD=Demokratska Republika Kongo
+territories.CC=Kokosovi Otoci
territories.OM=Oman
territories.CA=Kanada
+territories.419=Latinska Amerika i Karibi
territories.BZ=Belize
territories.BY=Bjelorusija
territories.BW=Bocvana
@@ -399,23 +433,24 @@ territories.BR=Brazil
territories.019=Amerike
territories.018=Ju\u017ena Afrika
territories.NZ=Novi Zeland
-territories.BO=Bolivija
territories.017=Sredi\u0161nja Afrika
-territories.BN=Brunei Darussalam
-territories.BM=Bermuda
+territories.BO=Bolivija
+territories.BN=Brunej
territories.015=Sjeverna Afrika
+territories.BM=Bermuda
territories.014=Isto\u010dna Afrika
territories.013=Centralna Amerika
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Zapadna Afrika
+territories.BI=Burundi
territories.BH=Bahrein
territories.NR=Nauru
territories.BG=Bugarska
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgija
+territories.ZZ=nepoznata ili neva\u017ee\u0107a oblast
territories.NO=Norve\u0161ka
territories.BD=Banglade\u0161
territories.BB=Barbados
@@ -424,7 +459,7 @@ territories.NL=Nizozemska
territories.BA=Bosna i Hercegovina
territories.NI=Nikaragva
territories.NG=Nigerija
-territories.NF=Norfol\u0161ki Otoci
+territories.NF=Otok Norfolk
territories.AZ=Azerbajd\u017ean
territories.NE=Niger
territories.AX=Alandski otoci
@@ -436,46 +471,48 @@ territories.AU=Australija
territories.AT=Austrija
territories.AS=Ameri\u010dka Samoa
territories.AR=Argentina
+territories.AQ=Antarktika
territories.009=Oceanija
-territories.AQ=Antarktik
territories.MZ=Mozambik
territories.AO=Angola
territories.MY=Malezija
territories.AN=Nizozemski Antili
territories.MX=Meksiko
-territories.005=Ju\u017ena Amerika
territories.AM=Armenija
+territories.005=Ju\u017ena Amerika
territories.MW=Malavi
territories.AL=Albanija
territories.MV=Maldivi
-territories.ZA=Ju\u017ena Afrika
+territories.003=Sjevernoameri\u010dki kontinent
+territories.ZA=Ju\u017enoafri\u010dka Republika
territories.MU=Mauricijus
territories.002=Afrika
territories.MT=Malta
-territories.001=Svijet
territories.AI=Anguila
+territories.001=Svijet
territories.MS=Montserat
territories.MR=Mauritanija
-territories.AG=Antigua i Barbuda
+territories.AG=Antigva i Barbuda
territories.MQ=Martinik
territories.AF=Afganistan
-territories.MP=Sjeverni Marianski Otoci
+territories.MP=Sjeverni Marijanski Otoci
territories.AE=Ujedinjeni Arapski Emirati
-territories.MO=Makao S.A.R. Kine
+territories.MO=Makao
territories.AD=Andora
territories.MN=Mongolija
territories.MM=Mijanma
territories.ML=Mali
-territories.MK=Makedonija, Republika
+territories.MK=Biv\u0161a Jugoslavenska Republika Makedonija
territories.YT=Majote
territories.MH=Mar\u0161alovi Otoci
territories.MG=Madagaskar
-territories.MD=Moldavija, Republika
+territories.ME=Crna Gora
+territories.MD=Moldavija
territories.MC=Monako
territories.MA=Maroko
territories.YE=Jemen
territories.LY=Libijska Arapska D\u017eamahirija
-territories.LV=Latvija
+territories.LV=Letonija
territories.155=Zapadna Europa
territories.LU=Luksemburg
territories.154=Sjeverna Europa
@@ -488,13 +525,14 @@ territories.LK=\u0160ri Lanka
territories.LI=Lihten\u0161tajn
territories.LC=Sveta Lucija
territories.LB=Libanon
-territories.LA=Laoska Narodna Demokratska Republika
-territories.KZ=Kazakstan
+territories.LA=Laos
+territories.KZ=Kazahstan
territories.KY=Kajmanski Otoci
territories.KW=Kuvajt
territories.145=Zapadna Azija
+territories.143=Srednja Azija
territories.142=Azija
-territories.KR=Koreja, Ju\u017ena
+territories.KR=Ju\u017ena Koreja
territories.KP=Koreja, Sjeverna
territories.KN=Sveti Kristofor i Nevis
territories.KM=Komori
@@ -508,25 +546,27 @@ territories.JP=Japan
territories.JO=Jordan
territories.JM=Jamajka
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vijetnam
-territories.VI=U.S. Djevi\u010danski Otoci
-territories.VG=Britanski Djevi\u010danski Otoci
+territories.VI=Ameri\u010dki Djevi\u010danski Otoci
+territories.VG=Djevi\u010danska Oto\u010dja, Britanska
territories.VE=Venezuela
territories.VC=Sveti Vincent i Grenadini
-territories.VA=Sveta Stolica (Dr\u017eava Vatikanskog Grada)
+territories.VA=Grad Vatikan
territories.IT=Italija
territories.IS=Island
-territories.IR=Iran, Islamska Republika
+territories.IR=Iran
territories.IQ=Irak
territories.UZ=Uzbekistan
-territories.IO=Britanski Teritorij Indijskog Oceana
+territories.IO=Britanski Indijskooceanski Teritorij
territories.UY=Urugvaj
territories.IN=Indija
+territories.IM=Otok Man
territories.IL=Izrael
-territories.US=Sjedinjene Dr\u017eave
+territories.US=SAD
territories.IE=Irska
territories.ID=Indonezija
-territories.UM=Sjedinjene Dr\u017eave Manji Vanjski Otoci
+territories.UM=Ujedinjene Dr\u017eave Manjih Pacifi\u010dkih Otoka
territories.UG=Uganda
territories.UA=Ukrajina
territories.HU=Ma\u0111arska
@@ -534,83 +574,185 @@ territories.HT=Haiti
territories.HR=Hrvatska
territories.TZ=Tanzanija
territories.HN=Honduras
-territories.HM=Heard Otok i McDonald Otoci
+territories.HM=Otok Heard i Otoci McDonald
territories.TW=Tajvan
territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R. Kine
+territories.HK=Hong Kong
territories.TT=Trinidad i Tobago
territories.TR=Turska
territories.TO=Tonga
territories.TN=Tunis
territories.TM=Turkmenistan
-languages.ne=nepalski
-languages.haw=havajski
-languages.zh=kineski
-languages.dum=nizozemski, srednji (ca. 1050-1350)
-languages.av=avarski
-languages.ar=arapski
+languages.lb=luksembur\u0161ki
+languages.la=latinski
+languages.xh=xhosa
+languages.ky=kirgi\u0161ki
+languages.kw=kornski
+languages.ku=kurdski
+languages.ko=korejski
+languages.kn=kannada
+languages.km=kmerski
+languages.kk=kaza\u0161ki
+languages.ira=iranski
+languages.kg=kongo
+languages.en_GB=engleski (britanski)
+languages.grc=gr\u010dki, anti\u010dki (do 1453)
+languages.wo=wolof
+languages.art=umjetni (ostali)
+languages.ka=gruzijski
+languages.gem=germanski (ostali)
+languages.afa=ostali afri\u010dko-azijski
+languages.jv=javanski
+languages.cel=keltski (ostali)
+languages.ja=japanski
+languages.tig=tigri\u0161ki
+languages.vi=vijetnamski
+languages.it=talijanski
+languages.is=islandski
+languages.uz=uzbe\u010dki
+languages.ur=urdu
+languages.ie=interlingua (jezik zami\u0161ljen za internacionalnu komunikaciju me\u0111u znanstvenicima)
+languages.id=indonezijski
+languages.ia=interlingua
+languages.uk=ukrajinski
+languages.ug=turkmenski (uighur)
+languages.fiu=ugro-finski jezici
+languages.und=nepoznati ili neva\u017ee\u0107i jezik
+languages.hy=armenski
+languages.hu=ma\u0111arski
+languages.ht=kreolski
+languages.hr=hrvatski
+languages.fil=filipinski
+languages.ty=tahi\u0107anski
languages.apa=apa\u0161ki
-languages.mt=malte\u0161ki
+languages.tw=twi
+languages.goh=njema\u010dki, stari visoki (ca.750-1050)
+languages.hi=hindu
+languages.tr=turski
+languages.he=hebrejski
+languages.tl=tagalog
+languages.tk=turkmenski
+languages.dum=nizozemski, srednji (ca. 1050-1350)
+languages.ti=tigrinya
+languages.th=tajlandski
+languages.te=telugu
+languages.ta=tamilski
+languages.gu=gujarati
+languages.ine=indoeuropski (ostali)
+languages.gn=guarani
+languages.inc=indijski (drugi)
+languages.sw=svahili
+languages.gl=galicijski
languages.sv=\u0161vedski
-languages.pt=portugalski
+languages.su=sundanski
+languages.st=sesotski
languages.enm=engleski, srednji (1100-1500)
languages.sr=srpski
-languages.mn=mongolski
languages.sq=albanski
-languages.mk=makedonski
-languages.de=njema\u010dki
-languages.pl=poljski
+languages.so=somalski
+languages.gd=\u0161kotski-galski
+languages.sm=samoanski
languages.sl=slovenski
-languages.sk=slova\u010dki
-languages.art=umjetni (ostali)
-languages.da=danski
languages.ga=irski
-languages.vi=vijetnamski
-languages.ja=japanski
-languages.gmh=njema\u010dki, srednji visoki (ca.1050-1500)
-languages.sla=slavenski (drugi)
-languages.egy=egipatski (anti\u010dki)
-languages.cy=vel\u0161ki
-languages.cel=keltski (ostali)
+languages.sk=slova\u010dki
+languages.si=singale\u0161ki
+languages.sh=srpsko-hrvatski
languages.fy=frizijski
-languages.cu=crkvenoslavenski
-languages.cs=\u010de\u0161ki
-languages.lv=latvijski
-languages.it=talijanski
+languages.sd=sindhi
+languages.sc=sardski
+languages.sa=sanskrtski
+languages.ang=engleski, stari (ca.450-1100)
languages.fr=francuski
-languages.is=islandski
-languages.lt=litvanski
-languages.roa=romanski (ostali)
+languages.sla=slavenski (drugi)
+languages.fo=faroanski
+languages.pro=staroprovansalski
+languages.gmh=njema\u010dki, srednji visoki (ca.1050-1500)
languages.ru=ruski
+languages.fj=fid\u017eijski
languages.fi=finski
-languages.ira=iranski
languages.ro=rumunjski
-languages.uk=ukrajinski
+languages.rm=retoromanski
languages.fa=perzijski
-languages.la=latinski
-languages.mga=irski, srednji (900-1200)
-languages.goh=njema\u010dki, stari visoki (ca.750-1050)
-languages.bat=balti\u010dki (ostali)
-languages.hy=armenski
-languages.ang=engleski, stari (ca.450-1100)
-languages.et=estonijski
-languages.fro=francuski, stari (842-ca.1400)
-languages.hu=ma\u0111arski
+languages.pt_PT=portugalski (iberijski)
+languages.nl_BE=flamanski
+languages.es_419=\u0161panjolski (Latinska Amerika)
+languages.en_AU=engleski (australski)
+languages.peo=staroperzijski
+languages.eu=baskijski
+languages.dsb=lu\u017ei\u010dkosrpski
+languages.et=estonski
languages.es=\u0161panjolski
-languages.grc=gr\u010dki, anti\u010dki (do 1453)
-languages.frm=francuski, srednji (ca.1400-1600)
-languages.hr=hrvatski
languages.eo=esperanto
-languages.ine=indoevropski (drugi)
languages.en=engleski
-languages.inc=indijski (drugi)
+languages.frs=isto\u010dnofrizijski
languages.el=gr\u010dki
-languages.ko=korejski
-languages.no=norve\u0161ki
-languages.km=kmerski
+languages.frr=sjevernofrizijski
+languages.fro=francuski, stari (842-ca.1400)
+languages.frm=francuski, srednji (ca.1400-1600)
+languages.mkh=mkh
+languages.nds=donjonjema\u010dki
+languages.pt=portugalski
+languages.ber=berberski
+languages.ps=pa\u0161tu
+languages.de=njema\u010dki
+languages.pl=poljski
+languages.da=danski
+languages.cy=vel\u0161ki
+languages.pa=punjabi
+languages.cu=crkvenoslavenski
+languages.cs=\u010de\u0161ki
+languages.co=korzi\u010dki
+languages.mis=ostali jezici
+languages.de_CH=gornjonjema\u010dki (\u0160vicarska)
+languages.or=orijski
+languages.roa=romanski (ostali)
+languages.ca=katalonski
+languages.oc=okcitanski
+languages.bs=bosanski
+languages.br=bretonski
+languages.bo=tibetanski
+languages.zh_Hans=kineski (pojednostavljeni)
+languages.bn=bengalski
+languages.zh_Hant=kineski (tradicionalni)
+languages.bh=bihari
languages.bg=bugarski
-languages.tr=turski
languages.be=bjeloruski
+languages.no=norve\u0161ki
+languages.nn=novonorve\u0161ki
+languages.tai=tajski
languages.nl=nizozemski
-languages.gem=germanski (ostali)
-languages.he=hebrejski
+languages.zu=zulu
+languages.az=azerbajd\u017eanski
+languages.ne=nepalski
+languages.nb=knji\u017eevni norve\u0161ki
+languages.av=avarski
+languages.ota=turski - otomanski
+languages.as=asamskom (Britanska Indija)
+languages.ar=arapski
+languages.zh=kineski
+languages.zxx=bez jezi\u010dnog sadr\u017eaja
+languages.sga=staroirski
+languages.my=burmanski
+languages.am=amharik
+languages.mt=malte\u0161ki
+languages.ms=malajski
+languages.chr=\u010deroki
+languages.mr=marathi
+languages.af=afrikaans
+languages.haw=havajski
+languages.mo=moldavski
+languages.mn=mongolski
+languages.en_US=engleski (ameri\u010dki)
+languages.ml=malayalam
+languages.bnt=bantu
+languages.mk=makedonski
+languages.mga=irski, srednji (900-1200)
+languages.egy=egipatski (anti\u010dki)
+languages.tlh=klingonski
+languages.yi=jidi\u0161
+languages.gsw=njema\u010dki (\u0160vicarska)
+languages.bat=balti\u010dki (ostali)
+languages.lv=latvijski
+languages.lt=litvanski
+languages.lo=laoski
+languages.ln=lingala
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hu.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hu.properties
index ded78ef..6fea62c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hu.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hu.properties
@@ -5,146 +5,171 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+digit=#
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
currenciesDisplayName.YDD=Jemeni d\u00edn\u00e1r
-currenciesDisplayName.TWD=Tajvani \u00faj doll\u00e1r
currenciesDisplayName.KES=Kenyai shilling
-currenciesDisplayName.BYB=Feh\u00e9rorosz \u00faj rubel (1994-1999)
+currenciesDisplayName.TWD=Tajvani doll\u00e1r
currenciesDisplayName.LKR=Sri Lankai r\u00fapia
-currenciesDisplayName.RWF=Ruandai frank
+currenciesDisplayName.BYB=Feh\u00e9rorosz \u00faj rubel (1994-1999)
currenciesDisplayName.TJS=T\u00e1dzsikiszt\u00e1ni somoni
-currenciesDisplayName.SDP=Szud\u00e1ni font
-currenciesDisplayName.TJR=T\u00e1dzsikiszt\u00e1ni rubel
+currenciesDisplayName.RWF=Ruandai frank
currenciesDisplayName.ERN=Eritreai nakfa
-currenciesDisplayName.AFN=Afghani
+currenciesDisplayName.TJR=T\u00e1dzsikiszt\u00e1ni rubel
+currenciesDisplayName.SDP=R\u00e9gi szud\u00e1ni font
currenciesDisplayName.GRD=G\u00f6r\u00f6g drachma
+currenciesDisplayName.AFN=afghani
currenciesDisplayName.IEP=\u00cdr font
-currenciesDisplayName.ARS=Peso
-currenciesDisplayName.SDD=Szud\u00e1ni d\u00edn\u00e1r
-currenciesDisplayName.ARP=Argent\u00edn peso (1983-1985)
+currenciesDisplayName.ARS=Argentin peso
+currenciesDisplayName.SDG=Szud\u00e1ni font
+currenciesDisplayName.ARP=Argentin peso (ARP)
+currenciesDisplayName.SDD=R\u00e9gi szud\u00e1ni d\u00edn\u00e1r
currenciesDisplayName.GEL=Gr\u00faz lari
-currenciesDisplayName.AFA=Afghani (1927-2002)
currenciesDisplayName.GEK=Gr\u00faz kupon larit
+currenciesDisplayName.AFA=Afghani (AFA)
currenciesDisplayName.CRC=Costa Ricai colon
currenciesDisplayName.FKP=Falkland-szigeteki font
currenciesDisplayName.EEK=\u00c9szt korona
-currenciesDisplayName.HKD=Hongkongi doll\u00e1r
currenciesDisplayName.MDL=Moldov\u00e1n lei
-currenciesDisplayName.ARA=Argent\u00edn austral
+currenciesDisplayName.HKD=Hongkongi doll\u00e1r
currenciesDisplayName.IQD=Iraki d\u00edn\u00e1r
+currenciesDisplayName.ARA=Argentin austral
currenciesDisplayName.SCR=Seychelle-szigeteki r\u00fapia
currenciesDisplayName.VUV=Vanuatui vatu
-currenciesDisplayName.DKK=D\u00e1n korona
currenciesDisplayName.KPW=\u00c9szak-koreai won
-currenciesDisplayName.GQE=Egyenl\u00edt\u0151i-guineai ekwele guineana
+currenciesDisplayName.DKK=D\u00e1n korona
currenciesDisplayName.IDR=Indon\u00e9z r\u00fapia
-currenciesDisplayName.LVR=Lett rubel
+currenciesDisplayName.GQE=Egyenl\u00edt\u0151i-guineai ekwele
currenciesDisplayName.SOS=Szom\u00e1li shilling
-currenciesDisplayName.AED=EAE dirham
-currenciesDisplayName.BWP=Botswanai pula
+currenciesDisplayName.LVR=Lett rubel
+currenciesDisplayName.EQE=ekwele
+currenciesDisplayName.AED=UAE dirham
currenciesDisplayName.LVL=Lett lats
-currenciesDisplayName.RUR=Orosz rubel (1991-1998)
+currenciesDisplayName.BWP=Botswanai pula
+currenciesDisplayName.RUR=Orosz rubel (RUR)
currenciesDisplayName.NIO=Nikaraguai cordoba oro
-currenciesDisplayName.ADP=Andorrai peseta
+currenciesDisplayName.XTS=Tesztel\u00e9si p\u00e9nznemk\u00f3d
+currenciesDisplayName.MOP=maka\u00f3i pataca
currenciesDisplayName.FJD=Fidzsi doll\u00e1r
-currenciesDisplayName.MOP=Macaoi pataca
+currenciesDisplayName.ADP=andorrai peseta
currenciesDisplayName.RUB=Orosz rubel
currenciesDisplayName.CDF=Kong\u00f3i frank
currenciesDisplayName.NIC=Nikaraguai cordoba
currenciesDisplayName.DJF=Dzsibuti frank
-currenciesDisplayName.ECV=Ecuadori Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Salamon-szigeteki doll\u00e1r
currenciesDisplayName.UZS=\u00dczbegiszt\u00e1ni szum
+currenciesDisplayName.SBD=Salamon-szigeteki doll\u00e1r
+currenciesDisplayName.ECV=Ecuadori Unidad de Valor Constante (UVC)
+currenciesDisplayName.LUL=luxemburgi p\u00e9nz\u00fcgyi frank
currenciesDisplayName.ECS=Ecuadori sucre
-currenciesDisplayName.PHP=F\u00fcl\u00f6p-szigeteki peso
currenciesDisplayName.THB=Thai baht
+currenciesDisplayName.PHP=F\u00fcl\u00f6p-szigeteki peso
currenciesDisplayName.LUF=Luxemburgi frank
+currenciesDisplayName.RHD=Rhod\u00e9ziai doll\u00e1r
+currenciesDisplayName.LUC=luxemburgi konvertibilis frank
currenciesDisplayName.FIM=Finn markka
currenciesDisplayName.TTD=Trinidad \u00e9s tobagoi doll\u00e1r
currenciesDisplayName.SZL=Szv\u00e1zif\u00f6ldi lilangeni
currenciesDisplayName.MNT=Mong\u00f3liai tugrik
-currenciesDisplayName.SAR=Sza\u00fadi riyal
currenciesDisplayName.UAK=Ukr\u00e1n karbovanec
+currenciesDisplayName.SAR=Sza\u00fadi riyal
+currenciesDisplayName.COU=Unidad de Valor Real
currenciesDisplayName.UAH=Ukr\u00e1n hrivnya
currenciesDisplayName.HUF=Magyar forint
-currenciesDisplayName.COP=Kolumbiai peso
currenciesDisplayName.QAR=Katari rial
+currenciesDisplayName.COP=Kolumbiai peso
currenciesDisplayName.LTT=Litv\u00e1niai talonas
currenciesDisplayName.PTE=Portug\u00e1l escudo
-currenciesDisplayName.AOR=Angolai kwanza reajustado (1995-1999)
-currenciesDisplayName.UYU=Uruguay-i peso uruguayo
+currenciesDisplayName.UYU=Uruguayi peso
+currenciesDisplayName.AOR=Angolai kwanza reajustado (AOR)
currenciesDisplayName.GBP=Brit font sterling
-currenciesDisplayName.BIF=Burundi frank
-currenciesDisplayName.INR=Indiai r\u00fapia
currenciesDisplayName.ZRZ=Zairei zaire
-currenciesDisplayName.AON=Angolai \u00faj kwanza (1990-2000)
-currenciesDisplayName.LTL=Litv\u00e1niai litas
+currenciesDisplayName.INR=Indiai r\u00fapia
+currenciesDisplayName.BIF=Burundi frank
currenciesDisplayName.XFU=Francia UIC-frank
-currenciesDisplayName.KZT=Kazahszt\u00e1ni tenge
+currenciesDisplayName.MZN=Mozambiki metik\u00e1lis
+currenciesDisplayName.LTL=Litv\u00e1niai litas
+currenciesDisplayName.AON=\u00faj kwanza
+currenciesDisplayName.UYP=Uruguayi peso (UYP)
currenciesDisplayName.MZM=Mozambik metical
-currenciesDisplayName.UYP=Uruguay-i peso (1975-1993)
-currenciesDisplayName.AOK=Angolai kwanza (1977-1990)
-currenciesDisplayName.BUK=Burmai kyat
+currenciesDisplayName.KZT=Kazahszt\u00e1ni tenge
+currenciesDisplayName.AOK=Angolai kwanza (AOK)
currenciesDisplayName.GNS=Guineai syli
+currenciesDisplayName.BUK=Burmai kyat
currenciesDisplayName.XFO=Francia arany frank
currenciesDisplayName.PGK=P\u00e1pua \u00faj-guineai kina
+currenciesDisplayName.UYI=Uruguayi peso en unidades indexadas
currenciesDisplayName.SYP=Sz\u00edriai font
-currenciesDisplayName.MZE=Mozambik escudo
currenciesDisplayName.OMR=Om\u00e1ni rial
-currenciesDisplayName.NGN=Nig\u00e9riai naira
+currenciesDisplayName.MZE=Mozambik escudo
currenciesDisplayName.ZRN=Zairei \u00faj zaire
-currenciesDisplayName.AOA=Angolai kwanza
+currenciesDisplayName.NGN=Nig\u00e9riai naira
currenciesDisplayName.CNY=K\u00ednai j\u00fcan renminbi
+currenciesDisplayName.AOA=kwanza
currenciesDisplayName.MAF=Marokk\u00f3i frank
+currenciesDisplayName.RSD=Szerb D\u00edn\u00e1r
currenciesDisplayName.GNF=Guineai frank
-currenciesDisplayName.HTG=Haiti gourde
currenciesDisplayName.MAD=Marokk\u00f3i dirham
-currenciesDisplayName.TRY=\u00daj t\u00f6r\u00f6k l\u00edra
+currenciesDisplayName.HTG=Haiti gourde
+currenciesDisplayName.TRY=T\u00f6r\u00f6k l\u00edra
currenciesDisplayName.MMK=Mianmari kyat
+currenciesDisplayName.XRE=RINET t\u0151ke
currenciesDisplayName.MYR=Malajziai ringgit
+currenciesDisplayName.LSM=Maloti
+currenciesDisplayName.XEU=Eur\u00f3pai p\u00e9nznemegys\u00e9g
currenciesDisplayName.LSL=Lesothoi loti
-currenciesDisplayName.XEU=European Currency Unit
-currenciesDisplayName.BHD=Bahreini din\u00e1r
currenciesDisplayName.SLL=Sierra Leonei leone
+currenciesDisplayName.BHD=bahreini din\u00e1r
currenciesDisplayName.BTN=Bhut\u00e1ni ngultrum
-currenciesDisplayName.TRL=T\u00f6r\u00f6k l\u00edra
+currenciesDisplayName.TRL=t\u00f6r\u00f6k l\u00edra
currenciesDisplayName.KMF=Comorei frank
-currenciesDisplayName.ANG=Holland-antilla forint
currenciesDisplayName.CZK=Cseh korona
-currenciesDisplayName.AZM=Azerbajdzs\u00e1ni manat
+currenciesDisplayName.ANG=Holland Antillai guilder
+currenciesDisplayName.AZN=Azerbajdzs\u00e1ni manat
+currenciesDisplayName.AZM=Azerbajdzs\u00e1ni manat (AZM)
currenciesDisplayName.KYD=Kajm\u00e1n-szigeteki doll\u00e1r
currenciesDisplayName.GMD=Gambiai dalasi
+currenciesDisplayName.VEF=Venezuelai bolivar fuerte
currenciesDisplayName.BGN=Bolg\u00e1r \u00faj leva
-currenciesDisplayName.CAD=Kanadai doll\u00e1r
currenciesDisplayName.MXV=Mexik\u00f3i Unidad de Inversion (UDI)
+currenciesDisplayName.CAD=Kanadai doll\u00e1r
currenciesDisplayName.BGL=Bolg\u00e1r kem\u00e9ny leva
currenciesDisplayName.VEB=Venezuelai bol\u00edvar
currenciesDisplayName.MLF=Mali frank
-currenciesDisplayName.ILS=Izraeli \u00faj s\u00e9kel
currenciesDisplayName.MXP=Mexik\u00f3i ez\u00fcst peso (1861-1992)
+currenciesDisplayName.ILS=Izraeli \u00faj s\u00e9kel
currenciesDisplayName.PES=Perui sol
-currenciesDisplayName.GYD=Guyanai doll\u00e1r
currenciesDisplayName.MXN=Mexik\u00f3i peso
+currenciesDisplayName.GYD=Guyanai doll\u00e1r
currenciesDisplayName.ILP=Izraeli font
-currenciesDisplayName.SKK=Szlov\u00e1k korona
currenciesDisplayName.CYP=Ciprusi font
+currenciesDisplayName.SKK=Szlov\u00e1k korona
currenciesDisplayName.XDR=Special Drawing Rights
currenciesDisplayName.PEN=Perui sol nuevo
currenciesDisplayName.LRD=Lib\u00e9riai doll\u00e1r
currenciesDisplayName.PEI=Perui inti
-currenciesDisplayName.AMD=Dram
-currenciesDisplayName.BSD=Bahamai doll\u00e1r
+currenciesDisplayName.AMD=\u00d6rm\u00e9ny dram
+currenciesDisplayName.BSD=bahamai doll\u00e1r
+currenciesDisplayName.XPT=Platina
currenciesDisplayName.HRK=Horv\u00e1t kuna
currenciesDisplayName.CLP=Chilei peso
currenciesDisplayName.HRD=Horv\u00e1t d\u00edn\u00e1r
currenciesDisplayName.XPF=CFP frank
currenciesDisplayName.FRF=Francia frank
+currenciesDisplayName.XPD=Pall\u00e1dium
currenciesDisplayName.BRR=Brazil cruzeiro
currenciesDisplayName.MKD=Macedon d\u00edn\u00e1r
currenciesDisplayName.CLF=Chilei unidades de fomento
-currenciesDisplayName.ALL=Alb\u00e1n lek
+currenciesDisplayName.ALL=lek
currenciesDisplayName.BRN=Brazil cruzado novo
currenciesDisplayName.MWK=Malawi kwacha
currenciesDisplayName.BRL=Brazil real
@@ -165,19 +190,21 @@ currenciesDisplayName.SIT=Szlov\u00e9n tolar
currenciesDisplayName.JPY=Jap\u00e1n jen
currenciesDisplayName.XOF=CFA frank BCEAO
currenciesDisplayName.MVR=Mald\u00edv-szigeteki rufiyaa
-currenciesDisplayName.GWE=Portug\u00e1l guinea escudo
currenciesDisplayName.BEF=Belga frank
+currenciesDisplayName.GWE=Portug\u00e1l guinea escudo
+currenciesDisplayName.TOP=Tongai paanga
currenciesDisplayName.YUD=Jugoszl\u00e1v kem\u00e9ny d\u00edn\u00e1r
currenciesDisplayName.BEC=Belga frank (konvertibilis)
currenciesDisplayName.SUR=Szovjet rubel
-currenciesDisplayName.ROL=Rom\u00e1n lej
+currenciesDisplayName.RON=Rom\u00e1n lej
+currenciesDisplayName.ROL=R\u00e9gi rom\u00e1n lej
+currenciesDisplayName.BDT=taka
currenciesDisplayName.DDM=Kelet-N\u00e9met m\u00e1rka
-currenciesDisplayName.BDT=Bangladesi taka
-currenciesDisplayName.XBD=European Unit of Account (XBD)
+currenciesDisplayName.XBD=Eur\u00f3pai kont\u00f3 egys\u00e9g (XBD)
currenciesDisplayName.AWG=Arubai forint
-currenciesDisplayName.XBC=European Unit of Account (XBC)
-currenciesDisplayName.XBB=European Monetary Unit
-currenciesDisplayName.XBA=European Composite Unit
+currenciesDisplayName.XBC=Eur\u00f3pai kont\u00f3 egys\u00e9g (XBC)
+currenciesDisplayName.XBB=Eur\u00f3pai monet\u00e1ris egys\u00e9g
+currenciesDisplayName.XBA=Eur\u00f3pai kompozit egys\u00e9g
currenciesDisplayName.NOK=Norv\u00e9g korona
currenciesDisplayName.MUR=Mauritiusi r\u00fapia
currenciesDisplayName.ZAR=D\u00e9l-afrikai rand
@@ -190,56 +217,62 @@ currenciesDisplayName.GIP=Gibralt\u00e1ri font
currenciesDisplayName.TND=Tun\u00e9ziai d\u00edn\u00e1r
currenciesDisplayName.CVE=Cape Verdei escudo
currenciesDisplayName.UGX=Ugandai shilling
+currenciesDisplayName.XAG=Ez\u00fcst
currenciesDisplayName.ZMK=Zambiai kwacha
currenciesDisplayName.JOD=Jord\u00e1niai d\u00edn\u00e1r
currenciesDisplayName.XAF=CFA frank BEAC
currenciesDisplayName.LBP=Libanoni font
-currenciesDisplayName.UGS=Ugandai shilling (1966-1987)
+currenciesDisplayName.UGS=Ugandai shilling (UGS)
currenciesDisplayName.STD=Sao tome-i \u00e9s principe-i dobra
currenciesDisplayName.WST=Nyugat-szamoai tala
currenciesDisplayName.KHR=Kambodzsai riel
-currenciesDisplayName.EUR=Euro
currenciesDisplayName.DOP=Dominikai peso
+currenciesDisplayName.EUR=Euro
currenciesDisplayName.BOV=Bol\u00edviai mvdol
currenciesDisplayName.MTP=M\u00e1ltai font
currenciesDisplayName.USS=USA doll\u00e1r (aznapi)
currenciesDisplayName.BOP=Bol\u00edviai peso
-currenciesDisplayName.MTL=M\u00e1ltai l\u00edra
currenciesDisplayName.CUP=Kubai peso
+currenciesDisplayName.MTL=M\u00e1ltai l\u00edra
currenciesDisplayName.TMM=T\u00fcrkmeniszt\u00e1ni manat
currenciesDisplayName.USN=USA doll\u00e1r (k\u00f6vetkez\u0151 napi)
+currenciesDisplayName.GHS=Gh\u00e1nai cedi
currenciesDisplayName.SGD=Szingap\u00fari doll\u00e1r
currenciesDisplayName.NZD=\u00daj-z\u00e9landi doll\u00e1r
currenciesDisplayName.USD=USA doll\u00e1r
-currenciesDisplayName.HNL=Hodurasi lempira
currenciesDisplayName.BOB=Boliviano
+currenciesDisplayName.HNL=Hodurasi lempira
+currenciesDisplayName.CHW=WIR frank
currenciesDisplayName.ITL=Olasz l\u00edra
currenciesDisplayName.PAB=Panamai balboa
currenciesDisplayName.GTQ=Guatemalai quetzal
+currenciesDisplayName.XXX=Ismeretlen/\u00e9rv\u00e9nytelen p\u00e9nznem
+currenciesDisplayName.AUD=ausztr\u00e1l doll\u00e1r
+currenciesDisplayName.GHC=Gh\u00e1nai cedi (1979-2007)
currenciesDisplayName.LAK=Laoszi kip
-currenciesDisplayName.GHC=Gh\u00e1nai cedi
-currenciesDisplayName.AUD=Ausztr\u00e1l doll\u00e1r
currenciesDisplayName.NAD=Nam\u00edbiai doll\u00e1r
currenciesDisplayName.KGS=Kirgiziszt\u00e1ni szom
currenciesDisplayName.MGF=Madagaszk\u00e1ri frank
+currenciesDisplayName.BBD=barbadosi doll\u00e1r
currenciesDisplayName.CHF=Sv\u00e1jci frank
-currenciesDisplayName.BBD=Barbadosi doll\u00e1r
+currenciesDisplayName.CHE=WIR euro
currenciesDisplayName.MGA=Madagaszk\u00e1ri ariary
currenciesDisplayName.PYG=Paraguayi guarani
currenciesDisplayName.PLZ=Lengyel zloty (1950-1995)
currenciesDisplayName.YER=Jemeni rial
-currenciesDisplayName.ATS=Osztr\u00e1k schilling
+currenciesDisplayName.ATS=osztr\u00e1k schilling
currenciesDisplayName.ETB=Eti\u00f3piai birr
currenciesDisplayName.BND=Brunei doll\u00e1r
-currenciesDisplayName.JMD=Jamaikai doll\u00e1r
currenciesDisplayName.EGP=Egyiptomi font
+currenciesDisplayName.JMD=Jamaikai doll\u00e1r
currenciesDisplayName.PLN=Lengyel zloty
-currenciesDisplayName.DZD=Alg\u00e9riai d\u00edn\u00e1r
+currenciesDisplayName.DZD=alg\u00e9riai din\u00e1r
currenciesDisplayName.ISK=Izlandi korona
currenciesDisplayName.SRG=Suriname-i gulden
currenciesDisplayName.LYD=L\u00edbiai d\u00edn\u00e1r
+currenciesDisplayName.SRD=Surinamei doll\u00e1r
+currenciesDisplayName.BAM=Bosznia-hercegovinai konvertibilis m\u00e1rka
currenciesDisplayName.BZD=Belizei doll\u00e1r
-currenciesDisplayName.BAM=Bozsnia-hercegovinai konvertibilis m\u00e1rka
currenciesDisplayName.ESP=Spanyol peseta
currenciesDisplayName.KRW=D\u00e9l-koreai won
currenciesDisplayName.NLG=Holland forint
@@ -249,34 +282,39 @@ currenciesDisplayName.ZWD=Zimbabwei doll\u00e1r
currenciesDisplayName.SEK=Sv\u00e9d korona
currenciesDisplayName.CSK=Csehszlov\u00e1k kem\u00e9ny korona
currenciesDisplayName.BYR=Feh\u00e9rorosz rubel
+currenciesDisplayName.ESB=spanyol peseta (konvertibilis kont\u00f3)
currenciesDisplayName.IRR=Ir\u00e1ni rial
+currenciesDisplayName.ESA=spanyol peseta (A-kont\u00f3)
currenciesDisplayName.PKR=Pakiszt\u00e1ni r\u00fapia
currenciesDisplayName.BMD=Bermudai doll\u00e1r
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=szerb din\u00e1r
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
+currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.BRL=BRL
+currenciesSymbol.JPY=JPY
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
@@ -287,6 +325,7 @@ currenciesSymbol.NOK=NKr
currenciesSymbol.UGX=U Sh
currenciesSymbol.BEF=BF
currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
currenciesSymbol.SZL=E
currenciesSymbol.STD=Db
currenciesSymbol.SAR=SRl
@@ -298,11 +337,12 @@ currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=USD
currenciesSymbol.SGD=S$
currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
currenciesSymbol.CVE=CVEsc
@@ -310,10 +350,15 @@ currenciesSymbol.HUF=Ft
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
+currenciesSymbol.EUR=EUR
+currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=GBP
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
+currenciesSymbol.GHS=GH\u00a2
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=LIT
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -321,9 +366,10 @@ currenciesSymbol.MYR=RM
currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
currenciesSymbol.CNY=Y
@@ -338,25 +384,25 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
currenciesSymbol.BZD=BZ$
currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=jan.®febr.®m\u00e1rc.®\u00e1pr.®m\u00e1j.®j\u00fan.®j\u00fal.®aug.®szept.®okt.®nov.®dec.®®
-months=janu\u00e1r®febru\u00e1r®m\u00e1rcius®\u00e1prilis®m\u00e1jus®j\u00fanius®j\u00falius®augusztus®szeptember®okt\u00f3ber®november®december®®
-shortWeekdays=®V®H®K®Sze®Cs®P®Szo®
-weekdays=®vas\u00e1rnap®h\u00e9tf\u0151®kedd®szerda®cs\u00fct\u00f6rt\u00f6k®p\u00e9ntek®szombat®
-firstDayOfWeek=mon
-eras=i. e.®i. sz.®
-ampms=DE®DU®
+shortMonths=jan.\u00aefebr.\u00aem\u00e1rc.\u00ae\u00e1pr.\u00aem\u00e1j.\u00aej\u00fan.\u00aej\u00fal.\u00aeaug.\u00aeszept.\u00aeokt.\u00aenov.\u00aedec.\u00ae\u00ae
+months=janu\u00e1r\u00aefebru\u00e1r\u00aem\u00e1rcius\u00ae\u00e1prilis\u00aem\u00e1jus\u00aej\u00fanius\u00aej\u00falius\u00aeaugusztus\u00aeszeptember\u00aeokt\u00f3ber\u00aenovember\u00aedecember\u00ae\u00ae
+shortWeekdays=\u00aeV\u00aeH\u00aeK\u00aeSze\u00aeCs\u00aeP\u00aeSzo\u00ae
+weekdays=\u00aevas\u00e1rnap\u00aeh\u00e9tf\u0151\u00aekedd\u00aeszerda\u00aecs\u00fct\u00f6rt\u00f6k\u00aep\u00e9ntek\u00aeszombat\u00ae
+eras=i. e.\u00aei. sz.\u00ae
+ampms=de.\u00aedu.\u00ae
shortDateFormat=yyyy.MM.dd.
mediumDateFormat=yyyy.MM.dd.
longDateFormat=yyyy. MMMM d.
@@ -365,7 +411,7 @@ shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
longTimeFormat=H:mm:ss z
fullTimeFormat=H:mm:ss z
-zoneStrings=Europe/Paris®k\u00f6z\u00e9p-eur\u00f3pai id\u0151®k\u00f6z\u00e9p-eur\u00f3pai ny\u00e1ri id\u0151®©
+zoneStrings=Europe_Central\u00aek\u00f6z\u00e9p-eur\u00f3pai id\u0151\u00ae\u00aeK\u00f6z\u00e9p-eur\u00f3pai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Africa_Western\u00aenyugat-afrikai id\u0151\u00ae\u00aenyugat-afrikai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Urumqi\u00aeUrumqi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Kamchatka\u00aePetropavlovszk-kamcsatkai id\u0151\u00ae\u00aePetropavlovszk-kamcsatkai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Uralsk\u00aeUr\u00e1li id\u0151\u00ae\u00aeUr\u00e1li ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Novosibirsk\u00aeNovoszibirzski id\u0151\u00ae\u00aeNovoszibirszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Irkutsk\u00aeIrkutszki id\u0151\u00ae\u00aeIrkutszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Borneo\u00aeborne\u00f3i id\u0151\u00ae\u00aeborne\u00f3i ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Papua_New_Guinea\u00aeP\u00e1pua \u00faj-guineai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Eastern\u00aeAusztr\u00e1l keleti z\u00f3naid\u0151\u00ae\u00aeAusztr\u00e1l keleti ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Aqtau\u00aeaqtaui id\u0151\u00ae\u00aeaqtaui ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeNyugat-kazahszt\u00e1ni z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00aeSzverdlovszki id\u0151\u00ae\u00aeSzverdlovszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Bangladesh\u00aebangladesi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00aeMald\u00edv-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aePonapei id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeSzamarkandi id\u0151\u00aeSAMT (Szamarkand)\u00aeSzamarkandi ny\u00e1ri id\u0151\u00aeSAMST (Szamarkand)\u00ae\u00a9Indian_Ocean\u00aeIndiai-\u00f3ce\u00e1ni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeFidzsi id\u0151\u00ae\u00aeFidzsi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Singapore\u00aeSzingap\u00fari z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00aeamaz\u00f3niai id\u0151\u00ae\u00aeamaz\u00f3niai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Arabian\u00aearab z\u00f3naid\u0151\u00aeAST (arab)\u00aearab ny\u00e1ri id\u0151\u00aeADT (arab)\u00ae\u00a9Phoenix_Islands\u00aePhoenix-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Yekaterinburg\u00aeJekatyerinburgi id\u0151\u00ae\u00aeJekatyerinburgi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Krasnoyarsk\u00aeKrasznojarszki id\u0151\u00ae\u00aeKrasznojarszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Alaska\u00aealaszkai z\u00f3naid\u0151\u00ae\u00aealaszkai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Qyzylorda\u00aeQyzylordai id\u0151\u00ae\u00aeQyzylordai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Gulf\u00ae\u00d6b\u00f6lbeli z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Dutch_Guiana\u00aeholland-guianai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Omsk\u00aeOmszki id\u0151\u00ae\u00aeOmszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Easter\u00aeH\u00fasv\u00e9t-szigeteki id\u0151\u00ae\u00aeH\u00fasv\u00e9t-szigeteki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Hong_Kong\u00aeHongkongi id\u0151\u00ae\u00aeHongkongi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Indonesia_Western\u00aeNyugat-indon\u00e9ziai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeKelet-indon\u00e9ziai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00aeVlagyivosztoki id\u0151\u00ae\u00aeVlagyivosztoki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Aqtobe\u00aeaqtobei id\u0151\u00ae\u00aeaqtobei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Chamorro\u00aeChamorroi z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Kizilorda\u00aeKizilordai id\u0151\u00ae\u00aeKizilordai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Armenia\u00ae\u00f6rm\u00e9ny id\u0151\u00aeAMT (\u00d6rm\u00e9nyorsz\u00e1g)\u00ae\u00f6rm\u00e9ny ny\u00e1ri id\u0151\u00aeAMST (\u00d6rm\u00e9nyorsz\u00e1g)\u00ae\u00a9America_Pacific\u00aecsendes-\u00f3ce\u00e1ni z\u00f3naid\u0151\u00ae\u00aecsendes-\u00f3ce\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Anadyr\u00aeanadiri id\u0151\u00ae\u00aeanadiri ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Tajikistan\u00aeTadzsikiszt\u00e1ni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aefrancia-guianai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHawaii-aleuti z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00aeNep\u00e1li id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeBrunei darussalami id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00aedusanbei id\u0151\u00ae\u00aedusanbei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Kosrae\u00aeKosraei id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeJerev\u00e1ni id\u0151\u00ae\u00aeJerev\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Tokelau\u00aeTokelaui id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeparaguayi id\u0151\u00ae\u00aeparaguayi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Seychelles\u00aeSeychelle-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeIzraeli z\u00f3naid\u0151\u00aeIST (Izrael)\u00aeIzraeli ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Cocos\u00aeK\u00f3kusz-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Norfolk\u00aeNorfolk-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aevolgogr\u00e1di id\u0151\u00ae\u00aevolgogr\u00e1di ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Greenland_Western\u00aenyugat-gr\u00f6nlandi id\u0151\u00ae\u00aenyugat-gr\u00f6nlandi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9New_Caledonia\u00ae\u00daj-kaled\u00f3niai id\u0151\u00ae\u00ae\u00daj-kaled\u00f3niai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Europe_Eastern\u00aeKelet-eur\u00f3pai id\u0151\u00ae\u00aeKelet-eur\u00f3pai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9North_Mariana\u00ae\u00c9szak-mariana-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00ae\u00faj-fundlandi z\u00f3naid\u0151\u00ae\u00ae\u00faj-fundlandi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Australia_Western\u00aeAusztr\u00e1l nyugati z\u00f3naid\u0151\u00ae\u00aeAusztr\u00e1l nyugati ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Moscow\u00aemoszkvai z\u00f3naid\u0151\u00ae\u00aemoszkvai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Kyrgystan\u00aeKirgiz id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00aevenezuelai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeMalayai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Peru\u00aeperui id\u0151\u00ae\u00aeperui ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Christmas\u00aeKar\u00e1csony-szigeti id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9South_Georgia\u00aeD\u00e9l-gr\u00faziai id\u0151\u00aeGST (S. Georgia)\u00ae\u00ae\u00ae\u00a9Korea\u00aeKoreai z\u00f3naid\u0151\u00ae\u00aeKoreai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Argentina_Western\u00aenyugat-argent\u00ednai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00aekelet-afrikai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00aeT\u00fcrkmeniszt\u00e1ni id\u0151\u00ae\u00aeT\u00fcrkmeniszt\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre \u00e9s miqueloni z\u00f3naid\u0151\u00ae\u00aePierre \u00e9s miqueloni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Atlantic\u00aeAtlanti z\u00f3naid\u0151\u00ae\u00aeAtlanti ny\u00e1ri id\u0151sz\u00e1m\u00edt\u00e1s\u00ae\u00ae\u00a9Alaska_Hawaii\u00aealaszkai-hawaii z\u00f3naid\u0151\u00ae\u00aeAlaszka-Hawaii ny\u00e1ri id\u0151sz\u00e1m\u00edt\u00e1s\u00ae\u00ae\u00a9Uzbekistan\u00ae\u00dczbegiszt\u00e1ni id\u0151\u00ae\u00ae\u00dczbegiszt\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Lord_Howe\u00aeLord howei z\u00f3naid\u0151\u00ae\u00aeLord howei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Hovd\u00aeHovdi id\u0151\u00ae\u00aeHovdi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Cape_Verde\u00aeCape verdei id\u0151\u00ae\u00aeCape verdei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Tbilisi\u00aeTbiliszi id\u0151\u00ae\u00aeTbiliszi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Malaysia\u00aeMalajziai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aekeleti z\u00f3naid\u0151\u00ae\u00aekeleti ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Baku\u00aebakui id\u0151\u00ae\u00aebakui ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Reunion\u00aeR\u00e9unioni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Davis\u00aedavisi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeChathami z\u00f3naid\u0151\u00ae\u00aeChathami ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Noronha\u00aeFernando de noronhai id\u0151\u00ae\u00aeFernando de noronhai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Syowa\u00aesyowai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeafganiszt\u00e1ni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Palau\u00aePalaui id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Samoa\u00aeSzamoai z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeFrancia d\u00e9li \u00e9s antarktikus id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00aeSalamon-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Line_Islands\u00aeLine-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeecuadori id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00aeacrei id\u0151\u00ae\u00aeacrei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Dacca\u00aedaccai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aecsojbalszani id\u0151\u00ae\u00aecsojbalszani ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Europe_Western\u00aeNyugat-eur\u00f3pai id\u0151\u00ae\u00aeNyugat-eur\u00f3pai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Africa_Central\u00aek\u00f6z\u00e9p-afrikai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aet\u00f6r\u00f6korsz\u00e1gi id\u0151\u00ae\u00aet\u00f6r\u00f6korsz\u00e1gi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Africa_Southern\u00aed\u00e9l-afrikai z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00aeashabadi id\u0151\u00ae\u00aeashabadi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Bering\u00aeberingi z\u00f3naid\u0151\u00aeBST (Bering)\u00aeBeringi ny\u00e1ri id\u0151sz\u00e1m\u00edt\u00e1s\u00aeBDT (Bering)\u00ae\u00a9Guam\u00aeGuami z\u00f3naid\u0151\u00aeGST (Guam)\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00aeMarshall-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aebut\u00e1ni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Changbai\u00aechangbai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00aeSakhalin id\u0151\u00ae\u00aeSakhalin ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Karachi\u00aeKaracsi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Truk\u00aeTruki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00aeTaskenti id\u0151\u00ae\u00aeTaskenti ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Nauru\u00aeNaurui id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Tuvalu\u00aeTuvalui id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Gilbert_Islands\u00aeGilbert-szigeteki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeF\u00fcl\u00f6p-szigeteki id\u0151\u00ae\u00aeF\u00fcl\u00f6p-szigeteki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9East_Timor\u00aeKelet-timori id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00aeJakutszki id\u0151\u00ae\u00aeJakutszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Pitcairn\u00aePitcairni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00aeIr\u00e1ni z\u00f3naid\u0151\u00ae\u00aeIr\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Argentina\u00aeArgent\u00ednai id\u0151\u00ae\u00aeArgent\u00edn ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Tonga\u00aeTongai id\u0151\u00ae\u00aeTongai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Yukon\u00aeyukoni z\u00f3naid\u0151\u00ae\u00aeyukoni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9New_Zealand\u00ae\u00daj-z\u00e9landi z\u00f3naid\u0151\u00ae\u00ae\u00daj-z\u00e9landi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Magadan\u00aeMagad\u00e1ni id\u0151\u00ae\u00aeMagad\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Gambier\u00aeGambieri id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9China\u00aek\u00ednai z\u00f3naid\u0151\u00aeCST (K\u00edna)\u00aek\u00ednai ny\u00e1ri id\u0151\u00aeCDT (K\u00edna)\u00ae\u00a9Indonesia_Central\u00aeK\u00f6z\u00e9p-indon\u00e9ziai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aehegyvid\u00e9ki z\u00f3naid\u0151\u00ae\u00aehegyvid\u00e9ki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9India\u00aeIndiai z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00aeszurin\u00e1mi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeGreenwichi k\u00f6z\u00e9pid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00aeszamarai id\u0151\u00ae\u00aeszamarai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Marquesas\u00aeMarquesasi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Mawson\u00aemawsoni id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00aeFalkland-szigeteki id\u0151\u00ae\u00aeFalkland-szigeteki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Wake\u00aeWake-szigeti id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Uruguay\u00aeuruguayi id\u0151\u00ae\u00aeuruguayi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Chile\u00aechilei id\u0151\u00ae\u00aechilei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Vanuatu\u00aeVanuatui id\u0151\u00ae\u00aeVanuatui ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeAusztr\u00e1l k\u00f6z\u00e9ps\u0151 nyugati z\u00f3naid\u0151\u00ae\u00aeAusztr\u00e1l k\u00f6z\u00e9ps\u0151 nyugati ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Brasilia\u00aebraz\u00edliai id\u0151\u00ae\u00aebraz\u00edliai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Tahiti\u00aeTahiti id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeKelet-kazahszt\u00e1ni z\u00f3naid\u0151\u00ae\u00ae\u00ae\u00ae\u00a9DumontDUrville\u00aeDumont-d'urvillei id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aerotherai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00aek\u00f6z\u00e9ps\u0151 \u00e1llamokbeli z\u00f3naid\u0151\u00ae\u00aek\u00f6z\u00e9ps\u0151 \u00e1llamokbeli ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Mongolia\u00aeUl\u00e1nb\u00e1tori id\u0151\u00ae\u00aeUl\u00e1nb\u00e1tori ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Frunze\u00aeFrunzei id\u0151\u00ae\u00aeFrunzei ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Lanka\u00aeLankai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00aekujbisevi id\u0151\u00ae\u00aekujbisevi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Greenland_Eastern\u00aekelet-gr\u00f6nlandi id\u0151\u00ae\u00aekelet-gr\u00f6nlandi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Azores\u00aeAzori id\u0151\u00ae\u00aeAzori ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Greenland_Central\u00aek\u00f6z\u00e9p-gr\u00f6nlandi id\u0151\u00ae\u00aek\u00f6z\u00e9p-gr\u00f6nlandi ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Japan\u00aeJap\u00e1n z\u00f3naid\u0151\u00ae\u00aeJap\u00e1n ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Kwajalein\u00aeKwajaleini id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeSevcsenk\u00f3i id\u0151\u00ae\u00aeSevcsenk\u00f3i ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Pakistan\u00aePakiszt\u00e1ni id\u0151\u00ae\u00aePakiszt\u00e1ni ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Bolivia\u00aebol\u00edviai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeCook-szigeteki id\u0151\u00ae\u00aeCook-szigeteki f\u00e9l ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Kashgar\u00aeKasg\u00e1r id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00aeAusztr\u00e1l k\u00f6z\u00e9ps\u0151 z\u00f3naid\u0151\u00ae\u00aeAusztr\u00e1l k\u00f6z\u00e9ps\u0151 ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Vostok\u00aevosztoki id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Guyana\u00aeguyanai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeGr\u00faz id\u0151\u00ae\u00aeGr\u00faz ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Colombia\u00aekolumbiai id\u0151\u00ae\u00aekolumbiai ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Galapagos\u00aeGalapagosi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aekubai z\u00f3naid\u0151\u00aeCST (Kuba)\u00aekubai ny\u00e1ri id\u0151\u00aeCDT (Kuba)\u00ae\u00a9Myanmar\u00aeMyanmari id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Niue\u00aeNiuei id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Mauritius\u00aeMauritiusi id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeWallis \u00e9s futunai id\u0151\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00aeMacaui id\u0151\u00ae\u00aeMacaui ny\u00e1ri id\u0151\u00ae\u00ae\u00a9Aktyubinsk\u00aeaktyubinszki id\u0151\u00ae\u00aeaktyubinszki ny\u00e1ri id\u0151\u00ae\u00ae\u00a9
territories.TL=Kelet-Timor
territories.TK=Tokelau
territories.TJ=Tadzsikiszt\u00e1n
@@ -374,26 +420,27 @@ territories.TG=Togo
territories.TF=Francia D\u00e9li Ter\u00fcletek
territories.GY=Guyana
territories.TD=Cs\u00e1d
-territories.TC=T\u00f6r\u00f6k \u00e9s Caicos Szigetek
+territories.TC=Turks- \u00e9s Caicos-szigetek
territories.GW=Guinea-Bissau
territories.GU=Guam
territories.GT=Guatemala
-territories.GS=D\u00e9l-Georgia \u00e9s D\u00e9l-Sandwich Szigetek
+territories.GS=D\u00e9l Gr\u00fazia \u00e9s a D\u00e9li Szendvics-szigetek
territories.GR=G\u00f6r\u00f6gorsz\u00e1g
-territories.GQ=Egyenl\u00edt\u010fi Guinea
+territories.GQ=Egyenl\u00edt\u0151i-Guinea
territories.GP=Guadeloupe
territories.SZ=Szv\u00e1zif\u00f6ld
-territories.SY=Sz\u00edriai Arab K\u00f6zt\u00e1rsas\u00e1g
+territories.SY=Sz\u00edria
territories.GN=Guinea
territories.GM=Gambia
territories.GL=Gr\u00f6nland
-territories.SV=El Salvador
+territories.SV=Salvador
territories.062=D\u00e9lk\u00f6z\u00e9p-\u00c1zsia
-territories.ST=Saint Tome \u00e9s Principe
-territories.061=Polin\u00e9zia
+territories.ST=Sao Tome \u00e9s Principe
territories.GI=Gibralt\u00e1r
-territories.GH=Ghana
+territories.061=Polin\u00e9zia
+territories.GH=Gh\u00e1na
territories.SR=Suriname
+territories.GG=Guernsey
territories.GF=Francia Guyana
territories.GE=Gr\u00fazia
territories.SO=Szom\u00e1lia
@@ -406,34 +453,35 @@ territories.GA=Gabon
territories.SK=Szlov\u00e1kia
territories.SJ=Svalbard \u00e9s Jan Mayen
territories.SI=Szlov\u00e9nia
-territories.SH=Saint Helena
+territories.SH=Szent Helena
territories.SG=Szingap\u00far
territories.SE=Sv\u00e9dorsz\u00e1g
territories.SD=Szud\u00e1n
-territories.SC=Seychelles
+territories.SC=Seychelle-szigetek
territories.SB=Salamon-szigetek
-territories.SA=Szaud-Ar\u00e1bia
+territories.SA=Sza\u00fad-Ar\u00e1bia
territories.FR=Franciaorsz\u00e1g
-territories.057=Mikron\u00e9zia
territories.FO=Fer\u00f6er-szigetek
-territories.FM=Mikron\u00e9zia, Sz\u00f6vets\u00e9gi \u00c1llamok
+territories.057=Mikron\u00e9ziai r\u00e9gi\u00f3
+territories.FM=Mikron\u00e9zia
territories.RW=Ruanda
territories.054=Melan\u00e9zia
-territories.053=Ausztr\u00e1lia \u00e9s \u00daj-Z\u00e9land
territories.FK=Falkland-szigetek
-territories.RU=Orosz K\u00f6zt\u00e1rsas\u00e1g
+territories.053=Ausztr\u00e1lia \u00e9s \u00daj-Z\u00e9land
+territories.RU=Oroszorsz\u00e1g
territories.FJ=Fidzsi
territories.FI=Finnorsz\u00e1g
+territories.RS=Szerbia
territories.RO=Rom\u00e1nia
-territories.RE=Reunion (francia)
+territories.RE=Reunion
territories.ET=Eti\u00f3pia
territories.ES=Spanyolorsz\u00e1g
territories.ER=Eritrea
-territories.833=Man-sziget
-territories.EH=Nyugat Szahara
+territories.QU=Eur\u00f3pai Uni\u00f3
+territories.EH=Nyugat-Szahara
territories.EG=Egyiptom
-territories.830=Csatorna-szigetek
territories.EE=\u00c9sztorsz\u00e1g
+territories.830=Csatorna-szigetek
territories.QO=K\u00fcls\u0151-\u00d3ce\u00e1nia
territories.EC=Ecuador
territories.DZ=Alg\u00e9ria
@@ -441,13 +489,14 @@ territories.QA=Katar
territories.039=D\u00e9l-Eur\u00f3pa
territories.DO=Dominikai K\u00f6zt\u00e1rsas\u00e1g
territories.PY=Paraguay
-territories.035=D\u00e9lkelet-\u00c1zsia
territories.DM=Dominika
+territories.035=D\u00e9lkelet-\u00c1zsia
territories.PW=Palau
+territories.034=D\u00e9l-\u00c1zsia
territories.DK=D\u00e1nia
territories.DJ=Dzsibuti
territories.PT=Portug\u00e1lia
-territories.PS=Paleszt\u00edn Ter\u00fclet
+territories.PS=Palesztin Ter\u00fclet
territories.030=Kelet-\u00c1zsia
territories.PR=Puerto Rico
territories.DE=N\u00e9metorsz\u00e1g
@@ -457,32 +506,33 @@ territories.PL=Lengyelorsz\u00e1g
territories.PK=Pakiszt\u00e1n
territories.PH=F\u00fcl\u00f6p-szigetek
territories.PG=P\u00e1pua \u00daj-Guinea
-territories.PF=Polin\u00e9zia (francia)
-territories.CZ=Cseh K\u00f6zt\u00e1rsas\u00e1g
+territories.PF=Francia Polin\u00e9zia
+territories.CZ=Csehorsz\u00e1g
territories.PE=Peru
territories.CY=Ciprus
territories.CX=Kar\u00e1csony-szigetek
territories.CV=Z\u00f6ld-foki K\u00f6zt\u00e1rsas\u00e1g
territories.PA=Panama
territories.CU=Kuba
-territories.CS=Serbia \u00e9s Montenegro
+territories.CS=Szerbia \u00e9s Montenegr\u00f3
territories.CR=Costa Rica
-territories.029=Karib-tenger
+territories.029=Karib-t\u00e9rs\u00e9g
territories.CO=Kolumbia
territories.CN=K\u00edna
territories.CM=Kamerun
territories.CL=Chile
territories.CK=Cook-szigetek
+territories.021=Amerika \u00e9szaki r\u00e9sze
territories.CI=Elef\u00e1ntcsontpart
-territories.021=\u00c9szak-Amerika
territories.CH=Sv\u00e1jc
territories.CG=Kong\u00f3
territories.CF=K\u00f6z\u00e9p-afrikai K\u00f6zt\u00e1rsas\u00e1g
-territories.CD=Kong\u00f3, Demokratikus k\u00f6zt\u00e1rsas\u00e1g
-territories.CC=K\u00f3kusz (Keeling)-szigetek
+territories.CD=Kong\u00f3 - Kinshasa
+territories.CC=K\u00f3kusz szigetek
territories.OM=Om\u00e1n
territories.CA=Kanada
-territories.BZ=Beliz
+territories.419=Latin-Amerika \u00e9s a Karib-t\u00e9rs\u00e9g
+territories.BZ=Belize
territories.BY=Feh\u00e9roroszorsz\u00e1g
territories.BW=Botswana
territories.BV=Bouvet-sziget
@@ -490,25 +540,28 @@ territories.BT=Bhut\u00e1n
territories.BS=Baham\u00e1k
territories.BR=Braz\u00edlia
territories.019=Amerika
-territories.018=D\u00e9l-Afrika
+territories.018=Afrika d\u00e9li r\u00e9sze
territories.NZ=\u00daj-Z\u00e9land
-territories.BO=Bol\u00edvia
territories.017=K\u00f6z\u00e9p-Afrika
-territories.BN=Brunei Darussalam
-territories.BM=Bermuda
+territories.BO=Bol\u00edvia
+territories.BN=Brunei
territories.015=\u00c9szak-Afrika
+territories.BM=Bermuda
territories.014=Kelet-Afrika
+territories.BL=Saint Barth\u00e9lemy
territories.013=K\u00f6z\u00e9p-Amerika
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Nyugat-Afrika
-territories.BH=Bahrain
+territories.BI=Burundi
+territories.172=F\u00fcggetlen \u00c1llamok K\u00f6z\u00f6ss\u00e9ge
+territories.BH=Bahrein
territories.NR=Nauru
territories.BG=Bulg\u00e1ria
territories.BF=Burkina Faso
territories.NP=Nep\u00e1l
territories.BE=Belgium
+territories.ZZ=Ismeretlen vagy \u00e9rv\u00e9nytelen k\u00f6rzet
territories.NO=Norv\u00e9gia
territories.BD=Banglades
territories.BB=Barbados
@@ -521,7 +574,7 @@ territories.NF=Norfolk-sziget
territories.AZ=Azerbajdzs\u00e1n
territories.NE=Niger
territories.AX=Aland-szigetek
-territories.NC=\u00daj Kaled\u00f3nia (francia)
+territories.NC=\u00daj-Kaled\u00f3nia
territories.AW=Aruba
territories.ZM=Zambia
territories.NA=Nam\u00edbia
@@ -529,45 +582,48 @@ territories.AU=Ausztr\u00e1lia
territories.AT=Ausztria
territories.AS=Amerikai Szamoa
territories.AR=Argent\u00edna
-territories.009=\u00d3ce\u00e1nia
territories.AQ=Antarktisz
+territories.009=\u00d3ce\u00e1nia
territories.MZ=Mozambik
territories.AO=Angola
territories.MY=Malajzia
territories.AN=Holland Antill\u00e1k
territories.MX=Mexik\u00f3
-territories.005=D\u00e9l-Amerika
territories.AM=\u00d6rm\u00e9nyorsz\u00e1g
+territories.005=D\u00e9l-Amerika
territories.MW=Malawi
territories.AL=Alb\u00e1nia
territories.MV=Mald\u00edv-szigetek
+territories.003=\u00c9szak-Amerika
territories.ZA=D\u00e9l-Afrika
territories.MU=Mauritius
territories.002=Afrika
territories.MT=M\u00e1lta
-territories.001=Vil\u00e1g
territories.AI=Anguilla
+territories.001=Vil\u00e1g
territories.MS=Montserrat
territories.MR=Maurit\u00e1nia
territories.AG=Antigua \u00e9s Barbuda
-territories.MQ=Martinique (francia)
+territories.MQ=Martinique
territories.AF=Afganiszt\u00e1n
territories.MP=\u00c9szaki Mariana-szigetek
territories.AE=Egyes\u00fclt Arab Emir\u00e1tus
-territories.MO=Macao S.A.R., China
+territories.MO=Maka\u00f3
territories.AD=Andorra
territories.MN=Mong\u00f3lia
territories.MM=Mianmar
territories.ML=Mali
-territories.MK=Maced\u00f3nia, K\u00f6zt\u00e1rsas\u00e1g
+territories.MK=Maced\u00f3nia
territories.YT=Mayotte
territories.MH=Marshall-szigetek
territories.MG=Madagaszk\u00e1r
-territories.MD=Mold\u00e1v K\u00f6zt\u00e1rsas\u00e1g
+territories.MF=Saint Martin
+territories.ME=Montenegr\u00f3
+territories.MD=Moldova
territories.MC=Monaco
territories.MA=Marokk\u00f3
territories.YE=Jemen
-territories.LY=L\u00edbiai Arab Jamahiriya
+territories.LY=L\u00edbia
territories.LV=Lettorsz\u00e1g
territories.155=Nyugat-Eur\u00f3pa
territories.LU=Luxemburg
@@ -577,18 +633,19 @@ territories.LS=Lesotho
territories.LR=Lib\u00e9ria
territories.151=Kelet-Eur\u00f3pa
territories.150=Eur\u00f3pa
-territories.LK=Sri Lanka
+territories.LK=Sr\u00ed Lanka
territories.LI=Liechtenstein
-territories.LC=Saint Lucia
+territories.LC=Santa Lucia
territories.LB=Libanon
-territories.LA=Laoszi N\u00e9pi Demokratikus K\u00f6zt\u00e1rsas\u00e1g
+territories.LA=Laosz
territories.KZ=Kazahszt\u00e1n
territories.KY=Kajm\u00e1n-szigetek
-territories.KW=Kuwait
+territories.KW=Kuvait
territories.145=Nyugat-\u00c1zsia
+territories.143=K\u00f6z\u00e9p-\u00c1zsia
territories.142=\u00c1zsia
-territories.KR=Korea, D\u00e9l
-territories.KP=Korea, \u00c9szak
+territories.KR=D\u00e9l-Korea
+territories.KP=\u00c9szak-Korea
territories.KN=Saint Kitts \u00e9s Nevis
territories.KM=Comore-szigetek
territories.KI=Kiribati
@@ -596,13 +653,14 @@ territories.WS=Szamoa
territories.KH=Kambodzsa
territories.KG=Kirgiziszt\u00e1n
territories.KE=Kenya
-territories.WF=Wallis \u00e9s Futuna Szigetek
+territories.WF=Wallis \u00e9s Futuna
territories.JP=Jap\u00e1n
territories.JO=Jord\u00e1nia
territories.JM=Jamaica
territories.VU=Vanuatu
-territories.VN=Vietn\u00e1m
-territories.VI=U.S. Virgin-szigetek
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VI=Amerikai Virgin-szigetek
territories.VG=Brit Virgin-szigetek
territories.VE=Venezuela
territories.VC=Saint Vincent \u00e9s Grenadines
@@ -615,11 +673,12 @@ territories.UZ=\u00dczbegiszt\u00e1n
territories.IO=Brit Indiai Oce\u00e1n
territories.UY=Uruguay
territories.IN=India
+territories.IM=Man-sziget
territories.IL=Izrael
territories.US=Egyes\u00fclt \u00c1llamok
territories.IE=\u00cdrorsz\u00e1g
territories.ID=Indon\u00e9zia
-territories.UM=United States Minor Outlying Islands
+territories.UM=Amerikai Csendes-\u00f3ce\u00e1ni Szigetek
territories.UG=Uganda
territories.UA=Ukrajna
territories.HU=Magyarorsz\u00e1g
@@ -628,150 +687,543 @@ territories.HR=Horv\u00e1torsz\u00e1g
territories.TZ=Tanz\u00e1nia
territories.HN=Honduras
territories.HM=Heard \u00e9s McDonald Szigetek
-territories.TW=Taiwan
+territories.TW=Tajvan
territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R., China
+territories.HK=Hongkong
territories.TT=Trinidad \u00e9s Tobago
territories.TR=T\u00f6r\u00f6korsz\u00e1g
territories.TO=Tonga
territories.TN=Tun\u00e9zia
territories.TM=T\u00fcrkmeniszt\u00e1n
-languages.es=spanyol
-languages.ku=kurd
-languages.eo=eszperant\u00f3
-languages.en=angol
-languages.ks=kasm\u00edri
-languages.el=g\u00f6r\u00f6g
-languages.qu=kecsua
-languages.ko=koreai
-languages.kn=kannada
-languages.km=kambodzsai
-languages.kl=gr\u00f6nlandi
-languages.kk=kazah
+languages.gwi=gvicsin
+languages.akk=akk\u00e1d
+languages.eka=ekadzsuk
+languages.ijo=idzso
+languages.xh=hosza
+languages.sux=sum\u00e9r
+languages.sus=szuszu
+languages.mis=egy\u00e9b nyelvek
+languages.loz=lozi
+languages.tog=nyasa tonga
+languages.zbl=Bliss jelk\u00e9prendszer
+languages.pon=pohnpei
+languages.min=minangkabau
+languages.suk=szukuma
languages.wo=volof
-languages.ka=gr\u00faz
-languages.dz=but\u00e1ni
-languages.jv=j\u00e1vai
-languages.pt=portug\u00e1l
-languages.ps=pastu (afg\u00e1n)
-languages.de=n\u00e9met
-languages.pl=lengyel
-languages.da=d\u00e1n
+languages.lol=mongo
+languages.kut=kutenai
+languages.mic=mikmak
+languages.wa=vallon
+languages.kum=kum\u00fck
+languages.zap=zapot\u00e9k
+languages.ain=ainu
+languages.cus=kusita nyelv
+languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
languages.vo=volap\u00fck
-languages.ja=jap\u00e1n
+languages.oto=otomi nyelv
languages.vi=vietn\u00e1mi
-languages.cy=walesi
-languages.pa=pandzs\u00e1bi
-languages.cs=cseh
-languages.iu=inuktitut
-languages.co=korzikai
-languages.it=olasz
-languages.is=izlandi
+languages.vai=vai
+languages.rar=rarotongai
+languages.ve=venda
+languages.rap=rapanui
+languages.raj=radzsaszt\u00e1ni
+languages.ota=ottom\u00e1n t\u00f6r\u00f6k
+languages.nzi=nzima
+languages.nap=n\u00e1polyi
languages.uz=\u00fczb\u00e9g
-languages.or=orija
-languages.ik=inupiak
+languages.uga=ugariti
+languages.tmh=tamasek
+languages.nai=\u00e9szak-amerikai indi\u00e1n nyelv
+languages.nah=nahuati
languages.ur=urdu
-languages.om=orom\u00f3i
-languages.ca=katal\u00e1n
-languages.ie=interlingue
-languages.id=indon\u00e9z
+languages.fat=fanti
languages.uk=ukr\u00e1n
-languages.ia=interlingua
-languages.oc=okszit\u00e1n
+languages.egy=\u00f3egyiptomi
+languages.zxx=nincs nyelv\u00e9szeti tartalom
languages.ug=ujgur
-languages.hy=\u00f6rm\u00e9ny
-languages.br=breton
-languages.hu=magyar
-languages.bo=tibeti
-languages.bn=beng\u00e1li
-languages.hr=horv\u00e1t
-languages.bi=bislama
-languages.tw=tui
-languages.bh=bihari
-languages.bg=bolg\u00e1r
+languages.fan=fang
+languages.ssa=n\u00edlusi-szaharai nyelv
+languages.mga=k\u00f6z\u00e9p \u00edr
+languages.bat=balti nyelv
+languages.nyo=nyoro
+languages.bas=basza
+languages.nyn=nyankole
+languages.nym=nyamv\u00e9zi
+languages.gsw=sv\u00e1jci n\u00e9met
+languages.hmn=hmong
+languages.ban=balin\u00e9z
+languages.osa=osage
+languages.bal=balucsi
+languages.ty=tahiti
+languages.bai=bamileke nyelvek
+languages.tw=twi
+languages.srr=szerer
+languages.tli=tlingit
+languages.tlh=klingon
languages.tt=tat\u00e1r
-languages.no=norv\u00e9g
-languages.be=belorusz
languages.ts=conga
-languages.hi=hindi
+languages.srn=sranai tongo
+languages.bad=banda
languages.tr=t\u00f6r\u00f6k
-languages.nl=holland
-languages.zu=zulu
-languages.ba=bask\u00edr
languages.to=tonga
-languages.he=h\u00e9ber
languages.tn=szecsu\u00e1ni
languages.tl=tagalog
languages.tk=t\u00fcrkm\u00e9n
-languages.ha=hausza
-languages.ne=nep\u00e1li
-languages.az=azerbajdzs\u00e1ni
-languages.ti=tigrinya
-languages.ay=ajmara
+languages.ti=tigrinja
languages.th=thai
+languages.kru=kuruh
languages.tg=tadzsik
-languages.na=naurui
+languages.byn=blin
languages.te=telugu
-languages.zh=k\u00ednai
-languages.as=assz\u00e1mi
-languages.ar=arab
+languages.kro=kru
+languages.csb=kasub
languages.ta=tamil
-languages.gu=gudzsar\u00e1ti
-languages.my=burmai
-languages.am=amhara
-languages.za=zsuang
-languages.mt=m\u00e1ltai
-languages.ms=mal\u00e1j
-languages.gn=guarani
+languages.krl=karelai
+languages.tkl=tokelaui
+languages.efi=efik
languages.sw=szuah\u00e9li
-languages.mr=marati
languages.sv=sv\u00e9d
-languages.gl=gal\u00edciai
languages.su=szundan\u00e9z
-languages.af=afrikai
+languages.krc=karacs\u00e1j-balk\u00e1r
languages.st=szeszot\u00f3
-languages.mo=moldvai
languages.ss=sziszuati
-languages.mn=mongol
languages.sr=szerb
languages.sq=alb\u00e1n
-languages.ml=malajalam
-languages.ab=abh\u00e1z
-languages.mk=maced\u00f3n
-languages.aa=afar
-languages.so=szom\u00e1li
+languages.men=mende
+languages.crp=kreol \u00e9s pidzsin
+languages.so=szom\u00e1liai
+languages.afh=afrihili
languages.sn=sona
-languages.gd=sk\u00f3t (gael)
-languages.mi=maori
languages.sm=szamoai
languages.sl=szlov\u00e9n
-languages.mg=madagaszk\u00e1ri
+languages.grc=\u00f3g\u00f6r\u00f6g
languages.sk=szlov\u00e1k
-languages.ga=\u00edr
-languages.yo=joruba
+languages.grb=grebo
languages.si=szingal\u00e9z
-languages.sh=szerb-horv\u00e1t
+languages.sh=szerbhorv\u00e1t
+languages.crh=kr\u00edmi tat\u00e1r
+languages.afa=afro\u00e1zsiai nyelv
languages.sg=sango
-languages.yi=zsid\u00f3
-languages.sd=szindi
-languages.fy=fr\u00edz
+languages.se=\u00e9szaki sz\u00e1mi
+languages.sd=szindhi
+languages.udm=udmurt
+languages.sc=szard\u00edniai
languages.sa=szanszkrit
-languages.fr=francia
-languages.lv=lett
-languages.fo=fer\u00f6eri
-languages.lt=litv\u00e1n
languages.rw=kiruanda
+languages.nwc=klasszikus newari
languages.ru=orosz
-languages.fj=fidzsi
-languages.lo=laoszi
-languages.fi=finn
-languages.ln=lingala
+languages.mdr=mandar
languages.ro=rom\u00e1n
languages.rn=kirundi
-languages.rm=r\u00e9torom\u00e1n
-languages.fa=perzsa
+languages.rm=r\u00e9to-rom\u00e1n
+languages.fr_CH=sv\u00e1jci francia
+languages.mdf=moks\u00e1n
+languages.tiv=tiv
+languages.fr_CA=kanadai francia
+languages.ady=cserkesz
+languages.zun=zuni
+languages.kpe=kpelle
+languages.qu=kecsua
+languages.tig=tigr\u00e9
+languages.son=szongai
+languages.cpp=portug\u00e1l alap\u00fa kreol vagy pidgin
+languages.rup=arom\u00e1n
+languages.sog=sogdien
+languages.ada=adangme
+languages.kos=kosrei
+languages.hit=hittite
+languages.cpf=francia alap\u00fa kreol vagy pidgin
+languages.cpe=egy\u00e9b angol alap\u00fa kreol \u00e9s pidgin
+languages.him=himah\u00e1li
+languages.kok=konkani
+languages.hil=hiligajnon
+languages.got=g\u00f3t
+languages.gor=gorontalo
+languages.gon=gondi
+languages.din=dinka
+languages.nub=n\u00fabiai nyelvek
+languages.pt=portug\u00e1l
+languages.ps=pastu
+languages.fur=friuli
+languages.phn=f\u0151niciai
+languages.de_CH=sv\u00e1jci fels\u0151 n\u00e9met
+languages.goh=\u00f3fels\u0151 n\u00e9met
+languages.snk=szoninke
+languages.cop=kopt
+languages.yap=japi
+languages.ach=akoli
+languages.yao=ja\u00f3
+languages.phi=F\u00fcl\u00f6p-szigeteki nyelv
+languages.pl=lengyel
+languages.ace=achin\u00e9z
+languages.pi=pali
+languages.pt_PT=ib\u00e9riai portug\u00e1l
+languages.pa=pandzs\u00e1bi
+languages.bug=bugin\u00e9z
+languages.iba=iban
+languages.sms=koltta lapp
+languages.bua=burj\u00e1t
+languages.mas=masai
+languages.smn=inar sami
+languages.os=osz\u00e9t
+languages.map=ausztron\u00e9z
+languages.or=orija
+languages.man=mandingo
+languages.smj=lule sz\u00e1mi
+languages.smi=lapp nyelv
+languages.mak=makaszar
+languages.om=orom\u00f3i
+languages.mai=maithili
+languages.oj=ojibva
+languages.mag=magahi
+languages.mad=madurai
+languages.sma=d\u00e9li sz\u00e1mi
+languages.oc=okszit\u00e1n
+languages.nso=\u00e9szaki szoto
+languages.btk=batak
+languages.myv=erzj\u00e1ny
+languages.es_ES=ib\u00e9riai spanyol
+languages.de_AT=ausztriai n\u00e9met
+languages.dgr=dogrib
+languages.ny=nyanja
+languages.myn=maja nyelvek
+languages.nv=navaho
+languages.kmb=kimbundu
+languages.nr=d\u00e9li ndebele
+languages.gmh=k\u00f6z\u00e9p fels\u0151 n\u00e9met
+languages.no=norv\u00e9g
+languages.nn=norv\u00e9g nynorsk
+languages.nl=holland
+languages.root=\u0151si
+languages.ng=ndonga
+languages.sla=szl\u00e1v nyelv
+languages.ne=nep\u00e1li
+languages.nd=\u00e9szaki ndebele
+languages.cmc=csam nyelv
+languages.tet=tetum
+languages.nb=norv\u00e9g bokm\u00e1l
+languages.na=naurui
+languages.ter=tereno
+languages.tem=temne
+languages.my=burmai
+languages.lez=lezg
+languages.mt=m\u00e1ltai
+languages.frs=keleti fr\u00edz
+languages.peo=\u00f3perzsa
+languages.ms=mal\u00e1j
+languages.frr=\u00e9szaki fr\u00edz
+languages.mr=marathi
+languages.fro=\u00f3francia
+languages.mo=moldvai
+languages.mn=mongol
+languages.frm=k\u00f6z\u00e9p francia
+languages.ml=malaj\u00e1lam
+languages.jrb=zsid\u00f3-arab
+languages.mk=maced\u00f3n
+languages.mi=maori
+languages.mh=marshalli
+languages.mg=m\u00e1lgas
+languages.nqo=n'ko
+languages.mwr=marvari
+languages.bra=braj
+languages.mwl=mirand\u00e9z
+languages.den=szlevi
+languages.lv=lett
+languages.lu=luba-katanga
+languages.del=delav\u00e1r
+languages.lt=litv\u00e1n
+languages.lo=laoszi
+languages.ln=lingala
+languages.li=limburgi
+languages.ewo=evondo
+languages.lg=ganda
+languages.lb=luxemburgi
languages.la=latin
-languages.xh=hosza
+languages.jpr=zsid\u00f3-perzsa
+languages.vot=votj\u00e1k
+languages.sit=sinotibeti nyelv
+languages.ky=kirgiz
+languages.kw=korni
+languages.kv=komi
+languages.ku=kurd
+languages.sio=szi\u00fa nyelvek
+languages.ks=k\u00e1sm\u00edri
+languages.kr=kanuri
+languages.awa=avadhi
+languages.ko=koreai
+languages.kn=kannada
+languages.km=kambodzsai
+languages.en_GB=brit angol
+languages.kl=gr\u00f6nlandi
+languages.kk=kazah
+languages.rom=roma
+languages.kj=kuanyama
+languages.sid=szidam\u00f3
+languages.ki=kikuju
+languages.kg=kongo
+languages.non=\u00f3skandin\u00e1v
+languages.ka=gr\u00faz
+languages.mus=kr\u00edk
+languages.roa=rom\u00e1n nyelv
+languages.nog=nogaj
+languages.mun=munda nyelvek
+languages.mul=t\u00f6bbsz\u00f6r\u00f6s nyelvek
+languages.jv=j\u00e1vai
+languages.gil=ikiribati
+languages.znd=zande
+languages.shn=san
+languages.fon=fon
+languages.xal=kalm\u00fck
+languages.aus=ausztr\u00e1l nyelvek
+languages.kho=kotan\u00e9z
+languages.ja=jap\u00e1n
+languages.khi=egy\u00e9b koiszan
+languages.pau=palaui
+languages.chy=csejen
+languages.tai=thai nyelv
+languages.iu=inuktitut
+languages.pap=papiamento
+languages.it=olasz
+languages.sgn=jelnyelv
+languages.is=izlandi
+languages.kha=kaszi
+languages.chr=cseroki
+languages.pam=pampangan
+languages.pal=pahlavi
+languages.chp=csipev\u00e9
+languages.io=ido
+languages.cho=csokt\u00f3
+languages.chn=csinuk zsargon
+languages.chm=mari
+languages.tyv=tuvai
+languages.bnt=bantu
+languages.pag=pangaszinan
+languages.ik=inupiak
+languages.chk=csuk\u00e9z
+languages.ii=szecsu\u00e1n ji
+languages.haw=hawaii
+languages.lam=lamba
+languages.ig=igbo
+languages.chg=csagataj
+languages.sga=\u00f3\u00edr
+languages.paa=p\u00e1puai nyelv
+languages.ie=interlingue
+languages.id=indon\u00e9z
+languages.lah=lahnda
+languages.day=dajak
+languages.chb=csibcsa
+languages.ia=interlingva
+languages.lad=ladino
+languages.hz=herero
+languages.hai=haida
+languages.dar=dargva
+languages.hy=\u00f6rm\u00e9ny
+languages.ath=atapaszk nyelv
+languages.hu=magyar
+languages.ht=haiti
+languages.dak=dakota
+languages.hr=horv\u00e1t
+languages.ho=hiri motu
+languages.hi=hindi
+languages.dyu=diula
+languages.he=h\u00e9ber
+languages.ast=aszt\u00far
+languages.kfo=koro
+languages.ha=hausza
+languages.wen=szorb nyelvek
+languages.gv=Man-szigeti
+languages.gu=gudzsarati
+languages.sem=egy\u00e9b szemita
+languages.sel=sz\u00f6lkup
+languages.iro=irok\u00e9z nyelvek
+languages.gn=guarani
+languages.gl=gal\u00edciai
+languages.en_CA=kanadai angol
+languages.arw=aravak
+languages.gez=geez
+languages.art=mesters\u00e9ges nyelv
+languages.gd=sk\u00f3t gael
+languages.ira=ir\u00e1ni
+languages.ga=\u00edr
+languages.arp=arapaho
+languages.arn=araucani
+languages.fy=fr\u00edz
+languages.bla=siksika
+languages.gem=germ\u00e1n nyelv
+languages.ypk=jupik nyelv
+languages.arc=ar\u00e1mi
+languages.fr=francia
+languages.fo=fer\u00f6eri
+languages.cel=egy\u00e9b kelta
+languages.fj=fidzsi
+languages.fi=finn
+languages.ff=fulani
+languages.tvl=tuvalu
+languages.ceb=cebu\u00e1no
+languages.fa=perzsa
+languages.en_AU=ausztr\u00e1l angol
+languages.zh_Hans=egyszer\u0171s\u00edtett k\u00ednai
+languages.zh_Hant=hagyom\u00e1nyos k\u00ednai
languages.eu=baszk
+languages.sco=sk\u00f3t
languages.et=\u00e9szt
-languages.ky=kirgiz
+languages.scn=szic\u00edliai
+languages.es=spanyol
+languages.eo=eszperant\u00f3
+languages.en=angol
+languages.el=g\u00f6r\u00f6g
+languages.tut=alt\u00e1j nyelv
+languages.niu=niui
+languages.tup=tupi nyelvek
+languages.ee=eve
+languages.tum=tumbuka
+languages.nl_BE=flamand
+languages.es_419=latin-amerikai spanyol
+languages.mos=moszi
+languages.dz=but\u00e1ni
+languages.kcg=tyap
+languages.nic=niger-kordofan nyelv
+languages.lus=lushai
+languages.fiu=finnugor nyelv
+languages.dv=divehi
+languages.nia=nias
+languages.moh=mohawk
+languages.luo=luo
+languages.lun=lunda
+languages.apa=apacs nyelvek
+languages.fil=filipp\u00edn\u00f3
+languages.lui=luiseno
+languages.hup=hupa
+languages.cch=atszam
+languages.bin=bini
+languages.de=n\u00e9met
+languages.lua=luba-lulua
+languages.bik=bikol
+languages.was=vaso
+languages.und=ismeretlen vagy \u00e9rv\u00e9nytelen nyelv
+languages.war=vara\u00f3
+languages.da=d\u00e1n
+languages.dum=k\u00f6z\u00e9p holland
+languages.wal=valamo
+languages.mno=manobo nyelvek
+languages.wak=vakas nyelv
+languages.sat=szant\u00e1li
+languages.cy=walesi
+languages.sas=sasak
+languages.kbd=kabardi
+languages.cv=csuvas
+languages.cu=egyh\u00e1zi szl\u00e1v
+languages.mni=manipuri
+languages.cs=cseh
+languages.sam=szamarit\u00e1nus ar\u00e1mi
+languages.cr=kr\u00ed
+languages.sal=szelis nyelv
+languages.dua=duala
+languages.co=korzikai
+languages.sai=d\u00e9l-amerikai indi\u00e1n nyelv
+languages.mnc=mandzsu
+languages.sah=jakut
+languages.kaw=kawi
+languages.inh=ingus
+languages.gba=gbaja
+languages.sad=szandave
+languages.ch=csamoro
+languages.ine=indoeur\u00f3pai nyelv
+languages.bho=bhodzspuri
+languages.enm=k\u00f6z\u00e9p angol
+languages.kar=karen
+languages.inc=egy\u00e9b indiai
+languages.ce=csecsen
+languages.gay=gajo
+languages.ca=katal\u00e1n
+languages.umb=umbundu
+languages.syr=sz\u00edriai
+languages.kam=kamba
+languages.anp=angika
+languages.tsi=csimsi\u00e1ni
+languages.kaj=jju
+languages.ang=\u00f3angol
+languages.kac=kacsin
+languages.cau=egy\u00e9b kauk\u00e1zusi
+languages.kab=kabije
+languages.kaa=kara-kalpak
+languages.bs=bosny\u00e1k
+languages.car=karib
+languages.br=breton
+languages.syc=klasszikus sz\u00edr
+languages.bo=tibeti
+languages.bn=beng\u00e1li
+languages.bm=bambara
+languages.gaa=ga
+languages.cai=egy\u00e9b k\u00f6z\u00e9p-amerikai indi\u00e1n
+languages.bi=bislama
+languages.bh=bihari
+languages.bg=bolg\u00e1r
+languages.be=belorusz
+languages.pt_BR=braz\u00edliai portug\u00e1l
+languages.cad=caddo
+languages.ba=bask\u00edr
+languages.zu=zulu
+languages.zen=zenaga
+languages.pro=\u00f3prov\u00e1nszi
+languages.hsb=fels\u0151 szorb
+languages.az=azerbajdzs\u00e1ni
+languages.ay=ajmara
+languages.av=avar
+languages.as=assz\u00e1mi
+languages.dsb=als\u00f3 szorb
+languages.ar=arab
+languages.ilo=iloko
+languages.elx=elamit
+languages.zh=k\u00ednai
+languages.an=aragon\u00e9z
+languages.pra=prakrit nyelvek
+languages.am=amhara
+languages.new=nevari
+languages.ak=akan
+languages.za=zsuang
+languages.en_US=amerikai angol
+languages.af=afrikaans
+languages.ae=aveszt\u00e1n
+languages.alt=d\u00e9l-altaji
+languages.ab=abh\u00e1z
+languages.aa=afar
+languages.yo=joruba
+languages.alg=algonkin nyelv
+languages.ale=aleut
+languages.mkh=egy\u00e9b mon-khmer
+languages.yi=jiddis
+languages.dra=egy\u00e9b dravida
+languages.ber=berber
+languages.nds=als\u00f3n\u00e9met
+languages.bem=bemba
+languages.bej=bedzsa
+languages.tpi=tok pisin
+variants.POSIX=Sz\u00e1m\u00edt\u00f3g\u00e9p
+variants.AREVMDA=Nyugati \u00f6rm\u00e9ny
+variants.1996=1996-os n\u00e9met helyes\u00edr\u00e1s
+variants.SOLBA=Stolvizza/Solbica t\u00e1jsz\u00f3l\u00e1s
+variants.NEDIS=Natisone t\u00e1jsz\u00f3l\u00e1s
+variants.1994=Szabv\u00e1nyos\u00edtott rezij\u00e1n helyes\u00edr\u00e1s
+variants.1901=Hagyom\u00e1nyos n\u00e9met helyes\u00edr\u00e1s
+variants.FONUPA=UPA fonetika
+variants.OSOJS=Oseacco/Osojane t\u00e1jsz\u00f3l\u00e1s
+variants.LIPAW=Rezij\u00e1n lipovaz t\u00e1jsz\u00f3l\u00e1s
+variants.REVISED=\u00c1tdolgozott helyes\u00edr\u00e1s
+variants.NJIVA=Gniva/Njiva t\u00e1jsz\u00f3l\u00e1s
+variants.TARASK=Taraskijevica helyes\u00edr\u00e1s
+variants.FONIPA=IPA fonetika
+variants.BISKE=San Giorgo/Bila t\u00e1jsz\u00f3l\u00e1s
+variants.SCOUSE=Scouse
+variants.BAKU1926=Egyes\u00edtett t\u00fcrkic latin \u00e1b\u00e9c\u00e9
+variants.SAAHO=Saho
+variants.ROZAJ=Rezij\u00e1n
+variants.MONOTON=Monotonikus
+variants.POLYTON=Politonikus
+variants.AREVELA=Keleti \u00f6rm\u00e9ny
+variants.SCOTLAND=Sk\u00f3t szabv\u00e1nyos angol
+variants.VALENCIA=Valencia
+variants.BOONT=Boontling
+variants.1606NICT=K\u00e9s\u0151i k\u00f6z\u00e9p francia 1606-ig
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy.properties
index 6d6a3cc..9875a8f 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy.properties
@@ -8,18 +8,22 @@
decimalSeparator=,
groupingSeparator=.
percentFormat=#0%
-currencyFormat=#0.00 \u00a4;-#0.00 \u00a4
-shortMonths=\u0545\u0576\u0580®\u0553\u057f\u0580®\u0544\u0580\u057f®\u0531\u057a\u0580®\u0544\u0575\u057d®\u0545\u0576\u057d®\u0545\u056c\u057d®\u0555\u0563\u057d®\u054d\u0565\u057a®\u0540\u0578\u056f®\u0546\u0578\u0575®\u0534\u0565\u056f®®
-months=\u0545\u0578\u0582\u0576\u0578\u0582\u0561\u0580®\u0553\u0565\u057f\u0580\u0578\u0582\u0561\u0580®\u0544\u0561\u0580\u057f®\u0531\u057a\u0580\u056b\u056c®\u0544\u0561\u0575\u056b\u057d®\u0545\u0578\u0582\u0576\u056b\u057d®\u0545\u0578\u0582\u056c\u056b\u057d®\u0555\u0563\u0578\u057d\u057f\u0578\u057d®\u054d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580®\u0540\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580®\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580®\u0534\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580®®
-shortWeekdays=®\u053f\u056b\u0580®\u0535\u0580\u056f®\u0535\u0580\u0584®\u0549\u0578\u0580®\u0540\u0576\u0563®\u0548\u0582\u0580®\u0547\u0561\u0562®
-weekdays=®\u053f\u056b\u0580\u0561\u056f\u056b®\u0535\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b®\u0535\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b®\u0549\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b®\u0540\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b®\u0548\u0582\u0580\u0562\u0561\u0569®\u0547\u0561\u0562\u0561\u0569®
-firstDayOfWeek=mon
-eras=\u0545\u2024\u054f\u2024®\u0546\u2024\u0554\u2024®
-ampms=\u0531\u057c\u2024®\u0535\u0580\u2024®
+currencyFormat=#0.00\u00a0\u00a4;-#0.00\u00a0\u00a4
+currenciesSymbol.AMD=\u0564\u0580.
+shortMonths=\u0545\u0576\u0580\u00ae\u0553\u057f\u0580\u00ae\u0544\u0580\u057f\u00ae\u0531\u057a\u0580\u00ae\u0544\u0575\u057d\u00ae\u0545\u0576\u057d\u00ae\u0545\u056c\u057d\u00ae\u0555\u0563\u057d\u00ae\u054d\u0565\u057a\u00ae\u0540\u0578\u056f\u00ae\u0546\u0578\u0575\u00ae\u0534\u0565\u056f\u00ae\u00ae
+months=\u0545\u0578\u0582\u0576\u0578\u0582\u0561\u0580\u00ae\u0553\u0565\u057f\u0580\u0578\u0582\u0561\u0580\u00ae\u0544\u0561\u0580\u057f\u00ae\u0531\u057a\u0580\u056b\u056c\u00ae\u0544\u0561\u0575\u056b\u057d\u00ae\u0545\u0578\u0582\u0576\u056b\u057d\u00ae\u0545\u0578\u0582\u056c\u056b\u057d\u00ae\u0555\u0563\u0578\u057d\u057f\u0578\u057d\u00ae\u054d\u0565\u057a\u057f\u0565\u0574\u0562\u0565\u0580\u00ae\u0540\u0578\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u00ae\u0546\u0578\u0575\u0565\u0574\u0562\u0565\u0580\u00ae\u0534\u0565\u056f\u057f\u0565\u0574\u0562\u0565\u0580\u00ae\u00ae
+shortWeekdays=\u00ae\u053f\u056b\u0580\u00ae\u0535\u0580\u056f\u00ae\u0535\u0580\u0584\u00ae\u0549\u0578\u0580\u00ae\u0540\u0576\u0563\u00ae\u0548\u0582\u0580\u00ae\u0547\u0561\u0562\u00ae
+weekdays=\u00ae\u053f\u056b\u0580\u0561\u056f\u056b\u00ae\u0535\u0580\u056f\u0578\u0582\u0577\u0561\u0562\u0569\u056b\u00ae\u0535\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b\u00ae\u0549\u0578\u0580\u0565\u0584\u0577\u0561\u0562\u0569\u056b\u00ae\u0540\u056b\u0576\u0563\u0577\u0561\u0562\u0569\u056b\u00ae\u0548\u0582\u0580\u0562\u0561\u0569\u00ae\u0547\u0561\u0562\u0561\u0569\u00ae
+eras=\u0554\u2024\u0531\u2024\u00ae\u0554\u2024\u0535\u2024\u00ae
+ampms=\u0531\u057c\u2024\u00ae\u0535\u0580\u2024\u00ae
shortDateFormat=MM/dd/yy
mediumDateFormat=MMM d, yyyy
longDateFormat=MMMM dd, yyyy
fullDateFormat=EEEE, MMMM d, yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
territories.TJ=\u054f\u0561\u0573\u056b\u056f\u057d\u057f\u0561\u0576
territories.TH=\u0539\u0561\u056b\u056c\u0561\u0576\u0564
territories.TG=\u054f\u0578\u0563\u0578
@@ -82,12 +86,12 @@ territories.PK=\u054a\u0561\u056f\u056b\u057d\u057f\u0561\u0576
territories.PH=\u0556\u056b\u056c\u056b\u057a\u056b\u0576\u0576\u0565\u0580
territories.PG=\u054a\u0561\u057a\u0578\u0582\u0561 \u0546\u0578\u0580 \u0533\u057e\u056b\u0576\u0565\u0561
territories.CZ=\u0549\u0565\u056d\u056b\u0561\u0575\u056b \u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u0575\u0578\u0582\u0576
-territories.CY=\u053f\u056b\u057a\u0580\u0578\u057d
territories.PE=\u054a\u0565\u0580\u0578\u0582
+territories.CY=\u053f\u056b\u057a\u0580\u0578\u057d
territories.CV=\u053f\u0561\u0562\u0578-\u054e\u0565\u0580\u0564\u0565
-territories.CU=\u053f\u0578\u0582\u0562\u0561
territories.PA=\u054a\u0561\u0576\u0561\u0574\u0561
-territories.CS=\u054d\u0565\u0580\u0562\u056b\u0561
+territories.CU=\u053f\u0578\u0582\u0562\u0561
+territories.CS=\u054d\u0565\u0580\u0562\u056b\u0561 \u0587 \u0544\u0578\u0576\u057f\u0565\u0576\u0565\u0563\u0580\u0578
territories.CR=\u053f\u0578\u057d\u057f\u0561-\u054c\u056b\u056f\u0561
territories.CO=\u053f\u0578\u056c\u0578\u0582\u0574\u0562\u056b\u0561
territories.CN=\u0549\u056b\u0576\u0561\u057d\u057f\u0561\u0576
@@ -105,45 +109,52 @@ territories.BW=\u0532\u0578\u057f\u057d\u057e\u0561\u0576\u0561
territories.BT=\u0532\u0578\u0582\u057f\u0561\u0576
territories.BS=\u0532\u0561\u0570\u0561\u0574\u0576\u0565\u0580
territories.BR=\u0532\u0580\u0561\u0566\u056b\u056c\u056b\u0561
-territories.BO=\u0532\u0578\u056c\u056b\u057e\u056b\u0561
+territories.018=\u0540\u0561\u0580\u0561\u057e\u0561\u0575\u056b\u0576 \u0531\u0586\u0580\u056b\u056f\u0561 [018]
territories.NZ=\u0546\u0578\u0580 \u0536\u0565\u056c\u0561\u0576\u0564\u056b\u0561
+territories.BO=\u0532\u0578\u056c\u056b\u057e\u056b\u0561
territories.BN=\u0532\u0580\u0578\u0582\u0576\u0565\u0575
+territories.015=\u0540\u0575\u0578\u0582\u057d\u056b\u057d\u0561\u0575\u056b\u0576 \u0531\u0586\u0580\u056b\u056f\u0561
+territories.014=\u0531\u0580\u0587\u0565\u056c\u0575\u0561\u0576 \u0531\u0586\u0580\u056b\u056f\u0561
territories.BJ=\u0532\u0565\u0576\u056b\u0576
+territories.011=\u0531\u0580\u0587\u0574\u057f\u0575\u0561\u0576 \u0531\u0586\u0580\u056b\u056f\u0561
territories.BI=\u0532\u0578\u0582\u0580\u0578\u0582\u0576\u0564\u056b
territories.BH=\u0532\u0561\u0570\u0580\u0565\u0575\u0576
-territories.BG=\u0532\u0578\u0582\u056c\u0572\u0561\u0580\u056b\u0561
territories.NR=\u0546\u0561\u0578\u0582\u0580\u0578\u0582
+territories.BG=\u0532\u0578\u0582\u056c\u0572\u0561\u0580\u056b\u0561
territories.BF=\u0532\u0578\u0582\u0580\u056f\u056b\u0576\u0561 \u0556\u0561\u057d\u0578
-territories.BE=\u0532\u0565\u056c\u0563\u056b\u0561
territories.NP=\u0546\u0565\u057a\u0561\u056c
-territories.BD=\u0532\u0561\u0576\u0563\u056c\u0561\u0564\u0565\u0577
+territories.BE=\u0532\u0565\u056c\u0563\u056b\u0561
territories.NO=\u0546\u0578\u0580\u057e\u0565\u0563\u056b\u0561
+territories.BD=\u0532\u0561\u0576\u0563\u056c\u0561\u0564\u0565\u0577
territories.BB=\u0532\u0561\u0580\u0562\u0561\u0564\u0578\u057d
territories.ZW=\u0536\u056b\u0574\u0562\u0561\u0562\u057e\u0565
-territories.BA=\u0532\u0578\u057d\u0576\u056b\u0561-\u0540\u0565\u0580\u0581\u0565\u0563\u0578\u057e\u056b\u0576\u0561
territories.NL=\u0546\u056b\u0564\u0565\u0580\u056c\u0561\u0576\u0564\u0565\u0580
+territories.BA=\u0532\u0578\u057d\u0576\u056b\u0561-\u0540\u0565\u0580\u0581\u0565\u0563\u0578\u057e\u056b\u0576\u0561
territories.NI=\u0546\u056b\u056f\u0561\u0580\u0561\u0563\u0578\u0582\u0561
territories.NG=\u0546\u056b\u0563\u0565\u0580\u056b\u0561
territories.AZ=\u0531\u0564\u0580\u0562\u0565\u057b\u0561\u0576
territories.NE=\u0546\u056b\u0563\u0565\u0580
territories.ZM=\u0536\u0561\u0574\u0562\u056b\u0561
-territories.NA=\u0546\u0561\u0574\u056b\u0562\u056b\u0561
territories.AU=\u0531\u057e\u057d\u057f\u0580\u0561\u056c\u056b\u0561
+territories.NA=\u0546\u0561\u0574\u056b\u0562\u056b\u0561
territories.AT=\u0531\u057e\u057d\u057f\u0580\u056b\u0561
territories.AR=\u0531\u0580\u0563\u0565\u0576\u057f\u056b\u0576\u0561
-territories.AO=\u0531\u0576\u0563\u0578\u056c\u0561
territories.MZ=\u0544\u0578\u0566\u0561\u0574\u0562\u056b\u056f
+territories.AO=\u0531\u0576\u0563\u0578\u056c\u0561
territories.MY=\u0544\u0561\u056c\u0561\u0575\u0566\u056b\u0561
-territories.AM=\u0540\u0561\u0575\u0561\u057d\u057f\u0561\u0576\u056b \u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u056b\u0582\u0576
territories.MX=\u0544\u0565\u0584\u057d\u056b\u056f\u0561
-territories.AL=\u0531\u056c\u0562\u0561\u0576\u056b\u0561
+territories.AM=\u0540\u0561\u0575\u0561\u057d\u057f\u0561\u0576\u056b \u0540\u0561\u0576\u0580\u0561\u057a\u0565\u057f\u0578\u0582\u0569\u056b\u0582\u0576
+territories.005=\u0540\u0561\u0580\u0561\u057e\u0561\u0575\u056b\u0576 \u0531\u0574\u0565\u0580\u056b\u056f\u0561
territories.MW=\u0544\u0561\u056c\u0561\u057e\u056b
+territories.AL=\u0531\u056c\u0562\u0561\u0576\u056b\u0561
territories.MV=\u0544\u0561\u056c\u0564\u056b\u057e\u0576\u0565\u0580
territories.ZA=\u0540\u0561\u0580\u0561\u057e\u0561\u0575\u056b\u0576 \u0531\u0586\u0580\u056b\u056f\u0561
territories.MU=\u0544\u0561\u057e\u0580\u056b\u057f\u0578\u057d
+territories.002=\u0531\u0586\u0580\u056b\u056f\u0561
territories.MT=\u0544\u0561\u056c\u0569\u0561
-territories.AG=\u0531\u0576\u057f\u056b\u0563\u0578\u0582\u0561-\u0532\u0561\u0580\u0562\u0578\u0582\u0564\u0561
+territories.001=\u0531\u0577\u056d\u0561\u0580\u0570
territories.MR=\u0544\u0561\u057e\u0580\u056b\u057f\u0561\u0576\u056b\u0561
+territories.AG=\u0531\u0576\u057f\u056b\u0563\u0578\u0582\u0561-\u0532\u0561\u0580\u0562\u0578\u0582\u0564\u0561
territories.AF=\u0531\u0586\u0572\u0561\u0576\u057d\u057f\u0561\u0576
territories.AE=\u0544\u056b\u0561\u0581\u0575\u0561\u056c \u0531\u0580\u0561\u0562\u0561\u056f\u0561\u0576 \u0537\u0574\u056b\u0580\u0561\u0569\u0576\u0565\u0580
territories.AD=\u0531\u0576\u0564\u0578\u0580\u0561
@@ -212,4 +223,107 @@ territories.TR=\u0539\u0578\u0582\u0580\u0584\u056b\u0561
territories.TO=\u054f\u0578\u0576\u0563\u0561
territories.TN=\u0539\u0578\u0582\u0576\u056b\u057d
territories.TM=\u0539\u0578\u0582\u0580\u0584\u0574\u0565\u0576\u057d\u057f\u0561\u0576
+languages.es=\u053b\u057d\u057a\u0561\u0576\u0565\u0580\u0565\u0576
+languages.ku=\u0554\u0580\u0564\u0565\u0580\u0565\u0576
+languages.eo=\u0537\u057d\u057a\u0565\u0580\u0561\u0576\u057f\u0578
+languages.en=\u0531\u0576\u0563\u056c\u0565\u0580\u0565\u0576
+languages.el=\u0540\u0578\u0582\u0576\u0561\u0580\u0565\u0576
+languages.ko=\u053f\u0578\u0580\u0565\u0565\u0580\u0565\u0576
+languages.kn=\u053f\u0561\u0576\u0576\u0561\u0564\u0561
+languages.km=\u053f\u0561\u0574\u0562\u0578\u057b\u0565\u0580\u0565\u0576
+languages.ka=\u054e\u0580\u0561\u0581\u0565\u0580\u0565\u0576
+languages.jv=\u0543\u0561\u057e\u0561\u0575\u0565\u0580\u0565\u0576
+languages.fil=\u054f\u0561\u0563\u0561\u056c\u0565\u0580\u0565\u0576
+languages.pt=\u054a\u0578\u0580\u057f\u0578\u0582\u0563\u0561\u056c\u0565\u0580\u0565\u0576
+languages.ps=\u0553\u0561\u0577\u057f\u0578\u0582\u0576\u0565\u0580\u0565\u0576
+languages.de=\u0533\u0565\u0580\u0574\u0561\u0576\u0565\u0580\u0565\u0576
+languages.pl=\u053c\u0565\u0570\u0565\u0580\u0565\u0576
+languages.da=\u0534\u0561\u0576\u056b\u0565\u0580\u0565\u0576
+languages.tlh=\u053f\u056c\u056b\u0576\u0563\u0578\u0576
+languages.ja=\u0543\u0561\u057a\u0578\u0576\u0565\u0580\u0565\u0576
+languages.vi=\u054e\u056b\u0565\u057f\u0576\u0561\u0574\u0565\u0580\u0565\u0576
+languages.cy=\u054e\u0561\u056c\u0565\u0580\u0565\u0576
+languages.pa=\u0553\u0565\u0576\u057b\u0561\u0562\u0565\u0580\u0565\u0576
+languages.cs=\u0549\u0565\u056d\u0565\u0580\u0565\u0576
+languages.it=\u053b\u057f\u0561\u056c\u0565\u0580\u0565\u0576
+languages.is=\u053b\u057d\u056c\u0561\u0576\u0564\u0565\u0580\u0565\u0576
+languages.uz=\u0548\u0582\u0566\u0562\u0565\u056f\u0565\u0580\u0565\u0576
+languages.or=\u0555\u0580\u056b\u057d\u0565\u0580\u0565\u0576
+languages.ur=\u0548\u0582\u0580\u0564\u0578\u0582
+languages.ca=\u053f\u0561\u057f\u0561\u056c\u0578\u0576\u0565\u0580\u0565\u0576
+languages.ie=\u053b\u0576\u057f\u0565\u0580\u056c\u056b\u0576\u0563
+languages.id=\u053b\u0576\u0564\u0578\u0576\u0565\u0566\u0565\u0580\u0565\u0576
+languages.uk=\u0548\u0582\u056f\u0580\u0561\u056b\u0576\u0565\u0580\u0565\u0576
+languages.ia=\u053b\u0576\u057f\u0565\u0580\u056c\u056b\u0576\u0563\u0578\u0582\u0561
+languages.oc=\u0531\u056f\u057e\u056b\u057f\u0561\u0576\u0565\u0580\u0565\u0576
+languages.ug=\u0548\u0582\u0575\u0572\u0578\u0582\u0580\u0565\u0580\u0565\u0576
languages.hy=\u0540\u0561\u0575\u0565\u0580\u0567\u0576
+languages.bs=\u0532\u0578\u057d\u0576\u0565\u0580\u0565\u0576
+languages.br=\u0532\u0580\u0565\u057f\u0578\u0576\u0565\u0580\u0565\u0576
+languages.hu=\u0540\u0578\u0582\u0576\u0563\u0561\u0580\u0565\u0580\u0565\u0576
+languages.bn=\u0532\u0565\u0576\u0563\u0561\u056c\u0565\u0580\u0565\u0576
+languages.hr=\u053d\u0578\u0580\u057e\u0561\u0569\u0565\u0580\u0565\u0576
+languages.tw=\u054f\u0578\u0582\u056b
+languages.bh=\u0532\u056b\u0570\u0561\u0580\u0565\u0580\u0565\u0576
+languages.bg=\u0532\u0578\u0582\u056c\u0572\u0561\u0580\u0565\u0580\u0565\u0576
+languages.no=\u0546\u0578\u0580\u057e\u0565\u0563\u0565\u0580\u0565\u0576
+languages.be=\u0532\u0565\u056c\u0561\u0580\u0578\u0582\u057d\u0565\u0580\u0565\u0576
+languages.nn=\u0546\u0578\u0580\u057e\u0565\u0563\u0565\u0580\u0565\u0576 (\u0546\u0575\u0578\u0582\u0576\u0578\u0580\u057d\u056f)
+languages.hi=\u0540\u0576\u0564\u056f\u0565\u0580\u0565\u0576
+languages.tr=\u0539\u0578\u0582\u0580\u0584\u0565\u0580\u0565\u0576
+languages.nl=\u0540\u0578\u056c\u0561\u0576\u0564\u0565\u0580\u0565\u0576
+languages.zu=\u0536\u0578\u0582\u056c\u0578\u0582\u057d\u0565\u0580\u0565\u0576
+languages.he=\u0535\u0562\u0580\u0561\u0575\u0565\u0580\u0565\u0576
+languages.tk=\u0539\u0578\u0582\u0580\u0584\u0574\u0565\u0576\u0565\u0580\u0565\u0576
+languages.ne=\u0546\u0565\u057a\u0561\u056c\u0565\u0580\u0565\u0576
+languages.az=\u0531\u0564\u0580\u0562\u0565\u057b\u0561\u0576\u0565\u0580\u0565\u0576
+languages.ti=\u0537\u0580\u056b\u057f\u0580\u0565\u0580\u0565\u0576
+languages.th=\u0539\u0561\u0575\u0565\u0580\u0565\u0576
+languages.te=\u054f\u0565\u056c\u0578\u0582\u0563\u0578\u0582
+languages.zh=\u0549\u056b\u0576\u0561\u0580\u0565\u0576
+languages.as=\u0531\u057d\u0561\u0574\u0565\u0580\u0565\u0576
+languages.ar=\u0531\u0580\u0561\u0562\u0565\u0580\u0565\u0576
+languages.ta=\u0539\u0561\u0574\u056b\u056c\u0565\u0580\u0565\u0576
+languages.gu=\u0533\u0578\u0582\u057b\u0561\u0580\u0561\u057f\u0565\u0580\u0565\u0576
+languages.am=\u0540\u0561\u0562\u0565\u0577\u0565\u0580\u0565\u0576
+languages.mt=\u0544\u0561\u056c\u0569\u0565\u0580\u0565\u0576
+languages.ms=\u0544\u0561\u056c\u0561\u0575\u0565\u0580\u0565\u0576
+languages.gn=\u0533\u0578\u0582\u0561\u0580\u0561\u0576\u0565\u0580\u0565\u0576
+languages.sw=\u054d\u0578\u0582\u0561\u0570\u056b\u056c\u056b
+languages.mr=\u0544\u0561\u0580\u0561\u0569\u056b
+languages.sv=\u0547\u057e\u0565\u0564\u0565\u0580\u0565\u0576
+languages.gl=\u0533\u0561\u056c\u056b\u057d\u0565\u0580\u0565\u0576
+languages.su=\u054d\u0578\u0582\u0576\u0564\u0561\u0576\u0565\u0580\u0565\u0576
+languages.af=\u0531\u0586\u0580\u056b\u056f\u0561\u0576\u057d
+languages.st=\u054d\u0565\u057d\u0578\u057f\u0578
+languages.mn=\u0544\u0578\u0576\u0572\u0578\u056c\u0565\u0580\u0565\u0576
+languages.sr=\u054d\u0565\u0580\u0562\u0565\u0580\u0565\u0576
+languages.sq=\u0531\u056c\u0562\u0561\u0576\u0565\u0580\u0565\u0576
+languages.ml=\u053f\u0565\u0580\u0561\u056c\u0565\u0580\u0565\u0576
+languages.mk=\u0544\u0561\u056f\u0565\u0564\u0578\u0576\u0565\u0580\u0565\u0576
+languages.so=\u054d\u0578\u0574\u0561\u056c\u0565\u0580\u0565\u0576
+languages.gd=\u0533\u0561\u0565\u056c\u0575\u0561\u0576 \u0547\u0578\u057f\u056c\u0561\u0576\u0564\u0565\u0580\u0565\u0576
+languages.sl=\u054d\u056c\u0578\u057e\u0565\u0576\u0565\u0580\u0565\u0576
+languages.sk=\u054d\u056c\u0578\u057e\u0561\u056f\u0565\u0580\u0565\u0576
+languages.ga=\u053b\u057c\u056c\u0561\u0576\u0564\u0565\u0580\u0565\u0576
+languages.si=\u054d\u056b\u0576\u0570\u0561\u056c\u0565\u0580\u0565\u0576
+languages.sh=\u054d\u0565\u0580\u0562\u0561-\u053d\u0578\u0580\u057e\u0561\u0569\u0565\u0580\u0565\u0576
+languages.yi=\u053b\u0564\u056b\u0577
+languages.sd=\u054d\u056b\u0576\u0564\u0570\u056b
+languages.fy=\u0556\u0580\u056b\u057d\u0565\u0580\u0565\u0576
+languages.sa=\u054d\u0561\u0576\u057d\u056f\u0580\u056b\u057f\u0565\u0580\u0565\u0576
+languages.fr=\u0556\u0580\u0561\u0576\u057d\u0565\u0580\u0565\u0576
+languages.lv=\u053c\u0561\u057f\u057e\u0565\u0580\u0565\u0576
+languages.lt=\u053c\u056b\u057f\u057e\u0565\u0580\u0565\u0576
+languages.fo=\u0556\u0561\u0580\u057e\u0565\u0580\u0565\u0576
+languages.ru=\u054c\u0578\u0582\u057d\u0565\u0580\u0565\u0576
+languages.lo=\u053c\u0561\u0578\u057d\u0565\u0580\u0565\u0576
+languages.ln=\u053c\u056b\u0576\u0563\u0561\u056c\u0561
+languages.fi=\u0556\u056b\u0576\u0576\u0565\u0580\u0565\u0576
+languages.ro=\u054c\u0578\u0582\u0574\u056b\u0576\u0565\u0580\u0565\u0576
+languages.fa=\u054a\u0561\u0580\u057d\u056f\u0565\u0580\u0565\u0576
+languages.la=\u053c\u0561\u057f\u056b\u0576\u0565\u0580\u0565\u0576
+languages.xh=\u053d\u0578\u0577\u0565\u0580\u0565\u0576
+languages.eu=\u0532\u0561\u057d\u056f\u0565\u0580\u0565\u0576
+languages.ky=\u0542\u0580\u0572\u0566\u0565\u0580\u0565\u0576
+languages.et=\u0537\u057d\u057f\u0578\u0576\u0565\u0580\u0565\u0576
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties
index 9e2bd9d..1c634b2 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties
@@ -5,6 +5,6 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortMonths=\u0540\u0576\u057e®\u0553\u057f\u057e®®®®\u0540\u0576\u057d®\u0540\u056c\u057d®®®®®®®
-months=\u0540\u0578\u0582\u0576\u057e\u0561\u0580®\u0553\u0565\u057f\u0580\u057e\u0561\u0580®®®®\u0540\u0578\u0582\u0576\u056b\u057d®\u0540\u0578\u0582\u056c\u056b\u057d®®®®®®®
-eras=\u0544\u2024\u0539\u2024\u0531\u2024®\u0544\u2024\u0539\u2024®
+shortMonths=\u0540\u0576\u057e\u00ae\u0553\u057f\u057e\u00ae\u00ae\u00ae\u00ae\u0540\u0576\u057d\u00ae\u0540\u056c\u057d\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u0540\u0578\u0582\u0576\u057e\u0561\u0580\u00ae\u0553\u0565\u057f\u0580\u057e\u0561\u0580\u00ae\u00ae\u00ae\u00ae\u0540\u0578\u0582\u0576\u056b\u057d\u00ae\u0540\u0578\u0582\u056c\u056b\u057d\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+eras=\u0544\u2024\u0539\u2024\u0531\u2024\u00ae\u0544\u2024\u0539\u2024\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ia.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ia.properties
new file mode 100644
index 0000000..15da57a
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ia.properties
@@ -0,0 +1,318 @@
+# LocaleInformation_ia.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=.
+currenciesDisplayName.NOK=Coronas norvegian
+currenciesDisplayName.JPY=Yen japonese
+currenciesDisplayName.DKK=Coronas danese
+currenciesDisplayName.DEM=Marcos german
+currenciesDisplayName.CHF=Francos suisse
+currenciesDisplayName.AUD=Dollares australian
+currenciesDisplayName.FRF=francos francese
+currenciesDisplayName.USD=Dollares statounitese
+currenciesDisplayName.SEK=Coronas svedese
+currenciesDisplayName.EUR=Euros
+currenciesDisplayName.GBP=Libras sterling britannic
+currenciesDisplayName.CAD=Dollares canadian
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemai\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeoct\u00aenov\u00aedec\u00ae\u00ae
+months=januario\u00aefebruario\u00aemartio\u00aeapril\u00aemaio\u00aejunio\u00aejulio\u00aeaugusto\u00aeseptembre\u00aeoctobre\u00aenovembre\u00aedecembre\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aelun\u00aemar\u00aemer\u00aejov\u00aeven\u00aesab\u00ae
+weekdays=\u00aedominica\u00aelunedi\u00aemartedi\u00aemercuridi\u00aejovedi\u00aevenerdi\u00aesabbato\u00ae
+eras=a.Chr.\u00aep.Chr.\u00ae
+ampms=a.m.\u00aep.m.\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=Timor del Est
+territories.TK=Tokelau
+territories.TJ=Tadzhikistan
+territories.TH=Thailandia
+territories.TG=Togo
+territories.TF=Territorios meridional francese
+territories.TD=Tchad
+territories.TC=Insulas Turcos e Caicos
+territories.GW=Guinea-Bissau
+territories.GR=Grecia
+territories.GQ=Guinea equatorial
+territories.SZ=Swazilandia
+territories.SY=Syria
+territories.GN=Guinea
+territories.GM=Gambia
+territories.GL=Groenlandia
+territories.GH=Ghana
+territories.SR=Suriname
+territories.GF=Guyana francese
+territories.GE=Georgia
+territories.SO=Somalia
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=Regno Unite
+territories.SL=Sierra Leone
+territories.GA=Gabon
+territories.SK=Slovachia
+territories.SI=Slovenia
+territories.SE=Svedia
+territories.SD=Sudan
+territories.SC=Seychelles
+territories.SB=Insulas Solomon
+territories.SA=Arabia Saudita
+territories.FR=Francia
+territories.FO=Insulas Feroe
+territories.FM=Micronesia
+territories.RW=Ruanda
+territories.FI=Finlandia
+territories.RO=Romania
+territories.ET=Ethiopia
+territories.ES=Espania
+territories.ER=Eritrea
+territories.EH=Sahara occidental
+territories.EG=Egypto
+territories.EE=Estonia
+territories.EC=Ecuador
+territories.DZ=Algeria
+territories.DO=Republica Dominican
+territories.PY=Paraguay
+territories.DK=Danmark
+territories.PT=Portugal
+territories.DE=Germania
+territories.PL=Polonia
+territories.PK=Pakistan
+territories.PH=Philippinas
+territories.PG=Papua Nove Guinea
+territories.PF=Polynesia francese
+territories.CZ=Republica Tchec
+territories.PE=Peru
+territories.CY=Cypro
+territories.CX=Insula de Natal
+territories.CU=Cuba
+territories.CO=Colombia
+territories.CN=China
+territories.CM=Camerun
+territories.CL=Chile
+territories.CK=Insulas Cook
+territories.CH=Suissa
+territories.CG=Congo
+territories.CF=Republica African Central
+territories.OM=Oman
+territories.CA=Canada
+territories.BY=Bielorussia
+territories.BW=Botswana
+territories.BV=Insula de Bouvet
+territories.BT=Bhutan
+territories.BS=Bahamas
+territories.BR=Brasil
+territories.NZ=Nove Zelanda
+territories.BO=Bolivia
+territories.BJ=Benin
+territories.BI=Burundi
+territories.BG=Bulgaria
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Belgica
+territories.NO=Norvegia
+territories.BD=Bangladesh
+territories.ZW=Zimbabwe
+territories.NL=Nederlandia
+territories.BA=Bosnia e Herzegovina
+territories.NI=Nicaragua
+territories.NG=Nigeria
+territories.NF=Insula Norfolk
+territories.AZ=Azerbaidzhan
+territories.NE=Niger
+territories.NC=Nove Caledonia
+territories.ZM=Zambia
+territories.AU=Australia
+territories.NA=Namibia
+territories.AT=Austria
+territories.AS=Samoa american
+territories.AR=Argentina
+territories.AQ=Antarctica
+territories.MZ=Mozambique
+territories.AO=Angola
+territories.MY=Malaysia
+territories.AN=Antillas nederlandese
+territories.MX=Mexico
+territories.AM=Armenia
+territories.MW=Malawi
+territories.AL=Albania
+territories.ZA=Africa del Sud
+territories.MR=Mauritania
+territories.AG=Antigua e Barbuda
+territories.AF=Afghanistan
+territories.MP=Insulas Marianna del Nord
+territories.AE=Emiratos Arabe Unite
+territories.MN=Mongolia
+territories.MM=Birmania/Myanmar
+territories.ML=Mali
+territories.MK=Macedonia
+territories.MH=Insulas Marshall
+territories.MG=Madagascar
+territories.MD=Moldavia
+territories.MA=Marocco
+territories.YE=Yemen
+territories.LY=Libya
+territories.LV=Lettonia
+territories.LT=Lituania
+territories.LS=Lesotho
+territories.LR=Liberia
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Sancte Lucia
+territories.LB=Libano
+territories.KZ=Kazakhstan
+territories.KY=Insulas de Caiman
+territories.KR=Corea del Sud
+territories.KP=Corea del Nord
+territories.KN=Sancte Christophoro e Nevis
+territories.KM=Comoros
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Cambodgia
+territories.KG=Kirghizistan
+territories.KE=Kenya
+territories.JP=Japon
+territories.JO=Jordania
+territories.VU=Vanuatu
+territories.VE=Venezuela
+territories.VC=Sancte Vincente e le Grenadinas
+territories.IT=Italia
+territories.IS=Islanda
+territories.IR=Iran
+territories.IQ=Irak
+territories.UZ=Uzbekistan
+territories.IO=Territorio oceanic britanno-indian
+territories.UY=Uruguay
+territories.IN=India
+territories.IL=Israel
+territories.US=Statos Unite
+territories.IE=Irlanda
+territories.ID=Indonesia
+territories.UG=Uganda
+territories.UA=Ukraina
+territories.HU=Hungaria
+territories.HT=Haiti
+territories.HR=Croatia
+territories.TZ=Tanzania
+territories.HN=Honduras
+territories.TW=Taiwan
+territories.TV=Tuvalu
+territories.TT=Trinidad e Tobago
+territories.TR=Turchia
+territories.TO=tonga
+territories.TN=Tunisia
+territories.TM=Turkmenistan
+languages.es=espaniol
+languages.ku=kurdo
+languages.eo=esperanto
+languages.en=anglese
+languages.el=greco
+languages.ko=coreano
+languages.kn=kannada
+languages.km=Cambodiano
+languages.ka=georgiano
+languages.jv=javanese
+languages.fil=tagalog
+languages.pt=portugese
+languages.ps=pashto
+languages.de=germano
+languages.pl=polonese
+languages.da=danese
+languages.tlh=Klingon
+languages.ja=japonese
+languages.vi=vietnamese
+languages.cy=gallese
+languages.pa=punjabi
+languages.cs=checo
+languages.it=italiano
+languages.is=islandese
+languages.uz=uzbeco
+languages.or=oriya
+languages.ur=urdu
+languages.ca=catalano
+languages.ie=Interlingue
+languages.id=indonesiano
+languages.uk=ukrainiano
+languages.ia=interlingua
+languages.oc=occitano
+languages.ug=Uyghur
+languages.hy=armeniano
+languages.bs=bosniaco
+languages.br=breton
+languages.hu=hungaro
+languages.bn=bengali
+languages.hr=croato
+languages.tw=twi
+languages.bh=bihari
+languages.bg=bulgaro
+languages.no=norvegiano
+languages.be=bielorusso
+languages.nn=norvegiano (nynorsk)
+languages.hi=hindi
+languages.tr=turco
+languages.nl=nederlandese
+languages.zu=zulu
+languages.he=hebreo
+languages.tk=turkmeno
+languages.ne=nepalese
+languages.az=azerbaidzhani
+languages.ti=tigrinya
+languages.th=thai
+languages.en_US=anglese (SUA)
+languages.te=telugu
+languages.as=Assamese
+languages.ar=arabe
+languages.ta=tamil
+languages.gu=gujarati
+languages.am=amharico
+languages.mt=maltese
+languages.ms=malay
+languages.gn=guarani
+languages.sw=swahili
+languages.mr=marathi
+languages.sv=svedese
+languages.gl=gallego
+languages.su=sundanese
+languages.af=afrikaans
+languages.st=sesotho
+languages.mn=mongolico
+languages.sr=serbo
+languages.sq=albanese
+languages.ml=malayalam
+languages.mk=macedone
+languages.so=somali
+languages.gd=scoto gaelic
+languages.sl=sloveno
+languages.sk=slovaco
+languages.ga=irlandese
+languages.si=sinhalese
+languages.sh=serbocroate
+languages.yi=yiddish
+languages.sd=sindhi
+languages.fy=frisiano
+languages.sa=sanscrito
+languages.fr=francese
+languages.lv=letton
+languages.lt=lithuano
+languages.fo=faroese
+languages.ru=russo
+languages.lo=laotiano
+languages.ln=lingala
+languages.fi=finnese
+languages.ro=romaniano
+languages.fa=persiano
+languages.la=latino
+languages.xh=xhosa
+languages.en_GB=anglese (RU)
+languages.eu=basco
+languages.ky=kirghizo
+languages.et=estoniano
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_id.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_id.properties
index bd01721..29b9ed9 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_id.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_id.properties
@@ -8,18 +8,88 @@
decimalSeparator=,
groupingSeparator=.
currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesDisplayName.CHF=Franc Swiss
+currenciesDisplayName.AUD=Dolar Australia
+currenciesDisplayName.FJD=Dollar Fiji
+currenciesDisplayName.RUB=Rubel Rusia
+currenciesDisplayName.CZK=Koruna Czech
+currenciesDisplayName.THB=Baht Thailand
+currenciesDisplayName.SEK=Kronor Swedia
+currenciesDisplayName.HRK=Kuna Kroasia
+currenciesDisplayName.PLN=NewZloty Polandia
+currenciesDisplayName.SKK=Koruna Slovakia
+currenciesDisplayName.MAD=Dirham Maroko
+currenciesDisplayName.TWD=Dolar Taiwan Baru
+currenciesDisplayName.MYR=Ringgit Malaysia
+currenciesDisplayName.HUF=Forint Hungaria
+currenciesDisplayName.BND=Dollar Brunei
+currenciesDisplayName.UAH=Hryvnia Ukrania
+currenciesDisplayName.INR=Rupee India
+currenciesDisplayName.AED=Dirham Uni Emirat Arab
+currenciesDisplayName.SAR=Real Saudi
+currenciesDisplayName.CAD=Dolar Kanada
+currenciesDisplayName.USD=Dolar Amerika
+currenciesDisplayName.BGN=Lev Bulgaria
+currenciesDisplayName.JPY=Yen Jepang
+currenciesDisplayName.GBP=Pondsterling Inggris
+currenciesDisplayName.PKR=Rupee Pakistan
+currenciesDisplayName.PHP=Peso Filipina
+currenciesDisplayName.PEN=Nuevo Sol Peruvian
+currenciesDisplayName.FRF=Frank Prancis
+currenciesDisplayName.NOK=Kroner Norwegia
+currenciesDisplayName.EUR=Euro
+currenciesDisplayName.HKD=Dolar Hong Kong
+currenciesDisplayName.IDR=Rupiah Indonesia
+currenciesDisplayName.ZAR=Rand Afrika Selatan
+currenciesDisplayName.SGD=Dolar Singapura
+currenciesDisplayName.MXN=Peso Meksiko
+currenciesDisplayName.TRY=Lira Turki Baru
+currenciesDisplayName.CLP=Peso Chili
+currenciesDisplayName.COP=Peso Kolombia
+currenciesDisplayName.KRW=Won Korea Selatan
+currenciesDisplayName.SIT=Tolar Slovenia
+currenciesDisplayName.EEK=Kroon Estonia
+currenciesDisplayName.RSD=Dinar Serbia
+currenciesDisplayName.TRL=Lira Turki
+currenciesDisplayName.BRL=Real Brazil
+currenciesDisplayName.DEM=Mark Jerman
+currenciesDisplayName.VEB=Bolivar Venezuela
+currenciesDisplayName.ARS=Peso Argentina
+currenciesDisplayName.CNY=Yuan Renminbi
+currenciesDisplayName.DKK=Kroner Denmark
+currenciesDisplayName.MTL=Lira Malta
+currenciesDisplayName.ILS=Shekel Israel
+currenciesDisplayName.VND=Dong Vietnam
+currenciesDisplayName.BOB=Boliviano Bolivia
+currenciesDisplayName.NZD=Dolar New Zealand
+currenciesDisplayName.RON=Leu Rumania Baru
+currenciesDisplayName.KES=Shilling Kenya
+currenciesDisplayName.LTL=Litas Lithuania
+currenciesDisplayName.EGP=Pound Mesir
currenciesSymbol.IDR=Rp
-shortMonths=Jan®Feb®Mar®Apr®Mei®Jun®Jul®Agu®Sep®Okt®Nov®Des®®
-months=Januari®Februari®Maret®April®Mei®Juni®Juli®Agustus®September®Oktober®November®Desember®®
-shortWeekdays=®Min®Sen®Sel®Rab®Kam®Jum®Sab®
-weekdays=®Minggu®Senin®Selasa®Rabu®Kamis®Jumat®Sabtu®
-firstDayOfWeek=mon
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMei\u00aeJun\u00aeJul\u00aeAgu\u00aeSep\u00aeOkt\u00aeNov\u00aeDes\u00ae\u00ae
+months=Januari\u00aeFebruari\u00aeMaret\u00aeApril\u00aeMei\u00aeJuni\u00aeJuli\u00aeAgustus\u00aeSeptember\u00aeOktober\u00aeNovember\u00aeDesember\u00ae\u00ae
+shortWeekdays=\u00aeMin\u00aeSen\u00aeSel\u00aeRab\u00aeKam\u00aeJum\u00aeSab\u00ae
+weekdays=\u00aeMinggu\u00aeSenin\u00aeSelasa\u00aeRabu\u00aeKamis\u00aeJumat\u00aeSabtu\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd MMM yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=H:mm
+mediumTimeFormat=H:mm:ss
+longTimeFormat=H:mm:ss z
+fullTimeFormat=H:mm:ss z
+territories.TL=Timor Timur
territories.TK=Tokelau
territories.TJ=Tajikistan
territories.TH=Thailand
territories.TG=Togo
+territories.TF=Wilayah Prancis Selatan
territories.GY=Guyana
territories.TD=Chad
+territories.TC=Kepulauan Turks dan Caicos
territories.GW=Guinea-Bissau
territories.GU=Guam
territories.GT=Guatemala
@@ -37,6 +107,7 @@ territories.ST=Sao Tome dan Principe
territories.GI=Gibraltar
territories.GH=Ghana
territories.SR=Suriname
+territories.GG=Guernsey
territories.GF=Guyana Perancis
territories.GE=Georgia
territories.SO=Somalia
@@ -64,6 +135,7 @@ territories.FK=Kepulauan Falkland
territories.RU=Rusia
territories.FJ=Fiji
territories.FI=Finlandia
+territories.RS=Serbia
territories.RO=Romania
territories.RE=R\u00e9union
territories.ET=Ethiopia
@@ -99,7 +171,7 @@ territories.CX=Pulau Christmas
territories.CV=Tanjung Verde
territories.PA=Panama
territories.CU=Kuba
-territories.CS=Serbia
+territories.CS=Serbia dan Montenegro
territories.CR=Kosta Rika
territories.CO=Kolombia
territories.CN=Cina
@@ -145,6 +217,7 @@ territories.NG=Nigeria
territories.NF=Kepulauan Norfolk
territories.AZ=Azerbaijan
territories.NE=Niger
+territories.AX=\ufffdLand Islands
territories.NC=Kaledonia Baru
territories.AW=Aruba
territories.ZM=Zambia
@@ -168,14 +241,14 @@ territories.MU=Mauritius
territories.MT=Malta
territories.AI=Anguilla
territories.MS=Montserrat
-territories.AG=Antigua dan Barbuda
territories.MR=Mauritania
-territories.AF=Afghanistan
+territories.AG=Antigua dan Barbuda
territories.MQ=Martinique
-territories.AE=Uni Emirat Arab
+territories.AF=Afghanistan
territories.MP=Kepualuan Mariana Utara
-territories.AD=Andora
+territories.AE=Uni Emirat Arab
territories.MO=Makao S.A.R. Cina
+territories.AD=Andora
territories.MN=Mongolia
territories.MM=Myanmar
territories.ML=Mali
@@ -183,6 +256,7 @@ territories.MK=Macedonia
territories.YT=Mayotte
territories.MH=Kepulauan Marshall
territories.MG=Madagaskar
+territories.ME=Montenegro
territories.MD=Moldova
territories.MC=Monaco
territories.MA=Maroko
@@ -215,6 +289,7 @@ territories.JP=Jepang
territories.JO=Yordania
territories.JM=Jamaika
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=Kepulauan U.S. Virgin
territories.VG=Kepulauan British Virgin
@@ -226,12 +301,15 @@ territories.IS=Islandia
territories.IR=Iran
territories.IQ=Iraq
territories.UZ=Uzbekistan
+territories.IO=British Indian Ocean Territory
territories.UY=Uruguay
territories.IN=India
+territories.IM=Isle of Man
territories.IL=Israel
territories.US=Amerika Serikat
territories.IE=Irlandia
territories.ID=Indonesia
+territories.UM=Kepulauan minor sekitar Amerika Serikat
territories.UG=Uganda
territories.UA=Ukraina
territories.HU=Hungaria
@@ -248,230 +326,507 @@ territories.TR=Turkey
territories.TO=Tonga
territories.TN=Tunisia
territories.TM=Turkmenistan
+languages.gwi=Gwich'in
+languages.akk=Akkadien
+languages.eka=Ekajuk
+languages.ijo=Ijo
+languages.xh=Xhosa
+languages.sux=Sumeria
+languages.sus=Susu
+languages.mis=Bahasa Lain-lain
+languages.loz=Lozi
+languages.tog=Nyasa Tonga
+languages.pon=Pohnpeia
+languages.min=Minangkabau
+languages.suk=Sukuma
+languages.wo=Wolof
+languages.lol=Mongo
+languages.kut=Kutenai
+languages.mic=Micmac
+languages.wa=Walloon
+languages.kum=Kumyk
+languages.zap=Zapotek
+languages.ain=Ainu
+languages.cus=Cushitic Lain
+languages.jbo=Lojban
+languages.doi=Dogri
+languages.zza=Zaza
+languages.vo=Volap\u00fck
+languages.oto=Bahasa Otomia
+languages.vi=Vietnamese
+languages.vai=Vai
+languages.rar=Rarotongan
+languages.ve=Venda
+languages.rap=Rapanui
+languages.raj=Rajasthani
+languages.ota=Turki Ottoman
+languages.nzi=Nzima
+languages.nap=Neapolitan
+languages.uz=Uzbek
+languages.uga=Ugaritik
+languages.tmh=Tamashek
+languages.nai=Indian Amerika Utara Lain
+languages.nah=Nahuati
+languages.ur=Urdu
+languages.fat=Fanti
+languages.uk=Ukrainian
+languages.egy=Mesir Kuno
+languages.zxx=Tidak ada konten linguistik
+languages.ug=Uighur
+languages.fan=Fang
+languages.ssa=Nilo-Sahara Lain
+languages.mga=Irlandia Abad Pertengahan (900-1200)
+languages.bat=Baltik (Lainnya)
+languages.nyo=Nyoro
+languages.bas=Basa
+languages.nyn=Nyankole
+languages.nym=Nyamwezi
+languages.gsw=Jerman Swiss
+languages.hmn=Hmong
+languages.ban=Balin
+languages.osa=Osage
+languages.bal=Baluchi
+languages.ty=Tahitian
+languages.bai=Bahasa-bahasa Bamileke
+languages.tw=Twi
+languages.srr=Serer
+languages.tli=Tingit
+languages.tlh=Klingon
+languages.tt=Tatar
+languages.ts=Tsonga
+languages.srn=Sranan Tongo
+languages.bad=Banda
+languages.tr=Turkish
+languages.to=Tonga
+languages.tn=Tswana
+languages.tl=Tagalog
+languages.tk=Turkmen
+languages.ti=Tigrinya
+languages.th=Thai
+languages.kru=Kurukh
+languages.tg=Tajik
+languages.byn=Blin
+languages.te=Telugu
+languages.kro=Kru
+languages.csb=Kashubian
+languages.ta=Tamil
+languages.krl=Karelian
+languages.tkl=Tokelau
+languages.efi=Efik
+languages.sw=Swahili
+languages.sv=Swedia
+languages.su=Sundan
+languages.krc=Karachay-Balkar
+languages.st=Sotho Selatan
+languages.ss=Swati
+languages.sr=Serbian
+languages.sq=Albanian
+languages.men=Mende
+languages.crp=Kreol dan Pidgins Lain
+languages.so=Somali
+languages.afh=Afrihili
+languages.sn=Shona
+languages.sm=Samoan
+languages.sl=Slovenian
+languages.grc=Yunani Kuno (sd 1453)
+languages.sk=Slovak
+languages.grb=Grebo
+languages.si=Sinhalese
+languages.sh=Serbo-Croatian
+languages.crh=Turki Krimea
+languages.afa=Afro-Asiatik (Lainnya)
+languages.sg=Sango
+languages.se=Northern Sami
+languages.sd=Sindhi
+languages.udm=Udmurt
+languages.sc=Sardinian
+languages.sa=Sanskrit
+languages.rw=Kinyarwanda
+languages.nwc=Newari Klasik
+languages.ru=Russian
+languages.mdr=Mandar
+languages.ro=Romanian
+languages.rn=Rundi
+languages.rm=Rhaeto-Romance
+languages.fr_CH=Prancis Swiss
+languages.mdf=Moksha
+languages.tiv=Tiv
+languages.fr_CA=Prancis Kanada
+languages.ady=Adyghe
+languages.zun=Zuni
+languages.kpe=Kpelle
+languages.qu=Quechua
+languages.tig=Tigre
+languages.son=Songhai
+languages.cpp=Kreol dan Pidgins Lain berbasis Portugis
+languages.rup=Aromanian
+languages.sog=Sogdien
+languages.ada=Adangme
+languages.kos=Kosrae
+languages.hit=Hittite
+languages.cpf=Kreol dan Pidgins Lain berbasis Prancis
+languages.cpe=Kreol dan Pidgins Lain Berbasis Inggris
+languages.him=Himachali
+languages.kok=Konkani
+languages.hil=Hiligaynon
+languages.got=Gothik
+languages.gor=Gorontalo
+languages.gon=Gondi
+languages.din=Dinka
+languages.nub=Bahasa Nubia
+languages.pt=Portugis
+languages.ps=Pashto (Pushto)
+languages.fur=Friuli
+languages.phn=Phoenicia
+languages.de_CH=Jerman Tinggi Swiss
+languages.goh=Jerman Kuno (kl.750-1050)
+languages.snk=Soninke
+languages.cop=Koptik
+languages.yap=Yap
+languages.ach=Acoli
+languages.yao=Yao
+languages.phi=Filipina (Lainnya)
+languages.pl=Polish
+languages.ace=Aceh
+languages.pi=Pali
+languages.pt_PT=Portugis (Iberia)
+languages.pa=Punjabi
+languages.bug=Bugis
+languages.iba=Iban
+languages.sms=Skolt Sami
+languages.bua=Buriat
+languages.mas=Masai
+languages.smn=Inari Sami
+languages.os=Ossetic
+languages.map=Austronesia
+languages.or=Oriya
+languages.man=Mandingo
+languages.smj=Lule Sami
+languages.smi=Bahasa Sami Lain
+languages.mak=Makassar
+languages.om=Oromo
+languages.mai=Maithili
+languages.oj=Ojibwa
+languages.mag=Magahi
+languages.mad=Madura
+languages.sma=Sami Selatan
+languages.oc=Bahasa Occit
+languages.nso=Sotho Utara
+languages.btk=Batak
+languages.myv=Erzya
+languages.es_ES=Spanyol (Iberia)
+languages.de_AT=Jerman Austria
+languages.dgr=Dogrib
+languages.ny=Nyanja; Chichewa; Chewa
+languages.myn=Bahasa Mayan
+languages.nv=Navajo
+languages.kmb=Kimbundu
+languages.nr=Ndebele Selatan
+languages.gmh=Jerman, Abad Pertengahan (kl.1050-1500)
+languages.no=Norwegian
+languages.nn=Norwegian Nynorsk
+languages.nl=Belanda
+languages.root=Root
+languages.ng=Ndonga
+languages.sla=Slavic Lain
+languages.ne=Nepal
+languages.nd=Ndebele Utara
+languages.cmc=Bahasa Chamic
+languages.tet=Tetum
+languages.nb=Norwegian Bokm\u00e5l
+languages.na=Nauru
+languages.ter=Tereno
+languages.tem=Timne
+languages.my=Burma
+languages.lez=Lezghia
+languages.mt=Maltese
+languages.frs=Frisia Timur
+languages.peo=Persia Kuno (kl.600-400 SM.)
+languages.ms=Malay
+languages.frr=Frisia Utara
+languages.mr=Marathi
+languages.fro=Perancis Kuno (842-kl.1400)
+languages.mo=Moldavian
+languages.mn=Mongolian
+languages.frm=Perancis, Abad Pertengahan (kl.1400-1600)
+languages.ml=Malayalam
+languages.jrb=Judeo-Arab
+languages.mk=Macedonian
+languages.mi=Maori
+languages.mh=Marshall
+languages.mg=Malagasi
+languages.nqo=N'Ko
+languages.mwr=Marwari
+languages.bra=Braj
+languages.mwl=Mirand
+languages.den=Slave
+languages.lv=Latvian
+languages.lu=Luba-Katanga
+languages.del=Delaware
+languages.lt=Lithuania
+languages.lo=Lao
+languages.ln=Lingala
+languages.li=Limburg
+languages.ewo=Ewondo
+languages.lg=Ganda
languages.lb=Luxembourg
-languages.ast=Astur
languages.la=Latin
-languages.xh=Xhosa
+languages.jpr=Judeo-Persia
+languages.vot=Votik
+languages.sit=Sino-Tibet Lain
languages.ky=Kirghiz
languages.kw=Cornish
languages.kv=Komi
languages.ku=Kurdi
+languages.sio=Bahasa Siouan
languages.ks=Kashmir
languages.kr=Kanuri
+languages.awa=Awadhi
languages.ko=Korea
languages.kn=Kannada
languages.km=Khmer
+languages.en_GB=Inggris (British)
languages.kl=Kalaallisut
languages.kk=Kazakh
+languages.rom=Romany
languages.kj=Kuanyama
+languages.sid=Sidamo
languages.ki=Kikuyu
languages.kg=Kongo
-languages.grc=Yunani Kuno (sd 1453)
-languages.wo=Wolof
-languages.art=Buatan (Lainnya)
+languages.non=Norse Lama
languages.ka=Georgian
-languages.arn=Araucan
-languages.gem=Jermanik (Lainnya)
-languages.afa=Afro-Asiatik (Lainnya)
+languages.mus=Creek
+languages.roa=Romance Lain
+languages.nog=Nogai
+languages.mun=Bahasa Munda
+languages.mul=Beberapa Bahasa
languages.jv=Jawa
-languages.wa=Walloon
-languages.arc=Aram
-languages.cel=Celtic (Lainnya)
-languages.vo=Volap\u00fck
+languages.gil=Gilbert
+languages.znd=Zande
+languages.shn=Shan
+languages.fon=Fon
+languages.xal=Kalmyk
+languages.aus=Bahasa-bahasa Australia
+languages.kho=Khotan
languages.ja=Japanese
-languages.vi=Vietnamese
-languages.ve=Venda
+languages.khi=Khoisa Lain
+languages.pau=Palaua
+languages.chy=Cheyenne
+languages.tai=Tai Lain
+languages.iu=Inuktitut
+languages.pap=Papiamento
languages.it=Italian
+languages.sgn=Bahasa Isyarat
languages.is=Icelandic
-languages.uz=Uzbek
+languages.kha=Khasi
+languages.chr=Cherokee
+languages.pam=Pampanga
+languages.pal=Pahlavi
+languages.chp=Chipewyan
languages.io=Ido
+languages.cho=Choctaw
+languages.chn=Jargon Chinook
+languages.chm=Mari
+languages.tyv=Tuvinia
+languages.bnt=Bantu
+languages.pag=Pangasina
languages.ik=Inupiaq
+languages.chk=Chuuke
languages.ii=Sichuan Yi
-languages.ur=Urdu
+languages.haw=Hawaii
+languages.lam=Lamba
languages.ig=Igbo
+languages.chg=Chagatai
+languages.sga=Irlandia Lama
+languages.paa=Papuan (Lainnya)
languages.ie=Interlingue
-languages.kos=Kosrae
languages.id=Bahasa Indonesia
+languages.lah=Lahnda
+languages.day=Dayak
+languages.chb=Chibcha
languages.ia=Interlingua
-languages.uk=Ukrainian
-languages.kok=Konkani
-languages.ug=Uighur
+languages.lad=Ladino
languages.hz=Herero
+languages.hai=Haida
+languages.dar=Dargwa
languages.hy=Armenia
-languages.got=Gothik
+languages.ath=Bahasa-bahasa Athapaska
languages.hu=Hungaria
-languages.phi=Filipina (Lainnya)
+languages.ht=Haiti
+languages.dak=Dakota
languages.hr=Kroasia
languages.ho=Hiri Motu
-languages.ty=Tahitian
-languages.apa=Bahasa-bahasa Apache
-languages.tw=Twi
-languages.fur=Friuli
-languages.goh=Jerman Kuno (kl.750-1050)
-languages.tt=Tatar
languages.hi=Hindi
-languages.ts=Tsonga
-languages.tr=Turkish
+languages.dyu=Dyula
languages.he=Ibrani
-languages.cop=Koptik
-languages.tn=Tswana
-languages.tl=Tagalog
+languages.ast=Astur
+languages.kfo=Koro
languages.ha=Hausa
-languages.tk=Turkmen
-languages.ti=Tigrinya
-languages.ace=Aceh
-languages.th=Thai
-languages.tg=Tajik
-languages.te=Telugu
+languages.wen=Bahasa Serbia
languages.gv=Manx
-languages.ta=Tamil
-languages.syr=Syria
languages.gu=Gujarati
-languages.map=Austronesia
-languages.bug=Bugis
-languages.mak=Makassar
+languages.sem=Semitic Lain
+languages.sel=Selkup
+languages.iro=Bahasa Iroquoia
languages.gn=Guarani
-languages.sw=Swahili
languages.gl=Gallegan
-languages.sv=Swedia
-languages.su=Sundan
-languages.enm=Inggris, Abad Pertengahan (1100-1500)
-languages.ss=Swati
-languages.mad=Madura
-languages.sr=Serbian
-languages.sq=Albanian
-languages.so=Somali
+languages.en_CA=Inggris Kanada
+languages.arw=Arawak
+languages.gez=Geez
+languages.art=Buatan (Lainnya)
languages.gd=Gaelik Skotlandia
-languages.sn=Shona
-languages.sm=Samoan
-languages.sl=Slovenian
+languages.ira=Iran Lain
languages.ga=Irlandia
-languages.sk=Slovak
-languages.si=Sinhalese
-languages.sh=Serbo-Croatian
-languages.sg=Sango
-languages.se=Northern Sami
+languages.arp=Arapaho
+languages.arn=Araucan
languages.fy=Frisi
-languages.sd=Sindhi
-languages.sc=Sardinian
-languages.sa=Sanskrit
-languages.cau=Kaukasia (Lainnya)
-languages.ang=Inggris Kuno (kl.450-1100)
+languages.bla=Siksika
+languages.gem=Jermanik (Lainnya)
+languages.ypk=Bahasa Yupik
+languages.arc=Aram
languages.fr=Perancis
-languages.car=Karib
languages.fo=Faro
-languages.rw=Kinyarwanda
-languages.gmh=Jerman, Abad Pertengahan (kl.1050-1500)
-languages.ru=Russian
+languages.cel=Celtic (Lainnya)
languages.fj=Fiji
languages.fi=Finlandia
-languages.cai=India Amerika Tengah (Lainnnya)
languages.ff=Fulah
-languages.ro=Romanian
-languages.rn=Rundi
-languages.rm=Rhaeto-Romance
+languages.tvl=Tuvalu
+languages.ceb=Cebuano
languages.fa=Persia
-languages.peo=Persia Kuno (kl.600-400 SM.)
+languages.en_AU=Inggris Australia
+languages.zh_Hans=Cina Sederhana
+languages.zh_Hant=Cina Tradisional
languages.eu=Basque
-languages.lez=Lezghia
+languages.sco=Skotlandia
languages.et=Estonian
+languages.scn=Sisilia
languages.es=Spanyol
languages.eo=Esperanto
languages.en=Inggris
languages.el=Yunani
-languages.qu=Quechua
-languages.jrb=Judeo-Arab
-languages.fro=Perancis Kuno (842-kl.1400)
-languages.frm=Perancis, Abad Pertengahan (kl.1400-1600)
+languages.tut=Altaic Lain
+languages.niu=Niuea
+languages.tup=Bahasa Tupi
languages.ee=Ewe
-languages.mkh=Mon-Khmer (Lainnya)
+languages.tum=Tumbuka
+languages.nl_BE=Flemish
+languages.es_419=Spanyol Amerika Latin
+languages.mos=Mossi
languages.dz=Dzongkha
+languages.kcg=Tyap
+languages.nic=Niger - Kordofania Lain
+languages.lus=Lushai
+languages.fiu=Finno - Ugria Lain
languages.dv=Divehi
-languages.alg=Bahasa Algonquia
-languages.pt=Portugis
-languages.ps=Pashto (Pushto)
+languages.nia=Nias
+languages.moh=Mohawk
+languages.luo=Luo
+languages.lun=Lunda
+languages.apa=Bahasa-bahasa Apache
+languages.fil=Filipina
+languages.lui=Luiseno
+languages.hup=Hupa
+languages.cch=Atsam
+languages.bin=Bini
languages.de=Jerman
-languages.pl=Polish
+languages.lua=Luba-Lulua
+languages.bik=Bikol
+languages.was=Washo
+languages.und=Bahasa Tidak Dikenal atau Tidak Valid
+languages.war=Waray
languages.da=Denmark
-languages.pi=Pali
-languages.sux=Sumeria
-languages.jpr=Judeo-Persia
+languages.dum=Belanda Menengah
+languages.wal=Walamo
+languages.mno=Bahasa Manobo
+languages.wak=Bahasa Wakasha
+languages.sat=Santali
languages.cy=Welsh
-languages.akk=Akkadien
+languages.sas=Sasak
+languages.kbd=Kabardian
languages.cv=Chuvash
-languages.pa=Punjabi
+languages.cu=Church Slavic
+languages.mni=Manipuri
languages.cs=Ceko
+languages.sam=Aramaic Samaritan
languages.cr=Cree
+languages.sal=Bahasa Salisha
+languages.dua=Duala
languages.co=Korsika
-languages.mis=Bahasa Lain-lain
-languages.os=Ossetic
+languages.sai=Indian Amerika Selatan Lain
+languages.mnc=Manchu
+languages.sah=Yakut
+languages.kaw=Kawi
+languages.inh=Ingush
+languages.gba=Gbaya
+languages.sad=Sandawe
languages.ch=Chamorro
-languages.or=Oriya
+languages.ine=Indo-Eropa Lain
+languages.bho=Bhojpuri
+languages.enm=Inggris, Abad Pertengahan (1100-1500)
+languages.kar=Karen
+languages.inc=Indic Lain
languages.ce=Chechen
-languages.om=Oromo
+languages.gay=Gayo
languages.ca=Catalan
-languages.oj=Ojibwa
+languages.umb=Umbundu
+languages.syr=Syria
+languages.kam=Kamba
+languages.anp=Angika
+languages.tsi=Tsimshian
+languages.kaj=Jju
+languages.ang=Inggris Kuno (kl.450-1100)
+languages.kac=Kachin
+languages.cau=Kaukasia (Lainnya)
+languages.kab=Kabyle
+languages.kaa=Kara-Kalpak
languages.bs=Bosnia
+languages.car=Karib
languages.br=Breton
languages.bo=Tibet
-languages.gil=Gilbert
-languages.ny=Nyanja; Chichewa; Chewa
languages.bn=Bengal
languages.bm=Bambara
-languages.nv=Navajo
+languages.gaa=Ga
+languages.cai=India Amerika Tengah (Lainnnya)
languages.bi=Bislama
languages.bh=Bihari
languages.bg=Bulgaria
languages.be=Belarusia
-languages.no=Norwegian
-languages.nn=Norwegian Nynorsk
-languages.nl=Belanda
+languages.pt_BR=Portugis Brasil
+languages.cad=Caddo
languages.ba=Bashkir
languages.zu=Zulu
-languages.ng=Ndonga
+languages.zen=Zenaga
+languages.pro=Proven\u00e7al Lama
+languages.hsb=Sorbia Atas
languages.az=Azerbaijan
-languages.ne=Nepal
languages.ay=Aymara
-languages.nb=Norwegian Bokm\u00e5l
languages.av=Avarik
-languages.na=Nauru
-languages.aus=Bahasa-bahasa Australia
languages.as=Assam
+languages.dsb=Sorbia Rendahan
languages.ar=Arab
+languages.ilo=Iloko
+languages.elx=Elamite
languages.zh=Cina
-languages.my=Burma
+languages.an=Aragon
+languages.pra=Bahasa Prakrit
languages.am=Amharik
+languages.new=Newari
languages.ak=Akan
languages.za=Zhuang
-languages.paa=Papuan (Lainnya)
-languages.mt=Maltese
-languages.ms=Malay
-languages.mr=Marathi
+languages.en_US=Inggris A.S.
languages.af=Afrikaans
languages.ae=Avestan
-languages.mo=Moldavian
-languages.haw=Hawaii
-languages.mn=Mongolian
+languages.alt=Altai Selatan
languages.ab=Abkhaz
-languages.ml=Malayalam
languages.aa=Afar
-languages.mk=Macedonian
-languages.chk=Chuuke
-languages.mi=Maori
-languages.mh=Marshall
-languages.mg=Malagasi
-languages.mga=Irlandia Abad Pertengahan (900-1200)
languages.yo=Yoruba
-languages.egy=Mesir Kuno
+languages.alg=Bahasa Algonquia
+languages.ale=Aleut
+languages.mkh=Mon-Khmer (Lainnya)
languages.yi=Yiddish
-languages.lv=Latvian
-languages.bat=Baltik (Lainnya)
-languages.lu=Luba-Katanga
-languages.ath=Bahasa-bahasa Athapaska
-languages.lt=Lithuania
-languages.ban=Balin
-languages.lo=Lao
-languages.ln=Lingala
-languages.bai=Bahasa-bahasa Bamileke
-languages.li=Limburg
-languages.lg=Ganda
+languages.dra=Dravidia Lain
+languages.ber=Berber
+languages.nds=Jerman Rendah
+languages.bem=Bemba
+languages.bej=Beja
+languages.tpi=Tok Pisin
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ig.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ig.properties
new file mode 100644
index 0000000..fd205fa
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ig.properties
@@ -0,0 +1,23 @@
+# LocaleInformation_ig.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=Na\u1ecbra
+currenciesSymbol.NGN=\u20a6
+shortMonths=Jen\u00aeFeb\u00aeMaa\u00aeEpr\u00aeMee\u00aeJuu\u00aeJul\u00ae\u1eccg\u1ecd\u00aeSep\u00ae\u1ecckt\u00aeNov\u00aeDis\u00ae\u00ae
+months=Jen\u1ee5war\u1ecb\u00aeFebr\u1ee5war\u1ecb\u00aeMaach\u1ecb\u00aeEprel\u00aeMee\u00aeJuun\u00aeJula\u1ecb\u00ae\u1eccg\u1ecd\u1ecdst\u00aeSeptemba\u00ae\u1eccktoba\u00aeNovemba\u00aeDisemba\u00ae\u00ae
+shortWeekdays=\u00ae\u1ee4ka\u00aeM\u1ecdn\u00aeTiu\u00aeWen\u00aeT\u1ecd\u1ecd\u00aeFra\u1ecb\u00aeSat\u00ae
+weekdays=\u00aeMb\u1ecds\u1ecb \u1ee4ka\u00aeM\u1ecdnde\u00aeTiuzdee\u00aeWenezdee\u00aeT\u1ecd\u1ecdzdee\u00aeFra\u1ecbdee\u00aeSat\u1ecddee\u00ae
+eras=T.K.\u00aeA.K.\u00ae
+ampms=A.M.\u00aeP.M.\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ii.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ii.properties
new file mode 100644
index 0000000..d3e5e10
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ii.properties
@@ -0,0 +1,43 @@
+# LocaleInformation_ii.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=.
+groupingSeparator=,
+currenciesDisplayName.XXX=\ua149\ua00b\ua41a\ua320\ua30b\ua180\ua386\ua0c0\ua00b\ua201\ua010\ua320
+currenciesSymbol.XXX=XXX
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=\ua2cd\ua1aa\u00ae\ua44d\ua1aa\u00ae\ua315\ua1aa\u00ae\ua1d6\ua1aa\u00ae\ua26c\ua1aa\u00ae\ua0d8\ua1aa\u00ae\ua3c3\ua1aa\u00ae\ua246\ua1aa\u00ae\ua22c\ua1aa\u00ae\ua2b0\ua1aa\u00ae\ua2b0\ua2aa\ua1aa\u00ae\ua2b0\ua44b\ua1aa\u00ae\u00ae
+shortWeekdays=\u00ae\ua18f\ua44d\u00ae\ua18f\ua2cd\u00ae\ua18f\ua44d\u00ae\ua18f\ua315\u00ae\ua18f\ua1d6\u00ae\ua18f\ua26c\u00ae\ua18f\ua0d8\u00ae
+weekdays=\u00ae\ua46d\ua18f\ua44d\u00ae\ua18f\ua282\ua2cd\u00ae\ua18f\ua282\ua44d\u00ae\ua18f\ua282\ua315\u00ae\ua18f\ua282\ua1d6\u00ae\ua18f\ua282\ua26c\u00ae\ua18f\ua282\ua0d8\u00ae
+eras=\ua0c5\ua2ca\ua0bf\u00ae\ua0c5\ua2ca\ua282\u00ae
+ampms=\ua3b8\ua111\u00ae\ua06f\ua2d2\u00ae
+longDateFormat=yyyy MMMM d
+territories.FR=\ua0d4\ua1e9
+territories.IN=\ua474\ua117
+territories.CN=\ua34f\ua1e9
+territories.DE=\ua113\ua1e9
+territories.GB=\ua471\ua1e9
+territories.BR=\ua020\ua46d
+territories.ZZ=\ua0c5\ua137\ua149\ua00b\ua41a\ua320
+territories.RU=\ua289\ua1c6\ua326
+territories.JP=\ua3dd\ua02a
+territories.US=\ua0b0\ua1e9
+territories.IT=\ua474\ua10a\ua1ba
+languages.zh=\ua34f\ua1e9\ua259
+languages.en=\ua471\ua1e9\ua259
+languages.pt_BR=\ua020\ua45f\ua04d\ua128\ua478\ua259
+languages.ru=\ua289\ua1e9\ua259
+languages.it=\ua474\ua10a\ua1ba\ua259
+languages.fr=\ua0d4\ua1e9\ua259
+languages.und=\ua149\ua00b\ua320\ua147\ua0b7
+languages.de=\ua113\ua1e9\ua259
+languages.es=\ua46d\ua020\ua478\ua259
+languages.ja=\ua3dd\ua02a\ua259
+languages.ii=\ua188\ua320\ua259
+languages.zh_Hans=\ua21d\ua42f\ua34f\ua1e9\ua259
+languages.zh_Hant=\ua00e\ua2cf\ua34f\ua1e9\ua259
+languages.pt=\ua04d\ua128\ua478\ua259
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_is.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_is.properties
index c3ca54f..32fac9e 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_is.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_is.properties
@@ -5,119 +5,135 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=\u00d710^
+infinity=\u221e
+NaN=EiTa
+minusSign=\u2212
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
currenciesDisplayName.YDD=Jemenskur denari
-currenciesDisplayName.TWD=Ta\u00edvanskur dalur
+currenciesDisplayName.KES=ken\u00edskur skildingur
+currenciesDisplayName.TWD=ta\u00edvanskur n\u00fd dalur
currenciesDisplayName.LKR=Sr\u00edl\u00f6nsk r\u00fap\u00eda
-currenciesDisplayName.RWF=Rwandan Franc
currenciesDisplayName.TJS=Tajikistan Somoni
-currenciesDisplayName.SDP=S\u00fadanskt pund
+currenciesDisplayName.RWF=Rwandan Franc
currenciesDisplayName.TJR=Tadsjiksk r\u00fabla
+currenciesDisplayName.SDP=S\u00fadanskt pund
currenciesDisplayName.GRD=Drakma
currenciesDisplayName.IEP=\u00cdrskt pund
-currenciesDisplayName.ARS=Argent\u00edskur pesi
-currenciesDisplayName.SDD=S\u00fadanskur denari
+currenciesDisplayName.ARS=argent\u00ednskur pes\u00f3
currenciesDisplayName.ARP=Argent\u00edskur pesi (1983-1985)
+currenciesDisplayName.SDD=S\u00fadanskur denari
currenciesDisplayName.FKP=Falklenskt pund
-currenciesDisplayName.EEK=Eistnesk kr\u00f3na
+currenciesDisplayName.EEK=eistnesk kr\u00f3na
currenciesDisplayName.HKD=Hong Kong-dalur
-currenciesDisplayName.ARA=Argentine Austral
currenciesDisplayName.IQD=\u00cdrakskur denari
+currenciesDisplayName.ARA=Argentine Austral
currenciesDisplayName.SCR=Seychelles r\u00fap\u00eda
currenciesDisplayName.VUV=Vanuatu Vatu
-currenciesDisplayName.DKK=D\u00f6nsk kr\u00f3na
currenciesDisplayName.KPW=Nor\u00f0urk\u00f3reskt vonn
-currenciesDisplayName.IDR=Ind\u00f3nes\u00edsk r\u00fap\u00eda
+currenciesDisplayName.DKK=d\u00f6nsk kr\u00f3na
+currenciesDisplayName.IDR=ind\u00f3nes\u00edsk r\u00fap\u00eda
currenciesDisplayName.LVR=Lettnesk r\u00fabla
-currenciesDisplayName.AED=Arab\u00edskt d\u00edrham
+currenciesDisplayName.AED=sameinu\u00f0u arab\u00edsku furstad\u00e6min dirham
currenciesDisplayName.LVL=Lat
-currenciesDisplayName.RUR=R\u00fassnesk r\u00fabla
-currenciesDisplayName.ADP=Andorrskur peseti
-currenciesDisplayName.FJD=F\u00eddjeyskur dalur
+currenciesDisplayName.RUR=R\u00fassnesk r\u00fabla (1991-1998)
currenciesDisplayName.MOP=Macao Pataca
-currenciesDisplayName.RUB=R\u00fassnesk r\u00fabla
+currenciesDisplayName.FJD=Fiji-dalur
+currenciesDisplayName.ADP=Andorrskur peseti
+currenciesDisplayName.RUB=r\u00fassnesk r\u00fabla
currenciesDisplayName.DJF=Djibouti Franc
currenciesDisplayName.SBD=Sal\u00f3monseyskur dalur
currenciesDisplayName.ECS=Ecuador Sucre
-currenciesDisplayName.THB=Bat
+currenciesDisplayName.THB=ta\u00edlenskur baht
+currenciesDisplayName.PHP=filippeyskir pes\u00f3ar
currenciesDisplayName.LUF=L\u00faxemborgarfranki
currenciesDisplayName.FIM=Finnskt mark
currenciesDisplayName.TTD=Tr\u00ednidad og T\u00f3bag\u00f3-dalur
currenciesDisplayName.MNT=T\u00far\u00edkur
-currenciesDisplayName.SAR=S\u00e1diarab\u00edskt r\u00edal
currenciesDisplayName.UAK=Ukrainian Karbovanetz
-currenciesDisplayName.UAH=Hrinja
+currenciesDisplayName.SAR=s\u00e1diarab\u00edskt r\u00edal
+currenciesDisplayName.UAH=\u00fakra\u00ednsk hrinja
currenciesDisplayName.HUF=F\u00f3rinta
-currenciesDisplayName.COP=K\u00f3lumb\u00edskur pesi
+currenciesDisplayName.COP=k\u00f3lumb\u00edskur pes\u00f3
currenciesDisplayName.LTT=Lithuanian Talonas
currenciesDisplayName.PTE=Port\u00fagalskur sk\u00fati
-currenciesDisplayName.GBP=Sterlingspund
-currenciesDisplayName.INR=Indversk r\u00fap\u00eda
-currenciesDisplayName.LTL=L\u00edt
+currenciesDisplayName.GBP=bresk sterlingspund
+currenciesDisplayName.INR=indversk r\u00fap\u00eda
currenciesDisplayName.XFU=Franskur franki, UIC
+currenciesDisplayName.LTL=lith\u00e1\u00edskir lita
currenciesDisplayName.KZT=Kazakhstan Tenge
currenciesDisplayName.BUK=B\u00farmverskt kjat
currenciesDisplayName.XFO=Franskur gullfranki
currenciesDisplayName.SYP=S\u00fdrlenskt pund
-currenciesDisplayName.MZE=M\u00f3samb\u00edskur sk\u00fati
currenciesDisplayName.OMR=\u00d3manskt r\u00edal
+currenciesDisplayName.MZE=M\u00f3samb\u00edskur sk\u00fati
currenciesDisplayName.NGN=Nigerian Naira
-currenciesDisplayName.CNY=J\u00faan
+currenciesDisplayName.CNY=k\u00ednverskus j\u00faan renminbi
currenciesDisplayName.MAF=Marokk\u00f3skur franki
+currenciesDisplayName.RSD=serbneskur d\u00ednar
currenciesDisplayName.GNF=G\u00edneufranki
-currenciesDisplayName.MAD=Marokk\u00f3skt d\u00edrham
-currenciesDisplayName.TRY=N\u00fd, tyrknesk l\u00edra
+currenciesDisplayName.MAD=marokk\u00f3skt d\u00edrham
+currenciesDisplayName.TRY=tyrknesk l\u00edra
currenciesDisplayName.MMK=Mjanmarskt kjat
-currenciesDisplayName.MYR=Malaysian Ringgit
+currenciesDisplayName.MYR=malas\u00edskt ringgit
currenciesDisplayName.LSL=Lesotho Loti
-currenciesDisplayName.TRL=Tyrknesk l\u00edra
+currenciesDisplayName.TRL=tyrknesk l\u00edra
currenciesDisplayName.KMF=K\u00f3moreyskur franki
+currenciesDisplayName.CZK=t\u00e9kknesk kr\u00f3na
currenciesDisplayName.ANG=Hollenskt Antillugyllini
-currenciesDisplayName.CZK=T\u00e9kknesk kr\u00f3na
currenciesDisplayName.KYD=Caymaneyskur dalur
currenciesDisplayName.BGN=Lef, n\u00fdtt
-currenciesDisplayName.CAD=Kanad\u00edskur dalur
currenciesDisplayName.MXV=Mex\u00edk\u00f3skur pesi, UDI
+currenciesDisplayName.CAD=Kanadadalir
currenciesDisplayName.BGL=Lef
-currenciesDisplayName.VEB=Venezuelan Bolivar
+currenciesDisplayName.VEB=venes\u00faelskir b\u00f3l\u00edvar
currenciesDisplayName.MLF=Mal\u00edskur franki
-currenciesDisplayName.ILS=Sikill
currenciesDisplayName.MXP=Mex\u00edk\u00f3skur silfurpesi (1861-1992)
+currenciesDisplayName.ILS=\u00edsraelskur sikill
+currenciesDisplayName.MXN=mex\u00edk\u00f3skur pesi
currenciesDisplayName.GYD=Gv\u00e6janskur dalur
-currenciesDisplayName.MXN=Mex\u00edk\u00f3skur pesi
currenciesDisplayName.ILP=\u00cdsraelskt pund
-currenciesDisplayName.SKK=Sl\u00f3vak\u00edsk kr\u00f3na
currenciesDisplayName.CYP=K\u00fdpverskt pund
+currenciesDisplayName.SKK=sl\u00f3vak\u00edsk kr\u00f3na
currenciesDisplayName.XDR=S\u00e9rst\u00f6k dr\u00e1ttarr\u00e9ttindi
+currenciesDisplayName.PEN=per\u00faskar sol nuevo
currenciesDisplayName.LRD=L\u00edber\u00edskur dalur
currenciesDisplayName.AMD=Dramm
currenciesDisplayName.BSD=Bahameyskur dalur
-currenciesDisplayName.HRK=K\u00fana
-currenciesDisplayName.CLP=Chileskur pesi
+currenciesDisplayName.HRK=kr\u00f3at\u00edskar k\u00fanur
+currenciesDisplayName.CLP=sileskur pes\u00f3
currenciesDisplayName.XPF=P\u00f3lines\u00edskur franki
-currenciesDisplayName.FRF=Franskur franki
+currenciesDisplayName.FRF=franskur franki
currenciesDisplayName.MKD=Maked\u00f3nskur denari
currenciesDisplayName.CLF=Chilean Unidades de Fomento
currenciesDisplayName.ALL=Lek
-currenciesDisplayName.BRL=Brasil\u00edskt r\u00edal
+currenciesDisplayName.BRL=brasil\u00edskt real
currenciesDisplayName.TPE=T\u00edmorskur sk\u00fati
-currenciesDisplayName.DEM=\u00de\u00fdskt mark
-currenciesDisplayName.KWD=K\u00faveiskur denari
+currenciesDisplayName.DEM=\u00fe\u00fdskt mark
currenciesDisplayName.XCD=Austur-Kar\u00edbahafsdalur
-currenciesDisplayName.SVC=El Salvador Colon
+currenciesDisplayName.KWD=K\u00faveiskur denari
currenciesDisplayName.YUM=J\u00fag\u00f3slavneskur denari
-currenciesDisplayName.SIT=Sl\u00f3venskur dalur
-currenciesDisplayName.JPY=Jen
+currenciesDisplayName.SVC=El Salvador Colon
+currenciesDisplayName.SIT=sl\u00f3venskir tolar
+currenciesDisplayName.JPY=jap\u00f6nsk jen
currenciesDisplayName.XOF=Mi\u00f0afr\u00edskur franki, BCEAO
-currenciesDisplayName.BEF=Belg\u00edskur franki
currenciesDisplayName.GWE=Port\u00fagalskur, g\u00edneskur sk\u00fati
+currenciesDisplayName.BEF=Belg\u00edskur franki
currenciesDisplayName.SUR=Soviet Rouble
+currenciesDisplayName.RON=r\u00famensk leu
currenciesDisplayName.ROL=R\u00famenskt lei
currenciesDisplayName.DDM=Austur\u00fe\u00fdskt mark
-currenciesDisplayName.NOK=Norsk kr\u00f3na
+currenciesDisplayName.NOK=norskar kr\u00f3nur
+currenciesDisplayName.ZAR=su\u00f0urafr\u00edkskt rand
currenciesDisplayName.SHP=Helenskt pund
currenciesDisplayName.ZAL=Rand (vi\u00f0skipta)
+currenciesDisplayName.VND=v\u00edetnamskt dong
currenciesDisplayName.TZS=Tanzanian Shilling
currenciesDisplayName.GIP=G\u00edbraltarspund
currenciesDisplayName.CVE=Gr\u00e6nh\u00f6f\u00f0eyskur sk\u00fati
@@ -125,66 +141,68 @@ currenciesDisplayName.ZMK=Zambian Kwacha
currenciesDisplayName.XAF=Mi\u00f0afr\u00edskur franki, BEAC
currenciesDisplayName.LBP=L\u00edbanskt pund
currenciesDisplayName.STD=Sao Tome and Principe Dobra
+currenciesDisplayName.EUR=euro
currenciesDisplayName.DOP=D\u00f3min\u00edskur pesi
-currenciesDisplayName.EUR=Euro
currenciesDisplayName.BOV=Bolivian Mvdol
-currenciesDisplayName.MTP=Maltneskt pund
currenciesDisplayName.USS=Bandar\u00edkjadalur (sama dag)
+currenciesDisplayName.MTP=Maltneskt pund
currenciesDisplayName.BOP=B\u00f3liv\u00edskur pesi
-currenciesDisplayName.CUP=K\u00fabverskur pesi
-currenciesDisplayName.MTL=Meltnesk l\u00edra
currenciesDisplayName.TMM=T\u00farkmenskt manat
+currenciesDisplayName.MTL=meltnesk l\u00edra
+currenciesDisplayName.CUP=K\u00fabverskur pesi
currenciesDisplayName.USN=Bandar\u00edkjadalur (n\u00e6sta dag)
-currenciesDisplayName.SGD=Singap\u00farskur dalur
-currenciesDisplayName.NZD=N\u00fdsj\u00e1lenskur dalur
+currenciesDisplayName.SGD=Singaporedalir
+currenciesDisplayName.NZD=N\u00fdja-Sj\u00e1landsdalir
currenciesDisplayName.USD=Bandar\u00edkjadalur
currenciesDisplayName.HNL=Hoduras Lempira
-currenciesDisplayName.ITL=\u00cdt\u00f6lsk l\u00edra
+currenciesDisplayName.BOB=b\u00f3liv\u00edskt b\u00f3l\u00edv\u00edan\u00f3
currenciesDisplayName.PAB=Balb\u00f3i
+currenciesDisplayName.ITL=\u00cdt\u00f6lsk l\u00edra
currenciesDisplayName.GTQ=Guatemala Quetzal
-currenciesDisplayName.AUD=\u00c1stralskur dalur
+currenciesDisplayName.XXX=\u00f3\u00feekktur e\u00f0a \u00f3gildur gjaldeyrir
+currenciesDisplayName.AUD=\u00e1stralskur dalur
currenciesDisplayName.NAD=Namib\u00edskur dalur
currenciesDisplayName.MGF=Madagaskur franki
currenciesDisplayName.BBD=Barbadoskur dalur
-currenciesDisplayName.CHF=Svissneskur franki
+currenciesDisplayName.CHF=svissneskur franki
currenciesDisplayName.MGA=Madagascar Ariary
currenciesDisplayName.PLZ=Slot
currenciesDisplayName.YER=Jemenskt r\u00edal
currenciesDisplayName.ATS=Austurr\u00edskur skildingur
-currenciesDisplayName.BND=Br\u00faneiskur dalur
-currenciesDisplayName.JMD=Jama\u00edskur dalur
+currenciesDisplayName.BND=Brunei-dalur
currenciesDisplayName.EGP=Egypskt pund
-currenciesDisplayName.SRG=Suriname Guilder
+currenciesDisplayName.JMD=Jama\u00edskur dalur
+currenciesDisplayName.PLN=p\u00f3lskt zlot\u00fd
currenciesDisplayName.ISK=\u00cdslensk kr\u00f3na
+currenciesDisplayName.SRG=Suriname Guilder
currenciesDisplayName.LYD=L\u00edb\u00edskur denari
currenciesDisplayName.BZD=Bel\u00edskur dalur
currenciesDisplayName.ESP=Sp\u00e6nskur peseti
+currenciesDisplayName.KRW=su\u00f0urk\u00f3reskt vonn
currenciesDisplayName.NLG=Hollenskt gyllini
-currenciesDisplayName.KRW=Su\u00f0urk\u00f3reskt vonn
currenciesDisplayName.MRO=Mauritania Ouguiya
currenciesDisplayName.ZWD=Simbabveskur dalur
-currenciesDisplayName.SEK=S\u00e6nsk kr\u00f3na
+currenciesDisplayName.SEK=s\u00e6nsk kr\u00f3na
currenciesDisplayName.CSK=T\u00e9kknesk kr\u00f3na, eldri
currenciesDisplayName.IRR=\u00cdranskt r\u00edal
-currenciesDisplayName.PKR=Pakist\u00f6nsk r\u00fap\u00eda
+currenciesDisplayName.PKR=pakist\u00f6nsk r\u00fap\u00eda
currenciesDisplayName.BMD=Berm\u00fadeyskur dalur
-currenciesSymbol.BGL=lev
currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
currenciesSymbol.CYP=\u00a3C
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
currenciesSymbol.ALL=lek
currenciesSymbol.IDR=Rp
currenciesSymbol.DKK=DKr
@@ -196,31 +214,30 @@ currenciesSymbol.TTD=TT$
currenciesSymbol.STD=Db
currenciesSymbol.SAR=SRl
currenciesSymbol.FJD=F$
-currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
currenciesSymbol.DJF=DF
-currenciesSymbol.USD=US$
currenciesSymbol.SGD=S$
currenciesSymbol.SYP=LS
currenciesSymbol.MTL=Lm
-currenciesSymbol.CVE=CVEsc
-currenciesSymbol.YER=YRl
currenciesSymbol.HUF=Ft
+currenciesSymbol.YER=YRl
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
currenciesSymbol.HNL=L
currenciesSymbol.ZWD=Z$
currenciesSymbol.MYR=RM
-currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
-currenciesSymbol.GNF=GF
+currenciesSymbol.SRG=Sf
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.CNY=Y
currenciesSymbol.KMF=CF
@@ -229,27 +246,34 @@ currenciesSymbol.AUD=$A
currenciesSymbol.LYD=LD
currenciesSymbol.JMD=J$
currenciesSymbol.SKK=Sk
-currenciesSymbol.ISK=kr.
currenciesSymbol.CHF=SwF
-currenciesSymbol.MRO=UM
+currenciesSymbol.ISK=kr.
currenciesSymbol.BBD=BDS$
+currenciesSymbol.MRO=UM
+currenciesSymbol.TWD=NT$
currenciesSymbol.PKR=Pra
currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
currenciesSymbol.MXN=MEX$
currenciesSymbol.ANG=NA f.
currenciesSymbol.BZD=BZ$
-currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
+currenciesSymbol.IRR=RI
currenciesSymbol.CAD=Can$
-shortMonths=jan®feb®mar®apr®ma\u00ed®j\u00fan®j\u00fal®\u00e1g\u00fa®sep®okt®n\u00f3v®des®®
-months=jan\u00faar®febr\u00faar®mars®apr\u00edl®ma\u00ed®j\u00fan\u00ed®j\u00fal\u00ed®\u00e1g\u00fast®september®okt\u00f3ber®n\u00f3vember®desember®®
-shortWeekdays=®sun®m\u00e1n®\u00feri®mi\u00f0®fim®f\u00f6s®lau®
-weekdays=®sunnudagur®m\u00e1nudagur®\u00feri\u00f0judagur®mi\u00f0vikudagur®fimmtudagur®f\u00f6studagur®laugardagur®
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aema\u00ed\u00aej\u00fan\u00aej\u00fal\u00ae\u00e1g\u00fa\u00aesep\u00aeokt\u00aen\u00f3v\u00aedes\u00ae\u00ae
+months=jan\u00faar\u00aefebr\u00faar\u00aemars\u00aeapr\u00edl\u00aema\u00ed\u00aej\u00fan\u00ed\u00aej\u00fal\u00ed\u00ae\u00e1g\u00fast\u00aeseptember\u00aeokt\u00f3ber\u00aen\u00f3vember\u00aedesember\u00ae\u00ae
+shortWeekdays=\u00aesun\u00aem\u00e1n\u00ae\u00feri\u00aemi\u00f0\u00aefim\u00aef\u00f6s\u00aelau\u00ae
+weekdays=\u00aesunnudagur\u00aem\u00e1nudagur\u00ae\u00feri\u00f0judagur\u00aemi\u00f0vikudagur\u00aefimmtudagur\u00aef\u00f6studagur\u00aelaugardagur\u00ae
+eras=fyrir Krist\u00aeeftir Krist\u00ae
+ampms=f.h.\u00aee.h.\u00ae
shortDateFormat=d.M.yyyy
mediumDateFormat=d.M.yyyy
longDateFormat=d. MMMM yyyy
fullDateFormat=EEEE, d. MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00aeAustur-Evr\u00f3put\u00edmi\u00aeAET\u00aesumart\u00edmi Austur-Evr\u00f3pu\u00aeSTAE\u00ae\u00a9Europe_Central\u00aeMi\u00f0-Evr\u00f3put\u00edmi\u00aeMET\u00aesumart\u00edmi Mi\u00f0-Evr\u00f3pu\u00aeSTME\u00ae\u00a9
territories.TL=Austur-T\u00edmor
territories.TK=T\u00f3kel\u00e1
territories.TJ=Tadsjikistan
@@ -272,12 +296,13 @@ territories.GN=G\u00ednea
territories.GM=Gamb\u00eda
territories.GL=Gr\u00e6nland
territories.SV=El Salvador
-territories.062=Sy\u00f0ri mi\u00f0-As\u00eda
+territories.062=Sy\u00f0ri-Mi\u00f0-As\u00eda
territories.ST=Sa\u00f3 T\u00f3me og Prins\u00edpe
-territories.061=P\u00f3l\u00fdnes\u00eda
territories.GI=G\u00edbraltar
+territories.061=P\u00f3l\u00fdnes\u00eda
territories.GH=Gana
territories.SR=S\u00far\u00ednam
+territories.GG=Guernsey
territories.GF=Franska Gv\u00e6jana
territories.GE=Georg\u00eda
territories.SO=S\u00f3mal\u00eda
@@ -298,26 +323,27 @@ territories.SC=Seychelleseyjar
territories.SB=Sal\u00f3monseyjar
territories.SA=S\u00e1di-Arab\u00eda
territories.FR=Frakkland
-territories.057=M\u00edkr\u00f3nes\u00eda
territories.FO=F\u00e6reyjar
+territories.057=M\u00edkr\u00f3nes\u00eda
territories.FM=Mikr\u00f3nes\u00eda
territories.RW=R\u00faanda
territories.054=Melanes\u00eda
-territories.053=\u00c1stral\u00eda og N\u00fdja-Sj\u00e1land
territories.FK=Falklandseyjar
+territories.053=\u00c1stral\u00eda og N\u00fdja-Sj\u00e1land
territories.RU=R\u00fassland
territories.FJ=F\u00eddjieyjar
territories.FI=Finnland
+territories.RS=Serb\u00eda
territories.RO=R\u00famen\u00eda
territories.RE=R\u00e9union
territories.ET=E\u00fe\u00ed\u00f3p\u00eda
territories.ES=Sp\u00e1nn
territories.ER=Er\u00edtrea
-territories.833=M\u00f6n
+territories.QU=Evr\u00f3pusambandi\u00f0
territories.EH=Vestur-Sahara
territories.EG=Egyptaland
-territories.830=Ermasundseyjar
territories.EE=Eistland
+territories.830=Ermasundseyjar
territories.QO=Ytri Eyja\u00e1lfa
territories.EC=Ekvador
territories.DZ=Als\u00edr
@@ -325,9 +351,10 @@ territories.QA=Katar
territories.039=Su\u00f0ur-Evr\u00f3pa
territories.DO=D\u00f3min\u00edska l\u00fd\u00f0veldi\u00f0
territories.PY=Paragv\u00e6
-territories.035=Su\u00f0austur-As\u00eda
territories.DM=D\u00f3min\u00edka
+territories.035=Su\u00f0austur-As\u00eda
territories.PW=Pal\u00e1
+territories.034=su\u00f0urhluti As\u00edu
territories.DK=Danm\u00f6rk
territories.DJ=Dj\u00edb\u00fat\u00ed
territories.PT=Port\u00fagal
@@ -349,23 +376,24 @@ territories.CX=J\u00f3laey
territories.CV=Gr\u00e6nh\u00f6f\u00f0aeyjar
territories.PA=Panama
territories.CU=K\u00faba
-territories.CS=Serb\u00eda
+territories.CS=Serb\u00eda og Svartfjallaland
territories.CR=Kostar\u00edka
territories.029=Kar\u00edbahaf
territories.CO=K\u00f3lumb\u00eda
territories.CN=K\u00edna
territories.CM=Kamer\u00fan
-territories.CL=Chile
+territories.CL=Ch\u00edle
territories.CK=Cookseyjar
+territories.021=Amer\u00edka nor\u00f0an Mexik\u00f3
territories.CI=F\u00edlabeinsstr\u00f6ndin
-territories.021=Nor\u00f0ur-Amer\u00edka
territories.CH=Sviss
-territories.CG=Vestur-Kong\u00f3
+territories.CG=Kong\u00f3-Brazzaville
territories.CF=Mi\u00f0-Afr\u00edkul\u00fd\u00f0veldi\u00f0
-territories.CD=Austur-Kong\u00f3
+territories.CD=Kong\u00f3-Kinshasa
territories.CC=K\u00f3koseyjar
territories.OM=\u00d3man
territories.CA=Kanada
+territories.419=Lat\u00edn-Amer\u00edka og Kar\u00edbahaf
territories.BZ=Bel\u00eds
territories.BY=Hv\u00edta-R\u00fassland
territories.BW=Botsvana
@@ -374,37 +402,40 @@ territories.BT=B\u00fatan
territories.BS=Bahamaeyjar
territories.BR=Brasil\u00eda
territories.019=Amer\u00edka
-territories.018=Su\u00f0ur-Afr\u00edka
+territories.018=Su\u00f0urhluti Afr\u00edku
territories.NZ=N\u00fdja-Sj\u00e1land
-territories.BO=B\u00f3liv\u00eda
territories.017=Mi\u00f0-Afr\u00edka
+territories.BO=B\u00f3liv\u00eda
territories.BN=Br\u00fanei
-territories.BM=Berm\u00fadaeyjar
territories.015=Nor\u00f0ur-Afr\u00edka
+territories.BM=Berm\u00fadaeyjar
territories.014=Austur-Afr\u00edka
+territories.BL=Saint Barth\u00e9lemy
territories.013=Mi\u00f0-Amer\u00edka
territories.NU=Niue
territories.BJ=Ben\u00edn
-territories.BI=B\u00far\u00fand\u00ed
territories.011=Vestur-Afr\u00edka
+territories.BI=B\u00far\u00fand\u00ed
+territories.172=Samveldi sj\u00e1lfst\u00e6\u00f0ra r\u00edkja
territories.BH=Barein
territories.NR=N\u00e1r\u00fa
territories.BG=B\u00falgar\u00eda
-territories.BF=B\u00fark\u00edna Fas\u00f3
+territories.BF=Burk\u00edna Fas\u00f3
territories.NP=Nepal
territories.BE=Belg\u00eda
+territories.ZZ=\u00f3\u00feekkt e\u00f0a \u00f3gilt sv\u00e6\u00f0i
territories.NO=Noregur
territories.BD=Bangladess
territories.BB=Barbados
territories.ZW=Simbabve
-territories.NL=Ni\u00f0url\u00f6nd
+territories.NL=Holland
territories.BA=Bosn\u00eda og Herseg\u00f3v\u00edna
territories.NI=N\u00edkaragva
territories.NG=N\u00edger\u00eda
territories.NF=Norfolkeyja
territories.AZ=Aserba\u00eddsjan
territories.NE=N\u00edger
-territories.AX=\u00c1landseyjar
+territories.AX=\u00c1land
territories.NC=N\u00fdja-Kaled\u00f3n\u00eda
territories.AW=Ar\u00faba
territories.ZM=Samb\u00eda
@@ -413,24 +444,25 @@ territories.AU=\u00c1stral\u00eda
territories.AT=Austurr\u00edki
territories.AS=Bandar\u00edska Sam\u00f3a
territories.AR=Argent\u00edna
-territories.009=Eyja\u00e1lfa
territories.AQ=Su\u00f0urskautslandi\u00f0
+territories.009=Eyja\u00e1lfa
territories.MZ=M\u00f3samb\u00edk
territories.AO=Ang\u00f3la
territories.MY=Malas\u00eda
territories.AN=Hollensku Antillur
territories.MX=Mex\u00edk\u00f3
-territories.005=Su\u00f0ur-Amer\u00edka
territories.AM=Armen\u00eda
+territories.005=Su\u00f0ur-Amer\u00edka
territories.MW=Malav\u00ed
territories.AL=Alban\u00eda
territories.MV=Mald\u00edveyjar
+territories.003=Nor\u00f0ur-Amer\u00edka
territories.ZA=Su\u00f0ur-Afr\u00edka
territories.MU=M\u00e1rit\u00edus
territories.002=Afr\u00edka
territories.MT=Malta
-territories.001=Heimur
territories.AI=Angvilla
+territories.001=heimur
territories.MS=Montserrat
territories.MR=M\u00e1ritan\u00eda
territories.AG=Ant\u00edgva og Barb\u00fada
@@ -438,7 +470,7 @@ territories.MQ=Martin\u00edk
territories.AF=Afganistan
territories.MP=Nor\u00f0ur-Mar\u00edanaeyjar
territories.AE=Sameinu\u00f0u arab\u00edsku furstad\u00e6min
-territories.MO=Maka\u00f3
+territories.MO=Mak\u00e1o
territories.AD=Andorra
territories.MN=Mong\u00f3l\u00eda
territories.MM=Mjanmar
@@ -447,13 +479,15 @@ territories.MK=Maked\u00f3n\u00eda
territories.YT=Mayotte
territories.MH=Marshalleyjar
territories.MG=Madagaskar
+territories.MF=Saint Martin
+territories.ME=Svartfjallaland
territories.MD=Mold\u00f3va
territories.MC=M\u00f3nak\u00f3
territories.MA=Marokk\u00f3
territories.YE=Jemen
territories.LY=L\u00edb\u00eda
territories.LV=Lettland
-territories.155=Vestur-Evr\u00f3pa
+territories.155=vestur-Evr\u00f3pa
territories.LU=L\u00faxemborg
territories.154=Nor\u00f0ur-Evr\u00f3pa
territories.LT=Lith\u00e1en
@@ -469,7 +503,8 @@ territories.LA=Laos
territories.KZ=Kasakstan
territories.KY=Caymaneyjar
territories.KW=K\u00faveit
-territories.145=Vestur-As\u00eda
+territories.145=vestur-As\u00eda
+territories.143=Mi\u00f0-As\u00eda
territories.142=As\u00eda
territories.KR=Su\u00f0ur-K\u00f3rea
territories.KP=Nor\u00f0ur-K\u00f3rea
@@ -485,9 +520,10 @@ territories.JP=Japan
territories.JO=J\u00f3rdan\u00eda
territories.JM=Jama\u00edka
territories.VU=Van\u00faat\u00fa
+territories.JE=Jersey
territories.VN=V\u00edetnam
-territories.VI=J\u00f3mfr\u00faaeyjar (bandar\u00edsku)
-territories.VG=J\u00f3mfr\u00faaeyjar (bresku)
+territories.VI=Bandar\u00edsku J\u00f3mfr\u00faareyjar
+territories.VG=Bresku J\u00f3mfr\u00faareyjar
territories.VE=Venes\u00faela
territories.VC=Sankti Vinsent og Grenad\u00edneyjar
territories.VA=P\u00e1fagar\u00f0ur
@@ -499,6 +535,7 @@ territories.UZ=\u00dasbekistan
territories.IO=Bresku Indlandshafseyjar
territories.UY=\u00dar\u00fagv\u00e6
territories.IN=Indland
+territories.IM=M\u00f6n
territories.IL=\u00cdsrael
territories.US=Bandar\u00edkin
territories.IE=\u00cdrland
@@ -520,469 +557,509 @@ territories.TR=Tyrkland
territories.TO=Tonga
territories.TN=T\u00fanis
territories.TM=T\u00farkmenistan
-languages.akk=Akkad\u00edska
-languages.gwi=Gv\u00eds\u00edn
-languages.eka=Ekaj\u00fak
-languages.ijo=\u00cdj\u00f3
-languages.xh=S\u00f3sa
-languages.sux=S\u00famerska
-languages.sus=S\u00fas\u00fa
-languages.mis=\u00ddmis m\u00e1l
-languages.loz=Los\u00ed
-languages.tog=Tongverska
-languages.pon=Ponpeiska
-languages.min=M\u00ednangkab\u00e1
-languages.suk=S\u00fak\u00fama
-languages.wo=Volof
-languages.kut=K\u00fatena\u00ed
-languages.lol=Mong\u00f3
-languages.mic=Mikmak
-languages.wa=Vall\u00f3nska
-languages.kum=K\u00fam\u00edk
-languages.zap=Sap\u00f3tek
-languages.cus=K\u00fasit\u00edsk m\u00e1l (\u00f6nnur)
-languages.doi=Dogr\u00ed
-languages.jbo=Lojban
-languages.vo=Volap\u00fck
-languages.oto=\u00d3tomm\u00e1l
-languages.vi=V\u00edetnamska
-languages.vai=Va\u00ed
-languages.rar=Rar\u00f3tongska
-languages.ve=Venda
-languages.rap=Rapan\u00fa\u00ed
-languages.raj=Rajastan\u00ed
-languages.ota=Tyrkneska, ott\u00f3man (1500-1928)
-languages.nzi=Ns\u00edma
-languages.nap=Nap\u00f3l\u00edska
-languages.uz=\u00dasbekska
-languages.uga=\u00dagar\u00edt\u00edska
-languages.tmh=Tamasjek
-languages.nai=Ind\u00ed\u00e1nam\u00e1l Nor\u00f0ur-Amer\u00edku (\u00f6nnur)
-languages.nah=Nah\u00faatl
-languages.ur=\u00dard\u00fa
-languages.fat=Fant\u00ed
-languages.uk=\u00dakra\u00ednska
-languages.egy=Fornegypska
-languages.ug=\u00da\u00edg\u00far
-languages.fan=Fang
-languages.ssa=N\u00edl\u00f3saharam\u00e1l (\u00f6nnur)
-languages.bat=Baltnesk m\u00e1l (\u00f6nnur)
-languages.mga=Mi\u00f0\u00edrska (900-1200)
-languages.nyo=Nj\u00f3r\u00f3
-languages.bas=Basa
-languages.nyn=Njank\u00f3le
-languages.nym=Njamves\u00ed
-languages.hmn=Hmong
-languages.ban=Bal\u00edska
-languages.osa=\u00d3sage
-languages.bal=Bal\u00fak\u00ed
-languages.ty=Tah\u00edt\u00edska
-languages.bai=Bam\u00edlekem\u00e1l
-languages.tw=Tv\u00ed
-languages.srr=Serer
-languages.tli=Tlingit
-languages.tt=Tatarska
-languages.ts=Tsonga
-languages.bad=Banda
-languages.tr=Tyrkneska
-languages.to=Tongverska
-languages.tn=Ts\u00faana
-languages.tl=Tagalog
-languages.tk=T\u00farkmenska
-languages.ti=T\u00edgrinja
-languages.th=Ta\u00edlenska
-languages.kru=K\u00far\u00fak
-languages.tg=Tadsjikska
-languages.byn=Bl\u00edn
-languages.te=Tel\u00fag\u00fa
-languages.csb=Kas\u00fab\u00edska
-languages.kro=Kr\u00fa
-languages.ta=Tam\u00edlska
-languages.tkl=T\u00f3kel\u00e1ska
-languages.efi=Ef\u00edk
-languages.sw=Svah\u00edl\u00ed
-languages.sv=S\u00e6nska
-languages.su=S\u00fandanska
-languages.krc=Karasa\u00edbalkar
-languages.st=Su\u00f0urs\u00f3t\u00f3
-languages.ss=Svat\u00ed
-languages.sr=Serbneska
-languages.sq=Albanska
-languages.men=Mende
-languages.crp=Kre\u00f3l- og pidginm\u00e1l (\u00f6nnur)
-languages.so=S\u00f3malska
-languages.afh=Afr\u00edh\u00edl\u00ed
-languages.sn=S\u00edn\u00f3t\u00edbesk m\u00e1l (\u00f6nnur)
-languages.sm=Sam\u00f3ska
-languages.sl=Sl\u00f3venska
-languages.grc=Forngr\u00edska (til 1453)
-languages.sk=Sl\u00f3vak\u00edska
-languages.grb=Gerb\u00f3
-languages.si=Singales\u00edska
-languages.sh=Serb\u00f3kr\u00f3at\u00edska
-languages.afa=Afr\u00f3as\u00edsk m\u00e1l (\u00f6nnur)
-languages.crh=Kr\u00edmtyrkneska
-languages.sg=Sang\u00f3
-languages.se=Nor\u00f0ursam\u00edska
-languages.sd=Sind\u00ed
-languages.udm=\u00dadm\u00fart
-languages.sc=Sard\u00ednska
-languages.sa=Sanskr\u00edt
-languages.rw=K\u00ednjarvanda
-languages.ru=R\u00fassneska
-languages.mdr=Mandar
-languages.ro=R\u00famenska
-languages.rn=R\u00fand\u00ed
-languages.rm=Ret\u00f3r\u00f3manska
-languages.mdf=Moksa
-languages.tiv=T\u00edv
-languages.ady=Ad\u00fdge
-languages.zun=S\u00fan\u00ed
-languages.kpe=Kpelle
-languages.qu=Kvesj\u00faa
-languages.tig=T\u00edgre
-languages.son=Songha\u00ed
-languages.cpp=Kre\u00f3l- og pidginm\u00e1l \u00e1 port\u00fag\u00f6lskum grunni
-languages.sog=Sogd\u00eden
-languages.ada=Adangme
-languages.cpf=Kre\u00f3l- og pidginm\u00e1l \u00e1 fr\u00f6nskum grunni
-languages.hit=Hettit\u00edska
-languages.kos=Kosraska
-languages.cpe=Kre\u00f3l- og pidginm\u00e1l \u00e1 enskum grunni
-languages.him=H\u00edmasjal\u00ed
-languages.got=Gotneska
-languages.hil=H\u00edliga\u00ednon
-languages.kok=Konkan\u00ed
-languages.gor=Gorontal\u00f3
-languages.gon=Gond\u00ed
-languages.din=Dinka
-languages.nub=N\u00fab\u00edsk m\u00e1l
-languages.pt=Port\u00fagalska
-languages.ps=Past\u00fa
-languages.fur=Fr\u00ed\u00falska
-languages.phn=F\u00f6nik\u00edska
-languages.goh=Fornh\u00e1\u00fe\u00fdska (um 750-1050)
-languages.snk=S\u00f3ninke
-languages.cop=Kopt\u00edska
-languages.yap=Jap\u00edska
-languages.ach=Ak\u00f3l\u00ed
-languages.yao=Ja\u00f3
-languages.phi=Filippseysk m\u00e1l (\u00f6nnur)
-languages.pl=P\u00f3lska
-languages.ace=Akk\u00edska
-languages.pi=Pal\u00ed
-languages.pa=P\u00fanjab\u00ed
-languages.bug=B\u00fag\u00edska
-languages.iba=\u00cdban
-languages.sms=Skoltesam\u00edska
-languages.bua=B\u00far\u00edat
-languages.mas=Masa\u00ed
-languages.smn=Enaresam\u00edska
-languages.os=Osset\u00edska
-languages.map=\u00c1str\u00f3nes\u00edska
-languages.or=\u00d3r\u00eda
-languages.man=Manding\u00f3
-languages.smj=L\u00falesam\u00edska
-languages.smi=Sam\u00edsk m\u00e1l (\u00f6nnur)
-languages.mak=Makasar
-languages.om=\u00d3r\u00f3m\u00f3
-languages.mai=Ma\u00edt\u00edl\u00ed
-languages.oj=Ojibva
-languages.mag=Magah\u00ed
-languages.mad=Mad\u00farska
-languages.sma=Su\u00f0ursam\u00edska
-languages.oc=Okkit\u00edska (eftir 1500); Pr\u00f3vensalska
-languages.nso=Nor\u00f0urs\u00f3t\u00f3
-languages.btk=Batak
-languages.myv=Ersja
-languages.dgr=Dogr\u00edb
-languages.ny=Njanja; S\u00edsjeva; Sjeva
-languages.myn=Majam\u00e1l
-languages.nv=Navah\u00f3
-languages.kmb=Kimb\u00fand\u00fa
-languages.nr=Su\u00f0urndebele
-languages.gmh=Mi\u00f0h\u00e1\u00fe\u00fdska (um 1050-1500
-languages.no=Norska
-languages.nn=N\u00fdnorska
-languages.nl=Hollenska
-languages.ng=Ndonga
-languages.sla=Slavnesk m\u00e1l (\u00f6nnur)
-languages.ne=Nepalska
-languages.nd=Nor\u00f0urndebele
-languages.cmc=Kam\u00edsk m\u00e1l
-languages.tet=Tet\u00fam
-languages.nb=Norskt b\u00f3km\u00e1l
-languages.na=N\u00e1r\u00faska
-languages.ter=Teren\u00f3
-languages.tem=T\u00edmne
-languages.my=Burmneska
-languages.lez=Lesg\u00edska
-languages.mt=Maltneska
-languages.peo=Fornpersneska
-languages.ms=Mala\u00edska
-languages.mr=Marat\u00ed
-languages.fro=Fornfranska (842 - um 1400)
-languages.mo=Mold\u00f3vska
-languages.mn=Mong\u00f3lska
-languages.frm=Mi\u00f0franska (um 1400-1600)
-languages.ml=Malajalam
-languages.jrb=Gy\u00f0ingaarab\u00edska
-languages.mk=Maked\u00f3nska
-languages.mi=Ma\u00f3r\u00ed
-languages.mh=Marshallska
-languages.mg=Malagas\u00edska
-languages.mwr=Marvar\u00ed
-languages.bra=Bra\u00ed
-languages.lv=Lettneska
-languages.den=Slav
-languages.lu=L\u00fabakatanga
-languages.lt=Lith\u00e1\u00edska
-languages.del=Delaver
-languages.lo=La\u00f3
-languages.ln=Lingala
-languages.li=Limb\u00farg\u00edska
-languages.ewo=Evond\u00f3
-languages.lg=Ganda
-languages.lb=L\u00faxemborg\u00edska
-languages.la=Lat\u00edna
-languages.jpr=Gy\u00f0ingapersneska
-languages.vot=Vot\u00edska
-languages.sit=S\u00edn\u00f3t\u00edbesk m\u00e1l (\u00f6nnur)
-languages.ky=Kirgiska
-languages.kw=Korn\u00edska
-languages.kv=Kom\u00edska
-languages.ku=K\u00fardneska
-languages.sio=S\u00ed\u00fam\u00e1l
-languages.ks=Kasm\u00edrska
-languages.kr=Kan\u00far\u00ed
-languages.awa=Avad\u00ed
-languages.ko=K\u00f3reska
-languages.kn=Kannada
-languages.km=Kmer
-languages.kl=Gr\u00e6nlenska
-languages.kk=Kasakska
-languages.rom=Roman\u00ed
-languages.kj=K\u00faanjama
-languages.sid=S\u00eddam\u00f3
-languages.ki=K\u00edk\u00faj\u00fa
-languages.kg=Kong\u00f3
-languages.non=Norr\u00e6na
-languages.ka=Georg\u00edska
-languages.mus=Kr\u00edk
-languages.roa=R\u00f3m\u00f6nsk m\u00e1l (\u00f6nnur)
-languages.nog=N\u00f3ga\u00ed
-languages.mun=M\u00fandam\u00e1l
-languages.mul=Margv\u00edsleg m\u00e1l
-languages.jv=Javanska
-languages.gil=Gilberska
-languages.znd=Sande
-languages.shn=Sjan
-languages.fon=F\u00f3n
-languages.xal=Kalm\u00fakska
-languages.aus=\u00c1str\u00f6lsk m\u00e1l
-languages.kho=Kotaska
-languages.ja=Japanska
-languages.khi=Ko\u00edm\u00e1l (\u00f6nnur)
-languages.pau=Pal\u00e1ska
-languages.chy=Sjeyen
-languages.tai=Ta\u00edm\u00e1l (\u00f6nnur)
-languages.iu=In\u00faktit\u00fat
-languages.pap=Pap\u00edament\u00f3
-languages.it=\u00cdtalska
-languages.sgn=T\u00e1knm\u00e1l
-languages.kha=Kas\u00ed
-languages.is=\u00cdslenska
-languages.chr=Sjer\u00f3k\u00ed
-languages.pam=Pampanga
-languages.pal=Palav\u00ed
-languages.chp=S\u00edpev\u00edska
-languages.cho=Sjokt\u00e1
-languages.io=\u00cdd\u00f3
-languages.chn=S\u00edn\u00fak
-languages.chm=Mar\u00ed
-languages.tyv=T\u00fav\u00ednska
-languages.bnt=Bant\u00fam\u00e1l
-languages.pag=Pangas\u00ednm\u00e1l
-languages.chk=Sj\u00fak\u00edska
-languages.ik=\u00cdn\u00fap\u00edak
-languages.haw=Hava\u00edska
-languages.ii=S\u00eds\u00faanj\u00ed
-languages.lam=Lamba
-languages.chg=Sjagata\u00ed
-languages.ig=\u00cdgb\u00f3
-languages.sga=Forn\u00edrska (til 900)
-languages.paa=Pap\u00fask m\u00e1l (\u00f6nnur)
-languages.ie=Interlingva
-languages.id=Ind\u00f3nes\u00edska
-languages.lah=Landa
-languages.chb=S\u00edbsja
-languages.day=Dajak
-languages.ia=Interlingva
-languages.lad=Lad\u00ednska
-languages.dar=Dargva
-languages.hai=Ha\u00edda
-languages.hz=Herer\u00f3
-languages.hy=Armenska
-languages.ath=Atapask\u00edsk m\u00e1l
-languages.hu=Ungverska
-languages.ht=Ha\u00edt\u00edska
-languages.dak=Dak\u00f3ta
-languages.hr=Kr\u00f3at\u00edska
-languages.ho=H\u00edr\u00edm\u00f3t\u00fa
-languages.hi=Hind\u00ed
-languages.dyu=Dj\u00fala
-languages.he=Hebreska
-languages.ast=Ast\u00far\u00edska
-languages.ha=H\u00e1sa
-languages.wen=Sorbnesk m\u00e1l
-languages.gv=Manx
-languages.gu=G\u00fajarat\u00ed
-languages.sem=Sem\u00edsk m\u00e1l (\u00f6nnur)
-languages.sel=Selk\u00fap
-languages.iro=\u00cdr\u00f3kesk m\u00e1l
-languages.gn=Gvaran\u00ed
-languages.gl=Gallegska
-languages.arw=Aravakska
-languages.gd=Skosk gel\u00edska
-languages.art=Al\u00fej\u00f3\u00f0am\u00e1l (\u00f6nnur)
-languages.gez=G\u00eds
-languages.ira=\u00cdranska
-languages.ga=\u00cdrska
-languages.arp=Arapah\u00f3
-languages.arn=Ar\u00e1kan\u00edska
-languages.fy=Fr\u00edsneska
-languages.bla=Siksika
-languages.gem=Germ\u00f6nsk m\u00e1l (\u00f6nnur)
-languages.ypk=J\u00fap\u00edsk m\u00e1l
-languages.fr=Franska
-languages.arc=Arame\u00edska
-languages.fo=F\u00e6reyska
-languages.cel=Keltnesk (\u00f6nnur)
-languages.fj=F\u00eddjeyska
-languages.fi=Finnska
-languages.ff=F\u00fala
-languages.tvl=T\u00faval\u00faska
-languages.ceb=Keb\u00faan\u00f3
-languages.fa=Persneska
-languages.eu=Baskneska
-languages.sco=Skoska
-languages.et=Eistneska
-languages.es=Sp\u00e6nska
-languages.eo=Esperant\u00f3
-languages.en=Enska
-languages.el=N\u00fdgr\u00edska (1453-)
-languages.tut=Alta\u00edsk m\u00e1l (\u00f6nnur)
-languages.niu=N\u00edveska
-languages.tup=T\u00fap\u00edm\u00e1l
-languages.ee=Eve
-languages.tum=T\u00famb\u00faka
-languages.mos=Moss\u00ed
-languages.dz=Dsongka
-languages.nic=N\u00edgerkord\u00f3fanm\u00e1l (\u00f6nnur)
-languages.dv=D\u00edveh\u00ed
-languages.fiu=Finnsk\u00fagr\u00edsk m\u00e1l (\u00f6nnur)
-languages.lus=L\u00fasa\u00ed
-languages.nia=N\u00edas
-languages.moh=M\u00f3h\u00edska
-languages.luo=L\u00fa\u00f3
-languages.lun=L\u00fanda
-languages.apa=Apatsjam\u00e1l
-languages.lui=L\u00faisen\u00f3
-languages.hup=H\u00fapa
-languages.bin=B\u00edn\u00ed
-languages.de=\u00de\u00fdska
-languages.lua=L\u00fabal\u00fal\u00faa
-languages.bik=B\u00edkol
-languages.was=Vasj\u00f3
-languages.und=\u00d3lj\u00f3st
-languages.war=Vara\u00ed
-languages.da=Danska
-languages.dum=Mi\u00f0hollenska (um 1050-1350)
-languages.wal=Valam\u00f3
-languages.mno=Man\u00f3b\u00f3m\u00e1l
-languages.wak=Vakasm\u00e1l
-languages.sat=Santal\u00ed
-languages.cy=Velska
-languages.sas=Sasak
-languages.cv=Sj\u00favas
-languages.kbd=Kabard\u00edska
-languages.cu=Kirkjuslavneska
-languages.mni=Man\u00edp\u00far\u00ed
-languages.cs=T\u00e9kkneska
-languages.sam=Samversk arame\u00edska
-languages.cr=Kr\u00ed
-languages.sal=Sal\u00edsm\u00e1l
-languages.dua=D\u00faala
-languages.co=Kors\u00edska
+languages.gwi=gv\u00eds\u00edn
+languages.akk=akkad\u00edska
+languages.eka=ekaj\u00fak
+languages.ijo=\u00edj\u00f3
+languages.xh=s\u00f3sa
+languages.sux=s\u00famerska
+languages.sus=s\u00fas\u00fa
+languages.mis=\u00fdmis m\u00e1l
+languages.loz=los\u00ed
+languages.tog=tongverska (Nyasa)
+languages.zbl=blisst\u00e1kn
+languages.pon=ponpeiska
+languages.min=m\u00ednangkab\u00e1
+languages.suk=s\u00fak\u00fama
+languages.wo=volof
+languages.lol=mong\u00f3
+languages.kut=k\u00fatena\u00ed
+languages.mic=mikmak
+languages.wa=vall\u00f3nska
+languages.kum=k\u00fam\u00edk
+languages.zap=sap\u00f3tek
+languages.ain=a\u00ednu
+languages.cus=k\u00fasit\u00edsk m\u00e1l
+languages.jbo=lojban
+languages.doi=dogr\u00ed
+languages.zza=z\u00e1z\u00e1
+languages.vo=volapyk
+languages.oto=\u00f3tomm\u00e1l
+languages.vi=v\u00edetnamska
+languages.vai=va\u00ed
+languages.rar=rar\u00f3tongska
+languages.ve=venda
+languages.rap=rapan\u00fa\u00ed
+languages.raj=rajastan\u00ed
+languages.ota=ott\u00f3mantyrkneska
+languages.nzi=ns\u00edma
+languages.nap=nap\u00f3l\u00edska
+languages.uz=\u00fasbekska
+languages.uga=\u00fagar\u00edt\u00edska
+languages.tmh=tamasjek
+languages.nai=Nor\u00f0ur-Amer\u00edku ind\u00ed\u00e1nam\u00e1l
+languages.nah=nah\u00faatl
+languages.ur=\u00fard\u00fa
+languages.fat=fant\u00ed
+languages.uk=\u00fakra\u00ednska
+languages.egy=fornegypska
+languages.zxx=ekkert tungutengt efni
+languages.ug=\u00fa\u00edg\u00far
+languages.fan=fang
+languages.ssa=n\u00edl\u00f3saharam\u00e1l
+languages.mga=mi\u00f0\u00edrska
+languages.bat=baltnesk m\u00e1l
+languages.nyo=nj\u00f3r\u00f3
+languages.bas=basa
+languages.nyn=njank\u00f3le
+languages.nym=njamves\u00ed
+languages.gsw=svissnesk \u00fe\u00fdska
+languages.hmn=hmong
+languages.ban=bal\u00edska
+languages.osa=\u00f3sage
+languages.bal=bal\u00fak\u00ed
+languages.ty=tah\u00edt\u00edska
+languages.bai=bam\u00edlekem\u00e1l
+languages.tw=tv\u00ed
+languages.srr=serer
+languages.tli=tlingit
+languages.tlh=kling\u00f3nska
+languages.tt=tatarska
+languages.ts=tsonga
+languages.srn=sranan tongo
+languages.bad=banda
+languages.tr=tyrkneska
+languages.to=tongverska (Tongaeyjar)
+languages.tn=ts\u00faana
+languages.tl=tagalog
+languages.tk=t\u00farkmenska
+languages.ti=t\u00edgrinja
+languages.th=ta\u00edlenska
+languages.kru=k\u00far\u00fak
+languages.tg=tadsjikska
+languages.byn=bl\u00edn
+languages.te=tel\u00fag\u00fa
+languages.kro=kr\u00fa
+languages.csb=kas\u00fab\u00edska
+languages.ta=tam\u00edlska
+languages.krl=kar\u00e9lska
+languages.tkl=t\u00f3kel\u00e1ska
+languages.efi=ef\u00edk
+languages.sw=svah\u00edl\u00ed
+languages.sv=s\u00e6nska
+languages.su=s\u00fandanska
+languages.krc=karasa\u00edbalkar
+languages.st=su\u00f0urs\u00f3t\u00f3
+languages.ss=svat\u00ed
+languages.sr=serbneska
+languages.sq=albanska
+languages.men=mende
+languages.crp=kre\u00f3l-/pidginm\u00e1l
+languages.so=s\u00f3malska
+languages.afh=afr\u00edh\u00edl\u00ed
+languages.sn=sh\u00f3na
+languages.sm=sam\u00f3ska
+languages.sl=sl\u00f3venska
+languages.grc=forngr\u00edska
+languages.sk=sl\u00f3vak\u00edska
+languages.grb=gerb\u00f3
+languages.si=singales\u00edska
+languages.sh=serb\u00f3kr\u00f3at\u00edska
+languages.crh=kr\u00edmtyrkneska
+languages.afa=afr\u00f3as\u00edsk m\u00e1l
+languages.sg=sang\u00f3
+languages.se=nor\u00f0ursam\u00edska
+languages.sd=sind\u00ed
+languages.udm=\u00fadm\u00fart
+languages.sc=sard\u00ednska
+languages.sa=sanskr\u00edt
+languages.rw=k\u00ednjarvanda
+languages.nwc=klassisk nevar\u00ed
+languages.ru=r\u00fassneska
+languages.mdr=mandar
+languages.ro=r\u00famenska
+languages.rn=r\u00fand\u00ed
+languages.rm=ret\u00f3r\u00f3manska
+languages.fr_CH=svissnesk franska
+languages.mdf=moksa
+languages.tiv=t\u00edv
+languages.fr_CA=kanad\u00edsk franska
+languages.ady=ad\u00fdge
+languages.zun=s\u00fan\u00ed
+languages.kpe=kpelle
+languages.qu=kvesj\u00faa
+languages.tig=t\u00edgre
+languages.son=songha\u00ed
+languages.cpp=kre\u00f3l- og pidginm\u00e1l \u00e1 port\u00fag\u00f6lskum grunni
+languages.rup=ar\u00famenska
+languages.sog=sogd\u00eden
+languages.ada=adangme
+languages.kos=kosraska
+languages.hit=hettit\u00edska
+languages.cpf=kre\u00f3l- og pidginm\u00e1l \u00e1 fr\u00f6nskum grunni
+languages.cpe=kre\u00f3l- og pidginm\u00e1l \u00e1 enskum grunni
+languages.him=h\u00edmasjal\u00ed
+languages.kok=konkan\u00ed
+languages.hil=h\u00edliga\u00ednon
+languages.got=gotneska
+languages.gor=gorontal\u00f3
+languages.gon=gond\u00ed
+languages.din=dinka
+languages.nub=n\u00fab\u00edsk m\u00e1l
+languages.pt=port\u00fagalska
+languages.ps=past\u00fa
+languages.fur=fr\u00ed\u00falska
+languages.phn=f\u00f6nik\u00edska
+languages.de_CH=svissnesk h\u00e1\u00fe\u00fdska
+languages.goh=fornh\u00e1\u00fe\u00fdska
+languages.snk=s\u00f3ninke
+languages.cop=kopt\u00edska
+languages.yap=jap\u00edska
+languages.ach=ak\u00f3l\u00ed
+languages.yao=ja\u00f3
+languages.phi=filippseysk m\u00e1l
+languages.pl=p\u00f3lska
+languages.ace=akk\u00edska
+languages.pi=pal\u00ed
+languages.pt_PT=\u00edber\u00edsk port\u00fagalska
+languages.pa=p\u00fanjab\u00ed
+languages.bug=b\u00fag\u00edska
+languages.iba=\u00edban
+languages.sms=skoltesam\u00edska
+languages.bua=b\u00far\u00edat
+languages.mas=masa\u00ed
+languages.smn=enaresam\u00edska
+languages.os=osset\u00edska
+languages.map=\u00e1str\u00f3nes\u00edska
+languages.or=\u00f3r\u00eda
+languages.man=manding\u00f3
+languages.smj=l\u00falesam\u00edska
+languages.smi=sam\u00edsk m\u00e1l
+languages.mak=makasar
+languages.om=\u00f3r\u00f3m\u00f3
+languages.mai=ma\u00edt\u00edl\u00ed
+languages.oj=ojibva
+languages.mag=magah\u00ed
+languages.mad=mad\u00farska
+languages.sma=su\u00f0ursam\u00edska
+languages.oc=oks\u00edtan\u00edska
+languages.nso=nor\u00f0urs\u00f3t\u00f3
+languages.btk=batak
+languages.myv=ersja
+languages.es_ES=sp\u00e6nsk sp\u00e6nska
+languages.de_AT=austurr\u00edsk \u00fe\u00fdska
+languages.dgr=dogr\u00edb
+languages.ny=njanja
+languages.myn=majam\u00e1l
+languages.nv=navah\u00f3
+languages.kmb=kimb\u00fand\u00fa
+languages.nr=su\u00f0urndebele
+languages.gmh=mi\u00f0h\u00e1\u00fe\u00fdska
+languages.no=norska
+languages.nn=n\u00fdnorska
+languages.nl=hollenska
+languages.root=r\u00f3t
+languages.ng=ndonga
+languages.sla=slavnesk m\u00e1l (\u00f6nnur)
+languages.ne=nepalska
+languages.nd=nor\u00f0urndebele
+languages.cmc=kam\u00edsk m\u00e1l
+languages.tet=tet\u00fam
+languages.nb=norskt b\u00f3km\u00e1l
+languages.na=n\u00e1r\u00faska
+languages.ter=teren\u00f3
+languages.tem=t\u00edmne
+languages.my=b\u00farm\u00edska
+languages.lez=lesg\u00edska
+languages.mt=maltneska
+languages.frs=austurfr\u00edsneska
+languages.peo=fornpersneska
+languages.ms=mala\u00edska
+languages.frr=nor\u00f0urfr\u00edsneska
+languages.mr=marat\u00ed
+languages.fro=fornfranska
+languages.mo=mold\u00f3vska
+languages.mn=mong\u00f3lska
+languages.frm=mi\u00f0franska
+languages.ml=malajalam
+languages.jrb=gy\u00f0ingaarab\u00edska
+languages.mk=maked\u00f3nska
+languages.mi=ma\u00f3r\u00ed
+languages.mh=marshallska
+languages.mg=malagas\u00edska
+languages.nqo=nk\u00e5
+languages.mwr=marvar\u00ed
+languages.bra=bra\u00ed
+languages.mwl=mirandes\u00edska
+languages.den=slav
+languages.lv=lettneska
+languages.lu=l\u00fabakatanga
+languages.del=delaver
+languages.lt=lith\u00e1\u00edska
+languages.lo=la\u00f3
+languages.ln=lingala
+languages.li=limb\u00farg\u00edska
+languages.ewo=evond\u00f3
+languages.lg=ganda
+languages.lb=l\u00faxemborg\u00edska
+languages.la=lat\u00edna
+languages.jpr=gy\u00f0ingapersneska
+languages.vot=vot\u00edska
+languages.sit=s\u00edn\u00f3t\u00edbesk m\u00e1l
+languages.ky=kirgiska
+languages.kw=korn\u00edska
+languages.kv=kom\u00edska
+languages.ku=k\u00fardneska
+languages.sio=s\u00ed\u00fam\u00e1l
+languages.ks=kasm\u00edrska
+languages.kr=kan\u00far\u00ed
+languages.awa=avad\u00ed
+languages.ko=k\u00f3reska
+languages.kn=kannada
+languages.km=kmer
+languages.en_GB=bresk enska
+languages.kl=gr\u00e6nlenska
+languages.kk=kasakska
+languages.rom=roman\u00ed
+languages.kj=k\u00faanjama
+languages.sid=s\u00eddam\u00f3
+languages.ki=k\u00edk\u00faj\u00fa
+languages.kg=kong\u00f3
+languages.non=norr\u00e6na
+languages.ka=georg\u00edska
+languages.mus=kr\u00edk
+languages.roa=r\u00f3m\u00f6nsk m\u00e1l
+languages.nog=n\u00f3ga\u00ed
+languages.mun=m\u00fandam\u00e1l
+languages.mul=margv\u00edsleg m\u00e1l
+languages.jv=javanska
+languages.gil=gilberska
+languages.znd=sande
+languages.shn=sjan
+languages.fon=f\u00f3n
+languages.xal=kalm\u00fakska
+languages.aus=\u00e1str\u00f6lsk m\u00e1l
+languages.kho=kotaska
+languages.ja=japanska
+languages.khi=ko\u00edm\u00e1l
+languages.pau=pal\u00e1ska
+languages.chy=sjeyen
+languages.tai=ta\u00edm\u00e1l
+languages.iu=in\u00faktit\u00fat
+languages.pap=pap\u00edament\u00f3
+languages.it=\u00edtalska
+languages.sgn=t\u00e1knm\u00e1l
+languages.is=\u00edslenska
+languages.kha=kas\u00ed
+languages.chr=sjer\u00f3k\u00ed
+languages.pam=pampanga
+languages.pal=palav\u00ed
+languages.chp=s\u00edpev\u00edska
+languages.io=\u00edd\u00f3
+languages.cho=sjokt\u00e1
+languages.chn=s\u00edn\u00fak
+languages.chm=mar\u00ed
+languages.tyv=t\u00fav\u00ednska
+languages.bnt=bant\u00fam\u00e1l
+languages.pag=pangas\u00ednm\u00e1l
+languages.ik=\u00edn\u00fap\u00edak
+languages.chk=sj\u00fak\u00edska
+languages.ii=s\u00eds\u00faanj\u00ed
+languages.haw=hava\u00edska
+languages.lam=lamba
+languages.ig=\u00edgb\u00f3
+languages.chg=sjagata\u00ed
+languages.sga=forn\u00edrska (til 900)
+languages.paa=pap\u00fask m\u00e1l
+languages.ie=interlingve
+languages.id=ind\u00f3nes\u00edska
+languages.lah=landa
+languages.day=dajak
+languages.chb=s\u00edbsja
+languages.ia=interlingva
+languages.lad=lad\u00ednska
+languages.hz=herer\u00f3
+languages.hai=ha\u00edda
+languages.dar=dargva
+languages.hy=armenska
+languages.ath=atapask\u00edsk m\u00e1l
+languages.hu=ungverska
+languages.ht=ha\u00edt\u00edska
+languages.dak=dak\u00f3ta
+languages.hr=kr\u00f3at\u00edska
+languages.ho=h\u00edr\u00edm\u00f3t\u00fa
+languages.hi=hind\u00ed
+languages.dyu=dj\u00fala
+languages.he=hebreska
+languages.ast=ast\u00far\u00edska
+languages.kfo=koro
+languages.ha=h\u00e1sa
+languages.wen=sorbnesk m\u00e1l
+languages.gv=manx
+languages.gu=g\u00fajarat\u00ed
+languages.sem=sem\u00edsk m\u00e1l
+languages.sel=selk\u00fap
+languages.iro=\u00edr\u00f3kesk m\u00e1l
+languages.gn=gvaran\u00ed
+languages.gl=gallegska
+languages.en_CA=kanad\u00edsk enska
+languages.arw=aravakska
+languages.gez=g\u00eds
+languages.art=al\u00fej\u00f3\u00f0am\u00e1l
+languages.gd=skosk gel\u00edska
+languages.ira=\u00edranska
+languages.ga=\u00edrska
+languages.arp=arapah\u00f3
+languages.arn=ar\u00e1kan\u00edska
+languages.fy=fr\u00edsneska
+languages.bla=siksika
+languages.gem=germ\u00f6nsk m\u00e1l
+languages.ypk=j\u00fap\u00edsk m\u00e1l
+languages.arc=arame\u00edska
+languages.fr=franska
+languages.fo=f\u00e6reyska
+languages.cel=keltnesk m\u00e1l
+languages.fj=f\u00eddjeyska
+languages.fi=finnska
+languages.ff=f\u00fala
+languages.tvl=t\u00faval\u00faska
+languages.ceb=keb\u00faan\u00f3
+languages.fa=persneska
+languages.en_AU=\u00e1str\u00f6lsk enska
+languages.zh_Hans=k\u00ednverska (einf\u00f6ldu\u00f0)
+languages.zh_Hant=k\u00ednverska (hef\u00f0bundin)
+languages.eu=baskneska
+languages.sco=skoska
+languages.et=eistneska
+languages.scn=sikileyska
+languages.es=sp\u00e6nska
+languages.eo=esperant\u00f3
+languages.en=enska
+languages.el=gr\u00edska
+languages.tut=alta\u00edsk m\u00e1l
+languages.niu=n\u00edveska
+languages.tup=t\u00fap\u00edm\u00e1l
+languages.ee=eve
+languages.tum=t\u00famb\u00faka
+languages.nl_BE=fl\u00e6mska
+languages.es_419=latnesk-amer\u00edsk sp\u00e6nska
+languages.mos=moss\u00ed
+languages.dz=dsongka
+languages.kcg=tyap
+languages.nic=n\u00edgerkord\u00f3fanm\u00e1l
+languages.lus=l\u00fasa\u00ed
+languages.fiu=finnsk\u00fagr\u00edsk m\u00e1l
+languages.dv=d\u00edveh\u00ed
+languages.nia=n\u00edas
+languages.moh=m\u00f3h\u00edska
+languages.luo=l\u00fa\u00f3
+languages.lun=l\u00fanda
+languages.apa=apatsjam\u00e1l
+languages.fil=filip\u00ednska
+languages.lui=l\u00faisen\u00f3
+languages.hup=h\u00fapa
+languages.cch=atsam
+languages.bin=b\u00edn\u00ed
+languages.de=\u00fe\u00fdska
+languages.lua=l\u00fabal\u00fal\u00faa
+languages.bik=b\u00edkol
+languages.was=vasj\u00f3
+languages.und=\u00f3\u00feekkt e\u00f0a \u00f3gilt tungum\u00e1l
+languages.war=vara\u00ed
+languages.da=danska
+languages.dum=mi\u00f0hollenska
+languages.wal=valam\u00f3
+languages.mno=man\u00f3b\u00f3m\u00e1l
+languages.wak=vakasm\u00e1l
+languages.sat=santal\u00ed
+languages.cy=velska
+languages.sas=sasak
+languages.kbd=kabard\u00edska
+languages.cv=sj\u00favas
+languages.cu=kirkjuslavneska
+languages.mni=man\u00edp\u00far\u00ed
+languages.cs=t\u00e9kkneska
+languages.sam=samversk arame\u00edska
+languages.cr=kr\u00ed
+languages.sal=sal\u00edsm\u00e1l
+languages.dua=d\u00faala
+languages.co=kors\u00edska
languages.sai=Ind\u00ed\u00e1nam\u00e1l Su\u00f0ur-Amer\u00edku (\u00f6nnur)
-languages.mnc=Mansj\u00fa
-languages.sah=Jak\u00fat
-languages.gba=Gbaja
-languages.inh=Ing\u00fas
-languages.kaw=Kav\u00ed
-languages.sad=Sandave
-languages.ch=Kamorr\u00f3
-languages.bho=Bojp\u00far\u00ed
-languages.ine=Ind\u00f3evr\u00f3psk m\u00e1l (\u00f6nnur)
-languages.enm=Mi\u00f0enska (1100-1500)
-languages.ce=Tsjetsjenska
-languages.inc=Indversk m\u00e1l (\u00f6nnur)
-languages.kar=Karen
-languages.gay=Gaj\u00f3
-languages.ca=Katal\u00f3nska
-languages.umb=\u00damb\u00fand\u00fa
-languages.syr=S\u00fdrlenska
-languages.kam=Kamba
-languages.tsi=Tsims\u00edska
-languages.ang=Fornenska (um 450-1100)
-languages.cau=K\u00e1kasusm\u00e1l (\u00f6nnur)
-languages.kac=Kas\u00edn
-languages.kab=Kab\u00edle
-languages.bs=Bosn\u00edska
-languages.kaa=Karakalpak
-languages.br=Bret\u00f3nska
-languages.car=Kar\u00edbam\u00e1l
-languages.bo=T\u00edbeska
-languages.bn=Bengalska
-languages.bm=Bambara
-languages.gaa=Ga
-languages.bi=B\u00edslama
-languages.cai=Ind\u00ed\u00e1nam\u00e1l Mi\u00f0-Amer\u00edku (\u00f6nnur)
-languages.bh=B\u00edhar\u00ed
-languages.bg=B\u00falgarska
-languages.be=Hv\u00edtr\u00fassneska
-languages.cad=Kadd\u00f3
-languages.ba=Bask\u00edr
-languages.zu=S\u00fal\u00fa
-languages.zen=Senaga
-languages.pro=Fornpr\u00f3vensalska (til 1500)
-languages.hsb=H\u00e1sorbneska
-languages.az=Aserska
-languages.ay=A\u00edmara
-languages.av=Avar\u00edska
-languages.as=Assamska
-languages.ar=Arab\u00edska
-languages.dsb=L\u00e1gsorbneska
-languages.elx=Elam\u00edt
-languages.ilo=\u00cdlok\u00f3
-languages.zh=K\u00ednverska
-languages.an=Aragonska
-languages.pra=Prakr\u00edtm\u00e1l
-languages.am=Amhar\u00edska
-languages.new=Nevar\u00ed
-languages.ak=Akan
-languages.za=S\u00faang
-languages.af=Afr\u00edkanska
-languages.ae=Avest\u00edska
-languages.ab=Abkas\u00edska
-languages.yo=J\u00f3r\u00faba
-languages.alg=Algonkv\u00ednsk m\u00e1l
-languages.ale=Ale\u00faska
-languages.mkh=Monkmerm\u00e1l (\u00f6nnur)
-languages.yi=Jidd\u00edska
-languages.dra=Dravid\u00edsk m\u00e1l (\u00f6nnur)
-languages.ber=Berbam\u00e1l
-languages.nds=L\u00e1g\u00fe\u00fdska; L\u00e1gsaxneska
-languages.bem=Bemba
-languages.bej=Beja
-languages.tpi=Tokpisin
+languages.mnc=mansj\u00fa
+languages.sah=jak\u00fat
+languages.kaw=kav\u00ed
+languages.inh=ing\u00fas
+languages.gba=gbaja
+languages.sad=sandave
+languages.ch=kamorr\u00f3
+languages.ine=ind\u00f3evr\u00f3psk m\u00e1l
+languages.bho=bojp\u00far\u00ed
+languages.enm=mi\u00f0enska
+languages.kar=karen
+languages.inc=indversk m\u00e1l
+languages.ce=tsjetsjenska
+languages.gay=gaj\u00f3
+languages.ca=katal\u00f3nska
+languages.umb=\u00famb\u00fand\u00fa
+languages.syr=s\u00fdrlenska
+languages.kam=kamba
+languages.anp=ang\u00edka
+languages.tsi=tsims\u00edska
+languages.kaj=jju
+languages.ang=fornenska
+languages.kac=kas\u00edn
+languages.cau=k\u00e1kasusm\u00e1l
+languages.kab=kab\u00edle
+languages.kaa=karakalpak
+languages.bs=bosn\u00edska
+languages.car=kar\u00edbam\u00e1l
+languages.br=bret\u00f3nska
+languages.syc=klassisk s\u00fdrlenska
+languages.bo=t\u00edbeska
+languages.bn=bengalska
+languages.bm=bambara
+languages.gaa=ga
+languages.cai=Mi\u00f0-Amer\u00edku ind\u00ed\u00e1nam\u00e1l
+languages.bi=b\u00edslama
+languages.bh=b\u00edhar\u00ed
+languages.bg=b\u00falgarska
+languages.be=hv\u00edtr\u00fassneska
+languages.pt_BR=bras\u00edl\u00edsk port\u00fagalska
+languages.cad=kadd\u00f3
+languages.ba=bask\u00edr
+languages.zu=s\u00fal\u00fa
+languages.zen=senaga
+languages.pro=fornpr\u00f3vensalska
+languages.hsb=h\u00e1sorbneska
+languages.az=aserska
+languages.ay=a\u00edmara
+languages.av=avar\u00edska
+languages.as=assame\u00edska
+languages.dsb=l\u00e1gsorbneska
+languages.ar=arab\u00edska
+languages.ilo=\u00edlok\u00f3
+languages.elx=elam\u00edt
+languages.zh=k\u00ednverska
+languages.an=aragonska
+languages.pra=prakr\u00edtm\u00e1l
+languages.am=amhar\u00edska
+languages.new=nevar\u00ed
+languages.ak=akan
+languages.za=s\u00faang
+languages.en_US=bandar\u00edsk enska
+languages.af=afr\u00edkanska
+languages.ae=avest\u00edska
+languages.alt=su\u00f0uralta\u00edska
+languages.ab=abkas\u00edska
+languages.aa=af\u00e1r
+languages.yo=j\u00f3r\u00faba
+languages.alg=algonkv\u00ednsk m\u00e1l
+languages.ale=aleut\u00edska
+languages.mkh=monkmerm\u00e1l
+languages.yi=jidd\u00edska
+languages.dra=dravid\u00edsk m\u00e1l
+languages.ber=berbam\u00e1l
+languages.nds=l\u00e1g\u00fe\u00fdska
+languages.bem=bemba
+languages.bej=beja
+languages.tpi=tokpisin
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_it.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_it.properties
index f2662fa..3167921 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_it.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_it.properties
@@ -7,264 +7,282 @@
decimalSeparator=,
groupingSeparator=.
-currenciesDisplayName.YDD=Dinaro dello Yemen
-currenciesDisplayName.TWD=Nuovo dollaro taiwanese
-currenciesDisplayName.KES=Scellino Keniota
-currenciesDisplayName.BYB=Nuovo Rublo Bielorussia (1994-1999)
-currenciesDisplayName.LKR=Rupia di Sri Lanka
-currenciesDisplayName.RWF=Franco Ruandese
-currenciesDisplayName.TJS=Somoni del Tajikistan
-currenciesDisplayName.SDP=Sterlina Sudanese
-currenciesDisplayName.TJR=Rublo del Tajikistan
-currenciesDisplayName.ERN=Nakfa Eritreo
-currenciesDisplayName.AFN=Afgani
-currenciesDisplayName.GRD=Dracma Greca
-currenciesDisplayName.IEP=Lira Irlandese
-currenciesDisplayName.ARS=Peso Argentino
-currenciesDisplayName.SDD=Dinaro Sudanese
-currenciesDisplayName.ARP=Peso Argentino (vecchio Cod.)
-currenciesDisplayName.GEL=Lari Georgiano
-currenciesDisplayName.AFA=Afgani (1927-2002)
-currenciesDisplayName.GEK=Kupon Larit Georgiano
-currenciesDisplayName.CRC=Col\u00f3n Costaricano
-currenciesDisplayName.FKP=Sterlina delle Falkland
-currenciesDisplayName.EEK=Corona dell\u2019Estonia
-currenciesDisplayName.HKD=Dollaro di Hong Kong
-currenciesDisplayName.MDL=Leu Moldavo
-currenciesDisplayName.ARA=Austral Argentino
-currenciesDisplayName.IQD=Dinaro Iracheno
-currenciesDisplayName.SCR=Rupia delle Seychelles
-currenciesDisplayName.VUV=Vatu di Vanuatu
-currenciesDisplayName.DKK=Corona Danese
-currenciesDisplayName.KPW=Won Nordcoreano
-currenciesDisplayName.GQE=Ekwele della Guinea Equatoriale
-currenciesDisplayName.IDR=Rupia Indiana
-currenciesDisplayName.LVR=Rublo Lettone
-currenciesDisplayName.SOS=Scellino Somalo
-currenciesDisplayName.AED=Dirham degli Emirati Arabi Uniti
-currenciesDisplayName.BWP=Pula del Botswana
-currenciesDisplayName.LVL=Lat Lettone
-currenciesDisplayName.RUR=Rublo della CSI
-currenciesDisplayName.NIO=C\u00f3rdoba oro nicaraguense
-currenciesDisplayName.ADP=Peseta Andorrana
-currenciesDisplayName.FJD=Dollaro delle Figi
-currenciesDisplayName.MOP=Pataca di Macao
-currenciesDisplayName.RUB=Rublo Russo
-currenciesDisplayName.CDF=Franco Congolese
-currenciesDisplayName.NIC=Cordoba Nicaraguense
-currenciesDisplayName.DJF=Franco Gibutiano
-currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) dell\u2019Ecuador
-currenciesDisplayName.SBD=Dollaro delle Isole Solomon
-currenciesDisplayName.UZS=Sum dell\u2019Uzbekistan
-currenciesDisplayName.ECS=Sucre dell\u2019Ecuador
-currenciesDisplayName.PHP=Peso delle Filippine
-currenciesDisplayName.THB=Baht Tailandese
-currenciesDisplayName.LUF=Franco del Lussemburgo
-currenciesDisplayName.FIM=Markka Finlandese
-currenciesDisplayName.TTD=Dollaro di Trinidad e Tobago
-currenciesDisplayName.SZL=Lilangeni dello Swaziland
-currenciesDisplayName.MNT=Tugrik Mongolo
-currenciesDisplayName.SAR=Ryal Saudita
-currenciesDisplayName.UAK=Karbovanetz Ucraino
-currenciesDisplayName.UAH=Hrivna Ucraina
-currenciesDisplayName.HUF=Fiorino Ungherese
-currenciesDisplayName.COP=Peso Colombiano
-currenciesDisplayName.QAR=Rial del Qatar
-currenciesDisplayName.LTT=Talonas Lituani
-currenciesDisplayName.PTE=Escudo Portoghese
-currenciesDisplayName.AOR=Kwanza Reajustado Angolano (1995-1999)
-currenciesDisplayName.UYU=Peso Uruguayo uruguaiano
-currenciesDisplayName.GBP=Sterlina Inglese
-currenciesDisplayName.BIF=Franco del Burundi
-currenciesDisplayName.INR=Rupia Indiana
-currenciesDisplayName.ZRZ=Zaire dello Zaire
-currenciesDisplayName.AON=Nuovo Kwanza Angolano (1990-2000)
-currenciesDisplayName.LTL=Lita Lituana
-currenciesDisplayName.XFU=Franco UIC Francese
-currenciesDisplayName.KZT=Tenge Kazaco
-currenciesDisplayName.MZM=Metical del Mozambico
-currenciesDisplayName.UYP=Peso Uruguaiano (1975-1993)
-currenciesDisplayName.AOK=Kwanza Angolano (1977-1990)
-currenciesDisplayName.BUK=Kyat Birmano
-currenciesDisplayName.GNS=Syli della Guinea
-currenciesDisplayName.XFO=Franco Oro Francese
-currenciesDisplayName.PGK=Kina della Papua Nuova Guinea
-currenciesDisplayName.SYP=Sterlina Siriana
-currenciesDisplayName.MZE=Escudo del Mozambico
-currenciesDisplayName.OMR=Rial Omanita
-currenciesDisplayName.NGN=Naira Nigeriana
-currenciesDisplayName.ZRN=Nuovo Zaire dello Zaire
-currenciesDisplayName.AOA=Kwanza Angolano
-currenciesDisplayName.CNY=Renmimbi Cinese
-currenciesDisplayName.MAF=Franco Marocchino
-currenciesDisplayName.GNF=Franco della Guinea
-currenciesDisplayName.HTG=Gourde Haitiano
-currenciesDisplayName.MAD=Dirham Marocchino
-currenciesDisplayName.MMK=Kyat di Myanmar
-currenciesDisplayName.MYR=Ringgit della Malesia
-currenciesDisplayName.LSL=Loti del Lesotho
-currenciesDisplayName.XEU=Unit\u00e0 Monetaria Europea
-currenciesDisplayName.BHD=Dinaro del Bahraini
-currenciesDisplayName.SLL=Leone della Sierra Leone
-currenciesDisplayName.BTN=Ngultrum Butanese
-currenciesDisplayName.TRL=Lira Turca
-currenciesDisplayName.KMF=Franco Comoriano
-currenciesDisplayName.ANG=Fiorino delle Antille Olandesi
-currenciesDisplayName.CZK=Corona Ceca
-currenciesDisplayName.AZM=Manat Azero
-currenciesDisplayName.KYD=Dollaro delle Isole Cayman
-currenciesDisplayName.GMD=Dalasi del Gambia
-currenciesDisplayName.BGN=Nuovo Lev Bulgaro
-currenciesDisplayName.CAD=Dollaro Canadese
-currenciesDisplayName.MXV=Unidad de Inversion (UDI) Messicana
-currenciesDisplayName.BGL=Lev Bulgaro
-currenciesDisplayName.VEB=Bolivar Venezuelano
-currenciesDisplayName.MLF=Franco di Mali
-currenciesDisplayName.ILS=Nuovo sheqel israeliano
-currenciesDisplayName.MXP=Peso messicano d\u2019argento (1861-1992)
-currenciesDisplayName.PES=Sol Peruviano
-currenciesDisplayName.GYD=Dollaro della Guyana
-currenciesDisplayName.MXN=Peso Messicano
-currenciesDisplayName.ILP=Sterlina Israeliana
-currenciesDisplayName.SKK=Corona Slovacca
-currenciesDisplayName.CYP=Sterlina Cipriota
-currenciesDisplayName.XDR=Diritti Speciali di Incasso
-currenciesDisplayName.PEN=Sol Nuevo Peruviano
-currenciesDisplayName.LRD=Dollaro Liberiano
-currenciesDisplayName.PEI=Inti Peruviano
-currenciesDisplayName.AMD=Dram Armeno
-currenciesDisplayName.BSD=Dollaro delle Bahamas
-currenciesDisplayName.HRK=Kuna Croata
-currenciesDisplayName.CLP=Peso Cileno
-currenciesDisplayName.HRD=Dinaro Croato
-currenciesDisplayName.XPF=Franco CFP
-currenciesDisplayName.FRF=Franco Francese
-currenciesDisplayName.BRR=Cruzeiro Brasiliano
-currenciesDisplayName.MKD=Dinaro Macedone
-currenciesDisplayName.CLF=Unidades de Fomento Chilene
-currenciesDisplayName.ALL=Lek Albanese
-currenciesDisplayName.BRN=Cruzado Novo Brasiliano
-currenciesDisplayName.MWK=Kwacha Malawiano
-currenciesDisplayName.BRL=Real Brasiliano
-currenciesDisplayName.TPE=Escudo di Timor
-currenciesDisplayName.BRE=Cruzeiro Brasiliano (1990-1993)
-currenciesDisplayName.BRC=Cruzado Brasiliano
-currenciesDisplayName.BRB=Cruzeiro Novo Brasiliano (1967-1986)
-currenciesDisplayName.DEM=Marco Tedesco
-currenciesDisplayName.KWD=Dinaro Kuwaitiano
-currenciesDisplayName.XCD=Dollaro dei Caraibi Orientali
-currenciesDisplayName.NPR=Rupia Nepalese
-currenciesDisplayName.GWP=Peso della Guinea-Bissau
-currenciesDisplayName.YUN=Dinaro Convertibile Yugoslavo
-currenciesDisplayName.SVC=Col\u00f3n Salvadoregno
-currenciesDisplayName.YUM=Dinaro Noviy Yugoslavo
-currenciesDisplayName.BEL=Franco Belga (finanziario)
-currenciesDisplayName.SIT=Tallero Sloveno
-currenciesDisplayName.JPY=Yen Giapponese
-currenciesDisplayName.XOF=Franco CFA BCEAO
-currenciesDisplayName.MVR=Rufiyaa delle Maldive
-currenciesDisplayName.GWE=Escudo della Guinea portoghese
-currenciesDisplayName.BEF=Franco Belga
-currenciesDisplayName.TOP=Pa\u02bbanga di Tonga
-currenciesDisplayName.YUD=Dinaro Forte Yugoslavo
-currenciesDisplayName.BEC=Franco Belga (convertibile)
-currenciesDisplayName.SUR=Rublo Sovietico
-currenciesDisplayName.ROL=Leu della Romania
-currenciesDisplayName.DDM=Ostmark della Germania Orientale
-currenciesDisplayName.BDT=Taka Bangladese
-currenciesDisplayName.XBD=Unit\u00e0 di acconto europea (XBD)
-currenciesDisplayName.AWG=Fiorino di Aruba
-currenciesDisplayName.XBC=Unit\u00e0 di acconto europea (XBC)
-currenciesDisplayName.XBB=Unit\u00e0 monetaria europea
-currenciesDisplayName.XBA=Unit\u00e0 composita europea
-currenciesDisplayName.NOK=Corona Norvegese
-currenciesDisplayName.MUR=Rupia Mauriziana
-currenciesDisplayName.ZAR=Rand Sudafricano
-currenciesDisplayName.SHP=Sterlina di Sant\u2019Elena
-currenciesDisplayName.XAU=Oro
-currenciesDisplayName.ZAL=Rand Sudafricano (finanziario)
-currenciesDisplayName.VND=Dong Vietnamita
-currenciesDisplayName.TZS=Scellino della Tanzania
-currenciesDisplayName.GIP=Sterlina di Gibilterra
-currenciesDisplayName.TND=Dinaro Tunisino
-currenciesDisplayName.CVE=Escudo del Capo Verde
-currenciesDisplayName.UGX=Scellino Ugandese
-currenciesDisplayName.ZMK=Kwacha dello Zambia
-currenciesDisplayName.JOD=Dinaro Giordano
-currenciesDisplayName.XAF=Franco CFA BEAC
-currenciesDisplayName.LBP=Sterlina Libanese
-currenciesDisplayName.UGS=Scellino Ugandese (1966-1987)
-currenciesDisplayName.STD=Dobra di S\u00e3o Tom\u00e9 e Principe
-currenciesDisplayName.WST=Tala della Samoa Occidentale
-currenciesDisplayName.KHR=Riel Cambogiano
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Peso Dominicano
-currenciesDisplayName.BOV=Mvdol Boliviano
-currenciesDisplayName.MTP=Sterlina Maltese
-currenciesDisplayName.USS=Dollaro Statunitense (Same day)
-currenciesDisplayName.BOP=Peso Boliviano
-currenciesDisplayName.MTL=Lira Maltese
-currenciesDisplayName.CUP=Peso Cubano
-currenciesDisplayName.TMM=Manat Turkmeno
-currenciesDisplayName.USN=Dollaro Statunitense (Next day)
-currenciesDisplayName.SGD=Dollaro di Singapore
-currenciesDisplayName.NZD=Dollaro Neozelandese
-currenciesDisplayName.USD=Dollaro Statunitense
-currenciesDisplayName.HNL=Lempira Hoduregno
-currenciesDisplayName.BOB=Boliviano
-currenciesDisplayName.ITL=Lira Italiana
-currenciesDisplayName.PAB=Balboa di Panama
-currenciesDisplayName.GTQ=Quetzal Guatemalteco
-currenciesDisplayName.LAK=Kip Laotiano
-currenciesDisplayName.GHC=Cedi del Ghana
-currenciesDisplayName.AUD=Dollaro Australiano
-currenciesDisplayName.NAD=Dollaro Namibiano
-currenciesDisplayName.KGS=Som Kirghiso
-currenciesDisplayName.MGF=Franco Malgascio
-currenciesDisplayName.CHF=Franco Svizzero
-currenciesDisplayName.BBD=Dollaro di Barbados
-currenciesDisplayName.MGA=Ariary Malgascio
-currenciesDisplayName.PYG=Guarani del Paraguay
-currenciesDisplayName.PLZ=Zloty Polacco (1950-1995)
-currenciesDisplayName.YER=Rial dello Yemen
-currenciesDisplayName.ATS=Scellino Austriaco
-currenciesDisplayName.ETB=Birr Etiopico
-currenciesDisplayName.BND=Dollaro del Brunei
-currenciesDisplayName.JMD=Dollaro Giamaicano
-currenciesDisplayName.EGP=Sterlina Egiziana
-currenciesDisplayName.PLN=Zloty Polacco
-currenciesDisplayName.DZD=Dinaro Algerino
-currenciesDisplayName.ISK=Corona Islandese
-currenciesDisplayName.SRG=Fiorino del Suriname
-currenciesDisplayName.LYD=Dinaro Libico
-currenciesDisplayName.BZD=Dollaro Belize
-currenciesDisplayName.BAM=Marco Conv. Bosnia-Erzegovina
-currenciesDisplayName.ESP=Peseta Spagnola
-currenciesDisplayName.KRW=Won Sudcoreano
-currenciesDisplayName.NLG=Fiorino Olandese
-currenciesDisplayName.MRO=Ouguiya della Mauritania
-currenciesDisplayName.BAD=Dinar Bosnia-Herzegovina
-currenciesDisplayName.ZWD=Dollaro dello Zimbabwe
-currenciesDisplayName.SEK=Corona Svedese
-currenciesDisplayName.CSK=Corona forte cecoslovacca
-currenciesDisplayName.BYR=Rublo Bielorussia
-currenciesDisplayName.IRR=Rial Iraniano
-currenciesDisplayName.PKR=Rupia del Pakistan
-currenciesDisplayName.BMD=Dollaro delle Bermuda
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.YDD=dinaro dello Yemen
+currenciesDisplayName.KES=scellino keniota
+currenciesDisplayName.TWD=nuovo dollaro taiwanese
+currenciesDisplayName.LKR=rupia di Sri Lanka
+currenciesDisplayName.BYB=nuovo rublo bielorusso (1994-1999)
+currenciesDisplayName.TJS=somoni del Tajikistan
+currenciesDisplayName.RWF=franco ruandese
+currenciesDisplayName.ERN=nakfa eritreo
+currenciesDisplayName.TJR=rublo del Tajikistan
+currenciesDisplayName.SDP=sterlina sudanese
+currenciesDisplayName.GRD=dracma Greca
+currenciesDisplayName.AFN=afgani
+currenciesDisplayName.IEP=lira irlandese
+currenciesDisplayName.ARS=peso argentino
+currenciesDisplayName.ARP=peso argentino (vecchio cod.)
+currenciesDisplayName.SDD=dinaro sudanese
+currenciesDisplayName.GEL=lari georgiano
+currenciesDisplayName.GEK=kupon larit georgiano
+currenciesDisplayName.AFA=afgani (1927-2002)
+currenciesDisplayName.CRC=col\u00f3n costaricano
+currenciesDisplayName.FKP=sterlina delle Falkland
+currenciesDisplayName.EEK=corona dell\u2019Estonia
+currenciesDisplayName.MDL=leu moldavo
+currenciesDisplayName.HKD=dollaro di Hong Kong
+currenciesDisplayName.IQD=dinaro iracheno
+currenciesDisplayName.ARA=austral argentino
+currenciesDisplayName.SCR=rupia delle Seychelles
+currenciesDisplayName.VUV=vatu di Vanuatu
+currenciesDisplayName.KPW=won nordcoreano
+currenciesDisplayName.DKK=corona danese
+currenciesDisplayName.IDR=rupia indonesiana
+currenciesDisplayName.GQE=ekwele della Guinea equatoriale
+currenciesDisplayName.SOS=scellino somalo
+currenciesDisplayName.LVR=rublo lettone
+currenciesDisplayName.AED=drham degli Emirati Arabi Uniti
+currenciesDisplayName.LVL=lat lettone
+currenciesDisplayName.BWP=pula del Botswana
+currenciesDisplayName.RUR=rublo della CSI
+currenciesDisplayName.NIO=c\u00f3rdoba oro nicaraguense
+currenciesDisplayName.XTS=codice della valuta di prova
+currenciesDisplayName.MOP=pataca di Macao
+currenciesDisplayName.FJD=dollaro delle Figi
+currenciesDisplayName.ADP=peseta andorrana
+currenciesDisplayName.RUB=rublo russo
+currenciesDisplayName.CDF=franco congolese
+currenciesDisplayName.NIC=cordoba nicaraguense
+currenciesDisplayName.DJF=franco gibutiano
+currenciesDisplayName.UZS=sum dell\u2019Uzbekistan
+currenciesDisplayName.SBD=dollaro delle Isole Solomon
+currenciesDisplayName.ECV=unidad de valor constante (UVC) dell\u2019Ecuador
+currenciesDisplayName.LUL=franco finanziario del Lussemburgo
+currenciesDisplayName.ECS=sucre dell\u2019Ecuador
+currenciesDisplayName.THB=baht tailandese
+currenciesDisplayName.PHP=peso delle Filippine
+currenciesDisplayName.LUF=franco del Lussemburgo
+currenciesDisplayName.RHD=dollaro della Rhodesia
+currenciesDisplayName.LUC=franco convertibile del Lussemburgo
+currenciesDisplayName.FIM=markka finlandese
+currenciesDisplayName.TTD=dollaro di Trinidad e Tobago
+currenciesDisplayName.SZL=lilangeni dello Swaziland
+currenciesDisplayName.MNT=tugrik mongolo
+currenciesDisplayName.UAK=karbovanetz ucraino
+currenciesDisplayName.SAR=ryal saudita
+currenciesDisplayName.UAH=hrivna ucraina
+currenciesDisplayName.HUF=fiorino ungherese
+currenciesDisplayName.QAR=rial del Qatar
+currenciesDisplayName.COP=peso colombiano
+currenciesDisplayName.LTT=talonas lituani
+currenciesDisplayName.PTE=escudo portoghese
+currenciesDisplayName.UYU=peso uruguayo uruguaiano
+currenciesDisplayName.AOR=kwanza reajustado angolano (1995-1999)
+currenciesDisplayName.GBP=sterlina inglese
+currenciesDisplayName.ZRZ=zaire dello Zaire
+currenciesDisplayName.INR=rupia indiana
+currenciesDisplayName.BIF=franco del Burundi
+currenciesDisplayName.XFU=franco UIC francese
+currenciesDisplayName.MZN=metical del Mozambico
+currenciesDisplayName.LTL=lita lituana
+currenciesDisplayName.AON=nuovo kwanza angolano (1990-2000)
+currenciesDisplayName.UYP=peso uruguaiano (1975-1993)
+currenciesDisplayName.MZM=metical del Mozambico
+currenciesDisplayName.KZT=tenge kazaco
+currenciesDisplayName.AOK=kwanza angolano (1977-1990)
+currenciesDisplayName.GNS=syli della Guinea
+currenciesDisplayName.BUK=kyat birmano
+currenciesDisplayName.XFO=franco oro francese
+currenciesDisplayName.PGK=kina della Papua Nuova Guinea
+currenciesDisplayName.SYP=sterlina siriana
+currenciesDisplayName.OMR=rial omanita
+currenciesDisplayName.MZE=escudo del Mozambico
+currenciesDisplayName.ZRN=nuovo zaire dello Zaire
+currenciesDisplayName.NGN=naira nigeriana
+currenciesDisplayName.CNY=renmimbi cinese
+currenciesDisplayName.AOA=kwanza angolano
+currenciesDisplayName.MAF=franco marocchino
+currenciesDisplayName.RSD=dinaro serbo
+currenciesDisplayName.GNF=franco della Guinea
+currenciesDisplayName.MAD=dirham marocchino
+currenciesDisplayName.HTG=gourde haitiano
+currenciesDisplayName.TRY=nuova lira turca
+currenciesDisplayName.MMK=kyat di Myanmar
+currenciesDisplayName.XRE=fondi RINET
+currenciesDisplayName.MYR=ringgit della Malesia
+currenciesDisplayName.LSM=maloti
+currenciesDisplayName.XEU=unit\u00e0 monetaria europea
+currenciesDisplayName.LSL=loti del Lesotho
+currenciesDisplayName.SLL=leone della Sierra Leone
+currenciesDisplayName.BHD=dinaro del Bahraini
+currenciesDisplayName.BTN=ngultrum butanese
+currenciesDisplayName.TRL=lira turca
+currenciesDisplayName.KMF=franco comoriano
+currenciesDisplayName.CZK=corona ceca
+currenciesDisplayName.ANG=fiorino delle Antille olandesi
+currenciesDisplayName.AZN=manat azero
+currenciesDisplayName.AZM=manat azero
+currenciesDisplayName.KYD=dollaro delle Isole Cayman
+currenciesDisplayName.GMD=dalasi del Gambia
+currenciesDisplayName.BGN=nuovo lev bulgaro
+currenciesDisplayName.MXV=unidad de inversion (UDI) messicana
+currenciesDisplayName.CAD=dollaro canadese
+currenciesDisplayName.BGL=lev bulgaro
+currenciesDisplayName.VEB=bolivar venezuelano
+currenciesDisplayName.MLF=franco di Mali
+currenciesDisplayName.MXP=peso messicano d\u2019argento (1861-19
+currenciesDisplayName.ILS=nuovo sheqel israeliano
+currenciesDisplayName.PES=sol peruviano
+currenciesDisplayName.MXN=peso messicano
+currenciesDisplayName.GYD=dollaro della Guyana
+currenciesDisplayName.ILP=sterlina israeliana
+currenciesDisplayName.CYP=sterlina cipriota
+currenciesDisplayName.SKK=corona slovacca
+currenciesDisplayName.XDR=diritti speciali di incasso
+currenciesDisplayName.PEN=sol nuevo peruviano
+currenciesDisplayName.LRD=dollaro liberiano
+currenciesDisplayName.PEI=inti peruviano
+currenciesDisplayName.AMD=dram armeno
+currenciesDisplayName.BSD=dollaro delle Bahamas
+currenciesDisplayName.XPT=platino
+currenciesDisplayName.HRK=kuna croata
+currenciesDisplayName.HRD=dinaro croato
+currenciesDisplayName.CLP=peso cileno
+currenciesDisplayName.XPF=franco CFA BEAC
+currenciesDisplayName.FRF=franco francese
+currenciesDisplayName.BRR=cruzeiro brasiliano
+currenciesDisplayName.MKD=dinaro macedone
+currenciesDisplayName.CLF=unidades de fomento cilene
+currenciesDisplayName.ALL=lek albanese
+currenciesDisplayName.BRN=cruzado novo brasiliano
+currenciesDisplayName.MWK=kwacha malawiano
+currenciesDisplayName.BRL=real brasiliano
+currenciesDisplayName.TPE=escudo di Timor
+currenciesDisplayName.BRE=cruzeiro brasiliano (1990-1993)
+currenciesDisplayName.BRC=cruzado brasiliano
+currenciesDisplayName.BRB=cruzeiro novo brasiliano (1967-1986)
+currenciesDisplayName.DEM=marco tedesco
+currenciesDisplayName.KWD=dinaro kuwaitiano
+currenciesDisplayName.XCD=dollaro dei Caraibi orientali
+currenciesDisplayName.NPR=rupia nepalese
+currenciesDisplayName.GWP=peso della Guinea-Bissau
+currenciesDisplayName.YUN=dinaro convertibile yugoslavo
+currenciesDisplayName.SVC=col\u00f3n salvadoregno
+currenciesDisplayName.YUM=dinaro noviy yugoslavo
+currenciesDisplayName.BEL=franco belga (finanziario)
+currenciesDisplayName.SIT=tallero sloveno
+currenciesDisplayName.JPY=yen giapponese
+currenciesDisplayName.XOF=franco CFA BCEAO
+currenciesDisplayName.MVR=rufiyaa delle Maldive
+currenciesDisplayName.BEF=franco belga
+currenciesDisplayName.GWE=escudo della Guinea portoghese
+currenciesDisplayName.TOP=pa\u02bbanga di Tonga
+currenciesDisplayName.YUD=dinaro forte yugoslavo
+currenciesDisplayName.BEC=franco belga (convertibile)
+currenciesDisplayName.SUR=rublo sovietico
+currenciesDisplayName.RON=leu rumeno
+currenciesDisplayName.ROL=leu della Romania
+currenciesDisplayName.BDT=taka bangladese
+currenciesDisplayName.DDM=ostmark della Germania orientale
+currenciesDisplayName.XBD=unit\u00e0 di acconto europea
+currenciesDisplayName.AWG=fiorino di Aruba
+currenciesDisplayName.XBC=unit\u00e0 di acconto europea
+currenciesDisplayName.XBB=unit\u00e0 monetaria europea
+currenciesDisplayName.XBA=unit\u00e0 composita europea
+currenciesDisplayName.NOK=corona norvegese
+currenciesDisplayName.MUR=rupia mauriziana
+currenciesDisplayName.ZAR=rand sudafricano
+currenciesDisplayName.SHP=sterlina di Sant\u2019Elena
+currenciesDisplayName.XAU=oro
+currenciesDisplayName.ZAL=rand sudafricano (finanziario)
+currenciesDisplayName.VND=dong vietnamita
+currenciesDisplayName.TZS=scellino della Tanzania
+currenciesDisplayName.GIP=sterlina di Gibilterra
+currenciesDisplayName.TND=dinaro tunisino
+currenciesDisplayName.CVE=escudo del Capo Verde
+currenciesDisplayName.UGX=scellino ugandese
+currenciesDisplayName.ZMK=kwacha dello Zambia
+currenciesDisplayName.JOD=dinaro giordano
+currenciesDisplayName.XAF=franco CFA BEAC
+currenciesDisplayName.LBP=sterlina libanese
+currenciesDisplayName.UGS=scellino ugandese (1966-1987)
+currenciesDisplayName.STD=dobra di Sao Tom\u00e9 e Principe
+currenciesDisplayName.WST=tala della Samoa occidentale
+currenciesDisplayName.KHR=riel cambogiano
+currenciesDisplayName.DOP=peso dominicano
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BOV=mvdol boliviano
+currenciesDisplayName.MTP=sterlina maltese
+currenciesDisplayName.USS=dollaro statunitense (same day)
+currenciesDisplayName.BOP=peso boliviano
+currenciesDisplayName.CUP=peso cubano
+currenciesDisplayName.MTL=lira maltese
+currenciesDisplayName.TMM=manat turkmeno
+currenciesDisplayName.USN=dollaro statunitense (next day)
+currenciesDisplayName.SGD=dollaro di Singapore
+currenciesDisplayName.NZD=dollaro neozelandese
+currenciesDisplayName.USD=dollaro statunitense
+currenciesDisplayName.BOB=boliviano
+currenciesDisplayName.HNL=lempira hoduregno
+currenciesDisplayName.ITL=lira italiana
+currenciesDisplayName.PAB=balboa di Panama
+currenciesDisplayName.GTQ=quetzal guatemalteco
+currenciesDisplayName.XXX=nessuna valuta
+currenciesDisplayName.AUD=dollaro australiano
+currenciesDisplayName.GHC=cedi del Ghana
+currenciesDisplayName.LAK=kip laotiano
+currenciesDisplayName.NAD=dollaro namibiano
+currenciesDisplayName.KGS=som kirghiso
+currenciesDisplayName.MGF=franco malgascio
+currenciesDisplayName.BBD=dollaro di Barbados
+currenciesDisplayName.CHF=franco svizzero
+currenciesDisplayName.MGA=ariary malgascio
+currenciesDisplayName.PYG=guarani del Paraguay
+currenciesDisplayName.PLZ=zloty polacco (1950-1995)
+currenciesDisplayName.YER=rial dello Yemen
+currenciesDisplayName.ATS=scellino austriaco
+currenciesDisplayName.ETB=birr etiopico
+currenciesDisplayName.BND=dollaro del Brunei
+currenciesDisplayName.EGP=sterlina egiziana
+currenciesDisplayName.JMD=dollaro giamaicano
+currenciesDisplayName.PLN=zloty polacco
+currenciesDisplayName.DZD=dinaro algerino
+currenciesDisplayName.ISK=corona islandese
+currenciesDisplayName.SRG=fiorino del Suriname
+currenciesDisplayName.LYD=dinaro libico
+currenciesDisplayName.BAM=marco convertibile Bosnia-Erzegovina
+currenciesDisplayName.BZD=dollaro Belize
+currenciesDisplayName.ESP=peseta spagnola
+currenciesDisplayName.KRW=won sudcoreano
+currenciesDisplayName.NLG=fiorino olandese
+currenciesDisplayName.MRO=ouguiya della Mauritania
+currenciesDisplayName.BAD=dinaro Bosnia-Erzegovina
+currenciesDisplayName.ZWD=dollaro dello Zimbabwe
+currenciesDisplayName.SEK=corona svedese
+currenciesDisplayName.CSK=corona forte cecoslovacca
+currenciesDisplayName.BYR=rublo bielorusso
+currenciesDisplayName.ESB=peseta spagnola account convertibile
+currenciesDisplayName.IRR=rial iraniano
+currenciesDisplayName.ESA=peseta spagnola account
+currenciesDisplayName.PKR=rupia del Pakistan
+currenciesDisplayName.BMD=dollaro delle Bermuda
+currenciesDisplayName.CSD=antico dinaro serbo
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
@@ -282,31 +300,32 @@ currenciesSymbol.FJD=F$
currenciesSymbol.UYU=Ur$
currenciesSymbol.BDT=Tk
currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
currenciesSymbol.DJF=DF
-currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.YER=YRl
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.DOP=RD$
currenciesSymbol.NAD=N$
currenciesSymbol.COP=Col$
+currenciesSymbol.ITL=\u20a4
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
currenciesSymbol.MYR=RM
-currenciesSymbol.SRG=Sf
-currenciesSymbol.BIF=Fbu
currenciesSymbol.GTQ=Q
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.SRG=Sf
currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.KMF=CF
currenciesSymbol.LYD=LD
@@ -317,31 +336,32 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
-currenciesSymbol.ANG=NA f.
currenciesSymbol.BZD=BZ$
currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.BGN=lev
-shortMonths=gen®feb®mar®apr®mag®giu®lug®ago®set®ott®nov®dic®®
-months=gennaio®febbraio®marzo®aprile®maggio®giugno®luglio®agosto®settembre®ottobre®novembre®dicembre®®
-shortWeekdays=®dom®lun®mar®mer®gio®ven®sab®
-weekdays=®domenica®luned\u00ec®marted\u00ec®mercoled\u00ec®gioved\u00ec®venerd\u00ec®sabato®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=aC®dC®
-ampms=m.®p.®
+shortMonths=gen\u00aefeb\u00aemar\u00aeapr\u00aemag\u00aegiu\u00aelug\u00aeago\u00aeset\u00aeott\u00aenov\u00aedic\u00ae\u00ae
+months=Gennaio\u00aeFebbraio\u00aeMarzo\u00aeAprile\u00aeMaggio\u00aeGiugno\u00aeLuglio\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aelun\u00aemar\u00aemer\u00aegio\u00aeven\u00aesab\u00ae
+weekdays=\u00aeDomenica\u00aeLuned\u00ec\u00aeMarted\u00ec\u00aeMercoled\u00ec\u00aeGioved\u00ec\u00aeVenerd\u00ec\u00aeSabato\u00ae
+eras=A.C.\u00aeD.C.\u00ae
+ampms=m.\u00aep.\u00ae
shortDateFormat=dd/MM/yy
-mediumDateFormat=dd/MMM/yy
+mediumDateFormat=dd/MMM/yyyy
longDateFormat=dd MMMM yyyy
fullDateFormat=EEEE d MMMM yyyy
-zoneStrings=Europe/Paris®CET®Ora Standard Centrale Europeo®CEST®Ora Legale Centrale Europeo®©Pacific/Honolulu®HST®Ora Standard Hawaii®HST®Ora Standard Hawaii®©America/Denver®MST®Ora Standard Mountain®MDT®Ora Legale Mountain®©Asia/Jerusalem®IST®Ora Standard Israele®IDT®Ora Legale Israele®©America/Anchorage®AST®Ora Standard Alaska®ADT®Ora Legale Alaska®©Africa/Casablanca®GMT®Ora Meridiano Greenwich®GMT®Ora Meridiano Greenwich®©America/Phoenix®MST®Ora Standard Mountain®MST®Ora Standard Mountain®©America/Los_Angeles®PST®Ora Standard Pacifico®PDT®Ora Legale Pacifico®©America/Chicago®CST®Ora Standard Centrale®CDT®Ora Legale Centrale®©America/Halifax®AST®Ora Standard Atlantico®ADT®Ora Legale Atlantico®©America/St_Johns®CNT®Ora Standard Newfoundland®CDT®Ora Legale Newfoundland®©America/New_York®EST®Ora Standard Orientale®EDT®Ora Legale Orientale®©Asia/Shanghai®CTT®Ora Standard Cina®CDT®Ora Standard Cina®©Asia/Tokyo®JST®Ora Standard Giappone®JST®Ora Standard Giappone®©Europe/Bucharest®EET®Ora Standard Europa Orientale®EEST®Ora Legale Europa Orientale®©America/Indianapolis®EST®Ora Standard Orientale®EST®Ora Standard Orientale®©
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=H:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Marshall_Islands\u00aeMarshall Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeShevchenko Time\u00ae\u00aeShevchenko Summer Time\u00ae\u00ae\u00a9Bangladesh\u00aeBangladesh Time\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeCentral Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeEastern Standard Time\u00ae\u00aeEastern Daylight Time\u00ae\u00ae\u00a9China\u00aeOra Standard Cina\u00aeCST (Cina)\u00aeOra Legale Cina\u00aeCDT (Cina)\u00ae\u00a9Uzbekistan\u00aeUzbekistan Time\u00ae\u00aeUzbekistan Summer Time\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeEast Kazakhstan Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeKarachi Time\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeTbilisi Time\u00ae\u00aeTbilisi Summer Time\u00ae\u00ae\u00a9Tashkent\u00aeTashkent Time\u00ae\u00aeTashkent Summer Time\u00ae\u00ae\u00a9Changbai\u00aeChangbai Time\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeFrunze Time\u00ae\u00aeFrunze Summer Time\u00ae\u00ae\u00a9Europe_Eastern\u00aeOra Standard Europa Orientale\u00ae\u00aeOra Legale Europa Orientale\u00ae\u00ae\u00a9Greenland_Eastern\u00aeEast Greenland Time\u00ae\u00aeEast Greenland Summer Time\u00ae\u00ae\u00a9Dacca\u00aeDacca Time\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00aeDushanbe Time\u00ae\u00aeDushanbe Summer Time\u00ae\u00ae\u00a9Chile\u00aeChile Time\u00ae\u00aeChile Summer Time\u00ae\u00ae\u00a9Europe_Central\u00aeOra Standard Europa Centrale\u00ae\u00aeOra Legale Europa Centrale\u00ae\u00ae\u00a9Acre\u00aeAcre Time\u00ae\u00aeAcre Summer Time\u00ae\u00ae\u00a9Arabian\u00aeArabian Standard Time\u00aeST arabo\u00aeArabian Daylight Time\u00aeADT arabo\u00ae\u00a9East_Timor\u00aeEast Timor Time\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeNew Zealand Standard Time\u00ae\u00aeNew Zealand Daylight Time\u00ae\u00ae\u00a9Africa_Southern\u00aeSouth Africa Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeKwajalein Time\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeMountain Standard Time\u00ae\u00aeMountain Daylight Time\u00ae\u00ae\u00a9Ecuador\u00aeEcuador Time\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Central\u00aeCentral Africa Time\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii\u00aeOra Standard Hawaii\u00ae\u00aeOra Legale Hawaii\u00ae\u00ae\u00a9Armenia\u00aeArmenia Time\u00aeAMT Armenia\u00aeArmenia Summer Time\u00aeAMST Armenia\u00ae\u00a9Samara\u00aeSamara Time\u00ae\u00aeSamara Summer Time\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii Standard Time\u00ae\u00aeAlaska-Hawaii Daylight Time\u00ae\u00ae\u00a9America_Central\u00aeCentral Standard Time\u00ae\u00aeCentral Daylight Time\u00ae\u00ae\u00a9Malaysia\u00aeMalaysia Time\u00ae\u00ae\u00ae\u00ae\u00a9Aqtobe\u00aeAqtobe Time\u00ae\u00aeAqtobe Summer Time\u00ae\u00ae\u00a9Argentina\u00aeArgentina Time\u00ae\u00aeArgentina Summer Time\u00ae\u00ae\u00a9Qyzylorda\u00aeQyzylorda Time\u00ae\u00aeQyzylorda Summer Time\u00ae\u00ae\u00a9GMT\u00aeGreenwich Mean Time\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00aeAtlantic Standard Time\u00ae\u00aeAtlantic Daylight Time\u00ae\u00ae\u00a9Korea\u00aeKorean Standard Time\u00ae\u00aeKorean Daylight Time\u00ae\u00ae\u00a9Ashkhabad\u00aeAshkhabad Time\u00ae\u00aeAshkhabad Summer Time\u00ae\u00ae\u00a9Australia_Western\u00aeAustralian Western Standard Time\u00ae\u00aeAustralian Western Daylight Time\u00ae\u00ae\u00a9Kizilorda\u00aeKizilorda Time\u00ae\u00aeKizilorda Summer Time\u00ae\u00ae\u00a9Yukon\u00aeYukon Standard Time\u00ae\u00aeYukon Daylight Time\u00ae\u00ae\u00a9Dutch_Guiana\u00aeDutch Guiana Time\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeYerevan Time\u00ae\u00aeYerevan Summer Time\u00ae\u00ae\u00a9Turkmenistan\u00aeTurkmenistan Time\u00ae\u00aeTurkmenistan Summer Time\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundland Standard Time\u00ae\u00aeNewfoundland Daylight Time\u00ae\u00ae\u00a9Africa_Eastern\u00aeEast Africa Time\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aePakistan Time\u00ae\u00aePakistan Summer Time\u00ae\u00ae\u00a9Europe_Western\u00aeWestern European Time\u00ae\u00aeWestern European Summer Time\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybyshev Time\u00ae\u00aeKuybyshev Summer Time\u00ae\u00ae\u00a9India\u00aeIndia Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeChamorro Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00aeWest Greenland Time\u00ae\u00aeWest Greenland Summer Time\u00ae\u00ae\u00a9Indonesia_Western\u00aeWestern Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeGalapagos Time\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00aeSuriname Time\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeMalaya Time\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBering Standard Time\u00aeBST Bering\u00aeBering Daylight Time\u00aeBDT Bering\u00ae\u00a9Georgia\u00aeGeorgia Time\u00ae\u00aeGeorgia Summer Time\u00ae\u00ae\u00a9Kyrgystan\u00aeKyrgystan Time\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeLanka Time\u00ae\u00ae\u00ae\u00ae\u00a9Argentina_Western\u00aeWestern Argentina Time\u00ae\u00ae\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeWest Kazakhstan Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeGuam Standard Time\u00aeGST Guam\u00ae\u00ae\u00ae\u00a9Amazon\u00aeAmazon Time\u00ae\u00aeAmazon Summer Time\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre and Miquelon Standard Time\u00ae\u00aePierre and Miquelon Daylight Time\u00ae\u00ae\u00a9Turkey\u00aeTurkey Time\u00ae\u00aeTurkey Summer Time\u00ae\u00ae\u00a9Macau\u00aeMacau Time\u00ae\u00aeMacau Summer Time\u00ae\u00ae\u00a9Lord_Howe\u00aeLord Howe Standard Time\u00ae\u00aeLord Howe Daylight Time\u00ae\u00ae\u00a9Mongolia\u00aeUlan Bator Time\u00ae\u00aeUlan Bator Summer Time\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeEastern Indonesia Time\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeGulf Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeKashgar Time\u00ae\u00ae\u00ae\u00ae\u00a9Brasilia\u00aeBrasilia Time\u00ae\u00aeBrasilia Summer Time\u00ae\u00ae\u00a9America_Pacific\u00aePacific Standard Time\u00ae\u00aePacific Daylight Time\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHawaii-Aleutian Standard Time\u00ae\u00aeHawaii-Aleutian Daylight Time\u00ae\u00ae\u00a9Samarkand\u00aeSamarkand Time\u00aeSAMT Samarkand\u00aeSamarkand Summer Time\u00aeSAMST Samarkand\u00ae\u00a9Australia_Central\u00aeAustralian Central Standard Time\u00ae\u00aeAustralian Central Daylight Time\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu Time\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeOra Standard Israele\u00ae\u00aeOra Legale Israele\u00ae\u00ae\u00a9Yekaterinburg\u00aeYekaterinburg Time\u00ae\u00aeYekaterinburg Summer Time\u00ae\u00ae\u00a9Sverdlovsk\u00aeSverdlovsk Time\u00ae\u00aeSverdlovsk Summer Time\u00ae\u00ae\u00a9Africa_Western\u00aeWest Africa Time\u00ae\u00aeWest Africa Summer Time\u00ae\u00ae\u00a9Samoa\u00aeSamoa Standard Time\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeBhutan Time\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeUral'sk Time\u00ae\u00aeUral'sk Summer Time\u00ae\u00ae\u00a9Alaska\u00aeOra Standard Alaska\u00ae\u00aeOra Legale Alaska\u00ae\u00ae\u00a9Urumqi\u00aeUrumqi Time\u00ae\u00ae\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk Time\u00ae\u00aeAktyubinsk Summer Time\u00ae\u00ae\u00a9North_Mariana\u00aeNorth Mariana Islands Time\u00ae\u00ae\u00ae\u00ae\u00a9Tajikistan\u00aeTajikistan Time\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aeChoibalsan Time\u00ae\u00aeChoibalsan Summer Time\u00ae\u00ae\u00a9Azores\u00aeAzores Time\u00ae\u00aeAzores Summer Time\u00ae\u00ae\u00a9Aqtau\u00aeAqtau Time\u00ae\u00aeAqtau Summer Time\u00ae\u00ae\u00a9Baku\u00aeBaku Time\u00ae\u00aeBaku Summer Time\u00ae\u00ae\u00a9Australia_Eastern\u00aeAustralian Eastern Standard Time\u00ae\u00aeAustralian Eastern Daylight Tim\u00ae\u00ae\u00a9Greenland_Central\u00aeCentral Greenland Time\u00ae\u00aeCentral Greenland Summer Time\u00ae\u00ae\u00a9Japan\u00aeOra Standard Giappone\u00ae\u00aeOra Legale Giappone\u00ae\u00ae\u00a9Borneo\u00aeBorneo Time\u00ae\u00aeBorneo Summer Time\u00ae\u00ae\u00a9
territories.TL=Timor Est
territories.TK=Tokelau
territories.TJ=Tagikistan
@@ -364,10 +384,13 @@ territories.GN=Guinea
territories.GM=Gambia
territories.GL=Groenlandia
territories.SV=El Salvador
-territories.ST=S\u00e3o Tom\u00e9 e Pr\u00edncipe
+territories.062=Asia centro-meridionale
+territories.ST=Sao Tom\u00e9 e Pr\u00edncipe
territories.GI=Gibilterra
+territories.061=Polinesia
territories.GH=Ghana
territories.SR=Suriname
+territories.GG=Guernsey
territories.GF=Guiana Francese
territories.GE=Georgia
territories.SO=Somalia
@@ -389,31 +412,41 @@ territories.SB=Isole Solomon
territories.SA=Arabia Saudita
territories.FR=Francia
territories.FO=Isole Faroe
+territories.057=Regione Micronesiana
territories.FM=Micronesia
territories.RW=Ruanda
+territories.054=Melanesia
territories.FK=Isole Falkland
+territories.053=Australia e Nuova Zelanda
territories.RU=Federazione Russa
territories.FJ=Figi
territories.FI=Finlandia
+territories.RS=Serbia
territories.RO=Romania
territories.RE=R\u00e9union
territories.ET=Etiopia
territories.ES=Spagna
territories.ER=Eritrea
+territories.QU=Unione Europea
territories.EH=Sahara Occidentale
territories.EG=Egitto
territories.EE=Estonia
+territories.QO=Oceania lontana
territories.EC=Ecuador
territories.DZ=Algeria
territories.QA=Qatar
+territories.039=Europa del Sud
territories.DO=Repubblica Dominicana
territories.PY=Paraguay
territories.DM=Dominica
+territories.035=Asia sudorientale
territories.PW=Palau
+territories.034=Asia del Sud
territories.DK=Danimarca
territories.DJ=Gibuti
territories.PT=Portogallo
territories.PS=Palestina
+territories.030=Asia orientale
territories.PR=Portorico
territories.DE=Germania
territories.PN=Pitcairn
@@ -432,19 +465,22 @@ territories.PA=Panama
territories.CU=Cuba
territories.CS=Serbia e Montenegro
territories.CR=Costa Rica
+territories.029=Caraibi
territories.CO=Colombia
territories.CN=Cina
territories.CM=Camerun
territories.CL=Cile
territories.CK=Isole Cook
+territories.021=America del Nord
territories.CI=Costa d\u2019Avorio
territories.CH=Svizzera
territories.CG=Congo
territories.CF=Repubblica Centrafricana
territories.CD=Repubblica Democratica del Congo
-territories.CC=Isole Cocos (Keeling)
+territories.CC=Isole Cocos
territories.OM=Oman
territories.CA=Canada
+territories.419=America Latina e Caraibi
territories.BZ=Belize
territories.BY=Bielorussia
territories.BW=Botswana
@@ -452,19 +488,28 @@ territories.BV=Isola Bouvet
territories.BT=Bhutan
territories.BS=Bahamas
territories.BR=Brasile
+territories.019=Americhe
+territories.018=Africa del Sud
territories.NZ=Nuova Zelanda
+territories.017=Africa centrale
territories.BO=Bolivia
territories.BN=Brunei
+territories.015=Africa del Nord
territories.BM=Bermuda
+territories.014=Africa orientale
+territories.013=America centrale
territories.NU=Niue
territories.BJ=Benin
+territories.011=Africa occidentale
territories.BI=Burundi
+territories.172=Comunit\u00e0 di Stati Indipendenti
territories.BH=Bahrein
territories.NR=Nauru
territories.BG=Bulgaria
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgio
+territories.ZZ=regione non valida o sconosciuta
territories.NO=Norvegia
territories.BD=Bangladesh
territories.BB=Barbados
@@ -476,6 +521,7 @@ territories.NG=Nigeria
territories.NF=Isola Norfolk
territories.AZ=Azerbaigian
territories.NE=Niger
+territories.AX=Isole Aland
territories.NC=Nuova Caledonia
territories.AW=Aruba
territories.ZM=Zambia
@@ -485,45 +531,55 @@ territories.AT=Austria
territories.AS=Samoa Americane
territories.AR=Argentina
territories.AQ=Antartide
+territories.009=Oceania
territories.MZ=Mozambico
territories.AO=Angola
-territories.MY=Malaysia
+territories.MY=Malesia
territories.AN=Antille Olandesi
territories.MX=Messico
territories.AM=Armenia
+territories.005=America del Sud
territories.MW=Malawi
territories.AL=Albania
territories.MV=Maldive
+territories.003=Nord America
territories.ZA=Sudafrica
-territories.MU=Maurizio
+territories.MU=Mauritius
+territories.002=Africa
territories.MT=Malta
territories.AI=Anguilla
+territories.001=Mondo
territories.MS=Montserrat
territories.MR=Mauritania
territories.AG=Antigua e Barbuda
-territories.AF=Afghanistan
territories.MQ=Martinica
-territories.AE=Emirati Arabi Uniti
+territories.AF=Afghanistan
territories.MP=Isole Marianne Settentrionali
+territories.AE=Emirati Arabi Uniti
+territories.MO=Macao
territories.AD=Andorra
-territories.MO=Regione Amministrativa Speciale di Macao, Cina
territories.MN=Mongolia
territories.MM=Myanmar
territories.ML=Mali
-territories.MK=Macedonia, Repubblica
+territories.MK=Repubblica di Macedonia
territories.YT=Mayotte
territories.MH=Isole Marshall
territories.MG=Madagascar
+territories.ME=Montenegro
territories.MD=Moldavia
territories.MC=Monaco
territories.MA=Marocco
territories.YE=Yemen
territories.LY=Libia
territories.LV=Lettonia
+territories.155=Europa occidentale
territories.LU=Lussemburgo
+territories.154=Europa del Nord
territories.LT=Lituania
territories.LS=Lesotho
territories.LR=Liberia
+territories.151=Europa orientale
+territories.150=Europa
territories.LK=Sri Lanka
territories.LI=Liechtenstein
territories.LC=Saint Lucia
@@ -532,6 +588,9 @@ territories.LA=Laos
territories.KZ=Kazakistan
territories.KY=Isole Cayman
territories.KW=Kuwait
+territories.145=Asia occidentale
+territories.143=Asia centrale
+territories.142=Asia
territories.KR=Corea del Sud
territories.KP=Corea del Nord
territories.KN=Saint Kitts e Nevis
@@ -546,20 +605,22 @@ territories.JP=Giappone
territories.JO=Giordania
territories.JM=Giamaica
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=Isole Vergini Americane
territories.VG=Isole Vergini Britanniche
territories.VE=Venezuela
territories.VC=Saint Vincent e Grenadines
-territories.VA=Vaticano
+territories.VA=Santa Sede (Citt\u00e0 del Vaticano)
territories.IT=Italia
territories.IS=Islanda
territories.IR=Iran
territories.IQ=Iraq
territories.UZ=Uzbekistan
-territories.IO=Territorio Britannico dell\u2019Oceano Indiano
+territories.IO=Territori Britannici dell'Oceano Indiano
territories.UY=Uruguay
territories.IN=India
+territories.IM=Isola di Man
territories.IL=Israele
territories.US=Stati Uniti
territories.IE=Irlanda
@@ -572,64 +633,70 @@ territories.HT=Haiti
territories.HR=Croazia
territories.TZ=Tanzania
territories.HN=Honduras
-territories.HM=Isole Heard ed Isole McDonald
+territories.HM=Isole Heard e McDonald
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=Regione Amministrativa Speciale di Hong Kong, Cina
+territories.HK=Hong Kong
territories.TT=Trinidad e Tobago
territories.TR=Turchia
territories.TO=Tonga
territories.TN=Tunisia
territories.TM=Turkmenistan
-languages.akk=accado
languages.gwi=gwich\u02bcin
+languages.akk=accado
languages.eka=ekajuka
languages.xh=xosa
languages.sux=sumero
languages.sus=susu
languages.mis=lingue diverse
languages.loz=lozi
-languages.tog=tonga (nyasa)
+languages.tog=nyasa del Tonga
languages.pon=ponape
languages.min=menangkabau
languages.suk=sukuma
languages.wo=volof
+languages.lol=lolo bantu
languages.kut=kutenai
-languages.lol=lolo (bantu)
languages.mic=micmac
languages.wa=vallone
languages.kum=kumyk
languages.zap=zapotec
-languages.cus=cuscitica (altra lingua)
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=lingua cuscitica
languages.jbo=lojban
-languages.vo=volap\u00fck
+languages.doi=dogri
+languages.zza=zaza
+languages.vo=volapuk
languages.oto=lingue otomi
languages.vi=vietnamita
+languages.vai=vai
languages.rar=rarotonga
languages.ve=venda
languages.rap=rapanui
languages.raj=rajasthani
-languages.ota=turco ottomano (1500-1928)
+languages.ota=turco ottomano
languages.nzi=nzima
languages.nap=napoletano
languages.uz=usbeco
languages.uga=ugaritico
languages.tmh=tamashek
-languages.nai=indiano del Nord America (altra lingua)
+languages.nai=lingua indiana del Nord America
languages.nah=nahuatl
languages.ur=urdu
languages.fat=fanti
languages.uk=ucraino
-languages.egy=egiziano (antico)
+languages.egy=egiziano antico
+languages.zxx=Nessun contenuto linguistico
languages.ug=uigurico
-languages.ssa=nilo-sahariana (altra lingua)
-languages.bat=baltica (altra lingua)
-languages.mga=irlandese medio (900-1200)
+languages.fan=fang
+languages.ssa=lingua nilo-sahariana
+languages.mga=irlandese medio
+languages.bat=lingua baltica
languages.nyo=nyoro
languages.bas=basa
languages.nyn=nyankole
languages.nym=nyamwezi
+languages.gsw=tedesco svizzero
languages.hmn=hmong
languages.ban=balinese
languages.osa=osage
@@ -639,11 +706,13 @@ languages.bai=lingue bamileke
languages.tw=ci
languages.srr=serer
languages.tli=tlingit
+languages.tlh=klingon
languages.tt=tatarico
languages.ts=tsonga
+languages.srn=sranan tongo
languages.bad=banda
languages.tr=turco
-languages.to=tonga (Isole Tonga)
+languages.to=tonga
languages.tn=tswana
languages.tl=tagalog
languages.tk=turcomanno
@@ -653,9 +722,10 @@ languages.kru=kurukh
languages.tg=tagicco
languages.byn=blin
languages.te=telugu
-languages.csb=kashubian
languages.kro=kru
+languages.csb=kashubian
languages.ta=tamil
+languages.krl=careliano
languages.tkl=tokelau
languages.efi=efik
languages.sw=swahili
@@ -667,19 +737,19 @@ languages.ss=swati
languages.sr=serbo
languages.sq=albanese
languages.men=mende
-languages.crp=creola e Pidgins (altra lingua)
+languages.crp=creolo o pidgin
languages.so=somalo
languages.afh=afrihili
languages.sn=shona
languages.sm=samoano
languages.sl=sloveno
-languages.grc=greco, antico (fino al 1453)
+languages.grc=greco antico
languages.sk=slovacco
languages.grb=gerbo
languages.si=singalese
languages.sh=serbo-croato
-languages.afa=afro-asiatica (altra lingua)
-languages.crh=turco crimeo; tatar crimeo
+languages.crh=turco crimeo
+languages.afa=lingua afroasiatica
languages.sg=sango
languages.se=sami del nord
languages.sd=sindhi
@@ -687,29 +757,34 @@ languages.udm=udmurt
languages.sc=sardo
languages.sa=sanscrito
languages.rw=kinyarwanda
+languages.nwc=newari classico
languages.ru=russo
languages.mdr=mandar
languages.ro=rumeno
languages.rn=rundi
languages.rm=lingua rhaeto-romance
+languages.fr_CH=francese svizzero
languages.mdf=moksha
+languages.tiv=tiv
+languages.fr_CA=francese canadese
languages.ady=adyghe
languages.zun=zuni
languages.kpe=kpelle
languages.qu=quechua
languages.tig=tigre
languages.son=songhai
-languages.cpp=creolo e pidgins, basato sul portoghese (altra lingua)
+languages.cpp=creolo o pidgin basati sul portoghese
+languages.rup=arumeno
languages.sog=sogdiano
languages.ada=adangme
-languages.cpf=creolo e pidgins, basato sul francese (altra lingua)
+languages.kos=kosraean
languages.hit=hittite
-languages.kos=Kosraean
-languages.cpe=creolo e pidgins, basato sull\u2019inglese (altra lingua)
+languages.cpf=creolo o pidgin basati sul francese
+languages.cpe=creolo o pidgin basati sull'inglese
languages.him=himachali
-languages.got=gotico
-languages.hil=hiligayna
languages.kok=konkani
+languages.hil=hiligayna
+languages.got=gotico
languages.gor=gorontalo
languages.gon=gondi
languages.din=dinca
@@ -718,16 +793,18 @@ languages.pt=portoghese
languages.ps=pashto
languages.fur=friulano
languages.phn=fenicio
-languages.goh=tedesco, antico alto (ca.750-1050)
+languages.de_CH=alto tedesco svizzero
+languages.goh=tedesco antico alto
languages.snk=soninke
languages.cop=copto
-languages.yap=Yapese
+languages.yap=yapese
languages.ach=acioli
-languages.yao=yao (bantu)
-languages.phi=filippino (altra lingua)
+languages.yao=yao
+languages.phi=lingua filippina
languages.pl=polacco
languages.ace=accinese
languages.pi=pali
+languages.pt_PT=portoghese del Portogallo
languages.pa=punjabi
languages.bug=bugi
languages.iba=iban
@@ -740,7 +817,7 @@ languages.map=austronesiano
languages.or=oriya
languages.man=mandingo
languages.smj=sami lule
-languages.smi=lingue sami (altra lingua)
+languages.smi=lingua sami
languages.mak=makasar
languages.om=oromo
languages.mai=maithili
@@ -748,53 +825,59 @@ languages.oj=ojibwa
languages.mag=magahi
languages.mad=madurese
languages.sma=sami del sud
-languages.oc=occitano (post 1500); provenzale
+languages.oc=occitano
languages.nso=sotho del nord
languages.btk=batak
languages.myv=erzya
+languages.es_ES=spagnolo della Spagna
+languages.de_AT=tedesco austriaco
languages.dgr=dogrib
-languages.ny=nyanja; chichewa; chewa
+languages.ny=nyanja
languages.myn=lingue maya
languages.nv=navajo
languages.kmb=kimbundu
languages.nr=ndebele del sud
-languages.gmh=tedesco, medio alto (ca.1050-1500)
+languages.gmh=tedesco medio alto
languages.no=norvegese
languages.nn=norvegese nynorsk
languages.nl=olandese
+languages.root=root
languages.ng=ndonga
-languages.sla=slavo (altra lingua)
+languages.sla=lingua slava
languages.ne=nepalese
languages.nd=ndebele del nord
languages.cmc=lingue chamic
languages.tet=tetum
-languages.nb=norvegese bokm\u00e5l
+languages.nb=norvegese bokmal
languages.na=nauru
languages.ter=tereno
languages.tem=temne
languages.my=birmano
languages.lez=lezghian
languages.mt=maltese
-languages.peo=antico persiano (600-400 A.C.)
+languages.peo=persiano antico
languages.ms=malese
+languages.frr=frisone settentrionale
languages.mr=marathi
-languages.fro=francese, antico (842-ca.1400)
+languages.fro=francese antico
languages.mo=moldavo
languages.mn=mongolo
-languages.frm=francese, medio (ca.1400-1600)
+languages.frm=francese medio
languages.ml=malayalam
languages.jrb=giudeo arabo
languages.mk=macedone
languages.mi=maori
languages.mh=marshallese
languages.mg=malgascio
+languages.nqo=n'ko
languages.mwr=marwari
languages.bra=braj
-languages.lv=lettone
+languages.mwl=mirandese
languages.den=slave
+languages.lv=lettone
languages.lu=luba-katanga
-languages.lt=lituano
languages.del=delaware
+languages.lt=lituano
languages.lo=lao
languages.ln=lingala
languages.li=limburgese
@@ -804,7 +887,7 @@ languages.lb=lussemburghese
languages.la=latino
languages.jpr=giudeo persiano
languages.vot=voto
-languages.sit=sino-tibetano (altra lingua)
+languages.sit=lingua sino-tibetana
languages.ky=kirghiso
languages.kw=cornico
languages.kv=komi
@@ -816,6 +899,7 @@ languages.awa=awadhi
languages.ko=coreano
languages.kn=kannada
languages.km=khmer
+languages.en_GB=inglese britannico
languages.kl=kalaallisut
languages.kk=kazako
languages.rom=romani
@@ -826,9 +910,9 @@ languages.kg=kongo
languages.non=norse antico
languages.ka=georgiano
languages.mus=creek
-languages.roa=lingua romanza (altra lingua)
+languages.roa=lingua romanza
languages.nog=nogai
-languages.mun=munda (altra lingua)
+languages.mun=lingua munda
languages.mul=multilingua
languages.jv=giavanese
languages.gil=gilbertese
@@ -838,46 +922,46 @@ languages.xal=kalmyk
languages.aus=lingue australiane
languages.kho=khotanese
languages.ja=giapponese
-languages.khi=khoisan (altra lingua)
+languages.khi=lingua khoisan
languages.pau=palau
languages.chy=cheyenne
-languages.tai=tailandese (altra lingua)
+languages.tai=lingua tailandese
languages.iu=inuktitut
languages.pap=papiamento
languages.it=italiano
languages.sgn=lingue sign
-languages.kha=khasi
languages.is=islandese
+languages.kha=khasi
languages.chr=cherokee
languages.pam=pampanga
languages.pal=pahlavi
languages.chp=chipewyan
-languages.cho=choctaw
languages.io=ido
+languages.cho=choctaw
languages.chn=gergo chinook
languages.chm=mari
languages.tyv=tuvinian
languages.bnt=bantu
languages.pag=pangasinan
-languages.chk=chuukese
languages.ik=inupiak
-languages.haw=hawaiano
+languages.chk=chuukese
languages.ii=sichuan yi
+languages.haw=hawaiano
languages.lam=lamba
-languages.chg=ciagataico
languages.ig=igbo
-languages.sga=irlandese, antico (fino al \u2019900)
-languages.paa=papuano-australiano (altra lingua)
+languages.chg=ciagataico
+languages.sga=irlandese antico
+languages.paa=lingua papuana
languages.ie=interlingue
languages.id=indonesiano
languages.lah=lahnda
-languages.chb=chibcha
languages.day=dayak
+languages.chb=chibcha
languages.ia=interlingua
languages.lad=ladino
-languages.dar=dargwa
-languages.hai=haida
languages.hz=herero
+languages.hai=haida
+languages.dar=dargwa
languages.hy=armeno
languages.ath=lingue athabaska
languages.hu=ungherese
@@ -889,29 +973,31 @@ languages.hi=hindi
languages.dyu=diula
languages.he=ebraico
languages.ast=asturiano
+languages.kfo=kfo
languages.ha=haussa
languages.wen=sorabo
languages.gv=manx
languages.gu=gujarati
-languages.sem=semitico (altra lingua)
+languages.sem=lingua semitica
languages.sel=selkup
languages.iro=lingue irochesi
languages.gn=guarana
languages.gl=galiziano
+languages.en_CA=inglese canadese
languages.arw=aruaco
-languages.gd=gaelico scozzese
-languages.art=artificiale (altra lingua)
languages.gez=geez
+languages.art=lingua artificiale
+languages.gd=gaelico scozzese
languages.ira=iraniana
languages.ga=irlandese
languages.arp=arapaho
languages.arn=araucano
languages.fy=frisone
languages.bla=siksika
-languages.gem=germanica (altra lingua)
+languages.gem=lingua germanica
languages.ypk=lingue yupik
-languages.fr=francese
languages.arc=aramaico
+languages.fr=francese
languages.fo=faroese
languages.cel=celtica altra lingua
languages.fj=figiano
@@ -920,30 +1006,40 @@ languages.ff=fulah
languages.tvl=tuvalu
languages.ceb=cebuano
languages.fa=persiano
+languages.en_AU=inglese australiano
+languages.zh_Hans=cinese semplificato
+languages.zh_Hant=cinese tradizionale
languages.eu=basco
languages.sco=scozzese
languages.et=estone
+languages.scn=siciliano
languages.es=spagnolo
languages.eo=esperanto
languages.en=inglese
languages.el=greco
-languages.tut=turco-tatarica (altra lingua)
+languages.tut=lingua altaica
languages.niu=niue
languages.tup=lingue tupi
languages.ee=ewe
languages.tum=tumbuka
+languages.nl_BE=fiammingo belga
+languages.es_419=spagnolo latinoamericano
languages.mos=mossi
languages.dz=dzongkha
-languages.nic=niger - cordofan (altra lingua)
-languages.dv=divehi
-languages.fiu=ugrofinnica (altra lingua)
+languages.kcg=tyap
+languages.nic=lingua niger-cordofan
languages.lus=lushai
+languages.fiu=lingua ungrofinnica
+languages.dv=divehi
+languages.nia=nias
languages.moh=mohawk
-languages.luo=luo (Kenia e Tanzania)
+languages.luo=luo
languages.lun=lunda
languages.apa=lingue apache
+languages.fil=filippino
languages.lui=luiseno
languages.hup=hupa
+languages.cch=atsam
languages.bin=bini
languages.de=tedesco
languages.lua=luba-lulua
@@ -952,15 +1048,15 @@ languages.was=washo
languages.und=lingua imprecisata
languages.war=waray
languages.da=danese
-languages.dum=olandese, medio (ca. 1050-1350)
+languages.dum=olandese medio
languages.wal=walamo
languages.mno=manobo
languages.wak=lingue wakash
languages.sat=santali
languages.cy=gallese
languages.sas=sasak
-languages.cv=chuvash
languages.kbd=kabardia
+languages.cv=chuvash
languages.cu=slavo della Chiesa
languages.mni=manipuri
languages.cs=ceco
@@ -969,57 +1065,60 @@ languages.cr=cree
languages.sal=lingue salish
languages.dua=duala
languages.co=corso
-languages.sai=indiano del Sud America (altra lingua)
+languages.sai=lingua indiana del Sud America
languages.mnc=manchu
languages.sah=yakut
-languages.gba=gbaya
-languages.inh=ingush
languages.kaw=kawi
+languages.inh=ingush
+languages.gba=gbaya
languages.sad=sandawe
languages.ch=chamorro
+languages.ine=lingua indoeuropea
languages.bho=bhojpuri
-languages.ine=indoeuropea (altra lingua)
-languages.enm=inglese, medio (1100-1500)
-languages.ce=ceceno
-languages.inc=indiana (altra lingua)
+languages.enm=inglese medio
languages.kar=karen
+languages.inc=lingua indiana
+languages.ce=ceceno
languages.gay=gayo
languages.ca=catalano
languages.umb=mbundu
languages.syr=siriaco
languages.kam=kamba
+languages.anp=angika
languages.tsi=tsimshian
-languages.ang=inglese, antico (ca.450-1100)
-languages.cau=caucasica (altra lingua)
+languages.kaj=kaj
+languages.ang=inglese antico
languages.kac=kachin
+languages.cau=lingua caucasica
languages.kab=kabyle
-languages.bs=bosniaco
languages.kaa=kara-kalpak
-languages.br=bretone
+languages.bs=bosniaco
languages.car=caribico
+languages.br=bretone
languages.bo=tibetano
languages.bn=bengalese
languages.bm=bambara
languages.gaa=ga
+languages.cai=lingua indiana dell'America Centrale
languages.bi=bislama
-languages.cai=indiana dell\u2019America Centrale (altra lingua)
languages.bh=bihari
languages.bg=bulgaro
languages.be=bielorusso
+languages.pt_BR=portoghese del Brasile
languages.cad=caddo
languages.ba=baschiro
languages.zu=zulu
languages.zen=zenaga
-languages.pro=provenzale, antico (fino al 1500)
+languages.pro=provenzale antico
languages.hsb=alto sorabo
languages.az=azerbaigiano
languages.ay=aymara
languages.av=avaro
languages.as=assamese
-languages.ar=arabo
languages.dsb=basso sorabo
-languages.elx=elamitico
+languages.ar=arabo
languages.ilo=ilocano
+languages.elx=elamitico
languages.zh=cinese
languages.an=aragonese
languages.pra=pracrito
@@ -1027,19 +1126,34 @@ languages.am=amarico
languages.new=newari
languages.ak=akan
languages.za=zhuang
+languages.en_US=inglese americano
languages.af=afrikaans
languages.ae=avestan
+languages.alt=altai meridionale
languages.ab=abkhazian
languages.aa=afar
languages.yo=yoruba
languages.alg=lingue algonchine
languages.ale=aleuto
-languages.mkh=mon-khmer (altra lingua)
+languages.mkh=lingua mon-khmer
languages.yi=yiddish
-languages.dra=dravidica (altra lingua)
+languages.dra=lingua dravidica
languages.ber=berbero
-languages.nds=basso tedesco; basso sassone
+languages.nds=basso tedesco
languages.bem=wemba
languages.bej=begia
languages.tpi=tok pisin
-variants.REVISED=Modificato
+variants.BOONT=boontling
+variants.REVISED=ortografia revisionata
+variants.AREVELA=armeno orientale
+variants.POSIX=computer
+variants.POLYTON=politonico
+variants.FONIPA=fonetica IPA
+variants.1996=ortografia tedesca del 1996
+variants.SAAHO=saho
+variants.AREVMDA=armeno occidentale
+variants.1901=ortografia tradizionale tedesca
+variants.MONOTON=monotonico
+variants.FONUPA=fonetica UPA
+variants.ROZAJ=resiano
+variants.NEDIS=dialetto del Natisone
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_it_CH.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_it_CH.properties
index e1cde66..857d12e 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_it_CH.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_it_CH.properties
@@ -7,9 +7,9 @@
decimalSeparator=.
groupingSeparator='
-currencyFormat=\u00a4 #,##0.00;\u00a4-#,##0.00
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4-#,##0.00
shortDateFormat=dd.MM.yy
-mediumDateFormat=d-MMM-yy
+mediumDateFormat=d-MMM-yyyy
longDateFormat=d MMMM yyyy
fullDateFormat=EEEE, d MMMM yyyy
-fullTimeFormat=HH.mm:ss' h' z
+fullTimeFormat=HH.mm:ss 'h' z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_iu.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_iu.properties
index 0570520..a615fc8 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_iu.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_iu.properties
@@ -5,8 +5,18 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortMonths=\u152d\u14d0\u14c4\u140a\u14d5®\u1555\u155d\u1557\u140a\u14d5®\u14ab\u1466\u14ef®\u140a\u1403\u1449\u1433\u14d7®\u14aa\u1403®\u152b\u14c2®\u152a\u14da\u1403®\u140a\u1405\u14a1\u148d\u14ef®\u14f0\u1466\u144f\u155d\u1559®\u1406\u1466\u1451\u155d\u1559®\u14c5\u1559\u1403\u155d\u1559®\u144f\u14f0\u155d\u1559®®
-months=\u152d\u14d0\u14c4\u140a\u14d5®\u1555\u155d\u1557\u140a\u14d5®\u14ab\u1466\u14ef®\u140a\u1403\u1449\u1433\u14d7®\u14aa\u1403®\u152b\u14c2®\u152a\u14da\u1403®\u140a\u1405\u14a1\u148d\u14ef®\u14f0\u1466\u144f\u155d\u1559®\u1406\u1466\u1451\u155d\u1559®\u14c5\u1559\u1403\u155d\u1559®\u144f\u14f0\u155d\u1559®®
-shortWeekdays=®\u14c8\u1466\u14f0\u1591\u152d®\u14c7\u14a1\u1490\u153e\u152d\u1405®\u14c7\u14a1\u1490\u153e\u152d\u1405\u14d5\u1585\u146d®\u1431\u1593\u1466\u14ef\u1585®\u14ef\u1455\u14bb\u14a5\u1585®\u1455\u14ea\u14d5\u1550\u14a5\u1585®\u14c8\u1466\u14f0\u1591\u152d\u14d5\u1585\u157f®
-weekdays=®\u14c8\u1466\u14f0\u1591\u152d®\u14c7\u14a1\u1490\u153e\u152d\u1405®\u14c7\u14a1\u1490\u153e\u152d\u1405\u14d5\u1585\u146d®\u1431\u1593\u1466\u14ef\u1585®\u14ef\u1455\u14bb\u14a5\u1585®\u1455\u14ea\u14d5\u1550\u14a5\u1585®\u14c8\u1466\u14f0\u1591\u152d\u14d5\u1585\u157f®
+shortMonths=\u152d\u14d0\u14c4\u140a\u14d5\u00ae\u1555\u155d\u1557\u140a\u14d5\u00ae\u14ab\u1466\u14ef\u00ae\u140a\u1403\u1449\u1433\u14d7\u00ae\u14aa\u1403\u00ae\u152b\u14c2\u00ae\u152a\u14da\u1403\u00ae\u140a\u1405\u14a1\u148d\u14ef\u00ae\u14f0\u1466\u144f\u155d\u1559\u00ae\u1406\u1466\u1451\u155d\u1559\u00ae\u14c5\u1559\u1403\u155d\u1559\u00ae\u144f\u14f0\u155d\u1559\u00ae\u00ae
+months=\u152d\u14d0\u14c4\u140a\u14d5\u00ae\u1555\u155d\u1557\u140a\u14d5\u00ae\u14ab\u1466\u14ef\u00ae\u140a\u1403\u1449\u1433\u14d7\u00ae\u14aa\u1403\u00ae\u152b\u14c2\u00ae\u152a\u14da\u1403\u00ae\u140a\u1405\u14a1\u148d\u14ef\u00ae\u14f0\u1466\u144f\u155d\u1559\u00ae\u1406\u1466\u1451\u155d\u1559\u00ae\u14c5\u1559\u1403\u155d\u1559\u00ae\u144f\u14f0\u155d\u1559\u00ae\u00ae
+shortWeekdays=\u00ae\u14c8\u1466\u14f0\u1591\u152d\u00ae\u14c7\u14a1\u1490\u153e\u152d\u1405\u00ae\u14c7\u14a1\u1490\u153e\u152d\u1405\u14d5\u1585\u146d\u00ae\u1431\u1593\u1466\u14ef\u1585\u00ae\u14ef\u1455\u14bb\u14a5\u1585\u00ae\u1455\u14ea\u14d5\u1550\u14a5\u1585\u00ae\u14c8\u1466\u14f0\u1591\u152d\u14d5\u1585\u157f\u00ae
+weekdays=\u00ae\u14c8\u1466\u14f0\u1591\u152d\u00ae\u14c7\u14a1\u1490\u153e\u152d\u1405\u00ae\u14c7\u14a1\u1490\u153e\u152d\u1405\u14d5\u1585\u146d\u00ae\u1431\u1593\u1466\u14ef\u1585\u00ae\u14ef\u1455\u14bb\u14a5\u1585\u00ae\u1455\u14ea\u14d5\u1550\u14a5\u1585\u00ae\u14c8\u1466\u14f0\u1591\u152d\u14d5\u1585\u157f\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
languages.iu=\u1403\u14c4\u1483\u144e\u1450\u1466 \u144e\u144e\u154b\u1405\u14ef\u1585
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ja.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ja.properties
index 3dfc726..cdbda61 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ja.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ja.properties
@@ -5,151 +5,170 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
currenciesDisplayName.YDD=\u30a4\u30a8\u30e1\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
-currenciesDisplayName.TWD=\u65b0\u53f0\u6e7e\u30c9\u30eb
currenciesDisplayName.KES=\u30b1\u30cb\u30a2 \u30b7\u30ea\u30f3\u30b0
-currenciesDisplayName.BYB=\u30d9\u30e9\u30eb\u30fc\u30b7 \u30eb\u30fc\u30d6\u30eb (BYB\u30011994-1999)
+currenciesDisplayName.TWD=\u65b0\u53f0\u6e7e\u30c9\u30eb
currenciesDisplayName.LKR=\u30b9\u30ea\u30e9\u30f3\u30ab \u30eb\u30d4\u30fc
-currenciesDisplayName.RWF=\u30eb\u30ef\u30f3\u30c0 \u30d5\u30e9\u30f3
+currenciesDisplayName.BYB=\u30d9\u30e9\u30eb\u30fc\u30b7 \u30eb\u30fc\u30d6\u30eb (1994-1999)
currenciesDisplayName.TJS=\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3 \u30bd\u30e2\u30cb
-currenciesDisplayName.SDP=\u30b9\u30fc\u30c0\u30f3 \u30dd\u30f3\u30c9
-currenciesDisplayName.TJR=\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3 \u30eb\u30fc\u30d6\u30eb
+currenciesDisplayName.RWF=\u30eb\u30ef\u30f3\u30c0 \u30d5\u30e9\u30f3
currenciesDisplayName.ERN=\u30a8\u30ea\u30c8\u30ea\u30a2 \u30ca\u30af\u30d5\u30a1
-currenciesDisplayName.AFN=\u30a2\u30d5\u30ac\u30cb\u30fc
+currenciesDisplayName.TJR=\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3 \u30eb\u30fc\u30d6\u30eb
+currenciesDisplayName.SDP=\u65e7\u30b9\u30fc\u30c0\u30f3 \u30dd\u30f3\u30c9
currenciesDisplayName.GRD=\u30ae\u30ea\u30b7\u30e3 \u30c9\u30e9\u30af\u30de
+currenciesDisplayName.AFN=\u30a2\u30d5\u30ac\u30cb\u30fc
currenciesDisplayName.IEP=\u30a2\u30a4\u30ea\u30c3\u30b7\u30e5 \u30dd\u30f3\u30c9
currenciesDisplayName.ARS=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3 \u30da\u30bd
-currenciesDisplayName.SDD=\u30b9\u30fc\u30c0\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
+currenciesDisplayName.SDG=\u30b9\u30fc\u30c0\u30f3 \u30dd\u30f3\u30c9
currenciesDisplayName.ARP=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3 \u30da\u30bd (1983-1985)
+currenciesDisplayName.SDD=\u30b9\u30fc\u30c0\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesDisplayName.GEL=\u30b0\u30eb\u30b8\u30a2 \u30e9\u30ea
-currenciesDisplayName.AFA=\u30a2\u30d5\u30ac\u30cb\u30fc (1927-2002)
currenciesDisplayName.GEK=\u30b0\u30eb\u30b8\u30a2 \u30af\u30fc\u30dd\u30f3 \u30e9\u30ea
+currenciesDisplayName.AFA=\u30a2\u30d5\u30ac\u30cb\u30fc (1927-2002)
currenciesDisplayName.CRC=\u30b3\u30b9\u30bf\u30ea\u30ab \u30b3\u30ed\u30f3
currenciesDisplayName.FKP=\u30d5\u30a9\u30fc\u30af\u30e9\u30f3\u30c9\uff08\u30de\u30eb\u30d3\u30ca\u30b9\uff09\u8af8\u5cf6 \u30dd\u30f3\u30c9
currenciesDisplayName.EEK=\u30a8\u30b9\u30c8\u30cb\u30a2 \u30af\u30eb\u30fc\u30f3
-currenciesDisplayName.HKD=\u9999\u6e2f\u30c9\u30eb
currenciesDisplayName.MDL=\u30e2\u30eb\u30c9\u30d0 \u30ec\u30a4
-currenciesDisplayName.ARA=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3 \u30a2\u30a5\u30b9\u30c8\u30e9\u30fc\u30eb
+currenciesDisplayName.HKD=\u9999\u6e2f\u30c9\u30eb
currenciesDisplayName.IQD=\u30a4\u30e9\u30af \u30c7\u30a3\u30ca\u30fc\u30eb
+currenciesDisplayName.ARA=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3 \u30a2\u30a5\u30b9\u30c8\u30e9\u30fc\u30eb
currenciesDisplayName.SCR=\u30bb\u30a4\u30b7\u30a7\u30eb \u30eb\u30d4\u30fc
currenciesDisplayName.VUV=\u30d0\u30cc\u30a2\u30c4 \u30d0\u30c4
-currenciesDisplayName.DKK=\u30c7\u30f3\u30de\u30fc\u30af \u30af\u30ed\u30fc\u30cd
currenciesDisplayName.KPW=\u5317\u671d\u9bae \u30a6\u30a9\u30f3
-currenciesDisplayName.GQE=\u8d64\u9053\u30ae\u30cb\u30a2 \u30ae\u30cb\u30fc
+currenciesDisplayName.DKK=\u30c7\u30f3\u30de\u30fc\u30af \u30af\u30ed\u30fc\u30cd
currenciesDisplayName.IDR=\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2 \u30eb\u30d4\u30a2
-currenciesDisplayName.LVR=\u30e9\u30c8\u30d3\u30a2 \u30eb\u30fc\u30d6\u30eb
+currenciesDisplayName.GQE=\u8d64\u9053\u30ae\u30cb\u30a2 \u30ae\u30cb\u30fc
currenciesDisplayName.SOS=\u30bd\u30de\u30ea\u30a2 \u30b7\u30ea\u30f3\u30b0
+currenciesDisplayName.LVR=\u30e9\u30c8\u30d3\u30a2 \u30eb\u30fc\u30d6\u30eb
+currenciesDisplayName.EQE=\u30a8\u30af\u30a6\u30a7\u30ec
currenciesDisplayName.AED=UAE \u30c7\u30a3\u30eb\u30cf\u30e0
-currenciesDisplayName.BWP=\u30dc\u30c4\u30ef\u30ca \u30d7\u30e9
currenciesDisplayName.LVL=\u30e9\u30c8\u30d3\u30a2 \u30e9\u30c3\u30c4
+currenciesDisplayName.BWP=\u30dc\u30c4\u30ef\u30ca \u30d7\u30e9
currenciesDisplayName.RUR=\u30ed\u30b7\u30a2 \u30eb\u30fc\u30d6\u30eb (1991-1998)
currenciesDisplayName.NIO=\u30cb\u30ab\u30e9\u30b0\u30a2 \u30b3\u30eb\u30c9\u30d0 \u30aa\u30ed
-currenciesDisplayName.ADP=\u30a2\u30f3\u30c9\u30e9 \u30da\u30bb\u30bf
-currenciesDisplayName.FJD=\u30d5\u30a3\u30b8\u30fc\u8af8\u5cf6 \u30c9\u30eb
+currenciesDisplayName.XTS=\u30c6\u30b9\u30c8\u7528\u901a\u8ca8\u30b3\u30fc\u30c9
currenciesDisplayName.MOP=\u30de\u30ab\u30aa \u30d1\u30bf\u30ab
+currenciesDisplayName.FJD=\u30d5\u30a3\u30b8\u30fc\u8af8\u5cf6 \u30c9\u30eb
+currenciesDisplayName.ADP=\u30a2\u30f3\u30c9\u30e9 \u30da\u30bb\u30bf
currenciesDisplayName.RUB=\u30ed\u30b7\u30a2 \u30eb\u30fc\u30d6\u30eb
currenciesDisplayName.CDF=\u30b3\u30f3\u30b4 \u30d5\u30e9\u30f3
currenciesDisplayName.NIC=\u30cb\u30ab\u30e9\u30b0\u30a2 \u30b3\u30eb\u30c9\u30d0
currenciesDisplayName.DJF=\u30b8\u30d6\u30c1 \u30d5\u30e9\u30f3
-currenciesDisplayName.ECV=\u30a8\u30af\u30a2\u30c9\u30eb UVC
-currenciesDisplayName.SBD=\u30bd\u30ed\u30e2\u30f3\u8af8\u5cf6 \u30c9\u30eb
currenciesDisplayName.UZS=\u30a6\u30ba\u30d9\u30ad\u30b9\u30bf\u30f3 \u30b9\u30e0
+currenciesDisplayName.SBD=\u30bd\u30ed\u30e2\u30f3\u8af8\u5cf6 \u30c9\u30eb
+currenciesDisplayName.ECV=\u30a8\u30af\u30a2\u30c9\u30eb UVC
+currenciesDisplayName.LUL=\u30eb\u30af\u30bb\u30f3\u30d6\u30eb\u30af \u91d1\u878d\u30d5\u30e9\u30f3
currenciesDisplayName.ECS=\u30a8\u30af\u30a2\u30c9\u30eb \u30b9\u30af\u30ec
-currenciesDisplayName.PHP=\u30d5\u30a3\u30ea\u30d4\u30f3 \u30da\u30bd
currenciesDisplayName.THB=\u30bf\u30a4 \u30d0\u30fc\u30c4
+currenciesDisplayName.PHP=\u30d5\u30a3\u30ea\u30d4\u30f3 \u30da\u30bd
currenciesDisplayName.LUF=\u30eb\u30af\u30bb\u30f3\u30d6\u30eb\u30b0 \u30d5\u30e9\u30f3
+currenciesDisplayName.RHD=\u30ed\u30fc\u30c7\u30b7\u30a2 \u30c9\u30eb
+currenciesDisplayName.LUC=\u30eb\u30af\u30bb\u30f3\u30d6\u30eb\u30af \u514c\u63db\u30d5\u30e9\u30f3
currenciesDisplayName.FIM=\u30d5\u30a3\u30f3\u30e9\u30f3\u30c9 \u30de\u30eb\u30ab
currenciesDisplayName.TTD=\u30c8\u30ea\u30cb\u30c0\u30fc\u30c9\u30c8\u30d0\u30b4 \u30c9\u30eb
currenciesDisplayName.SZL=\u30b9\u30ef\u30b8\u30e9\u30f3\u30c9 \u30ea\u30e9\u30f3\u30b2\u30cb
currenciesDisplayName.MNT=\u30e2\u30f3\u30b4\u30eb \u30c8\u30b0\u30ed\u30b0
-currenciesDisplayName.SAR=\u30b5\u30a6\u30b8 \u30ea\u30e4\u30eb
currenciesDisplayName.UAK=\u30a6\u30af\u30e9\u30a4\u30ca \u30ab\u30eb\u30dc\u30d0\u30cd\u30c4
+currenciesDisplayName.SAR=\u30b5\u30a6\u30b8 \u30ea\u30e4\u30eb
+currenciesDisplayName.COU=\u30ec\u30a2\u30eb (UVR)
currenciesDisplayName.UAH=\u30a6\u30af\u30e9\u30a4\u30ca \u30b0\u30ea\u30d6\u30ca
currenciesDisplayName.HUF=\u30cf\u30f3\u30ac\u30ea\u30fc \u30d5\u30a9\u30ea\u30f3\u30c8
-currenciesDisplayName.COP=\u30b3\u30ed\u30f3\u30d3\u30a2 \u30da\u30bd
currenciesDisplayName.QAR=\u30ab\u30bf\u30fc\u30eb \u30ea\u30a2\u30eb
+currenciesDisplayName.COP=\u30b3\u30ed\u30f3\u30d3\u30a2 \u30da\u30bd
currenciesDisplayName.LTT=\u30ea\u30c8\u30a2\u30cb\u30a2 \u30bf\u30ed\u30ca
currenciesDisplayName.PTE=\u30dd\u30eb\u30c8\u30ac\u30eb \u30a8\u30b9\u30af\u30fc\u30c9
-currenciesDisplayName.AOR=\u30a2\u30f3\u30b4\u30e9 \u65e7\u30af\u30ef\u30f3\u30b6 (1995-1999)
currenciesDisplayName.UYU=\u30a6\u30eb\u30b0\u30a2\u30a4 \u30da\u30bd
+currenciesDisplayName.AOR=\u30a2\u30f3\u30b4\u30e9 \u65e7\u30af\u30ef\u30f3\u30b6 (1995-1999)
currenciesDisplayName.GBP=\u82f1\u56fd\u30dd\u30f3\u30c9
-currenciesDisplayName.BIF=\u30d6\u30eb\u30f3\u30b8 \u30d5\u30e9\u30f3
-currenciesDisplayName.INR=\u30a4\u30f3\u30c9 \u30eb\u30d4\u30fc
currenciesDisplayName.ZRZ=\u30b6\u30a4\u30fc\u30eb \u30b6\u30a4\u30fc\u30eb
-currenciesDisplayName.AON=\u30a2\u30f3\u30b4\u30e9 \u65b0\u30af\u30ef\u30f3\u30b6 (1990-2000)
-currenciesDisplayName.LTL=\u30ea\u30c8\u30a2\u30cb\u30a2 \u30ea\u30bf\u30b9
+currenciesDisplayName.INR=\u30a4\u30f3\u30c9 \u30eb\u30d4\u30fc
+currenciesDisplayName.BIF=\u30d6\u30eb\u30f3\u30b8 \u30d5\u30e9\u30f3
currenciesDisplayName.XFU=\u30d5\u30e9\u30f3\u30b9 UIC \u30d5\u30e9\u30f3
-currenciesDisplayName.KZT=\u30ab\u30b6\u30d5\u30b9\u30bf\u30f3 \u30c6\u30f3\u30b2
-currenciesDisplayName.MZM=\u30e2\u30b6\u30f3\u30d4\u30fc\u30af \u30e1\u30c6\u30a3\u30ab\u30eb
+currenciesDisplayName.MZN=\u30e2\u30b6\u30f3\u30d3\u30fc\u30af \u30e1\u30c6\u30a3\u30ab\u30eb
+currenciesDisplayName.LTL=\u30ea\u30c8\u30a2\u30cb\u30a2 \u30ea\u30bf\u30b9
+currenciesDisplayName.AON=\u30a2\u30f3\u30b4\u30e9 \u65b0\u30af\u30ef\u30f3\u30b6 (1990-2000)
currenciesDisplayName.UYP=\u30a6\u30eb\u30b0\u30a2\u30a4 \u30da\u30bd (1975-1993)
+currenciesDisplayName.MZM=\u30e2\u30b6\u30f3\u30d4\u30fc\u30af \u30e1\u30c6\u30a3\u30ab\u30eb
+currenciesDisplayName.KZT=\u30ab\u30b6\u30d5\u30b9\u30bf\u30f3 \u30c6\u30f3\u30b2
currenciesDisplayName.AOK=\u30af\u30ef\u30f3\u30b6 (1977-1990)
-currenciesDisplayName.BUK=\u30d3\u30eb\u30de \u30c1\u30e3\u30c3\u30c8
currenciesDisplayName.GNS=\u30ae\u30cb\u30a2 \u30b7\u30ea\u30fc
-currenciesDisplayName.XFO=\u30d5\u30e9\u30f3\u30b9 \u30d5\u30e9\u30f3 (XFO)
+currenciesDisplayName.BUK=\u30d3\u30eb\u30de \u30c1\u30e3\u30c3\u30c8
+currenciesDisplayName.XFO=\u30d5\u30e9\u30f3\u30b9\u91d1\u30d5\u30e9\u30f3
currenciesDisplayName.PGK=\u30d1\u30d7\u30a2\u30cb\u30e5\u30fc\u30ae\u30cb\u30a2 \u30ad\u30ca
currenciesDisplayName.SYP=\u30b7\u30ea\u30a2 \u30dd\u30f3\u30c9
-currenciesDisplayName.MZE=\u30e2\u30b6\u30f3\u30d4\u30fc\u30af \u30a8\u30b9\u30af\u30fc\u30c9
currenciesDisplayName.OMR=\u30aa\u30de\u30fc\u30f3 \u30ea\u30a2\u30eb
-currenciesDisplayName.NGN=\u30ca\u30a4\u30b8\u30a7\u30ea\u30a2 \u30ca\u30a4\u30e9
+currenciesDisplayName.MZE=\u30e2\u30b6\u30f3\u30d4\u30fc\u30af \u30a8\u30b9\u30af\u30fc\u30c9
currenciesDisplayName.ZRN=\u30b6\u30a4\u30fc\u30eb \u65b0\u30b6\u30a4\u30fc\u30eb
-currenciesDisplayName.AOA=\u30af\u30ef\u30f3\u30b6 (AOA)
+currenciesDisplayName.NGN=\u30ca\u30a4\u30b8\u30a7\u30ea\u30a2 \u30ca\u30a4\u30e9
currenciesDisplayName.CNY=\u4e2d\u56fd\u4eba\u6c11\u5143
+currenciesDisplayName.AOA=\u30af\u30ef\u30f3\u30b6
currenciesDisplayName.MAF=\u30e2\u30ed\u30c3\u30b3 \u30d5\u30e9\u30f3
+currenciesDisplayName.RSD=\u30c7\u30a3\u30ca\u30fc\u30eb (\u30bb\u30eb\u30d3\u30a2)
currenciesDisplayName.GNF=\u30ae\u30cb\u30a2 \u30d5\u30e9\u30f3
-currenciesDisplayName.HTG=\u30cf\u30a4\u30c1 \u30b0\u30fc\u30eb\u30c9
currenciesDisplayName.MAD=\u30e2\u30ed\u30c3\u30b3 \u30c7\u30a3\u30eb\u30cf\u30e0
+currenciesDisplayName.HTG=\u30cf\u30a4\u30c1 \u30b0\u30fc\u30eb\u30c9
currenciesDisplayName.TRY=\u65b0\u30c8\u30eb\u30b3\u30ea\u30e9
currenciesDisplayName.MMK=\u30df\u30e3\u30f3\u30de\u30fc \u30c1\u30e3\u30c3\u30c8
+currenciesDisplayName.XRE=RINET\u57fa\u91d1
currenciesDisplayName.MYR=\u30de\u30ec\u30fc\u30b7\u30a2 \u30ea\u30f3\u30ae\u30c3\u30c8
-currenciesDisplayName.LSL=\u30ec\u30bd\u30c8 \u30ed\u30c6\u30a3
+currenciesDisplayName.LSM=\u30de\u30ed\u30c6\u30a3
currenciesDisplayName.XEU=\u30e8\u30fc\u30ed\u30c3\u30d1\u901a\u8ca8\u5358\u4f4d
-currenciesDisplayName.BHD=\u30d0\u30fc\u30ec\u30fc\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
+currenciesDisplayName.LSL=\u30ec\u30bd\u30c8 \u30ed\u30c6\u30a3
currenciesDisplayName.SLL=\u30b7\u30a8\u30e9\u30ec\u30aa\u30cd \u30ec\u30aa\u30f3
+currenciesDisplayName.BHD=\u30d0\u30fc\u30ec\u30fc\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesDisplayName.BTN=\u30d6\u30fc\u30bf\u30f3 \u30cb\u30e5\u30eb\u30bf\u30e0
currenciesDisplayName.TRL=\u30c8\u30eb\u30b3 \u30ea\u30e9
currenciesDisplayName.KMF=\u30b3\u30e2\u30ed \u30d5\u30e9\u30f3
-currenciesDisplayName.ANG=\u30aa\u30e9\u30f3\u30c0\u9818\u30a2\u30f3\u30c6\u30a3\u30eb \u30ae\u30eb\u30c0\u30fc
currenciesDisplayName.CZK=\u30c1\u30a7\u30b3 \u30b3\u30eb\u30ca
-currenciesDisplayName.AZM=\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3 \u30de\u30ca\u30c8
+currenciesDisplayName.ANG=\u30aa\u30e9\u30f3\u30c0\u9818\u30a2\u30f3\u30c6\u30a3\u30eb \u30ae\u30eb\u30c0\u30fc
+currenciesDisplayName.AZN=\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3 \u30de\u30ca\u30c8
+currenciesDisplayName.AZM=\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3 \u30de\u30ca\u30c8 (1993-2006)
currenciesDisplayName.KYD=\u30b1\u30a4\u30de\u30f3\u8af8\u5cf6 \u30c9\u30eb
currenciesDisplayName.GMD=\u30ac\u30f3\u30d3\u30a2 \u30c0\u30e9\u30b7
+currenciesDisplayName.VEF=\u30d9\u30cd\u30ba\u30a8\u30e9 \u30dc\u30ea\u30d0\u30eb\u30d5\u30a8\u30eb\u30c6
currenciesDisplayName.BGN=\u30d6\u30eb\u30ac\u30ea\u30a2 \u65b0\u30ec\u30d5
-currenciesDisplayName.CAD=\u30ab\u30ca\u30c0 \u30c9\u30eb
currenciesDisplayName.MXV=\u30e1\u30ad\u30b7\u30b3 UDI
-currenciesDisplayName.BGL=\u30d6\u30eb\u30ac\u30ea\u30a2 \u30ec\u30d5 (BGL)
+currenciesDisplayName.CAD=\u30ab\u30ca\u30c0 \u30c9\u30eb
+currenciesDisplayName.BGL=\u30d6\u30eb\u30ac\u30ea\u30a2 \u30ec\u30d5
currenciesDisplayName.VEB=\u30d9\u30cd\u30ba\u30a8\u30e9 \u30dc\u30ea\u30d0\u30eb
currenciesDisplayName.MLF=\u30de\u30ea \u30d5\u30e9\u30f3
+currenciesDisplayName.MXP=\u30e1\u30ad\u30b7\u30b3 \u30da\u30bd (1861-1992)
currenciesDisplayName.ILS=\u30a4\u30b9\u30e9\u30a8\u30eb\u65b0\u30b7\u30a7\u30b1\u30eb
-currenciesDisplayName.MXP=\u30e1\u30ad\u30b7\u30b3 \u30da\u30bd (MXP\u30011861-1992)
currenciesDisplayName.PES=\u30da\u30eb\u30fc \u30bd\u30eb
-currenciesDisplayName.GYD=\u30ac\u30a4\u30a2\u30ca \u30c9\u30eb
currenciesDisplayName.MXN=\u30e1\u30ad\u30b7\u30b3 \u30da\u30bd
+currenciesDisplayName.GYD=\u30ac\u30a4\u30a2\u30ca \u30c9\u30eb
currenciesDisplayName.ILP=\u30a4\u30b9\u30e9\u30a8\u30eb \u30dd\u30f3\u30c9
-currenciesDisplayName.SKK=\u30b9\u30ed\u30d0\u30ad\u30a2 \u30b3\u30eb\u30ca
currenciesDisplayName.CYP=\u30ad\u30d7\u30ed\u30b9 \u30dd\u30f3\u30c9
-currenciesDisplayName.XDR=\u7279\u5225\u5f15\u304d\u51fa\u3057\u6a29 (Special Drawing Rights)
+currenciesDisplayName.SKK=\u30b9\u30ed\u30d0\u30ad\u30a2 \u30b3\u30eb\u30ca
+currenciesDisplayName.XDR=\u7279\u5225\u5f15\u304d\u51fa\u3057\u6a29
currenciesDisplayName.PEN=\u30da\u30eb\u30fc \u65b0\u30bd\u30eb
currenciesDisplayName.LRD=\u30ea\u30d9\u30ea\u30a2 \u30c9\u30eb
currenciesDisplayName.PEI=\u30da\u30eb\u30fc \u30a4\u30f3\u30c6\u30a3
currenciesDisplayName.AMD=\u30a2\u30eb\u30e1\u30cb\u30a2 \u30c9\u30e9\u30e0
currenciesDisplayName.BSD=\u30d0\u30cf\u30de \u30c9\u30eb
+currenciesDisplayName.XPT=\u30d7\u30e9\u30c1\u30ca
currenciesDisplayName.HRK=\u30af\u30ed\u30a2\u30c1\u30a2 \u30af\u30fc\u30ca
currenciesDisplayName.CLP=\u30c1\u30ea \u30da\u30bd
currenciesDisplayName.HRD=\u30af\u30ed\u30a2\u30c1\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesDisplayName.XPF=CFP \u30d5\u30e9\u30f3
currenciesDisplayName.FRF=\u30d5\u30e9\u30f3\u30b9 \u30d5\u30e9\u30f3
+currenciesDisplayName.XPD=\u30d1\u30e9\u30b8\u30a6\u30e0
currenciesDisplayName.BRR=\u30d6\u30e9\u30b8\u30eb \u30af\u30eb\u30bc\u30a4\u30ed \u30ec\u30a2\u30eb
currenciesDisplayName.MKD=\u30de\u30b1\u30c9\u30cb\u30a2 \u30c7\u30ca\u30eb
currenciesDisplayName.CLF=\u30c1\u30ea \u30a6\u30cb\u30c0 \u30c7 \u30d5\u30a9\u30e1\u30f3\u30c8
currenciesDisplayName.ALL=\u30a2\u30eb\u30d0\u30cb\u30a2 \u30ec\u30af
-currenciesDisplayName.BRN=\u30d6\u30e9\u30b8\u30eb \u65b0\u30af\u30eb\u30bc\u30a4\u30ed (BRN)
+currenciesDisplayName.BRN=\u30d6\u30e9\u30b8\u30eb \u65b0\u30af\u30eb\u30bc\u30a4\u30ed
currenciesDisplayName.MWK=\u30de\u30e9\u30a6\u30a3 \u30af\u30ef\u30c1\u30e3
currenciesDisplayName.BRL=\u30d6\u30e9\u30b8\u30eb \u30ec\u30a2\u30eb
currenciesDisplayName.TPE=\u30c6\u30a3\u30e2\u30fc\u30eb \u30a8\u30b9\u30af\u30fc\u30c9
-currenciesDisplayName.BRE=\u30d6\u30e9\u30b8\u30eb \u30af\u30eb\u30bc\u30a4\u30ed (BRE\u30011990-1993)
-currenciesDisplayName.BRC=\u30d6\u30e9\u30b8\u30eb \u30af\u30eb\u30bc\u30a4\u30ed (BRC)
-currenciesDisplayName.BRB=\u30d6\u30e9\u30b8\u30eb \u65b0\u30af\u30eb\u30bc\u30a4\u30ed (BRB\u30011967-1986)
+currenciesDisplayName.BRE=\u30d6\u30e9\u30b8\u30eb \u30af\u30eb\u30bc\u30a4\u30ed (1990-1993)
+currenciesDisplayName.BRC=\u30d6\u30e9\u30b8\u30eb \u30af\u30eb\u30bc\u30a4\u30ed
+currenciesDisplayName.BRB=\u30d6\u30e9\u30b8\u30eb \u65b0\u30af\u30eb\u30bc\u30a4\u30ed (1967-1986)
currenciesDisplayName.DEM=\u30c9\u30a4\u30c4 \u30de\u30eb\u30af
currenciesDisplayName.KWD=\u30af\u30a6\u30a7\u30fc\u30c8 \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesDisplayName.XCD=\u6771\u30ab\u30ea\u30d6 \u30c9\u30eb
@@ -160,18 +179,19 @@ currenciesDisplayName.SVC=\u30a8\u30eb\u30b5\u30eb\u30d0\u30c9\u30eb \u30b3\u30e
currenciesDisplayName.YUM=\u30e6\u30fc\u30b4\u30b9\u30e9\u30d3\u30a2 \u30b9\u30fc\u30d1\u30fc \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesDisplayName.BEL=\u30d9\u30eb\u30ae\u30fc \u30d5\u30e9\u30f3 (BEL)
currenciesDisplayName.SIT=\u30b9\u30ed\u30d9\u30cb\u30a2 \u30c8\u30e9\u30fc\u30eb
-currenciesDisplayName.JPY=\u5186
+currenciesDisplayName.JPY=\u65e5\u672c\u5186
currenciesDisplayName.XOF=CFA \u30d5\u30e9\u30f3 BCEAO
currenciesDisplayName.MVR=\u30e2\u30eb\u30c7\u30a3\u30d6\u8af8\u5cf6 \u30eb\u30d5\u30a3\u30a2
-currenciesDisplayName.GWE=\u30dd\u30eb\u30c8\u30ac\u30eb\u9818\u30ae\u30cb\u30a2 \u30a8\u30b9\u30af\u30fc\u30c9
currenciesDisplayName.BEF=\u30d9\u30eb\u30ae\u30fc \u30d5\u30e9\u30f3
+currenciesDisplayName.GWE=\u30dd\u30eb\u30c8\u30ac\u30eb\u9818\u30ae\u30cb\u30a2 \u30a8\u30b9\u30af\u30fc\u30c9
currenciesDisplayName.TOP=\u30c8\u30f3\u30ac \u30d1\u30fb\u30a2\u30f3\u30ac
-currenciesDisplayName.YUD=\u30e6\u30fc\u30b4\u30b9\u30e9\u30d3\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb (YUD)
+currenciesDisplayName.YUD=\u30e6\u30fc\u30b4\u30b9\u30e9\u30d3\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesDisplayName.BEC=\u30d9\u30eb\u30ae\u30fc \u30d5\u30e9\u30f3 (BEC)
currenciesDisplayName.SUR=\u30bd\u9023 \u30eb\u30fc\u30d6\u30eb
-currenciesDisplayName.ROL=\u30eb\u30fc\u30de\u30cb\u30a2 \u30ec\u30a4
-currenciesDisplayName.DDM=\u6771\u30c9\u30a4\u30c4 \u30de\u30eb\u30af
+currenciesDisplayName.RON=\u30eb\u30fc\u30de\u30cb\u30a2 \u30ec\u30a4
+currenciesDisplayName.ROL=\u30eb\u30fc\u30de\u30cb\u30a2 \u65e7\u30ec\u30a4
currenciesDisplayName.BDT=\u30d0\u30f3\u30b0\u30e9\u30c7\u30b7\u30e5 \u30bf\u30ab
+currenciesDisplayName.DDM=\u6771\u30c9\u30a4\u30c4 \u30de\u30eb\u30af
currenciesDisplayName.XBD=\u30e8\u30fc\u30ed\u30c3\u30d1\u52d8\u5b9a\u5358\u4f4d (EUA-17)
currenciesDisplayName.AWG=\u30a2\u30eb\u30d0 \u30ae\u30eb\u30c0\u30fc
currenciesDisplayName.XBC=\u30e8\u30fc\u30ed\u30c3\u30d1\u52d8\u5b9a\u5358\u4f4d (EUA-9)
@@ -189,6 +209,8 @@ currenciesDisplayName.GIP=\u30b8\u30d6\u30e9\u30eb\u30bf\u30eb \u30dd\u30f3\u30c
currenciesDisplayName.TND=\u30c1\u30e5\u30cb\u30b8\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesDisplayName.CVE=\u30ab\u30fc\u30dc\u30d9\u30eb\u30c7 \u30a8\u30b9\u30af\u30fc\u30c9
currenciesDisplayName.UGX=\u30a6\u30ac\u30f3\u30c0 \u30b7\u30ea\u30f3\u30b0
+currenciesDisplayName.XAG=\u9280
+currenciesDisplayName.ZMK=\u30b6\u30f3\u30d3\u30a2 \u30af\u30ef\u30c1\u30e3
currenciesDisplayName.JOD=\u30e8\u30eb\u30c0\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesDisplayName.XAF=CFA \u30d5\u30e9\u30f3 BEAC
currenciesDisplayName.LBP=\u30ec\u30d0\u30ce\u30f3 \u30dd\u30f3\u30c9
@@ -196,47 +218,53 @@ currenciesDisplayName.UGS=\u30a6\u30ac\u30f3\u30c0 \u30b7\u30ea\u30f3\u30b0 (196
currenciesDisplayName.STD=\u30b5\u30f3\u30c8\u30e1\u30fb\u30d7\u30ea\u30f3\u30b7\u30da \u30c9\u30d6\u30e9
currenciesDisplayName.WST=\u897f\u30b5\u30e2\u30a2 \u30bf\u30e9
currenciesDisplayName.KHR=\u30ab\u30f3\u30dc\u30b8\u30a2 \u30ea\u30a8\u30eb
-currenciesDisplayName.EUR=\u30e6\u30fc\u30ed
currenciesDisplayName.DOP=\u30c9\u30df\u30cb\u30ab \u30da\u30bd
+currenciesDisplayName.EUR=\u30e6\u30fc\u30ed
currenciesDisplayName.BOV=\u30dc\u30ea\u30d3\u30a2 Mvdol
currenciesDisplayName.MTP=\u30de\u30eb\u30bf \u30dd\u30f3\u30c9
currenciesDisplayName.USS=\u7c73\u30c9\u30eb (\u5f53\u65e5)
currenciesDisplayName.BOP=\u30dc\u30ea\u30d3\u30a2 \u30da\u30bd
-currenciesDisplayName.MTL=\u30de\u30eb\u30bf \u30ea\u30e9
currenciesDisplayName.CUP=\u30ad\u30e5\u30fc\u30d0 \u30da\u30bd
+currenciesDisplayName.MTL=\u30de\u30eb\u30bf \u30ea\u30e9
currenciesDisplayName.TMM=\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3 \u30de\u30ca\u30c8
currenciesDisplayName.USN=\u7c73\u30c9\u30eb (\u7fcc\u65e5)
+currenciesDisplayName.GHS=\u30ac\u30fc\u30ca \u30bb\u30c7\u30a3
currenciesDisplayName.SGD=\u30b7\u30f3\u30ac\u30dd\u30fc\u30eb \u30c9\u30eb
currenciesDisplayName.NZD=\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9 \u30c9\u30eb
currenciesDisplayName.USD=\u7c73\u30c9\u30eb
+currenciesDisplayName.BOB=\u30dc\u30ea\u30d3\u30a2\u30fc\u30ce
currenciesDisplayName.HNL=\u30db\u30f3\u30b8\u30e5\u30e9\u30b9 \u30ec\u30f3\u30d4\u30e9
-currenciesDisplayName.BOB=\u30dc\u30ea\u30d3\u30a2\u30ce
+currenciesDisplayName.CHW=WIR \u30d5\u30e9\u30f3
currenciesDisplayName.ITL=\u30a4\u30bf\u30ea\u30a2 \u30ea\u30e9
currenciesDisplayName.PAB=\u30d1\u30ca\u30de \u30d0\u30eb\u30dc\u30a2
currenciesDisplayName.GTQ=\u30b0\u30a2\u30c6\u30de\u30e9 \u30b1\u30c4\u30a1\u30eb
-currenciesDisplayName.LAK=\u30e9\u30aa\u30b9 \u30ad\u30fc\u30d7
-currenciesDisplayName.GHC=\u30ac\u30fc\u30ca \u30bb\u30c7\u30a3
+currenciesDisplayName.XXX=\u4e0d\u660e\u307e\u305f\u306f\u7121\u52b9\u306a\u901a\u8ca8
currenciesDisplayName.AUD=\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2 \u30c9\u30eb
+currenciesDisplayName.GHC=\u30ac\u30fc\u30ca \u30bb\u30c7\u30a3 (1979-2007)
+currenciesDisplayName.LAK=\u30e9\u30aa\u30b9 \u30ad\u30fc\u30d7
currenciesDisplayName.NAD=\u30ca\u30df\u30d3\u30a2 \u30c9\u30eb
currenciesDisplayName.KGS=\u30ad\u30eb\u30ae\u30b9\u30bf\u30f3 \u30bd\u30e0
currenciesDisplayName.MGF=\u30de\u30c0\u30ac\u30b9\u30ab\u30eb \u30d5\u30e9\u30f3
-currenciesDisplayName.CHF=\u30b9\u30a4\u30b9 \u30d5\u30e9\u30f3
currenciesDisplayName.BBD=\u30d0\u30eb\u30d0\u30c9\u30b9 \u30c9\u30eb
+currenciesDisplayName.CHF=\u30b9\u30a4\u30b9 \u30d5\u30e9\u30f3
+currenciesDisplayName.CHE=WIR \u30e6\u30fc\u30ed
currenciesDisplayName.MGA=\u30de\u30c0\u30ac\u30b9\u30ab\u30eb \u30a2\u30ea\u30a2\u30ea
currenciesDisplayName.PYG=\u30d1\u30e9\u30b0\u30a2\u30a4 \u30b0\u30a2\u30e9\u30cb
currenciesDisplayName.PLZ=\u30dd\u30fc\u30e9\u30f3\u30c9 \u30ba\u30a6\u30a9\u30c6\u30a3 (1950-1995)
currenciesDisplayName.YER=\u30a4\u30a8\u30e1\u30f3 \u30ea\u30a2\u30eb
+currenciesDisplayName.ATS=\u30aa\u30fc\u30b9\u30c8\u30ea\u30a2 \u30b7\u30ea\u30f3\u30b0
currenciesDisplayName.ETB=\u30a8\u30c1\u30aa\u30d4\u30a2 \u30d6\u30eb
currenciesDisplayName.BND=\u30d6\u30eb\u30cd\u30a4 \u30c9\u30eb
-currenciesDisplayName.JMD=\u30b8\u30e3\u30de\u30a4\u30ab \u30c9\u30eb
currenciesDisplayName.EGP=\u30a8\u30b8\u30d7\u30c8 \u30dd\u30f3\u30c9
+currenciesDisplayName.JMD=\u30b8\u30e3\u30de\u30a4\u30ab \u30c9\u30eb
currenciesDisplayName.PLN=\u30dd\u30fc\u30e9\u30f3\u30c9 \u30ba\u30a6\u30a9\u30c6\u30a3
currenciesDisplayName.DZD=\u30a2\u30eb\u30b8\u30a7\u30ea\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesDisplayName.ISK=\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9 \u30af\u30ed\u30fc\u30ca
currenciesDisplayName.SRG=\u30b9\u30ea\u30ca\u30e0 \u30ae\u30eb\u30c0\u30fc
currenciesDisplayName.LYD=\u30ea\u30d3\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
-currenciesDisplayName.BZD=\u30d9\u30ea\u30fc\u30ba \u30c9\u30eb
+currenciesDisplayName.SRD=\u30b9\u30ea\u30ca\u30e0 \u30c9\u30eb
currenciesDisplayName.BAM=\u30dc\u30b9\u30cb\u30a2 \u30de\u30eb\u30af (BAM)
+currenciesDisplayName.BZD=\u30d9\u30ea\u30fc\u30ba \u30c9\u30eb
currenciesDisplayName.ESP=\u30b9\u30da\u30a4\u30f3 \u30da\u30bb\u30bf
currenciesDisplayName.KRW=\u97d3\u56fd \u30a6\u30a9\u30f3
currenciesDisplayName.NLG=\u30aa\u30e9\u30f3\u30c0 \u30ae\u30eb\u30c0\u30fc
@@ -244,44 +272,148 @@ currenciesDisplayName.MRO=\u30e2\u30fc\u30ea\u30bf\u30cb\u30a2 \u30a6\u30ae\u30a
currenciesDisplayName.BAD=\u30dc\u30b9\u30cb\u30a2 \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesDisplayName.ZWD=\u30b8\u30f3\u30d0\u30d6\u30a8 \u30c9\u30eb
currenciesDisplayName.SEK=\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3 \u30af\u30ed\u30fc\u30ca
-currenciesDisplayName.CSK=\u30c1\u30a7\u30b3\u30b9\u30ed\u30d0\u30ad\u30a2 \u30b3\u30eb\u30ca (CSK)
+currenciesDisplayName.CSK=\u30c1\u30a7\u30b3\u30b9\u30ed\u30d0\u30ad\u30a2 \u30b3\u30eb\u30ca
currenciesDisplayName.BYR=\u30d9\u30e9\u30eb\u30fc\u30b7 \u30eb\u30fc\u30d6\u30eb
+currenciesDisplayName.ESB=\u30b9\u30da\u30a4\u30f3 \u514c\u63db\u30da\u30bb\u30bf
currenciesDisplayName.IRR=\u30a4\u30e9\u30f3 \u30ea\u30a2\u30eb
+currenciesDisplayName.ESA=\u30b9\u30da\u30a4\u30f3\u30da\u30bb\u30bf
currenciesDisplayName.PKR=\u30d1\u30ad\u30b9\u30bf\u30f3 \u30eb\u30d4\u30fc
currenciesDisplayName.BMD=\u30d0\u30df\u30e5\u30fc\u30c0 \u30c9\u30eb
-currenciesSymbol.INR=\u30a4\u30f3\u30c9 \u30eb\u30d4\u30fc
-currenciesSymbol.JPY=\uffe5
-currenciesSymbol.KRW=\uffe6
-currenciesSymbol.VND=\u0111
-currenciesSymbol.CNY=\u4e2d\u56fd \u5143
+currenciesDisplayName.CSD=\u30bb\u30eb\u30d3\u30a2\u30f3 \u30c7\u30a3\u30ca\u30fc\u30eb
currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=lev
+currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
+currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
+currenciesSymbol.BMD=Ber$
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
+currenciesSymbol.AMD=dram
+currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
+currenciesSymbol.NPR=Nrs
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.KWD=KD
+currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
-shortMonths=1 \u6708®2 \u6708®3 \u6708®4 \u6708®5 \u6708®6 \u6708®7 \u6708®8 \u6708®9 \u6708®10 \u6708®11 \u6708®12 \u6708®®
-months=1\u6708®2\u6708®3\u6708®4\u6708®5\u6708®6\u6708®7\u6708®8\u6708®9\u6708®10\u6708®11\u6708®12\u6708®®
-shortWeekdays=®\u65e5®\u6708®\u706b®\u6c34®\u6728®\u91d1®\u571f®
-weekdays=®\u65e5\u66dc\u65e5®\u6708\u66dc\u65e5®\u706b\u66dc\u65e5®\u6c34\u66dc\u65e5®\u6728\u66dc\u65e5®\u91d1\u66dc\u65e5®\u571f\u66dc\u65e5®
-eras=\u7d00\u5143\u524d®\u897f\u66a6®
-ampms=\u5348\u524d®\u5348\u5f8c®
+currenciesSymbol.ZAR=R
+currenciesSymbol.RON=0#lei|1#leu|1
+currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=0#Old lei|1#Old leu|1
+currenciesSymbol.HKD=HK$
+currenciesSymbol.ARS=Arg$
+currenciesSymbol.JPY=\uffe5
+currenciesSymbol.ALL=lek
+currenciesSymbol.CRC=C
+currenciesSymbol.IDR=Rp
+currenciesSymbol.VND=VND
+currenciesSymbol.DKK=DKr
+currenciesSymbol.TZS=T Sh
+currenciesSymbol.SBD=SI$
+currenciesSymbol.NOK=NKr
+currenciesSymbol.UGX=U Sh
+currenciesSymbol.BEF=BF
+currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
+currenciesSymbol.SZL=E
+currenciesSymbol.STD=Db
+currenciesSymbol.SAR=SRl
+currenciesSymbol.FJD=F$
+currenciesSymbol.BDT=Tk
+currenciesSymbol.QAR=QR
+currenciesSymbol.LBP=LL
+currenciesSymbol.MNT=Tug
+currenciesSymbol.DJF=DF
+currenciesSymbol.JOD=JD
+currenciesSymbol.USD=$
+currenciesSymbol.SGD=S$
+currenciesSymbol.ECS=CS
+currenciesSymbol.KHR=CR
+currenciesSymbol.SYP=LS
+currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
+currenciesSymbol.MZM=Mt
+currenciesSymbol.YER=YRl
+currenciesSymbol.CVE=CVEsc
+currenciesSymbol.HUF=Ft
+currenciesSymbol.NZD=$NZ
+currenciesSymbol.OMR=RO
+currenciesSymbol.KZT=T
+currenciesSymbol.INR=INR
+currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.NAD=N$
+currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
+currenciesSymbol.HNL=L
+currenciesSymbol.KGS=som
+currenciesSymbol.ZWD=Z$
+currenciesSymbol.MYR=RM
+currenciesSymbol.SRG=Sf
+currenciesSymbol.GTQ=Q
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
+currenciesSymbol.VEB=Be
+currenciesSymbol.BOB=Bs
+currenciesSymbol.CNY=\u5143
+currenciesSymbol.KMF=CF
+currenciesSymbol.SEK=SKr
+currenciesSymbol.AUD=$A
+currenciesSymbol.LYD=LD
+currenciesSymbol.JMD=J$
+currenciesSymbol.SKK=Sk
+currenciesSymbol.CHF=SwF
+currenciesSymbol.ETB=Br
+currenciesSymbol.MRO=UM
+currenciesSymbol.BBD=BDS$
+currenciesSymbol.KRW=\uffe6
+currenciesSymbol.PKR=Pra
+currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
+currenciesSymbol.MXN=MEX$
+currenciesSymbol.DZD=DA
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.IRR=RI
+currenciesSymbol.GYD=G$
+currenciesSymbol.BAM=KM
+currenciesSymbol.CAD=Can$
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u6708\u00ae2\u6708\u00ae3\u6708\u00ae4\u6708\u00ae5\u6708\u00ae6\u6708\u00ae7\u6708\u00ae8\u6708\u00ae9\u6708\u00ae10\u6708\u00ae11\u6708\u00ae12\u6708\u00ae\u00ae
+shortWeekdays=\u00ae\u65e5\u00ae\u6708\u00ae\u706b\u00ae\u6c34\u00ae\u6728\u00ae\u91d1\u00ae\u571f\u00ae
+weekdays=\u00ae\u65e5\u66dc\u65e5\u00ae\u6708\u66dc\u65e5\u00ae\u706b\u66dc\u65e5\u00ae\u6c34\u66dc\u65e5\u00ae\u6728\u66dc\u65e5\u00ae\u91d1\u66dc\u65e5\u00ae\u571f\u66dc\u65e5\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=\u5348\u524d\u00ae\u5348\u5f8c\u00ae
+shortDateFormat=yy/MM/dd
mediumDateFormat=yyyy/MM/dd
-longDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'
-fullDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'EEEE
+longDateFormat=yyyy\u5e74M\u6708d\u65e5
+fullDateFormat=yyyy\u5e74M\u6708d\u65e5EEEE
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ss:z
-fullTimeFormat=H'\u6642'mm'\u5206'ss'\u79d2'z
-zoneStrings=America/Halifax®AST®\u5927\u897f\u6d0b\u6a19\u6e96\u6642®ADT®\u5927\u897f\u6d0b\u590f\u6642\u9593®©America/Indianapolis®EST®\u6771\u90e8\u6a19\u6e96\u6642®EST®\u6771\u90e8\u6a19\u6e96\u6642®©Europe/Paris®CET®\u4e2d\u6b27\u6a19\u6e96\u6642®CEST®\u4e2d\u6b27\u590f\u6642\u9593®©America/Phoenix®MST®\u5c71\u5730\u6a19\u6e96\u6642®MST®\u5c71\u5730\u6a19\u6e96\u6642®©America/Los_Angeles®PST®\u592a\u5e73\u6d0b\u6a19\u6e96\u6642®PDT®\u592a\u5e73\u6d0b\u590f\u6642\u9593®©Pacific/Honolulu®HST®\u30cf\u30ef\u30a4\u6a19\u6e96\u6642®HST®\u30cf\u30ef\u30a4\u6a19\u6e96\u6642®©America/Denver®MST®\u5c71\u5730\u6a19\u6e96\u6642®MDT®\u5c71\u5730\u590f\u6642\u9593®©Europe/Bucharest®EET®\u6771\u6b27\u6a19\u6e96\u6642®EEST®\u6771\u6b27\u590f\u6642\u9593®©America/New_York®EST®\u6771\u90e8\u6a19\u6e96\u6642®EDT®\u6771\u90e8\u590f\u6642\u9593®©Asia/Tokyo®JST®\u65e5\u672c\u6a19\u6e96\u6642®JST®\u65e5\u672c\u6a19\u6e96\u6642®©America/Anchorage®AST®\u30a2\u30e9\u30b9\u30ab\u6a19\u6e96\u6642®ADT®\u30a2\u30e9\u30b9\u30ab\u590f\u6642\u9593®©Asia/Shanghai®CTT®\u4e2d\u56fd\u6a19\u6e96\u6642®CDT®\u4e2d\u56fd\u6a19\u6e96\u6642®©America/Chicago®CST®\u4e2d\u90e8\u6a19\u6e96\u6642®CDT®\u4e2d\u90e8\u590f\u6642\u9593®©Africa/Casablanca®GMT®\u30b0\u30ea\u30cb\u30c3\u30b8\u6a19\u6e96\u6642®GMT®\u30b0\u30ea\u30cb\u30c3\u30b8\u6a19\u6e96\u6642®©America/St_Johns®CNT®\u30cb\u30e5\u30fc\u30d5\u30a1\u30f3\u30c9\u30e9\u30f3\u30c9\u5cf6\u6a19\u6e96\u6642®CDT®\u30cb\u30e5\u30fc\u30d5\u30a1\u30f3\u30c9\u30e9\u30f3\u30c9\u5cf6\u590f\u6642\u9593®©Asia/Jerusalem®IST®\u30a4\u30b9\u30e9\u30a8\u30eb\u6a19\u6e96\u6642®IDT®\u30a4\u30b9\u30e9\u30a8\u30eb\u590f\u6642\u9593®©
+longTimeFormat=HH:mm:ssz
+fullTimeFormat=H\u6642mm\u5206ss\u79d2z
+zoneStrings=Europe_Central\u00ae\u4e2d\u6b27\u6a19\u6e96\u6642\u00ae\u00ae\u4e2d\u6b27\u590f\u6642\u9593\u00ae\u00ae\u00a9Africa_Western\u00ae\u897f\u30a2\u30d5\u30ea\u30ab\u6642\u9593\u00ae\u00ae\u897f\u30a2\u30d5\u30ea\u30ab\u590f\u6642\u9593\u00ae\u00ae\u00a9Amazon\u00ae\u30a2\u30de\u30be\u30f3\u6642\u9593\u00ae\u00ae\u30a2\u30de\u30be\u30f3\u590f\u6642\u9593\u00ae\u00ae\u00a9Alaska\u00ae\u30a2\u30e9\u30b9\u30ab\u6a19\u6e96\u6642\u00ae\u00ae\u30a2\u30e9\u30b9\u30ab\u590f\u6642\u9593\u00ae\u00ae\u00a9America_Pacific\u00ae\u30a2\u30e1\u30ea\u30ab\u592a\u5e73\u6d0b\u6a19\u6e96\u6642\u00ae\u00ae\u30a2\u30e1\u30ea\u30ab\u592a\u5e73\u6d0b\u590f\u6642\u9593\u00ae\u00ae\u00a9Israel\u00ae\u30a4\u30b9\u30e9\u30a8\u30eb\u6a19\u6e96\u6642\u00ae\u00ae\u30a4\u30b9\u30e9\u30a8\u30eb\u590f\u6642\u9593\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u6771\u6b27\u6a19\u6e96\u6642\u00ae\u00ae\u6771\u6b27\u590f\u6642\u9593\u00ae\u00ae\u00a9Newfoundland\u00ae\u30cb\u30e5\u30fc\u30d5\u30a1\u30f3\u30c9\u30e9\u30f3\u30c9\u5cf6\u6a19\u6e96\u6642\u00ae\u00ae\u30cb\u30e5\u30fc\u30d5\u30a1\u30f3\u30c9\u30e9\u30f3\u30c9\u5cf6\u590f\u6642\u9593\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u6771\u30a2\u30d5\u30ea\u30ab\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00ae\u5927\u897f\u6d0b\u6a19\u6e96\u6642\u00ae\u00ae\u5927\u897f\u6d0b\u590f\u6642\u9593\u00ae\u00ae\u00a9America_Eastern\u00ae\u30a2\u30e1\u30ea\u30ab\u6771\u90e8\u6a19\u6e96\u6642\u00ae\u00ae\u30a2\u30e1\u30ea\u30ab\u6771\u90e8\u590f\u6642\u9593\u00ae\u00ae\u00a9Africa_Central\u00ae\u4e2d\u592e\u30a2\u30d5\u30ea\u30ab\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00ae\u5357\u30a2\u30d5\u30ea\u30ab\u6a19\u6e96\u6642\u00ae\u00ae\u00ae\u00ae\u00a9Argentina\u00ae\u00ae\u00ae\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3\u590f\u6642\u9593\u00ae\u00ae\u00a9China\u00ae\u4e2d\u56fd\u6a19\u6e96\u6642\u00ae\u00ae\u4e2d\u56fd\u590f\u6642\u9593\u00ae\u00ae\u00a9America_Mountain\u00ae\u30a2\u30e1\u30ea\u30ab\u5c71\u5730\u6a19\u6e96\u6642\u00ae\u00ae\u30a2\u30e1\u30ea\u30ab\u5c71\u5730\u590f\u6642\u9593\u00ae\u00ae\u00a9GMT\u00ae\u30b0\u30ea\u30cb\u30c3\u30b8\u6a19\u6e96\u6642\u00ae\u00ae\u00ae\u00ae\u00a9Brasilia\u00ae\u30d6\u30e9\u30b8\u30ea\u30a2\u6642\u9593\u00ae\u00ae\u30d6\u30e9\u30b8\u30ea\u30a2\u590f\u6642\u9593\u00ae\u00ae\u00a9America_Central\u00ae\u30a2\u30e1\u30ea\u30ab\u4e2d\u90e8\u6a19\u6e96\u6642\u00ae\u00ae\u30a2\u30e1\u30ea\u30ab\u4e2d\u90e8\u590f\u6642\u9593\u00ae\u00ae\u00a9Japan\u00ae\u65e5\u672c\u6a19\u6e96\u6642\u00ae\u00ae\u65e5\u672c\u590f\u6642\u9593\u00ae\u00ae\u00a9
territories.TL=\u6771\u30c6\u30a3\u30e2\u30fc\u30eb
territories.TK=\u30c8\u30b1\u30e9\u30a6\u8af8\u5cf6
territories.TJ=\u30bf\u30b8\u30ad\u30b9\u30bf\u30f3
territories.TH=\u30bf\u30a4
territories.TG=\u30c8\u30fc\u30b4
-territories.TF=\u4ecf\u5357\u65b9\u9818
+territories.TF=\u30d5\u30e9\u30f3\u30b9\u9818\u6975\u5357\u8af8\u5cf6
territories.GY=\u30ac\u30a4\u30a2\u30ca
territories.TD=\u30c1\u30e3\u30c9
territories.TC=\u30bf\u30fc\u30af\u30b9\u8af8\u5cf6\u30fb\u30ab\u30a4\u30b3\u30b9\u8af8\u5cf6
territories.GW=\u30ae\u30cb\u30a2\u30d3\u30b5\u30a6
-territories.GU=\u30b0\u30a2\u30e0\u5cf6
+territories.GU=\u30b0\u30a2\u30e0
territories.GT=\u30b0\u30a2\u30c6\u30de\u30e9
territories.GS=\u5357\u30b8\u30e7\u30fc\u30b8\u30a2\u5cf6\u30fb\u5357\u30b5\u30f3\u30c9\u30a4\u30c3\u30c1\u8af8\u5cf6
territories.GR=\u30ae\u30ea\u30b7\u30e3
@@ -295,10 +427,11 @@ territories.GL=\u30b0\u30ea\u30fc\u30f3\u30e9\u30f3\u30c9
territories.SV=\u30a8\u30eb\u30b5\u30eb\u30d0\u30c9\u30eb
territories.062=\u5357\u4e2d\u592e\u30a2\u30b8\u30a2
territories.ST=\u30b5\u30f3\u30c8\u30e1\u30fb\u30d7\u30ea\u30f3\u30b7\u30da
-territories.061=\u30dd\u30ea\u30cd\u30b7\u30a2
territories.GI=\u30b8\u30d6\u30e9\u30eb\u30bf\u30eb
+territories.061=\u30dd\u30ea\u30cd\u30b7\u30a2
territories.GH=\u30ac\u30fc\u30ca
territories.SR=\u30b9\u30ea\u30ca\u30e0
+territories.GG=\u30ac\u30fc\u30f3\u30b8\u30fc
territories.GF=\u4ecf\u9818\u30ae\u30a2\u30ca
territories.GE=\u30b0\u30eb\u30b8\u30a2
territories.SO=\u30bd\u30de\u30ea\u30a2
@@ -311,34 +444,35 @@ territories.GA=\u30ac\u30dc\u30f3
territories.SK=\u30b9\u30ed\u30d0\u30ad\u30a2
territories.SJ=\u30b9\u30d0\u30fc\u30eb\u30d0\u30eb\u8af8\u5cf6\u30fb\u30e4\u30f3\u30de\u30a4\u30a8\u30f3\u5cf6
territories.SI=\u30b9\u30ed\u30d9\u30cb\u30a2
-territories.SH=\u30bb\u30f3\u30c8\u30d8\u30ec\u30ca\u5cf6
+territories.SH=\u30bb\u30f3\u30c8\u30d8\u30ec\u30ca
territories.SG=\u30b7\u30f3\u30ac\u30dd\u30fc\u30eb
territories.SE=\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3
territories.SD=\u30b9\u30fc\u30c0\u30f3
-territories.SC=\u30bb\u30a4\u30b7\u30a7\u30eb
+territories.SC=\u30bb\u30fc\u30b7\u30a7\u30eb
territories.SB=\u30bd\u30ed\u30e2\u30f3\u8af8\u5cf6
territories.SA=\u30b5\u30a6\u30b8\u30a2\u30e9\u30d3\u30a2
territories.FR=\u30d5\u30e9\u30f3\u30b9
-territories.057=\u30df\u30af\u30ed\u30cd\u30b7\u30a2
territories.FO=\u30d5\u30a7\u30ed\u30fc\u8af8\u5cf6
+territories.057=\u30df\u30af\u30ed\u30cd\u30b7\u30a2\u5730\u57df
territories.FM=\u30df\u30af\u30ed\u30cd\u30b7\u30a2
territories.RW=\u30eb\u30ef\u30f3\u30c0
territories.054=\u30e1\u30e9\u30cd\u30b7\u30a2
-territories.053=\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2\u304a\u3088\u3073\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9
territories.FK=\u30d5\u30a9\u30fc\u30af\u30e9\u30f3\u30c9\u8af8\u5cf6
+territories.053=\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2\u30fb\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9
territories.RU=\u30ed\u30b7\u30a2
territories.FJ=\u30d5\u30a3\u30b8\u30fc
territories.FI=\u30d5\u30a3\u30f3\u30e9\u30f3\u30c9
+territories.RS=\u30bb\u30eb\u30d3\u30a2
territories.RO=\u30eb\u30fc\u30de\u30cb\u30a2
territories.RE=\u30ec\u30e6\u30cb\u30aa\u30f3\u5cf6
territories.ET=\u30a8\u30c1\u30aa\u30d4\u30a2
territories.ES=\u30b9\u30da\u30a4\u30f3
territories.ER=\u30a8\u30ea\u30c8\u30ea\u30a2
-territories.833=\u30de\u30f3\u5cf6
+territories.QU=\u6b27\u5dde\u9023\u5408
territories.EH=\u897f\u30b5\u30cf\u30e9
territories.EG=\u30a8\u30b8\u30d7\u30c8
-territories.830=\u30c1\u30e3\u30cd\u30eb\u8af8\u5cf6
territories.EE=\u30a8\u30b9\u30c8\u30cb\u30a2
+territories.830=\u30c1\u30e3\u30cd\u30eb\u8af8\u5cf6
territories.QO=\u305d\u306e\u4ed6\u306e\u30aa\u30bb\u30a2\u30cb\u30a2
territories.EC=\u30a8\u30af\u30a2\u30c9\u30eb
territories.DZ=\u30a2\u30eb\u30b8\u30a7\u30ea\u30a2
@@ -346,24 +480,25 @@ territories.QA=\u30ab\u30bf\u30fc\u30eb
territories.039=\u5357\u30e8\u30fc\u30ed\u30c3\u30d1
territories.DO=\u30c9\u30df\u30cb\u30ab\u5171\u548c\u56fd
territories.PY=\u30d1\u30e9\u30b0\u30a2\u30a4
-territories.035=\u6771\u5357\u30a2\u30b8\u30a2
territories.DM=\u30c9\u30df\u30cb\u30ab\u56fd
+territories.035=\u6771\u5357\u30a2\u30b8\u30a2
territories.PW=\u30d1\u30e9\u30aa
+territories.034=\u5357\u30a2\u30b8\u30a2
territories.DK=\u30c7\u30f3\u30de\u30fc\u30af
territories.DJ=\u30b8\u30d6\u30c1
territories.PT=\u30dd\u30eb\u30c8\u30ac\u30eb
-territories.PS=\u30d1\u30ec\u30b9\u30c1\u30ca
+territories.PS=\u30d1\u30ec\u30b9\u30c1\u30ca\u9818\u571f
territories.030=\u6771\u30a2\u30b8\u30a2
territories.PR=\u30d7\u30a8\u30eb\u30c8\u30ea\u30b3
territories.DE=\u30c9\u30a4\u30c4
territories.PN=\u30d4\u30c8\u30b1\u30a2\u30f3\u5cf6
-territories.PM=\u30b5\u30f3\u30d4\u30a8\u30fc\u30eb\u30fb\u30a8\u30fb\u30df\u30af\u30ed\u30f3\u5cf6
+territories.PM=\u30b5\u30f3\u30d4\u30a8\u30fc\u30eb\u5cf6\u30fb\u30df\u30af\u30ed\u30f3\u5cf6
territories.PL=\u30dd\u30fc\u30e9\u30f3\u30c9
territories.PK=\u30d1\u30ad\u30b9\u30bf\u30f3
territories.PH=\u30d5\u30a3\u30ea\u30d4\u30f3
territories.PG=\u30d1\u30d7\u30a2\u30cb\u30e5\u30fc\u30ae\u30cb\u30a2
territories.PF=\u4ecf\u9818\u30dd\u30ea\u30cd\u30b7\u30a2
-territories.CZ=\u30c1\u30a7\u30b3
+territories.CZ=\u30c1\u30a7\u30b3\u5171\u548c\u56fd
territories.PE=\u30da\u30eb\u30fc
territories.CY=\u30ad\u30d7\u30ed\u30b9
territories.CX=\u30af\u30ea\u30b9\u30de\u30b9\u5cf6
@@ -378,15 +513,16 @@ territories.CN=\u4e2d\u56fd
territories.CM=\u30ab\u30e1\u30eb\u30fc\u30f3
territories.CL=\u30c1\u30ea
territories.CK=\u30af\u30c3\u30af\u8af8\u5cf6
-territories.CI=\u30b3\u30fc\u30c8\u30b8\u30dc\u30a2\u30fc\u30eb
territories.021=\u5317\u30a2\u30e1\u30ea\u30ab
+territories.CI=\u30b3\u30fc\u30c8\u30b8\u30dc\u30ef\u30fc\u30eb
territories.CH=\u30b9\u30a4\u30b9
-territories.CG=\u30b3\u30f3\u30b4
+territories.CG=\u30b3\u30f3\u30b4\u5171\u548c\u56fd
territories.CF=\u4e2d\u592e\u30a2\u30d5\u30ea\u30ab\u5171\u548c\u56fd
-territories.CD=\u30b3\u30f3\u30b4\u6c11\u4e3b\u5171\u548c\u56fd
+territories.CD=\u30b3\u30f3\u30b4\u6c11\u4e3b\u5171\u548c\u56fd\uff08\u65e7\u30b6\u30a4\u30fc\u30eb\uff09
territories.CC=\u30b3\u30b3\u30b9 (\u30ad\u30fc\u30ea\u30f3\u30b0) \u8af8\u5cf6
territories.OM=\u30aa\u30de\u30fc\u30f3
territories.CA=\u30ab\u30ca\u30c0
+territories.419=\u30e9\u30c6\u30f3\u30a2\u30e1\u30ea\u30ab\u30fb\u30ab\u30ea\u30d6\u5730\u57df
territories.BZ=\u30d9\u30ea\u30fc\u30ba
territories.BY=\u30d9\u30e9\u30eb\u30fc\u30b7
territories.BW=\u30dc\u30c4\u30ef\u30ca
@@ -395,25 +531,28 @@ territories.BT=\u30d6\u30fc\u30bf\u30f3
territories.BS=\u30d0\u30cf\u30de
territories.BR=\u30d6\u30e9\u30b8\u30eb
territories.019=\u30a2\u30e1\u30ea\u30ab\u5927\u9678
-territories.018=\u5357\u30a2\u30d5\u30ea\u30ab
+territories.018=\u5357\u90e8\u30a2\u30d5\u30ea\u30ab
territories.NZ=\u30cb\u30e5\u30fc\u30b8\u30fc\u30e9\u30f3\u30c9
-territories.BO=\u30dc\u30ea\u30d3\u30a2
territories.017=\u4e2d\u90e8\u30a2\u30d5\u30ea\u30ab
+territories.BO=\u30dc\u30ea\u30d3\u30a2
territories.BN=\u30d6\u30eb\u30cd\u30a4
-territories.BM=\u30d0\u30fc\u30df\u30e5\u30fc\u30c0
territories.015=\u5317\u30a2\u30d5\u30ea\u30ab
+territories.BM=\u30d0\u30df\u30e5\u30fc\u30c0
territories.014=\u6771\u30a2\u30d5\u30ea\u30ab
+territories.BL=\u30b5\u30f3\u30fb\u30d0\u30eb\u30c6\u30eb\u30df\u30fc
territories.013=\u4e2d\u592e\u30a2\u30e1\u30ea\u30ab
territories.NU=\u30cb\u30a6\u30a8\u5cf6
territories.BJ=\u30d9\u30cb\u30f3
-territories.BI=\u30d6\u30eb\u30f3\u30b8
territories.011=\u897f\u30a2\u30d5\u30ea\u30ab
+territories.BI=\u30d6\u30eb\u30f3\u30b8
+territories.172=\u72ec\u7acb\u56fd\u5bb6\u5171\u540c\u4f53
territories.BH=\u30d0\u30fc\u30ec\u30fc\u30f3
territories.NR=\u30ca\u30a6\u30eb
territories.BG=\u30d6\u30eb\u30ac\u30ea\u30a2
territories.BF=\u30d6\u30eb\u30ad\u30ca\u30d5\u30a1\u30bd
territories.NP=\u30cd\u30d1\u30fc\u30eb
territories.BE=\u30d9\u30eb\u30ae\u30fc
+territories.ZZ=\u4e0d\u660e\u306a\u5730\u57df
territories.NO=\u30ce\u30eb\u30a6\u30a7\u30fc
territories.BD=\u30d0\u30f3\u30b0\u30e9\u30c7\u30b7\u30e5
territories.BB=\u30d0\u30eb\u30d0\u30c9\u30b9
@@ -434,24 +573,25 @@ territories.AU=\u30aa\u30fc\u30b9\u30c8\u30e9\u30ea\u30a2
territories.AT=\u30aa\u30fc\u30b9\u30c8\u30ea\u30a2
territories.AS=\u7c73\u9818\u30b5\u30e2\u30a2
territories.AR=\u30a2\u30eb\u30bc\u30f3\u30c1\u30f3
-territories.009=\u30aa\u30bb\u30a2\u30cb\u30a2
territories.AQ=\u5357\u6975\u5927\u9678
+territories.009=\u30aa\u30bb\u30a2\u30cb\u30a2
territories.MZ=\u30e2\u30b6\u30f3\u30d3\u30fc\u30af
territories.AO=\u30a2\u30f3\u30b4\u30e9
territories.MY=\u30de\u30ec\u30fc\u30b7\u30a2
territories.AN=\u30aa\u30e9\u30f3\u30c0\u9818\u30a2\u30f3\u30c6\u30a3\u30eb\u8af8\u5cf6
territories.MX=\u30e1\u30ad\u30b7\u30b3
-territories.005=\u5357\u30a2\u30e1\u30ea\u30ab
territories.AM=\u30a2\u30eb\u30e1\u30cb\u30a2
+territories.005=\u5357\u30a2\u30e1\u30ea\u30ab
territories.MW=\u30de\u30e9\u30a6\u30a3
territories.AL=\u30a2\u30eb\u30d0\u30cb\u30a2
territories.MV=\u30e2\u30eb\u30b8\u30d6
+territories.003=\u5317\u7c73
territories.ZA=\u5357\u30a2\u30d5\u30ea\u30ab
territories.MU=\u30e2\u30fc\u30ea\u30b7\u30e3\u30b9
territories.002=\u30a2\u30d5\u30ea\u30ab
territories.MT=\u30de\u30eb\u30bf
-territories.001=\u4e16\u754c
territories.AI=\u30a2\u30f3\u30ae\u30e9
+territories.001=\u4e16\u754c
territories.MS=\u30e2\u30f3\u30c8\u30bb\u30e9\u30c8\u5cf6
territories.MR=\u30e2\u30fc\u30ea\u30bf\u30cb\u30a2
territories.AG=\u30a2\u30f3\u30c6\u30a3\u30b0\u30a2\u30fb\u30d0\u30fc\u30d6\u30fc\u30c0
@@ -459,7 +599,7 @@ territories.MQ=\u30de\u30eb\u30c6\u30a3\u30cb\u30fc\u30af\u5cf6
territories.AF=\u30a2\u30d5\u30ac\u30cb\u30b9\u30bf\u30f3
territories.MP=\u5317\u30de\u30ea\u30a2\u30ca\u8af8\u5cf6
territories.AE=\u30a2\u30e9\u30d6\u9996\u9577\u56fd\u9023\u90a6
-territories.MO=\u4e2d\u83ef\u4eba\u6c11\u5171\u548c\u56fd\u30de\u30ab\u30aa\u7279\u5225\u884c\u653f\u533a
+territories.MO=\u30de\u30ab\u30aa
territories.AD=\u30a2\u30f3\u30c9\u30e9
territories.MN=\u30e2\u30f3\u30b4\u30eb
territories.MM=\u30df\u30e3\u30f3\u30de\u30fc
@@ -468,6 +608,8 @@ territories.MK=\u30de\u30b1\u30c9\u30cb\u30a2
territories.YT=\u30de\u30e8\u30c3\u30c8\u5cf6
territories.MH=\u30de\u30fc\u30b7\u30e3\u30eb\u8af8\u5cf6\u5171\u548c\u56fd
territories.MG=\u30de\u30c0\u30ac\u30b9\u30ab\u30eb
+territories.MF=\u30bb\u30f3\u30c8\u30fb\u30de\u30fc\u30c1\u30f3
+territories.ME=\u30e2\u30f3\u30c6\u30cd\u30b0\u30ed
territories.MD=\u30e2\u30eb\u30c9\u30d0
territories.MC=\u30e2\u30ca\u30b3
territories.MA=\u30e2\u30ed\u30c3\u30b3
@@ -491,27 +633,29 @@ territories.KZ=\u30ab\u30b6\u30d5\u30b9\u30bf\u30f3
territories.KY=\u30b1\u30a4\u30de\u30f3\u8af8\u5cf6
territories.KW=\u30af\u30a6\u30a7\u30fc\u30c8
territories.145=\u897f\u30a2\u30b8\u30a2
+territories.143=\u4e2d\u592e\u30a2\u30b8\u30a2
territories.142=\u30a2\u30b8\u30a2
territories.KR=\u5927\u97d3\u6c11\u56fd
territories.KP=\u671d\u9bae\u6c11\u4e3b\u4e3b\u7fa9\u4eba\u6c11\u5171\u548c\u56fd
territories.KN=\u30bb\u30f3\u30c8\u30af\u30ea\u30b9\u30c8\u30d5\u30a1\u30fc\u30fb\u30cd\u30a4\u30d3\u30b9
territories.KM=\u30b3\u30e2\u30ed
territories.KI=\u30ad\u30ea\u30d0\u30b9
-territories.WS=\u897f\u30b5\u30e2\u30a2
+territories.WS=\u30b5\u30e2\u30a2
territories.KH=\u30ab\u30f3\u30dc\u30b8\u30a2
territories.KG=\u30ad\u30eb\u30ae\u30b9\u30bf\u30f3
territories.KE=\u30b1\u30cb\u30a2
-territories.WF=\u30a6\u30a9\u30ea\u30b9\u30fb\u30d5\u30c8\u30fc\u30ca
+territories.WF=\u30a6\u30a9\u30ea\u30b9\u30fb\u30d5\u30c4\u30ca
territories.JP=\u65e5\u672c
territories.JO=\u30e8\u30eb\u30c0\u30f3
territories.JM=\u30b8\u30e3\u30de\u30a4\u30ab
territories.VU=\u30d0\u30cc\u30a2\u30c4
+territories.JE=\u30b8\u30e3\u30fc\u30b8\u30fc
territories.VN=\u30d9\u30c8\u30ca\u30e0
-territories.VI=\u7c73\u9818\u30d0\u30fc\u30b8\u30f3\u8af8\u5cf6
-territories.VG=\u82f1\u9818\u30d0\u30fc\u30b8\u30f3\u8af8\u5cf6
+territories.VI=\u30a2\u30e1\u30ea\u30ab\u9818\u30f4\u30a1\u30fc\u30b8\u30f3\u8af8\u5cf6
+territories.VG=\u30a4\u30ae\u30ea\u30b9\u9818\u30f4\u30a1\u30fc\u30b8\u30f3\u8af8\u5cf6
territories.VE=\u30d9\u30cd\u30ba\u30a8\u30e9
territories.VC=\u30bb\u30f3\u30c8\u30d3\u30f3\u30bb\u30f3\u30c8\u30fb\u30b0\u30ec\u30ca\u30c7\u30a3\u30fc\u30f3\u8af8\u5cf6
-territories.VA=\u30ed\u30fc\u30de\u6559\u7687\u5e81 (\u30d0\u30c1\u30ab\u30f3\u5e02\u56fd)
+territories.VA=\u30d0\u30c1\u30ab\u30f3\u5e02\u56fd
territories.IT=\u30a4\u30bf\u30ea\u30a2
territories.IS=\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9
territories.IR=\u30a4\u30e9\u30f3
@@ -520,8 +664,9 @@ territories.UZ=\u30a6\u30ba\u30d9\u30ad\u30b9\u30bf\u30f3
territories.IO=\u82f1\u9818\u30a4\u30f3\u30c9\u6d0b\u690d\u6c11\u5730
territories.UY=\u30a6\u30eb\u30b0\u30a2\u30a4
territories.IN=\u30a4\u30f3\u30c9
+territories.IM=\u30de\u30f3\u5cf6
territories.IL=\u30a4\u30b9\u30e9\u30a8\u30eb
-territories.US=\u30a2\u30e1\u30ea\u30ab\u5408\u8846\u56fd
+territories.US=\u30a2\u30e1\u30ea\u30ab
territories.IE=\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9
territories.ID=\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2
territories.UM=\u7c73\u9818\u592a\u5e73\u6d0b\u8af8\u5cf6
@@ -532,17 +677,17 @@ territories.HT=\u30cf\u30a4\u30c1
territories.HR=\u30af\u30ed\u30a2\u30c1\u30a2
territories.TZ=\u30bf\u30f3\u30b6\u30cb\u30a2
territories.HN=\u30db\u30f3\u30b8\u30e5\u30e9\u30b9
-territories.HM=\u30cf\u30fc\u30c9\u30fb\u30a2\u30f3\u30c9\u30fb\u30de\u30af\u30c9\u30ca\u30eb\u30c9\u30fb\u30a2\u30a4\u30e9\u30f3\u30ba
+territories.HM=\u30cf\u30fc\u30c9\u5cf6\u30fb\u30de\u30af\u30c9\u30ca\u30eb\u30c9\u8af8\u5cf6
territories.TW=\u53f0\u6e7e
territories.TV=\u30c4\u30d0\u30eb
-territories.HK=\u4e2d\u83ef\u4eba\u6c11\u5171\u548c\u56fd\u9999\u6e2f\u7279\u5225\u884c\u653f\u533a
+territories.HK=\u9999\u6e2f
territories.TT=\u30c8\u30ea\u30cb\u30c0\u30fc\u30c9\u30fb\u30c8\u30d0\u30b4
territories.TR=\u30c8\u30eb\u30b3
territories.TO=\u30c8\u30f3\u30ac
territories.TN=\u30c1\u30e5\u30cb\u30b8\u30a2
territories.TM=\u30c8\u30eb\u30af\u30e1\u30cb\u30b9\u30bf\u30f3
+languages.gwi=\u30b0\u30a6\u30a3\u30c3\u30c1\u30f3\u8a9e
languages.akk=\u30a2\u30c3\u30ab\u30c9\u8a9e
-languages.gwi=\u30af\u30c1\u30f3\u8a9e
languages.eka=\u30a8\u30ab\u30b8\u30e5\u30af\u8a9e
languages.ijo=\u30a4\u30b8\u30e7\u30fc\u8a9e
languages.xh=\u30b3\u30b5\u8a9e
@@ -555,15 +700,16 @@ languages.pon=\u30dd\u30f3\u30da\u30a4\u8a9e
languages.min=\u30df\u30ca\u30f3\u30ab\u30d0\u30a6\u8a9e
languages.suk=\u30b9\u30af\u30de\u8a9e
languages.wo=\u30a6\u30a9\u30ed\u30d5\u8a9e
-languages.kut=\u30af\u30c6\u30ca\u30a4\u8a9e
languages.lol=\u30e2\u30f3\u30b4\u8a9e
+languages.kut=\u30af\u30c6\u30ca\u30a4\u8a9e
languages.mic=\u30df\u30af\u30de\u30af\u8a9e
languages.wa=\u30ef\u30ed\u30f3\u8a9e
languages.kum=\u30af\u30e0\u30af\u8a9e
languages.zap=\u30b6\u30dd\u30c6\u30c3\u30af\u8a9e
+languages.ain=\u30a2\u30a4\u30cc\u8a9e
languages.cus=\u30af\u30b7\u30e5\u8af8\u8a9e
+languages.jbo=\u30ed\u30b8\u30d0\u30f3\u8a9e
languages.doi=\u30c9\u30b0\u30ea\u8a9e
-languages.jbo=Lojban\u8a9e
languages.vo=\u30dc\u30e9\u30d4\u30e5\u30af\u8a9e
languages.oto=\u30aa\u30c8\u30df\u8a9e\u65cf
languages.vi=\u30d9\u30c8\u30ca\u30e0\u8a9e
@@ -572,7 +718,7 @@ languages.rar=\u30e9\u30ed\u30c8\u30ac\u8a9e
languages.ve=\u30d9\u30f3\u30c0\u8a9e
languages.rap=\u30e9\u30d1\u30cc\u30a4\u8a9e
languages.raj=\u30e9\u30fc\u30b8\u30e3\u30b9\u30bf\u30fc\u30f3\u8a9e
-languages.ota=\u30aa\u30b9\u30de\u30f3\u30c8\u30eb\u30b3\u8a9e (1500-1928)
+languages.ota=\u30aa\u30b9\u30de\u30f3\u30c8\u30eb\u30b3\u8a9e
languages.nzi=\u30f3\u30bc\u30de\u8a9e
languages.nap=\u30ca\u30dd\u30ea\u8a9e
languages.uz=\u30a6\u30ba\u30d9\u30af\u8a9e
@@ -587,23 +733,26 @@ languages.egy=\u53e4\u4ee3\u30a8\u30b8\u30d7\u30c8\u8a9e
languages.ug=\u30a6\u30a4\u30b0\u30eb\u8a9e
languages.fan=\u30d5\u30a1\u30f3\u30b0\u8a9e
languages.ssa=\u30ca\u30a4\u30eb\u30fb\u30b5\u30cf\u30e9\u8af8\u8a9e
+languages.mga=\u4e2d\u671f\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e
languages.bat=\u30d0\u30eb\u30c8\u8af8\u8a9e
-languages.mga=\u4e2d\u671f\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e (900-1200)
languages.nyo=\u30cb\u30e7\u30ed\u8a9e
languages.bas=\u30d0\u30b5\u8a9e
languages.nyn=\u30cb\u30e3\u30f3\u30b3\u30ec\u8a9e
languages.nym=\u30cb\u30e3\u30e0\u30a6\u30a7\u30b8\u8a9e
+languages.gsw=\u30b9\u30a4\u30b9\u30c9\u30a4\u30c4\u8a9e\uff08\u30b9\u30a4\u30b9\uff09
languages.hmn=\u30d5\u30e2\u30f3\u8a9e
languages.ban=\u30d0\u30ea\u8a9e
languages.osa=\u30aa\u30bb\u30fc\u30b8\u8a9e
languages.bal=\u30d0\u30eb\u30fc\u30c1\u30fc\u8a9e
languages.ty=\u30bf\u30d2\u30c1\u8a9e
languages.bai=\u30d0\u30df\u30ec\u30b1\u8a9e\u65cf
-languages.tw=\u30c8\u30a5\u30a4\u8a9e
+languages.tw=\u30c8\u30a6\u30a3\u8a9e
languages.srr=\u30bb\u30ec\u30eb\u8a9e
languages.tli=\u30c8\u30ea\u30f3\u30ae\u30c3\u30c8\u8a9e
+languages.tlh=\u30af\u30ea\u30f3\u30b4\u30f3\u8a9e
languages.tt=\u30bf\u30bf\u30fc\u30eb\u8a9e
languages.ts=\u30c4\u30a9\u30f3\u30ac\u8a9e
+languages.srn=\u30b9\u30ea\u30ca\u30e0\u8a9e
languages.bad=\u30d0\u30f3\u30c0\u8a9e
languages.tr=\u30c8\u30eb\u30b3\u8a9e
languages.to=\u30c8\u30f3\u30ac\u8a9e
@@ -616,16 +765,17 @@ languages.kru=\u30af\u30eb\u30af\u8a9e
languages.tg=\u30bf\u30b8\u30af\u8a9e
languages.byn=\u30d3\u30ea\u30f3\u8a9e
languages.te=\u30c6\u30eb\u30b0\u8a9e
-languages.csb=\u30ab\u30b7\u30e5\u30fc\u30d6\u8a9e
languages.kro=\u30af\u30eb\u30fc\u8a9e
+languages.csb=\u30ab\u30b7\u30e5\u30fc\u30d6\u8a9e
languages.ta=\u30bf\u30df\u30fc\u30eb\u8a9e
+languages.krl=\u30ab\u30ec\u30ea\u30a2\u8a9e
languages.tkl=\u30c8\u30b1\u30e9\u30a6\u8a9e
languages.efi=\u30a8\u30d5\u30a3\u30c3\u30af\u8a9e
languages.sw=\u30b9\u30ef\u30d2\u30ea\u8a9e
languages.sv=\u30b9\u30a6\u30a7\u30fc\u30c7\u30f3\u8a9e
languages.su=\u30b9\u30f3\u30c0\u8a9e
languages.krc=\u30ab\u30e9\u30c1\u30e3\u30a4\u8a9e
-languages.st=\u5357\u30bb\u30bd\u30c8\u8a9e
+languages.st=\u5357\u90e8\u30bd\u30c8\u8a9e
languages.ss=\u30b7\u30b9\u30ef\u30c6\u30a3\u8a9e
languages.sr=\u30bb\u30eb\u30d3\u30a2\u8a9e
languages.sq=\u30a2\u30eb\u30d0\u30cb\u30a2\u8a9e
@@ -636,13 +786,13 @@ languages.afh=\u30a2\u30d5\u30ea\u30d2\u30ea\u8a9e
languages.sn=\u30b7\u30e7\u30ca\u8a9e
languages.sm=\u30b5\u30e2\u30a2\u8a9e
languages.sl=\u30b9\u30ed\u30d9\u30cb\u30a2\u8a9e
-languages.grc=\u53e4\u4ee3\u30ae\u30ea\u30b7\u30e3\u8a9e (1453\u307e\u3067)
+languages.grc=\u53e4\u4ee3\u30ae\u30ea\u30b7\u30e3\u8a9e
languages.sk=\u30b9\u30ed\u30d0\u30ad\u30a2\u8a9e
languages.grb=\u30b0\u30ec\u30dc\u8a9e
languages.si=\u30b7\u30f3\u30cf\u30e9\u8a9e
-languages.sh=\u30bb\u30eb\u30dc\u30fb\u30af\u30ed\u30a2\u30c1\u30a2\u8a9e
-languages.afa=\u30bb\u30e0\u30fb\u30cf\u30e0\u8af8\u8a9e
+languages.sh=\u30bb\u30eb\u30dc\uff1d\u30af\u30ed\u30a2\u30c1\u30a2\u8a9e
languages.crh=\u30af\u30ea\u30df\u30a2\u30fb\u30bf\u30bf\u30fc\u30eb\u8a9e
+languages.afa=\u30bb\u30e0\u30fb\u30cf\u30e0\u8af8\u8a9e
languages.sg=\u30b5\u30f3\u30b4\u8a9e
languages.se=\u5317\u30b5\u30fc\u30df\u8a9e
languages.sd=\u30b7\u30f3\u30c9\u8a9e
@@ -650,13 +800,16 @@ languages.udm=\u30a6\u30c9\u30e0\u30eb\u30c8\u8a9e
languages.sc=\u30b5\u30eb\u30c7\u30fc\u30cb\u30e3\u8a9e
languages.sa=\u30b5\u30f3\u30b9\u30af\u30ea\u30c3\u30c8\u8a9e
languages.rw=\u30eb\u30ef\u30f3\u30c0\u8a9e
+languages.nwc=\u53e4\u5178\u30cd\u30ef\u30fc\u30eb\u8a9e
languages.ru=\u30ed\u30b7\u30a2\u8a9e
languages.mdr=\u30de\u30f3\u30c0\u30eb\u8a9e
languages.ro=\u30eb\u30fc\u30de\u30cb\u30a2\u8a9e
-languages.rn=\u30eb\u30f3\u30b8\u8a9e
+languages.rn=\u30eb\u30f3\u30c7\u30a3\u8a9e
languages.rm=\u30ec\u30c8\u30fb\u30ed\u30de\u30f3\u8a9e
+languages.fr_CH=\u30d5\u30e9\u30f3\u30b9\u8a9e\uff08\u30b9\u30a4\u30b9\uff09
languages.mdf=\u30e2\u30af\u30b7\u30e3\u8a9e
languages.tiv=\u30c6\u30a3\u30d6\u8a9e
+languages.fr_CA=\u30d5\u30e9\u30f3\u30b9\u8a9e\uff08\u30ab\u30ca\u30c0\uff09
languages.ady=\u30a2\u30c7\u30a3\u30b2\u8a9e
languages.zun=\u30ba\u30cb\u8a9e
languages.kpe=\u30af\u30da\u30ec\u8a9e
@@ -664,25 +817,27 @@ languages.qu=\u30b1\u30c1\u30e5\u30a2\u8a9e
languages.tig=\u30c6\u30a3\u30b0\u30ec\u8a9e
languages.son=\u30bd\u30f3\u30ac\u30a4\u8a9e
languages.cpp=\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e\u304c\u57fa\u76e4\u306e\u6df7\u6210\u8a9e\u30fb\u6df7\u5408\u8a9e
+languages.rup=\u30a2\u30eb\u30fc\u30de\u30cb\u30a2\u8a9e
languages.sog=\u30bd\u30b0\u30c9\u8a9e
languages.ada=\u30a2\u30c0\u30f3\u30b0\u30e1\u8a9e
-languages.cpf=\u30d5\u30e9\u30f3\u30b9\u8a9e\u304c\u57fa\u76e4\u306e\u6df7\u6210\u8a9e\u30fb\u6df7\u5408\u8a9e
-languages.hit=\u30d2\u30c3\u30bf\u30a4\u30c8\u8a9e
languages.kos=\u30b3\u30b7\u30e3\u30a8\u8a9e
+languages.hit=\u30d2\u30c3\u30bf\u30a4\u30c8\u8a9e
+languages.cpf=\u30d5\u30e9\u30f3\u30b9\u8a9e\u304c\u57fa\u76e4\u306e\u6df7\u6210\u8a9e\u30fb\u6df7\u5408\u8a9e
languages.cpe=\u82f1\u8a9e\u304c\u57fa\u76e4\u306e\u6df7\u6210\u8a9e\u30fb\u6df7\u5408\u8a9e
languages.him=\u30d2\u30de\u30c1\u30e3\u30eb\u8a9e
-languages.got=\u30b4\u30fc\u30c8\u8a9e
-languages.hil=\u30d2\u30ea\u30ac\u30a4\u30ce\u30f3\u8a9e
languages.kok=\u30b3\u30f3\u30ab\u30cb\u8a9e
+languages.hil=\u30d2\u30ea\u30ac\u30a4\u30ce\u30f3\u8a9e
+languages.got=\u30b4\u30fc\u30c8\u8a9e
languages.gor=\u30b4\u30ed\u30f3\u30bf\u30ed\u8a9e
languages.gon=\u30b4\u30fc\u30f3\u30c7\u30a3\u30fc\u8a9e
languages.din=\u30c7\u30a3\u30f3\u30ab\u8a9e
languages.nub=\u30cc\u30d3\u30a2\u8a9e\u65cf
languages.pt=\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e
-languages.ps=\u30d1\u30b7\u30e5\u30c8\u30fc\u8a9e
+languages.ps=\u30d1\u30b7\u30e5\u30c8\u30a5\u30fc\u8a9e
languages.fur=\u30d5\u30ea\u30a6\u30ea\u8a9e
languages.phn=\u30d5\u30a7\u30cb\u30ad\u30a2\u8a9e
-languages.goh=\u53e4\u9ad8\u30c9\u30a4\u30c4\u8a9e (\u7d04750-1050)
+languages.de_CH=\u6b63\u7d71\u30c9\u30a4\u30c4\u8a9e\uff08\u30b9\u30a4\u30b9\uff09
+languages.goh=\u53e4\u9ad8\u30c9\u30a4\u30c4\u8a9e
languages.snk=\u30bd\u30cb\u30f3\u30b1\u8a9e
languages.cop=\u30b3\u30d7\u30c8\u8a9e
languages.yap=\u30e4\u30c3\u30d7\u8a9e
@@ -692,6 +847,7 @@ languages.phi=\u30d5\u30a3\u30ea\u30d4\u30f3\u8af8\u8a9e
languages.pl=\u30dd\u30fc\u30e9\u30f3\u30c9\u8a9e
languages.ace=\u30a2\u30c1\u30a7\u30fc\u8a9e
languages.pi=\u30d1\u30fc\u30ea\u8a9e
+languages.pt_PT=\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e\uff08\u30a4\u30d9\u30ea\u30a2\u534a\u5cf6\uff09
languages.pa=\u30d1\u30f3\u30b8\u30e3\u30d6\u8a9e
languages.bug=\u30d6\u30ae\u8a9e
languages.iba=\u30a4\u30d0\u30f3\u8a9e
@@ -706,59 +862,65 @@ languages.man=\u30de\u30f3\u30c7\u30a3\u30f3\u30b4\u8a9e
languages.smj=\u30eb\u30ec\u30fb\u30b5\u30fc\u30df\u8a9e
languages.smi=\u30b5\u30fc\u30df\u8af8\u8a9e
languages.mak=\u30de\u30ab\u30c3\u30b5\u30eb\u8a9e
-languages.om=\u30ac\u30e9\u8a9e
+languages.om=\u30aa\u30ed\u30e2\u8a9e
languages.mai=\u30de\u30a4\u30c6\u30a3\u30ea\u30fc\u8a9e
languages.oj=\u30aa\u30d6\u30b8\u30ef\u8a9e
languages.mag=\u30de\u30ac\u30d2\u30fc\u8a9e
languages.mad=\u30de\u30c9\u30a5\u30e9\u8a9e
languages.sma=\u5357\u30b5\u30fc\u30df\u8a9e
-languages.oc=\u30d7\u30ed\u30f4\u30a1\u30f3\u30b9\u8a9e
-languages.nso=\u5317\u30bb\u30bd\u30c8\u8a9e
+languages.oc=\u30aa\u30c3\u30af\u8a9e
+languages.nso=\u5317\u90e8\u30bd\u30c8\u8a9e
languages.btk=\u30d0\u30bf\u30af\u8a9e
languages.myv=\u30a8\u30eb\u30b8\u30e3\u8a9e
+languages.es_ES=\u30b9\u30da\u30a4\u30f3\u8a9e\uff08\u30a4\u30d9\u30ea\u30a2\u534a\u5cf6\uff09
+languages.de_AT=\u30c9\u30a4\u30c4\u8a9e\uff08\u30aa\u30fc\u30b9\u30c8\u30ea\u30a2\uff09
languages.dgr=\u30c9\u30b0\u30ea\u30d6\u8a9e
languages.ny=\u30cb\u30e3\u30f3\u30b8\u30e3\u8a9e\u3001\u30c1\u30c1\u30a7\u30ef\u8a9e\u3001\u30c1\u30a7\u30ef\u8a9e
-languages.myn=\u30de\u30e4\u8a9e
+languages.myn=\u30de\u30e4\u8a9e\u65cf
languages.nv=\u30ca\u30d0\u30db\u8a9e
languages.kmb=\u30ad\u30f3\u30d6\u30f3\u30c9\u30a5\u8a9e
languages.nr=\u5357\u30f3\u30c7\u30d9\u30ec\u8a9e
-languages.gmh=\u4e2d\u9ad8\u30c9\u30a4\u30c4\u8a9e (\u7d041050-1500)
+languages.gmh=\u4e2d\u9ad8\u30c9\u30a4\u30c4\u8a9e
languages.no=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e
-languages.nn=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30cb\u30e5\u30fc\u30ce\u30eb\u30b9\u30af)
+languages.nn=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30cb\u30fc\u30ce\u30b7\u30e5\u30af)
languages.nl=\u30aa\u30e9\u30f3\u30c0\u8a9e
+languages.root=\u30eb\u30fc\u30c8
languages.ng=\u30f3\u30c9\u30f3\u30ac\u8a9e
languages.sla=\u30b9\u30e9\u30d6\u8af8\u8a9e
languages.ne=\u30cd\u30d1\u30fc\u30eb\u8a9e
languages.nd=\u5317\u30f3\u30c7\u30d9\u30ec\u8a9e
languages.cmc=\u30c1\u30e3\u30e0\u8a9e\u65cf
languages.tet=\u30c6\u30c8\u30a5\u30f3\u8a9e
-languages.nb=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30dc\u30af\u30e2\u30fc\u30eb)
+languages.nb=\u30ce\u30eb\u30a6\u30a7\u30fc\u8a9e (\u30d6\u30fc\u30af\u30e2\u30fc\u30eb)
languages.na=\u30ca\u30a6\u30eb\u8a9e
languages.ter=\u30c6\u30ec\u30fc\u30ce\u8a9e
languages.tem=\u30c6\u30e0\u30cd\u8a9e
languages.my=\u30d3\u30eb\u30de\u8a9e
languages.lez=\u30ec\u30ba\u30ae\u8a9e
languages.mt=\u30de\u30eb\u30bf\u8a9e
-languages.peo=\u53e4\u4ee3\u30da\u30eb\u30b7\u30a2\u8a9e (\u7d04600-400 B.C.)
+languages.frs=\u6771\u30d5\u30ea\u30b8\u30a2\u8a9e
+languages.peo=\u53e4\u4ee3\u30da\u30eb\u30b7\u30a2\u8a9e
languages.ms=\u30de\u30ec\u30fc\u8a9e
languages.mr=\u30de\u30e9\u30fc\u30c6\u30a3\u30fc\u8a9e
-languages.fro=\u53e4\u30d5\u30e9\u30f3\u30b9\u8a9e (842-\u7d041400)
+languages.fro=\u53e4\u30d5\u30e9\u30f3\u30b9\u8a9e
languages.mo=\u30e2\u30eb\u30c0\u30d3\u30a2\u8a9e
languages.mn=\u30e2\u30f3\u30b4\u30eb\u8a9e
-languages.frm=\u4e2d\u4e16\u30d5\u30e9\u30f3\u30b9\u8a9e (\u7d041400-1600)
+languages.frm=\u4e2d\u671f\u30d5\u30e9\u30f3\u30b9\u8a9e
languages.ml=\u30de\u30e9\u30e4\u30fc\u30e9\u30e0\u8a9e
languages.jrb=\u30e6\u30c0\u30e4\u30fb\u30a2\u30e9\u30d3\u30a2\u8a9e
languages.mk=\u30de\u30b1\u30c9\u30cb\u30a2\u8a9e
languages.mi=\u30de\u30aa\u30ea\u8a9e
languages.mh=\u30de\u30fc\u30b7\u30e3\u30eb\u8a9e
-languages.mg=\u30de\u30e9\u30ac\u30b7\u30fc\u8a9e
+languages.mg=\u30de\u30c0\u30ac\u30b9\u30ab\u30eb\u8a9e
+languages.nqo=\u30f3\u30b3\u8a9e
languages.mwr=\u30de\u30fc\u30eb\u30ef\u30fc\u30ea\u30fc\u8a9e
languages.bra=\u30d6\u30e9\u30b8\u8a9e
-languages.lv=\u30e9\u30c8\u30d3\u30a2\u8a9e
+languages.mwl=\u30df\u30e9\u30f3\u30c0\u8a9e
languages.den=\u30b9\u30ec\u30a4\u30d3\u30fc\u8a9e
+languages.lv=\u30e9\u30c8\u30d3\u30a2\u8a9e
languages.lu=\u30eb\u30d0\u30fb\u30ab\u30bf\u30f3\u30ac\u8a9e
-languages.lt=\u30ea\u30c8\u30a2\u30cb\u30a2\u8a9e
languages.del=\u30c7\u30e9\u30a6\u30a7\u30a2\u8a9e
+languages.lt=\u30ea\u30c8\u30a2\u30cb\u30a2\u8a9e
languages.lo=\u30e9\u30aa\u8a9e
languages.ln=\u30ea\u30f3\u30ac\u30e9\u8a9e
languages.li=\u30ea\u30f3\u30d6\u30eb\u30d5\u8a9e
@@ -779,7 +941,8 @@ languages.kr=\u30ab\u30cc\u30ea\u8a9e
languages.awa=\u30a2\u30ef\u30c7\u30a3\u30fc\u8a9e
languages.ko=\u97d3\u56fd\u8a9e
languages.kn=\u30ab\u30f3\u30ca\u30c0\u8a9e
-languages.km=\u30ab\u30f3\u30dc\u30b8\u30a2\u8a9e
+languages.km=\u30af\u30e1\u30fc\u30eb\u8a9e
+languages.en_GB=\u30a4\u30ae\u30ea\u30b9\u82f1\u8a9e
languages.kl=\u30b0\u30ea\u30fc\u30f3\u30e9\u30f3\u30c9\u8a9e
languages.kk=\u30ab\u30b6\u30d5\u8a9e
languages.rom=\u30ed\u30de\u30fc\u30cb\u30fc\u8a9e
@@ -811,38 +974,38 @@ languages.iu=\u30a4\u30cc\u30af\u30a6\u30c6\u30a3\u30c8\u30c3\u30c8\u8a9e
languages.pap=\u30d1\u30d4\u30a2\u30e1\u30f3\u30c8\u8a9e
languages.it=\u30a4\u30bf\u30ea\u30a2\u8a9e
languages.sgn=\u624b\u307e\u306d\u8a00\u8a9e
-languages.kha=\u30ab\u30b7\u8a9e
languages.is=\u30a2\u30a4\u30b9\u30e9\u30f3\u30c9\u8a9e
+languages.kha=\u30ab\u30b7\u8a9e
languages.chr=\u30c1\u30a7\u30ed\u30ad\u30fc\u8a9e
languages.pam=\u30d1\u30f3\u30d1\u30f3\u30ac\u8a9e
languages.pal=\u30d1\u30d5\u30e9\u30f4\u30a3\u8a9e
languages.chp=\u30c1\u30da\u30ef\u30a4\u30a2\u30f3\u8a9e
-languages.cho=\u30c1\u30e7\u30af\u30c8\u30fc\u8a9e
languages.io=\u30a4\u30c9\u8a9e
+languages.cho=\u30c1\u30e7\u30af\u30c8\u30fc\u8a9e
languages.chn=\u30d3\u30fc\u30c1\u30fb\u30e9\u30fb\u30de\u30fc \u7b49
languages.chm=\u30de\u30ea\u8a9e
languages.tyv=\u30c8\u30a5\u30f4\u30a1\u8a9e
languages.bnt=\u30d0\u30f3\u30c8\u30a5\u8af8\u8a9e
languages.pag=\u30d1\u30f3\u30ac\u30b7\u30ca\u30f3\u8a9e
-languages.chk=\u30c1\u30e5\u30fc\u30af\u8a9e
languages.ik=\u30a4\u30cc\u30d4\u30a2\u30c3\u30af\u8a9e
-languages.haw=\u30cf\u30ef\u30a4\u8a9e
+languages.chk=\u30c1\u30e5\u30fc\u30af\u8a9e
languages.ii=\u56db\u5ddd\u30a4\u8a9e
+languages.haw=\u30cf\u30ef\u30a4\u8a9e
languages.lam=\u30e9\u30f3\u30d0\u8a9e
-languages.chg=\u30c1\u30e3\u30ac\u30bf\u30a4\u8a9e
languages.ig=\u30a4\u30dc\u8a9e
-languages.sga=\u53e4\u671f\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e (900\u307e\u3067)
+languages.chg=\u30c1\u30e3\u30ac\u30bf\u30a4\u8a9e
+languages.sga=\u53e4\u671f\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e
languages.paa=\u30d1\u30d7\u30a2\u8af8\u8a9e
-languages.ie=\u56fd\u969b\u8a9e
+languages.ie=\u30a4\u30f3\u30bf\u30fc\u30ea\u30f3\u30b0\u8a9e
languages.id=\u30a4\u30f3\u30c9\u30cd\u30b7\u30a2\u8a9e
languages.lah=\u30e9\u30d5\u30f3\u30c0\u30fc\u8a9e
-languages.chb=\u30c1\u30d6\u30c1\u30e3\u8a9e
languages.day=\u30c0\u30e4\u30af\u8a9e
-languages.ia=\u56fd\u969b\u8a9e
+languages.chb=\u30c1\u30d6\u30c1\u30e3\u8a9e
+languages.ia=\u30a4\u30f3\u30bf\u30fc\u30ea\u30f3\u30b0\u30a2\u8a9e
languages.lad=\u30e9\u30b8\u30ce\u8a9e
-languages.dar=\u30c0\u30eb\u30ac\u30f3\u8a9e
-languages.hai=\u30cf\u30a4\u30c0\u8a9e
languages.hz=\u30d8\u30ec\u30ed\u8a9e
+languages.hai=\u30cf\u30a4\u30c0\u8a9e
+languages.dar=\u30c0\u30eb\u30ac\u30f3\u8a9e
languages.hy=\u30a2\u30eb\u30e1\u30cb\u30a2\u8a9e
languages.ath=\u30a2\u30b5\u30d1\u30b9\u30ab\u30f3\u8a9e\u65cf
languages.hu=\u30cf\u30f3\u30ac\u30ea\u30fc\u8a9e
@@ -854,6 +1017,7 @@ languages.hi=\u30d2\u30f3\u30c7\u30a3\u30fc\u8a9e
languages.dyu=\u30c7\u30a5\u30a6\u30e9\u8a9e
languages.he=\u30d8\u30d6\u30e9\u30a4\u8a9e
languages.ast=\u30a2\u30b9\u30c8\u30a5\u30ea\u30a2\u30b9\u8a9e
+languages.kfo=\u30b3\u30ed\u8a9e
languages.ha=\u30cf\u30a6\u30b5\u8a9e
languages.wen=\u30bd\u30eb\u30d3\u30a2\u8a9e\u65cf
languages.gv=\u30de\u30f3\u5cf6\u8a9e
@@ -861,12 +1025,13 @@ languages.gu=\u30b0\u30b8\u30e3\u30e9\u30fc\u30c8\u8a9e
languages.sem=\u30bb\u30e0\u8af8\u8a9e
languages.sel=\u30bb\u30ea\u30af\u30d7\u8a9e
languages.iro=\u30a4\u30ed\u30b3\u30a4\u8a9e\u65cf
-languages.gn=\u30b0\u30ef\u30e9\u30cb\u8a9e
+languages.gn=\u30b0\u30a2\u30e9\u30cb\u30fc\u8a9e
languages.gl=\u30ac\u30ea\u30b7\u30a2\u8a9e
+languages.en_CA=\u30ab\u30ca\u30c0\u82f1\u8a9e
languages.arw=\u30a2\u30e9\u30ef\u30af\u8a9e
-languages.gd=\u30b9\u30b3\u30c3\u30c8\u30e9\u30f3\u30c9\u30fb\u30b2\u30fc\u30eb\u8a9e
-languages.art=\u4eba\u5de5\u8af8\u8a9e
languages.gez=\u30b2\u30a8\u30ba\u8a9e
+languages.art=\u4eba\u5de5\u8af8\u8a9e
+languages.gd=\u30b9\u30b3\u30c3\u30c8\u30e9\u30f3\u30c9\u30fb\u30b2\u30fc\u30eb\u8a9e
languages.ira=\u30a4\u30e9\u30f3\u8a9e
languages.ga=\u30a2\u30a4\u30eb\u30e9\u30f3\u30c9\u8a9e
languages.arp=\u30a2\u30e9\u30d1\u30db\u30fc\u8a9e
@@ -875,8 +1040,8 @@ languages.fy=\u30d5\u30ea\u30b8\u30a2\u8a9e
languages.bla=\u30b7\u30af\u30b7\u30ab\u8a9e
languages.gem=\u30b2\u30eb\u30de\u30f3\u8af8\u8a9e
languages.ypk=\u30e6\u30d4\u30c3\u30af\u8a9e\u65cf
-languages.fr=\u30d5\u30e9\u30f3\u30b9\u8a9e
languages.arc=\u30a2\u30e9\u30e0\u8a9e
+languages.fr=\u30d5\u30e9\u30f3\u30b9\u8a9e
languages.fo=\u30d5\u30a7\u30ed\u30fc\u8a9e
languages.cel=\u30b1\u30eb\u30c8\u8af8\u8a9e
languages.fj=\u30d5\u30a3\u30b8\u30fc\u8a9e
@@ -885,9 +1050,12 @@ languages.ff=\u30d5\u30e9\u30cb\u8a9e
languages.tvl=\u30c4\u30d0\u30eb\u8a9e
languages.ceb=\u30bb\u30d6\u30a2\u30ce\u8a9e
languages.fa=\u30da\u30eb\u30b7\u30a2\u8a9e
+languages.zh_Hans=\u7c21\u4f53\u4e2d\u56fd\u8a9e
+languages.zh_Hant=\u7e41\u4f53\u4e2d\u56fd\u8a9e
languages.eu=\u30d0\u30b9\u30af\u8a9e
languages.sco=\u30b9\u30b3\u30c3\u30c8\u30e9\u30f3\u30c9\u8a9e
languages.et=\u30a8\u30b9\u30c8\u30cb\u30a2\u8a9e
+languages.scn=\u30b7\u30c1\u30ea\u30a2\u8a9e
languages.es=\u30b9\u30da\u30a4\u30f3\u8a9e
languages.eo=\u30a8\u30b9\u30da\u30e9\u30f3\u30c8\u8a9e
languages.en=\u82f1\u8a9e
@@ -897,19 +1065,24 @@ languages.niu=\u30cb\u30a6\u30fc\u30a8\u30a4\u8a9e
languages.tup=\u30c8\u30a5\u30d4\u8a9e\u65cf
languages.ee=\u30a8\u30a6\u30a7\u8a9e
languages.tum=\u30c8\u30a5\u30f3\u30d6\u30ab\u8a9e
+languages.nl_BE=\u30d5\u30ec\u30df\u30c3\u30b7\u30e5\u8a9e
+languages.es_419=\u30b9\u30da\u30a4\u30f3\u8a9e\uff08\u30e9\u30c6\u30f3\u30a2\u30e1\u30ea\u30ab\uff09
languages.mos=\u30e2\u30b7\u8a9e
-languages.dz=\u30d6\u30fc\u30bf\u30f3\u8a9e
+languages.dz=\u30be\u30f3\u30ab\u8a9e
+languages.kcg=\u30ab\u30bf\u30d6\u8a9e
languages.nic=\u30cb\u30b8\u30a7\u30fc\u30eb\u30fb\u30b3\u30eb\u30c9\u30d5\u30a1\u30f3\u8af8\u8a9e
-languages.dv=\u30c7\u30a3\u30f4\u30a7\u30d2\u8a9e
-languages.fiu=\u30d5\u30a3\u30f3\u30fb\u30a6\u30b4\u30eb\u8af8\u8a9e
languages.lus=\u30eb\u30b7\u30e3\u30a4\u8a9e
+languages.fiu=\u30d5\u30a3\u30f3\u30fb\u30a6\u30b4\u30eb\u8af8\u8a9e
+languages.dv=\u30c7\u30a3\u30d9\u30d2\u8a9e
languages.nia=\u30cb\u30a2\u30b9\u8a9e
languages.moh=\u30e2\u30fc\u30db\u30fc\u30af\u8a9e
languages.luo=\u30eb\u30aa\u8a9e
languages.lun=\u30eb\u30f3\u30c0\u8a9e
languages.apa=\u30a2\u30d1\u30c3\u30c1\u8a9e\u65cf
+languages.fil=\u30d5\u30a3\u30ea\u30d4\u30ce\u8a9e
languages.lui=\u30eb\u30a4\u30bb\u30fc\u30cb\u30e7\u8a9e
languages.hup=\u30a2\u30bf\u30d1\u30b9\u30ab\u8a9e
+languages.cch=\u30c1\u30e3\u30ef\u30a4\u8a9e
languages.bin=\u30d3\u30cb\u8a9e
languages.de=\u30c9\u30a4\u30c4\u8a9e
languages.lua=\u30eb\u30d0\u30fb\u30eb\u30eb\u30a2\u8a9e
@@ -925,8 +1098,8 @@ languages.wak=\u30ef\u30ab\u30b7\u8a9e\u65cf
languages.sat=\u30b5\u30f3\u30bf\u30fc\u30ea\u30fc\u8a9e
languages.cy=\u30a6\u30a7\u30fc\u30eb\u30ba\u8a9e
languages.sas=\u30b5\u30b5\u30af\u8a9e
-languages.cv=\u30c1\u30e5\u30f4\u30a1\u30b7\u30e5\u8a9e
languages.kbd=\u30ab\u30d0\u30eb\u30c9\u8a9e
+languages.cv=\u30c1\u30e5\u30f4\u30a1\u30b7\u30e5\u8a9e
languages.cu=\u6559\u4f1a\u30b9\u30e9\u30d6\u8a9e
languages.mni=\u30de\u30cb\u30d7\u30eb\u8a9e
languages.cs=\u30c1\u30a7\u30b3\u8a9e
@@ -938,54 +1111,57 @@ languages.co=\u30b3\u30eb\u30b7\u30ab\u8a9e
languages.sai=\u5357\u7c73\u30a4\u30f3\u30c7\u30a3\u30a2\u30f3\u8af8\u8a9e
languages.mnc=\u6e80\u5dde\u8a9e
languages.sah=\u30e4\u30af\u30fc\u30c8\u8a9e
-languages.gba=\u30d0\u30e4\u8a9e
-languages.inh=\u30a4\u30f3\u30b0\u30b7\u8a9e
languages.kaw=\u30ab\u30a6\u30a3\u8a9e
+languages.inh=\u30a4\u30f3\u30b0\u30b7\u8a9e
+languages.gba=\u30d0\u30e4\u8a9e
languages.sad=\u30b5\u30f3\u30c0\u30a6\u30a7\u8a9e
languages.ch=\u30c1\u30e3\u30e2\u30ed\u8a9e
-languages.bho=\u30dc\u30fc\u30b8\u30d7\u30ea\u30fc\u8a9e
languages.ine=\u5370\u6b27\u8af8\u8a9e
+languages.bho=\u30dc\u30fc\u30b8\u30d7\u30ea\u30fc\u8a9e
languages.enm=\u4e2d\u4e16\u82f1\u8a9e
-languages.ce=\u30c1\u30a7\u30c1\u30a7\u30f3\u8a9e
-languages.inc=\u30a4\u30f3\u30c9\u8af8\u8a9e
languages.kar=\u30ab\u30ec\u30f3\u8a9e
+languages.inc=\u30a4\u30f3\u30c9\u8af8\u8a9e
+languages.ce=\u30c1\u30a7\u30c1\u30a7\u30f3\u8a9e
languages.gay=\u30ac\u30e8\u8a9e
languages.ca=\u30ab\u30bf\u30ed\u30cb\u30a2\u8a9e
languages.umb=\u30a6\u30f3\u30d6\u30f3\u30c9\u30a5\u8a9e
languages.syr=\u30b7\u30ea\u30a2\u8a9e
languages.kam=\u30ab\u30f3\u30d0\u8a9e
+languages.anp=\u30a2\u30f3\u30ae\u30ab\u8a9e
languages.tsi=\u30c1\u30e0\u30b7\u30e5\u8a9e
-languages.ang=\u53e4\u671f\u82f1\u8a9e
-languages.cau=\u30b3\u30fc\u30ab\u30b5\u30b9\u8af8\u8a9e
+languages.kaj=\u30ab\u30b8\u30a7\u8a9e
+languages.ang=\u53e4\u4ee3\u82f1\u8a9e
languages.kac=\u30ab\u30c1\u30f3\u8a9e
+languages.cau=\u30b3\u30fc\u30ab\u30b5\u30b9\u8af8\u8a9e
languages.kab=\u30ab\u30d3\u30eb\u8a9e
-languages.bs=\u30dc\u30b9\u30cb\u30a2\u8a9e
languages.kaa=\u30ab\u30e9\u30fb\u30ab\u30eb\u30d1\u30af\u8a9e
-languages.br=\u30d6\u30eb\u30c8\u30f3\u8a9e
+languages.bs=\u30dc\u30b9\u30cb\u30a2\u8a9e
languages.car=\u30ab\u30ea\u30d6\u8a9e
+languages.br=\u30d6\u30eb\u30c8\u30f3\u8a9e
languages.bo=\u30c1\u30d9\u30c3\u30c8\u8a9e
languages.bn=\u30d9\u30f3\u30ac\u30eb\u8a9e
languages.bm=\u30d0\u30f3\u30d0\u30e9\u8a9e
languages.gaa=\u30ac\u8a9e
-languages.bi=\u30d3\u30b9\u30e9\u30de\u8a9e
languages.cai=\u4e2d\u7c73\u30a4\u30f3\u30c7\u30a3\u30a2\u30f3\u8af8\u8a9e
+languages.bi=\u30d3\u30b9\u30e9\u30de\u8a9e
languages.bh=\u30d3\u30cf\u30fc\u30eb\u8a9e
languages.bg=\u30d6\u30eb\u30ac\u30ea\u30a2\u8a9e
languages.be=\u30d9\u30e9\u30eb\u30fc\u30b7\u8a9e
+languages.pt_BR=\u30dd\u30eb\u30c8\u30ac\u30eb\u8a9e (\u30d6\u30e9\u30b8\u30eb)
languages.cad=\u30ab\u30c9\u30fc\u8a9e
languages.ba=\u30d0\u30b7\u30ad\u30fc\u30eb\u8a9e
languages.zu=\u30ba\u30fc\u30eb\u30fc\u8a9e
languages.zen=\u30bc\u30ca\u30ac\u8a9e
-languages.pro=\u53e4\u671f\u30d7\u30ed\u30d0\u30f3\u30b9\u8a9e (1500\u307e\u3067)
+languages.pro=\u53e4\u671f\u30d7\u30ed\u30d0\u30f3\u30b9\u8a9e
languages.hsb=\u4e0a\u30bd\u30eb\u30d3\u30a2\u8a9e
languages.az=\u30a2\u30bc\u30eb\u30d0\u30a4\u30b8\u30e3\u30f3\u8a9e
languages.ay=\u30a2\u30a4\u30de\u30e9\u8a9e
languages.av=\u30a2\u30f4\u30a1\u30eb\u8a9e
languages.as=\u30a2\u30c3\u30b5\u30e0\u8a9e
-languages.ar=\u30a2\u30e9\u30d3\u30a2\u8a9e
languages.dsb=\u4f4e\u30bd\u30eb\u30d3\u30a2\u8a9e
-languages.elx=\u30a8\u30e9\u30e0\u8a9e
+languages.ar=\u30a2\u30e9\u30d3\u30a2\u8a9e
languages.ilo=\u30a4\u30ed\u30ab\u30ce\u8a9e
+languages.elx=\u30a8\u30e9\u30e0\u8a9e
languages.zh=\u4e2d\u56fd\u8a9e
languages.an=\u30a2\u30e9\u30b4\u30f3\u8a9e
languages.pra=\u30d7\u30e9\u30fc\u30af\u30ea\u30c3\u30c8\u8a9e\u65cf
@@ -993,10 +1169,12 @@ languages.am=\u30a2\u30e0\u30cf\u30e9\u8a9e
languages.new=\u30cd\u30ef\u30fc\u30eb\u8a9e
languages.ak=\u30a2\u30ab\u30f3\u8a9e
languages.za=\u30c1\u30ef\u30f3\u8a9e
+languages.en_US=\u30a2\u30e1\u30ea\u30ab\u82f1\u8a9e
languages.af=\u30a2\u30d5\u30ea\u30ab\u30fc\u30f3\u30b9\u8a9e
languages.ae=\u30a2\u30f4\u30a7\u30b9\u30bf\u8a9e
+languages.alt=\u5357\u30a2\u30eb\u30bf\u30a4\u8a9e
languages.ab=\u30a2\u30d6\u30cf\u30ba\u8a9e
-languages.aa=\u30a2\u30d5\u30a1\u30fc\u30eb\u8a9e
+languages.aa=\u30a2\u30d5\u30a1\u30eb\u8a9e
languages.yo=\u30e8\u30eb\u30d0\u8a9e
languages.alg=\u30a2\u30eb\u30b4\u30f3\u30ad\u30a2\u30f3\u8a9e\u65cf
languages.ale=\u30a2\u30ec\u30a6\u30c8\u8a9e
@@ -1009,4 +1187,20 @@ languages.bem=\u30d9\u30f3\u30d0\u8a9e
languages.bej=\u30d9\u30b8\u30e3\u8a9e
languages.tpi=\u30c8\u30af\u30fb\u30d4\u30b7\u30f3\u8a9e
variants.POSIX=\u30b3\u30f3\u30d4\u30e5\u30fc\u30bf
+variants.AREVMDA=\u897f\u30a2\u30eb\u30e1\u30cb\u30a2\u6587\u8a9e
+variants.1996=\u30c9\u30a4\u30c4\u8a9e\u6b63\u66f8\u6cd5\uff081996\uff09
+variants.NEDIS=\u30ca\u30c6\u30a3\u30be\u30fc\u30cd\u65b9\u8a00
+variants.1901=\u4f1d\u7d71\u7684\u30c9\u30a4\u30c4\u8a9e\u6b63\u66f8\u6cd5\uff081901\uff09
+variants.FONUPA=\u30a6\u30e9\u30eb\u97f3\u58f0\u8a18\u53f7
+variants.1694ACAD=\u521d\u671f\u73fe\u4ee3\u30d5\u30e9\u30f3\u30b9\u8a9e
variants.REVISED=\u6539\u8a02\u7248
+variants.FONIPA=\u56fd\u969b\u97f3\u58f0\u8a18\u53f7
+variants.SCOUSE=\u30ea\u30d0\u30d7\u30fc\u30eb\u65b9\u8a00
+variants.SAAHO=\u30b5\u30db\u8a9e
+variants.MONOTON=\u30e2\u30ce\u30c8\u30cb\u30c3\u30af
+variants.ROZAJ=\u30ec\u30b7\u30a2\u65b9\u8a00
+variants.POLYTON=\u30dd\u30ea\u30c8\u30cb\u30c3\u30af
+variants.AREVELA=\u6771\u30a2\u30eb\u30e1\u30cb\u30a2\u6587\u8a9e
+variants.VALENCIA=\u30d0\u30ec\u30f3\u30b7\u30a2\u65b9\u8a00
+variants.BOONT=\u30d6\u30fc\u30f3\u30c8\u30ea\u30f3\u30b0
+variants.1606NICT=\u5f8c\u671f\u4e2d\u4e16\u30d5\u30e9\u30f3\u30b9\u8a9e\uff08\u301c1606\uff09
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ka.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ka.properties
index c0562be..61088ed 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ka.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ka.properties
@@ -5,24 +5,253 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
-groupingSeparator=\u00a0
-currenciesSymbol.GEL=Lari
+groupingSeparator=.
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.YDD=\u10d8\u10d4\u10db\u10d4\u10dc\u10d8\u10e1 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.KES=\u10d9\u10d4\u10dc\u10d8\u10e3\u10e0\u10d8 \u10e8\u10d8\u10da\u10d8\u10dc\u10d2\u10d8
+currenciesDisplayName.TWD=\u10e2\u10d0\u10d8\u10d5\u10d0\u10dc\u10e3\u10e0\u10d8 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.LKR=\u10e8\u10e0\u10d8 \u10da\u10d0\u10dc\u10d9\u10d8\u10e1 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.BYB=\u10d0\u10ee\u10d0\u10da\u10d8 \u10d1\u10d4\u10da\u10d0\u10e0\u10e3\u10e1\u10d8\u10e3\u10da\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8 (1994-1999)
+currenciesDisplayName.TJS=\u10e2\u10d0\u10ef\u10d8\u10d9\u10e3\u10e0\u10d8 \u10e1\u10dd\u10db\u10dd\u10dc\u10d8
+currenciesDisplayName.RWF=\u10e0\u10e3\u10d0\u10dc\u10d3\u10e3\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.TJR=\u10e2\u10d0\u10ef\u10d8\u10d9\u10e3\u10e0\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8
+currenciesDisplayName.SDP=\u10e1\u10e3\u10d3\u10d0\u10dc\u10d8\u10e1 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.GRD=\u10d1\u10d4\u10e0\u10eb\u10dc\u10e3\u10da\u10d8 \u10d3\u10e0\u10d0\u10f0\u10db\u10d0
+currenciesDisplayName.AFN=\u10d0\u10d5\u10e6\u10d0\u10dc\u10d8
+currenciesDisplayName.IEP=\u10d8\u10e0\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.ARS=\u10d0\u10e0\u10d2\u10d4\u10dc\u10e2\u10d8\u10dc\u10e3\u10da\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.ARP=\u10d0\u10e0\u10d2\u10d4\u10dc\u10e2\u10d8\u10dc\u10e3\u10da\u10d8 \u10de\u10d4\u10e1\u10dd (1983-1985)
+currenciesDisplayName.SDD=\u10e1\u10e3\u10d3\u10d0\u10dc\u10d8\u10e1 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.GEL=\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8 \u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.GEK=\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8 \u10d9\u10e3\u10de\u10dd\u10dc\u10d8 \u10da\u10d0\u10e0\u10d8\u10d7
+currenciesDisplayName.AFA=\u10d0\u10d5\u10e6\u10d0\u10dc\u10d8 (1927-2002)
+currenciesDisplayName.CRC=\u10d9\u10dd\u10e1\u10e2\u10d0 \u10e0\u10d8\u10d9\u10e3\u10da\u10d8 \u10d9\u10dd\u10da\u10dd\u10dc\u10d8
+currenciesDisplayName.EEK=\u10d4\u10e1\u10e2\u10dd\u10dc\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10dc\u10d0
+currenciesDisplayName.MDL=\u10db\u10dd\u10da\u10d3\u10dd\u10d5\u10e3\u10e0\u10d8 \u10da\u10d4\u10e3
+currenciesDisplayName.HKD=\u10f0\u10dd\u10dc\u10d2 \u10d9\u10dd\u10dc\u10d2\u10d8\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.ARA=\u10d0\u10e0\u10d2\u10d4\u10dc\u10e2\u10d8\u10dc\u10e3\u10da\u10d8 \u10d0\u10e3\u10e1\u10e2\u10e0\u10d0\u10da\u10d8
+currenciesDisplayName.SCR=\u10e1\u10d4\u10d8\u10e8\u10d4\u10da\u10d8\u10e1 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.VUV=\u10d5\u10d0\u10dc\u10d0\u10e2\u10e3\u10e1 \u10d5\u10d0\u10e2\u10e3
+currenciesDisplayName.KPW=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7 \u10d9\u10dd\u10e0\u10d4\u10e3\u10da\u10d8 \u10d5\u10dd\u10dc\u10d8
+currenciesDisplayName.DKK=\u10d3\u10d0\u10dc\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.IDR=\u10d8\u10dc\u10d3\u10dd\u10dc\u10d4\u10d6\u10d8\u10e3\u10e0\u10d8 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.LVR=\u10da\u10d0\u10e2\u10d5\u10d8\u10e3\u10e0\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8
+currenciesDisplayName.AED=\u10d2\u10d0\u10d4\u10e0\u10d7\u10d8\u10d0\u10dc\u10d4\u10d1\u10e3\u10da\u10d8 \u10d0\u10e0\u10d0\u10d1\u10e3\u10da\u10d8 \u10e1\u10d0\u10d4\u10db\u10d8\u10e0\u10dd\u10d4\u10d1\u10d8\u10e1 \u10d3\u10d8\u10e0\u10f0\u10d4\u10db\u10d8
+currenciesDisplayName.LVL=\u10da\u10d0\u10e2\u10d5\u10d8\u10e3\u10e0\u10d8 \u10da\u10d0\u10e2\u10d8
+currenciesDisplayName.BWP=\u10d1\u10dd\u10e2\u10e1\u10d5\u10d0\u10dc\u10d8\u10e3\u10e0\u10d8 \u10de\u10e3\u10da\u10d0
+currenciesDisplayName.RUR=\u10e0\u10e3\u10e1\u10e3\u10da\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8 (1991-1998)
+currenciesDisplayName.NIO=\u10dc\u10d8\u10d9\u10d0\u10e0\u10d0\u10d2\u10e3\u10d0\u10e1 \u10dd\u10e5\u10e0\u10dd\u10e1 \u10d9\u10dd\u10e0\u10d3\u10dd\u10d1\u10d0
+currenciesDisplayName.FJD=\u10e4\u10d8\u10ef\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.ADP=\u10d0\u10dc\u10d3\u10dd\u10e0\u10e3\u10da\u10d8 \u10de\u10d4\u10e1\u10d4\u10e2\u10d0
+currenciesDisplayName.RUB=\u10e0\u10e3\u10e1\u10e3\u10da\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8
+currenciesDisplayName.NIC=\u10dc\u10d8\u10d9\u10d0\u10e0\u10d0\u10d2\u10e3\u10d0\u10e1 \u10d9\u10dd\u10e0\u10d3\u10dd\u10d1\u10d0
+currenciesDisplayName.DJF=\u10ef\u10d8\u10d1\u10e3\u10e2\u10d8\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.UZS=\u10e3\u10d6\u10d1\u10d4\u10d9\u10e3\u10e0\u10d8 \u10e1\u10e3\u10db\u10d8
+currenciesDisplayName.LUL=\u10da\u10e3\u10e5\u10e1\u10d4\u10db\u10d1\u10e3\u10e0\u10d2\u10d8\u10e1 \u10e4\u10d8\u10dc\u10d0\u10dc\u10e1\u10e3\u10e0\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.PHP=\u10e4\u10d8\u10da\u10d8\u10de\u10d8\u10dc\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.LUF=\u10da\u10e3\u10e5\u10e1\u10d4\u10db\u10d1\u10e3\u10e0\u10d2\u10d8\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.RHD=\u10e0\u10dd\u10d3\u10d4\u10d6\u10d8\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.LUC=\u10da\u10e3\u10e5\u10e1\u10d4\u10db\u10d1\u10e3\u10e0\u10d2\u10d8\u10e1 \u10d9\u10dd\u10dc\u10d5\u10d4\u10e0\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0\u10d3\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.FIM=\u10e4\u10d8\u10dc\u10e3\u10e0\u10d8 \u10db\u10d0\u10e0\u10d9\u10d0
+currenciesDisplayName.TTD=\u10e2\u10e0\u10d8\u10dc\u10d8\u10d3\u10d0\u10d3 \u10d3\u10d0 \u10e2\u10dd\u10d1\u10d0\u10d2\u10dd\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.MNT=\u10db\u10dd\u10dc\u10e6\u10dd\u10da\u10e3\u10e0\u10d8 \u10e2\u10e3\u10d2\u10e0\u10d8\u10d9\u10d8
+currenciesDisplayName.UAK=\u10e3\u10d9\u10e0\u10d0\u10d8\u10dc\u10e3\u10da\u10d8 \u10d9\u10d0\u10e0\u10d1\u10dd\u10d5\u10d0\u10dc\u10d4\u10ea\u10d8
+currenciesDisplayName.UAH=\u10e3\u10d9\u10e0\u10d0\u10d8\u10dc\u10e3\u10da\u10d8 \u10d2\u10e0\u10d8\u10d5\u10dc\u10d0
+currenciesDisplayName.HUF=\u10e3\u10dc\u10d2\u10e0\u10e3\u10da\u10d8 \u10e4\u10dd\u10e0\u10d8\u10dc\u10e2\u10d8
+currenciesDisplayName.QAR=\u10d9\u10d0\u10e2\u10d0\u10e0\u10d8\u10e1 \u10e0\u10d8\u10d0\u10da\u10d8
+currenciesDisplayName.LTT=\u10da\u10d8\u10e2\u10d5\u10e3\u10e0\u10d8 \u10e2\u10d0\u10da\u10dd\u10dc\u10d8
+currenciesDisplayName.PTE=\u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8 \u10d4\u10e1\u10d9\u10e3\u10d3\u10dd
+currenciesDisplayName.UYU=\u10e3\u10e0\u10e3\u10d2\u10d5\u10d0\u10d8\u10e1 \u10de\u10d4\u10e1\u10dd \u10e3\u10e0\u10e3\u10d2\u10d5\u10d0\u10d8\u10dd
+currenciesDisplayName.AOR=\u10d0\u10dc\u10d2\u10dd\u10da\u10e3\u10e0\u10d8 \u10db\u10d8\u10e2\u10dd\u10da\u10d4\u10d1\u10e3\u10da\u10d8 \u10d9\u10d5\u10d0\u10dc\u10d6\u10d0 (1995-1999)
+currenciesDisplayName.GBP=\u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0 \u10e1\u10e2\u10d4\u10e0\u10da\u10d8\u10dc\u10d2\u10d8
+currenciesDisplayName.ZRZ=\u10d6\u10d0\u10d8\u10e0\u10d8\u10e1 \u10d6\u10d0\u10d8\u10e0\u10d8
+currenciesDisplayName.INR=\u10d8\u10dc\u10d3\u10e3\u10e0\u10d8 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.BIF=\u10d1\u10e3\u10e0\u10e3\u10dc\u10d3\u10d8\u10e3\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.MZN=\u10db\u10dd\u10d6\u10d0\u10db\u10d1\u10d8\u10d9\u10e3\u10e0\u10d8 \u10db\u10d4\u10e2\u10d8\u10d9\u10d0\u10da\u10d8
+currenciesDisplayName.LTL=\u10da\u10d8\u10e2\u10d5\u10e3\u10e0\u10d8 \u10da\u10d8\u10e2\u10d0
+currenciesDisplayName.AON=\u10d0\u10dc\u10d2\u10dd\u10da\u10e3\u10e0\u10d8 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d9\u10d5\u10d0\u10dc\u10d6\u10d0 (1990-2000)
+currenciesDisplayName.UYP=\u10e3\u10e0\u10e3\u10d2\u10d5\u10d0\u10d8\u10e1 \u10de\u10d4\u10e1\u10dd (1975-1993)
+currenciesDisplayName.MZM=\u10eb\u10d5\u10d4\u10da\u10d8 \u10db\u10dd\u10d6\u10d0\u10db\u10d1\u10d8\u10d9\u10e3\u10e0\u10d8 \u10db\u10d4\u10e2\u10d8\u10d9\u10d0\u10da\u10d8
+currenciesDisplayName.KZT=\u10e7\u10d0\u10d6\u10d0\u10ee\u10e3\u10e0\u10d8 \u10e2\u10d4\u10dc\u10d2\u10d4
+currenciesDisplayName.AOK=\u10d0\u10dc\u10d2\u10dd\u10da\u10e3\u10e0\u10d8 \u10d9\u10d5\u10d0\u10dc\u10d6\u10d0 (1977-1990)
+currenciesDisplayName.XFO=\u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8 \u10dd\u10e5\u10e0\u10dd\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.SYP=\u10e1\u10d8\u10e0\u10d8\u10e3\u10da\u10d8 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.OMR=\u10dd\u10db\u10d0\u10dc\u10d8\u10e1 \u10e0\u10d4\u10d0\u10da\u10d8
+currenciesDisplayName.MZE=\u10db\u10dd\u10d6\u10d0\u10db\u10d1\u10d8\u10d9\u10e3\u10e0\u10d8 \u10d4\u10e1\u10d9\u10e3\u10d3\u10dd
+currenciesDisplayName.ZRN=\u10d6\u10d0\u10d8\u10e0\u10d8\u10e1 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d6\u10d0\u10d8\u10e0\u10d8
+currenciesDisplayName.NGN=\u10dc\u10d8\u10d2\u10d4\u10e0\u10d8\u10e3\u10da\u10d8 \u10dc\u10d0\u10d8\u10e0\u10d0
+currenciesDisplayName.CNY=\u10e9\u10d8\u10dc\u10e3\u10e0\u10d8 \u10e3\u10d0\u10dc\u10d8
+currenciesDisplayName.AOA=\u10d0\u10dc\u10d2\u10dd\u10da\u10e3\u10e0\u10d8 \u10d9\u10d5\u10d0\u10dc\u10d6\u10d0
+currenciesDisplayName.MAF=\u10db\u10d0\u10e0\u10dd\u10d9\u10dd\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.MAD=\u10db\u10d0\u10e0\u10dd\u10d9\u10dd\u10e1 \u10d3\u10d8\u10e0\u10f0\u10d0\u10db\u10d8
+currenciesDisplayName.TRY=\u10d0\u10ee\u10d0\u10da\u10d8 \u10d7\u10e3\u10e0\u10e5\u10e3\u10da\u10d8 \u10da\u10d8\u10e0\u10d0
+currenciesDisplayName.MMK=\u10db\u10d8\u10d0\u10dc\u10db\u10d0\u10e0\u10d8\u10e1 \u10d9\u10d8\u10d0\u10e2\u10d8
+currenciesDisplayName.MYR=\u10db\u10d0\u10da\u10d0\u10d8\u10d6\u10d8\u10e3\u10e0\u10d8 \u10e0\u10d8\u10dc\u10d2\u10d8\u10e2\u10d8
+currenciesDisplayName.LSM=\u10db\u10d0\u10da\u10dd\u10e2\u10d8
+currenciesDisplayName.XEU=\u10d4\u10d5\u10e0\u10dd\u10de\u10e3\u10da\u10d8 \u10e1\u10d0\u10d5\u10d0\u10da\u10e3\u10e2\u10dd \u10d4\u10e0\u10d7\u10d4\u10e3\u10da\u10d8
+currenciesDisplayName.SLL=\u10e1\u10d8\u10d4\u10e0\u10d0 \u10da\u10d4\u10dd\u10dc\u10d4\u10e1 \u10da\u10d4\u10dd\u10dc\u10d4
+currenciesDisplayName.BHD=\u10d1\u10d0\u10f0\u10e0\u10d4\u10d8\u10dc\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.TRL=\u10d7\u10e3\u10e0\u10e5\u10e3\u10da\u10d8 \u10da\u10d8\u10e0\u10d0
+currenciesDisplayName.CZK=\u10e9\u10d4\u10ee\u10e3\u10e0\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.ANG=\u10dc\u10d8\u10d3\u10e0\u10d4\u10da\u10d0\u10dc\u10d3\u10d4\u10d1\u10d8\u10e1 \u10d0\u10dc\u10e2\u10d8\u10da\u10d8\u10d8\u10e1 \u10d2\u10e3\u10da\u10d3\u10d4\u10dc\u10d8
+currenciesDisplayName.AZN=\u10d0\u10d6\u10d4\u10e0\u10d1\u10d0\u10d8\u10ef\u10d0\u10dc\u10e3\u10da\u10d8 \u10db\u10d0\u10dc\u10d0\u10d7\u10d8
+currenciesDisplayName.AZM=\u10d0\u10d6\u10d4\u10e0\u10d1\u10d0\u10d8\u10ef\u10d0\u10dc\u10e3\u10da\u10d8 \u10db\u10d0\u10dc\u10d0\u10d7\u10d8 (1993-2006)
+currenciesDisplayName.KYD=\u10d9\u10d0\u10d8\u10db\u10d0\u10dc\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.BGN=\u10d1\u10e3\u10da\u10d2\u10d0\u10e0\u10e3\u10da\u10d8 \u10d0\u10ee\u10d0\u10da\u10d8 \u10da\u10d4\u10d5\u10d8
+currenciesDisplayName.CAD=\u10d9\u10d0\u10dc\u10d0\u10d3\u10e3\u10e0\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.BGL=\u10d1\u10e3\u10da\u10d2\u10d0\u10e0\u10e3\u10da\u10d8 \u10db\u10e7\u10d0\u10e0\u10d8 \u10da\u10d4\u10d5\u10d8
+currenciesDisplayName.VEB=\u10d5\u10d4\u10dc\u10d4\u10e1\u10e3\u10d4\u10da\u10d8\u10e1 \u10d1\u10dd\u10da\u10d8\u10d5\u10d0\u10e0\u10d8
+currenciesDisplayName.MLF=\u10db\u10d0\u10da\u10d8\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.MXP=\u10db\u10d4\u10e5\u10e1\u10d8\u10d9\u10e3\u10e0\u10d8 \u10d5\u10d4\u10e0\u10ea\u10ee\u10da\u10d8\u10e1 \u10de\u10d4\u10e1\u10dd (1861-1992)
+currenciesDisplayName.PES=\u10de\u10d4\u10e0\u10e3\u10e1 \u10e1\u10dd\u10da\u10d8
+currenciesDisplayName.MXN=\u10db\u10d4\u10e5\u10e1\u10d8\u10d9\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.CYP=\u10d9\u10d5\u10d8\u10de\u10e0\u10dd\u10e1\u10d8\u10e1 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.PEN=\u10de\u10d4\u10e0\u10e3\u10e1 \u10d0\u10ee\u10d0\u10da\u10d8 \u10e1\u10dd\u10da\u10d8
+currenciesDisplayName.LRD=\u10da\u10d8\u10d1\u10d4\u10e0\u10d8\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.PEI=\u10de\u10d4\u10e0\u10e3\u10e1 \u10d8\u10dc\u10e2\u10d8
+currenciesDisplayName.AMD=\u10e1\u10dd\u10db\u10ee\u10e3\u10e0\u10d8 \u10d3\u10e0\u10d0\u10db\u10d8
+currenciesDisplayName.BSD=\u10d1\u10d0\u10f0\u10d0\u10db\u10e3\u10e0\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.HRK=\u10ee\u10dd\u10e0\u10d5\u10d0\u10e2\u10d8\u10e3\u10da\u10d8 \u10d9\u10e3\u10dc\u10d0
+currenciesDisplayName.HRD=\u10ee\u10dd\u10e0\u10d5\u10d0\u10e2\u10d8\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.FRF=\u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.BRR=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10d6\u10d4\u10d8\u10e0\u10dd
+currenciesDisplayName.MKD=\u10db\u10d0\u10d9\u10d4\u10d3\u10dd\u10dc\u10d8\u10e3\u10e0\u10d8 \u10d3\u10d4\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.BRN=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10d6\u10d0\u10d3\u10dd \u10dc\u10dd\u10d5\u10dd
+currenciesDisplayName.ALL=\u10d0\u10da\u10d1\u10d0\u10dc\u10e3\u10e0\u10d8 \u10da\u10d4\u10d9\u10d8
+currenciesDisplayName.MWK=\u10db\u10d0\u10da\u10d0\u10d5\u10d8\u10e1 \u10d9\u10d5\u10d0\u10dc\u10e9\u10d0
+currenciesDisplayName.BRL=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10e0\u10d4\u10d0\u10da\u10d8
+currenciesDisplayName.BRE=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10d6\u10d4\u10d8\u10e0\u10dd (1990-1993)
+currenciesDisplayName.BRC=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10d6\u10d0\u10d3\u10dd
+currenciesDisplayName.BRB=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10e3\u10d6\u10d4\u10d8\u10e0\u10dd \u10dc\u10dd\u10d5\u10dd (1967-1986)
+currenciesDisplayName.DEM=\u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8 \u10db\u10d0\u10e0\u10d9\u10d0
+currenciesDisplayName.XCD=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7 \u10d9\u10d0\u10e0\u10d8\u10d1\u10d8\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.KWD=\u10d9\u10e3\u10d5\u10d4\u10d8\u10e2\u10e3\u10e0\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.NPR=\u10dc\u10d4\u10de\u10d0\u10da\u10e3\u10e0\u10d8 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.YUN=\u10d8\u10e3\u10d2\u10dd\u10e1\u10da\u10d0\u10d5\u10d8\u10e3\u10e0\u10d8 \u10d9\u10dd\u10dc\u10d5\u10d4\u10e0\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0\u10d3\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.YUM=\u10d8\u10e3\u10d2\u10dd\u10e1\u10da\u10d0\u10d5\u10d8\u10e3\u10e0\u10d8 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.BEL=\u10d1\u10d4\u10da\u10d2\u10d8\u10e3\u10e0\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8 (\u10e4\u10d8\u10dc\u10d0\u10dc\u10e1\u10e3\u10e0\u10d8)
+currenciesDisplayName.JPY=\u10d8\u10d0\u10de\u10dd\u10dc\u10e3\u10e0\u10d8 \u10d8\u10d4\u10dc\u10d8
+currenciesDisplayName.MVR=\u10db\u10d0\u10da\u10d3\u10d8\u10d5\u10e3\u10e0\u10d8 \u10e0\u10e3\u10e4\u10d8\u10d0
+currenciesDisplayName.YUD=\u10d8\u10e3\u10d2\u10dd\u10e1\u10da\u10d0\u10d5\u10d8\u10e3\u10e0\u10d8 \u10db\u10e7\u10d0\u10e0\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.GWE=\u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8 \u10d2\u10d8\u10dc\u10d4\u10d0 \u10d4\u10e1\u10d9\u10e3\u10d3\u10dd
+currenciesDisplayName.BEF=\u10d1\u10d4\u10da\u10d2\u10d8\u10e3\u10e0\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.BEC=\u10d1\u10d4\u10da\u10d2\u10d8\u10e3\u10e0\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8 (\u10d9\u10dd\u10d5\u10d4\u10e0\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0\u10d3\u10d8)
+currenciesDisplayName.SUR=\u10e1\u10d0\u10d1\u10ed\u10dd\u10d7\u10d0 \u10e0\u10e3\u10d1\u10da\u10d8
+currenciesDisplayName.RON=\u10e0\u10e3\u10db\u10d8\u10dc\u10e3\u10da\u10d8 \u10da\u10d4\u10e3
+currenciesDisplayName.ROL=\u10eb\u10d5\u10d4\u10da\u10d8 \u10e0\u10e3\u10db\u10d8\u10dc\u10e3\u10da\u10d8 \u10da\u10d4\u10e3
+currenciesDisplayName.DDM=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7 \u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8 \u10db\u10d0\u10e0\u10d9\u10d0
+currenciesDisplayName.BDT=\u10d1\u10d0\u10dc\u10d2\u10da\u10d0\u10d3\u10d4\u10e8\u10e3\u10e0\u10d8 \u10e2\u10d0\u10d9\u10d0
+currenciesDisplayName.AWG=\u10d0\u10e0\u10e3\u10d1\u10d0\u10dc\u10e3\u10da\u10d8 \u10d2\u10e3\u10da\u10d3\u10d4\u10dc\u10d8
+currenciesDisplayName.XBB=\u10d4\u10d5\u10e0\u10dd\u10de\u10e3\u10da\u10d8 \u10e4\u10e3\u10da\u10d0\u10d3\u10d8 \u10d4\u10e0\u10d7\u10d4\u10e3\u10da\u10d8
+currenciesDisplayName.XBA=\u10d4\u10d5\u10e0\u10dd\u10de\u10e3\u10da\u10d8 \u10d9\u10dd\u10db\u10de\u10de\u10dd\u10d6\u10d8\u10e2\u10e3\u10e0\u10d8 \u10d4\u10e0\u10d7\u10d4\u10e3\u10da\u10d8
+currenciesDisplayName.NOK=\u10dc\u10dd\u10e0\u10d5\u10d4\u10d2\u10d8\u10e3\u10da\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.MUR=\u10db\u10d0\u10d5\u10e0\u10d8\u10e2\u10d0\u10dc\u10e3\u10da\u10d8 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.VND=\u10d5\u10d8\u10d4\u10e2\u10dc\u10d0\u10db\u10e3\u10e0\u10d8 \u10d3\u10dd\u10dc\u10d2\u10d8
+currenciesDisplayName.TZS=\u10e2\u10d0\u10dc\u10d6\u10d0\u10dc\u10d8\u10e3\u10e0\u10d8 \u10e8\u10d8\u10da\u10d8\u10dc\u10d2\u10d8
+currenciesDisplayName.TND=\u10e2\u10e3\u10dc\u10d8\u10e1\u10d8\u10e3\u10e0\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.CVE=\u10d9\u10d0\u10d1\u10dd \u10d5\u10d4\u10e0\u10d3\u10d4\u10e1 \u10d4\u10e1\u10d9\u10e3\u10d3\u10dd
+currenciesDisplayName.UGX=\u10e3\u10d2\u10d0\u10dc\u10d3\u10e3\u10e0\u10d8 \u10e8\u10d8\u10da\u10d8\u10dc\u10d2\u10d8
+currenciesDisplayName.XAG=\u10d5\u10d4\u10e0\u10ea\u10ee\u10da\u10d8
+currenciesDisplayName.ZMK=\u10d6\u10d0\u10db\u10d1\u10d8\u10e3\u10e0\u10d8 \u10d9\u10d5\u10d0\u10dc\u10e9\u10d0
+currenciesDisplayName.JOD=\u10d8\u10dd\u10e0\u10d3\u10d0\u10dc\u10d8\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.UGS=\u10e3\u10d2\u10d0\u10dc\u10d3\u10e3\u10e0\u10d8 \u10e8\u10d8\u10da\u10d8\u10dc\u10d2\u10d8 (1966-1987)
+currenciesDisplayName.WST=\u10d3\u10d0\u10e1\u10d0\u10d5\u10da\u10d4\u10d7 \u10e1\u10d0\u10db\u10dd\u10d0\u10e1 \u10e2\u10d0\u10da\u10d0
+currenciesDisplayName.DOP=\u10d3\u10dd\u10db\u10d8\u10dc\u10d8\u10d9\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.EUR=\u10d4\u10d5\u10e0\u10dd
+currenciesDisplayName.MTP=\u10db\u10d0\u10da\u10e2\u10d8\u10e1 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.USS=\u10d0\u10e8\u10e8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8 (\u10d8\u10d2\u10d8\u10d5\u10d4 \u10d3\u10e6\u10d4)
+currenciesDisplayName.BOP=\u10d1\u10dd\u10da\u10d8\u10d5\u10d8\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.CUP=\u10d9\u10e3\u10d1\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10dd
+currenciesDisplayName.MTL=\u10db\u10d0\u10da\u10e2\u10d8\u10e1 \u10da\u10d8\u10e0\u10d0
+currenciesDisplayName.TMM=\u10d7\u10e3\u10e0\u10e5\u10db\u10d4\u10dc\u10e3\u10da\u10d8 \u10db\u10d0\u10dc\u10d0\u10d7\u10d8
+currenciesDisplayName.USN=\u10d0\u10e8\u10e8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8 (\u10e8\u10d4\u10db\u10d3\u10d4\u10d2\u10d8 \u10d3\u10e6\u10d4)
+currenciesDisplayName.SGD=\u10e1\u10d8\u10dc\u10d2\u10d0\u10de\u10e3\u10e0\u10d8\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.NZD=\u10d0\u10ee\u10d0\u10da\u10d8 \u10d6\u10d4\u10da\u10d0\u10dc\u10d3\u10d8\u10d8\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.USD=\u10d0\u10e8\u10e8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.BOB=\u10d1\u10dd\u10da\u10d8\u10d5\u10d8\u10d0\u10dc\u10dd
+currenciesDisplayName.HNL=\u10f0\u10dd\u10dc\u10d3\u10e3\u10e0\u10d0\u10e1\u10d8\u10e1 \u10da\u10d4\u10db\u10de\u10d8\u10e0\u10d0
+currenciesDisplayName.ITL=\u10d8\u10e2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8 \u10da\u10d8\u10e0\u10d0
+currenciesDisplayName.XXX=\u10e3\u10ea\u10dc\u10dd\u10d1\u10d8 \u10d0\u10dc \u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d5\u10d0\u10da\u10e3\u10e2\u10d0
+currenciesDisplayName.AUD=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d0\u10da\u10d8\u10e3\u10e0\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.NAD=\u10dc\u10d0\u10db\u10d8\u10d1\u10d8\u10e3\u10e0\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.KGS=\u10e7\u10d8\u10e0\u10e6\u10d8\u10d6\u10e3\u10da\u10d8 \u10e1\u10dd\u10db\u10d8
+currenciesDisplayName.MGF=\u10db\u10d0\u10d3\u10d0\u10d2\u10d0\u10e1\u10d9\u10d0\u10e0\u10d8\u10e1 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.BBD=\u10d1\u10d0\u10e0\u10d1\u10d0\u10d3\u10dd\u10e1\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.CHF=\u10e8\u10d5\u10d4\u10d8\u10ea\u10d0\u10e0\u10d8\u10e3\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d9\u10d8
+currenciesDisplayName.MGA=\u10db\u10d0\u10d3\u10d0\u10d2\u10d0\u10e1\u10d9\u10d0\u10e0\u10d8\u10e1 \u10d0\u10e0\u10d8\u10d0\u10e0\u10d8
+currenciesDisplayName.PLZ=\u10de\u10dd\u10da\u10dd\u10dc\u10e3\u10e0\u10d8 \u10d6\u10da\u10dd\u10e2\u10d8 (1950-1995)
+currenciesDisplayName.YER=\u10d8\u10d4\u10db\u10d4\u10dc\u10d8\u10e1 \u10e0\u10d4\u10d0\u10da\u10d8
+currenciesDisplayName.ATS=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d8\u10e3\u10da\u10d8 \u10e8\u10d8\u10da\u10d8\u10dc\u10d2\u10d8
+currenciesDisplayName.BND=\u10d1\u10e0\u10e3\u10dc\u10d4\u10e3\u10da\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.EGP=\u10d4\u10d2\u10d5\u10d8\u10de\u10e2\u10e3\u10e0\u10d8 \u10d2\u10d8\u10e0\u10d5\u10d0\u10dc\u10e5\u10d0
+currenciesDisplayName.JMD=\u10d8\u10d0\u10db\u10d0\u10d8\u10d9\u10e3\u10e0\u10d8 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.PLN=\u10de\u10dd\u10da\u10dd\u10dc\u10e3\u10e0\u10d8 \u10d6\u10da\u10dd\u10e2\u10d8
+currenciesDisplayName.DZD=\u10d0\u10da\u10df\u10d8\u10e0\u10d8\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.ISK=\u10d8\u10e1\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.SRG=\u10e1\u10e3\u10e0\u10d8\u10dc\u10d0\u10db\u10d8\u10e1 \u10d2\u10e3\u10da\u10d3\u10d4\u10dc\u10d8
+currenciesDisplayName.LYD=\u10da\u10d8\u10d1\u10d8\u10e3\u10e0\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.SRD=\u10e1\u10e3\u10e0\u10d8\u10dc\u10d0\u10db\u10d8\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.BAM=\u10d1\u10dd\u10e1\u10dc\u10d8\u10d0-\u10f0\u10d4\u10e0\u10ea\u10dd\u10d2\u10dd\u10d5\u10d8\u10dc\u10d0\u10e1 \u10d9\u10dd\u10dc\u10d5\u10d4\u10e0\u10e2\u10d8\u10e0\u10d4\u10d1\u10d0\u10d3\u10d8 \u10db\u10d0\u10e0\u10d9\u10d0
+currenciesDisplayName.ESP=\u10d4\u10e1\u10de\u10d0\u10dc\u10e3\u10e0\u10d8 \u10de\u10d4\u10e1\u10d4\u10e2\u10d0
+currenciesDisplayName.KRW=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7 \u10d9\u10dd\u10e0\u10d4\u10e3\u10da\u10d8 \u10d5\u10dd\u10dc\u10d8
+currenciesDisplayName.NLG=\u10f0\u10dd\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8 \u10d2\u10e3\u10da\u10d3\u10d4\u10dc\u10d8
+currenciesDisplayName.BAD=\u10d1\u10dd\u10e1\u10dc\u10d8\u10d0-\u10f0\u10d4\u10e0\u10ea\u10dd\u10d2\u10dd\u10d5\u10d8\u10dc\u10d0\u10e1 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.ZWD=\u10d6\u10d8\u10db\u10d1\u10d0\u10d1\u10d5\u10d4\u10e1 \u10d3\u10dd\u10da\u10d0\u10e0\u10d8
+currenciesDisplayName.SEK=\u10e8\u10d5\u10d4\u10d3\u10e3\u10e0\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.CSK=\u10e9\u10d4\u10ee\u10dd\u10e1\u10da\u10dd\u10d5\u10d0\u10d9\u10d8\u10d8\u10e1 \u10db\u10e7\u10d0\u10e0\u10d8 \u10d9\u10e0\u10dd\u10dc\u10d0
+currenciesDisplayName.BYR=\u10d1\u10d4\u10da\u10d0\u10e0\u10e3\u10e1\u10d8\u10e3\u10da\u10d8 \u10e0\u10e3\u10d1\u10da\u10d8
+currenciesDisplayName.PKR=\u10de\u10d0\u10d9\u10d8\u10e1\u10e2\u10d0\u10dc\u10e3\u10e0\u10d8 \u10e0\u10e3\u10de\u10d8\u10d0
+currenciesDisplayName.BMD=\u10d1\u10d4\u10e0\u10db\u10e3\u10d3\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesDisplayName.CSD=\u10eb\u10d5\u10d4\u10da\u10d8 \u10e1\u10d4\u10e0\u10d1\u10d8\u10e3\u10da\u10d8 \u10d3\u10d8\u10dc\u10d0\u10e0\u10d8
+currenciesSymbol.GEL=GEL
+currenciesSymbol.XXX=XXX
+shortMonths=\u10d8\u10d0\u10dc\u00ae\u10d7\u10d4\u10d1\u00ae\u10db\u10d0\u10e0\u00ae\u10d0\u10de\u10e0\u00ae\u10db\u10d0\u10d8\u00ae\u10d8\u10d5\u10dc\u00ae\u10d8\u10d5\u10da\u00ae\u10d0\u10d2\u10d5\u00ae\u10e1\u10d4\u10e5\u00ae\u10dd\u10e5\u10e2\u00ae\u10dc\u10dd\u10d4\u00ae\u10d3\u10d4\u10d9\u00ae\u00ae
+months=\u10d8\u10d0\u10dc\u10d5\u10d0\u10e0\u10d8\u00ae\u10d7\u10d4\u10d1\u10d4\u10e0\u10d5\u10d0\u10da\u10d8\u00ae\u10db\u10d0\u10e0\u10e2\u10d8\u00ae\u10d0\u10de\u10e0\u10d8\u10da\u10d8\u00ae\u10db\u10d0\u10d8\u10e1\u10d8\u00ae\u10d8\u10d5\u10dc\u10d8\u10e1\u10d8\u00ae\u10d8\u10d5\u10da\u10d8\u10e1\u10d8\u00ae\u10d0\u10d2\u10d5\u10d8\u10e1\u10e2\u10dd\u00ae\u10e1\u10d4\u10e5\u10e2\u10d4\u10db\u10d1\u10d4\u10e0\u10d8\u00ae\u10dd\u10e5\u10e2\u10dd\u10db\u10d1\u10d4\u10e0\u10d8\u00ae\u10dc\u10dd\u10d4\u10db\u10d1\u10d4\u10e0\u10d8\u00ae\u10d3\u10d4\u10d9\u10d4\u10db\u10d1\u10d4\u10e0\u10d8\u00ae\u00ae
+shortWeekdays=\u00ae\u10d9\u10d5\u10d8\u00ae\u10dd\u10e0\u10e8\u00ae\u10e1\u10d0\u10db\u00ae\u10dd\u10d7\u10ee\u00ae\u10ee\u10e3\u10d7\u00ae\u10de\u10d0\u10e0\u00ae\u10e8\u10d0\u10d1\u00ae
+weekdays=\u00ae\u10d9\u10d5\u10d8\u10e0\u10d0\u00ae\u10dd\u10e0\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8\u00ae\u10e1\u10d0\u10db\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8\u00ae\u10dd\u10d7\u10ee\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8\u00ae\u10ee\u10e3\u10d7\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8\u00ae\u10de\u10d0\u10e0\u10d0\u10e1\u10d9\u10d4\u10d5\u10d8\u00ae\u10e8\u10d0\u10d1\u10d0\u10d7\u10d8\u00ae
+eras=\u10e9\u10d5\u10d4\u10dc\u10e1 \u10ec\u10d4\u10da\u10d7\u10d0\u10e6\u10e0\u10d8\u10ea\u10ee\u10d5\u10d0\u10db\u10d3\u10d4\u00ae\u10e9\u10d5\u10d4\u10dc\u10d8 \u10ec\u10d4\u10da\u10d7\u10d0\u10e6\u10e0\u10d8\u10ea\u10ee\u10d5\u10d8\u10d7\u00ae
+ampms=\u10d3\u10d8\u10da\u10d8\u10e1\u00ae\u10e1\u10d0\u10e6\u10d0\u10db\u10dd\u10e1\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10e2\u10d8\u10db\u10dd\u10e0\u10d8
territories.TJ=\u10e2\u10d0\u10ef\u10d8\u10d9\u10d4\u10d7\u10d8
territories.TH=\u10e2\u10d0\u10d8\u10da\u10d0\u10dc\u10d3\u10d8
territories.TG=\u10e2\u10dd\u10d2\u10dd
+territories.TF=\u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8 \u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8\u10e1 \u10e2\u10d4\u10e0\u10d8\u10e2\u10dd\u10e0\u10d8\u10d4\u10d1\u10d8
territories.GY=\u10d2\u10d0\u10d8\u10d0\u10dc\u10d0
territories.TD=\u10e9\u10d0\u10d3\u10d8
territories.GW=\u10d2\u10d5\u10d8\u10dc\u10d4\u10d0-\u10d1\u10d8\u10e1\u10d0\u10e3
+territories.GU=\u10d2\u10e3\u10d0\u10db\u10d8
territories.GT=\u10d2\u10d5\u10d0\u10e2\u10d4\u10db\u10d0\u10da\u10d0
+territories.GS=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10ef\u10dd\u10e0\u10ef\u10d8\u10d0 \u10d3\u10d0 \u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7 \u10e1\u10d4\u10dc\u10d3\u10d5\u10d8\u10e9\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
territories.GR=\u10e1\u10d0\u10d1\u10d4\u10e0\u10eb\u10dc\u10d4\u10d7\u10d8
territories.GQ=\u10d4\u10d9\u10d5\u10d0\u10e2\u10dd\u10e0\u10e3\u10da\u10d8 \u10d2\u10d5\u10d8\u10dc\u10d4\u10d0
+territories.GP=\u10d2\u10d5\u10d0\u10d3\u10d4\u10da\u10e3\u10de\u10d4
territories.SZ=\u10e1\u10d5\u10d0\u10d6\u10d8\u10da\u10d4\u10dc\u10d3\u10d8
territories.SY=\u10e1\u10d8\u10e0\u10d8\u10d0
territories.GN=\u10d2\u10d5\u10d8\u10dc\u10d4\u10d0
territories.GM=\u10d2\u10d0\u10db\u10d1\u10d8\u10d0
+territories.GL=\u10d2\u10e0\u10d4\u10dc\u10da\u10d0\u10dc\u10d3\u10d8\u10d0
territories.SV=\u10e1\u10d0\u10da\u10d5\u10d0\u10d3\u10dd\u10e0\u10d8
+territories.062=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7-\u10ea\u10d4\u10dc\u10e2\u10e0\u10d0\u10da\u10e3\u10e0\u10d8 \u10d0\u10d6\u10d8\u10d0
territories.ST=\u10e1\u10d0\u10dd-\u10e2\u10dd\u10db\u10d4 \u10d3\u10d0 \u10de\u10e0\u10d8\u10dc\u10e1\u10d8\u10de\u10d8
+territories.GI=\u10d2\u10d8\u10d1\u10e0\u10d0\u10da\u10e2\u10d0\u10e0\u10d8
+territories.061=\u10de\u10dd\u10da\u10d8\u10dc\u10d4\u10d6\u10d8\u10d0
territories.GH=\u10d2\u10d0\u10dc\u10d0
territories.SR=\u10e1\u10e3\u10e0\u10d8\u10dc\u10d0\u10db\u10d8
territories.GE=\u10e1\u10d0\u10e5\u10d0\u10e0\u10d7\u10d5\u10d4\u10da\u10dd
@@ -30,10 +259,12 @@ territories.SO=\u10e1\u10dd\u10db\u10d0\u10da\u10d8
territories.GD=\u10d2\u10e0\u10d4\u10dc\u10d0\u10d3\u10d0
territories.SN=\u10e1\u10d4\u10dc\u10d4\u10d2\u10d0\u10da\u10d8
territories.SM=\u10e1\u10d0\u10dc-\u10db\u10d0\u10e0\u10d8\u10dc\u10dd
+territories.GB=\u10d2\u10d0\u10d4\u10e0\u10d7\u10d8\u10d0\u10dc\u10d4\u10d1\u10e3\u10da\u10d8 \u10e1\u10d0\u10db\u10d4\u10e4\u10dd
territories.SL=\u10e1\u10d8\u10d4\u10e0\u10d0-\u10da\u10d4\u10dd\u10dc\u10d4
territories.GA=\u10d2\u10d0\u10d1\u10dd\u10dc\u10d8
territories.SK=\u10e1\u10da\u10dd\u10d5\u10d0\u10d9\u10d4\u10d7\u10d8
territories.SI=\u10e1\u10da\u10dd\u10d5\u10d4\u10dc\u10d8\u10d0
+territories.SH=\u10ec\u10db\u10d8\u10dc\u10d3\u10d0 \u10d4\u10da\u10d4\u10dc\u10d4\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8
territories.SG=\u10e1\u10d8\u10dc\u10d2\u10d0\u10de\u10e3\u10e0\u10d8
territories.SE=\u10e8\u10d5\u10d4\u10ea\u10d8\u10d0
territories.SD=\u10e1\u10e3\u10d3\u10d0\u10dc\u10d8
@@ -41,98 +272,148 @@ territories.SC=\u10e1\u10d4\u10d8\u10e8\u10d4\u10da\u10d8\u10e1 \u10d9\u10e3\u10
territories.SB=\u10e1\u10dd\u10da\u10dd\u10db\u10dd\u10dc\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
territories.SA=\u10e1\u10d0\u10e3\u10d3\u10d8\u10e1 \u10d0\u10e0\u10d0\u10d1\u10d4\u10d7\u10d8
territories.FR=\u10e1\u10d0\u10e4\u10e0\u10d0\u10dc\u10d2\u10d4\u10d7\u10d8
+territories.FO=\u10e4\u10d0\u10e0\u10dd\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
+territories.057=\u10db\u10d8\u10e0\u10dd\u10dc\u10d4\u10d6\u10d8\u10d0
territories.FM=\u10db\u10d8\u10d9\u10e0\u10dd\u10dc\u10d4\u10d6\u10d8\u10d0
territories.RW=\u10e0\u10e3\u10d0\u10dc\u10d3\u10d0
+territories.054=\u10db\u10d4\u10da\u10d0\u10dc\u10d4\u10d6\u10d8\u10d0
+territories.FK=\u10e4\u10d0\u10da\u10d9\u10da\u10d4\u10dc\u10d3\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
+territories.053=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d0\u10da\u10d8\u10d0 \u10d3\u10d0 \u10d0\u10ee\u10d0\u10da\u10d8 \u10d6\u10d4\u10da\u10d0\u10dc\u10d3\u10d8\u10d0
territories.RU=\u10e0\u10e3\u10e1\u10d4\u10d7\u10d8
territories.FJ=\u10e4\u10d8\u10ef\u10d8
territories.FI=\u10e4\u10d8\u10dc\u10d4\u10d7\u10d8
+territories.RS=\u10e1\u10d4\u10e0\u10d1\u10d8\u10d0
territories.RO=\u10e0\u10e3\u10db\u10d8\u10dc\u10d4\u10d7\u10d8
+territories.RE=\u10e0\u10d4\u10d8\u10e3\u10dc\u10d8\u10dd\u10dc\u10d8
territories.ET=\u10d4\u10d7\u10d8\u10dd\u10de\u10d8\u10d0
territories.ES=\u10d4\u10e1\u10de\u10d0\u10dc\u10d4\u10d7\u10d8
territories.ER=\u10d4\u10e0\u10d8\u10e2\u10e0\u10d4\u10d0
+territories.QU=\u10d4\u10d5\u10e0\u10dd\u10d9\u10d0\u10d5\u10e8\u10d8\u10e0\u10d8
territories.EH=\u10d3\u10d0\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10e1\u10d0\u10f0\u10d0\u10e0\u10d0
territories.EG=\u10d4\u10d2\u10d5\u10d8\u10de\u10e2\u10d4
territories.EE=\u10d4\u10e1\u10e2\u10dd\u10dc\u10d4\u10d7\u10d8
+territories.QO=\u10d3\u10d0\u10e8\u10dd\u10e0\u10d4\u10d1\u10e3\u10da\u10d8 \u10dd\u10d9\u10d4\u10d0\u10dc\u10d8\u10d0
territories.EC=\u10d4\u10d9\u10d5\u10d0\u10d3\u10dd\u10e0\u10d8
territories.DZ=\u10d0\u10da\u10df\u10d8\u10e0\u10d8
territories.QA=\u10d9\u10d0\u10e2\u10d0\u10e0\u10d8
+territories.039=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10d4\u10d5\u10e0\u10dd\u10de\u10d0
territories.DO=\u10d3\u10dd\u10db\u10d8\u10dc\u10d8\u10d9\u10d0\u10dc\u10d8\u10e1 \u10e0\u10d4\u10e1\u10de\u10e3\u10d1\u10da\u10d8\u10d9\u10d0
territories.PY=\u10de\u10d0\u10e0\u10d0\u10d2\u10d5\u10d0\u10d8
territories.DM=\u10d3\u10dd\u10db\u10d8\u10dc\u10d8\u10d9\u10d0
+territories.035=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7-\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d0\u10d6\u10d8\u10d0
territories.PW=\u10de\u10d0\u10da\u10d0\u10e3
+territories.034=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10d0\u10d6\u10d8\u10d0
territories.DK=\u10d3\u10d0\u10dc\u10d8\u10d0
territories.DJ=\u10ef\u10d8\u10d1\u10e3\u10e2\u10d8
territories.PT=\u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10d0
+territories.PS=\u10de\u10d0\u10da\u10d4\u10e1\u10e2\u10d8\u10dc\u10d8\u10e1 \u10e2\u10d4\u10e0\u10d8\u10e2\u10dd\u10e0\u10d8\u10d0
+territories.030=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d0\u10d6\u10d8\u10d0
+territories.PR=\u10de\u10e3\u10d4\u10e0\u10e2\u10dd \u10e0\u10d8\u10d9\u10dd
territories.DE=\u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10d8\u10d0
+territories.PM=\u10e1\u10d4\u10dc\u10e2-\u10de\u10d8\u10d4\u10e0\u10d8 \u10d3\u10d0 \u10db\u10d8\u10e5\u10d4\u10da\u10dd\u10dc\u10d8
territories.PL=\u10de\u10dd\u10da\u10dd\u10dc\u10d4\u10d7\u10d8
territories.PK=\u10de\u10d0\u10d9\u10d8\u10e1\u10e2\u10d0\u10dc\u10d8
territories.PH=\u10e4\u10d8\u10da\u10d8\u10de\u10d8\u10dc\u10d4\u10d1\u10d8
territories.PG=\u10de\u10d0\u10de\u10e3\u10d0-\u10d0\u10ee\u10d0\u10da\u10d8 \u10d2\u10d5\u10d8\u10dc\u10d4\u10d0
+territories.PF=\u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8 \u10de\u10dd\u10da\u10d8\u10dc\u10d4\u10d6\u10d8\u10d0
territories.CZ=\u10e9\u10d4\u10ee\u10d4\u10d7\u10d8\u10e1 \u10e0\u10d4\u10e1\u10de\u10e3\u10d1\u10da\u10d8\u10d9\u10d0
-territories.CY=\u10d9\u10d5\u10d8\u10de\u10e0\u10dd\u10e1\u10d8
territories.PE=\u10de\u10d4\u10e0\u10e3
+territories.CY=\u10d9\u10d5\u10d8\u10de\u10e0\u10dd\u10e1\u10d8
+territories.CX=\u10e8\u10dd\u10d1\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8
territories.CV=\u10d9\u10d0\u10d1\u10dd-\u10d5\u10d4\u10e0\u10d3\u10d4
-territories.CU=\u10d9\u10e3\u10d1\u10d0
territories.PA=\u10de\u10d0\u10dc\u10d0\u10db\u10d0
-territories.CS=\u10e1\u10d4\u10e0\u10d1\u10d8\u10d0
+territories.CU=\u10d9\u10e3\u10d1\u10d0
+territories.CS=\u10e1\u10d4\u10e0\u10d1\u10d8\u10d0 \u10d3\u10d0 \u10db\u10dd\u10dc\u10e2\u10d4\u10dc\u10d4\u10d2\u10e0\u10dd
territories.CR=\u10d9\u10dd\u10e1\u10e2\u10d0-\u10e0\u10d8\u10d9\u10d0
+territories.029=\u10d9\u10d0\u10e0\u10d8\u10d1\u10d8
territories.CO=\u10d9\u10dd\u10da\u10e3\u10db\u10d1\u10d8\u10d0
territories.CN=\u10e9\u10d8\u10dc\u10d4\u10d7\u10d8
territories.CM=\u10d9\u10d0\u10db\u10d4\u10e0\u10e3\u10dc\u10d8
-territories.CL=\u10e9\u10d8\u10da\u10d8
+territories.CL=\u10e9\u10d8\u10da\u10d4
+territories.CK=\u10d9\u10e3\u10d9\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
+territories.021=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7\u10d8 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0
territories.CI=\u10e1\u10de\u10d8\u10da\u10dd\u10e1 \u10eb\u10d5\u10da\u10d8\u10e1 \u10e1\u10d0\u10dc\u10d0\u10de\u10d8\u10e0\u10dd
territories.CH=\u10e8\u10d5\u10d4\u10d8\u10ea\u10d0\u10e0\u10d8\u10d0
territories.CG=\u10d9\u10dd\u10dc\u10d2\u10dd
territories.CF=\u10ea\u10d4\u10dc\u10e2\u10e0\u10d0\u10da\u10e3\u10e0\u10d8 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d8\u10e1 \u10e0\u10d4\u10e1\u10de\u10e3\u10d1\u10da\u10d8\u10d9\u10d0
+territories.CD=\u10d9\u10dd\u10dc\u10d2\u10dd - \u10d9\u10d8\u10dc\u10e8\u10d0\u10e1\u10d0
territories.OM=\u10dd\u10db\u10d0\u10dc\u10d8
territories.CA=\u10d9\u10d0\u10dc\u10d0\u10d3\u10d0
+territories.419=\u10da\u10d0\u10d7\u10d8\u10dc\u10e3\u10e0\u10d8 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0 \u10d3\u10d0 \u10d9\u10d0\u10e0\u10d8\u10d1\u10d8
territories.BZ=\u10d1\u10d4\u10da\u10d8\u10d6\u10d8
territories.BY=\u10d1\u10d4\u10da\u10dd\u10e0\u10e3\u10e1\u10d8\u10d0
territories.BW=\u10d1\u10dd\u10e2\u10e1\u10d5\u10d0\u10dc\u10d0
+territories.BV=\u10d1\u10e3\u10d5\u10d4\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8
territories.BT=\u10d1\u10e3\u10e2\u10d0\u10dc\u10d8
territories.BS=\u10d1\u10d0\u10f0\u10d0\u10db\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
territories.BR=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10d0
-territories.BO=\u10d1\u10dd\u10da\u10d8\u10d5\u10d8\u10d0
+territories.019=\u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d4\u10d1\u10d8
+territories.018=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
territories.NZ=\u10d0\u10ee\u10d0\u10da\u10d8 \u10d6\u10d4\u10da\u10d0\u10dc\u10d3\u10d8\u10d0
+territories.017=\u10e8\u10e3\u10d0 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
+territories.BO=\u10d1\u10dd\u10da\u10d8\u10d5\u10d8\u10d0
territories.BN=\u10d1\u10e0\u10e3\u10dc\u10d4\u10d8
+territories.015=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7\u10d8 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
+territories.BM=\u10d1\u10d4\u10e0\u10db\u10e3\u10d3\u10d0
+territories.014=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
+territories.013=\u10ea\u10d4\u10dc\u10e2\u10e0\u10d0\u10da\u10e3\u10e0\u10d8 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0
territories.BJ=\u10d1\u10d4\u10dc\u10d8\u10dc\u10d8
+territories.011=\u10d3\u10d0\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
territories.BI=\u10d1\u10e3\u10e0\u10e3\u10dc\u10d3\u10d8
+territories.172=\u10d3\u10d0\u10db\u10dd\u10e3\u10d9\u10d8\u10d3\u10d4\u10d1\u10d4\u10da \u10e1\u10d0\u10ee\u10d4\u10da\u10db\u10ec\u10d8\u10e4\u10dd\u10d7\u10d0 \u10d7\u10d0\u10dc\u10d0\u10db\u10d4\u10d2\u10dd\u10d1\u10e0\u10dd\u10d1\u10d0
territories.BH=\u10d1\u10d0\u10f0\u10e0\u10d4\u10d8\u10dc\u10d8
-territories.BG=\u10d1\u10e3\u10da\u10d2\u10d0\u10e0\u10d4\u10d7\u10d8
territories.NR=\u10dc\u10d0\u10e3\u10e0\u10e3
+territories.BG=\u10d1\u10e3\u10da\u10d2\u10d0\u10e0\u10d4\u10d7\u10d8
territories.BF=\u10d1\u10e3\u10e0\u10d9\u10d8\u10dc\u10d0-\u10e4\u10d0\u10e1\u10dd
-territories.BE=\u10d1\u10d4\u10da\u10d2\u10d8\u10d0
territories.NP=\u10dc\u10d4\u10de\u10d0\u10da\u10d8
-territories.BD=\u10d1\u10d0\u10dc\u10d2\u10da\u10d0\u10d3\u10d4\u10e8\u10d8
+territories.BE=\u10d1\u10d4\u10da\u10d2\u10d8\u10d0
+territories.ZZ=\u10e3\u10ea\u10dc\u10dd\u10d1\u10d8 \u10d0\u10dc \u10db\u10ea\u10d3\u10d0\u10e0\u10d8 \u10e0\u10d4\u10d2\u10d8\u10dd\u10dc\u10d8
territories.NO=\u10dc\u10dd\u10e0\u10d5\u10d4\u10d2\u10d8\u10d0
+territories.BD=\u10d1\u10d0\u10dc\u10d2\u10da\u10d0\u10d3\u10d4\u10e8\u10d8
territories.BB=\u10d1\u10d0\u10e0\u10d1\u10d0\u10d3\u10dd\u10e1\u10d8
territories.ZW=\u10d6\u10d8\u10db\u10d1\u10d0\u10d1\u10d5\u10d4
-territories.BA=\u10d1\u10dd\u10e1\u10dc\u10d8\u10d0 \u10d3\u10d0 \u10f0\u10d4\u10e0\u10ea\u10d4\u10d2\u10dd\u10d5\u10d8\u10dc\u10d0
territories.NL=\u10dc\u10d8\u10d3\u10d4\u10e0\u10da\u10d0\u10dc\u10d3\u10d4\u10d1\u10d8
+territories.BA=\u10d1\u10dd\u10e1\u10dc\u10d8\u10d0 \u10d3\u10d0 \u10f0\u10d4\u10e0\u10ea\u10d4\u10d2\u10dd\u10d5\u10d8\u10dc\u10d0
territories.NI=\u10dc\u10d8\u10d9\u10d0\u10e0\u10d0\u10d2\u10e3\u10d0
territories.NG=\u10dc\u10d8\u10d2\u10d4\u10e0\u10d8\u10d0
+territories.NF=\u10dc\u10dd\u10e0\u10e4\u10dd\u10da\u10d9\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8
territories.AZ=\u10d0\u10d6\u10d4\u10e0\u10d1\u10d0\u10d8\u10ef\u10d0\u10dc\u10d8
territories.NE=\u10dc\u10d8\u10d2\u10d4\u10e0\u10d8
+territories.AX=\u10d0\u10da\u10d0\u10dc\u10d3\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
+territories.NC=\u10d0\u10ee\u10d0\u10da\u10d8 \u10d9\u10d0\u10da\u10d4\u10d3\u10dd\u10dc\u10d8\u10d0
+territories.AW=\u10d0\u10e0\u10e3\u10d1\u10d0
territories.ZM=\u10d6\u10d0\u10db\u10d1\u10d8\u10d0
territories.NA=\u10dc\u10d0\u10db\u10d8\u10d1\u10d8\u10d0
territories.AU=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d0\u10da\u10d8\u10d0
territories.AT=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d8\u10d0
+territories.AS=\u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10e3\u10da\u10d8 \u10e1\u10d0\u10db\u10dd\u10d0
territories.AR=\u10d0\u10e0\u10d2\u10d4\u10dc\u10e2\u10d8\u10dc\u10d0
-territories.AO=\u10d0\u10dc\u10d2\u10dd\u10da\u10d0
+territories.AQ=\u10d0\u10dc\u10e2\u10d0\u10e0\u10e5\u10e2\u10d8\u10d9\u10d0
+territories.009=\u10dd\u10d9\u10d4\u10d0\u10dc\u10d4\u10d7\u10d8
territories.MZ=\u10db\u10dd\u10d6\u10d0\u10db\u10d1\u10d8\u10d9\u10d8
+territories.AO=\u10d0\u10dc\u10d2\u10dd\u10da\u10d0
territories.MY=\u10db\u10d0\u10da\u10d0\u10d8\u10d6\u10d8\u10d0
-territories.AM=\u10e1\u10d0\u10e1\u10dd\u10db\u10ee\u10d4\u10d7\u10d8
+territories.AN=\u10dc\u10d8\u10d3\u10d4\u10e0\u10da\u10d0\u10dc\u10d3\u10d4\u10d1\u10d8\u10e1 \u10d0\u10dc\u10e2\u10d8\u10da\u10d4\u10d1\u10d8
territories.MX=\u10db\u10d4\u10e5\u10e1\u10d8\u10d9\u10d0
-territories.AL=\u10d0\u10da\u10d1\u10d0\u10dc\u10d4\u10d7\u10d8
+territories.AM=\u10e1\u10dd\u10db\u10ee\u10d4\u10d7\u10d8
+territories.005=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0
territories.MW=\u10db\u10d0\u10da\u10d0\u10d5\u10d8
+territories.AL=\u10d0\u10da\u10d1\u10d0\u10dc\u10d4\u10d7\u10d8
territories.MV=\u10db\u10d0\u10da\u10d3\u10d8\u10d5\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
+territories.003=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7\u10d8 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d0
territories.ZA=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7 \u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
territories.MU=\u10db\u10d0\u10d5\u10e0\u10d8\u10d9\u10d8\u10d0
+territories.002=\u10d0\u10e4\u10e0\u10d8\u10d9\u10d0
territories.MT=\u10db\u10d0\u10da\u10e2\u10d0
-territories.AG=\u10d0\u10dc\u10e2\u10d8\u10d2\u10e3\u10d0 \u10d3\u10d0 \u10d1\u10d0\u10e0\u10d1\u10e3\u10d3\u10d0
+territories.AI=\u10d0\u10dc\u10d2\u10d5\u10d8\u10da\u10d0
+territories.001=\u10db\u10e1\u10dd\u10e4\u10da\u10d8\u10dd
+territories.MS=\u10db\u10dd\u10dc\u10e1\u10d4\u10e0\u10d0\u10e2\u10d8
territories.MR=\u10db\u10d0\u10d5\u10e0\u10d8\u10e2\u10d0\u10dc\u10d8\u10d0
+territories.AG=\u10d0\u10dc\u10e2\u10d8\u10d2\u10e3\u10d0 \u10d3\u10d0 \u10d1\u10d0\u10e0\u10d1\u10e3\u10d3\u10d0
+territories.MQ=\u10db\u10d0\u10e0\u10e2\u10d8\u10dc\u10d8\u10d9\u10d8
territories.AF=\u10d0\u10d5\u10e6\u10d0\u10dc\u10d4\u10d7\u10d8
territories.AE=\u10d0\u10e0\u10d0\u10d1\u10d4\u10d7\u10d8\u10e1 \u10d2\u10d0\u10d4\u10e0\u10d7\u10d8\u10d0\u10dc\u10d4\u10d1\u10e3\u10da\u10d8 \u10d4\u10db\u10d8\u10e0\u10d0\u10e2\u10d4\u10d1\u10d8
+territories.MO=\u10db\u10d0\u10d9\u10d0\u10dd
territories.AD=\u10d0\u10dc\u10d3\u10dd\u10e0\u10d0
territories.MN=\u10db\u10dd\u10dc\u10e6\u10dd\u10da\u10d4\u10d7\u10d8
territories.MM=\u10db\u10d8\u10d0\u10dc\u10db\u10d0\u10e0\u10d8
@@ -140,25 +421,34 @@ territories.ML=\u10db\u10d0\u10da\u10d8
territories.MK=\u10db\u10d0\u10d9\u10d4\u10d3\u10dd\u10dc\u10d8\u10d0
territories.MH=\u10db\u10d0\u10e0\u10e8\u10d0\u10da\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
territories.MG=\u10db\u10d0\u10d3\u10d0\u10d2\u10d0\u10e1\u10d9\u10d0\u10e0\u10d8
+territories.ME=\u10db\u10dd\u10dc\u10e2\u10d4\u10dc\u10d4\u10d2\u10e0\u10dd
territories.MD=\u10db\u10dd\u10da\u10d3\u10dd\u10d5\u10d0
territories.MC=\u10db\u10dd\u10dc\u10d0\u10d9\u10dd
territories.MA=\u10db\u10d0\u10e0\u10dd\u10d9\u10dd
territories.YE=\u10d8\u10d4\u10db\u10d4\u10dc\u10d8
territories.LY=\u10da\u10d8\u10d1\u10d8\u10d0
territories.LV=\u10da\u10d0\u10e2\u10d5\u10d8\u10d0
+territories.155=\u10d3\u10d0\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d4\u10d5\u10e0\u10dd\u10de\u10d0
territories.LU=\u10da\u10e3\u10e5\u10e1\u10d4\u10db\u10d1\u10e3\u10e0\u10d2\u10d8
+territories.154=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7\u10d8 \u10d4\u10d5\u10e0\u10dd\u10de\u10d0
territories.LT=\u10da\u10d8\u10e2\u10d5\u10d0
-territories.LS=\u10da\u10d4\u10e1\u10dd\u10e2\u10dd
+territories.LS=\u10da\u10d4\u10e1\u10dd\u10d7\u10dd
territories.LR=\u10da\u10d8\u10d1\u10d4\u10e0\u10d8\u10d0
+territories.151=\u10d0\u10e6\u10db\u10dd\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d4\u10d5\u10e0\u10dd\u10de\u10d0
+territories.150=\u10d4\u10d5\u10e0\u10dd\u10de\u10d0
territories.LK=\u10e8\u10e0\u10d8-\u10da\u10d0\u10dc\u10d9\u10d0
-territories.LI=\u10da\u10d8\u10ee\u10e2\u10d4\u10dc\u10e8\u10e2\u10d4\u10d8\u10dc\u10d8
+territories.LI=\u10da\u10d8\u10ee\u10e2\u10d4\u10dc\u10e8\u10e2\u10d0\u10d8\u10dc\u10d8
territories.LC=\u10e1\u10d4\u10dc\u10e2-\u10da\u10e3\u10e1\u10d8\u10d0
territories.LB=\u10da\u10d8\u10d1\u10d0\u10dc\u10d8
territories.LA=\u10da\u10d0\u10dd\u10e1\u10d8
territories.KZ=\u10e7\u10d0\u10d6\u10d0\u10ee\u10d4\u10d7\u10d8
+territories.KY=\u10d9\u10d0\u10d8\u10db\u10d0\u10dc\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
territories.KW=\u10d9\u10e3\u10d5\u10d4\u10d8\u10e2\u10d8
-territories.KR=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7 \u10d9\u10dd\u10e0\u10d4\u10d0
-territories.KP=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7 \u10d9\u10dd\u10e0\u10d4\u10d0
+territories.145=\u10d3\u10d0\u10e1\u10d0\u10d5\u10da\u10d4\u10d7\u10d8 \u10d0\u10d6\u10d8\u10d0
+territories.143=\u10ea\u10d4\u10dc\u10e2\u10e0\u10d0\u10da\u10e3\u10e0\u10d8 \u10d0\u10d6\u10d8\u10d0
+territories.142=\u10d0\u10d6\u10d8\u10d0
+territories.KR=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7\u10d8 \u10d9\u10dd\u10e0\u10d4\u10d0
+territories.KP=\u10e9\u10e0\u10d3\u10d8\u10da\u10dd\u10d4\u10d7\u10d8 \u10d9\u10dd\u10e0\u10d4\u10d0
territories.KN=\u10e1\u10d4\u10dc\u10e2-\u10d9\u10d8\u10e2\u10e1\u10d8 \u10d3\u10d0 \u10dc\u10d4\u10d5\u10d8\u10e1\u10d8
territories.KM=\u10d9\u10dd\u10db\u10dd\u10e0\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
territories.KI=\u10d9\u10d8\u10e0\u10d8\u10d1\u10d0\u10e2\u10d8
@@ -166,10 +456,12 @@ territories.WS=\u10e1\u10d0\u10db\u10dd\u10d0
territories.KH=\u10d9\u10d0\u10db\u10d1\u10dd\u10ef\u10d0
territories.KG=\u10e7\u10d8\u10e0\u10d2\u10d8\u10d6\u10d4\u10d7\u10d8
territories.KE=\u10d9\u10d4\u10dc\u10d8\u10d0
+territories.WF=\u10d5\u10d0\u10da\u10d8\u10e1\u10d8 \u10d3\u10d0 \u10e4\u10e3\u10e2\u10e3\u10dc\u10d0
territories.JP=\u10d8\u10d0\u10de\u10dd\u10dc\u10d8\u10d0
territories.JO=\u10d8\u10dd\u10e0\u10d3\u10d0\u10dc\u10d8\u10d0
territories.JM=\u10d8\u10d0\u10db\u10d0\u10d8\u10d9\u10d0
territories.VU=\u10d5\u10d0\u10dc\u10e3\u10d0\u10e2\u10e3
+territories.JE=\u10ef\u10d4\u10e0\u10e1\u10d8
territories.VN=\u10d5\u10d8\u10d4\u10e2\u10dc\u10d0\u10db\u10d8
territories.VE=\u10d5\u10d4\u10dc\u10d4\u10e1\u10e3\u10d4\u10da\u10d0
territories.VC=\u10e1\u10d4\u10dc\u10e2-\u10d5\u10d8\u10dc\u10e1\u10d4\u10dc\u10e2\u10d8 \u10d3\u10d0 \u10d2\u10e0\u10d4\u10dc\u10d0\u10d3\u10d8\u10dc\u10d4\u10d1\u10d8
@@ -178,13 +470,16 @@ territories.IT=\u10d8\u10e2\u10d0\u10da\u10d8\u10d0
territories.IS=\u10d8\u10e1\u10da\u10d0\u10dc\u10d3\u10d8\u10d0
territories.IR=\u10d8\u10e0\u10d0\u10dc\u10d8
territories.IQ=\u10d4\u10e0\u10d0\u10e7\u10d8
-territories.UZ=\u10e3\u10d6\u10d1\u10d0\u10d9\u10d4\u10d7\u10d8
+territories.UZ=\u10e3\u10d6\u10d1\u10d4\u10d9\u10d4\u10d7\u10d8
+territories.IO=\u10d1\u10e0\u10d8\u10e2\u10d0\u10dc\u10e3\u10da\u10d8 \u10e2\u10d4\u10e0\u10d8\u10e2\u10dd\u10e0\u10d8\u10d0 \u10d8\u10dc\u10d3\u10dd\u10d4\u10d7\u10d8\u10e1 \u10dd\u10d9\u10d4\u10d0\u10dc\u10d4\u10e8\u10d8
territories.UY=\u10e3\u10e0\u10e3\u10d2\u10d5\u10d0\u10d8
territories.IN=\u10d8\u10dc\u10d3\u10dd\u10d4\u10d7\u10d8
+territories.IM=\u10db\u10d0\u10dc\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8
territories.IL=\u10d8\u10e1\u10e0\u10d0\u10d4\u10da\u10d8
territories.US=\u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10d8\u10e1 \u10e8\u10d4\u10d4\u10e0\u10d7\u10d4\u10d1\u10e3\u10da\u10d8 \u10e8\u10e2\u10d0\u10e2\u10d4\u10d1\u10d8
territories.IE=\u10d8\u10e0\u10da\u10d0\u10dc\u10d3\u10d8\u10d0
territories.ID=\u10d8\u10dc\u10d3\u10dd\u10dc\u10d4\u10d6\u10d8\u10d0
+territories.UM=\u10e8\u10d4\u10d4\u10e0\u10d7\u10d4\u10d1\u10e3\u10da\u10d8 \u10e8\u10e2\u10d0\u10e2\u10d4\u10d1\u10d8\u10e1 \u10db\u10ea\u10d8\u10e0\u10d4 \u10d3\u10d0\u10e8\u10dd\u10e0\u10d4\u10d1\u10e3\u10da\u10d8 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
territories.UG=\u10e3\u10d2\u10d0\u10dc\u10d3\u10d0
territories.UA=\u10e3\u10d9\u10e0\u10d0\u10d8\u10dc\u10d0
territories.HU=\u10e3\u10dc\u10d2\u10e0\u10d4\u10d7\u10d8
@@ -192,11 +487,158 @@ territories.HT=\u10f0\u10d0\u10d8\u10e2\u10d8
territories.HR=\u10f0\u10dd\u10e0\u10d5\u10d0\u10e2\u10d8\u10d0
territories.TZ=\u10e2\u10d0\u10dc\u10d6\u10d0\u10dc\u10d8\u10d0
territories.HN=\u10f0\u10dd\u10dc\u10d3\u10e3\u10e0\u10d0\u10e1\u10d8
+territories.HM=\u10f0\u10d4\u10e0\u10d3\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d8 \u10d3\u10d0 \u10db\u10d0\u10d9\u10d3\u10dd\u10dc\u10d0\u10da\u10d3\u10d8\u10e1 \u10d9\u10e3\u10dc\u10eb\u10e3\u10da\u10d4\u10d1\u10d8
territories.TW=\u10e2\u10d0\u10d8\u10d5\u10d0\u10dc\u10d8
territories.TV=\u10e2\u10e3\u10d5\u10d0\u10da\u10e3
+territories.HK=\u10f0\u10dd\u10dc\u10d2 \u10d9\u10dd\u10dc\u10d2\u10d8
territories.TT=\u10e2\u10e0\u10d8\u10dc\u10d8\u10d3\u10d0\u10d3\u10d8 \u10d3\u10d0 \u10e2\u10dd\u10d1\u10d0\u10d2\u10dd
territories.TR=\u10d7\u10e3\u10e0\u10e5\u10d4\u10d7\u10d8
territories.TO=\u10e2\u10dd\u10dc\u10d2\u10d0
territories.TN=\u10e2\u10e3\u10dc\u10d8\u10e1\u10d8
territories.TM=\u10d7\u10e3\u10e0\u10e5\u10db\u10d4\u10dc\u10d4\u10d7\u10d8
+languages.ast=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d8\u10e3\u10da\u10d8
+languages.lb=\u10da\u10e3\u10e5\u10e1\u10d4\u10db\u10d1\u10e3\u10e0\u10d2\u10e3\u10da\u10d8
+languages.la=\u10da\u10d0\u10d7\u10d8\u10dc\u10e3\u10e0\u10d8
+languages.xh=\u10e5\u10e1\u10dd\u10d6\u10d0
+languages.ky=\u10e7\u10d8\u10e0\u10d2\u10d8\u10d6\u10e3\u10da\u10d8
+languages.ku=\u10e5\u10e3\u10e0\u10d7\u10e3\u10da\u10d8
+languages.ko=\u10d9\u10dd\u10e0\u10d4\u10e3\u10da\u10d8
+languages.udm=\u10e3\u10d3\u10db\u10e3\u10e0\u10e2\u10d8\u10e3\u10da\u10d8
+languages.km=\u10d9\u10d0\u10db\u10d1\u10dd\u10ef\u10d8\u10e3\u10e0\u10d8
+languages.kk=\u10e7\u10d0\u10d6\u10d0\u10ee\u10e3\u10e0\u10d8
+languages.kg=\u10d9\u10dd\u10dc\u10d2\u10dd
+languages.en_GB=\u10d1\u10e0\u10d8\u10e2\u10d0\u10dc\u10e3\u10da\u10d8 \u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.grc=\u10eb\u10d5\u10d4\u10da\u10d8 \u10d1\u10d4\u10e0\u10eb\u10dc\u10e3\u10da\u10d8
+languages.art=\u10ee\u10d4\u10da\u10dd\u10d5\u10dc\u10e3\u10e0\u10d8 \u10e1\u10ee\u10d5\u10d0
languages.ka=\u10e5\u10d0\u10e0\u10d7\u10e3\u10da\u10d8
+languages.jv=\u10d8\u10d0\u10d5\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.arc=\u10d0\u10e0\u10d0\u10db\u10d4\u10e3\u10da\u10d8
+languages.cel=\u10d9\u10d4\u10da\u10e2\u10e3\u10e0\u10d8 \u10e1\u10ee\u10d5\u10d0
+languages.scn=\u10e1\u10d8\u10ea\u10d8\u10da\u10d8\u10e3\u10e0\u10d8
+languages.ja=\u10d8\u10d0\u10de\u10dd\u10dc\u10e3\u10e0\u10d8
+languages.vi=\u10d5\u10d8\u10d4\u10e2\u10dc\u10d0\u10db\u10e3\u10e0\u10d8
+languages.it=\u10d8\u10e2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8
+languages.is=\u10d8\u10e1\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8
+languages.ady=\u10d0\u10d3\u10d8\u10e6\u10d4\u10e3\u10e0\u10d8
+languages.uz=\u10e3\u10d6\u10d1\u10d4\u10d9\u10e3\u10e0\u10d8
+languages.ur=\u10e3\u10e0\u10d3\u10e3
+languages.ie=\u10d8\u10dc\u10e2\u10d4\u10e0\u10da\u10d8\u10dc\u10d2\u10d8
+languages.id=\u10d8\u10dc\u10d3\u10dd\u10dc\u10d4\u10d6\u10d8\u10e3\u10e0\u10d8
+languages.ia=\u10d8\u10dc\u10e2\u10d4\u10e0\u10da\u10d8\u10dc\u10d2\u10e3\u10d0\u10da\u10e3\u10e0\u10d8
+languages.uk=\u10e3\u10d9\u10e0\u10d0\u10d8\u10dc\u10e3\u10da\u10d8
+languages.ug=\u10e3\u10d8\u10d2\u10e3\u10e0\u10e3\u10da\u10d8
+languages.hy=\u10e1\u10dd\u10db\u10ee\u10e3\u10e0\u10d8
+languages.und=\u10e3\u10ea\u10dc\u10dd\u10d1\u10d8 \u10d0\u10dc \u10d0\u10e0\u10d0\u10e1\u10ec\u10dd\u10e0\u10d8 \u10d4\u10dc\u10d0
+languages.es_ES=\u10d8\u10d1\u10d4\u10e0\u10d8\u10e3\u10da\u10d8 \u10d4\u10e1\u10de\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.hu=\u10e3\u10dc\u10d2\u10e0\u10e3\u10da\u10d8
+languages.hr=\u10ee\u10dd\u10e0\u10d5\u10d0\u10e2\u10d8\u10e3\u10da\u10d8
+languages.fil=\u10e2\u10d0\u10d2\u10d0\u10da\u10dd\u10d2\u10e3\u10e0\u10d8
+languages.tw=\u10d7\u10e3\u10d8
+languages.goh=\u10eb\u10d5\u10d4\u10da\u10d8 \u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8
+languages.hi=\u10f0\u10d8\u10dc\u10d3\u10d8
+languages.tr=\u10d7\u10e3\u10e0\u10e5\u10e3\u10da\u10d8
+languages.he=\u10d4\u10d1\u10e0\u10d0\u10e3\u10da\u10d8
+languages.tn=\u10e2\u10e1\u10d5\u10d0\u10dc\u10d0
+languages.tk=\u10d7\u10e3\u10e0\u10e5\u10db\u10d4\u10dc\u10e3\u10da\u10d8
+languages.th=\u10e2\u10d0\u10d8\u10da\u10d0\u10dc\u10d3\u10e3\u10e0\u10d8
+languages.tg=\u10e2\u10d0\u10ef\u10d8\u10d9\u10e3\u10e0\u10d8
+languages.gu=\u10d2\u10e3\u10ef\u10d0\u10e0\u10d0\u10d7\u10d8
+languages.ine=\u10d8\u10dc\u10d3\u10dd-\u10d4\u10d5\u10e0\u10dd\u10de\u10e3\u10da\u10d8 \u10e1\u10ee\u10d5\u10d0
+languages.gn=\u10d2\u10e3\u10d0\u10e0\u10d0\u10dc\u10d8
+languages.bua=\u10d1\u10e3\u10e0\u10d8\u10d0\u10e2\u10e3\u10da\u10d8
+languages.sw=\u10e1\u10e3\u10d0\u10f0\u10d8\u10da\u10d8
+languages.gl=\u10d2\u10d0\u10da\u10e3\u10e0\u10d8
+languages.sv=\u10e8\u10d5\u10d4\u10d3\u10e3\u10e0\u10d8
+languages.st=\u10e1\u10d0\u10db\u10ee\u10e0\u10d4\u10d7 \u10e1\u10dd\u10d7\u10dd\u10e1 \u10d4\u10dc\u10d0
+languages.sr=\u10e1\u10d4\u10e0\u10d1\u10e3\u10da\u10d8
+languages.en_CA=\u10d9\u10d0\u10dc\u10d0\u10d3\u10e3\u10e0\u10d8 \u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.sq=\u10d0\u10da\u10d1\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.so=\u10e1\u10dd\u10db\u10d0\u10da\u10d8\u10e3\u10e0\u10d8
+languages.gd=\u10e8\u10dd\u10e2\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0-\u10d2\u10d0\u10da\u10e3\u10e0\u10d8
+languages.sl=\u10e1\u10da\u10dd\u10d5\u10d4\u10dc\u10e3\u10e0\u10d8
+languages.ga=\u10d8\u10e0\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8
+languages.sk=\u10e1\u10da\u10dd\u10d5\u10d0\u10d9\u10e3\u10e0\u10d8
+languages.si=\u10e1\u10d8\u10dc\u10f0\u10d0\u10da\u10e3\u10e0\u10d8
+languages.sh=\u10e1\u10d4\u10e0\u10d1\u10e3\u10da-\u10ee\u10dd\u10e0\u10d5\u10d0\u10e2\u10e3\u10da\u10d8
+languages.myn=\u10db\u10d0\u10d8\u10d0\u10e1 \u10d4\u10dc\u10d4\u10d1\u10d8
+languages.sd=\u10e1\u10d8\u10dc\u10d3\u10e3\u10e0\u10d8
+languages.sc=\u10e1\u10d0\u10e0\u10d3\u10d8\u10dc\u10d8\u10e3\u10da\u10d8
+languages.cau=\u10d9\u10d0\u10d5\u10d9\u10d0\u10e1\u10d8\u10e3\u10e0\u10d8 \u10e1\u10ee\u10d5\u10d0
+languages.sa=\u10e1\u10d0\u10dc\u10e1\u10d9\u10e0\u10d8\u10e2\u10d8
+languages.ang=\u10eb\u10d5\u10d4\u10da\u10d8 \u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.fr=\u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8
+languages.sla=\u10e1\u10da\u10d0\u10d5\u10e3\u10e0\u10d8 \u10e1\u10ee\u10d5\u10d0
+languages.ru=\u10e0\u10e3\u10e1\u10e3\u10da\u10d8
+languages.fi=\u10e4\u10d8\u10dc\u10e3\u10e0\u10d8
+languages.ro=\u10e0\u10e3\u10db\u10d8\u10dc\u10e3\u10da\u10d8
+languages.fa=\u10e1\u10de\u10d0\u10e0\u10e1\u10e3\u10da\u10d8
+languages.pt_PT=\u10d8\u10d1\u10d4\u10e0\u10d8\u10e3\u10da-\u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8
+languages.nl_BE=\u10e4\u10da\u10dd\u10db\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8
+languages.es_419=\u10da\u10d0\u10d7\u10d8\u10dc\u10e3\u10e0 \u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10e3\u10da\u10d8 \u10d4\u10e1\u10de\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.pra=\u10de\u10e0\u10d0\u10d9\u10e0\u10d8\u10e2\u10d8\u10e1 \u10d4\u10dc\u10d4\u10d1\u10d8
+languages.en_AU=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d0\u10da\u10d8\u10e3\u10e0\u10d8 \u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.peo=\u10eb\u10d5\u10d4\u10da\u10d8 \u10e1\u10de\u10d0\u10e0\u10e1\u10e3\u10da\u10d8
+languages.eu=\u10d1\u10d0\u10e1\u10d9\u10e3\u10e0\u10d8
+languages.et=\u10d4\u10e1\u10e2\u10dd\u10dc\u10e3\u10e0\u10d8
+languages.es=\u10d4\u10e1\u10de\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.eo=\u10d4\u10e1\u10de\u10d4\u10e0\u10d0\u10dc\u10e2\u10dd
+languages.en=\u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.el=\u10d1\u10d4\u10e0\u10eb\u10dc\u10e3\u10da\u10d8
+languages.fro=\u10eb\u10d5\u10d4\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8
+languages.ale=\u10d0\u10da\u10d4\u10e3\u10e2\u10e3\u10e0\u10d8
+languages.pt=\u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8
+languages.pt_BR=\u10d1\u10e0\u10d0\u10d6\u10d8\u10da\u10d8\u10e3\u10e0\u10d8 \u10de\u10dd\u10e0\u10e2\u10e3\u10d2\u10d0\u10da\u10d8\u10e3\u10e0\u10d8
+languages.ps=\u10de\u10e3\u10e8\u10e2\u10e3
+languages.de=\u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8
+languages.pl=\u10de\u10dd\u10da\u10dd\u10dc\u10e3\u10e0\u10d8
+languages.da=\u10d3\u10d0\u10dc\u10d8\u10e3\u10e0\u10d8
+languages.sux=\u10e8\u10e3\u10db\u10d4\u10e0\u10e3\u10da\u10d8
+languages.cy=\u10e3\u10d4\u10da\u10e1\u10e3\u10e0\u10d8
+languages.cu=\u10e1\u10d0\u10d4\u10d9\u10da\u10d4\u10e1\u10d8\u10dd \u10e1\u10da\u10d0\u10d5\u10e3\u10e0\u10d8
+languages.cs=\u10e9\u10d4\u10ee\u10e3\u10e0\u10d8
+languages.de_CH=\u10e8\u10d5\u10d4\u10d8\u10ea\u10d0\u10e0\u10d8\u10e3\u10da\u10d8 \u10db\u10d0\u10e6\u10d0\u10da\u10d8 \u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8
+languages.os=\u10dd\u10e1\u10e3\u10e0\u10d8
+languages.or=\u10dd\u10e0\u10d8\u10e3\u10da\u10d8
+languages.ce=\u10e9\u10d4\u10e9\u10dc\u10e3\u10e0\u10d8
+languages.ca=\u10d9\u10d0\u10e2\u10d0\u10da\u10dd\u10dc\u10d8\u10e3\u10e0\u10d8
+languages.oc=\u10dd\u10ea\u10d8\u10e2\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.bs=\u10d1\u10dd\u10e1\u10dc\u10d8\u10e3\u10e0\u10d8
+languages.br=\u10d1\u10e0\u10d4\u10e2\u10dd\u10dc\u10e3\u10da\u10d8
+languages.bo=\u10e2\u10d8\u10d1\u10d4\u10e2\u10e3\u10e0\u10d8
+languages.zh_Hans=\u10d2\u10d0\u10db\u10d0\u10e0\u10e2\u10d8\u10d5\u10d4\u10d1\u10e3\u10da\u10d8 \u10e9\u10d8\u10dc\u10e3\u10e0\u10d8
+languages.zh_Hant=\u10e2\u10e0\u10d0\u10d3\u10d8\u10ea\u10d8\u10e3\u10da\u10d8 \u10e9\u10d8\u10dc\u10e3\u10e0\u10d8
+languages.nv=\u10dc\u10d0\u10d5\u10d0\u10ee\u10dd
+languages.bh=\u10d1\u10d8\u10f0\u10d0\u10e0\u10d8
+languages.bg=\u10d1\u10e3\u10da\u10d2\u10d0\u10e0\u10e3\u10da\u10d8
+languages.be=\u10d1\u10d4\u10da\u10dd\u10e0\u10e3\u10e1\u10e3\u10da\u10d8
+languages.no=\u10dc\u10dd\u10e0\u10d5\u10d4\u10d2\u10d8\u10e3\u10da\u10d8
+languages.nn=\u10dc\u10dd\u10e0\u10d5\u10d4\u10d2\u10d8\u10e3\u10da\u10d8 \u10dc\u10d8\u10dc\u10dd\u10e0\u10e1\u10d9\u10d8
+languages.nl=\u10f0\u10dd\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8
+languages.zu=\u10d6\u10e3\u10da\u10e3
+languages.ain=\u10d0\u10d8\u10dc\u10e3
+languages.az=\u10d0\u10d6\u10d4\u10e0\u10d1\u10d0\u10d8\u10ef\u10d0\u10dc\u10e3\u10da\u10d8
+languages.ne=\u10dc\u10d4\u10de\u10d0\u10da\u10e3\u10e0\u10d8
+languages.de_AT=\u10d0\u10d5\u10e1\u10e2\u10e0\u10d8\u10e3\u10da\u10d8 \u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8
+languages.as=\u10d0\u10e1\u10d0\u10db\u10e3\u10e0\u10d8
+languages.nap=\u10dc\u10d4\u10d0\u10de\u10dd\u10da\u10d8\u10e2\u10d0\u10dc\u10e3\u10e0\u10d8
+languages.ar=\u10d0\u10e0\u10d0\u10d1\u10e3\u10da\u10d8
+languages.zh=\u10e9\u10d8\u10dc\u10e3\u10e0\u10d8
+languages.sga=\u10eb\u10d5\u10d4\u10da\u10d8 \u10d8\u10e0\u10da\u10d0\u10dc\u10d3\u10d8\u10e3\u10e0\u10d8
+languages.ms=\u10db\u10d0\u10da\u10d0\u10d8\u10d6\u10d8\u10e3\u10e0\u10d8
+languages.af=\u10d0\u10e4\u10e0\u10d8\u10d9\u10e3\u10da\u10d8
+languages.ae=\u10d0\u10d5\u10d4\u10e1\u10e2\u10d0
+languages.mo=\u10db\u10dd\u10da\u10d3\u10dd\u10d5\u10e3\u10e0\u10d8
+languages.mn=\u10db\u10dd\u10dc\u10e6\u10dd\u10da\u10e3\u10e0\u10d8
+languages.en_US=\u10d0\u10db\u10d4\u10e0\u10d8\u10d9\u10e3\u10da\u10d8 \u10d8\u10dc\u10d2\u10da\u10d8\u10e1\u10e3\u10e0\u10d8
+languages.ab=\u10d0\u10e4\u10ee\u10d0\u10d6\u10e3\u10e0\u10d8
+languages.mk=\u10db\u10d0\u10d9\u10d4\u10d3\u10dd\u10dc\u10d8\u10e3\u10e0\u10d8
+languages.egy=\u10d4\u10d2\u10d5\u10d8\u10de\u10e2\u10e3\u10e0\u10d8
+languages.tlh=\u10d9\u10da\u10d8\u10dc\u10d2\u10dd\u10dc\u10e3\u10e0\u10d8
+languages.yi=\u10d8\u10d3\u10d8\u10e8\u10d8
+languages.gsw=\u10e8\u10d5\u10d4\u10d8\u10ea\u10d0\u10e0\u10d8\u10e3\u10da\u10d8 \u10d2\u10d4\u10e0\u10db\u10d0\u10dc\u10e3\u10da\u10d8
+languages.lv=\u10da\u10d0\u10e2\u10d5\u10d8\u10e3\u10e0\u10d8
+languages.lt=\u10da\u10d8\u10e2\u10d5\u10e3\u10e0\u10d8
+languages.fr_CH=\u10e8\u10d5\u10d4\u10d8\u10ea\u10d0\u10e0\u10d8\u10e3\u10da\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8
+languages.lo=\u10da\u10d0\u10dd\u10e1\u10e3\u10e0\u10d8
+languages.ln=\u10da\u10d8\u10dc\u10d2\u10d0\u10da\u10d0
+languages.fr_CA=\u10d9\u10d0\u10dc\u10d0\u10d3\u10e3\u10e0\u10d8 \u10e4\u10e0\u10d0\u10dc\u10d2\u10e3\u10da\u10d8
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties
new file mode 100644
index 0000000..d809c98
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties
@@ -0,0 +1,23 @@
+# LocaleInformation_kaj.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=A\u0331naira
+currenciesSymbol.NGN=\u20a6
+shortMonths=A\u0331yr\u00aeA\u0331hw\u00aeA\u0331ta\u00aeA\u0331na\u00aeA\u0331pf\u00aeA\u0331ki\u00aeA\u0331ty\u00aeA\u0331ni\u00aeA\u0331ku\u00aeSwa\u00aeSby\u00aeSbh\u00ae\u00ae
+months=Hywan A\u0331yrnig\u00aeHywan A\u0331hwa\u00aeHywan A\u0331tat\u00aeHywan A\u0331naai\u00aeHywan A\u0331pfwon\u00aeHywan A\u0331kitat\u00aeHywan A\u0331tyirin\u00aeHywan A\u0331ninai\u00aeHywan A\u0331kumviriyin\u00aeHywan Swak\u00aeHywan Swak B'a\u0331yrnig\u00aeHywan Swak B'a\u0331hwa\u00ae\u00ae
+shortWeekdays=\u00aeLad\u00aeLin\u00aeTal\u00aeLar\u00aeLam\u00aeJum\u00aeAsa\u00ae
+weekdays=\u00aeLadi\u00aeLintani\u00aeTalata\u00aeLarba\u00aeLamit\u00aeJuma\u00aeAsabar\u00ae
+eras=G.M.\u00aeM.\u00ae
+ampms=A.M.\u00aeP.M.\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kam.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kam.properties
new file mode 100644
index 0000000..338b211
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kam.properties
@@ -0,0 +1,23 @@
+# LocaleInformation_kam.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.KES=Silingi ya Kenya
+currenciesSymbol.KES=KSh
+shortMonths=Mwei wa mbee\u00aeMwei wa keli\u00aeMwei wa katatu\u00aeMwei wa kanne\u00aeMwei wa katano\u00aeMwei wa thanthatu\u00aeMwei wa muonza\u00aeMwei wa nyanya\u00aeMwei wa kenda\u00aeMwei wa ikumi\u00aeMwei wa ikumi na imwe\u00aeMwei wa ikumi na ili\u00ae\u00ae
+months=Mwei wa mbee\u00aeMwei wa keli\u00aeMwei wa katatu\u00aeMwei wa kanne\u00aeMwei wa katano\u00aeMwei wa thanthatu\u00aeMwei wa muonza\u00aeMwei wa nyanya\u00aeMwei wa kenda\u00aeMwei wa ikumi\u00aeMwei wa ikumi na imwe\u00aeMwei wa ikumi na ili\u00ae\u00ae
+shortWeekdays=\u00aeJpl\u00aeJtt\u00aeJnn\u00aeJtn\u00aeAlh\u00aeIjm\u00aeJms\u00ae
+weekdays=\u00aeJumapili\u00aeJumatatu\u00aeJumanne\u00aeJumatano\u00aeAlamisi\u00aeIjumaa\u00aeJumamosi\u00ae
+eras=MY\u00aeIY\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties
new file mode 100644
index 0000000..c25758b
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties
@@ -0,0 +1,23 @@
+# LocaleInformation_kcg.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=Nera
+currenciesSymbol.NGN=\u20a6
+shortMonths=Juw\u00aeSwi\u00aeTsa\u00aeNya\u00aeTsw\u00aeAta\u00aeAna\u00aeAri\u00aeAku\u00aeSwa\u00aeMan\u00aeMas\u00ae\u00ae
+months=Zwat Juwung\u00aeZwat Swiyang\u00aeZwat Tsat\u00aeZwat Nyai\u00aeZwat Tswon\u00aeZwat Ataah\u00aeZwat Anatat\u00aeZwat Arinai\u00aeZwat Akubunyung\u00aeZwat Swag\u00aeZwat Mangjuwang\u00aeZwat Swag-Ma-Suyang\u00ae\u00ae
+shortWeekdays=\u00aeLad\u00aeTan\u00aeTal\u00aeLar\u00aeLam\u00aeJum\u00aeAsa\u00ae
+weekdays=\u00aeLadi\u00aeTanii\u00aeTalata\u00aeLarba\u00aeLamit\u00aeJuma\u00aeAsabat\u00ae
+eras=GM\u00aeM\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties
new file mode 100644
index 0000000..c7efa0c
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties
@@ -0,0 +1,23 @@
+# LocaleInformation_kfo.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=Neira
+currenciesSymbol.NGN=\u20a6
+shortMonths=Wey\u00aeFan\u00aeTat\u00aeNan\u00aeTuy\u00aeTso\u00aeTaf\u00aeWar\u00aeKun\u00aeBan\u00aeKom\u00aeSau\u00ae\u00ae
+months=Fai Weyene\u00aeFai Fani\u00aeFai Tataka\u00aeFai Nangra\u00aeFai Tuyo\u00aeFai Tsoyi\u00aeFai Tafaka\u00aeFai Warachi\u00aeFai Kunobok\u00aeFai Bansok\u00aeFai Kom\u00aeFai Sauk\u00ae\u00ae
+shortWeekdays=\u00aeLah\u00aeKub\u00aeGba\u00aeTan\u00aeYei\u00aeKoy\u00aeSat\u00ae
+weekdays=\u00aeLahadi\u00aeJe-Kubacha\u00aeJe-Gbai\u00aeTansati\u00aeJe-Yei\u00aeJe-Koye\u00aeSati\u00ae
+eras=KMW\u00aeBCW\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kk.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kk.properties
index 0782017..21470a5 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kk.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kk.properties
@@ -7,15 +7,125 @@
decimalSeparator=,
groupingSeparator=\u00a0
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.XXX=Unknown or Invalid Currency
currenciesSymbol.KZT=\u0442\u04a3\u0433.
-shortMonths=\u049b\u0430\u04a3.®\u0430\u049b\u043f.®\u043d\u0430\u0443.®\u0441\u04d9\u0443.®\u043c\u0430\u043c.®\u043c\u0430\u0443.®\u0448\u0456\u043b.®\u0442\u0430\u043c.®\u049b\u044b\u0440.®\u049b\u0430\u0437.®\u049b\u0430\u0440.®\u0436\u0435\u043b\u0442.®®
-months=\u049b\u0430\u04a3\u0442\u0430\u0440®\u0430\u049b\u043f\u0430\u043d®\u043d\u0430\u0443\u0440\u044b\u0437®\u0441\u04d9\u0443\u0456\u0440®\u043c\u0430\u043c\u044b\u0440®\u043c\u0430\u0443\u0441\u044b\u043c®\u0448\u0456\u043b\u0434\u0435®\u0442\u0430\u043c\u044b\u0437®\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a®\u049b\u0430\u0437\u0430\u043d®\u049b\u0430\u0440\u0430\u0448\u0430®\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d®®
-shortWeekdays=®\u0436\u0441.®\u0434\u0441.®\u0441\u0441.®\u0441\u0440.®\u0431\u0441.®\u0436\u043c.®\u0441\u04bb.®
-weekdays=®\u0436\u0435\u043a\u0441\u0435\u043d\u0456®\u0434\u0443\u0439\u0441\u0435\u043d\u0431\u0456®\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456®\u0441\u04d9\u0440\u0435\u043d\u0431\u0456®\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456®\u0436\u04b1\u043c\u0430®\u0441\u0435\u043d\u0431\u0456®
-firstDayOfWeek=mon
+currenciesSymbol.XXX=XXX
+shortMonths=\u049b\u0430\u04a3.\u00ae\u0430\u049b\u043f.\u00ae\u043d\u0430\u0443.\u00ae\u0441\u04d9\u0443.\u00ae\u043c\u0430\u043c.\u00ae\u043c\u0430\u0443.\u00ae\u0448\u0456\u043b.\u00ae\u0442\u0430\u043c.\u00ae\u049b\u044b\u0440.\u00ae\u049b\u0430\u0437.\u00ae\u049b\u0430\u0440.\u00ae\u0436\u0435\u043b\u0442.\u00ae\u00ae
+months=\u049b\u0430\u04a3\u0442\u0430\u0440\u00ae\u0430\u049b\u043f\u0430\u043d\u00ae\u043d\u0430\u0443\u0440\u044b\u0437\u00ae\u0441\u04d9\u0443\u0456\u0440\u00ae\u043c\u0430\u043c\u044b\u0440\u00ae\u043c\u0430\u0443\u0441\u044b\u043c\u00ae\u0448\u0456\u043b\u0434\u0435\u00ae\u0442\u0430\u043c\u044b\u0437\u00ae\u049b\u044b\u0440\u043a\u04af\u0439\u0435\u043a\u00ae\u049b\u0430\u0437\u0430\u043d\u00ae\u049b\u0430\u0440\u0430\u0448\u0430\u00ae\u0436\u0435\u043b\u0442\u043e\u049b\u0441\u0430\u043d\u00ae\u00ae
+shortWeekdays=\u00ae\u0436\u0441.\u00ae\u0434\u0441.\u00ae\u0441\u0441.\u00ae\u0441\u0440.\u00ae\u0431\u0441.\u00ae\u0436\u043c.\u00ae\u0441\u04bb.\u00ae
+weekdays=\u00ae\u0436\u0435\u043a\u0441\u0435\u043d\u0456\u00ae\u0434\u0443\u0439\u0441\u0435\u043d\u0431\u0456\u00ae\u0441\u0435\u0439\u0441\u0435\u043d\u0431\u0456\u00ae\u0441\u04d9\u0440\u0435\u043d\u0431\u0456\u00ae\u0431\u0435\u0439\u0441\u0435\u043d\u0431\u0456\u00ae\u0436\u04b1\u043c\u0430\u00ae\u0441\u0435\u043d\u0431\u0456\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=dd.MM.yy
mediumDateFormat=dd.MM.yyyy
-longDateFormat=d MMMM yyyy '\u0436.'
-fullDateFormat=EEEE, d MMMM yyyy '\u0436.'
+longDateFormat=d MMMM yyyy '\u0436'.
+fullDateFormat=EEEE, d MMMM yyyy '\u0436'.
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=\u0422\u043e\u043d\u0433\u0430
territories.KZ=\u049a\u0430\u0437\u0430\u049b\u0441\u0442\u0430\u043d
+languages.es=\u0438\u0441\u043f\u0430\u043d
+languages.ku=\u043a\u04af\u0440\u0434
+languages.eo=\u044d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0430\u0493\u044b\u043b\u0448\u044b\u043d
+languages.el=\u0433\u0440\u0435\u043a
+languages.ko=\u043a\u04d9\u0440\u0456\u0441
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.km=\u043a\u0430\u043c\u0431\u043e\u0434\u0436\u0438\u044f
languages.kk=\u049a\u0430\u0437\u0430\u049b
+languages.ka=\u0433\u0440\u0443\u0437\u0438\u043d
+languages.jv=\u044f\u0432\u0430
+languages.fil=\u043f\u0438\u043b\u0438\u043f\u0438\u043d\u043e
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b
+languages.ps=\u043f\u0430\u0448\u0442\u043e
+languages.de=\u043d\u0435\u043c\u0456\u0441
+languages.pl=\u043f\u043e\u043b\u044f\u043a
+languages.da=\u0434\u0430\u0442
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d
+languages.ja=\u0436\u0430\u043f\u043e\u043d
+languages.vi=\u0432\u044c\u0435\u0442\u043d\u0430\u043c
+languages.cy=\u0432\u0430\u043b\u043b\u0438\u0439
+languages.pa=\u043f\u0430\u043d\u0434\u0436\u0430\u0431
+languages.cs=\u0447\u0435\u0445
+languages.it=\u0438\u0442\u0430\u043b\u0438\u044f\u043d
+languages.is=\u0438\u0441\u043b\u0430\u043d\u0434
+languages.uz=\u04e9\u0437\u0431\u0435\u043a
+languages.or=\u043e\u0440\u0438\u044f
+languages.ur=\u0443\u0440\u0434\u0443
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u0430\u043d
+languages.ie=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0435
+languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f
+languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d
+languages.ia=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0430
+languages.oc=\u043e\u043a\u0441\u0438\u0442\u0430\u043d
+languages.ug=\u04b1\u0439\u0493\u044b\u0440
+languages.hy=\u0430\u0440\u043c\u044f\u043d
+languages.bs=\u0431\u043e\u0441\u043d\u0438\u044f
+languages.br=\u0431\u0440\u0438\u0442
+languages.hu=\u043c\u0430\u0434\u044c\u044f\u0440
+languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b
+languages.hr=\u0445\u043e\u0440\u0432\u0430\u0442
+languages.tw=\u0442\u0432\u0438
+languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438
+languages.bg=\u0431\u043e\u043b\u0433\u0430\u0440
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0433
+languages.be=\u0431\u0435\u043b\u0430\u0440\u0443\u0441
+languages.hi=\u0445\u0438\u043d\u0434\u0438
+languages.tr=\u0442\u04af\u0440\u0456\u043a\u0448\u0435
+languages.nl=\u0433\u043e\u043b\u043b\u0430\u043d\u0434
+languages.zu=\u0437\u0443\u043b\u0443\u0441
+languages.he=\u0438\u0432\u0440\u0438\u0442
+languages.tk=\u0442\u04af\u0440\u043a\u043c\u0435\u043d
+languages.ne=\u043d\u0435\u043f\u0430\u043b
+languages.ti=\u0442\u0438\u0433\u0440\u0438\u043d\u044c\u044f
+languages.th=\u0442\u0430\u0439
+languages.te=\u0442\u0435\u043b\u0443\u0433\u0443
+languages.as=\u0430\u0441\u0441\u0430\u043c
+languages.ar=\u0430\u0440\u0430\u0431\u0448\u0430
+languages.ta=\u0442\u0430\u043c\u0438\u043b
+languages.gu=\u0433\u0443\u0434\u0436\u0430\u0440\u0430\u0442\u0438
+languages.am=\u0430\u043c\u0445\u0430\u0440
+languages.mt=\u043c\u0430\u043b\u044c\u0442\u0430
+languages.ms=\u043c\u0430\u043b\u0430\u0439
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0438
+languages.sw=\u0441\u0443\u0430\u0445\u0438\u043b\u0438
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0445\u0438
+languages.sv=\u0448\u0432\u0435\u0434
+languages.gl=\u0433\u0430\u043b\u0438\u0446\u0438\u044f\u0448\u0430
+languages.su=\u0441\u0443\u0434\u0430\u043d
+languages.af=\u0431\u0443\u0440
+languages.st=\u0441\u0435\u0441\u043e\u0442\u043e
+languages.mn=\u043c\u043e\u043d\u0493\u043e\u043b
+languages.sr=\u0441\u0435\u0440\u0431
+languages.sq=\u0430\u043b\u0431\u0430\u043d
+languages.ml=\u043c\u0430\u043b\u0430\u0439\u044f\u043b\u0430\u043c
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d
+languages.so=\u0441\u043e\u043c\u0430\u043b\u0438
+languages.gd=\u0421\u043e\u043b\u0442\u04af\u0441\u0442\u0456\u043a \u0428\u043e\u0442\u043b\u0430\u043d\u0434\u0438\u044f
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u043a
+languages.ga=\u0438\u0440\u043b\u0430\u043d\u0434\u0448\u0430
+languages.si=\u0441\u0438\u043d\u0433\u0430\u043b
+languages.sh=\u0441\u0435\u0440\u0431\u0445\u043e\u0440\u0432\u0430\u0442
+languages.yi=\u0438\u0434\u0438\u0448
+languages.sd=\u0441\u0438\u043d\u0434\u0445\u0438
+languages.fy=\u0444\u0440\u0438\u0441
+languages.sa=\u0441\u0430\u043d\u0441\u043a\u0440\u0438\u0442
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437
+languages.lv=\u043b\u0430\u0442\u044b\u0448
+languages.lt=\u043b\u0438\u0442\u0432\u0430
+languages.fo=\u0444\u0430\u0440\u0435\u0440
+languages.ru=\u043e\u0440\u044b\u0441
+languages.lo=\u043b\u0430\u043e\u0441
+languages.ln=\u043b\u0438\u043d\u0433\u0430\u043b\u0430
+languages.fi=\u0444\u0438\u043d
+languages.ro=\u0440\u0443\u043c\u044b\u043d
+languages.fa=\u043f\u0430\u0440\u0441\u044b
+languages.la=\u043b\u0430\u0442\u044b\u043d
+languages.xh=\u0445\u043e\u0441\u0430
+languages.eu=\u0431\u0430\u0441\u043a
+languages.ky=\u049b\u044b\u0440\u0493\u044b\u0437
+languages.et=\u044d\u0441\u0442\u043e\u043d
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kl.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kl.properties
index bee1c6a..b970421 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kl.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kl.properties
@@ -7,10 +7,21 @@
decimalSeparator=,
groupingSeparator=.
+currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
currenciesSymbol.DKK=kr
-shortMonths=jan®feb®mar®apr®maj®jun®jul®aug®sep®okt®nov®dec®®
-months=januari®februari®martsi®aprili®maji®juni®juli®augustusi®septemberi®oktoberi®novemberi®decemberi®®
-shortWeekdays=®sab®ata®mar®pin®sis®tal®arf®
-weekdays=®sabaat®ataasinngorneq®marlunngorneq®pingasunngorneq®sisamanngorneq®tallimanngorneq®arfininngorneq®
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januari\u00aefebruari\u00aemartsi\u00aeaprili\u00aemaji\u00aejuni\u00aejuli\u00aeaugustusi\u00aeseptemberi\u00aeoktoberi\u00aenovemberi\u00aedecemberi\u00ae\u00ae
+shortWeekdays=\u00aesab\u00aeata\u00aemar\u00aepin\u00aesis\u00aetal\u00aearf\u00ae
+weekdays=\u00aesabaat\u00aeataasinngorneq\u00aemarlunngorneq\u00aepingasunngorneq\u00aesisamanngorneq\u00aetallimanngorneq\u00aearfininngorneq\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=MMM dd, yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.GL=Kalaallit Nunaat
languages.kl=kalaallisut
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_km.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_km.properties
index fc979d3..5433463 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_km.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_km.properties
@@ -7,24 +7,24 @@
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GyMdkHmsSEDFwWahKzYeugXZ
+currencyFormat=#,##0.00\u00a4;-#,##0.00\u00a4
+localPatternChars=GyMdkHmsSEDFwWahKzYeugXZvcL
currenciesDisplayName.KHR=Riel
currenciesSymbol.KHR=\u17db
-shortMonths=\u17e1®\u17e2®\u17e3®\u17e4®\u17e5®\u17e6®\u17e7®\u17e8®\u17e9®\u17e1\u17e0®\u17e1\u17e1®\u17e1\u17e2®®
-months=\u1798\u1780\u179a\u17b6®\u1780\u17bb\u1798\u17d2\u1797\u17c8®\u1798\u17b7\u1793\u17b6®\u1798\u17c1\u179f\u17b6®\u17a7\u179f\u1797\u17b6®\u1798\u17b7\u1790\u17bb\u1793\u17b6®\u1780\u1780\u17d2\u1780\u178a\u17b6®\u179f\u17b8\u17a0\u17b6®\u1780\u1789\u17d2\u1789\u17b6®\u178f\u17bb\u179b\u17b6®\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6®\u1792\u17d2\u1793\u17bc®®
-shortWeekdays=®\u17a2\u17b6®\u1785®\u17a2®\u1796\u17bb®\u1796\u17d2\u179a®\u179f\u17bb®\u179f®
-weekdays=®\u1790\u17d2\u1784\u17c3\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799®\u200b\u1790\u17d2\u1784\u17c3\u1785\u17d0\u1793\u17d2\u1791®\u1790\u17d2\u1784\u17c3\u17a2\u1784\u17d2\u1782\u17b6\u179a®\u1790\u17d2\u1784\u17c3\u1796\u17bb\u1792®\u1790\u17d2\u1784\u17c3\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd®\u1790\u17d2\u1784\u17c3\u179f\u17bb\u1780\u17d2\u179a®\u1790\u17d2\u1784\u17c3\u179f\u17c5\u179a\u17cd®
-firstDayOfWeek=mon
-eras=\u1798\u17bb\u1793\u200b\u1782.\u179f.®\u1782.\u179f.®
-ampms=\u1796\u17d2\u179a\u17b9\u1780®\u179b\u17d2\u1784\u17b6\u1785®
+shortMonths=\u17e1\u00ae\u17e2\u00ae\u17e3\u00ae\u17e4\u00ae\u17e5\u00ae\u17e6\u00ae\u17e7\u00ae\u17e8\u00ae\u17e9\u00ae\u17e1\u17e0\u00ae\u17e1\u17e1\u00ae\u17e1\u17e2\u00ae\u00ae
+months=\u1798\u1780\u179a\u17b6\u00ae\u1780\u17bb\u1798\u17d2\u1797\u17c8\u00ae\u1798\u17b7\u1793\u17b6\u00ae\u1798\u17c1\u179f\u17b6\u00ae\u17a7\u179f\u1797\u17b6\u00ae\u1798\u17b7\u1790\u17bb\u1793\u17b6\u00ae\u1780\u1780\u17d2\u1780\u178a\u17b6\u00ae\u179f\u17b8\u17a0\u17b6\u00ae\u1780\u1789\u17d2\u1789\u17b6\u00ae\u178f\u17bb\u179b\u17b6\u00ae\u179c\u17b7\u1785\u17d2\u1786\u17b7\u1780\u17b6\u00ae\u1792\u17d2\u1793\u17bc\u00ae\u00ae
+shortWeekdays=\u00ae\u17a2\u17b6\u00ae\u1785\u00ae\u17a2\u00ae\u1796\u17bb\u00ae\u1796\u17d2\u179a\u00ae\u179f\u17bb\u00ae\u179f\u00ae
+weekdays=\u00ae\u1790\u17d2\u1784\u17c3\u17a2\u17b6\u1791\u17b7\u178f\u17d2\u1799\u00ae\u200b\u1790\u17d2\u1784\u17c3\u1785\u17d0\u1793\u17d2\u1791\u00ae\u1790\u17d2\u1784\u17c3\u17a2\u1784\u17d2\u1782\u17b6\u179a\u00ae\u1790\u17d2\u1784\u17c3\u1796\u17bb\u1792\u00ae\u1790\u17d2\u1784\u17c3\u1796\u17d2\u179a\u17a0\u179f\u17d2\u1794\u178f\u17b7\u17cd\u00ae\u1790\u17d2\u1784\u17c3\u179f\u17bb\u1780\u17d2\u179a\u00ae\u1790\u17d2\u1784\u17c3\u179f\u17c5\u179a\u17cd\u00ae
+eras=\u1798\u17bb\u1793\u200b\u1782.\u179f.\u00ae\u1782.\u179f.\u00ae
+ampms=\u1796\u17d2\u179a\u17b9\u1780\u00ae\u179b\u17d2\u1784\u17b6\u1785\u00ae
shortDateFormat=d/M/yyyy
-mediumDateFormat=d MMMM yyyy
-longDateFormat=EEEE' \u1790\u17d2\u1784\u17c3 'd' \u1781\u17c2 'MMMM' \u1786\u17d2\u1793\u17b6\u17c6 ' yyyy
-fullDateFormat=EEEE' \u1790\u17d2\u1784\u17c3 'd' \u1781\u17c2 'MMMM' \u1786\u17d2\u1793\u17b6\u17c6 ' yyyy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d \u1781\u17c2 MMMM \u1786\u17d2\u1793\u17b6\u17c6 yyyy
+fullDateFormat=EEEE \u1790\u17d2\u1784\u17c3 d \u1781\u17c2 MMMM \u1786\u17d2\u1793\u17b6\u17c6 yyyy
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
-longTimeFormat=H' \u1798\u17c9\u17c4\u1784 'm' \u1793\u17b6\u1791\u17b8 'ss' \u179c\u17b7\u1793\u17b6\u1791\u17b8\u200b'
-fullTimeFormat=H' \u1798\u17c9\u17c4\u1784 'm' \u1793\u17b6\u1791\u17b8 'ss' \u179c\u17b7\u1793\u17b6\u1791\u17b8\u200b' z
+longTimeFormat=H \u1798\u17c9\u17c4\u1784 m \u1793\u17b6\u1791\u17b8 ss \u179c\u17b7\u1793\u17b6\u1791\u17b8\u200bz
+fullTimeFormat=H \u1798\u17c9\u17c4\u1784 m \u1793\u17b6\u1791\u17b8 ss \u179c\u17b7\u1793\u17b6\u1791\u17b8\u200b z
territories.TL=\u1791\u17b8\u1798\u17d0\u179a\u1781\u17b6\u1784\u1780\u17be\u178f
territories.TJ=\u178f\u17b6\u178a\u17a0\u17d2\u179f\u17c9\u17b8\u1782\u17b8\u179f\u17d2\u178f\u1784\u17cb
territories.TH=\u1790\u17c3
@@ -57,8 +57,8 @@ territories.SA=\u17a2\u17b6\u179a\u17c9\u17b6\u1794\u17ca\u17b8\u179f\u17b6\u17a
territories.FR=\u1794\u17b6\u179a\u17b6\u17c6\u1784
territories.FM=\u1798\u17b7\u1780\u17d2\u179a\u17bc\u1793\u17c1\u179f\u17ca\u17b8
territories.RW=\u179a\u179c\u17c9\u17b6\u1793\u17cb\u178a\u17b6
-territories.FJ=\u17a0\u17d2\u179c\u17c9\u17b8\u17a0\u17d2\u179f\u17c9\u17b8
territories.RU=\u179a\u17bc\u179f\u17d2\u179f\u17ca\u17b8
+territories.FJ=\u17a0\u17d2\u179c\u17c9\u17b8\u17a0\u17d2\u179f\u17c9\u17b8
territories.FI=\u17a0\u17d2\u179c\u17b6\u17c6\u1784\u17a1\u1784\u17cb
territories.RO=\u179a\u17bc\u1798\u17c9\u17b6\u1793\u17b8
territories.ET=\u17a2\u17c1\u178f\u17d2\u1799\u17bc\u1796\u17b8
@@ -84,11 +84,11 @@ territories.PK=\u1794\u17c9\u17b6\u1782\u17b8\u179f\u17d2\u1790\u17b6\u1793
territories.PH=\u17a0\u17d2\u179c\u17c9\u17b8\u179b\u17b8\u1796\u17b8\u1793
territories.PG=\u1794\u17c9\u17b6\u1796\u17bc\u17a2\u17b6\u1793\u17bc\u179c\u17c2\u179b\u17a0\u17d2\u1782\u17b8\u178e\u17c1
territories.CZ=\u179f\u17b6\u1792\u17b6\u179a\u178e\u179a\u178a\u17d2\u178b\u1786\u17c1\u1780
-territories.CY=\u179f\u17c9\u17b8\u1796\u179a\u17cd
territories.PE=\u1794\u17c9\u17c1\u179a\u17bc
+territories.CY=\u179f\u17c9\u17b8\u1796\u179a\u17cd
territories.CV=\u1780\u17b6\u1794\u179c\u17c2\u179a
-territories.CU=\u1782\u17bb\u1799\u1794\u17b6
territories.PA=\u1794\u17c9\u17b6\u178e\u17b6\u1798\u17c9\u17b6
+territories.CU=\u1782\u17bb\u1799\u1794\u17b6
territories.CR=\u1780\u17bc\u179f\u17d2\u178f\u17b6\u179a\u17b8\u1780\u17b6
territories.CO=\u1780\u17bc\u17a1\u17bb\u17c6\u1794\u17ca\u17b8
territories.CN=\u1785\u17b7\u1793
@@ -106,36 +106,36 @@ territories.BW=\u1794\u17bb\u178f\u179f\u17d2\u179c\u17b6\u178e\u17b6
territories.BT=\u1794\u17ca\u17bc\u178f\u17b6\u1793
territories.BS=\u1794\u17b6\u17a0\u17b6\u1798\u17c9\u17b6
territories.BR=\u1794\u17d2\u179a\u17c1\u179f\u17ca\u17b8\u179b
-territories.BO=\u1794\u17bc\u179b\u17b8\u179c\u17b8
territories.NZ=\u1793\u17bc\u179c\u17c2\u179b\u17a0\u17d2\u179f\u17c1\u17a1\u1784\u17cb
+territories.BO=\u1794\u17bc\u179b\u17b8\u179c\u17b8
territories.BN=\u1794\u17ca\u17d2\u179a\u17bb\u1799\u178e\u17c1
territories.BJ=\u1794\u17c1\u178e\u17b6\u17c6\u1784
territories.BI=\u1794\u17ca\u17bc\u179a\u17bb\u1793\u178c\u17b8
territories.BH=\u1794\u17b6\u179a\u17c9\u17c2\u1793
territories.BG=\u1794\u17ca\u17bb\u179b\u17a0\u17d2\u1782\u17b6\u179a\u17b8
territories.BF=\u1794\u17ca\u17bc\u179a\u1782\u17b8\u178e\u17b6\u17a0\u17d2\u179c\u17b6\u179f\u17bc
-territories.BE=\u1794\u17c2\u179b\u17a0\u17d2\u179f\u17c9\u17b7\u1780
territories.NP=\u1793\u17c1\u1794\u17c9\u17b6\u179b\u17cb
-territories.BD=\u1794\u1784\u17cb\u1780\u17d2\u179b\u17b6\u178a\u17c1\u179f\u17d2\u17a0
+territories.BE=\u1794\u17c2\u179b\u17a0\u17d2\u179f\u17c9\u17b7\u1780
territories.NO=\u1793\u17d0\u179a\u179c\u17c2\u179f
+territories.BD=\u1794\u1784\u17cb\u1780\u17d2\u179b\u17b6\u178a\u17c1\u179f\u17d2\u17a0
territories.BB=\u1794\u17b6\u179a\u1794\u17b6\u178a\u17bc\u179f
territories.ZW=\u17a0\u17d2\u179f\u17ca\u17b8\u1798\u1794\u17b6\u1794\u179c\u17c9\u17c1
-territories.BA=\u1794\u17bc\u179f\u17d2\u1793\u17c9\u17b8
territories.NL=\u17a0\u17bc\u179b\u17d2\u179b\u1784\u17cb
+territories.BA=\u1794\u17bc\u179f\u17d2\u1793\u17c9\u17b8
territories.NI=\u1793\u17b8\u1780\u17b6\u179a\u17c9\u17b6\u17a0\u17d2\u1782\u17d0\u179a
territories.NG=\u1793\u17b8\u17a0\u17d2\u179f\u17c1\u179a\u17b8\u1799\u17c9\u17b6
territories.AZ=\u17a2\u17b6\u17a0\u17ca\u17d2\u179f\u17c2\u179a\u1794\u17c2\u17a0\u17d2\u179f\u1784\u17cb
territories.NE=\u1793\u17b8\u17a0\u17d2\u179f\u17c1\u179a
territories.ZM=\u17a0\u17d2\u179f\u17b6\u17c6\u1794\u17ca\u17b8
-territories.NA=\u178e\u17b6\u1798\u17b8\u1794\u17ca\u17b8
territories.AU=\u17a2\u17bc\u179f\u17d2\u178f\u17d2\u179a\u17b6\u179b\u17b8
+territories.NA=\u178e\u17b6\u1798\u17b8\u1794\u17ca\u17b8
territories.AT=\u17a2\u17bc\u1791\u17d2\u179a\u17b8\u179f
territories.AR=\u17a2\u17b6\u17a0\u17d2\u179f\u1784\u17cb\u1791\u17b8\u1793
-territories.AO=\u17a2\u1784\u17cb\u17a0\u17d2\u1782\u17c4\u17a1\u17b6
territories.MZ=\u1798\u17c9\u17bc\u17a0\u17d2\u179f\u17b6\u17c6\u1794\u17ca\u17b7\u1780
+territories.AO=\u17a2\u1784\u17cb\u17a0\u17d2\u1782\u17c4\u17a1\u17b6
territories.MY=\u1798\u17c9\u17b6\u179b\u17c1\u179f\u17c9\u17b8
-territories.AM=\u17a2\u17b6\u179a\u1798\u17c1\u1793\u17b8
territories.MX=\u1798\u17c9\u17b7\u1785\u179f\u17b7\u1780
+territories.AM=\u17a2\u17b6\u179a\u1798\u17c1\u1793\u17b8
territories.AL=\u17a2\u17b6\u179b\u17cb\u1794\u17b6\u1793\u17b8
territories.ZA=\u17a2\u17b6\u17a0\u17d2\u179c\u17d2\u179a\u17b7\u1780\u1781\u17b6\u1784\u178f\u17d2\u1794\u17bc\u1784
territories.MU=\u1798\u17c9\u17bc\u179a\u17b8\u1791\u17bb\u179f
@@ -217,12 +217,16 @@ languages.kk=\u1797\u17b6\u179f\u17b6\u1780\u17b6\u17a0\u17d2\u179f\u17b6\u1780\
languages.ka=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u179f\u1780\u17a0\u17d2\u179f\u17c9\u17b8
languages.dz=\u1797\u17b6\u179f\u17b6\u1794\u17ca\u17bc\u178f\u17b6\u1793
languages.jv=\u1797\u17b6\u179f\u17b6\u1799\u17c9\u17b6\u179c\u17b6
+languages.fil=\u1796\u17b8\u179b\u17b8\u1796\u17b8\u1793
languages.pt=\u1797\u17b6\u179f\u17b6\u1796\u17d0\u179a\u1791\u17bb\u1799\u17a0\u17d2\u1780\u17b6\u179b\u17cb
+languages.ps=\u1794\u17b6\u179f\u17d2\u178f\u17bc
languages.de=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179b\u17d2\u179b\u17ba\u1798\u17c9\u1784\u17cb
languages.pl=\u1797\u17b6\u179f\u17b6\u1794\u17c9\u17bc\u17a1\u17bc\u1789
languages.da=\u1797\u17b6\u179f\u17b6\u178a\u17b6\u178e\u17ba\u1798\u17c9\u17b6\u1780
+languages.tlh=\u1781\u17d2\u179b\u17b7\u1784\u179f\u17bb\u1793
languages.ja=\u1797\u17b6\u179f\u17b6\u1787\u1794\u17c9\u17bb\u1793
languages.vi=\u1797\u17b6\u179f\u17b6\u179c\u17c0\u178f\u178e\u17b6\u1798
+languages.cy=\u179c\u17c1\u179b
languages.pa=\u1797\u17b6\u179f\u17b6\u1796\u17bc\u1793\u1799\u17c9\u17b6\u1794\u17ca\u17b8
languages.cs=\u1797\u17b6\u179f\u17b6\u1786\u17c1\u1780
languages.it=\u1797\u17b6\u179f\u17b6\u17a2\u17ca\u17b8\u178f\u17b6\u179b\u17b8
@@ -233,16 +237,23 @@ languages.ur=\u1797\u17b6\u179f\u17b6\u17a2\u17ca\u17bc\u179a\u17d2\u178c\u17bc
languages.ca=\u1797\u17b6\u179f\u17b6\u1780\u17b6\u178f\u17b6\u17a1\u17b6\u1793
languages.id=\u1797\u17b6\u179f\u17b6\u17a5\u178e\u17d2\u178c\u17bc\u1793\u17c1\u179f\u17ca\u17b8
languages.uk=\u1797\u17b6\u179f\u17b6\u17a2\u17ca\u17bb\u1799\u1780\u17d2\u179a\u17c2\u1793
+languages.ia=\u17a2\u17b8\u1793\u1792\u17be\u179b\u17b8\u1784
+languages.oc=\u17a2\u17bc\u179f\u17b8\u178f\u17b6\u1793\u17cb
languages.hy=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179a\u1798\u17c1\u1793\u17b8
+languages.bs=\u1794\u17ca\u17bc\u179f\u17d2\u1793\u17c0\u179a
+languages.br=\u1794\u17d2\u179a\u17b8\u179f\u17d2\u178f\u17bb\u1793
languages.hu=\u1797\u17b6\u179f\u17b6\u17a0\u17bb\u1784\u1782\u17d2\u179a\u17b8
languages.bo=\u1797\u17b6\u179f\u17b6\u1791\u17b8\u1794\u17c1
languages.bn=\u1797\u17b6\u179f\u17b6\u1794\u17c1\u1793\u17d2\u1780\u17b6\u179b\u17b8
+languages.hr=\u1780\u17d2\u179a\u17bc\u17a2\u17b6\u1791\u17c0\u1793
languages.bm=\u1797\u17b6\u179f\u17b6\u1794\u17b6\u1798\u17d2\u1794\u17b6\u179a\u17b6
+languages.tw=\u1791\u17d2\u179c\u17b8
languages.bh=\u1797\u17b6\u179f\u17b6\u1794\u17b7\u17a0\u17b6\u179a
languages.bg=\u1797\u17b6\u179f\u17b6\u1794\u17ca\u17bb\u179b\u17a0\u17d2\u1780\u17b6\u179a\u17b8
languages.tt=\u1797\u17b6\u179f\u17b6\u178f\u17b6\u178f\u17b6\u179a
-languages.be=\u1797\u17b6\u179f\u17b6\u1794\u17c1\u17a1\u17b6\u179a\u17bb\u179f\u17d2\u179f
languages.no=\u1797\u17b6\u179f\u17b6\u1793\u17d0\u179a\u179c\u17c2\u179f
+languages.be=\u1797\u17b6\u179f\u17b6\u1794\u17c1\u17a1\u17b6\u179a\u17bb\u179f\u17d2\u179f
+languages.nn=\u1793\u17d0\u179a\u179c\u17c1
languages.hi=\u1797\u17b6\u179f\u17b6\u17a0\u17c9\u17b7\u1793\u178c\u17b8
languages.tr=\u1797\u17b6\u179f\u17b6\u1791\u17bd\u179a\u1782\u17b8
languages.nl=\u1797\u17b6\u179f\u17b6\u17a0\u17bb\u179b\u17d2\u179b\u1784\u17cb
@@ -250,8 +261,9 @@ languages.zu=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u179f\u17c9\u17bc\u179b\u17bc
languages.to=\u1797\u17b6\u179f\u17b6\u178f\u17bb\u1784\u17a0\u17d2\u1782\u17c4
languages.he=\u1797\u17b6\u179f\u17b6\u17a0\u17c1\u1794\u17d2\u179a\u17b7
languages.tk=\u1797\u17b6\u179f\u17b6\u1791\u17bd\u1782\u1798\u17c1\u1793\u17b8\u179f\u17d2\u178f\u1784\u17cb
-languages.az=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u17a0\u17ca\u17d2\u179f\u17c2\u179a\u1794\u17c2\u17a0\u17d2\u179f\u1784\u17cb
languages.ne=\u1797\u17b6\u179f\u17b6\u1793\u17c1\u1794\u17c9\u17b6\u179b\u17cb
+languages.az=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u17a0\u17ca\u17d2\u179f\u17c2\u179a\u1794\u17c2\u17a0\u17d2\u179f\u1784\u17cb
+languages.ti=\u1791\u17b8\u179a\u17b7\u1793\u1799\u17b6
languages.ay=\u1797\u17b6\u179f\u17b6\u17a2\u17b8\u1798\u17c9\u17b6\u179a\u17c9\u17b6
languages.th=\u1797\u17b6\u179f\u17b6\u1790\u17c3
languages.tg=\u1797\u17b6\u179f\u17b6\u178f\u17b6\u178a\u17a0\u17d2\u179f\u17c9\u17b8\u1782\u17b8\u179f\u17d2\u178f\u1784\u17cb
@@ -261,46 +273,55 @@ languages.ar=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179a\u17c9\u17b6\u1794\u17cb
languages.ta=\u1797\u17b6\u179f\u17b6\u178f\u17b6\u1798\u17b8\u179b
languages.gu=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17bb\u1799\u17c9\u17b6\u179a\u17b6\u1791\u17b8
languages.an=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179a\u17c9\u17b6\u17a0\u17d2\u1782\u17c4\u1793
+languages.am=\u17a2\u17c6\u17a0\u17b6\u179a\u17b7\u1780
languages.za=\u1797\u17b6\u179f\u17b6\u1785\u17bd\u1784
languages.mt=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u179b\u17cb\u178f\u17b6
-languages.gn=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17bd\u179a\u17c9\u17b6\u1793\u17b8
languages.ms=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u179b\u17c1\u179f\u17c9\u17b8
+languages.gn=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17bd\u179a\u17c9\u17b6\u1793\u17b8
languages.sw=\u1797\u17b6\u179f\u17b6\u179f\u17d2\u179c\u17b6\u17a0\u17c9\u17b8\u179b\u17b8
languages.mr=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u179a\u17b6\u1792\u17b8
languages.sv=\u1797\u17b6\u179f\u17b6\u179f\u17ca\u17bb\u1799\u17a2\u17c2\u178a
languages.gl=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17b6\u179b\u17b8\u179f\u17c9\u17b8
languages.su=\u1797\u17b6\u17c6\u179f\u17b6\u179f\u17ca\u17bc\u178a\u1784\u17cb
languages.af=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u17a0\u17d2\u179c\u17d2\u179a\u17b8\u1780\u17b6\u17a2\u17b6\u1793
-languages.ae=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179c\u17c2\u179f\u17d2\u178f\u1784\u17cb
+languages.st=\u179f\u17c1\u179f\u17bc\u178a\u17bc
languages.mo=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17bb\u179b\u178a\u17b6\u179c\u17b8
+languages.ae=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179c\u17c2\u179f\u17d2\u178f\u1784\u17cb
languages.mn=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17bb\u1784\u17a0\u17d2\u1782\u17c4\u179b\u17b8
+languages.sr=\u179f\u17be\u1794\u17c0\u1793
languages.sq=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u179b\u17cb\u1794\u17b6\u1793\u17b8
languages.ml=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u17a1\u17b6\u17a1\u17b6\u1799\u17c9\u17b6\u1793
-languages.aa=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u17a0\u17d2\u179c\u17b6\u179a
languages.mk=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u179f\u17c1\u178a\u17bc\u1793\u17b8
+languages.aa=\u1797\u17b6\u179f\u17b6\u17a2\u17b6\u17a0\u17d2\u179c\u17b6\u179a
languages.so=\u1797\u17b6\u179f\u17b6\u179f\u17bc\u1798\u17c9\u17b6\u179b\u17b8
-languages.gd=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17c2\u179b\u17b7\u1782
languages.mi=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17c4\u179a\u17b8
+languages.gd=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17c2\u179b\u17b7\u1782 [gd]
languages.sm=\u1797\u17b6\u179f\u17b6\u179f\u17b6\u1798\u17bc\u17a2\u17b6
languages.sl=\u1797\u17b6\u179f\u17b6\u179f\u17d2\u179b\u17bc\u179c\u17c9\u17b6\u1793\u17b8
languages.mg=\u1797\u17b6\u179f\u17b6\u1798\u17c9\u17b6\u178a\u17b6\u17a0\u17d2\u1780\u17b6\u179f\u1780\u17b6\u179a
languages.sk=\u1797\u17b6\u179f\u17b6\u179f\u17d2\u179b\u17bc\u179c\u17c9\u17b6\u1782\u17b8
languages.ga=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u1780\u17c2\u179b\u17b7\u1782
languages.yo=\u1797\u17b6\u179f\u17b6\u1799\u179a\u17bc\u1794\u17b6
+languages.si=\u179f\u17b8\u1793\u17a0\u17b6\u179b\u17b7\u179f
+languages.sh=\u179f\u17be\u1794\u17bc\u1780\u17d2\u179a\u17bc\u1791\u17c0\u1793
languages.yi=\u1797\u17b6\u179f\u17b6\u1799\u17b8\u178c\u17b8\u17a0\u17d2\u179f
languages.sd=\u1797\u17b6\u179f\u17b6\u179f\u17c9\u17b8\u1793\u17d2\u178a\u17b8
+languages.fy=\u17a0\u17d2\u179a\u17b8\u179f\u1784\u17cb
languages.sa=\u1797\u17b6\u179f\u17b6\u179f\u17c6\u179f\u17d2\u1780\u17d2\u179a\u17b9\u178f
languages.fr=\u1797\u17b6\u179f\u17b6\u1794\u17b6\u179a\u17b6\u17c6\u1784
languages.lv=\u1797\u17b6\u179f\u17b6\u17a1\u17b6\u178f\u179c\u17b8\u1799\u17c9\u17b6
languages.lt=\u1797\u17b6\u179f\u17b6\u179b\u17b8\u1791\u17bb\u1799\u17a2\u17b6\u1793\u17b8
+languages.fo=\u17a0\u17d2\u179c\u17b6\u179a\u17bc\u179f
languages.ru=\u1797\u17b6\u179f\u17b6\u0e23\u0e31\u179a\u17bc\u179f\u17d2\u179f\u17c9\u17b8
-languages.fj=\u17a0\u17d2\u179c\u17c9\u17b8\u17a0\u17d2\u179f\u17c9\u17b8
languages.lo=\u1797\u17b6\u179f\u17b6\u17a1\u17b6\u179c
+languages.fj=\u17a0\u17d2\u179c\u17c9\u17b8\u17a0\u17d2\u179f\u17c9\u17b8
+languages.ln=\u179b\u17b8\u1793\u1780\u17b6\u17a1\u17b6
languages.fi=\u1797\u17b6\u179f\u17b6\u17a0\u17d2\u179c\u17b6\u17c6\u1784\u17a1\u1784\u17cb
languages.ro=\u1797\u17b6\u179f\u17b6\u179a\u17bc\u1798\u17c9\u17b6\u1793\u17b8
languages.rn=\u1797\u17b6\u179f\u17b6\u179a\u17bc\u1793\u17d2\u178c\u17b8
+languages.fa=\u1797\u17ba\u179f\u17c0\u1793
languages.la=\u1797\u17b6\u179f\u17b6\u17a1\u17b6\u178f\u17c6\u17b6\u1784
languages.xh=\u1797\u17b6\u179f\u17b6\u1783\u179f\u17b6
languages.eu=\u1797\u17b6\u179f\u17b6\u1794\u17b6\u179f\u17d2\u1780\u17c1
-languages.et=\u1797\u17b6\u179f\u17b6\u17a2\u17c1\u179f\u17d2\u178f\u17bc\u1793\u17b8
languages.ky=\u1797\u17b6\u179f\u17b6\u1782\u17c0\u179a\u17a0\u17d2\u1782\u17b8\u179f\u17d2\u178f\u1784\u17cb
+languages.et=\u1797\u17b6\u179f\u17b6\u17a2\u17c1\u179f\u17d2\u178f\u17bc\u1793\u17b8
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kn.properties
index 839c7df..d4d2824 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kn.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kn.properties
@@ -5,18 +5,164 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currenciesSymbol.INR=\u0cb0\u0cc2
-shortMonths=\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0®\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0®\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd®\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd®\u0cae\u0cc6®\u0c9c\u0cc2\u0ca8\u0ccd®\u0c9c\u0cc1\u0cb2\u0cc8®\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd®\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd®\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd®\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd®\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd®®
-months=\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0®\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0®\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd®\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd®\u0cae\u0cc6®\u0c9c\u0cc2\u0ca8\u0ccd®\u0c9c\u0cc1\u0cb2\u0cc8®\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd®\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd®\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd®\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd®\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd®®
-shortWeekdays=®\u0cb0.®\u0cb8\u0ccb.®\u0cae\u0c82.®\u0cac\u0cc1.®\u0c97\u0cc1.®\u0cb6\u0cc1.®\u0cb6\u0ca8\u0cbf.®
-weekdays=®\u0cb0\u0cb5\u0cbf\u0cb5\u0cbe\u0cb0®\u0cb8\u0ccb\u0cae\u0cb5\u0cbe\u0cb0®\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0®\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0®\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0®\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0®\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0®
-ampms=\u0caa\u0cc2\u0cb0\u0ccd\u0cb5\u0cbe\u0cb9\u0ccd\u0ca8®\u0c85\u0caa\u0cb0\u0cbe\u0cb9\u0ccd\u0ca8®
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
+currenciesSymbol.INR=\u0930\u0941
+shortMonths=\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0\u00ae\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0\u00ae\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd\u00ae\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd\u00ae\u0cae\u0cc6\u00ae\u0c9c\u0cc2\u0ca8\u0ccd\u00ae\u0c9c\u0cc1\u0cb2\u0cc8\u00ae\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd\u00ae\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd\u00ae\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u00ae
+months=\u0c9c\u0ca8\u0cb5\u0cb0\u0cc0\u00ae\u0cab\u0cc6\u0cac\u0ccd\u0cb0\u0cb5\u0cb0\u0cc0\u00ae\u0cae\u0cbe\u0cb0\u0ccd\u0c9a\u0ccd\u00ae\u0c8e\u0caa\u0ccd\u0cb0\u0cbf\u0cb2\u0ccd\u00ae\u0cae\u0cc6\u00ae\u0c9c\u0cc2\u0ca8\u0ccd\u00ae\u0c9c\u0cc1\u0cb2\u0cc8\u00ae\u0c86\u0c97\u0cb8\u0ccd\u0c9f\u0ccd\u00ae\u0cb8\u0caa\u0ccd\u0c9f\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u0c85\u0c95\u0ccd\u0c9f\u0ccb\u0cac\u0cb0\u0ccd\u00ae\u0ca8\u0cb5\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u0ca1\u0cbf\u0cb8\u0cc6\u0c82\u0cac\u0cb0\u0ccd\u00ae\u00ae
+shortWeekdays=\u00ae\u0cb0.\u00ae\u0cb8\u0ccb.\u00ae\u0cae\u0c82.\u00ae\u0cac\u0cc1.\u00ae\u0c97\u0cc1.\u00ae\u0cb6\u0cc1.\u00ae\u0cb6\u0ca8\u0cbf.\u00ae
+weekdays=\u00ae\u0cb0\u0cb5\u0cbf\u0cb5\u0cbe\u0cb0\u00ae\u0cb8\u0ccb\u0cae\u0cb5\u0cbe\u0cb0\u00ae\u0cae\u0c82\u0c97\u0cb3\u0cb5\u0cbe\u0cb0\u00ae\u0cac\u0cc1\u0ca7\u0cb5\u0cbe\u0cb0\u00ae\u0c97\u0cc1\u0cb0\u0cc1\u0cb5\u0cbe\u0cb0\u00ae\u0cb6\u0cc1\u0c95\u0ccd\u0cb0\u0cb5\u0cbe\u0cb0\u00ae\u0cb6\u0ca8\u0cbf\u0cb5\u0cbe\u0cb0\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u0caa\u0cc2\u0cb0\u0ccd\u0cb5\u0cbe\u0cb9\u0ccd\u0ca8\u00ae\u0c85\u0caa\u0cb0\u0cbe\u0cb9\u0ccd\u0ca8\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=hh:mm a
+mediumTimeFormat=hh:mm:ss a
+longTimeFormat=hh:mm:ss a z
+fullTimeFormat=hh:mm:ss a z
+territories.DK=\u0ca1\u0cc6\u0ca8\u0ccd\u0cae\u0cbe\u0cb0\u0ccd\u0c95\u0ccd
+territories.DE=\u0c9c\u0cb0\u0ccd\u0cae\u0ca8\u0cbf
+territories.SG=\u0cb8\u0cbf\u0c82\u0c97\u0caa\u0cc1\u0cb0
+territories.CZ=\u0c9a\u0cc6\u0c95\u0ccd \u0cb0\u0cbf\u0caa\u0cac\u0ccd\u0cb2\u0cbf\u0c95\u0ccd
+territories.CY=\u0cb8\u0cc8\u0caa\u0ccd\u0cb0\u0cb8\u0ccd
+territories.002=\u0c86\u0cab\u0ccd\u0cb0\u0cbf\u0c95\u0cbe
+territories.FR=\u0cab\u0ccd\u0cb0\u0cbe\u0ca8\u0ccd\u0cb8\u0ccd\u200d
+territories.030=\u0caa\u0cc2\u0cb0\u0ccd\u0cb5 \u0c8e\u0cb6\u0cbf\u0caf\u0cbe
territories.CN=\u0c9a\u0cc0\u0ca8
-territories.AU=\u0c86\u0cb8\u0ccd\u0c9f\u0ccd\u0cb0\u0cc6\u0cb2\u0cbf\u0caf
-territories.MV=\u0cae\u0cbe\u0cb2\u0ccd\u0ca1\u0cbf\u0cb5 \u0ca6\u0ccd\u0cb5\u0cc0\u0caa\u0c97\u0cb3\u0cc1
+territories.IO=\u0cac\u0ccd\u0cb0\u0cbf\u0c9f\u0cc0\u0cb6\u0ccd \u0c87\u0c82\u0ca1\u0cbf\u0caf\u0ca8\u0ccd \u0c93\u0cb6\u0cbf\u0caf\u0ca8\u0ccd \u0c9f\u0cc6\u0cb0\u0cbf\u0c9f\u0cb0\u0cbf
territories.IN=\u0cad\u0cbe\u0cb0\u0ca4
-territories.EE=\u0c8e\u0cb8\u0ccd\u0ca4\u0cca\u0ca8\u0cbf\u0caf
-territories.SG=\u0cb8\u0cbf\u0c82\u0c97\u0caa\u0cc1\u0cb0
-territories.TR=\u0ca4\u0cc1\u0cb0\u0ccd\u0c95\u0cbf
+territories.FI=\u0cab\u0cbf\u0ca8\u0ccd\u200d\u200d\u0cb2\u0ccd\u0caf\u0cbe\u0c82\u0ca1\u0ccd
+territories.151=\u0caa\u0cc2\u0cb0\u0ccd\u0cb5 \u0caf\u0cc2\u0cb0\u0ccb\u0caa\u0ccd
+territories.150=\u0caf\u0cc2\u0cb0\u0ccb\u0caa\u0ccd
+territories.029=\u0c95\u0cc6\u0cb0\u0cc7\u0cac\u0cbf\u0caf\u0ca8\u0ccd
+territories.BV=\u0cac\u0ccb\u0cb5\u0cc6\u0c9f\u0ccd \u0c90\u0cb2\u0ccd\u0caf\u0cbe\u0c82\u0ca1\u0ccd
+territories.BR=\u0cac\u0ccd\u0cb0\u0c9d\u0cbf\u0cb2\u0ccd
+territories.053=\u0c86\u0cb8\u0ccd\u0c9f\u0ccd\u0cb0\u0cc7\u0cb2\u0cbf\u0caf\u0cbe \u0cb9\u0cbe\u0c97\u0cc1 \u0ca8\u0ccd\u0caf\u0cc2\u0c9d\u0cbf\u0cb2\u0ccd\u0caf\u0cbe\u0c82\u0ca1\u0ccd
+territories.QU=\u0caf\u0cc1\u0cb0\u0ccb\u0caa\u0cbf\u0caf\u0ca8\u0ccd \u0caf\u0cc2\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
territories.NP=\u0ca8\u0cc6\u0caa\u0cbe\u0cb3
+territories.BG=\u0cac\u0cb2\u0ccd\u0c97\u0cc7\u0cb0\u0cbf\u0caf\u0ca8\u0ccd
+territories.TR=\u0ca4\u0cc1\u0cb0\u0ccd\u0c95\u0cbf
+territories.BE=\u0cac\u0cc6\u0cb2\u0ccd\u0c9c\u0cbf\u0caf\u0cae\u0ccd
+territories.EE=\u0c8e\u0cb8\u0ccd\u0ca4\u0cca\u0ca8\u0cbf\u0caf
+territories.TO=\u0c9f\u0cca\u0c82\u0c97
+territories.143=\u0cae\u0ca7\u0ccd\u0caf \u0c8f\u0cb6\u0cbf\u0caf\u0cbe
+territories.142=\u0c8f\u0cb6\u0cbf\u0caf\u0cbe
+territories.019=\u0c85\u0cae\u0cc6\u0cb0\u0cbf\u0c95\u0cbe\u0cb8\u0ccd
+territories.TF=\u0cab\u0ccd\u0cb0\u0cc6\u0c82\u0c9a\u0ccd \u0ca6\u0c95\u0ccd\u0cb7\u0cbf\u0ca3 \u0caa\u0ccd\u0cb0\u0ca6\u0cc7\u0cb6\u0c97\u0cb3\u0cc1
+territories.AU=\u0c86\u0cb8\u0ccd\u0c9f\u0ccd\u0cb0\u0cc6\u0cb2\u0cbf\u0caf
+territories.014=\u0caa\u0cc2\u0cb0\u0ccd\u0cb5 \u0c86\u0cab\u0ccd\u0cb0\u0cbf\u0c95\u0cbe
+territories.AT=\u0c86\u0cb8\u0ccd\u0c9f\u0ccd\u0cb0\u0cbf\u0caf\u0cbe
+territories.013=\u0cae\u0ca7\u0ccd\u0caf \u0c85\u0cae\u0cc7\u0cb0\u0cbf\u0c95\u0cbe
+territories.AQ=\u0c85\u0c82\u0c9f\u0cbe\u0cb0\u0ccd\u0c9f\u0cbf\u0c95\u0cbe
+territories.MV=\u0cae\u0cbe\u0cb2\u0ccd\u0ca1\u0cbf\u0cb5 \u0ca6\u0ccd\u0cb5\u0cc0\u0caa\u0c97\u0cb3\u0cc1
+territories.GR=\u0c97\u0ccd\u0cb0\u0cc0\u0cb8\u0ccd
+languages.es=\u0cb8\u0ccd\u0caa\u0ccd\u0caf\u0cbe\u0ca8\u0cbf\u0cb7\u0ccd
+languages.ku=\u0c95\u0cc1\u0cb0\u0ccd\u0ca6\u0cbf\u0cb6\u0ccd
+languages.eo=\u0c8e\u0cb8\u0ccd\u0caa\u0cb0\u0cbe\u0c82\u0c9f\u0ccb
+languages.en=\u0c87\u0c82\u0c97\u0ccd\u0cb2\u0cc0\u0cb7\u0ccd
+languages.el=\u0c97\u0ccd\u0cb0\u0cc0\u0c95\u0ccd
+languages.ko=\u0c95\u0cca\u0cb0\u0cbf\u0caf\u0ca8\u0ccd
languages.kn=\u0c95\u0ca8\u0ccd\u0ca8\u0ca1
+languages.km=\u0c95\u0cbe\u0c82\u0cac\u0ccb\u0ca1\u0cbf\u0caf\u0ca8\u0ccd
+languages.ka=\u0c9c\u0cbe\u0cb0\u0ccd\u0c9c\u0cbf\u0caf\u0ca8\u0ccd
+languages.zh_Hans=\u0cb8\u0cbf\u0c82\u0caa\u0ccd\u0cb2\u0cbf\u0cab\u0cc8\u0ca1\u0ccd \u0c9a\u0cc8\u0ca8\u0cc0\u0cb8\u0ccd
+languages.zh_Hant=\u0c9f\u0ccd\u0cb0\u0cc6\u0ca1\u0cc0\u0cb6\u0ca8\u0cb2\u0ccd \u0c9a\u0cc8\u0ca8\u0cc0\u0cb8\u0ccd
+languages.jv=\u0c9c\u0cbe\u0cb5\u0ca8\u0cc0\u0cb8\u0ccd
+languages.fil=\u0c9f\u0ccd\u0caf\u0cbe\u0c97\u0cb2\u0cbe\u0c97\u0ccd
+languages.pt=\u0caa\u0ccb\u0cb0\u0ccd\u0c9a\u0cc1\u0c97\u0cc0\u0cb8\u0ccd
+languages.ps=\u0caa\u0cb6\u0ccd\u0ca4\u0cca
+languages.de=\u0c9c\u0cb0\u0ccd\u0cae\u0ca8\u0ccd
+languages.pl=\u0caa\u0ccb\u0cb2\u0cbf\u0cb7\u0ccd
+languages.da=\u0ca1\u0ccd\u0caf\u0cbe\u0ca8\u0cbf\u0cb7\u0ccd
+languages.tlh=\u0c95\u0ccd\u0cb2\u0cbf\u0c82\u0c97\u0ca8\u0ccd
+languages.ja=\u0c9c\u0caa\u0cbe\u0ca8\u0cc0\u0cb8\u0ccd
+languages.vi=\u0cb5\u0cbf\u0caf\u0cc6\u0c9f\u0ccd\u0ca8\u0cbe\u0cae\u0cbf
+languages.cy=\u0cb5\u0cc6\u0cb2\u0ccd\u0cb6\u0ccd
+languages.pa=\u0caa\u0c82\u0c9c\u0cbe\u0cac\u0cbf
+languages.cs=\u0c9a\u0cc6\u0c95\u0ccd
+languages.it=\u0c87\u0c9f\u0cbe\u0cb2\u0cbf\u0caf\u0ca8\u0ccd
+languages.is=\u0c90\u0cb8\u0ccd\u0cb2\u0ccd\u0caf\u0cbe\u0c82\u0ca1\u0cbf\u0c95\u0ccd
+languages.uz=\u0c89\u0c9c\u0ccd\u0cac\u0cc6\u0c95\u0ccd
+languages.or=\u0c92\u0cb0\u0cbf\u0caf\u0cbe
+languages.ur=\u0c89\u0cb0\u0ccd\u0ca6\u0cc1
+languages.ca=\u0c95\u0ccd\u0caf\u0cbe\u0c9f\u0cb2\u0ca8\u0ccd
+languages.id=\u0c87\u0c82\u0ca1\u0ccb\u0ca8\u0cc7\u0cb7\u0ccd\u0caf\u0ca8\u0ccd
+languages.uk=\u0c89\u0c95\u0ccd\u0cb0\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.ia=\u0c87\u0c82\u0c9f\u0cb0\u0ccd\u0cb2\u0cbf\u0c82\u0c97\u0cc1\u0cb5\u0cbe
+languages.oc=\u0c86\u0c95\u0ccd\u0cb8\u0cbf\u0c9f\u0cbe\u0ca8\u0ccd
+languages.hy=\u0c86\u0cb0\u0ccd\u0cae\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.bs=\u0cac\u0ccb\u0cb8\u0ccd\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.br=\u0cac\u0ccd\u0cb0\u0cc6\u0c9f\u0ca8\u0ccd
+languages.hu=\u0cb9\u0c82\u0c97\u0cc7\u0cb0\u0cbf\u0caf\u0ca8\u0ccd
+languages.pt_PT=\u0caa\u0ccb\u0cb0\u0ccd\u0c9a\u0cc1\u0c97\u0cc0\u0cb8\u0ccd (\u0caa\u0ccb\u0cb0\u0ccd\u0c9a\u0cc1\u0c97\u0cb2\u0ccd)
+languages.bn=\u0cac\u0c82\u0c97\u0cbe\u0cb3\u0cbf
+languages.hr=\u0c95\u0ccd\u0cb0\u0cca\u0caf\u0cc7\u0cb6\u0cbf\u0caf\u0ca8\u0ccd
+languages.tw=\u0c9f\u0ccd\u0cb5\u0cbf
+languages.bh=\u0cac\u0cbf\u0cb9\u0cbe\u0cb0\u0cbf
+languages.bg=\u0cac\u0cb2\u0ccd\u0c97\u0cc7\u0cb0\u0cbf\u0caf\u0ca8\u0ccd
+languages.no=\u0ca8\u0cbe\u0cb0\u0ccd\u0cb5\u0cc7\u0c9c\u0cbf\u0caf\u0ca8\u0ccd
+languages.be=\u0cac\u0cc6\u0cb2\u0cb0\u0cc2\u0cb8\u0cbf\u0caf\u0ca8\u0ccd
+languages.nn=\u0ca8\u0cbe\u0cb0\u0ccd\u0cb5\u0cc7\u0c9c\u0cbf\u0caf\u0ca8\u0ccd (\u0ca8\u0cc2\u0ca8\u0cbe\u0cb0\u0ccd\u0cb8\u0ccd\u0c95\u0ccd\u200d)
+languages.hi=\u0cb9\u0cbf\u0c82\u0ca6\u0cbf
+languages.tr=\u0c9f\u0cb0\u0ccd\u0c95\u0cbf\u0cb7\u0ccd
+languages.nl=\u0ca1\u0c9a\u0ccd
+languages.zu=\u0c9c\u0cc1\u0cb2\u0cc1
+languages.he=\u0cb9\u0cbf\u0cac\u0ccd\u0cb0\u0cc2
+languages.tk=\u0ca4\u0cc1\u0cb0\u0ccd\u0c95\u0ccd\u0cae\u0ca8\u0ccd
+languages.ne=\u0ca8\u0cc7\u0caa\u0cbe\u0cb3\u0cbf
+languages.az=\u0c85\u0c9c\u0cb0\u0ccd\u0cac\u0cc8\u0c9c\u0cbe\u0ca8\u0cbf
+languages.ti=\u0ca4\u0cbf\u0c97\u0ccd\u0cb0\u0cbf\u0ca8\u0ccd\u0caf
+languages.th=\u0ca5\u0cbe\u0caf\u0ccd
+languages.te=\u0ca4\u0cc6\u0cb2\u0cc1\u0c97\u0cc1
+languages.zh=\u0c9a\u0cc8\u0ca8\u0cc0\u0cb8\u0ccd
+languages.as=\u0c85\u0cb8\u0ccd\u0cb8\u0cbe\u0cae\u0cc0\u0cb8\u0ccd
+languages.ar=\u0c85\u0cb0\u0cc7\u0cac\u0cbf\u0c95\u0ccd
+languages.ta=\u0ca4\u0cae\u0cbf\u0cb3\u0cc1
+languages.gu=\u0c97\u0cc1\u0c9c\u0cb0\u0cbe\u0ca4\u0cbf
+languages.ast=\u0c86\u0cb8\u0ccd\u0c9f\u0cc1\u0cb0\u0cbf\u0caf\u0ca8\u0ccd
+languages.am=\u0c85\u0cae\u0ccd\u0cb9\u0cbe\u0cb0\u0cbf\u0c95\u0ccd
+languages.mt=\u0cae\u0cbe\u0cb2\u0ccd\u0c9f\u0cc0\u0cb8\u0ccd
+languages.ms=\u0cae\u0cb2\u0caf
+languages.gn=\u0c97\u0ccd\u0cb5\u0cbe\u0cb0\u0cbe\u0ca8\u0cbf
+languages.sw=\u0cb8\u0ccd\u0cb5\u0cbe\u0cb9\u0cbf\u0cb2\u0cbf
+languages.mr=\u0cae\u0cb0\u0cbe\u0ca0\u0cbf
+languages.sv=\u0cb8\u0ccd\u0cb5\u0cc0\u0ca1\u0cbf\u0cb7\u0ccd
+languages.gl=\u0c97\u0ccd\u0caf\u0cbe\u0cb2\u0cc0\u0cb7\u0cbf\u0caf\u0ca8\u0ccd
+languages.su=\u0cb8\u0cc1\u0c82\u0ca6\u0ca8\u0cc0\u0cb8\u0ccd
+languages.af=\u0c85\u0cab\u0ccd\u0cb0\u0cbf\u0c95\u0cbe\u0ca8\u0ccd\u0cb8\u0ccd\u200d
+languages.st=\u0cb8\u0cc6\u0cb8\u0cca\u0ca4\u0cca
+languages.mn=\u0cae\u0c82\u0c97\u0ccb\u0cb2\u0cbf\u0caf\u0ca8\u0ccd
+languages.sr=\u0cb8\u0cb0\u0ccd\u0cac\u0cbf\u0caf\u0ca8\u0ccd
+languages.sq=\u0c86\u0cb2\u0ccd\u0cac\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.ml=\u0cae\u0cb2\u0cc6\u0caf\u0cbe\u0cb3\u0c82
+languages.mk=\u0cae\u0ccd\u0caf\u0cbe\u0cb8\u0cc6\u0ca1\u0ccb\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.so=\u0cb8\u0cca\u0cae\u0cbe\u0cb2\u0cbf
+languages.gd=\u0cb8\u0ccd\u0c95\u0cbe\u0c9f\u0cbf\u0cb6\u0ccd \u0c97\u0ccd\u0caf\u0cbe\u0cb2\u0cbf\u0c95\u0ccd
+languages.sl=\u0cb8\u0ccd\u0cb2\u0cca\u0cb5\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.sk=\u0cb8\u0ccd\u0cb2\u0cca\u0cb5\u0cbe\u0c95\u0ccd
+languages.ga=\u0c90\u0cb0\u0cbf\u0cb7\u0ccd
+languages.si=\u0cb8\u0cbf\u0c82\u0cb9\u0cb3
+languages.sh=\u0cb8\u0cb0\u0ccd\u0cac\u0ccb-\u0c95\u0ccd\u0cb0\u0cca\u0caf\u0cc7\u0cb6\u0cbf\u0caf\u0ca8\u0ccd
+languages.pt_BR=\u0caa\u0ccb\u0cb0\u0ccd\u0c9a\u0cc1\u0c97\u0cc0\u0cb8\u0ccd(\u0cac\u0ccd\u0cb0\u0cc6\u0c9c\u0cbf\u0cb2\u0ccd)
+languages.yi=\u0caf\u0cbf\u0ca6\u0ccd\u0ca6\u0cbf\u0cb6\u0ccd
+languages.sd=\u0cb8\u0cbf\u0c82\u0ca7\u0cbf
+languages.fy=\u0cab\u0ccd\u0cb0\u0cbf\u0cb8\u0cbf\u0caf\u0ca8\u0ccd
+languages.sa=\u0cb8\u0c82\u0cb8\u0ccd\u0c95\u0cc3\u0ca4
+languages.fr=\u0cab\u0ccd\u0cb0\u0cc6\u0c82\u0c9a\u0ccd
+languages.lv=\u0cb2\u0cbe\u0c9f\u0ccd\u0cb5\u0cbf\u0caf\u0ca8\u0ccd
+languages.lt=\u0cb2\u0cbf\u0ca4\u0cc1\u0cb5\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.fo=\u0cab\u0cc6\u0cb0\u0ccb\u0caf\u0cbf\u0cb8\u0ccd
+languages.ru=\u0cb0\u0cb7\u0cbf\u0caf\u0ca8\u0ccd
+languages.lo=\u0cb2\u0cbe\u0cb5\u0ccb
+languages.ln=\u0cb2\u0cbf\u0c82\u0c97\u0cbe\u0cb2
+languages.fi=\u0cab\u0cbf\u0ca8\u0ccd\u0ca8\u0cbf\u0cb7\u0ccd
+languages.ro=\u0cb0\u0cca\u0cae\u0cc7\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
+languages.fa=\u0caa\u0cb0\u0ccd\u0cb7\u0cbf\u0caf\u0ca8\u0ccd
+languages.und=\u0c97\u0cca\u0ca4\u0ccd\u0ca4\u0cbf\u0cb0\u0ca6 \u0c85\u0ca5\u0cb5 \u0c85\u0cae\u0cbe\u0ca8\u0ccd\u0caf \u0cad\u0cbe\u0cb7\u0cc6
+languages.la=\u0cb2\u0ccd\u0caf\u0cbe\u0c9f\u0cbf\u0ca8\u0ccd
+languages.xh=\u0c95\u0ccd\u0cb7\u0ccb\u0cb8
+languages.eu=\u0cac\u0cbe\u0cb8\u0ccd\u0c95\u0ccd
+languages.ky=\u0c95\u0cbf\u0cb0\u0ccd\u0c97\u0cbf\u0c9c\u0ccd
+languages.et=\u0c8e\u0cb8\u0ccd\u0c9f\u0ccb\u0ca8\u0cbf\u0caf\u0ca8\u0ccd
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ko.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ko.properties
index ee2974d..9b31ee9 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ko.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ko.properties
@@ -5,135 +5,161 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
currenciesDisplayName.YDD=\uc608\uba58 \ub514\ub098\ub974
-currenciesDisplayName.TWD=\ub300\ub9cc \uc2e0\uad8c \ub2ec\ub7ec
currenciesDisplayName.KES=\ucf00\ub0d0 \uc2e4\ub9c1
-currenciesDisplayName.BYB=\ubca8\ub77c\ub8e8\uc2a4 \uc2e0\uad8c \ub8e8\ube14 (1994-1999)
+currenciesDisplayName.TWD=\ub274 \ud0c0\uc774\uc644 \ub2ec\ub7ec
currenciesDisplayName.LKR=\uc2a4\ub9ac\ub791\uce74 \ub8e8\ud53c
-currenciesDisplayName.RWF=\ub974\uc644\ub2e4 \ud504\ub791
+currenciesDisplayName.BYB=\ubca8\ub77c\ub8e8\uc2a4 \uc2e0\uad8c \ub8e8\ube14 (1994-1999)
currenciesDisplayName.TJS=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4 \uc18c\ubaa8\ub2c8
-currenciesDisplayName.SDP=\uc218\ub2e8 \ud30c\uc6b4\ub4dc
-currenciesDisplayName.TJR=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4 \ub8e8\ube14
+currenciesDisplayName.RWF=\ub974\uc644\ub2e4 \ud504\ub791
currenciesDisplayName.ERN=\uc5d0\ub9ac\ud2b8\ub9ac\uc544 \ub098\ud06c\ud30c
-currenciesDisplayName.AFN=\uc544\ud504\uac00\ub2c8
+currenciesDisplayName.TJR=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4 \ub8e8\ube14
+currenciesDisplayName.SDP=\uc218\ub2e8 \ud30c\uc6b4\ub4dc
currenciesDisplayName.GRD=\uadf8\ub9ac\uc2a4 \ub4dc\ub77c\ud06c\ub9c8
+currenciesDisplayName.AFN=\uc544\ud504\uac00\ub2c8
currenciesDisplayName.IEP=\uc544\uc77c\ub79c\ub4dc \ud30c\uc6b4\ub4dc
currenciesDisplayName.ARS=\uc544\ub974\ud5e8\ud2f0\ub098 \ud398\uc18c
-currenciesDisplayName.SDD=\uc218\ub2e8 \ub514\ub098\ub974
currenciesDisplayName.ARP=\uc544\ub974\ud5e8\ud2f0\ub098 \ud398\uc18c (1983-1985)
+currenciesDisplayName.SDD=\uc218\ub2e8 \ub514\ub098\ub974
currenciesDisplayName.GEL=\uadf8\ub8e8\uc9c0\uc57c \ub77c\ub9ac
-currenciesDisplayName.AFA=\uc544\ud504\uac00\ub2c8 (1927-2002)
currenciesDisplayName.GEK=\uadf8\ub8e8\uc9c0\uc57c \uc9c0\ud3d0 \ub77c\ub9ac\ud2b8
+currenciesDisplayName.AFA=\uc544\ud504\uac00\ub2c8 (1927-2002)
currenciesDisplayName.CRC=\ucf54\uc2a4\ud0c0\ub9ac\uce74 \ucf5c\ub860
currenciesDisplayName.FKP=\ud3ec\ud074\ub79c\ub4dc\uc81c\ub3c4 \ud30c\uc6b4\ub4dc
currenciesDisplayName.EEK=\uc5d0\uc2a4\ud1a0\ub2c8\uc544 \ud06c\ub8ec
-currenciesDisplayName.HKD=\ud64d\ucf69 \ub2ec\ub7ec
currenciesDisplayName.MDL=\ubab0\ub3c4\ubc14 \ub808\uc774
-currenciesDisplayName.ARA=\uc544\ub974\ud5e8\ud2f0\ub098 \uc624\uc2a4\ud2b8\ub784
+currenciesDisplayName.HKD=\ud64d\ucf69 \ub2ec\ub7ec
currenciesDisplayName.IQD=\uc774\ub77c\ud06c \ub514\ub098\ub974
+currenciesDisplayName.ARA=\uc544\ub974\ud5e8\ud2f0\ub098 \uc624\uc2a4\ud2b8\ub784
currenciesDisplayName.SCR=\uc138\uc774\uc274 \ub8e8\ud53c
currenciesDisplayName.VUV=\ubc14\ub204\uc544\ud22c \ubc14\ud22c
-currenciesDisplayName.DKK=\ub374\ub9c8\ud06c \ud06c\ub85c\ub124
currenciesDisplayName.KPW=\uc870\uc120 \ubbfc\uc8fc\uc8fc\uc758 \uc778\ubbfc \uacf5\ud654\uad6d \uc6d0
+currenciesDisplayName.DKK=\ub374\ub9c8\ud06c \ud06c\ub85c\ub124
currenciesDisplayName.IDR=\uc778\ub3c4\ub124\uc2dc\uc544 \ub8e8\ud53c\uc544
-currenciesDisplayName.LVR=\ub77c\ud2b8\ube44\uc544 \ub8e8\ube14
currenciesDisplayName.SOS=\uc18c\ub9d0\ub9ac\uc544 \uc2e4\ub9c1
-currenciesDisplayName.AED=\uc544\ub78d\uc5d0\ubbf8\ub808\uc774\ud2b8 \ub514\ub098\ub974
-currenciesDisplayName.BWP=\ubcf4\uce20\uc640\ub098 \ud3f4\ub77c
+currenciesDisplayName.LVR=\ub77c\ud2b8\ube44\uc544 \ub8e8\ube14
+currenciesDisplayName.AED=\uc544\ub78d\uc5d0\ubbf8\ub9ac\ud2b8 \ub514\ub974\ud568
currenciesDisplayName.LVL=\ub77c\ud2b8\ube44\uc544 \ub77c\ud2b8
+currenciesDisplayName.BWP=\ubcf4\uce20\uc640\ub098 \ud3f4\ub77c
currenciesDisplayName.RUR=\ub7ec\uc2dc\uc544 \ub8e8\ube14 (1991-1998)
currenciesDisplayName.NIO=\ub2c8\uce74\ub77c\uacfc \ucf54\ub974\ub3c4\ubc14 \uc624\ub85c
-currenciesDisplayName.ADP=\uc548\ub3c4\ub77c \ud398\uc138\ud0c0
-currenciesDisplayName.FJD=\ud53c\uc9c0 \ub2ec\ub7ec
+currenciesDisplayName.XTS=\ud14c\uc2a4\ud2b8 \ud1b5\ud654 \ucf54\ub4dc
currenciesDisplayName.MOP=\ub9c8\uce74\uc624 \ud30c\ud0c0\uce74
+currenciesDisplayName.FJD=\ud53c\uc9c0 \ub2ec\ub7ec
+currenciesDisplayName.ADP=\uc548\ub3c4\ub77c \ud398\uc138\ud0c0
currenciesDisplayName.RUB=\ub7ec\uc2dc\uc544 \ub8e8\ube14
currenciesDisplayName.CDF=\ucf69\uace0 \ud504\ub791 \ucf69\uace8\ub77c\uc2a4
currenciesDisplayName.NIC=\ub2c8\uce74\ub77c\uacfc \ucf54\ub974\ub3c4\ubc14
currenciesDisplayName.DJF=\uc9c0\ubd80\ud2f0 \ud504\ub791
-currenciesDisplayName.SBD=\uc194\ub85c\ubaac \uc81c\ub3c4 \ub2ec\ub7ec
currenciesDisplayName.UZS=\uc6b0\uc988\ubca0\ud0a4\uc2a4\ud0c4 \uc228
+currenciesDisplayName.SBD=\uc194\ub85c\ubaac \uc81c\ub3c4 \ub2ec\ub7ec
+currenciesDisplayName.LUL=\ub8e9\uc148\ubd80\ub974\ud06c \ud504\ub791(\uc7ac\uc815)
currenciesDisplayName.ECS=\uc5d0\ucfe0\uc544\ub3c4\ub974 \uc218\ud06c\ub808
-currenciesDisplayName.PHP=\ud544\ub9ac\ud540 \ud398\uc18c
currenciesDisplayName.THB=\ud0dc\uad6d \ubc14\ud2b8
+currenciesDisplayName.PHP=\ud544\ub9ac\ud540 \ud398\uc18c
currenciesDisplayName.LUF=\ub8e9\uc148\ubd80\ub974\ud06c \ud504\ub791
+currenciesDisplayName.RHD=\ub85c\ub514\uc9c0\uc544 \ub2ec\ub7ec
+currenciesDisplayName.LUC=\ub8e9\uc148\ubd80\ub974\ud06c \ud504\ub791(\ud0dc\ud658)
currenciesDisplayName.FIM=\ud540\ub780\ub4dc \ub9c8\ub974\uce74
currenciesDisplayName.TTD=\ud2b8\ub9ac\ub2c8\ub2e4\ub4dc \ud1a0\ubc14\uace0 \ub2ec\ub7ec
currenciesDisplayName.SZL=\uc2a4\uc640\uc9c8\ub780\ub4dc \ub9b4\ub791\uac8c\ub2c8
currenciesDisplayName.MNT=\ubabd\uace8 \ud22c\uadf8\ub9ad
+currenciesDisplayName.UAK=\uc6b0\ud06c\ub77c\uc774\ub098 \uce74\ubcf4\ubc14\ub124\uce20
currenciesDisplayName.SAR=\uc0ac\uc6b0\ub514\uc544\ub77c\ube44\uc544 \ub9ac\uc584
currenciesDisplayName.UAH=\uc6b0\ud06c\ub77c\uc774\ub098 \uadf8\ub9ac\ube0c\ub098
currenciesDisplayName.HUF=\ud5dd\uac00\ub9ac \ud3ec\ub9b0\ud2b8
-currenciesDisplayName.COP=\ucf5c\ub86c\ube44\uc544 \ud398\uc18c
currenciesDisplayName.QAR=\uce74\ud0c0\ub974 \ub9ac\uc584
+currenciesDisplayName.COP=\ucf5c\ub86c\ube44\uc544 \ud398\uc18c
currenciesDisplayName.LTT=\ub8e9\uc148\ubd80\ub974\ud06c \ud0c0\ub85c\ub098
currenciesDisplayName.PTE=\ud3ec\ub974\ud22c\uac08 \uc5d0\uc2a4\ucfe0\ub3c4
-currenciesDisplayName.AOR=\uc559\uace8\ub77c \ucf74\uc790 Reajustado (1995-1999)
currenciesDisplayName.UYU=\uc6b0\ub8e8\uacfc\uc774 \ud398\uc18c \uc6b0\ub8e8\uacfc\uc694
+currenciesDisplayName.AOR=\uc559\uace8\ub77c \ucf74\uc790 Reajustado (1995-1999)
currenciesDisplayName.GBP=\uc601\uad6d\ub839 \ud30c\uc6b4\ub4dc \uc2a4\ud138\ub9c1
-currenciesDisplayName.BIF=\ubd80\ub8ec\ub514 \ud504\ub791
-currenciesDisplayName.INR=\uc778\ub3c4 \ub8e8\ud53c
currenciesDisplayName.ZRZ=\uc790\uc774\ub974 \uc790\uc774\ub974
-currenciesDisplayName.AON=\uc559\uace8\ub77c \uc2e0\uadc4 \ucf74\uc790 (1990-2000)
-currenciesDisplayName.LTL=\ub9ac\ud22c\uc544\ub2c8\uc544 \ub9ac\ud0c0
+currenciesDisplayName.INR=\uc778\ub3c4 \ub8e8\ud53c
+currenciesDisplayName.BIF=\ubd80\ub8ec\ub514 \ud504\ub791
currenciesDisplayName.XFU=\ud504\ub791\uc2a4 UIC-\ud504\ub791
-currenciesDisplayName.KZT=\uce74\uc790\ud750\uc2a4\ud0c4 \ud150\uac8c
-currenciesDisplayName.MZM=\ubaa8\uc7a0\ube44\ud06c \uba54\ud2f0\uce7c
+currenciesDisplayName.MZN=\ubaa8\uc7a0\ube44\ud06c \uba54\ud2f0\uce7c
+currenciesDisplayName.LTL=\ub9ac\ud22c\uc544\ub2c8\uc544 \ub9ac\ud0c0
+currenciesDisplayName.AON=\uc559\uace8\ub77c \uc2e0\uadc4 \ucf74\uc790 (1990-2000)
currenciesDisplayName.UYP=\uc6b0\ub8e8\uacfc\uc774 \ud398\uc18c (1975-1993)
+currenciesDisplayName.MZM=\ubaa8\uc7a0\ube44\ud06c \uba54\ud2f0\uce7c
+currenciesDisplayName.KZT=\uce74\uc790\ud750\uc2a4\ud0c4 \ud150\uac8c
currenciesDisplayName.AOK=\uc559\uace8\ub77c \ucf74\uc790 (1977-1990)
-currenciesDisplayName.BUK=\ubc84\ub9c8 \ucc28\ud2b8
currenciesDisplayName.GNS=\uae30\ub2c8 \uc2dc\ub9ac
+currenciesDisplayName.BUK=\ubc84\ub9c8 \ucc28\ud2b8
currenciesDisplayName.XFO=\ud504\ub791\uc2a4 Gold \ud504\ub791
currenciesDisplayName.PGK=\ud30c\ud478\uc544\ub274\uae30\ub2c8 \ud0a4\ub098
currenciesDisplayName.SYP=\uc2dc\ub9ac\uc544 \ud30c\uc6b4\ub4dc
-currenciesDisplayName.MZE=\ubaa8\uc7a0\ube44\ud06c \uc5d0\uc2a4\ucfe0\ub3c4
currenciesDisplayName.OMR=\uc624\ub9cc \ub9ac\uc584
-currenciesDisplayName.NGN=\ub2c8\uc81c\ub974 \ub098\uc774\ub77c
+currenciesDisplayName.MZE=\ubaa8\uc7a0\ube44\ud06c \uc5d0\uc2a4\ucfe0\ub3c4
currenciesDisplayName.ZRN=\uc790\uc774\ub974 \uc2e0\uad8c \uc790\uc774\ub974
-currenciesDisplayName.AOA=\uc559\uace8\ub77c \ucf74\uc790
+currenciesDisplayName.NGN=\ub2c8\uc81c\ub974 \ub098\uc774\ub77c
currenciesDisplayName.CNY=\uc911\uad6d \uc704\uc548 \uc778\ubbfc\ud3d0
+currenciesDisplayName.AOA=\uc559\uace8\ub77c \ucf74\uc790
currenciesDisplayName.MAF=\ubaa8\ub85c\ucf54 \ud504\ub791
+currenciesDisplayName.RSD=\uc138\ub974\ube44\uc544 \ub514\ub098\ub974
currenciesDisplayName.GNF=\uae30\ub2c8 \ud504\ub791
+currenciesDisplayName.MAD=\ubaa8\ub85c\ucf54 \ub514\ub974\ud568
currenciesDisplayName.HTG=\ud558\uc774\ud2f0 \uad6c\ub974\ub4dc
-currenciesDisplayName.MAD=\ubaa8\ub85c\ucf54 \ub514\ub818
-currenciesDisplayName.TRY=\uc0c8\ub85c\uc6b4 \ud130\ud0a4 \ub9ac\ub77c
+currenciesDisplayName.TRY=\uc2e0 \ud130\ud0a4 \ub9ac\ub77c
currenciesDisplayName.MMK=\ubbf8\uc580\ub9c8 \ud0a4\uc58f
-currenciesDisplayName.MYR=\ub9d0\ub808\uc774\uc9c0\uc544 \ub9c1\uae30\ud2b8
-currenciesDisplayName.LSL=\ub808\uc18c\ud1a0 \ub85c\ud2f0
+currenciesDisplayName.XRE=RINET \uae30\uae08
+currenciesDisplayName.MYR=\ub9d0\ub808\uc774\uc2dc\uc544 \ub9c1\uae43
+currenciesDisplayName.LSM=\ub85c\ud2f0
currenciesDisplayName.XEU=\uc720\ub7fd \ud658\uc728 \ub2e8\uc704
-currenciesDisplayName.BHD=\ubc14\ub808\uc778 \ub514\ub098\ub974
+currenciesDisplayName.LSL=\ub808\uc18c\ud1a0 \ub85c\ud2f0
currenciesDisplayName.SLL=\uc2dc\uc5d0\ub77c\ub9ac\uc628 \ub9ac\uc628
+currenciesDisplayName.BHD=\ubc14\ub808\uc778 \ub514\ub098\ub974
currenciesDisplayName.BTN=\ubd80\ud0c4 \ub20c\ud22c\ub214
-currenciesDisplayName.TRL=\ud130\uae30 \ub9ac\ub77c
+currenciesDisplayName.TRL=\uace0 \ud130\ud0a4 \ub9ac\ub77c
currenciesDisplayName.KMF=\ucf54\ubaa8\ub974 \ud504\ub791
-currenciesDisplayName.ANG=\ub124\ub378\ub780\ub4dc \uc548\ud2f8\ub808\uc2a4 \uad74\ub374
currenciesDisplayName.CZK=\uccb4\ucf54 \uacf5\ud654\uad6d \ucf54\ub8e8\ub098
-currenciesDisplayName.AZM=\uc544\uc81c\ub974\ubc14\uc774\uc820 \ub9c8\ub098\ud2b8
+currenciesDisplayName.ANG=\ub124\ub35c\ub780\ub4dc \uc564\ud2f0\ub9ac\uc5b8 \uae38\ub354
+currenciesDisplayName.AZN=\uc544\uc81c\ub974\ubc14\uc774\uc794 \ub9c8\ub098\ud2b8
+currenciesDisplayName.AZM=\uc544\uc81c\ub974\ubc14\uc774\uc820 \ub9c8\ub098\ud2b8(1993-2006)
currenciesDisplayName.KYD=\ucf00\uc774\ub9e8 \uc81c\ub3c4 \ub2ec\ub7ec
currenciesDisplayName.GMD=\uac10\ube44\uc544 \ub2ec\ub77c\uc2dc
-currenciesDisplayName.BGN=\ubd88\uac00\ub9ac\uc544 \uc2e0\uad8c \ub81b
+currenciesDisplayName.BGN=\ubd88\uac00\ub9ac\uc544 \uc2e0\uad8c \ub808\ubc14
+currenciesDisplayName.MXV=\uba55\uc2dc\ucf54 UDI(Unidad de Inversion)
currenciesDisplayName.CAD=\uce90\ub098\ub2e4 \ub2ec\ub7ec
currenciesDisplayName.BGL=\ubd88\uac00\ub9ac\uc544 \ub3d9\uc804 \ub81b
currenciesDisplayName.VEB=\ubca0\ub124\uc8fc\uc5d8\ub77c \ubcfc\ub9ac\ubc14\ub974
currenciesDisplayName.MLF=\ub9d0\ub9ac \ud504\ub791
-currenciesDisplayName.ILS=\uc774\uc2a4\ub77c\uc5d8 \uc2e0\uad8c \uc138\ucf08
currenciesDisplayName.MXP=\uba55\uc2dc\ucf54 \uc2e4\ubc84 \ud398\uc18c (1861-1992)
+currenciesDisplayName.ILS=\uc774\uc2a4\ub77c\uc5d8 \uc2e0\uad8c \uc138\ucf08
currenciesDisplayName.PES=\ud398\ub8e8 \uc194
-currenciesDisplayName.GYD=\uac00\uc774\uc544\ub098 \ub2ec\ub7ec
currenciesDisplayName.MXN=\uba55\uc2dc\ucf54 \ud398\uc18c
+currenciesDisplayName.GYD=\uac00\uc774\uc544\ub098 \ub2ec\ub7ec
currenciesDisplayName.ILP=\uc774\uc2a4\ub77c\uc5d8 \ud30c\uc6b4\ub4dc
-currenciesDisplayName.SKK=\uc2ac\ub85c\ubc14\ud0a4\uc544 \ucf54\ub8e8\ub098
currenciesDisplayName.CYP=\uc2f8\uc774\ud504\ub7ec\uc2a4 \ud30c\uc6b4\ub4dc
+currenciesDisplayName.SKK=\uc2ac\ub85c\ubc14\ud0a4\uc544 \ucf54\ub8e8\ub098
currenciesDisplayName.XDR=\ud2b9\ubcc4\uc778\ucd9c\uad8c
-currenciesDisplayName.PEN=\ud398\ub8e8 \uc194 \ub204\uc5d0\ubcf4
+currenciesDisplayName.PEN=\ud398\ub8e8 \ub204\uc5d0\ubcf4\uc194
currenciesDisplayName.LRD=\ub77c\uc774\ubca0\ub9ac\uc544 \ub2ec\ub7ec
currenciesDisplayName.PEI=\ud398\ub8e8 \uc778\ud2f0
currenciesDisplayName.AMD=\uc544\ub974\uba54\ub2c8\uc544 \ub4dc\ub78c
currenciesDisplayName.BSD=\ubc14\ud558\ub9c8 \ub2ec\ub7ec
+currenciesDisplayName.XPT=\ubc31\uae08
currenciesDisplayName.HRK=\ud06c\ub85c\uc544\ud2f0\uc544 \ucfe0\ub098
-currenciesDisplayName.CLP=\uce60\ub808 \ud398\uc18c
currenciesDisplayName.HRD=\ud06c\ub85c\uc544\ud2f0\uc544 \ub514\ub098\ub974
+currenciesDisplayName.CLP=\uce60\ub808 \ud398\uc18c
+currenciesDisplayName.XPF=CFP \ud504\ub791
currenciesDisplayName.FRF=\ud504\ub791\uc2a4 \ud504\ub791
+currenciesDisplayName.XPD=\ud314\ub77c\ub4d0
currenciesDisplayName.BRR=\ube0c\ub77c\uc9c8 \ud06c\ub8e8\uc81c\uc774\ub8e8
currenciesDisplayName.MKD=\ub9c8\ucf00\ub3c4\ub2c8\uc544 \ub514\ub098\ub974
currenciesDisplayName.ALL=\uc54c\ubc14\ub2c8\uc544 \ub808\ud06c
@@ -143,28 +169,35 @@ currenciesDisplayName.BRL=\ube0c\ub77c\uc9c8 \ub808\uc54c
currenciesDisplayName.TPE=\ud2f0\ubaa8\ub974 \uc5d0\uc2a4\ucfe0\ub3c4
currenciesDisplayName.BRE=\ube0c\ub77c\uc9c8 \ud06c\ub8e8\uc81c\uc774\ub8e8 (1990-1993)
currenciesDisplayName.BRC=\ube0c\ub77c\uc9c8 \ud06c\ub8e8\uc790\ub450
-currenciesDisplayName.BRB=\ubcfc\ub9ac\ube44\uc544\ub178 \ud06c\ub8e8\uc81c\uc774\ub8e8 \ub178\ubcf4 (1967-1986)
+currenciesDisplayName.BRB=\ubcfc\ub9ac\ube44\uc544\ub178 \ud06c\ub8e8\uc81c\uc774\ub8e8 \ub178\ubcf4 (1967-1986)
currenciesDisplayName.DEM=\ub3c5\uc77c \ub9c8\ub974\ud06c
currenciesDisplayName.KWD=\ucfe0\uc6e8\uc774\ud2b8 \ub514\ub098\ub974
currenciesDisplayName.XCD=\ub3d9\uce74\ub9ac\ube0c \ub2ec\ub7ec
currenciesDisplayName.NPR=\ub124\ud314 \ub8e8\ud53c
currenciesDisplayName.GWP=\uae30\ub124\ube44\uc3d8 \ud398\uc18c
-currenciesDisplayName.YUN=\uc720\uace0\uc2ac\ub77c\ube44\uc544 \uc804\ud658 \ub514\ub098\ub974
+currenciesDisplayName.YUN=\uc720\uace0\uc2ac\ub77c\ube44\uc544 \ub514\ub098\ub974(\ud0dc\ud658)
currenciesDisplayName.SVC=\uc5d8\uc0b4\ubc14\ub3c4\ub974 \ucf5c\ub860
currenciesDisplayName.YUM=\uc720\uace0\uc2ac\ub77c\ube44\uc544 \ub178\ube44 \ub514\ub098\ub974
currenciesDisplayName.BEL=\ubca8\uae30\uc5d0 \ud504\ub791 (\uae08\uc735)
currenciesDisplayName.SIT=\uc2ac\ub85c\ubca0\ub2c8\uc544 \ud1a8\ub77c\ub974
-currenciesDisplayName.JPY=\uc77c\ubcf8 \uc5d4\ud654
+currenciesDisplayName.JPY=\uc77c\ubcf8 \uc5d4
+currenciesDisplayName.XOF=CFA \ud504\ub791 BCEAO
currenciesDisplayName.MVR=\ubab0\ub514\ube0c \uc81c\ub3c4 \ub8e8\ud53c\uc544
-currenciesDisplayName.GWE=\ud3ec\ub974\ud22c\uac08\ub839 \uae30\ub2c8 \uc5d0\uc2a4\ucfe0\ub3c4
currenciesDisplayName.BEF=\ubca8\uae30\uc5d0 \ud504\ub791
+currenciesDisplayName.GWE=\ud3ec\ub974\ud22c\uac08\ub839 \uae30\ub2c8 \uc5d0\uc2a4\ucfe0\ub3c4
+currenciesDisplayName.TOP=\ud1b5\uac00 \ud30c\uc559\uac00
currenciesDisplayName.YUD=\uc720\uace0\uc2ac\ub77c\ube44\uc544 \ub3d9\uc804 \ub514\ub098\ub974
currenciesDisplayName.BEC=\ubca8\uae30\uc5d0 \ud504\ub791 (\ud0dc\ud658)
currenciesDisplayName.SUR=\uc18c\ub828 \ub8e8\ube14
+currenciesDisplayName.RON=\ub8e8\ub9c8\ub2c8\uc544 \ub808\uc6b0
currenciesDisplayName.ROL=\ub8e8\ub9c8\ub2c8\uc544 \ub808\uc774
-currenciesDisplayName.DDM=\ub3d9\ub3c5 \uc624\uc2a4\ud2b8\ub9c8\ub974\ud06c
currenciesDisplayName.BDT=\ubc29\uae00\ub77c\ub370\uc2dc \ud0c0\uce74
+currenciesDisplayName.DDM=\ub3d9\ub3c5 \uc624\uc2a4\ud2b8\ub9c8\ub974\ud06c
+currenciesDisplayName.XBD=\uc720\ub7fd \uacc4\uc0b0 \ub2e8\uc704 (XBD)
currenciesDisplayName.AWG=\uc544\ub8e8\ubc14 \uae38\ub354
+currenciesDisplayName.XBC=\uc720\ub7fd \uacc4\uc0b0 \ub2e8\uc704 (XBC)
+currenciesDisplayName.XBB=\uc720\ub7fd \ud1b5\ud654 \ub3d9\ub9f9
+currenciesDisplayName.XBA=\uc720\ub974\ucf54 (\uc720\ub7fd \ud68c\uacc4 \ub2e8\uc704)
currenciesDisplayName.NOK=\ub178\ub974\uc6e8\uc774 \ud06c\ub85c\ub124
currenciesDisplayName.MUR=\ubaa8\ub9ac\uc154\uc2a4 \ub8e8\ud53c
currenciesDisplayName.ZAR=\ub0a8\uc544\ud504\ub9ac\uce74 \ub79c\ub4dc
@@ -177,52 +210,60 @@ currenciesDisplayName.GIP=\uc9c0\ube0c\ub864\ud130 \ud30c\uc6b4\ub4dc
currenciesDisplayName.TND=\ud280\ub2c8\uc9c0 \ub514\ub098\ub974
currenciesDisplayName.CVE=\uce74\ubcf4\ubca0\ub974\ub370 \uc5d0\uc2a4\ucfe0\ub3c4
currenciesDisplayName.UGX=\uc6b0\uac04\ub2e4 \uc2e4\ub9c1
+currenciesDisplayName.XAG=\uc740
currenciesDisplayName.ZMK=\uc7d8\ube44\uc544 \ucf70\uccd0
currenciesDisplayName.JOD=\uc694\ub974\ub2e8 \ub514\ub098\ub974
+currenciesDisplayName.XAF=CFA \ud504\ub791 BEAC
currenciesDisplayName.LBP=\ub808\ubc14\ub17c \ud30c\uc6b4\ub4dc
currenciesDisplayName.UGS=\uc6b0\uac04\ub2e4 \uc2e4\ub9c1 (1966-1987)
currenciesDisplayName.STD=\uc0c1\ud22c\uba54 \ud504\ub9b0\uc2dc\ud398 \ub3c4\ube0c\ub77c
currenciesDisplayName.WST=\uc11c \uc0ac\ubaa8\uc544 \ud0c8\ub77c
currenciesDisplayName.KHR=\uce84\ubcf4\ub514\uc544 \ub9ac\uc584
-currenciesDisplayName.EUR=\uc720\ub85c\ud654
currenciesDisplayName.DOP=\ub3c4\ubbf8\ub2c8\uce74 \ud398\uc18c
+currenciesDisplayName.EUR=\uc720\ub85c\ud654
currenciesDisplayName.MTP=\ubab0\ud0c0 \ud30c\uc6b4\ub4dc
+currenciesDisplayName.USS=\ubbf8\uad6d \ub2ec\ub7ec(\ub2f9\uc77c)
currenciesDisplayName.BOP=\ubcfc\ub9ac\ube44\uc544\ub178 \ud398\uc18c
-currenciesDisplayName.MTL=\ubab0\ud0c0 \ub9ac\ub77c
currenciesDisplayName.CUP=\ucfe0\ubc14 \ud398\uc18c
+currenciesDisplayName.MTL=\ubab0\ud0c0 \ub9ac\ub77c
currenciesDisplayName.TMM=\ud22c\ub974\ud06c\uba54\ub2c8\uc2a4\ud0c4 \ub9c8\ub098\ud2b8
+currenciesDisplayName.USN=\ubbf8\uad6d \ub2ec\ub7ec(\uc775\uc77c)
currenciesDisplayName.SGD=\uc2f1\uac00\ud3f4 \ub2ec\ub7ec
currenciesDisplayName.NZD=\ub274\uc9c8\ub79c\ub4dc \ub2ec\ub7ec
currenciesDisplayName.USD=\ubbf8\uad6d \ub2ec\ub7ec
-currenciesDisplayName.HNL=\uc628\ub450\ub77c\uc2a4 \ub818\ud53c\ub77c
currenciesDisplayName.BOB=\ubcfc\ub9ac\ube44\uc544\ub178
+currenciesDisplayName.HNL=\uc628\ub450\ub77c\uc2a4 \ub818\ud53c\ub77c
+currenciesDisplayName.CHW=WIR \ud504\ub791
currenciesDisplayName.ITL=\uc774\ud0c8\ub9ac\uc544 \ub9ac\ub77c
currenciesDisplayName.PAB=\ud30c\ub098\ub9c8 \ubc1c\ubcf4\uc544
currenciesDisplayName.GTQ=\uacfc\ud14c\ub9d0\ub77c \ucf00\ud2b8\uc0b4
-currenciesDisplayName.LAK=\ub77c\uc624\uc2a4 \ud0a4\ud504
-currenciesDisplayName.GHC=\uac00\ub098 \uc2dc\ub514
+currenciesDisplayName.XXX=\uc54c\uc218\uc5c6\uac70\ub098 \uc720\ud6a8\ud558\uc9c0\uc54a\uc740 \ud1b5\ud654\ub2e8\uc704
currenciesDisplayName.AUD=\ud638\uc8fc \ub2ec\ub7ec
+currenciesDisplayName.GHC=\uac00\ub098 \uc2dc\ub514
+currenciesDisplayName.LAK=\ub77c\uc624\uc2a4 \ud0a4\ud504
currenciesDisplayName.NAD=\ub098\ubbf8\ube44\uc544 \ub2ec\ub7ec
currenciesDisplayName.KGS=\ud0a4\ub974\uae30\uc2a4\uc2a4\ud0c4 \uc19c
currenciesDisplayName.MGF=\ub9c8\ub2e4\uac00\uc2a4\uce74\ub974 \ud504\ub791
-currenciesDisplayName.CHF=\uc2a4\uc704\uc2a4 \ud504\ub791\ub2ec\ub7ec
currenciesDisplayName.BBD=\ubc14\ubca0\uc774\ub3c4\uc2a4 \ub2ec\ub7ec
+currenciesDisplayName.CHF=\uc2a4\uc704\uc2a4 \ud504\ub791
+currenciesDisplayName.CHE=WIR \uc720\ub85c
currenciesDisplayName.MGA=\ub9c8\ub2e4\uac00\uc2a4\uce74\ub974 \uc544\ub9ac\uc544\ub9ac
currenciesDisplayName.PYG=\ud30c\ub77c\uacfc\uc774 \uacfc\ub77c\ub2c8
currenciesDisplayName.PLZ=\ud3f4\ub780\ub4dc \uc990\ub85c\ud2f0 (1950-1995)
currenciesDisplayName.YER=\uc608\uba58 \ub9ac\uc54c
currenciesDisplayName.ATS=\ud638\uc8fc \uc2e4\ub9c1
currenciesDisplayName.ETB=\uc774\ub514\uc624\ud53c\uc544 \ube44\ub974
-currenciesDisplayName.BND=\ubd80\ub8e8\ub098\uc774 \ub2ec\ub7ec
-currenciesDisplayName.JMD=\uc790\uba54\uc774\uce74 \ub2ec\ub7ec
+currenciesDisplayName.BND=\ube0c\ub8e8\ub098\uc774 \ub2ec\ub7ec
currenciesDisplayName.EGP=\uc774\uc9d1\ud2b8 \ud30c\uc6b4\ub4dc
+currenciesDisplayName.JMD=\uc790\uba54\uc774\uce74 \ub2ec\ub7ec
currenciesDisplayName.PLN=\ud3f4\ub780\ub4dc \uc990\ub85c\ud2f0
currenciesDisplayName.DZD=\uc54c\uc81c\ub9ac \ub514\ub098\ub974
currenciesDisplayName.ISK=\uc544\uc774\uc2ac\ub780\ub4dc \ud06c\ub85c\ub098
currenciesDisplayName.SRG=\uc218\ub9ac\ub0a8 \uae38\ub354
currenciesDisplayName.LYD=\ub9ac\ube44\uc544 \ub514\ub098\ub974
-currenciesDisplayName.BZD=\ubca8\ub9ac\uc988 \ub2ec\ub7ec
+currenciesDisplayName.SRD=\uc218\ub9ac\ub0a8 \ub2ec\ub7ec
currenciesDisplayName.BAM=\ubcf4\uc2a4\ub2c8\uc544-\ud5e4\ub974\uccb4\uace0\ube44\ub098 \ud0dc\ud658 \ub9c8\ub974\ud06c
+currenciesDisplayName.BZD=\ubca8\ub9ac\uc988 \ub2ec\ub7ec
currenciesDisplayName.ESP=\uc2a4\ud398\uc778 \ud398\uc138\ud0c0
currenciesDisplayName.KRW=\ub300\ud55c\ubbfc\uad6d \uc6d0
currenciesDisplayName.NLG=\ub124\ub378\ub780\ub4dc \uae38\ub354
@@ -232,30 +273,53 @@ currenciesDisplayName.ZWD=\uc9d0\ube44\ube0c\uc6e8 \ub2ec\ub7ec
currenciesDisplayName.SEK=\uc2a4\uc6e8\ub374 \ud06c\ub85c\ub098
currenciesDisplayName.CSK=\uccb4\ucf54\uc2ac\ub85c\ubc14\ud0a4\uc544 \ub3d9\uc804 \ucf54\ub8e8\ub098
currenciesDisplayName.BYR=\ubca8\ub77c\ub8e8\uc2a4 \ub8e8\ube14
+currenciesDisplayName.ESB=\uc2a4\ud398\uc778 \ud398\uc138\ud0c0(\ubcc0\ud658 \uc608\uae08)
currenciesDisplayName.IRR=\uc774\ub780 \ub9ac\uc584
+currenciesDisplayName.ESA=\uc2a4\ud398\uc778 \ud398\uc138\ud0c0(\uc608\uae08)
currenciesDisplayName.PKR=\ud30c\ud0a4\uc2a4\ud0c4 \ub8e8\ud53c
currenciesDisplayName.BMD=\ubc84\ubba4\ub2e4 \ub2ec\ub7ec
+currenciesDisplayName.CSD=\uc138\ub974\ube44\uc544 \ub514\ub098\ub974
+currenciesSymbol.GYD=G$
+currenciesSymbol.FRF=\u20a3
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.ALL=\ub808\ud06c
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.COP=Col$
+currenciesSymbol.BMD=BM$
currenciesSymbol.JPY=\uffe5
-currenciesSymbol.MRO=UM
+currenciesSymbol.ITL=\u20a4
+currenciesSymbol.AUD=A$
+currenciesSymbol.FJD=F$
+currenciesSymbol.BBD=Bds$
currenciesSymbol.KRW=\uffe6
-currenciesSymbol.IEP=IR\u00a3
-currenciesSymbol.ITL=ITL
-currenciesSymbol.USD=US$
-shortMonths=1\uc6d4®2\uc6d4®3\uc6d4®4\uc6d4®5\uc6d4®6\uc6d4®7\uc6d4®8\uc6d4®9\uc6d4®10\uc6d4®11\uc6d4®12\uc6d4®®
-months=1\uc6d4®2\uc6d4®3\uc6d4®4\uc6d4®5\uc6d4®6\uc6d4®7\uc6d4®8\uc6d4®9\uc6d4®10\uc6d4®11\uc6d4®12\uc6d4®®
-shortWeekdays=®\uc77c®\uc6d4®\ud654®\uc218®\ubaa9®\uae08®\ud1a0®
-weekdays=®\uc77c\uc694\uc77c®\uc6d4\uc694\uc77c®\ud654\uc694\uc77c®\uc218\uc694\uc77c®\ubaa9\uc694\uc77c®\uae08\uc694\uc77c®\ud1a0\uc694\uc77c®
-eras=\uae30\uc6d0\uc804®\uc11c\uae30®
-ampms=\uc624\uc804®\uc624\ud6c4®
-shortDateFormat=yy-MM-dd
-mediumDateFormat=yyyy-MM-dd
-longDateFormat=yyyy'\ub144' M'\uc6d4' d'\uc77c' EE
-fullDateFormat=yyyy'\ub144' M'\uc6d4' d'\uc77c' EEEE
-shortTimeFormat=a hh'\uc2dc' mm'\ubd84'
-mediumTimeFormat=a hh'\uc2dc' mm'\ubd84'
-longTimeFormat=a hh'\uc2dc' mm'\ubd84' ss'\ucd08'
-fullTimeFormat=a hh'\uc2dc' mm'\ubd84' ss'\ucd08' z
-zoneStrings=America/St_Johns®CNT®\ub274\ud380\ub4e4\ub79c\ub4dc \ud45c\uc900\uc2dc®CDT®\ub274\ud380\ub4e4\ub79c\ub4dc \uae30\uc900\uc2dc®©America/Anchorage®AST®\uc54c\ub798\uc2a4\uce74 \ud45c\uc900\uc2dc®ADT®\uc54c\ub798\uc2a4\uce74 \uae30\uc900\uc2dc®©Europe/Paris®CET®\uc911\ubd80\uc720\ub7fd \ud45c\uc900\uc2dc®CEST®\uc911\ubd80\uc720\ub7fd \uae30\uc900\uc2dc®©America/Halifax®AST®\ub300\uc11c\uc591 \ud45c\uc900\uc2dc®ADT®\ub300\uc11c\uc591 \uae30\uc900\uc2dc®©Asia/Shanghai®CTT®\uc911\uad6d \ud45c\uc900\uc2dc®CDT®\uc911\uad6d \ud45c\uc900\uc2dc®©America/New_York®EST®\ub3d9\ubd80 \ud45c\uc900\uc2dc®EDT®\ub3d9\ubd80 \uae30\uc900\uc2dc®©America/Denver®MST®\uc0b0\uc545 \ud45c\uc900\uc2dc®MDT®\uc0b0\uc545 \uae30\uc900\uc2dc®©Africa/Casablanca®GMT®\uadf8\ub9ac\ub2c8\uce58 \ud45c\uc900\uc2dc®GMT®\uadf8\ub9ac\ub2c8\uce58 \ud45c\uc900\uc2dc®©America/Los_Angeles®PST®\ud0dc\ud3c9\uc591 \ud45c\uc900\uc2dc®PDT®\ud0dc\ud3c9\uc591 \uae30\uc900\uc2dc®©Asia/Jerusalem®IST®\uc774\uc2a4\ub77c\uc5d8 \ud45c\uc900\uc2dc®IDT®\uc774\uc2a4\ub77c\uc5d8 \uae30\uc900\uc2dc®©Pacific/Honolulu®HST®\ud558\uc640\uc774 \ud45c\uc900\uc2dc®HST®\ud558\uc640\uc774 \ud45c\uc900\uc2dc®©America/Phoenix®MST®\uc0b0\uc545 \ud45c\uc900\uc2dc®MST®\uc0b0\uc545 \ud45c\uc900\uc2dc®©Asia/Tokyo®JST®\uc77c\ubcf8 \ud45c\uc900\uc2dc®JST®\uc77c\ubcf8 \ud45c\uc900\uc2dc®©Europe/Bucharest®EET®\ub3d9\ubd80\uc720\ub7fd \ud45c\uc900\uc2dc®EEST®\ub3d9\ubd80\uc720\ub7fd \uae30\uc900\uc2dc®©America/Chicago®CST®\uc911\ubd80 \ud45c\uc900\uc2dc®CDT®\uc911\ubd80 \uae30\uc900\uc2dc®©Asia/Seoul®KST®\ud55c\uad6d\ud45c\uc900\uc2dc®KST®\ud55c\uad6d\ud45c\uc900\uc2dc®©America/Indianapolis®EST®\ub3d9\ubd80 \ud45c\uc900\uc2dc®EST®\ub3d9\ubd80 \ud45c\uc900\uc2dc®©
+currenciesSymbol.BND=B$
+currenciesSymbol.SGD=S$
+currenciesSymbol.TWD=NT$
+currenciesSymbol.CYP=\uffe1C
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.AMD=\ub4dc\ub7a8
+currenciesSymbol.CNY=\u00a5
+currenciesSymbol.CAD=Can$
+currenciesSymbol.DOP=RD$
+currenciesSymbol.MRO=UM
+currenciesSymbol.KPW=KPW
+currenciesSymbol.HKD=HK$
+shortMonths=1\uc6d4\u00ae2\uc6d4\u00ae3\uc6d4\u00ae4\uc6d4\u00ae5\uc6d4\u00ae6\uc6d4\u00ae7\uc6d4\u00ae8\uc6d4\u00ae9\uc6d4\u00ae10\uc6d4\u00ae11\uc6d4\u00ae12\uc6d4\u00ae\u00ae
+months=1\uc6d4\u00ae2\uc6d4\u00ae3\uc6d4\u00ae4\uc6d4\u00ae5\uc6d4\u00ae6\uc6d4\u00ae7\uc6d4\u00ae8\uc6d4\u00ae9\uc6d4\u00ae10\uc6d4\u00ae11\uc6d4\u00ae12\uc6d4\u00ae\u00ae
+shortWeekdays=\u00ae\uc77c\u00ae\uc6d4\u00ae\ud654\u00ae\uc218\u00ae\ubaa9\u00ae\uae08\u00ae\ud1a0\u00ae
+weekdays=\u00ae\uc77c\uc694\uc77c\u00ae\uc6d4\uc694\uc77c\u00ae\ud654\uc694\uc77c\u00ae\uc218\uc694\uc77c\u00ae\ubaa9\uc694\uc77c\u00ae\uae08\uc694\uc77c\u00ae\ud1a0\uc694\uc77c\u00ae
+eras=\uae30\uc6d0\uc804\u00ae\uc11c\uae30\u00ae
+ampms=\uc624\uc804\u00ae\uc624\ud6c4\u00ae
+shortDateFormat=yy. MM. dd
+mediumDateFormat=yyyy. MM. dd
+longDateFormat=yyyy\ub144 M\uc6d4 d\uc77c
+fullDateFormat=yyyy\ub144 M\uc6d4 d\uc77c EEEE
+shortTimeFormat=a hh\uc2dc mm\ubd84
+mediumTimeFormat=a h:mm:ss
+longTimeFormat=z a h\uc2dc m\ubd84 s\ucd08
+fullTimeFormat=z a h\uc2dc mm\ubd84 ss\ucd08
+zoneStrings=Europe_Central\u00ae\uc911\ubd80\uc720\ub7fd \ud45c\uc900\uc2dc\u00ae\u00ae\uc911\ubd80\uc720\ub7fd \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Africa_Western\u00ae\uc11c\uc544\ud504\ub9ac\uce74 \uc2dc\uac04\u00ae\u00ae\uc11c\uc544\ud504\ub9ac\uce74 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Australia_Eastern\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \ub3d9\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \ub3d9\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Maldives\u00ae\ubab0\ub514\ube0c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00ae\uc601\uad6d\ub839 \uc778\ub3c4\uc591 \uc2dd\ubbfc\uc9c0 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00ae\ud53c\uc9c0 \ud45c\uc900\uc2dc\u00ae\u00ae\ud53c\uc9c0 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Amazon\u00ae\uc544\ub9c8\uc874 \ud45c\uc900\uc2dc\u00ae\u00ae\uc544\ub9c8\uc874 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Arabian\u00ae\uc544\ub77c\ube44\uc544 \ud45c\uc900\uc2dc\u00aeAST(\uc544\ub77c\ube44\uc544)\u00ae\uc544\ub77c\ube44\uc544 \ud558\uacc4 \ud45c\uc900\uc2dc\u00aeADT(\uc544\ub77c\ube44\uc544)\u00ae\u00a9Alaska\u00ae\uc54c\ub798\uc2a4\uce74 \ud45c\uc900\uc2dc\u00ae\u00ae\uc54c\ub798\uc2a4\uce74 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Easter\u00ae\uc774\uc2a4\ud130\uc12c \ud45c\uc900\uc2dc\u00ae\u00ae\uc774\uc2a4\ud130\uc12c \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Hong_Kong\u00ae\ud64d\ucf69 \uc2dc\uac04\u00ae\u00ae\ud64d\ucf69 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Indonesia_Western\u00ae\uc11c\uc778\ub3c4\ub124\uc2dc\uc544 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\ub3d9\uc778\ub3c4\ub124\uc2dc\uc544 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00ae\ucc28\ubaa8\ub85c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9America_Pacific\u00ae\ud0dc\ud3c9\uc591 \ud45c\uc900\uc2dc\u00ae\u00ae\ubbf8 \ud0dc\ud3c9\uc591 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Seychelles\u00ae\uc138\uc774\uc178 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00ae\uc774\uc2a4\ub77c\uc5d8 \ud45c\uc900\uc2dc\u00aeIST\u00ae\uc774\uc2a4\ub77c\uc5d8 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Cocos\u00ae\ucf54\ucf54\uc2a4\uc12c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Eastern\u00ae\ub3d9\ubd80\uc720\ub7fd \ud45c\uc900\uc2dc\u00ae\u00ae\ub3d9\ubd80 \uc720\ub7fd \uc11c\uba38\ud0c0\uc784\u00ae\u00ae\u00a9Newfoundland\u00ae\ub274\ud380\ub4e4\ub79c\ub4dc \ud45c\uc900\uc2dc\u00ae\u00ae\ub274\ud380\ub4e4\ub79c\ub4dc \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Australia_Western\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc11c\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc11c\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Moscow\u00ae\ubaa8\uc2a4\ud06c\ubc14 \ud45c\uc900\uc2dc\u00ae\u00ae\ubaa8\uc2a4\ud06c\ubc14 \uc11c\uba38\ud0c0\uc784\u00ae\u00ae\u00a9Christmas\u00ae\ud06c\ub9ac\uc2a4\ub9c8\uc2a4\uc12c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9South_Georgia\u00ae\uc0ac\uc6b0\uc2a4 \uc870\uc9c0\uc544 \ud45c\uc900\uc2dc\u00aeGST (\uc0ac\uc6b0\uc2a4 \uc870\uc9c0\uc544)\u00ae\u00ae\u00ae\u00a9Korea\u00ae\ud55c\uad6d \ud45c\uc900\uc2dc\u00ae\u00ae\ud55c\uad6d \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Africa_Eastern\u00ae\ub3d9\uc544\ud504\ub9ac\uce74 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00ae\ub300\uc11c\uc591 \ud45c\uc900\uc2dc\u00ae\u00ae\ubbf8 \ub300\uc11c\uc591 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Lord_Howe\u00ae\ub85c\ub4dc \ud558\uc6b0 \ud45c\uc900\uc2dc\u00ae\u00ae\ub85c\ub4dc \ud558\uc6b0 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Cape_Verde\u00ae\uce74\ubcf4 \ubca0\ub974\ub370 \ud45c\uc900\uc2dc\u00ae\u00ae\uce74\ubcf4 \ubca0\ub974\ub370 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9America_Eastern\u00ae\ub3d9\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\ubbf8 \ub3d9\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Reunion\u00ae\ub9ac\uc720\ub2c8\uc628 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Davis\u00ae\ub370\uc774\ube44\uc2a4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00ae\ucc44\ud140 \ud45c\uc900\uc2dc\u00ae\u00ae\ucc44\ud140 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Syowa\u00ae\uc1fc\uc640 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00ae\ud504\ub791\uc2a4\ub839 \ub0a8\ucabd\uc2dd\ubbfc\uc9c0 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00ae\uc544\ud06c\ub808 \ud45c\uc900\uc2dc\u00aeACT (\uc544\ud06c\ub808)\u00ae\uc544\ud06c\ub808 \ud558\uacc4 \ud45c\uc900\uc2dc\u00aeACST (\uc544\ud06c\ub808)\u00ae\u00a9Europe_Western\u00ae\uc11c\ubd80 \uc720\ub7fd \uc2dc\uac04\u00ae\u00ae\uc11c\ubd80 \uc720\ub7fd \uc11c\uba38\ud0c0\uc784\u00ae\u00ae\u00a9Africa_Central\u00ae\uc911\uc559\uc544\ud504\ub9ac\uce74 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00ae\ub0a8\uc544\ud504\ub9ac\uce74 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00ae\ub274\uc9c8\ub79c\ub4dc \ud45c\uc900\uc2dc\u00ae\u00ae\ub274\uc9c8\ub79c\ub4dc \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9China\u00ae\uc911\uad6d \ud45c\uc900\uc2dc\u00aeCST (\uc911\uad6d)\u00ae\uc911\uad6d \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Indonesia_Central\u00ae\uc911\uc559\uc778\ub3c4\ub124\uc2dc\uc544 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\uc0b0\uc545 \ud45c\uc900\uc2dc\u00ae\u00ae\ubbf8 \uc0b0\uc9c0 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9India\u00ae\uc778\ub3c4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00ae\uadf8\ub9ac\ub2c8\uce58 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Mawson\u00ae\ubaa8\uc2a8 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00ae\ud3ec\ud074\ub79c\ub4dc \ud45c\uc900\uc2dc\u00ae\u00ae\ud3ec\ud074\ub79c\ub4dc \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Indochina\u00ae\uc778\ub3c4\ucc28\uc774\ub098 \uc2dc\uac04\u00ae\u00ae\u00ae\u00ae\u00a9Brasilia\u00ae\ube0c\ub77c\uc9c8\ub9ac\uc544 \ud45c\uc900\uc2dc\u00ae\u00ae\ube0c\ub77c\uc9c8\ub9ac\uc544 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Australia_CentralWestern\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc911\uc11c\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc911\uc11c\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9DumontDUrville\u00ae\ub4a4\ubabd \ub4a4\ub974\ube4c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00ae\ub85c\ub370\ub77c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\uc911\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\ubbf8 \uc911\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Azores\u00ae\uc544\uc870\ub808\uc2a4 \ud45c\uc900\uc2dc\u00ae\u00ae\uc544\uc870\ub808\uc2a4 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Japan\u00ae\uc77c\ubcf8 \ud45c\uc900\uc2dc\u00ae\u00ae\uc77c\ubcf8 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Cook\u00ae\ucfe1\uc81c\ub3c4 \ud45c\uc900\uc2dc\u00ae\u00ae\ucfe1\uc81c\ub3c4 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Australia_Central\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc911\ubd80 \ud45c\uc900\uc2dc\u00ae\u00ae\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544 \uc911\ubd80 \ud558\uacc4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00a9Vostok\u00ae\ubaa8\uc2a4\ud1a0\ud06c \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00ae\uac08\ub77c\ud30c\uace0\uc2a4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9Mauritius\u00ae\ubaa8\ub9ac\uc154\uc2a4 \ud45c\uc900\uc2dc\u00ae\u00ae\u00ae\u00ae\u00a9
territories.TL=\ub3d9\ud2f0\ubaa8\ub974
territories.TK=\ud1a0\ucf08\ub77c\uc6b0
territories.TJ=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4
@@ -278,10 +342,13 @@ territories.GN=\uae30\ub2c8
territories.GM=\uac10\ube44\uc544
territories.GL=\uadf8\ub9b0\ub780\ub4dc
territories.SV=\uc5d8\uc0b4\ubc14\ub3c4\ub974
+territories.062=\uc911\ub0a8 \uc544\uc2dc\uc544
territories.ST=\uc0c1\ud22c\uba54 \ud504\ub9b0\uc2dc\ud398
territories.GI=\uc9c0\ube0c\ub864\ud130
+territories.061=\ud3f4\ub9ac\ub124\uc2dc\uc544
territories.GH=\uac00\ub098
territories.SR=\uc218\ub9ac\ub0a8
+territories.GG=\uac74\uc9c0
territories.GF=\ud504\ub791\uc2a4\ub839 \uae30\uc544\ub098
territories.GE=\uadf8\ub8e8\uc9c0\uc57c
territories.SO=\uc18c\ub9d0\ub9ac\uc544
@@ -298,36 +365,46 @@ territories.SH=\uc138\uc778\ud2b8\ud5ec\ub808\ub098
territories.SG=\uc2f1\uac00\ud3ec\ub974
territories.SE=\uc2a4\uc6e8\ub374
territories.SD=\uc218\ub2e8
-territories.SC=\uc250\uc774\uc258
-territories.SB=\uc194\ub85c\ubaac
+territories.SC=\uc138\uc774\uc178
+territories.SB=\uc194\ub85c\ubaac \uc81c\ub3c4
territories.SA=\uc0ac\uc6b0\ub514\uc544\ub77c\ube44\uc544
territories.FR=\ud504\ub791\uc2a4
territories.FO=\ud398\ub85c\uc81c\ub3c4
-territories.FM=\ub9c8\uc774\ud06c\ub85c\ub124\uc2dc\uc544
+territories.057=\ubbf8\ud06c\ub85c\ub124\uc2dc\uc544 \uc9c0\uc5ed
+territories.FM=\ubbf8\ud06c\ub85c\ub124\uc2dc\uc544
territories.RW=\ub974\uc644\ub2e4
+territories.054=\uba5c\ub77c\ub124\uc2dc\uc544
territories.FK=\ud3ec\ud074\ub79c\ub4dc\uc81c\ub3c4
+territories.053=\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544\uc640 \ub274\uc9c8\ub79c\ub4dc
territories.RU=\ub7ec\uc2dc\uc544
territories.FJ=\ud53c\uc9c0
territories.FI=\ud540\ub780\ub4dc
+territories.RS=\uc138\ub974\ube44\uc544
territories.RO=\ub8e8\ub9c8\ub2c8\uc544
territories.RE=\ub9ac\uc720\ub2c8\uc628
territories.ET=\uc774\ub514\uc624\ud53c\uc544
territories.ES=\uc2a4\ud398\uc778
territories.ER=\uc5d0\ub9ac\ud2b8\ub9ac\uc544
+territories.QU=\uc720\ub7fd \uc5f0\ud569
territories.EH=\uc11c\uc0ac\ud558\ub77c
territories.EG=\uc774\uc9d1\ud2b8
territories.EE=\uc5d0\uc2a4\ud1a0\ub2c8\uc544
-territories.EC=\uc5d0\ucfe0\uc544\ub3c4\ub974
+territories.QO=\uc624\uc138\uc544\ub2c8\uc544 \uc678\uacfd
+territories.EC=\uc5d0\ucf70\ub3c4\ub974
territories.DZ=\uc54c\uc81c\ub9ac
territories.QA=\uce74\ud0c0\ub974
+territories.039=\ub0a8\uc720\ub7fd
territories.DO=\ub3c4\ubbf8\ub2c8\uce74 \uacf5\ud654\uad6d
territories.PY=\ud30c\ub77c\uacfc\uc774
territories.DM=\ub3c4\ubbf8\ub2c8\uce74
+territories.035=\ub3d9\ub0a8 \uc544\uc2dc\uc544
territories.PW=\ud314\ub77c\uc6b0
+territories.034=\ub0a8\uc544\uc2dc\uc544
territories.DK=\ub374\ub9c8\ud06c
territories.DJ=\uc9c0\ubd80\ud2f0
-territories.PT=\ud3ec\ub974\ud2b8\uce7c
+territories.PT=\ud3ec\ub974\ud22c\uac08
territories.PS=\ud314\ub808\uc2a4\ud0c0\uc778 \uc9c0\uad6c
+territories.030=\ub3d9\uc544\uc2dc\uc544
territories.PR=\ud478\uc5d0\ub974\ud1a0\ub9ac\ucf54
territories.DE=\ub3c5\uc77c
territories.PN=\ud54f\ucf00\uc5b8\uc12c
@@ -344,21 +421,24 @@ territories.CX=\ud06c\ub9ac\uc2a4\ub9c8\uc2a4\uc12c
territories.CV=\uae4c\ubf40\ubca0\ub974\ub370
territories.PA=\ud30c\ub098\ub9c8
territories.CU=\ucfe0\ubc14
-territories.CS=\uc138\ub974\ube44\uc544 \ubc0f \ubaac\ud14c\ub124\uadf8\ub85c
+territories.CS=\uc138\ub974\ube44\uc544 \ubaac\ud14c\ub124\uadf8\ub85c
territories.CR=\ucf54\uc2a4\ud0c0\ub9ac\uce74
+territories.029=\uce74\ub9ac\ube0c \ud574 \uc81c\ub3c4
territories.CO=\ucf5c\ub86c\ube44\uc544
territories.CN=\uc911\uad6d
territories.CM=\uce74\uba54\ub8ec
territories.CL=\uce60\ub808
territories.CK=\ucfe1\uc81c\ub3c4
-territories.CI=\ucf54\ud2b8\ub514\ubd80\uc640\ub974
+territories.021=\ubd81\ubd80 \uc544\uba54\ub9ac\uce74
+territories.CI=\ucf54\ud2b8\ub514\ubd80\uc544\ub974
territories.CH=\uc2a4\uc704\uc2a4
territories.CG=\ucf69\uace0
-territories.CF=\uc911\uc559 \uc544\ud504\ub9ac\uce74
-territories.CD=\ucf69\uace0\ubbfc\uc8fc\uacf5\ud654\uad6d
+territories.CF=\uc911\uc559 \uc544\ud504\ub9ac\uce74 \uacf5\ud654\uad6d
+territories.CD=\ucf69\uace0 \ubbfc\uc8fc\uacf5\ud654\uad6d
territories.CC=\ucf54\ucf54\uc2a4\uc81c\ub3c4
territories.OM=\uc624\ub9cc
territories.CA=\uce90\ub098\ub2e4
+territories.419=\ub77c\ud2f4 \uc544\uba54\ub9ac\uce74 \ubc0f \uce74\ub9ac\ube0c \ud574 \uc81c\ub3c4
territories.BZ=\ubca8\ub9ac\uc988
territories.BY=\ubca8\ub77c\ub8e8\uc2a4
territories.BW=\ubcf4\uce20\uc640\ub098
@@ -366,19 +446,29 @@ territories.BV=\ubd80\ubca0
territories.BT=\ubd80\ud0c4
territories.BS=\ubc14\ud558\ub9c8
territories.BR=\ube0c\ub77c\uc9c8
+territories.019=\uc544\uba54\ub9ac\uce74 \ub300\ub959
+territories.018=\ub0a8\ubd80 \uc544\ud504\ub9ac\uce74
territories.NZ=\ub274\uc9c8\ub79c\ub4dc
+territories.017=\uc911\ubd80 \uc544\ud504\ub9ac\uce74
territories.BO=\ubcfc\ub9ac\ube44\uc544
territories.BN=\ube0c\ub8e8\ub098\uc774
+territories.015=\ubd81\ubd80 \uc544\ud504\ub9ac\uce74
territories.BM=\ubc84\ubba4\ub2e4
+territories.014=\ub3d9\ubd80 \uc544\ud504\ub9ac\uce74
+territories.BL=\uc138\uc778\ud2b8 \ubc14\ub974\ud154\ub974\ubbf8
+territories.013=\uc911\uc559 \uc544\uba54\ub9ac\uce74
territories.NU=\ub2c8\uc6b0\uc5d0
-territories.BJ=\ubca0\ub139
+territories.BJ=\ubca0\ub0c9
+territories.011=\uc11c\uc544\ud504\ub9ac\uce74
territories.BI=\ubd80\ub8ec\ub514
+territories.172=\ub3c5\ub9bd \uad6d\uac00 \uc5f0\ud569
territories.BH=\ubc14\ub808\uc778
territories.NR=\ub098\uc6b0\ub8e8
territories.BG=\ubd88\uac00\ub9ac\uc544
territories.BF=\ubd80\ub974\ud0a4\ub098\ud30c\uc18c
territories.NP=\ub124\ud314
territories.BE=\ubca8\uae30\uc5d0
+territories.ZZ=\uc54c\uc218\uc5c6\uac70\ub098 \uc720\ud6a8\ud558\uc9c0 \uc54a\uc740 \uc9c0\uc5ed
territories.NO=\ub178\ub974\uc6e8\uc774
territories.BD=\ubc29\uae00\ub77c\ub370\uc2dc
territories.BB=\ubc14\ubca0\uc774\ub3c4\uc2a4
@@ -390,6 +480,7 @@ territories.NG=\ub098\uc774\uc9c0\ub9ac\uc544
territories.NF=\ub178\ud37d\uc12c
territories.AZ=\uc544\uc81c\ub974\ubc14\uc774\uc794
territories.NE=\ub2c8\uc81c\ub974
+territories.AX=\uc62c\ub780\ub4dc \uc81c\ub3c4
territories.NC=\ub274 \uce7c\ub808\ub3c4\ub2c8\uc544
territories.AW=\uc544\ub8e8\ubc14
territories.ZM=\uc7a0\ube44\uc544
@@ -399,45 +490,56 @@ territories.AT=\uc624\uc2a4\ud2b8\ub9ac\uc544
territories.AS=\uc544\uba54\ub9ac\uce78 \uc0ac\ubaa8\uc544
territories.AR=\uc544\ub974\ud5e8\ud2f0\ub098
territories.AQ=\ub0a8\uadf9 \ub300\ub959
+territories.009=\uc624\uc138\uc544\ub2c8\uc544, \ub300\uc591\uc8fc
territories.MZ=\ubaa8\uc7a0\ube44\ud06c
territories.AO=\uc559\uace8\ub77c
-territories.MY=\ub9d0\ub808\uc774\uc9c0\uc544
+territories.MY=\ub9d0\ub808\uc774\uc2dc\uc544
territories.AN=\ub124\ub35c\ub780\ub4dc\ub839 \uc548\ud2f8\ub808\uc2a4
territories.MX=\uba55\uc2dc\ucf54
territories.AM=\uc544\ub974\uba54\ub2c8\uc544
+territories.005=\ub0a8\uc544\uba54\ub9ac\uce74[\ub0a8\ubbf8]
territories.MW=\ub9d0\ub77c\uc704
territories.AL=\uc54c\ubc14\ub2c8\uc544
territories.MV=\ubab0\ub514\ube0c
+territories.003=\ubd81\uc544\uba54\ub9ac\uce74
territories.ZA=\ub0a8\uc544\ud504\ub9ac\uce74
territories.MU=\ubaa8\ub9ac\uc154\uc2a4
+territories.002=\uc544\ud504\ub9ac\uce74
territories.MT=\ubab0\ud0c0
territories.AI=\uc548\uae38\ub77c
+territories.001=\uc138\uacc4
territories.MS=\ubaac\ud2b8\uc138\ub77c\ud2b8
territories.MR=\ubaa8\ub9ac\ud0c0\ub2c8
territories.AG=\uc564\ud2f0\uac00 \ubc14\ubd80\ub2e4
-territories.AF=\uc544\ud504\uac00\ub2c8\uc2a4\ud0c4
territories.MQ=\ub9d0\ud2f0\ub2c8\ud06c
-territories.AE=\uc544\ub78d\uc5d0\ubbf8\ub9ac\ud2b8
+territories.AF=\uc544\ud504\uac00\ub2c8\uc2a4\ud0c4
territories.MP=\ubd81\ub9c8\ub9ac\uc544\ub098\uc81c\ub3c4
+territories.AE=\uc544\ub78d\uc5d0\ubbf8\ub9ac\ud2b8 \uc5f0\ud569
+territories.MO=\ub9c8\uce74\uc624
territories.AD=\uc548\ub3c4\ub77c
-territories.MO=\ub9c8\uce74\uc624, \uc911\uad6d \ud2b9\ubcc4\ud589\uc815\uad6c
territories.MN=\ubabd\uace8
territories.MM=\ubbf8\uc580\ub9c8
territories.ML=\ub9d0\ub9ac
-territories.MK=\ub9c8\ucf00\ub3c4\ub2c8\uc544\uc5b4
+territories.MK=\ub9c8\ucf00\ub3c4\ub2c8\uc544
territories.YT=\ub9c8\uc694\ud2f0
territories.MH=\ub9c8\uc0ec \uad70\ub3c4
territories.MG=\ub9c8\ub2e4\uac00\uc2a4\uce74\ub974
+territories.MF=\uc138\uc778\ud2b8 \ub9c8\ud2f4
+territories.ME=\ubaac\ud14c\ub124\uadf8\ub85c
territories.MD=\ubab0\ub3c4\ubc14
territories.MC=\ubaa8\ub098\ucf54
territories.MA=\ubaa8\ub85c\ucf54
territories.YE=\uc608\uba58
territories.LY=\ub9ac\ube44\uc544
territories.LV=\ub77c\ud2b8\ube44\uc544
+territories.155=\uc11c\uc720\ub7fd
territories.LU=\ub8e9\uc148\ubd80\ub974\ud06c
+territories.154=\ubd81\uc720\ub7fd
territories.LT=\ub9ac\ud22c\uc544\ub2c8\uc544
territories.LS=\ub808\uc18c\ud1a0
territories.LR=\ub77c\uc774\ubca0\ub9ac\uc544
+territories.151=\ub3d9\uc720\ub7fd
+territories.150=\uc720\ub7fd
territories.LK=\uc2a4\ub9ac\ub791\uce74
territories.LI=\ub9ac\ud788\ud150\uc288\ud0c0\uc778
territories.LC=\uc138\uc778\ud2b8\ub8e8\uc2dc\uc544
@@ -446,10 +548,13 @@ territories.LA=\ub77c\uc624\uc2a4
territories.KZ=\uce74\uc790\ud750\uc2a4\ud0c4
territories.KY=\ucf00\uc774\ub9e8\uc81c\ub3c4
territories.KW=\ucfe0\uc6e8\uc774\ud2b8
+territories.145=\uc11c\uc544\uc2dc\uc544
+territories.143=\uc911\uc559 \uc544\uc2dc\uc544
+territories.142=\uc544\uc2dc\uc544
territories.KR=\ub300\ud55c\ubbfc\uad6d
territories.KP=\uc870\uc120 \ubbfc\uc8fc\uc8fc\uc758 \uc778\ubbfc \uacf5\ud654\uad6d
-territories.KN=\uc138\uc778\ud2b8\ud06c\ub9ac\uc2a4\ud1a0\ud37c \ub124\ube44\uc2a4
-territories.KM=\ucf54\ubaa8\ub974
+territories.KN=\uc138\uc778\ud2b8 \ud0a4\uce20 \ub124\ube44\uc2a4
+territories.KM=\ucf54\ubaa8\ub85c\uc2a4
territories.KI=\ud0a4\ub9ac\ubc14\uc2dc
territories.WS=\uc0ac\ubaa8\uc544
territories.KH=\uce84\ubcf4\ub514\uc544
@@ -460,6 +565,7 @@ territories.JP=\uc77c\ubcf8
territories.JO=\uc694\ub974\ub2e8
territories.JM=\uc790\uba54\uc774\uce74
territories.VU=\ubc14\ub204\uc544\ud22c
+territories.JE=\uc800\uc9c0
territories.VN=\ubca0\ud2b8\ub0a8
territories.VI=\ubbf8\uad6d\ub839 \ubc84\uc9c4 \uc544\uc77c\ub79c\ub4dc
territories.VG=\uc601\uad6d\ub839 \ubc84\uc9c4 \uc544\uc77c\ub79c\ub4dc
@@ -474,6 +580,7 @@ territories.UZ=\uc6b0\uc988\ubca0\ud0a4\uc2a4\ud0c4
territories.IO=\uc601\uad6d\ub839\uc778\ub3c4\uc591\uc2dd\ubbfc\uc9c0
territories.UY=\uc6b0\ub8e8\uacfc\uc774
territories.IN=\uc778\ub3c4
+territories.IM=\ub9e8 \uc12c
territories.IL=\uc774\uc2a4\ub77c\uc5d8
territories.US=\ubbf8\uad6d
territories.IE=\uc544\uc77c\ub79c\ub4dc
@@ -482,47 +589,50 @@ territories.UM=\ubbf8\uad6d\ub839 \ud574\uc678 \uc81c\ub3c4
territories.UG=\uc6b0\uac04\ub2e4
territories.UA=\uc6b0\ud06c\ub77c\uc774\ub098
territories.HU=\ud5dd\uac00\ub9ac
-territories.HT=\ud558\uc774\ud2f0
+territories.HT=\uc544\uc774\ud2f0
territories.HR=\ud06c\ub85c\uc544\ud2f0\uc544
territories.TZ=\ud0c4\uc790\ub2c8\uc544
territories.HN=\uc628\ub450\ub77c\uc2a4
territories.HM=\ud5c8\ub4dc\uc12c-\ub9e5\ub3c4\ub110\ub4dc\uc81c\ub3c4
territories.TW=\ub300\ub9cc
territories.TV=\ud22c\ubc1c\ub8e8
-territories.HK=\ud64d\ucf69, \uc911\uad6d \ud2b9\ubcc4\ud589\uc815\uad6c
+territories.HK=\ud64d\ucf69
territories.TT=\ud2b8\ub9ac\ub2c8\ub2e4\ub4dc \ud1a0\ubc14\uace0
territories.TR=\ud130\ud0a4
territories.TO=\ud1b5\uac00
territories.TN=\ud280\ub2c8\uc9c0
territories.TM=\ud22c\ub974\ud06c\uba54\ub2c8\uc2a4\ud0c4
-languages.akk=\uc544\uce74\ub4dc\uc5b4
languages.gwi=\uadf8\uc704\uce5c\uc5b4
+languages.akk=\uc544\uce74\ub4dc\uc5b4
languages.eka=\uc774\uce74\uc8fd\uc5b4
languages.ijo=\uc774\uc870\uc5b4
-languages.xh=\ubc18\ud22c\uc5b4(\ub0a8\uc544\ud504\ub9ac\uce74)
+languages.xh=\ucf54\uc0ac\uc5b4
languages.sux=\uc218\uba54\ub974\uc5b4
languages.sus=\uc218\uc218\uc5b4
languages.mis=\uae30\ud0c0 \uc5b8\uc5b4
languages.loz=\ub85c\uc9c0\uc5b4
languages.tog=\ud1b5\uac00\uc5b4 (\ub2c8\uc544\uc0b4\ub79c\ub4dc)
+languages.zbl=zbl
languages.pon=\ud3fc\ud398\uc774\uc5b4
languages.min=\ubbf8\ub0ad\uce74\ubc14\uc6b0
languages.suk=\uc218\ucfe0\ub9c8\uc871\uc5b4
languages.wo=\uc62c\ub85c\ud504\uc5b4
-languages.kut=\ucfe0\ud14c\ub124\uc5b4
languages.lol=\ubabd\uad6c\uc5b4
+languages.kut=\ucfe0\ud14c\ub124\uc5b4
languages.mic=\ubbf8\ud06c\ub9e5\uc5b4
languages.wa=\uc648\ub860\uc5b4
languages.kum=\ucfe0\ubbf9\uc5b4
languages.zap=\uc0ac\ud3ec\ud14c\ud06c\uc5b4
-languages.cus=\ucfe0\uc2dc\ud2b8\uc81c\uc871\uc5b4 (\uae30\ud0c0)
-languages.doi=\ub3c4\uadf8\ub9ac\uc5b4
+languages.ain=\uc544\uc774\ub204\uc5b4
+languages.cus=\ucfe0\uc2dc\uc5b4\uc871
languages.jbo=\ub85c\ubc18\uc5b4
+languages.doi=\ub3c4\uadf8\ub9ac\uc5b4
+languages.zza=\uc790\uc790\uc5b4
languages.vo=\ubcfc\ub77c\ud4cc\ud06c\uc5b4
languages.oto=\uc624\ud1a0\ubbf8\uc548\uc5b4
languages.vi=\ubca0\ud2b8\ub0a8\uc5b4
languages.vai=\ubc14\uc774\uc5b4
-languages.rar=\ud30c\ub85c\ud1a4\uac04\uc5b4
+languages.rar=\ub77c\ub85c\ud1b5\uac00\uc5b4
languages.ve=\ubca4\ub2e4\uc5b4
languages.rap=\ub77c\ud30c\ub274\uc774
languages.raj=\ub77c\uc790\uc2a4\ud0c4\uc5b4
@@ -541,23 +651,26 @@ languages.egy=\uc774\uc9d1\ud2b8\uc5b4 (\uace0\ub300)
languages.ug=\uc704\uad6c\ub974\uc5b4
languages.fan=\ud321\uadf8\uc5b4
languages.ssa=\ub2c8\ub85c-\uc0ac\ud558\ub78c\uc5b4 (\uae30\ud0c0)
-languages.bat=\ubc1c\ud2b8\uc5b4 (\uae30\ud0c0)
languages.mga=\uc544\uc77c\ub79c\ub4dc\uc5b4, \uc911\uc138 (900-1200)
+languages.bat=\ubc1c\ud2b8\uc5b4 (\uae30\ud0c0)
languages.nyo=\ub274\ub85c\uc5b4
languages.bas=\ubc14\uc0ac\uc5b4
languages.nyn=\ub2c8\uc548\ucf5c\uc5b4
languages.nym=\ub2c8\uc554\uc6e8\uc9c0\uc5b4
+languages.gsw=\ub3c5\uc77c\uc5b4 (\uc2a4\uc704\uc2a4)
languages.hmn=\ud788\ubab8\uc5b4
languages.ban=\ubc1c\ub9ac\uc5b4
languages.osa=\uc624\uc138\uc774\uc9c0\uc5b4
languages.bal=\ubc1c\ub8e8\uce58\uc5b4
languages.ty=\ud0c0\ud788\ud2f0\uc5b4
-languages.bai=\ubc14\ubbf8\ub808\ucf00\uc5b4
+languages.bai=\ubc14\ubc00\ub808\ucf00\uc5b4\uc871
languages.tw=\ud2b8\uc704\uc5b4
-languages.srr=\uc138\uc140\uc5b4
+languages.srr=\uc138\ub808\ub974\uc5b4
languages.tli=\ud2c0\ub9c1\uae43\uc871\uc5b4
+languages.tlh=\ud074\ub9c1\uc628\uc5b4
languages.tt=\ud0c0\ud0c0\ub974\uc5b4
-languages.ts=\ud1b5\uac00\uc5b4
+languages.ts=\ucd1d\uac00\uc5b4
+languages.srn=\uc2a4\ub77c\ub09c \ud1b5\uac00\uc5b4
languages.bad=\ubc18\ub2e4\uc5b4
languages.tr=\ud130\ud0a4\uc5b4
languages.to=\ud1b5\uac00\uc5b4
@@ -570,21 +683,22 @@ languages.kru=\ucfe0\ub974\ud06c\uc5b4
languages.tg=\ud0c0\uc9c0\ud0a4\uc2a4\ud0c4\uc5b4
languages.byn=\ube0c\ub9b0\uc5b4
languages.te=\ud154\ub8e8\uad6c\uc5b4
-languages.csb=\uce74\uc288\ube44\uc544\uc5b4
languages.kro=\ud06c\ub8e8\uc5b4
+languages.csb=\uce74\uc288\ube44\uc544\uc5b4
languages.ta=\ud0c0\ubc00\uc5b4
+languages.krl=\uce74\ub810\ub9ac\uc57c\uc5b4
languages.tkl=\ud1a0\ucf08\ub77c\uc6b0\uc81c\ub3c4\uc5b4
languages.efi=\uc774\ud53d\uc5b4
languages.sw=\uc2a4\uc640\ud790\ub9ac\uc5b4
languages.sv=\uc2a4\uc6e8\ub374\uc5b4
-languages.su=\uc21c\ub2e8\uc5b4
+languages.su=\uc21c\ub2e4\uc5b4
languages.krc=\uce74\ub77c\ucc60\uc774-\ubc1c\uce74\ub974\uc5b4
-languages.st=\uc138\uc18c\ud1a0\uc5b4
+languages.st=\uc18c\ud1a0\uc5b4 (\ub0a8\ubd80)
languages.ss=\uc2dc\uc2a4\uc640\ud2f0\uc5b4
languages.sr=\uc138\ub974\ube44\uc544\uc5b4
languages.sq=\uc54c\ubc14\ub2c8\uc544\uc5b4
languages.men=\uba58\ub370\uc5b4
-languages.crp=\ud06c\ub808\uc624\uc2a4\uc640 \ud53c\uae34\uc2a4\uc5b4 (\uae30\ud0c0)
+languages.crp=\ud06c\ub9ac\uc62c\uc5b4 \ubc0f \ud53c\uc9c4\uc5b4 (\uae30\ud0c0)
languages.so=\uc18c\ub9d0\ub9ac\uc544\uc5b4
languages.afh=\uc544\ud504\ub9ac\ud788\ub9ac\uc5b4
languages.sn=\uc1fc\ub098\uc5b4
@@ -594,49 +708,52 @@ languages.grc=\uadf8\ub9ac\uc2a4\uc5b4, \uace0\ub300 (1453\ub144 \uae4c\uc9c0)
languages.sk=\uc2ac\ub85c\ubc14\ud0a4\uc544\uc5b4
languages.grb=\uac8c\ub974\ubcf4\uc5b4
languages.si=\uc2a4\ub9ac\ub791\uce74\uc5b4
-languages.sh=\uc138\ub974\ubcf4\ud06c\ub85c\uc544\ud2f0\uc544\uc5b4
-languages.afa=\uc544\uc2dc\uc544-\uc544\ud504\ub9ac\uce74\uc5b4 (\uae30\ud0c0)
-languages.crh=\ud06c\ub9ac\ubbfc \ud130\ud0a4\uc5b4; \ud06c\ub9ac\ubbfc \ud0c0\ud0c0\ub974\uc5b4
+languages.sh=\uc138\ub974\ube44\uc544-\ud06c\ub85c\uc544\ud2f0\uc544\uc5b4
+languages.crh=\ud06c\ub9ac\ubbf8\uc544 \ud22c\ub974\ud06c\uc5b4; \ud06c\ub9ac\ubbf8\uc544 \ud0c0\ud0c0\ub974\uc5b4
+languages.afa=\uc544\ud504\ub9ac\uce74 \uc544\uc2dc\uc544\uc5b4 (\uae30\ud0c0)
languages.sg=\uc0b0\uace0\uc5b4
languages.se=\ubd81\ubd80 \uc0ac\ubbf8\uc5b4
languages.sd=\uc2e0\ub514\uc5b4
languages.udm=\uc6b0\ub4dc\ub9d0\ud2b8\uc5b4
languages.sc=\uc0ac\ub974\ub514\ub2c8\uc544\uc5b4
languages.sa=\uc0b0\uc2a4\ud06c\ub9ac\ud2b8\uc5b4
-languages.rw=\ubc18\ud22c\uc5b4(\ub8e8\uc644\ub2e4)
+languages.rw=\ub974\uc644\ub2e4\uc5b4
+languages.nwc=\ub124\uc640\ub9ac\uc5b4 (\uace0\uc804)
languages.ru=\ub7ec\uc2dc\uc544\uc5b4
languages.mdr=\ub9cc\ub2e4\ub974\uc5b4
languages.ro=\ub8e8\ub9c8\ub2c8\uc544\uc5b4
-languages.rn=\ubc18\ud22c\uc5b4(\ubd80\ub8ec\ub514)
+languages.rn=\ub8ec\ub514\uc5b4
languages.rm=\ub808\ud1a0\ub85c\ub9cc\uc5b4
languages.mdf=\ubaa8\ud06c\uc0e4\uc5b4
languages.tiv=\ud2f0\ube44\uc5b4
languages.ady=\uc544\ub2e5\ud5e4\uc5b4
languages.zun=\uc8fc\ub2c8\uc5b4
-languages.kpe=\ucf54\ud3a0\ub808
+languages.kpe=\ud06c\ud3a0\ub808\uc5b4
languages.qu=\ucf00\ucd94\uc544\uc5b4
languages.tig=\ud2f0\uadf8\ub808\uc5b4
languages.son=\uc1a1\uac00\uc774\uc871\uc5b4
-languages.cpp=\ud06c\ub808\uc624\ub9ac\uc2a4\uc640 \ud53c\uae34\uc2a4\uc5b4, \ud3ec\ub974\ud22c\uac08\uc5b4-\uae30\ubc18 (\uae30\ud0c0)
+languages.cpp=\ud06c\ub9ac\uc62c\uc5b4 \ubc0f \ud53c\uc9c4\uc5b4 (\ud3ec\ub974\ud22c\uac08\uc5b4\ub97c \uae30\ubc18\uc73c\ub85c \ud55c \uae30\ud0c0)
+languages.rup=\uc544\ub85c\ub9c8\ub2c8\uc544\uc5b4
languages.sog=\uc18c\uadf8\ub514\uc5d4\uc5b4
languages.ada=\uc544\ub2f9\uba54\uc5b4
-languages.cpf=\ud06c\ub808\uc624\ub9ac\uc2a4\uc640 \ud53c\uae34\uc2a4\uc5b4, \ud504\ub791\uc2a4\uc5b4-\uae30\ubc18 (\uae30\ud0c0)
-languages.hit=\ud558\ud0c0\uc774\ud2b8\uc5b4
languages.kos=\ucf54\uc2a4\ub77c\uc774\uc5d4\uc5b4
-languages.cpe=\ud06c\ub808\uc624\ub9ac\uc2a4\uc640 \ud53c\uae34\uc2a4\uc5b4, \uc601\uc5b4-\uae30\ubc18 (\uae30\ud0c0)
+languages.hit=\ud558\ud0c0\uc774\ud2b8\uc5b4
+languages.cpf=\ud06c\ub9ac\uc62c\uc5b4 \ubc0f \ud53c\uc9c4\uc5b4 (\ud504\ub791\uc2a4\uc5b4\ub97c \uae30\ubc18\uc73c\ub85c \ud55c \uae30\ud0c0)
+languages.cpe=\ud06c\ub9ac\uc62c\uc5b4 \ubc0f \ud53c\uc9c4\uc5b4 (\uc601\uc5b4\ub97c \uae30\ubc18\uc73c\ub85c \ud55c \uae30\ud0c0)
languages.him=\ud788\ub9c8\ucc28\ub9ac\uc5b4
-languages.got=\uace0\ud2b8\uc5b4
-languages.hil=\ud5e4\ub9ac\uac00\ub1ec\uc5b4
languages.kok=\ucf54\uce74\ub2c8\uc5b4
+languages.hil=\ud5e4\ub9ac\uac00\ub1ec\uc5b4
+languages.got=\uace0\ud2b8\uc5b4
languages.gor=\uace0\ub860\ud0c8\ub85c\uc5b4
languages.gon=\uace4\ub514\uc5b4
languages.din=\ub529\uce74\uc5b4
languages.nub=\ub204\ube44\uc548\uc5b4
-languages.pt=\ud3ec\ub974\ud22c\uce7c\uc5b4
-languages.ps=\ud30c\uc2dc\ud1a0\uc5b4 (\ud478\uc2dc\ud1a0)
+languages.pt=\ud3ec\ub974\ud22c\uac08\uc5b4
+languages.ps=\ud30c\uc288\ud1a0\uc5b4
languages.fur=\ud504\ub9ac\uc6b0\ub9ac\uc548\uc5b4
languages.phn=\ud398\ub2c8\ud0a4\uc544\uc5b4
-languages.goh=\ub3c5\uc77c\uc5b4, \uace0\ub300 \uc800\uae09 (ca.750-1050)
+languages.de_CH=\uace0\uc9c0 \ub3c5\uc77c\uc5b4 (\uc2a4\uc704\uc2a4)
+languages.goh=\uace0\ub300 \uace0\uc9c0 \ub3c5\uc77c\uc5b4
languages.snk=\uc18c\ub2cc\ucf00\uc5b4
languages.cop=\ucf65\ud2b8\uc5b4
languages.yap=\uc58d\ud398\uc138\uc5b4
@@ -664,27 +781,28 @@ languages.om=\uc624\ub85c\ubaa8\uc5b4 (\uc544\ud310)
languages.mai=\ub9c8\uc774\ud2f8\ub9ac
languages.oj=\uc624\uc9c0\ube0c\uc6e8\uc774\uc5b4
languages.mag=\ub9c8\uac00\ud788
-languages.mad=\ub9c8\ub450\ub808\uc138
+languages.mad=\ub9c8\ub450\ub77c\uc5b4
languages.sma=\ub0a8\ubd80 \uc0ac\ubbf8\uc5b4
-languages.oc=\uc625\uc2dc\ud2b8\uc5b4
+languages.oc=\uc624\ud06c\uc5b4
languages.nso=\uc18c\ud1a0\uc5b4, \ubd81\ubd80
languages.btk=\ubc14\ud0c0\ud06c\uc5b4
languages.myv=\uc5d8\uc988\uc57c\uc5b4
languages.dgr=\ub3c4\uadf8\ub9ac\ube0c\uc5b4
-languages.ny=\ub2c8\uc548\uc790\uc5b4; \uce58\uce04\uc5b4; \uce04\uc5b4
+languages.ny=\ub2c8\uc580\uc790\uc5b4
languages.myn=\ub9c8\uc57c\uc5b4
languages.nv=\ub098\ubc14\ud638\uc5b4
-languages.kmb=\ud0b4\ubd84\ub204\uc5b4
-languages.nr=\uc740\ub370\ubca8\ub808\uc5b4, \ub0a8\ubd80
-languages.gmh=\ub3c5\uc77c\uc5b4, \uc911\uc138 \uace0\uae09 (ca.1050-1500)
+languages.kmb=\ud0b4\ubd84\ub450\uc5b4
+languages.nr=\uc740\ub370\ubca8\ub808\uc5b4(\ub0a8\ubd80)
+languages.gmh=\uc911\uc138 \uace0\uc9c0 \ub3c5\uc77c\uc5b4
languages.no=\ub178\ub974\uc6e8\uc774\uc5b4
-languages.nn=\ub258\ub178\ub974\uc2a4\ud06c \ub178\ub974\uc6e8\uc774\uc5b4
+languages.nn=\ub178\ub974\uc6e8\uc774\uc5b4(\ub2c8\ub178\ub974\uc2a4\ud06c)
languages.nl=\ub124\ub35c\ub780\ub4dc\uc5b4
+languages.root=\uc5b4\uadfc
languages.ng=\ub290\ub3d9\uac00\uc5b4
languages.sla=\uc2ac\ub77c\ube0c\uc5b4 (\uae30\ud0c0)
languages.ne=\ub124\ud314\uc5b4
-languages.nd=\uc740\ub370\ubca8\ub808\uc5b4, \ubd81\ubd80
-languages.cmc=\uce74\ubbf9\uc5b4
+languages.nd=\uc740\ub370\ubca8\ub808\uc5b4(\ubd81\ubd80)
+languages.cmc=\ucc38\uc5b4\uad70
languages.tet=\ud14c\ud23c\uc5b4
languages.nb=\ubcf4\ud06c\ub9d0 \ub178\ub974\uc6e8\uc774\uc5b4
languages.na=\ub098\uc6b0\ub8e8\uc5b4
@@ -693,26 +811,30 @@ languages.tem=\ud300\ub2c8\uc5b4
languages.my=\ubc84\ub9c8\uc5b4
languages.lez=\ub808\uc988\uae30\uc548\uc5b4
languages.mt=\ubab0\ud0c0\uc5b4
-languages.peo=\ud398\ub974\uc2dc\uc548 \uace0\ub300\uc5b4 (ca.600-400 B.C.)
+languages.frs=\ub3d9\ubd80 \ud504\ub9ac\uc2ac\ub780\ub4dc\uc5b4
+languages.peo=\uace0\ub300 \ud398\ub974\uc2dc\uc544\uc5b4
languages.ms=\ub9d0\ub808\uc774\uc5b4
+languages.frr=\ubd81\ubd80 \ud504\ub9ac\uc2ac\ub780\ub4dc\uc5b4
languages.mr=\ub9c8\ub77c\ud2f0\uc5b4
-languages.fro=\ud504\ub791\uc2a4\uc5b4, \uace0\ub300 (842-ca.1400)
-languages.mo=\ubab0\ub2e4\ube44\uc544\uc5b4
-languages.mn=\ubabd\uace8\uc5b4
-languages.frm=\ud504\ub791\uc2a4\uc5b4, \uc911\uc138 (ca.1400-1600)
+languages.fro=\uace0\ub300 \ud504\ub791\uc2a4\uc5b4
+languages.mo=\ubab0\ub3c4\ubc14\uc5b4
+languages.mn=\ubabd\uace0\uc5b4
+languages.frm=\uc911\uc138 \ud504\ub791\uc2a4\uc5b4
languages.ml=\ub9d0\ub77c\uc584\ub78c\uc5b4
languages.jrb=\uc720\ub300-\uc544\ub77c\ube44\uc544\uc5b4
languages.mk=\ub9c8\ucf00\ub3c4\ub2c8\uc544\uc5b4
languages.mi=\ub9c8\uc624\ub9ac\uc5b4
languages.mh=\ub9c8\uc15c\uc81c\ub3c4\uc5b4
languages.mg=\ub9c8\ub2e4\uac00\uc2a4\uce74\ub974\uc5b4
+languages.nqo=\uc751\ucf54\uc5b4
languages.mwr=\ub9c8\ub974\uc640\ub9ac\uc5b4
-languages.bra=\ube0c\ub77c\uc5b4
-languages.lv=\ub77c\ud2b8\ube44\uc544\uc5b4
+languages.bra=\ube0c\ub77c\uc9c0\uc5b4
+languages.mwl=\ubbf8\ub780\ub370\uc5b4
languages.den=\uc2ac\ub77c\ube0c\uc5b4
+languages.lv=\ub77c\ud2b8\ube44\uc544\uc5b4
languages.lu=\ub8e8\ubc14-\uce74\ud0c4\uac00\uc5b4
-languages.lt=\ub9ac\ud22c\uc544\ub2c8\uc544\uc5b4
languages.del=\ub378\ub77c\uc6e8\uc5b4\uc5b4
+languages.lt=\ub9ac\ud22c\uc544\ub2c8\uc544\uc5b4
languages.lo=\ub77c\uc624\uc5b4
languages.ln=\ub9c1\uac08\ub77c\uc5b4
languages.li=\ub9bc\ubc84\uac70\uc5b4
@@ -726,7 +848,7 @@ languages.sit=\uc778\ub3c4\uc81c\uc5b8\uc5b4 (\uae30\ud0c0)
languages.ky=\ud0a4\ub974\uae30\uc2a4\uc5b4
languages.kw=\ucf58\uc6d4\uc5b4
languages.kv=\ucf54\ubbf8\uc5b4
-languages.ku=\ud06c\ub974\ub4dc\uc5b4
+languages.ku=\ucfe0\ub974\ub4dc\uc5b4
languages.sio=\uc218\uc871\uc5b4
languages.ks=\uce74\uc288\ubbf8\ub974\uc5b4
languages.kr=\uce78\ub204\ub9ac\uc5b4
@@ -734,7 +856,8 @@ languages.awa=\uc544\uc640\ud788\uc5b4
languages.ko=\ud55c\uad6d\uc5b4
languages.kn=\uce74\ub098\ub2e4\uc5b4
languages.km=\uce84\ubcf4\ub514\uc544\uc5b4
-languages.kl=\uadf8\ub9b0\ub79c\ub4dc\uc5b4
+languages.en_GB=\uc601\uc5b4 (\uc601\uad6d\uc2dd)
+languages.kl=\uadf8\ub9b0\ub780\ub4dc\uc5b4
languages.kk=\uce74\uc790\ud750\uc5b4
languages.rom=\uc9d1\uc2dc\uc5b4
languages.kj=\ucfe0\uc548\uc57c\ub9c8\uc5b4
@@ -754,8 +877,8 @@ languages.znd=\uc544\uc794\ub370\uc871\uc5b4
languages.shn=\uc0e8\uc5b4
languages.fon=\ud3f0\uc5b4
languages.xal=\uce7c\ubbf8\ud06c\uc5b4
-languages.aus=\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544\uc5b4
-languages.kho=\ucf54\ud0c4\uc2a4\uc5b4
+languages.aus=\uc624\uc2a4\ud2b8\ub808\uc77c\ub9ac\uc544\uc5b4\uc871
+languages.kho=\ud638\ud0c4\uc5b4
languages.ja=\uc77c\ubcf8\uc5b4
languages.khi=\ucf54\uc774\uc0b0\uc5b4 (\uae30\ud0c0)
languages.pau=\ud30c\ub77c\uc6b0\uc548\uc5b4
@@ -765,39 +888,40 @@ languages.iu=\uc774\ub205\ud2f0\ud22c\ud2b8\uc5b4
languages.pap=\ud30c\ud53c\uc544\uba3c\ud1a0\uc5b4
languages.it=\uc774\ud0c8\ub9ac\uc544\uc5b4
languages.sgn=\uc218\ud654
-languages.kha=\uce74\uc2dc\uc5b4
languages.is=\uc544\uc774\uc2ac\ub780\ub4dc\uc5b4
+languages.kha=\uce74\uc2dc\uc5b4
languages.chr=\uccb4\ub85c\ud0a4\uc5b4
languages.pam=\ud31c\ud321\uac00\uc5b4
-languages.pal=\ud314\ube4c\ub808\uc5b4
+languages.pal=\ud314\ub808\ube44\uc5b4
languages.chp=\uce58\ud398\uc6b0\uc580
-languages.cho=\ucd09\ud1a0\uc5b4
languages.io=\uc774\ub3c4\uc5b4
+languages.cho=\ucd09\ud1a0\uc5b4
languages.chn=\uce58\ub204\ud06c\uc5b4\uc640 \uc601\uc5b4 \ud504\ub791\uc2a4\uc5b4\uc758 \ud63c\uc131\uc5b4
languages.chm=\ub9c8\ub9ac\uc5b4
languages.tyv=\ud22c\ube44\ub2c8\uc548\uc5b4
languages.bnt=\ubc18\ud22c\uc5b4
languages.pag=\ud310\uac00\uc2dc\ub09c\uc5b4
-languages.chk=\uce04\ucf00\uc2a4\uc5b4
languages.ik=\uc774\ub204\ud53c\uc544\ud06c\uc5b4
+languages.chk=\ucd94\ud06c\uc5b4
+languages.ii=\uc4f0\ucd28 \uc774\uc5b4
languages.haw=\ud558\uc640\uc774\uc5b4
-languages.ii=\uc2dc\uce04\uc548 \uc774\uc5b4
languages.lam=\ub78c\ubc14\uc5b4
-languages.chg=\ucc28\uac00\ud0c0\uc774\uc5b4
languages.ig=\uc774\uadf8\ubcf4\uc5b4
+languages.chg=\ucc28\uac00\ud0c0\uc774\uc5b4
languages.sga=\uc544\uc77c\ub79c\ub4dc, \uace0\ub300 (900\ub144 \uae4c\uc9c0)
languages.paa=\ud30c\ud478\uc544\uc5b4 (\uae30\ud0c0)
-languages.ie=\uc778\ud130\ub9c1\uac8c\uc5b4
+languages.ie=\uc778\ud14c\ub974\ub9c1\uad6c\uc5d0
languages.id=\uc778\ub3c4\ub124\uc2dc\uc544\uc5b4
languages.lah=\ub77c\ud55c\ub2e4\uc5b4
-languages.chb=\uce58\ube0c\ucc28\uc5b4
languages.day=\ub2e4\uc57c\ud06c\uc5b4
-languages.ia=\uc778\ud130\ub9c1\uac70
+languages.chb=\uce58\ube0c\ucc28\uc5b4
+languages.ia=\uc778\ud14c\ub974\ub9c1\uad6c\uc544(\uad6d\uc81c\ubcf4\uc870\uc5b4\ud611\ud68c)
languages.lad=\ub77c\ub514\ub178\uc5b4
-languages.dar=\ub2e4\ub974\uadf8\uc640\uc5b4
+languages.hz=\ud5e4\ub808\ub85c\uc5b4
languages.hai=\ud558\uc774\ub2e4\uc5b4
+languages.dar=\ub2e4\ub974\uadf8\uc640\uc5b4
languages.hy=\uc544\ub974\uba54\ub2c8\uc544\uc5b4
-languages.ath=\uc544\ud0c0\ubc14\uc2a4\uce74\uc5b4
+languages.ath=\uc544\ud0c0\ud30c\uc2a4\uce74\uc5b4\uad70
languages.hu=\ud5dd\uac00\ub9ac\uc5b4
languages.ht=\uc544\uc774\ud2f0\uc5b4
languages.dak=\ub2e4\ucf54\ud0c0\uc5b4
@@ -807,20 +931,22 @@ languages.hi=\ud78c\ub514\uc5b4
languages.dyu=\ub4dc\uc728\ub77c\uc5b4
languages.he=\ud788\ube0c\ub9ac\uc5b4
languages.ast=\uc544\uc2a4\ud22c\ub9ac\uc544\uc5b4
-languages.ha=\ud558\uc6b0\uc790\uc5b4
+languages.kfo=\ucf54\ub85c\uc5b4
+languages.ha=\ud558\uc6b0\uc0ac\uc5b4
languages.wen=\uc18c\ub974\ube0c\uc5b4
languages.gv=\ub9f9\ud06c\uc2a4\uc5b4
languages.gu=\uad6c\uc790\ub77c\ud2b8\uc5b4
languages.sem=\uc148\uc5b4 (\uae30\ud0c0)
languages.sel=\uc140\ucfe0\ud504\uc5b4
languages.iro=\uc774\ub7ec\ucffc\uc774\uc5b4
-languages.gn=\uad6c\uc544\ub77c\ub2c8\uc5b4
+languages.gn=\uacfc\ub77c\ub2c8\uc5b4
languages.gl=\uac08\ub9ac\uc2dc\uc544\uc5b4
+languages.en_CA=\uce90\ub098\ub2e4 \uc601\uc5b4
languages.arw=\uc544\ub77c\uc640\ud06c\uc5b4
-languages.gd=\uc2a4\ucf54\uac24\ub9ad\uc5b4
-languages.art=\uae30\uacc4\uc5b4 (\uae30\ud0c0)
languages.gez=\uac8c\uc774\uc988\uc5b4
-languages.ira=\uc774\ub780\uc5b4
+languages.art=\uae30\uacc4\uc5b4 (\uae30\ud0c0)
+languages.gd=\uc2a4\ucf54\ud2c0\ub79c\ub4dc \uac8c\uc77c\uc5b4
+languages.ira=\uc774\ub780\uc5b4 [ira]
languages.ga=\uc544\uc77c\ub79c\ub4dc\uc5b4
languages.arp=\uc544\ub77c\ud30c\ud638\uc5b4
languages.arn=\uc544\ub77c\uc6b0\uce78\uc5b4
@@ -828,19 +954,23 @@ languages.fy=\ud504\ub9ac\uc9c0\uc544\uc5b4
languages.bla=\uc2dd\uc2dc\uce74\uc5b4
languages.gem=\ub3c5\uc77c\uc5b4 (\uae30\ud0c0)
languages.ypk=\uc57c\ud53d\uc5b4
-languages.fr=\ud504\ub791\uc2a4\uc5b4
languages.arc=\uc544\ub78c\uc5b4
-languages.fo=\ud398\ub85c\uc2a4\uc5b4
+languages.fr=\ud504\ub791\uc2a4\uc5b4
+languages.fo=\ud398\ub85c\uc5b4
languages.cel=\ucf08\ud2b8\uc5b4 (\uae30\ud0c0)
languages.fj=\ud53c\uc9c0\uc5b4
languages.fi=\ud540\ub780\ub4dc\uc5b4
languages.ff=\ud480\ub77c\uc5b4
languages.tvl=\ud22c\ubc1c\ub8e8\uc5b4
languages.ceb=\uc138\ubd80\uc544\ub178\uc5b4
-languages.fa=\uc774\ub780\uc5b4
+languages.fa=\ud398\ub974\uc2dc\uc544\uc5b4
+languages.en_AU=\uc601\uc5b4 (\ud638\uc8fc)
+languages.zh_Hans=\uc911\uad6d\uc5b4(\uac04\uccb4)
+languages.zh_Hant=\uc911\uad6d\uc5b4 (\ubc88\uccb4)
languages.eu=\ubc14\uc2a4\ud06c\uc5b4
languages.sco=\uc2a4\ucf54\ud2c0\ub79c\ub4dc\uc5b4
languages.et=\uc5d0\uc2a4\ud1a0\ub2c8\uc544\uc5b4
+languages.scn=\uc2dc\uce60\ub9ac\uc544\uc5b4
languages.es=\uc2a4\ud398\uc778\uc5b4
languages.eo=\uc5d0\uc2a4\ud398\ub780\ud1a0\uc5b4
languages.en=\uc601\uc5b4
@@ -850,19 +980,23 @@ languages.niu=\ub2c8\uc6e8\uc5b8\uc5b4
languages.tup=\ud22c\ud53c\uc5b4
languages.ee=\uc5d0\uc6e8\uc5b4
languages.tum=\ud23c\ubd80\uce74\uc5b4
+languages.nl_BE=\ud50c\ub77c\ub9dd\uc5b4
+languages.es_419=\uc911\ub0a8\ubbf8 \uc2a4\ud398\uc778\uc5b4
languages.mos=\ubaa8\uc2dc\uc5b4
-languages.dz=\ubd80\ud0c4\uc5b4
+languages.dz=\uc885\uce74\uc5b4
languages.nic=\ub2c8\uc81c\ub974 - \ucf54\ub974\ub3c4\ud30c\ub2c8\uc544\uc5b4 (\uae30\ud0c0)
-languages.dv=\ub514\ubca0\ud788\uc5b4
-languages.fiu=\ud53c\ub178\uc6b0\uadf8\ub9ac\uc544\uc5b4 (\uae30\ud0c0)
languages.lus=\ub8e8\uc0e4\uc774\uc5b4
+languages.fiu=\ud53c\ub178\uc6b0\uadf8\ub9ac\uc544\uc5b4 (\uae30\ud0c0)
+languages.dv=\ub514\ubca0\ud788\uc5b4
languages.nia=\ub2c8\uc544\uc2a4\uc5b4
languages.moh=\ubaa8\ud638\ud06c\uc5b4
languages.luo=\ub8e8\uc624\uc5b4
languages.lun=\ub8ec\ub2e4\uc5b4
languages.apa=\uc544\ud30c\uce58\uc5b4
+languages.fil=\ud544\ub9ac\ud540\uc5b4
languages.lui=\ub8e8\uc774\uc138\ub178\uc5b4
languages.hup=\ud6c4\ud30c\uc5b4
+languages.cch=cch
languages.bin=\ube44\ub2c8\uc5b4
languages.de=\ub3c5\uc77c\uc5b4
languages.lua=\ub8e8\ubc14-\ub8f0\ub8e8\uc544\uc5b4
@@ -871,16 +1005,16 @@ languages.was=\uc640\uc1fc\uc5b4
languages.und=\uacb0\uc815\ub418\uc9c0\uc54a\uc74c
languages.war=\uc640\ub77c\uc774\uc5b4
languages.da=\ub374\ub9c8\ud06c\uc5b4
-languages.dum=\ub124\ub35c\ub780\ub4dc, \uc911\uc138 (ca. 1050-1350)
+languages.dum=\uc911\uc138 \ub124\ub35c\ub780\ub4dc\uc5b4
languages.wal=\uc640\ub77c\ubaa8\uc5b4
languages.mno=\ub9c8\ub178\ubcf4\uc5b4
languages.wak=\uc640\uce74\uc0e8\uc5b4
languages.sat=\uc0b0\ud0c8\ub9ac\uc5b4
languages.cy=\uc6e8\uc77c\uc2a4\uc5b4
languages.sas=\uc0ac\uc0ac\ud06c\uc5b4
-languages.cv=\ucd94\ubc14\uc2dc\uc5b4
languages.kbd=\uce74\ubc14\ub974\ub514\uc5b4
-languages.cu=\uad50\ud68c\uc2ac\ub77c\ube0c\uc5b4
+languages.cv=\ucd94\ubc14\uc2dc\uc5b4
+languages.cu=\uad50\ud68c \uc2ac\ub77c\ube0c\uc5b4
languages.mni=\ub9c8\ub2c8\ud478\ub9ac\uc5b4
languages.cs=\uccb4\ucf54\uc5b4
languages.sam=\uc0ac\ub9c8\ub9ac\uc544 \uc544\ub78d\uc5b4
@@ -891,72 +1025,97 @@ languages.co=\ucf54\ub974\uc2dc\uce74\uc5b4
languages.sai=\ub0a8\uc544\uba54\ub9ac\uce74 \uc778\ub514\uc5b8\uc5b4 (\uae30\ud0c0)
languages.mnc=\ub9cc\uc8fc\uc5b4
languages.sah=\uc57c\ud050\ud2b8\uc5b4
-languages.gba=\uadf8\ubc14\uc57c\uc5b4
-languages.inh=\uc778\uadc0\uc2dc\uc5b4
languages.kaw=\uce74\uc704\uc5b4
+languages.inh=\uc778\uadc0\uc2dc\uc5b4
+languages.gba=\uadf8\ubc14\uc57c\uc5b4
languages.sad=\uc0b0\ub2e4\uc6e8\uc5b4
languages.ch=\ucc28\ubaa8\ub85c\uc5b4
-languages.bho=\ud638\uc988\ud478\ub9ac\uc5b4
languages.ine=\uc778\ub3c4\uc720\ub7fd\uc5b4 (\uae30\ud0c0)
+languages.bho=\ud638\uc988\ud478\ub9ac\uc5b4
languages.enm=\uc601\uc5b4, \uc911\uc138 (1100-1500)
-languages.inc=\uc778\ub3c4\uc5b4 (\uae30\ud0c0)
languages.kar=\uce74\ub80c\uc5b4
+languages.inc=\uc778\ub3c4\uc5b4 (\uae30\ud0c0)
+languages.ce=\uccb4\uccb8\uc5b4
languages.gay=\uac00\uc694\uc5b4
languages.ca=\uce74\ud0c8\ub85c\ub2c8\uc544\uc5b4
languages.umb=\uc724\ubc88\ub450\uc5b4
languages.syr=\uc2dc\ub9ac\uc544\uc5b4
languages.kam=\uce84\ubc14\uc5b4
+languages.anp=\uc559\uac00\uc5b4
languages.tsi=\ud2b8\uc2ec\uc2dc\uc548\uc5b4
-languages.ang=\uc774\uc804 \uc601\uc5b4 (ca.450-1100)
-languages.cau=\uce74\ud504\uce74\uc2a4\uc5b4 (\uae30\ud0c0)
+languages.ang=\uace0\ub300 \uc601\uc5b4
languages.kac=\uce74\uce5c\uc5b4
+languages.cau=\ucf54\uce74\uc11c\uc2a4\uc5b4 (\uae30\ud0c0)
languages.kab=\ucee4\ubc14\uc77c\uc5b4
-languages.bs=\ubcf4\uc2a4\ub2c8\uc544\uc5b4
languages.kaa=\uce74\ub77c\uce7c\ud30c\ud06c\uc5b4
-languages.br=\ube0c\ub974\ud0c0\ub274\uc5b4
+languages.bs=\ubcf4\uc2a4\ub2c8\uc544\uc5b4
languages.car=\uce74\ub9ac\ube0c\uc5b4
+languages.br=\ube0c\ub974\ud0c0\ub274\uc5b4
+languages.syc=syc
languages.bo=\ud2f0\ubca0\ud2b8\uc5b4
languages.bn=\ubcb5\uace8\uc5b4
languages.bm=\ubc24\ubc14\ub77c\uc5b4
languages.gaa=\uac00\uc5b4
+languages.cai=\uc911\uc559 \uc544\uba54\ub9ac\uce74 \uc778\ub514\uc5b8\uc5b4(\uae30\ud0c0)
languages.bi=\ube44\uc2ac\ub77c\ub9c8\uc5b4
-languages.cai=\uc911\uc559 \uc544\uba54\ub9ac\uce74 \uc778\ub514\uc548\uc5b4 (\uae30\ud0c0)
languages.bh=\ube44\ud558\ub974\uc5b4
languages.bg=\ubd88\uac00\ub9ac\uc544\uc5b4
languages.be=\ubca8\ub85c\ub8e8\uc2dc\uc5b4
+languages.pt_BR=\ud3ec\ub974\ud22c\uac08\uc5b4 (\ube0c\ub77c\uc9c8)
languages.cad=\uce74\ub3c4\uc5b4
languages.ba=\ubc14\uc288\ud0a4\ub974\uc5b4
languages.zu=\uc904\ub8e8\uc5b4
languages.zen=\uc81c\ub098\uac00\uc5b4
-languages.pro=\ud504\ub85c\ubca4\uce7c\uc5b4, \uace0\ub300 (1500\ub144 \uae4c\uc9c0)
-languages.hsb=\uc704 \uc18c\ub974\ube44\uc548\uc5b4
+languages.pro=\uace0\ub300 \ud504\ub85c\ubc29\uc2a4\uc5b4
+languages.hsb=\uace0\uc9c0 \uc18c\ub974\ube44\uc544\uc5b4
languages.az=\uc544\uc81c\ub974\ubc14\uc774\uc794\uc5b4
languages.ay=\uc544\uc774\ub9c8\ub77c\uc5b4
languages.av=\uc544\ubc14\ub9ad\uc5b4
-languages.as=\uc544\uc0d8\uc5b4
+languages.as=\uc544\uc0bc\uc5b4
+languages.dsb=\uc800\uc9c0 \uc18c\ub974\ube44\uc544\uc5b4
languages.ar=\uc544\ub78d\uc5b4
-languages.dsb=\uc800\uae09 \uc18c\ub974\ube44\uc548\uc5b4
-languages.elx=\uc5d8\ub78c\uc5b4
languages.ilo=\uc774\ub85c\ucf54\uc5b4
+languages.elx=\uc5d8\ub78c\uc5b4
languages.zh=\uc911\uad6d\uc5b4
languages.an=\uc544\ub77c\uace4\uc5b4
languages.pra=\ud504\ub77c\ud06c\ub9ac\ud2b8\uc5b4
languages.am=\uc554\ud558\ub77c\uc5b4
-languages.new=\ub124\uc640\ub9ac\uc5b4
+languages.new=\ub124\uc640\ub974\uc5b4
languages.ak=\uc544\uce78\uc5b4
languages.za=\uc8fc\uc559\uc5b4
+languages.en_US=\uc601\uc5b4 (\ubbf8\uad6d\uc2dd)
languages.af=\ub0a8\uc544\uacf5 \uacf5\uc6a9\uc5b4
+languages.ae=\uc544\ubca0\uc2a4\ud0c0\uc5b4
+languages.alt=\ub0a8\ubd80 \uc54c\ud0c0\uc774\uc5b4
languages.ab=\uc555\uce74\uc988\uc5b4
languages.aa=\uc544\ud30c\ub974\uc5b4
languages.yo=\uc694\ub8e8\ubc14\uc5b4
-languages.alg=\uc54c\ucf58\ud0a8\uc5b4
+languages.alg=\uc54c\uacf5\ud0a8\uc5b4\uc871
languages.ale=\uc54c\ub958\ud2b8\uc5b4
languages.mkh=\ubaac\ud06c\uba54\ub974\uc5b4 (\uae30\ud0c0)
languages.yi=\uc774\ub514\uc2dc\uc5b4
languages.dra=\ub4dc\ub77c\ube44\ub2e4\uc5b4 (\uae30\ud0c0)
languages.ber=\ubca0\ub974\ubca0\ub974\uc5b4
-languages.nds=\uc800\uae09 \ub3c5\uc77c\uc5b4; \uc800\uae09 \uc0c9\uc2a8\uc5b4
+languages.nds=\uc800\uc9c0 \ub3c5\uc77c\uc5b4
languages.bem=\ubcb0\ubc14\uc5b4
languages.bej=\ubca0\uc790\uc5b4
languages.tpi=\ud1a0\ud06c \ud53c\uc2e0\uc5b4
+variants.POSIX=\ucef4\ud4e8\ud130 (POSIX)
+variants.1996=\ub3c5\uc77c\uc5b4 \ucca0\uc790\ubc95 (1996\ub144)
+variants.NEDIS=\ub098\ud2f0\uc18c\ub124 \ubc29\uc5b8
+variants.1994=\ud45c\uc900 \ub808\uc9c0\uc544\uc5b4 \ucca0\uc790\ubc95
+variants.1901=\uc804\ud1b5 \ub3c5\uc77c\uc5b4 \ucca0\uc790\ubc95 (1901\ub144)
+variants.FONUPA=UPA \uc74c\uc131\uc5b4
variants.REVISED=\uac1c\uc815
+variants.NJIVA=\ub2c8\ubc14 \ubc29\uc5b8
+variants.FONIPA=IPA \uc74c\uc131\uae30\ud638
+variants.BISKE=\uc0b0\uc870\ub974\uc9c0\uc624/\ube4c\ub77c \ubc29\uc5b8
+variants.SCOUSE=\uc2a4\uce74\uc6b0\uc2a4\uc5b4
+variants.BAKU1926=\ud1b5\ud569 \ud22c\ub974\ud06c\uc5b4 \ub77c\ud2f4 \uc54c\ud30c\ubcb3
+variants.SAAHO=\uc0ac\ud638\uc5b4
+variants.ROZAJ=\ub808\uc9c0\uc544\uc5b4
+variants.AREVELA=\ub3d9\uc544\ub974\uba54\ub2c8\uc544\uc5b4
+variants.SCOTLAND=\uc2a4\ucf54\ud2c0\ub79c\ub4dc \ud45c\uc900 \uc601\uc5b4
+variants.VALENCIA=\ubc1c\ub80c\uc2dc\uc544\uc5b4
+variants.BOONT=\ubd84\ud2c0\ub9c1\uc5b4
+variants.1606NICT=\ud6c4\uae30 \uc911\uc138 \ud504\ub791\uc2a4\uc5b4
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kok.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kok.properties
index 6e3fe91..5c27daf 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kok.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kok.properties
@@ -5,26 +5,36 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
currenciesSymbol.INR=\u0930\u0941
-shortMonths=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940®\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u090f\u092a\u094d\u0930\u093f\u0932®\u092e\u0947®\u091c\u0942\u0928®\u091c\u0941\u0932\u0948®\u0913\u0917\u0938\u094d\u091f®\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930®\u0913\u0915\u094d\u091f\u094b\u092c\u0930®\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930®\u0921\u093f\u0938\u0947\u0902\u092c\u0930®®
-months=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940®\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u090f\u092a\u094d\u0930\u093f\u0932®\u092e\u0947®\u091c\u0942\u0928®\u091c\u0941\u0932\u0948®\u0913\u0917\u0938\u094d\u091f®\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930®\u0913\u0915\u094d\u091f\u094b\u092c\u0930®\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930®\u0921\u093f\u0938\u0947\u0902\u092c\u0930®®
-shortWeekdays=®\u0930\u0935\u093f®\u0938\u094b\u092e®\u092e\u0902\u0917\u0933®\u092c\u0941\u0927®\u0917\u0941\u0930\u0941®\u0936\u0941\u0915\u094d\u0930®\u0936\u0928\u093f®
-weekdays=®\u0906\u0926\u093f\u0924\u094d\u092f\u0935\u093e\u0930®\u0938\u094b\u092e\u0935\u093e\u0930®\u092e\u0902\u0917\u0933\u093e\u0930®\u092c\u0941\u0927\u0935\u093e\u0930®\u0917\u0941\u0930\u0941\u0935\u093e\u0930®\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930®\u0936\u0928\u093f\u0935\u093e\u0930®
-eras=\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u092a\u0942\u0930\u094d\u0935®\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u0936\u0916\u093e®
-ampms=\u092e.\u092a\u0942.®\u092e.\u0928\u0902.®
-zoneStrings=Asia/Calcutta®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®©
+shortMonths=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940\u00ae\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u090f\u092a\u094d\u0930\u093f\u0932\u00ae\u092e\u0947\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u0948\u00ae\u0913\u0917\u0938\u094d\u091f\u00ae\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930\u00ae\u0913\u0915\u094d\u091f\u094b\u092c\u0930\u00ae\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930\u00ae\u0921\u093f\u0938\u0947\u0902\u092c\u0930\u00ae\u00ae
+months=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940\u00ae\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u090f\u092a\u094d\u0930\u093f\u0932\u00ae\u092e\u0947\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u0948\u00ae\u0913\u0917\u0938\u094d\u091f\u00ae\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930\u00ae\u0913\u0915\u094d\u091f\u094b\u092c\u0930\u00ae\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930\u00ae\u0921\u093f\u0938\u0947\u0902\u092c\u0930\u00ae\u00ae
+shortWeekdays=\u00ae\u0930\u0935\u093f\u00ae\u0938\u094b\u092e\u00ae\u092e\u0902\u0917\u0933\u00ae\u092c\u0941\u0927\u00ae\u0917\u0941\u0930\u0941\u00ae\u0936\u0941\u0915\u094d\u0930\u00ae\u0936\u0928\u093f\u00ae
+weekdays=\u00ae\u0906\u0926\u093f\u0924\u094d\u092f\u0935\u093e\u0930\u00ae\u0938\u094b\u092e\u0935\u093e\u0930\u00ae\u092e\u0902\u0917\u0933\u093e\u0930\u00ae\u092c\u0941\u0927\u0935\u093e\u0930\u00ae\u0917\u0941\u0930\u0941\u0935\u093e\u0930\u00ae\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930\u00ae\u0936\u0928\u093f\u0935\u093e\u0930\u00ae
+eras=\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u092a\u0942\u0930\u094d\u0935\u00ae\u0915\u094d\u0930\u093f\u0938\u094d\u0924\u0936\u0916\u093e\u00ae
+ampms=\u092e.\u092a\u0942.\u00ae\u092e.\u0928\u0902.\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=India\u00ae\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f\u00ae\u00ae\u00ae\u00ae\u00a9
territories.IN=\u092d\u093e\u0930\u0924
languages.es=\u0938\u094d\u092a\u093e\u0928\u093f\u0937
languages.ku=\u0915\u0941\u0930\u094d\u0926\u093f\u0937
languages.eo=\u0907\u0938\u094d\u092a\u0930\u093e\u0928\u094d\u091f\u094b
-languages.en=\u0906\u0902\u0917\u094d\u0932
languages.ks=\u0915\u0936\u094d\u092e\u0940\u0930\u0940
+languages.en=\u0906\u0902\u0917\u094d\u0932
languages.el=\u0917\u094d\u0930\u0940\u0915\u094d
languages.qu=\u0915\u094d\u0935\u0947\u091a\u094d\u0935\u093e
languages.ko=\u0915\u094b\u0930\u093f\u092f\u0928\u094d
languages.kn=\u0915\u0928\u094d\u0928\u0921\u093e
-languages.km=\u0915\u0902\u092c\u094b\u0921\u093f\u092f\u0928
languages.kok=\u0915\u094b\u0902\u0915\u0923\u0940
+languages.km=\u0915\u0902\u092c\u094b\u0921\u093f\u092f\u0928
languages.kl=\u0917\u094d\u0930\u0940\u0928\u0932\u093e\u0928\u094d\u0921\u093f\u0915
languages.kk=\u0915\u091c\u093c\u0916\u094d
languages.wo=\u0909\u0932\u094b\u092b\u093c
@@ -43,8 +53,8 @@ languages.cy=\u0935\u0947\u0933\u094d\u0937\u094d
languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
languages.cs=\u091c\u093c\u0947\u0915\u094d
languages.iu=\u0907\u0928\u094d\u092f\u0941\u0915\u091f\u094d\u091f
-languages.co=\u0915\u094b\u0930\u094d\u0936\u093f\u092f\u0928
languages.it=\u0907\u091f\u093e\u0932\u093f\u092f\u0928
+languages.co=\u0915\u094b\u0930\u094d\u0936\u093f\u092f\u0928
languages.is=\u0906\u0908\u0938\u094d\u0932\u093e\u0928\u094d\u0921\u093f\u0915
languages.uz=\u0909\u091c\u093c\u092c\u0947\u0915
languages.or=\u0913\u0930\u093f\u092f\u093e
@@ -137,14 +147,14 @@ languages.fy=\u092b\u094d\u0930\u093f\u0936\u093f\u092f\u0928\u094d
languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924
languages.fr=\u092b\u094d\u0930\u0947\u0928\u094d\u091a
languages.lv=\u0932\u093e\u091f\u094d\u0935\u093f\u092f\u0928\u094d (\u0932\u0947\u091f\u094d\u091f\u093f\u0937\u094d)
-languages.fo=\u092b\u0947\u0930\u094b\u0938\u094d
languages.lt=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u0928\u094d
+languages.fo=\u092b\u0947\u0930\u094b\u0938\u094d
languages.rw=\u0915\u093f\u0928\u094d\u092f\u093e\u0930\u094d\u0935\u093e\u0928\u094d\u0921\u093e
languages.ru=\u0930\u0937\u094d\u092f\u0928\u094d
-languages.fj=\u092b\u093f\u091c\u0940
languages.lo=\u0932\u093e\u0913\u0924\u093f\u092f\u0928\u094d
-languages.fi=\u092b\u093f\u0928\u094d\u0928\u093f\u0937\u094d
+languages.fj=\u092b\u093f\u091c\u0940
languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
+languages.fi=\u092b\u093f\u0928\u094d\u0928\u093f\u0937\u094d
languages.ro=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u0928\u094d
languages.rn=\u0915\u093f\u0930\u0941\u0928\u094d\u0926\u0940
languages.rm=\u0930\u0939\u091f\u094b-\u0930\u094b\u092e\u093e\u0928\u094d\u0938\u094d
@@ -152,5 +162,5 @@ languages.fa=\u092a\u0930\u094d\u0937\u093f\u092f\u0928\u094d
languages.la=\u0932\u093e\u091f\u093f\u0928
languages.xh=\u091d\u093c\u094c\u0938\u093e
languages.eu=\u092c\u093e\u0938\u094d\u0915
-languages.et=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u0928\u094d
languages.ky=\u0915\u093f\u0930\u094d\u0917\u093f\u091c\u093c
+languages.et=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u0928\u094d
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties
new file mode 100644
index 0000000..3d46855
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties
@@ -0,0 +1,21 @@
+# LocaleInformation_kpe.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku.properties
new file mode 100644
index 0000000..ca95e13
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku.properties
@@ -0,0 +1,111 @@
+# LocaleInformation_ku.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+languages.es=\u0626\u06cc\u0633\u067e\u0627\u0646\u06cc
+languages.ku=\u0643\u0648\u0631\u062f\u06cc
+languages.eo=\u0626\u06ce\u0633\u067e\u06cc\u0631\u0627\u0646\u062a\u06c6
+languages.en=\u0626\u06cc\u0646\u06af\u0644\u06cc\u0632\u06cc
+languages.el=\u06cc\u06c6\u0646\u0627\u0646\u06cc
+languages.ko=\u0643\u06c6\u0631\u06cc
+languages.kn=\u0643\u0647\u200c\u0646\u0647\u200c\u062f\u0627\u06cc\u06cc
+languages.km=\u06a9\u0627\u0645\u0628\u06c6\u062c\u06cc (\u0632\u0648\u0628\u0627\u0646)
+languages.ka=\u06af\u06c6\u0631\u062c\u0633\u062a\u0627\u0646\u06cc
+languages.jv=\u062c\u0627\u06a4\u0627\u0646\u06cc
+languages.fil=\u062a\u0627\u06af\u0627\u0644\u06c6\u06af\u06cc
+languages.pt=\u067e\u06c6\u0631\u062a\u06c6\u06af\u0627\u0644\u06cc
+languages.ps=\u067e\u0647\u200c\u0634\u062a\u0648\u0648
+languages.de=\u0626\u0627\u06b5\u0645\u0627\u0646\u06cc
+languages.pl=\u067e\u06c6\u06b5\u06c6\u0646\u06cc\u0627\u06cc\u06cc (\u0644\u0647\u200c\u0647\u0633\u062a\u0627\u0646\u06cc)
+languages.da=\u062f\u0627\u0646\u0645\u0627\u0631\u0643\u06cc
+languages.tlh=\u0643\u0644\u06cc\u0646\u06af\u06c6\u0646
+languages.ja=\u0698\u0627\u067e\u06c6\u0646\u06cc
+languages.vi=\u06a4\u06cc\u0647\u200c\u062a\u0646\u0627\u0645\u06cc
+languages.cy=\u0648\u06ce\u0644\u0632\u06cc
+languages.pa=\u067e\u0647\u200c\u0646\u062c\u0627\u0628\u06cc
+languages.cs=\u0686\u0647\u200c\u0643\u06cc
+languages.it=\u0626\u06cc\u062a\u0627\u0644\u06cc
+languages.is=\u0626\u06cc\u0633\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.uz=\u0626\u06c6\u0632\u0628\u0647\u200c\u0643\u06cc
+languages.or=\u0626\u06c6\u0631\u06cc\u06cc\u0627
+languages.ur=\u0626\u06c6\u0631\u062f\u0648\u200c\u0648
+languages.ca=\u0643\u0627\u062a\u0627\u0644\u06c6\u0646\u06cc
+languages.ie=\u0626\u0647 \u0646\u062a\u0647 \u0631 \u0644\u064a\u0646\u06af (\u0632\u0648\u0628\u0627\u0646)
+languages.id=\u0626\u06ce\u0647\u200c\u0646\u062f\u0648\u0646\u06cc\u0632\u06cc
+languages.uk=\u0626\u06c6\u0643\u0631\u0627\u06cc\u0646\u06cc
+languages.ia=\u0626\u06cc\u0646\u062a\u0631\u0644\u06cc\u0646\u06af\u0648\u06cc
+languages.oc=\u0626\u06c6\u0633\u06cc\u062a\u0627\u0646\u06cc
+languages.ug=\u0626\u0648\u064a\u062e\u0648\u0648\u0631\u06cc
+languages.hy=\u0626\u0647 \u0631\u0645\u0647 \u0646\u06cc
+languages.bs=\u0628\u06c6\u0633\u0646\u06cc
+languages.br=\u0628\u0631\u06ce\u062a\u0648\u0646\u06cc
+languages.hu=\u0647\u0647\u200c\u0646\u06af\u0627\u0631\u06cc (\u0645\u0647\u200c\u062c\u0627\u0631\u06cc)
+languages.pt_PT=\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5\u06cc (\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5)
+languages.bn=\u0628\u0647\u200c\u0646\u06af\u0644\u0627\u062f\u06ce\u0634\u06cc
+languages.hr=\u0643\u0631\u0648\u0627\u062a\u06cc
+languages.tw=\u062a\u0648\u06cc
+languages.bh=\u0628\u06cc\u0647\u0627\u0631\u06cc
+languages.bg=\u0628\u06c6\u0644\u06af\u0627\u0631\u06cc
+languages.no=\u0646\u06c6\u0631\u0648\u06ce\u0698\u06cc
+languages.be=\u0628\u06ce\u0644\u0627\u0695\u0648\u0648\u0633\u06cc
+languages.hi=\u0647\u06cc\u0646\u062f\u06cc
+languages.tr=\u062a\u0648\u0631\u0643\u06cc
+languages.nl=\u0647\u06c6\u06b5\u0647\u200c\u0646\u062f\u06cc
+languages.zu=\u0632\u0648\u0644\u0648
+languages.he=\u0647\u06cc\u0628\u0631\u06ce
+languages.tk=\u062a\u0631\u0648\u0643\u0645\u0627\u0646\u06cc
+languages.ne=\u0646\u06ce\u067e\u0627\u0644\u06cc
+languages.az=\u0626\u0627\u0632\u0647\u200c\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u06cc
+languages.ti=\u062a\u06cc\u06af\u0631\u06cc\u0646\u06cc\u0627\u06cc
+languages.th=\u062a\u0627\u06cc\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.te=\u062a\u0647\u200c\u0644\u06c6\u06af\u0648\u06cc
+languages.as=\u0626\u0627 \u0633\u0633\u0627\u0645\u06cc (\u0632\u0648\u0628\u0627\u0646)
+languages.ar=\u0639\u0647\u200c\u0631\u0647\u200c\u0628\u06cc
+languages.ta=\u062a\u0627\u0645\u06cc\u0644\u06cc
+languages.gu=\u06af\u0648\u062c\u0627\u0631\u0627\u062a\u06cc
+languages.am=\u0626\u0647\u200c\u0645\u0647\u0647\u200c\u0631\u06cc\u0646\u062c\u06cc
+languages.mt=\u0645\u0627\u06b5\u062a\u0627\u06cc\u06cc
+languages.ms=\u0645\u0627\u0644\u06cc\u0632\u06cc
+languages.gn=\u06af\u0648\u0648\u0627\u0631\u0627\u0646\u06cc
+languages.sw=\u0633\u0648\u0627\u0647\u06cc\u0644\u06cc
+languages.mr=\u0645\u0627\u0631\u0627\u062a\u06cc
+languages.sv=\u0633\u0648\u06cc\u062f\u06cc
+languages.gl=\u06af\u0627\u0644\u06cc\u0633\u06cc
+languages.su=\u0633\u0648\u062f\u0627\u0646\u06cc
+languages.af=\u0626\u0647\u200c\u0641\u0631\u06cc\u0643\u0627\u06cc
+languages.st=\u0633\u06ce\u0633\u06c6\u062a\u06c6
+languages.mn=\u0645\u0647\u200c\u0646\u06af\u06c6\u0644\u06cc
+languages.sr=\u0633\u0647\u200c\u0631\u0628\u06cc
+languages.sq=\u0626\u0627\u06b5\u0628\u0627\u0646\u06cc
+languages.ml=\u0645\u0627\u0644\u0627\u06cc\u0644\u0627\u0645
+languages.mk=\u0645\u0627\u0643\u06ce\u062f\u06c6\u0646\u06cc
+languages.so=\u0633\u06c6\u0645\u0627\u0644\u06cc
+languages.gd=\u06af\u0647\u200c\u0644\u06cc\u0643\u06cc \u0633\u0643\u06c6\u062a\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.sl=\u0633\u0644\u06c6\u06a4\u06ce\u0646\u06cc
+languages.sk=\u0633\u0644\u06c6\u06a4\u0627\u0643\u06cc
+languages.ga=\u0626\u06cc\u0631\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.si=\u0633\u06cc\u0646\u0647\u0647\u200c\u0644\u06cc
+languages.sh=\u0633\u06ce\u0631\u0628\u06c6\u0643\u0631\u0648\u0627\u062a\u06cc
+languages.pt_BR=\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5\u06cc (\u0628\u0631\u0627\u0632\u06cc\u0644)
+languages.yi=\u06cc\u0648\u062f\u062f\u06cc
+languages.sd=\u0633\u064a\u0646\u062f\u06cc(\u0632\u0648\u0628\u0627\u0646)
+languages.fy=\u0641\u0631\u06cc\u0633\u06cc
+languages.sa=\u0633\u0627\u0646\u0633\u06a9\u0631\u064a\u062a
+languages.fr=\u0641\u0647\u200c\u0631\u0627\u0646\u0633\u06cc
+languages.lv=\u0644\u06ce\u062a\u06c6\u0646\u06cc
+languages.lt=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc
+languages.fo=\u0641\u0647\u200c\u0631\u0626\u06c6\u06cc\u06cc
+languages.ru=\u0695\u0648\u0648\u0633\u06cc
+languages.lo=\u0644\u0627\u0648\u200f\u0649
+languages.ln=\u0644\u064a\u0646\u06af\u0627\u0644\u0627
+languages.fi=\u0641\u06cc\u0646\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.ro=\u0695\u06c6\u0645\u0627\u0646\u06cc
+languages.fa=\u0641\u0627\u0631\u0633\u06cc
+languages.la=\u0644\u0627\u062a\u06cc\u0646\u06cc
+languages.xh=\u0633\u0633\u0648\u0633\u0627
+languages.eu=\u0628\u0627\u0633\u0643\u06cc
+languages.ky=\u0643\u0631\u06af\u06cc\u0632\u06cc
+languages.et=\u0626\u06cc\u0633\u062a\u06c6\u0646\u06cc
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties
new file mode 100644
index 0000000..a17e1ca
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties
@@ -0,0 +1,110 @@
+# LocaleInformation_ku_Arab.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+languages.es=\u0626\u06cc\u0633\u067e\u0627\u0646\u06cc
+languages.ku=\u0643\u0648\u0631\u062f\u06cc
+languages.eo=\u0626\u06ce\u0633\u067e\u06cc\u0631\u0627\u0646\u062a\u06c6
+languages.en=\u0626\u06cc\u0646\u06af\u0644\u06cc\u0632\u06cc
+languages.el=\u06cc\u06c6\u0646\u0627\u0646\u06cc
+languages.ko=\u0643\u06c6\u0631\u06cc
+languages.kn=\u0643\u0647\u200c\u0646\u0647\u200c\u062f\u0627\u06cc\u06cc
+languages.km=\u06a9\u0627\u0645\u0628\u06c6\u062c\u06cc (\u0632\u0648\u0628\u0627\u0646)
+languages.ka=\u06af\u06c6\u0631\u062c\u0633\u062a\u0627\u0646\u06cc
+languages.jv=\u062c\u0627\u06a4\u0627\u0646\u06cc
+languages.fil=\u062a\u0627\u06af\u0627\u0644\u06c6\u06af\u06cc
+languages.pt=\u067e\u06c6\u0631\u062a\u06c6\u06af\u0627\u0644\u06cc
+languages.ps=\u067e\u0647\u200c\u0634\u062a\u0648\u0648
+languages.de=\u0626\u0627\u06b5\u0645\u0627\u0646\u06cc
+languages.pl=\u067e\u06c6\u06b5\u06c6\u0646\u06cc\u0627\u06cc\u06cc (\u0644\u0647\u200c\u0647\u0633\u062a\u0627\u0646\u06cc)
+languages.da=\u062f\u0627\u0646\u0645\u0627\u0631\u0643\u06cc
+languages.tlh=\u0643\u0644\u06cc\u0646\u06af\u06c6\u0646
+languages.ja=\u0698\u0627\u067e\u06c6\u0646\u06cc
+languages.vi=\u06a4\u06cc\u0647\u200c\u062a\u0646\u0627\u0645\u06cc
+languages.cy=\u0648\u06ce\u0644\u0632\u06cc
+languages.pa=\u067e\u0647\u200c\u0646\u062c\u0627\u0628\u06cc
+languages.cs=\u0686\u0647\u200c\u0643\u06cc
+languages.it=\u0626\u06cc\u062a\u0627\u0644\u06cc
+languages.is=\u0626\u06cc\u0633\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.uz=\u0626\u06c6\u0632\u0628\u0647\u200c\u0643\u06cc
+languages.or=\u0626\u06c6\u0631\u06cc\u06cc\u0627
+languages.ur=\u0626\u06c6\u0631\u062f\u0648\u200c\u0648
+languages.ca=\u0643\u0627\u062a\u0627\u0644\u06c6\u0646\u06cc
+languages.ie=\u0626\u0647 \u0646\u062a\u0647 \u0631 \u0644\u064a\u0646\u06af (\u0632\u0648\u0628\u0627\u0646)
+languages.id=\u0626\u06ce\u0647\u200c\u0646\u062f\u0648\u0646\u06cc\u0632\u06cc
+languages.uk=\u0626\u06c6\u0643\u0631\u0627\u06cc\u0646\u06cc
+languages.ia=\u0626\u06cc\u0646\u062a\u0631\u0644\u06cc\u0646\u06af\u0648\u06cc
+languages.oc=\u0626\u06c6\u0633\u06cc\u062a\u0627\u0646\u06cc
+languages.ug=\u0626\u0648\u064a\u062e\u0648\u0648\u0631\u06cc
+languages.hy=\u0626\u0647 \u0631\u0645\u0647 \u0646\u06cc
+languages.bs=\u0628\u06c6\u0633\u0646\u06cc
+languages.br=\u0628\u0631\u06ce\u062a\u0648\u0646\u06cc
+languages.hu=\u0647\u0647\u200c\u0646\u06af\u0627\u0631\u06cc (\u0645\u0647\u200c\u062c\u0627\u0631\u06cc)
+languages.pt_PT=\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5\u06cc (\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5)
+languages.bn=\u0628\u0647\u200c\u0646\u06af\u0644\u0627\u062f\u06ce\u0634\u06cc
+languages.hr=\u0643\u0631\u0648\u0627\u062a\u06cc
+languages.tw=\u062a\u0648\u06cc
+languages.bh=\u0628\u06cc\u0647\u0627\u0631\u06cc
+languages.bg=\u0628\u06c6\u0644\u06af\u0627\u0631\u06cc
+languages.no=\u0646\u06c6\u0631\u0648\u06ce\u0698\u06cc
+languages.be=\u0628\u06ce\u0644\u0627\u0695\u0648\u0648\u0633\u06cc
+languages.hi=\u0647\u06cc\u0646\u062f\u06cc
+languages.tr=\u062a\u0648\u0631\u0643\u06cc
+languages.nl=\u0647\u06c6\u06b5\u0647\u200c\u0646\u062f\u06cc
+languages.zu=\u0632\u0648\u0644\u0648
+languages.he=\u0647\u06cc\u0628\u0631\u06ce
+languages.tk=\u062a\u0631\u0648\u0643\u0645\u0627\u0646\u06cc
+languages.ne=\u0646\u06ce\u067e\u0627\u0644\u06cc
+languages.az=\u0626\u0627\u0632\u0647\u200c\u0631\u0628\u0627\u06cc\u062c\u0627\u0646\u06cc
+languages.ti=\u062a\u06cc\u06af\u0631\u06cc\u0646\u06cc\u0627\u06cc
+languages.th=\u062a\u0627\u06cc\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.te=\u062a\u0647\u200c\u0644\u06c6\u06af\u0648\u06cc
+languages.as=\u0626\u0627 \u0633\u0633\u0627\u0645\u06cc (\u0632\u0648\u0628\u0627\u0646)
+languages.ar=\u0639\u0647\u200c\u0631\u0647\u200c\u0628\u06cc
+languages.ta=\u062a\u0627\u0645\u06cc\u0644\u06cc
+languages.gu=\u06af\u0648\u062c\u0627\u0631\u0627\u062a\u06cc
+languages.am=\u0626\u0647\u200c\u0645\u0647\u0647\u200c\u0631\u06cc\u0646\u062c\u06cc
+languages.mt=\u0645\u0627\u06b5\u062a\u0627\u06cc\u06cc
+languages.ms=\u0645\u0627\u0644\u06cc\u0632\u06cc
+languages.gn=\u06af\u0648\u0648\u0627\u0631\u0627\u0646\u06cc
+languages.sw=\u0633\u0648\u0627\u0647\u06cc\u0644\u06cc
+languages.mr=\u0645\u0627\u0631\u0627\u062a\u06cc
+languages.sv=\u0633\u0648\u06cc\u062f\u06cc
+languages.gl=\u06af\u0627\u0644\u06cc\u0633\u06cc
+languages.su=\u0633\u0648\u062f\u0627\u0646\u06cc
+languages.af=\u0626\u0647\u200c\u0641\u0631\u06cc\u0643\u0627\u06cc
+languages.st=\u0633\u06ce\u0633\u06c6\u062a\u06c6
+languages.mn=\u0645\u0647\u200c\u0646\u06af\u06c6\u0644\u06cc
+languages.sr=\u0633\u0647\u200c\u0631\u0628\u06cc
+languages.sq=\u0626\u0627\u06b5\u0628\u0627\u0646\u06cc
+languages.ml=\u0645\u0627\u0644\u0627\u06cc\u0644\u0627\u0645
+languages.mk=\u0645\u0627\u0643\u06ce\u062f\u06c6\u0646\u06cc
+languages.so=\u0633\u06c6\u0645\u0627\u0644\u06cc
+languages.gd=\u06af\u0647\u200c\u0644\u06cc\u0643\u06cc \u0633\u0643\u06c6\u062a\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.sl=\u0633\u0644\u06c6\u06a4\u06ce\u0646\u06cc
+languages.sk=\u0633\u0644\u06c6\u06a4\u0627\u0643\u06cc
+languages.ga=\u0626\u06cc\u0631\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.si=\u0633\u06cc\u0646\u0647\u0647\u200c\u0644\u06cc
+languages.pt_BR=\u067e\u0648\u0631\u062a\u0648\u06af\u0627\u06b5\u06cc (\u0628\u0631\u0627\u0632\u06cc\u0644)
+languages.yi=\u06cc\u0648\u062f\u062f\u06cc
+languages.sd=\u0633\u064a\u0646\u062f\u06cc(\u0632\u0648\u0628\u0627\u0646)
+languages.fy=\u0641\u0631\u06cc\u0633\u06cc
+languages.sa=\u0633\u0627\u0646\u0633\u06a9\u0631\u064a\u062a
+languages.fr=\u0641\u0647\u200c\u0631\u0627\u0646\u0633\u06cc
+languages.lv=\u0644\u06ce\u062a\u06c6\u0646\u06cc
+languages.lt=\u0644\u06cc\u062a\u0648\u0627\u0646\u06cc
+languages.fo=\u0641\u0647\u200c\u0631\u0626\u06c6\u06cc\u06cc
+languages.ru=\u0695\u0648\u0648\u0633\u06cc
+languages.lo=\u0644\u0627\u0648\u200f\u0649
+languages.ln=\u0644\u064a\u0646\u06af\u0627\u0644\u0627
+languages.fi=\u0641\u06cc\u0646\u0644\u0647\u200c\u0646\u062f\u06cc
+languages.ro=\u0695\u06c6\u0645\u0627\u0646\u06cc
+languages.fa=\u0641\u0627\u0631\u0633\u06cc
+languages.la=\u0644\u0627\u062a\u06cc\u0646\u06cc
+languages.xh=\u0633\u0633\u0648\u0633\u0627
+languages.eu=\u0628\u0627\u0633\u0643\u06cc
+languages.ky=\u0643\u0631\u06af\u06cc\u0632\u06cc
+languages.et=\u0626\u06cc\u0633\u062a\u06c6\u0646\u06cc
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties
new file mode 100644
index 0000000..f42b5c0
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties
@@ -0,0 +1,20 @@
+# LocaleInformation_ku_Latn.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=\u00e7il\u00aesib\u00aeadr\u00aen\u00ees\u00aegul\u00aehez\u00aet\u00eer\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+months=\u00e7ile\u00aesibat\u00aeadar\u00aen\u00eesan\u00aegulan\u00aehez\u00eeran\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00aey\u015f\u00aed\u015f\u00aes\u015f\u00ae\u00e7\u015f\u00aep\u015f\u00ae\u00een\u00ae\u015f\u00ae
+weekdays=\u00aeyek\u015fem\u00aedu\u015fem\u00ae\u015f\u00ea\u00ae\u00e7ar\u015fem\u00aep\u00eanc\u015fem\u00ae\u00een\u00ae\u015fem\u00ee\u00ae
+eras=BZ\u00aePZ\u00ae
+ampms=BN\u00aePN\u00ae
+shortDateFormat=yy/MM/dd
+territories.TR=Tirkiye
+territories.001=C\u00eehan
+languages.ar=ereb\u00ee
+languages.en=\u00eengil\u00eez\u00ee
+languages.ja=japon\u00ee
+languages.ku=kurd\u00ee
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kw.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kw.properties
index 5e2b3ff..078c0ad 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kw.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_kw.properties
@@ -5,11 +5,20 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-shortMonths=Gen®Whe®Mer®Ebr®Me®Efn®Gor®Est®Gwn®Hed®Du®Kev®®
-months=Mys Genver®Mys Whevrel®Mys Merth®Mys Ebrel®Mys Me®Mys Efan®Mys Gortheren®Mye Est®Mys Gwyngala®Mys Hedra®Mys Du®Mys Kevardhu®®
-shortWeekdays=®Sul®Lun®Mth®Mhr®Yow®Gwe®Sad®
-weekdays=®De Sul®De Lun®De Merth®De Merher®De Yow®De Gwener®De Sadorn®
-eras=RC®AD®
-ampms=a.m.®p.m.®
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+shortMonths=Gen\u00aeWhe\u00aeMer\u00aeEbr\u00aeMe\u00aeEfn\u00aeGor\u00aeEst\u00aeGwn\u00aeHed\u00aeDu\u00aeKev\u00ae\u00ae
+months=Mys Genver\u00aeMys Whevrel\u00aeMys Merth\u00aeMys Ebrel\u00aeMys Me\u00aeMys Efan\u00aeMys Gortheren\u00aeMye Est\u00aeMys Gwyngala\u00aeMys Hedra\u00aeMys Du\u00aeMys Kevardhu\u00ae\u00ae
+shortWeekdays=\u00aeSul\u00aeLun\u00aeMth\u00aeMhr\u00aeYow\u00aeGwe\u00aeSad\u00ae
+weekdays=\u00aeDe Sul\u00aeDe Lun\u00aeDe Merth\u00aeDe Merher\u00aeDe Yow\u00aeDe Gwener\u00aeDe Sadorn\u00ae
+eras=RC\u00aeAD\u00ae
+ampms=a.m.\u00aep.m.\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
territories.GB=Rywvaneth Unys
languages.kw=kernewek
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ky.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ky.properties
index ae32951..7b12dbc 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ky.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ky.properties
@@ -8,5 +8,98 @@
decimalSeparator=,
groupingSeparator=\u00a0
currenciesSymbol.KGS=\u0441\u043e\u043c
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
territories.KG=\u041a\u044b\u0440\u0433\u044b\u0437\u0441\u0442\u0430\u043d
+languages.es=\u0438\u0441\u043f\u0430\u043d\u0447\u0430
+languages.ku=\u043a\u0443\u0440\u0442
+languages.en=\u0430\u043d\u0433\u043b\u0438\u0441\u0447\u0435
+languages.el=\u0433\u0440\u0435\u043a\u0447\u0435
+languages.ko=\u043a\u043e\u0440\u0435\u0439\u0447\u0435
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430\u0447\u0430
+languages.ka=\u0433\u0440\u0443\u0437\u0438\u043d\u0447\u0435
+languages.jv=\u0436\u0430\u0432\u0430\u043d\u0438\u0437\u0447\u0435
+languages.fil=\u0442\u0430\u0433\u0430\u043b\u0447\u0430
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0447\u0430
+languages.ps=\u043f\u0430\u0448\u0442\u043e
+languages.de=\u043d\u0435\u043c\u0438\u0441\u0447\u0435
+languages.pl=\u043f\u043e\u043b\u044f\u043a\u0447\u0430
+languages.da=\u0434\u0430\u0442\u0447\u0430
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d\u0447\u043e
+languages.ja=\u044f\u043f\u043e\u043d\u0447\u043e
+languages.vi=\u0432\u044c\u0435\u0442\u043d\u0430\u043c\u0447\u0430
+languages.pa=\u043f\u0443\u043d\u0436\u0430\u0431\u0438\u0447\u0435
+languages.cs=\u0447\u0435\u0445 \u0442\u0438\u043b\u0438
+languages.it=\u0438\u0442\u0430\u043b\u0438\u044f\u043d\u0447\u0430
+languages.is=\u0438\u0441\u043b\u0430\u043d\u0434\u0447\u0430
+languages.uz=\u043e\u0437\u0431\u0435\u043a\u0447\u0435
+languages.or=\u043e\u0440\u0438\u044f
+languages.ur=\u0443\u0440\u0434\u0443\u0447\u0430
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u0430\u043d\u0447\u0430
+languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f\u0447\u0430
+languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d\u0447\u0435
+languages.bs=\u0431\u043e\u0441\u043d\u0438\u044f\u0447\u0430
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d
+languages.hu=\u0432\u0435\u043d\u0433\u0440\u0438\u044f\u0447\u0430
+languages.bn=\u0431\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448\u0447\u0435
+languages.hr=\u0445\u043e\u0440\u0432\u0430\u0442\u0447\u0430
+languages.tw=\u0442\u0432\u0438
+languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438\u0447\u0435
+languages.bg=\u0431\u043e\u043b\u0433\u0430\u0440\u0438\u044f\u0447\u0430
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0436\u0447\u0435
+languages.be=\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u0447\u0430
+languages.nn=\u043d\u043e\u0440\u0432\u0435\u0433\u0438\u044f\u0447\u0430
+languages.hi=\u0438\u043d\u0434\u0443\u0441\u0447\u0430
+languages.tr=\u0442\u0443\u0440\u043a\u0447\u043e
+languages.nl=\u0433\u043e\u043b\u043b\u0430\u043d\u0434\u0447\u0430
+languages.he=\u0435\u0432\u0440\u0435\u0439\u0447\u0435
+languages.tk=\u0442\u04af\u0440\u043a\u043c\u04e9\u043d
+languages.ne=\u043d\u0435\u043f\u0430\u043b\u0447\u0430
+languages.az=\u0430\u0437\u0435\u0440\u0431\u0430\u0439\u0436\u0430\u043d\u0447\u0430
+languages.th=\u0442\u0430\u0439\u0447\u0430
+languages.te=\u0442\u0435\u043b\u0443\u0433\u0443\u0447\u0430
+languages.zh=\u043a\u044b\u0442\u0430\u0439\u0447\u0430
+languages.ar=\u0430\u0440\u0430\u0431\u0447\u0430
+languages.ta=\u0442\u0430\u043c\u0438\u043b\u0447\u0435
+languages.gu=\u0433\u0443\u0436\u0430\u0440\u0430\u0442\u0447\u0430
+languages.mt=\u043c\u0430\u043b\u0442\u0438\u0437\u0447\u0435
+languages.ms=\u043c\u0430\u043b\u0430\u0439\u0447\u0430
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u0448
+languages.sw=\u0441\u0443\u0430\u0445\u0438\u043b\u0438\u0447\u0435
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0438\u0447\u0435
+languages.sv=\u0448\u0432\u0435\u0434\u0447\u0435
+languages.su=\u0441\u0443\u043d\u0434\u0430\u043d\u0447\u0430
+languages.af=\u0430\u0444\u0440\u0438\u043a\u0430\u0430\u043d\u0447\u0430
+languages.st=\u0441\u0435\u0441\u043e\u0442\u043e
+languages.sr=\u0441\u0435\u0440\u0431\u0447\u0435
+languages.sq=\u0430\u043b\u0431\u0430\u043d\u0447\u0430
+languages.ml=\u043c\u0430\u043b\u0430\u0439\u0430\u043b\u0430\u043c\u0447\u0430
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u044f\u0447\u0430
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0447\u0435
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u043a\u0447\u0430
+languages.ga=\u0438\u0440\u043b\u0430\u043d\u0434\u0447\u0430
+languages.si=\u0441\u0438\u043d\u0433\u0430\u043b\u0430\u0447\u0430
+languages.sh=\u0441\u0435\u0440\u0431-\u0445\u043e\u0440\u0432\u0430\u0442
+languages.yi=\u0435\u0432\u0440\u0435\u0439
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0447\u0430
+languages.lv=\u043b\u0430\u0442\u0432\u0438\u044f\u0447\u0430
+languages.lt=\u043b\u0438\u0442\u0432\u0430\u0447\u0430
+languages.ru=\u043e\u0440\u0443\u0441\u0447\u0430
+languages.fi=\u0444\u0438\u043d\u0447\u0435
+languages.ro=\u0440\u0443\u043c\u044b\u043d\u0438\u044f\u0447\u0430
+languages.fa=\u0444\u0430\u0440\u0437\u0447\u0430
+languages.la=\u043b\u0430\u0442\u044b\u043d\u0447\u0430
languages.ky=\u041a\u044b\u0440\u0433\u044b\u0437
+languages.et=\u044d\u0441\u0442\u043e\u043d\u0447\u043e
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ln.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ln.properties
new file mode 100644
index 0000000..e5713af
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ln.properties
@@ -0,0 +1,261 @@
+# LocaleInformation_ln.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=.
+currenciesDisplayName.FRF=Fal\u00e1nga ya Falansia
+currenciesDisplayName.BEF=fal\u00e1nga ya B\u025b\u0301ljika
+currenciesDisplayName.XPF=Fal\u00e1nga CFP
+currenciesDisplayName.CHF=Fal\u00e1nga ya Swisi
+currenciesDisplayName.CDF=fal\u00e1nga kongol\u00e9
+currenciesDisplayName.BIF=fal\u00e1nga ya Burundi
+currenciesDisplayName.XOF=Fal\u00e1nga CFA BCEAO
+currenciesDisplayName.XXX=mb\u0254\u0301ng\u0254 ey\u00e9b\u00e1m\u00ed t\u025b\u0301
+currenciesSymbol.CHF=Fr.
+currenciesSymbol.CDF=Fc
+currenciesSymbol.XXX=XXX
+shortMonths=s1\u00aes2\u00aes3\u00aes4\u00aes5\u00aes6\u00aes7\u00aes8\u00aes9\u00aes10\u00aes11\u00aes12\u00ae\u00ae
+months=s\u00e1nz\u00e1 ya yambo\u00aes\u00e1nz\u00e1 ya m\u00edbal\u00e9\u00aes\u00e1nz\u00e1 ya m\u00eds\u00e1to\u00aes\u00e1nz\u00e1 ya m\u00ednei\u00aes\u00e1nz\u00e1 ya m\u00edt\u00e1no\u00aes\u00e1nz\u00e1 ya mot\u00f3b\u00e1\u00aes\u00e1nz\u00e1 ya nsambo\u00aes\u00e1nz\u00e1 ya mwambe\u00aes\u00e1nz\u00e1 ya libwa\u00aes\u00e1nz\u00e1 ya z\u00f3mi\u00aes\u00e1nz\u00e1 ya z\u00f3mi na m\u0254\u030ck\u0254\u0301\u00aes\u00e1nz\u00e1 ya z\u00f3mi na m\u00edbal\u00e9\u00ae\u00ae
+shortWeekdays=\u00aeeye\u00aem1\u00aem2\u00aem3\u00aem4\u00aem5\u00aemps\u00ae
+weekdays=\u00aeeyenga\u00aemok\u0254l\u0254 ya libos\u00f3\u00aemok\u0254l\u0254 ya m\u00edbal\u00e9\u00aemok\u0254l\u0254 ya m\u00eds\u00e1to\u00aemok\u0254l\u0254 ya m\u00edn\u00e9i\u00aemok\u0254l\u0254 ya m\u00edt\u00e1no\u00aemp\u0254\u0301s\u0254\u00ae
+eras=libos\u00f3 ya Y.-K.\u00aensima ya Y.-K.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.GW=Gine-Bisau
+territories.AR=Argentina
+territories.MZ=Mozamb\u00edki
+territories.AO=Ang\u00f3la
+territories.GR=Gresi
+territories.ZA=Sidafr\u00edka
+territories.MV=Mad\u00edvi
+territories.SY=Sir\u00ed
+territories.GN=Gine
+territories.GM=Gambia
+territories.AG=Antigua mp\u00e9 Barbuda
+territories.AF=Afganist\u00e1ni
+territories.ST=S\u01ceo Tom\u00e9 na Principe
+territories.MO=Makau
+territories.MN=Mongol\u00ed
+territories.GI=Gibraltar
+territories.AD=Andora
+territories.GH=Ghana
+territories.ML=Mali
+territories.MK=Masedoni
+territories.SO=Somalia
+territories.SM=Santu Marino
+territories.GB=Ing\u025bl\u025b\u0301t\u025bl\u025b
+territories.SH=Santu Helena
+territories.SE=Sw\u00e9si
+territories.SD=Sudani
+territories.YE=Yem\u00e9ni
+territories.LY=Lib\u00edya
+territories.FR=Falansia
+territories.LV=Letoni
+territories.LU=Luksamburg
+territories.LT=Litwani
+territories.RW=Rwanda
+territories.LR=Liberia
+territories.RU=Rus\u00ed
+territories.018=Afr\u00edka ya S\u00eddi
+territories.FI=Finilanda
+territories.015=Afr\u00edka ya Nola
+territories.RO=Rumania
+territories.011=Afr\u00edka ya l\u00edmbe
+territories.LB=Liban
+territories.KZ=Kazakst\u00e1ni
+territories.ET=Etiopya
+territories.ES=Espania
+territories.KR=Kore ya Sidi
+territories.KP=Kore ya Nola
+territories.005=Amer\u00edka ya S\u00eddi
+territories.EH=Sahara ya l\u00edmbe
+territories.EG=Ejipti
+territories.002=Afr\u00edka
+territories.001=mokili mobimba
+territories.KI=KI
+territories.KG=Kirghizist\u00e1ni
+territories.KE=Kenya
+territories.DZ=Aljeria
+territories.JP=Yapan
+territories.PT=Pulutugal
+territories.JO=Zordan\u00ed
+territories.DJ=Djibuti
+territories.155=Er\u00f3pa ya l\u00edmbe
+territories.154=Er\u00f3pa ya Nola
+territories.DE=Al\u00e9mani
+territories.150=Er\u00f3pa
+territories.PL=Poloni
+territories.PK=Pakist\u00e1ni
+territories.VN=Vietnami
+territories.CZ=Republiki Sheki
+territories.VA=Vatik\u00e1ni
+territories.IT=Italia
+territories.IS=Islandi
+territories.CN=S\u00edna
+territories.CM=Kamerun
+territories.UZ=Uzbekist\u00e1ni
+territories.IN=\u0190nd\u025b
+territories.CH=Swisi
+territories.CG=Kong\u00f3-Brazzaville
+territories.CF=Santrafr\u00edka
+territories.142=Az\u00eda
+territories.US=Etaz\u00edni
+territories.CD=Kong\u00f3-Kins\u00e1s\u00e1
+territories.CA=Kanad\u00e1
+territories.IE=Irland\u00ed
+territories.ID=Indonezi\u00e1
+territories.BY=Bielorusia
+territories.BW=Botswana
+territories.BT=But\u00e1ni
+territories.BR=Bres\u00edli
+territories.HU=Ungri
+territories.HR=Kroasia
+territories.BI=Burundi
+territories.TW=Taiwan
+territories.BG=Bulgaria
+territories.ZZ=Es\u00edk\u00e1 ey\u00e9b\u00e1m\u00ed t\u025b\u0301
+territories.NP=Nep\u00e1li
+territories.BF=Burkina Faso
+territories.TT=Trinidad mp\u00e9 Tobago
+territories.NO=Norvej
+territories.BE=B\u025b\u0301ljika
+territories.BD=B\u00e1ngalad\u025b\u0301si
+territories.ZW=Zimbabwe
+territories.TR=Turk\u00ed
+territories.NL=Holanda
+territories.BA=Bosnia na Erzegovina
+territories.TN=Tunizia
+territories.TM=Turkmenist\u00e1ni
+territories.NG=Nijeria
+territories.TJ=Tazikist\u00e1ni
+territories.NE=Nij\u00e9
+territories.ZM=Zambia
+territories.AX=Albania
+territories.TG=Togo
+territories.NA=Namibia
+languages.es=lispanyola
+languages.mul=nk\u00f3t\u00e1 m\u00edngi
+languages.ku=likurdi
+languages.eo=lisipelanto
+languages.en=ling\u025bl\u025b\u0301sa
+languages.lun=lunda
+languages.el=ligreki
+languages.ko=likorea
+languages.kn=kanada
+languages.km=likambodia
+languages.kg=kik\u0254\u0301ng\u0254
+languages.lua=ciluba
+languages.ka=lizorzi
+languages.jv=lizava
+languages.fil=litagalog
+languages.pt=lipulutug\u025b\u0301si
+languages.ps=pashto
+languages.de=lialemani
+languages.pl=lipoloni
+languages.da=lidanemark
+languages.tlh=kilingoni
+languages.ja=liyapani
+languages.vi=livietnami
+languages.cy=liwelesi
+languages.pa=lipunzabi
+languages.cs=litsh\u025bki
+languages.it=litaliano
+languages.is=lislanda
+languages.uz=liusibeki
+languages.or=oriya
+languages.ur=liurdu
+languages.ca=katalani
+languages.ie=interlingue
+languages.id=lindonesi
+languages.uk=liukrenia
+languages.ia=interlingua
+languages.oc=liosita
+languages.ug=uighur
+languages.hy=liarmenya
+languages.bs=libosinia
+languages.br=breton
+languages.hu=liungaria
+languages.bn=bengali
+languages.hr=likroasia
+languages.bm=bambara
+languages.tw=twi
+languages.bh=libiyari
+languages.bg=kibulgaria
+languages.fr_CA=lifalans\u00e9 (CA)
+languages.no=linovezi
+languages.be=belarusi
+languages.nn=linovezi-nynorsk
+languages.hi=lihindi
+languages.tr=turk
+languages.nl=lifalam\u00e1
+languages.zu=zulu
+languages.he=liyuda
+languages.tk=turkmen
+languages.ne=linepali
+languages.az=liazerbayani
+languages.ti=tigirinya
+languages.th=thai
+languages.bai=nk\u00f3t\u00e1 ya Bamileke
+languages.te=litelegu
+languages.en_CA=ling\u025bl\u025b\u0301sa (CA)
+languages.as=liasame
+languages.ar=liarabu
+languages.ta=tamili
+languages.gu=liguzarati
+languages.am=liamariki
+languages.ak=akan
+languages.mt=limalta
+languages.ms=limalasi
+languages.gn=ligwarani
+languages.sw=kiswahili
+languages.mr=limarati
+languages.sv=lisw\u00e9dwa
+languages.gl=ligalicia
+languages.su=lisundan\u025b\u0301si
+languages.af=afrik\u00e1nsi
+languages.st=Sotho ya Sidi
+languages.mn=limongoli
+languages.sr=liserbia
+languages.sq=lialbania
+languages.ml=limalayalami
+languages.mk=limasedonia
+languages.so=lisomali
+languages.gd=ligaeliki
+languages.sl=lisoloveni
+languages.sk=lisolovaki
+languages.ga=lirlande
+languages.si=lisinal\u025b\u0301si
+languages.sh=liserbokroata
+languages.sg=sango
+languages.pt_BR=lipulutug\u025b\u0301si (Brazil)
+languages.yi=yiddish
+languages.sd=lisindi
+languages.fy=lifrisi
+languages.sa=indu-ya-kala
+languages.fr=lifalans\u00e9
+languages.afh=afr\u00edhili
+languages.lv=lilativa
+languages.lt=lituani
+languages.fo=lifarose
+languages.ru=lirusi
+languages.lo=lilao
+languages.ln=ling\u00e1la
+languages.fi=lifilandi
+languages.ro=lirumani
+languages.fa=lip\u025brsi
+languages.und=lok\u00f3t\u00e1 ey\u00e9b\u00e1m\u00ed t\u025b\u0301
+languages.la=kilatini
+languages.xh=xhosa
+languages.eu=libaske
+languages.ky=kirgizi
+languages.et=liestonia
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lo.properties
index cf94908..d3a4c97 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lo.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lo.properties
@@ -5,23 +5,24 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
currenciesDisplayName.LAK=\u0e81\u0eb5\u0e9a
currenciesSymbol.LAK=\u20ad
-shortMonths=\u0ea1.\u0e81.®\u0e81.\u0e9e.®\u0ea1\u0eb5.\u0e99.®\u0ea1.\u0eaa..®\u0e9e.\u0e9e.®\u0ea1\u0eb4.\u0e96.®\u0e81.\u0ea5.®\u0eaa.\u0eab.®\u0e81.\u0e8d.®\u0e95.\u0ea5.®\u0e9e.\u0e88.®\u0e97.\u0ea7.®®
-months=\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99®\u0e81\u0eb8\u0ea1\u0e9e\u0eb2®\u0ea1\u0eb5\u0e99\u0eb2®\u0ec0\u0ea1\u0eaa\u0eb2®\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2®\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2®\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94®\u0eaa\u0eb4\u0e87\u0eab\u0eb2®\u0e81\u0eb1\u0e99\u0e8d\u0eb2®\u0e95\u0eb8\u0ea5\u0eb2®\u0e9e\u0eb0\u0e88\u0eb4\u0e81®\u0e97\u0eb1\u0e99\u0ea7\u0eb2®®
-shortWeekdays=®\u0ead\u0eb2.®\u0e88.®\u0ead.®\u0e9e.®\u0e9e\u0eab.®\u0eaa\u0e81.®\u0eaa.®
-weekdays=®\u0ea7\u0eb1\u0e99\u0ead\u0eb2\u0e97\u0eb4\u0e94®\u0ea7\u0eb1\u0e99\u0e88\u0eb1\u0e99®\u0ea7\u0eb1\u0e99\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99®\u0ea7\u0eb1\u0e99\u0e9e\u0eb8\u0e94®\u0ea7\u0eb1\u0e99\u0e9e\u0eb0\u0eab\u0eb1\u0e94®\u0ea7\u0eb1\u0e99\u0eaa\u0eb8\u0e81®\u0ea7\u0eb1\u0e99\u0ec0\u0eaa\u0ebb\u0eb2®
-eras=\u0e9b\u0eb5\u0e81\u0ec8\u0ead\u0e99\u0e84\u0eb4\u0e94\u0eaa\u0eb0\u0e81\u0eb2\u0e99\u0e97\u0eb5\u0ec8®\u0e84.\u0eaa.®
-ampms=\u0e81\u0ec8\u0ead\u0e99\u0e97\u0ec8\u0ebd\u0e87®\u0eab\u0ea5\u0eb1\u0e87\u0e97\u0ec8\u0ebd\u0e87®
+shortMonths=\u0ea1.\u0e81.\u00ae\u0e81.\u0e9e.\u00ae\u0ea1\u0eb5.\u0e99.\u00ae\u0ea1.\u0eaa..\u00ae\u0e9e.\u0e9e.\u00ae\u0ea1\u0eb4.\u0e96.\u00ae\u0e81.\u0ea5.\u00ae\u0eaa.\u0eab.\u00ae\u0e81.\u0e8d.\u00ae\u0e95.\u0ea5.\u00ae\u0e9e.\u0e88.\u00ae\u0e97.\u0ea7.\u00ae\u00ae
+months=\u0ea1\u0eb1\u0e87\u0e81\u0ead\u0e99\u00ae\u0e81\u0eb8\u0ea1\u0e9e\u0eb2\u00ae\u0ea1\u0eb5\u0e99\u0eb2\u00ae\u0ec0\u0ea1\u0eaa\u0eb2\u00ae\u0e9e\u0eb6\u0e94\u0eaa\u0eb0\u0e9e\u0eb2\u00ae\u0ea1\u0eb4\u0e96\u0eb8\u0e99\u0eb2\u00ae\u0e81\u0ecd\u0ea5\u0eb0\u0e81\u0ebb\u0e94\u00ae\u0eaa\u0eb4\u0e87\u0eab\u0eb2\u00ae\u0e81\u0eb1\u0e99\u0e8d\u0eb2\u00ae\u0e95\u0eb8\u0ea5\u0eb2\u00ae\u0e9e\u0eb0\u0e88\u0eb4\u0e81\u00ae\u0e97\u0eb1\u0e99\u0ea7\u0eb2\u00ae\u00ae
+shortWeekdays=\u00ae\u0ead\u0eb2.\u00ae\u0e88.\u00ae\u0ead.\u00ae\u0e9e.\u00ae\u0e9e\u0eab.\u00ae\u0eaa\u0e81.\u00ae\u0eaa.\u00ae
+weekdays=\u00ae\u0ea7\u0eb1\u0e99\u0ead\u0eb2\u0e97\u0eb4\u0e94\u00ae\u0ea7\u0eb1\u0e99\u0e88\u0eb1\u0e99\u00ae\u0ea7\u0eb1\u0e99\u0ead\u0eb1\u0e87\u0e84\u0eb2\u0e99\u00ae\u0ea7\u0eb1\u0e99\u0e9e\u0eb8\u0e94\u00ae\u0ea7\u0eb1\u0e99\u0e9e\u0eb0\u0eab\u0eb1\u0e94\u00ae\u0ea7\u0eb1\u0e99\u0eaa\u0eb8\u0e81\u00ae\u0ea7\u0eb1\u0e99\u0ec0\u0eaa\u0ebb\u0eb2\u00ae
+eras=\u0e9b\u0eb5\u0e81\u0ec8\u0ead\u0e99\u0e84\u0eb4\u0e94\u0eaa\u0eb0\u0e81\u0eb2\u0e99\u0e97\u0eb5\u0ec8\u00ae\u0e84.\u0eaa.\u00ae
+ampms=\u0e81\u0ec8\u0ead\u0e99\u0e97\u0ec8\u0ebd\u0e87\u00ae\u0eab\u0ea5\u0eb1\u0e87\u0e97\u0ec8\u0ebd\u0e87\u00ae
shortDateFormat=d/M/yyyy
mediumDateFormat=d MMM yyyy
longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE'\u0e97\u0eb5 'd MMMM G yyyy
+fullDateFormat=EEEE\u0e97\u0eb5 d MMMM G yyyy
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
-longTimeFormat=H' \u0ec2\u0ea1\u0e87 'm'\u0e99\u0eb2\u0e97\u0eb5'
-fullTimeFormat=H'\u0ec2\u0ea1\u0e87 'm'\u0e99\u0eb2\u0e97\u0eb5 'ss' \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5
+longTimeFormat=H \u0ec2\u0ea1\u0e87 m\u0e99\u0eb2\u0e97\u0eb5ss z
+fullTimeFormat=H\u0ec2\u0ea1\u0e87 m\u0e99\u0eb2\u0e97\u0eb5 ss \u0ea7\u0eb4\u0e99\u0eb2\u0e97\u0eb5z
territories.TL=\u0e95\u0eb4\u0ea1\u0ecd\u0e95\u0eb2\u0ec0\u0ea7\u0eb1\u0e99\u0ead\u0ead\u0e81
territories.TK=\u0ec2\u0e97\u0e81\u0eb4\u0ec2\u0ea5
territories.TJ=\u0e97\u0eb2\u0e88\u0eb4\u0e81\u0eb4\u0eaa\u0eb0\u0e96\u0eb2\u0e99
@@ -84,13 +85,13 @@ territories.PL=\u0ec2\u0e9b\u0ec1\u0ea5\u0e99
territories.PK=\u0e9b\u0eb2\u0e81\u0eb4\u0eaa\u0e96\u0eb2\u0e99
territories.PH=\u0e9f\u0eb4\u0ea5\u0eb4\u0e9b\u0eb4\u0e99
territories.PG=\u0e9b\u0eb2\u0e9b\u0ebb\u0ea7\u0e99\u0eb4\u0ea7\u0e81\u0eb5\u0e99\u0eb5
-territories.CZ=\u0eaa\u0eb2\u0e97\u0eb2\u0ea5\u0eb0\u0e99\u0eb0\u0ea5\u0eb1\u0e94\u0ec0\u0e8a\u0eb1\u0e81
territories.PF=\u0ec0\u0e9f\u0eb1\u0e99\u0ea3\u0ec2\u0e9e\u0ea5\u0eb4\u0e99\u0eb5\u0ec0\u0e8a\u0e8d
-territories.CY=\u0ec4\u0e8a\u0e9b\u0eb1\u0ebc\u0e94
+territories.CZ=\u0eaa\u0eb2\u0e97\u0eb2\u0ea5\u0eb0\u0e99\u0eb0\u0ea5\u0eb1\u0e94\u0ec0\u0e8a\u0eb1\u0e81
territories.PE=\u0ec0\u0e9b\u0ea5\u0eb9
+territories.CY=\u0ec4\u0e8a\u0e9b\u0eb1\u0ebc\u0e94
territories.CV=\u0ec0\u0e84\u0e9a\u0ea7\u0ead\u0e94
-territories.CU=\u0e84\u0eb4\u0ea7\u0e9a\u0eb2
territories.PA=\u0e9b\u0eb2\u0e99\u0eb2\u0ea1\u0eb2
+territories.CU=\u0e84\u0eb4\u0ea7\u0e9a\u0eb2
territories.CS=\u0ec0\u0e8a\u0eb5\u0ec0\u0e9a\u0e8d
territories.CR=\u0e84\u0ead\u0eaa\u0e95\u0eb2\u0ea5\u0eb4\u0e81\u0eb2
territories.CO=\u0ec2\u0e84\u0ea5\u0eb3\u0ec0\u0e9a\u0e8d
@@ -109,53 +110,53 @@ territories.BW=\u0e9a\u0ead\u0eb1\u0e94\u0eaa\u0eb0\u0ea7\u0eb2\u0e99\u0eb2
territories.BT=\u0e9e\u0eb9\u0e96\u0eb2\u0e99
territories.BS=\u0e9a\u0eb2\u0eae\u0eb2\u0ea1\u0eb2\u0eaa
territories.BR=\u0e9a\u0ebc\u0eb2\u0e8a\u0eb4\u0ea7
-territories.BO=\u0ec2\u0e9a\u0ea5\u0eb4\u0ec0\u0ea7\u0e8d
territories.NZ=\u0e99\u0eb4\u0ea7\u0e8a\u0eb5\u0ec1\u0ea5\u0e99
+territories.BO=\u0ec2\u0e9a\u0ea5\u0eb4\u0ec0\u0ea7\u0e8d
territories.BN=\u0e9a\u0eb9\u0eae\u0ec4\u0e99
territories.BM=\u0ec0\u0e9a\u0eb5\u0ea1\u0eb4\u0ea7\u0e94\u0eb2
-territories.BJ=\u0ec0\u0e9a\u0e99\u0eb4\u0e99
territories.NU=\u0e99\u0eb5\u0ea2\u0eb9
+territories.BJ=\u0ec0\u0e9a\u0e99\u0eb4\u0e99
territories.BI=\u0e9a\u0eb9\u0ea5\u0eb1\u0e99\u0e95\u0eb4
territories.BH=\u0e9a\u0eb2\u0ec0\u0ea5\u0e99
territories.BG=\u0e9a\u0eb1\u0e87\u0e81\u0eb2\u0ec0\u0ea5\u0e8d
territories.BF=\u0ec0\u0e9a\u0eb5\u0e81\u0eb4\u0e99\u0eb2\u0e9f\u0eb2\u0ec2\u0e8a
-territories.BE=\u0ec0\u0e9a\u0ea7\u0ea2\u0ebd\u0ea1
territories.NP=\u0ec0\u0e99\u0e9b\u0eb2\u0e99
-territories.BD=\u0e9a\u0eb1\u0e87\u0e81\u0eb0\u0ea5\u0eb2\u0ec0\u0e97\u0e94
+territories.BE=\u0ec0\u0e9a\u0ea7\u0ea2\u0ebd\u0ea1
territories.NO=\u0e99\u0ecd\u0ec0\u0ea7
+territories.BD=\u0e9a\u0eb1\u0e87\u0e81\u0eb0\u0ea5\u0eb2\u0ec0\u0e97\u0e94
territories.BB=\u0e9a\u0eb2\u0e9a\u0eb2\u0e84\u0eb1\u0ead\u0e94
territories.ZW=\u0e8a\u0eb4\u0ea1\u0e9a\u0eb1\u0e9a\u0ec0\u0ea7
-territories.BA=\u0e9a\u0eb1\u0ead\u0e94\u0eaa\u0ec0\u0e99\u0e8d \u0ec1\u0ea5\u0eb0 \u0ec0\u0eae\u0eb5\u0e94\u0ec2\u0e81\u0ea7\u0eb4\u0ec0\u0e99\u0e8d
territories.NL=\u0ec0\u0e99\u0ec0\u0e97\u0eb5\u0ec1\u0ea5\u0e99
+territories.BA=\u0e9a\u0eb1\u0ead\u0e94\u0eaa\u0ec0\u0e99\u0e8d \u0ec1\u0ea5\u0eb0 \u0ec0\u0eae\u0eb5\u0e94\u0ec2\u0e81\u0ea7\u0eb4\u0ec0\u0e99\u0e8d
territories.NI=\u0e99\u0eb4\u0e84\u0eb2\u0ea5\u0eb2\u0e81\u0ebb\u0ea7
territories.NG=\u0ec4\u0e99\u0e88\u0eb5\u0ec0\u0ea5\u0e8d
territories.AZ=\u0ead\u0eb2\u0ec0\u0e8a\u0eb5\u0ec4\u0e9a\u0e88\u0eb1\u0e99
territories.NE=\u0ec4\u0e99\u0ec0\u0e88\u0eb5
-territories.AW=\u0ead\u0eb2\u0ea5\u0eb9\u0e9a\u0eb2
territories.NC=\u0e99\u0eb4\u0ea7\u0e84\u0eb2\u0ea5\u0eb4\u0ec2\u0e84\u0ec0\u0e99\u0e8d
+territories.AW=\u0ead\u0eb2\u0ea5\u0eb9\u0e9a\u0eb2
territories.ZM=\u0ec1\u0e8a\u0ea1\u0ec0\u0e9a\u0e8d
-territories.NA=\u0e99\u0eb2\u0ea1\u0eb4\u0ec0\u0e9a\u0e8d
territories.AU=\u0ead\u0ebb\u0ead\u0e94\u0eaa\u0eb0\u0e95\u0eb2\u0ea5\u0eb5
+territories.NA=\u0e99\u0eb2\u0ea1\u0eb4\u0ec0\u0e9a\u0e8d
territories.AT=\u0ead\u0ebb\u0ead\u0e94\u0eaa\u0eb0\u0ec0\u0e95\u0ebc\u0e8d
territories.AR=\u0ead\u0eb2\u0ec0\u0e88\u0e99\u0e95\u0eb4\u0e99\u0eb2\u0ec8
-territories.AO=\u0ead\u0eb1\u0e99\u0ec2\u0e81\u0ea5\u0eb2
territories.MZ=\u0ec2\u0ea1\u0ec1\u0e8a\u0ea1\u0e9a\u0eb4\u0e81
-territories.AN=\u0ec0\u0e99\u0ec0\u0e97\u0eb5\u0ec1\u0ea5\u0e99\u0ec1\u0ead\u0e99\u0ec0\u0e97\u0eb4\u0e99
+territories.AO=\u0ead\u0eb1\u0e99\u0ec2\u0e81\u0ea5\u0eb2
territories.MY=\u0ea1\u0eb2\u0ec0\u0ea5\u0ec0\u0e8a\u0e8d
-territories.AM=\u0ead\u0eb2\u0ea1\u0eb4\u0ec0\u0e99\u0e8d
+territories.AN=\u0ec0\u0e99\u0ec0\u0e97\u0eb5\u0ec1\u0ea5\u0e99\u0ec1\u0ead\u0e99\u0ec0\u0e97\u0eb4\u0e99
territories.MX=\u0ec1\u0ea1\u0eb1\u0e81\u0e8a\u0eb4\u0ec2\u0e81
+territories.AM=\u0ead\u0eb2\u0ea1\u0eb4\u0ec0\u0e99\u0e8d
territories.AL=\u0ec1\u0ead\u0ea5\u0ec0\u0e9a\u0ec0\u0e99\u0e8d
territories.ZA=\u0ead\u0eb2\u0e9f\u0eb0\u0ea5\u0eb4\u0e81\u0eb2\u0ec3\u0e95\u0ec9
territories.MU=\u0ea1\u0ecd\u0ea3\u0eb4\u0e95\u0ebd\u0e94
-territories.AI=\u0ead\u0eb1\u0e99\u0e81\u0eb4\u0ea5\u0eb2
territories.MT=\u0ea1\u0eb1\u0e99\u0e95\u0eb2
+territories.AI=\u0ead\u0eb1\u0e99\u0e81\u0eb4\u0ea5\u0eb2
territories.MS=\u0ea1\u0ead\u0e99\u0ec0\u0e8a\u0eb5\u0ea5\u0eb2\u0e94
territories.MR=\u0ea1\u0ecd\u0ea5\u0eb4\u0e81\u0e97\u0eb2\u0ec0\u0e99\u0e8d
-territories.AF=\u0ead\u0eb1\u0e9f\u0e81\u0eb2\u0e99\u0eb4\u0e94\u0eaa\u0eb0\u0e96\u0eb2\u0e99
territories.MQ=\u0ea1\u0eb2\u0e95\u0eb4\u0e99\u0eb4\u0e81
+territories.AF=\u0ead\u0eb1\u0e9f\u0e81\u0eb2\u0e99\u0eb4\u0e94\u0eaa\u0eb0\u0e96\u0eb2\u0e99
territories.AE=\u0eaa\u0eb0\u0eab\u0eb0\u0ea5\u0eb1\u0e94\u0ead\u0eb2\u0eab\u0ea5\u0eb1\u0e9a\u0ec0\u0ead\u0ea1\u0eb4\u0ec0\u0ea5\u0e94
-territories.AD=\u0ead\u0eb1\u0e99\u0e94\u0ecd\u0ea5\u0eb2
territories.MO=\u0ea1\u0eb2\u0ec0\u0e81\u0ebb\u0ec9\u0eb2
+territories.AD=\u0ead\u0eb1\u0e99\u0e94\u0ecd\u0ea5\u0eb2
territories.MN=\u0ea1\u0ebb\u0e87\u0ec2\u0e81\u0ea5\u0eb5
territories.MM=\u0eaa\u0eb0\u0eab\u0eb0\u0e9e\u0eb2\u0e9a\u0e9e\u0eb0\u0ea1\u0ec9\u0eb2
territories.ML=\u0ea1\u0eb2\u0ea5\u0eb4
@@ -185,7 +186,7 @@ territories.KI=\u0e84\u0eb5\u0ea5\u0eb4\u0e9a\u0eb2\u0e94
territories.KH=\u0e81\u0eb3\u0e9b\u0eb9\u0ec0\u0e88\u0e8d
territories.KG=\u0ec0\u0e94\u0eb5\u0e81\u0eb4\u0e94\u0eaa\u0eb0\u0e96\u0eb2\u0e99
territories.KE=\u0ec0\u0e84\u0e99\u0ea2\u0ec8\u0eb2
-territories.JP=\u0e8d\u0eb5\u0ec8\u0e9b\u0ec8\u0eb8\u0e99
+territories.JP=\u0e8d\u0eb5\u0ec8\u0e9b\u0eb8\u0ec8\u0e99
territories.JO=\u0e88\u0ecd\u0ec1\u0e94\u0e99
territories.JM=\u0e88\u0eb2\u0ec4\u0ea1\u0e81\u0eb2
territories.VU=\u0ea7\u0eb2\u0e99\u0ebb\u0ea7\u0e95\u0eb9
@@ -216,145 +217,151 @@ territories.TW=\u0ec4\u0e95\u0ec9\u0eab\u0ea7\u0eb1\u0e99
territories.HK=\u0eae\u0ec8\u0ead\u0e87\u0e81\u0ebb\u0e87
territories.TT=\u0e97\u0eb4\u0e99\u0eb4\u0ec1\u0e94\u0e94
territories.TR=\u0e95\u0eb8\u0e99\u0e81\u0eb5
-territories.TO=\u0e97\u0ead\u0e87\u0e81\u0ec9\u0eb2
+territories.TO=\u0e95\u0ead\u0e87\u0e81\u0eb2
territories.TN=\u0e95\u0eb9\u0e99\u0eb4\u0ec0\u0e8a\u0e8d
territories.TM=\u0ec0\u0e95\u0ea3\u0eb5\u0e81\u0ec0\u0ea1\u0e99\u0eb4\u0eaa\u0eb0\u0e96\u0eb2\u0e99
-languages.es=\u0eaa\u0eb0\u0ec0\u0e9b\u0e99
-languages.ku=\u0ec0\u0e84\u0eb5\u0e94
-languages.eo=\u0ec0\u0ead\u0eaa\u0ec0\u0e9b\u0eb5\u0ea5\u0eb1\u0e99\u0ec2\u0e95
-languages.en=\u0ead\u0eb1\u0e87\u0e81\u0eb4\u0e94
+languages.la=\u0ea5\u0eb2\u0ec1\u0e95\u0eb1\u0e87
+languages.xh=\u0ec2\u0e8a\u0e8a\u0eb2
+languages.ky=\u0ec0\u0e81\u0e8d\u0e81\u0eb4\u0eaa
+languages.ku=\u0ec0\u0e84\u0eb5\u0e94\u0eb4\u0eaa
languages.ks=\u0e84\u0eb1\u0e94\u0e8a\u0eb0\u0ea1\u0eb5\u0ea5\u0eb5
-languages.el=\u0e81\u0eb5\u0e81
-languages.qu=\u0e84\u0eb4\u0ea7\u0e8a\u0ebb\u0ea7
-languages.ko=\u0ec0\u0e81\u0ebb\u0eb2\u0eab\u0ea5\u0eb5
-languages.kn=\u0e81\u0eb2\u0e99\u0eb2\u0e94\u0eb2
-languages.km=\u0e82\u0eb0\u0ec0\u0edd\u0e99
+languages.ko=\u0ec0\u0e81\u0ebb\u0eb2\u0eab\u0ebc\u0eb5
+languages.kn=\u0e81\u0eb1\u0e99\u0e99\u0eb2\u0e94\u0eb2
+languages.km=\u0e81\u0eb3\u0e9b\u0eb9\u0ec0\u0e88\u0e8d
languages.kl=\u0e81\u0ebc\u0eb5\u0e99\u0ec1\u0ea5\u0e99\u0e94\u0eb4\u0e94
languages.kk=\u0e84\u0eb2\u0e8a\u0eb1\u0e81
languages.wo=\u0ea7\u0eb9\u0e9a
-languages.ka=\u0e88\u0ecd\u0ec0\u0e88\u0e8d
-languages.dz=\u0e9e\u0eb9\u0e96\u0eb2\u0e99\u0eb5
-languages.jv=\u0e8a\u0eb0\u0ea7\u0eb2
-languages.pt=\u0ec2\u0e9b\u0e95\u0eb8\u0ec0\u0e81\u0e94
-languages.ps=\u0e9e\u0eb2\u0eaa\u0ec2\u0e95(\u0e9e\u0eb8\u0e94\u0ec2\u0e95)
-languages.de=\u0ec0\u0ea2\u0e8d\u0ea5\u0eb0\u0ea1\u0eb1\u0e99
-languages.pl=\u0ec2\u0e9b\u0ec1\u0ea5\u0e99
-languages.da=\u0ec0\u0e94\u0e99\u0edd\u0eb2\u0e81
+languages.ka=\u0e8a\u0ead\u0e81\u0e8a\u0eb5
+languages.jv=\u0e8a\u0ea7\u0eb2
languages.vo=\u0ec2\u0ea7\u0ea5\u0eb2\u0e9e\u0eb8\u0e81
languages.ja=\u0e8d\u0eb5\u0ec8\u0e9b\u0eb8\u0ec8\u0e99
-languages.vi=\u0ea7\u0ebd\u0e94\u0e99\u0eb2\u0ea1
-languages.cy=\u0ec0\u0ea7\u0ea7
-languages.pa=\u0e9b\u0eb1\u0e99\u0e88\u0eb2
-languages.cs=\u0ec0\u0e8a\u0eb1\u0e81
+languages.vi=\u0eab\u0ea7\u0ebd\u0e94\u0e99\u0eb2\u0ea1
languages.iu=\u0ec4\u0ead\u0e99\u0eb8\u0e81\u0e95\u0eb4\u0e95\u0eb1\u0e81
-languages.co=\u0e84\u0ecd\u0e8a\u0eb4\u0e81\u0ec9\u0eb2
-languages.it=\u0ead\u0eb4\u0e95\u0eb2\u0eaa\u0eb4
-languages.is=\u0ec4\u0ead\u0ec1\u0ea5\u0e99\u0e94\u0eb4\u0e94
-languages.uz=\u0ead\u0eb8\u0e94\u0eaa\u0eb0\u0ec0\u0e9a\u0e94
-languages.or=\u0ec2\u0ead\u0ea5\u0eb4\u0e8d\u0eb2
+languages.it=\u0ead\u0eb5\u0e95\u0eb2\u0ea5\u0eb5
+languages.is=\u0ead\u0eb4\u0eaa\u0ea5\u0eb1\u0e87
+languages.uz=\u0ead\u0eb8\u0e94\u0e8a\u0eb0\u0ec0\u0e9a\u0eb1\u0e81\u0e81\u0eb4\u0e94\u0eaa\u0eb0\u0e96\u0eb2\u0e99
languages.ik=\u0ec4\u0ead\u0e99\u0eb9\u0e9b\u0ebd\u0e81
-languages.ur=\u0ead\u0eb4\u0e99\u0e94\u0eb9
-languages.om=\u0ec2\u0ead\u0ec2\u0ea5\u0ec2\u0ea1(\u0ead\u0eb2\u0e9f\u0eb2\u0e99)
-languages.ca=\u0ec1\u0e84\u0e95\u0eb2\u0ec1\u0ea5\u0e99
+languages.ur=\u0ead\u0eb9\u0ea3\u0eb0\u0e94\u0eb9
languages.ie=\u0ead\u0eb4\u0e99\u0ec0\u0e95\u0eb5\u0ea5\u0eb4\u0e87
languages.id=\u0ead\u0eb4\u0e99\u0ec2\u0e94\u0ec0\u0e99\u0ec0\u0e8a\u0e8d
-languages.uk=\u0ea2\u0eb9\u0ec0\u0e84\u0ebc\u0e99
-languages.ia=\u0ead\u0eb4\u0e99\u0ec0\u0e95\u0eb5\u0ea5\u0eb4\u0e87\u0e81\u0ea7\u0eb2
-languages.oc=\u0ead\u0ead\u0eb1\u0e81\u0e8a\u0eb4\u0e97\u0eb1\u0e99
-languages.ug=\u0ead\u0eb8\u0e8d\u0e81\u0ebb\u0ea7
-languages.hy=\u0ead\u0eb2\u0ea1\u0eb4\u0ec0\u0e99\u0e8d
-languages.br=\u0e9a\u0eb5\u0e97\u0eb1\u0e99
-languages.hu=\u0eae\u0ebb\u0e87\u0e81\u0eb2\u0ea5\u0eb5
-languages.bo=\u0e97\u0eb4\u0ec0\u0e9a\u0e94
-languages.bn=\u0e9a\u0eb8\u0e99\u0e81\u0eb2\u0ea5\u0eb5
-languages.hr=\u0ec2\u0e84\u0ec0\u0ead\u0ec0\u0e8a\u0e8d
-languages.bi=\u0e9a\u0eb4\u0eaa\u0ea5\u0eb2\u0ea1\u0eb2
-languages.tw=\u0e97\u0eb0\u0ea7\u0eb5
-languages.bh=\u0e9a\u0eb4\u0eae\u0eb2\u0ea5\u0eb4
-languages.bg=\u0e9a\u0eb1\u0e87\u0e81\u0eb2\u0ec0\u0ea5\u0e8d
+languages.ia=\u0ead\u0eb4\u0e99\u0ec0\u0e95\u0eb5\u0ea5\u0eb4\u0e87\u0e81\u0eb2
+languages.uk=\u0ead\u0eb9\u0ec1\u0e81\u0ea3\u0e99
+languages.ug=\u0ead\u0eb8\u0e8d\u0ec0\u0e84\u0eb5
+languages.hy=\u0ead\u0eb2\u0e81\u0ec0\u0ea1\u0e99\u0eb5
+languages.hu=\u0eae\u0eb1\u0e87\u0e81\u0eb2\u0ea3\u0eb5
+languages.hr=\u0ec2\u0e81\u0ea3\u0ead\u0eb2\u0e8a\u0eb5
+languages.fil=\u0e95\u0eb2\u0e81\u0eb2\u0ea5\u0eca\u0ead\u0e81
+languages.tw=\u0e95\u0ea7\u0eb5
languages.tt=\u0e95\u0eb2\u0e94
-languages.no=\u0e99\u0ecd\u0ec0\u0ea7\u0ea7
-languages.be=\u0e9a\u0eb2\u0e8d\u0ec2\u0ea5\u0ea5\u0eb1\u0e94\u0ec0\u0e8a\u0e8d
+languages.hi=\u0eae\u0eb4\u0e99\u0e94\u0eb9
languages.ts=\u0e8a\u0ead\u0e87\u0e81\u0eb2
-languages.hi=\u0eae\u0eb4\u0e99\u0e94\u0eb4
-languages.tr=\u0e95\u0eb8\u0ea5\u0eb2\u0e81\u0eb5
-languages.nl=\u0ead\u0ecd\u0ea5\u0eb1\u0e99\u0e94\u0eb2
-languages.zu=\u0e8a\u0eb9\u0ea5\u0eb9
-languages.ba=\u0e9a\u0eb2\u0eaa\u0eaa\u0eb5
+languages.tr=\u0e95\u0ea7\u0e81\u0e81\u0eb5
+languages.he=\u0e8d\u0eb4\u0ea7
languages.to=\u0e97\u0ead\u0e87\u0e81\u0ec9\u0eb2
-languages.he=\u0ea2\u0eb4\u0ea7
languages.tn=\u0ec0\u0e8a\u0e95\u0eb0\u0eaa\u0eb0\u0ea7\u0eb2\u0e99\u0eb2
languages.tl=\u0e95\u0eb2\u0e81\u0eb2\u0ea5\u0eb1\u0ead\u0e81
-languages.tk=\u0ec0\u0e95\u0eb5\u0e81\u0ec0\u0ea1\u0e99
languages.ha=\u0ec2\u0ead\u0e8a\u0eb2
-languages.ne=\u0ec0\u0e99\u0e9b\u0eb2\u0e99
-languages.az=\u0ead\u0eb2\u0ec0\u0e8a\u0eb5\u0ec4\u0e9a\u0e88\u0eb2\u0e99\u0eb5
-languages.ti=\u0e97\u0eb4\u0e81\u0eb4\u0e99\u0ea2\u0eb2
-languages.ay=\u0ec4\u0ead\u0ea1\u0eb2\u0ea5\u0eb2
+languages.tk=\u0e95\u0ea7\u0ebd\u0e81\u0ec0\u0ea1\u0e99
+languages.ti=\u0e95\u0eb5\u0e81\u0ea3\u0eb4\u0e99\u0ea2\u0eb2
languages.th=\u0ec4\u0e97
languages.tg=\u0e97\u0eb2\u0e88\u0eb4\u0e94
+languages.te=\u0ec0\u0e95\u0ea5\u0eb9\u0e81\u0eb9
+languages.ta=\u0e97\u0eb0\u0ea1\u0eb4\u0e99
+languages.gu=\u0e81\u0eb9\u0e8a\u0eb2\u0ea3\u0eb2\u0e95\u0eb5
+languages.gn=\u0e81\u0ebb\u0ea7\u0ea3\u0eb2\u0e99\u0eb5
+languages.sw=\u0e8a\u0ea7\u0eb2\u0eae\u0eb5\u0ea5\u0eb5
+languages.gl=\u0e81\u0eb2\u0ea5\u0eb4\u0e94
+languages.sv=\u0e8a\u0eb9\u0ec1\u0ead\u0eb1\u0e94
+languages.su=\u0e8a\u0eb1\u0e99\u0e94\u0eb2\u0e99
+languages.st=\u0ec0\u0e8a\u0ec2\u0e8a\u0ec2\u0e97
+languages.ss=\u0e8a\u0eb4\u0eaa\u0ea7\u0eb2\u0e95\u0eb4
+languages.sr=\u0ec1\u0e8a\u0e81\u0e9a\u0eb5
+languages.sq=\u0ead\u0eb2\u0e99\u0e9a\u0eb2\u0e99\u0eb5
+languages.so=\u0ec2\u0e8a\u0ea1\u0eb2\u0ea5\u0eb5
+languages.gd=\u0eaa\u0eb0\u0e81\u0eb1\u0ead\u0e94 \u0ec1\u0e81\u0ea5\u0eb4\u0e81
+languages.sn=\u0ec2\u0e8a\u0e99\u0eb2
+languages.sm=\u0e8a\u0eb2\u0ea1\u0ebb\u0ea7
+languages.sl=\u0eaa\u0eb0\u0ec2\u0ea5\u0ea7\u0eb2\u0e99\u0eb5
+languages.ga=\u0ec4\u0ead\u0ec1\u0ea5\u0e99
+languages.sk=\u0eaa\u0eb0\u0ec2\u0ea5\u0ea7\u0eb1\u0e81\u0e81\u0eb5
+languages.si=\u0eaa\u0eb4\u0e87\u0eab\u0eb2\u0e99
+languages.sh=\u0ec1\u0e8a\u0eb1\u0e81\u0ec2\u0e9a-\u0ec2\u0e81\u0ea3\u0ec1\u0ead\u0eb1\u0e94
+languages.sg=\u0eaa\u0eb1\u0e99\u0ec2\u0e84
+languages.fy=\u0e9f\u0ea3\u0eb5\u0e8a\u0ebd\u0e99
+languages.sd=\u0eaa\u0eb4\u0e99\u0e97\u0eb4
+languages.sa=\u0eaa\u0eb1\u0e99\u0eaa\u0eb0\u0e81\u0eb4\u0e94
+languages.fr=\u0e9d\u0ea3\u0eb1\u0ec8\u0e87
+languages.fo=\u0e9f\u0eb2\u0ec2\u0ea3
+languages.rw=\u0e84\u0eb4\u0e99\u0e8d\u0eb2\u0ea7\u0eb1\u0e99\u0e94\u0eb2
+languages.ru=\u0ea5\u0eb1\u0e94\u0ec0\u0e8a\u0e8d
+languages.fj=\u0e9f\u0eb4\u0e88\u0eb4
+languages.fi=\u0ec1\u0e9f\u0e87\u0ea5\u0eb1\u0e87
+languages.ro=\u0ec2\u0ea3\u0ea1\u0eb2\u0e99\u0eb5
+languages.rn=\u0e84\u0eb4\u0ea5\u0eb1\u0e99\u0eaa\u0eb5
+languages.rm=\u0ec0\u0ea5\u0ec2\u0e95-\u0ec2\u0ea5\u0ec1\u0ea1\u0e99
+languages.fa=\u0ec0\u0e9b\u0eb5\u0ec0\u0e8a\u0e8d
+languages.pt_PT=\u0e9b\u0ead\u0e81\u0e95\u0eb8\u0e8d\u0e81\u0eb2\u0e99 (\u0e9b\u0ead\u0e81\u0e95\u0eb8\u0e8d\u0e81\u0eb2\u0e99)
+languages.eu=\u0e9a\u0eb1\u0eaa\u0ec0\u0e81\u0eb5
+languages.et=\u0ec0\u0ead\u0eaa\u0ec2\u0e95\u0e99\u0eb5
+languages.es=\u0ec1\u0ead\u0eaa\u0e9b\u0eb2\u0ec2\u0e8d\u0e99
+languages.eo=\u0ec0\u0ead\u0eaa\u0ec0\u0e9b\u0ea3\u0eb1\u0e87\u0ec2\u0e95
+languages.en=\u0ead\u0eb1\u0e87\u0e81\u0eb4\u0e94
+languages.el=\u0e81\u0ec0\u0ea3\u0eb1\u0e81
+languages.qu=\u0e84\u0eb4\u0ea7\u0e8a\u0ebb\u0ea7
+languages.dz=\u0e9e\u0eb9\u0e96\u0eb2\u0e99\u0eb5
+languages.pt=\u0e9b\u0ead\u0e81\u0e95\u0eb8\u0e8d\u0e81\u0eb2\u0e99
+languages.pt_BR=\u0e9b\u0ead\u0e81\u0e95\u0eb8\u0e8d\u0e81\u0eb2\u0e99 (\u0e9a\u0ea3\u0eb2\u0e8a\u0eb5\u0e99)
+languages.ps=\u0e9b\u0eb2\u0eaa\u0ec2\u0e95
+languages.de=\u0ec0\u0e8d\u0e8d\u0ea5\u0eb0\u0ea1\u0eb1\u0e99
+languages.pl=\u0ec2\u0e9b\u0ec2\u0ea5\u0e8d
+languages.da=\u0ec0\u0e94\u0eb1\u0e99\u0ea1\u0eb2\u0e81
+languages.cy=\u0ec1\u0ea7\u0ea7
+languages.pa=\u0e9b\u0eb1\u0e99\u0e88\u0eb2\u0e9a
+languages.cs=\u0ec0\u0e8a\u0eb1\u0e81
+languages.co=\u0e84\u0ecd\u0e8a\u0eb4\u0e81\u0ec9\u0eb2
+languages.or=\u0ec2\u0ead\u0ea3\u0eb5\u0ea2\u0eb2
+languages.om=\u0ec2\u0ead\u0ec2\u0ea5\u0ec2\u0ea1(\u0ead\u0eb2\u0e9f\u0eb2\u0e99)
+languages.ca=\u0e81\u0eb2\u0e95\u0eb2\u0ea5\u0eb1\u0e87
+languages.oc=\u0ead\u0ebb\u0e81\u0e8a\u0eb5\u0e95\u0eb2\u0e99
+languages.bs=\u0e9a\u0ead\u0eaa\u0e99\u0eb5
+languages.br=\u0e9a\u0ec0\u0ea3\u0eb5\u0e95\u0ebb\u0e87
+languages.bo=\u0e97\u0eb4\u0ec0\u0e9a\u0e94
+languages.bn=\u0ec0\u0e9a\u0eb1\u0e87\u0e81\u0eb2\u0e99
+languages.bi=\u0e9a\u0eb4\u0eaa\u0ea5\u0eb2\u0ea1\u0eb2
+languages.bh=\u0e9a\u0eb5\u0eae\u0eb2\u0ea3\u0eb5
+languages.bg=\u0e9a\u0eb8\u0e99\u0e81\u0eb2\u0ea3\u0eb5
+languages.be=\u0ec0\u0e9a\u0ea5\u0eb2\u0ea5\u0eb8\u0e94\u0e8a\u0eb5
+languages.no=\u0e99\u0ead\u0e81\u0ec1\u0ea7
+languages.nn=\u0e99\u0ead\u0e81\u0ec1\u0ea7 (\u0e99\u0eb5\u0e99\u0ead\u0e81)
+languages.nl=\u0ec2\u0eae\u0e99\u0ea5\u0eb1\u0e87
+languages.ba=\u0e9a\u0eb2\u0eaa\u0eaa\u0eb5
+languages.zu=\u0e8a\u0eb9\u0ea5\u0eb9
+languages.az=\u0ead\u0eb2\u0ec1\u0e8a\u0e81\u0e9a\u0eb2\u0e8d\u0e8a\u0eb2\u0e99
+languages.ne=\u0ec0\u0e99\u0e9b\u0eb2\u0e99
+languages.ay=\u0ec4\u0ead\u0ea1\u0eb2\u0ea5\u0eb2
languages.na=\u0e99\u0ecd\u0ea5\u0eb9
-languages.te=\u0e97\u0eb4\u0ea5\u0eb9\u0e81\u0eb9
+languages.as=\u0ead\u0eb1\u0eaa\u0eaa\u0eb3
+languages.ar=\u0ead\u0eb2\u0ea3\u0eb1\u0e9a
languages.zh=\u0e88\u0eb5\u0e99
-languages.as=\u0ead\u0eb1\u0e94\u0eaa\u0eb3\u0ea1\u0eb4\u0e94
-languages.ar=\u0ead\u0eb2\u0ea5\u0eb2\u0ec0\u0e9a\u0e8d
-languages.ta=\u0e97\u0eb0\u0ea1\u0eb4\u0e9a
-languages.gu=\u0e81\u0eb9\u0e88\u0eb2\u0ea5\u0eb2\u0e95\u0eb5
languages.my=\u0e9e\u0eb0\u0ea1\u0ec8\u0eb2
-languages.am=\u0ead\u0eb3\u0eae\u0eb2\u0ea5\u0eb4\u0e94
+languages.am=\u0ead\u0eb3\u0eab\u0eb2\u0ea3\u0eb4\u0e81
languages.za=\u0e88\u0ea7\u0e87
-languages.mt=\u0ea1\u0ead\u0e99\u0e95\u0eb2
-languages.ms=\u0ea1\u0eb2\u0ea5\u0eb2\u0ea2\u0eb9
-languages.gn=\u0e81\u0ebb\u0ea7\u0ea5\u0eb2\u0e99\u0eb5
-languages.sw=\u0e8a\u0eb0\u0ea7\u0eb2\u0eae\u0eb4\u0ea5\u0eb5
-languages.mr=\u0ea1\u0eb2\u0ea5\u0eb2\u0e97\u0eb4
-languages.sv=\u0eaa\u0eb0\u0ea7\u0eb5\u0ec0\u0e94\u0e99
-languages.gl=\u0e81\u0eb0\u0eaa\u0eb4\u0ec0\u0e8a\u0e8d
-languages.su=\u0e8a\u0eb1\u0e99\u0e94\u0eb2\u0e99\u0eb4\u0eaa
-languages.af=\u0ead\u0eb2\u0e9f\u0eb4\u0ebc\u0e81\u0e81\u0eb2
-languages.st=\u0ec0\u0e8a\u0ec2\u0eaa\u0ec2\u0e97
+languages.mt=\u0ea1\u0eb2\u0e99\u0e95\u0eb2
+languages.ms=\u0ea1\u0eb2\u0ec0\u0ea5
+languages.mr=\u0ea1\u0eb2\u0ea3\u0eb2\u0e97\u0eb5
+languages.af=\u0ead\u0eb1\u0e9f\u0ea3\u0eb4\u0e81\u0eb2
languages.mo=\u0ec2\u0ea1\u0e84\u0eb2\u0ec0\u0ea7\u0e8d
-languages.ss=\u0e8a\u0eb4\u0eaa\u0ea7\u0eb2\u0e95\u0eb4
-languages.mn=\u0ea1\u0ead\u0e87\u0ec2\u0e81\u0ebc
-languages.sr=\u0ec0\u0e8a\u0eb5\u0ec0\u0e9a\u0e8d
-languages.sq=\u0ec1\u0ead\u0ea5\u0ec0\u0e9a\u0ec0\u0e99\u0e8d
-languages.ml=\u0ec1\u0ea1\u0ea5\u0eb0\u0ea2\u0eb2\u0ea5\u0eb3
+languages.mn=\u0ea1\u0ebb\u0e87\u0ec2\u0e81\u0e99
languages.ab=\u0ec1\u0ead\u0e9a\u0e84\u0eb2\u0ec0\u0e8a\u0e8d
-languages.mk=\u0ec1\u0ea1\u0eb1\u0e81\u0e8a\u0eb4\u0ec2\u0e94\u0ec0\u0e99\u0e8d
+languages.ml=\u0ea1\u0eb2\u0ea5\u0eb2\u0ea2\u0eb2\u0ea5\u0eb3
languages.aa=\u0ead\u0eb2\u0e9f\u0eb2
-languages.so=\u0ec2\u0e8a\u0ea1\u0eb2\u0eaa\u0eb4
-languages.sn=\u0ec2\u0e8a\u0e99\u0eb2
-languages.gd=\u0eaa\u0eb0\u0e81\u0eb1\u0ead\u0e94\u0ec0\u0e84\u0eb5\u0e94
+languages.mk=\u0ea1\u0eb2\u0ec0\u0e8a\u0ec2\u0e94\u0e99\u0eb5
languages.mi=\u0ec0\u0ea1\u0ebb\u0eb2\u0ea5\u0eb5
-languages.sm=\u0e8a\u0eb2\u0ea1\u0ebb\u0ea7
-languages.sl=\u0eaa\u0eb0\u0ec2\u0ea5\u0ea7\u0eb2\u0ec0\u0e99\u0e8d
languages.mg=\u0ea1\u0eb2\u0ea5\u0eb2\u0e81\u0eb2\u0e8a\u0eb4
-languages.sk=\u0eaa\u0eb0\u0ec2\u0ea5\u0ea7\u0eb1\u0e81
-languages.ga=\u0ec4\u0ead\u0ea5\u0eb4\u0e94
languages.yo=\u0ec2\u0ea2\u0ea5\u0eb9\u0e9a\u0eb2
-languages.si=\u0eaa\u0eb4\u0e87\u0eab\u0ea5\u0ecd
-languages.sh=\u0ec0\u0e8a\u0eb5\u0ec2\u0e9a-\u0ec2\u0e84\u0ec0\u0ead\u0e97\u0ebd\u0e99
-languages.sg=\u0eaa\u0eb1\u0e99\u0ec2\u0e84
-languages.yi=\u0ea2\u0eb5\u0e84\u0eb4\u0e94
-languages.sd=\u0e8a\u0eb4\u0e99\u0e94\u0eb4
-languages.fy=\u0e9f\u0eb4\u0e99\u0ec1\u0ea5\u0e99
-languages.sa=\u0eaa\u0eb1\u0e99\u0eaa\u0eb0\u0e81\u0eb4\u0e94
-languages.fr=\u0e9d\u0eb1\u0ec8\u0ea5\u0e87\u0ec0\u0eaa\u0e94
-languages.lv=\u0ec1\u0ea5\u0e95\u0eb0\u0ec0\u0ea7\u0e8d(\u0ec0\u0ea5\u0e94\u0e97\u0eb0\u0ea7\u0eb4\u0e94)
-languages.fo=\u0e9f\u0eb2\u0ec2\u0ea5\u0e94
-languages.lt=\u0ea5\u0eb4\u0e97\u0ebb\u0ea7\u0ec0\u0e99\u0e8d
-languages.rw=\u0e84\u0eb4\u0e99\u0e8d\u0eb2\u0ea7\u0eb1\u0e99\u0e94\u0eb2
-languages.ru=\u0ea5\u0eb1\u0e94\u0ec0\u0e8a\u0e8d
-languages.fj=\u0e9f\u0eb4\u0e88\u0eb4
+languages.tlh=\u0e81\u0ea5\u0eb4\u0e87\u0e81\u0ead\u0e87
+languages.yi=\u0ea2\u0eb4\u0e94\u0e94\u0eb4\u0eaa
+languages.lv=\u0ea5\u0eb1\u0e94\u0ec0\u0ea7\u0e8d
+languages.lt=\u0ea5\u0eb5\u0e97\u0ebb\u0ea7\u0e99\u0eb5
languages.lo=\u0ea5\u0eb2\u0ea7
-languages.fi=\u0e9f\u0eb4\u0e99
languages.ln=\u0ea5\u0eb4\u0e87\u0e81\u0eb2\u0ea5\u0eb2
-languages.ro=\u0ec2\u0ea5\u0ea1\u0eb1\u0e99
-languages.rn=\u0e84\u0eb4\u0ea5\u0eb1\u0e99\u0eaa\u0eb5
-languages.rm=\u0ec0\u0ea5\u0ec2\u0e95-\u0ec2\u0ea5\u0ec1\u0ea1\u0e99
-languages.fa=\u0ec0\u0e9b\u0eb5\u0ec0\u0e8a\u0e8d
-languages.la=\u0ea5\u0eb2\u0e95\u0eb4\u0e99
-languages.xh=\u0ec2\u0e8a\u0eaa\u0eb2
-languages.eu=\u0ec1\u0e9a\u0eaa
-languages.et=\u0ec0\u0ead\u0eaa\u0ec2\u0e95\u0ec0\u0e99\u0e8d
-languages.ky=\u0ec0\u0e84\u0ea7\u0e81\u0eb4\u0e94
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lt.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lt.properties
index 5eea5f1..a8b1ba9 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lt.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lt.properties
@@ -5,34 +5,277 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+exponential=\u00d710^
+minusSign=\u2212
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.INR=Indijos rupija
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=Jemeno dinaras
+currenciesDisplayName.KES=Kenijos \u0161ilingas
+currenciesDisplayName.TWD=Naujasis Taivano doleris
+currenciesDisplayName.LKR=\u0160ri Lankos rupija
+currenciesDisplayName.BYB=Baltarusijos naujieji rubliai
+currenciesDisplayName.TJS=Tad\u017eikistano somonis
+currenciesDisplayName.RWF=Ruandos frankas
+currenciesDisplayName.ERN=Eritr\u0117jos nakfa
+currenciesDisplayName.TJR=Tad\u017eikistano rublis
+currenciesDisplayName.SDP=Senasis Sudano svaras
+currenciesDisplayName.GRD=Graikijos drachma
+currenciesDisplayName.AFN=Afganiai
+currenciesDisplayName.IEP=Airijos svaras
+currenciesDisplayName.ARS=Argentinos pesai
+currenciesDisplayName.SDG=Sudano svaras
+currenciesDisplayName.ARP=Argentinos pesai (1983-1985)
+currenciesDisplayName.SDD=Senasis Sudano dinaras
+currenciesDisplayName.GEL=Gruzijos laris
+currenciesDisplayName.AFA=Afganiai (1927-2002)
+currenciesDisplayName.CRC=Kosta Rikos kolonai
+currenciesDisplayName.FKP=Falklando sal\u0173 svaras
+currenciesDisplayName.EEK=Estijos krona
+currenciesDisplayName.MDL=Moldovos l\u0117ja
+currenciesDisplayName.HKD=Honkongo doleris
+currenciesDisplayName.IQD=Irako dinaras
+currenciesDisplayName.SCR=Sei\u0161eli\u0173 sal\u0173 rupija
+currenciesDisplayName.KPW=\u0160iaur\u0117s Kor\u0117jos vonas
+currenciesDisplayName.DKK=Danijos krona
+currenciesDisplayName.IDR=Indonezijos rupija
+currenciesDisplayName.SOS=Somalio \u0161ilingas
+currenciesDisplayName.LVR=Latvijos rublis
+currenciesDisplayName.AED=JAE dirhamas
+currenciesDisplayName.LVL=Latvijos latas
+currenciesDisplayName.BWP=Botsvanos pulos
+currenciesDisplayName.RUR=Rusijos rublis (1991-1998)
+currenciesDisplayName.NIO=Nikaragvos kardoba oras
+currenciesDisplayName.MOP=Macao pataka
+currenciesDisplayName.FJD=Fid\u017eio doleris
+currenciesDisplayName.ADP=Andoros pesetos
currenciesDisplayName.RUB=Rusijos rublis
-currenciesDisplayName.JPY=Jena
-currenciesDisplayName.BRL=Brazilijos realas
-currenciesDisplayName.CNY=\u017denminbi juanis
-currenciesDisplayName.USD=JAV doleris
-currenciesDisplayName.EUR=Euras
+currenciesDisplayName.CDF=Kongo frankai
+currenciesDisplayName.NIC=Nikaragvos kardoba
+currenciesDisplayName.DJF=D\u017eibu\u010dio frankas
+currenciesDisplayName.UZS=Uzbekistano sumas
+currenciesDisplayName.SBD=Saliamono sal\u0173 doleris
+currenciesDisplayName.ECV=Ekvadoro constante (UVC)
+currenciesDisplayName.LUL=Liuksemburgo finansinis frankas
+currenciesDisplayName.ECS=Ekvadoro sukr\u0117
+currenciesDisplayName.THB=Batas
+currenciesDisplayName.PHP=Filipin\u0173 pesas
+currenciesDisplayName.LUF=Liuksemburgo frankas
+currenciesDisplayName.RHD=Rodezijos doleris
+currenciesDisplayName.LUC=Liuksemburgo konvertuojamas frankas
+currenciesDisplayName.FIM=Suomijos mark\u0117
+currenciesDisplayName.TTD=Trinidado ir Tobago doleris
+currenciesDisplayName.SZL=Svazilendo lilangenis
+currenciesDisplayName.MNT=Mongolijos tugrikas
+currenciesDisplayName.UAK=Ukrainos karbovanecas
+currenciesDisplayName.SAR=Saudo Arabijos rialas
+currenciesDisplayName.UAH=Ukrainos grivina
+currenciesDisplayName.HUF=Vengrijos forintas
+currenciesDisplayName.QAR=Kataro rialas
+currenciesDisplayName.COP=Kolumbijos pesai
+currenciesDisplayName.LTT=Lietuvos talonas
+currenciesDisplayName.PTE=Portugalijos eskudas
+currenciesDisplayName.UYU=Urugvajaus pesas uruguayo
+currenciesDisplayName.GBP=Did\u017eiosios Britanijos svaras sterling\u0173
+currenciesDisplayName.ZRZ=Zairo zairas
+currenciesDisplayName.INR=Indijos rupija
+currenciesDisplayName.BIF=Burund\u017eio frankai
+currenciesDisplayName.XFU=Uic -frankas
+currenciesDisplayName.MZN=Mozambiko metikalis
currenciesDisplayName.LTL=Litas
-currenciesDisplayName.GBP=Svaras sterling\u0173
+currenciesDisplayName.AON=Angolos naujosios kvanzos
+currenciesDisplayName.UYP=Urugvajaus pesas (1975-1993)
+currenciesDisplayName.MZM=Senasis Mozambiko metikalis
+currenciesDisplayName.KZT=Kazachstano teng\u0117
+currenciesDisplayName.AOK=Angolos kvanzai (1977-1990)
+currenciesDisplayName.XFO=Auksinis - frankas
+currenciesDisplayName.PGK=Papua Naujosios Gvin\u0117jos kina
+currenciesDisplayName.SYP=Sirijos svaras
+currenciesDisplayName.OMR=Omano rialas
+currenciesDisplayName.MZE=Mozambiko eskudas
+currenciesDisplayName.ZRN=Zairo naujasis zairas
+currenciesDisplayName.NGN=Nigerijos naira
+currenciesDisplayName.CNY=Kinijos \u017eenminbi juanis
+currenciesDisplayName.AOA=Angolos kvanzai
+currenciesDisplayName.MAF=Maroko frankas
+currenciesDisplayName.RSD=Serbijos dinaras
+currenciesDisplayName.GNF=Gvin\u0117jos frankas
+currenciesDisplayName.MAD=Maroko dirhamas
+currenciesDisplayName.HTG=Hai\u010dio gurdas
+currenciesDisplayName.TRY=Naujoji Turkijos Lira
+currenciesDisplayName.MMK=Mianmaro kijatas
+currenciesDisplayName.MYR=Malaizijos ringitas
+currenciesDisplayName.XEU=Europos piniginis vienetas (1993-1999)
+currenciesDisplayName.LSL=Lesoto lotis
+currenciesDisplayName.SLL=Siera Leon\u0117s leon\u0117
+currenciesDisplayName.BHD=Bahreino dinarai
+currenciesDisplayName.BTN=Butano ngultrumai
+currenciesDisplayName.TRL=Turkijos lira
+currenciesDisplayName.KMF=Komoro frankai
+currenciesDisplayName.CZK=\u010cekijos krona
+currenciesDisplayName.ANG=Nyderland\u0173 Antil\u0173 guldenai
+currenciesDisplayName.AZN=Azerbaid\u017eano manatai
+currenciesDisplayName.AZM=Azerbaid\u017eano manatai (1993-2006)
+currenciesDisplayName.GMD=Gambijos dalasis
+currenciesDisplayName.VEF=Stiprusis Venesuelos bolivaras
+currenciesDisplayName.BGN=Bulgarijos naujasis levai
+currenciesDisplayName.MXV=Meksikos United de Inversion (UDI)
+currenciesDisplayName.CAD=Kanados doleriai
+currenciesDisplayName.BGL=Bulgarijos levai
+currenciesDisplayName.VEB=Bolivaras
+currenciesDisplayName.MLF=Malio frankas
+currenciesDisplayName.MXP=Meksikos sidabrinis pesas
+currenciesDisplayName.ILS=Izraelio \u0161ekelis
+currenciesDisplayName.PES=Peru solis
+currenciesDisplayName.MXN=Meksikos pesas
+currenciesDisplayName.GYD=Gajanos doleris
+currenciesDisplayName.ILP=Izraelio svaras
+currenciesDisplayName.CYP=Kipro svaras
+currenciesDisplayName.SKK=Slovakijos krona
+currenciesDisplayName.XDR=SDR Tarptautinis valiutos fondas
+currenciesDisplayName.PEN=Peru naujasis solis
+currenciesDisplayName.LRD=Liberijos doleris
+currenciesDisplayName.AMD=Arm\u0117nijos dramai
+currenciesDisplayName.BSD=Baham\u0173 doleriai
+currenciesDisplayName.XPT=Platina
+currenciesDisplayName.HRK=Kroatijos kuna
+currenciesDisplayName.HRD=Kroatijos dinaras
+currenciesDisplayName.CLP=\u010cil\u0117s pesai
+currenciesDisplayName.XPF=CFP frankai
+currenciesDisplayName.FRF=Pranc\u016bzijos frankas
+currenciesDisplayName.XPD=Paladis
+currenciesDisplayName.BRR=Brazilijos kruzeirai
+currenciesDisplayName.MKD=Makedonijos denaras
+currenciesDisplayName.BRN=Brazilijos naujieji kruzadai
+currenciesDisplayName.ALL=Albanijos lekai
+currenciesDisplayName.MWK=Malavio kva\u010da
+currenciesDisplayName.BRL=Brazilijos realai
+currenciesDisplayName.TPE=Timoro eskudas
+currenciesDisplayName.BRE=Brazilijos kruzeirai (1990-1993)
+currenciesDisplayName.BRC=Brazilijos kruzadai
+currenciesDisplayName.BRB=Brazilijos naujieji kruzeirai
+currenciesDisplayName.DEM=Vokietijos mark\u0117
+currenciesDisplayName.KWD=Kuveito dinaras
+currenciesDisplayName.XCD=Ryt\u0173 Karib\u0173 doleris
+currenciesDisplayName.NPR=Nepalo rupija
+currenciesDisplayName.GWP=Gvin\u0117jos-Bisau pesas
+currenciesDisplayName.YUN=Jugoslavijos konvertuojamas dinaras
+currenciesDisplayName.SVC=Salvadoro kolonas
+currenciesDisplayName.YUM=Jugoslavijos naujasis dinaras
+currenciesDisplayName.BEL=Belgijos frankai (finansiniai)
+currenciesDisplayName.SIT=Slov\u0117nijos tolaras
+currenciesDisplayName.JPY=Japonijos jena
+currenciesDisplayName.XOF=CFA BCEAO frankai
+currenciesDisplayName.MVR=Maldyv\u0173 sal\u0173 rufija
+currenciesDisplayName.BEF=Belgijos frankai
+currenciesDisplayName.GWE=Portugal\u0173 Gvin\u0117jos eskudas
+currenciesDisplayName.TOP=Tongo paanga
+currenciesDisplayName.BEC=Belgijos frankai (konvertuojami)
+currenciesDisplayName.SUR=Soviet\u0173 S\u0105jungos rublis
+currenciesDisplayName.RON=Naujoji Rumunijos l\u0117ja
+currenciesDisplayName.ROL=Senoji Rumunijos l\u0117ja
+currenciesDisplayName.BDT=Banglade\u0161o takos
+currenciesDisplayName.DDM=Ryt\u0173 Vokietijos ostmark\u0117
+currenciesDisplayName.XBD=Europos valiutos/apskaitos vienetas (XBD)
+currenciesDisplayName.AWG=Arubos guldenai
+currenciesDisplayName.XBC=Europos valiutos/apskaitos vienetas (XBC)
+currenciesDisplayName.XBB=Europos piniginis vienetas (XBB)
+currenciesDisplayName.XBA=Europos suvestin\u0117s vienetas
+currenciesDisplayName.NOK=Norvegijos krona
+currenciesDisplayName.MUR=Mauricijaus rupija
+currenciesDisplayName.ZAR=PAR Randas
+currenciesDisplayName.SHP=\u0160v. Elenos sal\u0173 svaras
+currenciesDisplayName.XAU=Auksas
+currenciesDisplayName.ZAL=Piet\u0173 Afrikos Respublikos finansinis randas
+currenciesDisplayName.VND=Vietnamo dongai
+currenciesDisplayName.TZS=Tanzanijos \u0161ilingas
+currenciesDisplayName.GIP=Gibraltaro svaras
+currenciesDisplayName.TND=Tuniso dinaras
+currenciesDisplayName.UGX=Ugandos \u0161ilingas
+currenciesDisplayName.XAG=Sidabras
+currenciesDisplayName.ZMK=Zambijos kva\u010da
+currenciesDisplayName.JOD=Jordanijos dinaras
+currenciesDisplayName.XAF=CFA BEAC frankai
+currenciesDisplayName.LBP=Libano svaras
+currenciesDisplayName.UGS=Ugandos \u0161ilingas (1966-1987)
+currenciesDisplayName.STD=Sao Tom\u0117s ir Princip\u0117s dobra
+currenciesDisplayName.WST=Vakar\u0173 Samoa tala
+currenciesDisplayName.DOP=Dominikos pesas
+currenciesDisplayName.EUR=Euras
+currenciesDisplayName.BOV=Bolivijos mvdol
+currenciesDisplayName.MTP=Maltos svaras
+currenciesDisplayName.USS=JAV doleris (\u0161ios dienos)
+currenciesDisplayName.BOP=Bolivijos pesai
+currenciesDisplayName.CUP=Kubos pesas
+currenciesDisplayName.MTL=Maltos lira
+currenciesDisplayName.TMM=Turkm\u0117nistano manatas
+currenciesDisplayName.USN=JAV doleris (sekan\u010dios dienos)
+currenciesDisplayName.GHS=Ganos sedis
+currenciesDisplayName.SGD=Singap\u016bro doleris
+currenciesDisplayName.NZD=Naujosios Zelandijos doleris
+currenciesDisplayName.USD=JAV doleris
+currenciesDisplayName.BOB=Bolivijos bolivijanai
+currenciesDisplayName.HNL=Honduro lempira
+currenciesDisplayName.ITL=Italijos lira
+currenciesDisplayName.PAB=Panamos balboja
+currenciesDisplayName.GTQ=Gvatemalos ketcalis
+currenciesDisplayName.AUD=Australijos doleriai
+currenciesDisplayName.GHC=Ganos sedis (1979-2007)
+currenciesDisplayName.LAK=Laoso kipas
+currenciesDisplayName.NAD=Namibijos doleris
+currenciesDisplayName.KGS=Kirgizijos somas
+currenciesDisplayName.MGF=Madagaskaro frankas
+currenciesDisplayName.BBD=Barbadoso doleriai
+currenciesDisplayName.CHF=\u0160veicarijos frankas
+currenciesDisplayName.MGA=Madagaskaro ariaris
+currenciesDisplayName.PYG=Paragvajaus guaranis
+currenciesDisplayName.PLZ=Lenkijos zlotas (1950-1995)
+currenciesDisplayName.YER=Jemeno rialas
+currenciesDisplayName.ATS=Austrijos \u0161ilingai
+currenciesDisplayName.ETB=Etiopijos biras
+currenciesDisplayName.BND=Brun\u0117jaus doleriai
+currenciesDisplayName.EGP=Egipto svaras
+currenciesDisplayName.JMD=Jamaikos doleris
+currenciesDisplayName.PLN=Lenkijos zlotas
+currenciesDisplayName.DZD=Al\u017eyro dinarai
+currenciesDisplayName.ISK=Islandijos krona
+currenciesDisplayName.SRG=Surimano guldenas
+currenciesDisplayName.LYD=Libijos dinaras
+currenciesDisplayName.SRD=Surimano doleris
+currenciesDisplayName.BAM=Bosnijos ir Hercegovinos konvertuojamosios mark\u0117s
+currenciesDisplayName.BZD=Belizo doleriai
+currenciesDisplayName.ESP=Ispanijos peseta
+currenciesDisplayName.KRW=Piet\u0173 Kor\u0117jos vonas
+currenciesDisplayName.NLG=Nyderland\u0173 guldenas
+currenciesDisplayName.MRO=Mauritanijos ugija
+currenciesDisplayName.BAD=Bosnijos ir Hercegovinos dinarai
+currenciesDisplayName.ZWD=Zimbabv\u0117s doleris
+currenciesDisplayName.SEK=\u0160vedijos krona
+currenciesDisplayName.BYR=Baltarusijos rubliai
+currenciesDisplayName.IRR=Irano rialas
+currenciesDisplayName.PKR=Pakistano rupija
+currenciesDisplayName.BMD=Bermudos doleriai
+currenciesDisplayName.CSD=Senasis Serbijos dinaras
currenciesSymbol.LTL=Lt
-shortMonths=Sau®Vas®Kov®Bal®Geg®Bir®Lie®Rgp®Rgs®Spl®Lap®Grd®®
-months=Sausis®Vasaris®Kovas®Balandis®Gegu\u017e\u0117®Bir\u017eelis®Liepa®Rugpj\u016btis®Rugs\u0117jis®Spalis®Lapkritis®Gruodis®®
-shortWeekdays=®Sk®Pr®An®Tr®Kt®Pn®\u0160t®
-weekdays=®sekmadienis®pirmadienis®antradienis®tre\u010diadienis®ketvirtadienis®penktadienis®\u0161e\u0161tadienis®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=pr. Kr.®po Kr.®
-ampms=prie\u0161piet®popiet®
+shortMonths=Sau\u00aeVas\u00aeKov\u00aeBal\u00aeGeg\u00aeBir\u00aeLie\u00aeRgp\u00aeRgs\u00aeSpl\u00aeLap\u00aeGrd\u00ae\u00ae
+months=Sausis\u00aeVasaris\u00aeKovas\u00aeBalandis\u00aeGegu\u017e\u0117\u00aeBir\u017eelis\u00aeLiepa\u00aeRugpj\u016btis\u00aeRugs\u0117jis\u00aeSpalis\u00aeLapkritis\u00aeGruodis\u00ae\u00ae
+shortWeekdays=\u00aeSk\u00aePr\u00aeAn\u00aeTr\u00aeKt\u00aePn\u00ae\u0160t\u00ae
+weekdays=\u00aesekmadienis\u00aepirmadienis\u00aeantradienis\u00aetre\u010diadienis\u00aeketvirtadienis\u00aepenktadienis\u00ae\u0161e\u0161tadienis\u00ae
+eras=pr. Kr.\u00aepo Kr.\u00ae
+ampms=prie\u0161piet\u00aepopiet\u00ae
shortDateFormat=yyyy-MM-dd
mediumDateFormat=yyyy.MM.dd
-longDateFormat=yyyy 'm.' MMMM d 'd.'
-fullDateFormat=yyyy 'm.' MMMM d 'd.',EEEE
+longDateFormat=yyyy 'm'. MMMM d 'd'.
+fullDateFormat=yyyy 'm'. MMMM d 'd'.,EEEE
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=America_Eastern\u00aeRyt\u0173 standartinis laikas\u00ae\u00aeRyt\u0173 vasaros laikas\u00ae\u00ae\u00a9Guyana\u00aeGajanos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Uruguay\u00aeUrugvajaus laikas\u00ae\u00aeUrugvajaus vasaros laikas\u00ae\u00ae\u00a9French_Guiana\u00aePranc\u016bz\u0173 Gajanos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Eastern\u00aeRyt\u0173 Europos laikas\u00ae\u00aeRyt\u0173 Europos vasaros laikas\u00ae\u00ae\u00a9Greenland_Eastern\u00aeGrenlandijos ryt\u0173 laikas\u00ae\u00aeGrenlandijos ryt\u0173 vasaros laikas\u00ae\u00ae\u00a9Chile\u00ae\u010cil\u0117s laikas\u00ae\u00ae\u010cil\u0117s vasaros laikas\u00ae\u00ae\u00a9Europe_Central\u00aeVidurio Europos laikas\u00ae\u00aeVidurio Europos vasaros laikas\u00ae\u00ae\u00a9Africa_Southern\u00aePiet\u0173 Afrikos standartinis laikas\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeEkvadoro laikas\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Central\u00aeCentrin\u0117s Afrikos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00aeSamaros laikas\u00ae\u00aeSamaros vasaros laikas\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAliaskos-Havaj\u0173 standartinis laikas\u00ae\u00aeAliaskos-Havaj\u0173 vasaros laikas\u00ae\u00ae\u00a9America_Central\u00aeCentro standartinis laikas\u00ae\u00aeCentro vasaros laikas\u00ae\u00ae\u00a9Moscow\u00aeMaskvos standartinis laikas\u00ae\u00aeMaskvos vasaros laikas\u00ae\u00ae\u00a9Peru\u00aePeru laikas\u00ae\u00aePeru vasaros laikas\u00ae\u00ae\u00a9Argentina\u00aeArgentinos laikas\u00ae\u00aeArgentinos vasaros laikas\u00ae\u00ae\u00a9Atlantic\u00aeAtlanto standartinis laikas\u00ae\u00aeAtlanto vasaros laikas\u00ae\u00ae\u00a9Venezuela\u00aeVenesuelos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeParagvajaus laikas\u00ae\u00aeParagvajaus vasaros laikas\u00ae\u00ae\u00a9Dutch_Guiana\u00aeOland\u0173 Gajanos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00aeNiufaundlendo standartinis laikas\u00ae\u00aeNiufaundlendo vasaros laikas\u00ae\u00ae\u00a9Africa_Eastern\u00aeRyt\u0173 Afrikos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00aeKuiby\u0161evo laikas\u00ae\u00aeKuiby\u0161evo vasaros laikas\u00ae\u00ae\u00a9Greenland_Western\u00aeGrenlandijos vakar\u0173 laikas\u00ae\u00aeGrenlandijos vakar\u0173 vasaros laikas\u00ae\u00ae\u00a9Bolivia\u00aeBolivijos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBeringo standartinis laikas\u00ae\u00aeBeringo vasaros laikas\u00ae\u00ae\u00a9Argentina_Western\u00aeVakar\u0173 Argentinos laikas\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeVolgogrado laikas\u00ae\u00aeVolgogrado vasaros laikas\u00ae\u00ae\u00a9Amazon\u00aeAmazon\u0117s laikas\u00ae\u00aeAmazon\u0117s vasaros laikas\u00ae\u00ae\u00a9Turkey\u00aeTurkijos laikas\u00ae\u00aeTurkijos vasaros laikas\u00ae\u00ae\u00a9Cuba\u00aeKubos standartinis laikas\u00ae\u00aeKubos vasaros laikas\u00ae\u00ae\u00a9Brasilia\u00aeBrazilijos laikas\u00ae\u00aeBrazilijos vasaros laikas\u00ae\u00ae\u00a9America_Pacific\u00aeRamiojo vandenyno standartinis laikas\u00ae\u00aeRamiojo vandenyno vasaros laikas\u00ae\u00ae\u00a9Africa_Western\u00aeVakar\u0173 Afrikos laikas\u00ae\u00aeVakar\u0173 Afrikos vasaros laikas\u00ae\u00ae\u00a9Alaska\u00aeAliaskos standartinis laikas\u00ae\u00aeAliaskos vasaros laikas\u00ae\u00ae\u00a9Colombia\u00aeKolumbijos laikas\u00ae\u00aeKolumbijos vasaros laikas\u00ae\u00ae\u00a9Greenland_Central\u00aeGrenlandijos centro laikas\u00ae\u00aeGrenlandijos centro vasaros laikas\u00ae\u00ae\u00a9
territories.TL=Ryt\u0173 Timoras
territories.TK=Tokelau
-territories.TJ=Tad\u017eikistas
+territories.TJ=Tad\u017eikistanas
territories.TH=Tailandas
territories.TG=Togas
territories.TF=Pranc\u016bzijos Piet\u0173 sritys
@@ -42,7 +285,7 @@ territories.TC=Turkso ir Caicoso salos
territories.GW=Bisau Gvin\u0117ja
territories.GU=Guamas
territories.GT=Gvatemala
-territories.GS=Piet\u0173 Georgijos ir Piet\u0173 Sandwicho Salos
+territories.GS=Piet\u0173 D\u017eord\u017eija ir Piet\u0173 Sandvi\u010do salos
territories.GR=Graikija
territories.GQ=Pusiaujo Gvin\u0117ja
territories.GP=Gvadelup\u0117
@@ -52,10 +295,13 @@ territories.GN=Gvin\u0117ja
territories.GM=Gambija
territories.GL=Grenlandija
territories.SV=Salvadoras
+territories.062=Piet\u0173-vidurio Azija
territories.ST=San Tom\u0117 ir Princip\u0117
territories.GI=Gibraltaras
+territories.061=Polinezija
territories.GH=Gana
territories.SR=Surinamas
+territories.GG=Guernsey
territories.GF=Pranc\u016bzijos Gviana
territories.GE=Gruzija
territories.SO=Somalis
@@ -65,10 +311,10 @@ territories.SM=San Marinas
territories.GB=Did\u017eioji Britanija
territories.SL=Siera Leon\u0117
territories.GA=Gabonas
-territories.SK=Slovakia
+territories.SK=Slovakija
territories.SJ=Svalbardo ir Jan Majen salos
territories.SI=Slov\u0117nija
-territories.SH=\u0160v. Elenos sala
+territories.SH=\u0160ventoji Elena
territories.SG=Singap\u016bras
territories.SE=\u0160vedija
territories.SD=Sudanas
@@ -77,34 +323,43 @@ territories.SB=Saliamono salos
territories.SA=Saudo Arabija
territories.FR=Pranc\u016bzija
territories.FO=Farer\u0173 salos
+territories.057=Mikronezija [057]
territories.FM=Mikronezija
territories.RW=Ruanda
+territories.054=Melanezija
territories.FK=Falklando salos
-territories.RU=Rusija
+territories.053=Australija ir Naujoji Zelandija
+territories.RU=Rusijos Federacija
territories.FJ=Fid\u017eis
territories.FI=Suomija
+territories.RS=Serbija
territories.RO=Rumunija
-territories.RE=Rejunjonas
+territories.RE=Reunionas
territories.ET=Etiopija
territories.ES=Ispanija
territories.ER=Eritr\u0117ja
+territories.QU=Europos s\u0105junga
territories.EH=Vakar\u0173 Sachara
territories.EG=Egiptas
territories.EE=Estija
territories.EC=Ekvadoras
territories.DZ=Al\u017eyras
territories.QA=Kataras
+territories.039=Piet\u0173 Europa
territories.DO=Dominikos Respublika
territories.PY=Paragvajus
territories.DM=Dominika
+territories.035=Pietry\u010di\u0173 Azija
territories.PW=Palau
+territories.034=Piet\u0173 Azija
territories.DK=Danija
territories.DJ=D\u017eibutis
territories.PT=Portugalija
territories.PS=Palestinos teritorija
+territories.030=Ryt\u0173 Azija
territories.PR=Puerto Rikas
territories.DE=Vokietija
-territories.PN=Pitcairnas
+territories.PN=Pitkernas
territories.PM=Sen Pjeras ir Mikelonas
territories.PL=Lenkija
territories.PK=Pakistanas
@@ -120,39 +375,51 @@ territories.PA=Panama
territories.CU=Kuba
territories.CS=Serbija ir Juodkalnija
territories.CR=Kosta Rika
+territories.029=Karibai
territories.CO=Kolumbija
territories.CN=Kinija
territories.CM=Kamer\u016bnas
territories.CL=\u010cil\u0117
territories.CK=Kuko salos
+territories.021=\u0160iaur\u0117s Amerika
territories.CI=Dramblio Kaulo Krantas
territories.CH=\u0160veicarija
territories.CG=Kongas
territories.CF=Centrin\u0117s Afrikos Respublika
territories.CD=Kongo Demokratin\u0117 Respublika
-territories.CC=Kokos\u0173 (Keelingo) salos
+territories.CC=Kokos\u0173 salos
territories.OM=Omanas
territories.CA=Kanada
+territories.419=Lotyn\u0173 Amerika ir Karibai
territories.BZ=Belizas
territories.BY=Baltarusija
territories.BW=Botsvana
territories.BV=Bouvet sala
territories.BT=Butanas
-territories.BS=Bahamos
+territories.BS=Baham\u0173
territories.BR=Brazilija
+territories.019=Amerika
+territories.018=Piet\u0173 Afrika [018]
territories.NZ=Naujoji Zelandija
+territories.017=Vidurio Afrika
territories.BO=Bolivija
territories.BN=Brun\u0117jus
+territories.015=\u0160iaur\u0117s Afrika
territories.BM=Bermuda
+territories.014=Ryt\u0173 Afrika
+territories.013=Centrin\u0117 Amerika
territories.NU=Niue
territories.BJ=Beninas
+territories.011=Vakar\u0173 Afrika
territories.BI=Burundis
+territories.172=Nepriklausom\u0173 Valstybi\u0173 Sandrauga
territories.BH=Bahreinas
-territories.NR=Nauru Respublika
+territories.NR=Nauru
territories.BG=Bulgarija
territories.BF=Burkina Fasas
territories.NP=Nepalas
territories.BE=Belgija
+territories.ZZ=ne\u017einoma ar neteisinga sritis
territories.NO=Norvegija
territories.BD=Banglade\u0161as
territories.BB=Barbadosas
@@ -164,6 +431,7 @@ territories.NG=Nigerija
territories.NF=Norfolko sala
territories.AZ=Azerbaid\u017eanas
territories.NE=Nigeris
+territories.AX=\u00c5land
territories.NC=Naujoji Kaledonija
territories.AW=Aruba
territories.ZM=Zambija
@@ -172,30 +440,35 @@ territories.AU=Australija
territories.AT=Austrija
territories.AS=Amerikos Samoa
territories.AR=Argentina
-territories.AQ=Antarktis
+territories.AQ=Antarktida
+territories.009=Okeanija
territories.MZ=Mozambikas
-territories.200=Serbija ir Juodkalnija
territories.AO=Angola
+territories.200=\u010cekoslovakija
territories.MY=Malaizija
territories.AN=Olandijos Antilai
territories.MX=Meksika
territories.AM=Arm\u0117nija
+territories.005=Piet\u0173 Amerika
territories.MW=Malavis
territories.AL=Albanija
territories.MV=Maldivai
+territories.003=\u0160iaur\u0117s Amerika
territories.ZA=Piet\u0173 Afrika
territories.MU=Mauricijus
+territories.002=Afrika
territories.MT=Malta
territories.AI=Angilija
+territories.001=Pasaulis
territories.MS=Montserratas
territories.MR=Mauritanija
territories.AG=Antigva ir Barbuda
territories.MQ=Martinika
territories.AF=Afganistanas
-territories.AE=Jungtiniai Arab\u0173 Emyratai
territories.MP=Marianos \u0161iaurin\u0117s salos
+territories.AE=Jungtiniai Arab\u0173 Emyratai
+territories.MO=Macao
territories.AD=Andora
-territories.MO=Kinijos S.A.R. Makao
territories.MN=Mongolija
territories.MM=Mianmaras
territories.ML=Malis
@@ -203,24 +476,32 @@ territories.MK=Makedonija
territories.YT=Mayotte\u2019as
territories.MH=Mar\u0161alo Salos
territories.MG=Madagaskaras
+territories.ME=Juodkalnija
territories.MD=Moldova
territories.MC=Monakas
territories.MA=Marokas
territories.YE=Jemenas
territories.LY=Libija
territories.LV=Latvija
+territories.155=Vakar\u0173 Europa
territories.LU=Liuksemburgas
+territories.154=\u0160iaur\u0117s Europa
territories.LT=Lietuva
territories.LS=Lesotas
territories.LR=Liberija
+territories.151=Ryt\u0173 Europa
+territories.150=Europa
territories.LK=\u0160ri Lanka
territories.LI=Lichten\u0161teinas
-territories.LC=Sent Lusija
+territories.LC=\u0160ventoji Liucija
territories.LB=Libanas
territories.LA=Laosas
territories.KZ=Kazachstanas
territories.KY=Kaiman\u0173 salos
territories.KW=Kuveitas
+territories.145=Vakar\u0173 Azija
+territories.143=Centrin\u0117 Azija
+territories.142=Azija
territories.KR=Piet\u0173 Kor\u0117ja
territories.KP=\u0160iaur\u0117s Kor\u0117ja
territories.KN=Sent Kitsas ir Nevis
@@ -235,6 +516,7 @@ territories.JP=Japonija
territories.JO=Jordanija
territories.JM=Jamaika
territories.VU=Vanuatu
+territories.JE=D\u017eersis
territories.VN=Vietnamas
territories.VI=Mergeli\u0173 salos (JAV)
territories.VG=Did\u017eiosios Britanijos Mergeli\u0173 salos
@@ -249,8 +531,9 @@ territories.UZ=Uzbekistanas
territories.IO=Indijos vandenyno brit\u0173 sritis
territories.UY=Urugvajus
territories.IN=Indija
+territories.IM=Meno sala
territories.IL=Izraelis
-territories.US=Jungtin\u0117s Valstijos US
+territories.US=Jungtin\u0117s Valstijos
territories.IE=Airija
territories.ID=Indonezija
territories.UM=Jungtini\u0173 Valstij\u0173 ma\u017eosios aplinkin\u0117s salos
@@ -261,43 +544,183 @@ territories.HT=Haitis
territories.HR=Kroatija
territories.TZ=Tanzanija
territories.HN=Hond\u016bras
-territories.HM=Heardo salos
+territories.HM=Heardo ir McDonaldo Sal\u0173 Sritis
territories.TW=Taivanas
territories.TV=Tuvalu
-territories.HK=Kinijos S.A.R.Honkongas
+territories.HK=Honkongas
territories.TT=Trinidadas ir Tobagas
territories.TR=Turkija
territories.TO=Tonga
territories.TN=Tunisas
territories.TM=Turkm\u0117nistanas
-languages.ja=Japon\u0173
-languages.en=Angl\u0173
-languages.tr=Turk\u0173
-languages.ko=Kor\u0117jie\u010di\u0173
-languages.no=Norveg\u0173
-languages.el=Graik\u0173
-languages.nl=Oland\u0173
-languages.bg=Bulgar\u0173
-languages.hi=Hindi
-languages.lv=Latvi\u0173
-languages.cs=\u010cek\u0173
-languages.he=Hebraj\u0173
-languages.it=Ital\u0173
-languages.lt=Lietuvi\u0173
-languages.fr=Pranc\u016bz\u0173
-languages.zh=Kin\u0173
-languages.ru=Rus\u0173
-languages.ro=Rumun\u0173
-languages.fi=Suomi\u0173
-languages.ar=Arab\u0173
-languages.sv=\u0160ved\u0173
-languages.pt=Portugal\u0173
-languages.pl=Lenk\u0173
-languages.sl=Slov\u0117n\u0173
-languages.sk=Slovak\u0173
-languages.de=Vokie\u010di\u0173
-languages.et=Est\u0173
-languages.hu=Vengr\u0173
-languages.es=Ispan\u0173
-languages.da=Dan\u0173
-languages.hr=Kroat\u0173
+languages.lb=liuksemburgie\u010di\u0173
+languages.la=lotyn\u0173
+languages.xh=kos\u0173
+languages.ky=kirgiz\u0173
+languages.ku=kurd\u0173
+languages.ko=kor\u0117jie\u010di\u0173
+languages.udm=udmurt\u0173
+languages.kn=kanad\u0173
+languages.km=khmer\u0173
+languages.kk=kazach\u0173
+languages.ira=Iranie\u010di\u0173
+languages.en_GB=angl\u0173 (brit\u0173)
+languages.grc=senov\u0117s graik\u0173
+languages.art=dirbtin\u0117 kalba
+languages.ka=gruzin\u0173
+languages.crh=krymo turk\u0173
+languages.gem=german\u0173 kalba
+languages.jv=javie\u010di\u0173
+languages.wa=valon\u0173
+languages.cel=kelt\u0173 kalba
+languages.sco=\u0161kot\u0173
+languages.scn=sicilie\u010di\u0173
+languages.vo=volapiuk
+languages.ja=japon\u0173
+languages.vi=vietnamie\u010di\u0173
+languages.it=ital\u0173
+languages.is=island\u0173
+languages.ady=adyg\u0117j\u0173
+languages.uz=uzbek\u0173
+languages.ur=urdu
+languages.ie=interlingue
+languages.id=indonezie\u010di\u0173
+languages.ia=interlingva
+languages.uk=ukrainie\u010di\u0173
+languages.ug=uig\u016br\u0173
+languages.fiu=finougr\u0173 kalba
+languages.und=nenustatyta kalba
+languages.hy=arm\u0117n\u0173
+languages.got=got\u0173
+languages.hu=vengr\u0173
+languages.hr=kroat\u0173
+languages.fil=tagal\u0173
+languages.tw=tvi
+languages.tt=totori\u0173
+languages.hi=hindi
+languages.tr=turk\u0173
+languages.he=hebraj\u0173
+languages.sah=jakut\u0173
+languages.tl=tagalog\u0173
+languages.kbd=kabardin\u0173
+languages.tk=turkm\u0117n\u0173
+languages.ti=tigraj\u0173
+languages.th=taj\u0173
+languages.te=telug\u0173
+languages.ta=tamil\u0173
+languages.gu=gud\u017earat\u0173
+languages.inh=ingu\u0161\u0173
+languages.ine=indoeuropie\u010di\u0173 kalba
+languages.gn=gvarani\u0173
+languages.sw=svahili
+languages.bua=buriat\u0173
+languages.gl=galis\u0173
+languages.sv=\u0161ved\u0173
+languages.su=sund\u0173
+languages.st=sesuto
+languages.sr=serb\u0173
+languages.sq=alban\u0173
+languages.so=somali\u0173
+languages.gd=\u0161kot\u0173 (g\u0117l\u0173)
+languages.sl=slov\u0117n\u0173
+languages.ga=airi\u0173
+languages.sk=slovak\u0173
+languages.kaa=karakalpak\u0173
+languages.si=sinhal\u0173
+languages.sh=serb\u0173-kroat\u0173
+languages.se=\u0161iaurini\u0173 sami\u0173
+languages.fy=Fryz\u0173
+languages.sd=sind\u0173
+languages.sc=sardinie\u010di\u0173
+languages.cau=kaukazie\u010di\u0173 kalba
+languages.sa=sanskritas
+languages.ang=senoji angl\u0173
+languages.fr=pranc\u016bz\u0173
+languages.sla=slav\u0173 kalba
+languages.fo=farerie\u010di\u0173
+languages.ru=rus\u0173
+languages.cai=Centrin\u0117s Amerikos ind\u0117n\u0173 kalba
+languages.fi=suomi\u0173
+languages.ro=rumun\u0173
+languages.fa=pers\u0173
+languages.pt_PT=portugal\u0173 (Portugalijos)
+languages.en_AU=angl\u0173 kalba (australija)
+languages.peo=senoji pers\u0173
+languages.lez=lezgin\u0173
+languages.eu=bask\u0173
+languages.et=est\u0173
+languages.es=ispan\u0173
+languages.eo=esperanto
+languages.en=angl\u0173
+languages.frs=ryt\u0173 fryz\u0173
+languages.el=graik\u0173
+languages.frr=\u0161iaurini\u0173 fryz\u0173
+languages.fro=senoji pranc\u016bz\u0173
+languages.ale=aleut\u0173
+languages.pt=portugal\u0173
+languages.pt_BR=portugal\u0173 (Brazilijos)
+languages.ber=berber\u0173
+languages.ps=pu\u0161t\u016bn\u0173
+languages.de=vokie\u010di\u0173
+languages.pl=lenk\u0173
+languages.da=dan\u0173
+languages.sux=\u0161umer\u0173
+languages.cy=val\u0173
+languages.cv=\u010diuva\u0161\u0173
+languages.pa=pand\u017eab\u0173
+languages.cu=ba\u017enytin\u0117 slav\u0173
+languages.cs=\u010dek\u0173
+languages.co=korsikie\u010di\u0173
+languages.mis=\u012fvairios kalba
+languages.os=osetin\u0173
+languages.or=orij\u0173
+languages.ce=\u010de\u010d\u0117n\u0173
+languages.ca=katalon\u0173
+languages.mul=kelios kalbos
+languages.oc=provansal\u0173
+languages.bs=bosni\u0173
+languages.xal=kalmuk\u0173
+languages.br=breton\u0173
+languages.bo=tibetie\u010di\u0173
+languages.zh_Hans=kin\u0173 supaprastinta
+languages.bn=bengal\u0173
+languages.zh_Hant=kin\u0173 tradicin\u0117
+languages.bh=bihar\u0173
+languages.bg=bulgar\u0173
+languages.be=baltarusi\u0173
+languages.no=norveg\u0173
+languages.nn=norveg\u0173 (Nynorsk)
+languages.nl=oland\u0173
+languages.ba=ba\u0161kir\u0173
+languages.zu=zul\u0173
+languages.az=azerbaid\u017eanie\u010di\u0173
+languages.ne=nepal\u0173
+languages.tyv=tuvi\u0173
+languages.aus=austral\u0173 kalba
+languages.as=asam\u0173
+languages.nap=neapolie\u010di\u0173
+languages.ar=arab\u0173
+languages.zh=kin\u0173
+languages.sga=senoji airi\u0173
+languages.am=amhar\u0173
+languages.nai=\u0160iaur\u0117s Amerikos ind\u0117n\u0173 kalba
+languages.paa=papuas\u0173 kalba
+languages.mt=maltie\u010di\u0173
+languages.ms=malajie\u010di\u0173
+languages.mr=marat\u0173
+languages.af=afrikanso
+languages.mo=moldav\u0173
+languages.mn=mongol\u0173
+languages.en_US=angl\u0173 (amerikie\u010di\u0173)
+languages.ab=abchaz\u0173
+languages.ml=malajali\u0173
+languages.bnt=bant\u0173
+languages.mk=makedon\u0173
+languages.egy=senov\u0117s egiptie\u010di\u0173
+languages.tlh=kelioni\u0173
+languages.yi=jidi\u0161
+languages.bat=balt\u0173 kalba
+languages.lv=latvi\u0173
+languages.lt=lietuvi\u0173
+languages.lo=laosie\u010di\u0173
+languages.ln=lingala
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lv.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lv.properties
index d032ba0..74cd024 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lv.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_lv.properties
@@ -7,18 +7,87 @@
decimalSeparator=,
groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.CHF=\u0160veices franks
+currenciesDisplayName.AUD=Austr\u0101lijas dol\u0101rs
+currenciesDisplayName.FJD=Fid\u017ei dol\u0101rs
+currenciesDisplayName.KZT=Kazahst\u0101nas tenge
+currenciesDisplayName.RUB=Krievijas rublis
+currenciesDisplayName.CZK=\u010cehijas krona
+currenciesDisplayName.THB=Taizemes b\u0101ts
+currenciesDisplayName.SEK=Zviedrijas krona
+currenciesDisplayName.HRK=Horv\u0101tijas kuna
+currenciesDisplayName.PLN=Polijas zlots
+currenciesDisplayName.SKK=Slovakijas krona
+currenciesDisplayName.MAD=Marokas dirh\u0113ms
+currenciesDisplayName.TWD=jaunais Taiv\u0101nas dol\u0101rs
+currenciesDisplayName.XXX=nezin\u0101ma vai neder\u012bga val\u016bta
+currenciesDisplayName.MYR=Malaizijas ringits
+currenciesDisplayName.HUF=Ung\u0101rijas forints
+currenciesDisplayName.BND=Brunejas dol\u0101rs
+currenciesDisplayName.UAH=Ukrainas grivna
+currenciesDisplayName.INR=Indijas r\u016bpija
+currenciesDisplayName.AED=Apvienoto Ar\u0101bu Emir\u0101tu dirh\u0113ms
+currenciesDisplayName.SAR=Sa\u016bda ri\u0101ls
+currenciesDisplayName.CAD=Kan\u0101das dol\u0101rs
+currenciesDisplayName.LVL=Latvijas lats
+currenciesDisplayName.USD=ASV dol\u0101rs
+currenciesDisplayName.BGN=Bulg\u0101rijas leva
+currenciesDisplayName.JPY=Jap\u0101nas jena
+currenciesDisplayName.GBP=Lielbrit\u0101nijas sterli\u0146u m\u0101rci\u0146a
+currenciesDisplayName.PKR=Pakist\u0101nas r\u016bpija
+currenciesDisplayName.PHP=Filip\u012bnu peso
+currenciesDisplayName.PEN=Peru jaunais sols
+currenciesDisplayName.FRF=Francijas franks
+currenciesDisplayName.NOK=Norv\u0113\u0123ijas krona
+currenciesDisplayName.EUR=eiro
+currenciesDisplayName.HKD=Honkongas dol\u0101rs
+currenciesDisplayName.IDR=Indon\u0113zijas r\u016bpija
+currenciesDisplayName.SGD=Singap\u016bras dol\u0101rs
+currenciesDisplayName.ZAR=Dienvid\u0101frikas rands
+currenciesDisplayName.MXN=Meksikas peso
+currenciesDisplayName.TRY=jaun\u0101 Turcijas lira
+currenciesDisplayName.CLP=\u010c\u012bles peso
+currenciesDisplayName.COP=Kolumbijas peso
+currenciesDisplayName.KRW=Dienvidkorejas vona
+currenciesDisplayName.SIT=Slov\u0113nijas tolars
+currenciesDisplayName.EEK=Igaunijas krona
+currenciesDisplayName.RSD=Serbijas din\u0101rs
+currenciesDisplayName.TRL=Turcijas lira
+currenciesDisplayName.BRL=Braz\u012blijas re\u0101ls
+currenciesDisplayName.DEM=V\u0101cijas marka
+currenciesDisplayName.VEB=Venecu\u0113las boliv\u0101rs
+currenciesDisplayName.ARS=Argent\u012bnas peso
+currenciesDisplayName.CNY=\u0136\u012bnas juana
+currenciesDisplayName.DKK=D\u0101nijas krona
+currenciesDisplayName.MTL=Maltas lira
+currenciesDisplayName.ILS=Izra\u0113las \u0161ekelis
+currenciesDisplayName.VND=Vjetnamas dongi
+currenciesDisplayName.BOB=Bol\u012bvijas boliviano
+currenciesDisplayName.NZD=Jaunz\u0113landes dol\u0101rs
+currenciesDisplayName.RON=Rum\u0101nijas leja
+currenciesDisplayName.KES=Kenijas \u0161ili\u0146\u0161
+currenciesDisplayName.LTL=Lietuvas lits
+currenciesDisplayName.EGP=\u0112\u0123iptes m\u0101rci\u0146a
currenciesSymbol.LVL=Ls
-shortMonths=Jan®Feb®Mar®Apr®Mai®J\u016bn®J\u016bl®Aug®Sep®Okt®Nov®Dec®®
-months=janv\u0101ris®febru\u0101ris®marts®apr\u012blis®maijs®j\u016bnijs®j\u016blijs®augusts®septembris®oktobris®novembris®decembris®®
-shortWeekdays=®Sv®P®O®T®C®Pk®S®
-weekdays=®sv\u0113tdiena®pirmdiena®otrdiena®tre\u0161diena®ceturtdiena®piektdiena®sestdiena®
-firstDayOfWeek=mon
-eras=pm\u0113®m\u0113®
+currenciesSymbol.EUR=\u20ac
+currenciesSymbol.XXX=XXX
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMai\u00aeJ\u016bn\u00aeJ\u016bl\u00aeAug\u00aeSep\u00aeOkt\u00aeNov\u00aeDec\u00ae\u00ae
+months=janv\u0101ris\u00aefebru\u0101ris\u00aemarts\u00aeapr\u012blis\u00aemaijs\u00aej\u016bnijs\u00aej\u016blijs\u00aeaugusts\u00aeseptembris\u00aeoktobris\u00aenovembris\u00aedecembris\u00ae\u00ae
+shortWeekdays=\u00ae\u00aepr\u00aeot\u00aetr\u00aece\u00aepk\u00aese\u00ae
+weekdays=\u00aesv\u0113tdiena\u00aepirmdiena\u00aeotrdiena\u00aetre\u0161diena\u00aeceturtdiena\u00aepiektdiena\u00aesestdiena\u00ae
+eras=p.m.\u0113.\u00aem.\u0113.\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=yy.d.M
mediumDateFormat=yyyy.d.M
-longDateFormat=yyyy'. gada 'd. MMMM
-fullDateFormat=EEEE, yyyy'. gada 'd. MMMM
+longDateFormat=yyyy. 'gada' d. MMMM
+fullDateFormat=EEEE, yyyy. 'gada' d. MMMM
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
territories.TL=Austrumtimora
territories.TK=Tokelau
territories.TJ=Tad\u017eikist\u0101na
@@ -41,10 +110,13 @@ territories.GN=Gvineja
territories.GM=Gambija
territories.GL=Grenlande
territories.SV=Salvadora
+territories.062=Centr\u0101ldienvid\u0101zija
territories.ST=Santome un Prinsipi
territories.GI=Gibralt\u0101rs
+territories.061=Polin\u0113zija
territories.GH=Gana
territories.SR=Surinama
+territories.GG=G\u0113rnsija
territories.GF=Fran\u010du Gvi\u0101na
territories.GE=Gruzija
territories.SO=Som\u0101lija
@@ -66,31 +138,41 @@ territories.SB=Z\u0101lamana salas
territories.SA=Sa\u016bda Ar\u0101bija
territories.FR=Francija
territories.FO=Far\u0113ru salas
+territories.057=Mikron\u0113zijas re\u0123ions
territories.FM=Mikron\u0113zijas Federat\u012bv\u0101s Valstis
territories.RW=Ruanda
+territories.054=Melan\u0113zija
territories.FK=Folklenda salas
+territories.053=Austr\u0101lija un Jaunz\u0113lande
territories.RU=Krievija
territories.FJ=Fid\u017ei
territories.FI=Somija
+territories.RS=Serbija
territories.RO=Rum\u0101nija
territories.RE=Reinjona
territories.ET=Etiopija
territories.ES=Sp\u0101nija
territories.ER=Eritreja
+territories.QU=Eiropas Savien\u012bba
territories.EH=Rietumsah\u0101ra
territories.EG=\u0112\u0123ipte
territories.EE=Igaunija
+territories.QO=ASV Maz\u0101s Aizj\u016bras salas
territories.EC=Ekvadora
territories.DZ=Al\u017e\u012brija
territories.QA=Katara
+territories.039=Eiropas dienvidi
territories.DO=Dominik\u0101nas Republika
territories.PY=Paragvaja
territories.DM=Dominika
+territories.035=Centr\u0101laustrum\u0101zija
territories.PW=Palau
+territories.034=\u0100zijas dienvidi
territories.DK=D\u0101nija
territories.DJ=D\u017eibutija
territories.PT=Portug\u0101le
territories.PS=Palest\u012bnie\u0161u pa\u0161p\u0101rvaldes teritorija
+territories.030=Austrum\u0101zija
territories.PR=Puertoriko
territories.DE=V\u0101cija
territories.PN=Pitk\u0113rna
@@ -109,19 +191,22 @@ territories.PA=Panama
territories.CU=Kuba
territories.CS=Serbija un Melnkalne
territories.CR=Kostarika
+territories.029=Kar\u012bbu j\u016bras re\u0123ions
territories.CO=Kolumbija
territories.CN=\u0136\u012bna
territories.CM=Kamer\u016bna
territories.CL=\u010c\u012ble
territories.CK=Kuka salas
+territories.021=Amerikas zieme\u013ci
territories.CI=Kotdivu\u0101ra
territories.CH=\u0160veice
-territories.CG=Kongo
+territories.CG=Kongo-Brazzaville
territories.CF=Centr\u0101l\u0101frikas Republika
-territories.CD=Kongo Demokr\u0101tisk\u0101 Republika
-territories.CC=Kokosu (K\u012blinga) salas
+territories.CD=Kongo-Kinshasa
+territories.CC=Kokosu jeb K\u012blinga salas
territories.OM=Om\u0101na
territories.CA=Kan\u0101da
+territories.419=Lat\u012b\u0146amerika un Kar\u012bbu j\u016bras re\u0123ions
territories.BZ=Beliza
territories.BY=Baltkrievija
territories.BW=Botsv\u0101na
@@ -129,19 +214,28 @@ territories.BV=Buv\u0113 sala
territories.BT=But\u0101na
territories.BS=Bahamas
territories.BR=Braz\u012blija
+territories.019=Am\u0113rikas
+territories.018=\u0100frikas dienvidi
territories.NZ=Jaunz\u0113lande
+territories.017=Vidus\u0101frika
territories.BO=Bol\u012bvija
territories.BN=Bruneja
+territories.015=Zieme\u013c\u0101frika
territories.BM=Bermudu salas
+territories.014=Austrum\u0101frika
+territories.013=Centr\u0101lamerika
territories.NU=Niue
territories.BJ=Benina
+territories.011=Rietum\u0101frika
territories.BI=Burundi
+territories.172=Neatkar\u012bgo Valstu Savien\u012bba
territories.BH=Bahreina
territories.NR=Nauru
territories.BG=Bulg\u0101rija
territories.BF=Burkinafaso
territories.NP=Nep\u0101la
territories.BE=Be\u013c\u0123ija
+territories.ZZ=nezin\u0101ms vai neder\u012bgs re\u0123ions
territories.NO=Norv\u0113\u0123ija
territories.BD=Banglade\u0161a
territories.BB=Barbadosa
@@ -150,9 +244,10 @@ territories.NL=N\u012bderlande
territories.BA=Bosnija un Hercegovina
territories.NI=Nikaragva
territories.NG=Nig\u0113rija
-territories.NF=Norfolka
+territories.NF=Norfolkas sala
territories.AZ=Azerbaid\u017e\u0101na
territories.NE=Nig\u0113ra
+territories.AX=\u0100landi
territories.NC=Jaunkaledonija
territories.AW=Aruba
territories.ZM=Zambija
@@ -162,28 +257,33 @@ territories.AT=Austrija
territories.AS=Amerik\u0101\u0146u Samoa
territories.AR=Argent\u012bna
territories.AQ=Antarktika
+territories.009=Oke\u0101nija
territories.MZ=Mozambika
territories.AO=Angola
territories.MY=Malaizija
-territories.AN=Anti\u013cas
+territories.AN=N\u012bderlandes Anti\u013cas
territories.MX=Meksika
territories.AM=Arm\u0113nija
+territories.005=Dienvidamerika
territories.MW=Mal\u0101vija
territories.AL=Alb\u0101nija
territories.MV=Mald\u012bvija
+territories.003=Zieme\u013camerika
territories.ZA=Dienvid\u0101frika
territories.MU=Maur\u012bcija
+territories.002=\u0100frika
territories.MT=Malta
territories.AI=Angilja
+territories.001=pasaule
territories.MS=Montserrata
territories.MR=Maurit\u0101nija
territories.AG=Antigva un Barbuda
-territories.AF=Afganist\u0101na
territories.MQ=Martinika
+territories.AF=Afganist\u0101na
+territories.MP=Zieme\u013cmarianas salas
territories.AE=Apvienotie Ar\u0101bu Emir\u0101ti
-territories.MP=Zieme\u013cu Marianas
+territories.MO=Makao
territories.AD=Andora
-territories.MO=Makao, \u0136\u012bnas \u012bpa\u0161\u0101s p\u0101rvaldes apgabals
territories.MN=Mongolija
territories.MM=Mjanma
territories.ML=Mali
@@ -191,16 +291,21 @@ territories.MK=Ma\u0137edonija
territories.YT=Majota
territories.MH=M\u0101r\u0161ala salas
territories.MG=Madagaskara
+territories.ME=Melnkalne
territories.MD=Moldova
territories.MC=Monako
territories.MA=Maroka
territories.YE=Jemena
territories.LY=L\u012bbija
territories.LV=Latvija
+territories.155=Rietumeiropa
territories.LU=Luksemburga
+territories.154=Eiropas zieme\u013ci
territories.LT=Lietuva
territories.LS=Lesoto
territories.LR=Lib\u0113rija
+territories.151=Austrumeiropa
+territories.150=Eiropa
territories.LK=\u0160rilanka
territories.LI=Lihten\u0161teina
territories.LC=Sentl\u016bsija
@@ -209,6 +314,9 @@ territories.LA=Laosa
territories.KZ=Kazahst\u0101na
territories.KY=Kaimanu salas
territories.KW=Kuveita
+territories.145=Rietum\u0101zija
+territories.143=Centr\u0101l\u0101zija
+territories.142=\u0100zija
territories.KR=Dienvidkoreja
territories.KP=Zieme\u013ckoreja
territories.KN=Sentkitsa un Nevisa
@@ -223,6 +331,7 @@ territories.JP=Jap\u0101na
territories.JO=Jord\u0101nija
territories.JM=Jamaika
territories.VU=Vanuatu
+territories.JE=D\u017e\u0113rsija
territories.VN=Vjetnama
territories.VI=Amerik\u0101\u0146u Vird\u017e\u012bnu salas
territories.VG=Britu Vird\u017e\u012bnu salas
@@ -230,15 +339,16 @@ territories.VE=Venecu\u0113la
territories.VC=Sentvinsenta un Grenad\u012bnas
territories.VA=Vatik\u0101ns
territories.IT=It\u0101lija
-territories.IS=Islande
+territories.IS=\u012aslande
territories.IR=Ir\u0101na
territories.IQ=Ir\u0101ka
territories.UZ=Uzbekist\u0101na
territories.IO=Britu Indijas oke\u0101na teritorija
territories.UY=Urugvaja
territories.IN=Indija
+territories.IM=Menas sala
territories.IL=Izra\u0113la
-territories.US=United States
+territories.US=Amerikas Savienot\u0101s Valstis
territories.IE=\u012arija
territories.ID=Indon\u0113zija
territories.UM=ASV maz\u0101s aizj\u016bras teritorijas
@@ -252,39 +362,508 @@ territories.HN=Hondurasa
territories.HM=H\u0113rda un Makdonalda salas
territories.TW=Taiv\u0101na
territories.TV=Tuvalu
-territories.HK=Honkonga, \u0136\u012bnas \u012bpa\u0161\u0101s p\u0101rvaldes apgabals
+territories.HK=Honkonga
territories.TT=Trinid\u0101da un Tob\u0101go
territories.TR=Turcija
territories.TO=Tonga
territories.TN=Tunisija
territories.TM=Turkmenist\u0101na
-languages.ja=jap\u0101\u0146u
-languages.en=ang\u013cu
+languages.gwi=ku\u010dinu
+languages.akk=akadie\u0161u
+languages.eka=ekad\u017euku
+languages.ijo=id\u017ebu
+languages.xh=khosu
+languages.sux=\u0161umeru
+languages.sus=susu
+languages.mis=da\u017e\u0101das valodas
+languages.loz=lozu
+languages.tog=tongu valoda (Njas\u0101)
+languages.pon=ponapie\u0161u
+languages.min=minangkabavu
+languages.suk=sukumu
+languages.wo=volofu
+languages.lol=mongu
+languages.kut=kutenaju
+languages.mic=mikmaku
+languages.wa=valo\u0146u
+languages.kum=kumiku
+languages.zap=sapoteku
+languages.ain=ainu
+languages.cus=ku\u0161\u012btu valoda
+languages.jbo=lo\u017ebans
+languages.doi=dogru
+languages.vo=volapiks
+languages.oto=otomu valodas
+languages.vi=vjetnamie\u0161u
+languages.vai=vaju
+languages.rar=rarotongie\u0161u
+languages.ve=vendu
+languages.rap=rapanuju
+languages.raj=rad\u017east\u0101\u0146u
+languages.ota=turku osma\u0146u
+languages.nzi=nzemu
+languages.nap=neapolie\u0161u
+languages.uz=uzbeku
+languages.uga=ugaritie\u0161u
+languages.tmh=tuaregu
+languages.nai=Zieme\u013camerikas indi\u0101\u0146u valoda
+languages.nah=navatlu
+languages.ur=urdu
+languages.fat=fantu
+languages.uk=ukrai\u0146u
+languages.egy=\u0113\u0123iptie\u0161u
+languages.zxx=lingvistiska satura nav
+languages.ug=uighuru
+languages.fan=fangu
+languages.ssa=N\u012blas-Sah\u0101ras valodas
+languages.mga=vidus\u012bru
+languages.bat=baltu valoda
+languages.nyo=\u0146oru
+languages.bas=basu
+languages.nyn=\u0146ankolu
+languages.nym=\u0146amvezu
+languages.gsw=\u0160veices v\u0101cu
+languages.hmn=hmongu
+languages.ban=balie\u0161u
+languages.osa=va\u017e\u0101\u017eu
+languages.bal=belud\u017eu
+languages.ty=taitie\u0161u
+languages.bai=bamileku valodas
+languages.tw=\u010dv\u012b
+languages.srr=ser\u0113ru
+languages.tli=tlinkitu
+languages.tlh=klingonie\u0161u
+languages.tt=tat\u0101ru
+languages.ts=congu
+languages.srn=sranantongo
+languages.bad=bandu
languages.tr=turku
-languages.ko=korejie\u0161u
+languages.to=tongu
+languages.tn=cvanu
+languages.tl=tagalogu
+languages.tk=turkm\u0113\u0146u
+languages.ti=tigrinja
+languages.th=taju
+languages.kru=kuruhu
+languages.tg=tad\u017eiku
+languages.byn=bilinu
+languages.te=telugu
+languages.kro=kr\u016b
+languages.csb=ka\u0161ubu
+languages.ta=tamilu
+languages.krl=kar\u0113\u013cu
+languages.tkl=tokelavie\u0161u
+languages.efi=efiku
+languages.sw=svahilu
+languages.sv=zviedru
+languages.su=sundanie\u0161u
+languages.krc=kara\u010daju un balk\u0101ru
+languages.st=sesoto
+languages.ss=svatu
+languages.sr=serbu
+languages.sq=alb\u0101\u0146u
+languages.men=mendu
+languages.crp=kreolisk\u0101 vai pid\u017einvaloda
+languages.so=som\u0101\u013cu
+languages.afh=afrihili
+languages.sn=\u0161onu
+languages.sm=samo\u0101\u0146u
+languages.sl=slov\u0113\u0146u
+languages.grc=sengrie\u0137u
+languages.sk=slov\u0101ku
+languages.grb=grebo
+languages.si=sinhal\u012bzu
+languages.sh=serbu-horv\u0101tu
+languages.crh=Krimas tat\u0101ru
+languages.afa=afroazi\u0101tu valodas
+languages.sg=sangu
+languages.se=zieme\u013cs\u0101mu
+languages.sd=sind\u017eu
+languages.udm=udmurtu
+languages.sc=sard\u012bnie\u0161u
+languages.sa=sanskrita
+languages.rw=ki\u0146aruanda
+languages.nwc=klasisk\u0101 nevaru
+languages.ru=krievu
+languages.mdr=mandaru
+languages.ro=rum\u0101\u0146u
+languages.rn=rundu
+languages.rm=retorom\u0101\u0146u
+languages.fr_CH=\u0160veices fran\u010du
+languages.mdf=mok\u0161u
+languages.tiv=tivu
+languages.fr_CA=Kan\u0101das fran\u010du
+languages.ady=adigu
+languages.zun=zunju
+languages.kpe=kpellu
+languages.qu=ke\u010dvu
+languages.tig=tigru
+languages.son=songaju
+languages.cpp=portug\u0101lisk\u0101s kreolisk\u0101s vai pid\u017einvaloda
+languages.rup=arom\u016bnu
+languages.sog=sogdie\u0161u
+languages.ada=adangmu
+languages.kos=kosr\u0101jie\u0161u
+languages.hit=hetu
+languages.cpf=francisk\u0101s kreolisk\u0101s valodas un pid\u017einvalodas
+languages.cpe=anglisk\u0101 kreolisk\u0101 vai pid\u017einvaloda
+languages.him=hima\u010dali
+languages.kok=konkanu
+languages.hil=hiligainonu
+languages.got=gotu
+languages.gor=gorontalu
+languages.gon=gondu
+languages.din=dinku
+languages.nub=n\u016bbie\u0161u valodas
+languages.pt=portug\u0101\u013cu
+languages.ps=pu\u0161tu
+languages.fur=fri\u016blu
+languages.phn=feni\u0137ie\u0161u
+languages.de_CH=\u0160veices aug\u0161v\u0101cu
+languages.goh=senaug\u0161v\u0101cu
+languages.snk=soninku
+languages.cop=koptu
+languages.yap=japie\u0161u
+languages.ach=a\u010dolu
+languages.yao=jao
+languages.phi=filip\u012bnie\u0161u valoda
+languages.pl=po\u013cu
+languages.ace=a\u010dinu
+languages.pi=p\u0101li
+languages.pt_PT=ib\u0113rie\u0161u portug\u0101\u013cu
+languages.pa=pand\u017eabu
+languages.bug=bugu
+languages.iba=ibanu
+languages.sms=skolts\u0101mu
+languages.bua=burjatu
+languages.mas=masaju
+languages.smn=Inari s\u0101mu
+languages.os=oset\u012bnu
+languages.map=austron\u0113zie\u0161u
+languages.or=orisie\u0161u
+languages.man=mandingu
+languages.smj=Luleo s\u0101mu
+languages.smi=s\u0101mu valodas
+languages.mak=makasaru
+languages.om=oromu
+languages.mai=maithili
+languages.oj=od\u017eibvu
+languages.mag=magahie\u0161u
+languages.mad=madurie\u0161u
+languages.sma=dienvids\u0101mu
+languages.oc=provansie\u0161u
+languages.nso=zieme\u013csotu
+languages.btk=bataku
+languages.myv=erzju
+languages.es_ES=ib\u0113rie\u0161u sp\u0101\u0146u
+languages.de_AT=Austrijas v\u0101cu
+languages.dgr=dogribu
+languages.ny=\u010di\u010deva
+languages.myn=maiju valodas
+languages.nv=navahu
+languages.kmb=kimbundu
+languages.nr=dienvidndebelu
+languages.gmh=vidusaug\u0161v\u0101cu
languages.no=norv\u0113\u0123u
-languages.el=grie\u0137u
+languages.nn=jaunnorv\u0113\u0123u
languages.nl=holandie\u0161u
-languages.bg=bulg\u0101ru
+languages.root=sakne
+languages.ng=ndongu
+languages.sla=sl\u0101vu
+languages.ne=nep\u0101lie\u0161u
+languages.nd=zieme\u013cndebelu
+languages.cmc=\u010damie\u0161u valodas
+languages.tet=tetumu
+languages.nb=norv\u0113\u0123u bukmols
+languages.na=nauruie\u0161u
+languages.ter=tereno
+languages.tem=temnu
+languages.my=birmie\u0161u
+languages.lez=lezg\u012bnu
+languages.mt=maltie\u0161u
+languages.frs=austrumfr\u012bzu
+languages.peo=persu
+languages.ms=malajie\u0161u
+languages.frr=zieme\u013cfr\u012bzu
+languages.mr=maratu
+languages.fro=senfran\u010du
+languages.mo=mold\u0101vu
+languages.mn=mongo\u013cu
+languages.frm=vidusfran\u010du
+languages.ml=malajalamie\u0161u
+languages.jrb=j\u016bdar\u0101bu
+languages.mk=ma\u0137edonie\u0161u
+languages.mi=maoru
+languages.mh=m\u0101r\u0161alie\u0161u
+languages.mg=malagasu
+languages.mwr=marvaru
+languages.bra=brad\u017eie\u0161u
+languages.mwl=mirandie\u0161u
+languages.den=sleivu
languages.lv=latvie\u0161u
-languages.cs=\u010dehu
-languages.he=ivrits
-languages.it=it\u0101lie\u0161u
+languages.lu=lubakatanga
+languages.del=delav\u0113ru
languages.lt=lietuvie\u0161u
+languages.lo=laosie\u0161u
+languages.ln=lingala
+languages.li=limburgie\u0161u
+languages.ewo=evondu
+languages.lg=gandu
+languages.lb=luksemburgie\u0161u
+languages.la=lat\u012b\u0146u
+languages.jpr=j\u016bdpersie\u0161u
+languages.vot=votu
+languages.sit=sinotibetie\u0161u valoda
+languages.ky=kirg\u012bzu
+languages.kw=kornie\u0161u
+languages.kv=komie\u0161u
+languages.ku=kurdu
+languages.sio=si\u016b valodas
+languages.ks=ka\u0161mirie\u0161u
+languages.kr=kanuru
+languages.awa=avadhu
+languages.ko=korejie\u0161u
+languages.kn=kannada
+languages.km=khmeru
+languages.kl=grenlandie\u0161u
+languages.kk=kazahu
+languages.rom=\u010dig\u0101nu
+languages.kj=kva\u0146amu
+languages.sid=sidamu
+languages.ki=kikuju
+languages.kg=kongu
+languages.non=sennorv\u0113\u0123u
+languages.ka=gruz\u012bnu
+languages.mus=kr\u012bku
+languages.roa=rom\u0101\u0146u valodas
+languages.nog=nogaju
+languages.mun=mundu valodas
+languages.mul=vair\u0101kas valodas
+languages.jv=javie\u0161u
+languages.gil=kiribatie\u0161u
+languages.znd=zand\u0113
+languages.shn=\u0161anu
+languages.fon=fonu
+languages.xal=kalmiku
+languages.aus=austr\u0101lie\u0161u valodas
+languages.kho=hotanie\u0161u
+languages.ja=jap\u0101\u0146u
+languages.khi=hojsanu valodas
+languages.pau=palavie\u0161u
+languages.chy=\u0161ejenu
+languages.tai=taju valoda
+languages.iu=inu\u012btu
+languages.pap=papjamento
+languages.it=it\u0101\u013cu
+languages.sgn=z\u012bmju valodas
+languages.is=islandie\u0161u
+languages.kha=khasu
+languages.chr=\u010diroku
+languages.pam=pampanganu
+languages.pal=pehlevi
+languages.chp=\u010dipevaianu
+languages.io=ido
+languages.cho=\u010doktavu
+languages.chn=\u010dinuku \u017eargons
+languages.chm=marie\u0161u
+languages.tyv=tuvie\u0161u
+languages.bnt=bantu
+languages.pag=pangasinanu
+languages.ik=inupiaku
+languages.chk=\u010d\u016bku
+languages.ii=Si\u010dua\u0146as ji
+languages.haw=havajie\u0161u
+languages.lam=lambu
+languages.ig=igbo
+languages.chg=d\u017eagatajs
+languages.sga=sen\u012bru
+languages.paa=papuasu valodas
+languages.ie=interlingue
+languages.id=indon\u0113zie\u0161u
+languages.lah=landu
+languages.day=dajaku
+languages.chb=\u010dib\u010du
+languages.ia=interlingva
+languages.lad=ladino
+languages.hz=hereru
+languages.hai=haidu
+languages.dar=dargu
+languages.hy=arm\u0113\u0146u
+languages.ath=atapasku valodas
+languages.hu=ung\u0101ru
+languages.ht=haitie\u0161u
+languages.dak=dakotu
+languages.hr=horv\u0101tu
+languages.ho=hirimotu
+languages.hi=hindi
+languages.dyu=di\u016blu
+languages.he=ivrits
+languages.ast=ast\u016brie\u0161u
+languages.kfo=koru
+languages.ha=hausu
+languages.wen=sorbu
+languages.gv=menie\u0161u
+languages.gu=gud\u017earatu
+languages.sem=sem\u012btu valodas
+languages.sel=selkupu
+languages.iro=irok\u0113zu valodas
+languages.gn=gvaranu
+languages.gl=galisie\u0161u
+languages.en_CA=Kan\u0101das ang\u013cu
+languages.arw=aravaku
+languages.gez=g\u0113zu
+languages.art=m\u0101ksl\u012bg\u0101s valodas
+languages.gd=skotu-\u0137eltu
+languages.ira=ir\u0101\u0146u valodas
+languages.ga=\u012bru
+languages.arp=arapahu
+languages.arn=arauk\u0101\u0146u
+languages.fy=fr\u012bzu
+languages.bla=siksiku
+languages.gem=\u0123erm\u0101\u0146u valodas
+languages.ypk=jupiku
+languages.arc=aramie\u0161u
languages.fr=fran\u010du
-languages.zh=\u0137\u012bnie\u0161u
-languages.ru=krievu
-languages.ro=rum\u0101\u0146u
+languages.fo=faroisu
+languages.cel=\u0137eltu valodas
+languages.fj=fid\u017eie\u0161u
languages.fi=somu
-languages.ar=ar\u0101bu
-languages.sv=zviedru
-languages.pt=portug\u0101\u013cu
-languages.pl=po\u013cu
-languages.sl=slov\u0113\u0146u
-languages.sk=slov\u0101ku
-languages.de=v\u0101cu
+languages.ff=fulu
+languages.tvl=tuvalie\u0161u
+languages.ceb=sebu\u0101\u0146u
+languages.fa=persie\u0161u
+languages.en_AU=Austr\u0101lijas ang\u013cu
+languages.zh_Hans=\u0137\u012bnie\u0161u vienk\u0101r\u0161ot\u0101
+languages.zh_Hant=\u0137\u012bnie\u0161u tradicion\u0101l\u0101
+languages.eu=basku
+languages.sco=skotu
languages.et=igau\u0146u
-languages.hu=ung\u0101ru
+languages.scn=sic\u012blie\u0161u
languages.es=sp\u0101\u0146u
+languages.eo=esperanto
+languages.en=ang\u013cu
+languages.el=grie\u0137u
+languages.tut=altajie\u0161u valoda
+languages.niu=niu\u0101\u0146u
+languages.tup=tupu
+languages.ee=evu
+languages.tum=tumbuku
+languages.nl_BE=fl\u0101mu
+languages.es_419=Lat\u012b\u0146amerikas sp\u0101\u0146u
+languages.mos=mosu
+languages.dz=dzongke
+languages.nic=nig\u0113rie\u0161u-kordof\u0101\u0146u valodas
+languages.lus=lu\u0161eju
+languages.fiu=somugru valoda
+languages.dv=mald\u012bvie\u0161u
+languages.nia=njasu
+languages.moh=mohauku
+languages.luo=luo
+languages.lun=lundu
+languages.apa=apa\u010du valodas
+languages.fil=tagalu
+languages.lui=luisenu
+languages.hup=hupu
+languages.bin=binu
+languages.de=v\u0101cu
+languages.lua=lubalulva
+languages.bik=bikolu
+languages.was=va\u0161o
+languages.und=nezin\u0101ma vai neder\u012bga valoda
+languages.war=varaju
languages.da=d\u0101\u0146u
-languages.hr=horv\u0101tu
+languages.dum=vidusholandie\u0161u
+languages.wal=valamu
+languages.mno=manobu valodas
+languages.wak=vaka\u0161u
+languages.sat=santalu
+languages.cy=velsie\u0161u
+languages.sas=sasaku
+languages.kbd=kabardie\u0161u
+languages.cv=\u010duva\u0161u
+languages.cu=bazn\u012bcsl\u0101vu
+languages.mni=manip\u016bru
+languages.cs=\u010dehu
+languages.sam=Sam\u0101rijas aramie\u0161u
+languages.cr=kr\u012b
+languages.sal=sali\u0161u valodas
+languages.dua=dualu
+languages.co=korsik\u0101\u0146u
+languages.sai=Dienvidamerikas indi\u0101\u0146u valoda
+languages.mnc=mand\u017e\u016bru
+languages.sah=jakutu
+languages.kaw=k\u0101vi
+languages.inh=ingu\u0161u
+languages.gba=gbaju
+languages.sad=sandavu
+languages.ch=\u010damorru
+languages.ine=indoeiropie\u0161u valoda
+languages.bho=bhod\u017ep\u016bru
+languages.enm=vidusang\u013cu
+languages.kar=karenu
+languages.inc=indo\u0101rie\u0161u valoda
+languages.ce=\u010de\u010denu
+languages.gay=gajo
+languages.ca=katal\u0101\u0146u
+languages.umb=umbundu
+languages.syr=s\u012brie\u0161u
+languages.kam=kambu
+languages.anp=angika
+languages.tsi=cim\u0161i\u0101\u0146u
+languages.ang=senang\u013cu
+languages.kac=ka\u010dinu
+languages.cau=kauk\u0101zie\u0161u valodas
+languages.kab=kabilu
+languages.kaa=karakalpaku
+languages.bs=bosnie\u0161u
+languages.car=kar\u012bbu
+languages.br=breto\u0146u
+languages.syc=klasisk\u0101 s\u012brie\u0161u
+languages.bo=tibetie\u0161u
+languages.bn=beng\u0101\u013cu
+languages.bm=bambaru
+languages.gaa=ga
+languages.cai=Centr\u0101lamerikas indi\u0101\u0146u valodas
+languages.bi=bi\u0161lam\u0101
+languages.bh=biharu
+languages.bg=bulg\u0101ru
+languages.be=baltkrievu
+languages.pt_BR=Braz\u012blijas portug\u0101\u013cu
+languages.cad=kadu
+languages.ba=ba\u0161k\u012bru
+languages.zu=zulu
+languages.zen=zenagu
+languages.pro=senprovansie\u0161u
+languages.hsb=aug\u0161sorbu
+languages.az=azerbaid\u017e\u0101\u0146u
+languages.ay=aimaru
+languages.av=av\u0101ru
+languages.as=asamie\u0161u
+languages.dsb=lejassorbu
+languages.ar=ar\u0101bu
+languages.ilo=iloku
+languages.elx=elamie\u0161u
+languages.zh=\u0137\u012bnie\u0161u
+languages.an=aragonie\u0161u
+languages.pra=pr\u0101krita valodas
+languages.am=amharu
+languages.new=nevaru
+languages.ak=akanu
+languages.za=d\u017euanu
+languages.en_US=ang\u013cu (ASV)
+languages.af=afrik\u0101\u0146u
+languages.ae=avesta
+languages.alt=dienvidaltajie\u0161u
+languages.ab=abh\u0101zu
+languages.aa=af\u0101ru
+languages.yo=jorubu
+languages.alg=algonkinu valodas
+languages.ale=aleutu
+languages.mkh=monkhmeru valoda
+languages.yi=jidi\u0161s
+languages.dra=drav\u012bdu valodas
+languages.ber=berberu
+languages.nds=lejasv\u0101cu
+languages.bem=bembu
+languages.bej=bed\u017eu
+languages.tpi=tokpisins
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mk.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mk.properties
index ea30eee..0579c4e 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mk.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mk.properties
@@ -7,47 +7,47 @@
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GuMtkHmsSEDFwWahKzUeygAZ
+localPatternChars=GuMtkHmsSEDFwWahKzUeygAZvcL
currenciesDisplayName.YDD=\u0408\u0435\u043c\u0435\u043d\u0441\u043a\u0438 \u0434\u0438\u0430\u043d\u0440
-currenciesDisplayName.TWD=\u0422\u0430\u0458\u0432\u0430\u043d\u0441\u043a\u0438 \u043d\u043e\u0432 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.KES=\u041a\u0435\u043d\u0438\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
-currenciesDisplayName.BYB=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u0440\u0443\u0431\u0459\u0430 (1994-1999)
+currenciesDisplayName.TWD=\u0422\u0430\u0458\u0432\u0430\u043d\u0441\u043a\u0438 \u043d\u043e\u0432 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.LKR=\u0428\u0440\u0438\u043b\u0430\u043d\u043a\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
-currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.BYB=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u0440\u0443\u0431\u0459\u0430 (1994-1999)
currenciesDisplayName.TJS=\u0422\u0430\u045f\u0438\u043a\u0438\u0441\u0442\u0430\u043d\u0442\u0441\u043a\u0438 \u0441\u043e\u043c\u043e\u043d\u0438
-currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
+currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.TJR=\u0442\u0430\u045f\u0438\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
-currenciesDisplayName.AFN=\u0410\u0432\u0433\u0430\u043d\u0438
+currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
currenciesDisplayName.GRD=\u0413\u0440\u0447\u043a\u0430 \u0434\u0440\u0430\u0445\u043c\u0430
+currenciesDisplayName.AFN=\u0410\u0432\u0433\u0430\u043d\u0438
currenciesDisplayName.IEP=\u0418\u0440\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441
-currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.ARP=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441 (1983-1985)
+currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.GEL=\u0413\u0440\u0443\u0437\u0438\u0441\u043a\u0438 \u043b\u0430\u0440\u0438
currenciesDisplayName.AFA=\u0410\u0432\u0433\u0430\u043d\u0438 (1927-2002)
currenciesDisplayName.CRC=\u041a\u043e\u0441\u0442\u0430\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u041a\u043e\u043b\u043e\u043d
currenciesDisplayName.FKP=\u0424\u0430\u043a\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
-currenciesDisplayName.HKD=\u0425\u043e\u043d\u0433\u043a\u043e\u0448\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.MDL=\u041c\u043e\u043b\u0434\u0430\u0432\u0441\u043a\u0438 \u043b\u0435\u0443
+currenciesDisplayName.HKD=\u0425\u043e\u043d\u0433\u043a\u043e\u0448\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.IQD=\u0418\u0440\u0430\u0447\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.SCR=\u0421\u0435\u0458\u0448\u0435\u043b\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
currenciesDisplayName.VUV=\u0412\u0430\u043d\u0430\u0442\u0441\u043a\u0438 \u0432\u0430\u0442\u0443
currenciesDisplayName.KPW=\u0421\u0435\u0432\u0435\u0440\u043d\u043e \u043a\u043e\u0440\u0435\u0458\u0441\u043a\u0438 \u0432\u043e\u043d
-currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0438\u0458\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
currenciesDisplayName.SOS=\u0421\u043e\u043c\u0430\u043b\u0438\u0458\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
+currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0438\u0458\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
currenciesDisplayName.AED=\u0414\u0438\u0440\u0445\u0430\u043c
-currenciesDisplayName.BWP=\u0411\u043e\u0446\u0432\u0430\u043d\u0442\u0441\u043a\u0430 \u041f\u0443\u043b\u0430
currenciesDisplayName.LVL=\u041b\u0430\u0442\u0432\u0438\u0458\u0441\u043a\u0438 \u043b\u0430\u0442
+currenciesDisplayName.BWP=\u0411\u043e\u0446\u0432\u0430\u043d\u0442\u0441\u043a\u0430 \u041f\u0443\u043b\u0430
currenciesDisplayName.RUR=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430 (1991-1998)
-currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0441\u043a\u0430 \u041f\u0435\u0437\u0435\u0442\u0430
-currenciesDisplayName.FJD=\u0424\u0438\u045f\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.MOP=\u041c\u0430\u043a\u0430\u043e \u043f\u0430\u0442\u0430\u043a\u0430
+currenciesDisplayName.FJD=\u0424\u0438\u045f\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0441\u043a\u0430 \u041f\u0435\u0437\u0435\u0442\u0430
currenciesDisplayName.RUB=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
currenciesDisplayName.NIC=\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0432\u0430\u043d\u0441\u043a\u0430 \u043a\u043e\u0440\u0434\u043e\u0431\u0430
-currenciesDisplayName.SBD=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.UZS=\u0423\u0417\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0421\u0443\u043c
-currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e\u0441
+currenciesDisplayName.SBD=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.THB=\u0422\u0430\u0438 \u0431\u0430\u0442
+currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e\u0441
currenciesDisplayName.LUF=\u041b\u0443\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0448\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.FIM=\u0424\u0438\u043d\u0441\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
currenciesDisplayName.SZL=\u0421\u0432\u0430\u0437\u0438\u043b\u0435\u043d\u0434\u0441\u043a\u0438 \u043b\u0438\u043b\u0430\u0433\u0435\u043d
@@ -55,35 +55,35 @@ currenciesDisplayName.MNT=\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u0441\u043a
currenciesDisplayName.SAR=\u0421\u0430\u0443\u0434\u0438\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
currenciesDisplayName.UAH=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0430 \u0445\u0440\u0438\u0432\u043d\u0438\u0458\u0430
currenciesDisplayName.HUF=\u0423\u043d\u0433\u0430\u0440\u0441\u043a\u0430 \u0444\u043e\u0440\u0438\u043d\u0442\u0430
-currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441
currenciesDisplayName.QAR=\u041a\u0432\u0430\u0442\u0430\u0440\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
+currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441
currenciesDisplayName.LTT=\u041b\u0438\u0442\u0432\u0430\u043d\u0438\u0441\u043a\u0438 \u043b\u0438\u0442\u0430\u0437
currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.GBP=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430 \u0424\u0443\u043d\u0442\u0430
-currenciesDisplayName.BIF=\u0411\u0443\u0440\u0438\u043d\u0434\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
-currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
currenciesDisplayName.ZRZ=\u0417\u0438\u0440\u0441\u043a\u043e \u0437\u0430\u0438\u0440\u0435
-currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u041a\u0432\u0430\u043d\u0437\u0430 (1990-2000)
+currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
+currenciesDisplayName.BIF=\u0411\u0443\u0440\u0438\u043d\u0434\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
currenciesDisplayName.LTL=\u041b\u0438\u0442\u0432\u0430\u043d\u0438\u0441\u043a\u0430 \u043b\u0438\u0442\u0430
-currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u043a\u0441\u0442\u0430\u043d\u0442\u0441\u043a\u0430 \u0442\u0435\u043d\u0433\u0430
-currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u0441\u043a\u0438 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u043d\u043e\u0432\u0430 \u041a\u0432\u0430\u043d\u0437\u0430 (1990-2000)
currenciesDisplayName.UYP=\u0423\u0440\u0443\u0433\u0432\u0430\u0458\u0441\u043a\u043e \u043f\u0435\u0441\u043e (1975-1993)
+currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u0441\u043a\u0438 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u043a\u0441\u0442\u0430\u043d\u0442\u0441\u043a\u0430 \u0442\u0435\u043d\u0433\u0430
currenciesDisplayName.AOK=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u041a\u0432\u0430\u043d\u0437\u0430 (1977-1990)
currenciesDisplayName.PGK=\u041f\u0430\u043f\u0443\u0430 \u043d\u043e\u0432\u043e\u0433\u0432\u0438\u043d\u0435\u0458\u0441\u043a\u0438\u0430 \u043a\u0438\u043d\u0430
currenciesDisplayName.SYP=\u0421\u0438\u0440\u0438\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
-currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.OMR=\u041e\u043c\u0430\u043d\u0441\u043a\u0438 \u0420\u0438\u0430\u043b
-currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0441\u043a\u0430 \u043d\u0430\u0438\u0440\u0430
+currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u0441\u043a\u043e \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.ZRN=\u0417\u0430\u0438\u0440\u0441\u043a\u043e \u043d\u043e\u0432\u043e\u0437\u0430\u0438\u0440\u0435
+currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0441\u043a\u0430 \u043d\u0430\u0438\u0440\u0430
currenciesDisplayName.AOA=\u0410\u043d\u0433\u043e\u043b\u0441\u043a\u0430 \u041a\u0432\u0430\u043d\u0437\u0430
currenciesDisplayName.MAF=\u041c\u0430\u0440\u043a\u043e\u043d\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.GNF=\u0413\u0432\u0438\u043d\u0435\u0458\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.HTG=\u0425\u0430\u0438\u0442\u0441\u043a\u0438 \u0433\u0443\u0440\u0434
currenciesDisplayName.MAD=\u041c\u0430\u0440\u043e\u043a\u0430\u043d\u0441\u043a\u0438 \u0414\u0438\u0440\u0445\u0430\u043c
+currenciesDisplayName.HTG=\u0425\u0430\u0438\u0442\u0441\u043a\u0438 \u0433\u0443\u0440\u0434
currenciesDisplayName.MYR=\u041c\u0430\u043b\u0430\u0437\u0438\u0441\u043a\u0438 \u0440\u0438\u043d\u0433\u0438\u0442
currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u043a\u043e \u043b\u043e\u0442\u0438
-currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0430\u0438\u043d\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440
currenciesDisplayName.SLL=\u0421\u0438\u0435\u0440\u0430\u043b\u0435\u043e\u043d\u0441\u043a\u043e \u043b\u0435\u043e\u043d\u0435
+currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0430\u0438\u043d\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440
currenciesDisplayName.TRL=\u0422\u0443\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
currenciesDisplayName.KMF=\u041a\u043e\u043c\u043e\u0440\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.CZK=\u0427\u0435\u0448\u043a\u0430 \u043a\u043e\u0440\u043e\u043d\u0430
@@ -93,14 +93,14 @@ currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438 \u041
currenciesDisplayName.BGL=\u0411\u0443\u0433\u0430\u0440\u0441\u043a\u0438 \u0446\u0432\u0440\u0441\u0442 \u043b\u0435\u0432
currenciesDisplayName.VEB=\u0412\u0435\u043d\u0435\u0446\u0443\u0435\u043b\u0441\u043a\u0438 \u0431\u043e\u043b\u0438\u0432\u0430\u0440
currenciesDisplayName.MLF=\u041c\u0430\u043b\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.ILS=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0438 \u043d\u043e\u0432 \u0448\u0435\u043a\u0435\u043b
currenciesDisplayName.MXP=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u0441\u0440\u0435\u0431\u0440\u0435\u043d \u043f\u0435\u0437\u043e\u0441 (1861-1992)
+currenciesDisplayName.ILS=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0438 \u043d\u043e\u0432 \u0448\u0435\u043a\u0435\u043b
currenciesDisplayName.PES=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438 \u0441\u043e\u043b
-currenciesDisplayName.GYD=\u0413\u0432\u0438\u0458\u0430\u043d\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
currenciesDisplayName.MXN=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e\u0441
+currenciesDisplayName.GYD=\u0413\u0432\u0438\u0458\u0430\u043d\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
currenciesDisplayName.ILP=\u0418\u0437\u0440\u0435\u043b\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
-currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0447\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
currenciesDisplayName.CYP=\u041a\u0438\u043f\u0430\u0440\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
+currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0447\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
currenciesDisplayName.PEN=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438 \u043d\u043e\u0432 \u0441\u043e\u043b
currenciesDisplayName.LRD=\u041b\u0438\u0431\u0435\u0440\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.AMD=\u0415\u0440\u043c\u0435\u043d\u0438\u0441\u043a\u0438 \u0414\u0440\u0430\u043c
@@ -112,17 +112,17 @@ currenciesDisplayName.MKD=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a
currenciesDisplayName.ALL=\u0410\u043b\u0431\u0430\u043d\u0441\u043a\u0438 \u041b\u0435\u043a
currenciesDisplayName.TPE=\u0422\u0438\u043c\u043e\u0440\u0441\u043a\u0438 \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.DEM=\u0413\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0430 \u041c\u0430\u0440\u043a\u0430
-currenciesDisplayName.KWD=\u041a\u0443\u0432\u0430\u0458\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.XCD=\u0418\u0441\u0442\u043e\u0447\u043d\u043e \u043a\u0430\u0440\u0438\u0431\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.KWD=\u041a\u0443\u0432\u0430\u0458\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.NPR=\u041d\u0435\u043f\u0430\u043b\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
currenciesDisplayName.GWP=\u0413\u0432\u0438\u043d\u0435\u0458\u0441\u043a\u0438 \u0411\u0438\u0441\u0430\u0443 \u043f\u0435\u0437\u043e\u0441
currenciesDisplayName.YUN=\u0408\u0443\u0433\u043e\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0431\u0438\u043b\u0435\u043d \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.SVC=\u0415\u043b\u0441\u0430\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u0438 \u043a\u043e\u043b\u043e\u043d
-currenciesDisplayName.BEL=\u0411\u0435\u043b\u0433\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a (\u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0441\u043a\u0438)
currenciesDisplayName.SIT=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438 \u0442\u043e\u043b\u0430\u0440
+currenciesDisplayName.BEL=\u0411\u0435\u043b\u0433\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a (\u0444\u0438\u043d\u0430\u043d\u0441\u0438\u0441\u043a\u0438)
currenciesDisplayName.JPY=\u0408\u0430\u043f\u043e\u043d\u0441\u043a\u0438 \u0458\u0435\u043d
-currenciesDisplayName.BEF=\u0411\u0435\u043b\u0433\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
currenciesDisplayName.YUD=\u0408\u0443\u0433\u043e\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.BEF=\u0411\u0435\u043b\u0433\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
currenciesDisplayName.BEC=\u0411\u0435\u043b\u0433\u0438\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0431\u0438\u043b\u0435\u043d)
currenciesDisplayName.SUR=\u0421\u043e\u0432\u0435\u0442\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
currenciesDisplayName.ROL=\u0420\u043e\u043c\u0430\u043d\u0441\u043a\u0430 \u043b\u0435\u0430
@@ -140,46 +140,46 @@ currenciesDisplayName.LBP=\u041b\u0438\u0431\u0438\u0441\u043a\u0430 \u0444\u044
currenciesDisplayName.UGS=\u0423\u0433\u0430\u043d\u0434\u0438\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433 (1966-1987)
currenciesDisplayName.WST=\u0421\u0430\u043c\u043e\u0430 \u0442\u0430\u043b\u0430
currenciesDisplayName.KHR=\u041a\u0430\u043c\u0431\u043e\u045f\u0438\u0441\u043a\u0438 \u0440\u0435\u043b
-currenciesDisplayName.DOP=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441
currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
-currenciesDisplayName.MTP=\u041c\u0430\u043b\u0442\u0438\u0441\u043a\u0430 \u0444\u0438\u043d\u0442\u0430
+currenciesDisplayName.DOP=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0438 \u041f\u0435\u0437\u043e\u0441
currenciesDisplayName.USS=\u0421\u0410\u0414 \u0434\u043e\u043b\u0430\u0440 (Same day)
-currenciesDisplayName.CUP=\u041a\u0443\u0431\u0430\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e\u0441
-currenciesDisplayName.MTL=\u041c\u0430\u043b\u0442\u0438\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.MTP=\u041c\u0430\u043b\u0442\u0438\u0441\u043a\u0430 \u0444\u0438\u043d\u0442\u0430
currenciesDisplayName.TMM=\u0422\u0443\u0440\u043c\u0435\u043d\u0442\u0438\u0441\u0442\u0430\u043d\u0442\u0441\u043a\u0438 \u043c\u0430\u0442\u0430\u0442
+currenciesDisplayName.MTL=\u041c\u0430\u043b\u0442\u0438\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.CUP=\u041a\u0443\u0431\u0430\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e\u0441
currenciesDisplayName.USN=\u0421\u0410\u0414 \u0434\u043e\u043b\u0430\u0440 (Next day)
currenciesDisplayName.SGD=\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440\u0441\u043a\u0438 \u0434\u043e\u0430\u043b\u0440
currenciesDisplayName.NZD=\u041d\u043e\u0432\u043e\u0437\u0435\u043b\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.USD=\u0421\u0410\u0414 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.HNL=\u0425\u043e\u043d\u0434\u0443\u0440\u0441\u043a\u0430 \u043b\u0435\u043c\u043f\u0438\u0440\u0430
-currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u0430 \u0431\u0430\u043b\u0431\u043e\u0430
currenciesDisplayName.ITL=\u0418\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u043a\u0441\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u0430 \u0431\u0430\u043b\u0431\u043e\u0430
currenciesDisplayName.GTQ=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0441\u043a\u0438 \u043a\u0432\u0435\u0442\u0446\u0430\u043b
-currenciesDisplayName.NAD=\u041d\u0430\u043c\u0438\u0431\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u043a\u0438 \u043a\u0438\u043f
-currenciesDisplayName.GHC=\u0413\u0430\u043d\u0430\u0458\u0441\u043a\u0438 \u0421\u0435\u0434\u0438
currenciesDisplayName.AUD=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
+currenciesDisplayName.GHC=\u0413\u0430\u043d\u0430\u0458\u0441\u043a\u0438 \u0421\u0435\u0434\u0438
+currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u043a\u0438 \u043a\u0438\u043f
+currenciesDisplayName.NAD=\u041d\u0430\u043c\u0438\u0431\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.KGS=\u041a\u0438\u0440\u0433\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0441\u043e\u043c
-currenciesDisplayName.CHF=\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
currenciesDisplayName.BBD=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
+currenciesDisplayName.CHF=\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0438 \u0424\u0440\u0430\u043d\u043a
currenciesDisplayName.PYG=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0458\u0441\u043a\u0430 \u0433\u0443\u0430\u0440\u0430\u043d\u0430
currenciesDisplayName.PLZ=\u041f\u043e\u043b\u0441\u043a\u0430 \u0437\u043b\u043e\u0442\u0430 (1950-1995)
currenciesDisplayName.YER=\u0408\u0435\u043c\u0435\u043d\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
currenciesDisplayName.ATS=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0441\u043a\u0438 \u0428\u0438\u043b\u0438\u043d\u0433
currenciesDisplayName.ETB=\u0415\u0442\u0438\u043e\u043f\u0438\u0441\u043a\u0438 \u0411\u0438\u0440
currenciesDisplayName.BND=\u0411\u0440\u0443\u043d\u0435\u0458\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.PLN=\u041f\u043e\u043b\u0441\u043a\u0430 \u0437\u043b\u043e\u0442\u0430
-currenciesDisplayName.JMD=\u0408\u0430\u043c\u0430\u0458\u043a\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.EGP=\u0415\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0430 \u0424\u0443\u043d\u0442\u0430
+currenciesDisplayName.JMD=\u0408\u0430\u043c\u0430\u0458\u043a\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.PLN=\u041f\u043e\u043b\u0441\u043a\u0430 \u0437\u043b\u043e\u0442\u0430
currenciesDisplayName.DZD=\u0410\u043b\u0433\u0435\u0440\u0438\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440
currenciesDisplayName.ISK=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.SRG=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u043a\u0438 \u0433\u0438\u043b\u0434\u0435\u0440
currenciesDisplayName.LYD=\u041b\u0438\u0431\u0438\u0458\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.BZD=\u0411\u0435\u043b\u0438\u0437\u0438\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
currenciesDisplayName.BAM=\u0411\u043e\u0441\u0430\u043d\u0441\u043a\u043e-\u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0431\u0438\u043b\u043d\u0430 \u043c\u0430\u0440\u043a\u0430
+currenciesDisplayName.BZD=\u0411\u0435\u043b\u0438\u0437\u0438\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
currenciesDisplayName.ESP=\u0428\u043f\u0430\u043d\u0441\u043a\u0430 \u041f\u0435\u0437\u0435\u0442\u0430
-currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0438\u043b\u0434\u0435\u0440
currenciesDisplayName.KRW=\u0408\u0443\u0436\u043d\u043e \u043a\u043e\u0440\u0435\u0458\u0441\u043a\u0438 \u0432\u043e\u043d
+currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0438\u043b\u0434\u0435\u0440
currenciesDisplayName.BAD=\u0411\u043e\u0441\u0430\u043d\u0441\u043a\u043e-\u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440
currenciesDisplayName.ZWD=\u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0438\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.SEK=\u0428\u0432\u0435\u0434\u0441\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
@@ -188,26 +188,26 @@ currenciesDisplayName.BYR=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0430
currenciesDisplayName.IRR=\u0418\u0440\u0430\u043d\u0441\u043a\u0438 \u0440\u0438\u0430\u043b
currenciesDisplayName.PKR=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0458\u0430
currenciesDisplayName.BMD=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440
-currenciesSymbol.BGL=lev
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
currenciesSymbol.ALL=lek
@@ -221,35 +221,34 @@ currenciesSymbol.SZL=E
currenciesSymbol.SAR=SRl
currenciesSymbol.FJD=F$
currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
-currenciesSymbol.YER=YRl
currenciesSymbol.HUF=Ft
+currenciesSymbol.YER=YRl
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
currenciesSymbol.MYR=RM
currenciesSymbol.SRG=Sf
-currenciesSymbol.BIF=Fbu
currenciesSymbol.GTQ=Q
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
+currenciesSymbol.BIF=Fbu
currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.KMF=CF
currenciesSymbol.SEK=SKr
@@ -261,8 +260,8 @@ currenciesSymbol.CHF=SwF
currenciesSymbol.ETB=Br
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.TWD=NT$
currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.BZD=BZ$
@@ -270,16 +269,20 @@ currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=\u0458\u0430\u043d.®\u0444\u0435\u0432.®\u043c\u0430\u0440.®\u0430\u043f\u0440.®\u043c\u0430\u0458.®\u0458\u0443\u043d.®\u0458\u0443\u043b.®\u0430\u0432\u0433.®\u0441\u0435\u043f\u0442.®\u043e\u043a\u0442.®\u043d\u043e\u0435\u043c.®\u0434\u0435\u043a\u0435\u043c.®®
-months=\u0458\u0430\u043d\u0443\u0430\u0440\u0438®\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438®\u043c\u0430\u0440\u0442®\u0430\u043f\u0440\u0438\u043b®\u043c\u0430\u0458®\u0458\u0443\u043d\u0438®\u0458\u0443\u043b\u0438®\u0430\u0432\u0433\u0443\u0441\u0442®\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438®\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438®\u043d\u043e\u0435\u043c\u0432\u0440\u0438®\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438®®
-shortWeekdays=®\u043d\u0435\u0434.®\u043f\u043e\u043d.®\u0432\u0442.®\u0441\u0440\u0435.®\u0447\u0435\u0442.®\u043f\u0435\u0442.®\u0441\u0430\u0431.®
-weekdays=®\u043d\u0435\u0434\u0435\u043b\u0430®\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a®\u0432\u0442\u043e\u0440\u043d\u0438\u043a®\u0441\u0440\u0435\u0434\u0430®\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a®\u043f\u0435\u0442\u043e\u043a®\u0441\u0430\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u043f\u0440.\u043d.\u0435.®\u0430\u0435.®
+shortMonths=\u0458\u0430\u043d.\u00ae\u0444\u0435\u0432.\u00ae\u043c\u0430\u0440.\u00ae\u0430\u043f\u0440.\u00ae\u043c\u0430\u0458\u00ae\u0458\u0443\u043d.\u00ae\u0458\u0443\u043b.\u00ae\u0430\u0432\u0433.\u00ae\u0441\u0435\u043f\u0442.\u00ae\u043e\u043a\u0442.\u00ae\u043d\u043e\u0435\u043c.\u00ae\u0434\u0435\u043a\u0435\u043c.\u00ae\u00ae
+months=\u0458\u0430\u043d\u0443\u0430\u0440\u0438\u00ae\u0444\u0435\u0432\u0440\u0443\u0430\u0440\u0438\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440\u0438\u043b\u00ae\u043c\u0430\u0458\u00ae\u0458\u0443\u043d\u0438\u00ae\u0458\u0443\u043b\u0438\u00ae\u0430\u0432\u0433\u0443\u0441\u0442\u00ae\u0441\u0435\u043f\u0442\u0435\u043c\u0432\u0440\u0438\u00ae\u043e\u043a\u0442\u043e\u043c\u0432\u0440\u0438\u00ae\u043d\u043e\u0435\u043c\u0432\u0440\u0438\u00ae\u0434\u0435\u043a\u0435\u043c\u0432\u0440\u0438\u00ae\u00ae
+shortWeekdays=\u00ae\u043d\u0435\u0434.\u00ae\u043f\u043e\u043d.\u00ae\u0432\u0442.\u00ae\u0441\u0440\u0435.\u00ae\u0447\u0435\u0442.\u00ae\u043f\u0435\u0442.\u00ae\u0441\u0430\u0431.\u00ae
+weekdays=\u00ae\u043d\u0435\u0434\u0435\u043b\u0430\u00ae\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u043d\u0438\u043a\u00ae\u0432\u0442\u043e\u0440\u043d\u0438\u043a\u00ae\u0441\u0440\u0435\u0434\u0430\u00ae\u0447\u0435\u0442\u0432\u0440\u0442\u043e\u043a\u00ae\u043f\u0435\u0442\u043e\u043a\u00ae\u0441\u0430\u0431\u043e\u0442\u0430\u00ae
+eras=\u043f\u0440.\u043d.\u0435.\u00ae\u0430\u0435.\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=dd.M.yy
mediumDateFormat=dd.M.yyyy
longDateFormat=dd MMMM yyyy
fullDateFormat=EEEE, dd MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
territories.TL=\u0418\u0441\u0442\u043e\u0447\u0435\u043d \u0422\u0438\u043c\u043e\u0440
territories.TK=\u0422\u043e\u043a\u0435\u043b\u0430\u0443
territories.TJ=\u0422\u0430\u045f\u0438\u043a\u0438\u0441\u0442\u0430\u043d
@@ -439,12 +442,12 @@ territories.AI=\u0410\u043d\u0433\u0432\u0438\u043b\u0430
territories.MS=\u041c\u043e\u043d\u0441\u0435\u0440\u0430\u0442
territories.MR=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0438\u0458\u0430
territories.AG=\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
-territories.AF=\u0410\u0432\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d
territories.MQ=\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a
-territories.AE=\u041e\u0431\u0435\u0434\u0438\u043d\u0435\u0442\u0438 \u0410\u0440\u0430\u043f\u0441\u043a\u0438 \u0415\u043c\u0438\u0440\u0430\u0442\u0438
+territories.AF=\u0410\u0432\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d
territories.MP=\u0421\u0435\u0432\u0435\u0440\u043d\u0438 \u041c\u0430\u0440\u0438\u0458\u0430\u043d\u0438\u043d\u0438 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
-territories.AD=\u0410\u043d\u0434\u043e\u0440\u0430
+territories.AE=\u041e\u0431\u0435\u0434\u0438\u043d\u0435\u0442\u0438 \u0410\u0440\u0430\u043f\u0441\u043a\u0438 \u0415\u043c\u0438\u0440\u0430\u0442\u0438
territories.MO=\u041c\u0430\u043a\u0430\u043e \u0421.\u0410.\u0420 \u041a\u0438\u043d\u0430
+territories.AD=\u0410\u043d\u0434\u043e\u0440\u0430
territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u0458\u0430
territories.MM=\u041c\u0443\u0430\u043d\u043c\u0430\u0440
territories.ML=\u041c\u0430\u043b\u0438
@@ -518,4 +521,105 @@ territories.TR=\u0422\u0443\u0440\u0446\u0438\u0458\u0430
territories.TO=\u0422\u043e\u043d\u0433\u0430
territories.TN=\u0422\u0443\u043d\u0438\u0441
territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d
+languages.es=\u0448\u043f\u0430\u043d\u0441\u043a\u0438
+languages.ku=\u043a\u0443\u0440\u0434\u0441\u043a\u0438
+languages.eo=\u0435\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0430\u043d\u0433\u043b\u0438\u0441\u043a\u0438
+languages.el=\u0433\u0440\u0447\u043a\u0438
+languages.ko=\u043a\u043e\u0440\u0435\u0458\u0441\u043a\u0438
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.km=\u043a\u0430\u043c\u0431\u043e\u045f\u0430\u043d\u0441\u043a\u0438
+languages.ka=\u0433\u0440\u0443\u0437\u0438\u0441\u043a\u0438
+languages.jv=\u0458\u0430\u0432\u0430\u043d\u0441\u043a\u0438
+languages.fil=\u0442\u0430\u0433\u0430\u043b\u043e\u0433 (\u0444\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438)
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
+languages.ps=\u043f\u0430\u0448\u0442\u043e
+languages.de=\u0433\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.pl=\u043f\u043e\u043b\u0441\u043a\u0438
+languages.da=\u0434\u0430\u043d\u0441\u043a\u0438
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d\u0441\u043a\u0438
+languages.ja=\u0458\u0430\u043f\u043e\u043d\u0441\u043a\u0438
+languages.vi=\u0432\u0438\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438
+languages.cy=\u0432\u0435\u043b\u0448\u043a\u0438
+languages.pa=\u043f\u0443\u043d\u045f\u0430\u0431\u0438
+languages.cs=\u0447\u0435\u0448\u043a\u0438
+languages.it=\u0438\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0438
+languages.is=\u0438\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.uz=\u0443\u0437\u0431\u0435\u0447\u043a\u0438
+languages.or=\u043e\u0440\u0438\u0458\u0430
+languages.ur=\u0443\u0440\u0434\u0443
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438
+languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0441\u043a\u0438
+languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438
+languages.ia=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0430
+languages.oc=\u043e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438
+languages.ug=\u0443\u0458\u0433\u0443\u0440\u0441\u043a\u0438
+languages.hy=\u0435\u0440\u043c\u0435\u043d\u0441\u043a\u0438
+languages.bs=\u0431\u043e\u0441\u0430\u043d\u0441\u043a\u0438
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438
+languages.hu=\u0443\u043d\u0433\u0430\u0440\u0441\u043a\u0438
+languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b\u0441\u043a\u0438
+languages.pt_PT=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u0432\u043e \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u0458\u0430)
+languages.hr=\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.tw=\u0442\u0432\u0438 (\u0434\u0438\u0430\u043b\u0435\u043a\u0442 \u043d\u0430 \u0430\u043a\u0430\u043d\u0441\u043a\u0438\u043e\u0442 \u0458\u0430\u0437\u0438\u043a)
+languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438
+languages.bg=\u0431\u0443\u0433\u0430\u0440\u0441\u043a\u0438
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0448\u043a\u0438
+languages.be=\u0431\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0438
+languages.nn=\u043d\u043e\u0440\u0432\u0435\u0448\u043a\u0438 (\u041d\u0438\u043d\u043e\u0440\u0448\u043a)
+languages.hi=\u0445\u0438\u043d\u0434\u0438
+languages.tr=\u0442\u0443\u0440\u0441\u043a\u0438
+languages.nl=\u0445\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.zu=\u0437\u0443\u043b\u0443
+languages.he=\u0445\u0435\u0431\u0440\u0435\u0458\u0441\u043a\u0438
+languages.tk=\u0442\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438
+languages.ne=\u043d\u0435\u043f\u0430\u043b\u0441\u043a\u0438
+languages.az=\u0430\u0437\u0435\u0440\u0431\u0435\u0458\u045f\u0430\u043d\u0441\u043a\u0438
+languages.ti=\u0442\u0438\u0433\u0440\u0435\u0458\u0441\u043a\u0438
+languages.th=\u0442\u0430\u0458\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.te=\u0442\u0435\u043b\u0443\u0433\u0443
+languages.zh=\u043a\u0438\u043d\u0435\u0441\u043a\u0438
+languages.as=\u0430\u0441\u0430\u043c\u0441\u043a\u0438
+languages.ar=\u0430\u0440\u0430\u043f\u0441\u043a\u0438
+languages.ta=\u0442\u0430\u043c\u0438\u043b\u0441\u043a\u0438
+languages.gu=\u0433\u0443\u045f\u0430\u0440\u0430\u0442\u0438
+languages.am=\u0430\u043c\u0445\u0430\u0440\u0438\u0441\u043a\u0438
+languages.mt=\u043c\u0430\u043b\u0442\u0435\u0448\u043a\u0438
+languages.ms=\u043c\u0430\u043b\u0435\u0437\u0438\u0441\u043a\u0438
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0438
+languages.sw=\u0441\u0432\u0430\u0445\u0438\u043b\u0438
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0438
+languages.sv=\u0448\u0432\u0435\u0434\u0441\u043a\u0438
+languages.gl=\u0433\u0430\u043b\u0438\u0446\u0438\u0441\u043a\u0438
+languages.af=\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438
+languages.st=\u0441\u0435\u0441\u043e\u0442\u043e
+languages.mn=\u043c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438
+languages.sr=\u0441\u0440\u043f\u0441\u043a\u0438
+languages.sq=\u0430\u043b\u0431\u0430\u043d\u0441\u043a\u0438
+languages.ml=\u043c\u0430\u043b\u0430\u0458\u0430\u043b\u0430\u043c
languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438
+languages.so=\u0441\u043e\u043c\u0430\u043b\u0438\u0441\u043a\u0438
+languages.gd=\u0448\u043a\u043e\u0442\u0441\u043a\u043e \u0433\u0430\u043b\u0441\u043a\u0438
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0435\u0447\u043a\u0438 \u0458\u0430\u0437\u0438\u043a
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u0447\u043a\u0438
+languages.ga=\u0438\u0440\u0441\u043a\u0438
+languages.si=\u0441\u0438\u043d\u0445\u0430\u043b\u0438\u0441\u043a\u0438
+languages.sh=\u0441\u0440\u043f\u0441\u043a\u043e-\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.pt_BR=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u0432\u043e \u0411\u0440\u0430\u0437\u0438\u043b)
+languages.yi=\u0458\u0438\u0434\u0441\u043a\u0438
+languages.sd=\u0441\u0438\u043d\u0434\u0438
+languages.fy=\u0444\u0440\u0438\u0437\u0438\u0441\u043a\u0438
+languages.sa=\u0441\u0430\u043d\u0441\u043a\u0440\u0438\u0442
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0438
+languages.lv=\u043b\u0430\u0442\u0432\u0438\u0441\u043a\u0438
+languages.lt=\u043b\u0438\u0442\u0432\u0430\u043d\u0441\u043a\u0438
+languages.fo=\u0444\u0430\u0440\u0441\u043a\u0438
+languages.ru=\u0440\u0443\u0441\u043a\u0438
+languages.fi=\u0444\u0438\u043d\u0441\u043a\u0438
+languages.ro=\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438
+languages.fa=\u043f\u0435\u0440\u0441\u0438\u0441\u043a\u0438
+languages.la=\u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438
+languages.xh=\u0445\u0430\u0443\u0441\u0430
+languages.eu=\u0431\u0430\u0441\u043a\u0438\u0441\u043a\u0438
+languages.ky=\u043a\u0438\u0440\u0433\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438
+languages.et=\u0435\u0441\u0442\u043e\u043d\u0441\u043a\u0438
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ml.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ml.properties
index f237bb0..4b15b40 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ml.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ml.properties
@@ -5,11 +5,1183 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-zeroDigit=\u0d66
-shortMonths=\u0d1c\u0d28\u0d41®\u0d2b\u0d3f\u0d2c\u0d4d®\u0d2e\u0d3e\u0d31\u0d4d\u0d05®\u0d0f\u0d2a\u0d4d\u0d31\u0d3f\u0d32\u0d4d\u0d05®\u0d2e\u0d46\u0d2f\u0d4d®\u0d1c\u0d42\u0d23\u0d4d\u0d05®\u0d1c\u0d42\u0d48\u0d32®\u0d06\u0d17®\u0d38\u0d46\u0d2a\u0d4d\u0d24\u0d02®\u0d12\u0d15\u0d4d\u0d1f®\u0d28\u0d35\u0d02®\u0d21\u0d3f\u0d38\u0d02®®
-months=\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f®\u0d2b\u0d3f\u0d2c\u0d4d\u0d31\u0d35\u0d30\u0d3f®\u0d2e\u0d3e\u0d31\u0d4d\u0d05\u0d1a\u0d4d\u0d05\u0d1a\u0d4d®\u0d0f\u0d2a\u0d4d\u0d31\u0d3f\u0d32\u0d4d\u0d05®\u0d2e\u0d46\u0d2f\u0d4d®\u0d1c\u0d42\u0d23\u0d4d\u0d05®\u0d1c\u0d42\u0d48\u0d32®\u0d06\u0d17\u0d38\u0d4d\u0d24\u0d4d\u0d05®\u0d38\u0d46\u0d2a\u0d4d\u0d24\u0d02\u0d2c\u0d31\u0d4d\u0d05®\u0d12\u0d15\u0d4d\u0d1f\u0d48\u0d2c\u0d31\u0d4d\u0d05®\u0d28\u0d35\u0d02\u0d2c\u0d31\u0d4d\u0d05®\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d31\u0d4d\u0d05®®
-shortWeekdays=®\u0d1e\u0d3e®\u0d24\u0d3f®\u0d1a\u0d4a®\u0d2c\u0d41®\u0d35\u0d4d\u0d2f®\u0d35\u0d46®\u0d36®
-weekdays=®\u0d1e\u0d3e\u0d2f\u0d31\u0d4d\u0d05®\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d4d\u0d05®\u0d1a\u0d4a\u0d35\u0d4d\u0d35®\u0d2c\u0d41\u0d28\u0d2d\u0d4d\u0d05®\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02®\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f®\u0d36\u0d28\u0d3f®
-ampms=\u0d30\u0d3e\u0d35\u0d3f\u0d32\u0d46®\u0d35\u0d48\u0d15\u0d41®
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=\u0d38\u0d02\u0d16\u0d4d\u0d2f\u0d2f\u0d32\u0d4d\u0d32
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##,##0%
+currencyFormat=#,##,##0.00\u00a4;-#,##,##0.00\u00a4
+currenciesDisplayName.YDD=\u0d2f\u0d2e\u0d28\u0d3f \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.KES=\u0d15\u0d46\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d37\u0d3f\u0d32\u0d4d\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d38\u0d4d
+currenciesDisplayName.TWD=\u0d24\u0d3e\u0d2f\u0d4d\u200c\u0d35\u0d3e\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.LKR=LKR
+currenciesDisplayName.BYB=\u0d2c\u0d46\u0d32\u0d3e\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d4d\u0d2f\u0d42 \u0d31\u0d42\u0d2c\u0d3f\u0d33\u0d4d\u200d\u0d38\u0d4d (BYB)
+currenciesDisplayName.TJS=\u0d24\u0d1c\u0d3f\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4a\u0d2e\u0d4b\u0d28\u0d3f\u0d38\u0d4d
+currenciesDisplayName.RWF=RWF
+currenciesDisplayName.ERN=\u0d0e\u0d31\u0d3f\u0d24\u0d4d\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d15\u0d4d\u0d2b\u0d3e\u0d38\u0d4d
+currenciesDisplayName.TJR=\u0d24\u0d1c\u0d3f\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d31\u0d42\u0d2c\u0d3f\u0d33\u0d4d\u200d
+currenciesDisplayName.SDP=SDP
+currenciesDisplayName.GRD=\u0d17\u0d4d\u0d30\u0d40\u0d15\u0d4d\u0d15\u0d4d \u0d21\u0d4d\u0d30\u0d3e\u0d15\u0d4d\u0d15\u0d4d\u0d2e\u0d3e\u0d38\u0d4d
+currenciesDisplayName.AFN=\u0d05\u0d2b\u0d4d\u0d18\u0d3e\u0d28\u0d3f\u0d38\u0d4d
+currenciesDisplayName.IEP=\u0d10\u0d31\u0d3f\u0d37\u0d4d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ARS=\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.SDG=SDG
+currenciesDisplayName.ARP=\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d (ARP)
+currenciesDisplayName.SDD=SDD
+currenciesDisplayName.GEL=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d32\u0d3e\u0d30\u0d3f\u0d38\u0d4d
+currenciesDisplayName.GEK=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d2f\u0d42\u0d2a\u0d4b\u0d23\u0d4d\u200d \u0d32\u0d3e\u0d30\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.AFA=\u0d05\u0d2b\u0d4d\u0d18\u0d3e\u0d28\u0d3f\u0d38\u0d4d (AFA)
+currenciesDisplayName.CRC=\u0d15\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e \u0d31\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d15\u0d4b\u0d33\u0d28\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.FKP=\u0d2b\u0d4b\u0d15\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d41\u0d1f\u0d46 \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.EEK=\u0d0e\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4c\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d42\u0d23\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.MDL=MDL
+currenciesDisplayName.HKD=\u0d39\u0d4b\u0d19\u0d4d \u0d15\u0d4b\u0d19\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.IQD=\u0d07\u0d31\u0d3e\u0d15\u0d4d\u0d15\u0d3f \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ARA=\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28\u0d4d\u200d \u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.SCR=SCR
+currenciesDisplayName.VUV=\u0d35\u0d28\u0d41\u0d35\u0d3e\u0d24\u0d41 \u0d35\u0d3e\u0d24\u0d42\u0d38\u0d4d
+currenciesDisplayName.KPW=KPW
+currenciesDisplayName.DKK=\u0d21\u0d3e\u0d28\u0d3f\u0d37\u0d4d \u0d15\u0d4d\u0d30\u0d4b\u0d23\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.IDR=\u0d07\u0d28\u0d4d\u0d24\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d30\u0d42\u0d2a
+currenciesDisplayName.GQE=\u0d07\u0d15\u0d4d\u0d35\u0d3f\u0d31\u0d4d\u0d31\u0d4b\u0d31\u0d3f\u0d2f\u0d32\u0d4d\u200d \u0d17\u0d3f\u0d28\u0d3f \u0d0e\u0d15\u0d4d\u0d35\u0d40\u0d32\u0d46
+currenciesDisplayName.SOS=SOS
+currenciesDisplayName.LVR=LVR
+currenciesDisplayName.EQE=\u0d0e\u0d15\u0d4d\u0d35\u0d40\u0d32\u0d46\u0d38\u0d4d
+currenciesDisplayName.AED=\u0d2f\u0d41.\u0d0e.\u0d07. \u0d26\u0d3f\u0d30\u0d4d\u200d\u0d39\u0d02\u0d38\u0d4d
+currenciesDisplayName.LVL=LVL
+currenciesDisplayName.BWP=\u0d2c\u0d4b\u0d1f\u0d4d\u0d38\u0d4d\u0d35\u0d3e\u0d28\u0d28\u0d4d\u200d \u0d2a\u0d4d\u0d2f\u0d42\u0d32\u0d3e\u0d38\u0d4d
+currenciesDisplayName.RUR=RUR
+currenciesDisplayName.NIO=NIO
+currenciesDisplayName.XTS=\u0d31\u0d4d\u0d31\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3f\u0d02\u0d17\u0d4d \u0d15\u0d31\u0d28\u0d4d\u200d\u0d38\u0d3f \u0d15\u0d4b\u0d21\u0d4d
+currenciesDisplayName.MOP=\u0d2e\u0d15\u0d4c \u0d2a\u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d38\u0d4d
+currenciesDisplayName.FJD=\u0d2b\u0d3f\u0d1c\u0d3f \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ADP=\u0d05\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d31\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d38\u0d4d
+currenciesDisplayName.RUB=\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d31\u0d42\u0d2c\u0d3f\u0d33\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.CDF=\u0d15\u0d4b\u0d19\u0d4d\u0d15\u0d33\u0d40\u0d38\u0d4d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d \u0d15\u0d4b\u0d19\u0d4d\u0d15\u0d4a\u0d33\u0d48\u0d38\u0d4d
+currenciesDisplayName.NIC=NIC
+currenciesDisplayName.DJF=\u0d1c\u0d40\u0d2c\u0d4b\u0d1f\u0d4d\u0d1f\u0d3f \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.UZS=\u0d09\u0d38\u0d4d\u0d2c\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d02\u0d38\u0d4d
+currenciesDisplayName.SBD=SBD
+currenciesDisplayName.ECV=\u0d07\u0d15\u0d4d\u0d35\u0d21\u0d4b\u0d30\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d21\u0d3e\u0d21\u0d4d\u0d38\u0d4d \u0d21\u0d3f \u0d35\u0d3e\u0d32\u0d30\u0d4d\u200d \u0d15\u0d4b\u0d23\u0d4d\u200d\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d28\u0d4d\u200d\u0d31\u0d46 (UVC)
+currenciesDisplayName.LUL=LUL
+currenciesDisplayName.ECS=\u0d07\u0d15\u0d4d\u0d35\u0d21\u0d4b\u0d30\u0d4d\u200d \u0d38\u0d42\u0d15\u0d4d\u0d30\u0d47\u0d38\u0d4d
+currenciesDisplayName.THB=\u0d24\u0d3e\u0d2f\u0d4d \u0d2c\u0d1f\u0d4d\u0d1f\u0d4d
+currenciesDisplayName.PHP=\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d48\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.LUF=LUF
+currenciesDisplayName.RHD=RHD
+currenciesDisplayName.LUC=LUC
+currenciesDisplayName.FIM=\u0d2b\u0d3f\u0d28\u0d4d\u0d28\u0d3f\u0d37\u0d4d \u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d38\u0d4d
+currenciesDisplayName.TTD=TTD
+currenciesDisplayName.SZL=SZL
+currenciesDisplayName.MNT=MNT
+currenciesDisplayName.UAK=\u0d09\u0d15\u0d4d\u0d30\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d3e\u0d30\u0d4d\u200d\u0d2c\u0d4b\u0d35\u0d3e\u0d28\u0d46\u0d38\u0d4d
+currenciesDisplayName.SAR=SAR
+currenciesDisplayName.COU=\u0d2f\u0d42\u0d23\u0d3f\u0d21\u0d3e\u0d21\u0d4d \u0d21\u0d3f \u0d35\u0d3e\u0d32\u0d30\u0d4d\u200d \u0d31\u0d3f\u0d2f\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.UAH=\u0d09\u0d15\u0d4d\u0d30\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d39\u0d4d\u0d30\u0d3f\u0d35\u0d4d\u0d28\u0d3f\u0d2f\u0d3e\u0d38\u0d4d
+currenciesDisplayName.HUF=\u0d39\u0d02\u0d17\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2b\u0d4b\u0d31\u0d3f\u0d28\u0d4d\u200d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.QAR=QAR
+currenciesDisplayName.COP=\u0d15\u0d4a\u0d33\u0d02\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.LTT=LTT
+currenciesDisplayName.PTE=PTE
+currenciesDisplayName.UYU=\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35\u0d47 \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b
+currenciesDisplayName.AOR=\u0d05\u0d02\u0d17\u0d4b\u0d33\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d35\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d3e\u0d38\u0d4d \u0d31\u0d40\u0d05\u0d21\u0d4d\u0d1c\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d21\u0d4b (AOR)
+currenciesDisplayName.GBP=\u0d2c\u0d4d\u0d30\u0d3f\u0d1f\u0d4d\u0d1f\u0d40\u0d37\u0d4d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d46\u0d30\u0d4d\u200d\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ZRZ=\u0d38\u0d48\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d48\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.INR=\u0d07\u0d28\u0d4d\u0d24\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d30\u0d42\u0d2a
+currenciesDisplayName.BIF=\u0d2c\u0d41\u0d31\u0d41\u0d23\u0d4d\u0d1f\u0d3f \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XFU=\u0d2b\u0d4d\u0d30\u0d46\u0d1e\u0d4d\u0d1a\u0d4d UIC-\u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.MZN=MZN
+currenciesDisplayName.LTL=LTL
+currenciesDisplayName.AON=\u0d05\u0d02\u0d17\u0d4b\u0d33\u0d28\u0d4d\u200d \u0d28\u0d4d\u0d2f\u0d42 \u0d15\u0d4d\u0d35\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d3e\u0d38\u0d4d (AON)
+currenciesDisplayName.UYP=\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35\u0d47 \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d (UYP)
+currenciesDisplayName.MZM=MZM
+currenciesDisplayName.KZT=KZT
+currenciesDisplayName.AOK=\u0d05\u0d02\u0d17\u0d4b\u0d33\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d35\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d3e\u0d38\u0d4d (AOK
+currenciesDisplayName.GNS=\u0d17\u0d3f\u0d28\u0d3f\u0d2f \u0d38\u0d48\u0d32\u0d3f\u0d38\u0d4d
+currenciesDisplayName.BUK=\u0d2c\u0d30\u0d4d\u200d\u0d2e\u0d40\u0d38\u0d4d \u0d1a\u0d3e\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XFO=\u0d2b\u0d4d\u0d30\u0d46\u0d1e\u0d4d\u0d1a\u0d4d \u0d17\u0d4b\u0d33\u0d4d\u200d\u0d21\u0d4d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.PGK=\u0d2a\u0d3e\u0d2a\u0d41\u0d35 \u0d28\u0d4d\u0d2f\u0d42 \u0d17\u0d3f\u0d28\u0d3f \u0d15\u0d3f\u0d28\u0d3e\u0d38\u0d4d
+currenciesDisplayName.UYI=\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35\u0d47 \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d \u0d0e\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d21\u0d3e\u0d21\u0d4d\u0d38\u0d4d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d46\u0d15\u0d4d\u0d38\u0d3e\u0d21\u0d3e\u0d38\u0d4d
+currenciesDisplayName.SYP=\u0d38\u0d3f\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d
+currenciesDisplayName.OMR=OMR
+currenciesDisplayName.MZE=MZE
+currenciesDisplayName.ZRN=\u0d38\u0d48\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d4d\u0d2f\u0d42 \u0d38\u0d48\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.NGN=NGN
+currenciesDisplayName.CNY=\u0d1a\u0d48\u0d28\u0d40\u0d38\u0d4d \u0d2f\u0d41\u0d35\u0d3e\u0d28\u0d4d\u200d
+currenciesDisplayName.AOA=\u0d05\u0d02\u0d17\u0d4b\u0d33\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d35\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d3e\u0d38\u0d4d
+currenciesDisplayName.MAF=MAF
+currenciesDisplayName.RSD=RSD
+currenciesDisplayName.GNF=\u0d17\u0d3f\u0d28\u0d3f\u0d2f \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.MAD=MAD
+currenciesDisplayName.HTG=\u0d39\u0d46\u0d2f\u0d4d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d17\u0d42\u0d30\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d
+currenciesDisplayName.TRY=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f\u0d37\u0d4d \u0d32\u0d3f\u0d31\u0d3e\u0d38\u0d4d
+currenciesDisplayName.MMK=MMK
+currenciesDisplayName.XRE=RINET \u0d2b\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.MYR=MYR
+currenciesDisplayName.LSM=LSM
+currenciesDisplayName.XEU=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d3e\u0d23\u0d2f \u0d2f\u0d42\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.LSL=LSL
+currenciesDisplayName.SLL=SLL
+currenciesDisplayName.BHD=\u0d2c\u0d39\u0d4d\u0d31\u0d48\u0d28\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.BTN=BTN
+currenciesDisplayName.TRL=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f\u0d37\u0d4d \u0d32\u0d3f\u0d31\u0d3e\u0d38\u0d4d
+currenciesDisplayName.KMF=KMF
+currenciesDisplayName.CZK=\u0d1a\u0d46\u0d15\u0d4d\u0d15\u0d4d \u0d31\u0d3f\u0d2a\u0d4d\u0d2a\u0d2c\u0d4d\u0d32\u0d3f\u0d15\u0d4d \u0d15\u0d4a\u0d30\u0d42\u0d28\u0d3e\u0d38\u0d4d
+currenciesDisplayName.ANG=\u0d28\u0d46\u0d24\u0d30\u0d4d\u200d\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d \u0d06\u0d28\u0d4d\u200d\u0d21\u0d3f\u0d32\u0d28\u0d4d\u200d \u0d17\u0d3f\u0d32\u0d4d\u200d\u0d21\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.AZN=\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d2f\u0d4d\u0d1c\u0d3e\u0d28\u0d4d\u200d \u0d2e\u0d28\u0d24\u0d4d\u200c\u0d38\u0d4d
+currenciesDisplayName.AZM=\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d2f\u0d4d\u0d1c\u0d3e\u0d28\u0d4d\u200d \u0d2e\u0d28\u0d24\u0d4d\u200c\u0d38\u0d4d (AZM)
+currenciesDisplayName.KYD=KYD
+currenciesDisplayName.GMD=\u0d17\u0d3e\u0d28\u0d4d\u0d2a\u0d3f\u0d2f \u0d26\u0d32\u0d3e\u0d38\u0d3f\u0d38\u0d4d
+currenciesDisplayName.VEF=\u0d35\u0d46\u0d28\u0d38\u0d4d\u0d35\u0d47\u0d32\u0d28\u0d4d\u200d \u0d2c\u0d4b\u0d32\u0d3f\u0d35\u0d30\u0d4d\u200d \u0d2b\u0d41\u0d35\u0d46\u0d30\u0d4d\u200d\u0d31\u0d4d\u0d31\u0d46\u0d38\u0d4d
+currenciesDisplayName.BGN=\u0d2c\u0d33\u0d4d\u200d\u0d17\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d4d\u0d2f\u0d42 \u0d32\u0d46\u0d35\u0d4d\u0d38\u0d4d
+currenciesDisplayName.MXV=\u0d2e\u0d46\u0d15\u0d4d\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d21\u0d3e\u0d21\u0d4d\u0d38\u0d4d \u0d21\u0d3f \u0d07\u0d28\u0d4d\u200d\u0d35\u0d46\u0d30\u0d4d\u200d\u0d37\u0d28\u0d4d\u200d (UDI)
+currenciesDisplayName.CAD=\u0d15\u0d28\u0d47\u0d21\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.BGL=\u0d2c\u0d33\u0d4d\u200d\u0d17\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d39\u0d3e\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d32\u0d46\u0d35\u0d4d\u0d38\u0d4d
+currenciesDisplayName.VEB=\u0d35\u0d46\u0d28\u0d38\u0d4d\u0d35\u0d47\u0d32\u0d28\u0d4d\u200d \u0d2c\u0d4b\u0d32\u0d3f\u0d35\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.MLF=MLF
+currenciesDisplayName.MXP=\u0d2e\u0d46\u0d15\u0d4d\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f \u0d2a\u0d46\u0d38\u0d4b
+currenciesDisplayName.ILS=\u0d07\u0d38\u0d4d\u0d30\u0d3e\u0d2f\u0d47\u0d32\u0d3f \u0d28\u0d4d\u0d2f\u0d42 \u0d37\u0d46\u0d15\u0d4d\u0d15\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.PES=\u0d2a\u0d46\u0d31\u0d42\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4b\u0d33\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.MXN=MXN
+currenciesDisplayName.GYD=\u0d17\u0d2f\u0d3e\u0d28 \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ILP=\u0d07\u0d38\u0d4d\u0d30\u0d2f\u0d47\u0d32\u0d3f \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.CYP=\u0d38\u0d48\u0d2a\u0d4d\u0d30\u0d38\u0d4d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.SKK=SKK
+currenciesDisplayName.XDR=\u0d38\u0d4d\u0d2a\u0d46\u0d37\u0d4d\u0d2f\u0d32\u0d4d\u200d \u0d21\u0d4d\u0d30\u0d4b\u0d2f\u0d3f\u0d02\u0d17\u0d4d \u0d31\u0d48\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.PEN=\u0d2a\u0d46\u0d31\u0d42\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4b\u0d33\u0d4d\u200d \u0d28\u0d4d\u0d2f\u0d42\u0d35\u0d4b\u0d38\u0d4d
+currenciesDisplayName.LRD=LRD
+currenciesDisplayName.PEI=\u0d2a\u0d46\u0d31\u0d42\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d38\u0d4d
+currenciesDisplayName.AMD=\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d21\u0d4d\u0d30\u0d3e\u0d02\u0d38\u0d4d
+currenciesDisplayName.BSD=BSD
+currenciesDisplayName.XPT=\u0d2a\u0d4d\u0d32\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d02
+currenciesDisplayName.HRK=\u0d15\u0d4d\u0d30\u0d4a\u0d2f\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d2f\u0d42\u0d28\u0d3e\u0d38\u0d4d
+currenciesDisplayName.CLP=\u0d1a\u0d3f\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.HRD=\u0d15\u0d4d\u0d30\u0d4a\u0d2f\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.XPF=CFP \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.FRF=\u0d2b\u0d4d\u0d30\u0d46\u0d1e\u0d4d\u0d1a\u0d4d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XPD=\u0d2a\u0d32\u0d3e\u0d21\u0d3f\u0d2f\u0d02
+currenciesDisplayName.BRR=BRR
+currenciesDisplayName.MKD=MKD
+currenciesDisplayName.CLF=\u0d1a\u0d3f\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d21\u0d3e\u0d21\u0d4d\u0d38\u0d4d \u0d21\u0d3f \u0d2b\u0d4b\u0d2e\u0d46\u0d28\u0d4d\u200d\u0d31\u0d4b\u0d38\u0d4d
+currenciesDisplayName.ALL=\u0d05\u0d32\u0d4d\u200d\u0d2c\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d32\u0d46\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.BRN=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d41\u0d38\u0d3e\u0d21\u0d4b \u0d28\u0d4b\u0d35\u0d4b\u0d38\u0d4d
+currenciesDisplayName.MWK=MWK
+currenciesDisplayName.BRL=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d31\u0d3f\u0d2f\u0d3e\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.TPE=\u0d24\u0d3f\u0d2e\u0d4b\u0d30\u0d4d\u200d \u0d0e\u0d38\u0d4d\u0d15\u0d4d\u0d2f\u0d42\u0d21\u0d4b\u0d38\u0d4d
+currenciesDisplayName.BRE=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d41\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4b\u0d38\u0d4d (BRE)
+currenciesDisplayName.BRC=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d41\u0d38\u0d3e\u0d21\u0d4b\u0d38\u0d4d
+currenciesDisplayName.BRB=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d41\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4b\u0d38\u0d4d \u0d28\u0d4b\u0d35\u0d4b (BRB)
+currenciesDisplayName.DEM=\u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d \u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.KWD=KWD
+currenciesDisplayName.XCD=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d15\u0d30\u0d40\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.NPR=NPR
+currenciesDisplayName.GWP=\u0d17\u0d3f\u0d28\u0d3f-\u0d2c\u0d3f\u0d38\u0d3e\u0d35\u0d41 \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.YUN=\u0d2f\u0d42\u0d17\u0d4b\u0d38\u0d4d\u0d32\u0d47\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d23\u0d4d\u200d\u0d35\u0d47\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d2c\u0d3f\u0d33\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.SVC=SVC
+currenciesDisplayName.YUM=\u0d2f\u0d42\u0d17\u0d4b\u0d38\u0d4d\u0d32\u0d47\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d4b\u0d35\u0d3f \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.BEL=\u0d2c\u0d46\u0d32\u0d4d\u200d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d(\u0d2b\u0d3f\u0d28\u0d3e\u0d28\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d32\u0d4d\u200d)
+currenciesDisplayName.SIT=SIT
+currenciesDisplayName.JPY=\u0d1c\u0d3e\u0d2a\u0d4d\u0d2a\u0d28\u0d40\u0d38\u0d4d \u0d2f\u0d46\u0d28\u0d4d\u200d
+currenciesDisplayName.XOF=CFA \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d BCEAO
+currenciesDisplayName.MVR=\u0d2e\u0d3e\u0d32\u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d30\u0d42\u0d2a
+currenciesDisplayName.BEF=\u0d2c\u0d46\u0d32\u0d4d\u200d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.GWE=\u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d40\u0d38\u0d4d \u0d17\u0d3f\u0d28\u0d3f \u0d0e\u0d38\u0d4d\u0d15\u0d4d\u0d2f\u0d42\u0d21\u0d4b\u0d38\u0d4d
+currenciesDisplayName.TOP=\u0d31\u0d4d\u0d31\u0d4b\u0d02\u0d17 \u0d2a\u0d3e\u0d02\u0d17\u0d3e\u0d38\u0d4d
+currenciesDisplayName.YUD=\u0d2f\u0d42\u0d17\u0d4b\u0d38\u0d4d\u0d32\u0d47\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d39\u0d3e\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.BEC=\u0d2c\u0d46\u0d32\u0d4d\u200d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d (\u0d15\u0d48\u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d35\u0d41\u0d28\u0d4d\u0d28\u0d24\u0d4d)
+currenciesDisplayName.SUR=SUR
+currenciesDisplayName.RON=RON
+currenciesDisplayName.ROL=ROL
+currenciesDisplayName.BDT=\u0d2c\u0d02\u0d17\u0d4d\u0d32\u0d3e\u0d26\u0d47\u0d36\u0d4d \u0d24\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d38\u0d4d
+currenciesDisplayName.DDM=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d \u0d13\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XBD=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d \u0d13\u0d2b\u0d4d \u0d05\u0d15\u0d4d\u0d15\u0d4c\u0d23\u0d4d\u0d1f\u0d4d (XBD)
+currenciesDisplayName.AWG=\u0d05\u0d31\u0d42\u0d2c\u0d28\u0d4d\u200d \u0d17\u0d3f\u0d32\u0d4d\u200d\u0d21\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XBC=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d \u0d13\u0d2b\u0d4d \u0d05\u0d15\u0d4d\u0d15\u0d4c\u0d23\u0d4d\u0d1f\u0d4d (XBC)
+currenciesDisplayName.XBB=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2e\u0d4b\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d31\u0d3f \u0d2f\u0d42\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.XBA=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4b\u0d28\u0d4d\u0d2a\u0d38\u0d3f\u0d31\u0d4d\u0d31\u0d4d \u0d2f\u0d42\u0d23\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d4d
+currenciesDisplayName.NOK=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d35\u0d40\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d30\u0d4b\u0d23\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.MUR=MUR
+currenciesDisplayName.ZAR=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d
+currenciesDisplayName.SHP=SHP
+currenciesDisplayName.XAU=\u0d38\u0d4d\u0d35\u0d30\u0d4d\u200d\u0d23\u0d4d\u0d23\u0d02
+currenciesDisplayName.ZAL=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d (\u0d2b\u0d3f\u0d28\u0d3e\u0d28\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d32\u0d4d\u200d)
+currenciesDisplayName.VND=VND
+currenciesDisplayName.TZS=TZS
+currenciesDisplayName.GIP=\u0d17\u0d3f\u0d2c\u0d4d\u0d30\u0d3e\u0d32\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d30\u0d4d\u200d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.TND=TND
+currenciesDisplayName.CVE=\u0d15\u0d46\u0d2f\u0d4d\u0d2a\u0d4d \u0d35\u0d46\u0d30\u0d4d\u200d\u0d21\u0d46 \u0d0e\u0d38\u0d4d\u0d15\u0d4d\u0d2f\u0d41\u0d21\u0d4b\u0d38\u0d4d
+currenciesDisplayName.UGX=UGX
+currenciesDisplayName.XAG=\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f
+currenciesDisplayName.ZMK=\u0d38\u0d3e\u0d02\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d15\u0d4d\u0d35\u0d3e\u0d1a\u0d3e\u0d38\u0d4d
+currenciesDisplayName.JOD=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d26\u0d4d\u0d26\u0d3e\u0d28\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.XAF=CFA \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d BEAC
+currenciesDisplayName.LBP=\u0d32\u0d46\u0d2c\u0d28\u0d40\u0d38\u0d4d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.UGS=UGS
+currenciesDisplayName.STD=STD
+currenciesDisplayName.WST=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d38\u0d2e\u0d4b\u0d35 \u0d24\u0d3e\u0d32\u0d3e\u0d38\u0d4d
+currenciesDisplayName.KHR=KHR
+currenciesDisplayName.DOP=\u0d21\u0d4a\u0d2e\u0d3f\u0d28\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.EUR=\u0d2f\u0d42\u0d31\u0d4b\u0d38\u0d4d
+currenciesDisplayName.BOV=\u0d2c\u0d4a\u0d33\u0d40\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d0e\u0d02\u0d35\u0d3f\u0d21\u0d4b\u0d38\u0d4d
+currenciesDisplayName.MTP=MTP
+currenciesDisplayName.USS=\u0d2f\u0d41\u0d0e\u0d38\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d (\u0d05\u0d24\u0d47 \u0d26\u0d3f\u0d35\u0d38\u0d02)
+currenciesDisplayName.BOP=\u0d2c\u0d4a\u0d33\u0d40\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d2f\u0d4d\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.CUP=\u0d15\u0d4d\u0d2f\u0d42\u0d2c\u0d28\u0d4d\u200d \u0d2a\u0d46\u0d38\u0d4b\u0d38\u0d4d
+currenciesDisplayName.MTL=MTL
+currenciesDisplayName.TMM=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d2e\u0d46\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d2e\u0d28\u0d24\u0d4d\u200c\u0d38\u0d4d
+currenciesDisplayName.USN=USN
+currenciesDisplayName.GHS=\u0d18\u0d3e\u0d28 \u0d15\u0d46\u0d21\u0d3f\u0d38\u0d4d
+currenciesDisplayName.SGD=SGD
+currenciesDisplayName.NZD=\u0d28\u0d4d\u0d2f\u0d42\u0d38\u0d3f\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.USD=\u0d2f\u0d41.\u0d0e\u0d38\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.BOB=\u0d2c\u0d4a\u0d33\u0d40\u0d35\u0d3f\u0d2f\u0d3e\u0d28\u0d4b\u0d38\u0d4d
+currenciesDisplayName.HNL=\u0d39\u0d4b\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d2f\u0d41\u0d31\u0d3e\u0d38\u0d4d \u0d32\u0d46\u0d02\u0d2a\u0d40\u0d30\u0d3e\u0d38\u0d4d
+currenciesDisplayName.CHW=WIR \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ITL=\u0d07\u0d31\u0d4d\u0d31\u0d3e\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d32\u0d3f\u0d31\u0d3e\u0d38\u0d4d
+currenciesDisplayName.PAB=\u0d2a\u0d28\u0d3e\u0d2e\u0d46\u0d2f\u0d4d\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2c\u0d3e\u0d32\u0d4d\u200d\u0d2c\u0d4b\u0d35\u0d3e\u0d38\u0d4d
+currenciesDisplayName.GTQ=\u0d17\u0d4d\u0d35\u0d3e\u0d1f\u0d4d\u0d1f\u0d3f\u0d2e\u0d3e\u0d32 \u0d15\u0d4d\u0d35\u0d46\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.XXX=\u0d05\u0d31\u0d3f\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d06\u0d2f \u0d28\u0d3e\u0d23\u0d2f\u0d02
+currenciesDisplayName.AUD=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.GHC=\u0d18\u0d3e\u0d28 \u0d15\u0d46\u0d21\u0d3f\u0d38\u0d4d (GHC)
+currenciesDisplayName.LAK=LAK
+currenciesDisplayName.NAD=NAD
+currenciesDisplayName.KGS=\u0d15\u0d3f\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4b\u0d02\u0d38\u0d4d
+currenciesDisplayName.MGF=MGF
+currenciesDisplayName.BBD=\u0d2c\u0d3e\u0d30\u0d4d\u200d\u0d2c\u0d21\u0d4b\u0d38\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.CHF=\u0d38\u0d4d\u0d35\u0d3f\u0d38\u0d4d \u0d2b\u0d4d\u0d30\u0d3e\u0d19\u0d4d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.CHE=WIR \u0d2f\u0d42\u0d31\u0d4b\u0d38\u0d4d
+currenciesDisplayName.MGA=MGA
+currenciesDisplayName.PYG=PYG
+currenciesDisplayName.PLZ=PLZ
+currenciesDisplayName.YER=\u0d2f\u0d2e\u0d28\u0d3f \u0d31\u0d3f\u0d2f\u0d3e\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ATS=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d37\u0d3f\u0d32\u0d4d\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ETB=\u0d0e\u0d24\u0d4d\u0d2f\u0d4b\u0d2a\u0d4d\u0d2a\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2c\u0d3f\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.BND=\u0d2c\u0d4d\u0d30\u0d42\u0d23\u0d46 \u0d21\u0d4b\u0d33\u0d31\u0d41\u0d15\u0d33\u0d4d\u200d
+currenciesDisplayName.EGP=\u0d08\u0d1c\u0d3f\u0d2a\u0d4d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d4d
+currenciesDisplayName.JMD=\u0d1c\u0d2e\u0d48\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.PLN=\u0d2a\u0d4b\u0d33\u0d3f\u0d37\u0d4d \u0d38\u0d4d\u0d32\u0d4b\u0d1f\u0d4d\u0d1f\u0d40\u0d38\u0d4d
+currenciesDisplayName.DZD=\u0d05\u0d33\u0d4d\u200d\u0d1c\u0d40\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ISK=\u0d10\u0d38\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d3f\u0d15\u0d4d \u0d15\u0d4d\u0d30\u0d4b\u0d23\u0d3e\u0d38\u0d4d
+currenciesDisplayName.SRG=SRG
+currenciesDisplayName.LYD=LYD
+currenciesDisplayName.SRD=SRD
+currenciesDisplayName.BAM=\u0d2c\u0d4b\u0d38\u0d4d\u0d28\u0d3f\u0d2f \u0d39\u0d46\u0d30\u0d4d\u200d\u0d38\u0d17\u0d4b\u0d35\u0d3f\u0d28 \u0d15\u0d23\u0d4d\u200d\u0d35\u0d47\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d2c\u0d3f\u0d33\u0d4d\u200d \u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d38\u0d4d
+currenciesDisplayName.BZD=\u0d2c\u0d46\u0d32\u0d40\u0d38\u0d4d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.ESP=\u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d \u0d2a\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d38\u0d4d
+currenciesDisplayName.KRW=KRW
+currenciesDisplayName.NLG=\u0d28\u0d46\u0d24\u0d30\u0d4d\u200d\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d \u0d17\u0d3f\u0d32\u0d4d\u200d\u0d21\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.MRO=MRO
+currenciesDisplayName.BAD=\u0d2c\u0d4b\u0d38\u0d4d\u0d28\u0d3f\u0d2f \u0d39\u0d46\u0d30\u0d4d\u200d\u0d38\u0d17\u0d4b\u0d35\u0d3f\u0d28 \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ZWD=\u0d38\u0d3f\u0d02\u0d2c\u0d3e\u0d2c\u0d4d\u200c\u0d35\u0d46 \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.SEK=SEK
+currenciesDisplayName.CSK=\u0d1a\u0d46\u0d15\u0d4d\u0d15\u0d4b\u0d38\u0d4d\u0d32\u0d4a\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d4d \u0d39\u0d3e\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d15\u0d4a\u0d30\u0d42\u0d28\u0d3e\u0d38\u0d4d
+currenciesDisplayName.BYR=\u0d2c\u0d46\u0d32\u0d3e\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d31\u0d42\u0d2c\u0d3f\u0d33\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ESB=\u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d \u0d2a\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d38\u0d4d (\u0d15\u0d48\u0d2e\u0d3e\u0d31\u0d4d\u0d31\u0d02 \u0d1a\u0d46\u0d2f\u0d4d\u0d2f\u0d3e\u0d35\u0d41\u0d28\u0d4d\u0d28 \u0d05\u0d15\u0d4d\u0d15\u0d4c\u0d23\u0d4d\u0d1f\u0d4d)
+currenciesDisplayName.IRR=\u0d07\u0d31\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d31\u0d3f\u0d2f\u0d3e\u0d32\u0d4d\u200d\u0d38\u0d4d
+currenciesDisplayName.ESA=\u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d \u0d2a\u0d38\u0d46\u0d2f\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d38\u0d4d (A \u0d05\u0d15\u0d4d\u0d15\u0d4c\u0d23\u0d4d\u0d1f\u0d4d)
+currenciesDisplayName.PKR=\u0d2a\u0d3e\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d3f \u0d30\u0d42\u0d2a
+currenciesDisplayName.BMD=\u0d2c\u0d46\u0d30\u0d4d\u200d\u0d2e\u0d41\u0d21\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d33\u0d47\u0d34\u0d4d\u0d38\u0d4d
+currenciesDisplayName.CSD=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d38\u0d46\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d26\u0d3f\u0d28\u0d3e\u0d30\u0d4d\u200d\u0d38\u0d4d
+currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=\u0d32\u0d46\u0d35\u0d4d
+currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
+currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=M\u0d21\u0d46\u0d28\u0d4d\u200d
+currenciesSymbol.MWK=MK
+currenciesSymbol.BMD=\u0d2c\u0d46\u0d30\u0d4d\u200d$
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.AMD=\u0d21\u0d4d\u0d30\u0d3e\u0d02
+currenciesSymbol.TOP=T$
+currenciesSymbol.NPR=Nrs
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.KWD=KD
+currenciesSymbol.GEL=\u0d32\u0d3e\u0d30\u0d3f
+currenciesSymbol.AFN=\u0d05\u0d2b\u0d4d
+currenciesSymbol.ZAR=R
+currenciesSymbol.IQD=ID
+currenciesSymbol.HKD=HK$
+currenciesSymbol.ARS=\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d4d$
+currenciesSymbol.JPY=\u00b4
+currenciesSymbol.ALL=\u0d32\u0d46\u0d15\u0d4d
+currenciesSymbol.CRC=C
+currenciesSymbol.IDR=Rp
+currenciesSymbol.DKK=DKr
+currenciesSymbol.TZS=T Sh
+currenciesSymbol.NOK=NKr
+currenciesSymbol.UGX=U Sh
+currenciesSymbol.BEF=BF
+currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
+currenciesSymbol.FJD=F$
+currenciesSymbol.UYU=Ur$
+currenciesSymbol.BDT=Tk
+currenciesSymbol.MNT=\u0d31\u0d4d\u0d31\u0d17\u0d4d
+currenciesSymbol.LBP=LL
+currenciesSymbol.DJF=DF
+currenciesSymbol.XXX=[\u0d28\u0d3e\u0d23\u0d2f\u0d02 \u0d05\u0d31\u0d3f\u0d35\u0d3f\u0d32\u0d4d\u0d32]
+currenciesSymbol.JOD=JD
+currenciesSymbol.USD=$
+currenciesSymbol.KHR=CR
+currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
+currenciesSymbol.MZM=Mt
+currenciesSymbol.YER=YRl
+currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
+currenciesSymbol.NZD=$NZ
+currenciesSymbol.OMR=RO
+currenciesSymbol.KZT=T
+currenciesSymbol.INR=\u0d30\u0d42
+currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.NAD=N$
+currenciesSymbol.GHS=GH\u00a2
+currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
+currenciesSymbol.HNL=L
+currenciesSymbol.KGS=\u0d38\u0d4b\u0d02
+currenciesSymbol.ZWD=Z$
+currenciesSymbol.MYR=RM
+currenciesSymbol.GTQ=Q
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
+currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
+currenciesSymbol.VEB=Be
+currenciesSymbol.BOB=Bs
+currenciesSymbol.CNY=Y
+currenciesSymbol.KMF=CF
+currenciesSymbol.AUD=$A
+currenciesSymbol.LYD=LD
+currenciesSymbol.JMD=J$
+currenciesSymbol.CHF=SwF
+currenciesSymbol.ETB=Br
+currenciesSymbol.MRO=UM
+currenciesSymbol.BBD=BDS$
+currenciesSymbol.PKR=Pra
+currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
+currenciesSymbol.MXN=MEX$
+currenciesSymbol.DZD=DA
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.IRR=RI
+currenciesSymbol.GYD=G$
+currenciesSymbol.BAM=KM
+currenciesSymbol.CAD=Can$
+shortMonths=\u0d1c\u0d28\u0d41\u00ae\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u00ae\u0d2e\u0d3e\u0d30\u0d4d\u200d\u00ae\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u00ae\u0d2e\u0d47\u0d2f\u0d4d\u00ae\u0d1c\u0d42\u0d23\u0d4d\u200d\u00ae\u0d1c\u0d42\u0d32\u0d48\u00ae\u0d13\u0d17\u00ae\u0d38\u0d46\u0d2a\u0d4d\u0d24\u0d02\u00ae\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u00ae\u0d28\u0d35\u0d02\u00ae\u0d21\u0d3f\u0d38\u0d02\u00ae\u00ae
+months=\u0d1c\u0d28\u0d41\u0d35\u0d30\u0d3f\u00ae\u0d2b\u0d46\u0d2c\u0d4d\u0d30\u0d41\u0d35\u0d30\u0d3f\u00ae\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d4d\u00ae\u0d0f\u0d2a\u0d4d\u0d30\u0d3f\u0d32\u0d4d\u200d\u00ae\u0d2e\u0d47\u0d2f\u0d4d\u00ae\u0d1c\u0d42\u0d23\u0d4d\u200d\u00ae\u0d1c\u0d42\u0d32\u0d48\u00ae\u0d06\u0d17\u0d38\u0d4d\u0d24\u0d4d\u00ae\u0d38\u0d46\u0d2a\u0d4d\u0d24\u0d02\u0d2c\u0d30\u0d4d\u200d\u00ae\u0d12\u0d15\u0d4d\u0d1f\u0d4b\u0d2c\u0d30\u0d4d\u200d\u00ae\u0d28\u0d35\u0d02\u0d2c\u0d30\u0d4d\u200d\u00ae\u0d21\u0d3f\u0d38\u0d02\u0d2c\u0d30\u0d4d\u200d\u00ae\u00ae
+shortWeekdays=\u00ae\u0d1e\u0d3e\u0d2f\u0d30\u0d4d\u200d\u00ae\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d4d\u200d\u00ae\u0d1a\u0d4a\u0d35\u0d4d\u0d35\u00ae\u0d2c\u0d41\u0d27\u0d28\u0d4d\u200d\u00ae\u0d35\u0d4d\u0d2f\u0d3e\u0d34\u0d02\u00ae\u0d35\u0d46\u0d33\u0d4d\u0d33\u0d3f\u00ae\u0d36\u0d28\u0d3f\u00ae
+weekdays=\u00ae\u00ae\u0d24\u0d3f\u0d19\u0d4d\u0d15\u0d33\u0d3e\u0d34\u0d4d\u0d1a\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+eras=\u0d15\u0d4d\u0d30\u0d3f.\u0d2e\u0d41.\u00ae\u0d15\u0d4d\u0d30\u0d3f.\u0d2a\u0d3f.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd-MM-yy
+mediumDateFormat=yyyy, MMM d
+longDateFormat=yyyy, MMMM d
+fullDateFormat=yyyy, MMMM d, EEEE
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=Europe_Central\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Africa_Western\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Urumqi\u00ae\u0d09\u0d31\u0d41\u0d02\u0d16\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u200c\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Kamchatka\u00ae\u0d2a\u0d46\u0d1f\u0d4d\u0d30\u0d4b\u0d2a\u0d3e\u0d35\u0d4d\u200c\u0d32\u0d4b\u0d38\u0d4d\u0d15\u0d4d \u0d15\u0d02\u0d1a\u0d3e\u0d38\u0d4d\u0d15\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d46\u0d1f\u0d4d\u0d30\u0d4b\u0d2a\u0d3e\u0d35\u0d4d\u200c\u0d32\u0d4b\u0d38\u0d4d\u0d15\u0d4d \u0d15\u0d02\u0d1a\u0d3e\u0d38\u0d4d\u0d15\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Uralsk\u00ae\u0d2f\u0d41\u0d31\u0d3e\u0d32\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d41\u0d31\u0d3e\u0d32\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Novosibirsk\u00ae\u0d28\u0d4b\u0d35\u0d4b\u0d38\u0d3f\u0d2c\u0d3f\u0d30\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d28\u0d4b\u0d35\u0d4b\u0d38\u0d3f\u0d2c\u0d3f\u0d30\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Irkutsk\u00ae\u0d07\u0d30\u0d4d\u200d\u0d15\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d07\u0d30\u0d4d\u200d\u0d15\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Borneo\u00ae\u0d2c\u0d4b\u0d30\u0d4d\u200d\u0d23\u0d3f\u0d2f\u0d4b \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2c\u0d4b\u0d30\u0d4d\u200d\u0d23\u0d3f\u0d2f\u0d4b \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Papua_New_Guinea\u00ae\u0d2a\u0d3e\u0d2a\u0d4d\u0d2f\u0d41 \u0d28\u0d4d\u0d2f\u0d42 \u0d17\u0d3f\u0d28\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d08\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d08\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Aqtau\u00ae\u0d05\u0d16\u0d4d\u0d24\u0d4c \u0d38\u0d2e\u0d2f\u0d02\u00aeAQTT (\u0d05\u0d16\u0d4d\u0d24\u0d4c)\u00ae\u0d05\u0d16\u0d4d\u0d24\u0d4c \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00aeAQTST (\u0d05\u0d16\u0d4d\u0d24\u0d4c)\u00ae\u00a9Kazakhstan_Western\u00ae\u0d2a\u0d1f\u0d3f\u0d1e\u0d4d\u0d1e\u0d3e\u0d31\u0d28\u0d4d\u200d \u0d15\u0d38\u0d3e\u0d16\u0d4d\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00ae\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d\u200c\u0d32\u0d4b\u0d35\u0d4d\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d4d\u200c\u0d35\u0d47\u0d21\u0d4d\u200c\u0d32\u0d4b\u0d35\u0d4d\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Bangladesh\u00ae\u0d2c\u0d02\u0d17\u0d4d\u0d32\u0d3e\u0d26\u0d47\u0d36\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00ae\u0d2e\u0d3e\u0d32\u0d3f\u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00ae\u0d2a\u0d4a\u0d28\u0d3e\u0d2a\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00ae\u0d38\u0d2e\u0d30\u0d4d\u200d\u0d15\u0d28\u0d4d\u0d26\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeSAMT (\u0d38\u0d2e\u0d30\u0d4d\u200d\u0d15\u0d28\u0d4d\u0d26\u0d4d )\u00ae\u0d38\u0d2e\u0d30\u0d4d\u200d\u0d15\u0d28\u0d4d\u0d26\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00aeSAMST (\u0d38\u0d2e\u0d30\u0d4d\u200d\u0d15\u0d28\u0d4d\u0d26\u0d4d )\u00ae\u00a9Indian_Ocean\u00ae\u0d07\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2e\u0d39\u0d3e\u0d38\u0d2e\u0d41\u0d26\u0d4d\u0d30 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00ae\u0d2b\u0d3f\u0d1c\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2b\u0d3f\u0d1c\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Long_Shu\u00ae\u0d32\u0d4b\u0d19\u0d4d-\u0d37\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Singapore\u00ae\u0d38\u0d3f\u0d19\u0d4d\u0d15\u0d2a\u0d4d\u0d2a\u0d42\u0d30\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00ae\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d2f\u0d4d\u0d1c\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d2f\u0d4d\u0d1c\u0d3e\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Amazon\u00ae\u0d06\u0d2e\u0d38\u0d4b\u0d23\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d06\u0d2e\u0d38\u0d4b\u0d23\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Arabian\u00ae\u0d05\u0d31\u0d47\u0d2c\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeAST (\u0d05\u0d31\u0d47\u0d2c\u0d4d\u0d2f\u0d28\u0d4d\u200d)\u00ae\u0d05\u0d31\u0d47\u0d2c\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00aeADT (\u0d05\u0d31\u0d47\u0d2c\u0d4d\u0d2f\u0d28\u0d4d\u200d)\u00ae\u00a9Phoenix_Islands\u00ae\u0d2b\u0d40\u0d28\u0d3f\u0d15\u0d4d\u0d38\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Yekaterinburg\u00ae\u0d2f\u0d46\u0d15\u0d4d\u0d15\u0d3e\u0d31\u0d4d\u0d31\u0d31\u0d3f\u0d28\u0d4d\u200d\u0d2c\u0d30\u0d4d\u200d\u0d17\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d46\u0d15\u0d4d\u0d15\u0d3e\u0d31\u0d4d\u0d31\u0d31\u0d3f\u0d28\u0d4d\u200d\u0d2c\u0d30\u0d4d\u200d\u0d17\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Krasnoyarsk\u00ae\u0d15\u0d4d\u0d30\u0d3e\u0d38\u0d4d\u0d28\u0d4b\u0d2f\u0d3e\u0d34\u0d4d\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d4d\u0d30\u0d3e\u0d38\u0d4d\u0d28\u0d4b\u0d2f\u0d3e\u0d34\u0d4d\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Alaska\u00ae\u0d05\u0d32\u0d3e\u0d38\u0d4d\u0d15 \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d32\u0d3e\u0d38\u0d4d\u0d15 \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Qyzylorda\u00ae\u0d16\u0d3f\u0d38\u0d3f\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d16\u0d3f\u0d38\u0d3f\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Gulf\u00ae\u0d17\u0d33\u0d4d\u200d\u0d2b\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Dutch_Guiana\u00ae\u0d21\u0d1a\u0d4d\u0d1a\u0d4d \u0d17\u0d2f\u0d3e\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Omsk\u00ae\u0d13\u0d02\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d13\u0d02\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Easter\u00ae\u0d08\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d30\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d08\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d30\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Hong_Kong\u00ae\u0d39\u0d4b\u0d19\u0d4d \u0d15\u0d4b\u0d19\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d39\u0d4b\u0d19\u0d4d \u0d15\u0d4b\u0d19\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00ae\u0d35\u0d4d\u200c\u0d33\u0d3e\u0d21\u0d3f\u0d35\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d35\u0d4d\u200c\u0d33\u0d3e\u0d21\u0d3f\u0d35\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Aqtobe\u00ae\u0d05\u0d16\u0d4d\u0d24\u0d4b\u0d2c\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeAQTT (\u0d05\u0d16\u0d4d\u0d24\u0d4b\u0d2c\u0d4d)\u00ae\u0d05\u0d16\u0d4d\u0d24\u0d4b\u0d2c\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00aeAQTST (\u0d05\u0d16\u0d4d\u0d24\u0d4b\u0d2c\u0d4d)\u00ae\u00a9Chamorro\u00ae\u0d15\u0d2e\u0d4b\u0d31\u0d4b \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Kizilorda\u00ae\u0d15\u0d3f\u0d38\u0d3f\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d3f\u0d38\u0d3f\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Armenia\u00ae\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00aeAMT (\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f)\u00ae\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00aeAMST (\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f)\u00ae\u00a9America_Pacific\u00ae\u0d2a\u0d38\u0d2b\u0d3f\u0d15\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d38\u0d2b\u0d3f\u0d15\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Almaty\u00ae\u0d05\u0d32\u0d4d\u200d\u0d2e\u0d24\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d32\u0d4d\u200d\u0d2e\u0d24\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Tajikistan\u00ae\u0d24\u0d1c\u0d3f\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Anadyr\u00ae\u0d05\u0d28\u0d3e\u0d21\u0d3f\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d28\u0d3e\u0d21\u0d3f\u0d30\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9French_Guiana\u00ae\u0d2b\u0d4d\u0d30\u0d46\u0d1e\u0d4d\u0d1a\u0d4d \u0d17\u0d2f\u0d3e\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00ae\u0d39\u0d35\u0d3e\u0d2f\u0d3f-\u0d05\u0d32\u0d42\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00ae\u0d28\u0d47\u0d2a\u0d4d\u0d2a\u0d3e\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00ae\u0d2c\u0d4d\u0d30\u0d42\u0d23\u0d46 \u0d21\u0d3e\u0d31\u0d41\u0d38\u0d4d\u0d38\u0d32\u0d3e\u0d02 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u0d26\u0d41\u0d37\u0d3e\u0d28\u0d4d\u200d\u0d2c\u0d46 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d26\u0d41\u0d37\u0d3e\u0d28\u0d4d\u200d\u0d2c\u0d46 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Kosrae\u00ae\u0d15\u0d4a\u0d38\u0d4d\u0d31\u0d47 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00ae\u0d2f\u0d46\u0d30\u0d46\u0d35\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d46\u0d30\u0d46\u0d35\u0d3e\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Tokelau\u00ae\u0d31\u0d4d\u0d31\u0d4b\u0d15\u0d4d\u0d15\u0d3f\u0d32\u0d4c \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00ae\u0d2a\u0d30\u0d3e\u0d17\u0d4d\u0d35\u0d47 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d30\u0d3e\u0d17\u0d4d\u0d35\u0d47 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Seychelles\u00ae\u0d38\u0d46\u0d2f\u0d4d\u0d37\u0d46\u0d32\u0d4d\u200d\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00ae\u0d07\u0d38\u0d4d\u0d30\u0d3e\u0d2f\u0d47\u0d32\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeIST (\u0d07\u0d38\u0d4d\u0d30\u0d3e\u0d2f\u0d47\u0d32\u0d4d\u200d)\u00ae\u0d07\u0d38\u0d4d\u0d30\u0d3e\u0d2f\u0d47\u0d32\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Cocos\u00ae\u0d15\u0d4a\u0d15\u0d4d\u0d15\u0d4b\u0d38\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Norfolk\u00ae\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d2b\u0d4b\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00ae\u0d35\u0d4b\u0d33\u0d4d\u200d\u0d17\u0d4b\u0d17\u0d4d\u0d30\u0d3e\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d35\u0d4b\u0d33\u0d4d\u200d\u0d17\u0d4b\u0d17\u0d4d\u0d30\u0d3e\u0d21\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Greenland_Western\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9New_Caledonia\u00ae\u0d28\u0d4d\u0d2f\u0d42 \u0d15\u0d3e\u0d32\u0d3f\u0d21\u0d4b\u0d23\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d28\u0d4d\u0d2f\u0d42 \u0d15\u0d3e\u0d32\u0d3f\u0d21\u0d4b\u0d23\u0d3f\u0d2f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9North_Mariana\u00ae\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d4d \u0d2e\u0d31\u0d3f\u0d2f\u0d3e\u0d28\u0d3e \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00ae\u0d28\u0d4d\u0d2f\u0d42\u0d2b\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d28\u0d4d\u0d2f\u0d42\u0d2b\u0d4c\u0d23\u0d4d\u0d1f\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d\u200c \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Australia_Western\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u200d\u0d35\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d\u00ae\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u200d\u0d35\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Moscow\u00ae\u0d2e\u0d4b\u0d38\u0d4d\u0d15\u0d4b \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2e\u0d4b\u0d38\u0d4d\u0d15\u0d4b \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Kyrgystan\u00ae\u0d15\u0d3f\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00ae\u0d35\u0d46\u0d28\u0d38\u0d4d\u0d35\u0d47\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00ae\u0d2e\u0d32\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Peru\u00ae\u0d2a\u0d46\u0d31\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d46\u0d31\u0d41 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Christmas\u00ae\u0d15\u0d4d\u0d30\u0d3f\u0d38\u0d4d\u0d2e\u0d38\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9South_Georgia\u00ae\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00aeGST (\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f)\u00ae\u00ae\u00ae\u00a9Korea\u00ae\u0d15\u0d4a\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d4a\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Argentina_Western\u00ae\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d47 \u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00ae\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d4d\u0d2e\u0d46\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d4d\u0d2e\u0d46\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Pierre_Miquelon\u00ae\u0d2a\u0d3f\u0d2f\u0d31\u0d3f \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2e\u0d3f\u0d15\u0d4d\u0d35\u0d3f\u0d32\u0d4b\u0d23\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d3f\u0d2f\u0d31\u0d3f \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2e\u0d3f\u0d15\u0d4d\u0d35\u0d3f\u0d32\u0d4b\u0d23\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Atlantic\u00ae\u0d05\u0d31\u0d4d\u0d31\u0d4d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d15\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d31\u0d4d\u0d31\u0d4d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d15\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u0d05\u0d32\u0d3e\u0d38\u0d4d\u0d15-\u0d39\u0d35\u0d3e\u0d2f\u0d3f \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d32\u0d3e\u0d38\u0d4d\u0d15-\u0d39\u0d35\u0d3e\u0d2f\u0d3f \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Uzbekistan\u00ae\u0d09\u0d38\u0d4d\u0d2c\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d09\u0d38\u0d4d\u0d2c\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u200c\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Lord_Howe\u00ae\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d39\u0d4b\u0d35\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d32\u0d4b\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d39\u0d4b\u0d35\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Hovd\u00ae\u0d39\u0d4c\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d39\u0d4c\u0d21\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Cape_Verde\u00ae\u0d15\u0d46\u0d2f\u0d4d\u0d2a\u0d4d \u0d35\u0d46\u0d30\u0d4d\u200d\u0d21\u0d46 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d46\u0d2f\u0d4d\u0d2a\u0d4d \u0d35\u0d46\u0d30\u0d4d\u200d\u0d21\u0d46 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Tbilisi\u00ae\u0d24\u0d3f\u0d2c\u0d3f\u0d32\u0d40\u0d38\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d24\u0d3f\u0d2c\u0d3f\u0d32\u0d40\u0d38\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Malaysia\u00ae\u0d2e\u0d32\u0d47\u0d37\u0d4d\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Baku\u00ae\u0d2c\u0d3e\u0d15\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2c\u0d3e\u0d15\u0d41 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Reunion\u00ae\u0d31\u0d40\u0d2f\u0d42\u0d23\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Davis\u00ae\u0d21\u0d46\u0d2f\u0d4d\u200c\u0d35\u0d3f\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Noronha\u00ae\u0d2b\u0d46\u0d30\u0d4d\u200d\u0d23\u0d3e\u0d23\u0d4d\u0d1f\u0d4b \u0d21\u0d3f \u0d28\u0d4a\u0d31\u0d4b\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2b\u0d46\u0d30\u0d4d\u200d\u0d23\u0d3e\u0d23\u0d4d\u0d1f\u0d4b \u0d21\u0d3f \u0d28\u0d4a\u0d31\u0d4b\u0d28 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Chatham\u00ae\u0d1a\u0d3e\u0d24\u0d02 \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d1a\u0d3e\u0d24\u0d02 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Syowa\u00ae\u0d38\u0d4d\u0d2f\u0d4b\u0d35 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00ae\u0d05\u0d2b\u0d4d\u0d17\u0d3e\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Samoa\u00ae\u0d38\u0d2e\u0d4b\u0d35\u0d3e \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Palau\u00ae\u0d2a\u0d32\u0d4c \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00ae\u0d2b\u0d4d\u0d30\u0d46\u0d1e\u0d4d\u0d1a\u0d4d \u0d38\u0d24\u0d47\u0d23\u0d4d\u200d \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d05\u0d28\u0d4d\u200d\u0d31\u0d3e\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00ae\u0d38\u0d4b\u0d33\u0d2e\u0d28\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Line_Islands\u00ae\u0d32\u0d48\u0d28\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00ae\u0d07\u0d15\u0d4d\u0d35\u0d21\u0d4b\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00ae\u0d0e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00aeACT (\u0d0e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d30\u0d4d\u200d)\u00ae\u0d0e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d30\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00aeACST (\u0d0e\u0d2f\u0d4d\u0d15\u0d4d\u0d15\u0d30\u0d4d\u200d)\u00ae\u00a9Dacca\u00ae\u0d21\u0d3e\u0d15\u0d4d\u0d15 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00ae\u0d1a\u0d4b\u0d2f\u0d4d\u0d2c\u0d32\u0d4d\u200d\u0d38\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d1a\u0d4b\u0d2f\u0d4d\u0d2c\u0d32\u0d4d\u200d\u0d38\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Africa_Central\u00ae\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Africa_Southern\u00ae\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00ae\u0d05\u0d37\u0d4d\u0d16\u0d3e\u0d2c\u0d3e\u0d26\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d37\u0d4d\u0d16\u0d3e\u0d2c\u0d3e\u0d26\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Bering\u00ae\u0d2c\u0d46\u0d31\u0d3f\u0d19\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeBST (\u0d2c\u0d46\u0d31\u0d3f\u0d19\u0d4d )\u00ae\u0d2c\u0d46\u0d31\u0d3f\u0d19\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00aeBDT (\u0d2c\u0d46\u0d31\u0d3f\u0d19\u0d4d )\u00ae\u00a9Guam\u00ae\u0d17\u0d4d\u0d35\u0d3e\u0d02 \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeGST (\u0d17\u0d4d\u0d35\u0d3e\u0d02)\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00ae\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d37\u0d32\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00ae\u0d2d\u0d42\u0d1f\u0d4d\u0d1f\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Changbai\u00ae\u0d1a\u0d3e\u0d19\u0d4d\u0d2c\u0d2f\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00ae\u0d38\u0d16\u0d3e\u0d32\u0d3f\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d16\u0d3e\u0d32\u0d3f\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Karachi\u00ae\u0d15\u0d31\u0d3e\u0d1a\u0d4d\u0d1a\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Truk\u00ae\u0d1f\u0d4d\u0d30\u0d15\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00ae\u0d24\u0d3e\u0d37\u0d4d\u0d15\u0d28\u0d4d\u0d26\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d24\u0d3e\u0d37\u0d4d\u0d15\u0d28\u0d4d\u0d26\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Nauru\u00ae\u0d28\u0d4c\u0d31\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Tuvalu\u00ae\u0d24\u0d41\u0d35\u0d3e\u0d32\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00ae\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d40\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d40\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Gilbert_Islands\u00ae\u0d17\u0d3f\u0d32\u0d4d\u200d\u0d2c\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9East_Timor\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d24\u0d3f\u0d2e\u0d42\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00ae\u0d2f\u0d3e\u0d15\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d3e\u0d15\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Pitcairn\u00ae\u0d2a\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d15\u0d46\u0d2f\u0d4d\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00ae\u0d07\u0d31\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d07\u0d31\u0d3e\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Argentina\u00ae\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Tonga\u00ae\u0d31\u0d4d\u0d31\u0d4b\u0d02\u0d17\u0d3e \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d31\u0d4d\u0d31\u0d4b\u0d02\u0d17\u0d3e \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Yukon\u00ae\u0d2f\u0d42\u0d15\u0d4d\u0d15\u0d4b\u0d23\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d42\u0d15\u0d4d\u0d15\u0d23\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9New_Zealand\u00ae\u0d28\u0d4d\u0d2f\u0d42\u0d38\u0d40\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d28\u0d4d\u0d2f\u0d42\u0d38\u0d40\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Magadan\u00ae\u0d2e\u0d17\u0d3e\u0d21\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2e\u0d17\u0d3e\u0d21\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Gambier\u00ae\u0d17\u0d3e\u0d28\u0d4d\u0d2a\u0d3f\u0d2f\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9China\u00ae\u0d1a\u0d48\u0d28\u0d3e \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeCST (\u0d1a\u0d48\u0d28)\u00ae\u0d1a\u0d48\u0d28 \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00aeCDT (\u0d1a\u0d48\u0d28)\u00ae\u00a9Indonesia_Central\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u0d2e\u0d4c\u0d23\u0d4d\u0d1f\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2e\u0d4c\u0d23\u0d4d\u0d1f\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9India\u00ae\u0d07\u0d28\u0d4d\u200d\u200c\u0d21\u0d4d\u0d2f \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00ae\u0d38\u0d42\u0d31\u0d3f\u0d28\u0d3e\u0d02 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u0d38\u0d2e\u0d3e\u0d31 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d2e\u0d3e\u0d31 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Marquesas\u00ae\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d2f\u0d41\u0d38\u0d3e\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Mawson\u00ae\u0d2e\u0d3e\u0d35\u0d4d\u0d38\u0d23\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00ae\u0d2b\u0d3e\u0d15\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2b\u0d3e\u0d15\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Indochina\u00ae\u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d1a\u0d48\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00ae\u0d35\u0d46\u0d2f\u0d4d\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Uruguay\u00ae\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35\u0d46 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35\u0d46 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Chile\u00ae\u0d1a\u0d3f\u0d32\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d1a\u0d3f\u0d32\u0d3f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Vanuatu\u00ae\u0d35\u0d28\u0d4d\u0d35\u0d3e\u0d24\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d35\u0d28\u0d4d\u0d35\u0d3e\u0d24\u0d41 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Australia_CentralWestern\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d35\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d35\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Brasilia\u00ae\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Tahiti\u00ae\u0d24\u0d39\u0d3f\u0d24\u0d3f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d15\u0d38\u0d3e\u0d16\u0d4d\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9DumontDUrville\u00ae\u0d21\u0d4d\u0d2f\u0d42\u0d2e\u0d23\u0d4d\u0d1f\u0d4d \u0d21\u0d3f \u0d2f\u0d42\u0d30\u0d4d\u200d\u0d35\u0d3f\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00ae\u0d31\u0d4a\u0d24\u0d40\u0d31 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Mongolia\u00ae\u0d2f\u0d41\u0d32\u0d3e\u0d28\u0d4d\u200d \u0d2c\u0d3e\u0d31\u0d4d\u0d31\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2f\u0d41\u0d32\u0d3e\u0d28\u0d4d\u200d \u0d2c\u0d3e\u0d31\u0d4d\u0d31\u0d30\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Frunze\u00ae\u0d2b\u0d4d\u0d30\u0d42\u0d28\u0d4d\u200d\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2b\u0d4d\u0d30\u0d42\u0d28\u0d4d\u200d\u0d38\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Lanka\u00ae\u0d32\u0d19\u0d4d\u0d15 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00ae\u0d15\u0d41\u0d2f\u0d4d\u0d2c\u0d48\u0d37\u0d46\u0d35\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d41\u0d2f\u0d4d\u0d2c\u0d48\u0d37\u0d46\u0d35\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Azores\u00ae\u0d0e\u0d2f\u0d4d\u0d38\u0d4b\u0d30\u0d4d\u200d\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d0e\u0d2f\u0d4d\u0d38\u0d4b\u0d30\u0d4d\u200d\u0d38\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Greenland_Central\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Japan\u00ae\u0d1c\u0d2a\u0d4d\u0d2a\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d1c\u0d2a\u0d4d\u0d2a\u0d3e\u0d28\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Kwajalein\u00ae\u0d15\u0d4d\u0d35\u0d3e\u0d1c\u0d32\u0d46\u0d2f\u0d4d\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00ae\u0d37\u0d46\u0d35\u0d4d\u0d1a\u0d46\u0d19\u0d4d\u0d15\u0d4b \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d37\u0d46\u0d35\u0d4d\u0d1a\u0d46\u0d19\u0d4d\u0d15\u0d4b \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Pakistan\u00ae\u0d2a\u0d3e\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2a\u0d3e\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Bolivia\u00ae\u0d2c\u0d4a\u0d33\u0d40\u0d35\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00ae\u0d15\u0d41\u0d15\u0d4d\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d41\u0d15\u0d4d\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d \u0d05\u0d30\u0d4d\u200d\u0d26\u0d4d\u0d27 \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Kashgar\u00ae\u0d15\u0d3e\u0d37\u0d4d\u0d17\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Vostok\u00ae\u0d35\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Guyana\u00ae\u0d17\u0d2f\u0d3e\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Colombia\u00ae\u0d15\u0d4a\u0d33\u0d02\u0d2c\u0d3f\u0d2f \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d15\u0d4a\u0d33\u0d02\u0d2c\u0d3f\u0d2f \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Galapagos\u00ae\u0d17\u0d3e\u0d32\u0d2a\u0d4d\u0d2a\u0d3e\u0d17\u0d4b\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00ae\u0d15\u0d4d\u0d2f\u0d42\u0d2c \u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d47\u0d30\u0d4d\u200d\u0d21\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00aeCST (\u0d15\u0d4d\u0d2f\u0d42\u0d2c)\u00ae\u0d15\u0d4d\u0d2f\u0d42\u0d2c \u0d2a\u0d15\u0d32\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00aeCDT (\u0d15\u0d4d\u0d2f\u0d42\u0d2c )\u00ae\u00a9Myanmar\u00ae\u0d2e\u0d4d\u0d2f\u0d3e\u0d28\u0d4d\u200d\u0d2e\u0d3e\u0d30\u0d4d\u200d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Niue\u00ae\u0d28\u0d3f\u0d2f\u0d41 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Mauritius\u00ae\u0d2e\u0d4c\u0d31\u0d3f\u0d37\u0d4d\u0d2f\u0d38\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00ae\u0d35\u0d3e\u0d32\u0d3f\u0d38\u0d4d \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2b\u0d4d\u0d2f\u0d42\u0d1a\u0d41\u0d28 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00ae\u0d2e\u0d15\u0d4c \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d2e\u0d15\u0d4c \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9Aktyubinsk\u00ae\u0d05\u0d15\u0d4d\u0d24\u0d4d\u0d2f\u0d41\u0d2c\u0d3f\u0d28\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u0d05\u0d15\u0d4d\u0d24\u0d4d\u0d2f\u0d41\u0d2c\u0d3f\u0d28\u0d4d\u200d\u0d38\u0d4d\u0d15\u0d4d \u0d35\u0d47\u0d28\u0d32\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3e\u0d32 \u0d38\u0d2e\u0d2f\u0d02\u00ae\u00ae\u00a9
+territories.TL=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d24\u0d3f\u0d2e\u0d41\u0d30\u0d4d\u200d
+territories.TK=\u0d1f\u0d4a\u0d15\u0d46\u0d32\u0d3e\u0d35\u0d41
+territories.TJ=\u0d24\u0d3e\u0d1c\u0d3f\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.TH=\u0d24\u0d3e\u0d2f\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d
+territories.TG=\u0d1f\u0d4b\u0d17\u0d4b
+territories.TF=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d \u0d2d\u0d42\u0d2a\u0d4d\u0d30\u0d26\u0d47\u0d36\u0d02
+territories.GY=\u0d17\u0d2f\u0d3e\u0d28
+territories.TD=\u0d1a\u0d3e\u0d21\u0d4d
+territories.GW=\u0d17\u0d3f\u0d28\u0d3f-\u0d2c\u0d3f\u0d38\u0d4b
+territories.GU=\u0d17\u0d4d\u0d35\u0d3e\u0d02
+territories.GT=\u0d17\u0d4d\u0d35\u0d3e\u0d1f\u0d4d\u0d1f\u0d3f\u0d2e\u0d3e\u0d32\u0d3e
+territories.GS=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d4d\u0d1c\u0d3f\u0d2f\u0d2f\u0d41\u0d02 \u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d38\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d\u200c\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d41\u0d02
+territories.GR=\u0d17\u0d4d\u0d30\u0d40\u0d38\u0d4d
+territories.GQ=\u0d07\u0d15\u0d4d\u0d35\u0d3f\u0d31\u0d4d\u0d31\u0d4b\u0d31\u0d3f\u0d2f\u0d32\u0d4d\u200d \u0d17\u0d4d\u0d35\u0d3f\u0d28\u0d3f\u0d2f
+territories.GP=\u0d17\u0d41\u0d35\u0d3e\u0d21\u0d46\u0d32\u0d4b\u0d2a\u0d4d
+territories.SZ=\u0d38\u0d4d\u0d35\u0d3e\u0d38\u0d3f\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d4d
+territories.SY=\u0d38\u0d3f\u0d31\u0d3f\u0d2f
+territories.GN=\u0d17\u0d4d\u0d35\u0d3f\u0d28\u0d3f\u0d2f
+territories.GM=\u0d17\u0d3e\u0d02\u0d2c\u0d3f\u0d2f
+territories.GL=\u0d17\u0d4d\u0d30\u0d40\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d4d
+territories.SV=\u0d0e\u0d32\u0d4d\u200d \u0d38\u0d3e\u0d32\u0d4d\u0d35\u0d21\u0d4b\u0d30\u0d4d\u200d
+territories.062=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f\u0d47\u0d37\u0d4d\u0d2f
+territories.ST=\u0d38\u0d3e\u0d35\u0d4b \u0d31\u0d4d\u0d31\u0d2e\u0d46 \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2a\u0d4d\u0d30\u0d3f\u0d28\u0d4d\u200d\u0d38\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f
+territories.GI=\u0d1c\u0d3f\u0d2c\u0d4d\u0d30\u0d3e\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d30\u0d4d\u200d
+territories.061=\u0d2a\u0d4b\u0d33\u0d3f\u0d28\u0d47\u0d37\u0d4d\u0d2f
+territories.GH=\u0d18\u0d3e\u0d28
+territories.SR=\u0d38\u0d41\u0d31\u0d3f\u0d28\u0d3e\u0d02
+territories.GG=\u0d17\u0d47\u0d23\u0d4d\u200d\u0d38\u0d3f
+territories.GF=\u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d \u0d17\u0d2f\u0d3e\u0d28
+territories.GE=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d3f\u0d2f
+territories.SO=\u0d38\u0d4b\u0d2e\u0d3e\u0d32\u0d3f\u0d2f
+territories.GD=\u0d17\u0d4d\u0d30\u0d28\u0d47\u0d21
+territories.SN=\u0d38\u0d46\u0d28\u0d17\u0d32\u0d4d\u200d
+territories.SM=\u0d38\u0d3e\u0d28\u0d4d\u200d \u0d2e\u0d31\u0d3f\u0d28\u0d4b
+territories.GB=\u0d2c\u0d4d\u0d30\u0d3f\u0d1f\u0d4d\u0d1f\u0d28\u0d4d\u200d
+territories.SL=\u0d38\u0d3f\u0d2f\u0d47\u0d31\u0d3e \u0d32\u0d3f\u0d2f\u0d4b\u0d23\u0d4d\u200d
+territories.GA=\u0d17\u0d3e\u0d2c\u0d4b\u0d23\u0d4d\u200d
+territories.SK=\u0d38\u0d4d\u0d32\u0d4b\u0d35\u0d3e\u0d15\u0d4d\u0d2f
+territories.SJ=SJ
+territories.SI=\u0d38\u0d4d\u0d32\u0d4b\u0d35\u0d47\u0d28\u0d3f\u0d2f
+territories.SH=\u0d38\u0d46\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d39\u0d46\u0d32\u0d40\u0d28
+territories.SG=\u0d38\u0d3f\u0d02\u0d17\u0d2a\u0d4d\u0d2a\u0d41\u0d30\u0d4d\u200d
+territories.SE=\u0d38\u0d4d\u0d35\u0d40\u0d21\u0d28\u0d4d\u200d
+territories.SD=\u0d38\u0d41\u0d21\u0d3e\u0d28\u0d4d\u200d
+territories.SC=\u0d38\u0d46\u0d2f\u0d4d\u0d37\u0d46\u0d32\u0d4d\u200d\u0d38\u0d4d
+territories.SB=\u0d38\u0d4b\u0d33\u0d2e\u0d28\u0d4d\u200d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.SA=\u0d38\u0d57\u0d26\u0d3f \u0d05\u0d31\u0d47\u0d2c\u0d4d\u0d2f
+territories.FR=\u0d2b\u0d4d\u0d30\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d4d
+territories.FO=\u0d2b\u0d31\u0d4b\u0d2f\u0d3f \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.057=\u0d2e\u0d48\u0d15\u0d4d\u0d30\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d17\u0d02
+territories.FM=\u0d2e\u0d48\u0d15\u0d4d\u0d30\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f
+territories.RW=\u0d31\u0d41\u0d35\u0d3e\u0d23\u0d4d\u0d1f
+territories.054=\u0d2e\u0d46\u0d32\u0d28\u0d47\u0d37\u0d4d\u0d2f
+territories.FK=\u0d2b\u0d3e\u0d15\u0d4d\u0d15\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d10\u0d32\u0d28\u0d4d\u200d\u0d31\u0d4d
+territories.053=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d2f\u0d41\u0d02 \u0d28\u0d4d\u0d2f\u0d42\u0d38\u0d3f\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d41\u0d02
+territories.RU=\u0d31\u0d37\u0d4d\u0d2f
+territories.FJ=\u0d2b\u0d3f\u0d1c\u0d3f
+territories.FI=\u0d2b\u0d3f\u0d28\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d
+territories.RS=\u0d38\u0d46\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f
+territories.RO=\u0d31\u0d4a\u0d2e\u0d3e\u0d28\u0d3f\u0d2f
+territories.RE=\u0d31\u0d40\u0d2f\u0d42\u0d23\u0d3f\u0d2f\u0d28\u0d4d\u200d
+territories.ET=\u0d0e\u0d24\u0d4d\u0d2f\u0d4b\u0d2a\u0d4d\u0d2f
+territories.ES=\u0d38\u0d4d\u0d2a\u0d46\u0d2f\u0d3f\u0d28\u0d4d\u200d
+territories.ER=\u0d0e\u0d31\u0d3f\u0d24\u0d4d\u0d30\u0d3f\u0d2f
+territories.QU=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d23\u0d3f\u0d2f\u0d28\u0d4d\u200d
+territories.EH=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d38\u0d39\u0d3e\u0d31
+territories.EG=\u0d08\u0d1c\u0d3f\u0d2a\u0d4d\u0d24\u0d4d
+territories.EE=\u0d0e\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d23\u0d3f\u0d2f\u200d
+territories.QO=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d2b\u0d4b\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d
+territories.EC=\u0d07\u0d15\u0d4d\u0d35\u0d21\u0d4b\u0d30\u0d4d\u200d
+territories.DZ=\u0d05\u0d33\u0d4d\u200d\u0d1c\u0d40\u0d30\u0d3f\u0d2f
+territories.QA=\u0d16\u0d24\u0d4d\u0d24\u0d30\u0d4d\u200d
+territories.039=\u0d24\u0d46\u0d15\u0d4d\u0d15\u0d47 \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2a\u0d4d
+territories.DO=\u0d21\u0d4a\u0d2e\u0d3f\u0d28\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d31\u0d3f\u0d2a\u0d4d\u0d2a\u0d2c\u0d4d\u0d32\u0d3f\u0d15\u0d4d
+territories.PY=\u0d2a\u0d30\u0d3e\u0d17\u0d4d\u0d35\u0d47
+territories.DM=\u0d21\u0d4a\u0d2e\u0d3f\u0d28\u0d3f\u0d15\u0d4d\u0d15
+territories.035=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d2a\u0d42\u0d30\u0d4d\u200d\u0d35\u0d4d\u0d35\u0d47\u0d37\u0d4d\u0d2f
+territories.PW=\u0d2a\u0d32\u0d3e\u0d35\u0d41
+territories.034=\u0d24\u0d46\u0d15\u0d4d\u0d15\u0d47 \u0d0f\u0d37\u0d4d\u0d2f
+territories.DK=\u0d21\u0d46\u0d28\u0d4d\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d4d
+territories.DJ=\u0d1c\u0d3f\u0d2c\u0d42\u0d1f\u0d4d\u0d1f\u0d3f
+territories.PT=\u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d32\u0d4d\u200d
+territories.PS=\u0d2a\u0d3e\u0d32\u0d38\u0d4d\u0d24\u0d40\u0d28\u0d4d\u200d
+territories.030=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d0f\u0d37\u0d4d\u0d2f
+territories.PR=\u0d2a\u0d4d\u0d2f\u0d42\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d4b \u0d31\u0d3f\u0d15\u0d4d\u0d15\u0d4b
+territories.DE=\u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d3f
+territories.PN=\u0d2a\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d15\u0d46\u0d2f\u0d4d\u0d28\u0d4d\u200d
+territories.PL=\u0d2a\u0d4b\u0d33\u0d23\u0d4d\u0d1f\u0d4d
+territories.PK=\u0d2a\u0d3e\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.PH=\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d48\u0d28\u0d4d\u200d\u0d38\u0d4d
+territories.PG=PG
+territories.PF=\u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d \u0d2a\u0d4b\u0d33\u0d3f\u0d28\u0d47\u0d37\u0d4d\u0d2f
+territories.CZ=\u0d1a\u0d46\u0d15\u0d4d\u0d15\u0d4d \u0d31\u0d3f\u0d2a\u0d4d\u0d2a\u0d2c\u0d4d\u0d32\u0d3f\u0d15\u0d4d
+territories.PE=\u0d2a\u0d46\u0d31\u0d41
+territories.CY=\u0d38\u0d48\u0d2a\u0d4d\u0d30\u0d38\u0d4d\u0d38\u0d4d
+territories.CX=\u0d15\u0d4d\u0d30\u0d3f\u0d38\u0d4d\u0d2e\u0d38\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d
+territories.CV=\u0d15\u0d47\u0d2a\u0d4d\u0d2a\u0d4d \u0d35\u0d46\u0d30\u0d4d\u200d\u0d21\u0d46
+territories.PA=\u0d2a\u0d28\u0d3e\u0d2e
+territories.CU=\u0d15\u0d4d\u0d2f\u0d42\u0d2c
+territories.CR=\u0d15\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d31\u0d3f\u0d15\u0d4d\u0d15
+territories.029=\u0d15\u0d30\u0d40\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+territories.CO=\u0d15\u0d4a\u0d33\u0d02\u0d2c\u0d3f\u0d2f
+territories.CN=\u0d1a\u0d48\u0d28
+territories.CM=\u0d15\u0d3e\u0d2e\u0d31\u0d42\u0d23\u0d4d\u200d
+territories.CL=\u0d1a\u0d3f\u0d32\u0d3f
+territories.CK=\u0d15\u0d42\u0d15\u0d4d\u0d15\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.021=\u0d35\u0d1f\u0d15\u0d4d\u0d15\u0d47 \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.CI=\u0d10\u0d35\u0d31\u0d3f \u0d15\u0d4b\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4d
+territories.CH=\u0d38\u0d4d\u0d35\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d30\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d
+territories.CG=\u0d15\u0d4b\u0d02\u0d17\u0d4b - \u0d2c\u0d4d\u0d30\u0d3e\u0d38\u0d3e\u0d35\u0d3f\u0d32\u0d4d\u200d
+territories.CF=\u0d38\u0d46\u0d28\u0d4d\u200d\u0d1f\u0d4d\u0d30\u0d32\u0d4d\u200d \u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d31\u0d3f\u0d2a\u0d4d\u0d2a\u0d2c\u0d4d\u0d32\u0d3f\u0d15\u0d4d
+territories.CD=\u0d15\u0d4b\u0d02\u0d17\u0d4b - \u0d15\u0d3f\u0d28\u0d4d\u200d\u0d37\u0d3e\u0d38
+territories.CC=\u0d15\u0d4b\u0d15\u0d4d\u0d15\u0d38\u0d4d
+territories.OM=\u0d12\u0d2e\u0d3e\u0d28\u0d4d\u200d
+territories.CA=\u0d15\u0d3e\u0d28\u0d21
+territories.419=\u0d32\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d2f\u0d41\u0d02 \u0d15\u0d30\u0d40\u0d2c\u0d3f\u0d2f\u0d28\u0d41\u0d02
+territories.BZ=\u0d2c\u0d46\u0d32\u0d40\u0d38\u0d4d
+territories.BY=\u0d2c\u0d32\u0d3e\u0d31\u0d38\u0d4d
+territories.BW=\u0d2c\u0d4b\u0d1f\u0d4d\u0d38\u0d4d\u0d35\u0d3e\u0d28
+territories.BV=\u0d2c\u0d4c\u0d35\u0d31\u0d4d\u0d31\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d
+territories.BT=\u0d2d\u0d42\u0d1f\u0d4d\u0d1f\u0d3e\u0d28\u0d4d\u200d
+territories.BS=\u0d2c\u0d39\u0d3e\u0d2e\u0d3e\u0d38\u0d4d
+territories.BR=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d4d\u200d
+territories.019=\u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d38\u0d4d
+territories.018=\u0d24\u0d46\u0d15\u0d4d\u0d15\u0d47 \u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.NZ=\u0d28\u0d4d\u0d2f\u0d42\u0d38\u0d3f\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d4d
+territories.017=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.BO=\u0d2c\u0d4a\u0d33\u0d40\u0d35\u0d3f\u0d2f
+territories.BN=\u0d2c\u0d4d\u0d30\u0d42\u0d23\u0d2f\u0d4d
+territories.015=\u0d09\u0d24\u0d4d\u0d24\u0d30\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.BM=\u0d2c\u0d30\u0d4d\u200d\u0d2e\u0d41\u0d21
+territories.014=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.013=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f\u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.NU=\u0d28\u0d4d\u0d2f\u0d42\u0d35\u0d47
+territories.BJ=\u0d2c\u0d46\u0d28\u0d3f\u0d28\u0d4d\u200d
+territories.011=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.BI=\u0d2c\u0d41\u0d31\u0d41\u0d23\u0d4d\u0d1f\u0d3f
+territories.172=\u0d38\u0d4d\u0d35\u0d24\u0d28\u0d4d\u0d24\u0d4d\u0d30\u0d30\u0d3e\u0d37\u0d4d\u0d1f\u0d4d\u0d30\u0d19\u0d4d\u0d19\u0d33\u0d41\u0d1f\u0d46 \u0d15\u0d4b\u0d2e\u0d23\u0d4d\u200d\u200c\u0d35\u0d46\u0d32\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d4d
+territories.BH=\u0d2c\u0d39\u0d4d\u0d31\u0d48\u0d28\u0d4d\u200d
+territories.NR=\u0d28\u0d4c\u0d31\u0d42
+territories.BG=\u0d2c\u0d33\u0d4d\u200d\u0d17\u0d47\u0d31\u0d3f\u0d2f
+territories.BF=\u0d2c\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f\u0d28\u0d3e \u0d2b\u0d3e\u0d38\u0d4b
+territories.NP=\u0d28\u0d47\u0d2a\u0d4d\u0d2a\u0d3e\u0d33\u0d4d\u200d
+territories.BE=\u0d2c\u0d46\u0d32\u0d4d\u200d\u0d1c\u0d3f\u0d2f\u0d02
+territories.ZZ=\u0d05\u0d31\u0d3f\u0d2f\u0d2a\u0d4d\u0d2a\u0d46\u0d1f\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d06\u0d2f \u0d2a\u0d4d\u0d30\u0d26\u0d47\u0d36\u0d02
+territories.NO=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d35\u0d46
+territories.BD=\u0d2c\u0d02\u0d17\u0d4d\u0d32\u0d3e\u0d26\u0d47\u0d36\u0d4d
+territories.BB=\u0d2c\u0d3e\u0d30\u0d4d\u200d\u0d2c\u0d21\u0d4b\u0d38\u0d4d
+territories.ZW=\u0d38\u0d3f\u0d02\u0d2c\u0d3e\u0d35\u0d46
+territories.NL=\u0d28\u0d46\u0d24\u0d30\u0d4d\u200d\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d
+territories.BA=\u0d2c\u0d4b\u0d38\u0d4d\u0d28\u0d3f\u0d2f \u0d39\u0d46\u0d30\u0d4d\u200d\u0d38\u0d17\u0d4b\u0d35\u0d3f\u0d28
+territories.NI=\u0d28\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d30\u0d17\u0d4d\u0d35
+territories.NG=\u0d28\u0d48\u0d1c\u0d40\u0d30\u0d3f\u0d2f
+territories.AZ=\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d48\u0d1c\u0d3e\u0d28\u0d4d\u200d
+territories.NE=\u0d28\u0d48\u0d17\u0d30\u0d4d\u200d
+territories.AX=\u0d05\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.AW=\u0d05\u0d31\u0d41\u0d2c
+territories.ZM=\u0d38\u0d3e\u0d02\u0d2c\u0d3f\u0d2f
+territories.NA=\u0d28\u0d2e\u0d40\u0d2c\u0d3f\u0d2f
+territories.AU=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f
+territories.AT=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d3f\u0d2f
+territories.AS=\u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d3e\u0d2e\u0d4b\u0d35
+territories.AR=\u0d05\u0d30\u0d4d\u200d\u0d1c\u0d28\u0d4d\u200d\u0d31\u0d40\u0d28
+territories.AQ=\u0d05\u0d28\u0d4d\u200d\u0d31\u0d3e\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d4d\u0d15
+territories.009=\u0d38\u0d2e\u0d41\u0d26\u0d4d\u0d30\u0d30\u0d3e\u0d37\u0d4d\u0d1f\u0d4d\u0d30\u0d19\u0d4d\u0d19\u0d33\u0d4d\u200d
+territories.MZ=\u0d2e\u0d4a\u0d38\u0d3e\u0d02\u0d2c\u0d3f\u0d15\u0d4d\u0d15\u0d4d
+territories.AO=\u0d05\u0d02\u0d17\u0d4b\u0d33
+territories.MY=\u0d2e\u0d32\u0d47\u0d37\u0d4d\u0d2f
+territories.AN=\u0d28\u0d46\u0d24\u0d30\u0d4d\u200d\u0d32\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d38\u0d4d \u0d06\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d32\u0d3f\u0d38\u0d4d
+territories.MX=\u0d2e\u0d46\u0d15\u0d4d\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d4b
+territories.AM=\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f
+territories.005=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.MW=\u0d2e\u0d32\u0d3e\u0d35\u0d3f
+territories.AL=\u0d05\u0d32\u0d4d\u200d\u0d2c\u0d47\u0d28\u0d3f\u0d2f
+territories.MV=\u0d2e\u0d3e\u0d32\u0d3f\u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d4d
+territories.003=\u0d35\u0d1f\u0d15\u0d4d\u0d15\u0d47 \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2d\u0d42\u0d16\u0d23\u0d4d\u0d21\u0d02
+territories.ZA=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d3e\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.MU=\u0d2e\u0d4c\u0d31\u0d40\u0d37\u0d4d\u0d2f\u0d38\u0d4d
+territories.002=\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15
+territories.MT=\u0d2e\u0d3e\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f
+territories.AI=\u0d06\u0d28\u0d4d\u200d\u0d17\u0d4d\u0d35\u0d3f\u0d32\u0d4d\u0d32
+territories.001=\u0d32\u0d4b\u0d15\u0d02
+territories.MS=\u0d2e\u0d4b\u0d23\u0d4d\u0d1f\u0d4d\u0d38\u0d46\u0d31\u0d3e\u0d31\u0d4d\u0d31\u0d4d
+territories.MR=\u0d2e\u0d4c\u0d31\u0d3f\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d3f\u0d2f
+territories.AG=\u0d06\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d17\u0d4d\u0d35 \u0d06\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d2c\u0d30\u0d4d\u200d\u0d2c\u0d41\u0d21
+territories.MQ=\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d40\u0d28\u0d3f\u0d15\u0d4d
+territories.AF=\u0d05\u0d2b\u0d4d\u0d17\u0d3e\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.MP=\u0d09\u0d24\u0d4d\u0d24\u0d30 \u0d2e\u0d31\u0d3f\u0d2f\u0d3e\u0d28\u0d3e \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.AE=\u0d38\u0d02\u0d2f\u0d41\u0d15\u0d4d\u0d24 \u0d05\u0d31\u0d2c\u0d4d \u0d30\u0d3e\u0d37\u0d4d\u0d1f\u0d4d\u0d30\u0d02
+territories.MO=\u0d2e\u0d15\u0d4d\u0d15\u0d3e\u0d35\u0d4b
+territories.AD=\u0d05\u0d28\u0d4d\u200d\u0d1f\u0d4b\u0d31
+territories.MN=\u0d2e\u0d02\u0d17\u0d4b\u0d33\u0d3f\u0d2f
+territories.MM=\u0d2e\u0d4d\u0d2f\u0d3e\u0d28\u0d4d\u200d\u0d2e\u0d3e\u0d30\u0d4d\u200d
+territories.ML=\u0d2e\u0d3e\u0d32\u0d3f
+territories.MK=\u0d2e\u0d3e\u0d38\u0d3f\u0d21\u0d4b\u0d23\u0d3f\u0d2f
+territories.YT=\u0d2e\u0d2f\u0d4b\u0d1f\u0d4d\u0d1f\u0d4d
+territories.MH=\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d37\u0d32\u0d4d\u200d\u200d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.MG=\u0d2e\u0d21\u0d17\u0d3e\u0d38\u0d4d\u0d15\u0d30\u0d4d\u200d
+territories.MF=\u0d38\u0d46\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d28\u0d4d\u200d
+territories.ME=\u0d2e\u0d4b\u0d23\u0d4d\u0d1f\u0d47\u0d28\u0d47\u0d17\u0d4d\u0d30\u0d4b
+territories.MD=\u0d2e\u0d33\u0d4d\u200d\u0d21\u0d4b\u0d35
+territories.MC=\u0d2e\u0d4a\u0d23\u0d4b\u0d15\u0d4d\u0d15\u0d4a
+territories.MA=\u0d2e\u0d4a\u0d31\u0d4b\u0d15\u0d4d\u0d15\u0d4a
+territories.YE=\u0d2f\u0d2e\u0d28\u0d4d\u200d
+territories.LY=\u0d32\u0d3f\u0d2c\u0d3f\u0d2f
+territories.LV=\u0d32\u0d3e\u0d24\u0d4d\u0d35\u0d3f\u0d2f
+territories.155=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2a\u0d4d
+territories.LU=\u0d32\u0d15\u0d4d\u0d38\u0d02\u0d2c\u0d30\u0d4d\u200d\u0d17\u0d4d
+territories.154=\u0d35\u0d1f\u0d15\u0d4d\u0d15\u0d47 \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2a\u0d4d
+territories.LT=\u0d32\u0d3f\u0d24\u0d4d\u0d35\u0d3e\u0d28\u0d3f\u0d2f
+territories.LS=\u0d32\u0d46\u0d38\u0d4b\u0d24\u0d4d\u0d24\u0d4b
+territories.LR=\u0d32\u0d48\u0d2c\u0d40\u0d30\u0d3f\u0d2f
+territories.151=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2a\u0d4d
+territories.150=\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2a\u0d4d
+territories.LK=\u0d36\u0d4d\u0d30\u0d40\u0d32\u0d19\u0d4d\u0d15
+territories.LI=\u0d32\u0d48\u0d1a\u0d4d\u0d1f\u0d46\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d4d\u200d
+territories.LC=\u0d38\u0d46\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d32\u0d42\u0d38\u0d3f\u0d2f
+territories.LB=\u0d32\u0d2c\u0d28\u0d4b\u0d23\u0d4d\u200d
+territories.LA=\u0d32\u0d3e\u0d35\u0d4b\u0d38\u0d4d
+territories.KZ=\u0d15\u0d38\u0d3e\u0d16\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.KY=\u0d15\u0d47\u0d2f\u0d4d\u0d2e\u0d3e\u0d28\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.KW=\u0d15\u0d41\u0d35\u0d48\u0d31\u0d4d\u0d31\u0d4d
+territories.145=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e\u0d47\u0d37\u0d4d\u0d2f
+territories.143=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f\u0d47\u0d37\u0d4d\u0d2f
+territories.142=\u0d0f\u0d37\u0d4d\u0d2f
+territories.KR=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23\u0d15\u0d4a\u0d31\u0d3f\u0d2f
+territories.KP=\u0d09\u0d24\u0d4d\u0d24\u0d30\u0d15\u0d4a\u0d31\u0d3f\u0d2f
+territories.KN=\u0d38\u0d46\u0d2f\u0d4d\u0d28\u0d4d\u200d\u0d31\u0d4d \u0d15\u0d3f\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d41\u0d02 \u0d28\u0d46\u0d35\u0d3f\u0d38\u0d41\u0d02
+territories.KM=\u0d15\u0d4b\u0d2e\u0d31\u0d4b\u0d38\u0d4d
+territories.KI=\u0d15\u0d3f\u0d30\u0d3f\u0d2c\u0d3e\u0d24\u0d4d\u0d24\u0d3f
+territories.WS=\u0d38\u0d3e\u0d2e\u0d4b\u0d35
+territories.KH=\u0d15\u0d02\u0d2c\u0d4b\u0d21\u0d3f\u0d2f
+territories.KG=\u0d15\u0d3f\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.KE=\u0d15\u0d46\u0d28\u0d3f\u0d2f
+territories.WF=\u0d35\u0d3e\u0d32\u0d3f\u0d38\u0d4d \u0d06\u0d28\u0d4d\u200d\u0d21\u0d4d \u0d2b\u0d4d\u0d2f\u0d41\u0d1a\u0d42\u0d28
+territories.JP=\u0d1c\u0d2a\u0d4d\u0d2a\u0d3e\u0d28\u0d4d\u200d
+territories.JO=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d26\u0d4d\u0d26\u0d3e\u0d28\u0d4d\u200d
+territories.JM=\u0d1c\u0d2e\u0d48\u0d15\u0d4d\u0d15
+territories.VU=\u0d35\u0d28\u0d4d\u0d35\u0d3e\u0d24\u0d4d\u0d24\u0d41
+territories.JE=\u0d1c\u0d47\u0d34\u0d4d\u0d38\u0d3f
+territories.VN=\u0d35\u0d3f\u0d2f\u0d31\u0d4d\u0d31\u0d4d\u0d28\u0d3e\u0d02
+territories.VI=\u0d2f\u0d41 \u0d0e\u0d38\u0d4d \u0d35\u0d46\u0d30\u0d4d\u200d\u0d1c\u0d3f\u0d28\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.VG=\u0d2c\u0d4d\u0d30\u0d3f\u0d1f\u0d4d\u0d1f\u0d40\u0d37\u0d4d \u0d35\u0d3f\u0d30\u0d4d\u200d\u0d1c\u0d3f\u0d28\u0d4d\u200d \u0d26\u0d4d\u0d35\u0d40\u0d2a\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.VE=\u0d35\u0d46\u0d28\u0d3f\u0d38\u0d4d\u0d35\u0d47\u0d32
+territories.VA=\u0d35\u0d24\u0d4d\u0d24\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d28\u0d4d\u200d
+territories.IT=\u0d07\u0d31\u0d4d\u0d31\u0d32\u0d3f
+territories.IS=\u0d10\u0d38\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u0d31\u0d4d
+territories.IR=\u0d07\u0d31\u0d3e\u0d28\u0d4d\u200d
+territories.IQ=\u0d07\u0d31\u0d3e\u0d15\u0d4d\u0d15\u0d4d
+territories.UZ=\u0d09\u0d38\u0d4d\u0d2c\u0d15\u0d4d\u0d15\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+territories.IO=\u0d2c\u0d4d\u0d30\u0d3f\u0d1f\u0d4d\u0d1f\u0d40\u0d37\u0d4d \u0d07\u0d28\u0d4d\u0d24\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2e\u0d39\u0d3e\u0d38\u0d2e\u0d41\u0d26\u0d4d\u0d30 \u0d2a\u0d4d\u0d30\u0d26\u0d47\u0d36\u0d02
+territories.UY=\u0d09\u0d31\u0d41\u0d17\u0d4d\u0d35
territories.IN=\u0d07\u0d28\u0d4d\u0d24\u0d4d\u0d2f
+territories.IM=\u0d10\u0d32\u0d4d\u200d \u0d13\u0d2b\u0d4d \u0d2e\u0d3e\u0d28\u0d4d\u200d
+territories.IL=\u0d07\u0d38\u0d4d\u0d30\u0d2f\u0d47\u0d32\u0d4d\u200d
+territories.US=\u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d10\u0d15\u0d4d\u0d2f\u0d28\u0d3e\u0d1f\u0d41\u0d15\u0d33\u0d4d\u200d
+territories.IE=\u0d05\u0d2f\u0d30\u0d4d\u200d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d4d
+territories.ID=\u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f
+territories.UG=\u0d09\u0d17\u0d3e\u0d23\u0d4d\u0d1f
+territories.UA=\u0d09\u0d15\u0d4d\u0d30\u0d48\u0d28\u0d4d\u200d
+territories.HU=\u0d39\u0d02\u0d17\u0d31\u0d3f
+territories.HT=\u0d39\u0d46\u0d2f\u0d4d\u0d24\u0d3f
+territories.HR=\u0d15\u0d4d\u0d30\u0d4a\u0d2f\u0d47\u0d37\u0d4d\u0d2f
+territories.TZ=\u0d1f\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d3e\u0d28\u0d3f\u0d2f
+territories.HN=\u0d39\u0d4b\u0d23\u0d4d\u0d1f\u0d41\u0d31\u0d3e\u0d38\u0d4d
+territories.TW=\u0d24\u0d3e\u0d2f\u0d4d\u200c\u0d35\u0d3e\u0d28\u0d4d\u200d
+territories.TV=\u0d24\u0d41\u0d35\u0d3e\u0d32\u0d41
+territories.HK=\u0d39\u0d4b\u0d19\u0d4d \u0d15\u0d4b\u0d19\u0d4d
+territories.TT=\u0d1f\u0d4d\u0d30\u0d3f\u0d28\u0d3f\u0d21\u0d3e\u0d21\u0d41\u0d02 \u0d31\u0d4d\u0d31\u0d4a\u0d2c\u0d3e\u0d17\u0d4b\u0d2f\u0d41\u0d02
+territories.TR=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f
+territories.TO=\u0d1f\u0d4b\u0d02\u0d17
+territories.TN=\u0d1f\u0d41\u0d23\u0d40\u0d37\u0d4d\u0d2f
+territories.TM=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d41\u0d2e\u0d28\u0d3f\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d4d\u200d
+languages.gwi=\u0d17\u0d4d\u0d35\u0d3f\u0d1a\u0d4d\u0d1a\u0d4d \u0d07\u0d28\u0d4d\u200d
+languages.akk=\u0d05\u0d15\u0d4d\u0d15\u0d3e\u0d21\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.eka=\u0d0e\u0d15\u0d3e\u0d1c\u0d41\u0d15\u0d4d
+languages.ijo=\u0d07\u0d1c\u0d4b
+languages.xh=\u0d15\u0d4d\u0d37\u0d4b\u0d38\u0d3e
+languages.sux=\u0d38\u0d41\u0d2e\u0d47\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.sus=\u0d38\u0d41\u0d38\u0d41
+languages.mis=\u0d07\u0d24\u0d30\u0d2d\u0d3e\u0d37
+languages.loz=\u0d32\u0d4b\u0d38\u0d3f
+languages.tog=\u0d28\u0d4d\u0d2f\u0d3e\u0d38\u0d3e \u0d21\u0d4b\u0d19\u0d4d\u0d15
+languages.zbl=\u0d2c\u0d4d\u0d32\u0d3f\u0d38\u0d4d\u200c \u0d1a\u0d3f\u0d24\u0d4d\u0d30\u0d32\u0d3f\u0d2a\u0d3f
+languages.pon=\u0d2a\u0d4a\u0d28\u0d4d\u200d\u0d2a\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.min=\u0d2e\u0d3f\u0d28\u0d3e\u0d19\u0d4d\u0d15\u0d2c\u0d4c
+languages.suk=\u0d38\u0d41\u0d15\u0d41\u0d2e
+languages.wo=\u0d35\u0d4a\u0d33\u0d4b\u0d2b\u0d4d
+languages.lol=\u0d2e\u0d4b\u0d19\u0d4d\u0d15\u0d4b
+languages.kut=\u0d15\u0d41\u0d24\u0d47\u0d28\u0d48
+languages.mic=\u0d2e\u0d3f\u0d15\u0d4d\u0d2e\u0d3e\u0d15\u0d4d
+languages.wa=\u0d35\u0d32\u0d4d\u0d32\u0d42\u0d23\u0d4d\u200d
+languages.kum=\u0d15\u0d41\u0d2e\u0d48\u0d15\u0d4d
+languages.zap=\u0d38\u0d3e\u0d2a\u0d4d\u0d2a\u0d4b\u0d1f\u0d46\u0d15\u0d4d
+languages.ain=\u0d05\u0d2f\u0d3f\u0d28\u0d41
+languages.cus=\u0d15\u0d41\u0d37\u0d3f\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.jbo=\u0d32\u0d4b\u0d1c\u0d4d\u0d2c\u0d3e\u0d28\u0d4d\u200d
+languages.doi=\u0d21\u0d4b\u0d17\u0d4d\u0d30\u0d3f
+languages.zza=\u0d38\u0d3e\u0d38\u0d3e
+languages.vo=\u0d35\u0d4b\u0d33\u0d3e\u0d2a\u0d41\u0d15\u0d4d
+languages.oto=\u0d13\u0d1f\u0d4d\u0d1f\u0d4b\u0d2e\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.vi=\u0d35\u0d3f\u0d2f\u0d31\u0d4d\u0d31\u0d4d\u0d28\u0d3e\u0d2e\u0d40\u0d38\u0d4d
+languages.vai=\u0d35\u0d48
+languages.rar=\u0d30\u0d3e\u0d30\u0d4b\u0d1f\u0d4b\u0d19\u0d4d\u0d15\u0d28\u0d4d\u200d
+languages.ve=\u0d35\u0d46\u0d28\u0d4d\u0d26
+languages.rap=\u0d30\u0d3e\u0d2a\u0d28\u0d42\u0d2f\u0d3f
+languages.raj=\u0d30\u0d3e\u0d1c\u0d38\u0d4d\u0d25\u0d3e\u0d28\u0d3f
+languages.ota=\u0d13\u0d1f\u0d4d\u0d1f\u0d4b\u0d2e\u0d28\u0d4d\u200d \u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f\u0d37\u0d4d
+languages.nzi=\u0d38\u0d3f\u0d2e
+languages.nap=\u0d28\u0d46\u0d2a\u0d4d\u0d2a\u0d4b\u0d33\u0d3f\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d
+languages.uz=\u0d09\u0d38\u0d4d\u0d2c\u0d46\u0d15\u0d4d
+languages.uga=\u0d09\u0d17\u0d31\u0d3f\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d4d
+languages.tmh=\u0d1f\u0d2e\u0d37\u0d47\u0d15\u0d4d
+languages.nai=\u0d35\u0d1f\u0d15\u0d4d\u0d15\u0d47 \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.nah=\u0d28\u0d3e\u0d39\u0d4d\u0d35\u0d3e\u0d33\u0d4d\u200d\u200d\u0d1f\u0d4d\u0d1f\u0d4d
+languages.ur=\u0d09\u0d31\u0d41\u0d26\u0d41
+languages.fat=\u0d2b\u0d28\u0d4d\u200d\u0d31\u0d46
+languages.uk=\u0d09\u0d15\u0d4d\u0d30\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.egy=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d08\u0d1c\u0d3f\u0d2a\u0d4d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.zxx=\u0d2d\u0d3e\u0d37\u0d47\u0d24\u0d30\u0d02
+languages.ug=\u0d09\u0d2f\u0d4d\u0d18\u0d41\u0d30\u0d4d\u200d
+languages.fan=\u0d2b\u0d19\u0d4d
+languages.ssa=\u0d28\u0d3f\u0d33\u0d4b-\u0d38\u0d39\u0d3e\u0d31\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.mga=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d10\u0d31\u0d3f\u0d37\u0d4d
+languages.bat=\u0d2c\u0d3e\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.nyo=\u0d28\u0d4d\u0d2f\u0d4b\u0d31\u0d4b
+languages.bas=\u0d2c\u0d38
+languages.nyn=\u0d28\u0d4d\u0d2f\u0d3e\u0d28\u0d4d\u200d\u0d15\u0d32\u0d47
+languages.nym=\u0d28\u0d4d\u0d2f\u0d3e\u0d02\u0d35\u0d47\u0d38\u0d3f
+languages.gsw=\u0d38\u0d4d\u0d35\u0d3f\u0d38\u0d4d \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.hmn=\u0d2e\u0d4b\u0d19\u0d4d
+languages.ban=\u0d2c\u0d3e\u0d32\u0d3f\u0d28\u0d40\u0d38\u0d4d
+languages.osa=\u0d12\u0d38\u0d47\u0d1c\u0d4d
+languages.bal=\u0d2c\u0d32\u0d42\u0d1a\u0d3f
+languages.ty=\u0d1f\u0d3e\u0d39\u0d3f\u0d24\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.bai=\u0d2c\u0d3e\u0d2e\u0d3f\u0d32\u0d15\u0d47 \u0d2d\u0d3e\u0d37
+languages.tw=\u0d24\u0d4d\u0d35\u0d3f
+languages.srr=\u0d38\u0d46\u0d31\u0d30\u0d4d\u200d
+languages.tli=\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d35\u0d3f\u0d31\u0d4d\u0d31\u0d4d
+languages.tlh=\u0d15\u0d4d\u0d32\u0d3f\u0d19\u0d4d\u0d17\u0d4b\u0d23\u0d4d\u200d
+languages.tt=\u0d1f\u0d3e\u0d1f\u0d4d\u0d1f\u0d3e\u0d30\u0d4d\u200d
+languages.ts=\u0d24\u0d4d\u0d38\u0d4b\u0d02\u0d17
+languages.srn=\u0d36\u0d4d\u0d30\u0d3e\u0d28\u0d28\u0d4d\u200d \u0d21\u0d4b\u0d19\u0d4d\u0d15\u0d4b
+languages.bad=\u0d2c\u0d28\u0d4d\u200d\u0d21
+languages.tr=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f
+languages.to=\u0d1f\u0d4b\u0d02\u0d17\u0d28\u0d4d\u200d
+languages.tn=\u0d24\u0d4d\u0d38\u0d4d\u0d35\u0d3e\u0d28
+languages.tl=\u0d24\u0d17\u0d3e\u0d32\u0d4b\u0d17\u0d4d
+languages.tk=\u0d24\u0d41\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d2e\u0d46\u0d28\u0d4d\u200d
+languages.ti=\u0d24\u0d3f\u0d17\u0d4d\u0d30\u0d3f\u0d28\u0d4d\u0d2f
+languages.th=\u0d24\u0d3e\u0d2f\u0d4d
+languages.kru=\u0d15\u0d41\u0d30\u0d41\u0d16\u0d4d
+languages.tg=\u0d24\u0d3e\u0d1c\u0d3f\u0d15\u0d4d
+languages.byn=\u0d2c\u0d4d\u0d32\u0d3f\u0d28\u0d4d\u200d
+languages.te=\u0d24\u0d46\u0d32\u0d41\u0d19\u0d4d\u0d15\u0d4d
+languages.kro=\u0d15\u0d4d\u0d30\u0d41
+languages.csb=\u0d15\u0d3e\u0d37\u0d41\u0d2c\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.ta=\u0d24\u0d2e\u0d3f\u0d34\u0d4d
+languages.krl=\u0d15\u0d30\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.tkl=\u0d1f\u0d4a\u0d15\u0d4d\u0d15\u0d47\u0d32\u0d4c
+languages.efi=\u0d0e\u0d2b\u0d3f\u0d15\u0d4d
+languages.sw=\u0d38\u0d4d\u0d35\u0d3e\u0d39\u0d3f\u0d32\u0d3f
+languages.sv=\u0d38\u0d4d\u0d35\u0d40\u0d21\u0d3f\u0d37\u0d4d
+languages.su=\u0d38\u0d41\u0d21\u0d3e\u0d28\u0d40\u0d38\u0d4d
+languages.krc=\u0d15\u0d30\u0d1a\u0d48-\u0d2c\u0d3e\u0d32\u0d4d\u200d\u0d15\u0d30\u0d4d\u200d
+languages.st=\u0d38\u0d46\u0d38\u0d4b\u0d24\u0d4b
+languages.ss=\u0d38\u0d4d\u0d35\u0d3e\u0d31\u0d4d\u0d31\u0d3f
+languages.sr=\u0d38\u0d46\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.sq=\u0d05\u0d32\u0d4d\u200d\u0d2c\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.men=\u0d2e\u0d46\u0d28\u0d4d\u200d\u0d21\u0d46
+languages.crp=\u0d2e\u0d3f\u0d36\u0d4d\u0d30\u0d2d\u0d3e\u0d37
+languages.so=\u0d38\u0d4b\u0d2e\u0d3e\u0d32\u0d3f
+languages.afh=\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d39\u0d3f\u0d32\u0d3f
+languages.sn=\u0d37\u0d4b\u0d23\u0d3e
+languages.sm=\u0d38\u0d2e\u0d4b\u0d35\u0d28\u0d4d\u200d
+languages.sl=\u0d38\u0d4d\u0d32\u0d4b\u0d35\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.grc=\u0d2a\u0d41\u0d30\u0d3e\u0d24\u0d28 \u0d2f\u0d35\u0d28 \u0d2d\u0d3e\u0d37
+languages.sk=\u0d38\u0d4d\u0d32\u0d4b\u0d35\u0d3e\u0d15\u0d4d\u0d15\u0d4d
+languages.grb=\u0d17\u0d4d\u0d30\u0d2c\u0d4a
+languages.si=\u0d38\u0d3f\u0d02\u0d39\u0d33
+languages.crh=\u0d15\u0d4d\u0d30\u0d3f\u0d2e\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d1f\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d15\u0d3f\u0d37\u0d4d
+languages.afa=\u0d06\u0d2b\u0d4d\u0d30\u0d4b-\u0d0f\u0d37\u0d4d\u0d2f\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.sg=\u0d38\u0d3e\u0d19\u0d4d\u0d15\u0d4b
+languages.se=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d47\u0d28\u0d4d\u200d \u0d38\u0d2e\u0d3f
+languages.sd=\u0d38\u0d3f\u0d28\u0d4d\u0d27\u0d3f
+languages.udm=\u0d09\u0d21\u0d4d\u0d2e\u0d41\u0d30\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d4d
+languages.sc=\u0d38\u0d30\u0d4d\u200d\u0d21\u0d3f\u0d28\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.sa=\u0d38\u0d02\u0d38\u0d4d\u0d15\u0d43\u0d24\u0d02
+languages.rw=\u0d15\u0d3f\u0d28\u0d4d\u0d2f\u0d30\u0d4d\u200d\u0d35\u0d23\u0d4d\u0d1f
+languages.nwc=\u0d15\u0d4d\u0d32\u0d3e\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d32\u0d4d\u200d \u0d28\u0d47\u0d35\u0d3e\u0d30\u0d3f
+languages.ru=\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.mdr=\u0d2e\u0d23\u0d4d\u0d21\u0d3e\u0d30\u0d4d\u200d
+languages.ro=\u0d31\u0d4a\u0d2e\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.rn=\u0d31\u0d41\u0d23\u0d4d\u0d1f\u0d3f
+languages.rm=\u0d30\u0d39\u0d2f\u0d4d\u0d1f\u0d4d\u0d1f\u0d4b-\u0d31\u0d4b\u0d2e\u0d28\u0d4d\u200d\u0d38\u0d4d
+languages.fr_CH=\u0d38\u0d4d\u0d35\u0d3f\u0d38\u0d4d \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
+languages.mdf=\u0d2e\u0d4b\u0d15\u0d4d\u0d37
+languages.tiv=\u0d1f\u0d3f\u0d35\u0d4d
+languages.fr_CA=\u0d15\u0d28\u0d47\u0d21\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
+languages.ady=\u0d05\u0d21\u0d48\u0d17\u0d47
+languages.zun=\u0d38\u0d41\u0d28\u0d3f
+languages.kpe=\u0d15\u0d2a\u0d46\u0d32\u0d4d\u0d32\u0d47
+languages.qu=\u0d15\u0d4d\u0d35\u0d46\u0d1a\u0d4d\u0d1a\u0d41\u0d35
+languages.tig=\u0d1f\u0d48\u0d17\u0d4d\u0d30\u0d3f
+languages.son=\u0d38\u0d4b\u0d19\u0d4d\u0d17\u0d48
+languages.cpp=\u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d40\u0d38\u0d4d \u0d05\u0d27\u0d3f\u0d37\u0d4d\u0d1f\u0d3f\u0d24 \u0d15\u0d4d\u0d30\u0d3f\u0d2f\u0d4b\u0d33\u0d4b \u0d2a\u0d3f\u0d21\u0d4d\u0d17\u0d3f\u0d28\u0d4b
+languages.rup=\u0d06\u0d30\u0d4b\u0d2e\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.sog=\u0d38\u0d4b\u0d1c\u0d3f\u0d21\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.ada=\u0d05\u0d21\u0d3e\u0d19\u0d4d\u0d17\u0d2e\u0d3f
+languages.kos=\u0d15\u0d4a\u0d38\u0d31\u0d47\u0d2f\u0d28\u0d4d\u200d
+languages.hit=\u0d39\u0d3f\u0d31\u0d4d\u0d31\u0d48\u0d31\u0d4d\u0d31\u0d47
+languages.cpf=\u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d \u0d05\u0d27\u0d3f\u0d37\u0d4d\u0d1f\u0d3f\u0d24 \u0d2e\u0d3f\u0d36\u0d4d\u0d30\u0d2d\u0d3e\u0d37
+languages.cpe=\u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d \u0d05\u0d27\u0d3f\u0d37\u0d4d\u0d1f\u0d3f\u0d24 \u0d2e\u0d3f\u0d36\u0d4d\u0d30 \u0d2d\u0d3e\u0d37
+languages.him=\u0d39\u0d3f\u0d2e\u0d3e\u0d1a\u0d32\u0d3f
+languages.kok=\u0d15\u0d4a\u0d19\u0d4d\u0d15\u0d23\u0d3f
+languages.hil=\u0d39\u0d3f\u0d32\u0d3f\u0d17\u0d2f\u0d4d\u0d28\u0d4b\u0d23\u0d4d\u200d
+languages.got=\u0d17\u0d4b\u0d25\u0d3f\u0d15\u0d4d\u0d15\u0d4d
+languages.gor=\u0d17\u0d4a\u0d31\u0d4b\u0d28\u0d4d\u200d\u0d31\u0d3e\u0d32\u0d4b
+languages.gon=\u0d17\u0d4b\u0d23\u0d4d\u0d21\u0d3f
+languages.din=\u0d26\u0d3f\u0d28\u0d4d\u200d\u0d15
+languages.nub=\u0d28\u0d41\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.pt=\u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d40\u0d38\u0d4d
+languages.ps=\u0d2a\u0d37\u0d4d\u0d24\u0d41
+languages.fur=\u0d2b\u0d4d\u0d30\u0d3f\u0d2f\u0d41\u0d32\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.phn=\u0d2b\u0d40\u0d28\u0d3f\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.de_CH=\u0d38\u0d4d\u0d35\u0d3f\u0d38\u0d4d \u0d09\u0d1a\u0d4d\u0d1a \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.goh=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d09\u0d1a\u0d4d\u0d1a \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.snk=\u0d38\u0d4b\u0d23\u0d3f\u0d28\u0d4d\u200d\u0d15\u0d46
+languages.cop=\u0d15\u0d4b\u0d2a\u0d4d\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d
+languages.yap=\u0d2f\u0d46\u0d2a\u0d4d\u0d2a\u0d40\u0d38\u0d4d
+languages.ach=\u0d05\u0d15\u0d4b\u0d32\u0d3f
+languages.yao=\u0d2f\u0d3e\u0d35\u0d4b
+languages.phi=\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d40\u0d28\u0d3f \u0d2d\u0d3e\u0d37
+languages.pl=\u0d2a\u0d4b\u0d33\u0d3f\u0d37\u0d4d
+languages.ace=\u0d05\u0d1a\u0d3f\u0d28\u0d40\u0d38\u0d4d
+languages.pi=\u0d2a\u0d3e\u0d32\u0d3f
+languages.pt_PT=\u0d07\u0d2c\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d40\u0d38\u0d4d
+languages.pa=\u0d2a\u0d1e\u0d4d\u0d1a\u0d3e\u0d2c\u0d3f
+languages.bug=\u0d2c\u0d41\u0d17\u0d3f\u0d28\u0d40\u0d38\u0d4d
+languages.iba=\u0d07\u0d2c\u0d3e\u0d28\u0d4d\u200d
+languages.sms=\u0d38\u0d4d\u0d15\u0d4b\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d4d \u0d38\u0d2e\u0d3f
+languages.bua=\u0d2c\u0d41\u0d31\u0d3f\u0d2f\u0d24\u0d4d\u0d24\u0d4d
+languages.mas=\u0d2e\u0d38\u0d48
+languages.smn=\u0d07\u0d28\u0d3e\u0d30\u0d3f \u0d38\u0d3e\u0d2e\u0d3f
+languages.os=\u0d12\u0d38\u0d4d\u0d38\u0d46\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d
+languages.map=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.or=\u0d12\u0d31\u0d3f\u0d2f
+languages.man=\u0d2e\u0d23\u0d4d\u0d21\u0d3f\u0d28\u0d4d\u200d\u0d17\u0d4b
+languages.smj=\u0d32\u0d42\u0d32\u0d40 \u0d38\u0d2e\u0d3f
+languages.smi=\u0d38\u0d2e\u0d3f \u0d2d\u0d3e\u0d37
+languages.mak=\u0d2e\u0d15\u0d3e\u0d38\u0d30\u0d4d\u200d
+languages.om=\u0d12\u0d31\u0d4b\u0d2e\u0d42
+languages.mai=\u0d2e\u0d48\u0d25\u0d3f\u0d32\u0d3f
+languages.oj=\u0d13\u0d1c\u0d3f\u0d2c\u0d4d\u0d35\u0d3e
+languages.mag=\u0d2e\u0d17\u0d3e\u0d39\u0d3f
+languages.mad=\u0d2e\u0d26\u0d41\u0d30\u0d47\u0d38\u0d47
+languages.sma=\u0d24\u0d46\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d05\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3e\u0d2f\u0d3f
+languages.oc=\u0d12\u0d38\u0d3f\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d
+languages.nso=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d47\u0d28\u0d4d\u200d \u0d38\u0d4b\u0d24\u0d4b
+languages.btk=\u0d2c\u0d3e\u0d31\u0d4d\u0d31\u0d15\u0d4d
+languages.myv=\u0d0f\u0d34\u0d4d\u0d38\u0d4d\u0d2f
+languages.es_ES=\u0d07\u0d2c\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d
+languages.de_AT=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.dgr=\u0d21\u0d4b\u0d17\u0d4d\u0d30\u0d3f\u0d2c\u0d4d
+languages.ny=\u0d28\u0d4d\u0d2f\u0d28\u0d4d\u200d\u0d1c
+languages.myn=\u0d2e\u0d3e\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.nv=\u0d28\u0d35\u0d1c\u0d4b
+languages.kmb=\u0d15\u0d3f\u0d02\u0d2c\u0d41\u0d23\u0d4d\u0d1f\u0d41
+languages.nr=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d28\u0d46\u0d21\u0d3f\u0d2c\u0d3f\u0d33\u0d4d\u200d
+languages.gmh=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d09\u0d1a\u0d4d\u0d1a \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.no=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d35\u0d40\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.nn=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d35\u0d40\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d28\u0d48\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d15\u0d4d\u0d38\u0d4d
+languages.nl=\u0d21\u0d1a\u0d4d\u0d1a\u0d4d
+languages.root=root
+languages.ng=\u0d21\u0d4b\u0d19\u0d4d\u0d15
+languages.sla=\u0d38\u0d4d\u0d32\u0d47\u0d35\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.ne=\u0d28\u0d47\u0d2a\u0d4d\u0d2a\u0d3e\u0d33\u0d3f
+languages.nd=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d4d \u0d21\u0d46\u0d2c\u0d3f\u0d33\u0d4d\u200d
+languages.cmc=\u0d1a\u0d3e\u0d2e\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.tet=\u0d1f\u0d46\u0d31\u0d4d\u0d31\u0d41\u0d02
+languages.nb=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d35\u0d40\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2c\u0d41\u0d15\u0d4d\u200c\u0d2e\u0d32\u0d4d\u200d
+languages.na=\u0d28\u0d4c\u0d31\u0d41
+languages.ter=\u0d1f\u0d46\u0d31\u0d47\u0d28\u0d4b
+languages.tem=\u0d1f\u0d3f\u0d02\u0d28\u0d47
+languages.my=\u0d2c\u0d30\u0d4d\u200d\u0d2e\u0d40\u0d38\u0d4d
+languages.lez=\u0d32\u0d39\u0d4d\u0d17\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.mt=\u0d2e\u0d3e\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d40\u0d38\u0d4d
+languages.frs=\u0d08\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d47\u0d23\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d3f\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.peo=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d2a\u0d47\u0d30\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.ms=\u0d2e\u0d32\u0d2f
+languages.frr=\u0d28\u0d4b\u0d30\u0d4d\u200d\u0d24\u0d4d\u0d24\u0d47\u0d28\u0d4d\u200d \u0d2b\u0d4d\u0d30\u0d3f\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.mr=\u0d2e\u0d31\u0d3e\u0d20\u0d3f
+languages.fro=\u0d2a\u0d34\u0d2f \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
+languages.mo=\u0d2e\u0d4b\u0d33\u0d4d\u200d\u0d21\u0d3e\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.mn=\u0d2e\u0d02\u0d17\u0d4b\u0d33\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.frm=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
languages.ml=\u0d2e\u0d32\u0d2f\u0d3e\u0d33\u0d02
+languages.jrb=\u0d1c\u0d42\u0d21\u0d3f\u0d2f\u0d4b-\u0d05\u0d31\u0d2c\u0d3f\u0d15\u0d4d
+languages.mk=\u0d2e\u0d3e\u0d38\u0d3f\u0d21\u0d4b\u0d23\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.mi=\u0d2e\u0d4c\u0d31\u0d3f
+languages.mh=\u0d2e\u0d3e\u0d30\u0d4d\u200d\u0d37\u0d32\u0d4d\u0d32\u0d40\u0d38\u0d4d
+languages.mg=\u0d2e\u0d32\u0d17\u0d3e\u0d38\u0d3f
+languages.nqo=\u0d07\u0d28\u0d4d\u200d\u0d15\u0d4b
+languages.mwr=\u0d2e\u0d30\u0d4d\u200d\u0d35\u0d3e\u0d30\u0d3f
+languages.bra=\u0d2c\u0d4d\u0d30\u0d1c\u0d4d
+languages.mwl=\u0d2e\u0d3f\u0d30\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d38\u0d47
+languages.den=\u0d38\u0d4d\u0d32\u0d47\u0d35\u0d4d
+languages.lv=\u0d32\u0d3e\u0d24\u0d4d\u0d35\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.lu=\u0d32\u0d41\u0d2c-\u0d15\u0d31\u0d4d\u0d31\u0d02\u0d17
+languages.del=\u0d26\u0d32\u0d35\u0d3e\u0d30\u0d46
+languages.lt=\u0d32\u0d3f\u0d24\u0d4d\u0d35\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.lo=\u0d32\u0d3e\u0d35\u0d4b
+languages.ln=\u0d32\u0d3f\u0d02\u0d17\u0d3e\u0d32
+languages.li=\u0d32\u0d3f\u0d02\u0d2c\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d37\u0d4d
+languages.ewo=\u0d0e\u0d35\u0d4b\u0d28\u0d4d\u200d\u0d21\u0d4b
+languages.lg=\u0d17\u0d3e\u0d28\u0d4d\u200d\u0d21
+languages.lb=\u0d32\u0d15\u0d4d\u0d38\u0d02\u0d2c\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d37\u0d4d
+languages.la=\u0d32\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d4d\u200d
+languages.jpr=\u0d1c\u0d42\u0d21\u0d3f\u0d2f\u0d4b-\u0d2a\u0d47\u0d30\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.vot=\u0d35\u0d4b\u0d1f\u0d4d\u0d1f\u0d3f\u0d15\u0d4d
+languages.sit=\u0d1a\u0d40\u0d28-\u0d1f\u0d3f\u0d2c\u0d24\u0d4d\u0d24\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.ky=\u0d15\u0d3f\u0d30\u0d4d\u200d\u0d17\u0d3f\u0d38\u0d4d
+languages.kw=\u0d15\u0d4b\u0d30\u0d4d\u200d\u0d23\u0d3f\u0d37\u0d4d
+languages.kv=\u0d15\u0d4b\u0d2e\u0d3f
+languages.ku=\u0d15\u0d41\u0d30\u0d4d\u200d\u0d26\u0d3f\u0d37\u0d4d
+languages.sio=\u0d38\u0d3f\u0d35\u0d4b\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.ks=\u0d15\u0d3e\u0d36\u0d4d\u0d2e\u0d40\u0d30\u0d3f
+languages.kr=\u0d15\u0d28\u0d42\u0d31\u0d3f
+languages.awa=\u0d05\u0d35\u0d3e\u0d27\u0d3f
+languages.ko=\u0d15\u0d4a\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.kn=\u0d15\u0d28\u0d4d\u0d28\u0d21
+languages.km=\u0d16\u0d2e\u0d30\u0d4d\u200d
+languages.en_GB=\u0d2c\u0d4d\u0d30\u0d3f\u0d1f\u0d4d\u0d1f\u0d40\u0d37\u0d4d \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.kl=\u0d15\u0d32\u0d3e\u0d32\u0d4d\u0d32\u0d3f\u0d38\u0d1f\u0d4d\u0d1f\u0d4d
+languages.kk=\u0d15\u0d38\u0d3e\u0d16\u0d4d
+languages.rom=\u0d31\u0d4b\u0d2e\u0d28\u0d3f
+languages.kj=\u0d15\u0d4d\u0d35\u0d3e\u0d28\u0d4d\u0d2f\u0d2e
+languages.sid=\u0d38\u0d3f\u0d21\u0d3e\u0d2e\u0d4b
+languages.ki=\u0d15\u0d3f\u0d15\u0d42\u0d2f\u0d41
+languages.kg=\u0d15\u0d4b\u0d19\u0d4d\u0d17\u0d4b
+languages.non=\u0d2a\u0d34\u0d2f \u0d2a\u0d47\u0d30\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.ka=\u0d1c\u0d4b\u0d30\u0d4d\u200d\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.mus=\u0d15\u0d4d\u0d30\u0d40\u0d15\u0d4d\u0d15\u0d4d
+languages.roa=\u0d31\u0d4b\u0d2e\u0d28\u0d4d\u200d\u0d38\u0d4d \u0d2d\u0d3e\u0d37
+languages.nog=\u0d28\u0d4b\u0d17\u0d48
+languages.mun=\u0d2e\u0d41\u0d23\u0d4d\u0d1f
+languages.mul=\u0d35\u0d3f\u0d35\u0d3f\u0d27 \u0d2d\u0d3e\u0d37\u0d15\u0d33\u0d4d\u200d
+languages.jv=\u0d1c\u0d3e\u0d35\u0d3e\u0d28\u0d40\u0d38\u0d4d
+languages.gil=\u0d17\u0d3f\u0d32\u0d4d\u200d\u0d2c\u0d30\u0d4d\u200d\u0d38\u0d47
+languages.znd=\u0d38\u0d3e\u0d28\u0d4d\u0d26\u0d46
+languages.shn=\u0d37\u0d3e\u0d28\u0d4d\u200d
+languages.fon=\u0d2b\u0d4b\u0d28\u0d4d\u200d
+languages.xal=\u0d15\u0d32\u0d4d\u200d\u0d2e\u0d48\u0d15\u0d4d
+languages.aus=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.kho=\u0d18\u0d4b\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d47\u0d38\u0d47
+languages.ja=\u0d1c\u0d3e\u0d2a\u0d4d\u0d2a\u0d28\u0d40\u0d38\u0d4d
+languages.khi=\u0d18\u0d4b\u0d2f\u0d3f\u0d38\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.pau=\u0d2a\u0d32\u0d3e\u0d35\u0d41\u0d28\u0d4d\u200d
+languages.chy=\u0d1a\u0d3f\u0d2f\u0d47\u0d28\u0d4d\u0d28\u0d47
+languages.tai=\u0d31\u0d4d\u0d31\u0d48 \u0d2d\u0d3e\u0d37
+languages.iu=\u0d07\u0d28\u0d41\u0d15\u0d4d\u0d31\u0d4d\u0d31\u0d3f\u0d31\u0d4d\u0d31\u0d1f\u0d4d\u0d1f\u0d4d
+languages.pap=\u0d2a\u0d3e\u0d2a\u0d3f\u0d2f\u0d3e\u0d2e\u0d46\u0d28\u0d4d\u200d\u0d31\u0d4a
+languages.it=\u0d07\u0d31\u0d4d\u0d31\u0d3e\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.sgn=\u0d06\u0d02\u0d17\u0d4d\u0d2f\u0d2d\u0d3e\u0d37
+languages.is=\u0d10\u0d38\u0d4d\u200c\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d21\u0d3f\u0d15\u0d4d
+languages.kha=\u0d18\u0d3e\u0d38\u0d3f
+languages.chr=\u0d1a\u0d46\u0d30\u0d4b\u0d15\u0d40
+languages.pam=\u0d2a\u0d3e\u0d02\u0d2a\u0d28\u0d4d\u200d\u0d17
+languages.pal=\u0d2a\u0d3e\u0d39\u0d4d\u0d32\u0d35\u0d3f
+languages.chp=\u0d1a\u0d3f\u0d2a\u0d47\u0d35\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.io=\u0d07\u0d21\u0d4b
+languages.cho=\u0d1a\u0d4b\u0d15\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d35\u0d4d
+languages.chn=\u0d1a\u0d3f\u0d28\u0d42\u0d17\u0d4d-\u0d1c\u0d3e\u0d30\u0d4d\u200d\u0d17\u0d23\u0d4d\u200d
+languages.chm=\u0d2e\u0d3e\u0d30\u0d3f
+languages.tyv=\u0d24\u0d41\u0d35\u0d3f\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.bnt=\u0d2c\u0d3e\u0d28\u0d4d\u200c\u0d1f\u0d41
+languages.pag=\u0d2a\u0d19\u0d4d\u0d15\u0d3e\u0d38\u0d3f\u0d28\u0d28\u0d4d\u200d
+languages.ik=\u0d07\u0d28\u0d41\u0d2a\u0d3f\u0d2f\u0d3e\u0d15\u0d4d
+languages.chk=\u0d1a\u0d42\u0d15\u0d40\u0d38\u0d4d
+languages.ii=\u0d37\u0d41\u0d35\u0d3e\u0d28\u0d4d\u200d\u0d2f\u0d3f
+languages.haw=\u0d39\u0d35\u0d3e\u0d2f\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.lam=\u0d32\u0d02\u0d2c
+languages.ig=\u0d07\u0d17\u0d4d\u0d2c\u0d4b
+languages.chg=\u0d1a\u0d17\u0d24\u0d48
+languages.sga=\u0d2a\u0d4d\u0d30\u0d3e\u0d1a\u0d40\u0d28 \u0d10\u0d31\u0d3f\u0d37\u0d4d
+languages.paa=\u0d2a\u0d3e\u0d2a\u0d41\u0d35\u0d3e\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.ie=\u0d07\u0d28\u0d4d\u200d\u0d31\u0d30\u0d4d\u200d\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d35\u0d3f
+languages.id=\u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b\u0d28\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.lah=\u0d32\u0d39\u0d4d\u200c\u0d28\u0d4d\u200d\u0d21
+languages.day=\u0d26\u0d2f\u0d3e\u0d15\u0d4d
+languages.chb=\u0d1a\u0d3f\u0d2c\u0d4d\u0d1a
+languages.ia=\u0d07\u0d28\u0d4d\u200d\u0d31\u0d30\u0d4d\u200d\u0d32\u0d3f\u0d02\u0d17\u0d4d\u0d35\u0d3e
+languages.lad=\u0d32\u0d3e\u0d21\u0d3f\u0d28\u0d4b
+languages.hz=\u0d39\u0d46\u0d31\u0d40\u0d31\u0d4b
+languages.hai=\u0d39\u0d48\u0d21
+languages.dar=\u0d21\u0d30\u0d4d\u200d\u0d17\u0d4d\u0d35\u0d3e
+languages.hy=\u0d05\u0d30\u0d4d\u200d\u0d2e\u0d47\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.ath=\u0d05\u0d24\u0d2a\u0d3e\u0d38\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.hu=\u0d39\u0d02\u0d17\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.ht=\u0d39\u0d46\u0d2f\u0d4d\u0d24\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.dak=\u0d21\u0d15\u0d4b\u0d1f\u0d4d\u0d1f
+languages.hr=\u0d15\u0d4d\u0d30\u0d4b\u0d2f\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.ho=\u0d39\u0d3f\u0d30\u0d3f \u0d2e\u0d4b\u0d24\u0d41
+languages.hi=\u0d39\u0d3f\u0d28\u0d4d\u0d26\u0d3f
+languages.dyu=\u0d26\u0d4d\u0d35\u0d48\u0d32
+languages.he=\u0d39\u0d40\u0d2c\u0d4d\u0d30\u0d41
+languages.ast=\u0d13\u0d38\u0d4d\u200c\u0d1f\u0d4d\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.kfo=\u0d15\u0d4b\u0d31\u0d4b
+languages.ha=\u0d39\u0d4c\u0d38
+languages.wen=\u0d38\u0d4b\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.gv=\u0d2e\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d4d
+languages.gu=\u0d17\u0d41\u0d1c\u0d31\u0d3e\u0d24\u0d4d\u0d24\u0d3f
+languages.sem=\u0d38\u0d46\u0d2e\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.sel=\u0d38\u0d46\u0d32\u0d4d\u200d\u0d15\u0d2a\u0d4d
+languages.iro=\u0d07\u0d31\u0d4b\u0d15\u0d4d\u0d35\u0d3e\u0d2f\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.gn=\u0d17\u0d4d\u0d35\u0d3e\u0d31\u0d3e\u0d28\u0d3f
+languages.gl=\u0d17\u0d32\u0d40\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.en_CA=\u0d15\u0d28\u0d47\u0d21\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.arw=\u0d05\u0d31\u0d3e\u0d35\u0d15\u0d4d
+languages.gez=\u0d17\u0d40\u0d38\u0d4d
+languages.art=\u0d15\u0d43\u0d24\u0d4d\u0d30\u0d3f\u0d2e\u0d2d\u0d3e\u0d37
+languages.gd=\u0d38\u0d4d\u0d15\u0d4b\u0d1f\u0d4d\u0d1f\u0d3f\u0d37\u0d4d \u0d17\u0d48\u0d32\u0d3f\u0d15\u0d4d
+languages.ira=\u0d07\u0d31\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.ga=\u0d10\u0d31\u0d3f\u0d37\u0d4d
+languages.arp=\u0d05\u0d30\u0d2a\u0d3e\u0d39\u0d4b
+languages.arn=\u0d06\u0d30\u0d4c\u0d15\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.fy=\u0d2a\u0d36\u0d4d\u0d1a\u0d3f\u0d2e \u0d2b\u0d4d\u0d30\u0d3f\u0d37\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.bla=\u0d38\u0d3f\u0d15\u0d4d\u0d38\u0d3f\u0d15
+languages.gem=\u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d3e\u0d28\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.ypk=\u0d2f\u0d41\u0d2a\u0d3f\u0d15\u0d4d
+languages.arc=\u0d05\u0d30\u0d2e\u0d3e\u0d2f \u0d2d\u0d3e\u0d37
+languages.fr=\u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
+languages.fo=\u0d2b\u0d3e\u0d31\u0d4b\u0d38\u0d4d
+languages.cel=\u0d38\u0d46\u0d32\u0d4d\u200d\u0d31\u0d4d\u0d31\u0d3f\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.fj=\u0d2b\u0d3f\u0d1c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.fi=\u0d2b\u0d3f\u0d28\u0d4d\u0d28\u0d3f\u0d37\u0d4d
+languages.ff=\u0d2b\u0d41\u0d32
+languages.tvl=\u0d24\u0d41\u0d35\u0d3e\u0d32\u0d41
+languages.ceb=\u0d38\u0d46\u0d2c\u0d41\u0d35\u0d3e\u0d28\u0d4b
+languages.fa=\u0d2a\u0d47\u0d30\u0d4d\u200d\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.en_AU=\u0d13\u0d38\u0d4d\u0d1f\u0d4d\u0d30\u0d47\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.zh_Hans=\u0d32\u0d33\u0d3f\u0d24\u0d1a\u0d40\u0d28\u0d2d\u0d3e\u0d37
+languages.zh_Hant=\u0d2a\u0d30\u0d2e\u0d4d\u0d2a\u0d30\u0d3e\u0d17\u0d24 \u0d1a\u0d48\u0d28\u0d40\u0d38\u0d4d\u200c
+languages.eu=\u0d2c\u0d3e\u0d38\u0d4d\u0d15\u0d4d
+languages.sco=\u0d38\u0d4d\u0d15\u0d4b\u0d1f\u0d4d\u0d38\u0d4d
+languages.et=\u0d0e\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d4b\u0d23\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.scn=\u0d38\u0d3f\u0d38\u0d3f\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.es=\u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d
+languages.eo=\u0d0e\u0d38\u0d4d\u0d2a\u0d30\u0d3e\u0d28\u0d4d\u0d24\u0d4b
+languages.en=\u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.el=\u0d17\u0d4d\u0d30\u0d40\u0d15\u0d4d\u0d15\u0d4d
+languages.tut=\u0d05\u0d31\u0d4d\u0d31\u0d4d\u0d32\u0d3e\u0d28\u0d4d\u200d\u0d31\u0d3f\u0d15\u0d4d\u0d15\u0d4d \u0d2d\u0d3e\u0d37
+languages.niu=\u0d28\u0d4d\u0d2f\u0d41\u0d35\u0d3e\u0d28\u0d4d\u200d
+languages.tup=\u0d24\u0d41\u0d2a\u0d3f \u0d2d\u0d3e\u0d37
+languages.ee=\u0d0e\u0d35\u0d4d
+languages.tum=\u0d24\u0d41\u0d02\u0d2c\u0d41\u0d15
+languages.nl_BE=\u0d2b\u0d4d\u0d32\u0d2e\u0d3f\u0d37\u0d4d
+languages.es_419=\u0d32\u0d3e\u0d31\u0d4d\u0d31\u0d3f\u0d28\u0d4d\u200d \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d38\u0d4d\u0d2a\u0d3e\u0d28\u0d3f\u0d37\u0d4d
+languages.mos=\u0d2e\u0d4a\u0d38\u0d4d\u0d38\u0d3f
+languages.dz=\u0d2d\u0d42\u0d1f\u0d4d\u0d1f\u0d3e\u0d28\u0d3f
+languages.kcg=\u0d1f\u0d4d\u0d2f\u0d3e\u0d2a\u0d4d
+languages.nic=\u0d28\u0d48\u200d\u0d1c\u0d30\u0d4d\u200d-\u0d15\u0d4b\u0d30\u0d4d\u200d\u200d\u0d21\u0d4b\u0d2b\u0d3e\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.lus=\u0d32\u0d41\u0d37\u0d3e\u0d2f\u0d3f
+languages.fiu=\u0d2b\u0d3f\u0d28\u0d4d\u0d28\u0d4b-\u0d09\u0d17\u0d4d\u0d30\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.dv=\u0d26\u0d3f\u0d35\u0d47\u0d39\u0d3f
+languages.nia=\u0d28\u0d3f\u0d2f\u0d3e\u0d38\u0d4d
+languages.moh=\u0d2e\u0d4b\u0d39\u0d3e\u0d15\u0d4d
+languages.luo=\u0d32\u0d35\u0d4b
+languages.lun=\u0d32\u0d41\u0d28\u0d4d\u200d\u0d21
+languages.apa=\u0d05\u0d2a\u0d4d\u0d2a\u0d3e\u0d1a\u0d47 \u0d2d\u0d3e\u0d37
+languages.fil=\u0d2b\u0d3f\u0d32\u0d3f\u0d2a\u0d4d\u0d2a\u0d3f\u0d28\u0d4b
+languages.lui=\u0d32\u0d42\u0d2f\u0d3f\u0d38\u0d46\u0d28\u0d4b
+languages.hup=\u0d39\u0d42\u0d2a
+languages.cch=\u0d05\u0d31\u0d4d\u0d31\u0d4d\u0d38\u0d3e\u0d02
+languages.bin=\u0d2c\u0d3f\u0d28\u0d3f
+languages.de=\u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d4d\u0d2e\u0d28\u0d4d\u200d
+languages.lua=\u0d32\u0d42\u0d2c-\u0d32\u0d41\u0d32\u0d41\u0d35
+languages.bik=\u0d2c\u0d3f\u0d15\u0d4b\u0d32\u0d4d\u200d
+languages.was=\u0d35\u0d3e\u0d37\u0d4a
+languages.und=\u0d05\u0d31\u0d3f\u0d2f\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d28\u0d3f\u0d32\u0d35\u0d3f\u0d32\u0d3f\u0d32\u0d4d\u0d32\u0d3e\u0d24\u0d4d\u0d24\u0d24\u0d4b \u0d06\u0d2f \u0d2d\u0d3e\u0d37
+languages.war=\u0d35\u0d3e\u0d30\u0d47\u0d2f\u0d4d
+languages.da=\u0d21\u0d3e\u0d28\u0d3f\u0d37\u0d4d
+languages.dum=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d21\u0d1a\u0d4d\u0d1a\u0d4d
+languages.wal=\u0d35\u0d32\u0d2e\u0d4a
+languages.mno=\u0d2e\u0d28\u0d4b\u0d2c\u0d4b \u0d2d\u0d3e\u0d37
+languages.wak=\u0d35\u0d15\u0d37\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37\u0d15\u0d33\u0d4d\u200d
+languages.sat=\u0d38\u0d28\u0d4d\u0d24\u0d3e\u0d32\u0d3f
+languages.cy=\u0d35\u0d46\u0d32\u0d4d\u200d\u0d37\u0d4d
+languages.sas=\u0d38\u0d38\u0d3e\u0d15\u0d4d
+languages.kbd=\u0d15\u0d2c\u0d30\u0d4d\u200d\u0d21\u0d3f\u0d2f\u0d3e\u0d28\u0d4d\u200d
+languages.cv=\u0d1a\u0d41\u0d35\u0d3e\u0d37\u0d4d
+languages.cu=\u0d1a\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d4d \u0d38\u0d4d\u0d32\u0d3e\u0d35\u0d3f\u0d15\u0d4d
+languages.mni=\u0d2e\u0d23\u0d3f\u0d2a\u0d4d\u0d2a\u0d42\u0d30\u0d3f
+languages.cs=\u0d1a\u0d46\u0d15\u0d4d\u0d15\u0d4d
+languages.sam=\u0d38\u0d2e\u0d30\u0d3f\u0d24\u0d3e\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.cr=\u0d15\u0d4d\u0d30\u0d40
+languages.sal=\u0d38\u0d2e\u0d30\u0d3f\u0d2f\u0d3e\u0d15\u0d4d\u0d15\u0d3e\u0d30\u0d41\u0d1f\u0d46 \u0d05\u0d30\u0d2e\u0d3e\u0d2f
+languages.dua=\u0d26\u0d4d\u0d35\u0d3e\u0d32
+languages.co=\u0d15\u0d4b\u0d30\u0d4d\u200d\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d
+languages.sai=\u0d26\u0d15\u0d4d\u0d37\u0d3f\u0d23 \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.mnc=\u0d2e\u0d28\u0d4d\u200d\u0d1a\u0d41
+languages.sah=\u0d2f\u0d3e\u0d15\u0d42\u0d1f\u0d4d
+languages.kaw=\u0d15\u0d3e\u0d35\u0d3f
+languages.inh=\u0d07\u0d02\u0d17\u0d4d\u0d35\u0d3f\u0d37\u0d4d
+languages.gba=\u0d17\u0d2c\u0d4d\u0d2f
+languages.sad=sad
+languages.ch=\u0d1a\u0d2e\u0d4b\u0d31\u0d4b
+languages.ine=\u0d07\u0d28\u0d4d\u200d\u0d21\u0d4b-\u0d2f\u0d42\u0d31\u0d4b\u0d2a\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.bho=\u0d2d\u0d4b\u0d1c\u0d4d\u200c\u0d2a\u0d42\u0d30\u0d3f
+languages.enm=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.kar=\u0d15\u0d30\u0d47\u0d28\u0d4d\u200d
+languages.inc=\u0d2d\u0d3e\u0d30\u0d24\u0d40\u0d2f\u0d2d\u0d3e\u0d37
+languages.ce=\u0d1a\u0d46\u0d1a\u0d28\u0d4d\u200d
+languages.gay=\u0d17\u0d2f\u0d4a
+languages.ca=\u0d15\u0d31\u0d4d\u0d31\u0d3e\u0d32\u0d28\u0d4d\u200d
+languages.umb=\u0d09\u0d02\u0d2c\u0d41\u0d28\u0d4d\u0d26\u0d41
+languages.syr=\u0d38\u0d41\u0d31\u0d3f\u0d2f\u0d3e\u0d28\u0d3f
+languages.kam=\u0d15\u0d02\u0d2c
+languages.anp=\u0d06\u0d28\u0d4d\u200d\u0d17\u0d3f\u0d15
+languages.tsi=\u0d38\u0d3f\u0d02\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.kaj=\u0d1c\u0d4d\u0d1c\u0d41
+languages.ang=\u0d2a\u0d34\u0d2f \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.kac=\u0d15\u0d3e\u0d1a\u0d3f\u0d28\u0d4d\u200d
+languages.cau=\u0d15\u0d4a\u0d15\u0d47\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.kab=\u0d15\u0d2c\u0d48\u0d32\u0d4d\u200d
+languages.kaa=\u0d15\u0d30-\u0d15\u0d3e\u0d32\u0d4d\u200d\u0d2a\u0d4d\u0d2a\u0d15\u0d4d
+languages.bs=\u0d2c\u0d4b\u0d38\u0d4d\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.car=\u0d15\u0d3e\u0d30\u0d3f\u0d2c\u0d4d
+languages.br=\u0d2c\u0d4d\u0d30\u0d3f\u0d31\u0d4d\u0d31\u0d4b\u0d23\u0d4d\u200d
+languages.syc=\u0d15\u0d4d\u0d32\u0d3e\u0d38\u0d3f\u0d15\u0d4d\u0d15\u0d32\u0d4d\u200d \u0d38\u0d41\u0d31\u0d3f\u0d2f\u0d3e\u0d28\u0d3f \u0d2d\u0d3e\u0d37
+languages.bo=\u0d24\u0d3f\u0d2c\u0d31\u0d4d\u0d31\u0d28\u0d4d\u200d
+languages.bn=\u0d2c\u0d02\u0d17\u0d3e\u0d33\u0d3f
+languages.bm=\u0d2c\u0d02\u0d2c\u0d3e\u0d31
+languages.gaa=\u0d17\u0d3e
+languages.cai=\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f \u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d07\u0d28\u0d4d\u200d\u0d21\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.bi=\u0d2c\u0d3f\u0d38\u0d4d\u200c\u0d32\u0d3e\u0d2e
+languages.bh=\u0d2c\u0d40\u0d39\u0d3e\u0d31\u0d3f
+languages.bg=\u0d2c\u0d33\u0d4d\u200d\u0d17\u0d47\u0d31\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.be=\u0d2c\u0d48\u0d32\u0d4b\u0d31\u0d37\u0d4d\u0d2f\u0d28\u0d4d\u200d
+languages.pt_BR=\u0d2c\u0d4d\u0d30\u0d38\u0d40\u0d32\u0d3f\u0d2f\u0d28\u0d4d\u200d \u0d2a\u0d4b\u0d30\u0d4d\u200d\u0d1a\u0d4d\u0d1a\u0d41\u0d17\u0d40\u0d38\u0d4d
+languages.cad=\u0d15\u0d3e\u0d21\u0d4b
+languages.ba=\u0d2c\u0d37\u0d4d\u0d16\u0d3f\u0d30\u0d4d\u200d
+languages.zu=\u0d38\u0d41\u0d33\u0d41
+languages.zen=\u0d38\u0d46\u0d28\u0d17
+languages.pro=\u0d2a\u0d4d\u0d30\u0d4a\u0d35\u0d28\u0d4d\u200d\u0d37\u0d4d\u0d32\u0d4d\u200d
+languages.hsb=\u0d05\u0d2a\u0d4d\u0d2a\u0d30\u0d4d\u200d \u0d38\u0d4b\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.az=\u0d05\u0d38\u0d30\u0d4d\u200d\u0d2c\u0d48\u0d1c\u0d3e\u0d28\u0d3f
+languages.ay=\u0d05\u0d2f\u0d4d\u0d2e\u0d3e\u0d31
+languages.av=\u0d05\u0d35\u0d3e\u0d30\u0d3f\u0d15\u0d4d
+languages.as=\u0d06\u0d38\u0d4d\u0d38\u0d3e\u0d2e\u0d40\u0d38\u0d4d
+languages.dsb=\u0d32\u0d4b\u0d35\u0d30\u0d4d\u200d \u0d38\u0d4b\u0d30\u0d4d\u200d\u0d2c\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.ar=\u0d05\u0d31\u0d2c\u0d3f
+languages.ilo=\u0d07\u0d32\u0d4b\u0d15\u0d4b
+languages.elx=\u0d0e\u0d32\u0d3e\u0d2e\u0d48\u0d31\u0d4d\u0d31\u0d4d
+languages.zh=\u0d1a\u0d48\u0d28\u0d40\u0d38\u0d4d
+languages.an=\u0d05\u0d30\u0d17\u0d4b\u0d23\u0d40\u0d38\u0d4d
+languages.pra=\u0d2a\u0d4d\u0d30\u0d3e\u0d15\u0d43\u0d24\u0d02
+languages.am=\u0d05\u0d02\u0d39\u0d3e\u0d31\u0d3f\u0d15\u0d4d
+languages.new=\u0d28\u0d35\u0d3e\u0d30\u0d3f
+languages.ak=\u0d06\u0d16\u0d3e\u0d28\u0d4d\u200d
+languages.za=\u0d38\u0d4d\u0d35\u0d3e\u0d02\u0d17\u0d4d
+languages.en_US=\u0d05\u0d2e\u0d47\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d07\u0d02\u0d17\u0d4d\u0d32\u0d40\u0d37\u0d4d
+languages.af=\u0d06\u0d2b\u0d4d\u0d30\u0d3f\u0d15\u0d4d\u0d15\u0d3e\u0d28\u0d4d\u200d\u0d38\u0d4d
+languages.ae=\u0d05\u0d35\u0d38\u0d4d\u0d31\u0d4d\u0d31\u0d3e\u0d28\u0d4d\u200d
+languages.alt=\u0d24\u0d46\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d05\u0d33\u0d4d\u200d\u0d1f\u0d4d\u0d1f\u0d3e\u0d2f\u0d3f
+languages.ab=\u0d05\u0d2c\u0d4d\u0d16\u0d3e\u0d38\u0d3f\u0d2f\u0d28\u0d4d\u200d
+languages.aa=\u0d05\u0d2b\u0d3e\u0d30\u0d4d\u200d
+languages.yo=\u0d2f\u0d4a\u0d31\u0d42\u0d2c\u0d3e
+languages.alg=\u0d05\u0d32\u0d4d\u200d\u0d17\u0d4b\u0d23\u0d4d\u200d\u0d15\u0d4d\u0d2f\u0d28\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.ale=\u0d05\u0d32\u0d48\u0d1f\u0d4d\u0d1f\u0d4d
+languages.mkh=\u0d2e\u0d4b\u0d23\u0d4d\u200d-\u0d16\u0d2e\u0d30\u0d4d\u200d \u0d2d\u0d3e\u0d37
+languages.yi=\u0d2f\u0d3f\u0d26\u0d4d\u0d26\u0d3f\u0d37\u0d4d
+languages.dra=\u0d26\u0d4d\u0d30\u0d3e\u0d35\u0d3f\u0d21\u0d2d\u0d3e\u0d37
+languages.ber=\u0d2c\u0d46\u0d30\u0d4d\u200d\u0d2c\u0d30\u0d4d\u200d
+languages.nds=\u0d32\u0d4b \u0d1c\u0d30\u0d4d\u200d\u0d2e\u0d28\u0d4d\u200d
+languages.bem=\u0d2c\u0d46\u0d02\u0d2c
+languages.bej=\u0d2c\u0d46\u0d1c
+languages.tpi=\u0d1f\u0d4b\u0d15\u0d4d \u0d2a\u0d3f\u0d38\u0d3f\u0d28\u0d4d\u200d
+variants.BOONT=\u0d2c\u0d42\u0d23\u0d4d\u0d1f\u0d4d\u200c\u0d32\u0d3f\u0d19\u0d4d\u0d19\u0d4d
+variants.NJIVA=\u0d17\u0d4d\u0d28\u0d3f\u0d35/\u0d28\u0d3f\u0d1c\u0d3f\u0d35 \u0d2a\u0d4d\u0d30\u0d3e\u0d26\u0d47\u0d36\u0d3f\u0d15\u0d30\u0d42\u0d2a\u0d02
+variants.REVISED=\u0d2a\u0d41\u0d24\u0d3f\u0d2f\u0d32\u0d3f\u0d2a\u0d3f
+variants.AREVELA=\u0d15\u0d3f\u0d34\u0d15\u0d4d\u0d15\u0d28\u0d4d\u200d \u0d05\u0d30\u0d4d\u200d\u0d2e\u0d40\u0d28\u0d3f\u0d2f\u0d28\u0d4d\u200d
+variants.POSIX=POSIX
+variants.FONIPA=\u0d10\u0d2a\u0d3f\u200c\u0d0e \u0d35\u0d30\u0d4d\u200d\u0d23\u0d4d\u0d23\u0d32\u0d3f\u0d2a\u0d3f
+variants.1996=1996
+variants.MONOTON=MONOTON
+variants.1606NICT=1606 \u0d35\u0d30\u0d46\u0d2f\u0d41\u0d33\u0d4d\u0d33 \u0d06\u0d27\u0d41\u0d28\u0d3f\u0d15\u0d2e\u0d26\u0d4d\u0d27\u0d4d\u0d2f\u0d15\u0d3e\u0d32 \u0d2b\u0d4d\u0d30\u0d1e\u0d4d\u0d1a\u0d4d
+variants.NEDIS=\u0d28\u0d47\u0d31\u0d4d\u0d31\u0d3f\u0d38\u0d4b\u0d23\u0d4d\u200d \u0d2a\u0d4d\u0d30\u0d3e\u0d26\u0d47\u0d36\u0d3f\u0d15\u0d30\u0d42\u0d2a\u0d02
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mn.properties
index 42073b6..f0a64d0 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mn.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mn.properties
@@ -8,10 +8,133 @@
decimalSeparator=,
groupingSeparator=\u00a0
currenciesSymbol.MNT=\u20ae
-shortMonths=\u0445\u0443\u043b®\u04af\u0445\u044d®\u0431\u0430\u0440®\u0442\u0443\u0443®\u043b\u0443\u0443®\u043c\u043e\u0433®\u043c\u043e\u0440®\u0445\u043e\u043d®\u0431\u0438\u0447®\u0442\u0430\u0445®\u043d\u043e\u0445®\u0433\u0430\u0445®®
-months=\u0425\u0443\u043b\u0433\u0430\u043d\u0430®\u04ae\u0445\u044d\u0440®\u0411\u0430\u0440®\u0422\u0443\u0443\u043b\u0430\u0439®\u041b\u0443\u0443®\u041c\u043e\u0433\u043e\u0439®\u041c\u043e\u0440\u044c®\u0425\u043e\u043d\u044c®\u0411\u0438\u0447®\u0422\u0430\u0445\u0438\u0430®\u041d\u043e\u0445\u043e\u0439®\u0413\u0430\u0445\u0430\u0439®®
-shortWeekdays=®\u041d\u044f®\u0414\u0430®\u041c\u044f®\u041b\u0445®\u041f\u04af®\u0411\u0430®\u0411\u044f®
-weekdays=®\u043d\u044f\u043c®\u0434\u0430\u0432\u0430\u0430®\u043c\u044f\u0433\u043c\u0430\u0440®\u043b\u0445\u0430\u0433\u0432\u0430®\u043f\u04af\u0440\u044d\u0432®\u0431\u0430\u0430\u0441\u0430\u043d®\u0431\u044f\u043c\u0431\u0430®
-eras=\u043c.\u044d.\u04e9®\u043c.\u044d.®
+shortMonths=\u0445\u0443\u043b\u00ae\u04af\u0445\u044d\u00ae\u0431\u0430\u0440\u00ae\u0442\u0443\u0443\u00ae\u043b\u0443\u0443\u00ae\u043c\u043e\u0433\u00ae\u043c\u043e\u0440\u00ae\u0445\u043e\u043d\u00ae\u0431\u0438\u0447\u00ae\u0442\u0430\u0445\u00ae\u043d\u043e\u0445\u00ae\u0433\u0430\u0445\u00ae\u00ae
+months=\u0425\u0443\u043b\u0433\u0430\u043d\u0430\u00ae\u04ae\u0445\u044d\u0440\u00ae\u0411\u0430\u0440\u00ae\u0422\u0443\u0443\u043b\u0430\u0439\u00ae\u041b\u0443\u0443\u00ae\u041c\u043e\u0433\u043e\u0439\u00ae\u041c\u043e\u0440\u044c\u00ae\u0425\u043e\u043d\u044c\u00ae\u0411\u0438\u0447\u00ae\u0422\u0430\u0445\u0438\u0430\u00ae\u041d\u043e\u0445\u043e\u0439\u00ae\u0413\u0430\u0445\u0430\u0439\u00ae\u00ae
+shortWeekdays=\u00ae\u041d\u044f\u00ae\u0414\u0430\u00ae\u041c\u044f\u00ae\u041b\u0445\u00ae\u041f\u04af\u00ae\u0411\u0430\u00ae\u0411\u044f\u00ae
+weekdays=\u00ae\u043d\u044f\u043c\u00ae\u0434\u0430\u0432\u0430\u0430\u00ae\u043c\u044f\u0433\u043c\u0430\u0440\u00ae\u043b\u0445\u0430\u0433\u0432\u0430\u00ae\u043f\u04af\u0440\u044d\u0432\u00ae\u0431\u0430\u0430\u0441\u0430\u043d\u00ae\u0431\u044f\u043c\u0431\u0430\u00ae
+eras=\u043c.\u044d.\u04e9\u00ae\u043c.\u044d.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.FR=\u0424\u0440\u0430\u043d\u0446
+territories.IN=\u042d\u043d\u044d\u0442\u0445\u044d\u0433
+territories.TO=\u0422\u043e\u043d\u0433\u0430
+territories.DE=\u0413\u0435\u0440\u043c\u0430\u043d
+territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0438
+territories.RU=\u041e\u0440\u043e\u0441
+territories.JP=\u042f\u043f\u043e\u043d
+territories.US=\u0410\u043c\u0435\u0440\u0438\u043a\u0438\u0439\u043d \u041d\u044d\u0433\u0434\u0441\u044d\u043d \u0423\u043b\u0441
territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b \u0443\u043b\u0441
-languages.mn=\u041c\u043e\u043d\u0433\u043e\u043b \u0445\u044d\u043b
+territories.IT=\u0418\u0442\u0430\u043b\u0438
+languages.es=\u0438\u0441\u043f\u0430\u043d\u0438
+languages.ku=\u043a\u0443\u0440\u0434
+languages.eo=\u044d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0430\u043d\u0433\u043b\u0438
+languages.el=\u0433\u0440\u0435\u043a
+languages.ko=\u0441\u043e\u043b\u043e\u043d\u0433\u043e\u0441
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.km=\u043a\u0430\u043c\u0431\u0443\u0447
+languages.ka=\u0433\u04af\u0440\u0436
+languages.jv=\u044f\u0432\u0430
+languages.fil=\u0442\u0430\u0433\u0430\u043b\u043e
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438
+languages.ps=\u0430\u0444\u0433\u0430\u043d
+languages.de=\u0433\u0435\u0440\u043c\u0430\u043d
+languages.pl=\u043f\u043e\u043b\u044c\u0448
+languages.da=\u0434\u0430\u043d\u0438
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d \u0445\u044d\u043b
+languages.ja=\u044f\u043f\u043e\u043d
+languages.vi=\u0432\u044c\u0435\u0442\u043d\u0430\u043c
+languages.cy=\u0443\u044d\u043b\u0441
+languages.pa=\u043f\u0435\u043d\u0436\u0430\u0431\u0438
+languages.cs=\u0447\u0435\u0445
+languages.it=\u0438\u0442\u0430\u043b\u0438
+languages.is=\u0438\u0441\u043b\u0430\u043d\u0434
+languages.uz=\u0443\u0437\u0431\u0435\u043a
+languages.or=\u043e\u0440\u0438\u044f
+languages.ur=\u043f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u044b \u0443\u0440\u0434\u0443
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u0430\u043d
+languages.ie=\u043d\u044d\u0433\u0434\u043c\u044d\u043b \u0445\u044d\u043b
+languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438
+languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d
+languages.ia=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u043e
+languages.oc=\u0444\u0440\u0430\u043d\u0446\u044b\u043d \u043e\u043a\u0441\u0438\u0442\u0430\u043d
+languages.ug=\u0443\u0439\u0433\u0443\u0440
+languages.hy=\u0430\u0440\u043c\u0435\u043d
+languages.bs=\u0431\u043e\u0441\u043d\u0438\u0430
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d
+languages.hu=\u0443\u043d\u0433\u0430\u0440
+languages.pt_PT=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438 (\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438)
+languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b\u044c
+languages.hr=\u0445\u043e\u0440\u0432\u0430\u0442\u0438
+languages.tw=\u0442\u0432\u0438
+languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438 \u0445\u044d\u043b
+languages.bg=\u0431\u043e\u043b\u0433\u0430\u0440
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0433\u0438
+languages.be=\u0431\u0435\u043b\u0430\u0440\u0443\u0441\u044c
+languages.nn=\u043d\u043e\u0440\u0432\u0435\u0433\u0438 (\u043d\u044b\u043d\u043e\u0440\u0441\u043a)
+languages.hi=\u0445\u0438\u043d\u0434\u0438
+languages.tr=\u0442\u0443\u0440\u043a
+languages.nl=\u0433\u043e\u043b\u043b\u0430\u043d\u0434
+languages.zu=\u0437\u0443\u043b\u0443
+languages.he=\u043a\u0438\u043f\u0440
+languages.tk=\u0442\u0443\u0440\u043a\u043c\u0435\u043d
+languages.ne=\u0431\u0430\u043b\u0431\u0430
+languages.az=\u0430\u0437\u0430\u0440\u0431\u0435\u0436\u0430\u043d
+languages.ti=\u0442\u0438\u043a\u0440\u0438\u043d\u0430
+languages.th=\u0442\u0430\u0439
+languages.te=\u0442\u044d\u043b\u04af\u0433\u04af
+languages.zh=\u0445\u044f\u0442\u0430\u0434
+languages.as=\u0430\u0441\u0441\u0430\u043c \u04af\u043d\u0434\u044d\u0441\u0442\u044d\u043d
+languages.ar=\u0430\u0440\u0430\u0431
+languages.ta=\u0442\u0430\u043c\u0438\u043b
+languages.gu=\u044d\u043d\u044d\u0442\u0445\u044d\u0433\u0438\u0439\u043d \u0433\u0443\u0436\u0430\u0440\u0430\u0442\u0438
+languages.am=\u0430\u043c\u0445\u0430\u0440\u0438\u043a
+languages.mt=\u043c\u0430\u043b\u0442\u0438
+languages.ms=\u043c\u0430\u043b\u0430\u0439
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0438
+languages.sw=\u0430\u0444\u0440\u0438\u043a\u0438\u0439\u043d \u0441\u0432\u0430\u0445\u0438\u043b\u0438 \u0445\u044d\u043b
+languages.mr=\u044d\u043d\u044d\u0442\u0445\u044d\u0433\u0438\u0439\u043d \u043c\u0430\u0440\u0430\u0442\u0438
+languages.sv=\u0448\u0432\u0435\u0434
+languages.gl=\u0433\u0430\u043b\u0438\u043a
+languages.su=\u0441\u0443\u043d\u0434\u0430\u043d\u0435\u0441 \u0445\u044d\u043b
+languages.af=\u0430\u0444\u0440\u0438\u043a
+languages.st=\u0441\u0435\u0441\u043e\u0442\u043e
+languages.mn=\u043c\u043e\u043d\u0433\u043e\u043b
+languages.sr=\u0441\u0435\u0440\u0431\u0438
+languages.sq=\u0430\u043b\u0431\u0430\u043d\u0438
+languages.ml=\u043c\u0430\u043b\u0430\u0439\u043b\u0430\u043c
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0438
+languages.so=\u0441\u043e\u043c\u0430\u043b\u0438
+languages.gd=\u0448\u043e\u0442\u043b\u0430\u043d\u0434 \u043a\u0435\u043b\u0442
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0438
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u043a
+languages.ga=\u0438\u0440\u043b\u0430\u043d\u0434
+languages.si=\u0448\u0440\u0438 \u043b\u0430\u043d\u043a
+languages.sh=\u0445\u043e\u0440\u0432\u0430\u0442\u044b\u043d \u0441\u0435\u0440\u0431
+languages.pt_BR=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438 (\u0431\u0440\u0430\u0437\u0438\u043b)
+languages.yi=\u0438\u0434\u0434\u0438\u0448
+languages.sd=\u0441\u0438\u043d\u0434\u0445\u0438
+languages.fy=\u0433\u043e\u043b\u043b\u0430\u043d\u0434\u044b\u043d \u0444\u0440\u0438\u0441\u0438\u0430\u043d \u0445\u044d\u043b
+languages.sa=\u0441\u0430\u043d\u0441\u043a\u0438\u0440\u0438\u0442
+languages.fr=\u0444\u0440\u0430\u043d\u0446
+languages.lv=\u043b\u0430\u0442\u0432\u0438
+languages.lt=\u043b\u0438\u0442\u0432\u0438
+languages.fo=\u0444\u04e9\u0440\u0438\u044d\u0441 \u0445\u044d\u043b
+languages.ru=\u043e\u0440\u043e\u0441
+languages.lo=\u043b\u0430\u043e\u0442\u0438\u0430\u043d
+languages.ln=\u043b\u0438\u043d\u0433\u0430\u043b\u0430
+languages.fi=\u0444\u0438\u043d\u043b\u044f\u043d\u0434
+languages.ro=\u0440\u0443\u043c\u044b\u043d
+languages.fa=\u043f\u0435\u0440\u0441
+languages.la=\u043b\u0430\u0442\u0438\u043d
+languages.xh=\u0445\u043e\u0441\u0430
+languages.eu=\u0431\u0430\u0441\u043a
+languages.ky=\u043a\u0438\u0440\u0433\u0438\u0437
+languages.et=\u044d\u0441\u0442\u043e\u043d\u0438
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mr.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mr.properties
index 77dc88c..a81a94d 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mr.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mr.properties
@@ -5,153 +5,170 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
currenciesSymbol.INR=\u0930\u0941
-shortMonths=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940®\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u090f\u092a\u094d\u0930\u093f\u0932®\u092e\u0947®\u091c\u0942\u0928®\u091c\u0941\u0932\u0948®\u0913\u0917\u0938\u094d\u091f®\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930®\u0913\u0915\u094d\u091f\u094b\u092c\u0930®\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930®\u0921\u093f\u0938\u0947\u0902\u092c\u0930®®
-months=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940®\u092b\u0947\u092c\u0943\u0935\u093e\u0930\u0940®\u092e\u093e\u0930\u094d\u091a®\u090f\u092a\u094d\u0930\u093f\u0932®\u092e\u0947®\u091c\u0942\u0928®\u091c\u0941\u0932\u0948®\u0913\u0917\u0938\u094d\u091f®\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930®\u0913\u0915\u094d\u091f\u094b\u092c\u0930®\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930®\u0921\u093f\u0938\u0947\u0902\u092c\u0930®®
-shortWeekdays=®\u0930\u0935\u093f®\u0938\u094b\u092e®\u092e\u0902\u0917\u0933®\u092c\u0941\u0927®\u0917\u0941\u0930\u0941®\u0936\u0941\u0915\u094d\u0930®\u0936\u0928\u093f®
-weekdays=®\u0930\u0935\u093f\u0935\u093e\u0930®\u0938\u094b\u092e\u0935\u093e\u0930®\u092e\u0902\u0917\u0933\u0935\u093e\u0930®\u092c\u0941\u0927\u0935\u093e\u0930®\u0917\u0941\u0930\u0941\u0935\u093e\u0930®\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930®\u0936\u0928\u093f\u0935\u093e\u0930®
-eras=\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935®\u0938\u0928®
-ampms=\u092e.\u092a\u0942.®\u092e.\u0928\u0902.®
-zoneStrings=Asia/Calcutta®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®IST®\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f®©
+shortMonths=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940\u00ae\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u090f\u092a\u094d\u0930\u093f\u0932\u00ae\u092e\u0947\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u0948\u00ae\u0913\u0917\u0938\u094d\u091f\u00ae\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930\u00ae\u0913\u0915\u094d\u091f\u094b\u092c\u0930\u00ae\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930\u00ae\u0921\u093f\u0938\u0947\u0902\u092c\u0930\u00ae\u00ae
+months=\u091c\u093e\u0928\u0947\u0935\u093e\u0930\u0940\u00ae\u092b\u0947\u092c\u094d\u0930\u0941\u0935\u093e\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u090f\u092a\u094d\u0930\u093f\u0932\u00ae\u092e\u0947\u00ae\u091c\u0942\u0928\u00ae\u091c\u0941\u0932\u0948\u00ae\u0913\u0917\u0938\u094d\u091f\u00ae\u0938\u0947\u092a\u094d\u091f\u0947\u0902\u092c\u0930\u00ae\u0913\u0915\u094d\u091f\u094b\u092c\u0930\u00ae\u0928\u094b\u0935\u094d\u0939\u0947\u0902\u092c\u0930\u00ae\u0921\u093f\u0938\u0947\u0902\u092c\u0930\u00ae\u00ae
+shortWeekdays=\u00ae\u0930\u0935\u093f\u00ae\u0938\u094b\u092e\u00ae\u092e\u0902\u0917\u0933\u00ae\u092c\u0941\u0927\u00ae\u0917\u0941\u0930\u0941\u00ae\u0936\u0941\u0915\u094d\u0930\u00ae\u0936\u0928\u093f\u00ae
+weekdays=\u00ae\u0930\u0935\u093f\u0935\u093e\u0930\u00ae\u0938\u094b\u092e\u0935\u093e\u0930\u00ae\u092e\u0902\u0917\u0933\u0935\u093e\u0930\u00ae\u092c\u0941\u0927\u0935\u093e\u0930\u00ae\u0917\u0941\u0930\u0941\u0935\u093e\u0930\u00ae\u0936\u0941\u0915\u094d\u0930\u0935\u093e\u0930\u00ae\u0936\u0928\u093f\u0935\u093e\u0930\u00ae
+eras=\u0908\u0938\u093e\u092a\u0942\u0930\u094d\u0935\u00ae\u0938\u0928\u00ae
+ampms=\u092e.\u092a\u0942.\u00ae\u092e.\u0928\u0902.\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=India\u00ae\u092d\u093e\u0930\u0924\u0940\u092f \u0938\u092e\u092f\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TO=\u091f\u093e\u0902\u0917\u093e
+territories.DE=\u091c\u092e\u093f\u0928
territories.IN=\u092d\u093e\u0930\u0924
-languages.es=\u0938\u094d\u092a\u093e\u0928\u093f\u0937
+territories.BR=\u092c\u094d\u0930\u093e\u091c\u0940\u0932
+languages.la=\u0932\u093e\u091f\u093f\u0928
+languages.xh=\u0915\u094d\u0938\u094d\u0939\u094b\u0938\u093e
+languages.ky=\u0915\u093f\u0930\u094d\u0917\u093f\u091c\u093c
languages.ku=\u0915\u0941\u0930\u094d\u0926\u093f\u0937
-languages.eo=\u0907\u0938\u094d\u092a\u0930\u093e\u0928\u094d\u091f\u094b
-languages.en=\u0907\u0902\u0917\u094d\u0930\u0947\u091c\u0940
languages.ks=\u0915\u0936\u094d\u092e\u0940\u0930\u0940
-languages.el=\u0917\u094d\u0930\u0940\u0915
-languages.qu=\u0915\u094d\u0935\u0947\u091a\u0913
languages.ko=\u0915\u094b\u0930\u093f\u092f\u0928\u094d
languages.kn=\u0915\u0928\u094d\u0928\u0921
languages.km=\u0915\u0902\u092c\u094b\u0921\u093f\u092f\u0928
-languages.kok=\u0915\u094b\u0902\u0915\u0923\u0940
languages.kl=\u0917\u094d\u0930\u0940\u0928\u0932\u093e\u0928\u094d\u0921\u093f\u0915
languages.kk=\u0915\u091c\u093c\u0915
languages.wo=\u0909\u0932\u094b\u092b
languages.ka=\u091c\u093e\u0930\u094d\u091c\u093f\u092f\u0928\u094d
-languages.dz=\u092d\u0942\u091f\u093e\u0928\u0940
languages.jv=\u091c\u093e\u0935\u0928\u0940\u0938\u094d
-languages.pt=\u092a\u094b\u0930\u094d\u091a\u0941\u0917\u0940\u0938\u094d
-languages.ps=\u092a\u0937\u094d\u091f\u094b (\u092a\u0941\u0937\u094d\u091f\u094b)
-languages.de=\u091c\u0930\u094d\u092e\u0928
-languages.pl=\u092a\u094b\u0932\u093f\u0937
-languages.da=\u0921\u093e\u0928\u093f\u0937
languages.vo=\u0913\u0932\u093e\u092a\u0941\u0915
languages.ja=\u091c\u093e\u092a\u0928\u0940\u0938\u094d
languages.vi=\u0935\u093f\u092f\u0924\u094d\u0928\u093e\u092e\u0940\u091c\u093c
-languages.cy=\u0935\u0947\u0932\u094d\u0937
-languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
-languages.cs=\u091c\u093c\u0947\u0915
languages.iu=\u0907\u0928\u0941\u0915\u093f\u091f\u0941\u091f\u094d
-languages.co=\u0915\u094b\u0930\u094d\u0938\u093f\u0915\u0928
languages.it=\u0907\u091f\u093e\u0932\u093f\u092f\u0928
languages.is=\u0906\u0908\u0938\u0932\u093e\u0928\u094d\u0921\u093f\u0915
languages.uz=\u0909\u091c\u093c\u092c\u0947\u0915
-languages.or=\u0913\u0930\u093f\u092f\u093e
languages.ik=\u0907\u0928\u0942\u092a\u093f\u092f\u093e\u0915
languages.ur=\u0909\u0930\u094d\u0926\u0942
-languages.om=\u0913\u0930\u094b\u092e\u094b (\u0905\u092b\u093e\u0928)
-languages.ca=\u0915\u091f\u0932\u0928
languages.ie=\u0907\u0928\u094d\u091f\u0930\u0932\u093f\u0902\u0917
languages.id=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0937\u093f\u092f\u0928
-languages.uk=\u092f\u0941\u0915\u094d\u0930\u0947\u0928\u093f\u092f\u0928\u094d
languages.ia=\u0907\u0928\u094d\u091f\u0930\u0932\u093f\u0902\u0917\u094d\u0935\u093e
-languages.oc=\u0913\u0938\u093f\u091f\u093e\u0928\u094d
+languages.uk=\u092f\u0941\u0915\u094d\u0930\u0947\u0928\u093f\u092f\u0928\u094d
+languages.kok=\u0915\u094b\u0902\u0915\u0923\u0940
languages.ug=\u0909\u0927\u0942\u0930
languages.hy=\u0906\u0930\u094d\u092e\u0940\u0928\u093f\u092f\u0928\u094d
-languages.br=\u092c\u094d\u0930\u0947\u091f\u0928
languages.hu=\u0939\u0902\u0917\u0947\u0930\u093f\u092f\u0928\u094d
-languages.bo=\u0924\u093f\u092c\u0947\u091f\u093f\u092f\u0928
-languages.bn=\u092c\u0902\u0917\u093e\u0932\u0940
languages.hr=\u0915\u094d\u0930\u094b\u092f\u0947\u0937\u093f\u092f\u0928\u094d
-languages.bi=\u092c\u093f\u0938\u0932\u092e\u093e
+languages.fil=\u092b\u093f\u0932\u093f\u092a\u093f\u0928\u094b
languages.tw=\u0924\u094d\u0935\u093f
-languages.bh=\u092c\u0940\u0939\u093e\u0930\u0940
-languages.bg=\u092c\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u0928
languages.tt=\u091f\u091f\u093e\u0930
-languages.no=\u0928\u094b\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u0928
-languages.be=\u092c\u0948\u0932\u094b\u0930\u0941\u0938\u093f\u092f\u0928
-languages.ts=\u0924\u094d\u0938\u094b\u0917\u093e
languages.hi=\u0939\u093f\u0928\u094d\u0926\u0940
+languages.ts=\u0924\u094d\u0938\u094b\u0917\u093e
languages.tr=\u0924\u0941\u0930\u094d\u0915\u093f\u0937
-languages.nl=\u0921\u091a
-languages.zu=\u091c\u0941\u0932\u0942
-languages.ba=\u092c\u0937\u094d\u0915\u093f\u0930
-languages.to=\u0924\u094b\u0902\u0917\u093e
languages.he=\u0939\u0947\u092c\u0943
+languages.to=\u0924\u094b\u0902\u0917\u093e
languages.tn=\u0938\u0947\u0924\u094d\u0938\u094d\u0935\u093e\u0928\u093e
languages.tl=\u0924\u0917\u093e\u0932\u094b\u0917
-languages.tk=\u0924\u0941\u0930\u094d\u0915\u092e\u0947\u0928
languages.ha=\u0939\u094c\u0938\u093e
-languages.ne=\u0928\u0947\u092a\u093e\u0932\u0940
-languages.az=\u0905\u091c\u093c\u0930\u092c\u093e\u0907\u091c\u093e\u0928\u0940
+languages.tk=\u0924\u0941\u0930\u094d\u0915\u092e\u0947\u0928
languages.ti=\u0924\u093f\u0917\u094d\u0930\u093f\u0928\u094d\u092f\u093e
-languages.ay=\u0910\u092e\u0930\u093e
languages.th=\u0925\u093e\u0908
languages.tg=\u0924\u091c\u093f\u0915
-languages.na=\u0928\u094c\u0930\u094b
languages.te=\u0924\u0947\u0932\u0902\u0917\u0942
-languages.zh=\u091a\u093f\u0928\u0940\u0938\u094d
-languages.as=\u0905\u0938\u093e\u092e\u0940
-languages.ar=\u0905\u0930\u0947\u092c\u093f\u0915
languages.ta=\u0924\u092e\u093f\u0933
languages.gu=\u0917\u0941\u091c\u0930\u093e\u0924\u0940
-languages.my=\u092c\u0930\u094d\u092e\u0940\u0938\u094d
-languages.am=\u0905\u092e\u0939\u093e\u0930\u093f\u0915
-languages.za=\u091d\u094d\u0939\u0941\u0928\u094d\u0917
-languages.mt=\u092e\u093e\u0932\u0924\u0940\u0938\u094d
-languages.ms=\u092e\u0932\u092f
languages.gn=\u0917\u094c\u0930\u093e\u0928\u0940
languages.sw=\u0938\u094d\u0935\u093e\u0939\u093f\u0932\u0940
-languages.mr=\u092e\u0930\u093e\u0920\u0940
-languages.sv=\u0938\u094d\u0935\u0940\u0921\u093f\u0937
languages.gl=\u0917\u0947\u0932\u0940\u0936\u093f\u092f\u0928
+languages.sv=\u0938\u094d\u0935\u0940\u0921\u093f\u0937
languages.su=\u0938\u0941\u0902\u0926\u0928\u0940\u0938\u094d
-languages.af=\u0905\u092b\u094d\u0930\u093f\u0915\u093e\u0928\u094d\u0938
languages.st=\u0938\u0947\u0938\u094b\u0925\u094b
-languages.mo=\u092e\u094b\u0932\u094d\u0921\u093e\u0935\u093f\u092f\u0928\u094d
languages.ss=\u0938\u093f\u0938\u094d\u0935\u0924\u0940
-languages.mn=\u092e\u0902\u0917\u094b\u0932\u093f\u092f\u0928\u094d
languages.sr=\u0938\u0947\u0930\u094d\u092c\u093f\u092f\u0928\u094d
languages.sq=\u0906\u0932\u094d\u092c\u0947\u0928\u093f\u092f\u0928\u094d
-languages.ml=\u092e\u0932\u093f\u092f\u093e\u0932\u092e
-languages.ab=\u0905\u092c\u0916\u0947\u091c\u093f\u092f\u0928
-languages.mk=\u092e\u0938\u0940\u0921\u094b\u0928\u093f\u092f\u0928\u094d
-languages.aa=\u0905\u092b\u093e\u0930
languages.so=\u0938\u094b\u092e\u093e\u0932\u0940
-languages.sn=\u0936\u094b\u0928\u093e
-languages.mi=\u092e\u093e\u0913\u0930\u0940
languages.gd=\u0938\u094d\u0915\u093e\u091f\u0938\u094d \u0917\u0947\u0932\u093f\u0915
+languages.sn=\u0936\u094b\u0928\u093e
languages.sm=\u0938\u092e\u094b\u0928
languages.sl=\u0938\u094d\u0932\u094b\u0935\u0947\u0928\u093f\u092f\u0928\u094d
-languages.mg=\u092e\u0932\u093e\u0917\u0938\u0940
-languages.sk=\u0938\u094d\u0932\u094b\u0935\u093e\u0915
languages.ga=\u0910\u0930\u093f\u0937
-languages.yo=\u092f\u0942\u0930\u0941\u092c\u093e
+languages.sk=\u0938\u094d\u0932\u094b\u0935\u093e\u0915
languages.si=\u0938\u093f\u0928\u094d\u0939\u0932\u0940\u0938\u094d
languages.sh=\u0938\u0947\u0930\u094d\u092c\u094b-\u0915\u094d\u0930\u094b\u092f\u0947\u0937\u093f\u092f\u0928\u094d
languages.sg=\u0938\u093e\u0902\u0917\u094d\u0930\u094b
-languages.yi=\u0907\u0926\u094d\u0926\u093f\u0937
-languages.sd=\u0938\u093f\u0902\u0927\u0940
languages.fy=\u092b\u094d\u0930\u093f\u0938\u093f\u092f\u0928\u094d
+languages.sd=\u0938\u093f\u0902\u0927\u0940
languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924
languages.fr=\u092b\u094d\u0930\u0947\u0928\u094d\u091a
-languages.lv=\u0932\u093e\u091f\u094d\u0935\u093f\u092f\u0928\u094d (\u0932\u0947\u091f\u094d\u091f\u093f\u0937)
languages.fo=\u092b\u0947\u0930\u094b\u0938\u094d
-languages.lt=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u0928\u094d
languages.rw=\u0915\u093f\u0928\u094d\u092f\u093e\u0930\u094d\u0935\u093e\u0928\u094d\u0921\u093e
-languages.root=\u092e\u0930\u093e\u0920\u0940
languages.ru=\u0930\u0937\u094d\u092f\u0928\u094d
languages.fj=\u092b\u093f\u091c\u0940
-languages.lo=\u0932\u093e\u0913\u0924\u093f\u092f\u0928\u094d
languages.fi=\u092b\u093f\u0928\u094d\u0928\u093f\u0937
-languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
languages.ro=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u0928\u094d
languages.rn=\u0915\u093f\u0930\u0941\u0928\u094d\u0926\u0940
languages.rm=\u0930\u0939\u091f\u094b-\u0930\u094b\u092e\u093e\u0928\u094d\u0938\u094d
languages.fa=\u092a\u0930\u094d\u0937\u093f\u092f\u0928\u094d
-languages.la=\u0932\u093e\u091f\u093f\u0928
-languages.xh=\u0915\u094d\u0938\u094d\u0939\u094b\u0938\u093e
+languages.pt_PT=\u092a\u094b\u0930\u094d\u0924\u0941\u0917\u0940\u091c (\u092a\u094b\u0930\u094d\u0924\u0941\u0917\u093e\u0932)
languages.eu=\u092c\u093e\u0938\u094d\u0915
languages.et=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u0928\u094d
-languages.ky=\u0915\u093f\u0930\u094d\u0917\u093f\u091c\u093c
+languages.es=\u0938\u094d\u092a\u093e\u0928\u093f\u0937
+languages.eo=\u0907\u0938\u094d\u092a\u0930\u093e\u0928\u094d\u091f\u094b
+languages.en=\u0907\u0902\u0917\u094d\u0930\u0947\u091c\u0940
+languages.el=\u0917\u094d\u0930\u0940\u0915
+languages.qu=\u0915\u094d\u0935\u0947\u091a\u0913
+languages.dz=\u092d\u0942\u091f\u093e\u0928\u0940
+languages.pt=\u092a\u094b\u0930\u094d\u091a\u0941\u0917\u0940\u0938\u094d
+languages.ps=\u092a\u0937\u094d\u091f\u094b (\u092a\u0941\u0937\u094d\u091f\u094b)
+languages.de=\u091c\u0930\u094d\u092e\u0928
+languages.pl=\u092a\u094b\u0932\u093f\u0937
+languages.da=\u0921\u093e\u0928\u093f\u0937
+languages.cy=\u0935\u0947\u0932\u094d\u0937
+languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
+languages.cs=\u091c\u093c\u0947\u0915
+languages.co=\u0915\u094b\u0930\u094d\u0938\u093f\u0915\u0928
+languages.or=\u0913\u0930\u093f\u092f\u093e
+languages.om=\u0913\u0930\u094b\u092e\u094b (\u0905\u092b\u093e\u0928)
+languages.ca=\u0915\u091f\u0932\u0928
+languages.oc=\u0913\u0938\u093f\u091f\u093e\u0928\u094d
+languages.bs=\u092c\u094b\u0938\u094d\u0928\u093f\u092f\u0928
+languages.br=\u092c\u094d\u0930\u0947\u091f\u0928
+languages.bo=\u0924\u093f\u092c\u0947\u091f\u093f\u092f\u0928
+languages.bn=\u092c\u0902\u0917\u093e\u0932\u0940
+languages.bi=\u092c\u093f\u0938\u0932\u092e\u093e
+languages.bh=\u092c\u0940\u0939\u093e\u0930\u0940
+languages.bg=\u092c\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u0928
+languages.be=\u092c\u0948\u0932\u094b\u0930\u0941\u0938\u093f\u092f\u0928
+languages.no=\u0928\u094b\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u0928
+languages.nl=\u0921\u091a
+languages.ba=\u092c\u0937\u094d\u0915\u093f\u0930
+languages.zu=\u091c\u0941\u0932\u0942
+languages.az=\u0905\u091c\u093c\u0930\u092c\u093e\u0907\u091c\u093e\u0928\u0940
+languages.ne=\u0928\u0947\u092a\u093e\u0932\u0940
+languages.ay=\u0910\u092e\u0930\u093e
+languages.na=\u0928\u094c\u0930\u094b
+languages.as=\u0905\u0938\u093e\u092e\u0940
+languages.ar=\u0905\u0930\u0947\u092c\u093f\u0915
+languages.zh=\u091a\u093f\u0928\u0940\u0938\u094d
+languages.my=\u092c\u0930\u094d\u092e\u0940\u0938\u094d
+languages.am=\u0905\u092e\u0939\u093e\u0930\u093f\u0915
+languages.za=\u091d\u094d\u0939\u0941\u0928\u094d\u0917
+languages.mt=\u092e\u093e\u0932\u0924\u0940\u0938\u094d
+languages.ms=\u092e\u0932\u092f
+languages.mr=\u092e\u0930\u093e\u0920\u0940
+languages.af=\u0905\u092b\u094d\u0930\u093f\u0915\u093e\u0928\u094d\u0938
+languages.mo=\u092e\u094b\u0932\u094d\u0921\u093e\u0935\u093f\u092f\u0928\u094d
+languages.mn=\u092e\u0902\u0917\u094b\u0932\u093f\u092f\u0928\u094d
+languages.ab=\u0905\u092c\u0916\u0947\u091c\u093f\u092f\u0928
+languages.ml=\u092e\u0932\u093f\u092f\u093e\u0932\u092e
+languages.aa=\u0905\u092b\u093e\u0930
+languages.mk=\u092e\u0938\u0940\u0921\u094b\u0928\u093f\u092f\u0928\u094d
+languages.mi=\u092e\u093e\u0913\u0930\u0940
+languages.root=\u0936\u093f\u0916\u0930
+languages.mg=\u092e\u0932\u093e\u0917\u0938\u0940
+languages.yo=\u092f\u0942\u0930\u0941\u092c\u093e
+languages.tlh=\u0915\u094d\u0932\u093f\u0902\u0917\u0949\u0928
+languages.yi=\u0907\u0926\u094d\u0926\u093f\u0937
+languages.lv=\u0932\u093e\u091f\u094d\u0935\u093f\u092f\u0928\u094d (\u0932\u0947\u091f\u094d\u091f\u093f\u0937)
+languages.lt=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u0928\u094d
+languages.lo=\u0932\u093e\u0913\u0924\u093f\u092f\u0928\u094d
+languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms.properties
index 26e7c8e..610713a 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms.properties
@@ -5,14 +5,23 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
currenciesDisplayName.MYR=Ringgit Malaysia
currenciesSymbol.MYR=RM
-shortMonths=Jan®Feb®Mac®Apr®Mei®Jun®Jul®Ogos®Sep®Okt®Nov®Dis®®
-months=Januari®Februari®Mac®April®Mei®Jun®Julai®Ogos®September®Oktober®November®Disember®®
-shortWeekdays=®Ahd®Isn®Sel®Rab®Kha®Jum®Sab®
-weekdays=®Ahad®Isnin®Selasa®Rabu®Khamis®Jumaat®Sabtu®
-firstDayOfWeek=mon
-eras=S.M.®T.M.®
+shortMonths=Jan\u00aeFeb\u00aeMac\u00aeApr\u00aeMei\u00aeJun\u00aeJul\u00aeOgos\u00aeSep\u00aeOkt\u00aeNov\u00aeDis\u00ae\u00ae
+months=Januari\u00aeFebruari\u00aeMac\u00aeApril\u00aeMei\u00aeJun\u00aeJulai\u00aeOgos\u00aeSeptember\u00aeOktober\u00aeNovember\u00aeDisember\u00ae\u00ae
+shortWeekdays=\u00aeAhd\u00aeIsn\u00aeSel\u00aeRab\u00aeKha\u00aeJum\u00aeSab\u00ae
+weekdays=\u00aeAhad\u00aeIsnin\u00aeSelasa\u00aeRabu\u00aeKhamis\u00aeJumaat\u00aeSabtu\u00ae
+eras=S.M.\u00aeT.M.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=dd MMM yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE dd MMM yyyy
+shortTimeFormat=h:mm
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.TL=Timor-Leste
territories.TK=Tokelau
territories.TJ=Tadjikistan
@@ -101,7 +110,7 @@ territories.CX=Christmas Island
territories.CV=Cape Verde
territories.PA=Panama
territories.CU=Cuba
-territories.CS=Serbia
+territories.CS=Serbia dan Montenegro
territories.CR=Kosta Rika
territories.CO=Colombia
territories.CN=Cina
@@ -172,12 +181,12 @@ territories.AI=Anguilla
territories.MS=Montserrat
territories.MR=Mauritania
territories.AG=Antigua dan Barbuda
-territories.AF=Afghanistan
territories.MQ=Martinique
-territories.AE=Emiriah Arab Bersatu
+territories.AF=Afghanistan
territories.MP=Northern Mariana Islands
-territories.AD=Andorra
+territories.AE=Emiriah Arab Bersatu
territories.MO=Macao S.A.R., China
+territories.AD=Andorra
territories.MN=Mongolia
territories.MM=Myanmar
territories.ML=Mali
@@ -252,4 +261,107 @@ territories.TR=Turki
territories.TO=Tonga
territories.TN=Tunisia
territories.TM=Turkmenistan
+languages.es=Sepanyol
+languages.ku=Kurdish
+languages.eo=Esperanto
+languages.en=Inggeris
+languages.el=Greek
+languages.ko=Korea
+languages.kn=Kannada
+languages.km=Khmer
+languages.ka=Georgia
+languages.jv=Jawa
+languages.fil=Tagalog
+languages.pt=Portugis
+languages.ps=Pashto
+languages.de=Jerman
+languages.pl=Poland
+languages.da=Denmark
+languages.tlh=Klingon
+languages.ja=Jepun
+languages.vi=Vietnam
+languages.cy=Wales
+languages.pa=Punjabi
+languages.cs=Czech
+languages.it=Itali
+languages.is=Iceland
+languages.uz=Uzbek
+languages.or=Oriya
+languages.ur=Urdu
+languages.ca=Catalonia
+languages.ie=Interlingue
+languages.id=Indonesia
+languages.uk=Ukraine
+languages.ia=Interlingua
+languages.oc=Occitan
+languages.ug=Uighur
+languages.hy=Armenia
+languages.bs=Bosnia
+languages.br=Brittany
+languages.hu=Hungary
+languages.pt_PT=Portugis Iberia
+languages.bn=Benggala
+languages.hr=Croat
+languages.tw=Twi
+languages.bh=Bihari
+languages.bg=Bulgaria
+languages.no=Norway
+languages.be=Belarus
+languages.nn=Nynorsk Norway
+languages.hi=Hindi
+languages.tr=Turki
+languages.nl=Belanda
+languages.zu=Zulu
+languages.he=Ibrani
+languages.tk=Turkmen
+languages.ne=Nepal
+languages.az=Azerbaijan
+languages.ti=Tigrinya
+languages.th=Thai
+languages.te=Telugu
+languages.as=Assam
+languages.ar=Arab
+languages.ta=Tamil
+languages.gu=Gujerat
+languages.am=Amharic
+languages.mt=Malta
languages.ms=Bahasa Melayu
+languages.gn=Guarani
+languages.sw=Swahili
+languages.mr=Marathi
+languages.sv=Sweden
+languages.gl=Galicia
+languages.su=Sunda
+languages.af=Afrikaans
+languages.st=Sesoto
+languages.mn=Mongolia
+languages.sr=Serbia
+languages.sq=Albania
+languages.ml=Malayalam
+languages.mk=Macedonia
+languages.so=Somali
+languages.gd=Scots Gaelic
+languages.sl=Slovenia
+languages.sk=Slovak
+languages.ga=Ireland
+languages.si=Sinhala
+languages.sh=SerboCroatia
+languages.yi=Yahudi
+languages.sd=Sindhi
+languages.fy=Frisian
+languages.sa=Sanskrit
+languages.fr=Perancis
+languages.lv=Latvia
+languages.lt=Lithuania
+languages.fo=Faroese
+languages.ru=Rusia
+languages.lo=Laos
+languages.ln=Lingala
+languages.fi=Finland
+languages.ro=Romania
+languages.fa=Parsi
+languages.la=Latin
+languages.xh=Xhosa
+languages.eu=Basque
+languages.ky=Kyrgyz
+languages.et=Estonia
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms_BN.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms_BN.properties
index 52663ae..736bcf3 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms_BN.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ms_BN.properties
@@ -7,13 +7,11 @@
decimalSeparator=,
groupingSeparator=.
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
currenciesSymbol.BND=$
-currenciesSymbol.USD=US$
-shortDateFormat=dd/MM/yyyy
mediumDateFormat=dd/MM/yyyy
-longDateFormat=dd MMMM yyyy
fullDateFormat=dd MMMM yyyy
-shortTimeFormat=H:mm:ss
+shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ss
-fullTimeFormat=h:mm:ss aa
+longTimeFormat=H:mm:ss z
+fullTimeFormat=h:mm:ss aa z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mt.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mt.properties
index 4dfc21b..b1c5475 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mt.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_mt.properties
@@ -5,19 +5,29 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+decimalSeparator=.
+groupingSeparator=,
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.MTL=Lira Maltija
+currenciesDisplayName.EUR=Ewro
+currenciesDisplayName.XXX=Munita Mhux Mag\u0127ruf jew Mhux Validu
currenciesSymbol.MTL=Lm
-shortMonths=Jan®Fra®Mar®Apr®Mej®\u0120un®Lul®Awi®Set®Ott®Nov®Di\u010b®®
-months=Jannar®Frar®Marzu®April®Mejju®\u0120unju®Lulju®Awissu®Settembru®Ottubru®Novembru®Di\u010bembru®®
-shortWeekdays=®\u0126ad®Tne®Tli®Erb®\u0126am®\u0120im®Sib®
-weekdays=®Il-\u0126add®It-Tnejn®It-Tlieta®L-Erbg\u0127a®Il-\u0126amis®Il-\u0120img\u0127a®Is-Sibt®
-minNumberOfDaysInFirstWeek=4
-eras=QK®WK®
+currenciesSymbol.XXX=XXX
+shortMonths=Jan\u00aeFra\u00aeMar\u00aeApr\u00aeMej\u00ae\u0120un\u00aeLul\u00aeAwi\u00aeSet\u00aeOtt\u00aeNov\u00aeDi\u010b\u00ae\u00ae
+months=Jannar\u00aeFrar\u00aeMarzu\u00aeApril\u00aeMejju\u00ae\u0120unju\u00aeLulju\u00aeAwissu\u00aeSettembru\u00aeOttubru\u00aeNovembru\u00aeDi\u010bembru\u00ae\u00ae
+shortWeekdays=\u00ae\u0126ad\u00aeTne\u00aeTli\u00aeErb\u00ae\u0126am\u00ae\u0120im\u00aeSib\u00ae
+weekdays=\u00aeIl-\u0126add\u00aeIt-Tnejn\u00aeIt-Tlieta\u00aeL-Erbg\u0127a\u00aeIl-\u0126amis\u00aeIl-\u0120img\u0127a\u00aeIs-Sibt\u00ae
+eras=QK\u00aeWK\u00ae
+ampms=QN\u00aeWN\u00ae
shortDateFormat=dd/MM/yyyy
mediumDateFormat=dd MMM yyyy
-longDateFormat=d 'ta\u2019' MMMM yyyy
-fullDateFormat=EEEE, d 'ta\u2019' MMMM yyyy
-zoneStrings=Europe/Malta®CET®\u0126in \u010aentrali Ewropew®CEST®\u0126in \u010aentrali Ewropew tas-Sajf®©
+longDateFormat=d 'ta'\u2019 MMMM yyyy
+fullDateFormat=EEEE, d 'ta'\u2019 MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Central\u00ae\u0126in \u010aentrali Ewropew\u00ae\u00ae\u0126in \u010aentrali Ewropew tas-Sajf\u00ae\u00ae\u00a9
territories.TL=Timor tal-Lvant
territories.TK=Tokelaw
territories.TJ=Ta\u0121ikistan
@@ -40,10 +50,9 @@ territories.GN=Gineja
territories.GM=Gambja
territories.GL=Grinlandja
territories.SV=El Salvador
-territories.062=Asja t\u2019Isfel \u010aentrali
territories.ST=Sao Tome and Principe
-territories.061=Polinesja
territories.GI=Gibraltar
+territories.061=Polinesja
territories.GH=Gana
territories.SR=Surinam
territories.GF=Gujana Fran\u010bi\u017ca
@@ -66,13 +75,13 @@ territories.SC=Seychelles
territories.SB=Solomon Islands
territories.SA=G\u0127arabja Sawdita
territories.FR=Franza
-territories.057=Mikronesja
territories.FO=G\u017cejjer Faroe
+territories.057=Re\u0121jun ta\u2019 Mikrone\u017cja
territories.FM=Mikronesja
territories.RW=Rwanda
territories.054=Melanesja
-territories.053=Awstralja u New Zealand
territories.FK=Falkland Islands
+territories.053=Awstralja u New Zealand
territories.RU=Russja
territories.FJ=Fi\u0121i
territories.FI=Finlandja
@@ -81,20 +90,21 @@ territories.RE=R\u00e9union
territories.ET=Etijopja
territories.ES=Spanja
territories.ER=Eritreja
-territories.833=Isle of Man
+territories.QU=Unjoni Ewropea
territories.EH=Sahara tal-Punent
territories.EG=E\u0121ittu
-territories.830=Channel Islands
territories.EE=Estonja
+territories.830=G\u017cejjer tal-Kanal Ingli\u017c
territories.EC=Ekwador
territories.DZ=Al\u0121erija
territories.QA=Qatar
territories.039=Ewropa t\u2019Isfel
territories.DO=Republikka Domenikana
territories.PY=Paragwaj
-territories.035=Asja tax-Xlokk
territories.DM=Dominika
+territories.035=Asja tax-Xlokk
territories.PW=Palau
+territories.034=Asja t\u2019Isfel \u010aentrali
territories.DK=Danimarka
territories.DJ=\u0120ibuti
territories.PT=Portugall
@@ -124,8 +134,8 @@ territories.CN=\u010aina
territories.CM=Kamerun
territories.CL=\u010aili
territories.CK=Cook Islands
+territories.021=Amerika N\u00f2rdiku
territories.CI=Kosta ta\u2019 l-Avorju
-territories.021=Amerika ta\u2019 Fuq
territories.CH=Svizzera
territories.CG=Kongo
territories.CF=Repubblika Afrikana \u010aentrali
@@ -144,24 +154,25 @@ territories.BR=Bra\u017cil
territories.019=Amerika
territories.018=Affrika t\u2019Isfel
territories.NZ=New Zealand
-territories.BO=Bolivja
territories.017=Affrika Nofsani
+territories.BO=Bolivja
territories.BN=Brunej
-territories.BM=Bermuda
territories.015=Affrika ta\u2019 Fuq
+territories.BM=Bermuda
territories.014=Affrika tal-Lvant
territories.013=Amerika \u010aentrali
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Affrika tal-Punent
-territories.BH=Ba\u0127rajn
+territories.BI=Burundi
territories.172=Commonwealth tal-Istati Independenti
+territories.BH=Ba\u0127rajn
territories.NR=Nauru
territories.BG=Bulgarija
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Bel\u0121ju
+territories.ZZ=Re\u0121jun Mhux Mag\u0127ruf jew Mhux Validu
territories.NO=Norve\u0121ja
territories.BD=Bangladexx
territories.BB=Barbados
@@ -173,6 +184,7 @@ territories.NG=Ni\u0121erja
territories.NF=Norfolk Island
territories.AZ=A\u017cerbaj\u0121an
territories.NE=Ni\u0121er
+territories.AX=G\u017cejjer Aland
territories.NC=New Caledonia
territories.AW=Aruba
territories.ZM=\u017bambja
@@ -181,15 +193,15 @@ territories.AU=Awstralja
territories.AT=Awstrija
territories.AS=Samoa Amerikana
territories.AR=Ar\u0121entina
+territories.AQ=Antartika
territories.009=O\u010bejanja
-territories.AQ=Antarctica
territories.MZ=Mo\u017cambik
territories.AO=Angola
territories.MY=Malasja
territories.AN=Antilles Olandi\u017ci
territories.MX=Messiku
-territories.005=Amerika t\u2019Isfel
territories.AM=Armenja
+territories.005=Amerika t\u2019Isfel
territories.MW=Malawi
territories.AL=Albanija
territories.MV=Maldives
@@ -198,8 +210,8 @@ territories.ZA=Afrika t\u2019Isfel
territories.MU=Mawrizju
territories.002=Affrika
territories.MT=Malta
-territories.001=Dinja
territories.AI=Angwilla
+territories.001=Dinja
territories.MS=Montserrat
territories.MR=Mawritanja
territories.AG=Antigua and Barbuda
@@ -232,13 +244,14 @@ territories.151=Ewropa tal-Lvant
territories.150=Ewropa
territories.LK=Sri Lanka
territories.LI=Liechtenstein
-territories.LC=Saint Lucia
+territories.LC=Santa Lu\u010bija
territories.LB=Libanu
territories.LA=Laos
territories.KZ=Ka\u017cakstan
-territories.KY=Cayman Islands
+territories.KY=G\u017cejjer Kajmani
territories.KW=Kuwajt
territories.145=Asja tal-Punent
+territories.143=Asja \u010aentrali
territories.142=Asja
territories.KR=Koreja t\u2019Isfel
territories.KP=Koreja ta\u2019 Fuq
@@ -268,6 +281,7 @@ territories.UZ=U\u017cbekistan
territories.IO=British Indian Ocean Territory
territories.UY=Urugwaj
territories.IN=Indja
+territories.IM=Isle of Man
territories.IL=I\u017crael
territories.US=Stati Uniti
territories.IE=Irlanda
@@ -289,8 +303,8 @@ territories.TR=Turkija
territories.TO=Tonga
territories.TN=Tune\u017c
territories.TM=Turkmenistan
-languages.akk=Akkadjen
languages.gwi=Gwi\u010bin
+languages.akk=Akkadjen
languages.eka=Ekajuk
languages.ijo=I\u0121o
languages.xh=\u0126o\u017ca
@@ -303,15 +317,16 @@ languages.pon=Ponpejan
languages.min=Minangkabaw
languages.suk=Sukuma
languages.wo=Wolof
-languages.kut=Kutenaj
languages.lol=Mongo
+languages.kut=Kutenaj
languages.mic=Mikmek
languages.wa=Walloon
languages.kum=Kumiku
languages.zap=\u017bapotek
+languages.ain=Ajnu
languages.cus=Kuxtiku (O\u0127ra)
-languages.doi=Dogri
languages.jbo=Lojban
+languages.doi=Dogri
languages.vo=Volapuk
languages.oto=Lingwi Otomjani
languages.vi=Vjetnami\u017c
@@ -335,8 +350,8 @@ languages.egy=E\u0121izzjan (Antik)
languages.ug=Wigur
languages.fan=Fang
languages.ssa=Nilo-Sa\u0127aram
-languages.bat=Baltiku (O\u0127ra)
languages.mga=Irlandi\u017c, Medjevali (900-1200)
+languages.bat=Baltiku (O\u0127ra)
languages.nyo=Njoro
languages.bas=Basa
languages.nyn=Nyankole
@@ -365,8 +380,8 @@ languages.kru=Kurusk
languages.tg=Ta\u0121ik
languages.byn=Blin
languages.te=Telugu
-languages.csb=Kashubian
languages.kro=Kru
+languages.csb=Kashubian
languages.ta=Tamil
languages.tkl=Tokelau
languages.efi=Efik
@@ -384,14 +399,14 @@ languages.so=Somali
languages.afh=Afri\u0127ili
languages.sn=Xona
languages.sm=Samojan
-languages.sl=Slav
+languages.sl=Sloven
languages.grc=Grieg, Antik (to 1453)
languages.sk=Slovakk
languages.grb=\u0120erbo
languages.si=Sin\u0127ali\u017c
languages.sh=Serbo-Kroat
-languages.afa=Afro-Asjatiku (O\u0127ra)
languages.crh=Crimean Turkish; Crimean Tatar
+languages.afa=Afro-Asjatiku (O\u0127ra)
languages.sg=Sango
languages.se=Sami ta\u2019 Fuq
languages.sd=Sindi
@@ -413,17 +428,18 @@ languages.kpe=Kpelle
languages.qu=Ke\u010bwa
languages.tig=Tigre
languages.son=Songaj
-languages.cpp=Creoles and pidgins, Portuguese-based (Other)
+languages.cpp=Kreoli u Pi\u0121ini, Bba\u017cat fuq il-Portugi\u017c (O\u0127ra)
+languages.rup=Aromanijan
languages.sog=Sogdien
languages.ada=Adangme
-languages.cpf=Kreoli u Pi\u0121ini, Bba\u017cat fuq il-Fran\u010bi\u017c (O\u0127ra)
-languages.hit=\u0126ittit
languages.kos=Kosrejan
+languages.hit=\u0126ittit
+languages.cpf=Kreoli u Pi\u0121ini, Bba\u017cat fuq il-Fran\u010bi\u017c (O\u0127ra)
languages.cpe=Kreoli u Pi\u0121ini, Bba\u017cat fuq l-Ingli\u017c (O\u0127ra)
languages.him=\u0126ima\u010bali
-languages.got=Gotiku
-languages.hil=Hiligaynon
languages.kok=Konkani
+languages.hil=Hiligaynon
+languages.got=Gotiku
languages.gor=Gorontalo
languages.gon=Gondi
languages.din=Dinka
@@ -432,7 +448,7 @@ languages.pt=Portugi\u017c
languages.ps=Paxtun
languages.fur=Frijuljan
languages.phn=Feni\u010bju
-languages.goh=\u0120ermaniku, Antik Pulit (ca. 750-1050)
+languages.goh=\u0120ermaniku, Antik Pulit
languages.snk=Soninke
languages.cop=Koptiku
languages.yap=Japese
@@ -462,7 +478,7 @@ languages.oj=O\u0121ibwa
languages.mag=Maga\u0127i
languages.mad=Maduri\u017c
languages.sma=Southern Sami
-languages.oc=Provenzal (wara 1500)
+languages.oc=O\u010b\u010bitan
languages.nso=Soto, ta\u2019 Fuq
languages.btk=Batak
languages.myv=Erzya
@@ -472,7 +488,7 @@ languages.myn=Majan
languages.nv=Nava\u0127o
languages.kmb=Kimbundu
languages.nr=Ndebele, t\u2019Isfel
-languages.gmh=\u0120ermaniku, Medjevali Pulit (ca. 1050-1500)
+languages.gmh=\u0120ermaniku, Medjevali Pulit
languages.no=Norve\u0121i\u017c
languages.nn=Ninorsk Norve\u0121i\u017c
languages.nl=Olandi\u017c
@@ -490,26 +506,27 @@ languages.tem=Timne
languages.my=Burmi\u017c
languages.lez=Le\u017cgjan
languages.mt=Malti
-languages.peo=Persjan Antik (ca. 600-400 Q.K.)
+languages.peo=Persjan Antik
languages.ms=Malajan
languages.mr=Marati
-languages.fro=Fran\u010bi\u017c, Antik (842-ca. 1400)
+languages.fro=Fran\u010bi\u017c, Antik
languages.mo=Moldavjan
+languages.frm=Fran\u010bi\u017c, Medjevali
languages.mn=Mongoljan
-languages.frm=Fran\u010bi\u017c, Medjevali (ca. 1400-1600)
-languages.ml=Malajalam
languages.jrb=Lhudi-G\u0127arbi
+languages.ml=Malajalam
languages.mk=Ma\u010bedonjan
languages.mi=Maori
languages.mh=Marxall
languages.mg=Malaga\u017ci
languages.mwr=Marwari
languages.bra=Braj
-languages.lv=Latvjan (Lettix)
+languages.mwl=Mirandi\u017c
languages.den=Slav
+languages.lv=Latvjan (Lettix)
languages.lu=Luba-Katanga
-languages.lt=Litwanjan
languages.del=Delawerjan
+languages.lt=Litwanjan
languages.lo=Lao
languages.ln=Lingaljan
languages.li=Limburgish
@@ -562,38 +579,38 @@ languages.iu=Inukitut
languages.pap=Papjamento
languages.it=Taljan
languages.sgn=Lingwa tas-Sinjali
-languages.kha=Kasi
languages.is=I\u017clandi\u017c
+languages.kha=Kasi
languages.chr=\u010aerokij
languages.pam=Pampamga
languages.pal=Pa\u0127lavi
languages.chp=\u010aipewjan
-languages.cho=\u010aostaw
languages.io=Ido
+languages.cho=\u010aostaw
languages.chn=\u0120argon ta\u010b-\u010ainuk
languages.chm=Mari
languages.tyv=Tuvinjan
languages.bnt=Bantu
languages.pag=Pangasinjan
-languages.chk=\u010aukese
languages.ik=Inupjak
-languages.haw=\u0126awajjan
+languages.chk=\u010aukese
languages.ii=Sichuan Yi
+languages.haw=\u0126awajjan
languages.lam=Lamba
-languages.chg=\u010aagataj
languages.ig=Igbo
+languages.chg=\u010aagataj
languages.sga=Irlandi\u017c, Antik (sa l-900)
languages.paa=Papwan (O\u0127ra)
languages.ie=Interlingue
languages.id=Indone\u017cjan
languages.lah=Landa
-languages.chb=\u010aib\u010ba
languages.day=Dajak
+languages.chb=\u010aib\u010ba
languages.ia=Interlingua
languages.lad=Ladino
-languages.dar=Dargwa
-languages.hai=\u0126ajda
languages.hz=\u0126erero
+languages.hai=\u0126ajda
+languages.dar=Dargwa
languages.hy=Armenjan
languages.ath=Lingwi Atabaskani
languages.hu=Ungeri\u017c
@@ -615,9 +632,9 @@ languages.iro=Lingwi Irogwjani
languages.gn=Gwarani
languages.gl=Gallegjan
languages.arw=Arawak
-languages.gd=Galliku Sko\u010b\u010bi\u017c
-languages.art=Artifi\u010bjali (O\u0127ra)
languages.gez=Geez
+languages.art=Artifi\u010bjali (O\u0127ra)
+languages.gd=Galliku Sko\u010b\u010bi\u017c
languages.ira=Iranjan
languages.ga=Irlandi\u017c
languages.arp=Arapa\u0127o
@@ -626,8 +643,8 @@ languages.fy=Fri\u017cjan
languages.bla=Siksika
languages.gem=\u0120ermaniku (O\u0127ra)
languages.ypk=Lingwi Jupi\u010bi
-languages.fr=Fran\u010bi\u017c
languages.arc=Aramajk
+languages.fr=Fran\u010bi\u017c
languages.fo=Fawri\u017c
languages.cel=Keltiku (O\u0127ra)
languages.fj=Fi\u0121i
@@ -651,16 +668,18 @@ languages.tum=Tumbuka
languages.mos=Mossi
languages.dz=D\u017congka
languages.nic=Ni\u0121erjan - Kordofanjan
-languages.dv=Dive\u0127i
-languages.fiu=Finno - Ugrijan
languages.lus=Luxaj
+languages.fiu=Finno - Ugrijan
+languages.dv=Dive\u0127i
languages.nia=Nijas
languages.moh=Mo\u0127ak
languages.luo=Luwa
languages.lun=Lunda
languages.apa=Lingwi Apa\u010bi
+languages.fil=Filippino
languages.lui=Luwisinu\u017c
languages.hup=\u0126upa
+languages.cch=Atsam
languages.bin=Bini
languages.de=\u0120ermani\u017c
languages.lua=Luba-Luluwa
@@ -669,15 +688,15 @@ languages.was=Waxo
languages.und=Indeterminat
languages.war=Waraj
languages.da=Dani\u017c
-languages.dum=Olandi\u017c, Medjevali (ca. 1050-1350)
+languages.dum=Olandi\u017c, Medjevali
languages.wal=Walamo
languages.mno=Lingwi Manobo
languages.wak=Lingwi Wakaxani
languages.sat=Santali
languages.cy=Welx
languages.sas=Saska
-languages.cv=\u010auvax
languages.kbd=Kabardian
+languages.cv=\u010auvax
languages.cu=Slaviku tal-Knisja
languages.mni=Manipuri
languages.cs=\u010aek
@@ -689,37 +708,38 @@ languages.co=Korsiku
languages.sai=Indjan tal-Amerika t\u2019Isfel (O\u0127ra)
languages.mnc=Man\u010burjan
languages.sah=Jakut
-languages.gba=Gbaja
-languages.inh=Ingush
languages.kaw=Kawi
+languages.inh=Ingush
+languages.gba=Gbaja
languages.sad=Sandawe
languages.ch=\u010aamorro
-languages.bho=Bojpuri
languages.ine=Indo-Ewropew
+languages.bho=Bojpuri
languages.enm=Ingli\u017c, Medjevali (1100-1500)
-languages.ce=\u010ae\u010ben
-languages.inc=Indjan (O\u0127ra)
languages.kar=Karen
+languages.inc=Indjan (O\u0127ra)
+languages.ce=\u010ae\u010ben
languages.gay=Gajo
languages.ca=Katalan
languages.umb=Umbundu
languages.syr=Sirjan
languages.kam=Kamba
+languages.anp=Angika
languages.tsi=Zimxjan
-languages.ang=Ingli\u017c, Antik (ca.450-1100)
-languages.cau=Kawkasu (O\u0127ra)
+languages.ang=Ingli\u017c, Antik
languages.kac=Ka\u010bin
+languages.cau=Kawkasu (O\u0127ra)
languages.kab=Kabuljan
-languages.bs=Bosnijan
languages.kaa=Kara-Kalpak
-languages.br=Brenton
+languages.bs=Bosnijan
languages.car=Karib
+languages.br=Brenton
languages.bo=Tibetjan
languages.bn=Bengali
languages.bm=Bambara
languages.gaa=Ga
-languages.bi=Bislama
languages.cai=Amerika \u010aentrali (O\u0127ra)
+languages.bi=Bislama
languages.bh=Bi\u0127ari
languages.bg=Bulgaru
languages.be=Belarussu
@@ -733,10 +753,10 @@ languages.az=A\u017cerbaj\u0121ani
languages.ay=Ajmara
languages.av=Avarik
languages.as=Assamese
-languages.ar=G\u0127arbi
languages.dsb=Lower Sorbian
-languages.elx=Elamit
+languages.ar=G\u0127arbi
languages.ilo=Iloko
+languages.elx=Elamit
languages.zh=\u010aini\u017c
languages.an=Aragonese
languages.pra=Lingwi Prakriti
@@ -759,3 +779,4 @@ languages.nds=\u0120ermani\u017c Komuni; Sassonu Komuni
languages.bem=Bemba
languages.bej=Beja
languages.tpi=Tok Pisin
+variants.REVISED=Ortografija Irriveda
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_my.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_my.properties
new file mode 100644
index 0000000..dc9efa6
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_my.properties
@@ -0,0 +1,480 @@
+# LocaleInformation_my.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+zeroDigit=\u1040
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.LKR=\u101e\u102e\u101b\u102d\u101c\u1004\u103a\u1039\u1000\u102c \u101b\u1030\u1015\u102e\u1038
+currenciesDisplayName.CYP=\u1006\u102d\u102f\u1000\u103a\u1015\u101b\u1000\u103a\u1005\u103a \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.XOF=CFA \u1016\u101b\u1014\u1037\u103a BCEAO
+currenciesDisplayName.BYR=\u1018\u102e\u101c\u102c\u101b\u102f\u1005\u103a \u101b\u1030\u1018\u101a\u103a
+currenciesDisplayName.BMD=\u1018\u102c\u1019\u1030\u1012\u102b \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.BSD=\u1018\u101f\u102c\u1038\u1019\u102c\u1038 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.FRF=\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.BYB=\u1018\u102e\u101c\u102c\u101b\u102f\u1005\u103a \u101b\u1030\u1018\u101a\u103a\u1021\u101e\u1005\u103a (\u1041\u1049\u1049\u1044-\u1041\u1049\u1049\u1049)
+currenciesDisplayName.NPR=\u1014\u102e\u1015\u1031\u102b \u101b\u1030\u1015\u102e\u1038
+currenciesDisplayName.CLP=\u1001\u103b\u102e\u101c\u102e \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.XTS=\u1005\u1019\u103a\u1038\u101e\u1015\u103a \u1004\u103d\u1031\u1000\u103c\u1031\u1038 \u1000\u102f\u1012\u103a
+currenciesDisplayName.SUR=\u1006\u102d\u102f\u1017\u102e\u101a\u1000\u103a \u101b\u1030\u1017\u101a\u103a
+currenciesDisplayName.XBB=\u1025\u101b\u1031\u102c\u1015\u1004\u103d\u1031\u1000\u103c\u1031\u1038\u1005\u1036\u1014\u1005\u103a
+currenciesDisplayName.RUR=\u101b\u102f\u101b\u103e \u101b\u1030\u1018\u101a\u103a (\u1041\u1049\u1049\u1041-\u1041\u1049\u1049\u1048)
+currenciesDisplayName.KPW=\u1019\u103c\u1031\u102c\u1000\u103a\u1000\u102d\u102f\u1038\u101b\u102e\u1038\u101a\u102c\u1038 \u101d\u1019\u103a
+currenciesDisplayName.HKD=\u101f\u1031\u102c\u1004\u103a\u1000\u1031\u102c\u1004\u103a \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.FKP=\u1016\u1031\u102c\u1000\u103a\u1000\u101c\u1014\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.ARS=\u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038 \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.BRL=\u1018\u101b\u102c\u1007\u102e\u1038 \u101b\u102e\u1038\u101a\u1032
+currenciesDisplayName.JPY=\u1002\u103b\u1015\u1014\u103a\u101a\u1014\u103a\u1038
+currenciesDisplayName.ARP=\u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038 \u1015\u102e\u1006\u102d\u102f (\u1041\u1049\u1048\u1043-\u1041\u1049\u1048\u1045)
+currenciesDisplayName.IDR=\u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038 \u101b\u1030\u1015\u102e\u1038\u101a\u102c\u1038
+currenciesDisplayName.XAU=\u101b\u103d\u103e\u1031
+currenciesDisplayName.DEM=\u1002\u103b\u102c\u1019\u100f\u102e \u1019\u1010\u103a
+currenciesDisplayName.RUB=\u101b\u102f\u101b\u103e \u101b\u1030\u1018\u101a\u103a
+currenciesDisplayName.VND=\u1017\u102e\u101a\u1000\u103a\u1014\u1019\u103a \u1012\u1031\u102b\u1004\u103a
+currenciesDisplayName.DKK=\u1012\u102d\u1014\u103a\u1038\u1019\u1010\u103a \u1001\u101b\u102d\u102f\u100f\u102c
+currenciesDisplayName.XAG=\u1004\u103d\u1031
+currenciesDisplayName.SBD=\u1006\u1031\u102c\u103a\u101c\u1019\u103d\u1014\u103a\u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.THB=\u1011\u102d\u102f\u1004\u103a\u1038\u1018\u1010\u103a
+currenciesDisplayName.NOK=\u1014\u1031\u102c\u103a\u101d\u1031 \u1001\u101b\u102d\u102f\u100f\u102c
+currenciesDisplayName.BEF=\u1018\u101a\u103a\u101c\u103a\u1002\u103b\u102e\u101a\u1019\u103a \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.PHP=\u1016\u102d\u101c\u1005\u103a\u1015\u102d\u102f\u1004\u103a \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.BWP=\u1018\u1031\u102c\u1037\u1005\u103a\u101d\u102b\u1014\u102c \u1015\u102f\u101c
+currenciesDisplayName.USS=\u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1012\u1031\u102b\u103a\u101c\u102c (\u1010\u1014\u1031\u1037\u1010\u100a\u103a\u1038)
+currenciesDisplayName.FJD=\u1016\u102e\u1002\u103b\u102e \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.USN=\u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1012\u1031\u102b\u103a\u101c\u102c (\u1014\u1031\u102c\u1000\u103a\u1014\u1031\u1037)
+currenciesDisplayName.BDT=\u1018\u1004\u103a\u1039\u1002\u101c\u102c\u1038\u1012\u1031\u1037\u101b\u103e\u103a \u1010\u102c\u1000\u102c
+currenciesDisplayName.AWG=\u1021\u101b\u1030\u1018\u1014\u103a \u1002\u1004\u103a\u1038\u1012\u102b\u1038
+currenciesDisplayName.LBP=\u101c\u1000\u103a\u1018\u1014\u103d\u1014\u103a \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.XXX=\u1019\u101e\u102d (\u101e\u102d\u102f\u1037) \u1019\u101b\u103e\u102d\u101e\u1031\u102c \u1004\u103d\u1031\u1000\u103c\u1031\u1038
+currenciesDisplayName.GIP=\u1002\u103b\u102e\u1018\u101b\u1031\u102c\u103a\u101c\u103a\u1010\u102c \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.USD=\u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.SGD=\u1005\u1004\u103a\u1039\u1000\u102c\u1015\u1030 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.KHR=\u1000\u1019\u1039\u1018\u1031\u102c\u1012\u102e\u1038\u101a\u102c\u1038 \u101b\u102e\u1038\u101a\u1032
+currenciesDisplayName.TRY=\u1010\u1030\u101b\u1000\u102e \u101c\u102d\u102f\u1004\u103a\u101b\u102c
+currenciesDisplayName.NZD=\u1014\u101a\u1030\u1038\u1007\u102e\u101c\u1014\u103a \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.EUR=\u101a\u1030\u101b\u102d\u102f
+currenciesDisplayName.INR=\u1021\u102d\u1014\u1039\u1012\u103c\u102d\u101a \u101b\u1030\u1015\u102e\u1038
+currenciesDisplayName.DOP=\u1012\u102d\u102f\u1019\u102e\u1014\u102e\u1000\u1014\u103a \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.GBP=\u1017\u103c\u102d\u1010\u102d\u101e\u103b\u103e \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.NAD=\u1014\u1019\u103a\u1019\u102e\u1038\u1018\u102e\u1038\u101a\u102c\u1038 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.COP=\u1000\u102d\u102f\u101c\u1036\u1018\u102e\u101a\u102c \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.TRL=\u101b\u103e\u1031\u1038\u101f\u1031\u102c\u1004\u103a\u1038\u1010\u1030\u101b\u1000\u102e \u101c\u102d\u102f\u1004\u103a\u101b\u102c
+currenciesDisplayName.CUP=\u1000\u103b\u1030\u1038\u1018\u102c\u1038 \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.BOP=\u1018\u102d\u102f\u101c\u102e\u1038\u1018\u102e\u1038\u101a\u102c\u1038 \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.MMK=\u1019\u103c\u1014\u103a\u1019\u102c \u1000\u103b\u1015\u103a
+currenciesDisplayName.ZWD=\u1007\u1004\u103a\u1018\u102c\u1018\u103d\u1031 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.MYR=\u1019\u101c\u1031\u1038\u101b\u103e\u102c\u1038 \u101b\u1004\u103a\u1038\u1002\u1005\u103a
+currenciesDisplayName.BIF=\u1018\u1030\u101b\u103d\u1014\u103a\u1012\u102e \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.SRD=\u1006\u1030\u101b\u102d\u1014\u1019\u103a \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.BUK=\u1017\u1019\u102c \u1000\u103b\u1015\u103a
+currenciesDisplayName.PLN=\u1015\u102d\u102f\u101c\u1014\u103a \u1007\u200c\u101c\u1031\u102c\u1037\u1010\u102e
+currenciesDisplayName.GNF=\u1002\u102e\u101b\u102c\u1014\u102c \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.XDR=\u1021\u1011\u1030\u1038\u1011\u102f\u1010\u103a\u101a\u1030\u1001\u103d\u1004\u1037\u103a
+currenciesDisplayName.CNY=\u1010\u101b\u102f\u1010\u103a \u101a\u103d\u1019\u103a\u101b\u1030\u1019\u1004\u103a\u1018\u102e
+currenciesDisplayName.SEK=\u1006\u103d\u102e\u1012\u1004\u103a \u1001\u101b\u102d\u102f\u100f\u102c
+currenciesDisplayName.AUD=\u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.XPT=\u1015\u101c\u1000\u103a\u1010\u102e\u1014\u1019\u103a
+currenciesDisplayName.JMD=\u1002\u103b\u1019\u1031\u1014\u102e\u1000\u102c \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.KYD=\u1000\u1031\u1019\u1014\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.CHF=\u1006\u103d\u1005\u103a \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.KRW=\u1010\u1031\u102c\u1004\u103a\u1000\u102d\u102f\u1038\u101b\u102e\u1038\u101a\u102c\u1038 \u101d\u1019\u103a
+currenciesDisplayName.PKR=\u1015\u102b\u1000\u1005\u1039\u1005\u1010\u1014\u103a \u101b\u1030\u1015\u102e\u1038
+currenciesDisplayName.TWD=\u1011\u102d\u102f\u1004\u103a\u101d\u1019\u103a \u1012\u1031\u102b\u103a\u101c\u102c\u1021\u101e\u1005\u103a
+currenciesDisplayName.EGP=\u1021\u102e\u1002\u103b\u1005\u103a \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.MXN=\u1019\u1000\u1039\u1000\u1006\u102e\u1000\u102d\u102f \u1015\u102e\u1006\u102d\u102f
+currenciesDisplayName.BND=\u1018\u101b\u1030\u1014\u102d\u102f\u1004\u103a\u1038 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.ANG=\u1014\u101a\u103a\u101e\u102c\u101c\u1014\u103a \u1021\u1014\u103a\u1010\u102e\u101c\u1014\u103a \u1002\u1004\u103a\u1038\u1012\u102b\u1038
+currenciesDisplayName.RWF=\u101b\u101d\u1014\u103a\u1012\u102b \u1016\u101b\u1014\u1037\u103a
+currenciesDisplayName.SDP=\u1006\u1030\u1012\u1014\u103a \u1015\u1031\u102b\u1004\u103a\u1021\u101f\u1031\u102c\u1004\u103a\u1038
+currenciesDisplayName.ESP=\u1005\u1015\u102d\u1014\u103a \u1015\u101a\u103a\u1005\u1031\u1038\u1010\u102c
+currenciesDisplayName.LRD=\u101c\u102d\u102f\u1004\u103a\u1018\u1031\u1038\u101b\u102e\u1038\u101a\u102c\u1038 \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.ILP=\u1021\u1005\u1039\u1005\u101b\u1031\u1038 \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.BZD=\u1018\u1031\u101c\u102e\u1007\u103a \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesDisplayName.SDG=\u1006\u1030\u1012\u1014\u103a \u1015\u1031\u102b\u1004\u103a
+currenciesDisplayName.CAD=\u1000\u1014\u1031\u1012\u102b \u1012\u1031\u102b\u103a\u101c\u102c
+currenciesSymbol.MMK=K
+shortMonths=\u1007\u1014\u103a\u00ae\u1016\u1031\u00ae\u1019\u1010\u103a\u00ae\u1027\u00ae\u1019\u1031\u00ae\u1007\u103d\u1014\u103a\u00ae\u1007\u1030\u00ae\u1029\u00ae\u1005\u1000\u103a\u00ae\u1021\u1031\u102c\u1000\u103a\u00ae\u1014\u102d\u102f\u00ae\u1012\u102e\u00ae\u00ae
+months=\u1007\u1014\u103a\u1014\u101d\u102b\u101b\u102e\u00ae\u1016\u1031\u1016\u1031\u102c\u103a\u101d\u102b\u101b\u102e\u00ae\u1019\u1010\u103a\u00ae\u1027\u1015\u103c\u102e\u00ae\u1019\u1031\u00ae\u1007\u103d\u1014\u103a\u00ae\u1007\u1030\u101c\u102d\u102f\u1004\u103a\u00ae\u1029\u1002\u102f\u1010\u103a\u00ae\u1005\u1000\u103a\u1010\u1004\u103a\u1018\u102c\u00ae\u1021\u1031\u102c\u1000\u103a\u1010\u102d\u102f\u1018\u102c\u00ae\u1014\u102d\u102f\u101d\u1004\u103a\u1018\u102c\u00ae\u1012\u102e\u1007\u1004\u103a\u1018\u102c\u00ae\u00ae
+shortWeekdays=\u00ae\u1014\u103d\u1031\u00ae\u101c\u102c\u00ae\u1002\u102b\u00ae\u101f\u1030\u1038\u00ae\u1010\u1031\u1038\u00ae\u1000\u103c\u102c\u00ae\u1014\u1031\u00ae
+weekdays=\u00ae\u1010\u1014\u1004\u103a\u1039\u1002\u1014\u103d\u1031\u00ae\u1010\u1014\u1004\u103a\u1039\u101c\u102c\u00ae\u1021\u1004\u103a\u1039\u1002\u102b\u00ae\u1017\u102f\u1012\u1039\u1013\u101f\u1030\u1038\u00ae\u1000\u103c\u102c\u101e\u1015\u1010\u1031\u1038\u00ae\u101e\u1031\u102c\u1000\u103c\u102c\u00ae\u1005\u1014\u1031\u00ae
+eras=\u1018\u102e\u1005\u102e\u00ae\u1021\u1031\u1012\u102e\u00ae
+ampms=\u1014\u1036\u1014\u1000\u103a\u00ae\u100a\u1014\u1031\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=yyyy MMMM d\u104a EEEE
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Iran\u00ae\u1021\u102e\u101b\u1014\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u102e\u101b\u1014\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Africa_Southern\u00ae\u1010\u1031\u102c\u1004\u103a\u1021\u102c\u1016\u101b\u102d\u1000 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1025\u101b\u1031\u102c\u1015 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101b\u103e\u1031\u1037\u1025\u101b\u1031\u102c\u1015 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00ae\u1014\u101a\u1030\u1038\u1007\u102e\u101c\u1014\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1014\u101a\u1030\u1038\u1007\u102e\u101c\u1014\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1000\u102c\u1007\u1000\u103a\u1005\u1010\u1014\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00ae\u1014\u102e\u1015\u1031\u102b \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00ae\u1015\u1004\u103a\u101c\u101a\u103a\u1002\u103d\u1031\u1037 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Malaysia\u00ae\u1019\u101c\u1031\u1038\u101b\u103e\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u1021\u1019\u1031\u101b\u102d\u1000 \u1010\u1031\u102c\u1004\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1019\u1031\u101b\u102d\u1000 \u1010\u1031\u102c\u1004\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Greenland_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a \u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1014\u1031\u102c\u1000\u103a \u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Hong_Kong\u00ae\u101f\u1031\u102c\u1004\u103a\u1000\u1031\u102c\u1004\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u101f\u1031\u102c\u1004\u103a\u1000\u1031\u102c\u1004\u103a \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Myanmar\u00ae\u1019\u103c\u1014\u103a\u1019\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00ae\u1015\u102b\u101b\u102c\u1002\u103d\u1031\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1015\u102b\u101b\u102c\u1002\u103d\u1031\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Ecuador\u00ae\u1021\u102e\u1000\u103d\u1031\u1012\u1031\u102b \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Dutch_Guiana\u00ae\u1012\u1010\u103a\u1001\u103b\u103a \u1002\u102e\u101a\u102c\u1014\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00ae\u1014\u101a\u1030\u1038\u1016\u1031\u102c\u1004\u103a\u101c\u1014\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1014\u101a\u1030\u1038\u1016\u1031\u102c\u1004\u103a\u101c\u1014\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Uruguay\u00ae\u1025\u101b\u102f\u1002\u103d\u1031\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1025\u101b\u102f\u1002\u103d\u1031\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Armenia\u00ae\u1021\u102c\u1019\u1031\u1014\u102e\u1038\u101a\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u102c\u1019\u1031\u1014\u102e\u1038\u101a\u102c\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Korea\u00ae\u1000\u102d\u102f\u1038\u101b\u102e\u1038\u101a\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1000\u102d\u102f\u1038\u101b\u102e\u1038\u101a\u102c\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9South_Georgia\u00ae\u1010\u1031\u102c\u1004\u103a\u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Central\u00ae\u1021\u101c\u101a\u103a\u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101c\u101a\u103a\u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9America_Pacific\u00ae\u1015\u1005\u102d\u1016\u102d\u1010\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1015\u1005\u102d\u1016\u102d\u1010\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Africa_Central\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u102c \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Argentina\u00ae\u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Europe_Central\u00ae\u1025\u101b\u1031\u102c\u1015 \u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1025\u101b\u1031\u102c\u1015 \u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Venezuela\u00ae\u1017\u1004\u103a\u1014\u102e\u1007\u103d\u1032\u101c\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9India\u00ae\u1021\u102d\u1014\u1039\u1012\u103c\u102d\u101a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00ae\u1016\u1031\u102c\u1004\u103a\u1000\u101c\u1014\u103a\u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1016\u1031\u102c\u1004\u103a\u1000\u101c\u1014\u103a\u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9China\u00ae\u1010\u101b\u102f\u1010\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1010\u101b\u102f\u1010\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Singapore\u00ae\u1005\u1004\u103a\u1039\u1000\u102c\u1015\u1030 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Indochina\u00ae\u1021\u1004\u103a\u1012\u102d\u102f\u1001\u103b\u102d\u102f\u1004\u103a\u1038\u1014\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00ae\u1021\u1005\u1039\u1005\u101b\u1031\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00aeIST (\u1021\u1005\u1039\u1005\u101b\u1031\u1038)\u00ae\u1021\u1005\u1039\u1005\u101b\u1031\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Colombia\u00ae\u1000\u102d\u102f\u101c\u1036\u1018\u102e\u101a\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1000\u102d\u102f\u101c\u1036\u1018\u102e\u101a\u102c \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Turkey\u00ae\u1010\u1030\u101b\u1000\u102e \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1010\u1030\u101b\u1000\u102e \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101b\u103e\u1031\u1037\u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Argentina_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a \u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00ae\u1018\u101b\u1030\u1014\u102d\u102f\u1004\u103a\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00ae\u1019\u1000\u102c\u1021\u102d\u102f \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1019\u1000\u102c\u1021\u102d\u102f \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Europe_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Afghanistan\u00ae\u1021\u102c\u1016\u1002\u1014\u103a\u1014\u1005\u1039\u1005\u1010\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00ae\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1002\u102e\u101a\u102c\u1014\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00ae\u1021\u1007\u102c\u1018\u102d\u102f\u1004\u103a\u1002\u103b\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1007\u102c\u1018\u102d\u102f\u1004\u103a\u1002\u103b\u1014\u103a \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00ae\u1021\u102d\u1014\u1039\u1012\u103c\u102d\u101a \u101e\u1019\u102f\u1012\u1039\u1012\u101b\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9East_Timor\u00ae\u1021\u101b\u103e\u1031\u1037\u1010\u102e\u1019\u1031\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00ae\u1000\u103b\u1030\u1038\u1018\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1000\u103b\u1030\u1038\u1018\u102c\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Brasilia\u00ae\u1018\u101b\u102c\u1007\u102e\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1018\u101b\u102c\u1007\u102e\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Bolivia\u00ae\u1018\u102d\u102f\u101c\u102e\u1038\u1018\u102e\u1038\u101a\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Chile\u00ae\u1001\u103b\u102e\u101c\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1001\u103b\u102e\u101c\u102e \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Japan\u00ae\u1002\u103b\u1015\u1014\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1002\u103b\u1015\u1014\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Uzbekistan\u00ae\u1025\u1018\u1000\u103a\u1000\u1005\u1039\u1005\u1010\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1025\u1018\u1000\u103a\u1000\u1005\u1039\u1005\u1010\u1014\u103a \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9British\u00ae\u00ae\u00ae\u1017\u103c\u102d\u1010\u102d\u101e\u103b\u103e \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Indonesia_Central\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Moscow\u00ae\u1019\u1031\u102c\u103a\u1005\u1000\u102d\u102f \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1019\u1031\u102c\u103a\u1005\u1000\u102d\u102f \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Peru\u00ae\u1015\u102e\u101b\u1030\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1015\u102e\u101b\u1030\u1038 \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9GMT\u00ae\u1002\u101b\u1004\u103a\u1038\u1014\u1005\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Arabian\u00ae\u1021\u102c\u101b\u1031\u1017\u103b \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u102c\u101b\u1031\u1017\u103b \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Atlantic\u00ae\u1021\u1010\u1039\u1011\u101c\u1014\u103a\u1010\u1005\u103a \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1010\u1039\u1011\u101c\u1014\u103a\u1010\u1005\u103a \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Australia_Western\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Bhutan\u00ae\u1018\u1030\u1010\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00ae\u101e\u102e\u101b\u102d\u101c\u1004\u103a\u1039\u1000\u102c \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00ae\u1021\u101c\u101a\u103a\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1005\u1036\u1010\u1031\u102c\u103a\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1021\u101c\u101a\u103a\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038 \u1014\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Philippines\u00ae\u1016\u102d\u101c\u1005\u103a\u1015\u102d\u102f\u1004\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1016\u102d\u101c\u1005\u103a\u1015\u102d\u102f\u1004\u103a \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Papua_New_Guinea\u00ae\u1015\u102b\u1015\u1030\u101b\u102c\u1014\u101a\u1030\u1038\u1002\u102e\u1014\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00ae\u1015\u102b\u1000\u1005\u1039\u1005\u1010\u1014\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u1015\u102b\u1000\u1005\u1039\u1005\u1010\u1014\u103a \u1014\u103d\u1031\u101b\u102c\u101e\u102e \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00a9Bangladesh\u00ae\u1018\u1004\u103a\u1039\u1002\u101c\u102c\u1038\u1012\u1031\u1037\u101b\u103e\u103a \u1021\u1001\u103b\u102d\u1014\u103a\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u1021\u101b\u103e\u1031\u1037\u1010\u102e\u1019\u1031\u102c
+territories.TJ=\u1010\u102c\u1002\u103b\u102e\u1000\u1005\u1039\u1005\u1010\u1014\u103a
+territories.TH=\u1011\u102d\u102f\u1004\u103a\u1038
+territories.TF=\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1015\u102d\u102f\u1004\u103a\u1014\u1000\u103a\u1019\u103b\u102c\u1038
+territories.TD=\u1001\u103b\u1012\u103a
+territories.GU=\u1002\u1030\u1021\u1019\u103a
+territories.GT=\u1002\u103d\u102c\u1010\u102e\u1019\u102c\u101c\u102c
+territories.GS=\u1010\u1031\u102c\u1004\u103a \u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u102c \u1014\u103e\u1004\u1037\u103a \u1010\u1031\u102c\u1004\u103a \u1006\u1004\u103a\u1038\u1012\u101d\u1005\u103a\u1002\u103b\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u1019\u103b\u102c\u1038
+territories.GR=\u1002\u101b\u102d
+territories.GQ=\u1021\u102e\u1000\u103d\u1031\u1010\u102c \u1002\u102e\u101b\u102c\u1014\u102c
+territories.SY=\u1006\u102e\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+territories.GN=\u1002\u102e\u101b\u102c\u1014\u102c
+territories.GM=\u1002\u1014\u103a\u1018\u102e\u101b\u102c
+territories.GL=\u1002\u101b\u1004\u103a\u1038\u101c\u1014\u103a\u1038
+territories.SV=\u1021\u101a\u103a\u101c\u103a\u1006\u102c\u1017\u1031\u1038\u1012\u102d\u102f\u1038
+territories.062=\u1010\u1031\u102c\u1004\u103a-\u1021\u101c\u101a\u103a \u1021\u102c\u101b\u103e
+territories.GI=\u1002\u103b\u102e\u1018\u101b\u1031\u102c\u103a\u101c\u103a\u1010\u102c
+territories.GH=\u1002\u102b\u1014\u102c
+territories.GF=\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1002\u102e\u101a\u102c\u1014\u102c
+territories.GE=\u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u102c
+territories.SO=\u1006\u102d\u102f\u1019\u102c\u101c\u102e\u101a\u102c
+territories.SN=\u1006\u102e\u1014\u102e\u1002\u1031\u102b
+territories.GB=\u101a\u1030\u1014\u102d\u102f\u1000\u103a\u1010\u1000\u103a\u1000\u1004\u103a\u1038\u1012\u1019\u103a\u1038
+territories.SK=\u1005\u101c\u102d\u102f\u1017\u1031\u1038\u1000\u102e\u1038\u101a\u102c\u1038
+territories.SI=\u1005\u101c\u102d\u102f\u1017\u1031\u1038\u1014\u102e\u1038\u101a\u102c\u1038
+territories.SG=\u1005\u1004\u103a\u1039\u1000\u102c\u1015\u1030
+territories.SE=\u1006\u103d\u102e\u1012\u1004\u103a
+territories.SD=\u1006\u1030\u1012\u1014\u103a
+territories.SB=\u1006\u1031\u102c\u103a\u101c\u1019\u103d\u1014\u103a\u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.SA=\u1006\u1031\u102c\u103a\u1012\u102e\u1021\u102c\u101b\u1031\u1038\u1017\u102e\u1038\u101a\u102c\u1038
+territories.FR=\u1015\u103c\u1004\u103a\u101e\u1005\u103a
+territories.FO=\u1016\u102c\u101b\u102d\u102f\u1038 \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u1019\u103b\u102c\u1038
+territories.RW=\u101b\u101d\u1014\u103a\u1012\u102b
+territories.FK=\u1016\u1031\u102c\u1000\u103a\u1000\u101c\u1014\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.053=\u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e \u1014\u103e\u1004\u1037\u103a \u1014\u101a\u1030\u1038\u1007\u102e\u101c\u1014\u103a
+territories.RU=\u101b\u102f\u101b\u103e
+territories.FJ=\u1016\u102e\u1002\u103b\u102e
+territories.FI=\u1016\u1004\u103a\u101c\u1014\u103a
+territories.RS=\u1006\u102c\u1038\u1018\u102e\u1038\u101a\u102c\u1038
+territories.RO=\u101b\u102d\u102f\u1019\u1031\u1038\u1014\u102e\u1038\u101a\u102c\u1038
+territories.ET=\u1021\u102e\u101e\u102e\u101a\u102d\u102f\u1038\u1015\u102e\u1038\u101a\u102c\u1038
+territories.ES=\u1005\u1015\u102d\u1014\u103a
+territories.QU=\u1025\u101b\u1031\u102c\u1015\u101e\u1019\u1002\u1039\u1002
+territories.EH=\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1006\u102c\u101f\u102c\u101b
+territories.EG=\u1021\u102e\u1002\u103b\u1005\u103a
+territories.EE=\u1021\u1000\u103a\u1005\u1010\u102d\u102f\u1038\u1014\u102e\u1038\u101a\u102c\u1038
+territories.EC=\u1021\u102e\u1000\u103d\u1031\u1012\u1031\u102b
+territories.DZ=\u1021\u101a\u103a\u101c\u103a\u1002\u103b\u102e\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+territories.QA=\u1000\u102c\u1010\u102c
+territories.039=\u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015
+territories.DO=\u1012\u102d\u102f\u1019\u102e\u1014\u102e\u1000\u1014\u103a
+territories.PY=\u1015\u102b\u101b\u102c\u1002\u103d\u1031\u1038
+territories.DM=\u1012\u102d\u102f\u1019\u102e\u1014\u102e\u1000\u102c
+territories.035=\u1021\u200c\u101b\u103e\u1031\u1037\u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u101b\u103e
+territories.034=\u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u101b\u103e
+territories.DK=\u1012\u102d\u1014\u103a\u1038\u1019\u1010\u103a
+territories.PT=\u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e
+territories.PS=\u1015\u102b\u101c\u1000\u103a\u1005\u1010\u102d\u102f\u1004\u103a\u1038 \u1015\u102d\u102f\u1004\u103a\u1014\u1000\u103a
+territories.030=\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u101b\u103e
+territories.PR=\u1015\u1031\u102b\u103a\u1010\u1030\u101b\u102e\u1000\u102d\u102f
+territories.DE=\u1002\u103b\u102c\u1019\u100f\u102e
+territories.PL=\u1015\u102d\u102f\u101c\u1014\u103a
+territories.PK=\u1015\u102b\u1000\u1005\u1039\u1005\u1010\u1014\u103a
+territories.PH=\u1016\u102d\u101c\u1005\u103a\u1015\u102d\u102f\u1004\u103a
+territories.PG=\u1015\u102b\u1015\u1030\u101b\u102c\u1014\u101a\u1030\u1038\u1002\u102e\u1014\u102e
+territories.PF=\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1015\u1031\u102b\u103a\u101c\u102e\u1014\u1031\u1038\u101b\u103e\u102c\u1038
+territories.CZ=\u1001\u103b\u1000\u103a \u1015\u103c\u100a\u103a\u1011\u1031\u102c\u1004\u103a\u1005\u102f
+territories.PE=\u1015\u102e\u101b\u1030\u1038
+territories.CY=\u1006\u102d\u102f\u1000\u103a\u1015\u101b\u1000\u103a\u1005\u103a
+territories.CX=\u1001\u101b\u1005\u103a\u1005\u1019\u1010\u103a \u1000\u103b\u103d\u1014\u103a\u1038
+territories.PA=\u1015\u1014\u102c\u1038\u1019\u102c\u1038
+territories.CU=\u1000\u103b\u1030\u1038\u1018\u102c\u1038
+territories.CR=\u1000\u1031\u102c\u1037\u1005\u103a\u1010\u102c\u101b\u102e\u1000\u102c
+territories.029=\u1000\u102c\u101b\u102e\u1018\u102e\u101a\u1036
+territories.CO=\u1000\u102d\u102f\u101c\u1036\u1018\u102e\u101a\u102c
+territories.CN=\u1010\u101b\u102f\u1010\u103a
+territories.CM=\u1000\u1004\u103a\u1019\u101b\u103d\u1014\u103a\u1038
+territories.CL=\u1001\u103b\u102e\u101c\u102e
+territories.CK=\u1000\u103d\u1010\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.021=\u1019\u103c\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000
+territories.CI=\u1021\u102d\u102f\u1004\u103a\u1017\u101b\u102e\u1000\u102d\u102f\u1005\u1037\u103a
+territories.CH=\u1006\u103d\u1005\u103a\u1007\u101c\u1014\u103a
+territories.CF=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000 \u1015\u103c\u100a\u103a\u1011\u1031\u102c\u1004\u103a\u1005\u102f
+territories.CC=\u1000\u102d\u102f\u1000\u102d\u102f\u1038 \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.OM=\u1021\u102d\u102f\u1019\u1014\u103a
+territories.CA=\u1000\u1014\u1031\u1012\u102b
+territories.419=\u101c\u1000\u103a\u1010\u1004\u103a \u1021\u1019\u1031\u101b\u102d\u1000 \u1014\u103e\u1004\u1037\u103a \u1000\u102c\u101b\u102e\u1018\u102e\u101a\u1014\u103a
+territories.BZ=\u1018\u1031\u101c\u102e\u1007\u103a
+territories.BY=\u1018\u102e\u101c\u102c\u101b\u102f\u1005\u103a
+territories.BW=\u1018\u1031\u102c\u1037\u1005\u103a\u101d\u102b\u1014\u102c
+territories.BT=\u1018\u1030\u1010\u1014\u103a
+territories.BS=\u1018\u101f\u102c\u1038\u1019\u102c\u1038
+territories.BR=\u1018\u101b\u102c\u1007\u102e\u1038
+territories.019=\u1021\u1019\u1031\u101b\u102d\u1000\u1019\u103b\u102c\u1038
+territories.018=\u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000
+territories.NZ=\u1014\u101a\u1030\u1038\u1007\u102e\u101c\u1014\u103a
+territories.017=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000
+territories.BO=\u1018\u102d\u102f\u101c\u102e\u1038\u1018\u102e\u1038\u101a\u102c\u1038
+territories.BN=\u1018\u101b\u1030\u1014\u102d\u102f\u1004\u103a\u1038
+territories.015=\u1019\u103c\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000
+territories.BM=\u1018\u102c\u1019\u1030\u1012\u102b
+territories.014=\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102c\u1016\u101b\u102d\u1000
+territories.013=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000
+territories.011=\u1021\u1014\u1031\u102c\u1000\u103a \u1021\u102c\u1016\u101b\u102d\u1000
+territories.172=\u101c\u103d\u1010\u103a\u101c\u1015\u103a\u101e\u1031\u102c \u1015\u103c\u100a\u103a\u1011\u1031\u102c\u1004\u103a\u1005\u102f\u1019\u103b\u102c\u1038\u104f \u1013\u1014\u101e\u101f\u102c\u101a\u1021\u1016\u103d\u1032\u1037
+territories.BH=\u1018\u102c\u101b\u102d\u1014\u103a\u1038
+territories.BG=\u1018\u1030\u1002\u1031\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+territories.NP=\u1014\u102e\u1015\u1031\u102b
+territories.BE=\u1018\u101a\u103a\u101c\u103a\u1002\u103b\u102e\u101a\u1019\u103a
+territories.ZZ=\u1019\u101e\u102d \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1019\u101b\u103e\u102d \u101e\u1031\u102c \u1014\u1031\u101b\u102c
+territories.NO=\u1014\u1031\u102c\u103a\u101d\u1031
+territories.BD=\u1018\u1004\u103a\u1039\u1002\u101c\u102c\u1038\u1012\u1031\u1037\u101b\u103e\u103a
+territories.ZW=\u1007\u1004\u103a\u1018\u102c\u1018\u103d\u1031
+territories.NL=\u1014\u101a\u103a\u101e\u102c\u101c\u1014\u103a
+territories.BA=\u1018\u1031\u102c\u1037\u1005\u1014\u102e\u1038\u101a\u102c\u1038 \u1014\u103e\u1004\u1037\u103a \u101f\u102c\u1007\u102e\u1002\u102d\u102f\u1018\u102e\u1038\u1014\u102c\u1038
+territories.NI=\u1014\u102e\u1000\u102c\u101b\u102c\u1002\u103d\u102c
+territories.NG=\u1014\u102d\u102f\u1004\u103a\u1002\u103b\u102e\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+territories.AZ=\u1021\u1007\u102c\u1018\u102d\u102f\u1004\u103a\u1002\u103b\u1014\u103a
+territories.NE=\u1014\u102d\u102f\u1004\u103a\u1002\u103b\u102c
+territories.NC=\u1014\u101a\u1030\u1038 \u1000\u101a\u103a\u101c\u102e\u1012\u102d\u102f\u1014\u102e\u1038\u101a\u102c\u1038
+territories.ZM=\u1007\u1019\u103a\u1018\u102e\u101a\u102c
+territories.NA=\u1014\u1019\u103a\u1019\u102e\u1038\u1018\u102e\u1038\u101a\u102c\u1038
+territories.AU=\u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e\u102c\u1038
+territories.AT=\u1029\u1005\u1010\u103c\u102e\u1038\u101a\u102c\u1038
+territories.AS=\u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1005\u1019\u102d\u102f\u1021
+territories.AR=\u1021\u102c\u1002\u103b\u1004\u103a\u1010\u102e\u1038\u1014\u102c\u1038
+territories.AQ=\u1021\u1014\u1039\u1010\u102c\u1010\u102d\u1000
+territories.009=\u101e\u1019\u102f\u1012\u1039\u1012\u101b\u102c\u1012\u1031\u101e
+territories.MZ=\u1019\u102d\u102f\u1007\u1014\u103a\u1018\u1005\u103a
+territories.AO=\u1021\u1004\u103a\u1002\u102d\u102f\u101c\u102c
+territories.MY=\u1019\u101c\u1031\u1038\u101b\u103e\u102c\u1038
+territories.MX=\u1019\u1000\u1039\u1000\u1006\u102e\u1000\u102d\u102f
+territories.AM=\u1021\u102c\u1019\u1031\u1014\u102e\u1038\u101a\u102c\u1038
+territories.005=\u1010\u1031\u102c\u1004\u103a \u1021\u1019\u1031\u101b\u102d\u1000
+territories.MW=\u1019\u102c\u101c\u102c\u101d\u102e
+territories.MV=\u1019\u1031\u102c\u103a\u101c\u1012\u102d\u102f\u1000\u103a
+territories.003=\u1019\u103c\u1031\u102c\u1000\u103a \u1021\u1019\u1031\u101b\u102d\u1000
+territories.ZA=\u1010\u1031\u102c\u1004\u103a\u1021\u102c\u1016\u101b\u102d\u1000
+territories.002=\u1021\u102c\u1016\u101b\u102d\u1000
+territories.AI=\u1021\u1014\u103a\u1000\u103d\u102e\u101c\u102c
+territories.001=\u1000\u1019\u1039\u1018\u102c
+territories.AF=\u1021\u102c\u1016\u1002\u1014\u103a\u1014\u1005\u1039\u1005\u1010\u1014\u103a
+territories.AE=\u101a\u1030\u1021\u1031\u1021\u102e\u1038
+territories.MO=\u1019\u1000\u102c\u1021\u102d\u102f
+territories.MN=\u1019\u103d\u1014\u103a\u1002\u102d\u102f\u1038\u101c\u102e\u1038\u101a\u102c\u1038
+territories.MM=\u1019\u103c\u1014\u103a\u1019\u102c
+territories.ML=\u1019\u102c\u101c\u102e
+territories.MK=\u1019\u102c\u1005\u102e\u1012\u102d\u102f\u1038\u1014\u102e\u1038\u101a\u102c\u1038
+territories.MH=\u1019\u102c\u101b\u103e\u101a\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.MG=\u1019\u1012\u1002\u1010\u103a\u1005\u1000\u102c
+territories.MF=\u1005\u102d\u1014\u1037\u103a\u1019\u102c\u1010\u1004\u103a
+territories.ME=\u1019\u103d\u1014\u103a\u1010\u102e\u1014\u102d\u1002\u101b\u102d\u102f\u1038
+territories.MC=\u1019\u102d\u102f\u1014\u1000\u102d\u102f
+territories.MA=\u1019\u1031\u102c\u103a\u101b\u102d\u102f\u1000\u102d\u102f
+territories.YE=\u101a\u102e\u1019\u1004\u103a
+territories.LV=\u101c\u1010\u103a\u1017\u102e\u1038\u101a\u102c\u1038
+territories.155=\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015
+territories.LU=\u101c\u1030\u1007\u1004\u103a\u1018\u1010\u103a
+territories.154=\u1019\u103c\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015
+territories.LT=\u101c\u1005\u103a\u101e\u1030\u101a\u1031\u1038\u1014\u102e\u1038\u101a\u102c\u1038
+territories.LR=\u101c\u102d\u102f\u1004\u103a\u1018\u1031\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+territories.151=\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1025\u101b\u1031\u102c\u1015
+territories.150=\u1025\u101b\u1031\u102c\u1015
+territories.LK=\u101e\u102e\u101b\u102d\u101c\u1004\u103a\u1039\u1000\u102c
+territories.LB=\u101c\u1000\u103a\u1018\u1014\u103d\u1014\u103a
+territories.LA=\u101c\u102c\u1021\u102d\u102f
+territories.KZ=\u1000\u102c\u1007\u1000\u103a\u1005\u1010\u1014\u103a
+territories.KY=\u1000\u1031\u1019\u1014\u103a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.KW=\u1000\u1030\u101d\u102d\u1010\u103a
+territories.145=\u1021\u1014\u1031\u102c\u1000\u103a \u1021\u102c\u101b\u103e
+territories.143=\u1021\u101c\u101a\u103a \u1021\u102c\u101b\u103e
+territories.142=\u1021\u102c\u101b\u103e
+territories.KR=\u1010\u1031\u102c\u1004\u103a\u1000\u102d\u102f\u101b\u102e\u1038\u101a\u102c\u1038
+territories.KP=\u1019\u103c\u1031\u102c\u1000\u103a\u1000\u102d\u102f\u101b\u102e\u1038\u101a\u102c\u1038
+territories.KH=\u1000\u1019\u1039\u1018\u1031\u102c\u1012\u102e\u1038\u101a\u102c\u1038
+territories.KG=\u1001\u101a\u103a\u1000\u1005\u1039\u1005\u1010\u1014\u103a
+territories.KE=\u1000\u1004\u103a\u100a\u102c
+territories.JP=\u1002\u103b\u1015\u1014\u103a
+territories.JO=\u1002\u103b\u1031\u102c\u103a\u1012\u1014\u103a
+territories.JM=\u1002\u103b\u1019\u1031\u1014\u102e\u1000\u102c
+territories.JE=\u1002\u103b\u102c\u1005\u102e
+territories.VN=\u1017\u102e\u101a\u1000\u103a\u1014\u1019\u103a
+territories.VI=\u101a\u1030\u1021\u1000\u103a\u1005\u103a \u1017\u102c\u1002\u103b\u1004\u103a\u1038 \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.VG=\u1017\u103c\u102d\u1010\u102d\u101e\u103b\u103e \u1017\u102c\u1002\u103b\u1004\u103a\u1038 \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f
+territories.VE=\u1017\u1004\u103a\u1014\u102e\u1007\u103d\u1032\u101c\u102c\u1038
+territories.VA=\u1017\u102c\u1010\u102e\u1000\u1014\u103a
+territories.IT=\u1021\u102e\u1010\u101c\u102e
+territories.IS=\u1021\u102d\u102f\u1000\u103a\u1005\u101c\u1014\u103a
+territories.IR=\u1021\u102e\u101b\u1014\u103a
+territories.IQ=\u1021\u102e\u101b\u1010\u103a
+territories.UZ=\u1025\u1018\u1000\u103a\u1000\u1005\u1039\u1005\u1010\u1014\u103a
+territories.IO=\u1017\u103c\u102d\u1010\u102d\u101e\u103b\u103e \u1021\u102d\u1014\u1039\u1012\u103c\u102d\u101a \u101e\u1019\u102f\u1012\u1039\u1012\u101b\u102c \u1015\u102d\u102f\u1004\u103a\u1014\u1000\u103a
+territories.UY=\u1025\u101b\u102f\u1002\u103d\u1031\u1038
+territories.IN=\u1021\u102d\u1014\u1039\u1012\u103c\u102d\u101a
+territories.IL=\u1021\u1005\u1039\u1005\u101b\u1031\u1038
+territories.US=\u101a\u1030\u1014\u102d\u102f\u1000\u103a\u1010\u1000\u103a\u1005\u1010\u102d\u1010\u103a
+territories.IE=\u1021\u102d\u102f\u1004\u103a\u101a\u102c\u101c\u1014\u103a
+territories.ID=\u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038
+territories.UM=\u101a\u1030\u1014\u102d\u102f\u1000\u103a\u1010\u1000\u103a\u1005\u1010\u102d\u1010\u103a \u1021\u1015\u103c\u1004\u103a\u1011\u103d\u1000\u103a \u1014\u1031\u101e\u100a\u1037\u103a \u101e\u1031\u1038\u1004\u101a\u103a\u101e\u1031\u102c\u1000\u103b\u103d\u1014\u103a\u1038\u1019\u103b\u102c\u1038
+territories.UG=\u101a\u1030\u1002\u1014\u1039\u1012\u102c
+territories.UA=\u101a\u1030\u1000\u101b\u102d\u1014\u103a\u1038
+territories.HU=\u101f\u1014\u103a\u1002\u1031\u101b\u102e
+territories.HT=\u101f\u1031\u1010\u102e
+territories.HR=\u1001\u101b\u102d\u102f\u1021\u1031\u1038\u101b\u103e\u102c\u1038
+territories.TZ=\u1010\u1014\u103a\u1007\u1014\u103a\u1014\u102e\u1038\u101a\u102c\u1038
+territories.HN=\u101f\u103d\u1014\u103a\u1012\u1030\u1038\u101b\u1015\u103a\u1005\u103a
+territories.TW=\u1011\u102d\u102f\u1004\u103a\u101d\u1019\u103a
+territories.HK=\u101f\u1031\u102c\u1004\u103a\u1000\u1031\u102c\u1004\u103a
+territories.TR=\u1010\u1030\u101b\u1000\u102e
+territories.TO=\u1010\u103d\u1014\u103a\u1002\u102b
+territories.TN=\u1010\u1030\u1014\u102e\u1038\u101b\u103e\u102c\u1038
+languages.es=\u1005\u1015\u102d\u1014\u103a
+languages.mul=\u1019\u103b\u102c\u1038\u1005\u103d\u102c\u200b\u101e\u1031\u102c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038\u1019\u103b\u102c\u1038
+languages.ku=\u1000\u1012\u103a
+languages.en=\u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.el=\u1002\u101b\u102d
+languages.phi=\u1016\u102d\u101c\u1005\u103a\u1015\u102d\u102f\u1004\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.ko=\u1000\u102d\u102f\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+languages.kn=\u1000\u1014\u103a\u1014\u102c\u1012\u102b
+languages.zxx=\u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038 \u1014\u103e\u1004\u1037\u103a \u1015\u1010\u103a\u101e\u1000\u103a \u101e\u1031\u102c\u1021\u101b\u102c\u1019\u101b\u103e\u102d
+languages.tai=\u1010\u102d\u102f\u1004\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.km=\u1001\u1019\u102c
+languages.sgn=\u1021\u1001\u103b\u1000\u103a\u1015\u103c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.sai=\u1010\u1031\u102c\u1004\u103a \u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.kg=\u1000\u103d\u1014\u103a\u1002\u102d\u102f
+languages.ka=\u1002\u103b\u1031\u102c\u103a\u1002\u103b\u102e\u101a\u1014\u103a
+languages.cpp=\u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e \u1021\u1001\u103c\u1031\u1001\u1036 \u1021\u1014\u1031\u102c\u1000\u103a\u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u101e\u102c\u1038 \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1017\u1014\u103a\u1038\u1005\u1000\u102c\u1038
+languages.dz=\u200b\u1007\u1031\u102c\u1004\u103a\u1038\u1001\u102b
+languages.mno=\u1019\u1014\u102d\u102f\u1018\u102d\u102f \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.zh_Hans=\u101b\u102d\u102f\u1038\u101b\u103e\u1004\u103a\u1038\u101e\u1031\u102c \u1010\u101b\u102f\u1010\u103a
+languages.smi=\u1006\u102c\u1019\u102d \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.zh_Hant=\u101b\u103e\u1031\u1038\u101b\u102d\u102f\u1038\u1005\u1009\u103a\u101c\u102c \u1010\u101b\u102f\u1010\u103a
+languages.sga=\u1021\u102d\u102f\u1004\u103a\u1038\u101b\u1005\u103a \u101f\u1031\u102c\u1004\u103a\u1038
+languages.mni=\u1019\u100f\u102d\u1015\u1030\u101b
+languages.jv=\u1002\u103b\u102c\u1017\u102c\u1038\u1014\u102e\u1038\u1005\u103a
+languages.cpf=\u1015\u103c\u1004\u103a\u101e\u1005\u103a \u1021\u1001\u103c\u1031\u1001\u1036 \u1021\u1014\u1031\u102c\u1000\u103a\u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u101e\u102c\u1038 \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1017\u1014\u103a\u1038\u1005\u1000\u102c\u1038
+languages.cpe=\u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a \u1021\u1001\u103c\u1031\u1001\u1036 \u1021\u1014\u1031\u102c\u1000\u103a\u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u101e\u102c\u1038 \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1017\u1014\u103a\u1038\u1005\u1000\u102c\u1038
+languages.sma=\u1010\u1031\u102c\u1004\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1006\u102c\u1019\u102d
+languages.fil=\u1016\u102d\u101c\u1005\u103a\u1015\u102e\u1014\u102d\u102f
+languages.mnc=\u1019\u1014\u103a\u1001\u103b\u1030\u1038
+languages.pt=\u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e
+languages.paa=\u1015\u102b\u1015\u1030\u101b\u1014\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.de=\u1002\u103b\u102c\u1019\u1014\u103a
+languages.kha=\u1001\u102b\u1005\u102e
+languages.pl=\u1015\u102d\u102f\u101c\u1014\u103a
+languages.da=\u1012\u102d\u1014\u103a\u1038\u1019\u1010\u103a
+languages.pi=\u1015\u102b\u1020\u102d
+languages.ja=\u1002\u103b\u1015\u1014\u103a
+languages.vi=\u1017\u102e\u101a\u1000\u103a\u1014\u1019\u103a
+languages.kar=\u1000\u101b\u1004\u103a
+languages.dum=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1012\u1010\u103a\u1001\u103b\u103a
+languages.cy=\u101d\u1031\u101c
+languages.pa=\u1015\u1014\u103a\u1002\u103b\u102c\u1015\u102e
+languages.ine=\u1021\u1004\u103a\u1012\u102d\u102f \u1025\u101b\u1031\u102c\u1015 \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.cs=\u1001\u103b\u1000\u103a
+languages.inc=\u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1021\u1001\u103c\u1031\u1001\u1036 \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.cr=\u1001\u101b\u102e\u1038
+languages.sla=\u1005\u101c\u102d\u102f\u1017\u1005\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.mga=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u102d\u102f\u1004\u103a\u1038\u101b\u1005\u103a
+languages.it=\u1021\u102e\u1010\u101c\u102e
+languages.haw=\u101f\u102c\u101d\u1031\u101b\u1014\u103a
+languages.kac=\u1000\u1001\u103b\u1004\u103a
+languages.enm=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.ce=\u1001\u103b\u1031\u1001\u103b\u1004\u103a\u1038
+languages.ii=\u1005\u102e\u1001\u103b\u103d\u1019\u103a \u101b\u102e
+languages.chr=\u1001\u103b\u102c\u101b\u102d\u102f\u1000\u102e
+languages.id=\u1021\u1004\u103a\u1012\u102d\u102f\u1014\u102e\u1038\u101b\u103e\u102c\u1038
+languages.es_419=\u101c\u1000\u103a\u1010\u1004\u103a\u1021\u1019\u1031\u101b\u102d\u1000 \u1005\u1015\u102d\u1014\u103a
+languages.uk=\u101a\u1030\u1000\u101b\u102d\u1014\u103a\u1038
+languages.gsw=\u1006\u103d\u1005\u103a \u1002\u103b\u102c\u1019\u1014\u103a
+languages.egy=\u101b\u103e\u1031\u1038\u101f\u1031\u102c\u1004\u103a\u1038 \u1021\u102e\u1002\u103b\u1005\u103a
+languages.bs=\u1018\u1031\u102c\u1037\u1005\u103a\u1014\u102e\u1038\u101a\u102c\u1038
+languages.peo=\u1015\u102b\u101b\u103e\u1014\u103a \u1021\u101f\u1031\u102c\u1004\u103a\u1038
+languages.hu=\u101f\u1014\u103a\u1002\u1031\u101b\u102e
+languages.bo=\u1010\u102d\u1018\u1000\u103a
+languages.bn=\u1018\u1004\u103a\u1039\u1002\u102b\u101c\u102e
+languages.fr_CH=\u1006\u103d\u1005\u103a \u1015\u103c\u1004\u103a\u101e\u1005\u103a
+languages.hr=\u1001\u101b\u102d\u102f\u1021\u1031\u101b\u103e\u1014\u103a
+languages.gmh=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u103c\u1004\u1037\u103a\u1002\u103b\u102c\u1019\u1014\u103a
+languages.cau=\u1000\u1031\u102c\u1000\u103a\u1000\u1031\u1038\u101b\u103e\u1015\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.dak=\u1012\u102b\u1000\u102d\u102f\u1010\u102c
+languages.bg=\u1018\u1030\u1002\u1031\u1038\u101b\u102e\u1038\u101a\u102c\u1038
+languages.fr_CA=\u1000\u1014\u1031\u1012\u102b \u1015\u103c\u1004\u103a\u101e\u1005\u103a
+languages.de_CH=\u1006\u103d\u1005\u103a \u1021\u1019\u103c\u1004\u1037\u103a \u1002\u103b\u102c\u1019\u1014\u103a
+languages.ang=\u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a\u1005\u102c\u101f\u1031\u102c\u1004\u103a\u1038
+languages.no=\u1014\u1031\u102c\u103a\u101d\u1031\u1038
+languages.be=\u1018\u102e\u101c\u102c\u101b\u102f
+languages.bat=\u1018\u1031\u102c\u103a\u101c\u1010\u1005\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.hi=\u101f\u102d\u1014\u1039\u1012\u102e
+languages.bas=\u1018\u102c\u1006\u102c
+languages.nl=\u1012\u1010\u103a\u1001\u103b\u103a
+languages.zu=\u1007\u1030\u101c\u1030
+languages.he=\u101f\u102e\u1038\u1018\u101b\u1030\u1038
+languages.cai=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.ban=\u1018\u102c\u101c\u102e
+languages.ne=\u1014\u102e\u1015\u1031\u102b\u101c\u103a
+languages.th=\u1011\u102d\u102f\u1004\u103a\u1038
+languages.en_US=\u1021\u1019\u1031\u101b\u102d\u1000\u1014\u103a \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.en_CA=\u1000\u1014\u1031\u1012\u102b \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.zh=\u1010\u101b\u102f\u1010\u103a
+languages.jrb=\u1002\u103b\u1030\u1012\u102e\u101a\u102d\u102f-\u1021\u102c\u101b\u1031\u1017\u103b
+languages.ar=\u1021\u102c\u101b\u1017\u102e
+languages.ta=\u1010\u1019\u102e\u1038\u101c\u103a
+languages.mkh=\u1019\u103d\u1014\u103a-\u1001\u1019\u102c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.gu=\u1002\u1030\u1002\u103b\u102c\u101b\u101e\u102e
+languages.my=\u1017\u1019\u102c
+languages.ira=\u1021\u102e\u101b\u1014\u103a \u1021\u1001\u103c\u1031\u1001\u1036 \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.frs=\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038 \u1016\u101b\u102e\u1005\u102e\u101b\u1014\u103a
+languages.frr=\u1019\u103c\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1016\u101b\u102e\u1005\u102e\u101b\u1014\u103a
+languages.ms=\u1019\u101c\u1031\u1038
+languages.nds=\u1021\u1014\u102d\u1019\u1037\u103a \u1002\u103b\u102c\u1019\u1014\u103a
+languages.mr=\u1019\u102c\u101b\u101e\u102e
+languages.fro=\u1015\u103c\u1004\u103a\u101e\u1005\u103a\u101f\u1031\u102c\u1004\u103a\u1038
+languages.sv=\u1006\u103d\u102e\u1012\u1004\u103a
+languages.su=\u1006\u1030\u1012\u1014\u103a
+languages.frm=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1015\u103c\u1004\u103a\u101e\u1005\u103a
+languages.mn=\u1019\u103d\u1014\u103a\u1002\u102d\u102f\u101c\u102e\u1038\u101a\u1014\u103a\u1038
+languages.sr=\u1006\u102c\u1038\u1017\u102e\u1038\u101a\u1014\u103a\u1038
+languages.sit=\u1010\u101b\u102f\u1010\u103a-\u1010\u102d\u1018\u1000\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.sco=\u1005\u1000\u1031\u102c\u1037
+languages.sq=\u1021\u101a\u103a\u101c\u103a\u1018\u1031\u1038\u1014\u102e\u1038\u101a\u1014\u103a\u1038
+languages.ml=\u1019\u101c\u1031\u1038\u101b\u102c\u101c\u1019\u103a
+languages.grc=\u101b\u103e\u1031\u1038\u101f\u1031\u102c\u1004\u103a\u1038 \u1002\u101b\u102d
+languages.so=\u1006\u102d\u102f\u1019\u102c\u101c\u102e
+languages.sl=\u1005\u101c\u102d\u102f\u1017\u1031\u1038\u1014\u102e\u1038\u101a\u1019\u103a\u1038
+languages.sk=\u1005\u101c\u102d\u102f\u1017\u1000\u103a
+languages.ga=\u1021\u102d\u102f\u1004\u103a\u1038\u101b\u1005\u103a
+languages.tup=\u1010\u1030\u1015\u102e \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.si=\u1006\u1004\u103a\u101f\u102c\u101c
+languages.pt_BR=\u1018\u101b\u102c\u1007\u102e\u1038 \u1015\u1031\u102b\u103a\u1010\u1030\u1002\u102e
+languages.crp=\u1021\u1014\u1031\u102c\u1000\u103a\u1021\u102d\u1014\u1039\u1012\u102d\u101a \u1000\u103b\u103d\u1014\u103a\u1038\u1005\u102f\u101e\u102c\u1038 \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1017\u1014\u103a\u1038\u1005\u1000\u102c\u1038
+languages.gem=\u1002\u103b\u102c\u1019\u1014\u103a \u1021\u1001\u103c\u1031\u1001\u1036\u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.sd=\u1005\u1004\u103a\u1012\u102e
+languages.fy=\u1021\u1014\u1031\u102c\u1000\u103a\u1015\u102d\u102f\u1004\u103a\u1038 \u1016\u101b\u102e\u1005\u102e\u101b\u1014\u103a
+languages.de_AT=\u1029\u1005\u1010\u103c\u102e\u1038\u101a \u1002\u103b\u102c\u1019\u1014\u103a
+languages.sa=\u101e\u1004\u103a\u1039\u101e\u1000\u101b\u102d\u102f\u1000\u103a
+languages.art=\u1021\u101a\u1031\u102c\u1004\u103a\u1006\u1031\u102c\u1004\u103a \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.fr=\u1015\u103c\u1004\u103a\u101e\u1005\u103a
+languages.en_AU=\u1029\u1005\u1010\u103c\u1031\u1038\u101c\u103b\u103e \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.root=\u1019\u1030\u101c\u101b\u1004\u103a\u1038\u1019\u103c\u1005\u103a
+languages.ru=\u101b\u102f\u101b\u103e
+languages.lo=\u101c\u102c\u1021\u102d\u102f
+languages.fj=\u1016\u102e\u1002\u103b\u102e
+languages.jpr=\u1002\u103b\u1030\u1012\u102e\u101a\u102d\u102f-\u1015\u102b\u101b\u103e\u1014\u103a
+languages.fi=\u1016\u1004\u103a\u1014\u1005\u103a\u101b\u103e\u103a
+languages.del=\u1012\u102e\u101c\u102c\u101d\u1032
+languages.ro=\u101b\u102d\u102f\u1019\u1031\u1014\u102e\u101a\u102c\u1038
+languages.shn=\u101b\u103e\u1019\u103a\u1038
+languages.mis=\u1021\u1019\u103b\u102d\u102f\u1038\u1019\u103b\u102d\u102f\u1038\u101e\u1031\u102c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.fa=\u1015\u102b\u101b\u103e\u1014\u103a
+languages.und=\u1019\u101e\u102d \u101e\u102d\u102f\u1037\u1019\u101f\u102f\u1010\u103a \u1019\u101b\u103e\u102d \u101e\u1031\u102c \u1018\u102c\u101e\u102c\u1005\u1000\u102c\u1038
+languages.la=\u101c\u1000\u103a\u1010\u1004\u103a
+languages.en_GB=\u1017\u103c\u102d\u1010\u102d\u101e\u103b\u103e \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+languages.et=\u1021\u1000\u103a\u1005\u103a\u1010\u102d\u102f\u1038\u1014\u102e\u1038\u101b\u1014\u103a\u1038
+variants.REVISED=\u1015\u103c\u1014\u103a\u101c\u100a\u103a\u1005\u102e\u1005\u1005\u103a\u1011\u102c\u1038\u101e\u1031\u102c \u101b\u1031\u1038\u1011\u102f\u1036\u1038
+variants.AREVELA=\u1021\u101b\u103e\u1031\u1037\u1015\u102d\u102f\u1004\u103a\u1038\u1021\u102c\u1019\u1031\u1038\u1014\u102e\u1038\u101a\u1014\u103a\u1038
+variants.POSIX=\u1000\u103d\u1014\u103a\u1015\u103b\u1030\u1010\u102c
+variants.FONIPA=IPA \u1021\u101e\u1036\u1011\u103d\u1000\u103a
+variants.1694ACAD=\u1041\u1046\u1049\u1044ACAD
+variants.1996=\u1041\u1049\u1049\u1046 \u1002\u103b\u102c\u1019\u1014\u103a \u101b\u1031\u1038\u1011\u102f\u1036\u1038
+variants.SCOTLAND=\u1005\u1000\u1031\u102c\u1037 \u1005\u1036 \u1021\u1004\u103a\u1039\u1002\u101c\u102d\u1015\u103a
+variants.1901=\u101b\u103e\u1031\u1038\u101b\u102d\u102f\u1038\u1005\u1009\u103a\u101c\u102c \u1002\u103b\u102c\u1019\u1014\u103a \u101b\u1031\u1038\u1011\u102f\u1036\u1038
+variants.BAKU1926=\u1015\u1031\u102b\u1004\u103a\u1038\u1005\u1015\u103a\u1011\u102c\u1038\u101e\u1031\u102c \u1010\u1030\u101b\u1000\u102e \u101c\u1000\u103a\u1010\u1004\u103a\u1005\u1000\u102c\u1038\u101c\u102f\u1036\u1038
+variants.FONUPA=UPA \u1021\u101e\u1036\u1011\u103d\u1000\u103a
+variants.1606NICT=\u1021\u101c\u101a\u103a\u1015\u102d\u102f\u1004\u103a\u1038\u1014\u1031\u102c\u1000\u103a\u1000\u103b\u101e\u1031\u102c\u1015\u103c\u1004\u103a\u101e\u1005\u103a\u1019\u103e \u1041\u1046\u1040\u1046
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nb.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nb.properties
index 0ce22cd..e0a6b14 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nb.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nb.properties
@@ -5,383 +5,322 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=\u00a0
-percentFormat=#,##0 %
-currenciesDisplayName.YDD=Jemenittiske dinarer
-currenciesDisplayName.TWD=Taiwanske nye dollar
-currenciesDisplayName.KES=Kenyanske shilling
-currenciesDisplayName.BYB=Hviterussiske nye rubler (1994-1999)
-currenciesDisplayName.LKR=Srilankiske rupier
-currenciesDisplayName.RWF=Rwandiske franc
-currenciesDisplayName.TJS=Tadsjikiske somoni
-currenciesDisplayName.SDP=Sudanesiske pund
-currenciesDisplayName.TJR=Tadsjikiske rubler
-currenciesDisplayName.ERN=Eritreiske nakfa
-currenciesDisplayName.AFN=Afghani
-currenciesDisplayName.GRD=Greske drakmer
-currenciesDisplayName.IEP=Irske pund
-currenciesDisplayName.ARS=Argentinske pesos
-currenciesDisplayName.SDD=Sudanesiske dinarer
-currenciesDisplayName.ARP=Argentinske pesos (1983-1985)
-currenciesDisplayName.GEL=Georgiske lari
-currenciesDisplayName.AFA=Afghani (1927-2002)
-currenciesDisplayName.GEK=Georgiske kupon larit
-currenciesDisplayName.CRC=Costaricanske colon
-currenciesDisplayName.FKP=Falklands\u00f8yene-pund
-currenciesDisplayName.EEK=Estiske kroon
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.YDD=jemenittiske dinarer
+currenciesDisplayName.KES=kenyanske shilling
+currenciesDisplayName.TWD=taiwanske nye dollar
+currenciesDisplayName.LKR=srilankiske rupier
+currenciesDisplayName.BYB=hviterussiske nye rubler (1994-1999)
+currenciesDisplayName.TJS=tadsjikiske somoni
+currenciesDisplayName.RWF=rwandiske franc
+currenciesDisplayName.ERN=eritreiske nakfa
+currenciesDisplayName.TJR=tadsjikiske rubler
+currenciesDisplayName.SDP=sudanesiske pund
+currenciesDisplayName.GRD=greske drakmer
+currenciesDisplayName.AFN=afghani
+currenciesDisplayName.IEP=irske pund
+currenciesDisplayName.ARS=argentinske pesos
+currenciesDisplayName.SDG=sudanske pund
+currenciesDisplayName.ARP=argentinske pesos (1983-1985)
+currenciesDisplayName.SDD=sudanesiske dinarer
+currenciesDisplayName.GEL=georgiske lari
+currenciesDisplayName.GEK=georgiske kupon larit
+currenciesDisplayName.AFA=afghani (1927-2002)
+currenciesDisplayName.CRC=costaricanske colon
+currenciesDisplayName.FKP=Falkland-pund
+currenciesDisplayName.EEK=estiske kroon
+currenciesDisplayName.MDL=moldovske leu
currenciesDisplayName.HKD=Hongkong-dollar
-currenciesDisplayName.MDL=Moldovske leu
-currenciesDisplayName.ARA=Argentinske australer
-currenciesDisplayName.IQD=Irakske dinarer
-currenciesDisplayName.SCR=Seychelliske rupier
-currenciesDisplayName.VUV=Vanuatisk vatu
-currenciesDisplayName.DKK=Danske kroner
-currenciesDisplayName.KPW=Nordkoreanske won
-currenciesDisplayName.GQE=Ekvatorialguineanske ekwele guineana
-currenciesDisplayName.IDR=Indonesiske rupier
-currenciesDisplayName.LVR=Latviske rubler
-currenciesDisplayName.SOS=Somaliske shilling
+currenciesDisplayName.IQD=irakske dinarer
+currenciesDisplayName.ARA=argentinske australer
+currenciesDisplayName.SCR=seychelliske rupier
+currenciesDisplayName.VUV=vanuatiske vatu
+currenciesDisplayName.KPW=nordkoreanske won
+currenciesDisplayName.DKK=danske kroner
+currenciesDisplayName.IDR=indonesiske rupier
+currenciesDisplayName.GQE=ekvatorialguineanske ekwele guineana
+currenciesDisplayName.SOS=somaliske shilling
+currenciesDisplayName.LVR=latviske rubler
+currenciesDisplayName.EQE=ekwele
currenciesDisplayName.AED=UAE dirham
-currenciesDisplayName.BWP=Botswanske pula
-currenciesDisplayName.LVL=Latviske lats
-currenciesDisplayName.RUR=Russiske rubler (1991-1998)
-currenciesDisplayName.NIO=Nicaraguanske cordoba oro
-currenciesDisplayName.ADP=Andorranske pesetas
-currenciesDisplayName.FJD=Fijianske dollar
-currenciesDisplayName.MOP=Makaoske pataca
-currenciesDisplayName.RUB=Russiske rubler
-currenciesDisplayName.CDF=Kongolesiske franc (congolais)
-currenciesDisplayName.NIC=Nicaraguanske cordoba
-currenciesDisplayName.DJF=Djiboutiske franc
-currenciesDisplayName.ECV=Ecuadorianske Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Salomonske dollar
-currenciesDisplayName.UZS=Usbekiske sum
-currenciesDisplayName.ECS=Ecuadorianske sucre
-currenciesDisplayName.PHP=Filippinske pesos
-currenciesDisplayName.THB=Thailandske baht
-currenciesDisplayName.LUF=Luxemburgske franc
-currenciesDisplayName.FIM=Finske mark
-currenciesDisplayName.TTD=Trinidadiske dollar
-currenciesDisplayName.SZL=Swazilandske lilangeni
-currenciesDisplayName.MNT=Mongolske tugrik
-currenciesDisplayName.SAR=Saudiarabiske riyaler
-currenciesDisplayName.UAK=Ukrainske karbovanetz
-currenciesDisplayName.UAH=Ukrainsle hryvnia
-currenciesDisplayName.HUF=Ungarske forinter
-currenciesDisplayName.COP=Colombianske pesos
-currenciesDisplayName.QAR=Qatarske riyaler
-currenciesDisplayName.LTT=Litauiske talonas
-currenciesDisplayName.PTE=Portugisiske escudo
-currenciesDisplayName.AOR=Angolan Kwanza Reajustado (1995-1999)
-currenciesDisplayName.UYU=Uruguayanske peso uruguayo
-currenciesDisplayName.GBP=Britiske pund sterling
-currenciesDisplayName.BIF=Burundiske franc
-currenciesDisplayName.INR=Indiske rupier
-currenciesDisplayName.ZRZ=Zairiske zaire
-currenciesDisplayName.AON=Angolanske ny kwanza (1990-2000)
-currenciesDisplayName.LTL=Litauiske lita
-currenciesDisplayName.XFU=French UIC-Franc
-currenciesDisplayName.KZT=Kasakhstanske tenge
-currenciesDisplayName.MZM=Mosambikiske metical
-currenciesDisplayName.UYP=Uruguayanske pesos (1975-1993)
-currenciesDisplayName.AOK=Angolanske kwanza (1977-1990)
-currenciesDisplayName.BUK=Burmesiske kyat
-currenciesDisplayName.GNS=Guineanske syli
-currenciesDisplayName.XFO=French Gold Franc
-currenciesDisplayName.PGK=Papuanske kina
-currenciesDisplayName.SYP=Syriske pund
-currenciesDisplayName.MZE=Mosambikiske escudo
-currenciesDisplayName.OMR=Omanske rialer
-currenciesDisplayName.NGN=Nigerianske naira
-currenciesDisplayName.ZRN=Zairiske nye zaire
-currenciesDisplayName.AOA=Angolanske kwanza
-currenciesDisplayName.CNY=Kinesiske Yuan Renminbi
-currenciesDisplayName.MAF=Marokkanske franc
-currenciesDisplayName.GNF=Guineanske franc
-currenciesDisplayName.HTG=Haitiske gourde
-currenciesDisplayName.MAD=Marokkanske dirham
-currenciesDisplayName.TRY=Ny tyrkisk lire
-currenciesDisplayName.MMK=Myanmarske kyat
-currenciesDisplayName.MYR=Malaysiske ringgit
-currenciesDisplayName.LSL=Lesothiske loti
-currenciesDisplayName.XEU=European Currency Unit
-currenciesDisplayName.BHD=Bahrainske dinarer
-currenciesDisplayName.SLL=Sierraleonske leone
-currenciesDisplayName.BTN=Bhutanske ngultrum
-currenciesDisplayName.TRL=Tyrkiske lira
-currenciesDisplayName.KMF=Komoriske franc
-currenciesDisplayName.ANG=Nederlandske antillegylden
-currenciesDisplayName.CZK=Tsjekkiske koruna
-currenciesDisplayName.AZM=Aserbajdsjanske Manat
-currenciesDisplayName.KYD=Caymanske dollar
-currenciesDisplayName.GMD=Gambiske dalasi
-currenciesDisplayName.BGN=Bulgarske lev
-currenciesDisplayName.CAD=Kanadiske dollar
-currenciesDisplayName.MXV=Meksikanske Unidad de Inversion (UDI)
-currenciesDisplayName.BGL=Bulgarske lev (hard)
-currenciesDisplayName.VEB=Venezuelanske bolivar
-currenciesDisplayName.MLF=Maliske franc
-currenciesDisplayName.ILS=Israelske nye shekler
-currenciesDisplayName.MXP=Meksikanske s\u00f8lvpesos (1861-1992)
-currenciesDisplayName.PES=Peruvianske sol
-currenciesDisplayName.GYD=Guyanske dollar
-currenciesDisplayName.MXN=Meksikanske pesos
-currenciesDisplayName.ILP=Israelske pund
-currenciesDisplayName.SKK=Slovakiske koruna
-currenciesDisplayName.CYP=Kypriotiske pund
-currenciesDisplayName.XDR=Special Drawing Rights
-currenciesDisplayName.PEN=Peruvianske sol nuevo
-currenciesDisplayName.LRD=Liberiske dollar
-currenciesDisplayName.PEI=Peruvianske inti
-currenciesDisplayName.AMD=Armenske dram
-currenciesDisplayName.BSD=Bahamske dollar
-currenciesDisplayName.HRK=Kroatiske kuna
-currenciesDisplayName.CLP=Chilenske pesos
-currenciesDisplayName.HRD=Kroatiske dinarer
-currenciesDisplayName.XPF=CFP Franc
-currenciesDisplayName.FRF=Franske franc
-currenciesDisplayName.BRR=Brasilianske cruzeiro
-currenciesDisplayName.MKD=Makedonske denarer
-currenciesDisplayName.CLF=Chilenske Unidades de Fomento
-currenciesDisplayName.ALL=Albanske lek
-currenciesDisplayName.BRN=Brasilianske cruzado novo
-currenciesDisplayName.MWK=Malawisle kwacha
-currenciesDisplayName.BRL=Brasilianske realer
-currenciesDisplayName.TPE=Timoresiske escudo
-currenciesDisplayName.BRE=Brasilianske cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brasilianske cruzado
-currenciesDisplayName.BRB=Brasiliansk cruzeiro novo (1967-1986)
-currenciesDisplayName.DEM=Tyske mark
-currenciesDisplayName.KWD=Kuwaitiske dinarer
-currenciesDisplayName.XCD=\u00d8stkaribiske dollar
-currenciesDisplayName.NPR=Nepalesiske rupier
+currenciesDisplayName.LVL=latviske lats
+currenciesDisplayName.BWP=botswanske pula
+currenciesDisplayName.RUR=russiske rubler (1991-1998)
+currenciesDisplayName.NIO=nicaraguanske cordoba oro
+currenciesDisplayName.MOP=makaoske pataca
+currenciesDisplayName.FJD=fijianske dollar
+currenciesDisplayName.ADP=andorranske pesetas
+currenciesDisplayName.RUB=russiske rubler
+currenciesDisplayName.CDF=kongolesiske franc (congolais)
+currenciesDisplayName.NIC=nicaraguanske cordoba
+currenciesDisplayName.DJF=djiboutiske franc
+currenciesDisplayName.UZS=usbekiske sum
+currenciesDisplayName.SBD=salomonske dollar
+currenciesDisplayName.ECV=ecuadorianske unidad de valor constante (UVC)
+currenciesDisplayName.LUL=luxemburgske finansielle franc
+currenciesDisplayName.ECS=ecuadorianske sucre
+currenciesDisplayName.THB=thailandske baht
+currenciesDisplayName.PHP=filippinske pesos
+currenciesDisplayName.LUF=luxemburgske franc
+currenciesDisplayName.RHD=rhodesiske dollar
+currenciesDisplayName.LUC=luxemburgske konvertible franc
+currenciesDisplayName.FIM=finske mark
+currenciesDisplayName.TTD=trinidadiske dollar
+currenciesDisplayName.SZL=swazilandske lilangeni
+currenciesDisplayName.MNT=mongolske tugrik
+currenciesDisplayName.UAK=ukrainske karbovanetz
+currenciesDisplayName.SAR=saudiarabiske riyaler
+currenciesDisplayName.COU=unidad de valor real
+currenciesDisplayName.UAH=ukrainske hryvnia
+currenciesDisplayName.HUF=ungarske forinter
+currenciesDisplayName.QAR=qatarske rialer
+currenciesDisplayName.COP=colombianske pesos
+currenciesDisplayName.LTT=litauiske talonas
+currenciesDisplayName.PTE=portugisiske escudo
+currenciesDisplayName.UYU=uruguayanske peso uruguayo
+currenciesDisplayName.AOR=angolanske kwanza reajustado (1995-1999)
+currenciesDisplayName.GBP=britiske pund sterling
+currenciesDisplayName.ZRZ=zairiske zaire
+currenciesDisplayName.INR=indiske rupier
+currenciesDisplayName.BIF=burundiske franc
+currenciesDisplayName.XFU=franske UIC-franc
+currenciesDisplayName.MZN=mosambikiske metical
+currenciesDisplayName.LTL=litauiske lita
+currenciesDisplayName.AON=angolanske nye kwanza (1990-2000)
+currenciesDisplayName.UYP=uruguayanske pesos (1975-1993)
+currenciesDisplayName.MZM=gamle mosambikiske metical
+currenciesDisplayName.KZT=kasakhstanske tenge
+currenciesDisplayName.AOK=angolanske kwanza (1977-1990)
+currenciesDisplayName.GNS=guineanske syli
+currenciesDisplayName.BUK=burmesiske kyat
+currenciesDisplayName.XFO=franske gullfranc
+currenciesDisplayName.PGK=papuanske kina
+currenciesDisplayName.SYP=syriske pund
+currenciesDisplayName.OMR=omanske rialer
+currenciesDisplayName.MZE=mosambikiske escudo
+currenciesDisplayName.ZRN=zairiske nye zaire
+currenciesDisplayName.NGN=nigerianske naira
+currenciesDisplayName.CNY=kinesiske yuan renminbi
+currenciesDisplayName.AOA=angolanske kwanza
+currenciesDisplayName.MAF=marokkanske franc
+currenciesDisplayName.RSD=serbiske dinarer
+currenciesDisplayName.GNF=guineanske franc
+currenciesDisplayName.MAD=marokkanske dirham
+currenciesDisplayName.HTG=haitiske gourde
+currenciesDisplayName.TRY=nye tyrkiske lire
+currenciesDisplayName.MMK=myanmarske kyat
+currenciesDisplayName.XRE=RINET-fond
+currenciesDisplayName.MYR=malaysiske ringgit
+currenciesDisplayName.LSM=maloti
+currenciesDisplayName.XEU=europeisk valutaenhet
+currenciesDisplayName.LSL=lesothiske loti
+currenciesDisplayName.SLL=sierraleonske leone
+currenciesDisplayName.BHD=bahrainske dinarer
+currenciesDisplayName.BTN=bhutanske ngultrum
+currenciesDisplayName.TRL=tyrkiske lire
+currenciesDisplayName.KMF=komoriske franc
+currenciesDisplayName.CZK=tsjekkiske koruna
+currenciesDisplayName.ANG=nederlandske antillegylden
+currenciesDisplayName.AZN=aserbajdsjanske manat
+currenciesDisplayName.AZM=aserbajdsjanske manat (1993-2006)
+currenciesDisplayName.KYD=caymanske dollar
+currenciesDisplayName.GMD=gambiske dalasi
+currenciesDisplayName.VEF=venezuelanske bolivar fuerte
+currenciesDisplayName.BGN=bulgarske lev
+currenciesDisplayName.MXV=meksikanske unidad de inversion (UDI)
+currenciesDisplayName.CAD=kanadiske dollar
+currenciesDisplayName.BGL=bulgarske lev (hard)
+currenciesDisplayName.VEB=venezuelanske bolivar
+currenciesDisplayName.MLF=maliske franc
+currenciesDisplayName.MXP=meksikanske s\u00f8lvpesos (1861-1992)
+currenciesDisplayName.ILS=israelske nye shekler
+currenciesDisplayName.PES=peruvianske sol
+currenciesDisplayName.MXN=meksikanske pesos
+currenciesDisplayName.GYD=guyanske dollar
+currenciesDisplayName.ILP=israelske pund
+currenciesDisplayName.CYP=kypriotiske pund
+currenciesDisplayName.SKK=slovakiske koruna
+currenciesDisplayName.XDR=spesielle trekkrettigheter
+currenciesDisplayName.PEN=peruvianske nye sol
+currenciesDisplayName.LRD=liberiske dollar
+currenciesDisplayName.PEI=peruvianske inti
+currenciesDisplayName.AMD=armenske dram
+currenciesDisplayName.BSD=bahamske dollar
+currenciesDisplayName.XPT=unse platina
+currenciesDisplayName.HRK=kroatiske kuna
+currenciesDisplayName.CLP=chilenske pesos
+currenciesDisplayName.HRD=kroatiske dinarer
+currenciesDisplayName.XPF=CFP franc
+currenciesDisplayName.FRF=franske franc
+currenciesDisplayName.XPD=palladium
+currenciesDisplayName.BRR=brasilianske cruzeiro
+currenciesDisplayName.MKD=makedonske denarer
+currenciesDisplayName.CLF=chilenske unidades de fomento
+currenciesDisplayName.ALL=albanske lek
+currenciesDisplayName.BRN=brasilianske cruzado novo
+currenciesDisplayName.MWK=malawiske kwacha
+currenciesDisplayName.BRL=brasilianske realer
+currenciesDisplayName.TPE=timoresiske escudo
+currenciesDisplayName.BRE=brasilianske cruzeiro (1990-1993)
+currenciesDisplayName.BRC=brasilianske cruzado
+currenciesDisplayName.BRB=brasilianske cruzeiro novo (1967-1986)
+currenciesDisplayName.DEM=tyske mark
+currenciesDisplayName.KWD=kuwaitiske dinarer
+currenciesDisplayName.XCD=\u00f8stkaribiske dollar
+currenciesDisplayName.NPR=nepalske rupier
currenciesDisplayName.GWP=Guinea-Bissau-pesos
-currenciesDisplayName.YUN=Jugoslaviske konvertible dinarer
-currenciesDisplayName.SVC=Salvadoranske colon
-currenciesDisplayName.YUM=Jugoslaviske noviy-dinarer
-currenciesDisplayName.BEL=Belgiske franc (\u00f8konomiske)
-currenciesDisplayName.SIT=Slovenske tolar
-currenciesDisplayName.JPY=Japanske yen
-currenciesDisplayName.XOF=CFA Franc BCEAO
-currenciesDisplayName.MVR=Maldiviske rufiyaa
-currenciesDisplayName.GWE=Portugisiske guinea escudo
-currenciesDisplayName.BEF=Belgiske franc
-currenciesDisplayName.TOP=Tonganske pa\u02bbanga
-currenciesDisplayName.YUD=Jugoslaviske dinarer (hard)
-currenciesDisplayName.BEC=Belgiske franc (konvertible)
-currenciesDisplayName.SUR=Sovjetiske rubler
-currenciesDisplayName.ROL=Rumenske leu
-currenciesDisplayName.DDM=\u00d8sttyske ostmark
-currenciesDisplayName.BDT=Bangladeshiske taka
-currenciesDisplayName.XBD=European Unit of Account (XBD)
-currenciesDisplayName.AWG=Arubiske gylden
-currenciesDisplayName.XBC=European Unit of Account (XBC)
-currenciesDisplayName.XBB=European Monetary Unit
-currenciesDisplayName.XBA=European Composite Unit
-currenciesDisplayName.NOK=Norske kroner
-currenciesDisplayName.MUR=Mauritiske rupier
-currenciesDisplayName.ZAR=S\u00f8rafrikanske rand
-currenciesDisplayName.SHP=Sankthelenske pund
-currenciesDisplayName.XAU=Gull
-currenciesDisplayName.ZAL=S\u00f8rafrikanske rand (\u00f8konomisk)
-currenciesDisplayName.VND=Vietnamesiske dong
-currenciesDisplayName.TZS=Tanzanianske shilling
-currenciesDisplayName.GIP=Gibraltarske pund
-currenciesDisplayName.TND=Tunisiske dinarer
-currenciesDisplayName.CVE=Kappverdiske escudo
-currenciesDisplayName.UGX=Ugandiske shilling
-currenciesDisplayName.ZMK=Zambiske kwacha
-currenciesDisplayName.JOD=Jordanske dinarer
-currenciesDisplayName.XAF=CFA Franc BEAC
-currenciesDisplayName.LBP=Libanesiske pund
-currenciesDisplayName.UGS=Ugandiske shilling (1966-1987)
+currenciesDisplayName.YUN=jugoslaviske konvertible dinarer
+currenciesDisplayName.SVC=salvadoranske colon
+currenciesDisplayName.YUM=jugoslaviske noviy-dinarer
+currenciesDisplayName.BEL=belgiske franc (finansielle)
+currenciesDisplayName.SIT=slovenske tolar
+currenciesDisplayName.JPY=japanske yen
+currenciesDisplayName.XOF=CFA franc BCEAO
+currenciesDisplayName.MVR=maldiviske rufiyaa
+currenciesDisplayName.BEF=belgiske franc
+currenciesDisplayName.GWE=portugisiske guinea escudo
+currenciesDisplayName.TOP=tonganske pa\u02bbanga
+currenciesDisplayName.YUD=jugoslaviske dinarer (hard)
+currenciesDisplayName.BEC=belgiske franc (konvertible)
+currenciesDisplayName.SUR=sovjetiske rubler
+currenciesDisplayName.RON=rumenske leu
+currenciesDisplayName.ROL=gamle rumenske leu
+currenciesDisplayName.BDT=bangladeshiske taka
+currenciesDisplayName.DDM=\u00f8sttyske ostmark
+currenciesDisplayName.XBD=europeisk kontoenhet (XBD)
+currenciesDisplayName.AWG=arubiske gylden
+currenciesDisplayName.XBC=europeisk kontoenhet (XBC)
+currenciesDisplayName.XBB=europeisk monet\u00e6r enhet
+currenciesDisplayName.XBA=europeisk sammensatt enhet
+currenciesDisplayName.NOK=norske kroner
+currenciesDisplayName.MUR=mauritiske rupier
+currenciesDisplayName.ZAR=s\u00f8rafrikanske rand
+currenciesDisplayName.SHP=sankthelenske pund
+currenciesDisplayName.XAU=unse gull
+currenciesDisplayName.ZAL=s\u00f8rafrikanske rand (finansielle)
+currenciesDisplayName.VND=vietnamesiske dong
+currenciesDisplayName.TZS=tanzanianske shilling
+currenciesDisplayName.GIP=gibraltarske pund
+currenciesDisplayName.TND=tunisiske dinarer
+currenciesDisplayName.CVE=kappverdiske escudo
+currenciesDisplayName.UGX=ugandiske shilling
+currenciesDisplayName.XAG=s\u00f8lv
+currenciesDisplayName.ZMK=zambiske kwacha
+currenciesDisplayName.JOD=jordanske dinarer
+currenciesDisplayName.XAF=CFA franc BEAC
+currenciesDisplayName.LBP=libanesiske pund
+currenciesDisplayName.UGS=ugandiske shilling (1966-1987)
currenciesDisplayName.STD=Sao Tome og Principe-dobra
-currenciesDisplayName.WST=Vestsamoisk tala
-currenciesDisplayName.KHR=Kambodsjanske riel
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Dominikanske pesos
-currenciesDisplayName.BOV=Boliviansk mvdol
-currenciesDisplayName.MTP=Maltesiske pund
-currenciesDisplayName.USS=Amerikanske dollar (samme dag)
-currenciesDisplayName.BOP=Boliviansk pesos
-currenciesDisplayName.MTL=Maltesiske lira
-currenciesDisplayName.CUP=Kubanske pesos
-currenciesDisplayName.TMM=Turkmenske manat
-currenciesDisplayName.USN=Amerikanske dollar (neste dag)
-currenciesDisplayName.SGD=Singaporske dollar
-currenciesDisplayName.NZD=Nyzealandske dollar
-currenciesDisplayName.USD=Amerikanske dollar
+currenciesDisplayName.WST=vestsamoiske tala
+currenciesDisplayName.KHR=kambodsjanske riel
+currenciesDisplayName.DOP=dominikanske pesos
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BOV=boliviansk mvdol
+currenciesDisplayName.MTP=maltesiske pund
+currenciesDisplayName.USS=amerikanske dollar (samme dag)
+currenciesDisplayName.BOP=bolivianske pesos
+currenciesDisplayName.CUP=kubanske pesos
+currenciesDisplayName.MTL=maltesiske lira
+currenciesDisplayName.TMM=turkmenske manat
+currenciesDisplayName.USN=amerikanske dollar (neste dag)
+currenciesDisplayName.SGD=singaporske dollar
+currenciesDisplayName.NZD=new zealandske dollar
+currenciesDisplayName.USD=amerikanske dollar
+currenciesDisplayName.BOB=boliviano
currenciesDisplayName.HNL=Hoduras Lempira
-currenciesDisplayName.BOB=Boliviano
-currenciesDisplayName.ITL=Italienske lire
-currenciesDisplayName.PAB=Panamanske balboa
-currenciesDisplayName.GTQ=Guatemalanske quetzal
-currenciesDisplayName.LAK=Laotiske kip
-currenciesDisplayName.GHC=Ghanesiske cedi
-currenciesDisplayName.AUD=Australske dollar
-currenciesDisplayName.NAD=Namibiske dollar
-currenciesDisplayName.KGS=Kirgisiske som
-currenciesDisplayName.MGF=Madagassiske franc
-currenciesDisplayName.CHF=Sveitsiske franc
-currenciesDisplayName.BBD=Barbadisk dollar
-currenciesDisplayName.MGA=Madagassiske ariary
-currenciesDisplayName.PYG=Paraguayanske guarani
-currenciesDisplayName.PLZ=Polske zloty (1950-1995)
-currenciesDisplayName.YER=Jemenittiske rialer
-currenciesDisplayName.ATS=\u00d8sterrikske shilling
-currenciesDisplayName.ETB=Etiopiske birr
-currenciesDisplayName.BND=Bruneiske dollar
-currenciesDisplayName.JMD=Jamaikanske dollar
-currenciesDisplayName.EGP=Egyptiske pund
-currenciesDisplayName.PLN=Polske zloty
-currenciesDisplayName.DZD=Algeriske dinarer
-currenciesDisplayName.ISK=Islandske kronar
-currenciesDisplayName.SRG=Surinamske gylden
-currenciesDisplayName.LYD=Libyske dinarer
-currenciesDisplayName.BZD=Beliziske dollar
-currenciesDisplayName.BAM=Bosnia-Hercegovina mark (konvertible)
-currenciesDisplayName.ESP=Spanske peseta
-currenciesDisplayName.KRW=S\u00f8rkoreanske won
-currenciesDisplayName.NLG=Nederlandske gylden
-currenciesDisplayName.MRO=Mauritanske ouguiya
-currenciesDisplayName.BAD=Bosnia-Hercegovina dinarer
-currenciesDisplayName.ZWD=Zimbabwiske dollar
-currenciesDisplayName.SEK=Svenske kroner
-currenciesDisplayName.CSK=Tsjekkoslovakiske koruna (hard)
-currenciesDisplayName.BYR=Hviterussiske rubler
-currenciesDisplayName.IRR=Iranske rialer
-currenciesDisplayName.PKR=Pakistanske rupier
-currenciesDisplayName.BMD=Bermudiske dollar
+currenciesDisplayName.CHW=WIR franc
+currenciesDisplayName.ITL=italienske lire
+currenciesDisplayName.PAB=panamanske balboa
+currenciesDisplayName.GTQ=guatemalanske quetzal
+currenciesDisplayName.XXX=ukjent eller ugyldig valuta
+currenciesDisplayName.AUD=australske dollar
+currenciesDisplayName.GHC=ghanesiske cedi
+currenciesDisplayName.LAK=laotiske kip
+currenciesDisplayName.NAD=namibiske dollar
+currenciesDisplayName.KGS=kirgisiske som
+currenciesDisplayName.MGF=madagassiske franc
+currenciesDisplayName.BBD=barbadiske dollar
+currenciesDisplayName.CHF=sveitsiske franc
+currenciesDisplayName.CHE=WIR euro
+currenciesDisplayName.MGA=madagassiske ariary
+currenciesDisplayName.PYG=paraguayanske guarani
+currenciesDisplayName.PLZ=polske zloty (1950-1995)
+currenciesDisplayName.YER=jemenittiske rialer
+currenciesDisplayName.ATS=\u00f8sterrikske schilling
+currenciesDisplayName.ETB=etiopiske birr
+currenciesDisplayName.BND=bruneiske dollar
+currenciesDisplayName.EGP=egyptiske pund
+currenciesDisplayName.JMD=jamaikanske dollar
+currenciesDisplayName.PLN=polske zloty
+currenciesDisplayName.DZD=algeriske dinarer
+currenciesDisplayName.ISK=islandske kroner
+currenciesDisplayName.SRG=surinamske gylden
+currenciesDisplayName.LYD=libyske dinarer
+currenciesDisplayName.SRD=surinamske dollar
+currenciesDisplayName.BAM=bosnisk-hercegovinske mark (konvertible)
+currenciesDisplayName.BZD=beliziske dollar
+currenciesDisplayName.ESP=spanske peseta
+currenciesDisplayName.KRW=s\u00f8rkoreanske won
+currenciesDisplayName.NLG=nederlandske gylden
+currenciesDisplayName.MRO=mauritanske ouguiya
+currenciesDisplayName.BAD=bosnisk-hercegovinske dinarer
+currenciesDisplayName.ZWD=zimbabwiske dollar
+currenciesDisplayName.SEK=svenske kroner
+currenciesDisplayName.CSK=tsjekkoslovakiske koruna (hard)
+currenciesDisplayName.BYR=hviterussiske rubler
+currenciesDisplayName.ESB=spanske peseta (konvertibel konto)
+currenciesDisplayName.IRR=iranske rialer
+currenciesDisplayName.ESA=spanske peseta (A-konto)
+currenciesDisplayName.PKR=pakistanske rupier
+currenciesDisplayName.BMD=bermudiske dollar
+currenciesDisplayName.CSD=gamle serbiske dinarer
+currenciesSymbol.INR=INR
+currenciesSymbol.JPY=JPY
+currenciesSymbol.ITL=ITL
+currenciesSymbol.EUR=EUR
+currenciesSymbol.GBP=GBP
+currenciesSymbol.USD=USD
+currenciesSymbol.BRL=BRL
currenciesSymbol.BGL=lev
-currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
-currenciesSymbol.LKR=SL Re
-currenciesSymbol.CYP=\u00a3C
-currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
-currenciesSymbol.VUV=VT
-currenciesSymbol.MWK=MK
-currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
-currenciesSymbol.IEP=IR\u00a3
-currenciesSymbol.AMD=dram
-currenciesSymbol.TOP=T$
-currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
-currenciesSymbol.CLP=Ch$
-currenciesSymbol.KWD=KD
-currenciesSymbol.GEL=lari
-currenciesSymbol.AFN=Af
-currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
-currenciesSymbol.IQD=ID
-currenciesSymbol.HKD=HK$
-currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
-currenciesSymbol.ALL=lek
-currenciesSymbol.CRC=C
-currenciesSymbol.IDR=Rp
-currenciesSymbol.DKK=DKr
-currenciesSymbol.TZS=T Sh
-currenciesSymbol.SBD=SI$
-currenciesSymbol.NOK=kr
-currenciesSymbol.UGX=U Sh
-currenciesSymbol.BEF=BF
-currenciesSymbol.TTD=TT$
-currenciesSymbol.SZL=E
-currenciesSymbol.STD=Db
-currenciesSymbol.SAR=SRl
-currenciesSymbol.FJD=F$
-currenciesSymbol.UYU=Ur$
-currenciesSymbol.BDT=Tk
-currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
-currenciesSymbol.MNT=Tug
-currenciesSymbol.DJF=DF
-currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
-currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
-currenciesSymbol.SYP=LS
-currenciesSymbol.MTL=Lm
-currenciesSymbol.MZM=Mt
-currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
-currenciesSymbol.HUF=Ft
-currenciesSymbol.NZD=$NZ
-currenciesSymbol.OMR=RO
-currenciesSymbol.KZT=T
-currenciesSymbol.DOP=RD$
-currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
-currenciesSymbol.COP=Col$
-currenciesSymbol.HNL=L
-currenciesSymbol.KGS=som
-currenciesSymbol.ZWD=Z$
-currenciesSymbol.MYR=RM
-currenciesSymbol.SRG=Sf
-currenciesSymbol.GTQ=Q
-currenciesSymbol.BIF=Fbu
-currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
-currenciesSymbol.VEB=Be
-currenciesSymbol.BOB=Bs
-currenciesSymbol.CNY=Y
-currenciesSymbol.KMF=CF
-currenciesSymbol.SEK=SKr
-currenciesSymbol.AUD=$A
-currenciesSymbol.LYD=LD
-currenciesSymbol.JMD=J$
-currenciesSymbol.SKK=Sk
-currenciesSymbol.CHF=SwF
-currenciesSymbol.ETB=Br
-currenciesSymbol.MRO=UM
-currenciesSymbol.BBD=BDS$
-currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
-currenciesSymbol.BTN=Nu
-currenciesSymbol.MXN=MEX$
-currenciesSymbol.DZD=DA
-currenciesSymbol.ANG=NA f.
-currenciesSymbol.BZD=BZ$
-currenciesSymbol.IRR=RI
-currenciesSymbol.GYD=G$
-currenciesSymbol.BAM=KM
-currenciesSymbol.CAD=Can$
-shortMonths=jan.®feb.®mars®april®mai®juni®juli®aug.®sep.®okt.®nov.®des.®®
-months=januar®februar®mars®april®mai®juni®juli®august®september®oktober®november®desember®®
-shortWeekdays=®s\u00f8.®ma.®ti.®on.®to.®fr.®l\u00f8.®
-weekdays=®s\u00f8ndag®mandag®tirsdag®onsdag®torsdag®fredag®l\u00f8rdag®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=f.Kr.®e.Kr.®
-ampms=a.m.®p.m.®
+shortMonths=jan.\u00aefeb.\u00aemars\u00aeapr.\u00aemai\u00aejuni\u00aejuli\u00aeaug.\u00aesep.\u00aeokt.\u00aenov.\u00aedes.\u00ae\u00ae
+months=januar\u00aefebruar\u00aemars\u00aeapril\u00aemai\u00aejuni\u00aejuli\u00aeaugust\u00aeseptember\u00aeoktober\u00aenovember\u00aedesember\u00ae\u00ae
+shortWeekdays=\u00aes\u00f8.\u00aema.\u00aeti.\u00aeon.\u00aeto.\u00aefr.\u00ael\u00f8.\u00ae
+weekdays=\u00aes\u00f8ndag\u00aemandag\u00aetirsdag\u00aeonsdag\u00aetorsdag\u00aefredag\u00ael\u00f8rdag\u00ae
+eras=f.Kr.\u00aee.Kr.\u00ae
+ampms=formiddag\u00aeettermiddag\u00ae
shortDateFormat=dd.MM.yy
-mediumDateFormat=d. MMM. yyyy
+mediumDateFormat=d. MMM yyyy
longDateFormat=d. MMMM yyyy
fullDateFormat=EEEE d. MMMM yyyy
shortTimeFormat=HH.mm
mediumTimeFormat=HH.mm.ss
longTimeFormat=HH.mm.ss z
-fullTimeFormat='kl. 'HH.mm.ss z
-zoneStrings=Europe/Bucharest®EET®Eastern European Standard Time®EEST®Eastern European Daylight Time®©
+fullTimeFormat='kl'. HH.mm.ss z
+zoneStrings=Europe_Eastern\u00ae\u00f8steuropeisk normaltid\u00ae\u00ae\u00f8steuropeisk sommertid\u00ae\u00ae\u00a9Australia_Central\u00aesentralaustralsk standardtid\u00ae\u00aesentralaustralsk sommertid\u00ae\u00ae\u00a9Africa_Southern\u00aes\u00f8rafrikansk normaltid\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u00f8stindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aenewzealandsk standardtid\u00ae\u00aenewzealandsk sommertid\u00ae\u00ae\u00a9Hong_Kong\u00aeHong Kong-tid\u00ae\u00aeHong Kong-sommertid\u00ae\u00ae\u00a9Africa_Western\u00aevestafrikansk tid\u00ae\u00aevestafrikansk sommertid\u00ae\u00ae\u00a9Korea\u00aekoreansk standardtid\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Central\u00aesentralafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Central\u00aesentraleuropeisk normaltid\u00ae\u00aesentraleuropeisk sommertid\u00ae\u00ae\u00a9India\u00aeindisk standardtid\u00ae\u00ae\u00ae\u00ae\u00a9China\u00aekinesisk standardtid\u00aeCST (Kina)\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u00f8stafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Indochina\u00aeindokinesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeisraelsk standardtid\u00aeIST (Israel)\u00aeisraelsk sommertid\u00ae\u00ae\u00a9Acre\u00ae\u00ae\u00aeAcre sommertid\u00ae\u00ae\u00a9Europe_Western\u00aevesteuropeisk tid\u00ae\u00aevesteuropeisk sommertid\u00ae\u00ae\u00a9Indonesia_Western\u00aevestindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Brasilia\u00ae\u00ae\u00aeBrasilia sommertid\u00ae\u00ae\u00a9Japan\u00aejapansk standardtid\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aesentralindonesisk tid\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00ae\u00ae\u00aeAmazonas sommertid\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u00f8staustralsk standardtid\u00ae\u00ae\u00f8staustralsk sommertid\u00ae\u00ae\u00a9Moscow\u00aeMoskva normaltid\u00ae\u00aeMoskva sommertid\u00ae\u00ae\u00a9GMT\u00aeGreenwich middeltid\u00ae\u00ae\u00ae\u00ae\u00a9Arabian\u00aearabisk standardtid\u00aeAST (arabisk)\u00aearabisk sommertid\u00aeADT (arabisk)\u00ae\u00a9Australia_Western\u00aevestaustralsk standardtid\u00ae\u00aevestaustralsk sommertid\u00ae\u00ae\u00a9Australia_CentralWestern\u00aevest-sentralaustralsk standardtid\u00ae\u00aevest-sentralaustralsk sommertid\u00ae\u00ae\u00a9
territories.TL=\u00d8st-Timor
territories.TK=Tokelau
territories.TJ=Tadsjikistan
territories.TH=Thailand
territories.TG=Togo
-territories.TF=Franske s\u00f8romr\u00e5der
+territories.TF=De franske s\u00f8rterritorier
territories.GY=Guyana
-territories.TD=Tchad
+territories.TD=Tsjad
territories.TC=Turks- og Caicos\u00f8yene
territories.GW=Guinea-Bissau
territories.GU=Guam
territories.GT=Guatemala
-territories.GS=S\u00f8r-Georgia og S\u00f8r-Sandwich-\u00f8yene
+territories.GS=S\u00f8r-Georgia og de s\u00f8rlige Sandwich-\u00f8yene
territories.GR=Hellas
territories.GQ=Ekvatorial-Guinea
territories.GP=Guadeloupe
@@ -391,10 +330,13 @@ territories.GN=Guinea
territories.GM=Gambia
territories.GL=Gr\u00f8nland
territories.SV=El Salvador
-territories.ST=Sao Tome og Principe
+territories.062=S\u00f8rsentral-Asia
+territories.ST=S\u00e3o Tom\u00e9 og Pr\u00edncipe
territories.GI=Gibraltar
+territories.061=Polynesia
territories.GH=Ghana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Fransk Guyana
territories.GE=Georgia
territories.SO=Somalia
@@ -407,40 +349,50 @@ territories.GA=Gabon
territories.SK=Slovakia
territories.SJ=Svalbard og Jan Mayen
territories.SI=Slovenia
-territories.SH=Saint Helena
+territories.SH=St. Helena
territories.SG=Singapore
territories.SE=Sverige
territories.SD=Sudan
territories.SC=Seychellene
territories.SB=Salomon\u00f8yene
-territories.SA=Saudi Arabia
+territories.SA=Saudi-Arabia
territories.FR=Frankrike
territories.FO=F\u00e6r\u00f8yene
+territories.057=Mikronesia
territories.FM=Mikronesiaf\u00f8derasjonen
territories.RW=Rwanda
-territories.FK=Falklands\u00f8yene (Malvinas)
-territories.RU=Den russiske f\u00f8derasjon
+territories.054=Melanesia
+territories.FK=Falklands\u00f8yene
+territories.053=Australia og New Zealand
+territories.RU=Russland
territories.FJ=Fiji
territories.FI=Finland
+territories.RS=Serbia
territories.RO=Romania
territories.RE=Reunion
territories.ET=Etiopia
territories.ES=Spania
territories.ER=Eritrea
+territories.QU=Den europeiske union
territories.EH=Vest-Sahara
territories.EG=Egypt
territories.EE=Estland
+territories.QO=avsidesliggende Oceania
territories.EC=Ecuador
territories.DZ=Algerie
territories.QA=Qatar
+territories.039=S\u00f8r-Europa
territories.DO=Den dominikanske republikk
territories.PY=Paraguay
territories.DM=Dominica
+territories.035=S\u00f8r\u00f8st-Asia
territories.PW=Palau
+territories.034=S\u00f8r-Asia
territories.DK=Danmark
territories.DJ=Djibouti
territories.PT=Portugal
territories.PS=Palestinsk territorium
+territories.030=\u00d8st-Asia
territories.PR=Puerto Rico
territories.DE=Tyskland
territories.PN=Pitcairn
@@ -459,19 +411,22 @@ territories.PA=Panama
territories.CU=Cuba
territories.CS=Serbia og Montenegro
territories.CR=Costa Rica
+territories.029=Karibia
territories.CO=Colombia
territories.CN=Kina
territories.CM=Kamerun
territories.CL=Chile
territories.CK=Cook\u00f8yene
+territories.021=Nordlige Amerika
territories.CI=Elfenbenskysten
territories.CH=Sveits
-territories.CG=Kongo
+territories.CG=Kongo-Brazzaville
territories.CF=Den sentralafrikanske republikk
-territories.CD=Kongo, Den demokratiske republikken
-territories.CC=Kokos\u00f8yene (Keeling\u00f8yene)
+territories.CD=Kongo-Kinshasa
+territories.CC=Kokos\u00f8yene
territories.OM=Oman
territories.CA=Canada
+territories.419=Latin-Amerika og Karibia
territories.BZ=Belize
territories.BY=Hviterussland
territories.BW=Botswana
@@ -479,30 +434,41 @@ territories.BV=Bouvet\u00f8ya
territories.BT=Bhutan
territories.BS=Bahamas
territories.BR=Brasil
+territories.019=Amerika
+territories.018=S\u00f8rlige Afrika
territories.NZ=New Zealand
+territories.017=Sentral-Afrika
territories.BO=Bolivia
territories.BN=Brunei Darussalam
+territories.015=Nord-Afrika
territories.BM=Bermuda
+territories.014=\u00d8st-Afrika
+territories.BL=Saint Barth\u00e9lemy
+territories.013=Sentral-Amerika
territories.NU=Niue
territories.BJ=Benin
+territories.011=Vest-Afrika
territories.BI=Burundi
+territories.172=Samveldet av uavhengige stater
territories.BH=Bahrain
territories.NR=Nauru
territories.BG=Bulgaria
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgia
+territories.ZZ=ukjent eller ugyldig omr\u00e5de
territories.NO=Norge
territories.BD=Bangladesh
territories.BB=Barbados
territories.ZW=Zimbabwe
territories.NL=Nederland
-territories.BA=Bosnia og Hercegovina
+territories.BA=Bosnia-Hercegovina
territories.NI=Nicaragua
territories.NG=Nigeria
-territories.NF=Norfolk\u00f8yene
+territories.NF=Norfolk\u00f8ya
territories.AZ=Aserbajdsjan
territories.NE=Niger
+territories.AX=\u00c5land
territories.NC=Ny-Caledonia
territories.AW=Aruba
territories.ZM=Zambia
@@ -512,56 +478,70 @@ territories.AT=\u00d8sterrike
territories.AS=Amerikansk Samoa
territories.AR=Argentina
territories.AQ=Antarktis
+territories.009=Oseania
territories.MZ=Mosambik
territories.AO=Angola
territories.MY=Malaysia
territories.AN=De nederlandske antiller
territories.MX=Mexico
territories.AM=Armenia
+territories.005=S\u00f8r-Amerika
territories.MW=Malawi
territories.AL=Albania
territories.MV=Maldivene
+territories.003=Nord-Amerika
territories.ZA=S\u00f8r-Afrika
territories.MU=Mauritius
+territories.002=Afrika
territories.MT=Malta
territories.AI=Anguilla
+territories.001=verden
territories.MS=Montserrat
territories.MR=Mauritania
territories.AG=Antigua og Barbuda
-territories.AF=Afghanistan
territories.MQ=Martinique
-territories.AE=De forente arabiske emiratene
+territories.AF=Afghanistan
territories.MP=Nord-Marianene
+territories.AE=De forente arabiske emirater
+territories.MO=Macao
territories.AD=Andorra
-territories.MO=Macao S.A.R. (Kina)
territories.MN=Mongolia
territories.MM=Myanmar
territories.ML=Mali
-territories.MK=Makedonia, Republikken
+territories.MK=Makedonia
territories.YT=Mayotte
territories.MH=Marshall\u00f8yene
territories.MG=Madagaskar
+territories.MF=Saint Martin
+territories.ME=Montenegro
territories.MD=Moldova
territories.MC=Monaco
territories.MA=Marokko
-territories.YE=Yemen
+territories.YE=Jemen
territories.LY=Libya
territories.LV=Latvia
+territories.155=Vest-Europa
territories.LU=Luxembourg
+territories.154=Nord-Europa
territories.LT=Litauen
territories.LS=Lesotho
territories.LR=Liberia
+territories.151=\u00d8st-Europa
+territories.150=Europa
territories.LK=Sri Lanka
territories.LI=Liechtenstein
territories.LC=St. Lucia
territories.LB=Libanon
-territories.LA=Laos, Den folkedemokratiske republikken
+territories.LA=Laos
territories.KZ=Kasakhstan
territories.KY=Cayman\u00f8yene
territories.KW=Kuwait
+territories.145=Vest-Asia
+territories.143=Sentral-Asia
+territories.142=Asia
territories.KR=S\u00f8r-Korea
territories.KP=Nord-Korea
-territories.KN=St. Christopher og Nevis
+territories.KN=St. Kitts og Nevis
territories.KM=Komorene
territories.KI=Kiribati
territories.WS=Samoa
@@ -573,9 +553,10 @@ territories.JP=Japan
territories.JO=Jordan
territories.JM=Jamaica
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
-territories.VI=Jomfru\u00f8yene (USA)
-territories.VG=Jomfru\u00f8yene (britisk)
+territories.VI=De amerikanske jomfru\u00f8yene
+territories.VG=De britiske jomfru\u00f8yene
territories.VE=Venezuela
territories.VC=St. Vincent og Grenadinene
territories.VA=Vatikanstaten
@@ -584,14 +565,15 @@ territories.IS=Island
territories.IR=Iran
territories.IQ=Irak
territories.UZ=Usbekistan
-territories.IO=Britiske omr\u00e5der i det indiske hav
+territories.IO=Britiske territorier i Indiahavet
territories.UY=Uruguay
territories.IN=India
+territories.IM=Man
territories.IL=Israel
territories.US=USA
territories.IE=Irland
territories.ID=Indonesia
-territories.UM=USAs mindre \u00f8yer
+territories.UM=USAs ytre sm\u00e5\u00f8yer
territories.UG=Uganda
territories.UA=Ukraina
territories.HU=Ungarn
@@ -599,65 +581,72 @@ territories.HT=Haiti
territories.HR=Kroatia
territories.TZ=Tanzania
territories.HN=Honduras
-territories.HM=Heard- og McDonalds\u00f8yene
+territories.HM=Heard\u00f8ya og McDonald\u00f8yene
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R. (Kina)
+territories.HK=Hongkong
territories.TT=Trinidad og Tobago
territories.TR=Tyrkia
territories.TO=Tonga
territories.TN=Tunisia
territories.TM=Turkmenistan
+languages.gwi=gwichin
languages.akk=akkadisk
-languages.gwi=gwich\u02bcin
languages.eka=ekajuk
+languages.ijo=ijo
languages.xh=xhosa
languages.sux=sumerisk
languages.sus=susu
-languages.mis=ulike spr\u00e5k
+languages.mis=annet spr\u00e5k
languages.loz=lozi
-languages.tog=tonga (Nyasa)
+languages.tog=nyasa-tongansk
+languages.zbl=blissymboler
languages.pon=ponapisk
languages.min=minangkabau
languages.suk=sukuma
languages.wo=wolof
-languages.kut=kutenai
languages.lol=mongo
+languages.kut=kutenai
languages.mic=micmac
languages.wa=vallonsk
languages.kum=kumyk
languages.zap=zapotec
-languages.cus=kusjitisk (annet)
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=kusjitisk spr\u00e5k
languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
languages.vo=volapyk
languages.oto=otomisk spr\u00e5k
languages.vi=vietnamesisk
+languages.vai=vai
languages.rar=rarotongansk
languages.ve=venda
languages.rap=rapanui
languages.raj=rajasthani
-languages.ota=tyrkisk, ottomansk (1500-1928)
+languages.ota=ottomansk tyrkisk
languages.nzi=nzima
languages.nap=napolitansk
languages.uz=usbekisk
languages.uga=ugaritisk
languages.tmh=tamasjek
-languages.nai=nordamerikansk indiansk
+languages.nai=nordamerikansk indiansk spr\u00e5k
languages.nah=nahuatl
languages.ur=urdu
languages.fat=fanti
languages.uk=ukrainsk
-languages.egy=egyptisk (historisk)
+languages.egy=gammelegyptisk
+languages.zxx=uten spr\u00e5klig innhold
languages.ug=uigurisk
languages.fan=fang
-languages.ssa=nilo-saharam (annet)
-languages.bat=baltisk (annet)
-languages.mga=mellomirsk (900-1200)
+languages.ssa=nilo-saharaspr\u00e5k
+languages.mga=mellomirsk
+languages.bat=baltisk spr\u00e5k
languages.nyo=nyoro
languages.bas=basa
languages.nyn=nyankole
languages.nym=nyamwezi
+languages.gsw=sveitsertysk
languages.hmn=hmong
languages.ban=balinesisk
languages.osa=osage
@@ -667,47 +656,50 @@ languages.bai=bamilekisk spr\u00e5k
languages.tw=twi
languages.srr=serer
languages.tli=tlingit
+languages.tlh=klingon
languages.tt=tatarisk
languages.ts=tsonga
+languages.srn=sranan tongo
languages.bad=banda
languages.tr=tyrkisk
-languages.to=tonga (Tonga-\u00f8yene)
-languages.tn=tswana
+languages.to=tongansk
+languages.tn=setswana
languages.tl=tagalog
languages.tk=turkmensk
languages.ti=tigrinja
languages.th=thai
languages.kru=kurukh
-languages.tg=tatsjikisk
+languages.tg=tadsjikisk
languages.byn=blin
languages.te=telugu
-languages.csb=kasjubisk
languages.kro=kru
-languages.ta=tamil
+languages.csb=kasjubisk
+languages.ta=tamilsk
+languages.krl=karelsk
languages.tkl=tokelau
languages.efi=efik
languages.sw=swahili
languages.sv=svensk
languages.su=sundanesisk
languages.krc=karachay-balkar
-languages.st=sotho (s\u00f8rlig)
+languages.st=s\u00f8r-sotho
languages.ss=swati
languages.sr=serbisk
languages.sq=albansk
languages.men=mende
-languages.crp=kreolsk og pidgin (annet)
+languages.crp=kreol- eller pidginspr\u00e5k
languages.so=somalisk
languages.afh=afrihili
languages.sn=shona
languages.sm=samoansk
languages.sl=slovensk
-languages.grc=gammelgresk (til 1453)
+languages.grc=gammelgresk
languages.sk=slovakisk
languages.grb=grebo
languages.si=singalesisk
languages.sh=serbokroatisk
-languages.afa=afroasiatisk (annet)
languages.crh=krimtatarisk
+languages.afa=afroasiatisk spr\u00e5k
languages.sg=sango
languages.se=nordsamisk
languages.sd=sindhi
@@ -715,29 +707,34 @@ languages.udm=udmurt
languages.sc=sardinsk
languages.sa=sanskrit
languages.rw=kinjarwanda
+languages.nwc=klassisk newari
languages.ru=russisk
languages.mdr=mandar
languages.ro=rumensk
languages.rn=rundi
languages.rm=retoromansk
+languages.fr_CH=sveitsisk fransk
languages.mdf=moksha
+languages.tiv=tiv
+languages.fr_CA=canadisk fransk
languages.ady=adyghe
languages.zun=zuni
languages.kpe=kpelle
languages.qu=quechua
languages.tig=tigr\u00e9
languages.son=songhai
-languages.cpp=kreolsk og pidgin, portugisiskbasert (annet)
+languages.cpp=portugisiskbasert kreol- eller pidginspr\u00e5k
+languages.rup=aromansk
languages.sog=sogdisk
languages.ada=adangme
-languages.cpf=kreolsk og pidgin, franskbasert (annet)
-languages.hit=hettittisk
languages.kos=kosraeansk
-languages.cpe=kreolsk og pidgin, engelskbasert (annet)
+languages.hit=hettittisk
+languages.cpf=fransk kreolsk eller pidginspr\u00e5k
+languages.cpe=engelsk kreolsk eller pidginspr\u00e5k
languages.him=himachali
-languages.got=gotisk
-languages.hil=hiligaynon
languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=gotisk
languages.gor=gorontalo
languages.gon=gondi
languages.din=dinka
@@ -746,15 +743,18 @@ languages.pt=portugisisk
languages.ps=pashto
languages.fur=friuliansk
languages.phn=f\u00f8nikisk
-languages.goh=gammelh\u00f8ytysk (ca.750-1050)
+languages.de_CH=sveitsisk h\u00f8ytysk
+languages.goh=gammelh\u00f8ytysk
languages.snk=soninke
languages.cop=koptisk
languages.yap=yapesisk
languages.ach=acoli
-languages.phi=filippinsk (annet)
+languages.yao=yao
+languages.phi=filippinsk spr\u00e5k
languages.pl=polsk
languages.ace=achinesisk
languages.pi=pali
+languages.pt_PT=iberisk portugisisk
languages.pa=panjabi
languages.bug=buginesisk
languages.iba=iban
@@ -767,7 +767,7 @@ languages.map=austronesisk
languages.or=oriya
languages.man=mandingo
languages.smj=lulesamisk
-languages.smi=samisk spr\u00e5k (annet)
+languages.smi=samisk spr\u00e5k
languages.mak=makasar
languages.om=oromo
languages.mai=maithili
@@ -775,24 +775,27 @@ languages.oj=ojibwa
languages.mag=magahi
languages.mad=maduresisk
languages.sma=s\u00f8rsamisk
-languages.oc=oksitansk (etter 1500)
-languages.nso=sotho, nord
-languages.btk=batak (Indonesia)
+languages.oc=oksitansk
+languages.nso=nord-sotho
+languages.btk=batakisk
languages.myv=erzya
+languages.es_ES=iberisk spansk
+languages.de_AT=\u00f8sterriksk tysk
languages.dgr=dogrib
languages.ny=nyanja
-languages.myn=maya
+languages.myn=mayaspr\u00e5k
languages.nv=navajo
languages.kmb=kimbundu
-languages.nr=ndebele, s\u00f8r
-languages.gmh=mellomh\u00f8ytysk (ca.1050-1500)
+languages.nr=s\u00f8r-ndebele
+languages.gmh=mellomh\u00f8ytysk
languages.no=norsk
-languages.nn=norsk nynorsk
+languages.nn=nynorsk
languages.nl=nederlandsk
+languages.root=rot
languages.ng=ndonga
-languages.sla=slavisk (annet)
+languages.sla=slavisk spr\u00e5k
languages.ne=nepalsk
-languages.nd=ndebele (nord)
+languages.nd=nord-ndebele
languages.cmc=kamisk spr\u00e5k
languages.tet=tetum
languages.nb=norsk bokm\u00e5l
@@ -802,26 +805,30 @@ languages.tem=temne
languages.my=burmesisk
languages.lez=lezghian
languages.mt=maltesisk
-languages.peo=gammelpersisk (ca. 600-400 f. kr.)
+languages.frs=\u00f8stfrisisk
+languages.peo=gammelpersisk
languages.ms=malayisk
+languages.frr=nordfrisisk
languages.mr=marathi
-languages.fro=gammelfransk (842 til ca.1400)
+languages.fro=gammelfransk
languages.mo=moldavisk
languages.mn=mongolsk
-languages.frm=mellomfransk (ca.1400-1600)
+languages.frm=mellomfransk
languages.ml=malayalam
languages.jrb=j\u00f8dearabisk
languages.mk=makedonsk
languages.mi=maori
languages.mh=marshallesisk
languages.mg=madagassisk
+languages.nqo=n-k\u00e5
languages.mwr=marwari
languages.bra=braj
+languages.mwl=mirandesisk
+languages.den=slavej
languages.lv=latvisk
-languages.den=slavisk (athapaskansk)
-languages.lu=luba-katanga
-languages.lt=litauisk
+languages.lu=luba-Katanga
languages.del=delaware
+languages.lt=litauisk
languages.lo=laotisk
languages.ln=lingala
languages.li=limburgisk
@@ -831,19 +838,20 @@ languages.lb=luxemburgsk
languages.la=latin
languages.jpr=j\u00f8depersisk
languages.vot=votisk
-languages.sit=sino-tibetansk (annet)
+languages.sit=sino-tibetansk spr\u00e5k
languages.ky=kirgisisk
languages.kw=kornisk
languages.kv=komi
languages.ku=kurdisk
-languages.sio=sioux-spr\u00e5k
-languages.ks=kasjmiri
+languages.sio=siouxspr\u00e5k
+languages.ks=kasjmirsk
languages.kr=kanuri
languages.awa=awadhi
languages.ko=koreansk
languages.kn=kannada
languages.km=khmer
-languages.kl=kalaallisut
+languages.en_GB=britisk engelsk
+languages.kl=gr\u00f8nlandsk
languages.kk=kasakhisk
languages.rom=romani
languages.kj=kuanyama
@@ -853,58 +861,59 @@ languages.kg=kikongo
languages.non=gammelnorsk
languages.ka=georgisk
languages.mus=creek
-languages.roa=romansk (annet)
+languages.roa=romansk spr\u00e5k
languages.nog=nogai
-languages.mun=munda-spr\u00e5k
+languages.mun=mundaspr\u00e5k
languages.mul=flere spr\u00e5k
languages.jv=javanesisk
-languages.gil=kiribatisk; gilbertesisk
+languages.gil=kiribatisk
languages.znd=zande
languages.shn=shan
+languages.fon=fon
languages.xal=kalmyk
languages.aus=australsk spr\u00e5k
languages.kho=khotanesisk
languages.ja=japansk
-languages.khi=khoisan (annet)
+languages.khi=khoisanspr\u00e5k
languages.pau=palauisk
languages.chy=cheyenne
-languages.tai=tai (annet)
+languages.tai=taispr\u00e5k
languages.iu=inuktitut
languages.pap=papiamento
languages.it=italiensk
languages.sgn=tegnspr\u00e5k
-languages.kha=khasi
languages.is=islandsk
+languages.kha=khasi
languages.chr=cherokee
languages.pam=pampanga
languages.pal=pahlavi
languages.chp=chipewiansk
-languages.cho=choctaw
languages.io=ido
+languages.cho=choctaw
languages.chn=chinook
languages.chm=mari
languages.tyv=tuvinisk
languages.bnt=bantu
languages.pag=pangasinan
+languages.ik=inupiak
languages.chk=chuukesisk
-languages.ik=unupiak
-languages.haw=hawaiisk
languages.ii=sichuan-yi
+languages.haw=hawaiisk
languages.lam=lamba
-languages.chg=chagatai
languages.ig=ibo
-languages.sga=gammelirsk (til 900)
-languages.paa=papuisk (annet)
+languages.chg=chagatai
+languages.sga=gammelirsk
+languages.paa=papuisk spr\u00e5k
languages.ie=interlingue
languages.id=indonesisk
languages.lah=lahnda
-languages.chb=chibcha
languages.day=dayak
+languages.chb=chibcha
languages.ia=interlingua
languages.lad=ladinsk
-languages.dar=dargwa
-languages.hai=haida
languages.hz=herero
+languages.hai=haida
+languages.dar=dargwa
languages.hy=armensk
languages.ath=athapaskansk spr\u00e5k
languages.hu=ungarsk
@@ -916,77 +925,90 @@ languages.hi=hindi
languages.dyu=dyula
languages.he=hebraisk
languages.ast=asturisk
+languages.kfo=koro
+languages.ha=hausa
languages.wen=sorbisk spr\u00e5k
languages.gv=manx
languages.gu=gujarati
-languages.sem=semittisk (annet)
+languages.sem=semittisk spr\u00e5k
languages.sel=selkupisk
languages.iro=irokansk spr\u00e5k
languages.gn=guarani
-languages.gl=galicisk
+languages.gl=galisisk
+languages.en_CA=canadisk engelsk
languages.arw=arawak
-languages.gd=skotsk g\u00e6lisk
-languages.art=kunstig (annet)
languages.gez=ges
+languages.art=kunstig spr\u00e5k
+languages.gd=skotsk g\u00e6lisk
languages.ira=iransk
languages.ga=irsk
languages.arp=arapaho
languages.arn=araukansk
-languages.fy=frisisk
+languages.fy=vestfrisisk
languages.bla=siksika
-languages.gem=germansk (annet)
+languages.gem=germansk spr\u00e5k
languages.ypk=jupisk spr\u00e5k
-languages.fr=fransk
languages.arc=arameisk
+languages.fr=fransk
languages.fo=f\u00e6r\u00f8ysk
-languages.cel=keltisk (annet)
+languages.cel=keltisk spr\u00e5k
languages.fj=fijiansk
languages.fi=finsk
languages.ff=fulani
languages.tvl=tuvalu
languages.ceb=cebuansk
languages.fa=persisk
+languages.en_AU=australsk engelsk
+languages.zh_Hans=forenklet kinesisk
+languages.zh_Hant=tradisjonell kinesisk
languages.eu=baskisk
languages.sco=skotsk
languages.et=estisk
+languages.scn=siciliansk
languages.es=spansk
languages.eo=esperanto
languages.en=engelsk
languages.el=gresk
-languages.tut=altaisk (annet)
+languages.tut=altaisk spr\u00e5k
languages.niu=niueansk
-languages.tup=tupi-spr\u00e5k
+languages.tup=tupispr\u00e5k
languages.ee=ewe
languages.tum=tumbuka
+languages.nl_BE=flamsk
+languages.es_419=latinamerikansk spansk
languages.mos=mossi
languages.dz=dzongkha
-languages.nic=niger - kordofaniansk (annet)
-languages.dv=divehi
-languages.fiu=finsk-ugrisk (annet)
+languages.kcg=tyap
+languages.nic=niger-kordofiansk spr\u00e5k
languages.lus=lushai
+languages.fiu=finsk-ugrisk spr\u00e5k
+languages.dv=divehi
languages.nia=nias
languages.moh=mohawk
+languages.luo=luo
languages.lun=lunda
-languages.apa=apache-spr\u00e5k
+languages.apa=apachespr\u00e5k
+languages.fil=filippinsk
languages.lui=luiseno
languages.hup=hupa
+languages.cch=atsam
languages.bin=bini
languages.de=tysk
-languages.lua=luba-lulua
+languages.lua=luba-Lulua
languages.bik=bikol
languages.was=washo
-languages.und=ikke angitt
+languages.und=ukjent eller ugyldig spr\u00e5k
languages.war=waray
languages.da=dansk
-languages.dum=mellomnederlandsk (ca. 1050-1350)
+languages.dum=mellomnederlandsk
languages.wal=walamo
-languages.mno=manobo-spr\u00e5k
+languages.mno=manobospr\u00e5k
languages.wak=wakasjansk spr\u00e5k
languages.sat=santali
languages.cy=walisisk
languages.sas=sasak
-languages.cv=tsjuvansk
languages.kbd=kabardisk
+languages.cv=tsjuvansk
languages.cu=kirkeslavisk
languages.mni=manipuri
languages.cs=tsjekkisk
@@ -995,77 +1017,97 @@ languages.cr=cree
languages.sal=salishansk spr\u00e5k
languages.dua=duala
languages.co=korsikansk
-languages.sai=s\u00f8ramerikansk indiansk (annet)
+languages.sai=s\u00f8ramerikansk indiansk spr\u00e5k
languages.mnc=mandsju
languages.sah=jakutsk
-languages.gba=gbaya
-languages.inh=ingusjisk
languages.kaw=kawi
+languages.inh=ingusjisk
+languages.gba=gbaya
languages.sad=sandawe
languages.ch=chamorro
+languages.ine=indoeuropeisk spr\u00e5k
languages.bho=bhojpuri
-languages.ine=indoeuropeisk (annet)
-languages.enm=mellomengelsk (1100-1500)
-languages.ce=tsjetsjensk
-languages.inc=indisk (annet)
+languages.enm=mellomengelsk
languages.kar=karensk
+languages.inc=indisk spr\u00e5k
+languages.ce=tsjetsjensk
languages.gay=gayo
languages.ca=katalansk
languages.umb=umbundu
languages.syr=syrisk
languages.kam=kamba
+languages.anp=angika
languages.tsi=tsimshian
-languages.ang=gammelengelsk (ca. 450-1100)
-languages.cau=kaukasisk (annet)
+languages.kaj=jju
+languages.ang=gammelengelsk
languages.kac=kachin
+languages.cau=kaukasisk spr\u00e5k
languages.kab=kabylsk
-languages.bs=bosnisk
languages.kaa=karakalpakisk
-languages.br=bretonsk
+languages.bs=bosnisk
languages.car=karibisk
+languages.br=bretonsk
+languages.syc=klassisk syrisk
languages.bo=tibetansk
languages.bn=bengali
languages.bm=bambara
languages.gaa=ga
+languages.cai=sentralamerikansk indiansk spr\u00e5k
languages.bi=bislama
-languages.cai=sentralamerikansk indiansk (annet)
languages.bh=bihari
languages.bg=bulgarsk
languages.be=hviterussisk
+languages.pt_BR=brasiliansk portugisisk
languages.cad=caddo
languages.ba=basjkirsk
languages.zu=zulu
languages.zen=zenaga
-languages.pro=gammelproven\u00e7alsk (til 1500)
+languages.pro=gammelproven\u00e7alsk
languages.hsb=h\u00f8ysorbisk
languages.az=aserbajdsjansk
languages.ay=aymara
languages.av=avarisk
-languages.as=assamisk
-languages.ar=arabisk
+languages.as=assamesisk
languages.dsb=lavsorbisk
-languages.elx=elamittisk
+languages.ar=arabisk
languages.ilo=iloko
+languages.elx=elamittisk
languages.zh=kinesisk
languages.an=aragonsk
-languages.pra=prakrit-spr\u00e5k
+languages.pra=prakritspr\u00e5k
languages.am=amharisk
languages.new=newari
languages.ak=akan
languages.za=zhuang
+languages.en_US=amerikansk engelsk
languages.af=afrikaans
languages.ae=avestisk
+languages.alt=s\u00f8raltaisk
languages.ab=abkhasisk
languages.aa=afar
languages.yo=joruba
languages.alg=algonkinsk spr\u00e5k
languages.ale=aleutisk
-languages.mkh=mon-khmer (Other)
+languages.mkh=mon-khmerspr\u00e5k
languages.yi=jiddisk
-languages.dra=dravidisk (annet)
-languages.ber=berbisk (annet)
-languages.nds=lavtysk; lavsaksisk
+languages.dra=dravidisk spr\u00e5k
+languages.ber=berbisk
+languages.nds=lavtysk
languages.bem=bemba
languages.bej=beja
languages.tpi=tok pisin
-variants.REVISED=Revidert
+variants.SCOUSE=scouse dialekt
+variants.BOONT=boontling
+variants.REVISED=revidert rettskriving
+variants.AREVELA=\u00f8st-armensk
+variants.POLYTON=polytonisk rettskriving
+variants.FONIPA=FONIPA
+variants.1996=tysk ortografi fra 1996
+variants.SAAHO=saaho dialekt
+variants.SCOTLAND=skotsk standard engelsk
+variants.AREVMDA=vest-armensk
+variants.VALENCIA=valensisk dialekt
+variants.1901=tradisjonell tysk ortografi
+variants.MONOTON=monotonisk rettskriving
+variants.FONUPA=FONUPA
+variants.ROZAJ=resisk dialekt
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ne.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ne.properties
new file mode 100644
index 0000000..0ae99f7
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ne.properties
@@ -0,0 +1,421 @@
+# LocaleInformation_ne.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+minusSign=-
+zeroDigit=\u0966
+decimalSeparator=.
+groupingSeparator=,
+currenciesDisplayName.INR=\u092d\u093e\u0930\u0924\u0940 \u0930\u0942\u092a\u093f\u0901\u092f\u093e
+currenciesDisplayName.NOK=\u0928\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u093e\u0932\u0940 \u0915\u094d\u0930\u094b\u0928
+currenciesDisplayName.ALL=\u0905\u0932\u094d\u092c\u093e\u0928\u093f\u092f\u0928 \u0932\u0947\u0915
+currenciesDisplayName.JPY=\u091c\u093e\u092a\u093e\u0928\u0940 \u092f\u0947\u0928
+currenciesDisplayName.RUB=\u0930\u0942\u0938\u0940 \u0930\u0942\u092c\u0932
+currenciesDisplayName.AFN=\u0905\u092b\u094d\u0917\u093e\u0928\u0940
+currenciesDisplayName.BRL=\u092c\u094d\u0930\u093e\u091c\u093f\u0932\u093f\u092f\u0928 \u0930\u093f\u092f\u0932
+currenciesDisplayName.CNY=\u091a\u093f\u0928\u093f\u0901\u092f\u093e \u092f\u0941\u0906\u0928 \u0930\u0947\u0928\u093f\u092c\u0940
+currenciesDisplayName.AUD=\u0905\u0937\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u0928 \u0921\u0932\u0930
+currenciesDisplayName.USD=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0921\u0932\u0930
+currenciesDisplayName.XXX=\u0905\u092a\u0930\u093f\u091a\u093f\u0924 \u0935\u093e \u0905\u0935\u0948\u0927 \u092e\u0941\u0926\u094d\u0930\u093e
+currenciesDisplayName.EUR=\u092f\u0941\u0930\u094b
+currenciesDisplayName.PHP=\u092b\u093f\u0932\u093f\u092a\u093f\u0928\u0940 \u092a\u0947\u0938\u094b
+currenciesDisplayName.AFA=\u0905\u092b\u094d\u0917\u093e\u0928\u0940(\u0967\u096f\u0968\u096d-\u0968\u0966\u0966\u0968)
+currenciesDisplayName.GBP=\u092c\u0947\u0932\u093e\u092f\u0924\u0940 \u092a\u093e\u0909\u0923\u094d\u0921 \u0938\u094d\u091f\u0930\u094d\u0932\u093f\u0919
+currenciesSymbol.NPR=\u0928\u0947\u0930\u0942
+shortMonths=\u091c\u0928\u00ae\u092b\u0947\u092c\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u0905\u092a\u094d\u0930\u093f\u00ae\u092e\u0947\u00ae\u091c\u0941\u0928\u00ae\u091c\u0941\u0932\u093e\u00ae\u0905\u0917\u00ae\u0938\u0947\u092a\u094d\u091f\u00ae\u0905\u0915\u094d\u091f\u094b\u00ae\u0928\u094b\u092d\u0947\u00ae\u0921\u093f\u0938\u0947\u00ae\u00ae
+months=\u091c\u0928\u0935\u0930\u0940\u00ae\u092b\u0947\u092c\u094d\u0930\u0941\u0905\u0930\u0940\u00ae\u092e\u093e\u0930\u094d\u091a\u00ae\u0905\u092a\u094d\u0930\u093f\u0932\u00ae\u092e\u0947\u00ae\u091c\u0941\u0928\u00ae\u091c\u0941\u0932\u093e\u0908\u00ae\u0905\u0917\u0938\u094d\u0924\u00ae\u0938\u0947\u092a\u094d\u091f\u0947\u092e\u094d\u092c\u0930\u00ae\u0905\u0915\u094d\u091f\u094b\u092c\u0930\u00ae\u0928\u094b\u092d\u0947\u092e\u094d\u092c\u0930\u00ae\u0921\u093f\u0938\u0947\u092e\u094d\u092c\u0930\u00ae\u00ae
+shortWeekdays=\u00ae\u0906\u0907\u0924\u00ae\u0938\u094b\u092e\u00ae\u092e\u0919\u094d\u0917\u0932\u00ae\u092c\u0941\u0927\u00ae\u092c\u093f\u0939\u0940\u00ae\u0936\u0941\u0915\u094d\u0930\u00ae\u0936\u0928\u093f\u00ae
+weekdays=\u00ae\u0906\u0907\u0924\u092c\u093e\u0930\u00ae\u0938\u094b\u092e\u092c\u093e\u0930\u00ae\u092e\u0919\u094d\u0917\u0932\u092c\u093e\u0930\u00ae\u092c\u0941\u0927\u092c\u093e\u0930\u00ae\u092c\u093f\u0939\u0940\u092c\u093e\u0930\u00ae\u0936\u0941\u0915\u094d\u0930\u092c\u093e\u0930\u00ae\u0936\u0928\u093f\u092c\u093e\u0930\u00ae
+eras=\u0908\u0938\u093e \u092a\u0942\u0930\u094d\u0935\u00ae\u0938\u0928\u094d\u00ae
+ampms=\u092a\u0942\u0930\u094d\u0935 \u092e\u0927\u094d\u092f\u093e\u0928\u094d\u0939\u00ae\u0909\u0924\u094d\u0924\u0930 \u092e\u0927\u094d\u092f\u093e\u0928\u094d\u0939\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Africa_Central\u00ae\u0967\u0969:\u0968\u096b \u0915\u0947\u0928\u094d\u0926\u094d\u0930\u0940\u092f \u0905\u092b\u094d\u0930\u093f\u0915\u0940 \u0938\u092e\u092f\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u092a\u0942\u0930\u094d\u0935\u0940 \u091f\u093f\u092e\u094b\u0930
+territories.TK=\u0924\u094b\u0917\u094b
+territories.TJ=\u0924\u093e\u091c\u093f\u0915\u093f\u0938\u094d\u0924\u093e\u0928
+territories.TH=\u0925\u093e\u0907\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.TG=\u091f\u094b\u0917\u094b
+territories.TF=\u092b\u094d\u0930\u093e\u0928\u094d\u0938\u0947\u0932\u0940 \u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u0915\u094d\u0937\u0947\u0924\u094d\u0930
+territories.GY=\u0917\u0941\u092f\u093e\u0928\u093e
+territories.TD=\u091a\u093e\u0921
+territories.TC=\u0924\u0941\u0930\u094d\u0915 \u0930 \u0915\u093e\u0907\u0915\u094b\u0938 \u091f\u093e\u092a\u0941
+territories.GW=\u0917\u093f\u0928\u0940-\u092c\u093f\u0938\u093e\u0909
+territories.GU=\u0917\u0941\u0935\u093e\u092e
+territories.GT=\u0917\u094d\u0935\u093e\u091f\u0947\u092e\u093e\u0932\u093e
+territories.GR=\u0917\u094d\u0930\u093f\u0936
+territories.GQ=\u092d\u0942-\u092e\u0927\u094d\u092f\u0940\u092f \u0917\u093f\u0928\u0940
+territories.GP=\u0917\u094d\u0935\u093e\u0921\u0947\u0932\u0941\u092a
+territories.SZ=\u0938\u094d\u0935\u093e\u091c\u093f\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.SY=\u0938\u093f\u0930\u093f\u092f\u093e
+territories.GN=\u0917\u093f\u0928\u0940
+territories.GM=\u0917\u093e\u092e\u094d\u0935\u093f\u092f\u093e
+territories.GL=\u0917\u094d\u0930\u093f\u0928\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.SV=\u090f\u0932\u094d \u0938\u093e\u0932\u094d\u092d\u093e\u0921\u094b\u0930
+territories.062=\u0926\u0915\u094d\u0937\u093f\u0923 \u092e\u0927\u094d\u092f \u090f\u0936\u093f\u092f\u093e
+territories.ST=\u0938\u093e\u0913 \u091f\u094b\u092e\u0947 \u0930 \u092a\u094d\u0930\u093f\u0928\u094d\u0938\u093f\u092a
+territories.GI=\u091c\u093f\u092c\u094d\u0930\u093e\u0932\u094d\u091f\u093e\u0930
+territories.061=\u092a\u094b\u0932\u093f\u0928\u0947\u0936\u093f\u092f\u093e
+territories.GH=\u0918\u093e\u0928\u093e
+territories.SR=\u0938\u0941\u0930\u093f\u0928\u0947\u092e
+territories.GG=\u0917\u0941\u090f\u0930\u094d\u0928\u0938\u0947
+territories.GF=\u092b\u094d\u0930\u093e\u0928\u094d\u0938\u0947\u0932\u0940 \u0917\u093e\u092f\u0928\u093e
+territories.GE=\u091c\u094b\u0930\u094d\u091c\u093f\u092f\u093e
+territories.SO=\u0938\u094b\u092e\u093e\u0932\u093f\u092f\u093e
+territories.GD=\u0917\u094d\u0930\u0947\u0928\u093e\u0921\u093e
+territories.SN=\u0938\u0947\u0928\u0947\u0917\u093e\u0932
+territories.SM=\u0938\u093e\u0928\u094d \u092e\u093e\u0930\u093f\u0928\u094b
+territories.GB=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0905\u0927\u093f\u0930\u093e\u091c\u094d\u092f
+territories.SL=\u0938\u093f\u090f\u0930\u094d\u0930\u093e \u0932\u093f\u0913\u0928
+territories.GA=\u0917\u093e\u0935\u094b\u0928
+territories.SK=\u0938\u094d\u0932\u094b\u092d\u093e\u0915\u093f\u092f\u093e
+territories.SJ=\u0938\u092d\u093e\u0932\u094d\u092c\u093e\u0930\u094d\u0921 \u0930 \u091c\u093e\u0928 \u092e\u093e\u092f\u0947\u0928
+territories.SI=\u0938\u094d\u0932\u094b\u092d\u0947\u0928\u093f\u092f\u093e
+territories.SH=\u0938\u0947\u0928\u094d\u091f \u0939\u0947\u0932\u0947\u0928\u093e
+territories.SG=\u0938\u093f\u0919\u094d\u0917\u093e\u092a\u0941\u0930
+territories.SE=\u0938\u094d\u0935\u093f\u0921\u0947\u0928
+territories.SD=\u0938\u0941\u0921\u093e\u0928
+territories.SC=\u0938\u0947\u091a\u0947\u0932\u0947\u0938
+territories.SB=\u0938\u094b\u0932\u094b\u092e\u094b\u0928 \u091f\u093e\u092a\u0941
+territories.SA=\u0938\u093e\u0909\u0926\u0940 \u0905\u0930\u092c
+territories.FR=\u092b\u094d\u0930\u093e\u0928\u094d\u0938
+territories.FO=\u092b\u093e\u0930\u094b\u0930 \u091f\u093e\u092a\u0941
+territories.057=\u092e\u093e\u0907\u0915\u094d\u0930\u094b\u0928\u0947\u0938\u093f\u092f\u093e\u0932\u0940 \u0915\u094d\u0937\u0947\u0924\u094d\u0930
+territories.FM=\u092e\u093e\u0907\u0915\u094d\u0930\u094b\u0928\u0947\u0938\u093f\u092f\u093e
+territories.RW=\u0930\u0935\u093e\u0923\u094d\u0921\u093e
+territories.054=\u092e\u0947\u0932\u093e\u0928\u0947\u0938\u093f\u092f\u093e
+territories.FK=\u092b\u0915\u0932\u094d\u092f\u093e\u0923\u094d\u0921 \u091f\u093e\u092a\u0941
+territories.053=\u0905\u0937\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e \u0930 \u0928\u094d\u092f\u0941\u091c\u093f\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.RU=\u0930\u0942\u0938
+territories.FJ=\u092b\u093f\u091c\u0940
+territories.FI=\u092b\u093f\u0928\u094d\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.RS=\u0938\u0930\u094d\u092c\u093f\u092f\u093e
+territories.RO=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e
+territories.RE=\u0930\u093f\u092f\u0941\u0928\u093f\u092f\u0928
+territories.ET=\u0907\u0925\u094b\u092a\u093f\u092f\u093e
+territories.ES=\u0938\u094d\u092a\u0947\u0928
+territories.ER=\u090f\u0930\u093f\u0924\u094d\u0930\u093f\u092f\u093e
+territories.QU=\u092f\u0941\u0930\u094b\u092a\u093f\u092f\u0928 \u092f\u0941\u0928\u093f\u092f\u0928
+territories.EH=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u0938\u093e\u0939\u093e\u0930\u093e
+territories.EG=\u0907\u091c\u093f\u092a\u094d\u091f
+territories.EE=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u093e
+territories.QO=\u092c\u093e\u0939\u094d\u092f \u0913\u0938\u0928\u093f\u092f\u093e
+territories.EC=\u0907\u0915\u094d\u0935\u0921\u0947\u0930
+territories.DZ=\u0905\u0932\u094d\u091c\u0947\u0930\u093f\u092f\u093e
+territories.QA=\u0915\u091f\u093e\u0930
+territories.039=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u092f\u0941\u0930\u094b\u092a
+territories.DO=\u0921\u094b\u092e\u093f\u0928\u093f\u0915\u0928 \u0917\u0923\u0924\u0928\u094d\u0924\u094d\u0930
+territories.PY=\u092a\u094d\u092f\u093e\u0930\u093e\u0917\u0941\u092f\u0947
+territories.DM=\u0921\u094b\u092e\u093f\u0928\u093f\u0915\u093e
+territories.035=\u0926\u0915\u094d\u0937\u093f\u0923 \u092a\u0942\u0930\u094d\u0935\u0940 \u090f\u0936\u093f\u092f\u093e
+territories.PW=\u092a\u0932\u093e\u0909
+territories.034=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u090f\u0936\u093f\u092f\u093e
+territories.DK=\u0921\u0947\u0928\u094d\u092e\u093e\u0930\u094d\u0915
+territories.DJ=\u0921\u093f\u091c\u093f\u092c\u0941\u091f\u0940
+territories.PT=\u092a\u094b\u0930\u094d\u0924\u0941\u0917\u0932
+territories.PS=\u092a\u094d\u092f\u093e\u0932\u0947\u0938\u094d\u091f\u0928\u0940 \u092d\u0942-\u092d\u093e\u0917
+territories.030=\u092a\u0942\u0930\u094d\u0935\u0940 \u090f\u0936\u093f\u092f\u093e
+territories.PR=\u092a\u094d\u092f\u0941\u0930\u094d\u091f\u094b\u0930\u093f\u0915\u094b
+territories.DE=\u091c\u0930\u094d\u092e\u0928\u0940
+territories.PN=\u092a\u093f\u091f\u0915\u093e\u0907\u0930\u094d\u0928
+territories.PM=\u0938\u0947\u0928\u094d\u091f \u092a\u093f\u0930\u094d\u0930\u0947 \u0930 \u092e\u093f\u0915\u094d\u0915\u0947\u0932\u094b\u0928
+territories.PL=\u092a\u094b\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.PK=\u092a\u093e\u0915\u093f\u0938\u094d\u0924\u093e\u0928
+territories.PH=\u092b\u093f\u0932\u093f\u092a\u093f\u0928\u094d\u0938
+territories.PG=\u092a\u092a\u0941\u0906 \u0928\u094d\u092f\u0942 \u0917\u093e\u0907\u0928\u093f\u092f\u093e
+territories.PF=\u092b\u094d\u0930\u093e\u0928\u094d\u0938\u0947\u0932\u0940 \u092a\u094b\u0932\u093f\u0928\u0947\u0938\u093f\u092f\u093e
+territories.CZ=\u091a\u0947\u0916 \u0917\u0923\u0924\u0928\u094d\u0924\u094d\u0930
+territories.PE=\u092a\u0947\u0930\u0942
+territories.CY=\u0938\u093e\u0907\u092a\u094d\u0930\u0938
+territories.CX=\u0915\u094d\u0930\u093f\u0937\u094d\u091f\u092e\u0938 \u091f\u093e\u092a\u0941
+territories.CV=\u0915\u0947\u092a \u092d\u0930\u094d\u0921\u0947
+territories.PA=\u092a\u0928\u093e\u092e\u093e
+territories.CU=\u0915\u094d\u092f\u0941\u092c\u093e
+territories.CR=\u0915\u094b\u0937\u094d\u091f\u093e\u0930\u093f\u0915\u093e
+territories.029=\u0915\u094d\u092f\u093e\u0930\u093f\u092c\u093f\u090f\u0928
+territories.CO=\u0915\u094b\u0932\u094b\u092e\u094d\u092c\u093f\u092f\u093e
+territories.CN=\u091a\u0940\u0928
+territories.CM=\u0915\u094d\u092f\u093e\u092e\u0947\u0930\u0942\u0928
+territories.CL=\u091a\u093f\u0932\u0940
+territories.CK=\u0915\u0941\u0915 \u091f\u093e\u092a\u0941
+territories.021=\u0909\u0924\u094d\u0924\u0930\u0940 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
+territories.CI=\u0906\u0907\u092d\u094b\u0930\u0940 \u0915\u094b\u0937\u094d\u091f
+territories.CH=\u0938\u094d\u0935\u093f\u091c\u0930\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.CG=\u0915\u094b\u0919\u094d\u0917\u094b - \u092c\u094d\u0930\u093e\u091c\u094d\u091c\u093e\u092d\u093f\u0932\u094d\u0932\u0947
+territories.CF=\u0915\u0947\u0928\u094d\u0926\u094d\u0930\u0940\u092f \u0905\u092b\u094d\u0930\u093f\u0915\u0940 \u0917\u0923\u0924\u0928\u094d\u0924\u094d\u0930
+territories.CD=\u0915\u094b\u0919\u094d\u0917\u094b-\u0915\u093f\u0928\u094d\u0936\u093e\u0938\u093e
+territories.CC=\u0915\u094b\u0915\u094b\u0938 \u091f\u093e\u092a\u0941
+territories.OM=\u0913\u092e\u0928
+territories.CA=\u0915\u094d\u092f\u093e\u0928\u093e\u0921\u093e
+territories.419=\u0932\u094d\u092f\u093e\u091f\u093f\u0928 \u0905\u092e\u0947\u0930\u093f\u0915\u093e \u0924\u0925\u093e \u0915\u094d\u092f\u093e\u0930\u093f\u092c\u093f\u092f\u0928
+territories.BZ=\u092c\u0947\u0932\u093f\u091c
+territories.BY=\u092c\u0947\u0932\u093e\u0930\u0942\u0938
+territories.BW=\u092c\u094b\u091f\u094d\u0938\u094d\u0935\u093e\u0928\u093e
+territories.BV=\u092c\u0941\u092d\u0947\u091f \u091f\u093e\u092a\u0941
+territories.BT=\u092d\u0941\u091f\u093e\u0928
+territories.BS=\u092c\u0939\u093e\u092e\u093e\u0938
+territories.BR=\u092c\u094d\u0930\u093e\u091c\u093f\u0932
+territories.019=\u0905\u092e\u0947\u0930\u093f\u0915\u093e\u0938
+territories.018=\u0926\u0915\u094d\u0937\u093f\u0923\u0940 \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.NZ=\u0928\u094d\u092f\u0941\u091c\u093f\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.017=\u092e\u0927\u094d\u092f \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.BO=\u092c\u094b\u0932\u093f\u092d\u093f\u092f\u093e
+territories.BN=\u092c\u094d\u0930\u0941\u0928\u093e\u0907
+territories.015=\u0909\u0924\u094d\u0924\u0930\u0940 \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.BM=\u092c\u0930\u094d\u092e\u0941\u0921\u093e
+territories.014=\u092a\u0942\u0930\u094d\u0935\u0940 \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.BL=\u0938\u0947\u0928\u094d\u091f \u092c\u093e\u0930\u094d\u0925\u093e\u0932\u0947\u092e\u0940
+territories.013=\u0915\u0947\u0928\u094d\u0926\u094d\u0930\u0940\u092f \u0905\u092e\u0947\u0930\u093f\u0915\u093e
+territories.NU=\u0928\u093f\u092f\u0941\u0907
+territories.BJ=\u092c\u0947\u0928\u093f\u0928
+territories.011=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.BI=\u092c\u0941\u0930\u0942\u0923\u094d\u0921\u0940
+territories.172=\u0915\u092e\u0928\u0935\u0947\u0932\u094d\u0925\u0915\u093e \u0938\u094d\u0935\u0924\u0928\u094d\u0924\u094d\u0930 \u0930\u093e\u091c\u094d\u092f\u0939\u0930\u0942
+territories.BH=\u092c\u093e\u0939\u094d\u0930\u0947\u0928
+territories.NR=\u0928\u093e\u0909\u0930\u0942
+territories.BG=\u092c\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u093e
+territories.BF=\u092c\u0930\u094d\u0915\u093f\u0928\u093e \u092b\u093e\u0938\u094b
+territories.NP=\u0928\u0947\u092a\u093e\u0932
+territories.BE=\u092c\u0947\u0932\u094d\u091c\u093f\u092f\u092e
+territories.ZZ=\u0905\u092a\u0930\u093f\u091a\u093f\u0924 \u0935\u093e \u0905\u0935\u0948\u0927 \u0915\u094d\u0937\u0947\u0924\u094d\u0930
+territories.NO=\u0928\u0930\u094d\u0935\u0947
+territories.BD=\u092c\u0919\u094d\u0917\u0932\u093e\u0926\u0947\u0936
+territories.BB=\u092c\u093e\u0930\u094d\u092c\u093e\u0921\u094b\u0938
+territories.ZW=\u091c\u093f\u092e\u094d\u092c\u093e\u092c\u0947
+territories.NL=\u0928\u0947\u0926\u0930\u0932\u094d\u092f\u093e\u0923\u094d\u0921\u094d\u0938
+territories.BA=\u092c\u094b\u0938\u094d\u0928\u093f\u092f\u093e \u0930 \u0939\u0930\u094d\u091c\u0917\u094b\u092d\u093f\u0928\u093f\u092f\u093e
+territories.NI=\u0928\u093f\u0915\u093e\u0930\u093e\u0917\u0941\u0935\u093e
+territories.NG=\u0928\u093e\u0907\u091c\u0947\u0930\u093f\u092f\u093e
+territories.NF=\u0928\u094b\u0930\u092b\u094b\u0932\u094d\u0915 \u091f\u093e\u092a\u0941
+territories.AZ=\u0905\u091c\u0930\u092c\u0948\u091c\u093e\u0928
+territories.NE=\u0928\u093e\u0907\u091c\u0930
+territories.AX=\u0905\u0932\u093e\u0928\u094d\u0921 \u091f\u093e\u092a\u0941
+territories.NC=\u0928\u092f\u093e\u0901 \u0915\u093e\u0932\u0947\u0921\u094b\u0928\u093f\u092f\u093e
+territories.AW=\u0906\u0930\u0942\u092c\u093e
+territories.ZM=\u091c\u093e\u092e\u094d\u092c\u093f\u092f\u093e
+territories.NA=\u0928\u093e\u092e\u093f\u092c\u093f\u092f\u093e
+territories.AU=\u0905\u0937\u094d\u091f\u094d\u0930\u0947\u0932\u093f\u092f\u093e
+territories.AT=\u0905\u0937\u094d\u091f\u094d\u0930\u093f\u092f\u093e
+territories.AS=\u0905\u092e\u0947\u0930\u093f\u0915\u0940 \u0938\u092e\u094b\u0906
+territories.AR=\u0905\u0930\u094d\u091c\u0947\u0923\u094d\u091f\u093f\u0928\u093e
+territories.AQ=\u0905\u0928\u094d\u091f\u093e\u0930\u0924\u093f\u0915\u093e
+territories.009=\u0913\u0938\u0928\u093f\u092f\u093e
+territories.MZ=\u092e\u094b\u091c\u093e\u092e\u094d\u092c\u093f\u0915
+territories.AO=\u0905\u0919\u094d\u0917\u094b\u0932\u093e
+territories.MY=\u092e\u0932\u0947\u0938\u093f\u092f\u093e
+territories.AN=\u0928\u0947\u0926\u0930\u0932\u094d\u092f\u093e\u0923\u094d\u0921\u094d\u0938 \u090f\u0923\u094d\u091f\u093f\u0932\u093f\u0938
+territories.MX=\u092e\u0947\u0915\u094d\u0938\u093f\u0915\u094b
+territories.AM=\u0906\u0930\u094d\u092e\u0947\u0928\u093f\u092f\u093e
+territories.005=\u0926\u0915\u094d\u0937\u093f\u0923 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
+territories.MW=\u092e\u093e\u0932\u093e\u0935\u0940
+territories.AL=\u0905\u0932\u094d\u092c\u093e\u0928\u093f\u092f\u093e
+territories.MV=\u092e\u093e\u0932\u094d\u0926\u093f\u092d\u094d\u0938
+territories.003=\u0909\u0924\u094d\u0924\u0930 \u0905\u092e\u0947\u0930\u093f\u0915\u093e
+territories.ZA=\u0926\u0915\u094d\u0937\u093f\u0923 \u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.MU=\u092e\u093e\u0909\u0930\u093f\u091f\u0938
+territories.002=\u0905\u092b\u094d\u0930\u093f\u0915\u093e
+territories.MT=\u092e\u093e\u0932\u094d\u091f\u093e
+territories.AI=\u0906\u0919\u094d\u0917\u0941\u0907\u0932\u093e
+territories.001=\u0935\u093f\u0936\u094d\u0935
+territories.MS=\u092e\u094b\u0928\u094d\u091f\u0938\u0947\u0930\u094d\u0930\u093e\u091f
+territories.MR=\u092e\u093e\u0909\u0930\u093f\u091f\u093e\u0928\u093f\u092f\u093e
+territories.AG=\u090f\u0928\u094d\u091f\u093f\u0917\u0941\u0906 \u0930 \u092c\u093e\u0930\u092c\u0941\u0921\u093e
+territories.MQ=\u092e\u093e\u0930\u094d\u091f\u093f\u0928\u093f\u0915
+territories.AF=\u0905\u092b\u094d\u0917\u093e\u0928\u093f\u0937\u094d\u0924\u093e\u0928
+territories.MP=\u0909\u0924\u094d\u0924\u0930\u0940 \u092e\u093e\u0930\u093f\u0906\u0928\u093e \u091f\u093e\u092a\u0941
+territories.AE=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0905\u0930\u092c \u0907\u092e\u093f\u0930\u093e\u091f\u094d\u0938
+territories.MO=\u092e\u0915\u093e\u0935\u094b
+territories.AD=\u0905\u0928\u094d\u0921\u094b\u0930\u094d\u0930\u093e
+territories.MN=\u092e\u0919\u094d\u0917\u094b\u0932\u093f\u092f\u093e
+territories.MM=\u092e\u094d\u092f\u093e\u0928\u094d\u092e\u093e\u0930
+territories.ML=\u092e\u093e\u0932\u0940
+territories.MK=\u092e\u094d\u092f\u093e\u0915\u0947\u0921\u094b\u0928\u093f\u092f\u093e
+territories.YT=\u092e\u093e\u092f\u094b\u091f\u094d\u091f
+territories.MH=\u092e\u093e\u0930\u094d\u0936\u0932 \u091f\u093e\u092a\u0941
+territories.MG=\u092e\u0921\u093e\u0917\u093e\u0938\u094d\u0915\u0930
+territories.MF=\u0938\u0947\u0928\u094d\u091f \u092e\u093e\u0930\u094d\u091f\u093f\u0928
+territories.ME=\u092e\u094b\u0928\u094d\u091f\u0947\u0928\u0947\u0917\u094d\u0930\u094b
+territories.MD=\u092e\u093e\u0932\u094d\u0921\u094b\u092d\u093e
+territories.MC=\u092e\u094b\u0928\u093e\u0915\u094b
+territories.MA=\u092e\u094b\u0930\u094b\u0915\u094d\u0915\u094b
+territories.YE=\u092f\u0947\u092e\u0947\u0928
+territories.LY=\u0932\u093f\u092c\u093f\u092f\u093e
+territories.LV=\u0932\u093e\u091f\u094d\u092d\u093f\u092f\u093e
+territories.155=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u092f\u0941\u0930\u094b\u092a
+territories.LU=\u0932\u0915\u094d\u091c\u0947\u092e\u092c\u0930\u094d\u0917
+territories.154=\u0909\u0924\u094d\u0924\u0930\u0940 \u092f\u0941\u0930\u094b\u092a
+territories.LT=\u0932\u093f\u0925\u0941\u0905\u0928\u093f\u092f\u093e
+territories.LS=\u0932\u0947\u0938\u094b\u0925\u094b
+territories.LR=\u0932\u093e\u0907\u092c\u0947\u0930\u093f\u092f\u093e
+territories.151=\u092a\u0942\u0930\u094d\u0935\u0940 \u092f\u0941\u0930\u094b\u092a
+territories.150=\u092f\u0941\u0930\u094b\u092a
+territories.LK=\u0936\u094d\u0930\u0940\u0932\u0919\u094d\u0915\u093e
+territories.LI=\u0932\u093f\u090f\u0916\u091f\u0947\u0928\u094d\u0938\u094d\u091f\u093e\u0907\u0928
+territories.LC=\u0938\u0947\u0928\u094d\u091f \u0932\u0941\u0938\u093f\u092f\u093e
+territories.LB=\u0932\u0947\u092c\u0928\u094b\u0928
+territories.LA=\u0932\u093e\u0913\u0938
+territories.KZ=\u0915\u093e\u091c\u093e\u0915\u0938\u094d\u0925\u093e\u0928
+territories.KY=\u0915\u0947\u092f\u092e\u093e\u0928 \u091f\u093e\u092a\u0941
+territories.KW=\u0915\u0941\u0935\u0947\u0924
+territories.145=\u092a\u0936\u094d\u091a\u093f\u092e\u0940 \u090f\u0936\u093f\u092f\u093e
+territories.143=\u0915\u0947\u0928\u094d\u0926\u094d\u0930\u0940\u092f \u090f\u0936\u093f\u092f\u093e
+territories.142=\u090f\u0936\u093f\u092f\u093e
+territories.KR=\u0926\u0915\u094d\u0937\u093f\u0923 \u0915\u094b\u0930\u093f\u092f\u093e
+territories.KP=\u0909\u0924\u094d\u0924\u0930 \u0915\u094b\u0930\u093f\u092f\u093e
+territories.KN=\u0938\u0947\u0928\u094d\u091f \u0915\u093f\u091f\u094d\u0938 \u0930 \u0928\u0947\u092d\u093f\u0938
+territories.KM=\u0915\u094b\u092e\u094b\u0930\u094b\u0938
+territories.KI=\u0915\u093f\u0930\u093f\u092c\u093e\u091f\u0940
+territories.WS=\u0938\u093e\u092e\u094b\u0906
+territories.KH=\u0915\u092e\u094d\u092c\u094b\u0921\u093f\u092f\u093e
+territories.KG=\u0915\u093f\u0930\u094d\u0917\u093f\u0938\u094d\u0925\u093e\u0928
+territories.KE=\u0915\u0947\u0928\u094d\u092f\u093e
+territories.WF=\u0935\u093e\u0932\u093f\u0938 \u0930 \u092b\u0941\u091f\u0941\u0928\u093e
+territories.JP=\u091c\u093e\u092a\u093e\u0928
+territories.JO=\u091c\u094b\u0930\u094d\u0921\u0928
+territories.JM=\u091c\u092e\u093e\u0907\u0915\u093e
+territories.VU=\u092d\u093e\u0928\u0941\u0906\u0924\u0941
+territories.JE=\u091c\u0930\u094d\u0938\u0940
+territories.VN=\u092d\u093f\u090f\u0924\u0928\u093e\u092e
+territories.VI=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u092d\u0930\u094d\u091c\u093f\u0928 \u091f\u093e\u092a\u0941
+territories.VG=\u092c\u0947\u0932\u093e\u092f\u0924\u0940 \u092d\u0930\u094d\u091c\u093f\u0928 \u091f\u093e\u092a\u0941
+territories.VE=\u092d\u0947\u0928\u0947\u091c\u0941\u090f\u0932\u093e
+territories.VC=\u0938\u0947\u0928\u094d\u091f \u092d\u093f\u0928\u094d\u0938\u0947\u0928\u094d\u091f \u0930 \u0917\u094d\u0930\u0947\u0928\u093e\u0921\u093f\u0928\u094d\u0938
+territories.VA=\u092d\u0947\u091f\u093f\u0915\u0928
+territories.IT=\u0907\u091f\u093e\u0932\u0940
+territories.IS=\u0906\u0907\u0938\u094d\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.IR=\u0907\u0930\u093e\u0928
+territories.IQ=\u0907\u0930\u093e\u0915
+territories.UZ=\u0909\u091c\u094d\u092c\u0947\u0915\u093f\u0938\u094d\u0924\u093e\u0928
+territories.IO=\u092c\u0947\u0932\u093e\u092f\u0924\u0940 \u0939\u093f\u0928\u094d\u0926 \u092e\u0939\u093e\u0938\u093e\u0917\u0930 \u0915\u094d\u0937\u0947\u0924\u094d\u0930
+territories.UY=\u092f\u0941\u0930\u0942\u0917\u0941\u090f
+territories.IN=\u092d\u093e\u0930\u0924
+territories.IM=\u0906\u0907\u091c\u094d\u0932\u0947 \u0905\u092b\u094d \u092e\u094d\u092f\u093e\u0928
+territories.IL=\u0907\u091c\u094d\u0930\u093e\u092f\u0932
+territories.US=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f
+territories.IE=\u0906\u0907\u0930\u0932\u094d\u092f\u093e\u0923\u094d\u0921
+territories.ID=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0936\u093f\u092f\u093e
+territories.UM=\u0938\u0902\u092f\u0941\u0915\u094d\u0924 \u0930\u093e\u091c\u094d\u092f \u0905\u0932\u094d\u092a \u092c\u093e\u0939\u094d\u092f \u091f\u093e\u092a\u0941
+territories.UG=\u092f\u0941\u0917\u093e\u0923\u094d\u0921\u093e
+territories.UA=\u092f\u0941\u0915\u094d\u0930\u0947\u0928
+territories.HU=\u0939\u0919\u094d\u0917\u0947\u0930\u0940
+territories.HT=\u0939\u0948\u091f\u0940
+territories.HR=\u0915\u094d\u0930\u094b\u090f\u0936\u093f\u092f\u093e
+territories.TZ=\u0924\u093e\u0928\u094d\u091c\u093e\u0928\u093f\u092f\u093e
+territories.HN=\u0939\u0928\u094d\u0921\u0941\u0930\u093e\u0938
+territories.HM=\u0939\u0930\u094d\u0921 \u091f\u093e\u092a\u0941 \u0930 \u092e\u094d\u092f\u093e\u0915\u0921\u094b\u0928\u093e\u0932\u094d\u0921 \u091f\u093e\u092a\u0941
+territories.TW=\u0924\u093e\u0907\u0935\u093e\u0928
+territories.TV=\u0924\u0941\u092d\u093e\u0932\u0941
+territories.HK=\u0939\u0919\u0915\u0919
+territories.TT=\u0924\u094d\u0930\u093f\u0928\u093f\u0921\u093e\u0921 \u0930 \u0924\u094b\u092c\u093e\u0917\u094b
+territories.TR=\u091f\u0930\u094d\u0915\u0940
+territories.TO=\u091f\u094b\u0902\u0917\u093e
+territories.TN=\u091f\u0941\u0928\u093f\u0938\u093f\u092f\u093e
+territories.TM=\u0924\u0941\u0930\u094d\u0915\u092e\u0947\u0928\u093f\u0938\u094d\u0924\u093e\u0928
+languages.es=\u0938\u094d\u092a\u094d\u092f\u093e\u0928\u093f\u0936
+languages.ku=\u0915\u0941\u0930\u094d\u0926\u093f\u0936
+languages.eo=\u090f\u0938\u094d\u092a\u0947\u0930\u093e\u0928\u094d\u0924\u094b
+languages.en=\u0905\u0901\u0917\u094d\u0930\u0947\u091c\u0940
+languages.el=\u0917\u094d\u0930\u0940\u0915
+languages.ko=\u0915\u094b\u0930\u093f\u092f\u093e\u0932\u0940
+languages.kn=\u0915\u0928\u094d\u0928\u093e\u0921\u093e
+languages.km=\u0915\u092e\u094d\u092c\u094b\u0921\u0940\u092f\u093e\u0932\u0940
+languages.ka=\u091c\u094b\u0930\u091c\u093f\u092f\u0928
+languages.zh_Hans=\u0938\u0930\u0932\u093f\u0915\u0943\u0924 \u091a\u093f\u0928\u093f\u092f\u093e\u0901
+languages.zh_Hant=\u092a\u0930\u092e\u094d\u092a\u0930\u093e\u0917\u0924 \u091a\u093f\u0928\u093f\u092f\u093e\u0901
+languages.jv=\u091c\u093e\u092d\u093e\u0928\u093f\u091c
+languages.fil=\u092b\u093f\u0932\u093f\u092a\u093f\u0928\u0940
+languages.pt=\u092a\u094b\u0930\u094d\u0924\u0941\u0917\u093e\u0932\u0940
+languages.ps=\u092a\u093e\u0936\u094d\u0924\u094b
+languages.de=\u091c\u0930\u094d\u092e\u0928
+languages.pl=\u092a\u094b\u0932\u093f\u0936
+languages.da=\u0921\u094d\u092f\u093e\u0928\u093f\u0936
+languages.tlh=\u0915\u094d\u0932\u093f\u0919\u094d\u0917\u0928
+languages.ja=\u091c\u093e\u092a\u093e\u0928\u0940
+languages.vi=\u092d\u093f\u092f\u0924\u0928\u093e\u092e\u0940
+languages.cy=\u0935\u0947\u0932\u094d\u0936
+languages.pa=\u092a\u0902\u091c\u093e\u092c\u0940
+languages.cs=\u091a\u0947\u0915\u094b\u0938\u094d\u0932\u094b\u092d\u093e\u0915\u093f\u092f\u093e\u0932\u0940
+languages.it=\u0907\u091f\u093e\u0932\u093f\u092f\u0928
+languages.is=\u0906\u0907\u0938\u0932\u094d\u092f\u093e\u0928\u094d\u0921\u093f\u0915
+languages.uz=\u0909\u091c\u093c\u094d\u092c\u0947\u0915
+languages.or=\u0913\u0930\u093f\u092f\u093e
+languages.ur=\u0909\u0930\u094d\u0926\u0941
+languages.ca=\u0915\u094d\u092f\u093e\u091f\u093e\u0932\u0928
+languages.ie=\u0905\u0928\u094d\u0924\u0930\u092d\u093e\u0937\u0940
+languages.id=\u0907\u0928\u094d\u0921\u094b\u0928\u0947\u0938\u093f\u092f\u093e\u0932\u0940
+languages.uk=\u092f\u0941\u0915\u094d\u0930\u0947\u0928\u0940
+languages.ia=\u0907\u0928\u094d\u091f\u0930\u094d\u0932\u093f\u0919\u094d\u0917\u0941\u0906
+languages.oc=\u0905\u0915\u094d\u0938\u093f\u091f\u0928
+languages.bs=\u092c\u094b\u0938\u094d\u0928\u093f\u092f\u093e\u0932\u0940
+languages.hu=\u0939\u0902\u0917\u094d\u0930\u0940\u092f\u093e\u0932\u0940
+languages.bn=\u092c\u0902\u0917\u093e\u0932\u0940
+languages.pt_PT=\u0906\u0907\u092c\u0947\u0930\u0940, \u092a\u0930\u094d\u0924\u0941\u0917\u093e\u0932\u0940
+languages.hr=\u0915\u094d\u0930\u094b\u090f\u0938\u093f\u092f\u093e\u0932\u0940
+languages.bh=\u092c\u093f\u0939\u093e\u0930\u0940
+languages.bg=\u092c\u0941\u0932\u094d\u0917\u0947\u0930\u093f\u092f\u093e\u0932\u0940
+languages.no=\u0928\u0930\u094d\u0935\u0947\u091c\u093f\u092f\u093e\u0932\u0940
+languages.be=\u092c\u0947\u0932\u093e\u0930\u0941\u0938\u093f\u092f\u093e\u0932\u0940
+languages.hi=\u0939\u093f\u0928\u094d\u0926\u0940
+languages.tr=\u091f\u0930\u094d\u0915\u0940
+languages.nl=\u0921\u091a
+languages.zu=\u091c\u0941\u0932\u0942
+languages.he=\u0939\u093f\u092c\u094d\u0930\u0941
+languages.ne=\u0928\u0947\u092a\u093e\u0932\u0940
+languages.az=\u0905\u091c\u0930\u092c\u0948\u091c\u093e\u0928\u0940
+languages.ti=\u0924\u093f\u0917\u094d\u0930\u0940\u0928\u094d\u092f\u093e
+languages.th=\u0925\u093e\u0908
+languages.te=\u0924\u0947\u0932\u0941\u0917\u0941
+languages.zh=\u091a\u093f\u0928\u093f\u092f\u093e\u0901
+languages.as=\u0906\u0938\u093e\u092e\u0940
+languages.ar=\u0905\u0930\u092c\u0940
+languages.ta=\u0924\u093e\u092e\u093f\u0932
+languages.gu=\u0917\u0941\u091c\u0930\u093e\u0924\u0940
+languages.am=\u0905\u092e\u094d\u0939\u093e\u0930\u093f\u0915
+languages.mt=\u092e\u093e\u0932\u094d\u091f\u093f\u091c
+languages.ms=\u092e\u0932\u093e\u092f\u093e
+languages.sw=\u0938\u094d\u0935\u093e\u0939\u093f\u0932\u0940
+languages.mr=\u092e\u0930\u093e\u0920\u0940
+languages.sv=\u0938\u094d\u0935\u093f\u0921\u093f\u0936
+languages.gl=\u0917\u0932\u093f\u0938\u093f\u092f\u093e\u0932\u0940
+languages.su=\u0938\u0941\u0921\u093e\u0928\u0940
+languages.af=\u0905\u092b\u094d\u0930\u093f\u0915\u093e\u0932\u0940
+languages.mn=\u092e\u0902\u0917\u094b\u0932
+languages.sr=\u0938\u0930\u094d\u092c\u093f\u092f\u093e\u0932\u0940
+languages.sq=\u0905\u0932\u094d\u092c\u0947\u0928\u093f\u092f\u0928
+languages.ml=\u092e\u0932\u092f\u093e\u0932\u092e
+languages.mk=\u092e\u094d\u092f\u093e\u0915\u0947\u0921\u094b\u0928\u093f\u092f\u0928
+languages.so=\u0938\u094b\u092e\u093e\u0932\u0940
+languages.gd=\u0938\u094d\u0915\u091f\u094d\u0938 \u0917\u093e\u090f\u0932\u093f\u0915
+languages.sl=\u0938\u094d\u0932\u094b\u092d\u0947\u0928\u093f\u092f\u093e\u0932\u0940
+languages.sk=\u0938\u094d\u0932\u094b\u092d\u093e\u0915\u093f\u092f\u093e\u0932\u0940
+languages.ga=\u0906\u0907\u0930\u093f\u0936
+languages.si=\u0938\u093f\u0928\u094d\u0939\u093e\u0932\u0940
+languages.pt_BR=\u092a\u0930\u094d\u0924\u0941\u0917\u093e\u0932\u0940 (\u092c\u094d\u0930\u093e\u091c\u093f\u0932\u094d\u092f\u093e\u0932\u0940)
+languages.yi=\u092f\u093f\u0926\u094d\u0926\u093f\u0938
+languages.fy=\u092b\u094d\u0930\u093f\u091c\u0940\u092f\u0928
+languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924
+languages.fr=\u092b\u094d\u0930\u093e\u0902\u0938\u0947\u0932\u0940
+languages.lv=\u0932\u093e\u0924\u094d\u092d\u093f\u092f\u093e\u0932\u0940
+languages.lt=\u0932\u093f\u0925\u0941\u0906\u0928\u093f\u092f\u093e\u0932\u0940
+languages.fo=\u092b\u093e\u0930\u094b\u0907\u091c
+languages.ru=\u0930\u0938\u093f\u092f\u093e\u0932\u0940
+languages.lo=\u0932\u093e\u0913
+languages.ln=\u0932\u093f\u0902\u0917\u093e\u0932\u093e
+languages.fi=\u092b\u093f\u0928\u093f\u0936
+languages.ro=\u0930\u094b\u092e\u093e\u0928\u093f\u092f\u093e\u0932\u0940
+languages.fa=\u092b\u093e\u0930\u0938\u0940
+languages.la=\u0932\u094d\u092f\u093e\u091f\u093f\u0928
+languages.xh=\u091d\u094b\u0938\u093e
+languages.eu=\u092c\u093e\u0938\u094d\u0915
+languages.et=\u0907\u0938\u094d\u091f\u094b\u0928\u093f\u092f\u093e\u0932\u0940
+variants.POSIX=\u0915\u092e\u094d\u092a\u094d\u092f\u0941\u091f\u0930
+variants.AREVELA=\u092a\u0942\u0930\u094d\u0935\u0940 \u0906\u0930\u094d\u092e\u0947\u0928\u093f\u092f\u093e\u0932\u0940
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl.properties
index f21481b..7f076c7 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl.properties
@@ -5,141 +5,167 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;(\u00a4\u00a0#,##0.00)
currenciesDisplayName.YDD=Jemenitische dinar
+currenciesDisplayName.KES=Keniaanse shilling
currenciesDisplayName.TWD=Nieuwe Taiwanese dollar
-currenciesDisplayName.KES=Kenyaanse shilling
-currenciesDisplayName.BYB=Wit-Russische nieuwe roebel (1994-1999)
currenciesDisplayName.LKR=Srilankaanse rupee
-currenciesDisplayName.RWF=Rwandese franc
+currenciesDisplayName.BYB=Wit-Russische nieuwe roebel (1994-1999)
currenciesDisplayName.TJS=Tadzjikistaanse somoni
-currenciesDisplayName.SDP=Soedanees pond
-currenciesDisplayName.TJR=Tadzjikistaanse roebel
+currenciesDisplayName.RWF=Rwandese franc
currenciesDisplayName.ERN=Eritrese nakfa
-currenciesDisplayName.AFN=Afghani
+currenciesDisplayName.TJR=Tadzjikistaanse roebel
+currenciesDisplayName.SDP=Soedanees pond
currenciesDisplayName.GRD=Griekse drachme
+currenciesDisplayName.AFN=Afghani
currenciesDisplayName.IEP=Iers pond
currenciesDisplayName.ARS=Argentijnse peso
-currenciesDisplayName.SDD=Soedanese dinar
+currenciesDisplayName.SDG=Soedanese pond
currenciesDisplayName.ARP=Argentijnse peso (1983-1985)
+currenciesDisplayName.SDD=Soedanese dinar
currenciesDisplayName.GEL=Georgische lari
-currenciesDisplayName.AFA=Afghani (1927-2002)
currenciesDisplayName.GEK=Georgische kupon larit
+currenciesDisplayName.AFA=Afghani (AFA)
currenciesDisplayName.CRC=Costaricaanse col\u00f3n
currenciesDisplayName.FKP=Falklandeilands pond
currenciesDisplayName.EEK=Estlandse kroon
-currenciesDisplayName.HKD=Hongkongse dollar
currenciesDisplayName.MDL=Moldavische leu
-currenciesDisplayName.ARA=Argentijnse austral
+currenciesDisplayName.HKD=Hongkongse dollar
currenciesDisplayName.IQD=Iraakse dinar
+currenciesDisplayName.ARA=Argentijnse austral
currenciesDisplayName.SCR=Seychelse rupee
currenciesDisplayName.VUV=Vanuatuaanse vatu
-currenciesDisplayName.DKK=Deense kroon
currenciesDisplayName.KPW=Noord-Koreaanse won
-currenciesDisplayName.GQE=Equatoriaal-Guinese ekwele guineana
+currenciesDisplayName.DKK=Deense kroon
currenciesDisplayName.IDR=Indonesische rupiah
-currenciesDisplayName.LVR=Letse roebel
+currenciesDisplayName.GQE=Equatoriaal-Guinese ekwele guineana
currenciesDisplayName.SOS=Somalische shilling
+currenciesDisplayName.LVR=Letse roebel
+currenciesDisplayName.EQE=Ekwele
currenciesDisplayName.AED=Verenigde Arabische Emiraten-dirham
-currenciesDisplayName.BWP=Botswaanse pula
currenciesDisplayName.LVL=Letse lats
+currenciesDisplayName.BWP=Botswaanse pula
currenciesDisplayName.RUR=Russische roebel (1991-1998)
currenciesDisplayName.NIO=Nicaraguaanse c\u00f3rdoba oro
-currenciesDisplayName.ADP=Andorrese peseta
-currenciesDisplayName.FJD=Fijische dollar
+currenciesDisplayName.XTS=Valutacode voor testdoeleinden
currenciesDisplayName.MOP=Macause pataca
+currenciesDisplayName.FJD=Fiji dollar
+currenciesDisplayName.ADP=Andorrese peseta
currenciesDisplayName.RUB=Russische roebel
-currenciesDisplayName.CDF=Congolese franc congolais
+currenciesDisplayName.CDF=Congolese franc
currenciesDisplayName.NIC=Nicaraguaanse c\u00f3rdoba
currenciesDisplayName.DJF=Djiboutiaanse franc
-currenciesDisplayName.ECV=Ecuadoraanse unidad de valor constante (UVC)
-currenciesDisplayName.SBD=Salomonseilandse dollar
currenciesDisplayName.UZS=Oezbekistaanse sum
+currenciesDisplayName.SBD=Salomonseilandse dollar
+currenciesDisplayName.ECV=Ecuadoraanse unidad de valor constante (UVC)
+currenciesDisplayName.LUL=Luxemburgse financi\u00eble franc
currenciesDisplayName.ECS=Ecuadoraanse sucre
-currenciesDisplayName.PHP=Filipijnse peso
currenciesDisplayName.THB=Thaise baht
+currenciesDisplayName.PHP=Filipijnse peso
currenciesDisplayName.LUF=Luxemburgse frank
+currenciesDisplayName.RHD=Rhodesische dollar
+currenciesDisplayName.LUC=Luxemburgse convertibele franc
currenciesDisplayName.FIM=Finse markka
currenciesDisplayName.TTD=Trinidad en Tobago-dollar
currenciesDisplayName.SZL=Swazische lilangeni
currenciesDisplayName.MNT=Mongoolse tugrik
-currenciesDisplayName.SAR=Saoedische rial
currenciesDisplayName.UAK=Oekra\u00efense karbovanetz
-currenciesDisplayName.UAH=Oekra\u00efense hryvnia
+currenciesDisplayName.SAR=Saudische riyal
+currenciesDisplayName.COU=Unidad de Valor Real
+currenciesDisplayName.UAH=Oekra\u00efense grivna
currenciesDisplayName.HUF=Hongaarse forint
-currenciesDisplayName.COP=Colombiaanse peso
currenciesDisplayName.QAR=Qatarese rial
+currenciesDisplayName.COP=Colombiaanse peso
currenciesDisplayName.LTT=Litouwse talonas
currenciesDisplayName.PTE=Portugese escudo
-currenciesDisplayName.AOR=Angolese kwanza reajustado (1995-1999)
currenciesDisplayName.UYU=Uruguayaanse peso uruguayo
+currenciesDisplayName.AOR=Angolese kwanza reajustado (1995-1999)
currenciesDisplayName.GBP=Brits pond sterling
-currenciesDisplayName.BIF=Burundese franc
-currenciesDisplayName.INR=Indiase rupee
currenciesDisplayName.ZRZ=Za\u00efrese za\u00efre
-currenciesDisplayName.AON=Angolese nieuwe kwanza (1990-2000)
-currenciesDisplayName.LTL=Litouwse litas
+currenciesDisplayName.INR=Indiase roepie
+currenciesDisplayName.BIF=Burundese franc
currenciesDisplayName.XFU=Franse UIC-franc
-currenciesDisplayName.KZT=Kazachstaanse tenge
-currenciesDisplayName.MZM=Mozambikaanse metical
+currenciesDisplayName.MZN=Mozambikaanse metical
+currenciesDisplayName.LTL=Litouwse litas
+currenciesDisplayName.AON=Angolese nieuwe kwanza (1990-2000)
currenciesDisplayName.UYP=Uruguayaanse peso (1975-1993)
+currenciesDisplayName.MZM=Oude Mozambikaanse metical
+currenciesDisplayName.KZT=Kazachstaanse tenge
currenciesDisplayName.AOK=Angolese kwanza (1977-1990)
-currenciesDisplayName.BUK=Birmese kyat
currenciesDisplayName.GNS=Guinese syli
+currenciesDisplayName.BUK=Birmese kyat
currenciesDisplayName.XFO=Franse gouden franc
currenciesDisplayName.PGK=Papuaanse kina
+currenciesDisplayName.UYI=Uruguayaanse peso en ge\u00efndexeerde eenheden
currenciesDisplayName.SYP=Syrisch pond
-currenciesDisplayName.MZE=Mozambikaanse escudo
currenciesDisplayName.OMR=Omaanse rial
-currenciesDisplayName.NGN=Nigeriaanse naira
+currenciesDisplayName.MZE=Mozambikaanse escudo
currenciesDisplayName.ZRN=Za\u00efrese nieuwe za\u00efre
-currenciesDisplayName.AOA=Angolese kwanza
+currenciesDisplayName.NGN=Nigeriaanse naira
currenciesDisplayName.CNY=Chinese yuan renminbi
+currenciesDisplayName.AOA=Angolese kwanza
currenciesDisplayName.MAF=Marokkaanse franc
+currenciesDisplayName.RSD=Servische dinar
currenciesDisplayName.GNF=Guinese franc
-currenciesDisplayName.HTG=Ha\u00eftiaanse gourde
currenciesDisplayName.MAD=Marokkaanse dirham
-currenciesDisplayName.TRY=Nieuwe Turkse lire
+currenciesDisplayName.HTG=Ha\u00eftiaanse gourde
+currenciesDisplayName.TRY=Turkse lira
currenciesDisplayName.MMK=Myanmarese kyat
+currenciesDisplayName.XRE=RINET-fondsen
currenciesDisplayName.MYR=Maleisische ringgit
-currenciesDisplayName.LSL=Lesothaanse loti
+currenciesDisplayName.LSM=Maloti
currenciesDisplayName.XEU=European Currency Unit
-currenciesDisplayName.BHD=Bahreinse dinar
+currenciesDisplayName.LSL=Lesothaanse loti
currenciesDisplayName.SLL=Sierraleoonse leone
+currenciesDisplayName.BHD=Bahreinse dinar
currenciesDisplayName.BTN=Bhutaanse ngultrum
-currenciesDisplayName.TRL=Turkse lire
+currenciesDisplayName.TRL=Oude Turkse lira
currenciesDisplayName.KMF=Comorese franc
-currenciesDisplayName.ANG=Nederlands-Antilliaanse gulden
currenciesDisplayName.CZK=Tsjechische koruna
-currenciesDisplayName.AZM=Azerbeidzjaanse manat
+currenciesDisplayName.ANG=Nederlands-Antilliaanse gulden
+currenciesDisplayName.AZN=Azerbeidzjaanse manat
+currenciesDisplayName.AZM=Azerbeidzjaanse manat (1993-2006)
currenciesDisplayName.KYD=Caymaneilandse dollar
currenciesDisplayName.GMD=Gambiaanse dalasi
+currenciesDisplayName.VEF=Venezolaanse sterke bolivar
currenciesDisplayName.BGN=Bulgaarse nieuwe lev
-currenciesDisplayName.CAD=Canadese dollar
currenciesDisplayName.MXV=Mexicaanse unidad de inversion (UDI)
+currenciesDisplayName.CAD=Canadese dollar
currenciesDisplayName.BGL=Bulgaarse harde lev
currenciesDisplayName.VEB=Venezolaanse bolivar
currenciesDisplayName.MLF=Malinese franc
-currenciesDisplayName.ILS=Isra\u00eblische nieuwe shekel
currenciesDisplayName.MXP=Mexicaanse zilveren peso (1861-1992)
+currenciesDisplayName.ILS=Isra\u00eblische nieuwe shekel
currenciesDisplayName.PES=Peruaanse sol
-currenciesDisplayName.GYD=Guyaanse dollar
currenciesDisplayName.MXN=Mexicaanse peso
+currenciesDisplayName.GYD=Guyaanse dollar
currenciesDisplayName.ILP=Isra\u00eblisch pond
-currenciesDisplayName.SKK=Slowaakse koruna
currenciesDisplayName.CYP=Cyprisch pond
+currenciesDisplayName.SKK=Slowaakse koruna
currenciesDisplayName.XDR=Special Drawing Rights
currenciesDisplayName.PEN=Peruaanse nieuwe sol
currenciesDisplayName.LRD=Liberiaanse dollar
currenciesDisplayName.PEI=Peruaanse inti
currenciesDisplayName.AMD=Armeense dram
currenciesDisplayName.BSD=Bahamaanse dollar
+currenciesDisplayName.XPT=Platina
currenciesDisplayName.HRK=Kroatische kuna
currenciesDisplayName.CLP=Chileense peso
currenciesDisplayName.HRD=Kroatische dinar
currenciesDisplayName.XPF=CFP-franc
currenciesDisplayName.FRF=Franse franc
+currenciesDisplayName.XPD=Palladium
currenciesDisplayName.BRR=Braziliaanse cruzeiro
currenciesDisplayName.MKD=Macedonische denar
currenciesDisplayName.CLF=Chileense unidades de fomento
@@ -164,15 +190,16 @@ currenciesDisplayName.SIT=Sloveense tolar
currenciesDisplayName.JPY=Japanse yen
currenciesDisplayName.XOF=CFA-franc BCEAO
currenciesDisplayName.MVR=Maldivische rufiyaa
-currenciesDisplayName.GWE=Portuguees-Guinese escudo
currenciesDisplayName.BEF=Belgische frank
+currenciesDisplayName.GWE=Portugees-Guinese escudo
currenciesDisplayName.TOP=Tongaanse pa\u02bbanga
currenciesDisplayName.YUD=Joegoslavische harde dinar
currenciesDisplayName.BEC=Belgische frank (convertibel)
currenciesDisplayName.SUR=Sovjet-roebel
-currenciesDisplayName.ROL=Roemeense leu
-currenciesDisplayName.DDM=Oost-Duitse ostmark
+currenciesDisplayName.RON=Roemeense leu
+currenciesDisplayName.ROL=Oude Roemeense leu
currenciesDisplayName.BDT=Bengalese taka
+currenciesDisplayName.DDM=Oost-Duitse ostmark
currenciesDisplayName.XBD=Europese rekeneenheid (XBD)
currenciesDisplayName.AWG=Arubaanse gulden
currenciesDisplayName.XBC=Europese rekeneenheid (XBC)
@@ -190,6 +217,7 @@ currenciesDisplayName.GIP=Gibraltarees pond
currenciesDisplayName.TND=Tunesische dinar
currenciesDisplayName.CVE=Kaapverdische escudo
currenciesDisplayName.UGX=Oegandese shilling
+currenciesDisplayName.XAG=Zilver
currenciesDisplayName.ZMK=Zambiaanse kwacha
currenciesDisplayName.JOD=Jordaanse dinar
currenciesDisplayName.XAF=CFA-franc BEAC
@@ -198,32 +226,36 @@ currenciesDisplayName.UGS=Oegandese shilling (1966-1987)
currenciesDisplayName.STD=Santomese dobra
currenciesDisplayName.WST=West-Samoaanse tala
currenciesDisplayName.KHR=Cambodjaanse riel
-currenciesDisplayName.EUR=Euro
currenciesDisplayName.DOP=Dominicaanse peso
+currenciesDisplayName.EUR=Euro
currenciesDisplayName.BOV=Boliviaanse mvdol
currenciesDisplayName.MTP=Maltees pond
currenciesDisplayName.USS=Amerikaanse dollar (zelfde dag)
currenciesDisplayName.BOP=Boliviaanse peso
-currenciesDisplayName.MTL=Maltese lire
currenciesDisplayName.CUP=Cubaanse peso
+currenciesDisplayName.MTL=Maltese lire
currenciesDisplayName.TMM=Turkmeense manat
currenciesDisplayName.USN=Amerikaanse dollar (volgende dag)
+currenciesDisplayName.GHS=Ghanese cedi
currenciesDisplayName.SGD=Singaporese dollar
currenciesDisplayName.NZD=Nieuw-Zeelandse dollar
currenciesDisplayName.USD=Amerikaanse dollar
-currenciesDisplayName.HNL=Hodurese lempira
currenciesDisplayName.BOB=Boliviano
+currenciesDisplayName.HNL=Hondurese lempira
+currenciesDisplayName.CHW=WIR franc
currenciesDisplayName.ITL=Italiaanse lire
currenciesDisplayName.PAB=Panamese balboa
currenciesDisplayName.GTQ=Guatemalteekse quetzal
-currenciesDisplayName.LAK=Laotiaanse kip
-currenciesDisplayName.GHC=Ghanese cedi
+currenciesDisplayName.XXX=Onbekende of ongeldige munteenheid
currenciesDisplayName.AUD=Australische dollar
+currenciesDisplayName.GHC=Ghanese cedi (1979-2007)
+currenciesDisplayName.LAK=Laotiaanse kip
currenciesDisplayName.NAD=Namibische dollar
currenciesDisplayName.KGS=Kirgizische som
currenciesDisplayName.MGF=Malagassische franc
-currenciesDisplayName.CHF=Zwitserse franc
currenciesDisplayName.BBD=Barbadaanse dollar
+currenciesDisplayName.CHF=Zwitserse franc
+currenciesDisplayName.CHE=WIR euro
currenciesDisplayName.MGA=Malagassische ariary
currenciesDisplayName.PYG=Paraguayaanse guarani
currenciesDisplayName.PLZ=Poolse zloty (1950-1995)
@@ -231,16 +263,16 @@ currenciesDisplayName.YER=Jemenitische rial
currenciesDisplayName.ATS=Oostenrijkse schilling
currenciesDisplayName.ETB=Ethiopische birr
currenciesDisplayName.BND=Bruneise dollar
-currenciesDisplayName.JMD=Jamaicaanse dollar
currenciesDisplayName.EGP=Egyptisch pond
+currenciesDisplayName.JMD=Jamaicaanse dollar
currenciesDisplayName.PLN=Poolse zloty
currenciesDisplayName.DZD=Algerijnse dinar
currenciesDisplayName.ISK=IJslandse kroon
currenciesDisplayName.SRG=Surinaamse gulden
currenciesDisplayName.LYD=Libische dinar
currenciesDisplayName.SRD=Surinaamse dollar
-currenciesDisplayName.BZD=Belizaanse dollar
currenciesDisplayName.BAM=Bosnische convertibele mark
+currenciesDisplayName.BZD=Belizaanse dollar
currenciesDisplayName.ESP=Spaanse peseta
currenciesDisplayName.KRW=Zuid-Koreaanse won
currenciesDisplayName.NLG=Nederlandse gulden
@@ -250,35 +282,39 @@ currenciesDisplayName.ZWD=Zimbabwaanse dollar
currenciesDisplayName.SEK=Zweedse kroon
currenciesDisplayName.CSK=Tsjechoslowaakse harde koruna
currenciesDisplayName.BYR=Wit-Russische roebel
+currenciesDisplayName.ESB=Spaanse peseta (convertibele account)
currenciesDisplayName.IRR=Iraanse rial
+currenciesDisplayName.ESA=Spaanse peseta (account A)
currenciesDisplayName.PKR=Pakistaanse rupee
currenciesDisplayName.BMD=Bermuda-dollar
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=Oude Servische dinar
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
+currenciesSymbol.RON=L
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.JPY=\u00a5
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
@@ -289,6 +325,7 @@ currenciesSymbol.NOK=NKr
currenciesSymbol.UGX=U Sh
currenciesSymbol.BEF=BF
currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
currenciesSymbol.SZL=E
currenciesSymbol.STD=Db
currenciesSymbol.SAR=SRl
@@ -300,11 +337,12 @@ currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
currenciesSymbol.SGD=S$
currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
currenciesSymbol.CVE=CVEsc
@@ -312,10 +350,14 @@ currenciesSymbol.HUF=Ft
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
+currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
+currenciesSymbol.GHS=GH\u00a2
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -323,9 +365,10 @@ currenciesSymbol.MYR=RM
currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
currenciesSymbol.CNY=Y
@@ -341,32 +384,34 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
currenciesSymbol.BZD=BZ$
currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=jan®feb®mrt®apr®mei®jun®jul®aug®sep®okt®nov®dec®®
-months=januari®februari®maart®april®mei®juni®juli®augustus®september®oktober®november®december®®
-shortWeekdays=®zo®ma®di®wo®do®vr®za®
-weekdays=®zondag®maandag®dinsdag®woensdag®donderdag®vrijdag®zaterdag®
-eras=v. Chr.®n. Chr.®
-shortDateFormat=d-M-yy
-mediumDateFormat=d-MMM-yyyy
+shortMonths=jan\u00aefeb\u00aemrt\u00aeapr\u00aemei\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januari\u00aefebruari\u00aemaart\u00aeapril\u00aemei\u00aejuni\u00aejuli\u00aeaugustus\u00aeseptember\u00aeoktober\u00aenovember\u00aedecember\u00ae\u00ae
+shortWeekdays=\u00aezo\u00aema\u00aedi\u00aewo\u00aedo\u00aevr\u00aeza\u00ae
+weekdays=\u00aezondag\u00aemaandag\u00aedinsdag\u00aewoensdag\u00aedonderdag\u00aevrijdag\u00aezaterdag\u00ae
+eras=v. Chr.\u00aen. Chr.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd-MM-yy
+mediumDateFormat=d MMM yyyy
longDateFormat=d MMMM yyyy
fullDateFormat=EEEE d MMMM yyyy
-shortTimeFormat=H:mm
-mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ss z
-fullTimeFormat=H:mm:ss' uur' z
-zoneStrings=Pacific/Honolulu®HST®Hawa\u00ef-standaardtijd®HST®Hawa\u00ef-standaardtijd®©Europe/Bucharest®EET®Oost-Europese standaardtijd®EEST®Oost-Europese zomertijd®©America/Los_Angeles®PST®Pacific-standaardtijd®PDT®Pacific-zomertijd®©America/Denver®MST®Mountain-standaardtijd®MDT®Mountain-zomertijd®©Asia/Jerusalem®IST®Isra\u00eblische standaardtijd®IDT®Isra\u00eblische zomertijd®©America/Phoenix®MST®Mountain-standaardtijd®MST®Mountain-standaardtijd®©America/Chicago®CST®Central-standaardtijd®CDT®Central-zomertijd®©America/Indianapolis®EST®Eastern-standaardtijd®EST®Eastern-standaardtijd®©America/St_Johns®CNT®Newfoundland-standaardtijd®CDT®Newfoundland-zomertijd®©America/Anchorage®AST®Alaska-standaardtijd®ADT®Alaska-zomertijd®©Asia/Shanghai®CTT®Chinese standaardtijd®CDT®Chinese standaardtijd®©Asia/Tokyo®JST®Japanse standaardtijd®JST®Japanse standaardtijd®©Europe/Paris®CET®Midden-Europese standaardtijd®CEST®Midden-Europese zomertijd®©America/New_York®EST®Eastern-standaardtijd®EDT®Eastern-zomertijd®©America/Halifax®AST®Atlantic-standaardtijd®ADT®Atlantic-zomertijd®©Africa/Casablanca®GMT®Greenwich Mean Time®GMT®Greenwich Mean Time®©
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Marshall_Islands\u00aeMarshalleilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeShevchenko-tijd\u00ae\u00aeShevchenko-zomertijd\u00ae\u00ae\u00a9Bangladesh\u00aeBengalese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeMidden-Australische westelijke standaardtijd\u00ae\u00aeMidden-Australische westelijke zomertijd\u00ae\u00ae\u00a9Marquesas\u00aeMarquesaseilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeCentraal-Indonesische tijd\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeEastern-standaardtijd\u00ae\u00aeEastern-zomertijd\u00ae\u00ae\u00a9China\u00aeChinese standaardtijd\u00aeCST (China)\u00aeChinese zomertijd\u00aeCDT (China)\u00ae\u00a9Omsk\u00aeOmsk-tijd\u00ae\u00aeOmsk-zomertijd\u00ae\u00ae\u00a9Guyana\u00aeGuyaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Uzbekistan\u00aeOezbeekse tijd\u00ae\u00aeOezbeekse zomertijd\u00ae\u00ae\u00a9Uruguay\u00aeUruguayaanse tijd\u00ae\u00aeUruguayaanse zomertijd\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeOost-Kazachse standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeKarachi-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeTbilisi-tijd\u00ae\u00aeTbilisi-zomertijd\u00ae\u00ae\u00a9Tashkent\u00aeTasjkent-tijd\u00ae\u00aeTasjkent-zomertijd\u00ae\u00ae\u00a9Changbai\u00aeChangbai-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeChatham-standaardtijd\u00ae\u00aeChatham-zomertijd\u00ae\u00ae\u00a9South_Georgia\u00aeZuid-Georgische tijd\u00aeGST (Z. Georgi\u00eb)\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeFrans-Guyaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeFrunze-tijd\u00ae\u00aeFrunze-zomertijd\u00ae\u00ae\u00a9Europe_Eastern\u00aeOost-Europese standaardtijd\u00ae\u00aeOost-Europese zomertijd\u00ae\u00ae\u00a9Greenland_Eastern\u00aeOost-Groenlandse tijd\u00ae\u00aeOost-Groenlandse zomertijd\u00ae\u00ae\u00a9Dushanbe\u00aeDushanbe-tijd\u00ae\u00aeDushanbe-zomertijd\u00ae\u00ae\u00a9Dacca\u00aeDhaka-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Chile\u00aeChileense tijd\u00ae\u00aeChileense zomertijd\u00ae\u00ae\u00a9Europe_Central\u00aeMidden-Europese standaardtijd\u00ae\u00aeMidden-Europese zomertijd\u00ae\u00ae\u00a9Acre\u00aeAcre-tijd\u00ae\u00aeAcre-zomertijd\u00ae\u00ae\u00a9Arabian\u00aeArabische standaardtijd\u00aeAST (Arabisch)\u00aeArabische zomertijd\u00aeADT (Arabisch)\u00ae\u00a9East_Timor\u00aeOost-Timorese tijd\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeNieuw-Zeelandse standaardtijd\u00ae\u00aeNieuw-Zeelandse zomertijd\u00ae\u00ae\u00a9Indochina\u00aeIndochinese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeKwajaleinse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00aeZuid-Afrikaanse standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9DumontDUrville\u00aeDumont-d'Urville-tijd\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeMountain-standaardtijd\u00ae\u00aeMountain-zomertijd\u00ae\u00ae\u00a9Tokelau\u00aeTokelause tijd\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeEcuadoriaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Hovd\u00aeHovd-tijd\u00ae\u00aeHovd-zomertijd\u00ae\u00ae\u00a9Africa_Central\u00aeCentraal-Afrikaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Phoenix_Islands\u00aePhoenixeilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00aeArmeense tijd\u00aeAMT (Armeni\u00eb)\u00aeArmeense zomertijd\u00aeAMST (Armeni\u00eb)\u00ae\u00a9Tuvalu\u00aeTuvaluaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00aeSachalin-tijd\u00ae\u00aeSachalin-zomertijd\u00ae\u00ae\u00a9Samara\u00aeSamara-tijd\u00ae\u00aeSamara-zomertijd\u00ae\u00ae\u00a9Palau\u00aeBelause tijd\u00ae\u00ae\u00ae\u00ae\u00a9Kosrae\u00aeKosraese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii-standaardtijd\u00ae\u00aeAlaska-Hawaii-zomertijd\u00ae\u00ae\u00a9Pitcairn\u00aePitcairnse tijd\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00aeCentral-standaardtijd\u00ae\u00aeCentral-zomertijd\u00ae\u00ae\u00a9Malaysia\u00aeMaleisische tijd\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeMoskou-standaardtijd\u00ae\u00aeMoskou-zomertijd\u00ae\u00ae\u00a9Vanuatu\u00aeVanuatuaanse tijd\u00ae\u00aeVanuatuaanse zomertijd\u00ae\u00ae\u00a9Kamchatka\u00aePetropavlovsk-Kamtsjatski-tijd\u00ae\u00aePetropavlovsk-Kamtsjatski-zomertijd\u00ae\u00ae\u00a9Cape_Verde\u00aeKaapverdische tijd\u00ae\u00aeKaapverdische zomertijd\u00ae\u00ae\u00a9Aqtobe\u00aeAqt\u00f6be-tijd\u00aeAQTT (Aqt\u00f6be)\u00aeAqt\u00f6be-zomertijd\u00aeAQTST (Aqt\u00f6be)\u00ae\u00a9Falkland\u00aeFalklandeilandse tijd\u00ae\u00aeFalklandeilandse zomertijd\u00ae\u00ae\u00a9Peru\u00aePeruaanse tijd\u00ae\u00aePeruaanse zomertijd\u00ae\u00ae\u00a9Krasnoyarsk\u00aeKrasnojarsk-tijd\u00ae\u00aeKrasnojarsk-zomertijd\u00ae\u00ae\u00a9Argentina\u00aeArgentijnse tijd\u00ae\u00aeArgentijnse zomertijd\u00ae\u00ae\u00a9Qyzylorda\u00aeQyzylorda-tijd\u00ae\u00aeQyzylorda-zomertijd\u00ae\u00ae\u00a9Tahiti\u00aeTahitiaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00aeIndische Oceaan-tijd\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeGreenwich Mean Time\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00aeVladivostok-tijd\u00ae\u00aeVladivostok-zomertijd\u00ae\u00ae\u00a9Atlantic\u00aeAtlantic - standaardtijd\u00ae\u00aeAtlantic - zomertijd\u00ae\u00ae\u00a9Truk\u00aeChuukse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aeRothera-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeWallis en Futunase tijd\u00ae\u00ae\u00ae\u00ae\u00a9Syowa\u00aeSyowa-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00aeKoreaanse standaardtijd\u00ae\u00aeKoreaanse zomertijd\u00ae\u00ae\u00a9Ashkhabad\u00aeAshkhabad-tijd\u00ae\u00aeAshkhabad-zomertijd\u00ae\u00ae\u00a9Australia_Western\u00aeWest-Australische standaardtijd\u00ae\u00aeWest-Australische zomertijd\u00ae\u00ae\u00a9Gilbert_Islands\u00aeGilberteilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Seychelles\u00aeSeychelse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Cocos\u00aeCocoseilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00aeVenezolaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00aeSolomoneilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeParaguayaanse tijd\u00ae\u00aeParaguayaanse zomertijd\u00ae\u00ae\u00a9Yakutsk\u00aeJakoetsk-tijd\u00ae\u00aeJakoetsk-zomertijd\u00ae\u00ae\u00a9Azerbaijan\u00aeAzerbeidzjaanse tijd\u00ae\u00aeAzerbeidzjaanse zomertijd\u00ae\u00ae\u00a9Kizilorda\u00aeKizilorda-tijd\u00ae\u00aeKizilorda-zomertijd\u00ae\u00ae\u00a9Yukon\u00aeYukon-standaardtijd\u00ae\u00aeYukon-zomertijd\u00ae\u00ae\u00a9Dutch_Guiana\u00aeNederlands-Guyaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeJerevan-tijd\u00ae\u00aeJerevan-zomertijd\u00ae\u00ae\u00a9Turkmenistan\u00aeTurkmeense tijd\u00ae\u00aeTurkmeense zomertijd\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundland-standaardtijd\u00ae\u00aeNewfoundland-zomertijd\u00ae\u00ae\u00a9Africa_Eastern\u00aeOost-Afrikaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00aeWake-eilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aePakistaanse tijd\u00ae\u00aePakistaanse zomertijd\u00ae\u00ae\u00a9Singapore\u00aeSingaporese standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybyshev-tijd\u00ae\u00aeKuybyshev-zomertijd\u00ae\u00ae\u00a9Europe_Western\u00aeWest-Europese tijd\u00ae\u00aeWest-Europese zomertijd\u00ae\u00ae\u00a9India\u00aeIndiaase standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeChamorro-standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00aeWest-Groenlandse tijd\u00ae\u00aeWest-Groenlandse zomertijd\u00ae\u00ae\u00a9Bolivia\u00aeBoliviaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeWest-Indonesische tijd\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeGalapagoseilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00aeIraanse standaardtijd\u00ae\u00aeIraanse zomertijd\u00ae\u00ae\u00a9Suriname\u00aeSurinaamse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Vostok\u00aeVostok-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Papua_New_Guinea\u00aePapoea-Nieuw-Guinea-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeMalakka-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBering-standaardtijd\u00ae\u00aeBering-zomertijd\u00ae\u00ae\u00a9Mawson\u00aeMawson-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeGeorgia-tijd\u00ae\u00aeGeorgia-zomertijd\u00ae\u00ae\u00a9Kyrgystan\u00aeKirgizische tijd\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeFranse zuidelijke en Antarctische tijd\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aePohnpeise tijd\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeLanka-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Christmas\u00aeChristmaseilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeFilipijnse tijd\u00ae\u00aeFilipijnse zomertijd\u00ae\u00ae\u00a9Argentina_Western\u00aeWest-Argentijnse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeWolgograd-tijd\u00ae\u00aeWolgograd-zomertijd\u00ae\u00ae\u00a9Hong_Kong\u00aeHongkong-tijd\u00ae\u00aeHongkong-zomertijd\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeWest-Kazachse standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeGuamese standaardtijd\u00aeGST (Guam)\u00ae\u00ae\u00ae\u00a9Amazon\u00aeAmazone-tijd\u00ae\u00aeAmazone-zomertijd\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre en Miquelon-standaardtijd\u00ae\u00aePierre en Miquelon-zomertijd\u00ae\u00ae\u00a9Niue\u00aeNiuese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aeTurkse tijd\u00ae\u00aeTurkse zomertijd\u00ae\u00ae\u00a9Nepal\u00aeNepalese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeCookeilandse tijd\u00ae\u00aeCookeilandse halve zomertijd\u00ae\u00ae\u00a9Macau\u00aeMacause tijd\u00ae\u00aeMacause zomertijd\u00ae\u00ae\u00a9Mauritius\u00aeMauritiaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aeCubaanse standaardtijd\u00aeCST (Cuba)\u00aeCubaanse zomertijd\u00aeCDT (Cuba)\u00ae\u00a9Lord_Howe\u00aeLord Howe-standaardtijd\u00ae\u00aeLord Howe-zomertijd\u00ae\u00ae\u00a9Tonga\u00aeTongaanse tijd\u00ae\u00aeTongaanse zomertijd\u00ae\u00ae\u00a9Maldives\u00aeMaldivische tijd\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00aeUlaanbaatar-tijd\u00ae\u00aeUlaanbaatar-zomertijd\u00ae\u00ae\u00a9Norfolk\u00aeNorfolkeilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Anadyr\u00aeAnadyr-tijd\u00ae\u00aeAnadyr-zomertijd\u00ae\u00ae\u00a9Irkutsk\u00aeIrkoetsk-tijd\u00ae\u00aeIrkoetsk-zomertijd\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeOost-Indonesische tijd\u00ae\u00ae\u00ae\u00ae\u00a9Myanmar\u00aeMyanmarese tijd\u00ae\u00ae\u00ae\u00ae\u00a9Reunion\u00aeR\u00e9unionse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeGolf-standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeAfghaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeKashgar-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeBruneise tijd\u00ae\u00ae\u00ae\u00ae\u00a9Novosibirsk\u00aeNovosibirsk-tijd\u00ae\u00aeNovosibirsk-zomertijd\u00ae\u00ae\u00a9Brasilia\u00aeBraziliaanse tijd\u00ae\u00aeBraziliaanse zomertijd\u00ae\u00ae\u00a9Line_Islands\u00aeLine-eilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9America_Pacific\u00aePacific-standaardtijd\u00ae\u00aePacific-zomertijd\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHawaii-Aleoetische standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeSamarkand-tijd\u00ae\u00aeSamarkand-zomertijd\u00ae\u00ae\u00a9Australia_Central\u00aeMidden-Australische standaardtijd\u00ae\u00aeMidden-Australische zomertijd\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeFijische tijd\u00ae\u00aeFijische zomertijd\u00ae\u00ae\u00a9Israel\u00aeIsra\u00eblische standaardtijd\u00aeIST (Isra\u00ebl)\u00aeIsra\u00eblische zomertijd\u00ae\u00ae\u00a9Yekaterinburg\u00aeJekaterinenburg-tijd\u00ae\u00aeJekaterinenburg-zomertijd\u00ae\u00ae\u00a9Easter\u00aePaaseilandse tijd\u00ae\u00aePaaseilandse zomertijd\u00ae\u00ae\u00a9Almaty\u00aeAlma-Ata-tijd\u00ae\u00aeAlma-Ata-zomertijd\u00ae\u00ae\u00a9Sverdlovsk\u00aeSverdlovsk-tijd\u00ae\u00aeSverdlovsk-zomertijd\u00ae\u00ae\u00a9Africa_Western\u00aeWest-Afrikaanse tijd\u00ae\u00aeWest-Afrikaanse zomertijd\u00ae\u00ae\u00a9Samoa\u00aeSamoaanse standaardtijd\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeBhutaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeOral-tijd\u00ae\u00aeOral-zomertijd\u00ae\u00ae\u00a9Alaska\u00aeAlaska - standaardtijd\u00ae\u00aeAlaska - zomertijd\u00ae\u00ae\u00a9Urumqi\u00ae\u00dcr\u00fcmqi-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Colombia\u00aeColombiaanse tijd\u00ae\u00aeColombiaanse zomertijd\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk-tijd\u00ae\u00aeAktyubinsk-zomertijd\u00ae\u00ae\u00a9North_Mariana\u00aeNoordelijk Mariaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Nauru\u00aeNauruaanse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Magadan\u00aeMagadan-tijd\u00ae\u00aeMagadan-zomertijd\u00ae\u00ae\u00a9Tajikistan\u00aeTadzjiekse tijd\u00ae\u00ae\u00ae\u00ae\u00a9New_Caledonia\u00aeNieuw-Caledonische tijd\u00ae\u00aeNieuw-Caledonische zomertijd\u00ae\u00ae\u00a9Choibalsan\u00aeChoibalsan-tijd\u00ae\u00aeChoibalsan-zomertijd\u00ae\u00ae\u00a9Azores\u00aeAzoren-tijd\u00ae\u00aeAzoren-zomertijd\u00ae\u00ae\u00a9Aqtau\u00aeAqtau-tijd\u00ae\u00aeAqtau-zomertijd\u00ae\u00ae\u00a9Baku\u00aeBakoe-tijd\u00ae\u00aeBakoe-zomertijd\u00ae\u00ae\u00a9Australia_Eastern\u00aeOost-Australische standaardtijd\u00ae\u00aeOost-Australische zomertijd\u00ae\u00ae\u00a9Davis\u00aeDavis-tijd\u00ae\u00ae\u00ae\u00ae\u00a9Gambier\u00aeGambiereilandse tijd\u00ae\u00ae\u00ae\u00ae\u00a9Noronha\u00aeFernando de Noronha-tijd\u00ae\u00aeFernando de Noronha-zomertijd\u00ae\u00ae\u00a9Greenland_Central\u00aeCentraal-Groenlandse tijd\u00ae\u00aeCentraal-Groenlandse zomertijd\u00ae\u00ae\u00a9Japan\u00aeJapanse standaardtijd\u00ae\u00aeJapanse zomertijd\u00ae\u00ae\u00a9Borneo\u00aeBorneose tijd\u00ae\u00aeBorneose zomertijd\u00ae\u00ae\u00a9
territories.TL=Oost-Timor
territories.TK=Tokelau
territories.TJ=Tadzjikistan
@@ -379,22 +424,23 @@ territories.TC=Turks- en Caicoseilanden
territories.GW=Guinee-Bissau
territories.GU=Guam
territories.GT=Guatemala
-territories.GS=Zuid-Georgi\u00eb en Zuidelijke Sandwicheilanden
+territories.GS=Zuid-Georgi\u00eb en de Zuidelijke Sandwicheilanden
territories.GR=Griekenland
territories.GQ=Equatoriaal-Guinea
territories.GP=Guadeloupe
territories.SZ=Swaziland
territories.SY=Syri\u00eb
-territories.GN=Guinea
+territories.GN=Guinee
territories.GM=Gambia
territories.GL=Groenland
territories.SV=El Salvador
territories.062=Zuidelijk Centraal-Azi\u00eb
territories.ST=Sao Tom\u00e9 en Principe
-territories.061=Polynesi\u00eb
territories.GI=Gibraltar
+territories.061=Polynesi\u00eb
territories.GH=Ghana
territories.SR=Suriname
+territories.GG=Guernsey
territories.GF=Frans-Guyana
territories.GE=Georgi\u00eb
territories.SO=Somali\u00eb
@@ -405,46 +451,48 @@ territories.GB=Verenigd Koninkrijk
territories.SL=Sierra Leone
territories.GA=Gabon
territories.SK=Slowakije
-territories.SJ=Svalbard en Jan Mayen
+territories.SJ=Spitsbergen en Jan Mayen
territories.SI=Sloveni\u00eb
-territories.SH=Saint Helena
+territories.SH=Sint-Helena
territories.SG=Singapore
territories.SE=Zweden
territories.SD=Soedan
territories.SC=Seychellen
territories.SB=Salomonseilanden
-territories.SA=Saoedi-Arabi\u00eb
+territories.SA=Saudi-Arabi\u00eb
territories.FR=Frankrijk
-territories.057=Micronesi\u00eb
territories.FO=Faer\u00f6er
-territories.FM=Micronesia, Federale Staten van
+territories.057=Micronesische regio
+territories.FM=Micronesia
territories.RW=Rwanda
territories.054=Melanesi\u00eb
-territories.053=Australi\u00eb en Nieuw-Zeeland
territories.FK=Falklandeilanden
-territories.RU=Russische Federatie
+territories.053=Australi\u00eb en Nieuw-Zeeland
+territories.RU=Rusland
territories.FJ=Fiji
territories.FI=Finland
+territories.RS=Servi\u00eb
territories.RO=Roemeni\u00eb
territories.RE=R\u00e9union
territories.ET=Ethiopi\u00eb
territories.ES=Spanje
territories.ER=Eritrea
-territories.833=Isle of Man
-territories.EH=West-Sahara
+territories.QU=Europese Unie
+territories.EH=Westelijke Sahara
territories.EG=Egypte
-territories.830=Kanaaleilanden
territories.EE=Estland
-territories.QO=Oceani\u00eb (overige)
+territories.830=Kanaaleilanden
+territories.QO=Overige gebieden van Oceani\u00eb
territories.EC=Ecuador
territories.DZ=Algerije
territories.QA=Qatar
territories.039=Zuid-Europa
territories.DO=Dominicaanse Republiek
territories.PY=Paraguay
-territories.035=Zuidoost-Azi\u00eb
territories.DM=Dominica
+territories.035=Zuidoost-Azi\u00eb
territories.PW=Palau
+territories.034=Zuid-Azi\u00eb
territories.DK=Denemarken
territories.DJ=Djibouti
territories.PT=Portugal
@@ -474,97 +522,104 @@ territories.CN=China
territories.CM=Kameroen
territories.CL=Chili
territories.CK=Cookeilanden
-territories.CI=Ivoorkust
territories.021=Noord-Amerika
+territories.CI=Ivoorkust
territories.CH=Zwitserland
-territories.CG=Congo
+territories.CG=Congo, Republiek
territories.CF=Centraal-Afrikaanse Republiek
territories.CD=Congo, Democratische Republiek
territories.CC=Cocoseilanden
territories.OM=Oman
territories.CA=Canada
+territories.419=Latijns-Amerika en het Caribisch gebied
territories.BZ=Belize
territories.BY=Wit-Rusland
territories.BW=Botswana
territories.BV=Bouveteiland
territories.BT=Bhutan
-territories.BS=Bahama\u2019s
+territories.BS=Bahama's
territories.BR=Brazili\u00eb
territories.019=Amerika
territories.018=Zuidelijk Afrika
territories.NZ=Nieuw-Zeeland
-territories.BO=Bolivia
territories.017=Centraal-Afrika
-territories.BN=Brunei Darussalam
-territories.BM=Bermuda
+territories.BO=Bolivia
+territories.BN=Brunei
territories.015=Noord-Afrika
+territories.BM=Bermuda
territories.014=Oost-Afrika
+territories.BL=Saint Barth\u00e9lemy
territories.013=Midden-Amerika
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=West-Afrika
+territories.BI=Burundi
+territories.172=Gemenebest van Onafhankelijke Staten
territories.BH=Bahrein
territories.NR=Nauru
territories.BG=Bulgarije
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgi\u00eb
+territories.ZZ=Onbekend of onjuist gebied
territories.NO=Noorwegen
territories.BD=Bangladesh
territories.BB=Barbados
territories.ZW=Zimbabwe
territories.NL=Nederland
-territories.BA=Bosni\u00eb Herzegovina
+territories.BA=Bosni\u00eb en Herzegovina
territories.NI=Nicaragua
territories.NG=Nigeria
territories.NF=Norfolkeiland
territories.AZ=Azerbeidzjan
territories.NE=Niger
-territories.AX=Alandeilanden
+territories.AX=\u00c5landseilanden
territories.NC=Nieuw-Caledoni\u00eb
territories.AW=Aruba
territories.ZM=Zambia
territories.NA=Namibi\u00eb
territories.AU=Australi\u00eb
territories.AT=Oostenrijk
-territories.AS=Amerikaans Samoa
+territories.AS=Amerikaans-Samoa
territories.AR=Argentini\u00eb
-territories.009=Oceani\u00eb
territories.AQ=Antarctica
+territories.009=Oceani\u00eb
territories.MZ=Mozambique
territories.AO=Angola
territories.MY=Maleisi\u00eb
territories.AN=Nederlandse Antillen
territories.MX=Mexico
-territories.005=Zuid-Amerika
territories.AM=Armeni\u00eb
+territories.005=Zuid-Amerika
territories.MW=Malawi
territories.AL=Albani\u00eb
territories.MV=Maldiven
+territories.003=Noord-Amerika
territories.ZA=Zuid-Afrika
territories.MU=Mauritius
territories.002=Afrika
territories.MT=Malta
-territories.001=Wereld
territories.AI=Anguilla
+territories.001=Wereld
territories.MS=Montserrat
territories.MR=Mauritani\u00eb
territories.AG=Antigua en Barbuda
territories.MQ=Martinique
territories.AF=Afghanistan
-territories.MP=Noordelijke Marianeneilanden
+territories.MP=Noordelijke Marianen
territories.AE=Verenigde Arabische Emiraten
-territories.MO=Macao S.A.R. van China
+territories.MO=Macao
territories.AD=Andorra
territories.MN=Mongoli\u00eb
territories.MM=Myanmar
territories.ML=Mali
-territories.MK=Macedoni\u00eb, Republiek
+territories.MK=Macedoni\u00eb
territories.YT=Mayotte
territories.MH=Marshalleilanden
territories.MG=Madagaskar
-territories.MD=Republiek Moldavi\u00eb
+territories.MF=Sint-Maarten
+territories.ME=Montenegro
+territories.MD=Moldavi\u00eb
territories.MC=Monaco
territories.MA=Marokko
territories.YE=Jemen
@@ -587,6 +642,7 @@ territories.KZ=Kazachstan
territories.KY=Caymaneilanden
territories.KW=Koeweit
territories.145=West-Azi\u00eb
+territories.143=Centraal-Azi\u00eb
territories.142=Azi\u00eb
territories.KR=Zuid-Korea
territories.KP=Noord-Korea
@@ -595,13 +651,14 @@ territories.KM=Comoren
territories.KI=Kiribati
territories.WS=Samoa
territories.KH=Cambodja
-territories.KG=Kirgizstan
+territories.KG=Kirgizi\u00eb
territories.KE=Kenia
territories.WF=Wallis en Futuna
territories.JP=Japan
territories.JO=Jordani\u00eb
territories.JM=Jamaica
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=Amerikaanse Maagdeneilanden
territories.VG=Britse Maagdeneilanden
@@ -616,6 +673,7 @@ territories.UZ=Oezbekistan
territories.IO=Brits Territorium in de Indische Oceaan
territories.UY=Uruguay
territories.IN=India
+territories.IM=Isle of Man
territories.IL=Isra\u00ebl
territories.US=Verenigde Staten
territories.IE=Ierland
@@ -628,17 +686,17 @@ territories.HT=Ha\u00efti
territories.HR=Kroati\u00eb
territories.TZ=Tanzania
territories.HN=Honduras
-territories.HM=Heardeiland en McDonaldeiland
+territories.HM=Heard- en McDonaldeilanden
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=Hongkong S.A.R. van China
+territories.HK=Hongkong
territories.TT=Trinidad en Tobago
territories.TR=Turkije
territories.TO=Tonga
territories.TN=Tunesi\u00eb
territories.TM=Turkmenistan
-languages.akk=Akkadisch
languages.gwi=Gwich\u02bcin
+languages.akk=Akkadisch
languages.eka=Ekajuk
languages.ijo=Ijo
languages.xh=Xhosa
@@ -646,20 +704,21 @@ languages.sux=Soemerisch
languages.sus=Soesoe
languages.mis=Diverse talen
languages.loz=Lozi
-languages.tog=Tonga (Nyasa)
+languages.tog=Nyasa Tonga
languages.pon=Pohnpeiaans
languages.min=Minangkabau
languages.suk=Sukuma
languages.wo=Wolof
-languages.kut=Kutenai
languages.lol=Mongo
+languages.kut=Kutenai
languages.mic=Mi'kmaq
languages.wa=Wallonisch
languages.kum=Kumyk
languages.zap=Zapotec
-languages.cus=Koesjitisch (overige)
-languages.doi=Dogri
+languages.ain=Ainu
+languages.cus=Koesjitische taal
languages.jbo=Lojban
+languages.doi=Dogri
languages.vo=Volap\u00fck
languages.oto=Otomi-talen
languages.vi=Vietnamees
@@ -668,7 +727,7 @@ languages.rar=Rarotongan
languages.ve=Venda
languages.rap=Rapanui
languages.raj=Rajasthani
-languages.ota=Turks, Ottomaans (1500-1928)
+languages.ota=Ottomaans-Turks
languages.nzi=Nzima
languages.nap=Napolitaans
languages.uz=Oezbeeks
@@ -679,16 +738,17 @@ languages.nah=Nahuatl
languages.ur=Urdu
languages.fat=Fanti
languages.uk=Oekra\u00efens
-languages.egy=Egyptisch (klassiek)
-languages.ug=Uighur
+languages.egy=Oudegyptisch
+languages.ug=Oeigoers
languages.fan=Fang
-languages.ssa=Nilo-Saharam (overige)
-languages.bat=Baltisch (overige)
+languages.ssa=Nilo-Saharaanse taal
languages.mga=Iers, middel- (900-1200)
+languages.bat=Baltische taal
languages.nyo=Nyoro
languages.bas=Basa
languages.nyn=Nyankole
languages.nym=Nyamwezi
+languages.gsw=Zwitsers Duits
languages.hmn=Hmong
languages.ban=Balinees
languages.osa=Osage
@@ -698,96 +758,104 @@ languages.bai=Bamileke-talen
languages.tw=Twi
languages.srr=Serer
languages.tli=Tlingit
+languages.tlh=Klingon
languages.tt=Tataars
languages.ts=Tsonga
+languages.srn=Sranantongo
languages.bad=Banda
languages.tr=Turks
-languages.to=Tonga (Tonga-eilanden)
+languages.to=Tonga
languages.tn=Tswana
languages.tl=Tagalog
languages.tk=Turkmeens
languages.ti=Tigrinya
languages.th=Thai
languages.kru=Kurukh
-languages.tg=Tadzjik
+languages.tg=Tadzjieks
languages.byn=Blin
languages.te=Teloegoe
-languages.csb=Kasjoebisch
languages.kro=Kru
+languages.csb=Kasjoebisch
languages.ta=Tamil
languages.tkl=Tokelau
languages.efi=Efik
languages.sw=Swahili
languages.sv=Zweeds
-languages.su=Sundanees
+languages.su=Soendanees
languages.krc=Karachay-Balkar
-languages.st=Sotho, zuid
-languages.ss=Swati
+languages.st=Zuid-Sotho
+languages.ss=Swazi
languages.sr=Servisch
languages.sq=Albanees
languages.men=Mende
-languages.crp=Creools en Pidgin (overige)
+languages.crp=Creools of Pidgin
languages.so=Somalisch
languages.afh=Afrihili
languages.sn=Shona
languages.sm=Samoaans
languages.sl=Sloveens
-languages.grc=Grieks, klassiek (tot 1453)
+languages.grc=Oudgrieks
languages.sk=Slowaaks
languages.grb=Grebo
languages.si=Singalees
-languages.sh=Servokroatisch
-languages.afa=Afro-Aziatisch (overige)
+languages.sh=Servo-Kroatisch
languages.crh=Krim-Tataars
+languages.afa=Afro-Aziatische taal
languages.sg=Sango
languages.se=Noord-Samisch
languages.sd=Sindhi
languages.udm=Udmurt
languages.sc=Sardinisch
-languages.sa=Sanskrit
+languages.sa=Sanskriet
languages.rw=Kinyarwanda
+languages.nwc=Klassiek Newari
languages.ru=Russisch
languages.mdr=Mandar
languages.ro=Roemeens
languages.rn=Rundi
-languages.rm=Retoromaans
+languages.rm=Reto-Romaans
+languages.fr_CH=Zwitsers Frans
languages.mdf=Moksha
languages.tiv=Tiv
+languages.fr_CA=Canadees Frans
languages.ady=Adyghe
languages.zun=Zuni
languages.kpe=Kpelle
languages.qu=Quechua
languages.tig=Tigre
languages.son=Songhai
-languages.cpp=Creools en Pidgin, op Portugees gebaseerd (overige)
+languages.cpp=op Portugees gebaseerd Creools of Pidgin
+languages.rup=Aromaniaans
languages.sog=Sogdisch
languages.ada=Adangme
-languages.cpf=Creools en Pidgin, op Frans gebaseerd (overige)
-languages.hit=Hettitisch
languages.kos=Kosraeaans
-languages.cpe=Creools en Pidgin, op Engels gebaseerd (overige)
+languages.hit=Hettitisch
+languages.cpf=op Frans gebaseerd Creools of Pidgin
+languages.cpe=op Engels gebaseerd Creools of Pidgin
languages.him=Himachali
-languages.got=Gothisch
-languages.hil=Hiligaynon
languages.kok=Konkani
+languages.hil=Hiligaynon
+languages.got=Gothisch
languages.gor=Gorontalo
languages.gon=Gondi
languages.din=Dinka
languages.nub=Nubische talen
languages.pt=Portugees
-languages.ps=Pashto
+languages.ps=Pasjtoe
languages.fur=Friulisch
languages.phn=Foenicisch
-languages.goh=Duits, oudhoog- (ca. 750-1050)
+languages.de_CH=Zwitsers Hoogduits
+languages.goh=Oudhoogduits
languages.snk=Soninke
languages.cop=Koptisch
languages.yap=Yapees
languages.ach=Akoli
languages.yao=Yao
-languages.phi=Filippijns (overige)
+languages.phi=Filippijnse taal
languages.pl=Pools
languages.ace=Atjees
languages.pi=Pali
+languages.pt_PT=Iberisch Portugees
languages.pa=Punjabi
languages.bug=Buginees
languages.iba=Iban
@@ -796,11 +864,11 @@ languages.bua=Buriat
languages.mas=Masai
languages.smn=Inari Sami
languages.os=Ossetisch
-languages.map=Austronesisch (overige)
+languages.map=Austronesische taal
languages.or=Oriya
languages.man=Mandingo
languages.smj=Lule Sami
-languages.smi=Sami-talen (overige)
+languages.smi=Sami-taal
languages.mak=Makassaars
languages.om=Oromo
languages.mai=Maithili
@@ -808,24 +876,27 @@ languages.oj=Ojibwa
languages.mag=Magahi
languages.mad=Madurees
languages.sma=Zuid-Samisch
-languages.oc=Langue d\u2019Oc (na 1500)
+languages.oc=Occitaans
languages.nso=Noord-Sotho
-languages.btk=Bataks (Indonesi\u00eb)
+languages.btk=Batak
languages.myv=Erzya
+languages.es_ES=Iberisch Spaans
+languages.de_AT=Oostenrijks Duits
languages.dgr=Dogrib
languages.ny=Nyanja
languages.myn=Mayan-talen
languages.nv=Navajo
languages.kmb=Kimbundu
-languages.nr=Ndebele, zuid-
+languages.nr=Zuid-Ndbele
languages.gmh=Duits, middelhoog- (ca. 1050-1500)
languages.no=Noors
-languages.nn=Noors - Nynorsk
+languages.nn=Nieuwnoors
languages.nl=Nederlands
+languages.root=Root
languages.ng=Ndonga
-languages.sla=Slavisch (overige)
+languages.sla=Slavische taal
languages.ne=Nepalees
-languages.nd=Ndebele, noord-
+languages.nd=Noord-Ndbele
languages.cmc=Chamische talen
languages.tet=Tetum
languages.nb=Noors - Bokm\u00e5l
@@ -835,10 +906,10 @@ languages.tem=Timne
languages.my=Birmees
languages.lez=Lezgisch
languages.mt=Maltees
-languages.peo=Perzisch, oud- (ca. 600-400 v. Chr.)
+languages.peo=Oudperzisch
languages.ms=Maleis
languages.mr=Marathi
-languages.fro=Frans, oud- (ca. 842-1400)
+languages.fro=Oudfrans
languages.mo=Moldavisch
languages.mn=Mongools
languages.frm=Frans, middel- (ca. 1400-1800)
@@ -847,15 +918,16 @@ languages.jrb=Judeo-Arabisch
languages.mk=Macedonisch
languages.mi=Maori
languages.mh=Marshallees
-languages.mg=Malagasisch
+languages.mg=Malagasi
languages.mwr=Marwari
languages.bra=Braj
-languages.lv=Letlands
-languages.den=Slave (Athapascan)
+languages.mwl=Mirandees
+languages.den=Slavey
+languages.lv=Lets
languages.lu=Luba-Katanga
-languages.lt=Litouws
languages.del=Delaware
-languages.lo=Lao
+languages.lt=Litouws
+languages.lo=Laotiaans
languages.ln=Lingala
languages.li=Limburgs
languages.ewo=Ewondo
@@ -864,18 +936,19 @@ languages.lb=Luxemburgs
languages.la=Latijn
languages.jpr=Judeo-Perzisch
languages.vot=Votisch
-languages.sit=Sino-Tibetaans (overige)
+languages.sit=Sino-Tibetaanse taal
languages.ky=Kirgizisch
languages.kw=Cornish
languages.kv=Komi
languages.ku=Koerdisch
languages.sio=Siouaanse talen
-languages.ks=Kashmiri
+languages.ks=Kasjmiri
languages.kr=Kanuri
languages.awa=Awadhi
languages.ko=Koreaans
languages.kn=Kannada
languages.km=Khmer
+languages.en_GB=Brits Engels
languages.kl=Kalaallisut
languages.kk=Kazachs
languages.rom=Romani
@@ -883,10 +956,10 @@ languages.kj=Kuanyama
languages.sid=Sidamo
languages.ki=Kikuyu
languages.kg=Kongo
-languages.non=Noors, oud-
+languages.non=Oudnoors
languages.ka=Georgisch
languages.mus=Creek
-languages.roa=Romaans (overige)
+languages.roa=Romaanse taal
languages.nog=Nogai
languages.mun=Munda-talen
languages.mul=Meerdere talen
@@ -899,46 +972,46 @@ languages.xal=Kalmyk
languages.aus=Australische talen
languages.kho=Khotanees
languages.ja=Japans
-languages.khi=Khoisan (overige)
+languages.khi=Khoisan-taal
languages.pau=Palauaans
languages.chy=Cheyenne
-languages.tai=Tai (overige)
+languages.tai=Tai-taal
languages.iu=Inuktitut
languages.pap=Papiamento
languages.it=Italiaans
languages.sgn=Gebarentalen
-languages.kha=Khasi
languages.is=IJslands
+languages.kha=Khasi
languages.chr=Cherokee
languages.pam=Pampanga
languages.pal=Pahlavi
languages.chp=Chipewyan
-languages.cho=Choctaw
languages.io=Ido
+languages.cho=Choctaw
languages.chn=Chinook-jargon
languages.chm=Mari
languages.tyv=Tuvinisch
-languages.bnt=Bantoe (overige)
+languages.bnt=Bantoetaal
languages.pag=Pangasinan
-languages.chk=Chuukees
languages.ik=Inupiaq
-languages.haw=Hawa\u00efaans
+languages.chk=Chuukees
languages.ii=Sichuan Yi
+languages.haw=Hawa\u00efaans
languages.lam=Lamba
-languages.chg=Chagatai
languages.ig=Igbo
-languages.sga=Iers, oud- (tot 900)
-languages.paa=Papoeaas (overige)
+languages.chg=Chagatai
+languages.sga=Oudiers
+languages.paa=Papoeataal
languages.ie=Interlingue
languages.id=Indonesisch
languages.lah=Lahnda
-languages.chb=Chibcha
languages.day=Dajak
+languages.chb=Chibcha
languages.ia=Interlingua
languages.lad=Ladino
-languages.dar=Dargwa
-languages.hai=Haida
languages.hz=Herero
+languages.hai=Haida
+languages.dar=Dargwa
languages.hy=Armeens
languages.ath=Athapascaanse talen
languages.hu=Hongaars
@@ -950,62 +1023,73 @@ languages.hi=Hindi
languages.dyu=Dyula
languages.he=Hebreeuws
languages.ast=Asturisch
+languages.kfo=Koro
languages.ha=Hausa
languages.wen=Sorbische talen
languages.gv=Manx
languages.gu=Gujarati
-languages.sem=Semitisch (overige)
+languages.sem=Semitische taal
languages.sel=Selkup
languages.iro=Irokese talen
languages.gn=Guarani
languages.gl=Galicisch
+languages.en_CA=Canadees Engels
languages.arw=Arawak
-languages.gd=Schots Gaelic
-languages.art=Kunstmatige talen (overige)
languages.gez=Geez
-languages.ira=Iraans (overige)
+languages.art=kunstmatige taal
+languages.gd=Schots-Gaelisch
+languages.ira=Iraanse taal
languages.ga=Iers
languages.arp=Arapaho
languages.arn=Araukaans
languages.fy=Fries
languages.bla=Siksika
-languages.gem=Germaans (overige)
+languages.gem=Germaanse taal
languages.ypk=Yupik-talen
-languages.fr=Frans
languages.arc=Aramees
+languages.fr=Frans
languages.fo=Faer\u00f6ers
-languages.cel=Keltisch (overige)
+languages.cel=Keltische taal
languages.fj=Fijisch
languages.fi=Fins
languages.ff=Fulah
languages.tvl=Tuvalu
languages.ceb=Cebuano
languages.fa=Perzisch
+languages.en_AU=Australisch Engels
+languages.zh_Hans=Vereenvoudigd Chinees
+languages.zh_Hant=Traditioneel Chinees
languages.eu=Baskisch
languages.sco=Schots
languages.et=Estlands
+languages.scn=Siciliaans
languages.es=Spaans
languages.eo=Esperanto
languages.en=Engels
languages.el=Grieks
-languages.tut=Alta\u00efsch (overige)
+languages.tut=Alta\u00efsche taal
languages.niu=Niueaans
languages.tup=Tupi-talen
languages.ee=Ewe
languages.tum=Toemboeka
+languages.nl_BE=Vlaams
+languages.es_419=Latijns-Amerikaans Spaans
languages.mos=Mossi
languages.dz=Dzongkha
-languages.nic=Niger-Kordofanisch (overige)
-languages.dv=Divehi
-languages.fiu=Finoegrische talen (overige)
+languages.kcg=Tyap
+languages.nic=Niger-Kordofanische taal
languages.lus=Lushai
+languages.fiu=Finoegrische taal
+languages.dv=Divehi
languages.nia=Nias
languages.moh=Mohawk
-languages.luo=Luo (Kenia en Tanzania)
+languages.luo=Luo
languages.lun=Lunda
languages.apa=Apache-talen
+languages.fil=Filipijns
languages.lui=Luiseno
languages.hup=Hupa
+languages.cch=Atsam
languages.bin=Bini
languages.de=Duits
languages.lua=Luba-Lulua
@@ -1021,8 +1105,8 @@ languages.wak=Wakashan-talen
languages.sat=Santali
languages.cy=Welsh
languages.sas=Sasak
-languages.cv=Tsjoevasjisch
languages.kbd=Kabardisch
+languages.cv=Tsjoevasjisch
languages.cu=Kerkslavisch
languages.mni=Manipoeri
languages.cs=Tsjechisch
@@ -1031,57 +1115,59 @@ languages.cr=Cree
languages.sal=Salishan-talen
languages.dua=Duala
languages.co=Corsicaans
-languages.sai=Zuid-Amerikaans Indiaans (overige)
+languages.sai=Zuid-Amerikaans Indiaanse taal
languages.mnc=Mantsjoe
languages.sah=Yakut
-languages.gba=Gbaya
-languages.inh=Ingoesj
languages.kaw=Kawi
+languages.inh=Ingoesj
+languages.gba=Gbaya
languages.sad=Sandawe
languages.ch=Chamorro
+languages.ine=Indo-Europese taal
languages.bho=Bhojpuri
-languages.ine=Indo-Europees (overige)
languages.enm=Engels, middel- (1100-1500)
-languages.ce=Chechen
-languages.inc=Indisch (overige)
languages.kar=Karen
+languages.inc=Indische taal
+languages.ce=Chechen
languages.gay=Gayo
languages.ca=Catalaans
languages.umb=Umbundu
languages.syr=Syriac
languages.kam=Kamba
languages.tsi=Tsimshian
-languages.ang=Engels, oud (ca. 450-1100)
-languages.cau=Kaukasisch (overige)
+languages.kaj=Jju
+languages.ang=Oudengels
languages.kac=Kachin
+languages.cau=Kaukasische taal
languages.kab=Kabyle
-languages.bs=Bosnisch
languages.kaa=Karakalpaks
-languages.br=Bretons
+languages.bs=Bosnisch
languages.car=Caribisch
+languages.br=Bretons
languages.bo=Tibetaans
-languages.bn=Bengalees
+languages.bn=Bengaals
languages.bm=Bambara
languages.gaa=Ga
+languages.cai=Midden-Amerikaans Indiaanse taal
languages.bi=Bislama
-languages.cai=Midden-Amerikaans Indiaans (overige)
languages.bh=Bihari
languages.bg=Bulgaars
languages.be=Wit-Russisch
+languages.pt_BR=Braziliaans Portugees
languages.cad=Caddo
languages.ba=Basjkiers
languages.zu=Zulu
languages.zen=Zenaga
-languages.pro=Proven\u00e7aals, oud- (tot 1500)
+languages.pro=Oudproven\u00e7aals
languages.hsb=Oppersorbisch
languages.az=Azerbeidzjaans
languages.ay=Aymara
languages.av=Avarisch
languages.as=Assamees
-languages.ar=Arabisch
languages.dsb=Nedersorbisch
-languages.elx=Elamitisch
+languages.ar=Arabisch
languages.ilo=Iloko
+languages.elx=Elamitisch
languages.zh=Chinees
languages.an=Aragonees
languages.pra=Prakrit-talen
@@ -1089,19 +1175,39 @@ languages.am=Amhaars
languages.new=Newari
languages.ak=Akan
languages.za=Zhuang
+languages.en_US=Amerikaans Engels
languages.af=Afrikaans
languages.ae=Avestisch
+languages.alt=Zuid-Alta\u00efsch
languages.ab=Abchazisch
languages.aa=Afar
-languages.yo=Joruba
+languages.yo=Yoruba
languages.alg=Algonkium-talen
languages.ale=Aleut
-languages.mkh=Mon-Khmer (overige)
+languages.mkh=Mon-Khmer-taal
languages.yi=Jiddisch
-languages.dra=Dravidisch (overige)
-languages.ber=Berber (overige)
+languages.dra=Dravidische taal
+languages.ber=Berber
languages.nds=Laagduits
languages.bem=Bemba
languages.bej=Beja
languages.tpi=Tok Pisin
-variants.REVISED=Gewijzigd
+variants.POSIX=Computer
+variants.AREVMDA=West-Armeens
+variants.1996=Duitse spelling van 1996
+variants.SOLBA=Stolvizza/Solbica-dialect
+variants.NEDIS=Natisone-dialect
+variants.1901=traditionele Duitse spelling
+variants.FONUPA=Oeralisch Fonetisch Alfabet
+variants.OSOJS=Oseacco/Osojane-dialect
+variants.REVISED=gewijzigde spelling
+variants.NJIVA=Gniva/Njiva-dialect
+variants.FONIPA=Internationaal Fonetisch Alfabet
+variants.BISKE=San Giorgio/Bila-dialect
+variants.SCOUSE=Liverpools
+variants.SAAHO=Saho
+variants.MONOTON=monotonaal
+variants.ROZAJ=Resiaans
+variants.POLYTON=polytonaal
+variants.AREVELA=Oost-Armeens
+variants.BOONT=Boontling
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl_BE.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl_BE.properties
index 9c0abf4..fe4a4fe 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl_BE.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nl_BE.properties
@@ -5,12 +5,14 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
shortDateFormat=d/MM/yy
-mediumDateFormat=d-MMM-yy
-shortTimeFormat=HH:mm
-mediumTimeFormat=HH:mm:ss
-longTimeFormat=HH:mm:ss z
-fullTimeFormat=HH.mm' u. 'z
+mediumDateFormat=d-MMM-yyyy
+territories.SB=Salomoneilanden
+territories.MV=Malediven
+territories.IM=Het Eiland Man
+territories.013=Centraal-Amerika
+languages.oc=Occitaans (na 1500); Proven\u00e7aals
+languages.ssa=Nilo-Saharaans
+languages.sh=Servo-Kroatisch
+languages.lv=Lets
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nn.properties
index 934b6c3..e638104 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nn.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nn.properties
@@ -5,23 +5,93 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=\u00d710^
+infinity=\u221e
+minusSign=\u2212
+zeroDigit=0
decimalSeparator=,
groupingSeparator=\u00a0
-currenciesDisplayName.INR=Indiske rupi
-currenciesDisplayName.NOK=Norske kroner
-currenciesDisplayName.RUB=Russiske rubler
-currenciesDisplayName.CNY=Kinesiske yuan renminbi
-currenciesDisplayName.GBP=Britiske pund
-currenciesDisplayName.BRL=Brasilianske real
-currenciesDisplayName.USD=Amerikanske dollar
-shortMonths=jan.®feb.®mars®april®mai®juni®juli®aug.®sep.®okt.®nov.®des.®®
-months=januar®februar®mars®april®mai®juni®juli®august®september®oktober®november®desember®®
-shortWeekdays=®su.®m\u00e5.®ty.®on.®to.®fr.®la.®
-weekdays=®sundag®m\u00e5ndag®tysdag®onsdag®torsdag®fredag®laurdag®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=f.Kr.®e.Kr.®
-ampms=a.m.®p.m.®
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.AOA=angolsk kwanza
+currenciesDisplayName.AUD=australsk dollar
+currenciesDisplayName.ARA=argentisk austral
+currenciesDisplayName.BEL=belgisk franc (finansiell)
+currenciesDisplayName.RUB=russisk rubel
+currenciesDisplayName.BEF=belgisk franc
+currenciesDisplayName.BBD=barbadisk dollar
+currenciesDisplayName.BTN=bhutansk ngultrum
+currenciesDisplayName.BEC=belgisk franc (konvertibel)
+currenciesDisplayName.BHD=bahrainsk dinar
+currenciesDisplayName.XXX=ukjend eller ugyldig valuta
+currenciesDisplayName.BND=bruneisk dollar
+currenciesDisplayName.ATS=austerriksk schilling
+currenciesDisplayName.INR=indisk rupi
+currenciesDisplayName.AED=UAE dirham
+currenciesDisplayName.STD=Sao Tome og Principe-dobra
+currenciesDisplayName.ANG=nederlansk antillegylden
+currenciesDisplayName.BDT=bangladeshisk taka
+currenciesDisplayName.XOF=CFA franc BCEAO
+currenciesDisplayName.AZM=aserbaijansk manat
+currenciesDisplayName.AWG=arubisk gylden
+currenciesDisplayName.BAM=bosnisk-hercegovinsk mark (konvertibel)
+currenciesDisplayName.USD=amerikansk dollar
+currenciesDisplayName.BGN=bulgarsk ny lev
+currenciesDisplayName.BGL=bulgarsk hard lev
+currenciesDisplayName.JPY=japansk yen
+currenciesDisplayName.GBP=britisk pund sterling
+currenciesDisplayName.NOK=norsk krone
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BAD=bosnisk-hercegovinsk dinar
+currenciesDisplayName.ADP=andorransk peseta
+currenciesDisplayName.CVE=kappverdisk escudo
+currenciesDisplayName.ZWD=zimbabwisk dollar
+currenciesDisplayName.ZAR=s\u00f8rafrikansk rand
+currenciesDisplayName.BMD=bermudisk dollar
+currenciesDisplayName.GWP=Guinea-Bissau-peso
+currenciesDisplayName.BSD=bahamisk dollar
+currenciesDisplayName.ZAL=s\u00f8rafrikansk rand (finansiell)
+currenciesDisplayName.AMD=armensk dram
+currenciesDisplayName.ZMK=zambisk kwacha
+currenciesDisplayName.BOV=bolivisk mvdol
+currenciesDisplayName.BOP=bolivisk peso
+currenciesDisplayName.BRR=brasiliansk cruzeiro
+currenciesDisplayName.BRN=brasiliansk cruzado novo
+currenciesDisplayName.BIF=burundisk franc
+currenciesDisplayName.BRL=brasiliansk real
+currenciesDisplayName.AFN=afghani
+currenciesDisplayName.AOR=angolsk kwanza reajustado (1995-1999)
+currenciesDisplayName.BUK=burmesisk kyat
+currenciesDisplayName.ARS=argentinsk peso
+currenciesDisplayName.CNY=kinesisk yuan renminbi
+currenciesDisplayName.DKK=dansk krone
+currenciesDisplayName.ALL=albansk lek
+currenciesDisplayName.AON=angolsk ny kwanza (1990-2000)
+currenciesDisplayName.ARP=argentinsk peso (1983-1985)
+currenciesDisplayName.BRE=brasiliansk cruzeiro (1990-1993)
+currenciesDisplayName.ZRZ=zairisk zaire
+currenciesDisplayName.BOB=boliviano
+currenciesDisplayName.BRC=brasiliansk cruzado
+currenciesDisplayName.MZN=mosambikisk metical
+currenciesDisplayName.AOK=angolsk kwanza (1977-1990)
+currenciesDisplayName.BRB=brasiliansk cruzeiro novo (1967-1986)
+currenciesDisplayName.AFA=afghani (1927-2002)
+currenciesDisplayName.ZRN=zairisk ny zaire
+currenciesSymbol.NOK=kr
+currenciesSymbol.INR=INR
+currenciesSymbol.JPY=JPY
+currenciesSymbol.EUR=EUR
+currenciesSymbol.GBP=GBP
+currenciesSymbol.BRL=BRL
+currenciesSymbol.USD=USD
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemai\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedes\u00ae\u00ae
+months=januar\u00aefebruar\u00aemars\u00aeapril\u00aemai\u00aejuni\u00aejuli\u00aeaugust\u00aeseptember\u00aeoktober\u00aenovember\u00aedesember\u00ae\u00ae
+shortWeekdays=\u00ae\u00aem\u00e5.\u00ae\u00ae\u00ae\u00ae\u00aela.\u00ae
+weekdays=\u00aes\u00f8ndag\u00aem\u00e5ndag\u00aetysdag\u00aeonsdag\u00aetorsdag\u00aefredag\u00aelaurdag\u00ae
+eras=f.Kr.\u00aee.Kr.\u00ae
+ampms=formiddag\u00aeettermiddag\u00ae
shortDateFormat=dd.MM.yy
mediumDateFormat=d. MMM. yyyy
longDateFormat=d. MMMM yyyy
@@ -29,20 +99,21 @@ fullDateFormat=EEEE d. MMMM yyyy
shortTimeFormat=HH.mm
mediumTimeFormat=HH.mm.ss
longTimeFormat=HH.mm.ss z
-fullTimeFormat='kl. 'HH.mm.ss z
-territories.TL=\u00d8st-Timor
+fullTimeFormat='kl'. HH.mm.ss z
+zoneStrings=Australia_Eastern\u00aeaustaustralsk standardtid\u00ae\u00aeaustaustralsk sommartid\u00ae\u00ae\u00a9Africa_Western\u00aevestafrikansk tid\u00ae\u00aevestafrikansk sommartid\u00ae\u00ae\u00a9Africa_Southern\u00aes\u00f8rafrikansk standardtid\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00aeaustafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Eastern\u00aeausteuropeisk tid\u00ae\u00aeausteuropeisk sommartid\u00ae\u00ae\u00a9Europe_Central\u00aesentraleuropeisk tid\u00ae\u00aesentraleuropeisk sommartid\u00ae\u00ae\u00a9Australia_Western\u00aevestaustralsk standardtid\u00ae\u00aevestaustralsk sommartid\u00ae\u00ae\u00a9Africa_Central\u00aesentralafrikansk tid\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeGreenwich middeltid\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aevest-sentralaustralsk standardtid\u00ae\u00aevest-sentralaustralsk sommartid\u00ae\u00ae\u00a9Europe_Western\u00aevesteuropeisk tid\u00ae\u00aevesteuropeisk sommartid\u00ae\u00ae\u00a9Australia_Central\u00aesentralaustralsk standardtid\u00ae\u00aesentralaustralsk sommartid\u00ae\u00ae\u00a9
+territories.TL=Aust-Timor
territories.TK=Tokelau
territories.TJ=Tadsjikistan
territories.TH=Thailand
territories.TG=Togo
-territories.TF=Franske s\u00f8romr\u00e5der
+territories.TF=Franske s\u00f8romr\u00e5de
territories.GY=Guyana
territories.TD=Tchad
-territories.TC=Turks- og Caicos\u00f8yene
+territories.TC=Turks- og Caicos\u00f8yane
territories.GW=Guinea-Bissau
territories.GU=Guam
territories.GT=Guatemala
-territories.GS=S\u00f8r-Georgia og S\u00f8r-Sandwich-\u00f8yene
+territories.GS=S\u00f8r-Georgia og S\u00f8r-Sandwich-\u00f8yane
territories.GR=Hellas
territories.GQ=Ekvatorial-Guinea
territories.GP=Guadeloupe
@@ -53,11 +124,12 @@ territories.GM=Gambia
territories.GL=Gr\u00f8nland
territories.SV=El Salvador
territories.062=S\u00f8rlege Sentral-Asia
-territories.ST=Sao Tome og Principe
-territories.061=Polynesia
+territories.ST=S\u00e3o Tom\u00e9 og Pr\u00edncipe
territories.GI=Gibraltar
+territories.061=Polynesia
territories.GH=Ghana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Fransk Guyana
territories.GE=Georgia
territories.SO=Somalia
@@ -74,40 +146,42 @@ territories.SH=Saint Helena
territories.SG=Singapore
territories.SE=Sverige
territories.SD=Sudan
-territories.SC=Seychellene
-territories.SB=Salomon\u00f8yene
+territories.SC=Seychellane
+territories.SB=Salomon\u00f8yane
territories.SA=Saudi Arabia
territories.FR=Frankrike
+territories.FO=F\u00e6r\u00f8yane
territories.057=Mikronesia
-territories.FO=F\u00e6r\u00f8yene
territories.FM=Mikronesiaf\u00f8derasjonen
territories.RW=Rwanda
territories.054=Melanesia
+territories.FK=Falklands\u00f8yane
territories.053=Australia og New Zealand
-territories.FK=Falklands\u00f8yene (Malvinas)
-territories.RU=Den russiske f\u00f8derasjon
+territories.RU=Russland
territories.FJ=Fiji
territories.FI=Finland
+territories.RS=Serbia
territories.RO=Romania
-territories.RE=Reunion
+territories.RE=R\u00e9union
territories.ET=Etiopia
territories.ES=Spania
territories.ER=Eritrea
-territories.833=Man
+territories.QU=Den europeiske unionen
territories.EH=Vest-Sahara
territories.EG=Egypt
-territories.830=Kanal\u00f8yene
territories.EE=Estland
+territories.830=Kanal\u00f8yane
territories.QO=Ytre Oseania
territories.EC=Ecuador
territories.DZ=Algerie
territories.QA=Qatar
territories.039=S\u00f8r-Europa
-territories.DO=Den dominikanske republikk
+territories.DO=Den dominikanske republikken
territories.PY=Paraguay
-territories.035=S\u00f8raust-Asia
territories.DM=Dominica
+territories.035=S\u00f8raust-Asia
territories.PW=Palau
+territories.034=S\u00f8r-Asia
territories.DK=Danmark
territories.DJ=Djibouti
territories.PT=Portugal
@@ -119,7 +193,7 @@ territories.PN=Pitcairn
territories.PM=St. Pierre og Miquelon
territories.PL=Polen
territories.PK=Pakistan
-territories.PH=Filippinene
+territories.PH=Filippinane
territories.PG=Papua Ny-Guinea
territories.PF=Fransk Polynesia
territories.CZ=Tsjekkia
@@ -129,25 +203,26 @@ territories.CX=Christmas\u00f8ya
territories.CV=Kapp Verde
territories.PA=Panama
territories.CU=Cuba
-territories.CS=Serbia Montenegro
+territories.CS=Serbia og Montenegro
territories.CR=Costa Rica
-territories.029=Karibiske hav
+territories.029=Karibia
territories.CO=Colombia
territories.CN=Kina
territories.CM=Kamerun
territories.CL=Chile
-territories.CK=Cook\u00f8yene
-territories.CI=Elfenbenskysten
-territories.021=Nord-Amerika
+territories.CK=Cook\u00f8yane
+territories.021=nordlege Amerika
+territories.CI=Elfenbeinskysten
territories.CH=Sveits
-territories.CG=Kongo
-territories.CF=Den sentralafrikanske republikk
-territories.CD=Kongo, Den demokratiske republikken
-territories.CC=Kokos\u00f8yene (Keeling\u00f8yene)
+territories.CG=Kongo-Brazzaville
+territories.CF=Den sentralafrikanske republikken
+territories.CD=Kongo-Kinshasa
+territories.CC=Kokos\u00f8yane
territories.OM=Oman
territories.CA=Canada
+territories.419=Latin-Amerika og Karibia
territories.BZ=Belize
-territories.BY=Hviterussland
+territories.BY=Kviterussland
territories.BW=Botswana
territories.BV=Bouvet\u00f8ya
territories.BT=Bhutan
@@ -156,23 +231,25 @@ territories.BR=Brasil
territories.019=Amerika
territories.018=S\u00f8rlege Afrika
territories.NZ=New Zealand
-territories.BO=Bolivia
territories.017=Sentral-Afrika
+territories.BO=Bolivia
territories.BN=Brunei Darussalam
-territories.BM=Bermuda
territories.015=Nord-Afrika
+territories.BM=Bermuda
territories.014=Aust-Afrika
territories.013=Sentral-Amerika
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Vest-Afrika
+territories.BI=Burundi
+territories.172=Samveldet av uavhengige statar
territories.BH=Bahrain
territories.NR=Nauru
territories.BG=Bulgaria
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgia
+territories.ZZ=(ukjent eller ugyldig omr\u00e5de)
territories.NO=Noreg
territories.BD=Bangladesh
territories.BB=Barbados
@@ -181,7 +258,7 @@ territories.NL=Nederland
territories.BA=Bosnia og Hercegovina
territories.NI=Nicaragua
territories.NG=Nigeria
-territories.NF=Norfolk\u00f8yene
+territories.NF=Norfolk\u00f8yane
territories.AZ=Aserbajdsjan
territories.NE=Niger
territories.AX=\u00c5land
@@ -190,43 +267,45 @@ territories.AW=Aruba
territories.ZM=Zambia
territories.NA=Namibia
territories.AU=Australia
-territories.AT=\u00d8sterrike
+territories.AT=Austerrike
territories.AS=Amerikansk Samoa
territories.AR=Argentina
-territories.009=Oseania
territories.AQ=Antarktis
+territories.009=Oseania
territories.MZ=Mosambik
territories.AO=Angola
territories.MY=Malaysia
-territories.AN=De nederlandske antiller
+territories.AN=Dei nederlandske Antillane
territories.MX=Mexico
-territories.005=S\u00f8r-Amerika
territories.AM=Armenia
+territories.005=S\u00f8r-Amerika
territories.MW=Malawi
territories.AL=Albania
-territories.MV=Maldivene
+territories.MV=Maldivane
+territories.003=Nord-Amerika
territories.ZA=S\u00f8r-Afrika
territories.MU=Mauritius
territories.002=Afrika
territories.MT=Malta
-territories.001=Verden
territories.AI=Anguilla
+territories.001=verda
territories.MS=Montserrat
territories.MR=Mauritania
territories.AG=Antigua og Barbuda
territories.MQ=Martinique
territories.AF=Afghanistan
-territories.MP=Nord-Marianene
-territories.AE=De forente arabiske emiratene
-territories.MO=Macao S.A.R. (Kina)
+territories.MP=Nord-Marianane
+territories.AE=Dei sameinte arabiske emirata
+territories.MO=Macao
territories.AD=Andorra
territories.MN=Mongolia
territories.MM=Myanmar
territories.ML=Mali
-territories.MK=Makedonia, Republikken
+territories.MK=Makedonia
territories.YT=Mayotte
-territories.MH=Marshall\u00f8yene
+territories.MH=Marshall\u00f8yane
territories.MG=Madagaskar
+territories.ME=Montenegro
territories.MD=Moldova
territories.MC=Monaco
territories.MA=Marokko
@@ -245,11 +324,12 @@ territories.LK=Sri Lanka
territories.LI=Liechtenstein
territories.LC=St. Lucia
territories.LB=Libanon
-territories.LA=Laos, Den folkedemokratiske republikken
+territories.LA=Laos
territories.KZ=Kasakhstan
-territories.KY=Cayman\u00f8yene
+territories.KY=Cayman\u00f8yane
territories.KW=Kuwait
territories.145=Vest-Asia
+territories.143=Sentral-Asia
territories.142=Asia
territories.KR=S\u00f8r-Korea
territories.KP=Nord-Korea
@@ -265,25 +345,27 @@ territories.JP=Japan
territories.JO=Jordan
territories.JM=Jamaica
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
-territories.VI=Jomfru\u00f8yene (USA)
-territories.VG=Jomfru\u00f8yene (britisk)
+territories.VI=Jomfru\u00f8yane (USA)
+territories.VG=Jomfru\u00f8yane (britisk)
territories.VE=Venezuela
-territories.VC=St. Vincent og Grenadinene
+territories.VC=St. Vincent og Grenadinane
territories.VA=Vatikanstaten
territories.IT=Italia
territories.IS=Island
territories.IR=Iran
territories.IQ=Irak
territories.UZ=Usbekistan
-territories.IO=Britiske omr\u00e5der i det indiske hav
+territories.IO=Britiske omr\u00e5de i Det indiske hav
territories.UY=Uruguay
territories.IN=India
+territories.IM=Man
territories.IL=Israel
territories.US=USA
territories.IE=Irland
territories.ID=Indonesia
-territories.UM=USAs mindre \u00f8yer
+territories.UM=USAs ytre sm\u00e5\u00f8yar
territories.UG=Uganda
territories.UA=Ukraina
territories.HU=Ungarn
@@ -291,25 +373,520 @@ territories.HT=Haiti
territories.HR=Kroatia
territories.TZ=Tanzania
territories.HN=Honduras
-territories.HM=Heard- og McDonalds\u00f8yene
+territories.HM=Heard- og McDonalds\u00f8yane
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R. (Kina)
+territories.HK=Hongkong
territories.TT=Trinidad og Tobago
territories.TR=Tyrkia
territories.TO=Tonga
territories.TN=Tunisia
territories.TM=Turkmenistan
-languages.zh=Kinesisk
-languages.en=Engelsk
-languages.ru=Russisk
-languages.ar=Arabisk
-languages.it=Italiensk
-languages.nb=norsk bokm\u00e5l
-languages.fr=Fransk
-languages.de=Tysk
-languages.es=Spansk
+languages.gwi=gwichin
+languages.akk=akkadisk
+languages.eka=ekajuk
+languages.ijo=ijo
+languages.xh=xhosa
+languages.sux=sumerisk
+languages.sus=susu
+languages.mis=anna spr\u00e5k
+languages.loz=lozi
+languages.tog=tonga (Nyasa)
+languages.zbl=blissymboler
+languages.pon=ponapisk
+languages.min=minangkabau
+languages.suk=sukuma
+languages.wo=wolof
+languages.lol=mongo
+languages.kut=kutenai
+languages.mic=micmac
+languages.wa=vallonsk
+languages.kum=kumyk
+languages.zap=zapotec
+languages.ain=ainu
+languages.cus=kusjitisk spr\u00e5k
+languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
+languages.vo=volapyk
+languages.oto=otomisk spr\u00e5k
+languages.vi=vietnamesisk
+languages.vai=vai
+languages.rar=rarotongansk
+languages.ve=venda
+languages.rap=rapanui
+languages.raj=rajasthani
+languages.ota=ottomansk tyrkisk
+languages.nzi=nzima
+languages.nap=napolitansk
+languages.uz=usbekisk
+languages.uga=ugaritisk
+languages.tmh=tamasjek
+languages.nai=nordamerikansk indiansk spr\u00e5k
+languages.nah=nahuatl
+languages.ur=urdu
+languages.fat=fanti
+languages.uk=ukrainsk
+languages.egy=gammalegyptisk
+languages.zxx=utan spr\u00e5kleg innhald
+languages.ug=uigurisk
+languages.fan=fang
+languages.ssa=nilo-saharaspr\u00e5k
+languages.mga=mellomirsk
+languages.bat=baltisk spr\u00e5k
+languages.nyo=nyoro
+languages.bas=basa
+languages.nyn=nyankole
+languages.nym=nyamwezi
+languages.gsw=sveitsertysk
+languages.hmn=hmong
+languages.ban=balinesisk
+languages.osa=osage
+languages.bal=baluchi
+languages.ty=tahitisk
+languages.bai=bamilekisk spr\u00e5k
+languages.tw=twi
+languages.srr=serer
+languages.tli=tlingit
+languages.tlh=klingon
+languages.tt=tatarisk
+languages.ts=tsonga
+languages.srn=sranan tongo
+languages.bad=banda
+languages.tr=tyrkisk
+languages.to=tonga (Tonga-\u00f8yane)
+languages.tn=tswana
+languages.tl=tagalog
+languages.tk=turkmensk
+languages.ti=tigrinja
+languages.th=thai
+languages.kru=kurukh
+languages.tg=tatsjikisk
+languages.byn=blin
+languages.te=telugu
+languages.kro=kru
+languages.csb=kasjubisk
+languages.ta=tamil
+languages.krl=karelsk
+languages.tkl=tokelau
+languages.efi=efik
+languages.sw=swahili
+languages.sv=svensk
+languages.su=sundanesisk
+languages.krc=karachay-balkar
+languages.st=s\u00f8rsotho
+languages.ss=swati
+languages.sr=serbisk
+languages.sq=albansk
+languages.men=mende
+languages.crp=kreol- eller pidginspr\u00e5k
+languages.so=somali
+languages.afh=afrihili
+languages.sn=shona
+languages.sm=samoansk
+languages.sl=slovensk
+languages.grc=gammalgresk
+languages.sk=slovakisk
+languages.grb=grebo
+languages.si=singalesisk
+languages.sh=serbokroatisk
+languages.crh=krimtatarisk
+languages.afa=afroasiatisk spr\u00e5k
+languages.sg=sango
+languages.se=nordsamisk
+languages.sd=sindhi
+languages.udm=udmurt
+languages.sc=sardinsk
+languages.sa=sanskrit
+languages.rw=kinjarwanda
+languages.nwc=klassisk newarisk
+languages.ru=russisk
+languages.mdr=mandar
+languages.ro=rumensk
+languages.rn=rundi
+languages.rm=retoromansk
+languages.mdf=moksha
+languages.tiv=tivi
+languages.ady=adyghe
+languages.zun=zuni
+languages.kpe=kpelle
+languages.qu=quechua
+languages.tig=tigr\u00e9
+languages.son=songhai
+languages.cpp=portugisiskbasert kreol- eller pidginspr\u00e5k
+languages.rup=aromansk
+languages.sog=sogdisk
+languages.ada=adangme
+languages.kos=kosraeansk
+languages.hit=hettittisk
+languages.cpf=franskbasert kreol- eller pidginspr\u00e5k
+languages.cpe=engelskbasert kreol- eller pidginspr\u00e5k
+languages.him=himachali
+languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=gotisk
+languages.gor=gorontalo
+languages.gon=gondi
+languages.din=dinka
+languages.nub=nubisk spr\u00e5k
+languages.pt=portugisisk
+languages.ps=pashto
+languages.fur=friuliansk
+languages.phn=f\u00f8nikisk
+languages.goh=gammalh\u00f8gtysk
+languages.snk=soninke
+languages.cop=koptisk
+languages.yap=yapesisk
+languages.ach=acoli
+languages.yao=yao
+languages.phi=filippinsk spr\u00e5k
+languages.pl=polsk
+languages.ace=achinesisk
+languages.pi=pali
+languages.pa=panjabi
+languages.bug=buginesisk
+languages.iba=iban
+languages.sms=skoltesamisk
+languages.bua=burjatisk
+languages.mas=masai
+languages.smn=enaresamisk
+languages.os=ossetisk
+languages.map=austronesisk
+languages.or=oriya
+languages.man=mandingo
+languages.smj=lulesamisk
+languages.smi=samisk spr\u00e5k
+languages.mak=makasar
+languages.om=oromo
+languages.mai=maithili
+languages.oj=ojibwa
+languages.mag=magahi
+languages.mad=maduresisk
+languages.sma=s\u00f8rsamisk
+languages.oc=oksitansk
+languages.nso=nordsotho
+languages.btk=batak
+languages.myv=erzya
+languages.dgr=dogrib
+languages.ny=nyanja
+languages.myn=mayaspr\u00e5k
+languages.nv=navajo
+languages.kmb=kimbundu
+languages.nr=s\u00f8r-ndebele
+languages.gmh=mellomh\u00f8gtysk
languages.no=norsk
-languages.ja=Japansk
languages.nn=norsk nynorsk
-languages.pt=Portugisisk
+languages.nl=nederlandsk
+languages.root=rot
+languages.ng=ndonga
+languages.sla=slavisk spr\u00e5k
+languages.ne=nepalsk
+languages.nd=nord-ndebele
+languages.cmc=kamisk spr\u00e5k
+languages.tet=tetum
+languages.nb=norsk bokm\u00e5l
+languages.na=nauru
+languages.ter=tereno
+languages.tem=temne
+languages.my=burmesisk
+languages.lez=lezghian
+languages.mt=maltesisk
+languages.frs=austfrisisk
+languages.peo=gammalpersisk
+languages.ms=malayisk
+languages.frr=nordfrisisk
+languages.mr=marathi
+languages.fro=gammalfransk
+languages.mo=moldavisk
+languages.frm=mellomfransk
+languages.mn=mongolsk
+languages.jrb=j\u00f8dearabisk
+languages.ml=malayalam
+languages.mk=makedonsk
+languages.mi=maori
+languages.mh=marshallesisk
+languages.mg=madagassisk
+languages.nqo=n-k\u00e5
+languages.mwr=marwari
+languages.bra=braj
+languages.mwl=mirandesisk
+languages.den=slavej
+languages.lv=latvisk
+languages.lu=luba-katanga
+languages.del=delaware
+languages.lt=litauisk
+languages.lo=laotisk
+languages.ln=lingala
+languages.li=limburgisk
+languages.ewo=ewondo
+languages.lg=ganda
+languages.lb=luxemburgsk
+languages.la=latin
+languages.jpr=j\u00f8depersisk
+languages.vot=votisk
+languages.sit=sino-tibetansk spr\u00e5k
+languages.ky=kirgisisk
+languages.kw=kornisk
+languages.kv=komi
+languages.ku=kurdisk
+languages.sio=sioux-spr\u00e5k
+languages.ks=kasjmiri
+languages.kr=kanuri
+languages.awa=awadhi
+languages.ko=koreansk
+languages.kn=kannada
+languages.km=kambodsjansk
+languages.kl=gr\u00f8nlandsk
+languages.kk=kasakhisk
+languages.rom=romani
+languages.kj=kuanyama
+languages.sid=sidamo
+languages.ki=kikuyu
+languages.kg=kikongo
+languages.non=gammalnorsk
+languages.ka=georgisk
+languages.mus=creek
+languages.roa=romansk spr\u00e5k
+languages.nog=nogai
+languages.mun=mundaspr\u00e5k
+languages.mul=fleire spr\u00e5k
+languages.jv=javanesisk
+languages.gil=kiribatisk
+languages.znd=zande
+languages.shn=shan
+languages.fon=fon
+languages.xal=kalmyk
+languages.aus=australsk spr\u00e5k
+languages.kho=khotanesisk
+languages.ja=japansk
+languages.khi=khoisanspr\u00e5k
+languages.pau=palauisk
+languages.chy=cheyenne
+languages.tai=taispr\u00e5k
+languages.iu=inuktitut
+languages.pap=papiamento
+languages.it=italiensk
+languages.sgn=teiknspr\u00e5k
+languages.is=islandsk
+languages.kha=khasi
+languages.chr=cherokee
+languages.pam=pampanga
+languages.pal=pahlavi
+languages.chp=chipewiansk
+languages.io=ido
+languages.cho=choctaw
+languages.chn=chinook
+languages.chm=mari
+languages.tyv=tuvinisk
+languages.bnt=bantu
+languages.pag=pangasinan
+languages.ik=inupiak
+languages.chk=chuukesisk
+languages.ii=sichuan-yi
+languages.haw=hawaiisk
+languages.lam=lamba
+languages.ig=ibo
+languages.chg=chagatai
+languages.sga=gammalirsk
+languages.paa=papuisk spr\u00e5k
+languages.ie=interlingue
+languages.id=indonesisk
+languages.lah=lahnda
+languages.day=dayak
+languages.chb=chibcha
+languages.ia=interlingua
+languages.lad=ladinsk
+languages.hz=herero
+languages.hai=haida
+languages.dar=dargwa
+languages.hy=armensk
+languages.ath=athapaskansk spr\u00e5k
+languages.hu=ungarsk
+languages.ht=haitisk
+languages.dak=dakota
+languages.hr=kroatisk
+languages.ho=hiri motu
+languages.hi=hindi
+languages.dyu=dyula
+languages.he=hebraisk
+languages.ast=asturisk
+languages.kfo=koro
+languages.ha=hausa
+languages.wen=sorbisk spr\u00e5k
+languages.gv=manx
+languages.gu=gujarati
+languages.sem=semittisk spr\u00e5k
+languages.sel=selkupisk
+languages.iro=irokansk spr\u00e5k
+languages.gn=guarani
+languages.gl=galicisk
+languages.arw=arawak
+languages.gez=ges
+languages.art=kunstig spr\u00e5k
+languages.gd=skotsk-g\u00e6lisk
+languages.ira=iransk
+languages.ga=irsk
+languages.arp=arapaho
+languages.arn=araukansk
+languages.fy=vestfrisisk
+languages.bla=siksika
+languages.gem=germansk spr\u00e5k
+languages.ypk=jupisk spr\u00e5k
+languages.arc=arameisk
+languages.fr=fransk
+languages.fo=f\u00e6r\u00f8ysk
+languages.cel=keltisk spr\u00e5k
+languages.fj=fijiansk
+languages.fi=finsk
+languages.ff=fulani
+languages.tvl=tuvalu
+languages.ceb=cebuansk
+languages.fa=persisk
+languages.zh_Hans=forenkla kinesisk
+languages.zh_Hant=tradisjonell kinesisk
+languages.eu=baskisk
+languages.sco=skotsk
+languages.et=estisk
+languages.scn=siciliansk
+languages.es=spansk
+languages.eo=esperanto
+languages.en=engelsk
+languages.el=gresk
+languages.tut=altaisk spr\u00e5k
+languages.niu=niueansk
+languages.tup=tupi-spr\u00e5k
+languages.ee=ewe
+languages.tum=tumbuka
+languages.mos=mossi
+languages.dz=dzongkha
+languages.kcg=tyap
+languages.nic=niger-kordofaniansk spr\u00e5k
+languages.lus=lushai
+languages.fiu=finsk-ugrisk spr\u00e5k
+languages.dv=divehi
+languages.nia=nias
+languages.moh=mohawk
+languages.luo=luo
+languages.lun=lunda
+languages.apa=apache-spr\u00e5k
+languages.fil=filippinsk
+languages.lui=luiseno
+languages.hup=hupa
+languages.cch=atsam
+languages.bin=bini
+languages.de=tysk
+languages.lua=luba-lulua
+languages.bik=bikol
+languages.was=washo
+languages.und=ikkje bestemt
+languages.war=waray
+languages.da=dansk
+languages.dum=mellumnederlandsk
+languages.wal=walamo
+languages.mno=manobospr\u00e5k
+languages.wak=wakasjansk spr\u00e5k
+languages.sat=santali
+languages.cy=walisisk
+languages.sas=sasak
+languages.kbd=kabardisk
+languages.cv=tsjuvansk
+languages.cu=kyrkjeslavisk
+languages.mni=manipuri
+languages.cs=tsjekkisk
+languages.sam=samaritansk arameisk
+languages.cr=cree
+languages.sal=salishansk spr\u00e5k
+languages.dua=duala
+languages.co=korsikansk
+languages.sai=s\u00f8ramerikansk indiansk spr\u00e5k
+languages.mnc=mandsju
+languages.sah=jakutsk
+languages.kaw=kawi
+languages.inh=ingusjisk
+languages.gba=gbaya
+languages.sad=sandawe
+languages.ch=chamorro
+languages.ine=indo-europeisk spr\u00e5k
+languages.bho=bhojpuri
+languages.enm=mellomengelsk
+languages.kar=karensk
+languages.inc=indisk spr\u00e5k
+languages.ce=tsjetsjensk
+languages.gay=gayo
+languages.ca=katalansk
+languages.umb=umbundu
+languages.syr=syrisk
+languages.kam=kamba
+languages.anp=angika
+languages.tsi=tsimshian
+languages.kaj=jju
+languages.ang=gammalengelsk
+languages.kac=kachin
+languages.cau=kaukasisk spr\u00e5k
+languages.kab=kabylsk
+languages.kaa=karakalpakisk
+languages.bs=bosnisk
+languages.car=karibisk
+languages.br=bretonsk
+languages.syc=klassisk syrisk
+languages.bo=tibetansk
+languages.bn=bengali
+languages.bm=bambara
+languages.gaa=ga
+languages.cai=sentralamerikansk indiansk spr\u00e5k
+languages.bi=bislama
+languages.bh=bihari
+languages.bg=bulgarsk
+languages.be=kviterussisk
+languages.cad=caddo
+languages.ba=basjkirsk
+languages.zu=zulu
+languages.zen=zenaga
+languages.pro=gammalproven\u00e7alsk
+languages.hsb=h\u00f8gsorbisk
+languages.az=aserbajdsjansk
+languages.ay=aymara
+languages.av=avarisk
+languages.as=assamisk
+languages.dsb=l\u00e5gsorbisk
+languages.ar=arabisk
+languages.ilo=iloko
+languages.elx=elamittisk
+languages.zh=kinesisk
+languages.an=aragonsk
+languages.pra=prakrit-spr\u00e5k
+languages.am=amharisk
+languages.new=newarisk
+languages.ak=akan
+languages.za=zhuang
+languages.en_US=engelsk (amerikansk)
+languages.af=afrikaans
+languages.ae=avestisk
+languages.alt=s\u00f8r-altai
+languages.ab=abkhasisk
+languages.aa=afar
+languages.yo=joruba
+languages.alg=algonkinsk spr\u00e5k
+languages.ale=aleutisk
+languages.mkh=mon-khmerspr\u00e5k
+languages.yi=jiddisk
+languages.dra=dravidisk spr\u00e5k
+languages.ber=berbisk
+languages.nds=l\u00e5gtysk
+languages.bem=bemba
+languages.bej=beja
+languages.tpi=tok pisin
+variants.SCOUSE=scouse-dialekt
+variants.BOONT=boontling
+variants.REVISED=revidert rettskriving
+variants.AREVELA=austarmensk
+variants.POLYTON=polytonisk rettskriving
+variants.FONIPA=det internasjonale fonetiske alfabetet (IPA)
+variants.1996=tysk ortografi fr\u00e5 1996
+variants.SAAHO=saaho-dialekt
+variants.AREVMDA=vestarmensk
+variants.VALENCIA=valensisk dialekt
+variants.1901=tradisjonell tysk ortografi
+variants.MONOTON=monotonisk rettskriving
+variants.FONUPA=det uralske fonetiske alfabetet UPA
+variants.ROZAJ=resisk dialekt
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nr.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nr.properties
new file mode 100644
index 0000000..5a9a92f
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nr.properties
@@ -0,0 +1,27 @@
+# LocaleInformation_nr.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Jan\u00aeFeb\u00aeMat\u00aeApr\u00aeMey\u00aeJun\u00aeJul\u00aeArh\u00aeSep\u00aeOkt\u00aeUsi\u00aeDis\u00ae\u00ae
+months=Janabari\u00aeuFeberbari\u00aeuMatjhi\u00aeu-Apreli\u00aeMeyi\u00aeJuni\u00aeJulayi\u00aeArhostosi\u00aeSeptemba\u00aeOktoba\u00aeUsinyikhaba\u00aeDisemba\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMvu\u00aeBil\u00aeTha\u00aeNe\u00aeHla\u00aeGqi\u00ae
+weekdays=\u00aeuSonto\u00aeuMvulo\u00aeuLesibili\u00aeLesithathu\u00aeuLesine\u00aengoLesihlanu\u00aeumGqibelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.nr=isiNdebele
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nso.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nso.properties
new file mode 100644
index 0000000..67ad242
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_nso.properties
@@ -0,0 +1,27 @@
+# LocaleInformation_nso.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Jan\u00aeFeb\u00aeMat\u00aeApo\u00aeMei\u00aeJun\u00aeJul\u00aeAgo\u00aeSet\u00aeOkt\u00aeNof\u00aeDis\u00ae\u00ae
+months=Janaware\u00aeFeberware\u00aeMat\u0161he\u00aeAporele\u00aeMei\u00aeJune\u00aeJulae\u00aeAgostose\u00aeSetemere\u00aeOktobore\u00aeNofemere\u00aeDisemere\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMos\u00aeBed\u00aeRar\u00aeNe\u00aeHla\u00aeMok\u00ae
+weekdays=\u00aeSontaga\u00aeMosupalogo\u00aeLabobedi\u00aeLaboraro\u00aeLabone\u00aeLabohlano\u00aeMokibelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.nso=Sesotho sa Leboa
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ny.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ny.properties
new file mode 100644
index 0000000..1c55ece
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ny.properties
@@ -0,0 +1,23 @@
+# LocaleInformation_ny.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.MWK=Malawian Kwacha
+currenciesSymbol.MWK=K
+shortMonths=Jan\u00aeFeb\u00aeMal\u00aeEpu\u00aeMei\u00aeJun\u00aeJul\u00aeOga\u00aeSep\u00aeOku\u00aeNov\u00aeDis\u00ae\u00ae
+months=Januwale\u00aeFebuluwale\u00aeMalichi\u00aeEpulo\u00aeMei\u00aeJuni\u00aeJulai\u00aeOgasiti\u00aeSeputemba\u00aeOkutoba\u00aeNovemba\u00aeDisemba\u00ae\u00ae
+shortWeekdays=\u00aeMul\u00aeLem\u00aeWir\u00aeTat\u00aeNai\u00aeSan\u00aeWer\u00ae
+weekdays=\u00aeLamulungu\u00aeLolemba\u00aeLachiwiri\u00aeLachitatu\u00aeLachinayi\u00aeLachisanu\u00aeLoweruka\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_om.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_om.properties
index fa6a876..f181b4d 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_om.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_om.properties
@@ -5,27 +5,37 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.INR=Indian Rupee
-currenciesDisplayName.RUB=Russian Ruble
currenciesDisplayName.JPY=Japanese Yen
+currenciesDisplayName.RUB=Russian Ruble
currenciesDisplayName.BRL=Brazilian Real
currenciesDisplayName.CNY=Chinese Yuan Renminbi
currenciesDisplayName.USD=US Dollar
currenciesDisplayName.EUR=Euro
currenciesDisplayName.ETB=Itoophiyaa Birrii
currenciesDisplayName.GBP=British Pound Sterling
+currenciesSymbol.ETB=$
currenciesSymbol.KES=Ksh
-shortMonths=Ama®Gur®Bit®Elb®Cam®Wax®Ado®Hag®Ful®Onk®Sad®Mud®®
-months=Amajjii®Guraandhala®Bitooteessa®Elba®Caamsa®Waxabajjii®Adooleessa®Hagayya®Fuulbana®Onkololeessa®Sadaasa®Muddee®®
-shortWeekdays=®Dil®Wix®Qib®Rob®Kam®Jim®San®
-weekdays=®Dilbata®Wiixata®Qibxata®Roobii®Kamiisa®Jimaata®Sanbata®
-firstDayOfWeek=sat
-eras=KD®KB®
+shortMonths=Ama\u00aeGur\u00aeBit\u00aeElb\u00aeCam\u00aeWax\u00aeAdo\u00aeHag\u00aeFul\u00aeOnk\u00aeSad\u00aeMud\u00ae\u00ae
+months=Amajjii\u00aeGuraandhala\u00aeBitooteessa\u00aeElba\u00aeCaamsa\u00aeWaxabajjii\u00aeAdooleessa\u00aeHagayya\u00aeFuulbana\u00aeOnkololeessa\u00aeSadaasa\u00aeMuddee\u00ae\u00ae
+shortWeekdays=\u00aeDil\u00aeWix\u00aeQib\u00aeRob\u00aeKam\u00aeJim\u00aeSan\u00ae
+weekdays=\u00aeDilbata\u00aeWiixata\u00aeQibxata\u00aeRoobii\u00aeKamiisa\u00aeJimaata\u00aeSanbata\u00ae
+eras=KD\u00aeKB\u00ae
+ampms=WD\u00aeWB\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE, MMMM d, yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.FR=France
territories.IN=India
territories.CN=China
-territories.ET=Itoophiyaa
territories.DE=Germany
+territories.ET=Itoophiyaa
territories.GB=United Kingdom
territories.BR=Brazil
territories.RU=Russia
@@ -33,15 +43,90 @@ territories.JP=Japan
territories.US=United States
territories.KE=Keeniyaa
territories.IT=Italy
-languages.zh=Chinese
-languages.en=English
-languages.ru=Russian
-languages.hi=Hindi
-languages.ar=Arabic
-languages.it=Italian
-languages.fr=French
+languages.es=Afaan Ispeen
+languages.eo=Afaan Esperantoo
+languages.en=Ingliffa
+languages.el=Afaan Giriiki
+languages.ko=Afaan Korea
+languages.kn=Afaan Kannada
+languages.ka=Afaan Georgian
+languages.jv=Afaan Java
+languages.fil=Afaan Filippinii
+languages.pt=Afaan Porchugaal
+languages.de=Afaan Jarmanii
+languages.pl=Afaan Polandii
+languages.da=Afaan Deenmaark
+languages.tlh=Afaan Kilingon
+languages.ja=Afaan Japanii
+languages.vi=Afaan Veetinam
+languages.cy=Welishiffaa
+languages.pa=Afaan Punjabii
+languages.cs=Afaan Czech
+languages.it=Afaan Xaaliyaani
+languages.is=Ayiislandiffaa
+languages.uz=Afaan Uzbek
+languages.ur=Afaan Urdu
languages.om=Oromoo
-languages.de=German
-languages.es=Spanish
-languages.ja=Japanese
-languages.pt=Portuguese
+languages.ca=Afaan Katalaa
+languages.id=Afaan Indoneziya
+languages.uk=Afaan Ukreenii
+languages.ia=Interlingua
+languages.oc=Afaan Occit
+languages.bs=Afaan Bosniyaa
+languages.hu=Afaan Hangaari
+languages.bn=Afaan Baangladeshi
+languages.pt_PT=Afaan Protuguese
+languages.hr=Afaan Croatian
+languages.bh=Afaan Bihari
+languages.bg=Afaan Bulgariya
+languages.no=Afaan Norweyii
+languages.be=Afaan Belarusia
+languages.nn=Afaan Norwegian
+languages.hi=Afaan Hindii
+languages.tr=Afaan Turkii
+languages.nl=Afaan Dachii
+languages.zu=Afaan Zuulu
+languages.he=Afaan Hebrew
+languages.tk=Lammii Turkii
+languages.ne=Afaan Nepalii
+languages.az=Afaan Azerbaijani
+languages.ti=Afaan Tigiree
+languages.th=Afaan Tayii
+languages.te=Afaan Telugu
+languages.zh=Chinese
+languages.ar=Arabiffaa
+languages.ta=Afaan Tamilii
+languages.gu=Afaan Gujarati
+languages.am=Afaan Sidaamaa
+languages.mt=Afaan Maltesii
+languages.ms=Malaayiffaa
+languages.gn=Afaan Guarani
+languages.sw=Suwahilii
+languages.mr=Afaan Maratii
+languages.sv=Afaan Suwidiin
+languages.gl=Afaan Galishii
+languages.su=Afaan Sudaanii
+languages.af=Afrikoota
+languages.sr=Afaan Serbiya
+languages.sq=Afaan Albaniyaa
+languages.ml=Malayaalamiffaa
+languages.mk=Afaan Macedooniyaa
+languages.gd=Scots Gaelic
+languages.sl=Afaan Islovaniyaa
+languages.sk=Afaan Slovak
+languages.ga=Afaan Ayirishii
+languages.si=Afaan Sinhalese
+languages.pt_BR=Afaan Portugali (Braazil)
+languages.fy=Afaan Firisiyaani
+languages.fr=Afaan Faransaayii
+languages.lv=Afaan Lativiyaa
+languages.lt=Afaan Liituniyaa
+languages.fo=Afaan Faroese
+languages.ru=Afaan Rushiyaa
+languages.fi=Afaan Fiilaandi
+languages.ro=Afaan Romaniyaa
+languages.fa=Afaan Persia
+languages.la=Afaan Laatini
+languages.xh=Afaan Xhosa
+languages.eu=Afaan Baskuu
+languages.et=Afaan Istooniya
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_om_KE.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_om_KE.properties
index 4e55489..045f791 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_om_KE.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_om_KE.properties
@@ -5,13 +5,4 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
-ampms=WD®WB®
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
-longDateFormat=dd MMMM yyyy
-fullDateFormat=EEEE, MMMM d, yyyy
-shortTimeFormat=h:mm a
-mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
+currenciesSymbol.ETB=ETB
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_or.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_or.properties
index d845f46..4cfd59c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_or.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_or.properties
@@ -6,8 +6,24 @@
# This file was automatically generated by gnu.localegen from CLDR.
zeroDigit=\u0b66
-months=\u0b1c\u0b3e\u0b28\u0b41\u0b06\u0b30\u0b40®\u0b2b\u0b47\u0b2c\u0b4d\u0b30\u0b41\u0b5f\u0b3e\u0b30\u0b40®\u0b2e\u0b3e\u0b30\u0b4d\u0b1a\u0b4d\u0b1a®\u0b05\u0b2a\u0b4d\u0b30\u0b47\u0b32®\u0b2e\u0b47®\u0b1c\u0b41\u0b28®\u0b1c\u0b41\u0b32\u0b3e\u0b07®\u0b05\u0b17\u0b37\u0b4d\u0b1f®\u0b38\u0b47\u0b2a\u0b4d\u0b1f\u0b47\u0b2e\u0b4d\u0b2c\u0b30®\u0b05\u0b15\u0b4d\u0b1f\u0b4b\u0b2c\u0b30®\u0b28\u0b2d\u0b47\u0b2e\u0b4d\u0b2c\u0b30®\u0b21\u0b3f\u0b38\u0b47\u0b2e\u0b4d\u0b2c\u0b30®®
-shortWeekdays=®\u0b30\u0b2c\u0b3f®\u0b38\u0b4b\u0b2e®\u0b2e\u0b19\u0b4d\u0b17\u0b33®\u0b2c\u0b41\u0b27®\u0b17\u0b41\u0b30\u0b41®\u0b36\u0b41\u0b15\u0b4d\u0b30®\u0b36\u0b28\u0b3f®
-weekdays=®\u0b30\u0b2c\u0b3f\u0b2c\u0b3e\u0b30®\u0b38\u0b4b\u0b2e\u0b2c\u0b3e\u0b30®\u0b2e\u0b19\u0b4d\u0b17\u0b33\u0b2c\u0b3e\u0b30®\u0b2c\u0b41\u0b27\u0b2c\u0b3e\u0b30®\u0b17\u0b41\u0b30\u0b41\u0b2c\u0b3e\u0b30®\u0b36\u0b41\u0b15\u0b4d\u0b30\u0b2c\u0b3e\u0b30®\u0b36\u0b28\u0b3f\u0b2c\u0b3e\u0b30®
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
+currenciesDisplayName.INR=\u0b1f\u0b19\u0b15\u0b3e
+shortMonths=\u0b1c\u0b3e\u0b28\u0b41\u0b06\u0b30\u0b40\u00ae\u0b2b\u0b47\u0b2c\u0b4d\u0b30\u0b41\u0b5f\u0b3e\u0b30\u0b40\u00ae\u0b2e\u0b3e\u0b30\u0b4d\u0b1a\u0b4d\u0b1a\u00ae\u0b05\u0b2a\u0b4d\u0b30\u0b47\u0b32\u00ae\u0b2e\u0b47\u00ae\u0b1c\u0b41\u0b28\u00ae\u0b1c\u0b41\u0b32\u0b3e\u0b07\u00ae\u0b05\u0b17\u0b37\u0b4d\u0b1f\u00ae\u0b38\u0b47\u0b2a\u0b4d\u0b1f\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u0b05\u0b15\u0b4d\u0b1f\u0b4b\u0b2c\u0b30\u00ae\u0b28\u0b2d\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u0b21\u0b3f\u0b38\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u00ae
+months=\u0b1c\u0b3e\u0b28\u0b41\u0b06\u0b30\u0b40\u00ae\u0b2b\u0b47\u0b2c\u0b4d\u0b30\u0b41\u0b5f\u0b3e\u0b30\u0b40\u00ae\u0b2e\u0b3e\u0b30\u0b4d\u0b1a\u0b4d\u0b1a\u00ae\u0b05\u0b2a\u0b4d\u0b30\u0b47\u0b32\u00ae\u0b2e\u0b47\u00ae\u0b1c\u0b41\u0b28\u00ae\u0b1c\u0b41\u0b32\u0b3e\u0b07\u00ae\u0b05\u0b17\u0b37\u0b4d\u0b1f\u00ae\u0b38\u0b47\u0b2a\u0b4d\u0b1f\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u0b05\u0b15\u0b4d\u0b1f\u0b4b\u0b2c\u0b30\u00ae\u0b28\u0b2d\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u0b21\u0b3f\u0b38\u0b47\u0b2e\u0b4d\u0b2c\u0b30\u00ae\u00ae
+shortWeekdays=\u00ae\u0b30\u0b2c\u0b3f\u00ae\u0b38\u0b4b\u0b2e\u00ae\u0b2e\u0b19\u0b4d\u0b17\u0b33\u00ae\u0b2c\u0b41\u0b27\u00ae\u0b17\u0b41\u0b30\u0b41\u00ae\u0b36\u0b41\u0b15\u0b4d\u0b30\u00ae\u0b36\u0b28\u0b3f\u00ae
+weekdays=\u00ae\u0b30\u0b2c\u0b3f\u0b2c\u0b3e\u0b30\u00ae\u0b38\u0b4b\u0b2e\u0b2c\u0b3e\u0b30\u00ae\u0b2e\u0b19\u0b4d\u0b17\u0b33\u0b2c\u0b3e\u0b30\u00ae\u0b2c\u0b41\u0b27\u0b2c\u0b3e\u0b30\u00ae\u0b17\u0b41\u0b30\u0b41\u0b2c\u0b3e\u0b30\u00ae\u0b36\u0b41\u0b15\u0b4d\u0b30\u0b2c\u0b3e\u0b30\u00ae\u0b36\u0b28\u0b3f\u0b2c\u0b3e\u0b30\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd-MM-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=MMMM d, yyyy
+fullDateFormat=MMMM d,EEEE, yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.IN=\u0b2d\u0b3e\u0b30\u0b24
-languages.or=\u0b13\u0b5c\u0b3f\u0b06
+languages.or=\u0b13\u0b21\u0b3c\u0b3f\u0b06
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa.properties
index 6d4770a..31e4a13 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa.properties
@@ -7,13 +7,63 @@
zeroDigit=\u0a66
percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
currenciesDisplayName.INR=\u0a30\u0a41\u0a2a\u0a3f\u0a2f
+currenciesDisplayName.EUR=\u0a2f\u0a42\u0a30\u0a4b
+currenciesDisplayName.AFN=\u0a05\u0a2b\u0a3c\u0a17\u0a3e\u0a28\u0a40
+currenciesDisplayName.XXX=\u0a05\u0a23\u0a1c\u0a3e\u0a23
currenciesSymbol.INR=\u0a30\u0a41.
-shortMonths=\u0a1c\u0a28\u0a35\u0a30\u0a40®\u0a5e\u0a30\u0a35\u0a30\u0a40®\u0a2e\u0a3e\u0a30\u0a1a®\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32®\u0a2e\u0a08®\u0a1c\u0a42\u0a28®\u0a1c\u0a41\u0a32\u0a3e\u0a08®\u0a05\u0a17\u0a38\u0a24®\u0a38\u0a24\u0a70\u0a2c\u0a30®\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30®\u0a28\u0a35\u0a70\u0a2c\u0a30®\u0a26\u0a38\u0a70\u0a2c\u0a30®®
-months=\u0a1c\u0a28\u0a35\u0a30\u0a40®\u0a5e\u0a30\u0a35\u0a30\u0a40®\u0a2e\u0a3e\u0a30\u0a1a®\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32®\u0a2e\u0a08®\u0a1c\u0a42\u0a28®\u0a1c\u0a41\u0a32\u0a3e\u0a08®\u0a05\u0a17\u0a38\u0a24®\u0a38\u0a24\u0a70\u0a2c\u0a30®\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30®\u0a28\u0a35\u0a70\u0a2c\u0a30®\u0a26\u0a38\u0a70\u0a2c\u0a30®®
-shortWeekdays=®\u0a10\u0a24.®\u0a38\u0a4b\u0a2e.®\u0a2e\u0a70\u0a17\u0a32.®\u0a2c\u0a41\u0a27.®\u0a35\u0a40\u0a30.®\u0a36\u0a41\u0a15\u0a30.®\u0a36\u0a28\u0a40.®
-weekdays=®\u0a10\u0a24\u0a35\u0a3e\u0a30®\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30®\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30®\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30®\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30®\u0a36\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30®\u0a36\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30®
-ampms=\u0a38\u0a35\u0a47\u0a30\u0a47®\u0a36\u0a3e\u0a2e®
+currenciesSymbol.XXX=\u0a05\u0a23\u0a1c\u0a3e\u0a23
+shortMonths=\u0a1c\u0a28\u0a35\u0a30\u0a40\u00ae\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40\u00ae\u0a2e\u0a3e\u0a30\u0a1a\u00ae\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32\u00ae\u0a2e\u0a08\u00ae\u0a1c\u0a42\u0a28\u00ae\u0a1c\u0a41\u0a32\u0a3e\u0a08\u00ae\u0a05\u0a17\u0a38\u0a24\u00ae\u0a38\u0a24\u0a70\u0a2c\u0a30\u00ae\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30\u00ae\u0a28\u0a35\u0a70\u0a2c\u0a30\u00ae\u0a26\u0a38\u0a70\u0a2c\u0a30\u00ae\u00ae
+months=\u0a1c\u0a28\u0a35\u0a30\u0a40\u00ae\u0a2b\u0a3c\u0a30\u0a35\u0a30\u0a40\u00ae\u0a2e\u0a3e\u0a30\u0a1a\u00ae\u0a05\u0a2a\u0a4d\u0a30\u0a48\u0a32\u00ae\u0a2e\u0a08\u00ae\u0a1c\u0a42\u0a28\u00ae\u0a1c\u0a41\u0a32\u0a3e\u0a08\u00ae\u0a05\u0a17\u0a38\u0a24\u00ae\u0a38\u0a24\u0a70\u0a2c\u0a30\u00ae\u0a05\u0a15\u0a24\u0a42\u0a2c\u0a30\u00ae\u0a28\u0a35\u0a70\u0a2c\u0a30\u00ae\u0a26\u0a38\u0a70\u0a2c\u0a30\u00ae\u00ae
+shortWeekdays=\u00ae\u0a10\u0a24.\u00ae\u0a38\u0a4b\u0a2e.\u00ae\u0a2e\u0a70\u0a17\u0a32.\u00ae\u0a2c\u0a41\u0a27.\u00ae\u0a35\u0a40\u0a30.\u00ae\u0a38\u0a3c\u0a41\u0a15\u0a30.\u00ae\u0a38\u0a3c\u0a28\u0a40.\u00ae
+weekdays=\u00ae\u0a10\u0a24\u0a35\u0a3e\u0a30\u00ae\u0a38\u0a4b\u0a2e\u0a35\u0a3e\u0a30\u00ae\u0a2e\u0a70\u0a17\u0a32\u0a35\u0a3e\u0a30\u00ae\u0a2c\u0a41\u0a27\u0a35\u0a3e\u0a30\u00ae\u0a35\u0a40\u0a30\u0a35\u0a3e\u0a30\u00ae\u0a38\u0a3c\u0a41\u0a71\u0a15\u0a30\u0a35\u0a3e\u0a30\u00ae\u0a38\u0a3c\u0a28\u0a40\u0a1a\u0a30\u0a35\u0a3e\u0a30\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u0a38\u0a35\u0a47\u0a30\u0a47\u00ae\u0a38\u0a3c\u0a3e\u0a2e\u00ae
+shortDateFormat=dd/MM/yyy
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, dd MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=TO
+territories.ZZ=\u0a05\u0a23\u0a1c\u0a3e\u0a23
territories.IN=\u0a2d\u0a3e\u0a30\u0a24
+languages.th=\u0a25\u0a3e\u0a08
+languages.az=\u0a05\u0a1c\u0a3c\u0a47\u0a30\u0a2c\u0a48\u0a1c\u0a28\u0a3f
+languages.te=\u0a24\u0a47\u0a32\u0a17\u0a42
+languages.ta=\u0a24\u0a3e\u0a2e\u0a3f\u0a32
+languages.as=\u0a05\u0a38\u0a3e\u0a2e\u0a40
+languages.ar=\u0a05\u0a30\u0a2c\u0a40
+languages.gu=\u0a17\u0a41\u0a1c\u0a30\u0a3e\u0a24\u0a40
+languages.apa=\u0a05\u0a2a\u0a3e\u0a1a\u0a47 \u0a2d\u0a3e\u0a38\u0a3c\u0a3e
+languages.sv=\u0a38\u0a35\u0a48\u0a21\u0a3f\u0a38\u0a3c
+languages.pt=\u0a2a\u0a4b\u0a30\u0a24\u0a42\u0a17\u0a42\u0a08\u0a38
+languages.af=\u0a05\u0a2b\u0a3c\u0a30\u0a40\u0a15\u0a40
+languages.mk=\u0a2e\u0a48\u0a15\u0a47\u0a21\u0a4b\u0a28\u0a40\u0a05\u0a28
+languages.de=\u0a1c\u0a30\u0a2e\u0a28
+languages.ab=\u0a05\u0a2c\u0a16\u0a3e\u0a1c\u0a3c\u0a40\u0a05\u0a28
+languages.da=\u0a21\u0a48\u0a28\u0a3f\u0a38\u0a3c
+languages.ach=\u0a05\u0a15\u0a4b\u0a32\u0a40
+languages.aus=\u0a06\u0a38\u0a1f\u0a30\u0a47\u0a32\u0a40\u0a05\u0a28 \u0a2d\u0a3e\u0a38\u0a3c\u0a3e
+languages.ja=\u0a1c\u0a3e\u0a2a\u0a3e\u0a28\u0a40
+languages.ace=\u0a05\u0a1a\u0a40\u0a28\u0a40
languages.pa=\u0a2a\u0a70\u0a1c\u0a3e\u0a2c\u0a40
+languages.und=und
+languages.it=\u0a07\u0a24\u0a3e\u0a32\u0a35\u0a40
+languages.fr=\u0a2b\u0a30\u0a48\u0a02\u0a1a
+languages.fi=\u0a2b\u0a3f\u0a28\u0a3f\u0a38\u0a3c
+languages.id=\u0a07\u0a70\u0a21\u0a4b\u0a28\u0a47\u0a38\u0a3c\u0a40\u0a06\u0a08
+languages.ug=\u0a09\u0a07\u0a18\u0a41\u0a30
+languages.bat=\u0a2c\u0a48\u0a32\u0a1f\u0a3f\u0a15 \u0a2d\u0a3e\u0a38\u0a3c\u0a3e
+languages.es=\u0a38\u0a2a\u0a47\u0a28\u0a3f\u0a38\u0a3c
+languages.bn=\u0a2c\u0a70\u0a17\u0a3e\u0a32\u0a40
+languages.eo=\u0a0f\u0a38\u0a2a\u0a30\u0a47\u0a02\u0a1f\u0a4b
+languages.en=\u0a05\u0a70\u0a17\u0a30\u0a47\u0a1c\u0a3c\u0a40
+languages.tw=\u0a24\u0a4d\u0a35\u0a3f
+languages.no=\u0a28\u0a3e\u0a30\u0a35\u0a47\u0a1c\u0a40\u0a05\u0a28
+languages.hi=\u0a39\u0a3f\u0a70\u0a26\u0a40
+languages.be=\u0a2c\u0a47\u0a32\u0a3e\u0a30\u0a42\u0a38\u0a40\u0a05\u0a28
+languages.nl=\u0a21\u0a71\u0a1a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties
new file mode 100644
index 0000000..05278b9
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties
@@ -0,0 +1,16 @@
+# LocaleInformation_pa_Arab.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.PKR=\u0631\u0648\u067e\u0626\u06cc\u06c1
+currenciesDisplayName.INR=\u0631\u0648\u067e\u0626\u06cc\u06c1 [INR]
+currenciesDisplayName.EUR=\u064a\u0648\u0631\u0648
+currenciesSymbol.PKR=\u0631
+currenciesSymbol.INR=\u0631 [INR]
+months=\u062c\u0646\u0648\u0631\u06cc\u00ae\u0641\u0631\u0648\u0631\u06cc\u00ae\u0645\u0627\u0631\u0686\u00ae\u0627\u067e\u0631\u06cc\u0644\u00ae\u0645\u0626\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u0627\u0626\u06cc\u00ae\u0627\u06af\u0633\u062a\u00ae\u0633\u062a\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0645\u0628\u0631\u00ae\u062f\u0633\u0645\u0628\u0631\u00ae\u00ae
+weekdays=\u00ae\u0627\u062a\u0648\u0627\u0631\u00ae\u067e\u06cc\u0631\u00ae\u0645\u0646\u06af\u0644\u00ae\u0628\u064f\u062f\u06be\u00ae\u062c\u0645\u0639\u0631\u0627\u062a\u00ae\u062c\u0645\u0639\u06c1\u00ae\u06c1\u0641\u062a\u06c1\u00ae
+territories.PK=\u067e\u06a9\u0633\u062a\u0627\u0646
+languages.pa=\u067e\u0646\u062c\u0627\u0628
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pl.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pl.properties
index 91f53cd..a8dcc64 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pl.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pl.properties
@@ -5,149 +5,168 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=\u00a0
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
currenciesDisplayName.YDD=dinar jeme\u0144ski
-currenciesDisplayName.TWD=nowy dolar tajwa\u0144ski
currenciesDisplayName.KES=szyling kenijski
-currenciesDisplayName.BYB=rubel bia\u0142oruski (1994-1999)
+currenciesDisplayName.TWD=nowy dolar tajwa\u0144ski
currenciesDisplayName.LKR=rupia lankijska
-currenciesDisplayName.RWF=frank ruandyjski
+currenciesDisplayName.BYB=rubel bia\u0142oruski (1994-1999)
currenciesDisplayName.TJS=somoni tad\u017cyckie
-currenciesDisplayName.SDP=funt suda\u0144ski
-currenciesDisplayName.TJR=rubel tad\u017cycki
+currenciesDisplayName.RWF=frank ruandyjski
currenciesDisplayName.ERN=nakfa erytrejska
-currenciesDisplayName.AFN=afgani
+currenciesDisplayName.TJR=rubel tad\u017cycki
+currenciesDisplayName.SDP=stary funt suda\u0144ski
currenciesDisplayName.GRD=drachma grecka
+currenciesDisplayName.AFN=afgani
currenciesDisplayName.IEP=funt irlandzki
currenciesDisplayName.ARS=peso argenty\u0144skie
-currenciesDisplayName.SDD=dinar suda\u0144ski
+currenciesDisplayName.SDG=funt suda\u0144ski
currenciesDisplayName.ARP=peso argenty\u0144skie (1983-1985)
+currenciesDisplayName.SDD=dinar suda\u0144ski
currenciesDisplayName.GEL=lari gruzi\u0144skie
+currenciesDisplayName.GEK=gruzi\u0144ski kupon larit
currenciesDisplayName.AFA=afgani (1927-2002)
-currenciesDisplayName.GEK=Larit gruzi\u0144ski kupon
currenciesDisplayName.CRC=colon kostaryka\u0144ski
currenciesDisplayName.FKP=funt Wysp Falklandzkich
-currenciesDisplayName.EEK=korona esto\u0144ska
-currenciesDisplayName.HKD=dolar hongko\u0144ski
+currenciesDisplayName.EEK=koron esto\u0144skich
currenciesDisplayName.MDL=lej mo\u0142dawski
-currenciesDisplayName.ARA=austral argenty\u0144ski
+currenciesDisplayName.HKD=dolar hongko\u0144ski
currenciesDisplayName.IQD=dinar iracki
+currenciesDisplayName.ARA=austral argenty\u0144ski
currenciesDisplayName.SCR=rupia seszelska
currenciesDisplayName.VUV=vatu Vanuatu
-currenciesDisplayName.DKK=korona du\u0144ska
currenciesDisplayName.KPW=won p\u00f3\u0142nocnokorea\u0144ski
-currenciesDisplayName.GQE=ekwele gwinejskie Gwinei R\u00f3wnikowej
+currenciesDisplayName.DKK=koron du\u0144skich
currenciesDisplayName.IDR=rupia indonezyjska
-currenciesDisplayName.LVR=rubel \u0142otewski
+currenciesDisplayName.GQE=ekwele gwinejskie Gwinei R\u00f3wnikowej
currenciesDisplayName.SOS=szyling somalijski
-currenciesDisplayName.AED=dirham ZEA
-currenciesDisplayName.BWP=pula
+currenciesDisplayName.LVR=rubel \u0142otewski
+currenciesDisplayName.AED=dirham\u00f3w arabskich
currenciesDisplayName.LVL=\u0142at \u0142otewski
+currenciesDisplayName.BWP=pula
currenciesDisplayName.RUR=rubel rosyjski (1991-1998)
currenciesDisplayName.NIO=cordoba oro nikaragua\u0144ska
-currenciesDisplayName.ADP=peseta andorska
-currenciesDisplayName.FJD=dolar fid\u017cijski
currenciesDisplayName.MOP=pataka Macao
-currenciesDisplayName.RUB=rubel rosyjski
+currenciesDisplayName.FJD=dolar Fid\u017ci
+currenciesDisplayName.ADP=peset andorskich
+currenciesDisplayName.RUB=rubli rosyjskich
currenciesDisplayName.CDF=frank kongijski
currenciesDisplayName.NIC=cordoba nikaragua\u0144ska
currenciesDisplayName.DJF=frank D\u017cibuti
-currenciesDisplayName.SBD=dolar Wysp Salomona
currenciesDisplayName.UZS=som uzbecki
+currenciesDisplayName.SBD=dolar Wysp Salomona
currenciesDisplayName.ECS=sucre ekwadorski
-currenciesDisplayName.PHP=peso filipi\u0144skie
currenciesDisplayName.THB=baht tajski
+currenciesDisplayName.PHP=peso filipi\u0144skie
currenciesDisplayName.LUF=frank luksemburski
+currenciesDisplayName.RHD=dolar rodezyjski
currenciesDisplayName.FIM=marka fi\u0144ska
currenciesDisplayName.TTD=dolar Trynidadu i Tobago
currenciesDisplayName.SZL=lilangeni Suazi
currenciesDisplayName.MNT=tugrik mongolski
+currenciesDisplayName.UAK=karbowa\u0144c\u00f3w ukrai\u0144skich
currenciesDisplayName.SAR=rial saudyjski
-currenciesDisplayName.UAK=karbowaniec ukrai\u0144ski
-currenciesDisplayName.UAH=hrywna ukrai\u0144ska
-currenciesDisplayName.HUF=forint w\u0119gierski\u00a0
-currenciesDisplayName.COP=peso kolumbijskie
+currenciesDisplayName.UAH=hrywien ukrai\u0144skich
+currenciesDisplayName.HUF=forint\u00f3w w\u0119gierskich
currenciesDisplayName.QAR=rial katarski
+currenciesDisplayName.COP=peso kolumbijskie
currenciesDisplayName.LTT=talon litewski
currenciesDisplayName.PTE=escudo portugalskie
-currenciesDisplayName.AOR=kwanza angola\u0144ska Reajustado (1995-1999)
currenciesDisplayName.UYU=peso urugwajskie
+currenciesDisplayName.AOR=kwanz angola\u0144skich Reajustado (1995-1999)
currenciesDisplayName.GBP=funt szterling
-currenciesDisplayName.BIF=frank burundyjski
-currenciesDisplayName.INR=rupia indyjska
currenciesDisplayName.ZRZ=zair zairski
-currenciesDisplayName.AON=nowa kwanza angola\u0144ska (1990-2000)
-currenciesDisplayName.LTL=lit litewski
+currenciesDisplayName.INR=rupia indyjska
+currenciesDisplayName.BIF=frank burundyjski
currenciesDisplayName.XFU=UIC-frank francuski
-currenciesDisplayName.KZT=Tenge kazachskie
-currenciesDisplayName.MZM=metical Mozambik
+currenciesDisplayName.MZN=metical Mozambiku
+currenciesDisplayName.LTL=lit litewski
+currenciesDisplayName.AON=nowych kwanz angola\u0144skich (1990-2000)
currenciesDisplayName.UYP=peso urugwajskie (1975-1993)
-currenciesDisplayName.AOK=kwanza angola\u0144ska (1977-1990)
-currenciesDisplayName.BUK=kyat birma\u0144ski
+currenciesDisplayName.MZM=metical Mozambik
+currenciesDisplayName.KZT=tenge kazachskie
+currenciesDisplayName.AOK=kwanz angola\u0144skich (1977-1990)
currenciesDisplayName.GNS=syli gwinejskie
+currenciesDisplayName.BUK=kyat birma\u0144ski
currenciesDisplayName.XFO=frank z\u0142oty francuski
currenciesDisplayName.PGK=kina Papua Nowa Gwinea
currenciesDisplayName.SYP=funt syryjski
-currenciesDisplayName.MZE=escudo mozambickie
currenciesDisplayName.OMR=rial Omanu
-currenciesDisplayName.NGN=naira nigeryjska
+currenciesDisplayName.MZE=escudo mozambickie
currenciesDisplayName.ZRN=nowy zair zairski
-currenciesDisplayName.AOA=kwanza angola\u0144ska
+currenciesDisplayName.NGN=naira nigeryjska
currenciesDisplayName.CNY=juan renminbi
-currenciesDisplayName.MAF=frank maroka\u0144ski
+currenciesDisplayName.AOA=kwanz angola\u0144skich
+currenciesDisplayName.MAF=frank\u00f3w maroka\u0144skich
+currenciesDisplayName.RSD=dinar serbski
currenciesDisplayName.GNF=frank gwinejski
-currenciesDisplayName.HTG=gourde haita\u0144skie
currenciesDisplayName.MAD=dirham maroka\u0144ski
-currenciesDisplayName.TRY=nowa lira turecka
+currenciesDisplayName.HTG=gourde haita\u0144skie
+currenciesDisplayName.TRY=lira turecka
currenciesDisplayName.MMK=kyat Myanmar
currenciesDisplayName.MYR=ringgit malezyjski
+currenciesDisplayName.XEU=ECU
currenciesDisplayName.LSL=loti Lesoto
-currenciesDisplayName.BHD=dinar bahra\u0144ski
currenciesDisplayName.SLL=leone Sierra Leone
-currenciesDisplayName.BTN=ngultrum Bhutan
-currenciesDisplayName.TRL=lir turecki
+currenciesDisplayName.BHD=dinar bahra\u0144ski
+currenciesDisplayName.BTN=ngultrum Bhutanu
+currenciesDisplayName.TRL=stary lir turecki
currenciesDisplayName.KMF=frank komoryjski
-currenciesDisplayName.ANG=gulden Antyle Holenderskie
-currenciesDisplayName.CZK=korona czeska
+currenciesDisplayName.CZK=koron czeskich
+currenciesDisplayName.ANG=gulden\u00f3w Antyle Holenderskie
+currenciesDisplayName.AZN=manat\u00f3w azerskich
currenciesDisplayName.AZM=manat azerbejd\u017ca\u0144ski
currenciesDisplayName.KYD=dolar kajma\u0144ski
currenciesDisplayName.GMD=dalasi gambijskie
-currenciesDisplayName.BGN=nowe lewa bu\u0142garskie
-currenciesDisplayName.CAD=dolar kanadyjski
-currenciesDisplayName.BGL=lewa bu\u0142garskie
+currenciesDisplayName.VEF=boliwar fuerte
+currenciesDisplayName.BGN=nowy lew bu\u0142garski
+currenciesDisplayName.CAD=dolar\u00f3w kanadyjskich
+currenciesDisplayName.BGL=lew bu\u0142garski
currenciesDisplayName.VEB=boliwar wenezuelski
currenciesDisplayName.MLF=frank malijski
-currenciesDisplayName.ILS=nowy szekel izraelski
currenciesDisplayName.MXP=peso srebrne meksyka\u0144skie (1861-1992)
+currenciesDisplayName.ILS=nowy szekel izraelski
currenciesDisplayName.PES=sol peruwia\u0144ski
-currenciesDisplayName.GYD=dolar guja\u0144ski
currenciesDisplayName.MXN=peso meksyka\u0144skie
+currenciesDisplayName.GYD=dolar guja\u0144ski
currenciesDisplayName.ILP=funt izraelski
-currenciesDisplayName.SKK=korona s\u0142owacka
currenciesDisplayName.CYP=funt cypryjski
+currenciesDisplayName.SKK=koron s\u0142owackich
currenciesDisplayName.XDR=specjalne prawa ci\u0105gnienia
currenciesDisplayName.PEN=nowy sol peruwia\u0144ski
currenciesDisplayName.LRD=dolar liberyjski
currenciesDisplayName.PEI=inti peruwia\u0144ski
-currenciesDisplayName.AMD=dram arme\u0144ski
+currenciesDisplayName.AMD=dram\u00f3w arme\u0144skich
currenciesDisplayName.BSD=dolar bahamski
+currenciesDisplayName.XPT=uncja platyny
currenciesDisplayName.HRK=kuna chorwacka
-currenciesDisplayName.CLP=peso chilijskie
currenciesDisplayName.HRD=dinar chorwacki
+currenciesDisplayName.CLP=peso chilijskie
currenciesDisplayName.XPF=frank CFP
-currenciesDisplayName.FRF=frank francuski\u00a0
+currenciesDisplayName.FRF=frank\u00f3w francuskich
+currenciesDisplayName.XPD=pallad
currenciesDisplayName.BRR=cruzeiro brazylijskie
currenciesDisplayName.MKD=denar macedo\u0144ski
-currenciesDisplayName.ALL=lek alba\u0144ski
-currenciesDisplayName.BRN=cruzado brazylijskie
+currenciesDisplayName.BRN=nowe cruzado brazylijskie
+currenciesDisplayName.ALL=lek\u00f3w alba\u0144skich
currenciesDisplayName.MWK=kwacha malawska
currenciesDisplayName.BRL=real brazylijski
currenciesDisplayName.TPE=escudo timorskie
-currenciesDisplayName.BRE=cruzeiro brazylijskie(1990-1993)
+currenciesDisplayName.BRE=cruzeiro brazylijskie (1990-1993)
currenciesDisplayName.BRC=cruzado brazylijskie
currenciesDisplayName.BRB=cruzeiro novo brazylijskie (1967-1986)
-currenciesDisplayName.DEM=marka niemiecka
+currenciesDisplayName.DEM=marek niemieckich
currenciesDisplayName.KWD=dinar kuwejcki
currenciesDisplayName.XCD=dolar wschodniokaraibski
currenciesDisplayName.NPR=rupia nepalska
@@ -156,21 +175,21 @@ currenciesDisplayName.YUN=dinar jugos\u0142awia\u0144ski wymienny
currenciesDisplayName.SVC=colon salwadorski
currenciesDisplayName.YUM=nowy dinar jugos\u0142awia\u0144ski
currenciesDisplayName.BEL=frank belgijski (finansowy)
-currenciesDisplayName.SIT=tolar s\u0142owe\u0144ski
-currenciesDisplayName.JPY=jen japo\u0144ski
+currenciesDisplayName.SIT=tolar\u00f3w s\u0142owe\u0144skich
+currenciesDisplayName.JPY=jen\u00f3w japo\u0144skich
currenciesDisplayName.XOF=frank CFA
currenciesDisplayName.MVR=rufiyaa malediwska
-currenciesDisplayName.GWE=escudo Gwinea Portugalska
currenciesDisplayName.BEF=frank belgijski
+currenciesDisplayName.GWE=escudo Gwinea Portugalska
currenciesDisplayName.TOP=pa\u02bbanga Tonga
-currenciesDisplayName.YUD=dinar jugos\u0142awia\u0144ski wymienny
currenciesDisplayName.BEC=frank belgijski (zamienny)
-currenciesDisplayName.SUR=rubel radziecki
+currenciesDisplayName.SUR=rubli radzieckich
+currenciesDisplayName.RON=nowa leja rumu\u0144ska
currenciesDisplayName.ROL=lej rumu\u0144ski
-currenciesDisplayName.DDM=wschodnia marka wschodnioniemiecka
currenciesDisplayName.BDT=taka bengalska
+currenciesDisplayName.DDM=wschodnia marka wschodnioniemiecka
currenciesDisplayName.AWG=gulden arubski
-currenciesDisplayName.NOK=korona norweska
+currenciesDisplayName.NOK=koron norweskich
currenciesDisplayName.MUR=rupia Mauritius
currenciesDisplayName.ZAR=rand po\u0142udniowoafryka\u0144ski
currenciesDisplayName.SHP=funt Wyspy \u015awi\u0119tej Heleny
@@ -182,6 +201,7 @@ currenciesDisplayName.GIP=funt gibraltarski
currenciesDisplayName.TND=dinar tunezyjski
currenciesDisplayName.CVE=escudo Zielonego Przyl\u0105dka
currenciesDisplayName.UGX=szyling ugandyjski
+currenciesDisplayName.XAG=uncja srebra
currenciesDisplayName.ZMK=kwacha zambijska
currenciesDisplayName.JOD=dinar jorda\u0144ski
currenciesDisplayName.XAF=frank CFA BEAC
@@ -190,30 +210,32 @@ currenciesDisplayName.UGS=szyling ugandyjski (1966-1987)
currenciesDisplayName.STD=dobra Wysp \u015awi\u0119tego Tomasza i\u00a0Ksi\u0105\u017c\u0119cej
currenciesDisplayName.WST=tala samoa\u0144ska
currenciesDisplayName.KHR=riel kambod\u017ca\u0144ski
-currenciesDisplayName.EUR=euro
currenciesDisplayName.DOP=peso dominika\u0144skie
+currenciesDisplayName.EUR=euro
currenciesDisplayName.BOV=mvdol boliwijski
currenciesDisplayName.MTP=funt malta\u0144ski
currenciesDisplayName.BOP=peso boliwijskie
-currenciesDisplayName.MTL=lira malta\u0144ska
currenciesDisplayName.CUP=peso kuba\u0144skie
+currenciesDisplayName.MTL=lira malta\u0144ska
currenciesDisplayName.TMM=manat turkme\u0144ski
+currenciesDisplayName.GHS=cedi Ghany
currenciesDisplayName.SGD=dolar singapurski
-currenciesDisplayName.NZD=dolar nowozelandzki
-currenciesDisplayName.USD=dolar ameryka\u0144ski\u00a0
-currenciesDisplayName.HNL=lempira Hondurasu
+currenciesDisplayName.NZD=dolar\u00f3w nowozelandzkich
+currenciesDisplayName.USD=dolar\u00f3w ameryka\u0144skich
currenciesDisplayName.BOB=boliviano
+currenciesDisplayName.HNL=lempira Hondurasu
currenciesDisplayName.ITL=lir w\u0142oski
currenciesDisplayName.PAB=balboa panamski
currenciesDisplayName.GTQ=quetzal gwatemalski
-currenciesDisplayName.LAK=kip laota\u0144ski
+currenciesDisplayName.XXX=XXX
+currenciesDisplayName.AUD=dolar\u00f3w australijskich
currenciesDisplayName.GHC=cedi gha\u0144skie
-currenciesDisplayName.AUD=dolar australijski
+currenciesDisplayName.LAK=kip laota\u0144ski
currenciesDisplayName.NAD=dolar namibijski
currenciesDisplayName.KGS=som kirgiski
currenciesDisplayName.MGF=frank malgaski
-currenciesDisplayName.CHF=frank szwajcarski
currenciesDisplayName.BBD=dolar Barbadosu
+currenciesDisplayName.CHF=frank\u00f3w szwajcarskich
currenciesDisplayName.MGA=ariar malgaski
currenciesDisplayName.PYG=guarani paragwajskie
currenciesDisplayName.PLZ=z\u0142oty polski (1950-1995)
@@ -221,53 +243,57 @@ currenciesDisplayName.YER=rial jeme\u0144ski
currenciesDisplayName.ATS=szyling austriacki\u00a0
currenciesDisplayName.ETB=birr etiopski
currenciesDisplayName.BND=dolar brunejski
-currenciesDisplayName.JMD=dolar jamajski
currenciesDisplayName.EGP=funt egipski
-currenciesDisplayName.PLN=z\u0142oty polski
+currenciesDisplayName.JMD=dolar jamajski
+currenciesDisplayName.PLN=z\u0142otych polskich
currenciesDisplayName.DZD=dinar algierski
currenciesDisplayName.ISK=korona islandzka
currenciesDisplayName.SRG=gulden surinamski
currenciesDisplayName.LYD=dinar libijski
+currenciesDisplayName.SRD=dolar\u00f3w surinamskich
+currenciesDisplayName.BAM=marka zamienna Bo\u015bni i Hercegowiny
currenciesDisplayName.BZD=dolar belize\u0144ski
-currenciesDisplayName.BAM=marka konwertybilna Bo\u015bni i Hercegowiny
currenciesDisplayName.ESP=peseta hiszpa\u0144ska
currenciesDisplayName.KRW=won po\u0142udniowokorea\u0144ski
currenciesDisplayName.NLG=gulden holenderski\u00a0
currenciesDisplayName.MRO=ouguiya mautera\u0144ska
currenciesDisplayName.BAD=dinar Bo\u015bni i Hercegowiny
currenciesDisplayName.ZWD=dolar Zimbabwe
-currenciesDisplayName.SEK=korona szwedzka
-currenciesDisplayName.CSK=korona czechos\u0142owacka
-currenciesDisplayName.BYR=rubel bia\u0142oruski
+currenciesDisplayName.SEK=koron szwedzkich
+currenciesDisplayName.CSK=koron czechos\u0142owackich
+currenciesDisplayName.BYR=rubli bia\u0142oruskich
+currenciesDisplayName.ESB=peseta hiszpa\u0144ska (konto wymienne)
currenciesDisplayName.IRR=rial ira\u0144ski
+currenciesDisplayName.ESA=peseta hiszpa\u0144ska (Konto A)
currenciesDisplayName.PKR=rupia pakista\u0144ska
currenciesDisplayName.BMD=dolar bermudzki
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=dinar serbski
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.JPY=\u00a5
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
@@ -285,27 +311,28 @@ currenciesSymbol.FJD=F$
currenciesSymbol.UYU=Ur$
currenciesSymbol.BDT=Tk
currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
currenciesSymbol.SGD=S$
currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -314,8 +341,8 @@ currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
currenciesSymbol.PLN=z\u0142
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
currenciesSymbol.CNY=Y
@@ -330,10 +357,10 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=NA f.
@@ -342,16 +369,21 @@ currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=st®lut®mrz®kw®maj®cz®lip®sier®wrz®pa\u017a®lis®gr®®
-months=stycze\u0144®luty®marzec®kwiecie\u0144®maj®czerwiec®lipiec®sierpie\u0144®wrzesie\u0144®pa\u017adziernik®listopad®grudzie\u0144®®
-shortWeekdays=®niedz.®pon.®wt.®\u015br.®czw.®pt.®sob.®
-weekdays=®niedziela®poniedzia\u0142ek®wtorek®\u015broda®czwartek®pi\u0105tek®sobota®
-firstDayOfWeek=mon
-eras=p.n.e.®n.e.®
-shortDateFormat=dd.MM.yy
+shortMonths=sty\u00aelut\u00aemar\u00aekwi\u00aemaj\u00aecze\u00aelip\u00aesie\u00aewrz\u00aepa\u017a\u00aelis\u00aegru\u00ae\u00ae
+months=stycze\u0144\u00aeluty\u00aemarzec\u00aekwiecie\u0144\u00aemaj\u00aeczerwiec\u00aelipiec\u00aesierpie\u0144\u00aewrzesie\u0144\u00aepa\u017adziernik\u00aelistopad\u00aegrudzie\u0144\u00ae\u00ae
+shortWeekdays=\u00aeniedz.\u00aepon.\u00aewt.\u00ae\u015br.\u00aeczw.\u00aept.\u00aesob.\u00ae
+weekdays=\u00aeniedziela\u00aeponiedzia\u0142ek\u00aewtorek\u00ae\u015broda\u00aeczwartek\u00aepi\u0105tek\u00aesobota\u00ae
+eras=p.n.e.\u00aen.e.\u00ae
+ampms=rano\u00aepo po\u0142udniu/wieczorem\u00ae
+shortDateFormat=yy-MM-dd
mediumDateFormat=yyyy-MM-dd
longDateFormat=d MMMM yyyy
fullDateFormat=EEEE, d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Eastern\u00aeCzas wschodnioeuropejski\u00ae\u00aeCzas wschodnioeuropejski letni\u00ae\u00ae\u00a9Europe_Central\u00aeCzas \u015brodkowoeuropejski\u00ae\u00aeCzas \u015brodkowoeuropejski letni\u00ae\u00ae\u00a9Europe_Western\u00aeCzas zachodnioeuropejski\u00ae\u00aeCzas zachodnioeuropejski letni\u00ae\u00ae\u00a9
territories.TL=Timor Wschodni
territories.TK=Tokelau
territories.TJ=Tad\u017cykistan
@@ -360,11 +392,11 @@ territories.TG=Togo
territories.TF=Francuskie Terytoria Po\u0142udniowe
territories.GY=Gujana
territories.TD=Czad
-territories.TC=Turks i Caicos
+territories.TC=Wyspy Turks i Caicos
territories.GW=Gwinea Bissau
territories.GU=Guam
territories.GT=Gwatemala
-territories.GS=Wyspy Georgia Po\u0142udniowa i Sandwich Po\u0142udniowy
+territories.GS=Georgia Po\u0142udniowa i Sandwich Po\u0142udniowy
territories.GR=Grecja
territories.GQ=Gwinea R\u00f3wnikowa
territories.GP=Gwadelupa
@@ -374,12 +406,13 @@ territories.GN=Gwinea
territories.GM=Gambia
territories.GL=Grenlandia
territories.SV=Salwador
-territories.062=Azja Po\u0142udniowo-\u015arodkowa
+territories.062=Azja Po\u0142udniowo-\u015brodkowa
territories.ST=Wyspy \u015awi\u0119tego Tomasza i Ksi\u0105\u017c\u0119ca
-territories.061=Polinezja
territories.GI=Gibraltar
+territories.061=Polinezja
territories.GH=Ghana
territories.SR=Surinam
+territories.GG=Wyspa Guernsey
territories.GF=Gujana Francuska
territories.GE=Gruzja
territories.SO=Somalia
@@ -390,7 +423,7 @@ territories.GB=Wielka Brytania
territories.SL=Sierra Leone
territories.GA=Gabon
territories.SK=S\u0142owacja
-territories.SJ=Svalbard i Wyspy Jan Mayen
+territories.SJ=Svalbard i Jan Mayen
territories.SI=S\u0142owenia
territories.SH=Wyspa \u015awi\u0119tej Heleny
territories.SG=Singapur
@@ -400,51 +433,53 @@ territories.SC=Seszele
territories.SB=Wyspy Salomona
territories.SA=Arabia Saudyjska
territories.FR=Francja
-territories.057=Mikronezja
territories.FO=Wyspy Owcze
-territories.FM=Mikronezja, Stany Sfederowane
+territories.057=Region Mikronezji
+territories.FM=Mikronezja
territories.RW=Rwanda
territories.054=Melanezja
+territories.FK=Falklandy
territories.053=Australia i Nowa Zelandia
-territories.FK=Falklandy (Malwiny)
-territories.RU=Federacja Rosyjska
+territories.RU=Rosja
territories.FJ=Fid\u017ci
territories.FI=Finlandia
+territories.RS=Serbia
territories.RO=Rumunia
territories.RE=Reunion
territories.ET=Etiopia
territories.ES=Hiszpania
territories.ER=Erytrea
-territories.833=Wyspa Man
+territories.QU=Unia Europejska
territories.EH=Sahara Zachodnia
territories.EG=Egipt
-territories.830=Wyspy Normandzkie
territories.EE=Estonia
+territories.830=Wyspy Normandzkie
territories.QO=Oceania inne
territories.EC=Ekwador
territories.DZ=Algieria
territories.QA=Katar
territories.039=Europa Po\u0142udniowa
-territories.DO=Republika Dominika\u0144ska
+territories.DO=Republika Dominikany
territories.PY=Paragwaj
-territories.035=Azja Po\u0142udniowo-Wschodnia
territories.DM=Dominika
+territories.035=Azja Po\u0142udniowo-Wschodnia
territories.PW=Palau
+territories.034=Azja Po\u0142udniowa
territories.DK=Dania
territories.DJ=D\u017cibuti
territories.PT=Portugalia
territories.PS=Terytoria Palesty\u0144skie
territories.030=Azja Wschodnia
-territories.PR=Puerto Rico
+territories.PR=Portoryko
territories.DE=Niemcy
territories.PN=Pitcairn
-territories.PM=St. Pierre i Miquelon
+territories.PM=Saint-Pierre i Miquelon
territories.PL=Polska
territories.PK=Pakistan
territories.PH=Filipiny
-territories.PG=Papua Nowa Gwinea
+territories.PG=Papua-Nowa Gwinea
territories.PF=Polinezja Francuska
-territories.CZ=Republika Czeska
+territories.CZ=Czechy
territories.PE=Peru
territories.CY=Cypr
territories.CX=Wyspa Bo\u017cego Narodzenia
@@ -453,48 +488,52 @@ territories.PA=Panama
territories.CU=Kuba
territories.CS=Serbia i Czarnog\u00f3ra
territories.CR=Kostaryka
-territories.029=Morze Karaibskie
+territories.029=Karaiby
territories.CO=Kolumbia
territories.CN=Chiny
territories.CM=Kamerun
territories.CL=Chile
territories.CK=Wyspy Cooka
-territories.CI=Wybrze\u017ce Ko\u015bci S\u0142oniowej
territories.021=Ameryka P\u00f3\u0142nocna
+territories.CI=Wybrze\u017ce Ko\u015bci S\u0142oniowej
territories.CH=Szwajcaria
-territories.CG=Kongo
+territories.CG=Republika Konga
territories.CF=Republika \u015arodkowej Afryki
territories.CD=Kongo, Republika Demokratyczna
-territories.CC=Wyspy Kokosowe (Keelinga)
+territories.CC=Wyspy Kokosowe
territories.OM=Oman
territories.CA=Kanada
+territories.419=Ameryka \u0141aci\u0144ska i Karaiby
territories.BZ=Belize
territories.BY=Bia\u0142oru\u015b
territories.BW=Botswana
territories.BV=Wyspa Bouveta
territories.BT=Bhutan
-territories.BS=Bahamy
+territories.BS=Wyspy Bahama
territories.BR=Brazylia
territories.019=Ameryka
territories.018=Afryka Po\u0142udniowa
territories.NZ=Nowa Zelandia
-territories.BO=Boliwia
territories.017=Afryka \u015arodkowa
+territories.BO=Boliwia
territories.BN=Brunei Darussalam
-territories.BM=Bermudy
territories.015=Afryka P\u00f3\u0142nocna
+territories.BM=Bermudy
territories.014=Afryka Wschodnia
+territories.BL=Saint Barth\u00e9lemy
territories.013=Ameryka \u015arodkowa
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Afryka Zachodnia
+territories.BI=Burundi
+territories.172=Wsp\u00f3lnota Niepodleg\u0142ych Pa\u0144stw
territories.BH=Bahrajn
territories.NR=Nauru
territories.BG=Bu\u0142garia
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgia
+territories.ZZ=Nieznany lub nieprawid\u0142owy region
territories.NO=Norwegia
territories.BD=Bangladesz
territories.BB=Barbados
@@ -506,7 +545,7 @@ territories.NG=Nigeria
territories.NF=Wyspa Norfolk
territories.AZ=Azerbejd\u017can
territories.NE=Niger
-territories.AX=Wyspy Alandzkie
+territories.AX=Wyspy alandzkie
territories.NC=Nowa Kaledonia
territories.AW=Aruba
territories.ZM=Zambia
@@ -515,45 +554,48 @@ territories.AU=Australia
territories.AT=Austria
territories.AS=Samoa Ameryka\u0144skie
territories.AR=Argentyna
-territories.009=Oceania
territories.AQ=Antarktyka
+territories.009=Oceania
territories.MZ=Mozambik
territories.AO=Angola
territories.MY=Malezja
territories.AN=Antyle Holenderskie
territories.MX=Meksyk
-territories.005=Ameryka Po\u0142udniowa
territories.AM=Armenia
+territories.005=Ameryka Po\u0142udniowa
territories.MW=Malawi
territories.AL=Albania
territories.MV=Malediwy
-territories.ZA=Afryka Po\u0142udniowa
+territories.003=Ameryka - p\u00f3\u0142noc
+territories.ZA=Republika Po\u0142udniowej Afryki
territories.MU=Mauritius
territories.002=Afryka
territories.MT=Malta
-territories.001=\u015awiat
territories.AI=Anguilla
+territories.001=\u015bwiat
territories.MS=Montserrat
territories.MR=Mauretania
territories.AG=Antigua i Barbuda
territories.MQ=Martynika
territories.AF=Afganistan
-territories.MP=Wsp\u00f3lnota Marian\u00f3w P\u00f3\u0142nocnych
+territories.MP=Mariany P\u00f3\u0142nocne
territories.AE=Zjednoczone Emiraty Arabskie
-territories.MO=Makau, Specjalny Region Administracyjny Chin
+territories.MO=Makau
territories.AD=Andora
territories.MN=Mongolia
-territories.MM=Birma
+territories.MM=Myanmar
territories.ML=Mali
-territories.MK=Macedonia, Republika
+territories.MK=Macedonia
territories.YT=Majotta
territories.MH=Wyspy Marshalla
territories.MG=Madagaskar
-territories.MD=Mo\u0142dawia, Republika
+territories.MF=Sint Maarten
+territories.ME=Czarnog\u00f3ra
+territories.MD=Mo\u0142dawia
territories.MC=Monako
territories.MA=Maroko
territories.YE=Jemen
-territories.LY=Libijska
+territories.LY=Libia
territories.LV=\u0141otwa
territories.155=Europa Zachodnia
territories.LU=Luksemburg
@@ -567,11 +609,12 @@ territories.LK=Sri Lanka
territories.LI=Liechtenstein
territories.LC=Saint Lucia
territories.LB=Liban
-territories.LA=Laos (Demokratyczna Republika Ludowa)
+territories.LA=Laos
territories.KZ=Kazachstan
territories.KY=Kajmany
territories.KW=Kuwejt
territories.145=Azja Zachodnia
+territories.143=Azja \u015arodkowa
territories.142=Azja
territories.KR=Korea Po\u0142udniowa
territories.KP=Korea P\u00f3\u0142nocna
@@ -587,25 +630,27 @@ territories.JP=Japonia
territories.JO=Jordania
territories.JM=Jamajka
territories.VU=Vanuatu
+territories.JE=Wyspa Jersey
territories.VN=Wietnam
-territories.VI=Wyspy Dziewicze, Stan\u00f3w Zjednoczonych
+territories.VI=Wyspy Dziewicze USA
territories.VG=Brytyjskie Wyspy Dziewicze
territories.VE=Wenezuela
-territories.VC=Saint Vincent and the Grenadines
-territories.VA=Stolica Apostolska (Pa\u0144stwo Watyka\u0144skie)
+territories.VC=Saint Vincent i Grenadyny
+territories.VA=Watykan
territories.IT=W\u0142ochy
territories.IS=Islandia
territories.IR=Iran
territories.IQ=Irak
territories.UZ=Uzbekistan
-territories.IO=Terytorium Brytyjskie Oceanu Indyjskiego
+territories.IO=Terytorium brytyjskie na Oceanie Indyjskim
territories.UY=Urugwaj
territories.IN=Indie
+territories.IM=Wyspa Man
territories.IL=Izrael
territories.US=Stany Zjednoczone
territories.IE=Irlandia
territories.ID=Indonezja
-territories.UM=United States Minor Outlying Islands
+territories.UM=Dalekie Wyspy Mniejsze Stan\u00f3w Zjednoczonych
territories.UG=Uganda
territories.UA=Ukraina
territories.HU=W\u0119gry
@@ -616,39 +661,538 @@ territories.HN=Honduras
territories.HM=Wyspy Heard i McDonald
territories.TW=Tajwan
territories.TV=Tuvalu
-territories.HK=Hongkong, Specjalny Region Administracyjny Chin
-territories.TT=Trinidad i Tobago
+territories.HK=Hongkong
+territories.TT=Trynidad i Tobago
territories.TR=Turcja
territories.TO=Tonga
territories.TN=Tunezja
-territories.TM=Turkmenia
-languages.ja=japo\u0144ski
-languages.en=angielski
+territories.TM=Turkmenistan
+languages.gwi=gwich\u02bcin
+languages.akk=akadyjski
+languages.eka=ekajuk
+languages.ijo=ijo
+languages.xh=khosa
+languages.sux=sumeryjski
+languages.sus=susu
+languages.mis=inny j\u0119zyk
+languages.loz=lozi
+languages.tog=tonga niasa
+languages.zbl=bliss
+languages.pon=ponpejski
+languages.min=minangkabu
+languages.suk=sukuma
+languages.wo=wolof
+languages.lol=mongo
+languages.kut=kutenai
+languages.mic=micmac
+languages.wa=walo\u0144ski
+languages.kum=kumycki
+languages.zap=zapotecki
+languages.ain=Ajnu
+languages.cus=kuszycki
+languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zazaki
+languages.vo=volapuk
+languages.oto=otomi
+languages.vi=wietnamski
+languages.vai=wai
+languages.rar=rarotonga
+languages.ve=venda
+languages.rap=rapanui
+languages.raj=rad\u017aasthani
+languages.ota=osma\u0144sko-turecki
+languages.nzi=nzema
+languages.nap=neapolita\u0144ski
+languages.uz=uzbecki
+languages.uga=ugarycki
+languages.tmh=tamaszek
+languages.nai=j\u0119zyk Indian p\u00f3\u0142nocnoameryka\u0144skich
+languages.nah=nahuatl
+languages.ur=urdu
+languages.fat=fanti
+languages.uk=ukrai\u0144ski
+languages.egy=staro\u017cytny egipski
+languages.zxx=brak tre\u015bci lingwistycznych
+languages.ug=ujgurski
+languages.fan=fang
+languages.ssa=nilosaharyjski
+languages.mga=\u015bredniowieczny irlandzki
+languages.bat=ba\u0142tycki
+languages.nyo=nyoro
+languages.bas=Basa
+languages.nyn=nyankole
+languages.nym=niamwezi
+languages.gsw=niemiecki (Szwajcaria)
+languages.hmn=hmongijski
+languages.ban=balijski
+languages.osa=osage
+languages.bal=Belud\u017ci
+languages.ty=tahita\u0144ski
+languages.bai=j\u0119zyk Bamileke
+languages.tw=twi
+languages.srr=serer
+languages.tli=tlingit
+languages.tlh=klingo\u0144ski
+languages.tt=tatarski
+languages.ts=tsonga
+languages.srn=sranan tongo
+languages.bad=Banda
languages.tr=turecki
-languages.ko=korea\u0144ski
+languages.to=Tonga
+languages.tn=setswana
+languages.tl=tagalski
+languages.tk=turkme\u0144ski
+languages.ti=tigrinia
+languages.th=afrykanerski
+languages.kru=kurukh
+languages.tg=tad\u017cycki
+languages.byn=Blin
+languages.te=telugu
+languages.kro=kru
+languages.csb=kaszubski
+languages.ta=tamilski
+languages.krl=karelski
+languages.tkl=tokelau
+languages.efi=efik
+languages.sw=suahili
+languages.sv=szwedzki
+languages.su=sundajski
+languages.krc=karaczajsko-ba\u0142karski
+languages.st=sotho po\u0142udniowy
+languages.ss=siswati
+languages.sr=serbski
+languages.sq=alba\u0144ski
+languages.men=mende
+languages.crp=kreolski lub pid\u017cin
+languages.so=somalijski
+languages.afh=Arihili
+languages.sn=szona
+languages.sm=samoa\u0144ski
+languages.sl=s\u0142owe\u0144ski
+languages.grc=starogrecki
+languages.sk=s\u0142owacki
+languages.grb=grebo
+languages.si=syngaleski
+languages.sh=serbsko-chorwacki
+languages.crh=krymski turecki
+languages.afa=j\u0119zyki afro-azjatyckie
+languages.sg=sango
+languages.se=p\u00f3\u0142nocny lapo\u0144ski
+languages.sd=sindhi
+languages.udm=udmurcki
+languages.sc=sardy\u0144ski
+languages.sa=sanskryt
+languages.rw=kinya-ruanda
+languages.nwc=newarski klasyczny
+languages.ru=rosyjski
+languages.mdr=mandar
+languages.ro=rumu\u0144ski
+languages.rn=rundi
+languages.rm=retoroma\u0144ski
+languages.mdf=moksza
+languages.tiv=tiw
+languages.fr_CA=kanadyjski francuski
+languages.ady=adygejski
+languages.zun=zuni
+languages.kpe=kpelle
+languages.qu=keczua
+languages.tig=tigre
+languages.son=songhaj
+languages.cpp=portugalski kreolski lub pid\u017cynowy
+languages.rup=arumu\u0144ski
+languages.sog=sogdyjski
+languages.ada=Adangme
+languages.kos=kosrae
+languages.hit=hetycki
+languages.cpf=kreolski lub pid\u017cin na bazie francuskiego
+languages.cpe=kreolski lub pid\u017cin na bazie angielskiego
+languages.him=himachali
+languages.kok=konkani
+languages.hil=hiligajnon
+languages.got=gocki
+languages.gor=gorontalo
+languages.gon=gondi
+languages.din=dinka
+languages.nub=nubijski
+languages.pt=portugalski
+languages.ps=paszto
+languages.fur=friulijski
+languages.phn=fenicki
+languages.de_CH=wysokoniemiecki (Szwajcaria)
+languages.goh=staro-wysoko-niemiecki
+languages.snk=soninke
+languages.cop=koptyjski
+languages.yap=japski
+languages.ach=Aczoli
+languages.yao=yao
+languages.phi=filipi\u0144ski
+languages.pl=polski
+languages.ace=Aceh
+languages.pi=palijski
+languages.pa=pend\u017cabski
+languages.bug=bugi\u0144ski
+languages.iba=ibanag
+languages.sms=lapo\u0144ski Skolt
+languages.bua=buriacki
+languages.mas=masajski
+languages.smn=lapo\u0144ski Inari
+languages.os=osetyjski
+languages.map=j\u0119zyki austronezyjskie
+languages.or=orija
+languages.man=mandingo
+languages.smj=lapo\u0144ski Lule
+languages.smi=lapo\u0144ski
+languages.mak=makasar
+languages.om=oromski
+languages.mai=maithili
+languages.oj=od\u017cibwa
+languages.mag=magahi
+languages.mad=madurajski
+languages.sma=po\u0142udniowolapo\u0144ski
+languages.oc=prowansalski
+languages.nso=p\u00f3\u0142nocny sotho
+languages.btk=Batak
+languages.myv=erzja
+languages.de_AT=austriacki niemiecki
+languages.dgr=dogrib
+languages.ny=njand\u017ca
+languages.myn=j\u0119zyk Maj\u00f3w
+languages.nv=nawaho
+languages.kmb=kimbundu
+languages.nr=ndebele po\u0142udniowy
+languages.gmh=\u015bredniowieczny wysokoniemiecki
languages.no=norweski
-languages.el=grecki
-languages.nl=holenderski
-languages.bg=bu\u0142garski
+languages.nn=norweski Nynorsk
+languages.nl=niderlandzki
+languages.root=j\u0119zyk izoluj\u0105cy
+languages.ng=ndonga
+languages.sla=s\u0142owia\u0144ski
+languages.ne=nepalski
+languages.nd=p\u00f3\u0142nocny ndebele
+languages.cmc=czam
+languages.tet=tetum
+languages.nb=norweski Bokm\u00e5l
+languages.na=nauru
+languages.ter=tereno
+languages.tem=temne
+languages.my=birma\u0144ski
+languages.lez=lezgijski
+languages.mt=malta\u0144ski
+languages.frs=wschodniofryzyjski
+languages.peo=staroperski
+languages.ms=malajski
+languages.frr=p\u00f3\u0142nocnofryzyjski
+languages.mr=marathi
+languages.fro=starofrancuski
+languages.mo=mo\u0142dawski
+languages.mn=mongolski
+languages.frm=\u015bredniowieczny francuski
+languages.ml=malajalam
+languages.jrb=judeoarabski
+languages.mk=macedo\u0144ski
+languages.mi=maoryjski
+languages.mh=marshall
+languages.mg=malgaski
+languages.nqo=n\u2019ko
+languages.mwr=marwari
+languages.bra=Brad\u017a
+languages.mwl=mirandese
+languages.den=slave
languages.lv=\u0142otewski
-languages.cs=czeski
-languages.he=hebrajski
-languages.it=w\u0142oski
+languages.lu=luba-katanga
+languages.del=delaware
languages.lt=litewski
+languages.lo=laota\u0144ski
+languages.ln=lingala
+languages.li=limburgijski
+languages.ewo=ewondo
+languages.lg=ganda
+languages.lb=luksemburski
+languages.la=\u0142aci\u0144ski
+languages.jpr=judeoperski
+languages.vot=wotiacki
+languages.sit=chi\u0144sko-tybeta\u0144ski
+languages.ky=kirgiski
+languages.kw=kornijski
+languages.kv=komi
+languages.ku=kurdyjski
+languages.sio=sioua\u0144ski
+languages.ks=kaszmirski
+languages.kr=kanuri
+languages.awa=Awadhi
+languages.ko=korea\u0144ski
+languages.kn=kannada
+languages.km=khmerski
+languages.en_GB=brytyjski angielski
+languages.kl=grenlandzki
+languages.kk=kazachski
+languages.rom=romski
+languages.kj=kwanyama
+languages.sid=sidamo
+languages.ki=kikuju
+languages.kg=kongo
+languages.non=staronordyjski
+languages.ka=gruzi\u0144ski
+languages.mus=creek
+languages.roa=roma\u0144ski
+languages.nog=nogajski
+languages.mun=mundajski
+languages.mul=wiele j\u0119zyk\u00f3w
+languages.jv=jawajski
+languages.gil=gilberta\u0144ski
+languages.znd=zande
+languages.shn=shan
+languages.fon=fon
+languages.xal=ka\u0142mucki
+languages.aus=j\u0119zyki australijskie
+languages.kho=chota\u0144ski
+languages.ja=japo\u0144ski
+languages.khi=khoisan
+languages.pau=palau
+languages.chy=j\u0119zyk Czejen\u00f3w
+languages.tai=esto\u0144ski
+languages.iu=inuktitut
+languages.pap=papiamento
+languages.it=w\u0142oski
+languages.sgn=migowy
+languages.is=islandzki
+languages.kha=khasi
+languages.chr=czirokezki
+languages.pam=pampango
+languages.pal=pahlavi
+languages.chp=chipewyan
+languages.io=ido
+languages.cho=choctaw
+languages.chn=\u017cargon Chinook
+languages.chm=maryjski
+languages.tyv=tuwi\u0144ski
+languages.bnt=Bantu
+languages.pag=pangasino
+languages.ik=inupiak
+languages.chk=truk
+languages.ii=syczua\u0144ski
+languages.haw=hawajski
+languages.lam=lamba
+languages.ig=igbo
+languages.chg=czagatajski
+languages.sga=staroirlandzki
+languages.paa=papuaski
+languages.ie=interlingue
+languages.id=indonezyjski
+languages.lah=lahnda
+languages.day=dajak
+languages.chb=czibcza
+languages.ia=interlingua
+languages.lad=ladino
+languages.hz=herero
+languages.hai=haida
+languages.dar=dargwijski
+languages.hy=ormia\u0144ski
+languages.ath=atapaska\u0144ski
+languages.hu=w\u0119gierski
+languages.ht=haita\u0144ski
+languages.dak=dakota
+languages.hr=chorwacki
+languages.ho=hiri motu
+languages.hi=hindi
+languages.dyu=dyula
+languages.he=hebrajski
+languages.ast=asturyjski
+languages.kfo=koro
+languages.ha=hausa
+languages.wen=\u0142u\u017cycki
+languages.gv=manx
+languages.gu=gud\u017aaracki
+languages.sem=semicki
+languages.sel=selkupski
+languages.iro=irokeski
+languages.gn=guarani
+languages.gl=galicyjski
+languages.en_CA=kanadyjski angielski
+languages.arw=Arawak
+languages.gez=gyyz
+languages.art=j\u0119zyki sztuczne
+languages.gd=szkocki gaelicki
+languages.ira=ira\u0144ski
+languages.ga=irlandzki
+languages.arp=Arapaho
+languages.arn=arauka\u0144ski
+languages.fy=zachodniofryzjski
+languages.bla=siksika
+languages.gem=germa\u0144ski
+languages.ypk=jupik
+languages.arc=aramejski
languages.fr=francuski
-languages.zh=chi\u0144ski
-languages.ru=rosyjski
-languages.ro=rumu\u0144ski
+languages.fo=farerski
+languages.cel=celtycki
+languages.fj=fid\u017cijski
languages.fi=fi\u0144ski
-languages.ar=arabski
-languages.sv=szwedzki
-languages.pt=portugalski
-languages.pl=polski
-languages.sl=s\u0142owe\u0144ski
-languages.sk=s\u0142owacki
-languages.de=niemiecki
+languages.ff=fulani
+languages.tvl=tuvalu
+languages.ceb=Cebuano
+languages.fa=perski
+languages.zh_Hans=chi\u0144ski uproszczony
+languages.zh_Hant=chi\u0144ski tradycyjny
+languages.eu=baskijski
+languages.sco=szkocki
languages.et=esto\u0144ski
-languages.hu=w\u0119gierski
+languages.scn=sycylijski
languages.es=hiszpa\u0144ski
+languages.eo=esperanto
+languages.en=angielski
+languages.el=grecki
+languages.tut=j\u0119zyki a\u0142tajskie
+languages.niu=niue
+languages.tup=tupi
+languages.ee=ewe
+languages.tum=tumbuka
+languages.nl_BE=flamandzki (Belgia)
+languages.es_419=hiszpa\u0144ski (Ameryka \u0141aci\u0144ska)
+languages.mos=mossi
+languages.dz=dzongkha
+languages.kcg=tyap
+languages.nic=nigrokordofa\u0144ski
+languages.lus=lushai
+languages.fiu=ugrofi\u0144ski
+languages.dv=malediwski
+languages.nia=nias
+languages.moh=mohawk
+languages.luo=luo
+languages.lun=lunda
+languages.apa=j\u0119zyk Apacz\u00f3w
+languages.fil=filipino
+languages.lui=luiseno
+languages.hup=hupa
+languages.cch=Atsam
+languages.bin=Bini
+languages.de=niemiecki
+languages.lua=luba-lulua
+languages.bik=Bikol
+languages.was=washo
+languages.und=nieznany lub niepoprawny j\u0119zyk
+languages.war=waraj
languages.da=du\u0144ski
-languages.hr=chorwacki
+languages.dum=\u015bredniowieczny niderlandzki
+languages.wal=walamo
+languages.mno=manobo
+languages.wak=wakasz
+languages.sat=santali
+languages.cy=walijski
+languages.sas=sasak
+languages.kbd=kabardyjski
+languages.cv=czuwaski
+languages.cu=staro-cerkiewno-s\u0142owia\u0144ski
+languages.mni=manipuryjski
+languages.cs=czeski
+languages.sam=samaryta\u0144ski aramejski
+languages.cr=kri
+languages.sal=salisz
+languages.dua=duala
+languages.co=korsyka\u0144ski
+languages.sai=j\u0119zyk Indian po\u0142udniowoameryka\u0144skich
+languages.mnc=manchu
+languages.sah=jakucki
+languages.kaw=kawi
+languages.inh=inguski
+languages.gba=gbaya
+languages.sad=sandawe
+languages.ch=chamorro
+languages.ine=indoeuropejski
+languages.bho=Bhod\u017apuri
+languages.enm=\u015bredniowieczny angielski
+languages.kar=kare\u0144ski
+languages.inc=indoaryjski
+languages.ce=czecze\u0144ski
+languages.gay=gayo
+languages.ca=katalo\u0144ski
+languages.umb=umbundu
+languages.syr=syryjski
+languages.kam=kamba
+languages.anp=Angika
+languages.tsi=tsimshian
+languages.kaj=jju
+languages.ang=staroangielski
+languages.kac=kaczin
+languages.cau=kaukaski
+languages.kab=kabylski
+languages.kaa=karaka\u0142packi
+languages.bs=bo\u015bniacki
+languages.car=Karibi
+languages.br=breto\u0144ski
+languages.syc=syriacki
+languages.bo=tybeta\u0144ski
+languages.bn=bengalski
+languages.bm=Bambara
+languages.gaa=ga
+languages.cai=j\u0119zyk Indian \u015brodkowoameryka\u0144skich
+languages.bi=Bislama
+languages.bh=biharski
+languages.bg=bu\u0142garski
+languages.be=bia\u0142oruski
+languages.pt_BR=brazylyjski portugalski
+languages.cad=Kaddo
+languages.ba=baszkirski
+languages.zu=zulu
+languages.zen=zenaga
+languages.pro=staroprowansalski
+languages.hsb=g\u00f3rno\u0142u\u017cycki
+languages.az=azerski
+languages.ay=Ajmara
+languages.av=awarski
+languages.as=asamski
+languages.dsb=dolno\u0142u\u017cycki
+languages.ar=arabski
+languages.ilo=ilokano
+languages.elx=elamicki
+languages.zh=chi\u0144ski
+languages.an=arago\u0144ski
+languages.pra=prakryty
+languages.am=amharski
+languages.new=newarski
+languages.ak=Akan
+languages.za=czuang
+languages.en_US=angielski (USA)
+languages.af=Afrikaans
+languages.ae=awestyjski
+languages.alt=po\u0142udniowoa\u0142tajski
+languages.ab=abchaski
+languages.aa=Afar
+languages.yo=joruba
+languages.alg=angloki\u0144ski
+languages.ale=aleucki
+languages.mkh=Mon-Khmer
+languages.yi=jidysz
+languages.dra=drawidyjski
+languages.ber=berberski
+languages.nds=dolnosakso\u0144ski
+languages.bem=Bemba
+languages.bej=Bed\u017ca
+languages.tpi=tok pisin
+variants.POSIX=komputerowy
+variants.AREVMDA=ormia\u0144ski zachodni
+variants.1996=ortografia niemiecka z 1996 r.
+variants.SOLBA=dialekt Stolvizza/Solbica
+variants.NEDIS=dialekt Natisone
+variants.1994=standardowa ortografia regionu Resia
+variants.1901=tradycyjna ortografia niemiecka
+variants.FONUPA=fonetyczny
+variants.OSOJS=dialekt Oseacco/Osojane
+variants.1694ACAD=siedemnastowieczny francuski
+variants.LIPAW=dialekt Lipovaz w regionie Resia
+variants.REVISED=ortografia zrewidowana
+variants.NJIVA=dialekt Gniva/Njiva
+variants.TARASK=ortografia taraszkiewicka
+variants.FONIPA=fonetyczny mi\u0119dzynarodowy
+variants.BISKE=dialekt San Giorgio/Bila
+variants.SCOUSE=dialekt Scouse
+variants.BAKU1926=turecki zunifikowany alfabet \u0142aci\u0144ski
+variants.SAAHO=dialekt Saho
+variants.ROZAJ=dialekt regionu Resia
+variants.MONOTON=monotoniczny
+variants.POLYTON=politoniczny
+variants.AREVELA=ormia\u0144ski wchodni
+variants.SCOTLAND=standardowy szkocki angielski
+variants.VALENCIA=walencki
+variants.BOONT=dialekt Boontling
+variants.1606NICT=szesnastowieczny francuski
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ps.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ps.properties
index 3ddfebb..d990027 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ps.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ps.properties
@@ -5,27 +5,33 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currenciesDisplayName.AFA=\u0627\u0641\u063a\u0627\u0646\u06cd
-currenciesSymbol.AFA=\u0627\u0641\u063a\u0627\u0646\u06cd
-shortMonths=\u062c\u0646\u0648®\u0641\u0628\u0631®\u0645\u0627\u0631®\u0627\u067e\u0631®\u0645\u0640\u06cc®\u062c\u0648\u0646®\u062c\u0648\u0644®\u0627\u06ab\u0633®\u0633\u067e\u062a®\u0627\u06a9\u062a®\u0646\u0648\u0645®\u062f\u0633\u0645®®
-months=\u062c\u0646\u0648\u0631\u064a®\u0641\u0628\u0631\u0648\u0631\u064a®\u0645\u0627\u0631\u0686®\u0627\u067e\u0631\u06cc\u0644®\u0645\u06cc®\u062c\u0648\u0646®\u062c\u0648\u0644\u0627\u06cc®\u0627\u06ab\u0633\u062a®\u0633\u067e\u062a\u0645\u0628\u0631®\u0627\u06a9\u062a\u0648\u0628\u0631®\u0646\u0648\u0645\u0628\u0631®\u062f\u0633\u0645\u0628\u0631®®
-shortWeekdays=®\u06cc.®\u062f.®\u0633.®\u0686.®\u067e.®\u062c.®\u0634.®
-weekdays=®\u06cc\u06a9\u0634\u0646\u0628\u0647®\u062f\u0648\u0634\u0646\u0628\u0647®\u0633\u0647\u200c\u0634\u0646\u0628\u0647®\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647®\u067e\u0646\u062c\u0634\u0646\u0628\u0647®\u062c\u0645\u0639\u0647®\u0634\u0646\u0628\u0647®
-eras=\u0642.\u0645.®\u0645.®
-ampms=\u063a.\u0645.®\u063a.\u0648.®
+percent=\u066a
+exponential=\u00d7\u06f1\u06f0^
+minusSign=\u2212
+zeroDigit=\u06f0
+decimalSeparator=\u066b
+groupingSeparator=\u066c
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.AFN=\u0627\u0641\u063a\u0627\u0646\u06cd
+currenciesSymbol.AFN=\u060b
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae\u0645\u0640\u06cc\u00ae\u062c\u0648\u0646\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=\u062c\u0646\u0648\u0631\u064a\u00ae\u0641\u0628\u0631\u0648\u0631\u064a\u00ae\u0645\u0627\u0631\u0686\u00ae\u0627\u067e\u0631\u06cc\u0644\u00ae\u0645\u06cc\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u0627\u06cc\u00ae\u0627\u06ab\u0633\u062a\u00ae\u0633\u067e\u062a\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0645\u0628\u0631\u00ae\u062f\u0633\u0645\u0628\u0631\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae\u06cc\u06a9\u0634\u0646\u0628\u0647\u00ae\u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u0633\u0647\u200c\u0634\u0646\u0628\u0647\u00ae\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647\u00ae\u067e\u0646\u062c\u0634\u0646\u0628\u0647\u00ae\u062c\u0645\u0639\u0647\u00ae\u0634\u0646\u0628\u0647\u00ae
+eras=\u0642.\u0645.\u00ae\u0645.\u00ae
+ampms=\u063a.\u0645.\u00ae\u063a.\u0648.\u00ae
shortDateFormat=yyyy/M/d
-mediumDateFormat=d MMMM yyyy
+mediumDateFormat=d MMM yyyy
longDateFormat=\u062f yyyy \u062f MMMM d
fullDateFormat=EEEE \u062f yyyy \u062f MMMM d
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
longTimeFormat=H:mm:ss (z)
fullTimeFormat=H:mm:ss (z)
-zoneStrings=Asia/Kabul®AFT®\u062f \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 \u067e\u0647 \u0648\u062e\u062a®AFT®\u062f \u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 \u067e\u0647 \u0648\u062e\u062a®©
territories.SV=\u0633\u0627\u0644\u0648\u06d0\u0689\u0648\u0631
territories.PT=\u067e\u0648\u0631\u062a\u06ab\u0627\u0644
-territories.GN=\u06ab\u06cc\u0627\u0646\u0627
territories.JP=\u062c\u0627\u067e\u0627\u0646
+territories.GN=\u06ab\u06cc\u0627\u0646\u0627
territories.PS=\u0641\u0644\u0633\u0637\u06cc\u0646
territories.DK=\u0689\u0646\u0645\u0627\u0631\u06a9
territories.JM=\u062c\u0645\u06cc\u06a9\u0627
@@ -42,10 +48,10 @@ territories.YE=\u06cc\u0645\u0646
territories.SA=\u0633\u0639\u0648\u062f\u06cc \u0639\u0631\u0628\u0633\u062a\u0627\u0646
territories.CU=\u06a9\u06cc\u0648\u0628\u0627
territories.LY=\u0644\u06cc\u0628\u06cc\u0627
-territories.FR=\u0641\u0631\u0627\u0646\u0633\u0647
territories.IT=\u0627\u06cc\u067c\u0627\u0644\u06cc\u0647
-territories.CO=\u06a9\u0648\u0644\u0645\u0628\u06cc\u0627
+territories.FR=\u0641\u0631\u0627\u0646\u0633\u0647
territories.IS=\u0622\u06cc\u0633\u0644\u06cc\u0646\u0689
+territories.CO=\u06a9\u0648\u0644\u0645\u0628\u06cc\u0627
territories.CN=\u0686\u06cc\u0646
territories.UY=\u06cc\u0648\u0631\u0648\u06ab\u0648\u0627\u06cc
territories.RW=\u0631\u0648\u0646\u062f\u0627
@@ -62,14 +68,13 @@ territories.LA=\u0644\u0627\u0648\u0633
territories.NZ=\u0646\u06cc\u0648\u0632\u06cc\u0644\u0646\u0689
territories.ET=\u062d\u0628\u0634\u0647
territories.KW=\u06a9\u0648\u06cc\u067c
-territories.ES=\u0647\u0633\u067e\u0627\u0646\u06cc\u0647
territories.HU=\u0645\u062c\u0627\u0631\u0633\u062a\u0627\u0646
+territories.ES=\u0647\u0633\u067e\u0627\u0646\u06cc\u0647
territories.TZ=\u062a\u0646\u0632\u0627\u0646\u06cc\u0627
territories.HN=\u0647\u0627\u0646\u0689\u0648\u0631\u0627\u0633
territories.NP=\u0646\u06cc\u067e\u0627\u0644
territories.NO=\u0646\u0627\u0631\u0648\u06d0
territories.BG=\u0628\u0644\u063a\u0627\u0631\u06cc\u0647
-territories.HK=\u0647\u0627\u0646\u06a9\u0627\u0646\u06ab
territories.EG=\u0645\u0635\u0631
territories.NL=\u0647\u0627\u0644\u06d0\u0646\u0689
territories.BD=\u0628\u0646\u06ab\u0644\u0647\u200c\u062f\u06cc\u0634
@@ -86,35 +91,113 @@ territories.AO=\u0627\u0646\u06ab\u0648\u0644\u0627
territories.GR=\u06cc\u0648\u0646\u0627\u0646
territories.SY=\u0633\u0648\u0631\u06cc\u0647
territories.AL=\u0627\u0644\u0628\u0627\u0646\u06cc\u0647
-languages.tt=\u062a\u0627\u062a\u0627\u0631
-languages.ja=\u062c\u0627\u067e\u0627\u0646\u06cc
+languages.es=\u0647\u0633\u067e\u0627\u0646\u0648\u064a
+languages.ku=\u06a9\u0631\u062f\u064a
+languages.eo=\u0627\u0633\u067e\u0631\u0627\u0646\u062a\u0648
languages.en=\u0627\u0646\u06ab\u0644\u06cc\u0633\u064a
-languages.sa=\u0633\u0646\u0633\u06a9\u0631\u06cc\u067c
languages.el=\u06cc\u0648\u0646\u0627\u0646\u064a
-languages.hi=\u0647\u0646\u062f\u064a
-languages.tk=\u062a\u0631\u06a9\u0645\u0646\u064a
+languages.ko=\u06a9\u0648\u0631\u064a\u0627\u0626\u064a
+languages.kn=\u06a9\u0646\u0623\u0689\u0647
+languages.km=\u06a9\u0645\u0628\u0648\u0689\u064a\u0627\u064a\u06d0 \u064a\u0627 \u062f \u06a9\u0645\u0628\u0648\u0689\u064a\u0627
+languages.ka=\u062c\u0648\u0631\u062c\u064a\u0627\u0626\u064a
+languages.jv=\u062c\u0627\u0648\u0627\u064a\u06d0
+languages.fil=\u062a\u06ab\u0627\u0644\u0648\u06ab
+languages.pt=\u067e\u0648\u0631\u062a\u06ab\u0627\u0644\u064a
+languages.ps=\u067e\u069a\u062a\u0648
+languages.de=\u0627\u0644\u0645\u0627\u0646\u064a
+languages.pl=\u067e\u0648\u0644\u0646\u0689\u064a
+languages.da=\u0689\u06d0\u0646\u0634
+languages.tlh=\u06a9\u0644\u064a\u0646\u06ab\u0627\u0646\u064a
+languages.ja=\u062c\u0627\u067e\u0627\u0646\u06cc
+languages.vi=\u0648\u06d0\u062a\u0646\u0627\u0645\u064a
+languages.cy=\u0648\u064a\u0644\u0634\u064a
+languages.pa=\u067e\u0646\u062c\u0627\u0628\u064a
+languages.ine=\u0647\u0646\u062f \u0648 \u0627\u0631\u0648\u067e\u0627\u06cc\u064a
+languages.cs=\u0686\u06d0\u06a9
+languages.it=\u0627\u06cc\u067c\u0627\u0644\u0648\u064a
+languages.is=\u0623\u064a\u0633\u0644\u06d0\u0646\u0689\u064a
languages.uz=\u0627\u0632\u0628\u06a9\u064a
+languages.or=\u0627\u0648\u0631\u064a\u0627
+languages.ur=\u0627\u0631\u062f\u0648
+languages.ca=\u06a9\u067c\u0644\u0627\u0646\u064a
+languages.ie=\u0622\u0633\u0627 \u0646\u0627 \u062c\u0628\u0629
+languages.id=\u0627\u0646\u0689\u0648\u0646\u06d0\u0634\u064a\u0627\u064a\u064a
+languages.uk=\u0627\u0648\u06a9\u0631\u0627\u0646\u0627\u064a\u064a
+languages.ia=\u0627\u0646\u067c\u0631\u0644\u0646\u06ab\u0648\u0627
+languages.oc=\u0627\u0648\u06a9\u0633\u064a\u067c\u0627\u0646\u064a
+languages.ug=\u0627\u0648\u064a\u06af\u0648\u0631
+languages.hy=\u0627\u0631\u0645\u0646\u064a
+languages.bs=\u0628\u0648\u0633\u0646\u064a
+languages.br=\u0628\u0631\u06d0\u062a\u0648\u0646
+languages.hu=\u0647\u0646\u06ab\u0631\u064a
+languages.pt_PT=\u067e\u0631\u062a\u06ab\u0627\u0644\u064a (\u067e\u0631\u062a\u06ab\u0627\u0644)
+languages.bn=\u0628\u0646\u06ab\u0627\u0644\u064a
+languages.hr=\u06a9\u0631\u0648\u0648\u0627\u062a\u064a
+languages.tw=\u062a\u0648\u06cc
+languages.bh=\u0628\u064a\u0647\u0627\u0631\u064a
+languages.bg=\u0628\u0644\u063a\u0627\u0631\u064a
+languages.tt=\u062a\u0627\u062a\u0627\u0631
+languages.no=\u0646\u0627\u0631\u0648\u06d0\u0626\u06d0
+languages.be=\u0628\u06d0\u0644\u0627\u0631\u0648\u0633\u064a
+languages.nn=\u0646\u0627\u0631\u0648\u06d0\u0626\u064a (\u0646\u0627\u0626\u0646\u0648\u0631\u0633\u06a9)
+languages.hi=\u0647\u0646\u062f\u064a
+languages.tr=\u062a\u0631\u06a9\u064a
+languages.nl=\u0647\u0627\u0644\u06d0\u0646\u0689\u064a
+languages.zu=\u0632\u0648\u0644\u0648
languages.he=\u0639\u0628\u0631\u064a
-languages.it=\u0627\u06cc\u067c\u0627\u0644\u0648\u064a
+languages.tk=\u062a\u0631\u06a9\u0645\u0646\u064a
+languages.bal=\u0628\u0644\u0648\u0685\u064a
+languages.ne=\u0646\u06d0\u067e\u0627\u0644\u064a
+languages.az=\u0623\u0630\u0631\u0628\u0627\u0626\u062c\u0627\u0646\u064a
+languages.ti=\u062a\u064a\u06ab\u0631\u064a\u0646\u064a
+languages.th=\u062a\u0627\u064a\u0644\u06d0\u0646\u0689\u064a
languages.tg=\u062a\u0627\u062c\u06a9
-languages.fr=\u0641\u0631\u0627\u0646\u0633\u0648\u064a
+languages.te=\u062a\u06d0\u0644\u064a\u06ab\u0648
languages.zh=\u0686\u06cc\u0646\u064a
-languages.ru=\u0631\u0648\u0633\u064a
-languages.ine=\u0647\u0646\u062f \u0648 \u0627\u0631\u0648\u067e\u0627\u06cc\u064a
-languages.fi=\u0641\u06cc\u0646\u0644\u0646\u0689\u064a
+languages.as=\u0627\u0633\u0645\u0627\u0626\u0649 \u0698\u0628\u0647
languages.ar=\u0639\u0631\u0628\u064a
-languages.sv=\u0633\u0648\u06cc\u0689\u0646\u06cc
-languages.pt=\u067e\u0648\u0631\u062a\u06ab\u0627\u0644\u064a
+languages.ta=\u062a\u0627\u0645\u0644
+languages.gu=\u06ab\u062c\u0631\u0627\u062a\u064a
+languages.am=\u0627\u0645\u0647\u0627\u0631\u064a
+languages.mt=\u0645\u0627\u0644\u067c\u0627\u064a\u064a
languages.ms=\u0645\u0644\u0627\u06cc\u0627
-languages.fa=\u0641\u0627\u0631\u0633\u064a
-languages.ps=\u067e\u069a\u062a\u0648
-languages.la=\u0644\u0627\u062a\u06cc\u0646\u064a
+languages.gn=\u06ab\u0648\u0631\u0627\u0646\u064a
+languages.sw=\u0633\u0648\u0627\u0647\u06d0\u0644\u064a
+languages.mr=\u0645\u0631\u0627\u067c\u0647\u064a
+languages.sv=\u0633\u0648\u06cc\u0689\u0646\u06cc
+languages.gl=\u06ab\u0644\u06d0\u0634\u064a\u0627\u064a\u064a
+languages.su=\u0633\u0648\u0689\u0627\u0646\u064a
+languages.af=\u0627\u0641\u0631\u064a\u06a9\u0627\u0646\u064a
+languages.st=\u0633\u064a\u0633\u0648\u062a\u0648
languages.mn=\u0645\u063a\u0648\u0644\u064a
-languages.pl=\u067e\u0648\u0644\u0646\u0689\u064a
+languages.sr=\u0633\u0631\u0628\u064a\u0627\u0626\u064a
+languages.sq=\u0627\u0644\u0628\u0627\u0646\u064a
+languages.ml=\u0645\u0627\u0644\u0627\u064a\u0627\u0644\u0645
languages.mk=\u0645\u0642\u062f\u0648\u0646\u064a
-languages.hy=\u0627\u0631\u0645\u0646\u064a
-languages.de=\u0627\u0644\u0645\u0627\u0646\u064a
+languages.so=\u0633\u0648\u0645\u0627\u0644\u064a
+languages.gd=\u0633\u06a9\u0627\u067c\u0644\u06d0\u0646\u0689\u064a \u06ab\u06d0\u0644\u06a9
+languages.sl=\u0633\u0644\u0648\u0648\u0627\u0646\u064a
languages.mg=\u0645\u0644\u063a\u0627\u0633\u064a
+languages.sk=\u0633\u0644\u0648\u0648\u0627\u06a9\u064a
+languages.ga=\u0627\u0626\u064a\u0631\u0644\u06d0\u0646\u0689\u064a
+languages.si=\u0633\u064a\u0646\u0647\u0627\u0644\u064a
+languages.sh=\u0633\u0631\u0628-\u06a9\u0631\u0648\u0634\u064a\u0627\u064a\u064a
+languages.pt_BR=\u067e\u0631\u062a\u06af\u0627\u0644 (\u0628\u0631\u0627\u0632\u064a\u0644)
+languages.yi=\u064a\u062f\u064a\u0634
+languages.sd=\u0633\u0646\u062f\u0647\u064a
+languages.fy=\u0641\u0631\u064a\u0632\u064a
+languages.sa=\u0633\u0646\u0633\u06a9\u0631\u06cc\u067c
+languages.fr=\u0641\u0631\u0627\u0646\u0633\u0648\u064a
+languages.lv=\u0644\u06d0\u067c\u0648\u0627\u0646\u064a
+languages.lt=\u0644\u064a\u062a\u0648\u0627\u0646\u064a
+languages.fo=\u0641\u0627\u0631\u0648\u0626\u06d0
+languages.ru=\u0631\u0648\u0633\u064a
+languages.lo=\u0644\u0648\u064a\u062a\u064a\u0646
+languages.fi=\u0641\u06cc\u0646\u0644\u0646\u0689\u064a
+languages.ro=\u0631\u0648\u0645\u0627\u0646\u064a
+languages.fa=\u0641\u0627\u0631\u0633\u064a
+languages.la=\u0644\u0627\u062a\u06cc\u0646\u064a
+languages.xh=\u062e\u0648\u0633\u0627
+languages.eu=\u0628\u0627\u0633\u06a9\u064a
+languages.ky=\u06a9\u0631\u06ab\u064a\u0632
languages.et=\u062d\u0628\u0634\u064a
-languages.bal=\u0628\u0644\u0648\u0685\u064a
-languages.ku=\u06a9\u0631\u062f\u064a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt.properties
index 15ce646..3be18a4 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt.properties
@@ -5,270 +5,410 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
-currenciesDisplayName.YDD=Dinar iemenita
-currenciesDisplayName.TWD=D\u00f3lar Novo de Taiwan
-currenciesDisplayName.KES=Xelim queniano
-currenciesDisplayName.BYB=Rublo novo bielo-russo (1994-1999)
-currenciesDisplayName.LKR=Rupia de Sri Lanka
-currenciesDisplayName.RWF=Franco ruand\u00eas
-currenciesDisplayName.TJS=Somoni tadjique
-currenciesDisplayName.SDP=Libra sudanesa
-currenciesDisplayName.TJR=Rublo do Tadjiquist\u00e3o
-currenciesDisplayName.ERN=Nakfa da Eritr\u00e9ia
-currenciesDisplayName.AFN=Afegane
-currenciesDisplayName.GRD=Dracma grego
-currenciesDisplayName.IEP=Libra irlandesa
-currenciesDisplayName.ARS=Peso argentino
-currenciesDisplayName.SDD=Dinar sudan\u00eas
-currenciesDisplayName.ARP=Peso argentino (1983-1985)
-currenciesDisplayName.GEL=Lari georgiano
-currenciesDisplayName.AFA=Afegane (1927-2002)
-currenciesDisplayName.GEK=Cupom Lari georgiano
-currenciesDisplayName.CRC=Colon da Costa Rica
-currenciesDisplayName.FKP=Libra das Malvinas
-currenciesDisplayName.EEK=Coroa estoniana
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
+currenciesDisplayName.YDD=Dinares do I\u00eamen
+currenciesDisplayName.KES=Shillings quenianos
+currenciesDisplayName.TWD=D\u00f3lares de Taiwan
+currenciesDisplayName.LKR=R\u00fapias do Siri Lanka
+currenciesDisplayName.BYB=Novos rublos bielorussos
+currenciesDisplayName.TJS=Somonis do Tajaquist\u00e3o
+currenciesDisplayName.RWF=Francos de Ruanda
+currenciesDisplayName.ERN=Nakfas da Eritr\u00e9ia
+currenciesDisplayName.TJR=R\u00fapias do Tajaquist\u00e3o
+currenciesDisplayName.SDP=Libras antigas sudanesas
+currenciesDisplayName.GRD=Dracmas gregos
+currenciesDisplayName.AFN=Afghanis
+currenciesDisplayName.IEP=Libras irlandesas
+currenciesDisplayName.ARS=Pesos argentinos
+currenciesDisplayName.SDG=Libras sudanesas
+currenciesDisplayName.ARP=Pesos argentinos (ARP)
+currenciesDisplayName.SDD=Dinares antigos do Sud\u00e3o
+currenciesDisplayName.GEL=Laris da Ge\u00f3rgia
+currenciesDisplayName.GEK=Kupon larits da Ge\u00f3rgia
+currenciesDisplayName.AFA=Afghani (AFA)
+currenciesDisplayName.CRC=Colons costa-riquenhos
+currenciesDisplayName.FKP=Libras das Ilhas Malvinas
+currenciesDisplayName.EEK=Kroons estonianos
+currenciesDisplayName.MDL=Leus da Mold\u00e1via
currenciesDisplayName.HKD=D\u00f3lar de Hong Kong
-currenciesDisplayName.MDL=Leu de Mold\u00e1via
-currenciesDisplayName.ARA=Austral argentino
-currenciesDisplayName.IQD=Dinar iraquiano
-currenciesDisplayName.SCR=Rupia das Seychelles
-currenciesDisplayName.VUV=Vatu de Vanuatu
-currenciesDisplayName.DKK=Coroa dinamarquesa
-currenciesDisplayName.KPW=Won norte-coreano
-currenciesDisplayName.GQE=Ekwele de Guin\u00e9 Equatorial
-currenciesDisplayName.IDR=Rupia indon\u00e9sia
-currenciesDisplayName.LVR=Rublo let\u00e3o
-currenciesDisplayName.SOS=Xelim somali
-currenciesDisplayName.AED=Dir\u00e9m dos Emirados \u00c1rabes Unidos
-currenciesDisplayName.BWP=Pula botsuanesa
-currenciesDisplayName.LVL=Lats let\u00e3o
-currenciesDisplayName.RUR=Rublo russo (1991-1998)
-currenciesDisplayName.NIO=C\u00f3rdoba Ouro nicaraguano
-currenciesDisplayName.ADP=Peseta de Andorra
-currenciesDisplayName.FJD=D\u00f3lar de Fiji
-currenciesDisplayName.MOP=Pataca macaense
-currenciesDisplayName.RUB=Rublo russo
-currenciesDisplayName.CDF=Franco congol\u00eas
-currenciesDisplayName.NIC=C\u00f3rdoba nicaraguano
-currenciesDisplayName.DJF=Franco do Djibuti
-currenciesDisplayName.ECV=Unidad de Valor Constante (UVC) do Equador
-currenciesDisplayName.SBD=D\u00f3lar das Ilhas Salom\u00e3o
-currenciesDisplayName.UZS=Sum do Usbequist\u00e3o
-currenciesDisplayName.ECS=Sucre equatoriano
-currenciesDisplayName.PHP=Peso filipino
-currenciesDisplayName.THB=Baht tailand\u00eas
-currenciesDisplayName.LUF=Franco luxemburgu\u00eas
-currenciesDisplayName.FIM=Marca finlandesa
-currenciesDisplayName.TTD=D\u00f3lar de Trinidad e Tobago
-currenciesDisplayName.SZL=Lilangeni da Suazil\u00e2ndia
-currenciesDisplayName.MNT=Tugrik mongol
-currenciesDisplayName.SAR=Rial saudita
-currenciesDisplayName.UAK=Karbovanetz ucraniano
-currenciesDisplayName.UAH=Hryvnia ucraniano
-currenciesDisplayName.HUF=Forinte h\u00fangaro
-currenciesDisplayName.COP=Peso colombiano
-currenciesDisplayName.QAR=Rial catariano
-currenciesDisplayName.LTT=Talonas lituano
-currenciesDisplayName.PTE=Escudo portugu\u00eas
-currenciesDisplayName.AOR=Cuanza angolano reajustado (1995-1999)
-currenciesDisplayName.UYU=Peso uruguaio
-currenciesDisplayName.GBP=Libra esterlina brit\u00e2nica
-currenciesDisplayName.BIF=Franco do Burundi
-currenciesDisplayName.INR=Rupia indiana
-currenciesDisplayName.ZRZ=Zaire zairense
-currenciesDisplayName.AON=Cuanza novo angolano (1990-2000)
-currenciesDisplayName.LTL=Lita lituano
-currenciesDisplayName.XFU=Franco UIC franc\u00eas
-currenciesDisplayName.KZT=Tenge do Cazaquist\u00e3o
-currenciesDisplayName.MZM=Metical de Mo\u00e7ambique
-currenciesDisplayName.UYP=Peso uruguaio (1975-1993)
-currenciesDisplayName.AOK=Cuanza angolano (1977-1990)
-currenciesDisplayName.BUK=Kyat birman\u00eas
-currenciesDisplayName.GNS=Syli de Guin\u00e9
-currenciesDisplayName.XFO=Franco-ouro franc\u00eas
-currenciesDisplayName.PGK=Kina da Papua-Nova Guin\u00e9
-currenciesDisplayName.SYP=Libra s\u00edria
-currenciesDisplayName.MZE=Escudo de Mo\u00e7ambique
-currenciesDisplayName.OMR=Rial de Om\u00e3
-currenciesDisplayName.NGN=Naira nigeriana
-currenciesDisplayName.ZRN=Zaire Novo zairense
-currenciesDisplayName.AOA=Cuanza angolano
-currenciesDisplayName.CNY=Yuan Renminbi chin\u00eas
-currenciesDisplayName.MAF=Franco marroquino
-currenciesDisplayName.GNF=Franco de Guin\u00e9
-currenciesDisplayName.HTG=Gurde do Haiti
-currenciesDisplayName.MAD=Dir\u00e9m marroquino
-currenciesDisplayName.MMK=Kyat de Mianmar
-currenciesDisplayName.MYR=Ringgit malaio
-currenciesDisplayName.LSL=Loti de Lesoto
-currenciesDisplayName.XEU=Unidade Monet\u00e1ria Europ\u00e9ia
-currenciesDisplayName.BHD=Dinar bareinita
-currenciesDisplayName.SLL=Leone de Serra Leoa
-currenciesDisplayName.BTN=Ngultrum do But\u00e3o
-currenciesDisplayName.TRL=Lira turca
-currenciesDisplayName.KMF=Franco de Comores
-currenciesDisplayName.ANG=Guilder das Antilhas Holandesas
-currenciesDisplayName.CZK=Coroa da Rep\u00fablica Checa
-currenciesDisplayName.AZM=Manat azerbaijano
-currenciesDisplayName.KYD=D\u00f3lar das Ilhas Caim\u00e3o
-currenciesDisplayName.GMD=Dalasi de G\u00e2mbia
-currenciesDisplayName.BGN=Lev novo b\u00falgaro
-currenciesDisplayName.CAD=D\u00f3lar canadense
-currenciesDisplayName.MXV=Unidad de Inversion (UDI) mexicana
-currenciesDisplayName.BGL=Lev forte b\u00falgaro
-currenciesDisplayName.VEB=Bol\u00edvar venezuelano
-currenciesDisplayName.MLF=Franco de Mali
-currenciesDisplayName.ILS=Sheqel Novo israelita
-currenciesDisplayName.MXP=Peso Plata mexicano (1861-1992)
-currenciesDisplayName.PES=Sol peruano
-currenciesDisplayName.GYD=D\u00f3lar da Guiana
-currenciesDisplayName.MXN=Peso mexicano
-currenciesDisplayName.ILP=Libra israelita
-currenciesDisplayName.SKK=Coroa eslovaca
-currenciesDisplayName.CYP=Libra de Chipre
-currenciesDisplayName.XDR=Direitos Especiais de Giro
-currenciesDisplayName.PEN=Sol Novo peruano
-currenciesDisplayName.LRD=D\u00f3lar liberiano
-currenciesDisplayName.PEI=Inti peruano
-currenciesDisplayName.AMD=Dram Arm\u00e9nio
-currenciesDisplayName.BSD=D\u00f3lar das Bahamas
-currenciesDisplayName.HRK=Kuna croata
-currenciesDisplayName.CLP=Peso chileno
-currenciesDisplayName.HRD=Dinar croata
-currenciesDisplayName.XPF=Franco CFP
-currenciesDisplayName.FRF=Franco franc\u00eas
-currenciesDisplayName.BRR=Cruzeiro brasileiro
-currenciesDisplayName.MKD=Dinar maced\u00f4nio
-currenciesDisplayName.CLF=Unidades de Fomento chilenas
-currenciesDisplayName.ALL=Lek Alban\u00eas
-currenciesDisplayName.BRN=Cruzado novo brasileiro
-currenciesDisplayName.MWK=Cuacha do Mal\u00e1ui
-currenciesDisplayName.BRL=Real brasileiro
-currenciesDisplayName.TPE=Escudo timorense
-currenciesDisplayName.BRE=Cruzeiro brasileiro (1990-1993)
-currenciesDisplayName.BRC=Cruzado brasileiro
-currenciesDisplayName.BRB=Cruzeiro novo brasileiro(1967-1986)
-currenciesDisplayName.DEM=Marco alem\u00e3o
-currenciesDisplayName.KWD=Dinar coveitiano
-currenciesDisplayName.XCD=D\u00f3lar do Caribe Oriental
-currenciesDisplayName.NPR=Rupia nepalesa
-currenciesDisplayName.GWP=Peso da Guin\u00e9-Bissau
-currenciesDisplayName.YUN=Dinar convers\u00edvel iugoslavo
-currenciesDisplayName.SVC=Colom salvadorenho
-currenciesDisplayName.YUM=Super Dinar iugoslavo
-currenciesDisplayName.BEL=Franco belga (financeiro)
-currenciesDisplayName.SIT=Tolar Bons esloveno
-currenciesDisplayName.JPY=Iene japon\u00eas
-currenciesDisplayName.XOF=Franco CFA BCEAO
-currenciesDisplayName.MVR=Rupias das Ilhas Maldivas
-currenciesDisplayName.GWE=Escudo da Guin\u00e9 Portuguesa
-currenciesDisplayName.BEF=Franco belga
-currenciesDisplayName.TOP=Pa\u02bbanga de Tonga
-currenciesDisplayName.YUD=Dinar forte iugoslavo
-currenciesDisplayName.BEC=Franco belga (convers\u00edvel)
-currenciesDisplayName.SUR=Rublo sovi\u00e9tico
-currenciesDisplayName.ROL=Leu romeno
-currenciesDisplayName.DDM=Ostmark da Alemanha Oriental
-currenciesDisplayName.BDT=Taka de Bangladesh
-currenciesDisplayName.XBD=Unidade de Conta Europ\u00e9ia (XBD)
-currenciesDisplayName.AWG=Guilder de Aruba
-currenciesDisplayName.XBC=Unidade de Conta Europ\u00e9ia (XBC)
-currenciesDisplayName.XBB=Unidade Monet\u00e1ria Europ\u00e9ia
-currenciesDisplayName.XBA=Unidade Composta Europ\u00e9ia
-currenciesDisplayName.NOK=Coroa norueguesa
-currenciesDisplayName.MUR=Rupia de Maur\u00edcio
-currenciesDisplayName.ZAR=Rand sul-africano
-currenciesDisplayName.SHP=Libra de Santa Helena
+currenciesDisplayName.IQD=Dinares iraquianos
+currenciesDisplayName.ARA=Austrais argentinos
+currenciesDisplayName.SCR=R\u00fapias das Ilhas Seychelles
+currenciesDisplayName.VUV=Vatus de Vanuatu
+currenciesDisplayName.KPW=Wons norte coreano
+currenciesDisplayName.DKK=Krones dinamarqueses
+currenciesDisplayName.IDR=R\u00fapias da Indon\u00e9sia
+currenciesDisplayName.GQE=Ekweles da Guin\u00e9a Equatorial
+currenciesDisplayName.SOS=Shillings da Som\u00e1lia
+currenciesDisplayName.LVR=Rublos da Let\u00f4nia
+currenciesDisplayName.EQE=Ekweles
+currenciesDisplayName.AED=Dirhans de UAE
+currenciesDisplayName.LVL=Latses da Let\u00f4nia
+currenciesDisplayName.BWP=Pulas de Botsuana
+currenciesDisplayName.RUR=R\u00fapias russas (RUR)
+currenciesDisplayName.NIO=C\u00f3rdobas de ouro da Nicar\u00e1gua
+currenciesDisplayName.XTS=C\u00f3digo de moeda de teste
+currenciesDisplayName.MOP=Patacas de Macau
+currenciesDisplayName.FJD=D\u00f3lares de Fiji
+currenciesDisplayName.ADP=Pesetas de Andorra
+currenciesDisplayName.RUB=R\u00fapias russas
+currenciesDisplayName.CDF=Francos congoleses
+currenciesDisplayName.NIC=C\u00f3rdobas da Nicar\u00e1gua
+currenciesDisplayName.DJF=Francos de Djibouti
+currenciesDisplayName.UZS=Sums do Uzbequist\u00e3o
+currenciesDisplayName.SBD=D\u00f3lares das Ilhas Salom\u00e3o
+currenciesDisplayName.ECV=Unidades de valor constante equatoriana (UVC)
+currenciesDisplayName.LUL=Francos financeiros de Luxemburgo
+currenciesDisplayName.ECS=Sucres equatorianos
+currenciesDisplayName.THB=Bahts da Tail\u00e2ndia
+currenciesDisplayName.PHP=Pesos filipinos
+currenciesDisplayName.LUF=Francos de Luxemburgo
+currenciesDisplayName.RHD=D\u00f3lares da Rod\u00e9sia
+currenciesDisplayName.LUC=Francos convers\u00edveis de Luxemburgo
+currenciesDisplayName.FIM=Markkas finlandesas
+currenciesDisplayName.TTD=D\u00f3lares de Trinidad e Tobago
+currenciesDisplayName.SZL=Lilangenis da Suazil\u00e2ndia
+currenciesDisplayName.MNT=Tugriks da Mong\u00f3lia
+currenciesDisplayName.UAK=Karbovanetzs da Ucr\u00e2nia
+currenciesDisplayName.SAR=Riyales sauditas
+currenciesDisplayName.COU=Unidades de valor real
+currenciesDisplayName.UAH=Hryvnias da Ucr\u00e2nia
+currenciesDisplayName.HUF=Forints h\u00fangaros
+currenciesDisplayName.QAR=Riales do Quatar
+currenciesDisplayName.COP=Pesos colombianos
+currenciesDisplayName.LTT=Talonases lituanas
+currenciesDisplayName.PTE=Escudos portugueses
+currenciesDisplayName.UYU=Pesos uruguaios
+currenciesDisplayName.AOR=Kwanzas angolanos reajustados (AOR)
+currenciesDisplayName.GBP=Libras esterlinas brit\u00e2nicas
+currenciesDisplayName.ZRZ=Zaires do Zaire
+currenciesDisplayName.INR=R\u00fapias ind\u00fas
+currenciesDisplayName.BIF=Francos do Burundi
+currenciesDisplayName.XFU=Francos UIC franceses
+currenciesDisplayName.MZN=Meticales de Mo\u00e7ambique
+currenciesDisplayName.LTL=Litas lituanas
+currenciesDisplayName.AON=Novos kwanzas angolanos (AOK)
+currenciesDisplayName.UYP=Pesos uruguaios (UYP)
+currenciesDisplayName.MZM=Meticales antigos de Mo\u00e7ambique
+currenciesDisplayName.KZT=Tengue do Casaquist\u00e3o
+currenciesDisplayName.AOK=Kwanzas angolanos (AOK)
+currenciesDisplayName.GNS=Sylis da Guin\u00e9a
+currenciesDisplayName.BUK=Kyats burmeses
+currenciesDisplayName.XFO=Francos de ouro franceses
+currenciesDisplayName.PGK=Kinas de Papua Nova Guin\u00e9
+currenciesDisplayName.UYI=Pesos uruguaios em unidades indexadas
+currenciesDisplayName.SYP=Libras s\u00edrias
+currenciesDisplayName.OMR=Riales de Om\u00e3
+currenciesDisplayName.MZE=Escudos de Mo\u00e7ambique
+currenciesDisplayName.ZRN=Novos zaires do Zaire
+currenciesDisplayName.NGN=Nairas da Nig\u00e9ria
+currenciesDisplayName.CNY=Yuans chineses
+currenciesDisplayName.AOA=Kwanzas angolanos
+currenciesDisplayName.MAF=Francos marroquinos
+currenciesDisplayName.RSD=Dinares s\u00e9rvios
+currenciesDisplayName.GNF=Francos da Guin\u00e9a
+currenciesDisplayName.MAD=Dirhams marroquinos
+currenciesDisplayName.HTG=Gourdes haitianos
+currenciesDisplayName.TRY=Liras turcas
+currenciesDisplayName.MMK=Kyats de Mianmar
+currenciesDisplayName.XRE=Fundos RINET
+currenciesDisplayName.MYR=Ringgits da Mal\u00e1sia
+currenciesDisplayName.LSM=Malotis
+currenciesDisplayName.XEU=Unidades de moedas europ\u00e9ias
+currenciesDisplayName.LSL=Lotis do Lesoto
+currenciesDisplayName.SLL=Leones de Serra Leoa
+currenciesDisplayName.BHD=Dinares do Bahraini
+currenciesDisplayName.BTN=Ngultruns do But\u00e3o
+currenciesDisplayName.TRL=Liras turcas antigas
+currenciesDisplayName.KMF=Francos de Comoro
+currenciesDisplayName.CZK=Coronas da Rep\u00fablica Tcheca
+currenciesDisplayName.ANG=Florins das Antilhas Holandesas
+currenciesDisplayName.AZN=Manats do Azeibaij\u00e3o
+currenciesDisplayName.AZM=Manats do Azeibaij\u00e3o (AZM)
+currenciesDisplayName.KYD=D\u00f3lares das Ilhas Caiman
+currenciesDisplayName.GMD=Dalasis da G\u00e2mbia
+currenciesDisplayName.VEF=Bol\u00edvares fortes da Venezuela
+currenciesDisplayName.BGN=Novos levs da Bulg\u00e1ria
+currenciesDisplayName.MXV=Unidades de investimento mexicanas (UDI)
+currenciesDisplayName.CAD=D\u00f3lares canadenses
+currenciesDisplayName.BGL=Levs pesados da Bulg\u00e1ria
+currenciesDisplayName.VEB=Bol\u00edvares venezuelano
+currenciesDisplayName.MLF=Francos de Mali
+currenciesDisplayName.MXP=Pesos de prata mexicanos (MXP)
+currenciesDisplayName.ILS=Sheqels novos israelis
+currenciesDisplayName.PES=Soles peruanos
+currenciesDisplayName.MXN=Pesos mexicanos
+currenciesDisplayName.GYD=D\u00f3lares da Guiana
+currenciesDisplayName.ILP=Libras israelis
+currenciesDisplayName.CYP=Libras do Chipre
+currenciesDisplayName.SKK=Corunas eslovacas
+currenciesDisplayName.XDR=direitos de desenho especiais
+currenciesDisplayName.PEN=Novos soles peruanos
+currenciesDisplayName.LRD=D\u00f3lares da Lib\u00e9ria
+currenciesDisplayName.PEI=Intis peruanos
+currenciesDisplayName.AMD=Dram arm\u00eanio
+currenciesDisplayName.BSD=D\u00f3lares de Bahamian
+currenciesDisplayName.XPT=Platina
+currenciesDisplayName.HRK=Kunas croatas
+currenciesDisplayName.CLP=Pesos chilenos
+currenciesDisplayName.HRD=Dinares croata
+currenciesDisplayName.XPF=Francos CFP
+currenciesDisplayName.FRF=Francos franceses
+currenciesDisplayName.XPD=Pal\u00e1dio
+currenciesDisplayName.BRR=Cruzeiros brasileiros
+currenciesDisplayName.MKD=Denares da Maced\u00f4nia
+currenciesDisplayName.CLF=Unidades de fomento chilenas
+currenciesDisplayName.ALL=Leks albaneses
+currenciesDisplayName.BRN=Cruzados novos brasileiros
+currenciesDisplayName.MWK=Kwachas do Malawi
+currenciesDisplayName.BRL=Reais brasileiros
+currenciesDisplayName.TPE=Escudos do Timor
+currenciesDisplayName.BRE=Cruzeiros brasileiros (BRE)
+currenciesDisplayName.BRC=Cruzados brasileiros
+currenciesDisplayName.BRB=Cruzeiro novo brasileiro (BRB)
+currenciesDisplayName.DEM=Marcos alem\u00e3es
+currenciesDisplayName.KWD=Dinares kuaitianos
+currenciesDisplayName.XCD=D\u00f3lares do Caribe Oriental
+currenciesDisplayName.NPR=R\u00fapias nepalesas
+currenciesDisplayName.GWP=Pesos de Guin\u00e9-Bissau
+currenciesDisplayName.YUN=Dinares convers\u00edveis da Iugosl\u00e1via
+currenciesDisplayName.SVC=Colons de El Salvador
+currenciesDisplayName.YUM=Dinares noviy da Iugosl\u00e1via
+currenciesDisplayName.BEL=Francos belgas (financeiro)
+currenciesDisplayName.SIT=Tolares da Eslov\u00eania
+currenciesDisplayName.JPY=Ienes japoneses
+currenciesDisplayName.XOF=Francos CFA de BCEAO
+currenciesDisplayName.MVR=Rufiyaas das Ilhas Maldivas
+currenciesDisplayName.BEF=Francos belgas
+currenciesDisplayName.GWE=Escudos da Guin\u00e9a Portuguesa
+currenciesDisplayName.TOP=Pa\u02bbangas de Tonga
+currenciesDisplayName.YUD=Dinares pesados da Iugosl\u00e1via
+currenciesDisplayName.BEC=Francos belgas (convers\u00edvel)
+currenciesDisplayName.SUR=R\u00fapias sovi\u00e9ticas
+currenciesDisplayName.RON=Lei da Rom\u00eania
+currenciesDisplayName.ROL=Leus antigos da Rom\u00eania
+currenciesDisplayName.BDT=Takas de Bangladesh
+currenciesDisplayName.DDM=Ostmarks da Alemannha Oriental
+currenciesDisplayName.XBD=Unidades europ\u00e9ias de conta (XBD)
+currenciesDisplayName.AWG=Florins de Aruba
+currenciesDisplayName.XBC=Unidades europ\u00e9ias de conta (XBC)
+currenciesDisplayName.XBB=Unidades monet\u00e1rias europ\u00e9ias
+currenciesDisplayName.XBA=Unidades de composi\u00e7\u00e3o europ\u00e9ias
+currenciesDisplayName.NOK=Crones noruegueses
+currenciesDisplayName.MUR=R\u00fapias das Ilhas Maur\u00edcio
+currenciesDisplayName.ZAR=Rands da \u00c1frica do Sul
+currenciesDisplayName.SHP=Libras de Santa Helena
currenciesDisplayName.XAU=Ouro
-currenciesDisplayName.ZAL=Rand sul-africano (financeiro)
-currenciesDisplayName.VND=Dong vietnamita
-currenciesDisplayName.TZS=Xelim de Tanz\u00e2nia
-currenciesDisplayName.GIP=Libra de Gibraltar
-currenciesDisplayName.TND=Dinar tunisiano
-currenciesDisplayName.CVE=Escudo cabo-verdiano
-currenciesDisplayName.UGX=Xelim ugandense
-currenciesDisplayName.ZMK=Cuacha zambiano
-currenciesDisplayName.JOD=Dinar jordaniano
-currenciesDisplayName.XAF=Franco CFA BEAC
-currenciesDisplayName.LBP=Libra libanesa
-currenciesDisplayName.UGS=Xelim ugandense (1966-1987)
-currenciesDisplayName.STD=Dobra de S\u00e3o Tom\u00e9 e Pr\u00edncipe
-currenciesDisplayName.WST=Tala de Samoa Ocidental
-currenciesDisplayName.KHR=Riel cambojano
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Peso dominicano
-currenciesDisplayName.BOV=Mvdol boliviano
-currenciesDisplayName.MTP=Libra maltesa
-currenciesDisplayName.USS=D\u00f3lar norte-americano (Mesmo dia)
-currenciesDisplayName.BOP=Peso boliviano
-currenciesDisplayName.MTL=Lira maltesa
-currenciesDisplayName.CUP=Peso cubano
-currenciesDisplayName.TMM=Manat do Turcomenist\u00e3o
-currenciesDisplayName.USN=D\u00f3lar norte-americano (Dia seguinte)
-currenciesDisplayName.SGD=D\u00f3lar de Cingapura
-currenciesDisplayName.NZD=D\u00f3lar da Nova Zel\u00e2ndia
-currenciesDisplayName.USD=D\u00f3lar norte-americano
-currenciesDisplayName.HNL=Lempira de Honduras
-currenciesDisplayName.BOB=Boliviano
-currenciesDisplayName.ITL=Lira italiana
-currenciesDisplayName.PAB=Balboa panamenho
-currenciesDisplayName.GTQ=Quet\u00e7al da Guatemala
-currenciesDisplayName.LAK=Kip de Laos
-currenciesDisplayName.GHC=Cedi de Gana
-currenciesDisplayName.AUD=D\u00f3lar australiano
-currenciesDisplayName.NAD=D\u00f3lar da Nam\u00edbia
-currenciesDisplayName.KGS=Som de Quirguist\u00e3o
-currenciesDisplayName.MGF=Franco de Madagascar
-currenciesDisplayName.CHF=Franco su\u00ed\u00e7o
-currenciesDisplayName.BBD=D\u00f3lar de Barbados
-currenciesDisplayName.MGA=Ariary de Madagascar
-currenciesDisplayName.PYG=Guarani paraguaio
-currenciesDisplayName.PLZ=Zloti polon\u00eas (1950-1995)
-currenciesDisplayName.YER=Rial iemenita
-currenciesDisplayName.ATS=Xelim austr\u00edaco
-currenciesDisplayName.ETB=Birr et\u00edope
-currenciesDisplayName.BND=D\u00f3lar do Brunei
-currenciesDisplayName.JMD=D\u00f3lar jamaicano
-currenciesDisplayName.EGP=Libra eg\u00edpcia
-currenciesDisplayName.PLN=Zloti polon\u00eas
-currenciesDisplayName.DZD=Dinar argelino
-currenciesDisplayName.ISK=Coroa islandesa
-currenciesDisplayName.SRG=Guilder do Suriname
-currenciesDisplayName.LYD=Dinar l\u00edbio
-currenciesDisplayName.BZD=D\u00f3lar do Belize
-currenciesDisplayName.BAM=Marco b\u00f3snio-herzeg\u00f3vino convers\u00edvel
-currenciesDisplayName.ESP=Peseta espanhola
-currenciesDisplayName.KRW=Won sul-coreano
-currenciesDisplayName.NLG=Guilder holand\u00eas
-currenciesDisplayName.MRO=Ouguiya da Maurit\u00e2nia
-currenciesDisplayName.BAD=Dinar da B\u00f3snia-Herzeg\u00f3vina
-currenciesDisplayName.ZWD=D\u00f3lar do Zimb\u00e1bwe
-currenciesDisplayName.SEK=Coroa sueca
-currenciesDisplayName.CSK=Coroa Forte checoslovaca
-currenciesDisplayName.BYR=Rublo bielo-russo
-currenciesDisplayName.IRR=Rial iraniano
-currenciesDisplayName.PKR=Rupia paquistanesa
-currenciesDisplayName.BMD=D\u00f3lar das Bermudas
-currenciesSymbol.XPF=CFPF
+currenciesDisplayName.ZAL=Rands da \u00c1frica do Sul (financeiro)
+currenciesDisplayName.VND=Dongs vietnameses
+currenciesDisplayName.TZS=Shillings da Tanz\u00e2nia
+currenciesDisplayName.GIP=Libras de Gibraltar
+currenciesDisplayName.TND=Dinares da Tun\u00edsia
+currenciesDisplayName.CVE=Escudos de Cabo Verde
+currenciesDisplayName.UGX=Shillings de Uganda
+currenciesDisplayName.XAG=Prata
+currenciesDisplayName.ZMK=Kwachas da Z\u00e2mbia
+currenciesDisplayName.JOD=Dinares jordanianos
+currenciesDisplayName.XAF=Francos CFA de BEAC
+currenciesDisplayName.LBP=Libras libanesas
+currenciesDisplayName.UGS=Shillings de Uganda (UGS)
+currenciesDisplayName.STD=Dobras de San Tom\u00e9 e Pr\u00edncipe
+currenciesDisplayName.WST=Talas da Samoa Ocidental
+currenciesDisplayName.KHR=Rieles cambojanos
+currenciesDisplayName.DOP=Pesos dominicanos
+currenciesDisplayName.EUR=Euros
+currenciesDisplayName.BOV=Mvdols bolivianos
+currenciesDisplayName.MTP=Libras maltesas
+currenciesDisplayName.USS=D\u00f3lares americanos (mesmo dia)
+currenciesDisplayName.BOP=Pesos bolivianos
+currenciesDisplayName.CUP=Pesos cubanos
+currenciesDisplayName.MTL=Liras maltesas
+currenciesDisplayName.TMM=Manats do Turcomenist\u00e3o
+currenciesDisplayName.USN=D\u00f3lares americanos (dia seguinte)
+currenciesDisplayName.GHS=Cedis de Gana
+currenciesDisplayName.SGD=D\u00f3lares de Singapura
+currenciesDisplayName.NZD=D\u00f3lares da Nova Zel\u00e2ndia
+currenciesDisplayName.USD=D\u00f3lares americanos
+currenciesDisplayName.BOB=Bolivianos
+currenciesDisplayName.HNL=Lempiras de Honduras
+currenciesDisplayName.CHW=Francos WIR
+currenciesDisplayName.ITL=Liras italianas
+currenciesDisplayName.PAB=Balboas do Panam\u00e1
+currenciesDisplayName.GTQ=Quetzales da Guatemala
+currenciesDisplayName.XXX=moeda desconhecida ou inv\u00e1lida
+currenciesDisplayName.AUD=D\u00f3lares australianos
+currenciesDisplayName.GHC=Cedis de Gana (GHC)
+currenciesDisplayName.LAK=Kips do Laos
+currenciesDisplayName.NAD=D\u00f3lares da Nam\u00edbia
+currenciesDisplayName.KGS=Soms do Quirguist\u00e3o
+currenciesDisplayName.MGF=Francos de Madagascar
+currenciesDisplayName.BBD=D\u00f3lares de Barbados
+currenciesDisplayName.CHF=Francos su\u00ed\u00e7os
+currenciesDisplayName.CHE=Euros WIR
+currenciesDisplayName.MGA=Ariaries de Madagascar
+currenciesDisplayName.PYG=Guaranis paraguaios
+currenciesDisplayName.PLZ=Zlotis poloneses (PLZ)
+currenciesDisplayName.YER=Riales do I\u00eamen
+currenciesDisplayName.ATS=Schillings australianos
+currenciesDisplayName.ETB=Birrs et\u00edopes
+currenciesDisplayName.BND=D\u00f3lares de Brunei
+currenciesDisplayName.EGP=Libras eg\u00edpcias
+currenciesDisplayName.JMD=D\u00f3lares jamaicanos
+currenciesDisplayName.PLN=Zlotis poloneses
+currenciesDisplayName.DZD=Dinares algerianos
+currenciesDisplayName.ISK=Kronas islandesas
+currenciesDisplayName.SRG=Florins do Suriname
+currenciesDisplayName.LYD=Dinares l\u00edbios
+currenciesDisplayName.SRD=D\u00f3lares do Suriname
+currenciesDisplayName.BAM=Marcas convers\u00edveis da B\u00f3snia Herzegovina
+currenciesDisplayName.BZD=D\u00f3lares de Belize
+currenciesDisplayName.ESP=Pesetas espanholas
+currenciesDisplayName.KRW=Won sul coreano
+currenciesDisplayName.NLG=Florins holandeses
+currenciesDisplayName.MRO=Ouguiyas da Maurit\u00e2nia
+currenciesDisplayName.BAD=Dinares da B\u00f3snia Herzegovina
+currenciesDisplayName.ZWD=D\u00f3lares do Zimb\u00e1bue
+currenciesDisplayName.SEK=Cronas su\u00e9cas
+currenciesDisplayName.CSK=Coronas tchecas
+currenciesDisplayName.BYR=Rublos bielorussos
+currenciesDisplayName.ESB=Pesetas espanholas (conta convers\u00edvel)
+currenciesDisplayName.IRR=Riales iranianos
+currenciesDisplayName.ESA=Pesetas espanholas (conta A)
+currenciesDisplayName.PKR=R\u00fapias paquistanesas
+currenciesDisplayName.BMD=D\u00f3lares das Bermudas
+currenciesDisplayName.CSD=Dinares antigos da S\u00e9rvia
+currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=lev
+currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
+currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
+currenciesSymbol.MWK=MK
+currenciesSymbol.BMD=Ber$
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
+currenciesSymbol.AMD=dram
+currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
+currenciesSymbol.NPR=Nrs
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.KWD=KD
+currenciesSymbol.GEL=lari
+currenciesSymbol.AFN=Af
+currenciesSymbol.ZAR=R
+currenciesSymbol.RON=0\u2264lei|1\u2264leu|1
+currenciesSymbol.IQD=ID
+currenciesSymbol.HKD=HK$
+currenciesSymbol.ARS=Arg$
+currenciesSymbol.JPY=\u00a5
+currenciesSymbol.ALL=lek
+currenciesSymbol.CRC=C
+currenciesSymbol.IDR=Rp
+currenciesSymbol.VND=VND
+currenciesSymbol.DKK=DKr
+currenciesSymbol.TZS=T Sh
+currenciesSymbol.SBD=SI$
+currenciesSymbol.NOK=NKr
+currenciesSymbol.UGX=U Sh
+currenciesSymbol.BEF=BF
+currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
+currenciesSymbol.SZL=E
+currenciesSymbol.STD=Db
+currenciesSymbol.SAR=SRI
+currenciesSymbol.FJD=F$
+currenciesSymbol.UYU=Ur$
+currenciesSymbol.BDT=Tk
+currenciesSymbol.QAR=QR
+currenciesSymbol.LBP=LL
+currenciesSymbol.MNT=Tug
+currenciesSymbol.DJF=DF
+currenciesSymbol.PTE=PTE
+currenciesSymbol.JOD=JD
+currenciesSymbol.SGD=S$
+currenciesSymbol.KHR=CR
+currenciesSymbol.SYP=LS
+currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
+currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.VND=\u0111
-currenciesSymbol.PTE=Esc.
-currenciesSymbol.BRL=R$
-currenciesSymbol.AFN=AFA
-shortMonths=jan®fev®mar®abr®mai®jun®jul®ago®set®out®nov®dez®®
-months=janeiro®fevereiro®mar\u00e7o®abril®maio®junho®julho®agosto®setembro®outubro®novembro®dezembro®®
-shortWeekdays=®dom®seg®ter®qua®qui®sex®s\u00e1b®
-weekdays=®domingo®segunda-feira®ter\u00e7a-feira®quarta-feira®quinta-feira®sexta-feira®s\u00e1bado®
-firstDayOfWeek=mon
-eras=a.C.®d.C.®
-shortDateFormat=dd-MM-yyyy
-mediumDateFormat=d/MMM/yyyy
-longDateFormat=d' de 'MMMM' de 'yyyy
-fullDateFormat=EEEE, d' de 'MMMM' de 'yyyy
-fullTimeFormat=HH'H'mm'm'ss's' z
-zoneStrings=Pacific/Honolulu®HST®Hor\u00e1rio Padr\u00e3o do Hava\u00ed®HST®Hor\u00e1rio Padr\u00e3o do Hava\u00ed®©Europe/Bucharest®EET®Hor\u00e1rio Padr\u00e3o da Europa Oriental®EEST®Hor\u00e1rio de Ver\u00e3o da Europa Oriental®©America/Los_Angeles®PST®Hor\u00e1rio Padr\u00e3o do Pac\u00edfico®PDT®Hor\u00e1rio de Ver\u00e3o do Pac\u00edfico®©America/Denver®MST®Hor\u00e1rio Padr\u00e3o Montanha®MDT®Hor\u00e1rio de Ver\u00e3o Montanha®©Asia/Jerusalem®IST®Hor\u00e1rio Padr\u00e3o de Israel®IDT®Hor\u00e1rio de Ver\u00e3o de Israel®©America/Phoenix®MST®Hor\u00e1rio Padr\u00e3o Montanha®MST®Hor\u00e1rio Padr\u00e3o Montanha®©America/Chicago®CST®Hor\u00e1rio Padr\u00e3o Central®CDT®Hor\u00e1rio de Ver\u00e3o Central®©America/Indianapolis®EST®Hor\u00e1rio Padr\u00e3o Oriental®EST®Hor\u00e1rio Padr\u00e3o Oriental®©America/St_Johns®CNT®Hor\u00e1rio Padr\u00e3o de Terra Nova®CDT®Hor\u00e1rio de Ver\u00e3o de Terra Nova®©America/Anchorage®AST®Hor\u00e1rio Padr\u00e3o do Alasca®ADT®Hor\u00e1rio de Ver\u00e3o do Alasca®©Asia/Shanghai®CTT®Hor\u00e1rio Padr\u00e3o da China®CDT®Hor\u00e1rio Padr\u00e3o da China®©Asia/Tokyo®JST®Hor\u00e1rio Padr\u00e3o do Jap\u00e3o®JST®Hor\u00e1rio Padr\u00e3o do Jap\u00e3o®©Europe/Paris®CET®Hor\u00e1rio Padr\u00e3o Europa Central®CEST®Hor\u00e1rio de Ver\u00e3o Europa Central®©America/New_York®EST®Hor\u00e1rio Padr\u00e3o Oriental®EDT®Hor\u00e1rio de Ver\u00e3o Oriental®©America/Halifax®AST®Hor\u00e1rio Padr\u00e3o Atl\u00e2ntico®ADT®Hor\u00e1rio de Ver\u00e3o Atl\u00e2ntico®©Africa/Casablanca®GMT®Hor\u00e1rio do Meridiano de Greenwich®GMT®Hor\u00e1rio do Meridiano de Greenwich®©
+currenciesSymbol.CVE=CVEsc
+currenciesSymbol.HUF=Ft
+currenciesSymbol.NZD=$NZ
+currenciesSymbol.OMR=RO
+currenciesSymbol.KZT=T
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1
+currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.NAD=N$
+currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
+currenciesSymbol.HNL=L
+currenciesSymbol.KGS=som
+currenciesSymbol.ZWD=Z$
+currenciesSymbol.MYR=RM
+currenciesSymbol.SRG=Sf
+currenciesSymbol.GTQ=Q
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
+currenciesSymbol.VEB=Be
+currenciesSymbol.BOB=Bs
+currenciesSymbol.CNY=Y
+currenciesSymbol.KMF=CF
+currenciesSymbol.SEK=SKr
+currenciesSymbol.AUD=$A
+currenciesSymbol.LYD=LD
+currenciesSymbol.JMD=J$
+currenciesSymbol.SKK=Sk
+currenciesSymbol.CHF=SwF
+currenciesSymbol.ETB=Br
+currenciesSymbol.MRO=UM
+currenciesSymbol.BBD=BDS$
+currenciesSymbol.PKR=Pra
+currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
+currenciesSymbol.MXN=MEX$
+currenciesSymbol.DZD=DA
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.IRR=RI
+currenciesSymbol.GYD=G$
+currenciesSymbol.BAM=KM
+currenciesSymbol.CAD=Can$
+shortMonths=jan\u00aefev\u00aemar\u00aeabr\u00aemai\u00aejun\u00aejul\u00aeago\u00aeset\u00aeout\u00aenov\u00aedez\u00ae\u00ae
+months=janeiro\u00aefevereiro\u00aemar\u00e7o\u00aeabril\u00aemaio\u00aejunho\u00aejulho\u00aeagosto\u00aesetembro\u00aeoutubro\u00aenovembro\u00aedezembro\u00ae\u00ae
+shortWeekdays=\u00aedom\u00aeseg\u00aeter\u00aequa\u00aequi\u00aesex\u00aes\u00e1b\u00ae
+weekdays=\u00aedomingo\u00aesegunda-feira\u00aeter\u00e7a-feira\u00aequarta-feira\u00aequinta-feira\u00aesexta-feira\u00aes\u00e1bado\u00ae
+eras=a.C.\u00aed.C.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd/MM/yyyy
+longDateFormat=d 'de' MMMM 'de' yyyy
+fullDateFormat=EEEE, d 'de' MMMM 'de' yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH'h'mm'min'ss's' z
+zoneStrings=Europe_Central\u00aeHor\u00e1rio da Europa Central\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Europa Central\u00ae\u00ae\u00a9Africa_Western\u00aeHor\u00e1rio da \u00c1frica Ocidental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da \u00c1frica Ocidental\u00ae\u00ae\u00a9Urumqi\u00aeHor\u00e1rio de Urumqi\u00ae\u00ae\u00ae\u00ae\u00a9Kamchatka\u00aeHor\u00e1rio de Petropavlovsk-Kamchatski\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Petropavlovsk-Kamchatski\u00ae\u00ae\u00a9Uralsk\u00aeHor\u00e1rio de Ural'sk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Ural'sk\u00ae\u00ae\u00a9Novosibirsk\u00aeHor\u00e1rio de Novosibirsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Novosibirsk\u00ae\u00ae\u00a9Irkutsk\u00aeHor\u00e1rio de Irkutsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Irkutsk\u00ae\u00ae\u00a9Borneo\u00aeHor\u00e1rio de Born\u00e9o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Born\u00e9o\u00ae\u00ae\u00a9Papua_New_Guinea\u00aeHor\u00e1rio de Papua Nova Guin\u00e9\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Eastern\u00aeHor\u00e1rio Padr\u00e3o da Austr\u00e1lia Oriental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Austr\u00e1lia Oriental\u00ae\u00ae\u00a9Aqtau\u00aeHor\u00e1rio do Aqtau\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Aqtau\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeHor\u00e1rio do Cazaquist\u00e3o Ocidental\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00aeHor\u00e1rio de Sverdlovsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Sverdlovsk\u00ae\u00ae\u00a9Bangladesh\u00aeHor\u00e1rio de Bangladesh\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00aeHor\u00e1rio das Ilhas Maldivas\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aeHor\u00e1rio de Ponape\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeHor\u00e1rio de Samarkand\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Samarkand\u00ae\u00ae\u00a9Indian_Ocean\u00aeHor\u00e1rio do Oceano \u00cdndico\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeHor\u00e1rio de Fiji\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Fiji\u00ae\u00ae\u00a9Long_Shu\u00aeHor\u00e1rio de Long-Shu\u00ae\u00ae\u00ae\u00ae\u00a9Singapore\u00aeHor\u00e1rio Padr\u00e3o de Cingapura\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00aeHor\u00e1rio do Arzeibaij\u00e3o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Arzeibaij\u00e3o\u00ae\u00ae\u00a9Amazon\u00aeHor\u00e1rio do Amazonas\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Amazonas\u00ae\u00ae\u00a9Arabian\u00aeHor\u00e1rio Padr\u00e3o da Ar\u00e1bia\u00aeAST (Ar\u00e1bia)\u00aeHor\u00e1rio de Ver\u00e3o \u00c1rabe\u00aeADT (Ar\u00e1bia)\u00ae\u00a9Phoenix_Islands\u00aeHor\u00e1rio das Ilhas F\u00eanix\u00ae\u00ae\u00ae\u00ae\u00a9Yekaterinburg\u00aeHor\u00e1rio de Yekaterinburg\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Yekaterinburg\u00ae\u00ae\u00a9Krasnoyarsk\u00aeHor\u00e1rio de Krasnoyarsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Krasnoyarsk\u00ae\u00ae\u00a9Alaska\u00aeHor\u00e1rio Padr\u00e3o do Alasca\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Alasca\u00ae\u00ae\u00a9Qyzylorda\u00aeHor\u00e1rio de Qyzylorda\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Qyzylorda\u00ae\u00ae\u00a9Gulf\u00aeHor\u00e1rio Padr\u00e3o do Golfo\u00ae\u00ae\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHor\u00e1rio da Guiana Holandesa\u00ae\u00ae\u00ae\u00ae\u00a9Omsk\u00aeHor\u00e1rio de Omsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Omsk\u00ae\u00ae\u00a9Easter\u00aeHor\u00e1rio da Ilha de P\u00e1scoa\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Ilha de P\u00e1scoa\u00ae\u00ae\u00a9Hong_Kong\u00aeHor\u00e1rio de Hong Kong\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Hong Kong\u00ae\u00ae\u00a9Indonesia_Western\u00aeHor\u00e1rio da Indon\u00e9sia Ocidental\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeHor\u00e1rio da Indon\u00e9sia Oriental\u00ae\u00ae\u00ae\u00ae\u00a9Aqtobe\u00aeHor\u00e1rio do Aqtobe\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Aqtobe\u00ae\u00ae\u00a9Vladivostok\u00aeHor\u00e1rio de Vladivostok\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Vladivostok\u00ae\u00ae\u00a9Chamorro\u00aeHor\u00e1rio Padr\u00e3o de Chamorro\u00ae\u00ae\u00ae\u00ae\u00a9Kizilorda\u00aeHor\u00e1rio de Kizilorda\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Kizilorda\u00ae\u00ae\u00a9Armenia\u00aeHor\u00e1rio da Arm\u00eania\u00aeAMT (Arm\u00eania)\u00aeHor\u00e1rio de Ver\u00e3o da Arm\u00eania\u00aeAMST (Arm\u00eania)\u00ae\u00a9America_Pacific\u00aeHor\u00e1rio Padr\u00e3o do Pac\u00edfico\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Pac\u00edfico\u00ae\u00ae\u00a9Almaty\u00aeHor\u00e1rio do Almaty\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Almaty\u00ae\u00ae\u00a9Anadyr\u00aeHor\u00e1rio do Anadyr\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Anadyr\u00ae\u00ae\u00a9Tajikistan\u00aeHor\u00e1rio do Tajiquist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeHor\u00e1rio da Guiana Francesa\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHor\u00e1rio Padr\u00e3o do Hava\u00ed\u00ae\u00ae\u00ae\u00ae\u00a9Nepal\u00aeHor\u00e1rio do Nepal\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeHor\u00e1rio de Brunei Darussalam\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00aeHor\u00e1rio de Dushanbe\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Dushanbe\u00ae\u00ae\u00a9Kosrae\u00aeHor\u00e1rio da Cor\u00e9ia\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeHor\u00e1rio de Yerevan\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Yerevan\u00ae\u00ae\u00a9Tokelau\u00aeHor\u00e1rio de Tokelau\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeHor\u00e1rio do Paraguai\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Paraguai\u00ae\u00ae\u00a9Seychelles\u00aeHor\u00e1rio das Ilhas Seychelles\u00ae\u00ae\u00ae\u00ae\u00a9Israel\u00aeHor\u00e1rio Padr\u00e3o de Israel\u00aeIST (Israel)\u00aeHor\u00e1rio de Ver\u00e3o de Israel\u00ae\u00ae\u00a9Cocos\u00aeHor\u00e1rio das Ilhas Coco\u00ae\u00ae\u00ae\u00ae\u00a9Norfolk\u00aeHor\u00e1rio das Ilhas Norfolk\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeHor\u00e1rio de Volgograd\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Volgograd\u00ae\u00ae\u00a9Greenland_Western\u00aeHor\u00e1rio da Groenl\u00e2ndia Ocidental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Groenl\u00e2ndia Ocidental\u00ae\u00ae\u00a9New_Caledonia\u00aeHor\u00e1rio da Nova Caled\u00f4nia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Nova Caled\u00f4nia\u00ae\u00ae\u00a9Europe_Eastern\u00aeHor\u00e1rio da Europa Oriental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Europa Oriental\u00ae\u00ae\u00a9North_Mariana\u00aeHor\u00e1rio das Ilhas Mariana do Norte\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00aeHor\u00e1rio Padr\u00e3o de Newfoundland\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Newfoundland\u00ae\u00ae\u00a9Australia_Western\u00aeHor\u00e1rio Padr\u00e3o da Austr\u00e1lia Ocidental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Austr\u00e1lia Ocidental\u00ae\u00ae\u00a9Moscow\u00aeHor\u00e1rio Padr\u00e3o de Moscou\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Moscou\u00ae\u00ae\u00a9Kyrgystan\u00aeHor\u00e1rio do Quirguist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00aeHor\u00e1rio da Venezuela\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeHor\u00e1rio de Malaia\u00ae\u00ae\u00ae\u00ae\u00a9Peru\u00aeHor\u00e1rio do Peru\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Peru\u00ae\u00ae\u00a9Christmas\u00aeHor\u00e1rio das Ilhas Christmas\u00ae\u00ae\u00ae\u00ae\u00a9South_Georgia\u00aeHor\u00e1rio da Georgia do Sul\u00aeGST (Georgia do Sul)\u00ae\u00ae\u00ae\u00a9Korea\u00aeHor\u00e1rio Padr\u00e3o da Cor\u00e9ia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Cor\u00e9ia\u00ae\u00ae\u00a9Argentina_Western\u00aeHor\u00e1rio da Argentina Ocidental\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00aeHor\u00e1rio da \u00c1frica Oriental\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00aeHor\u00e1rio do Turcomenist\u00e3o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Turcomenist\u00e3o\u00ae\u00ae\u00a9Pierre_Miquelon\u00aeHor\u00e1rio Padr\u00e3o de Pierre e Miquelon\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Pierre e Miquelon\u00ae\u00ae\u00a9Atlantic\u00aeHor\u00e1rio Padr\u00e3o do Atl\u00e2ntico\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Atl\u00e2ntico\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeHor\u00e1rio Padr\u00e3o do Alaska-Hava\u00ed\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Alasca-Hava\u00ed\u00ae\u00ae\u00a9Uzbekistan\u00aeHor\u00e1rio do Uzbequist\u00e3o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Uzbequist\u00e3o\u00ae\u00ae\u00a9Lord_Howe\u00aeHor\u00e1rio Padr\u00e3o de Lord Howe\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Lord Howe\u00ae\u00ae\u00a9Hovd\u00aeHor\u00e1rio de Hovd\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Hovd\u00ae\u00ae\u00a9Cape_Verde\u00aeHor\u00e1rio de Cabo Verde\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Cabo Verde\u00ae\u00ae\u00a9Tbilisi\u00aeHor\u00e1rio de Tbilisi\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Tbilisi\u00ae\u00ae\u00a9Malaysia\u00aeHor\u00e1rio da Mal\u00e1sia\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeHor\u00e1rio Padr\u00e3o Oriental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o Oriental\u00ae\u00ae\u00a9Baku\u00aeHor\u00e1rio de Baku\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Baku\u00ae\u00ae\u00a9Reunion\u00aeHor\u00e1rio das Ilhas Reuni\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Davis\u00aeHor\u00e1rio de Davis\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeHor\u00e1rio de Padr\u00e3o de Chatham\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Chatham\u00ae\u00ae\u00a9Noronha\u00aeHor\u00e1rio de Fernando de Noronha\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Fernando de Noronha\u00ae\u00ae\u00a9Syowa\u00aeHor\u00e1rio de Syowa\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeHor\u00e1rio do Afeganist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Palau\u00aeHor\u00e1rio de Palau\u00ae\u00ae\u00ae\u00ae\u00a9Samoa\u00aeHor\u00e1rio Padr\u00e3o de Samoa\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeHor\u00e1rio da Ant\u00e1rtida e do Sul da Fran\u00e7a\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00aeHor\u00e1rio das Ilhas Salom\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Line_Islands\u00aeHor\u00e1rio das Ilhas Line\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeHor\u00e1rio do Equador\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00aeHor\u00e1rio do Acre\u00aeACT (Acre)\u00aeHor\u00e1rio de Ver\u00e3o do Acre\u00aeACST (Acre)\u00ae\u00a9Dacca\u00aeHor\u00e1rio de Dacca\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aeHor\u00e1rio de Choibalsan\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Choibalsan\u00ae\u00ae\u00a9Europe_Western\u00aeHor\u00e1rio da Europa Ocidental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Europa Ocidental\u00ae\u00ae\u00a9Africa_Central\u00aeHor\u00e1rio da \u00c1frica Central\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aeHor\u00e1rio da Turquia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Turquia\u00ae\u00ae\u00a9Africa_Southern\u00aeHor\u00e1rio Padr\u00e3o da \u00c1frica do Sul\u00ae\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00aeHor\u00e1rio de Ashkhabad\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Ashkhabad\u00ae\u00ae\u00a9Bering\u00aeHor\u00e1rio Padr\u00e3o de Bering\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Bering\u00ae\u00ae\u00a9Guam\u00aeHor\u00e1rio Padr\u00e3o de Guam\u00aeGST (Guam)\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00aeHor\u00e1rio das Ilhas Marshall\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeHor\u00e1rio do But\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Changbai\u00aeHor\u00e1rio de Changbai\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00aeHor\u00e1rio de Sakhalin\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Sakhalin\u00ae\u00ae\u00a9Karachi\u00aeHor\u00e1rio de Karachi\u00ae\u00ae\u00ae\u00ae\u00a9Truk\u00aeHor\u00e1rio de Truk\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00aeHor\u00e1rio de Tashkent\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Tashkent\u00ae\u00ae\u00a9Nauru\u00aeHor\u00e1rio de Nauru\u00ae\u00ae\u00ae\u00ae\u00a9Tuvalu\u00aeHor\u00e1rio de Tuvalu\u00ae\u00ae\u00ae\u00ae\u00a9Gilbert_Islands\u00aeHor\u00e1rio das Ilhas Gilberto\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeHor\u00e1rio das Filipinas\u00ae\u00aeHor\u00e1rio de Ver\u00e3o das Filipinas\u00ae\u00ae\u00a9East_Timor\u00aeHor\u00e1rio do Timor Leste\u00ae\u00ae\u00ae\u00ae\u00a9Pitcairn\u00aeHor\u00e1rio de Pitcairn\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00aeHor\u00e1rio de Yakutsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Yakutsk\u00ae\u00ae\u00a9Iran\u00aeHor\u00e1rio Padr\u00e3o do Ir\u00e3\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Ir\u00e3\u00ae\u00ae\u00a9Argentina\u00aeHor\u00e1rio da Argentina\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Argentina\u00ae\u00ae\u00a9Tonga\u00aeHor\u00e1rio de Tonga\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Tonga\u00ae\u00ae\u00a9Yukon\u00aeHor\u00e1rio Padr\u00e3o de Yukon\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Yukon\u00ae\u00ae\u00a9New_Zealand\u00aeHor\u00e1rio Padr\u00e3o da Nova Zel\u00e2ndia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Nova Zel\u00e2ndia\u00ae\u00ae\u00a9Magadan\u00aeHor\u00e1rio de Magadan\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Magadan\u00ae\u00ae\u00a9Gambier\u00aeHor\u00e1rio de Gambier\u00ae\u00ae\u00ae\u00ae\u00a9China\u00aeHor\u00e1rio Padr\u00e3o da China\u00aeCST (China)\u00aeHor\u00e1rio de Ver\u00e3o da China\u00aeCDT (China)\u00ae\u00a9Indonesia_Central\u00aeHor\u00e1rio da Indon\u00e9sia Central\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeHor\u00e1rio Padr\u00e3o da Montanha\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Montanha\u00ae\u00ae\u00a9India\u00aeHor\u00e1rio Padr\u00e3o da \u00cdndia\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00aeHor\u00e1rio do Suriname\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeHor\u00e1rio do Meridiano de Greenwich\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00aeHor\u00e1rio de Samara\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Samara\u00ae\u00ae\u00a9Marquesas\u00aeHor\u00e1rio das Marquesas\u00ae\u00ae\u00ae\u00ae\u00a9Mawson\u00aeHor\u00e1rio de Mawson\u00ae\u00ae\u00ae\u00ae\u00a9Falkland\u00aeHor\u00e1rio das Ilhas Malvinas\u00ae\u00aeHor\u00e1rio de Ver\u00e3o das Ilhas Malvinas\u00ae\u00ae\u00a9Indochina\u00aeHor\u00e1rio da Indochina\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00aeHor\u00e1rio das Ilhas Wake\u00ae\u00ae\u00ae\u00ae\u00a9Uruguay\u00aeHor\u00e1rio do Uruguai\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Uruguai\u00ae\u00ae\u00a9Chile\u00aeHor\u00e1rio do Chile\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Chile\u00ae\u00ae\u00a9Vanuatu\u00aeHor\u00e1rio de Vanuatu\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Vanuatu\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeHor\u00e1rio Padr\u00e3o da Austr\u00e1lia Centro Ocidental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Austr\u00e1lia Centro Ocidental\u00ae\u00ae\u00a9Brasilia\u00aeHor\u00e1rio de Bras\u00edlia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Bras\u00edlia\u00ae\u00ae\u00a9Tahiti\u00aeHor\u00e1rio do Haiti\u00ae\u00ae\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeHor\u00e1rio Padr\u00e3o do Cazaquist\u00e3o do Leste\u00ae\u00ae\u00ae\u00ae\u00a9DumontDUrville\u00aeHor\u00e1rio de Dumont-d'Urville\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aeHor\u00e1rio de Rothera\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00aeHor\u00e1rio Padr\u00e3o Central\u00ae\u00aeHor\u00e1rio de Ver\u00e3o Central\u00ae\u00ae\u00a9Mongolia\u00aeHor\u00e1rio de Ulan Bator\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Ulan Bator\u00ae\u00ae\u00a9Frunze\u00aeHor\u00e1rio de Frunze\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Frunze\u00ae\u00ae\u00a9Lanka\u00aeHor\u00e1rio de Lanka\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00aeHor\u00e1rio de Kuybyshev\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Kuybyshev\u00ae\u00ae\u00a9Greenland_Eastern\u00aeHor\u00e1rio da Groel\u00e2ndia Oriental\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Groel\u00e2ndia Oriental\u00ae\u00ae\u00a9Azores\u00aeHor\u00e1rio de A\u00e7ores\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de A\u00e7ores\u00ae\u00ae\u00a9Greenland_Central\u00aeHor\u00e1rio da Groel\u00e2ndia Central\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Groenl\u00e2ndia Central\u00ae\u00ae\u00a9Japan\u00aeHor\u00e1rio Padr\u00e3o do Jap\u00e3o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Jap\u00e3o\u00ae\u00ae\u00a9Kwajalein\u00aeHor\u00e1rio de Kwajalein\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeHor\u00e1rio de Shevchenko\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Shevchenko\u00ae\u00ae\u00a9Pakistan\u00aeHor\u00e1rio do Paquist\u00e3o\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Paquist\u00e3o\u00ae\u00ae\u00a9Bolivia\u00aeHor\u00e1rio da Bol\u00edvia\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeHor\u00e1rio das Ilhas Cook\u00ae\u00aeMeio Hor\u00e1rio de Ver\u00e3o das Ilhas Cook\u00ae\u00ae\u00a9Kashgar\u00aeHor\u00e1rio de Kashgar\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00aeHor\u00e1rio Padr\u00e3o da Austr\u00e1lia Central\u00aeACST (Austr\u00e1lia)\u00aeHor\u00e1rio de Ver\u00e3o da Austr\u00e1lia Central\u00aeACDT (Austr\u00e1lia)\u00ae\u00a9Vostok\u00aeHor\u00e1rio de Vostok\u00ae\u00ae\u00ae\u00ae\u00a9Guyana\u00aeHor\u00e1rio da Guiana\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeHor\u00e1rio da Georgia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Georgia\u00ae\u00ae\u00a9Colombia\u00aeHor\u00e1rio da Col\u00f4mbia\u00ae\u00aeHor\u00e1rio de Ver\u00e3o da Col\u00f4mbia\u00ae\u00ae\u00a9Galapagos\u00aeHor\u00e1rio de Gal\u00e1pagos\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aeHor\u00e1rio Padr\u00e3o de Cuba\u00aeCST (Cuba)\u00aeHor\u00e1rio de Ver\u00e3o de Cuba\u00aeCDT (Cuba)\u00ae\u00a9Myanmar\u00aeHor\u00e1rio de Mianmar\u00ae\u00ae\u00ae\u00ae\u00a9Niue\u00aeHor\u00e1rio de Niue\u00ae\u00ae\u00ae\u00ae\u00a9Mauritius\u00aeHor\u00e1rio das Ilhas Maur\u00edcio\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeHor\u00e1rio de Wallis e Fortuna\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00aeHor\u00e1rio de Macau\u00ae\u00aeHor\u00e1rio de Ver\u00e3o de Macau\u00ae\u00ae\u00a9Aktyubinsk\u00aeHor\u00e1rio do Aktyubinsk\u00ae\u00aeHor\u00e1rio de Ver\u00e3o do Aktyubinsk\u00ae\u00ae\u00a9
territories.TL=Timor Leste
territories.TK=Tokelau
territories.TJ=Tadjiquist\u00e3o
@@ -291,10 +431,13 @@ territories.GN=Guin\u00e9
territories.GM=G\u00e2mbia
territories.GL=Gro\u00eanlandia
territories.SV=El Salvador
+territories.062=\u00c1sia Central e do Sul
territories.ST=S\u00e3o Tom\u00e9 e Pr\u00edncipe
territories.GI=Gibraltar
+territories.061=Polin\u00e9sia
territories.GH=Gana
territories.SR=Suriname
+territories.GG=Guernsey
territories.GF=Guiana Francesa
territories.GE=Ge\u00f3rgia
territories.SO=Som\u00e1lia
@@ -316,31 +459,41 @@ territories.SB=Ilhas Salom\u00e3o
territories.SA=Ar\u00e1bia Saudita
territories.FR=Fran\u00e7a
territories.FO=Ilhas Faroe
-territories.FM=Micron\u00e9sia, Estados Federados da
+territories.057=Regi\u00e3o da Micron\u00e9sia
+territories.FM=Micron\u00e9sia
territories.RW=Ruanda
+territories.054=Melan\u00e9sia
territories.FK=Ilhas Malvinas
+territories.053=Austr\u00e1lia e Nova Zel\u00e2ndia
territories.RU=R\u00fassia
territories.FJ=Fiji
territories.FI=Finl\u00e2ndia
+territories.RS=S\u00e9rvia
territories.RO=Rom\u00eania
territories.RE=Reuni\u00e3o
territories.ET=Eti\u00f3pia
territories.ES=Espanha
territories.ER=Eritr\u00e9ia
+territories.QU=Uni\u00e3o Europ\u00e9ia
territories.EH=Saara Ocidental
territories.EG=Egito
territories.EE=Est\u00f4nia
+territories.QO=Oceania Exterior
territories.EC=Equador
territories.DZ=Arg\u00e9lia
territories.QA=Catar
+territories.039=Europa do Sul
territories.DO=Rep\u00fablica Dominicana
territories.PY=Paraguai
territories.DM=Dominica
+territories.035=\u00c1sia Oriental e do Sul
territories.PW=Palau
+territories.034=\u00c1sia do Sul
territories.DK=Dinamarca
territories.DJ=Djibuti
territories.PT=Portugal
territories.PS=Territ\u00f3rio da Palestina
+territories.030=\u00c1sia Oriental
territories.PR=Porto Rico
territories.DE=Alemanha
territories.PN=Pitcairn
@@ -359,19 +512,22 @@ territories.PA=Panam\u00e1
territories.CU=Cuba
territories.CS=S\u00e9rvia e Montenegro
territories.CR=Costa Rica
+territories.029=Caribe
territories.CO=Col\u00f4mbia
territories.CN=China
territories.CM=Rep\u00fablica dos Camar\u00f5es
territories.CL=Chile
territories.CK=Ilhas Cook
+territories.021=Am\u00e9rica Setentrional
territories.CI=Costa do Marfim
territories.CH=Su\u00ed\u00e7a
territories.CG=Congo
territories.CF=Rep\u00fablica Centro-Africana
-territories.CD=Congo, Rep\u00fablica Democr\u00e1tica do
-territories.CC=Ilhas Cocos (Keeling)
+territories.CD=Congo-Kinshasa
+territories.CC=Ilhas Coco
territories.OM=Om\u00e3
territories.CA=Canad\u00e1
+territories.419=Am\u00e9rica Latina e Caribe
territories.BZ=Belize
territories.BY=Belarus
territories.BW=Botsuana
@@ -379,30 +535,41 @@ territories.BV=Ilha Bouvet
territories.BT=But\u00e3o
territories.BS=Bahamas
territories.BR=Brasil
+territories.019=Am\u00e9ricas
+territories.018=\u00c1frica Austral
territories.NZ=Nova Zel\u00e2ndia
+territories.017=\u00c1frica Central
territories.BO=Bol\u00edvia
territories.BN=Brunei
+territories.015=\u00c1frica do Norte
territories.BM=Bermudas
+territories.014=\u00c1frica Oriental
+territories.BL=San Bartolomeu
+territories.013=Am\u00e9rica Central
territories.NU=Niue
territories.BJ=Benin
+territories.011=\u00c1frica Ocidental
territories.BI=Burundi
-territories.BH=Bareine
+territories.172=Comunidade dos Estados Independentes
+territories.BH=Bahrain
territories.NR=Nauru
territories.BG=Bulg\u00e1ria
territories.BF=Burquina Faso
territories.NP=Nepal
territories.BE=B\u00e9lgica
+territories.ZZ=Regi\u00e3o desconhecida ou inv\u00e1lida
territories.NO=Noruega
territories.BD=Bangladesh
territories.BB=Barbados
-territories.ZW=Zimb\u00e1bwe
-territories.NL=Pa\u00edses Baixos
-territories.BA=B\u00f3snia-Herzeg\u00f3vina
+territories.ZW=Zimb\u00e1bue
+territories.NL=Holanda
+territories.BA=B\u00f3snia-Herzegovina
territories.NI=Nicar\u00e1gua
territories.NG=Nig\u00e9ria
-territories.NF=Ilha Norfolk
+territories.NF=Ilhas Norfolk
territories.AZ=Azerbaij\u00e3o
territories.NE=N\u00edger
+territories.AX=Ilhas Aland
territories.NC=Nova Caled\u00f4nia
territories.AW=Aruba
territories.ZM=Z\u00e2mbia
@@ -412,55 +579,69 @@ territories.AT=\u00c1ustria
territories.AS=Samoa Americana
territories.AR=Argentina
territories.AQ=Ant\u00e1rtida
+territories.009=Oceania
territories.MZ=Mo\u00e7ambique
territories.AO=Angola
territories.MY=Mal\u00e1sia
territories.AN=Antilhas Holandesas
territories.MX=M\u00e9xico
territories.AM=Arm\u00eania
+territories.005=Am\u00e9rica do Sul
territories.MW=Malawi
territories.AL=Alb\u00e2nia
territories.MV=Maldivas
+territories.003=Am\u00e9rica do Norte
territories.ZA=\u00c1frica do Sul
territories.MU=Maur\u00edcio
+territories.002=\u00c1frica
territories.MT=Malta
territories.AI=Anguilla
+territories.001=Mundo
territories.MS=Montserrat
territories.MR=Maurit\u00e2nia
territories.AG=Ant\u00edgua e Barbuda
-territories.AF=Afeganist\u00e3o
territories.MQ=Martinica
-territories.AE=Emirados \u00c1rabes Unidos
+territories.AF=Afeganist\u00e3o
territories.MP=Ilhas Marianas do Norte
+territories.AE=Emirados \u00c1rabes Unidos
+territories.MO=Macau
territories.AD=Andorra
-territories.MO=Macau, Regi\u00e3o Admin. Especial da China
territories.MN=Mong\u00f3lia
-territories.MM=Mianm\u00e1
+territories.MM=Mianmar
territories.ML=Mali
-territories.MK=Maced\u00f4nia, Rep\u00fablica da
+territories.MK=Maced\u00f4nia
territories.YT=Mayotte
territories.MH=Ilhas Marshall
territories.MG=Madagascar
-territories.MD=Moldova, Rep\u00fablica de
+territories.MF=San Martin
+territories.ME=Montenegro
+territories.MD=Mold\u00e1via
territories.MC=M\u00f4naco
territories.MA=Marrocos
territories.YE=I\u00eamen
territories.LY=L\u00edbia
territories.LV=Let\u00f4nia
+territories.155=Europa Ocidental
territories.LU=Luxemburgo
+territories.154=Europa Setentrional
territories.LT=Litu\u00e2nia
territories.LS=Lesoto
territories.LR=Lib\u00e9ria
+territories.151=Europa Oriental
+territories.150=Europa
territories.LK=Sri Lanka
territories.LI=Liechtenstein
territories.LC=Santa L\u00facia
territories.LB=L\u00edbano
-territories.LA=Rep\u00fablica Democr\u00e1tica Popular de Lao
+territories.LA=Laos
territories.KZ=Casaquist\u00e3o
territories.KY=Ilhas Caiman
territories.KW=Kuwait
-territories.KR=Cor\u00e9ia, Sul
-territories.KP=Cor\u00e9ia, Norte
+territories.145=\u00c1sia Ocidental
+territories.143=\u00c1sia Central
+territories.142=\u00c1sia
+territories.KR=Cor\u00e9ia do Sul
+territories.KP=Cor\u00e9ia do Norte
territories.KN=S\u00e3o Cristov\u00e3o e Nevis
territories.KM=Comores
territories.KI=Quiribati
@@ -473,6 +654,7 @@ territories.JP=Jap\u00e3o
territories.JO=Jord\u00e2nia
territories.JM=Jamaica
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietn\u00e3
territories.VI=Ilhas Virgens dos EUA
territories.VG=Ilhas Virgens Brit\u00e2nicas
@@ -487,6 +669,7 @@ territories.UZ=Uzbequist\u00e3o
territories.IO=Territ\u00f3rio Brit\u00e2nico do Oceano \u00cdndico
territories.UY=Uruguai
territories.IN=\u00cdndia
+territories.IM=Ilha de Man
territories.IL=Israel
territories.US=Estados Unidos
territories.IE=Irlanda
@@ -502,77 +685,87 @@ territories.HN=Honduras
territories.HM=Ilha Heard e Ilhas McDonald
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=Hong Kong, Regi\u00e3o Admin. Especial da China
+territories.HK=Hong Kong
territories.TT=Trinidad e Tobago
territories.TR=Turquia
territories.TO=Tonga
territories.TN=Tun\u00edsia
territories.TM=Turcomenist\u00e3o
-languages.akk=acadiano
languages.gwi=gwich\u02bcin
+languages.akk=acadiano
languages.eka=ekajuk
+languages.ijo=ijo
languages.xh=xosa
languages.sux=sum\u00e9rio
languages.sus=sosso
languages.mis=idiomas diversos
languages.loz=lozi
-languages.tog=togan\u00eas (Nyasa)
+languages.tog=tongan\u00eas de Nyasa
+languages.zbl=s\u00edmbolos blis
languages.pon=pohnpeian
languages.min=minangkabau
languages.suk=sukuma
languages.wo=uolofe
-languages.kut=kutenai
languages.lol=mongo
+languages.kut=kutenai
languages.mic=miquemaque
-languages.wa=walloon
+languages.wa=val\u00e3o
languages.kum=kumyk
languages.zap=zapoteca
-languages.cus=cuxitas (outros)
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=Idioma cuxita
languages.jbo=lojban
+languages.doi=dogri
+languages.zza=zaza
languages.vo=volapuque
-languages.oto=idiomas otomanos
+languages.oto=Idioma otomano
languages.vi=vietnamita
+languages.vai=vai
languages.rar=rarotongano
languages.ve=venda
languages.rap=rapanui
languages.raj=rajastani
-languages.ota=turco, otomano (1500-1928)
+languages.ota=turco otomano
languages.nzi=nzima
languages.nap=napolitano
languages.uz=usbeque
languages.uga=ugar\u00edtico
languages.tmh=tamaxeque
-languages.nai=ind\u00edgenas norte-americanos (outros)
+languages.nai=Idioma ind\u00edgena norte-americano
languages.nah=n\u00e1uatle
languages.ur=urdu
languages.fat=fanti
languages.uk=ucraniano
-languages.egy=eg\u00edpcio (arcaico)
+languages.egy=eg\u00edpcio arcaico
+languages.zxx=sem conte\u00fado ling\u00fc\u00edstico
languages.ug=uighur
languages.fan=fangue
-languages.ssa=nilo-saarianos (outros)
-languages.bat=b\u00e1lticos (outros)
-languages.mga=irland\u00eas, medieval (900-1200)
+languages.ssa=Idioma nilo-saariano
+languages.mga=ga\u00e9lico medieval
+languages.bat=Idioma b\u00e1ltico
languages.nyo=nyoro
languages.bas=basa
languages.nyn=nyankole
languages.nym=nyamwezi
+languages.gsw=alem\u00e3o su\u00ed\u00e7o
languages.hmn=hmong
languages.ban=balin\u00eas
languages.osa=osage
languages.bal=bal\u00fachi
languages.ty=taitiano
-languages.bai=bamileke Languages
+languages.bai=idiomas bamileke
languages.tw=twi
languages.srr=serere
languages.tli=tlinguite
+languages.tlh=klingon
languages.tt=tatar
languages.ts=tsonga
+languages.srn=sranan tongo
languages.bad=banda
languages.tr=turco
-languages.to=tonga (ilhas tonga)
+languages.to=tongan\u00eas
languages.tn=tswana
+languages.tl=tagalog
languages.tk=turcomano
languages.ti=tigr\u00ednia
languages.th=tailand\u00eas
@@ -580,111 +773,131 @@ languages.kru=kurukh
languages.tg=tadjique
languages.byn=Blin
languages.te=telugu
-languages.csb=kashubian
languages.kro=kru
+languages.csb=kashubian
languages.ta=t\u00e2mil
+languages.krl=careliano
languages.tkl=toquelauano
languages.efi=efique
languages.sw=sua\u00edli
languages.sv=sueco
languages.su=sundan\u00eas
-languages.krc=karachay-Balkar
-languages.st=soto, do sul
+languages.krc=karachay-balkar
+languages.st=soto do sul
languages.ss=swati
languages.sr=s\u00e9rvio
languages.sq=alban\u00eas
languages.men=mende
-languages.crp=crioulos e p\u00eddgins (outros)
+languages.crp=crioulo ou pidgin
languages.so=somali
-languages.afh=Afrihili
-languages.sl=eslov\u00eanio
-languages.grc=grego, arcaico (at\u00e9 1453)
+languages.afh=afrihili
+languages.sn=shona
+languages.sm=samoano
+languages.sl=esloveno
+languages.grc=grego arcaico
languages.sk=eslovaco
-languages.grb=Gerbo
+languages.grb=grebo
languages.si=cingal\u00eas
languages.sh=servo-croata
-languages.afa=afro-asi\u00e1tico (outros)
-languages.crh=crimean turkish; crimean tatar
+languages.crh=turco da Crim\u00e9ia
+languages.afa=Idioma afro-asi\u00e1tico
languages.sg=sango
-languages.se=northern sami
+languages.se=sami do norte
languages.sd=sindi
languages.udm=udmurt
languages.sc=sardo
languages.sa=s\u00e2nscrito
languages.rw=kinyarwanda
+languages.nwc=newari cl\u00e1ssico
languages.ru=russo
languages.mdr=mandar
languages.ro=romeno
languages.rn=rundi
-languages.rm=rhaeto-romance
+languages.rm=reto-romano
+languages.fr_CH=franc\u00eas su\u00ed\u00e7o
languages.mdf=mocsa
+languages.tiv=tiv
+languages.fr_CA=franc\u00eas do Canad\u00e1
languages.ady=adyghe
languages.zun=zunhi
languages.kpe=kpelle
languages.qu=qu\u00edchua
languages.tig=tigr\u00e9
languages.son=songai
-languages.cpp=crioulos e p\u00eddgin, portugu\u00eas (outros)
-languages.sog=sogdien
+languages.cpp=crioulo ou pidgin baseado no portugu\u00eas
+languages.rup=aromeno
+languages.sog=sogdiano
languages.ada=adangme
-languages.cpf=crioulos e p\u00eddgin, franc\u00eas (outros)
+languages.kos=kosraeano
languages.hit=hitita
-languages.kos=kosraean
-languages.cpe=crioulos e p\u00eddgin, ingl\u00eas (outros)
+languages.cpf=crioulo ou pidgin baseado no franc\u00eas
+languages.cpe=crioulo ou pidgin baseado no ingl\u00eas
languages.him=himachali
-languages.got=g\u00f3tico
-languages.hil=hiligaynon
languages.kok=concani
+languages.hil=hiligaynon
+languages.got=g\u00f3tico
languages.gor=gorontalo
languages.gon=gondi
languages.din=dinka
languages.nub=idiomas n\u00fabios
languages.pt=portugu\u00eas
-languages.ps=pashto (pushto)
+languages.ps=pashto
languages.fur=friulano
languages.phn=fen\u00edcio
-languages.goh=alem\u00e3o, arcaico alto (aprox.750-1050)
+languages.de_CH=alem\u00e3o (Su\u00ed\u00e7a Alta)
+languages.goh=alem\u00e3o arcaico alto
+languages.snk=soninke
languages.cop=copta
languages.yap=yapese
languages.ach=acoli
languages.yao=iao
-languages.phi=filipinos (outros)
+languages.phi=Idioma filipino
languages.pl=polon\u00eas
languages.ace=achinese
languages.pi=p\u00e1li
+languages.pt_PT=portugu\u00eas ib\u00e9rico
languages.pa=panjabi
-languages.bug=Buginese
-languages.iba=Iban
-languages.bua=Buriat
+languages.bug=buguin\u00eas
+languages.iba=ib\u00e3
+languages.sms=skolt sami
+languages.bua=buriat
languages.mas=massai
-languages.os=ossetic
+languages.smn=inari sami
+languages.os=osseta
languages.map=austron\u00e9sio
languages.or=oriya
languages.man=mandinga
+languages.smj=lule sami
+languages.smi=Idioma sami
languages.mak=makasar
languages.om=oromo
languages.mai=maithili
languages.oj=ojibwa
languages.mag=magahi
languages.mad=madur\u00eas
-languages.oc=occit\u00e2nico (ap\u00f3s 1500); proven\u00e7al
-languages.nso=soto, setentrional
+languages.sma=sami do sul
+languages.oc=occit\u00e2nico
+languages.nso=soto setentrional
languages.btk=bataque
languages.myv=erzya
+languages.es_ES=espanhol da Espanha
+languages.de_AT=alem\u00e3o da \u00c1ustria
languages.dgr=dogrib
-languages.ny=nianja; chicheua; cheua
+languages.ny=nianja
languages.myn=maia
languages.nv=navajo
languages.kmb=quimbundo
-languages.nr=ndebele, south
-languages.gmh=alem\u00e3o, medieval alto (aprox.1050-1500)
+languages.nr=ndebele do sul
+languages.gmh=alem\u00e3o medieval alto
languages.no=noruegu\u00eas
languages.nn=nynorsk noruegu\u00eas
languages.nl=holand\u00eas
+languages.root=root
languages.ng=dongo
-languages.ne=nepali
-languages.nd=ndebele, north
-languages.cmc=chamic languages
+languages.sla=Idioma eslavo
+languages.ne=nepal\u00eas
+languages.nd=ndebele do norte
+languages.cmc=Idioma chamic
languages.tet=t\u00e9tum
languages.nb=bokm\u00e5l noruegu\u00eas
languages.na=nauruano
@@ -693,109 +906,115 @@ languages.tem=timne
languages.my=birman\u00eas
languages.lez=lezghian
languages.mt=malt\u00eas
-languages.peo=persa arcaico (aprox. 600-400 a.C.)
+languages.frs=fris\u00e3o oriental
+languages.peo=persa arcaico
languages.ms=malaio
+languages.frr=fris\u00e3o do norte
languages.mr=marata
-languages.fro=franc\u00eas, arcaico (842-aprox.1400)
+languages.fro=franc\u00eas arcaico
languages.mo=mold\u00e1vio
languages.mn=mongol
-languages.frm=franc\u00eas, medieval (aprox.1400-1600)
+languages.frm=franc\u00eas medieval
languages.ml=malaiala
languages.jrb=judaico-ar\u00e1bico
languages.mk=maced\u00f4nio
languages.mi=maori
-languages.mh=marshall\u00eas
+languages.mh=marshal\u00eas
languages.mg=malgaxe
+languages.nqo=n'ko
languages.mwr=marwari
languages.bra=braj
-languages.lv=let\u00e3o
+languages.mwl=mirand\u00eas
languages.den=slave
+languages.lv=let\u00e3o
languages.lu=luba-catanga
-languages.lt=lituano
languages.del=delaware
+languages.lt=lituano
languages.lo=laosiano
languages.ln=lingala
-languages.li=limburgish
+languages.li=limburgu\u00eas
languages.ewo=ewondo
-languages.lg=luganda
+languages.lg=ganda
languages.lb=luxemburgu\u00eas
languages.la=latim
languages.jpr=judaico-persa
languages.vot=votic
-languages.sit=sino-tibetanos (outros)
+languages.sit=Idioma sino-tibetano
languages.ky=quirguiz
languages.kw=c\u00f3rnico
languages.kv=komi
languages.ku=curdo
-languages.sio=idiomas sioux
+languages.sio=Idioma sioux
languages.ks=kashmiri
languages.kr=can\u00fari
-languages.awa=Awadhi
+languages.awa=awadhi
languages.ko=coreano
languages.kn=canar\u00eas
languages.km=cmer
+languages.en_GB=ingl\u00eas brit\u00e2nico
languages.kl=groenland\u00eas
languages.kk=cazaque
languages.rom=romani
-languages.kj=Kuanyama
+languages.kj=kuanyama
languages.sid=sidamo
languages.ki=quicuio
languages.kg=congol\u00eas
-languages.non=norse, old
+languages.non=n\u00f3rdico arcaico
languages.ka=georgiano
languages.mus=creek
-languages.roa=romances (outros)
+languages.roa=Idioma rom\u00e2ntico
languages.nog=nogai
languages.mun=idiomas munda
languages.mul=idiomas m\u00faltiplos
+languages.jv=javan\u00eas
languages.gil=gilbert\u00eas
languages.znd=zande
languages.shn=shan
languages.fon=fom
languages.xal=kalmyk
languages.aus=idiomas australianos
-languages.kho=khotanese
+languages.kho=khotan\u00eas
languages.ja=japon\u00eas
-languages.khi=khoisan (other)
+languages.khi=Idioma khoisan
languages.pau=palauano
languages.chy=cheiene
-languages.tai=tai (outros)
+languages.tai=Idioma tailand\u00eas
languages.iu=inuktitut
languages.pap=papiamento
languages.it=italiano
-languages.sgn=linguages de sinais
-languages.kha=khasi
+languages.sgn=linguagem de sinais
languages.is=island\u00eas
+languages.kha=khasi
languages.chr=cheroqui
languages.pam=pampanga
languages.pal=p\u00e1lavi
languages.chp=chipewyan
-languages.cho=choctaw
languages.io=ido
-languages.chn=chinook jargon
+languages.cho=choctaw
+languages.chn=jarg\u00e3o chinook
languages.chm=mari
-languages.tyv=tuvinian
+languages.tyv=tuviniano
languages.bnt=banto
languages.pag=pangasin\u00e3
+languages.ik=inupiaque
languages.chk=chuukese
-languages.ik=Inupiaq
-languages.haw=havaiano
languages.ii=sichuan yi
+languages.haw=havaiano
languages.lam=lamba
-languages.chg=chagatai
languages.ig=ibo
-languages.sga=irland\u00eas, arcaico (at\u00e9 900)
-languages.paa=papuanos (outros)
+languages.chg=chagatai
+languages.sga=ga\u00e9lico arcaico
+languages.paa=Idioma papuano
languages.ie=interlingue
languages.id=indon\u00e9sio
languages.lah=lahnda
-languages.chb=chibcha
languages.day=dayak
+languages.chb=chibcha
languages.ia=interl\u00edngua
languages.lad=ladino
-languages.dar=dargwa
-languages.hai=haida
languages.hz=herero
+languages.hai=haida
+languages.dar=dargwa
languages.hy=arm\u00eanio
languages.ath=idiomas atabascanos
languages.hu=h\u00fangaro
@@ -807,157 +1026,199 @@ languages.hi=hindi
languages.dyu=di\u00fala
languages.he=hebraico
languages.ast=asturiano
-languages.ha=hau\u00e7\u00e1
-languages.wen=sorbian languages
+languages.kfo=koro
+languages.ha=hausa
+languages.wen=Idioma s\u00e9rvio
languages.gv=manx
languages.gu=guzerate
-languages.sem=sem\u00edticos (outros)
+languages.sem=Idioma sem\u00edtico
languages.sel=selkup
languages.iro=idiomas iroqueses
languages.gn=guarani
languages.gl=galego
+languages.en_CA=ingl\u00eas do Canad\u00e1
languages.arw=arauaqui
-languages.gd=ga\u00e9lico escoc\u00eas
-languages.art=artificiais (outros)
languages.gez=geez
+languages.art=Idioma artificial
+languages.gd=ga\u00e9lico escoc\u00eas
languages.ira=iraniano
-languages.ga=irland\u00eas
+languages.ga=ga\u00e9lico
languages.arp=arapaho
languages.arn=araucano
languages.fy=fris\u00e3o
languages.bla=siksika
-languages.gem=germ\u00e2nicos (outros)
-languages.ypk=idiomas i\u00fapique
-languages.fr=franc\u00eas
+languages.gem=Idioma germ\u00e2nico
+languages.ypk=Idioma i\u00fapique
languages.arc=aramaico
-languages.fo=fero\u00eas
-languages.cel=c\u00e9lticos (outros)
+languages.fr=franc\u00eas
+languages.fo=faro\u00eas
+languages.cel=celta
languages.fj=fijiano
languages.fi=finland\u00eas
languages.ff=fula
languages.tvl=tuvaluano
languages.ceb=cebuano
languages.fa=persa
+languages.en_AU=ingl\u00eas australiano
+languages.zh_Hans=chin\u00eas simplificado
+languages.zh_Hant=chin\u00eas tradicional
languages.eu=basco
languages.sco=escoc\u00eas
languages.et=estoniano
+languages.scn=siciliano
languages.es=espanhol
languages.eo=esperanto
languages.en=ingl\u00eas
languages.el=grego
-languages.tut=altaicos (outros)
+languages.tut=Idioma altaico
languages.niu=niueano
-languages.tup=idiomas tupi
+languages.tup=Idioma tupi
languages.ee=eve
languages.tum=tumbuka
+languages.nl_BE=neerland\u00eas
+languages.es_419=espanhol da Am\u00e9rica Latina
languages.mos=mossi
languages.dz=dzonga
-languages.nic=niger - kordofanian (other)
-languages.dv=divehi
-languages.fiu=ugro-fin\u00eas (outros)
+languages.kcg=tyap
+languages.nic=Idioma cordofano-nigeriano
languages.lus=lushai
+languages.fiu=fino-\u00fagrico
+languages.dv=divehi
languages.nia=nias
languages.moh=mohawk
+languages.luo=luo
languages.lun=lunda
languages.apa=idiomas apache
+languages.fil=filipino
languages.lui=luiseno
languages.hup=hupa
+languages.cch=atsam
languages.bin=bini
languages.de=alem\u00e3o
-languages.lua=luba-Lulua
+languages.lua=luba-lulua
languages.bik=bikol
languages.was=washo
languages.und=indeterminado
languages.war=waray
languages.da=dinamarqu\u00eas
-languages.dum=holand\u00eas, medieval (aprox. 1050-1350)
+languages.dum=holand\u00eas medieval
languages.wal=walamo
-languages.mno=manobo languages
-languages.wak=wakashan languages
+languages.mno=Idioma manobo
+languages.wak=Idioma wakashan
languages.sat=santali
languages.cy=gal\u00eas
languages.sas=sasak
+languages.kbd=kabardiano
languages.cv=chuvash
-languages.kbd=kabardian
languages.cu=eslavo eclesi\u00e1stico
languages.mni=manipuri
languages.cs=tcheco
languages.sam=aramaico samaritano
languages.cr=cree
-languages.sal=salishan languages
+languages.sal=Idioma salisano
languages.dua=duala
languages.co=c\u00f3rsico
-languages.sai=ind\u00edgenas sul-americanos (outros)
+languages.sai=Idioma ind\u00edgeno sul-americano
languages.mnc=manchu
languages.sah=iacuto
-languages.gba=gbaia
-languages.inh=inguche
languages.kaw=kawi
+languages.inh=inguche
+languages.gba=gbaia
languages.sad=sandawe
languages.ch=chamorro
+languages.ine=Idioma indo-europeu
languages.bho=bhojpuri
-languages.ine=indo-europeus (outros)
-languages.enm=ingl\u00eas, medieval (1100-1500)
-languages.ce=chechene
-languages.inc=\u00edndicos (outros)
+languages.enm=ingl\u00eas medieval
languages.kar=karen
+languages.inc=Idioma \u00edndico
+languages.ce=checheno
languages.gay=gayo
languages.ca=catal\u00e3o
languages.umb=umbundu
languages.syr=sir\u00edaco
languages.kam=kamba
+languages.anp=angika
languages.tsi=tsimshian
-languages.ang=ingl\u00eas, arcaico (aprox. 450-1100)
-languages.cau=caucasianos (outros)
+languages.kaj=jju
+languages.ang=ingl\u00eas arcaico
languages.kac=kachin
+languages.cau=Idioma cauc\u00e1sico
languages.kab=kabyle
+languages.kaa=kara-kalpak
languages.bs=b\u00f3snio
-languages.kaa=kara-Kalpak
-languages.br=bret\u00e3o
languages.car=caribe
+languages.br=bret\u00e3o
+languages.syc=sir\u00edaco cl\u00e1ssico
languages.bo=tibetano
languages.bn=bengali
languages.bm=bambara
languages.gaa=ga
+languages.cai=Idioma ind\u00edgena centro-americano
languages.bi=bislam\u00e1
-languages.cai=ind\u00edgenas centro-americanos (outros)
languages.bh=biari
languages.bg=b\u00falgaro
languages.be=bielo-russo
+languages.pt_BR=portugu\u00eas do Brasil
languages.cad=caddo
languages.ba=bashkir
languages.zu=zulu
languages.zen=zenaga
-languages.pro=proven\u00e7al, arcaico (at\u00e9 1500)
-languages.hsb=upper sorbian
+languages.pro=proven\u00e7al arcaico
+languages.hsb=s\u00e9rvio superior
languages.az=azerbaijano
languages.ay=aimara
-languages.av=avaric
+languages.av=\u00e1varo
languages.as=assam\u00eas
+languages.dsb=s\u00e9rvio baixo
languages.ar=\u00e1rabe
-languages.dsb=Lower Sorbian
-languages.elx=elamite
languages.ilo=ilocano
+languages.elx=elamite
languages.zh=chin\u00eas
languages.an=aragon\u00eas
-languages.pra=idiomas pr\u00e1crito
+languages.pra=Idioma pr\u00e1crito
languages.am=am\u00e1rico
languages.new=newari
-languages.ak=Akan
+languages.ak=akan
languages.za=zhuang
+languages.en_US=ingl\u00eas americano
languages.af=afric\u00e2ner
languages.ae=av\u00e9stico
-languages.ab=abkhazian
+languages.alt=altai do sul
+languages.ab=abc\u00e1sio
languages.aa=afar
-languages.yo=ioruba
+languages.yo=iorub\u00e1
languages.alg=idiomas algonquianos
languages.ale=ale\u00fate
-languages.mkh=mon-khmer (other)
-languages.yi=i\u00eddiche
-languages.dra=drav\u00eddicos (outros)
+languages.mkh=L\u00ednguas mon-khmer
+languages.yi=\u00eddiche
+languages.dra=dravidianos
languages.ber=berbere
-languages.nds=alto alem\u00e3o; baixo sax\u00e3o
+languages.nds=baixo alem\u00e3o
languages.bem=bemba
languages.bej=beja
languages.tpi=tok pisin
-variants.REVISED=Revisado
+variants.POSIX=computador
+variants.AREVMDA=arm\u00eanio ocidental
+variants.1996=ortografia alem\u00e3 de 1996
+variants.SOLBA=dialeto stolvizza/solbica
+variants.NEDIS=dialeto natisone
+variants.1994=ortografia resiana padronizada
+variants.1901=ortografia alem\u00e3 tradicional
+variants.FONUPA=fon\u00e9tica do Alfabeto Fon\u00e9tico Ur\u00e1lico
+variants.OSOJS=dialeto oseacco/osojane
+variants.LIPAW=dialeto lipovaz de Resian
+variants.REVISED=ortografia revisada
+variants.NJIVA=dialeto gniva/njiva
+variants.TARASK=ortografia taraskievica
+variants.FONIPA=fon\u00e9tica do Alfabeto Fon\u00e9tico Internacional
+variants.BISKE=dialeto san giorgio/bila
+variants.SCOUSE=scouse
+variants.BAKU1926=alfabeto latino turco unificado
+variants.SAAHO=saho
+variants.ROZAJ=resiano
+variants.MONOTON=monot\u00f4nico
+variants.POLYTON=polit\u00f4nico
+variants.AREVELA=arm\u00eanio oriental
+variants.SCOTLAND=Ingl\u00eas padr\u00e3o Escoc\u00eas
+variants.BOONT=boontling
+variants.1606NICT=franc\u00eas antigo de 1606
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt_PT.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt_PT.properties
index e8eecd8..ba2ee37 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt_PT.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_pt_PT.properties
@@ -5,68 +5,269 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-shortDateFormat=yy/MM/dd
-mediumDateFormat=yyyy/MM/dd
-territories.PS=Territ\u00f3rio Palestiniano
+groupingSeparator=\u00a0
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.TZS=Xelim de Tanz\u00e2nia
+currenciesDisplayName.FJD=D\u00f3lar das Fiji
+currenciesDisplayName.CZK=Coroa da Rep\u00fablica Checa
+currenciesDisplayName.PLN=Zloti polaco
+currenciesDisplayName.YUN=Dinar convers\u00edvel jugoslavo
+currenciesDisplayName.BEC=Franco belga (convert\u00edvel)
+currenciesDisplayName.YUM=Super Dinar jugoslavo
+currenciesDisplayName.XXX=Moeda inv\u00e1lida ou desconhecida
+currenciesDisplayName.KWD=Dinar koweitiano
+currenciesDisplayName.ECV=Unidade de Valor Constante (UVC) do Equador
+currenciesDisplayName.YUD=Dinar forte jugoslavo
+currenciesDisplayName.AED=Dirham dos Emirados \u00c1rabes Unidos
+currenciesDisplayName.ANG=Florim das Antilhas Holandesa
+currenciesDisplayName.NIO=C\u00f3rdoba Ouro nicaraguano
+currenciesDisplayName.AWG=Florim de Aruba
+currenciesDisplayName.BAM=Marco b\u00f3snio-herzeg\u00f3vino convers\u00edvel
+currenciesDisplayName.CYP=Libra de Chipre
+currenciesDisplayName.XEU=Unidade da Moeda Europeia
+currenciesDisplayName.HNL=Lempira das Honduras
+currenciesDisplayName.BAD=Dinar da B\u00f3snia-Herzeg\u00f3vina
+currenciesDisplayName.NIC=C\u00f3rdoba nicaraguano
+currenciesDisplayName.MXV=Unidad de Inversion (UDI) mexicana
+currenciesDisplayName.ZWD=D\u00f3lar do Zimbabwe
+currenciesDisplayName.SGD=D\u00f3lar de Singapura
+currenciesDisplayName.GTQ=Quetzal da Guatemala
+currenciesDisplayName.MXP=Peso Prata mexicano (1861-1992)
+currenciesDisplayName.QAR=Rial do Qatar
+currenciesDisplayName.MLF=Franco do Mali
+currenciesDisplayName.KYD=D\u00f3lar das Ilhas Caim\u00e3o
+currenciesDisplayName.XBD=Unidade de Conta Europeia (XBD)
+currenciesDisplayName.XBC=Unidade de Conta Europeia (XBC)
+currenciesDisplayName.GHC=Cedi do Gana
+currenciesDisplayName.XBB=Unidade Monet\u00e1ria Europeia
+currenciesDisplayName.GNF=Franco da Guin\u00e9
+currenciesDisplayName.XBA=Unidade Composta Europeia
+currenciesDisplayName.BYB=Rublo novo bielorusso (1994-1999)
+currenciesDisplayName.AFN=Afeghani
+currenciesDisplayName.MKD=Dinar maced\u00f3nio
+currenciesDisplayName.MWK=Cuacha do Malawi
+currenciesDisplayName.GMD=Dalasi da G\u00e2mbia
+currenciesDisplayName.AFA=Afeghani (1927-2002)
+currenciesDisplayName.WST=Tala de Samoa Ocidental
+currenciesDisplayName.PLZ=Zloti polaco (1950-1995)
+shortMonths=Jan\u00aeFev\u00aeMar\u00aeAbr\u00aeMai\u00aeJun\u00aeJul\u00aeAgo\u00aeSet\u00aeOut\u00aeNov\u00aeDez\u00ae\u00ae
+months=Janeiro\u00aeFevereiro\u00aeMar\u00e7o\u00aeAbril\u00aeMaio\u00aeJunho\u00aeJulho\u00aeAgosto\u00aeSetembro\u00aeOutubro\u00aeNovembro\u00aeDezembro\u00ae\u00ae
+ampms=Antes do meio-dia\u00aeDepois do meio-dia\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd/MM/yyyy
+fullTimeFormat=HH'H'mm'm'ss's' z
+zoneStrings=Marshall_Islands\u00aeHora das Ilhas Marshall\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00aeHora de Shevchenko\u00ae\u00aeHora de Ver\u00e3o de Shevchenko\u00ae\u00ae\u00a9Bangladesh\u00aeHora do Bangladesh\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeHora Padr\u00e3o da Austr\u00e1lia Central Ocidental\u00ae\u00aeHora de Ver\u00e3o da Austr\u00e1lia Central Ocidental\u00ae\u00ae\u00a9Marquesas\u00aeHora das Marquesas\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeHora da Indon\u00e9sia Central\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeHora Padr\u00e3o Oriental\u00ae\u00aeHora de Ver\u00e3o Oriental\u00ae\u00ae\u00a9China\u00aeHora Padr\u00e3o da China\u00ae\u00aeHora de Ver\u00e3o da China\u00ae\u00ae\u00a9Omsk\u00aeHora de Omsk\u00ae\u00aeHora de Ver\u00e3o de Omsk\u00ae\u00ae\u00a9Uzbekistan\u00aeHora do Uzbequist\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Uzbequist\u00e3o\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeHora Padr\u00e3o do Cazaquist\u00e3o do Leste\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeHora de Carachi\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeHora de Tbilisi\u00ae\u00aeHora de Ver\u00e3o de Tbilisi\u00ae\u00ae\u00a9Tashkent\u00aeHora de Tashkent\u00ae\u00aeHora de Ver\u00e3o de Tashkent\u00ae\u00ae\u00a9Changbai\u00aeHora de Changbai\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeHora Padr\u00e3o de Chatham\u00ae\u00aeHora de Ver\u00e3o de Chatham\u00ae\u00ae\u00a9South_Georgia\u00aeHora da Georgia do Sul\u00ae\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeHora da Guiana Francesa\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeHora de Frunze\u00ae\u00aeHora de Ver\u00e3o de Frunze\u00ae\u00ae\u00a9Europe_Eastern\u00aeHora da Europa Oriental\u00ae\u00aeHora de Ver\u00e3o da Europa Oriental\u00ae\u00ae\u00a9Dacca\u00aeHora de Dacca\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00aeHora de Dushanbe\u00ae\u00aeHora de Ver\u00e3o de Dushanbe\u00ae\u00ae\u00a9Chile\u00aeHora do Chile\u00ae\u00aeHora de Ver\u00e3o do Chile\u00ae\u00ae\u00a9Europe_Central\u00aeHora da Europa Central\u00ae\u00aeHora de Ver\u00e3o da Europa Central\u00ae\u00ae\u00a9Acre\u00aeHora do Acre\u00ae\u00aeHora de Ver\u00e3o do Acre\u00ae\u00ae\u00a9Arabian\u00aeHora Padr\u00e3o da Ar\u00e1bia\u00ae\u00aeHora de Ver\u00e3o da Ar\u00e1bia\u00ae\u00ae\u00a9East_Timor\u00aeHora de Timor Leste\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeHora Padr\u00e3o da Nova Zel\u00e2ndia\u00ae\u00aeHora de Ver\u00e3o da Nova Zel\u00e2ndia\u00ae\u00ae\u00a9Africa_Southern\u00aeHora Padr\u00e3o da \u00c1frica do Sul\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeHora de Kwajalein\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeHora Padr\u00e3o da Montanha\u00ae\u00aeHora de Ver\u00e3o da Montanha\u00ae\u00ae\u00a9DumontDUrville\u00aeHora de Dumont-d'Urville\u00ae\u00ae\u00ae\u00ae\u00a9Tokelau\u00aeHora de Toquelau\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeHora do Equador\u00ae\u00ae\u00ae\u00ae\u00a9Hovd\u00aeHora de Hovd\u00ae\u00aeHora de Ver\u00e3o de Hovd\u00ae\u00ae\u00a9Africa_Central\u00aeHora da \u00c1frica Central\u00ae\u00ae\u00ae\u00ae\u00a9Phoenix_Islands\u00aeHora das Ilhas F\u00e9nix\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00aeHora da Arm\u00e9nia\u00aeAMT (Arm\u00e9nia)\u00aeHora de Ver\u00e3o da Arm\u00e9nia\u00aeAMST (Arm\u00e9nia)\u00ae\u00a9Sakhalin\u00aeHora de Sakhalin\u00ae\u00aeHora de Ver\u00e3o de Sakhalin\u00ae\u00ae\u00a9Samara\u00aeHora de Samara\u00ae\u00aeHora de Ver\u00e3o de Samara\u00ae\u00ae\u00a9Palau\u00aeHora de Palau\u00ae\u00ae\u00ae\u00ae\u00a9Kosrae\u00aeHora de Kosrae\u00ae\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeHora Padr\u00e3o do Alaska-Havai\u00ae\u00aeHora de Ver\u00e3o do Alaska-Havai\u00ae\u00ae\u00a9Pitcairn\u00aeHora de Pitcairn\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00aeHora Padr\u00e3o Central\u00ae\u00aeHora de Ver\u00e3o Central\u00ae\u00ae\u00a9Malaysia\u00aeHora da Mal\u00e1sia\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeHora Padr\u00e3o de Moscovo\u00ae\u00aeHora de Ver\u00e3o de Moscovo\u00ae\u00ae\u00a9Vanuatu\u00aeHora de Vanuatu\u00ae\u00ae\u00ae\u00ae\u00a9Kamchatka\u00aeHora de Petropavlovsk-Kamchatski\u00ae\u00aeHora de Ver\u00e3o de Petropavlovsk-Kamchatski\u00ae\u00ae\u00a9Cape_Verde\u00aeHora de Cabo Verde\u00ae\u00aeHora de Ver\u00e3o de Cabo Verde\u00ae\u00ae\u00a9Aqtobe\u00aeHora de Aqtobe\u00ae\u00aeHora de Ver\u00e3o de Aqtobe\u00ae\u00ae\u00a9Falkland\u00aeHora das Ilhas Malvinas\u00ae\u00aeHora de Ver\u00e3o das Ilhas Malvinas\u00ae\u00ae\u00a9Argentina\u00aeHora da Argentina\u00ae\u00aeHora de Ver\u00e3o da Argentina\u00ae\u00ae\u00a9Krasnoyarsk\u00aeHora de Krasnoyarsk\u00ae\u00aeHora de Ver\u00e3o de Krasnoyarsk\u00ae\u00ae\u00a9Qyzylorda\u00aeHora de Qyzylorda\u00ae\u00aeHora de Ver\u00e3o de Qyzylorda\u00ae\u00ae\u00a9Tahiti\u00aeHora do Tahiti\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00aeHora do Oceano \u00cdndico\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeHora do Meridiano de Greenwich\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00aeHora de Vladivostok\u00ae\u00aeHora de Ver\u00e3o de Vladivostok\u00ae\u00ae\u00a9Atlantic\u00aeHora Padr\u00e3o do Atl\u00e2ntico\u00ae\u00aeHora de Ver\u00e3o do Atl\u00e2ntico\u00ae\u00ae\u00a9Truk\u00aeHora de Truk\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aeHora de Rothera\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeHora de Wallis e Futuna\u00ae\u00ae\u00ae\u00ae\u00a9Syowa\u00aeHora de Syowa\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00aeHora Padr\u00e3o da Coreia\u00ae\u00aeHora de Ver\u00e3o da Coreia\u00ae\u00ae\u00a9Ashkhabad\u00aeHora de Ashkhabad\u00ae\u00aeHora de Ver\u00e3o de Ashkhabad\u00ae\u00ae\u00a9Australia_Western\u00aeHora Padr\u00e3o da Austr\u00e1lia Ocidental\u00ae\u00aeHora de Ver\u00e3o da Austr\u00e1lia Ocidental\u00ae\u00ae\u00a9Gilbert_Islands\u00aeHora das Ilhas Gilbert\u00ae\u00ae\u00ae\u00ae\u00a9Seychelles\u00aeHora das Ilhas Seicheles\u00ae\u00ae\u00ae\u00ae\u00a9Cocos\u00aeHora das Ilhas Cocos\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00aeHora de Yakutsk\u00ae\u00aeHora de Ver\u00e3o de Yakutsk\u00ae\u00ae\u00a9Azerbaijan\u00aeHora do Azerbeij\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Azerbeij\u00e3o\u00ae\u00ae\u00a9Kizilorda\u00aeHora de Kizilorda\u00ae\u00aeHora de Ver\u00e3o de Kizilorda\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHora da Guiana Holandesa\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeHora de Yerevan\u00ae\u00aeHora de Ver\u00e3o de Yerevan\u00ae\u00ae\u00a9Turkmenistan\u00aeHora do Turquemenist\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Turquemenist\u00e3o\u00ae\u00ae\u00a9Newfoundland\u00aeHora Padr\u00e3o da Terra Nova\u00ae\u00aeHora de Ver\u00e3o da Terra Nova\u00ae\u00ae\u00a9Africa_Eastern\u00aeHora da \u00c1frica Oriental\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00aeHora das Ilhas Wake\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aeHora do Paquist\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Paquist\u00e3o\u00ae\u00ae\u00a9Singapore\u00aeHora Padr\u00e3o de Singapura\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Western\u00aeHora da Europa Ocidental\u00ae\u00aeHora de Ver\u00e3o da Europa Ocidental\u00ae\u00ae\u00a9Kuybyshev\u00aeHora de Kuybyshev\u00ae\u00aeHora de Ver\u00e3o de Kuybyshev\u00ae\u00ae\u00a9India\u00aeHora Padr\u00e3o da \u00cdndia\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeHora Padr\u00e3o de Chamarro\u00ae\u00ae\u00ae\u00ae\u00a9Bolivia\u00aeHora da Bol\u00edvia\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeHora da Indon\u00e9sia Ocidental\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeHora de Gal\u00e1pagos\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00aeHora Padr\u00e3o do Ir\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Ir\u00e3o\u00ae\u00ae\u00a9Vostok\u00aeHora de Vostok\u00ae\u00ae\u00ae\u00ae\u00a9Papua_New_Guinea\u00aeHora da Papua Nova Guin\u00e9\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeHora de Malaia\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeHora Padr\u00e3o de Bering\u00ae\u00aeHora de Ver\u00e3o de Bring\u00ae\u00ae\u00a9Mawson\u00aeHora de Mawson\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeHora da Georgia\u00ae\u00aeHora de Ver\u00e3o da Georgia\u00ae\u00ae\u00a9Kyrgystan\u00aeHora do Quirguizist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeHora da Ant\u00e1rtida e dos Territ\u00f3rios Franceses do Sul\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aeHora de Ponape\u00ae\u00ae\u00ae\u00ae\u00a9Christmas\u00aeHora da Ilha de Natal\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeHora do Sri Lanka\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeHora das Filipinas\u00ae\u00aeHora de Ver\u00e3o das Filipinas\u00ae\u00ae\u00a9Argentina_Western\u00aeHora da Argentina Ocidental\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeHora de Volvograd\u00ae\u00aeHora de Ver\u00e3o de Volgograd\u00ae\u00ae\u00a9Hong_Kong\u00aeHora de Hong Kong\u00ae\u00aeHora de Ver\u00e3o de Hong Kong\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeHora Padr\u00e3o do Casaquist\u00e3o do Oeste\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeHora Padr\u00e3o de Guam\u00ae\u00ae\u00ae\u00ae\u00a9Amazon\u00aeHora do Amazonas\u00ae\u00aeHora de Ver\u00e3o do Amazonas\u00ae\u00ae\u00a9Niue\u00aeHora de Niue\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aeHora da Turquia\u00ae\u00aeHora de Ver\u00e3o da Turquia\u00ae\u00ae\u00a9Nepal\u00aeHora do Nepal\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeHora das Ilhas Cook\u00ae\u00aeHora Interm\u00e9dia de Ver\u00e3o das Ilhas Cook\u00ae\u00ae\u00a9Macau\u00aeHora de Macau\u00ae\u00aeHora de Ver\u00e3o de Macau\u00ae\u00ae\u00a9Mauritius\u00aeHora das Ilhas Maur\u00edcias\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aeHora Padr\u00e3o de Cuba\u00ae\u00aeHora de Ver\u00e3o de Cuba\u00ae\u00ae\u00a9Lord_Howe\u00aeHora Padr\u00e3o de Lord Howe\u00ae\u00aeHora de Ver\u00e3o de Lord Howe\u00ae\u00ae\u00a9Tonga\u00ae\u00ae\u00aeHora de Ver\u00e3o de Tonga\u00ae\u00ae\u00a9Maldives\u00aeHora das Ilhas Maldivas\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00aeHora de Ulan Bator\u00ae\u00aeHora de Ver\u00e3o de Ulan Bator\u00ae\u00ae\u00a9Anadyr\u00aeHora de Anadyr\u00ae\u00aeHora de Ver\u00e3o de Anadyr\u00ae\u00ae\u00a9Irkutsk\u00aeHora de Irkutsk\u00ae\u00aeHora de Ver\u00e3o de Irkutsk\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeHora da Indon\u00e9sia Oriental\u00ae\u00ae\u00ae\u00ae\u00a9Reunion\u00aeHora das Ilhas de Reuni\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeHora Padr\u00e3o do Golfo\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeHora do Afeganist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeHora de Kashgar\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeHora do Brunei Darussalam\u00ae\u00ae\u00ae\u00ae\u00a9Novosibirsk\u00aeHora de Novosibirsk\u00ae\u00aeHora de Ver\u00e3o de Novosibirsk\u00ae\u00ae\u00a9Brasilia\u00aeHora de Bras\u00edlia\u00ae\u00aeHora de Ver\u00e3o de Bras\u00edlia\u00ae\u00ae\u00a9Line_Islands\u00aeHora das Ilhas Line\u00ae\u00ae\u00ae\u00ae\u00a9America_Pacific\u00aeHora Padr\u00e3o do Pac\u00edfico\u00ae\u00aeHora de Ver\u00e3o do Pac\u00edfico\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHora Padr\u00e3o do Havai\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeHora de Samarkand\u00ae\u00aeHora de Ver\u00e3o de Samarkand\u00ae\u00ae\u00a9Australia_Central\u00aeHora Padr\u00e3o da Austr\u00e1lia Central\u00ae\u00aeHora de Ver\u00e3o da Austr\u00e1lia Central\u00ae\u00ae\u00a9Long_Shu\u00aeHora de Long-Shu\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeHora das Ilhas Fiji\u00ae\u00aeHora de Ver\u00e3o das Ilhas Fiji\u00ae\u00ae\u00a9Israel\u00aeHora Padr\u00e3o de Israel\u00ae\u00aeHora de Ver\u00e3o de Israel\u00ae\u00ae\u00a9Yekaterinburg\u00aeHora de Yekaterinburg\u00ae\u00aeHora de Ver\u00e3o de Yekaterinburg\u00ae\u00ae\u00a9Easter\u00aeHora da Ilha de P\u00e1scoa\u00ae\u00aeHora de Ver\u00e3o da Ilha de P\u00e1scoa\u00ae\u00ae\u00a9Almaty\u00aeHora de Almaty\u00ae\u00aeHora de Ver\u00e3o de Almaty\u00ae\u00ae\u00a9Sverdlovsk\u00aeHora de Sverdlovsk\u00ae\u00aeHora de Ver\u00e3o de Sverdlovsk\u00ae\u00ae\u00a9Africa_Western\u00aeHora da \u00c1frica Ocidental\u00ae\u00aeHora de Ver\u00e3o da \u00c1frica Ocidental\u00ae\u00ae\u00a9Samoa\u00aeHora Padr\u00e3o da Samoa\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeHora do Bot\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeHora de Ural'sk\u00ae\u00aeHora de Ver\u00e3o de Ural'sk\u00ae\u00ae\u00a9Alaska\u00aeHora Padr\u00e3o do Alaska\u00ae\u00aeHora de Ver\u00e3o do Alaska\u00ae\u00ae\u00a9Urumqi\u00aeHora de Urumqi\u00ae\u00ae\u00ae\u00ae\u00a9Colombia\u00aeHora da Col\u00f4mbia\u00ae\u00aeHora de Ver\u00e3o da Col\u00f4mbia\u00ae\u00ae\u00a9Aktyubinsk\u00aeHora de Aktyubinsk\u00ae\u00aeHora de Ver\u00e3o de Aktyubinsk\u00ae\u00ae\u00a9North_Mariana\u00aeHora das Ilhas Mariana do Norte\u00ae\u00ae\u00ae\u00ae\u00a9Nauru\u00aeHora de Nauru\u00ae\u00ae\u00ae\u00ae\u00a9Magadan\u00aeHora de Magadan\u00ae\u00aeHora de Ver\u00e3o de Magadan\u00ae\u00ae\u00a9Tajikistan\u00aeHora do Tajiquist\u00e3o\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00aeHora de Choibalsan\u00ae\u00aeHora de Ver\u00e3o de Choibalsan\u00ae\u00ae\u00a9New_Caledonia\u00aeHora da Nova Caled\u00f3nia\u00ae\u00aeHora de Ver\u00e3o da Nova Caled\u00f3nia\u00ae\u00ae\u00a9Azores\u00aeHora dos A\u00e7ores\u00ae\u00aeHora de Ver\u00e3o dos A\u00e7ores\u00ae\u00ae\u00a9Aqtau\u00aeHora de Aqtau\u00ae\u00aeHora de Ver\u00e3o de Aqtau\u00ae\u00ae\u00a9Baku\u00aeHora de Baku\u00ae\u00aeHora de Ver\u00e3o de Baku\u00ae\u00ae\u00a9Australia_Eastern\u00aeHora Padr\u00e3o da Austr\u00e1lia Oriental\u00ae\u00aeHora de Ver\u00e3o da Austr\u00e1lia Oriental\u00ae\u00ae\u00a9Davis\u00aeHora de Davis\u00ae\u00ae\u00ae\u00ae\u00a9Gambier\u00aeHora de Gambier\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Central\u00aeHora da Gronel\u00e2ndia Central\u00ae\u00aeHora de Ver\u00e3o da Gronel\u00e2ndia Central\u00ae\u00ae\u00a9Japan\u00aeHora Padr\u00e3o do Jap\u00e3o\u00ae\u00aeHora de Ver\u00e3o do Jap\u00e3o\u00ae\u00ae\u00a9Borneo\u00aeHora do Born\u00e9u\u00ae\u00aeHora de Ver\u00e3o do Born\u00e9u\u00ae\u00ae\u00a9
+territories.TC=Ilhas Turks e Caicos
+territories.GW=Guin\u00e9-Bissau
+territories.AQ=Ant\u00e1rctica
+territories.MW=Malaui
+territories.AM=Arm\u00e9nia
+territories.MU=Maur\u00edcias
+territories.AI=Anguilha
+territories.MS=Monserrate
territories.GL=Gronel\u00e2ndia
territories.MP=Ilhas Mariana do Norte
territories.MO=Macau - Regi\u00e3o Administrativa Especial da China
-territories.AE=Emiratos \u00c1rabes Unidos
+territories.AE=Emirados \u00c1rabes Unidos
territories.MK=Maced\u00f3nia, Rep\u00fablica da
-territories.PL=Pol\u00f3nia
territories.SM=S\u00e3o Marino
-territories.VN=Vietname
territories.MG=Madag\u00e1scar
+territories.SJ=Esvalbarda e Jan Mayen
territories.SI=Eslov\u00e9nia
-territories.PG=Papua Nova Guin\u00e9
territories.MD=Mold\u00e1via, Rep\u00fablica da
-territories.VI=Ilhas Virgin E.U.A.
-territories.SG=Singapura
territories.MC=M\u00f3naco
-territories.VG=Ilhas Virgin Brit\u00e2nicas
-territories.CZ=Rep\u00fablica Checa
+territories.SG=Singapura
territories.SC=Seicheles
-territories.CX=Ilha do Natal
territories.YE=I\u00e9men
-territories.VC=Saint Vincent e Grenadines
-territories.VA=Santa S\u00e9 (Estado da Cidade do Vaticano)
territories.LV=Let\u00f3nia
-territories.UZ=Uzbaquist\u00e3o
-territories.CM=Camar\u00f5es
-territories.FK=Ilhas Falkland
+territories.FO=Ilhas Faro\u00e9
+territories.FM=Estados Federados da Micron\u00e9sia
+territories.FK=Ilhas Falkland ou Malvinas
+territories.018=\u00c1frica Meridional
+territories.017=\u00c1frica Interior
+territories.015=Norte de \u00c1frica
+territories.172=172
territories.RO=Rom\u00e9nia
-territories.UM=Ilhas Minor Outlying (E.U.A)
-territories.RE=Reunion
territories.LA=Lao, Rep\u00fablica Popular Democr\u00e1tica
-territories.BY=Bielorr\u00fassia
territories.KZ=Cazaquist\u00e3o
territories.KY=Ilhas Caim\u00e3o
+territories.KW=Cuaite
territories.ER=Eritreia
territories.KR=Coreia do Sul
-territories.BJ=Benim
+territories.009=Oce\u00e2nia
+territories.QU=Uni\u00e3o Europeia
territories.KP=Coreia do Norte
territories.KN=Saint Kitts e Nevis
-territories.HK=Hong Kong - Regi\u00e3o Administrativa Especial da China
-territories.EH=Sahara Ocidental
+territories.EH=Sara Ocidental
territories.EG=Egipto
+territories.QO=Oce\u00e2nia Insular
territories.EE=Est\u00f3nia
-territories.TM=Turquemenist\u00e3o
-territories.BA=B\u00f3snia-Herzegovina
territories.KG=Quirguizist\u00e3o
+territories.062=\u00c1sia Sul-Central
territories.KE=Qu\u00e9nia
+territories.PS=Territ\u00f3rio Palestiniano
+territories.154=Europa do Norte
+territories.151=Europa de Leste
+territories.057=Micron\u00e9sia
+territories.PL=Pol\u00f3nia
+territories.VN=Vietname
+territories.PG=Papua Nova Guin\u00e9
+territories.CZ=Rep\u00fablica Checa
+territories.VI=Ilhas Virgens dos EUA
+territories.CX=Ilha do Natal
+territories.VC=The main pump fixing screws with the correct strength class
+territories.IR=Ir\u00e3o
+territories.UZ=Usbequist\u00e3o
+territories.CG=Congo-Brazzaville
+territories.CD=Rep\u00fablica Democr\u00e1tica do Congo
+territories.CC=Ilhas Cocos
+territories.UM=Ilhas Minor Outlying (E.U.A)
+territories.BY=Bielorr\u00fassia
+territories.BS=Baamas
+territories.BJ=Benim
+territories.BH=Bareine
+territories.HK=Hong Kong - Regi\u00e3o Administrativa Especial da China
+territories.BF=Burkina-Faso
+territories.TT=Trindade e Tobago
+territories.BD=Bangladesh
+territories.ZW=Zimbabu\u00e9
+territories.035=Sudeste Asi\u00e1tico
+territories.NL=Pa\u00edses Baixos
+territories.TM=Turquemenist\u00e3o
+territories.TK=Toquelau
+territories.NF=Ilha Norfolque
territories.TJ=Tajiquist\u00e3o
-territories.NC=Nova Caled\u00f3nia
territories.AZ=Azerbeij\u00e3o
-territories.TF=Territ\u00f3rios Franceses a Sul
-territories.TD=Tchade
-territories.TC=Ilhas Turcas e Caicos
-territories.GW=Guin\u00e9-Bissau
-territories.AQ=Ant\u00e1rctica
-territories.GS=Ilhas South Georgia e South Sandwich
-territories.AM=Arm\u00e9nia
-territories.MU=Maur\u00edcias
-languages.sl=esloveno
+territories.NC=Nova Caled\u00f3nia
+territories.AX=Ilhas Alanda
+languages.mul=v\u00e1rias l\u00ednguas
+languages.en=Ingl\u00eas
+languages.nl_BE=flamengo (B\u00e9lgica)
+languages.nub=l\u00edngua n\u00fabia
+languages.phi=idioma filipino
+languages.zxx=sem conte\u00fado lingu\u00edstico
+languages.tai=idioma tail\u00e2ndes
+languages.sal=salishan languages
+languages.kj=kuanyama
+languages.sgn=linguagem de sinais
+languages.sai=l\u00edngua ind\u00edgena sul-americana
+languages.tyv=tuviniano
+languages.oto=l\u00edngua otomana
+languages.lua=luba-lulua
+languages.cpp=crioulo ou pidgin do portugu\u00eas
+languages.awa=Awadhi
+languages.mno=l\u00edngua manobo
+languages.fiu=idioma ugro-fin\u00eas
+languages.zh_Hans=chin\u00eas simplificado
+languages.smi=idioma sami
+languages.zh_Hant=chin\u00eas tradicional
+languages.jv=jv
+languages.cpf=Crioulo ou Pidgin do Franc\u00eas
+languages.cpe=Crioulo ou Pidgin do Ingl\u00eas
+languages.goh=alem\u00e3o arcaico alto
+languages.khi=l\u00edngua khoisan
+languages.ssa=l\u00edngua nilo-saariana
+languages.paa=idioma papuano
+languages.nai=l\u00edngua ind\u00edgena norte-americana
languages.pl=polaco
+languages.nah=Nauatle
+languages.apa=l\u00edngua apache
+languages.iba=Iban
+languages.wen=idioma s\u00f3rbio
+languages.nso=soto setentrional
+languages.cus=l\u00edngua cuchita
+languages.ine=l\u00edngua indo-europeia
languages.cs=checo
+languages.inc=l\u00edngua \u00edndica
+languages.sla=idioma eslavo
+languages.mga=irland\u00eas medieval
+languages.tet=tetum
+languages.aus=l\u00edngua australiana
+languages.os=oss\u00e9tico
+languages.kaa=kara-kalpak
+languages.bug=Buginese
+languages.pro=proven\u00e7al arcaico
+languages.ik=Inupiaq
+languages.enm=ingl\u00eas medieval
+languages.ce=chechene
+languages.ig=igbo
+languages.sem=l\u00edngua semita
+languages.bua=buriat
+languages.chn=jarg\u00e3o chinook
+languages.ypk=idioma i\u00fapique
+languages.oc=proven\u00e7al
+languages.pra=idioma pr\u00e1cito
+languages.gsw=alem\u00e3o da Su\u00ed\u00e7a
+languages.egy=Eg\u00edpcio cl\u00e1ssico
+languages.hy=arm\u00e9nio
+languages.peo=persa arcaico
+languages.pt_PT=portugu\u00eas europeu
+languages.gmh=alem\u00e3o medieval alto
+languages.cau=l\u00edngua caucasiana
+languages.hsb=sorbiano superior
+languages.de_CH=alem\u00e3o alto (Su\u00ed\u00e7a)
+languages.ang=ingl\u00eas arcaico
+languages.bat=l\u00edngua b\u00e1ltica
+languages.lez=lezghiano
+languages.ath=idioma atabascano
+languages.to=tongan\u00eas
+languages.cai=l\u00edngua centro-americana ind\u00edgena
+languages.tl=tagalogue
+languages.dyu=diula
+languages.krc=karachay-balkar
+languages.bai=bamileke Languages
+languages.tg=tajique
+languages.ta=tamil
+languages.mkh=Mon-Khmer
+languages.cmc=idioma chamic
+languages.frs=fr\u00edsio oriental
+languages.ak=akan
+languages.byn=blin
+languages.nds=baixo alem\u00e3o
+languages.fro=franc\u00eas arcaico
+languages.af=Afrikaans
+languages.frm=franc\u00eas medieval
+languages.sit=idioma sino-tibetano
+languages.grc=grego cl\u00e1ssico
+languages.mk=maced\u00f3nio
+languages.grb=grebo
+languages.tut=l\u00edngua altaica
+languages.sio=l\u00edngua sioux
+languages.tup=l\u00edngua tupi
+languages.tog=togan\u00eas
+languages.crp=Crioulo ou Pidgin
+languages.gem=l\u00edngua germ\u00e2nica
+languages.rom=roman\u00eas
+languages.crh=Turco da Crimeia
+languages.art=l\u00edngua artificial
+languages.dra=l\u00edngua dr\u00e1vida
+languages.afh=afrihili
+languages.zza=zazaki
+languages.alg=l\u00edngua algonquiana
+languages.afa=l\u00edngua afro-asi\u00e1tica
+languages.roa=l\u00edngua rom\u00e2nica
+languages.rm=reto-romance
+languages.cel=l\u00edngua celta
+languages.non=n\u00f3rdico arcaico
+languages.wak=idioma wakashan
+languages.nic=nigeriano - cordofano
languages.et=est\u00f3nio
+variants.POSIX=Computador
+variants.AREVMDA=arm\u00e9nio ocidental
+variants.1996=Alem\u00e3o Moderno
+variants.SOLBA=dialecto stolvizza/solbica
+variants.NEDIS=dialecto natisone
+variants.1901=Alem\u00e3o Tradicional
+variants.FONUPA=Alfabeto Fon\u00e9tico Ur\u00e1lico
+variants.OSOJS=dialecto oseacco/osojane
+variants.LIPAW=dialecto lipovaz de Resian
+variants.REVISED=Revis\u00e3o Ortogr\u00e1fica
+variants.NJIVA=dialecto gniva/njiva
+variants.FONIPA=Alfabeto Fon\u00e9tico Internacional
+variants.BISKE=dialecto san giorgio/bila
+variants.SCOUSE=Scouse
+variants.SAAHO=Saho
+variants.MONOTON=monot\u00f3nico
+variants.POLYTON=polit\u00f3nico
+variants.AREVELA=arm\u00e9nio oriental
+variants.BOONT=buntlingue
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ro.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ro.properties
index 439b980..97a5c12 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ro.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ro.properties
@@ -5,56 +5,267 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.INR=Rupie indian\u0103
-currenciesDisplayName.TRY=Noua lir\u0103 turceasc\u0103
-currenciesDisplayName.JPY=Yen japonez
-currenciesDisplayName.RUB=Rubl\u0103 ruseasc\u0103
-currenciesDisplayName.CNY=Yuan Renminbi chinezesc
-currenciesDisplayName.GBP=Lir\u0103 sterlin\u0103 britanic\u0103
-currenciesDisplayName.USD=Dolar SUA
-currenciesDisplayName.BRL=Real brazilian
-currenciesSymbol.ROL=lei
-shortMonths=Ian®Feb®Mar®Apr®Mai®Iun®Iul®Aug®Sep®Oct®Nov®Dec®®
-months=ianuarie®februarie®martie®aprilie®mai®iunie®iulie®august®septembrie®octombrie®noiembrie®decembrie®®
-shortWeekdays=®D®L®Ma®Mi®J®V®S®
-weekdays=®duminic\u0103®luni®mar\u0163i®miercuri®joi®vineri®s\u00eemb\u0103t\u0103®
-firstDayOfWeek=mon
-eras=d.C.®\u00ee.d.C.®
-shortDateFormat=dd.MM.yyyy
-mediumDateFormat=dd.MM.yyyy
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=dinar Yemen
+currenciesDisplayName.KES=\u0219iling kenyan
+currenciesDisplayName.TWD=dolar nou Taiwan
+currenciesDisplayName.LKR=rupie Sri Lanka
+currenciesDisplayName.RWF=franc rwandez
+currenciesDisplayName.TJR=rubl\u0103 Tadjikistan
+currenciesDisplayName.SDP=lir\u0103 sudanez\u0103
+currenciesDisplayName.GRD=drahm\u0103 greceasc\u0103
+currenciesDisplayName.IEP=lir\u0103 irlandez\u0103
+currenciesDisplayName.ARS=peso argentinian
+currenciesDisplayName.ARP=peso argentinian (1983\u20131985)
+currenciesDisplayName.SDD=dinar sudanez
+currenciesDisplayName.GEL=lari georgian
+currenciesDisplayName.CRC=colon costarican
+currenciesDisplayName.FKP=lir\u0103 Insulele Falkland
+currenciesDisplayName.EEK=coroan\u0103 estonian\u0103
+currenciesDisplayName.MDL=leu moldovenesc
+currenciesDisplayName.HKD=dolar Hong Kong
+currenciesDisplayName.IQD=dinar irakian
+currenciesDisplayName.SCR=rupie Seychelles
+currenciesDisplayName.KPW=won nord-coreean
+currenciesDisplayName.DKK=coroan\u0103 danez\u0103
+currenciesDisplayName.IDR=rupie indonezian\u0103
+currenciesDisplayName.SOS=\u0219iling somalez
+currenciesDisplayName.LVR=rubl\u0103 Letonia
+currenciesDisplayName.AED=dirham Emiratele Arabe Unite
+currenciesDisplayName.LVL=lats Letonia
+currenciesDisplayName.XTS=cod monetar de test
+currenciesDisplayName.FJD=dolar Fiji
+currenciesDisplayName.ADP=peset\u0103 andorran\u0103
+currenciesDisplayName.RUB=rubl\u0103 ruseasc\u0103
+currenciesDisplayName.CDF=franc congolez
+currenciesDisplayName.NIC=cordoba Nicaragua
+currenciesDisplayName.DJF=franc Djibouti
+currenciesDisplayName.UZS=sum Uzbekistan
+currenciesDisplayName.SBD=dolar Insulele Solomon
+currenciesDisplayName.LUL=franc financiar luxemburghez
+currenciesDisplayName.ECS=sucre Ecuador
+currenciesDisplayName.THB=baht thailandez
+currenciesDisplayName.PHP=peso filipinez
+currenciesDisplayName.LUF=franc luxemburghez
+currenciesDisplayName.RHD=dolar rhodesian
+currenciesDisplayName.LUC=franc convertibil luxemburghez
+currenciesDisplayName.FIM=marc\u0103 finlandez\u0103
+currenciesDisplayName.TTD=dolar Trinidad-Tobago
+currenciesDisplayName.MNT=tugrik mongol
+currenciesDisplayName.UAK=carboav\u0103 ucrainean\u0103
+currenciesDisplayName.SAR=riyal Arabia Saudit\u0103
+currenciesDisplayName.UAH=hryvna ucrainean\u0103
+currenciesDisplayName.HUF=forint maghiar
+currenciesDisplayName.QAR=riyal Qatar
+currenciesDisplayName.COP=peso columbian
+currenciesDisplayName.UYU=peso nou Uruguay
+currenciesDisplayName.GBP=lir\u0103 sterlin\u0103
+currenciesDisplayName.INR=rupie indian\u0103
+currenciesDisplayName.BIF=franc Burundi
+currenciesDisplayName.MZN=metical Mozambic
+currenciesDisplayName.LTL=lit lituanian
+currenciesDisplayName.UYP=peso Uruguay (1975\u20131993)
+currenciesDisplayName.MZM=metical Mozambic vechi
+currenciesDisplayName.BUK=kyat birman
+currenciesDisplayName.XFO=franc francez aur
+currenciesDisplayName.PGK=kina Papua-Noua Guinee
+currenciesDisplayName.SYP=lir\u0103 sirian\u0103
+currenciesDisplayName.OMR=riyal Oman
+currenciesDisplayName.MZE=escudo Mozambic
+currenciesDisplayName.ZRN=zair nou
+currenciesDisplayName.CNY=yuan renminbi chinezesc
+currenciesDisplayName.MAF=franc marocan
+currenciesDisplayName.RSD=dinar s\u00e2rbesc
+currenciesDisplayName.GNF=franc Guineea
+currenciesDisplayName.MAD=dirham marocan
+currenciesDisplayName.HTG=gourde Haiti
+currenciesDisplayName.TRY=lire turce\u015fti noi
+currenciesDisplayName.MMK=kyat Myanmar
+currenciesDisplayName.MYR=ringgit malaiezian
+currenciesDisplayName.SLL=leu Sierra Leone
+currenciesDisplayName.BTN=ngultrum Bhutan
+currenciesDisplayName.TRL=lire turce\u015fti
+currenciesDisplayName.KMF=franc comorian
+currenciesDisplayName.CZK=coroan\u0103 ceh\u0103
+currenciesDisplayName.ANG=gulden Antilele Olandeze
+currenciesDisplayName.AZN=manat azerbaidjan
+currenciesDisplayName.KYD=dolar Insulele Cayman
+currenciesDisplayName.GMD=dalasi Gambia
+currenciesDisplayName.BGN=leva bulg\u0103reasc\u0103 nou\u0103
+currenciesDisplayName.CAD=dolar canadian
+currenciesDisplayName.VEB=bolivar Venezuela
+currenciesDisplayName.MLF=franc Mali
+currenciesDisplayName.MXP=peso mexican de argint (1861\u20131992)
+currenciesDisplayName.ILS=\u0219echel israelian nou
+currenciesDisplayName.PES=sol Peru
+currenciesDisplayName.MXN=peso mexican
+currenciesDisplayName.GYD=dolar Guyana
+currenciesDisplayName.ILP=lir\u0103 israelian\u0103
+currenciesDisplayName.CYP=lir\u0103 cipriot\u0103
+currenciesDisplayName.SKK=coroan\u0103 slovac\u0103
+currenciesDisplayName.XDR=drepturi speciale de tragere
+currenciesDisplayName.PEN=sol nou Peru
+currenciesDisplayName.LRD=dolar liberian
+currenciesDisplayName.PEI=inti Peru
+currenciesDisplayName.AMD=dram armean
+currenciesDisplayName.BSD=dolar Bahamas
+currenciesDisplayName.XPT=platin\u0103
+currenciesDisplayName.HRK=kuna croat\u0103
+currenciesDisplayName.HRD=dinar croat
+currenciesDisplayName.CLP=peso chilian
+currenciesDisplayName.FRF=franc francez
+currenciesDisplayName.XPD=paladiu
+currenciesDisplayName.BRR=cruzeiro brazilian
+currenciesDisplayName.MKD=dinar macedonean
+currenciesDisplayName.ALL=leka albanez\u0103
+currenciesDisplayName.BRL=real brazilian
+currenciesDisplayName.BRE=cruzeiro brazilian (1990\u20131993)
+currenciesDisplayName.DEM=marc\u0103 german\u0103
+currenciesDisplayName.XCD=dolar Caraibele de Est
+currenciesDisplayName.KWD=dinar kuweitian
+currenciesDisplayName.NPR=rupie nepalez\u0103
+currenciesDisplayName.GWP=peso Guineea-Bissau
+currenciesDisplayName.YUN=dinar iugoslav convertibil
+currenciesDisplayName.YUM=dinar iugoslav nou
+currenciesDisplayName.SVC=colon El Salvador
+currenciesDisplayName.SIT=tolar sloven
+currenciesDisplayName.BEL=franc belgian (financiar)
+currenciesDisplayName.JPY=yen japonez
+currenciesDisplayName.YUD=dinar iugoslav greu
+currenciesDisplayName.BEF=franc belgian
+currenciesDisplayName.BEC=franc belgian (convertibil)
+currenciesDisplayName.SUR=rubl\u0103 sovietic\u0103
+currenciesDisplayName.RON=leu
+currenciesDisplayName.ROL=leu vechi
+currenciesDisplayName.DDM=marc\u0103 est-german\u0103
+currenciesDisplayName.BDT=taka Banglade\u0219
+currenciesDisplayName.NOK=coroan\u0103 norvegian\u0103
+currenciesDisplayName.ZAR=rand sud-african
+currenciesDisplayName.SHP=lir\u0103 Insula Sf. Elena
+currenciesDisplayName.XAU=aur
+currenciesDisplayName.ZAL=rand sud-african (financiar)
+currenciesDisplayName.VND=dong vietnamez
+currenciesDisplayName.TZS=\u0219iling tanzanian
+currenciesDisplayName.GIP=lir\u0103 Gibraltar
+currenciesDisplayName.TND=dinar tunisian
+currenciesDisplayName.CVE=escudo al Capului Verde
+currenciesDisplayName.UGX=\u0219iling ugandez
+currenciesDisplayName.XAG=argint
+currenciesDisplayName.JOD=dinar iordanian
+currenciesDisplayName.XAF=franc Comunitatea Financiar\u0103
+currenciesDisplayName.LBP=lir\u0103 libanez\u0103
+currenciesDisplayName.UGS=\u0219iling ugandez (1966\u20131987)
+currenciesDisplayName.STD=dobra Sao Tome \u0219i Principe
+currenciesDisplayName.KHR=riel cambodgian
+currenciesDisplayName.DOP=peso dominican
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BOV=mvdol bolivian
+currenciesDisplayName.USS=dolar american (aceea\u0219i zi)
+currenciesDisplayName.BOP=peso bolivian
+currenciesDisplayName.CUP=peso cubanez
+currenciesDisplayName.MTL=lir\u0103 maltez\u0103
+currenciesDisplayName.USN=dolar american (ziua urm\u0103toare)
+currenciesDisplayName.SGD=dolar Singapore
+currenciesDisplayName.NZD=dolar neozeelandez
+currenciesDisplayName.USD=dolar american
+currenciesDisplayName.BOB=boliviano
+currenciesDisplayName.HNL=lempira Honduras
+currenciesDisplayName.ITL=lir\u0103 italian\u0103
+currenciesDisplayName.PAB=balboa panamez
+currenciesDisplayName.GTQ=quetzal Guatemala
+currenciesDisplayName.XXX=moned\u0103 necunoscut\u0103 sau incorect\u0103
+currenciesDisplayName.AUD=dolar australian
+currenciesDisplayName.GHC=cedi Ghana
+currenciesDisplayName.LAK=kip Laos
+currenciesDisplayName.NAD=dolar namibian
+currenciesDisplayName.KGS=som Kirghizstan
+currenciesDisplayName.MGF=franc Madagascar
+currenciesDisplayName.BBD=dolar Barbados
+currenciesDisplayName.CHF=franc elve\u021bian
+currenciesDisplayName.PYG=guarani Paraguay
+currenciesDisplayName.PLZ=zlot polonez (1950\u20131995)
+currenciesDisplayName.YER=riyal Yemen
+currenciesDisplayName.ATS=\u0219iling austriac
+currenciesDisplayName.ETB=birr etiopian
+currenciesDisplayName.BND=dolar Brunei
+currenciesDisplayName.EGP=lir\u0103 egiptean\u0103
+currenciesDisplayName.JMD=dolar jamaican
+currenciesDisplayName.PLN=zlot nou polonez
+currenciesDisplayName.DZD=dinar algerian
+currenciesDisplayName.ISK=coroan\u0103 islandez\u0103
+currenciesDisplayName.SRG=gulden Surinam
+currenciesDisplayName.LYD=dinar libian
+currenciesDisplayName.SRD=dolar Surinam
+currenciesDisplayName.BAM=marc\u0103 convertibil\u0103 bosniac\u0103
+currenciesDisplayName.BZD=dolar Belize
+currenciesDisplayName.ESP=peset\u0103 spaniol\u0103
+currenciesDisplayName.KRW=won sud-coreean
+currenciesDisplayName.NLG=gulden olandez
+currenciesDisplayName.BAD=dinar Bosnia-Her\u021begovina
+currenciesDisplayName.ZWD=dolar Zimbabwe
+currenciesDisplayName.SEK=coroan\u0103 suedez\u0103
+currenciesDisplayName.BYR=rubl\u0103 bielorus\u0103
+currenciesDisplayName.IRR=rial iranian
+currenciesDisplayName.PKR=rupie pakistanez\u0103
+currenciesDisplayName.BMD=dolar Bermude
+currenciesDisplayName.CSD=dinar vechi Serbia \u0219i Muntenegru
+currenciesSymbol.RON=0\u2264lei|1\u2264leu|1<lei
+currenciesSymbol.ROL=0\u2264lei vechi|1\u2264leu vechi|1<lei vechi
+currenciesSymbol.EUR=euro
+shortMonths=ian.\u00aefeb.\u00aemar.\u00aeapr.\u00aemai\u00aeiun.\u00aeiul.\u00aeaug.\u00aesept.\u00aeoct.\u00aeNov\u00aedec.\u00ae\u00ae
+months=ianuarie\u00aefebruarie\u00aemartie\u00aeaprilie\u00aemai\u00aeiunie\u00aeiulie\u00aeaugust\u00aeseptembrie\u00aeoctombrie\u00aenoiembrie\u00aedecembrie\u00ae\u00ae
+shortWeekdays=\u00aeD\u00aeL\u00aeMa\u00aeMi\u00aeJ\u00aeV\u00aeS\u00ae
+weekdays=\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00aes\u00e2mb\u0103t\u0103\u00ae
+eras=\u00ee.d.H.\u00aed.H.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=d.MM.yyyy
+mediumDateFormat=d MMM yyyy
longDateFormat=d MMMM yyyy
-fullDateFormat=d MMMM yyyy
+fullDateFormat=EEEE, d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
territories.TL=Timorul de Est
territories.TK=Tokelau
territories.TJ=Tadjikistan
-territories.TH=Tailanda
+territories.TH=Thailanda
territories.TG=Togo
-territories.TF=Teritoriile Franceze de Sud
+territories.TF=Teritoriile Australe \u0219i Antarctice Franceze
territories.GY=Guyana
territories.TD=Ciad
-territories.TC=Insulele Turks \u015fi Caicos
+territories.TC=Insulele Turks \u0219i Caicos
territories.GW=Guineea-Bissau
territories.GU=Guam
territories.GT=Guatemala
-territories.GS=Insulele South Georgia \u015fi South Sandwich
+territories.GS=Insulele Georgia de Sud \u0219i Sandwich de Sud
territories.GR=Grecia
territories.GQ=Guineea Ecuatorial\u0103
-territories.GP=Guadeloupe
+territories.GP=Guadelupa
territories.SZ=Swaziland
territories.SY=Siria
territories.GN=Guineea
territories.GM=Gambia
territories.GL=Groenlanda
territories.SV=El Salvador
-territories.062=Asia centrala \u015fi de Sud
-territories.ST=Sao Tome \u015fi Principe
-territories.061=Polinezia
+territories.062=Asia Central\u0103 de Sud
+territories.ST=Sao Tome \u0219i Principe
territories.GI=Gibraltar
+territories.061=Polinezia
territories.GH=Ghana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Guyana Francez\u0103
territories.GE=Georgia
territories.SO=Somalia
@@ -65,54 +276,57 @@ territories.GB=Marea Britanie
territories.SL=Sierra Leone
territories.GA=Gabon
territories.SK=Slovacia
-territories.SJ=Svalbard \u015fi Jan Mayen
+territories.SJ=Svalbard \u0219i Jan Mayen
territories.SI=Slovenia
-territories.SH=Saint Helena
+territories.SH=Sf\u00e2nta Elena
territories.SG=Singapore
territories.SE=Suedia
territories.SD=Sudan
territories.SC=Seychelles
territories.SB=Insulele Solomon
territories.SA=Arabia Saudit\u0103
-territories.FR=Fran\u0163a
-territories.057=Micronezia
+territories.FR=Fran\u021ba
territories.FO=Insulele Feroe
-territories.FM=Micronezia, Statele Federate
+territories.057=Regiunea Micronezia
+territories.FM=Micronezia
territories.RW=Rwanda
territories.054=Melanezia
-territories.053=Australia \u0219i Noua Zeeland\u0103
territories.FK=Insulele Falkland
+territories.053=Australia \u0219i Noua Zeeland\u0103
territories.RU=Rusia
territories.FJ=Fiji
territories.FI=Finlanda
+territories.RS=Serbia
territories.RO=Rom\u00e2nia
territories.RE=Reunion
territories.ET=Etiopia
territories.ES=Spania
-territories.ER=Eritrea
+territories.ER=Eritreea
+territories.QU=Uniunea European\u0103
territories.EH=Sahara de Vest
territories.EG=Egipt
-territories.830=Insulele Anglo-Normande
territories.EE=Estonia
-territories.QO=Alt\u0103 Oceania
+territories.830=Insulele Anglo-Normande
+territories.QO=Oceania Periferic\u0103
territories.EC=Ecuador
territories.DZ=Algeria
territories.QA=Qatar
-territories.039=Europa meridional\u0103
+territories.039=Europa Meridional\u0103
territories.DO=Republica Dominican\u0103
territories.PY=Paraguay
-territories.035=Asia de Sud-Est
territories.DM=Dominica
+territories.035=Asia de Sud-Est
territories.PW=Palau
+territories.034=Asia Meridional\u0103
territories.DK=Danemarca
territories.DJ=Djibouti
territories.PT=Portugalia
territories.PS=Teritoriul Palestinian
-territories.030=Asia oriental\u0103
+territories.030=Asia Oriental\u0103
territories.PR=Porto Rico
territories.DE=Germania
territories.PN=Pitcairn
-territories.PM=Saint Pierre \u015fi Miquelon
+territories.PM=Saint Pierre \u0219i Miquelon
territories.PL=Polonia
territories.PK=Pakistan
territories.PH=Filipine
@@ -125,7 +339,7 @@ territories.CX=Insula Christmas
territories.CV=Capul Verde
territories.PA=Panama
territories.CU=Cuba
-territories.CS=Serbia \u015fi Muntenegru
+territories.CS=Serbia \u0219i Muntenegru
territories.CR=Costa Rica
territories.029=Caraibe
territories.CO=Columbia
@@ -133,15 +347,16 @@ territories.CN=China
territories.CM=Camerun
territories.CL=Chile
territories.CK=Insulele Cook
-territories.CI=Coasta de Filde\u015f
-territories.021=America de Nord
-territories.CH=Eleve\u0163ia
+territories.021=America Septentrional\u0103
+territories.CI=Coasta de Filde\u0219
+territories.CH=Eleve\u021bia
territories.CG=Congo
-territories.CF=Republica Central African\u0103
-territories.CD=Congo, Republica Democratic\u0103
-territories.CC=Insulele Cocos (Keeling)
+territories.CF=Republica Centrafrican\u0103
+territories.CD=Republica Democrat\u0103 Congo
+territories.CC=Insulele Cocos
territories.OM=Oman
territories.CA=Canada
+territories.419=America Latin\u0103 \u0219i Caraibe
territories.BZ=Belize
territories.BY=Bielorusia
territories.BW=Botswana
@@ -150,37 +365,39 @@ territories.BT=Bhutan
territories.BS=Bahamas
territories.BR=Brazilia
territories.019=Americi
-territories.018=Africa austral\u0103
+territories.018=Africa Meridional\u0103
territories.NZ=Noua Zeeland\u0103
+territories.017=Africa Central\u0103
territories.BO=Bolivia
-territories.017=Africa central\u0103
territories.BN=Brunei
+territories.015=Africa Septentrional\u0103
territories.BM=Bermuda
-territories.015=Africa septentrional\u0103
-territories.014=Africa oriental\u0103
-territories.013=America central\u0103
+territories.014=Africa Oriental\u0103
+territories.013=America Central\u0103
territories.NU=Niue
territories.BJ=Benin
+territories.011=Africa Occidental\u0103
territories.BI=Burundi
-territories.011=Africa occidental\u0103
+territories.172=Comunitatea Statelor Independente
territories.BH=Bahrain
territories.NR=Nauru
territories.BG=Bulgaria
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgia
+territories.ZZ=Regiune necunoscut\u0103 sau incorect\u0103
territories.NO=Norvegia
territories.BD=Bangladesh
territories.BB=Barbados
territories.ZW=Zimbabwe
territories.NL=Olanda
-territories.BA=Bosnia \u015fi Herzegovina
+territories.BA=Bosnia \u0219i Her\u021begovina
territories.NI=Nicaragua
territories.NG=Nigeria
territories.NF=Insulele Norfolk
territories.AZ=Azerbaidjan
territories.NE=Niger
-territories.AX=Insulele Aland
+territories.AX=Insulele \u00c5land
territories.NC=Noua Caledonie
territories.AW=Aruba
territories.ZM=Zambia
@@ -190,30 +407,33 @@ territories.AT=Austria
territories.AS=Samoa American\u0103
territories.AR=Argentina
territories.AQ=Antarctica
+territories.009=Oceania
territories.MZ=Mozambic
territories.AO=Angola
territories.MY=Malaezia
territories.AN=Antilele Olandeze
territories.MX=Mexic
-territories.005=America de Sud
territories.AM=Armenia
+territories.005=America de Sud
territories.MW=Malawi
territories.AL=Albania
territories.MV=Maldive
+territories.003=America de Nord
territories.ZA=Africa de Sud
territories.MU=Mauritius
+territories.002=Africa
territories.MT=Malta
-territories.001=Lume
territories.AI=Anguilla
+territories.001=Lume
territories.MS=Montserrat
territories.MR=Mauritania
-territories.AG=Antigua \u015fi Barbuda
+territories.AG=Antigua \u0219i Barbuda
territories.MQ=Martinica
territories.AF=Afganistan
-territories.MP=Insulele Northern Mariana
+territories.MP=Insulele Mariane de Nord
territories.AE=Emiratele Arabe Unite
-territories.MO=R.A.S. Macao a Chinei
-territories.AD=Andora
+territories.MO=Macao
+territories.AD=Andorra
territories.MN=Mongolia
territories.MM=Myanmar
territories.ML=Mali
@@ -221,105 +441,304 @@ territories.MK=Macedonia
territories.YT=Mayotte
territories.MH=Insulele Marshall
territories.MG=Madagascar
-territories.MD=Moldova, Republica
+territories.ME=Muntenegru
+territories.MD=Basarabia
territories.MC=Monaco
territories.MA=Maroc
territories.YE=Yemen
-territories.LY=Libia, Jamahiriya Arab\u0103
+territories.LY=Libia
territories.LV=Letonia
-territories.155=Europa occidental\u0103
+territories.155=Europa Occidental\u0103
territories.LU=Luxemburg
-territories.154=Europa septentrional\u0103
+territories.154=Europa Septentrional\u0103
territories.LT=Lituania
territories.LS=Lesotho
territories.LR=Liberia
-territories.151=Europa de Est
+territories.151=Europa Oriental\u0103
territories.150=Europa
territories.LK=Sri Lanka
territories.LI=Liechtenstein
-territories.LC=Saint Lucia
+territories.LC=Sf\u00e2nta Lucia
territories.LB=Liban
-territories.LA=Lao, Republica Democratic\u0103 Popular\u0103
+territories.LA=Laos
territories.KZ=Kazahstan
territories.KY=Insulele Cayman
territories.KW=Kuweit
-territories.145=Asia occidental\u0103
+territories.145=Asia Occidental\u0103
+territories.143=Asia Central\u0103
+territories.142=Asia
territories.KR=Coreea de Sud
territories.KP=Coreea de Nord
-territories.KN=Saint Kitts \u015fi Nevis
-territories.KM=Comoros
+territories.KN=Saint Kitts \u0219i Nevis
+territories.KM=Comore
territories.KI=Kiribati
territories.WS=Samoa
territories.KH=Cambodgia
-territories.KG=Kirghizia
+territories.KG=Kirghizstan
territories.KE=Kenya
-territories.WF=Wallis \u015fi Futuna
+territories.WF=Wallis \u0219i Futuna
territories.JP=Japonia
territories.JO=Iordania
territories.JM=Jamaica
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=Insulele Virgine S.U.A.
territories.VG=Insulele Virgine Britanice
territories.VE=Venezuela
-territories.VC=Saint Vincent \u015fi Grenadines
-territories.VA=Sf\u00e2ntul Scaun (Statul Vatican)
+territories.VC=Saint Vincent \u0219i Grenadines
+territories.VA=Vatican
territories.IT=Italia
territories.IS=Islanda
territories.IR=Iran
-territories.IQ=Iraq
+territories.IQ=Irak
territories.UZ=Uzbekistan
-territories.IO=Teritoriile Britanice din Oceanul Indian
+territories.IO=Teritoriul Britanic din Oceanul Indian
territories.UY=Uruguay
territories.IN=India
+territories.IM=Insula Man
territories.IL=Israel
territories.US=Statele Unite
territories.IE=Irlanda
territories.ID=Indonezia
-territories.UM=United States Minor Outlying Islands
+territories.UM=Teritoriile \u00cendep\u0103rtate ale Statelor Unite
territories.UG=Uganda
territories.UA=Ucraina
territories.HU=Ungaria
territories.HT=Haiti
-territories.HR=Croa\u0163ia
+territories.HR=Croa\u021bia
territories.TZ=Tanzania
territories.HN=Honduras
-territories.HM=Insula Heard \u015fi Insulele McDonald
+territories.HM=Insula Heard \u0219i Insulele McDonald
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=R.A.S. Hong Kong a Chinei
-territories.TT=Trinidad \u015fi Tobago
+territories.HK=Hong Kong
+territories.TT=Trinidad-Tobago
territories.TR=Turcia
territories.TO=Tonga
territories.TN=Tunisia
territories.TM=Turkmenistan
-languages.ja=Japonez\u0103
-languages.en=Englez\u0103
-languages.tr=Turc\u0103
-languages.ko=Coreean\u0103
-languages.no=Norvegian\u0103
-languages.el=Greac\u0103
-languages.nl=Olandez\u0103
-languages.bg=Bulgar\u0103
-languages.lv=Leton\u0103
-languages.cs=Ceh\u0103
-languages.he=Ebraic\u0103
-languages.it=Italian\u0103
-languages.lt=Lituanian\u0103
-languages.fr=Francez\u0103
-languages.zh=Chinez\u0103
-languages.ru=Rus\u0103
-languages.ro=Rom\u00e2n\u0103
-languages.fi=Finlandez\u0103
-languages.ar=Arab\u0103
-languages.sv=Suedez\u0103
-languages.pt=Portughez\u0103
-languages.pl=Polonez\u0103
-languages.sl=Sloven\u0103
-languages.sk=Slovac\u0103
-languages.de=German\u0103
-languages.et=Estonian\u0103
-languages.hu=Maghiar\u0103
-languages.es=Spaniol\u0103
-languages.da=Danez\u0103
-languages.hr=Croat\u0103
+languages.lb=luxemburghez\u0103
+languages.la=latin\u0103
+languages.xh=xhosa
+languages.ky=k\u00eerg\u00eez\u0103
+languages.ku=kurd\u0103
+languages.ks=ca\u0219mirez\u0103
+languages.ko=coreean\u0103
+languages.kn=kannada
+languages.km=khmer\u0103
+languages.kl=kalaallisut
+languages.kk=kazah\u0103
+languages.ira=limb\u0103 iranian\u0103
+languages.kg=congolez\u0103
+languages.en_GB=englez\u0103 britanic\u0103
+languages.grc=greac\u0103 veche
+languages.wo=wolof
+languages.art=limb\u0103 artificial\u0103
+languages.ka=georgian\u0103
+languages.gem=limb\u0103 germanic\u0103
+languages.afa=limb\u0103 afro-asiatic\u0103
+languages.jv=javanez\u0103
+languages.wa=valon\u0103
+languages.arc=aramaic\u0103
+languages.cel=limb\u0103 celtic\u0103
+languages.sco=sco\u021bian\u0103
+languages.scn=sicilian\u0103
+languages.vo=volapuk
+languages.tut=limb\u0103 altaic\u0103
+languages.ja=japonez\u0103
+languages.vi=vietnamez\u0103
+languages.rup=arom\u00e2n\u0103
+languages.it=italian\u0103
+languages.is=islandez\u0103
+languages.uz=uzbec\u0103
+languages.ik=inupiak
+languages.ur=urdu
+languages.ie=interlingua
+languages.id=indonezian\u0103
+languages.hit=hitit\u0103
+languages.ia=interlingua
+languages.uk=ucrainean\u0103
+languages.ug=uigur\u0103
+languages.fiu=limb\u0103 fino-ugric\u0103
+languages.und=limb\u0103 necunoscut\u0103 sau incorect\u0103
+languages.hy=armean\u0103
+languages.nub=limb\u0103 nubian\u0103
+languages.phn=fenician\u0103
+languages.got=gotic\u0103
+languages.es_ES=spaniol\u0103 iberic\u0103
+languages.hu=maghiar\u0103
+languages.ht=haitian\u0103
+languages.phi=limb\u0103 filipinez\u0103
+languages.hr=croat\u0103
+languages.fil=filipinez\u0103
+languages.ty=tahitian\u0103
+languages.apa=limb\u0103 apa\u0219\u0103
+languages.tw=twi
+languages.tt=t\u0103tar\u0103
+languages.hi=hindi
+languages.tr=turc\u0103
+languages.sam=aramaic\u0103 samaritean\u0103
+languages.cop=copt\u0103
+languages.he=ebraic\u0103
+languages.tn=setswana
+languages.sai=limb\u0103 sud-amerindian\u0103
+languages.tl=tagalog
+languages.tk=turkmen\u0103
+languages.ti=tigrinya
+languages.th=thailandez\u0103
+languages.tg=tadjic\u0103
+languages.mnc=manciurian\u0103
+languages.te=telugu
+languages.ta=tamil
+languages.syr=sirian\u0103
+languages.gu=gujarati
+languages.ine=limb\u0103 indo-european\u0103
+languages.gn=guarani
+languages.inc=limb\u0103 indian\u0103
+languages.sw=swahili
+languages.gl=galician\u0103
+languages.sv=suedez\u0103
+languages.su=sundanez\u0103
+languages.st=sesotho
+languages.sr=s\u00e2rb\u0103
+languages.sq=albanez\u0103
+languages.en_CA=englez\u0103 canadian\u0103
+languages.so=somalez\u0103
+languages.gd=gaelic\u0103 sco\u021bian\u0103
+languages.sm=samoan\u0103
+languages.sl=sloven\u0103
+languages.ga=irlandez\u0103
+languages.sk=slovac\u0103
+languages.si=singalez\u0103
+languages.sh=s\u00e2rbo-croat\u0103
+languages.myn=limb\u0103 maya
+languages.fy=frizian\u0103
+languages.sd=sindhi
+languages.sc=sardinian\u0103
+languages.sa=sanscrit\u0103
+languages.cau=limb\u0103 caucazian\u0103
+languages.ang=englez\u0103 veche
+languages.fr=francez\u0103
+languages.sla=limb\u0103 slav\u0103
+languages.fo=faroez\u0103
+languages.pro=provensal\u0103 veche
+languages.ru=rus\u0103
+languages.fj=fijian\u0103
+languages.cai=limb\u0103 central-amerindian\u0103
+languages.fi=finlandez\u0103
+languages.ro=rom\u00e2n\u0103
+languages.rm=reto-roman\u0103
+languages.fa=persan\u0103
+languages.pt_PT=portughez\u0103 iberic\u0103
+languages.nl_BE=flamand\u0103
+languages.es_419=spaniol\u0103 latino-american\u0103
+languages.en_AU=englez\u0103 australian\u0103
+languages.peo=persan\u0103 veche
+languages.eu=basc\u0103
+languages.elx=elamit\u0103
+languages.et=estonian\u0103
+languages.es=spaniol\u0103
+languages.eo=esperanto
+languages.en=englez\u0103
+languages.el=greac\u0103
+languages.qu=quechua
+languages.jrb=iudeo-arab\u0103
+languages.fro=francez\u0103 veche
+languages.alt=altaic\u0103 meridional\u0103
+languages.dra=limb\u0103 dravidian\u0103
+languages.ale=aleut\u0103
+languages.pt_BR=portughez\u0103 brazilian\u0103
+languages.pt=portughez\u0103
+languages.ber=berber\u0103
+languages.ps=pa\u0219to
+languages.de=german\u0103
+languages.sit=limb\u0103 sino-tibetan\u0103
+languages.pl=polonez\u0103
+languages.da=danez\u0103
+languages.pi=pali
+languages.sux=sumerian\u0103
+languages.jpr=iudeo-persan\u0103
+languages.cy=vel\u0219\u0103
+languages.akk=akkadian\u0103
+languages.cv=ciuva\u0219\u0103
+languages.pa=punjabi
+languages.cu=slavon\u0103
+languages.cs=ceh\u0103
+languages.co=corsican\u0103
+languages.mis=limbi diverse
+languages.de_CH=german\u0103 standard elve\u021bian\u0103
+languages.or=oriya
+languages.roa=limb\u0103 romanic\u0103
+languages.ce=cecen\u0103
+languages.om=oromo
+languages.ca=catalan\u0103
+languages.zap=zapotec\u0103
+languages.mun=limb\u0103 munda
+languages.mul=limbi multiple
+languages.oc=occitan\u0103
+languages.bs=bosniac\u0103
+languages.xal=calmuc\u0103
+languages.br=breton\u0103
+languages.bo=tibetan\u0103
+languages.zh_Hans=chinez\u0103 simplificat\u0103
+languages.bn=bengalez\u0103
+languages.zh_Hant=chinez\u0103 tradi\u021bional\u0103
+languages.nv=navajo
+languages.bh=bihari
+languages.bg=bulgar\u0103
+languages.be=bielorus\u0103
+languages.oto=limb\u0103 otomi
+languages.no=norvegian\u0103
+languages.nn=norvegian\u0103 nynorsk
+languages.tai=limb\u0103 thailandez\u0103
+languages.nl=olandez\u0103
+languages.ba=ba\u0219kir\u0103
+languages.zu=zulu
+languages.sgn=limbaj mimico-gestual
+languages.ain=ainu
+languages.az=azer\u0103
+languages.ne=nepalez\u0103
+languages.ay=aymara
+languages.av=avar\u0103
+languages.de_AT=german\u0103 austriac\u0103
+languages.ota=turc\u0103 otoman\u0103
+languages.aus=limb\u0103 australian\u0103
+languages.as=asamez\u0103
+languages.nap=napolitan\u0103
+languages.ar=arab\u0103
+languages.zh=chinez\u0103
+languages.zxx=far\u0103 con\u021binut lingvistic
+languages.sga=irlandez\u0103 veche
+languages.my=birmanez\u0103
+languages.an=aragonez\u0103
+languages.am=amharic\u0103
+languages.nai=limb\u0103 nord-amerindian\u0103
+languages.paa=limb\u0103 papua\u0219\u0103
+languages.mt=maltez\u0103
+languages.ms=malaezian\u0103
+languages.mr=marathi
+languages.af=afrikaans
+languages.haw=hawaian\u0103
+languages.mo=moldoveneasc\u0103
+languages.mn=mongol\u0103
+languages.en_US=englez\u0103 american\u0103
+languages.ab=abhaz\u0103
+languages.ml=malayalam
+languages.bnt=bantu
+languages.mk=macedonean\u0103
+languages.mi=maori
+languages.mg=malga\u0219\u0103
+languages.yo=yoruba
+languages.egy=egiptean\u0103 veche
+languages.tlh=klingonian\u0103
+languages.yi=idi\u0219
+languages.gsw=german\u0103 elve\u021bian\u0103
+languages.bat=limb\u0103 baltic\u0103
+languages.lv=leton\u0103
+languages.lt=lituanian\u0103
+languages.fr_CH=francez\u0103 elve\u021bian\u0103
+languages.lo=lao\u021bian\u0103
+languages.ln=lingala
+languages.fr_CA=francez\u0103 canadian\u0103
+languages.sem=limb\u0103 semitic\u0103
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru.properties
index cc69fee..35c9512 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru.properties
@@ -5,119 +5,175 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.TWD=\u041d\u043e\u0432\u044b\u0439 \u0442\u0430\u0439\u0432\u0430\u043d\u044c\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u0419\u0435\u043c\u0435\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.KES=\u041a\u0435\u043d\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
-currenciesDisplayName.BYB=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1994-1999)
+currenciesDisplayName.TWD=\u041d\u043e\u0432\u044b\u0439 \u0442\u0430\u0439\u0432\u0430\u043d\u044c\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
currenciesDisplayName.LKR=\u0428\u0440\u0438-\u041b\u0430\u043d\u043a\u0438\u0439\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
-currenciesDisplayName.RWF=\u0424\u0440\u0430\u043d\u043a \u0420\u0443\u0430\u043d\u0434\u044b
+currenciesDisplayName.BYB=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1994-1999)
currenciesDisplayName.TJS=\u0422\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438\u0439 \u0441\u043e\u043c\u043e\u043d\u0438
-currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.RWF=\u0424\u0440\u0430\u043d\u043a \u0420\u0443\u0430\u043d\u0434\u044b
currenciesDisplayName.ERN=\u041d\u0430\u043a\u0444\u0430
+currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
currenciesDisplayName.GRD=\u0413\u0440\u0435\u0447\u0435\u0441\u043a\u0430\u044f \u0434\u0440\u0430\u0445\u043c\u0430
+currenciesDisplayName.AFN=\u0410\u0444\u0433\u0430\u043d\u0438
currenciesDisplayName.IEP=\u0418\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
+currenciesDisplayName.ARP=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e (1983-1985)
currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.GEL=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438\u0439 \u043b\u0430\u0440\u0438
-currenciesDisplayName.AFA=\u0410\u0444\u0433\u0430\u043d\u0438 (1927-2002)
currenciesDisplayName.GEK=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438\u0439 \u043a\u0443\u043f\u043e\u043d
+currenciesDisplayName.AFA=\u0410\u0444\u0433\u0430\u043d\u0438 (1927-2002)
currenciesDisplayName.CRC=\u041a\u043e\u0441\u0442\u0430\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
currenciesDisplayName.FKP=\u0424\u0443\u043d\u0442 \u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432
currenciesDisplayName.EEK=\u042d\u0441\u0442\u043e\u043d\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.HKD=\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
currenciesDisplayName.MDL=\u041c\u043e\u043b\u0434\u0430\u0432\u0441\u043a\u0438\u0439 \u043b\u0435\u0439
+currenciesDisplayName.HKD=\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
currenciesDisplayName.IQD=\u0418\u0440\u0430\u043a\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.ARA=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u0430\u0443\u0441\u0442\u0440\u0430\u043b
currenciesDisplayName.SCR=\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
currenciesDisplayName.VUV=\u0412\u0430\u0442\u0443
+currenciesDisplayName.KPW=\u0421\u0435\u0432\u0435\u0440\u043e\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0430\u044f \u0432\u043e\u043d\u0430
currenciesDisplayName.DKK=\u0414\u0430\u0442\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.KPW=\u0421\u0435\u0432\u0435\u0440\u043e-\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0430\u044f \u0432\u043e\u043d\u0430
currenciesDisplayName.IDR=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
+currenciesDisplayName.GQE=\u042d\u043a\u0432\u0435\u043b\u0435 \u044d\u043a\u0432\u0430\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0413\u0432\u0438\u043d\u0435\u0438
currenciesDisplayName.SOS=\u0421\u043e\u043c\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
-currenciesDisplayName.AED=\u0414\u0438\u0440\u0445\u0430\u043c (\u041e\u0410\u042d)
-currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0443\u043b\u0430
+currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.EQE=\u042d\u043a\u0432\u0435\u043b\u0435
+currenciesDisplayName.AED=\u0414\u0438\u0440\u0445\u0430\u043c \u041e\u0410\u0415
currenciesDisplayName.LVL=\u041b\u0430\u0442\u0432\u0438\u0439\u0441\u043a\u0438\u0439 \u043b\u0430\u0442
+currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0443\u043b\u0430
currenciesDisplayName.RUR=\u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1991-1998)
currenciesDisplayName.NIO=\u0417\u043e\u043b\u043e\u0442\u0430\u044f \u043a\u043e\u0440\u0434\u043e\u0431\u0430
-currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0440\u0441\u043a\u0430\u044f \u043f\u0435\u0441\u0435\u0442\u0430
+currenciesDisplayName.XTS=\u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0432\u0430\u043b\u044e\u0442\u043d\u044b\u0439 \u043a\u043e\u0434
+currenciesDisplayName.MOP=\u041f\u0430\u0442\u0430\u043a\u0430 \u041c\u0430\u043a\u0430\u043e
currenciesDisplayName.FJD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0424\u0438\u0434\u0436\u0438
-currenciesDisplayName.RUB=\u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.ADP=\u0430\u043d\u0434\u043e\u0440\u0440\u0441\u043a\u0438\u0445 \u043f\u0435\u0441\u0435\u0442
+currenciesDisplayName.RUB=1,31 \u0420\u043e\u0441\u0441\u0438\u0439\u0441\u043a\u043e\u0433\u043e \u0440\u0443\u0431\u043b\u044f
currenciesDisplayName.CDF=\u041a\u043e\u043d\u0433\u043e\u043b\u0435\u0437\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.NIC=\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0443\u0430\u043d\u0441\u043a\u0430\u044f \u043a\u043e\u0440\u0434\u043e\u0431\u0430
currenciesDisplayName.DJF=\u0424\u0440\u0430\u043d\u043a \u0414\u0436\u0438\u0431\u0443\u0442\u0438
-currenciesDisplayName.SBD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u044b\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432
currenciesDisplayName.UZS=\u0423\u0437\u0431\u0435\u043a\u0441\u043a\u0438\u0439 \u0441\u0443\u043c
+currenciesDisplayName.SBD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u044b\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432
+currenciesDisplayName.ECV=\u041f\u043e\u0441\u0442\u043e\u044f\u043d\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u042d\u043a\u0432\u0430\u0434\u043e\u0440\u0430
+currenciesDisplayName.LUL=\u0424\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0439 \u0444\u0440\u0430\u043d\u043a \u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0430
currenciesDisplayName.ECS=\u042d\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u0438\u0439 \u0441\u0443\u043a\u0440\u0435
-currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
currenciesDisplayName.THB=\u0422\u0430\u0438\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0431\u0430\u0442
+currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
currenciesDisplayName.LUF=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.RHD=\u0420\u043e\u0434\u0435\u0437\u0438\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.LUC=\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0439 \u0444\u0440\u0430\u043d\u043a \u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0430
currenciesDisplayName.FIM=\u0424\u0438\u043d\u0441\u043a\u0430\u044f \u043c\u0430\u0440\u043a\u0430
currenciesDisplayName.TTD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434\u0430 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e
currenciesDisplayName.SZL=\u0421\u0432\u0430\u0437\u0438\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0439 \u043b\u0438\u043b\u0430\u043d\u0433\u0435\u043d\u0438
currenciesDisplayName.MNT=\u041c\u043e\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0442\u0443\u0433\u0440\u0438\u043a
+currenciesDisplayName.UAK=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438\u0439 \u043a\u0430\u0440\u0431\u043e\u0432\u0430\u043d\u0435\u0446
currenciesDisplayName.SAR=\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0438\u0439 \u0440\u0438\u0430\u043b
-currenciesDisplayName.UAK=\u041a\u0430\u0440\u0431\u043e\u0432\u0430\u043d\u0435\u0446 (\u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438\u0439)
+currenciesDisplayName.COU=\u0415\u0434\u0438\u043d\u0438\u0446\u0430 \u0440\u0435\u0430\u043b\u044c\u043d\u043e\u0439 \u0441\u0442\u043e\u0438\u043c\u043e\u0441\u0442\u0438 \u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0438
currenciesDisplayName.UAH=\u0423\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0430\u044f \u0433\u0440\u0438\u0432\u043d\u0430
currenciesDisplayName.HUF=\u0412\u0435\u043d\u0433\u0435\u0440\u0441\u043a\u0438\u0439 \u0444\u043e\u0440\u0438\u043d\u0442
-currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0439\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
currenciesDisplayName.QAR=\u041a\u0430\u0442\u0430\u0440\u0441\u043a\u0438\u0439 \u0440\u0438\u0430\u043b
-currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u043e\u0435 \u044d\u0441\u043a\u0443\u0434\u043e
+currenciesDisplayName.COP=\u043a\u043e\u043b\u0443\u043c\u0431\u0438\u0439\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
+currenciesDisplayName.LTT=\u041b\u0438\u0442\u043e\u0432\u0441\u043a\u0438\u0439 \u0442\u0430\u043b\u043e\u043d
+currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439 \u044d\u0441\u043a\u0443\u0434\u043e
+currenciesDisplayName.UYU=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.AOR=\u0430\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0430\u044f \u043a\u0432\u0430\u043d\u0437\u0430 \u0440\u0435\u044e\u0441\u0442\u0430\u0434\u043e (1995-1999)
currenciesDisplayName.GBP=\u0410\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442 \u0441\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u043e\u0432
-currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.ZRZ=\u0417\u0430\u0438\u0440
currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
-currenciesDisplayName.AON=\u041d\u043e\u0432\u0430\u044f \u043a\u0432\u0430\u043d\u0437\u0430
+currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.XFU=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439 UIC-\u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.MZN=\u041c\u0435\u0442\u0438\u043a\u0430\u043b
currenciesDisplayName.LTL=\u041b\u0438\u0442\u043e\u0432\u0441\u043a\u0438\u0439 \u043b\u0438\u0442
-currenciesDisplayName.KZT=\u0422\u0435\u043d\u0433\u0435 (\u043a\u0430\u0437\u0430\u0445\u0441\u043a\u0438\u0439)
-currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
-currenciesDisplayName.UYP=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
-currenciesDisplayName.PGK=\u041a\u0438\u043d\u0430
+currenciesDisplayName.AON=1 \u0430\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0430\u044f \u043d\u043e\u0432\u0430\u044f \u043a\u0432\u0430\u043d\u0437\u0430 (1990-2000)
+currenciesDisplayName.UYP=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e (1975-1993)
+currenciesDisplayName.MZM=\u0421\u0442\u0430\u0440\u044b\u0439 \u043c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u0438\u0439 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u0445\u0441\u043a\u0438\u0439 \u0442\u0435\u043d\u0433\u0435
+currenciesDisplayName.AOK=\u0430\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0430\u044f \u043a\u0432\u0430\u043d\u0437\u0430 (1977-1990)
+currenciesDisplayName.GNS=\u0413\u0432\u0438\u043d\u0435\u0439\u0441\u043a\u0430\u044f \u0441\u0438\u043b\u0438
+currenciesDisplayName.BUK=\u0414\u0436\u0430
+currenciesDisplayName.XFO=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439 \u0437\u043e\u043b\u043e\u0442\u043e\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.PGK=\u041a\u0438\u043d\u0430 \u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u043e\u0439 \u0413\u0432\u0438\u043d\u0435\u0438
currenciesDisplayName.SYP=\u0421\u0438\u0440\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
currenciesDisplayName.OMR=\u041e\u043c\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u0438\u0430\u043b
-currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0439\u0441\u043a\u0430\u044f \u043d\u0430\u0439\u0440\u0430
+currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a\u0441\u043a\u043e\u0435 \u044d\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.ZRN=\u041d\u043e\u0432\u044b\u0439 \u0437\u0430\u0438\u0440
-currenciesDisplayName.CNY=\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439 \u044e\u0430\u043d\u044c
+currenciesDisplayName.NGN=\u041d\u0438\u0433\u0435\u0440\u0438\u0439\u0441\u043a\u0430\u044f \u043d\u0430\u0439\u0440\u0430
+currenciesDisplayName.CNY=\u044e\u0430\u043d\u044c \u0420\u0435\u043d\u043c\u0438\u043d\u0431\u0438
+currenciesDisplayName.AOA=\u0430\u043d\u0433\u043e\u043b\u044c\u0441\u043a\u0430\u044f \u043a\u0432\u0430\u043d\u0437\u0430
+currenciesDisplayName.MAF=\u041c\u0430\u0440\u043e\u043a\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.RSD=\u0421\u0435\u0440\u0431\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.GNF=\u0413\u0432\u0438\u043d\u0435\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.HTG=\u0413\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438\u0439 \u0433\u0443\u0440\u0434
currenciesDisplayName.MAD=\u041c\u0430\u0440\u043e\u043a\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u0440\u0445\u0430\u043c
-currenciesDisplayName.TRY=\u041d\u043e\u0432\u0430\u044f \u0442\u0443\u0440\u0435\u0446\u043a\u0430\u044f \u043b\u0438\u0440\u0430
+currenciesDisplayName.HTG=\u0413\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438\u0439 \u0433\u0443\u0440\u0434
+currenciesDisplayName.TRY=1 \u043d\u043e\u0432\u0430\u044f \u0442\u0443\u0440\u0435\u0446\u043a\u0430\u044f \u043b\u0438\u0440\u0430
+currenciesDisplayName.MMK=\u041a\u044c\u044f\u0442
+currenciesDisplayName.XRE=\u0415\u0434\u0438\u043d\u0438\u0446\u0430 RINET-\u0444\u043e\u043d\u0434\u043e\u0432
currenciesDisplayName.MYR=\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0438\u043d\u0433\u0433\u0438\u0442
-currenciesDisplayName.LSL=\u041b\u043e\u0442\u0438
+currenciesDisplayName.LSM=\u041c\u0430\u043b\u043e\u0442\u0438
currenciesDisplayName.XEU=\u042d\u041a\u042e (\u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0439 \u0432\u0430\u043b\u044e\u0442\u044b)
-currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u043a\u0438\u0439 \u043b\u043e\u0442\u0438
currenciesDisplayName.SLL=\u041b\u0435\u043e\u043d\u0435
+currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.BTN=\u041d\u0433\u0443\u043b\u0442\u0440\u0443\u043c
-currenciesDisplayName.TRL=\u0422\u0443\u0440\u0435\u0446\u043a\u0430\u044f \u043b\u0438\u0440\u0430
+currenciesDisplayName.TRL=\u0442\u0443\u0440\u0435\u0446\u043a\u0430\u044f \u043b\u0438\u0440\u0430
currenciesDisplayName.KMF=\u0424\u0440\u0430\u043d\u043a \u041a\u043e\u043c\u043e\u0440\u0441\u043a\u0438\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432
-currenciesDisplayName.ANG=\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0430\u043d\u0442\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
currenciesDisplayName.CZK=\u0427\u0435\u0448\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.AZM=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.ANG=\u043d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0430\u043d\u0442\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
+currenciesDisplayName.AZN=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.AZM=\u0430\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
currenciesDisplayName.KYD=\u0414\u043e\u043b\u043b\u0430\u0440 \u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u044b\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u043e\u0432
currenciesDisplayName.GMD=\u0413\u0430\u043c\u0431\u0438\u0439\u0441\u043a\u0438\u0439 \u0434\u0430\u043b\u0430\u0441\u0438
currenciesDisplayName.BGN=\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u043a\u0438\u0439 \u043b\u0435\u0432
+currenciesDisplayName.MXV=\u043c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0435\u0440\u0435\u0441\u0447\u0435\u0442\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 (UDI)
currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
currenciesDisplayName.BGL=\u041b\u0435\u0432
currenciesDisplayName.VEB=\u0412\u0435\u043d\u0435\u0441\u0443\u044d\u043b\u044c\u0441\u043a\u0438\u0439 \u0431\u043e\u043b\u0438\u0432\u0430\u0440
+currenciesDisplayName.MLF=\u041c\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.MXP=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0441\u0435\u0440\u0435\u0431\u0440\u044f\u043d\u044b\u0439 \u043f\u0435\u0441\u043e (1861-1992)
currenciesDisplayName.ILS=\u041d\u043e\u0432\u044b\u0439 \u0438\u0437\u0440\u0430\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0448\u0435\u043a\u0435\u043b\u044c
+currenciesDisplayName.PES=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438\u0439 \u0441\u043e\u043b\u044c
+currenciesDisplayName.MXN=\u043c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
currenciesDisplayName.GYD=\u0413\u0430\u0439\u0430\u043d\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
-currenciesDisplayName.MXN=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043d\u043e\u0432\u043e\u0435 \u043f\u0435\u0441\u043e
-currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0446\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
+currenciesDisplayName.ILP=\u0418\u0437\u0440\u0430\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
currenciesDisplayName.CYP=\u041a\u0438\u043f\u0440\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0446\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.XDR=\u0421\u0414\u0420 (\u0441\u043f\u0435\u0446\u0438\u0430\u043b\u044c\u043d\u044b\u0435 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430\u0438\u043c\u0441\u0442\u0432\u043e\u0432\u0430\u043d\u0438\u044f)
currenciesDisplayName.PEN=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438\u0439 \u043d\u043e\u0432\u044b\u0439 \u0441\u043e\u043b\u044c
currenciesDisplayName.LRD=\u041b\u0438\u0431\u0435\u0440\u0438\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
-currenciesDisplayName.AMD=\u0410\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439 \u0434\u0440\u0430\u043c
+currenciesDisplayName.PEI=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u043e\u0435 \u0438\u043d\u0442\u0438
+currenciesDisplayName.AMD=\u0430\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439 \u0434\u0440\u0430\u043c
currenciesDisplayName.BSD=\u0411\u0430\u0433\u0430\u043c\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.XPT=\u041f\u043b\u0430\u0442\u0438\u043d\u0430
currenciesDisplayName.HRK=\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0430\u044f \u043a\u0443\u043d\u0430
-currenciesDisplayName.CLP=\u0427\u0438\u043b\u0438\u0439\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
currenciesDisplayName.HRD=\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.CLP=\u0447\u0438\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
currenciesDisplayName.XPF=\u0424\u0440\u0430\u043d\u043a \u041a\u0424\u041f
currenciesDisplayName.FRF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.BRR=\u041a\u0440\u0443\u0437\u0435\u0439\u0440\u043e \u0440\u0435\u0430\u043b
+currenciesDisplayName.XPD=\u041f\u0430\u043b\u043b\u0430\u0434\u0438\u0439
+currenciesDisplayName.BRR=\u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e \u0440\u0435\u0430\u043b
currenciesDisplayName.MKD=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.ALL=\u0410\u043b\u0431\u0430\u043d\u0441\u043a\u0438\u0439 \u043b\u0435\u043a
-currenciesDisplayName.MWK=\u041a\u0432\u0430\u0447\u0430 (\u043c\u0430\u043b\u0430\u0432\u0438\u0439\u0441\u043a\u0430\u044f)
+currenciesDisplayName.CLF=\u0423\u0441\u043b\u043e\u0432\u043d\u0430\u044f \u0440\u0430\u0441\u0447\u0435\u0442\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0427\u0438\u043b\u0438
+currenciesDisplayName.ALL=\u0430\u043b\u0431\u0430\u043d\u0441\u043a\u0438\u0439 \u043b\u0435\u043a
+currenciesDisplayName.BRN=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u043a\u043e\u0435 \u043d\u043e\u0432\u043e\u0435 \u043a\u0440\u0443\u0437\u0430\u0434\u043e
+currenciesDisplayName.MWK=\u041c\u0430\u043b\u0430\u0432\u0438\u0439\u0441\u043a\u0430\u044f \u043a\u0432\u0430\u0447\u0430
currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u0440\u0435\u0430\u043b
-currenciesDisplayName.TPE=\u0422\u0438\u043c\u043e\u0440\u0441\u043a\u043e\u0435 \u044d\u0441\u043a\u0443\u0434\u043e
+currenciesDisplayName.TPE=\u0422\u0438\u043c\u043e\u0440\u0441\u043a\u0438\u0439 \u044d\u0441\u043a\u0443\u0434\u043e
+currenciesDisplayName.BRE=\u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e (1990-1993)
+currenciesDisplayName.BRC=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u043a\u043e\u0435 \u043a\u0440\u0443\u0437\u0430\u0434\u043e
+currenciesDisplayName.BRB=\u043d\u043e\u0432\u044b\u0439 \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e (1967-1986)
currenciesDisplayName.DEM=\u041d\u0435\u043c\u0435\u0446\u043a\u0430\u044f \u043c\u0430\u0440\u043a\u0430
currenciesDisplayName.KWD=\u041a\u0443\u0432\u0435\u0439\u0442\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.XCD=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u043a\u0430\u0440\u0438\u0431\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
@@ -125,107 +181,141 @@ currenciesDisplayName.NPR=\u041d\u0435\u043f\u0430\u043b\u044c\u0441\u043a\u0430
currenciesDisplayName.GWP=\u041f\u0435\u0441\u043e \u0413\u0432\u0438\u043d\u0435\u0438-\u0411\u0438\u0441\u0430\u0443
currenciesDisplayName.YUN=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.SVC=\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440\u0441\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
+currenciesDisplayName.YUM=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438\u0439 \u043d\u043e\u0432\u044b\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.BEL=\u0411\u0435\u043b\u044c\u0433\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0439)
currenciesDisplayName.SIT=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438\u0439 \u0442\u043e\u043b\u0430\u0440
-currenciesDisplayName.JPY=\u042f\u043f\u043e\u043d\u0441\u043a\u0430\u044f \u0438\u0435\u043d\u0430
+currenciesDisplayName.JPY=\u042f\u043f\u043e\u043d\u0441\u043a\u0430\u044f \u0439\u0435\u043d\u0430
currenciesDisplayName.XOF=\u0424\u0440\u0430\u043d\u043a \u041a\u0424\u0410 \u0412\u0421\u0415\u0410\u041e
currenciesDisplayName.MVR=\u041c\u0430\u043b\u044c\u0434\u0438\u0432\u0441\u043a\u0430\u044f \u0440\u0443\u0444\u0438\u044f
currenciesDisplayName.BEF=\u0411\u0435\u043b\u044c\u0433\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.GWE=\u042d\u0441\u043a\u0443\u0434\u043e \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u043e\u0439 \u0413\u0432\u0438\u043d\u0435\u0438
currenciesDisplayName.TOP=\u041f\u0430\u0430\u043d\u0433\u0430
+currenciesDisplayName.YUD=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u043a\u0438\u0439 \u0442\u0432\u0435\u0440\u0434\u044b\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.BEC=\u0411\u0435\u043b\u044c\u0433\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u044b\u0439)
+currenciesDisplayName.SUR=\u0420\u0443\u0431\u043b\u044c \u0421\u0421\u0421\u0420
+currenciesDisplayName.RON=\u041b\u0435\u0439
currenciesDisplayName.ROL=\u0420\u0443\u043c\u044b\u043d\u0441\u043a\u0438\u0439 \u043b\u0435\u0439
currenciesDisplayName.BDT=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448\u0441\u043a\u0430\u044f \u0442\u0430\u043a\u0430
+currenciesDisplayName.DDM=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0433\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0430\u044f \u043c\u0430\u0440\u043a\u0430
+currenciesDisplayName.XBD=\u0420\u0430\u0441\u0447\u0435\u0442\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0432\u0430\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f (XBD)
currenciesDisplayName.AWG=\u0410\u0440\u0443\u0431\u0430\u043d\u0441\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
+currenciesDisplayName.XBC=\u0420\u0430\u0441\u0447\u0435\u0442\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430 \u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0433\u043e \u0432\u0430\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0441\u043e\u0433\u043b\u0430\u0448\u0435\u043d\u0438\u044f (XBC)
+currenciesDisplayName.XBB=\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430\u044f \u0434\u0435\u043d\u0435\u0436\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430
+currenciesDisplayName.XBA=\u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0430\u044f \u0441\u043e\u0441\u0442\u0430\u0432\u043d\u0430\u044f \u0435\u0434\u0438\u043d\u0438\u0446\u0430
currenciesDisplayName.NOK=\u041d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.MUR=\u041c\u0430\u0432\u0440\u0438\u043a\u0438\u0439\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
currenciesDisplayName.ZAR=\u042e\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u044d\u043d\u0434
currenciesDisplayName.SHP=\u0424\u0443\u043d\u0442 \u043e\u0441\u0442\u0440\u043e\u0432\u0430 \u0421\u0432\u044f\u0442\u043e\u0439 \u0415\u043b\u0435\u043d\u044b
currenciesDisplayName.XAU=\u0417\u043e\u043b\u043e\u0442\u043e
+currenciesDisplayName.ZAL=\u042e\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u044d\u043d\u0434 (\u0444\u0438\u043d\u0430\u043d\u0441\u043e\u0432\u044b\u0439)
currenciesDisplayName.VND=\u0412\u044c\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438\u0439 \u0434\u043e\u043d\u0433
currenciesDisplayName.TZS=\u0422\u0430\u043d\u0437\u0430\u043d\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
currenciesDisplayName.GIP=\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
currenciesDisplayName.TND=\u0422\u0443\u043d\u0438\u0441\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.CVE=\u042d\u0441\u043a\u0443\u0434\u043e \u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435
-currenciesDisplayName.ZMK=\u041a\u0432\u0430\u0447\u0430 (\u0437\u0430\u043c\u0431\u0438\u0439\u0441\u043a\u0430\u044f)
+currenciesDisplayName.UGX=\u0423\u0433\u0430\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
+currenciesDisplayName.XAG=\u0421\u0435\u0440\u0435\u0431\u0440\u043e
+currenciesDisplayName.ZMK=\u0417\u0430\u043c\u0431\u0438\u0439\u0441\u043a\u0430\u044f \u043a\u0432\u0430\u0447\u0430
currenciesDisplayName.JOD=\u0418\u043e\u0440\u0434\u0430\u043d\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.XAF=\u0424\u0440\u0430\u043d\u043a \u041a\u0424\u0410 \u0412\u0415\u0410\u0421
currenciesDisplayName.LBP=\u041b\u0438\u0432\u0430\u043d\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.UGS=\u0423\u0433\u0430\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
-currenciesDisplayName.STD=\u0414\u043e\u0431\u0440\u0430
+currenciesDisplayName.UGS=\u0443\u0433\u0430\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433 (1966-1987)
+currenciesDisplayName.STD=\u0414\u043e\u0431\u0440\u0430 \u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0441\u0438\u043f\u0438
currenciesDisplayName.WST=\u0422\u0430\u043b\u0430
currenciesDisplayName.KHR=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0438\u0439\u0441\u043a\u0438\u0439 \u0440\u0438\u0435\u043b\u044c
-currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
currenciesDisplayName.DOP=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
-currenciesDisplayName.MTL=\u041c\u0430\u043b\u044c\u0442\u0438\u0439\u0441\u043a\u0430\u044f \u043b\u0438\u0440\u0430
+currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
+currenciesDisplayName.BOV=\u0411\u043e\u043b\u0438\u0432\u0438\u0439\u0441\u043a\u0438\u0439 \u043c\u0432\u0434\u043e\u043b
+currenciesDisplayName.MTP=\u041c\u0430\u043b\u044c\u0442\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.USS=\u0414\u043e\u043b\u043b\u0430\u0440 \u0421\u0428\u0410 \u0442\u0435\u043a\u0443\u0449\u0435\u0433\u043e \u0434\u043d\u044f
+currenciesDisplayName.BOP=\u0411\u043e\u043b\u0438\u0432\u0438\u0439\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
currenciesDisplayName.CUP=\u041a\u0443\u0431\u0438\u043d\u0441\u043a\u043e\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.MTL=\u041c\u0430\u043b\u044c\u0442\u0438\u0439\u0441\u043a\u0430\u044f \u043b\u0438\u0440\u0430
currenciesDisplayName.TMM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.USN=\u0414\u043e\u043b\u043b\u0430\u0440 \u0421\u0428\u0410 \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0435\u0433\u043e \u0434\u043d\u044f
+currenciesDisplayName.GHS=\u0421\u0435\u0434\u0438 \u0413\u0430\u043d\u044b
currenciesDisplayName.SGD=\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
currenciesDisplayName.NZD=\u041d\u043e\u0432\u043e\u0437\u0435\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
currenciesDisplayName.USD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0421\u0428\u0410
+currenciesDisplayName.BOB=\u0431\u043e\u043b\u0438\u0432\u0438\u0430\u043d\u043e
currenciesDisplayName.HNL=\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441\u0441\u043a\u0430\u044f \u043b\u0435\u043c\u043f\u0438\u0440\u0430
-currenciesDisplayName.BOB=\u0411\u043e\u043b\u0438\u0432\u0438\u0430\u043d\u043e
-currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u043e\u0435 \u0431\u0430\u043b\u044c\u0431\u043e\u0430
+currenciesDisplayName.CHW=WIR \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.ITL=\u0418\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0430\u044f \u043b\u0438\u0440\u0430
+currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u043a\u043e\u0435 \u0431\u0430\u043b\u044c\u0431\u043e\u0430
currenciesDisplayName.GTQ=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u044c\u0441\u043a\u0438\u0439 \u043a\u0435\u0442\u0441\u0430\u043b\u044c
-currenciesDisplayName.NAD=\u0414\u043e\u043b\u043b\u0430\u0440 \u041d\u0430\u043c\u0438\u0431\u0438\u0438
-currenciesDisplayName.LAK=\u041a\u0438\u043f \u041b\u041d\u0414\u0420
-currenciesDisplayName.GHC=\u0413\u0430\u043d\u0441\u043a\u0438\u0439 \u0441\u0435\u0434\u0438
+currenciesDisplayName.XXX=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u0430\u044f \u0438\u043b\u0438 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u0432\u0430\u043b\u044e\u0442\u0430
currenciesDisplayName.AUD=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
-currenciesDisplayName.KGS=\u0421\u043e\u043c (\u043a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438\u0439)
+currenciesDisplayName.GHC=\u0413\u0430\u043d\u0441\u043a\u0438\u0439 \u0441\u0435\u0434\u0438
+currenciesDisplayName.LAK=\u041a\u0438\u043f \u041b\u041d\u0414\u0420
+currenciesDisplayName.NAD=\u0414\u043e\u043b\u043b\u0430\u0440 \u041d\u0430\u043c\u0438\u0431\u0438\u0438
+currenciesDisplayName.KGS=\u041a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438\u0439 \u0441\u043e\u043c
currenciesDisplayName.MGF=\u041c\u0430\u043b\u0430\u0433\u0430\u0441\u0438\u0439\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.BBD=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.CHE=WIR \u0435\u0432\u0440\u043e
+currenciesDisplayName.MGA=\u0410\u0440\u0438\u0430\u0440\u0438
currenciesDisplayName.PYG=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439\u0441\u043a\u0438\u0439 \u0433\u0443\u0430\u0440\u0430\u043d\u0438
-currenciesDisplayName.PLZ=\u0417\u043b\u043e\u0442\u044b\u0439
+currenciesDisplayName.PLZ=\u041f\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0437\u043b\u043e\u0442\u044b\u0439 (1950-1995)
currenciesDisplayName.YER=\u0419\u0435\u043c\u0435\u043d\u0441\u043a\u0438\u0439 \u0440\u0438\u0430\u043b
currenciesDisplayName.ATS=\u0410\u0432\u0441\u0442\u0440\u0438\u0439\u0441\u043a\u0438\u0439 \u0448\u0438\u043b\u043b\u0438\u043d\u0433
currenciesDisplayName.ETB=\u042d\u0444\u0438\u043e\u043f\u0441\u043a\u0438\u0439 \u0431\u044b\u0440
currenciesDisplayName.BND=\u0411\u0440\u0443\u043d\u0435\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
-currenciesDisplayName.PLN=\u041f\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0437\u043b\u043e\u0442\u044b\u0439
-currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
currenciesDisplayName.EGP=\u0415\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.PLN=\u041f\u043e\u043b\u044c\u0441\u043a\u0438\u0439 \u0437\u043b\u043e\u0442\u044b\u0439
currenciesDisplayName.DZD=\u0410\u043b\u0436\u0438\u0440\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.ISK=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.SRG=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
currenciesDisplayName.LYD=\u041b\u0438\u0432\u0438\u0439\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.SRD=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.BAM=\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f \u043c\u0430\u0440\u043a\u0430 \u0411\u043e\u0441\u043d\u0438\u0438 \u0438 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u044b
currenciesDisplayName.BZD=\u0411\u0435\u043b\u0438\u0437\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
+currenciesDisplayName.ESP=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0435\u0441\u0435\u0442\u0430
+currenciesDisplayName.KRW=\u042e\u0436\u043d\u043e-\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0430\u044f \u0432\u043e\u043d\u0430
currenciesDisplayName.NLG=\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
-currenciesDisplayName.KRW=\u0412\u043e\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0438 \u041a\u043e\u0440\u0435\u0438
currenciesDisplayName.MRO=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0443\u0433\u0438\u044f
+currenciesDisplayName.BAD=\u0414\u0438\u043d\u0430\u0440 \u0411\u043e\u0441\u043d\u0438\u0438 \u0438 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u044b
currenciesDisplayName.ZWD=\u0414\u043e\u043b\u043b\u0430\u0440 \u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0435
currenciesDisplayName.SEK=\u0428\u0432\u0435\u0434\u0441\u043a\u0430\u044f \u043a\u0440\u043e\u043d\u0430
+currenciesDisplayName.CSK=\u0427\u0435\u0445\u043e\u0441\u043b\u043e\u0432\u0430\u0446\u043a\u0430\u044f \u0442\u0432\u0435\u0440\u0434\u0430\u044f \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.BYR=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.ESB=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0435\u0441\u0435\u0442\u0430 (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0440\u0443\u0435\u043c\u0430\u044f)
currenciesDisplayName.IRR=\u0418\u0440\u0430\u043d\u0441\u043a\u0438\u0439 \u0440\u0438\u0430\u043b
+currenciesDisplayName.ESA=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0430\u044f \u043f\u0435\u0441\u0435\u0442\u0430 (\u0410)
currenciesDisplayName.PKR=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0440\u0443\u043f\u0438\u044f
currenciesDisplayName.BMD=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438\u0439 \u0434\u043e\u043b\u043b\u0430\u0440
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=\u0421\u0442\u0430\u0440\u044b\u0439 \u0441\u0435\u0440\u0431\u0441\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
-currenciesSymbol.AMD=dram
+currenciesSymbol.SCR=SR
+currenciesSymbol.AMD=\u0434\u0440\u0430\u043c
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.ZAR=R
currenciesSymbol.RUR=\u0440.
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.JPY=\u00a5
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
currenciesSymbol.RUB=\u0440\u0443\u0431.
+currenciesSymbol.VND=\u0414\u043e\u043d\u0433
currenciesSymbol.DKK=DKr
currenciesSymbol.TZS=T Sh
currenciesSymbol.SBD=SI$
@@ -243,23 +333,25 @@ currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
+currenciesSymbol.ADP=\u0430\u043d\u0434\u043e\u0440\u0440\u0441\u043a\u0438\u0445 \u043f\u0435\u0441\u0435\u0442
currenciesSymbol.SGD=S$
currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -268,8 +360,8 @@ currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
currenciesSymbol.CNY=Y
@@ -284,10 +376,10 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=NA f.
@@ -295,49 +387,51 @@ currenciesSymbol.BZD=BZ$
currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.CAD=Can$
-shortMonths=\u044f\u043d\u0432.®\u0444\u0435\u0432\u0440.®\u043c\u0430\u0440\u0442®\u0430\u043f\u0440.®\u043c\u0430\u0439®\u0438\u044e\u043d\u044c®\u0438\u044e\u043b\u044c®\u0430\u0432\u0433.®\u0441\u0435\u043d\u0442.®\u043e\u043a\u0442.®\u043d\u043e\u044f\u0431.®\u0434\u0435\u043a.®®
-months=\u042f\u043d\u0432\u0430\u0440\u044c®\u0424\u0435\u0432\u0440\u0430\u043b\u044c®\u041c\u0430\u0440\u0442®\u0410\u043f\u0440\u0435\u043b\u044c®\u041c\u0430\u0439®\u0418\u044e\u043d\u044c®\u0418\u044e\u043b\u044c®\u0410\u0432\u0433\u0443\u0441\u0442®\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c®\u041e\u043a\u0442\u044f\u0431\u0440\u044c®\u041d\u043e\u044f\u0431\u0440\u044c®\u0414\u0435\u043a\u0430\u0431\u0440\u044c®®
-shortWeekdays=®\u0412\u0441®\u041f\u043d®\u0412\u0442®\u0421\u0440®\u0427\u0442®\u041f\u0442®\u0421\u0431®
-weekdays=®\u0432\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435®\u043f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a®\u0432\u0442\u043e\u0440\u043d\u0438\u043a®\u0441\u0440\u0435\u0434\u0430®\u0447\u0435\u0442\u0432\u0435\u0440\u0433®\u043f\u044f\u0442\u043d\u0438\u0446\u0430®\u0441\u0443\u0431\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u0434\u043e \u043d.\u044d.®\u043d.\u044d.®
+shortMonths=\u044f\u043d\u0432.\u00ae\u0444\u0435\u0432\u0440.\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440.\u00ae\u043c\u0430\u0439\u00ae\u0438\u044e\u043d\u044c\u00ae\u0438\u044e\u043b\u044c\u00ae\u0430\u0432\u0433.\u00ae\u0441\u0435\u043d\u0442.\u00ae\u043e\u043a\u0442.\u00ae\u043d\u043e\u044f\u0431.\u00ae\u0434\u0435\u043a.\u00ae\u00ae
+months=\u042f\u043d\u0432\u0430\u0440\u044c\u00ae\u0424\u0435\u0432\u0440\u0430\u043b\u044c\u00ae\u041c\u0430\u0440\u0442\u00ae\u0410\u043f\u0440\u0435\u043b\u044c\u00ae\u041c\u0430\u0439\u00ae\u0418\u044e\u043d\u044c\u00ae\u0418\u044e\u043b\u044c\u00ae\u0410\u0432\u0433\u0443\u0441\u0442\u00ae\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c\u00ae\u041e\u043a\u0442\u044f\u0431\u0440\u044c\u00ae\u041d\u043e\u044f\u0431\u0440\u044c\u00ae\u0414\u0435\u043a\u0430\u0431\u0440\u044c\u00ae\u00ae
+shortWeekdays=\u00ae\u0412\u0441\u00ae\u041f\u043d\u00ae\u0412\u0442\u00ae\u0421\u0440\u00ae\u0427\u0442\u00ae\u041f\u0442\u00ae\u0421\u0431\u00ae
+weekdays=\u00ae\u0412\u043e\u0441\u043a\u0440\u0435\u0441\u0435\u043d\u044c\u0435\u00ae\u041f\u043e\u043d\u0435\u0434\u0435\u043b\u044c\u043d\u0438\u043a\u00ae\u0412\u0442\u043e\u0440\u043d\u0438\u043a\u00ae\u0421\u0440\u0435\u0434\u0430\u00ae\u0427\u0435\u0442\u0432\u0435\u0440\u0433\u00ae\u041f\u044f\u0442\u043d\u0438\u0446\u0430\u00ae\u0421\u0443\u0431\u0431\u043e\u0442\u0430\u00ae
+eras=\u0434\u043e \u043d.\u044d.\u00ae\u043d.\u044d.\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=dd.MM.yy
mediumDateFormat=dd.MM.yyyy
-longDateFormat=d MMMM yyyy '\u0433.'
-fullDateFormat=d MMMM yyyy '\u0433.'
-shortTimeFormat=H:mm
-mediumTimeFormat=H:mm:ss
-longTimeFormat=H:mm:ss z
-fullTimeFormat=H:mm:ss z
+longDateFormat=d MMMM yyyy '\u0433'.
+fullDateFormat=d MMMM yyyy '\u0433'.
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Central\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Africa_Western\u00ae\u0417\u0430\u043f\u0430\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u0417\u0430\u043f\u0430\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00a9Aqtau\u00ae\u0410\u043a\u0442\u0430\u0443 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u0430\u0443 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u0430\u0443 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u0430\u0443 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Arabian\u00ae\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Alaska\u00ae\u0410\u043b\u044f\u0441\u043a\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u044f\u0441\u043a\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u044f\u0441\u043a\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u044f\u0441\u043a\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Hong_Kong\u00ae\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Indonesia_Western\u00ae\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Aqtobe\u00ae\u0410\u043a\u0442\u043e\u0431\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u043e\u0431\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u043e\u0431\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u043e\u0431\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Armenia\u00ae\u0410\u0440\u043c\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u043c\u0435\u043d\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u043c\u0435\u043d\u0438\u044f \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u043c\u0435\u043d\u0438\u044f \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9America_Pacific\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Almaty\u00ae\u0410\u043b\u043c\u0430-\u0410\u0442\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u043c\u0430-\u0410\u0442\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u043c\u0430-\u0410\u0442\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043b\u043c\u0430-\u0410\u0442\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Anadyr\u00ae\u0410\u043d\u0430\u0434\u044b\u0440\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043d\u0430\u0434\u044b\u0440\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043d\u0430\u0434\u044b\u0440\u044c \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043d\u0430\u0434\u044b\u0440\u044c \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Israel\u00ae\u0418\u0437\u0440\u0430\u0438\u043b\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0418\u0437\u0440\u0430\u0438\u043b\u044c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0418\u0437\u0440\u0430\u0438\u043b\u044c \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0418\u0437\u0440\u0430\u0438\u043b\u044c \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Volgograd\u00ae\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Europe_Eastern\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Moscow\u00ae\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041c\u043e\u0441\u043a\u043e\u0432\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Korea\u00ae\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041a\u043e\u0440\u0435\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Argentina_Western\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 (\u0437\u0430\u043f\u0430\u0434) \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 (\u0437\u0430\u043f\u0430\u0434) \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u0435\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9America_Eastern\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Afghanistan\u00ae\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Acre\u00ae\u0410\u043a\u0440\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0440\u0438 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0440\u0438 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0440\u0438 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Africa_Central\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u0422\u0443\u0440\u0435\u0446\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0443\u0440\u0435\u0446\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0443\u0440\u0435\u0446\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0422\u0443\u0440\u0435\u0446\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Africa_Southern\u00ae\u042e\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00ae\u00a9Argentina\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9China\u00ae\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u0413\u043e\u0440\u043d\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (\u0421\u0428\u0410)\u00ae\u0413\u043e\u0440\u043d\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f (\u0421\u0428\u0410)\u00ae\u0413\u043e\u0440\u043d\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f (\u0421\u0428\u0410)\u00ae\u0413\u043e\u0440\u043d\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f (\u0421\u0428\u0410)\u00ae\u00a9India\u00ae\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0430\u043c\u0430\u0440\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Indochina\u00ae\u0418\u043d\u0434\u043e\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0418\u043d\u0434\u043e\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Brasilia\u00ae\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f \u0434\u043d\u0435\u0432\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f \u0434\u043d\u0435\u0432\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9America_Central\u00ae\u0421\u0440\u0435\u0434\u043d\u0435-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0440\u0435\u0434\u043d\u0435-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0440\u0435\u0434\u043d\u0435-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0421\u0440\u0435\u0434\u043d\u0435-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Kuybyshev\u00ae\u041a\u0443\u0439\u0431\u044b\u0448\u0435\u0432\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041a\u0443\u0439\u0431\u044b\u0448\u0435\u0432\u0441\u043a\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041a\u0443\u0439\u0431\u044b\u0448\u0435\u0432\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u041a\u0443\u0439\u0431\u044b\u0448\u0435\u0432\u0441\u043a\u043e\u0435 \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9Japan\u00ae\u042f\u043f\u043e\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u042f\u043f\u043e\u043d\u0441\u043a\u043e\u0435 \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00ae\u00ae\u00a9Aktyubinsk\u00ae\u0410\u043a\u0442\u044e\u0431\u0438\u043d\u0441\u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u044e\u0431\u0438\u043d\u0441\u043a \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u043e\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u044e\u0431\u0438\u043d\u0441\u043a \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u0410\u043a\u0442\u044e\u0431\u0438\u043d\u0441\u043a \u043b\u0435\u0442\u043d\u0435\u0435 \u0432\u0440\u0435\u043c\u044f\u00ae\u00a9
territories.TL=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u044b\u0439 \u0422\u0438\u043c\u043e\u0440
territories.TK=\u0422\u043e\u043a\u0435\u043b\u0430\u0443
territories.TJ=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d
-territories.TH=\u0422\u0430\u0438\u043b\u0430\u043d\u0434
+territories.TH=\u041a\u043e\u0440\u043e\u043b\u0435\u0432\u0441\u0442\u0432\u043e \u0422\u0430\u0438\u043b\u0430\u043d\u0434
territories.TG=\u0422\u043e\u0433\u043e
territories.TF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0435 \u042e\u0436\u043d\u044b\u0435 \u0422\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438
territories.GY=\u0413\u0430\u0439\u0430\u043d\u0430
territories.TD=\u0427\u0430\u0434
-territories.TC=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0422\u0443\u0440\u043a\u0441 \u0438 \u041a\u0430\u0439\u043a\u043e\u0441
+territories.TC=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0422\u0451\u0440\u043a\u0441 \u0438 \u041a\u0430\u0439\u043a\u043e\u0441
territories.GW=\u0413\u0432\u0438\u043d\u0435\u044f-\u0411\u0438\u0441\u0441\u0430\u0443
territories.GU=\u0413\u0443\u0430\u043c
territories.GT=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430
-territories.GS=\u042e\u0436\u043d\u0430\u044f \u0414\u0436\u043e\u0440\u0434\u0436\u0438\u044f \u0438 \u042e\u0436\u043d\u044b\u0435 \u0421\u0430\u043d\u0434\u0432\u0438\u0447\u0435\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430
+territories.GS=\u042e\u0436\u043d\u0430\u044f \u0413\u0435\u043e\u0440\u0433\u0438\u044f \u0438 \u042e\u0436\u043d\u044b\u0435 \u0421\u0430\u043d\u0434\u0432\u0438\u0447\u0435\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430
territories.GR=\u0413\u0440\u0435\u0446\u0438\u044f
territories.GQ=\u042d\u043a\u0432\u0430\u0442\u043e\u0440\u0438\u0430\u043b\u044c\u043d\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f
territories.GP=\u0413\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430
territories.SZ=\u0421\u0432\u0430\u0437\u0438\u043b\u0435\u043d\u0434
-territories.SY=\u0421\u0438\u0440\u0438\u0439\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0431\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430
+territories.SY=\u0421\u0438\u0440\u0438\u044f
territories.GN=\u0413\u0432\u0438\u043d\u0435\u044f
territories.GM=\u0413\u0430\u043c\u0431\u0438\u044f
territories.GL=\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0438\u044f
territories.SV=\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440
-territories.062=\u042e\u0436\u043d\u0430\u044f \u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0410\u0437\u0438\u044f
+territories.062=\u042e\u0433 \u0421\u0440\u0435\u0434\u043d\u0435\u0439 \u0410\u0437\u0438\u0438
territories.ST=\u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0441\u0438\u043f\u0438
-territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f
territories.GI=\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440
+territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f
territories.GH=\u0413\u0430\u043d\u0430
territories.SR=\u0421\u0443\u0440\u0438\u043d\u0430\u043c
-territories.GF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0413\u0432\u0438\u0430\u043d\u0430
+territories.GG=\u0413\u0435\u0440\u043d\u0441\u0438
+territories.GF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f
territories.GE=\u0413\u0440\u0443\u0437\u0438\u044f
territories.SO=\u0421\u043e\u043c\u0430\u043b\u0438
territories.GD=\u0413\u0440\u0435\u043d\u0430\u0434\u0430
@@ -347,46 +441,48 @@ territories.GB=\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u043
territories.SL=\u0421\u044c\u0435\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435
territories.GA=\u0413\u0430\u0431\u043e\u043d
territories.SK=\u0421\u043b\u043e\u0432\u0430\u043a\u0438\u044f
-territories.SJ=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0421\u0432\u0430\u043b\u0431\u0430\u0440\u0434 \u0438 \u0416\u0430\u043d \u041c\u0430\u0439\u0435\u043d
+territories.SJ=\u0428\u043f\u0438\u0446\u0431\u0435\u0440\u0433\u0435\u043d \u0438 \u042f\u043d-\u041c\u0430\u0439\u0435\u043d
territories.SI=\u0421\u043b\u043e\u0432\u0435\u043d\u0438\u044f
territories.SH=\u041e\u0441\u0442\u0440\u043e\u0432 \u0421\u0432\u044f\u0442\u043e\u0439 \u0415\u043b\u0435\u043d\u044b
territories.SG=\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440
territories.SE=\u0428\u0432\u0435\u0446\u0438\u044f
territories.SD=\u0421\u0443\u0434\u0430\u043d
-territories.SC=\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
+territories.SC=\u0421\u0435\u0439\u0448\u0435\u043b\u044b
territories.SB=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430
territories.SA=\u0421\u0430\u0443\u0434\u043e\u0432\u0441\u043a\u0430\u044f \u0410\u0440\u0430\u0432\u0438\u044f
territories.FR=\u0424\u0440\u0430\u043d\u0446\u0438\u044f
-territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
territories.FO=\u0424\u0430\u0440\u0435\u0440\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
-territories.FM=\u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u043e\u0435 \u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u043e \u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
+territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
+territories.FM=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u044f
territories.RW=\u0420\u0443\u0430\u043d\u0434\u0430
territories.054=\u041c\u0435\u043b\u0430\u043d\u0435\u0437\u0438\u044f
+territories.FK=\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
territories.053=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f \u0438 \u041d\u043e\u0432\u0430\u044f \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f
-territories.FK=\u0424\u043e\u043b\u044c\u043a\u043b\u0435\u043d\u0434\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
territories.RU=\u0420\u043e\u0441\u0441\u0438\u044f
territories.FJ=\u0424\u0438\u0434\u0436\u0438
territories.FI=\u0424\u0438\u043d\u043b\u044f\u043d\u0434\u0438\u044f
+territories.RS=\u0421\u0435\u0440\u0431\u0438\u044f
territories.RO=\u0420\u0443\u043c\u044b\u043d\u0438\u044f
territories.RE=\u0420\u0435\u044e\u043d\u044c\u043e\u043d
territories.ET=\u042d\u0444\u0438\u043e\u043f\u0438\u044f
territories.ES=\u0418\u0441\u043f\u0430\u043d\u0438\u044f
territories.ER=\u042d\u0440\u0438\u0442\u0440\u0435\u044f
-territories.833=\u041c\u044d\u043d, \u043e\u0441\u0442\u0440\u043e\u0432
+territories.QU=\u0415\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0439 \u0441\u043e\u044e\u0437
territories.EH=\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0421\u0430\u0445\u0430\u0440\u0430
territories.EG=\u0415\u0433\u0438\u043f\u0435\u0442
-territories.830=\u041d\u043e\u0440\u043c\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
territories.EE=\u042d\u0441\u0442\u043e\u043d\u0438\u044f
-territories.QO=\u0423\u0434\u0430\u043b\u0435\u043d\u043d\u0430\u044f \u041e\u043a\u0435\u0430\u043d\u0438\u044f
+territories.830=\u041d\u043e\u0440\u043c\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
+territories.QO=\u0412\u043d\u0435\u0448\u043d\u044f\u044f \u041e\u043a\u0435\u0430\u043d\u0438\u044f
territories.EC=\u042d\u043a\u0432\u0430\u0434\u043e\u0440
territories.DZ=\u0410\u043b\u0436\u0438\u0440
territories.QA=\u041a\u0430\u0442\u0430\u0440
territories.039=\u042e\u0436\u043d\u0430\u044f \u0415\u0432\u0440\u043e\u043f\u0430
territories.DO=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430
territories.PY=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439
-territories.035=\u042e\u0433\u043e-\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0410\u0437\u0438\u044f
territories.DM=\u041e\u0441\u0442\u0440\u043e\u0432 \u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430
+territories.035=\u042e\u0433\u043e-\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0410\u0437\u0438\u044f
territories.PW=\u041f\u0430\u043b\u0430\u0443
+territories.034=\u042e\u0436\u043d\u0430\u044f \u0410\u0437\u0438\u044f
territories.DK=\u0414\u0430\u043d\u0438\u044f
territories.DJ=\u0414\u0436\u0438\u0431\u0443\u0442\u0438
territories.PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u044f
@@ -394,14 +490,14 @@ territories.PS=\u041f\u0430\u043b\u0435\u0441\u0442\u0438\u043d\u0441\u043a\u043
territories.030=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0410\u0437\u0438\u044f
territories.PR=\u041f\u0443\u044d\u0440\u0442\u043e-\u0420\u0438\u043a\u043e
territories.DE=\u0413\u0435\u0440\u043c\u0430\u043d\u0438\u044f
-territories.PN=\u041e\u0441\u0442\u0440\u043e\u0432 \u041f\u0438\u0442\u043a\u044d\u0440\u043d
+territories.PN=\u041f\u0438\u0442\u043a\u0435\u0440\u043d
territories.PM=\u0421\u0435\u043d-\u041f\u044c\u0435\u0440 \u0438 \u041c\u0438\u043a\u0435\u043b\u043e\u043d
territories.PL=\u041f\u043e\u043b\u044c\u0448\u0430
territories.PK=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d
territories.PH=\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u044b
territories.PG=\u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u0430\u044f \u0413\u0432\u0438\u043d\u0435\u044f
territories.PF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0430\u044f \u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u044f
-territories.CZ=\u0427\u0435\u0448\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430
+territories.CZ=\u0427\u0435\u0445\u0438\u044f
territories.PE=\u041f\u0435\u0440\u0443
territories.CY=\u041a\u0438\u043f\u0440
territories.CX=\u041e\u0441\u0442\u0440\u043e\u0432 \u0420\u043e\u0436\u0434\u0435\u0441\u0442\u0432\u0430
@@ -416,15 +512,16 @@ territories.CN=\u041a\u0438\u0442\u0430\u0439
territories.CM=\u041a\u0430\u043c\u0435\u0440\u0443\u043d
territories.CL=\u0427\u0438\u043b\u0438
territories.CK=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u041a\u0443\u043a\u0430
-territories.CI=\u041a\u043e\u0442 \u0434\u2019\u0418\u0432\u0443\u0430\u0440
-territories.021=\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
+territories.021=n/a
+territories.CI=\u041a\u043e\u0442-\u0434'\u0418\u0432\u0443\u0430\u0440
territories.CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f
territories.CG=\u041a\u043e\u043d\u0433\u043e
territories.CF=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430
-territories.CD=\u041a\u043e\u043d\u0433\u043e, \u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430
+territories.CD=\u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u041a\u043e\u043d\u0433\u043e
territories.CC=\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u044b\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430 (\u041a\u0438\u0438\u043b\u0438\u043d\u0433)
territories.OM=\u041e\u043c\u0430\u043d
territories.CA=\u041a\u0430\u043d\u0430\u0434\u0430
+territories.419=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0438 \u041a\u0430\u0440\u0438\u0431\u0441\u043a\u0438\u0435 \u043e-\u0432\u0430
territories.BZ=\u0411\u0435\u043b\u0438\u0437
territories.BY=\u0411\u0435\u043b\u0430\u0440\u0443\u0441\u044c
territories.BW=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0430
@@ -433,36 +530,39 @@ territories.BT=\u0411\u0443\u0442\u0430\u043d
territories.BS=\u0411\u0430\u0433\u0430\u043c\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f
territories.019=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0438 \u042e\u0436\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
-territories.018=\u042e\u0436\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
+territories.018=\u042e\u0436\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430 [018]
territories.NZ=\u041d\u043e\u0432\u0430\u044f \u0417\u0435\u043b\u0430\u043d\u0434\u0438\u044f
-territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u044f
territories.017=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u044f
territories.BN=\u0411\u0440\u0443\u043d\u0435\u0439 \u0414\u0430\u0440\u0443\u0441\u0441\u0430\u043b\u0430\u043c
-territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
territories.015=\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
territories.014=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BL=\u041e\u0441\u0442\u0440\u043e\u0432 \u0421\u0432\u044f\u0442\u043e\u0433\u043e \u0411\u0430\u0440\u0442\u043e\u043b\u043e\u043c\u0435\u044f
territories.013=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.NU=\u041d\u0438\u0443\u0435
territories.BJ=\u0411\u0435\u043d\u0438\u043d
-territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
territories.011=\u0417\u0430\u043f\u0430\u0434\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
+territories.172=\u0421\u043e\u0434\u0440\u0443\u0436\u0435\u0441\u0442\u0432\u043e \u041d\u0435\u0437\u0430\u0432\u0438\u0441\u0438\u043c\u044b\u0445 \u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432 (\u0421\u041d\u0413)
territories.BH=\u0411\u0430\u0445\u0440\u0435\u0439\u043d
territories.NR=\u041d\u0430\u0443\u0440\u0443
territories.BG=\u0411\u043e\u043b\u0433\u0430\u0440\u0438\u044f
territories.BF=\u0411\u0443\u0440\u043a\u0438\u043d\u0430 \u0424\u0430\u0441\u043e
territories.NP=\u041d\u0435\u043f\u0430\u043b
territories.BE=\u0411\u0435\u043b\u044c\u0433\u0438\u044f
+territories.ZZ=\u041d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0438\u043b\u0438 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u0440\u0435\u0433\u0438\u043e\u043d
territories.NO=\u041d\u043e\u0440\u0432\u0435\u0433\u0438\u044f
territories.BD=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448
territories.BB=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441
territories.ZW=\u0417\u0438\u043c\u0431\u0430\u0431\u0432\u0435
territories.NL=\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u044b
-territories.BA=\u0411\u043e\u0441\u043d\u0438\u044f
+territories.BA=\u0411\u043e\u0441\u043d\u0438\u044f \u0438 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u0430
territories.NI=\u041d\u0438\u043a\u0430\u0440\u0430\u0433\u0443\u0430
territories.NG=\u041d\u0438\u0433\u0435\u0440\u0438\u044f
territories.NF=\u041e\u0441\u0442\u0440\u043e\u0432 \u041d\u043e\u0440\u0444\u043e\u043b\u043a
territories.AZ=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d
-territories.NE=\u041d\u0438\u0433\u0435\u0440
+territories.NE=\u041d\u0438\u0433\u0435\u0440\u0438\u044f
territories.AX=\u0410\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
territories.NC=\u041d\u043e\u0432\u0430\u044f \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0438\u044f
territories.AW=\u0410\u0440\u0443\u0431\u0430
@@ -472,32 +572,33 @@ territories.AU=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u044f
territories.AT=\u0410\u0432\u0441\u0442\u0440\u0438\u044f
territories.AS=\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u043e\u0435 \u0421\u0430\u043c\u043e\u0430
territories.AR=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430
+territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a\u0430
territories.009=\u041e\u043a\u0435\u0430\u043d\u0438\u044f
-territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u0434\u0430
territories.MZ=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a
territories.AO=\u0410\u043d\u0433\u043e\u043b\u0430
territories.MY=\u041c\u0430\u043b\u0430\u0439\u0437\u0438\u044f
-territories.AN=\u0413\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u0410\u043d\u0442\u0438\u043b\u044c\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
+territories.AN=\u041d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0435 \u0410\u043d\u0442\u0438\u043b\u044c\u0441\u043a\u0438\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430
territories.MX=\u041c\u0435\u043a\u0441\u0438\u043a\u0430
-territories.005=\u042e\u0436\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.AM=\u0410\u0440\u043c\u0435\u043d\u0438\u044f
+territories.005=\u042e\u0436\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.MW=\u041c\u0430\u043b\u0430\u0432\u0438
territories.AL=\u0410\u043b\u0431\u0430\u043d\u0438\u044f
territories.MV=\u041c\u0430\u043b\u044c\u0434\u0438\u0432\u044b
+territories.003=\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.ZA=\u042e\u0436\u043d\u0430\u044f \u0410\u0444\u0440\u0438\u043a\u0430
territories.MU=\u041c\u0430\u0432\u0440\u0438\u043a\u0438\u0439
territories.002=\u0410\u0444\u0440\u0438\u043a\u0430
territories.MT=\u041c\u0430\u043b\u044c\u0442\u0430
+territories.AI=\u0410\u043d\u0433\u0438\u043b\u044c\u044f
territories.001=\u0412\u0441\u0435\u043c\u0438\u0440\u043d\u043e\u0435
-territories.AI=\u0410\u043d\u0433\u0443\u0438\u043b\u043b\u0430
-territories.MS=\u041c\u043e\u043d\u0441\u0435\u0440\u0440\u0430\u0442
+territories.MS=\u041c\u043e\u043d\u0442\u0441\u0435\u0440\u0440\u0430\u0442
territories.MR=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0438\u044f
territories.AG=\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
territories.MQ=\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a
territories.AF=\u0410\u0444\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d
territories.MP=\u0421\u0435\u0432\u0435\u0440\u043d\u044b\u0435 \u041c\u0430\u0440\u0438\u0430\u043d\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
territories.AE=\u041e\u0431\u044a\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u0410\u0440\u0430\u0431\u0441\u043a\u0438\u0435 \u042d\u043c\u0438\u0440\u0430\u0442\u044b
-territories.MO=\u041c\u0430\u043a\u0430\u043e (\u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0441 \u041e\u0441\u043e\u0431\u044b\u043c \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c, \u041a\u0438\u0442\u0430\u0439)
+territories.MO=\u041c\u0430\u043a\u0430\u043e
territories.AD=\u0410\u043d\u0434\u043e\u0440\u0440\u0430
territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u044f
territories.MM=\u041c\u044c\u044f\u043d\u043c\u0430
@@ -506,6 +607,8 @@ territories.MK=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u044f
territories.YT=\u041c\u0430\u0439\u043e\u0442\u0442\u0430
territories.MH=\u041c\u0430\u0440\u0448\u0430\u043b\u043b\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430
territories.MG=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
+territories.MF=\u041e\u0441\u0442\u0440\u043e\u0432 \u0421\u0432\u044f\u0442\u043e\u0433\u043e \u041c\u0430\u0440\u0442\u0438\u043d\u0430
+territories.ME=\u0427\u0435\u0440\u043d\u043e\u0433\u043e\u0440\u0438\u044f
territories.MD=\u041c\u043e\u043b\u0434\u043e\u0432\u0430
territories.MC=\u041c\u043e\u043d\u0430\u043a\u043e
territories.MA=\u041c\u0430\u0440\u043e\u043a\u043a\u043e
@@ -526,43 +629,46 @@ territories.LC=\u0421\u0435\u043d\u0442-\u041b\u044e\u0441\u0438\u044f
territories.LB=\u041b\u0438\u0432\u0430\u043d
territories.LA=\u041b\u0430\u043e\u0441
territories.KZ=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d
-territories.KY=\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u044b \u041e\u0441\u0442\u0440\u043e\u0432\u0430
+territories.KY=\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u044b \u043e\u0441\u0442\u0440\u043e\u0432\u0430
territories.KW=\u041a\u0443\u0432\u0435\u0439\u0442
territories.145=\u0411\u043b\u0438\u0436\u043d\u0438\u0439 \u0438 \u0421\u0440\u0435\u0434\u043d\u0438\u0439 \u0412\u043e\u0441\u0442\u043e\u043a
+territories.143=\u0421\u0440\u0435\u0434\u043d\u044f\u044f \u0410\u0437\u0438\u044f
territories.142=\u0410\u0437\u0438\u044f
territories.KR=\u042e\u0436\u043d\u0430\u044f \u041a\u043e\u0440\u0435\u044f
-territories.KP=\u0421\u0435\u0432\u0435\u0440\u043d\u0430\u044f \u041a\u043e\u0440\u0435\u044f
-territories.KN=\u0421\u0435\u043d\u0442-\u041a\u0438\u0442\u0442\u0441 \u0438 \u041d\u0435\u0432\u0438\u0441
+territories.KP=\u041a\u041d\u0414\u0420
+territories.KN=\u0421\u0435\u043d\u0442-\u041a\u0438\u0442\u0441 \u0438 \u041d\u0435\u0432\u0438\u0441
territories.KM=\u041a\u043e\u043c\u043e\u0440\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
territories.KI=\u041a\u0438\u0440\u0438\u0431\u0430\u0442\u0438
territories.WS=\u0421\u0430\u043c\u043e\u0430
territories.KH=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430
territories.KG=\u041a\u044b\u0440\u0433\u044b\u0437\u0441\u0442\u0430\u043d
territories.KE=\u041a\u0435\u043d\u0438\u044f
-territories.WF=\u042d\u043b\u043b\u0438\u0441 \u0438 \u0424\u0443\u0442\u0443\u043d\u0430
+territories.WF=\u0423\u043e\u043b\u043b\u0438\u0441 \u0438 \u0424\u0443\u0442\u0443\u043d\u0430
territories.JP=\u042f\u043f\u043e\u043d\u0438\u044f
territories.JO=\u0418\u043e\u0440\u0434\u0430\u043d\u0438\u044f
territories.JM=\u042f\u043c\u0430\u0439\u043a\u0430
territories.VU=\u0412\u0430\u043d\u0443\u0430\u0442\u0443
+territories.JE=\u0414\u0436\u0435\u0440\u0441\u0438
territories.VN=\u0412\u044c\u0435\u0442\u043d\u0430\u043c
territories.VI=\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0435 \u0412\u0438\u0440\u0433\u0438\u043d\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
territories.VG=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0435 \u0412\u0438\u0440\u0433\u0438\u043d\u0441\u043a\u0438\u0435 \u041e\u0441\u0442\u0440\u043e\u0432\u0430
territories.VE=\u0412\u0435\u043d\u0435\u0441\u0443\u044d\u043b\u0430
territories.VC=\u0421\u0435\u043d\u0442-\u0412\u0438\u043d\u0441\u0435\u043d\u0442 \u0438 \u0413\u0440\u0435\u043d\u0430\u0434\u0438\u043d\u044b
-territories.VA=\u0413\u043e\u0441\u0443\u0434\u0430\u0440\u0441\u0442\u0432\u043e-\u0433\u043e\u0440\u043e\u0434 \u0412\u0430\u0442\u0438\u043a\u0430\u043d
+territories.VA=\u0412\u0430\u0442\u0438\u043a\u0430\u043d
territories.IT=\u0418\u0442\u0430\u043b\u0438\u044f
territories.IS=\u0418\u0441\u043b\u0430\u043d\u0434\u0438\u044f
territories.IR=\u0418\u0440\u0430\u043d
territories.IQ=\u0418\u0440\u0430\u043a
territories.UZ=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d
-territories.IO=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0435 \u0422\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u0438 \u0432 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u043c \u041e\u043a\u0435\u0430\u043d\u0435
+territories.IO=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430\u044f \u0442\u0435\u0440\u0440\u0438\u0442\u043e\u0440\u0438\u044f \u0432 \u0418\u043d\u0434\u0438\u0439\u0441\u043a\u043e\u043c \u043e\u043a\u0435\u0430\u043d\u0435
territories.UY=\u0423\u0440\u0443\u0433\u0432\u0430\u0439
territories.IN=\u0418\u043d\u0434\u0438\u044f
+territories.IM=\u041e\u0441\u0442\u0440\u043e\u0432 \u041c\u044d\u043d
territories.IL=\u0418\u0437\u0440\u0430\u0438\u043b\u044c
territories.US=\u0421\u043e\u0435\u0434\u0438\u043d\u0435\u043d\u043d\u044b\u0435 \u0428\u0442\u0430\u0442\u044b
territories.IE=\u0418\u0440\u043b\u0430\u043d\u0434\u0438\u044f
territories.ID=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u044f
-territories.UM=\u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u043c\u0430\u043b\u044b\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430 (\u0421\u0428\u0410)
+territories.UM=\u0412\u043d\u0435\u0448\u043d\u0438\u0435 \u043c\u0430\u043b\u044b\u0435 \u043e\u0441\u0442\u0440\u043e\u0432\u0430 \u0421\u0428\u0410
territories.UG=\u0423\u0433\u0430\u043d\u0434\u0430
territories.UA=\u0423\u043a\u0440\u0430\u0438\u043d\u0430
territories.HU=\u0412\u0435\u043d\u0433\u0440\u0438\u044f
@@ -570,68 +676,85 @@ territories.HT=\u0413\u0430\u0438\u0442\u0438
territories.HR=\u0425\u043e\u0440\u0432\u0430\u0442\u0438\u044f
territories.TZ=\u0422\u0430\u043d\u0437\u0430\u043d\u0438\u044f
territories.HN=\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441
-territories.HM=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0425\u0435\u0440\u0434 \u0438 \u041c\u0430\u043a-\u0414\u043e\u043d\u0430\u043b\u044c\u0434
+territories.HM=\u041e\u0441\u0442\u0440\u043e\u0432\u0430 \u0425\u0435\u0440\u0434 \u0438 \u041c\u0430\u043a\u0434\u043e\u043d\u0430\u043b\u044c\u0434
territories.TW=\u0422\u0430\u0439\u0432\u0430\u043d\u044c
territories.TV=\u0422\u0443\u0432\u0430\u043b\u0443
-territories.HK=\u0413\u043e\u043d\u043a\u043e\u043d\u0433 (\u041e\u0431\u043b\u0430\u0441\u0442\u044c \u0441 \u041e\u0441\u043e\u0431\u044b\u043c \u0410\u0434\u043c\u0438\u043d\u0438\u0441\u0442\u0440\u0430\u0442\u0438\u0432\u043d\u044b\u043c \u0423\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0438\u0435\u043c, \u041a\u0438\u0442\u0430\u0439)
+territories.HK=\u0413\u043e\u043d\u043a\u043e\u043d\u0433
territories.TT=\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e
territories.TR=\u0422\u0443\u0440\u0446\u0438\u044f
territories.TO=\u0422\u043e\u043d\u0433\u0430
territories.TN=\u0422\u0443\u043d\u0438\u0441
territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d
+languages.gwi=\u0433\u0432\u0438\u0447\u0438\u043d
languages.akk=\u0430\u043a\u043a\u0430\u0434\u0441\u043a\u0438\u0439
languages.eka=\u044d\u043a\u0430\u0434\u0436\u0443\u043a
languages.ijo=\u0438\u0434\u0436\u043e
-languages.xh=\u043a\u043e\u0441\u0430
+languages.xh=\u043a\u0445\u043e\u0441\u0430
languages.sux=\u0448\u0443\u043c\u0435\u0440\u0441\u043a\u0438\u0439
languages.sus=\u0441\u0443\u0441\u0443
-languages.mis=\u0441\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.mis=\u0421\u043c\u0435\u0448\u0430\u043d\u043d\u044b\u0435 \u044f\u0437\u044b\u043a\u0438
languages.loz=\u043b\u043e\u0437\u0438
-languages.tog=\u0442\u043e\u043d\u0433\u0430 (\u043d\u044c\u044f\u0441\u0430)
+languages.tog=\u043d\u044c\u044f\u0441\u0430 (\u0442\u043e\u043d\u0433\u0430)
+languages.zbl=\u0431\u043b\u0438\u0441\u0441\u0438\u043c\u0432\u043e\u043b\u0438\u043a\u0430
languages.pon=\u043f\u043e\u043d\u0430\u043f\u0435
languages.min=\u043c\u0438\u043d\u0430\u043d\u0433\u043a\u0430\u0431\u0430\u0443
languages.suk=\u0441\u0443\u043a\u0443\u043c\u0430
languages.wo=\u0432\u043e\u043b\u043e\u0444
-languages.kut=\u043a\u0443\u0442\u0435\u043d\u0430\u0438
languages.lol=\u043c\u043e\u043d\u0433\u043e
+languages.kut=\u043a\u0443\u0442\u0435\u043d\u0430\u0438
languages.mic=\u043c\u0438\u043a\u043c\u0430\u043a
+languages.wa=\u0432\u0430\u043b\u043b\u043e\u043d\u0441\u043a\u0438\u0439
languages.kum=\u043a\u0443\u043c\u044b\u043a\u0441\u043a\u0438\u0439
languages.zap=\u0441\u0430\u043f\u043e\u0442\u0435\u043a\u0441\u043a\u0438\u0439
+languages.ain=\u0430\u0439\u043d\u0443
languages.cus=\u043a\u0443\u0448\u0438\u0442\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.jbo=\u043b\u043e\u0436\u0431\u0430\u043d
languages.doi=\u0434\u043e\u0433\u0440\u0438
+languages.zza=\u0437\u0430\u0437\u0430
languages.vo=\u0432\u043e\u043b\u0430\u043f\u044e\u043a
-languages.oto=\u043e\u0442\u043e\u043c\u0430\u043d\u0433\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.oto=\u043e\u0442\u043e\u043c\u0430\u043d\u0433\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
languages.vi=\u0432\u044c\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438\u0439
languages.vai=\u0432\u0430\u0438
-languages.raj=\u0440\u0430\u0434\u0436\u0430\u0441\u0442\u0445\u0430\u043d\u0438
-languages.nzi=\u043d\u0437\u0438\u043c\u0430
+languages.rar=\u0440\u0430\u0440\u043e\u0442\u043e\u043d\u0433\u0430
+languages.ve=\u0432\u0435\u043d\u0434\u0430
+languages.rap=\u0440\u0430\u043f\u0430\u043d\u0443\u0439\u0441\u043a\u0438\u0439
+languages.raj=\u0440\u0430\u0434\u0436\u0430\u0441\u0442\u0430\u043d\u0438
languages.ota=\u0441\u0442\u0430\u0440\u043e\u0442\u0443\u0440\u0435\u0446\u043a\u0438\u0439
+languages.nzi=\u043d\u0437\u0438\u043c\u0430
+languages.nap=\u043d\u0435\u0430\u043f\u043e\u043b\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439
languages.uz=\u0443\u0437\u0431\u0435\u043a\u0441\u043a\u0438\u0439
languages.uga=\u0443\u0433\u0430\u0440\u0438\u0442\u0441\u043a\u0438\u0439
languages.tmh=\u0442\u0430\u043c\u0430\u0448\u0435\u043a
-languages.nai=\u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0439 \u0410\u043c\u0435\u0440\u0438\u043a\u0438 \u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.nai=\u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 \u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0439 \u0410\u043c\u0435\u0440\u0438\u043a\u0438
languages.nah=\u0430\u0446\u0442\u0435\u043a\u0441\u043a\u0438\u0439
languages.ur=\u0443\u0440\u0434\u0443
languages.fat=\u0444\u0430\u043d\u0442\u0438
languages.uk=\u0443\u043a\u0440\u0430\u0438\u043d\u0441\u043a\u0438\u0439
languages.egy=\u0434\u0440\u0435\u0432\u043d\u0435\u0435\u0433\u0438\u043f\u0435\u0442\u0441\u043a\u0438\u0439
+languages.zxx=\u0431\u0435\u0437 \u044f\u0437\u044b\u043a\u043e\u0432\u043e\u0433\u043e \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u043d\u0438\u044f
languages.ug=\u0443\u0439\u0433\u0443\u0440\u0441\u043a\u0438\u0439
languages.fan=\u0444\u0430\u043d\u0433
languages.ssa=\u043d\u0438\u043b\u043e-\u0441\u0430\u0445\u0430\u0440\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
-languages.bat=\u0431\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.mga=\u0441\u0440\u0435\u0434\u043d\u0435\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
-languages.bas=\u0431\u0430\u0441\u0430
+languages.bat=\u0431\u0430\u043b\u0442\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.nyo=\u043d\u044c\u043e\u0440\u043e
+languages.bas=\u0431\u0430\u0441\u0430
languages.nyn=\u043d\u044c\u044f\u043d\u043a\u043e\u043b\u0435
languages.nym=\u043d\u044c\u044f\u043c\u0432\u0435\u0437\u0438
+languages.gsw=\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439 (\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0438\u044f)
+languages.hmn=\u0445\u043c\u043e\u043d\u0433
languages.ban=\u0431\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439
languages.osa=\u043e\u0441\u0435\u0434\u0436\u0438
languages.bal=\u0431\u0435\u043b\u0443\u0434\u0436\u0441\u043a\u0438\u0439
-languages.bai=\u0431\u0430\u043c\u0438\u043b\u0435\u043a\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.ty=\u0442\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438\u0439
+languages.bai=\u0431\u0430\u043c\u0438\u043b\u0435\u043a\u0435
languages.tw=\u0442\u0432\u0438
+languages.srr=\u0441\u0435\u0440\u0435\u0440
languages.tli=\u0442\u043b\u0438\u043d\u0433\u0438\u0442
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d\u0441\u043a\u0438\u0439
languages.tt=\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0438\u0439
languages.ts=\u0442\u0441\u043e\u043d\u0433\u0430
+languages.srn=c\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u043a\u0438\u0439
languages.bad=\u0431\u0430\u043d\u0434\u0430
languages.tr=\u0442\u0443\u0440\u0435\u0446\u043a\u0438\u0439
languages.to=\u0442\u043e\u043d\u0433\u0430
@@ -640,14 +763,20 @@ languages.tl=\u0442\u0430\u0433\u0430\u043b\u043e\u0433
languages.tk=\u0442\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438\u0439
languages.ti=\u0442\u0438\u0433\u0440\u0438\u043d\u044c\u044f
languages.th=\u0442\u0430\u0439\u0441\u043a\u0438\u0439
+languages.kru=\u043a\u0443\u0440\u0443\u0445
languages.tg=\u0442\u0430\u0434\u0436\u0438\u043a\u0441\u043a\u0438\u0439
+languages.byn=\u0431\u0438\u043b\u0438\u043d (\u0431\u043b\u0438\u043d)
languages.te=\u0442\u0435\u043b\u0443\u0433\u0443
languages.kro=\u043a\u0440\u0443
+languages.csb=\u043a\u0430\u0448\u0443\u0431\u0438\u0430\u043d\u0441\u043a\u0438\u0439
languages.ta=\u0442\u0430\u043c\u0438\u043b\u044c\u0441\u043a\u0438\u0439
+languages.krl=\u043a\u0430\u0440\u0435\u043b\u044c\u0441\u043a\u0438\u0439
+languages.tkl=\u0442\u043e\u043a\u0435\u043b\u0430\u0439\u0441\u043a\u0438\u0439
languages.efi=\u044d\u0444\u0438\u043a
languages.sw=\u0441\u0443\u0430\u0445\u0438\u043b\u0438
languages.sv=\u0448\u0432\u0435\u0434\u0441\u043a\u0438\u0439
languages.su=\u0441\u0443\u043d\u0434\u0430\u043d\u0441\u043a\u0438\u0439
+languages.krc=\u043a\u0430\u0440\u0430\u0447\u0430\u0435\u0432\u043e-\u0431\u0430\u043b\u043a\u0430\u0440\u0441\u043a\u0438\u0439
languages.st=\u0441\u043e\u0442\u043e \u044e\u0436\u043d\u044b\u0439
languages.ss=\u0441\u0432\u0430\u0437\u0438
languages.sr=\u0441\u0435\u0440\u0431\u0441\u043a\u0438\u0439
@@ -661,77 +790,120 @@ languages.sm=\u0441\u0430\u043c\u043e\u0430\u043d\u0441\u043a\u0438\u0439
languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438\u0439
languages.grc=\u0434\u0440\u0435\u0432\u043d\u0435\u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0439
languages.sk=\u0441\u043b\u043e\u0432\u0430\u0446\u043a\u0438\u0439
+languages.grb=\u0433\u0440\u0435\u0431\u043e
languages.si=\u0441\u0438\u043d\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439
-languages.sh=\u0441\u0435\u0440\u0431\u0441\u043a\u043e\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0439
+languages.sh=\u0441\u0435\u0440\u0431\u043e\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0439
+languages.crh=\u043a\u0440\u044b\u043c\u0441\u043a\u043e-\u0442\u0430\u0442\u0430\u0440\u0441\u043a\u0438\u0439
languages.afa=\u0430\u0444\u0440\u0430\u0437\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.sg=\u0441\u0430\u043d\u0433\u043e
+languages.se=\u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439
languages.sd=\u0441\u0438\u043d\u0434\u0445\u0438
+languages.udm=\u0443\u0434\u043c\u0443\u0440\u0442\u0441\u043a\u0438\u0439
+languages.sc=\u0441\u0430\u0440\u0434\u0438\u043d\u0441\u043a\u0438\u0439
languages.sa=\u0441\u0430\u043d\u0441\u043a\u0440\u0438\u0442
languages.rw=\u043a\u0438\u043d\u044c\u044f\u0440\u0443\u0430\u043d\u0434\u0430
+languages.nwc=\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u041d\u0435\u0443\u0430\u0440\u0438
languages.ru=\u0440\u0443\u0441\u0441\u043a\u0438\u0439
+languages.mdr=\u043c\u0430\u043d\u0434\u0430\u0440\u0430
languages.ro=\u0440\u0443\u043c\u044b\u043d\u0441\u043a\u0438\u0439
languages.rn=\u0440\u0443\u043d\u0434\u0438
languages.rm=\u0440\u0435\u0442\u043e\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438\u0439
+languages.fr_CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439
+languages.mdf=\u043c\u043e\u043a\u0448\u0430\u043d\u0441\u043a\u0438\u0439
languages.tiv=\u0442\u0438\u0432\u0438
+languages.fr_CA=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439
languages.ady=\u0430\u0434\u044b\u0433\u0435\u0439\u0441\u043a\u0438\u0439
languages.zun=\u0437\u0443\u043d\u044c\u0438
languages.kpe=\u043a\u043f\u0435\u043b\u043b\u0435
languages.qu=\u043a\u0435\u0447\u0443\u0430
languages.tig=\u0442\u0438\u0433\u0440\u0435
-languages.cpp=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u043a\u0438\u0435 \u0438 \u043f\u0438\u0434\u0436\u0438\u043d\u044b (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.son=c\u043e\u043d\u0433\u0430\u0438
+languages.cpp=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u043a\u0438\u0435 \u0438 \u043f\u0438\u0434\u0436\u0438\u043d\u044b (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.rup=\u0430\u0440\u0443\u043c\u044b\u043d\u0441\u043a\u0438\u0439
languages.sog=\u0441\u043e\u0433\u0434\u0438\u0439\u0441\u043a\u0438\u0439
languages.ada=\u0430\u0434\u0430\u043d\u0433\u043c\u0435
+languages.kos=\u043a\u043e\u0441\u0440\u0430\u0435\u043d\u0441\u043a\u0438\u0439
+languages.hit=\u0445\u0435\u0442\u0442\u0441\u043a\u0438\u0439
languages.cpf=\u0444\u0440\u0430\u043d\u043a\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u043a\u0438\u0435 \u0438 \u043f\u0438\u0434\u0436\u0438\u043d\u044b (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.cpe=\u0430\u043d\u0433\u043b\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u043a\u0438\u0435 \u0438 \u043f\u0438\u0434\u0436\u0438\u043d\u044b (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.him=\u0445\u0438\u043c\u0430\u0447\u0430\u043b\u0438
-languages.got=\u0433\u043e\u0442\u0441\u043a\u0438\u0439
-languages.hil=\u0445\u0438\u043b\u0438\u0433\u0430\u0439\u043d\u043e\u043d
languages.kok=\u043a\u043e\u043d\u043a\u0430\u043d\u0438
+languages.hil=\u0445\u0438\u043b\u0438\u0433\u0430\u0439\u043d\u043e\u043d
+languages.got=\u0433\u043e\u0442\u0441\u043a\u0438\u0439
+languages.gor=\u0433\u043e\u0440\u043e\u043d\u0442\u0430\u043b\u043e
languages.gon=\u0433\u043e\u043d\u0434\u0438
languages.din=\u0434\u0438\u043d\u043a\u0430
-languages.nub=\u043d\u0443\u0431\u0438\u0439\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.nub=\u043d\u0443\u0431\u0438\u0439\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439
languages.ps=\u043f\u0430\u0448\u0442\u043e (\u043f\u0443\u0448\u0442\u0443)
+languages.fur=\u0444\u0440\u0438\u0443\u043b\u0430\u043d\u0441\u043a\u0438\u0439
languages.phn=\u0444\u0438\u043d\u0438\u043a\u0438\u0439\u0441\u043a\u0438\u0439
+languages.de_CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u043a\u0438\u0439 \u0432\u0435\u0440\u0445\u043d\u0435\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
languages.goh=\u0441\u0442\u0430\u0440\u043e\u0432\u0435\u0440\u0445\u043d\u0435\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
+languages.snk=\u0441\u043e\u043d\u0438\u043d\u043a\u0435
languages.cop=\u043a\u043e\u043f\u0442\u0441\u043a\u0438\u0439
languages.yap=\u044f\u043f
languages.ach=\u0430\u0447\u043e\u043b\u0438
languages.yao=\u044f\u043e
+languages.phi=\u0444\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.pl=\u043f\u043e\u043b\u044c\u0441\u043a\u0438\u0439
languages.ace=\u0430\u0447\u0435\u0445\u0441\u043a\u0438\u0439
languages.pi=\u043f\u0430\u043b\u0438
+languages.pt_PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439 \u0438\u0431\u0435\u0440\u0438\u0439\u0441\u043a\u0438\u0439
languages.pa=\u043f\u0430\u043d\u0434\u0436\u0430\u0431\u0438 (\u043f\u0435\u043d\u0434\u0436\u0430\u0431\u0438)
languages.bug=\u0431\u0443\u0433\u0438\u0439\u0441\u043a\u0438\u0439
languages.iba=\u0438\u0431\u0430\u043d\u0441\u043a\u0438\u0439
+languages.sms=\u043a\u043e\u043b\u0442\u0442\u0430-\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439
languages.bua=\u0431\u0443\u0440\u044f\u0442\u0441\u043a\u0438\u0439
languages.mas=\u043c\u0430\u0441\u0430\u0438
+languages.smn=\u0418\u043d\u0430\u0440\u0438-\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439
languages.os=\u043e\u0441\u0435\u0442\u0438\u043d\u0441\u043a\u0438\u0439
languages.map=\u0430\u0432\u0441\u0442\u0440\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.or=\u043e\u0440\u0438\u044f
languages.man=\u043c\u0430\u043d\u0434\u0438\u043d\u0433\u043e
-languages.smi=\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.smj=\u043b\u0443\u043b\u0435-\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439
+languages.smi=\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
languages.mak=\u043c\u0430\u043a\u0430\u0441\u0441\u0430\u0440\u0441\u043a\u0438\u0439
languages.om=\u043e\u0440\u043e\u043c\u043e
languages.mai=\u043c\u0430\u0439\u0442\u0445\u0438\u043b\u0438
languages.oj=\u043e\u0434\u0436\u0438\u0431\u0432\u0430
languages.mag=\u043c\u0430\u0433\u0430\u0445\u0438
languages.mad=\u043c\u0430\u0434\u0443\u0440\u0441\u043a\u0438\u0439
+languages.sma=\u044e\u0436\u043d\u043e\u0441\u0430\u0430\u043c\u0441\u043a\u0438\u0439
languages.oc=\u043e\u043a\u0441\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439
languages.nso=\u0441\u043e\u0442\u043e \u0441\u0435\u0432\u0435\u0440\u043d\u044b\u0439
-languages.myn=\u043c\u0430\u0439\u044f \u044f\u0437\u044b\u043a\u0438
+languages.btk=\u0431\u0430\u0442\u0430\u043a\u0441\u043a\u0438\u0439
+languages.myv=\u044d\u0440\u0437\u044f\u043d\u0441\u043a\u0438\u0439
+languages.es_ES=\u0418\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439 \u0438\u0431\u0435\u0440\u0438\u0439\u0441\u043a\u0438\u0439
+languages.de_AT=\u0430\u0432\u0441\u0442\u0440\u0438\u0439\u0441\u043a\u0438\u0439 \u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
+languages.dgr=\u0434\u043e\u0433\u0440\u0438\u0431
+languages.ny=\u043d\u044c\u044f\u043d\u0434\u0436\u0430
+languages.myn=\u044f\u0437\u044b\u043a \u043c\u0430\u0439\u044f
+languages.nv=\u043d\u0430\u0432\u0430\u0445\u043e
+languages.kmb=\u043a\u0438\u043c\u0431\u0443\u043d\u0434\u0443
+languages.nr=\u043d\u0434\u0435\u0431\u0435\u043b\u0438 (\u044e\u0436\u043d\u044b\u0439)
languages.gmh=\u0441\u0440\u0435\u0434\u043d\u0435\u0432\u0435\u0440\u0445\u043d\u0435\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
languages.no=\u043d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0438\u0439
-languages.nl=\u043d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 (\u0433\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439)
+languages.nn=\u043d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0438\u0439 \u043d\u044e\u043d\u043e\u0440\u0441\u043a
+languages.nl=\u0433\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
+languages.root=\u043a\u043e\u0440\u043d\u0435\u0432\u043e\u0439 \u044f\u0437\u044b\u043a
+languages.ng=\u043d\u0434\u043e\u043d\u0433\u0430
languages.sla=\u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.ne=\u043d\u0435\u043f\u0430\u043b\u044c\u0441\u043a\u0438\u0439
+languages.nd=\u043d\u0434\u0435\u0431\u0435\u043b\u0438 \u0441\u0435\u0432\u0435\u0440\u043d\u044b\u0439
+languages.cmc=\u0447\u0430\u043c\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
+languages.tet=\u0442\u0435\u0442\u0443\u043c
+languages.nb=\u043d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0438\u0439 \u0431\u0443\u043a\u043c\u043e\u043b
languages.na=\u043d\u0430\u0443\u0440\u0443
languages.ter=\u0442\u0435\u0440\u0435\u043d\u043e
+languages.tem=\u0442\u0435\u043c\u043d\u0435
languages.my=\u0431\u0438\u0440\u043c\u0430\u043d\u0441\u043a\u0438\u0439
languages.lez=\u043b\u0435\u0437\u0433\u0438\u043d\u0441\u043a\u0438\u0439
languages.mt=\u043c\u0430\u043b\u044c\u0442\u0438\u0439\u0441\u043a\u0438\u0439
-languages.ms=\u043c\u0430\u043b\u0430\u0439\u0441\u043a\u0438\u0439
+languages.frs=\u0432\u043e\u0441\u0442\u043e\u0447\u043d\u043e\u0444\u0440\u0438\u0437\u0441\u043a\u0438\u0439
languages.peo=\u0441\u0442\u0430\u0440\u043e\u043f\u0435\u0440\u0441\u0438\u0434\u0441\u043a\u0438\u0439
+languages.ms=\u043c\u0430\u043b\u0430\u0439\u0441\u043a\u0438\u0439
+languages.frr=\u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0444\u0440\u0438\u0437\u0441\u043a\u0438\u0439
languages.mr=\u043c\u0430\u0440\u0430\u0442\u0445\u0438
languages.fro=\u0441\u0442\u0430\u0440\u043e\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439
languages.mo=\u043c\u043e\u043b\u0434\u0430\u0432\u0441\u043a\u0438\u0439
@@ -740,189 +912,272 @@ languages.frm=\u0441\u0440\u0435\u0434\u043d\u0435\u0444\u0440\u0430\u043d\u0446
languages.ml=\u043c\u0430\u043b\u0430\u044f\u043b\u0430\u043c
languages.jrb=\u0435\u0432\u0440\u0435\u0439\u0441\u043a\u043e-\u0430\u0440\u0430\u0431\u0441\u043a\u0438\u0439
languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438\u0439
-languages.mi=\u043c\u0430\u043e\u0440\u0438
+languages.mi=\u043c\u0430\u043e\u0440\u0438\u0439\u0441\u043a\u0438\u0439
+languages.mh=\u043c\u0430\u0440\u0448\u0430\u043b\u044c\u0441\u043a\u0438\u0439
languages.mg=\u043c\u0430\u043b\u0430\u0433\u0430\u0441\u0438\u0439\u0441\u043a\u0438\u0439
+languages.nqo=\u043d\u043a\u043e
languages.mwr=\u043c\u0430\u0440\u0432\u0430\u0440\u0438
languages.bra=\u0431\u0440\u0430\u0443\u0438
+languages.mwl=\u043c\u0438\u0440\u0430\u043d\u0434\u0441\u043a\u0438\u0439
+languages.den=\u0441\u043b\u044d\u0439\u0432\u0438
languages.lv=\u043b\u0430\u0442\u044b\u0448\u0441\u043a\u0438\u0439
-languages.lu=\u043b\u0443\u0431\u0430-\u041a\u0430\u0442\u0430\u043d\u0433\u0430
-languages.lt=\u043b\u0438\u0442\u043e\u0432\u0441\u043a\u0438\u0439
+languages.lu=\u043b\u0443\u0431\u0430-\u043a\u0430\u0442\u0430\u043d\u0433\u0430
languages.del=\u0434\u0435\u043b\u0430\u0432\u0430\u0440\u0441\u043a\u0438\u0439
+languages.lt=\u043b\u0438\u0442\u043e\u0432\u0441\u043a\u0438\u0439
languages.lo=\u043b\u0430\u043e\u0441\u0441\u043a\u0438\u0439
languages.ln=\u043b\u0438\u043d\u0433\u0430\u043b\u0430
+languages.li=\u043b\u0438\u043c\u0431\u0443\u0440\u0433\u0438\u0439\u0441\u043a\u0438\u0439
languages.ewo=\u044d\u0432\u043e\u043d\u0434\u043e
+languages.lg=\u0433\u0430\u043d\u0434\u0430
+languages.lb=\u043b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0433\u0441\u043a\u0438\u0439
languages.la=\u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0439
languages.jpr=\u0435\u0432\u0440\u0435\u0439\u0441\u043a\u043e-\u043f\u0435\u0440\u0441\u0438\u0434\u0441\u043a\u0438\u0439
-languages.vot=\u0443\u0434\u043c\u0443\u0440\u0442\u0441\u043a\u0438\u0439 (\u0412\u043e\u0442\u044f\u0446\u043a\u0438\u0439)
+languages.vot=\u0432\u043e\u0434\u0441\u043a\u0438\u0439
languages.sit=\u0441\u0438\u043d\u043e\u0442\u0438\u0431\u0435\u0442\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.ky=\u043a\u0438\u0440\u0433\u0438\u0437\u0441\u043a\u0438\u0439
+languages.kw=\u043a\u043e\u0440\u043d\u0438\u0439\u0441\u043a\u0438\u0439
+languages.kv=\u043a\u043e\u043c\u0438
languages.ku=\u043a\u0443\u0440\u0434\u0441\u043a\u0438\u0439
-languages.sio=\u0441\u0438\u0443 \u044f\u0437\u044b\u043a\u0438
+languages.sio=\u044f\u0437\u044b\u043a \u0441\u0438\u0443
languages.ks=\u043a\u0430\u0448\u043c\u0438\u0440\u0438
+languages.kr=\u043a\u0430\u043d\u0443\u0440\u0438
languages.awa=\u0430\u0432\u0430\u0434\u0445\u0438
languages.ko=\u043a\u043e\u0440\u0435\u0439\u0441\u043a\u0438\u0439
languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
languages.km=\u043a\u0445\u043c\u0435\u0440\u0441\u043a\u0438\u0439
-languages.kl=\u044d\u0441\u043a\u0438\u043c\u043e\u0441\u0441\u043a\u0438\u0439 (\u0433\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439)
+languages.en_GB=\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
+languages.kl=\u0433\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
languages.kk=\u043a\u0430\u0437\u0430\u0445\u0441\u043a\u0438\u0439
languages.rom=\u0446\u044b\u0433\u0430\u043d\u0441\u043a\u0438\u0439
+languages.kj=\u043a\u0443\u043d\u0430\u043c\u0430
languages.sid=\u0441\u0438\u0434\u0430\u043c\u0430
-languages.non=\u0441\u0442\u0430\u0440\u043e\u043d\u043e\u0440\u0432\u0435\u0436\u0441\u043a\u0438\u0439
+languages.ki=\u043a\u0438\u043a\u0443\u0439\u044e
+languages.kg=\u043a\u043e\u043d\u0433\u043e
+languages.non=\u0434\u0440\u0435\u0432\u043d\u0435\u0441\u043a\u0430\u043d\u0434\u0438\u043d\u0430\u0432\u0441\u043a\u0438\u0439
languages.ka=\u0433\u0440\u0443\u0437\u0438\u043d\u0441\u043a\u0438\u0439
languages.mus=\u043a\u0440\u0438\u043a
languages.roa=\u0440\u043e\u043c\u0430\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.nog=\u043d\u043e\u0433\u0430\u0439\u0441\u043a\u0438\u0439
-languages.mun=\u043c\u0443\u043d\u0434\u0430 \u044f\u0437\u044b\u043a\u0438
-languages.mul=\u0440\u0430\u0437\u043d\u044b\u0445 \u0441\u0435\u043c\u0435\u0439 \u044f\u0437\u044b\u043a\u0438
+languages.mun=\u044f\u0437\u044b\u043a \u043c\u0443\u043d\u0434\u0430
+languages.mul=\u043c\u043d\u043e\u0433\u043e\u044f\u0437\u044b\u0447\u043d\u044b\u0439
languages.jv=\u044f\u0432\u0430\u043d\u0441\u043a\u0438\u0439
languages.gil=\u0433\u0438\u043b\u044c\u0431\u0435\u0440\u0442\u0441\u043a\u0438\u0439
+languages.znd=\u0437\u0430\u043d\u0434\u0435
languages.shn=\u0448\u0430\u043d\u0441\u043a\u0438\u0439
languages.fon=\u0444\u043e\u043d
+languages.xal=\u043a\u0430\u043b\u043c\u044b\u0446\u043a\u0438\u0439
+languages.aus=\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
languages.kho=\u0445\u043e\u0442\u0430\u043d\u0441\u043a\u0438\u0439
languages.ja=\u044f\u043f\u043e\u043d\u0441\u043a\u0438\u0439
languages.khi=\u043a\u043e\u0439\u0441\u0430\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
-languages.chy=\u0447\u0435\u0439\u0435\u043d\u043d
languages.pau=\u043f\u0430\u043b\u0430\u0443
-languages.tai=\u0442\u0430\u0442\u0441\u043a\u0438\u0439
+languages.chy=\u0447\u0435\u0439\u0435\u043d\u043d
+languages.tai=\u0442\u0430\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.iu=\u0438\u043d\u0443\u043a\u0442\u0438\u0442\u0443\u0442
languages.pap=\u043f\u0430\u043f\u044c\u044f\u043c\u0435\u043d\u0442\u043e
languages.it=\u0438\u0442\u0430\u043b\u044c\u044f\u043d\u0441\u043a\u0438\u0439
-languages.kha=\u043a\u0445\u0430\u0441\u0438
+languages.sgn=\u043a\u0438\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0430\u044f \u0440\u0435\u0447\u044c
languages.is=\u0438\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
+languages.kha=\u043a\u0445\u0430\u0441\u0438
languages.chr=\u0447\u0435\u0440\u043e\u043a\u0438
languages.pam=\u043f\u0430\u043c\u043f\u0430\u043d\u0433\u0430
languages.pal=\u043f\u0435\u0445\u043b\u0435\u0432\u0438\u0439\u0441\u043a\u0438\u0439
+languages.chp=\u0447\u0438\u043f\u0435\u0432\u0430\u0439\u044f\u043d
+languages.io=\u0438\u0434\u043e
languages.cho=\u0447\u043e\u043a\u0442\u0430\u0432
languages.chn=\u0447\u0438\u043d\u0443\u043a \u0436\u0430\u0440\u0433\u043e\u043d
-languages.chm=\u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0439 (\u0427\u0435\u0440\u0435\u043c\u0438\u0441\u0441\u043a\u0438\u0439)
+languages.chm=\u043c\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0439
languages.tyv=\u0442\u0443\u0432\u0438\u043d\u0441\u043a\u0438\u0439
languages.bnt=\u0431\u0430\u043d\u0442\u0443 (\u0434\u0440\u0443\u0433\u0438\u0435)
-languages.chk=\u0447\u0443\u043a\u043e\u0442\u0441\u043a\u0438\u0439
languages.pag=\u043f\u0430\u043d\u0433\u0430\u0441\u0438\u043d\u0430\u043d
languages.ik=\u0438\u043d\u0443\u043f\u0438\u0430\u043a
+languages.chk=\u0447\u0443\u043a\u043e\u0442\u0441\u043a\u0438\u0439
+languages.ii=\u0441\u044b\u0447\u0443\u0430\u043d\u044c
languages.haw=\u0433\u0430\u0432\u0430\u0439\u0441\u043a\u0438\u0439
languages.lam=\u043b\u0430\u043c\u0431\u0430
+languages.ig=\u0438\u0433\u0431\u043e
languages.chg=\u0447\u0430\u0433\u0430\u0442\u0430\u0439\u0441\u043a\u0438\u0439
-languages.sga=\u0441\u0442\u0430\u0440\u043e\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
+languages.sga=\u0434\u0440\u0435\u0432\u043d\u0435\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
languages.paa=\u043f\u0430\u043f\u0443\u0430\u0441\u0441\u043a\u043e-\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.ie=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0435
languages.id=\u0438\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0439\u0441\u043a\u0438\u0439
languages.lah=\u043b\u0430\u0445\u043d\u0434\u0430
+languages.day=\u0434\u0430\u044f\u043a
languages.chb=\u0447\u0438\u0431\u0447\u0430
languages.ia=\u0438\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0430
languages.lad=\u043b\u0430\u0434\u0438\u043d\u043e
+languages.hz=\u0433\u0435\u0440\u0435\u0440\u043e
languages.hai=\u0445\u0430\u0439\u0434\u0430
+languages.dar=\u0434\u0430\u0440\u0433\u0432\u0430
languages.hy=\u0430\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439
languages.ath=\u0430\u0442\u0430\u043f\u0430\u0447\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
languages.hu=\u0432\u0435\u043d\u0433\u0435\u0440\u0441\u043a\u0438\u0439
+languages.ht=\u0433\u0430\u0438\u0442\u044f\u043d\u0441\u043a\u0438\u0439
languages.dak=\u0434\u0430\u043a\u043e\u0442\u0430
languages.hr=\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0439
+languages.ho=\u0445\u0438\u0440\u0438\u043c\u043e\u0442\u0443
languages.hi=\u0445\u0438\u043d\u0434\u0438
-languages.dyu=\u0434\u0438\u0443\u043b\u0430 (\u0434\u044c\u044e\u043b\u0430)
+languages.dyu=\u0434\u044c\u044e\u043b\u0430
languages.he=\u0438\u0432\u0440\u0438\u0442
+languages.ast=\u0430\u0441\u0442\u0443\u0440\u0438\u0439\u0441\u043a\u0438\u0439
+languages.kfo=\u043a\u043e\u0440\u043e
languages.ha=\u0445\u0430\u0443\u0441\u0430
-languages.wen=\u043b\u0443\u0436\u0438\u0446\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.wen=\u043b\u0443\u0436\u0438\u0446\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
+languages.gv=\u043c\u044d\u043d\u043a\u0441\u043a\u0438\u0439
languages.gu=\u0433\u0443\u0434\u0436\u0430\u0440\u0430\u0442\u0438
languages.sem=\u0441\u0435\u043c\u0438\u0442\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.sel=\u0441\u0435\u043b\u044c\u043a\u0443\u043f\u0441\u043a\u0438\u0439
-languages.iro=\u0438\u0440\u043e\u043a\u0435\u0437\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.iro=\u0438\u0440\u043e\u043a\u0435\u0437\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0438
-languages.gl=\u0433\u0430\u043b\u0438\u0441\u0438\u0439\u0441\u043a\u0438\u0439
+languages.gl=\u0433\u0430\u043b\u0438\u0446\u0438\u0439\u0441\u043a\u0438\u0439
+languages.en_CA=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
languages.arw=\u0430\u0440\u0430\u0432\u0430\u043a\u0441\u043a\u0438\u0439
-languages.gd=\u0433\u0430\u044d\u043b\u044c\u0441\u043a\u0438\u0439
-languages.art=\u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.gez=\u0433\u0435\u044d\u0437
+languages.art=\u0438\u0441\u043a\u0443\u0441\u0441\u0442\u0432\u0435\u043d\u043d\u044b\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.gd=\u0448\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0433\u044d\u043b\u044c\u0441\u043a\u0438\u0439
languages.ira=\u0438\u0440\u0430\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.ga=\u0438\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
-languages.fy=\u0444\u0440\u0438\u0437\u0441\u043a\u0438\u0439
+languages.arp=\u0430\u0440\u0430\u043f\u0430\u0445\u043e
+languages.arn=\u0430\u0440\u0430\u0443\u043a\u0430\u043d\u0441\u043a\u0438\u0439
+languages.fy=\u0437\u0430\u043f\u0430\u0434\u043d\u043e\u0444\u0440\u0438\u0437\u0441\u043a\u0438\u0439
languages.bla=\u0441\u0438\u043a\u0441\u0438\u043a\u0430
languages.gem=\u0433\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
-languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439
+languages.ypk=\u044e\u043f\u0438\u043a
languages.arc=\u0430\u0440\u0430\u043c\u0435\u0439\u0441\u043a\u0438\u0439
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439
languages.fo=\u0444\u0430\u0440\u0435\u0440\u0441\u043a\u0438\u0439
+languages.cel=\u043a\u0435\u043b\u044c\u0442\u0441\u043a\u0438\u0435
languages.fj=\u0444\u0438\u0434\u0436\u0438
languages.fi=\u0444\u0438\u043d\u0441\u043a\u0438\u0439
+languages.ff=\u0444\u0443\u043b\u0430\u0445
+languages.tvl=\u0442\u0443\u0432\u0430\u043b\u0443
+languages.ceb=\u043a\u0435\u0431\u0443\u0430\u043d\u043e
languages.fa=\u043f\u0435\u0440\u0441\u0438\u0434\u0441\u043a\u0438\u0439
+languages.en_AU=\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0438\u0439\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
+languages.zh_Hans=\u0443\u043f\u0440\u043e\u0449\u0435\u043d\u043d\u044b\u0439 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439
+languages.zh_Hant=\u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u044b\u0439 \u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439
languages.eu=\u0431\u0430\u0441\u043a\u0441\u043a\u0438\u0439
+languages.sco=\u0448\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
languages.et=\u044d\u0441\u0442\u043e\u043d\u0441\u043a\u0438\u0439
+languages.scn=\u0441\u0438\u0446\u0438\u043b\u0438\u0439\u0441\u043a\u0438\u0439
languages.es=\u0438\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439
languages.eo=\u044d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
languages.en=\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
languages.el=\u0433\u0440\u0435\u0447\u0435\u0441\u043a\u0438\u0439
languages.tut=\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.niu=\u043d\u0438\u0443\u044d
-languages.mos=\u043c\u043e\u0435\u0439
+languages.tup=\u044f\u0437\u044b\u043a \u0442\u0443\u043f\u0438
+languages.ee=\u044d\u0432\u0435
+languages.tum=\u0442\u0443\u043c\u0431\u0443\u043a\u0430
+languages.nl_BE=\u0444\u043b\u0430\u043c\u0430\u043d\u0434\u0441\u043a\u0438\u0439 (\u0411\u0435\u043b\u044c\u0433\u0438\u044f)
+languages.es_419=\u041b\u0430\u0442\u0438\u043d\u043e-\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0438\u0441\u043f\u0430\u043d\u0441\u043a\u0438\u0439
+languages.mos=\u043c\u043e\u0441\u0438
languages.dz=\u0434\u0437\u043e\u043d\u0433-\u043a\u044d
-languages.fiu=\u0444\u0438\u043d\u043d\u043e-\u0443\u0433\u043e\u0440\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.kcg=\u0442\u044c\u044f\u043f
languages.nic=\u043d\u0438\u0433\u0435\u0440-\u043a\u043e\u0440\u0434\u043e\u0444\u0430\u043d\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.lus=\u043b\u0443\u0448\u0435\u0439
+languages.fiu=\u0444\u0438\u043d\u043d\u043e-\u0443\u0433\u043e\u0440\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.dv=\u043c\u0430\u043b\u044c\u0434\u0438\u0432\u0441\u043a\u0438\u0439
+languages.nia=\u043d\u0438\u0430\u0441\u0441\u043a\u0438\u0439
languages.moh=\u043c\u043e\u0445\u0430\u0443\u043a
-languages.luo=\u043b\u0443\u043e (\u041a\u0435\u043d\u0438\u044f \u0438 \u0422\u0430\u043d\u0437\u0430\u043d\u0438\u044f)
+languages.luo=\u043b\u0443\u043e
languages.lun=\u043b\u0443\u043d\u0434\u0430
+languages.apa=\u0430\u043f\u0430\u0447\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
+languages.fil=\u0444\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u0441\u043a\u0438\u0439
languages.lui=\u043b\u0443\u0438\u0441\u0435\u043d\u044c\u043e
-languages.hup=\u0425\u0443\u043f\u0430
+languages.hup=\u0445\u0443\u043f\u0430
+languages.cch=\u0430\u0442\u0441\u0430\u043c
languages.bin=\u0431\u0438\u043d\u0438
languages.de=\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
+languages.lua=\u043b\u0443\u0431\u0430-\u043b\u0443\u043b\u0443\u0430
languages.bik=\u0431\u0438\u043a\u043e\u043b\u044c\u0441\u043a\u0438\u0439
languages.was=\u0432\u0430\u0448\u043e
-languages.und=\u043d\u0435\u0438\u0434\u0435\u043d\u0442\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439
+languages.und=\u043d\u0435\u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 \u0438\u043b\u0438 \u043d\u0435\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0439 \u044f\u0437\u044b\u043a
languages.war=\u0432\u0430\u0440\u0430\u0439
languages.da=\u0434\u0430\u0442\u0441\u043a\u0438\u0439
languages.dum=\u043d\u0438\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439 \u0441\u0440\u0435\u0434\u043d\u0435\u0432\u0435\u043a\u043e\u0432\u044b\u0439
languages.wal=\u0432\u043e\u043b\u0430\u043c\u043e
-languages.mno=\u043c\u0430\u043d\u043e\u0431\u043e \u044f\u0437\u044b\u043a\u0438
-languages.wak=\u0432\u0430\u043a\u0430\u0448\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
+languages.mno=\u044f\u0437\u044b\u043a \u043c\u0430\u043d\u043e\u0431\u043e
+languages.wak=\u0432\u0430\u043a\u0430\u0448\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
+languages.sat=\u0441\u0430\u043d\u0442\u0430\u043b\u0438
languages.cy=\u0432\u0430\u043b\u043b\u0438\u0439\u0441\u043a\u0438\u0439
+languages.sas=\u0441\u0430\u0441\u0430\u043a\u0441\u043a\u0438\u0439
+languages.kbd=\u043a\u0430\u0431\u0430\u0440\u0434\u0438\u043d\u0441\u043a\u0438\u0439
languages.cv=\u0447\u0443\u0432\u0430\u0448\u0441\u043a\u0438\u0439
+languages.cu=\u0446\u0435\u0440\u043a\u043e\u0432\u043d\u043e\u0441\u043b\u0430\u0432\u044f\u043d\u0441\u043a\u0438\u0439
languages.mni=\u043c\u0430\u043d\u0438\u043f\u0443\u0440\u0441\u043a\u0438\u0439
languages.cs=\u0447\u0435\u0448\u0441\u043a\u0438\u0439
languages.sam=\u0441\u0430\u043c\u0430\u0440\u0438\u0442\u044f\u043d\u0441\u043a\u0438\u0439 \u0430\u0440\u0430\u043c\u0435\u0439\u0441\u043a\u0438\u0439
+languages.cr=\u043a\u0440\u0438\u0438\u0439\u0441\u043a\u0438\u0439
+languages.sal=\u0441\u0430\u043b\u0438\u0448\u0441\u043a\u0438\u0439 \u044f\u0437\u044b\u043a
languages.dua=\u0434\u0443\u0430\u043b\u0430
-languages.sal=\u0441\u0430\u043b\u0438\u0448\u0441\u043a\u0438\u0435 \u044f\u0437\u044b\u043a\u0438
languages.co=\u043a\u043e\u0440\u0441\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439
-languages.sai=\u044e\u0436\u043d\u043e\u0439 \u0430\u043c\u0435\u0440\u0438\u043a\u0438 \u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.sai=\u044f\u0437\u044b\u043a \u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 \u042e\u0436\u043d\u043e\u0439 \u0410\u043c\u0435\u0440\u0438\u043a\u0438
+languages.mnc=\u043c\u0430\u043d\u044c\u0447\u0436\u0443\u0440\u0441\u043a\u0438\u0439
languages.sah=\u044f\u043a\u0443\u0442\u0441\u043a\u0438\u0439
languages.kaw=\u043a\u0430\u0432\u0438
+languages.inh=\u0438\u043d\u0433\u0443\u0448\u0441\u043a\u0438\u0439
+languages.gba=\u0433\u0431\u0430\u044f
languages.sad=\u0441\u0430\u043d\u0434\u0430\u0432\u0435
+languages.ch=\u0447\u0430\u043c\u043e\u0440\u0440\u043e
+languages.ine=\u0438\u043d\u0434\u043e\u0435\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.bho=\u0431\u0445\u043e\u0434\u0436\u043f\u0443\u0440\u0438
languages.enm=\u0441\u0440\u0435\u0434\u043d\u0435\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
-languages.inc=\u0438\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.kar=\u043a\u0430\u0440\u0435\u043d\u0441\u043a\u0438\u0439
+languages.inc=\u0438\u043d\u0434\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.ce=\u0447\u0435\u0447\u0435\u043d\u0441\u043a\u0438\u0439
languages.gay=\u0433\u0430\u0439\u043e
languages.ca=\u043a\u0430\u0442\u0430\u043b\u0430\u043d\u0441\u043a\u0438\u0439
languages.umb=\u0443\u043c\u0431\u0443\u043d\u0434\u0443
+languages.syr=\u0441\u0438\u0440\u0438\u0439\u0441\u043a\u0438\u0439
languages.kam=\u043a\u0430\u043c\u0431\u0430
+languages.anp=\u0430\u043d\u0433\u0438\u043a\u0430
languages.tsi=\u0446\u0438\u043c\u0448\u0438\u0430\u043d
+languages.kaj=\u043a\u0430\u0434\u0436\u0438
languages.ang=\u0441\u0442\u0430\u0440\u043e\u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
+languages.kac=\u043a\u0430\u0447\u0438\u043d\u0441\u043a\u0438\u0439
languages.cau=\u043a\u0430\u0432\u043a\u0430\u0437\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.kab=\u043a\u0430\u0431\u0438\u043b\u044c\u0441\u043a\u0438\u0439
languages.kaa=\u043a\u0430\u0440\u0430\u043a\u0430\u043b\u043f\u0430\u043a\u0441\u043a\u0438\u0439
-languages.br=\u0431\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438\u0439
+languages.bs=\u0431\u043e\u0441\u043d\u0438\u0439\u0441\u043a\u0438\u0439
languages.car=\u043a\u0430\u0440\u0438\u0431
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438\u0439
+languages.syc=\u043a\u043b\u0430\u0441\u0441\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0441\u0438\u0440\u0438\u0439\u0441\u043a\u0438\u0439
languages.bo=\u0442\u0438\u0431\u0435\u0442\u0441\u043a\u0438\u0439
languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439
+languages.bm=\u0431\u0430\u043c\u0431\u0430\u0440\u0438\u0439\u0441\u043a\u0438\u0439
languages.gaa=\u0433\u0430
-languages.bi=\u0431\u0438\u0441\u043b\u0430\u043c\u0430
-languages.cai=\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u0410\u043c\u0435\u0440\u0438\u043a\u0438 \u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.cai=\u044f\u0437\u044b\u043a \u0438\u043d\u0434\u0435\u0439\u0446\u0435\u0432 \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0439 \u0410\u043c\u0435\u0440\u0438\u043a\u0438
+languages.bi=\u0431\u0438\u0441\u043b\u0430\u043c\u0441\u043a\u0438\u0439
languages.bh=\u0431\u0438\u0445\u0430\u0440\u0438
languages.bg=\u0431\u043e\u043b\u0433\u0430\u0440\u0441\u043a\u0438\u0439
languages.be=\u0431\u0435\u043b\u043e\u0440\u0443\u0441\u0441\u043a\u0438\u0439
+languages.pt_BR=\u0431\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u043a\u0438\u0439 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u043a\u0438\u0439
languages.cad=\u043a\u0430\u0434\u0434\u043e
languages.ba=\u0431\u0430\u0448\u043a\u0438\u0440\u0441\u043a\u0438\u0439
languages.zu=\u0437\u0443\u043b\u0443
languages.zen=\u0437\u0435\u043d\u0430\u0433\u0441\u043a\u0438\u0439
languages.pro=\u0441\u0442\u0430\u0440\u043e\u043f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u044c\u0441\u043a\u0438\u0439
+languages.hsb=\u0432\u0435\u0440\u0445\u043d\u0435\u043b\u0443\u0436\u0438\u0446\u043a\u0438\u0439
languages.az=\u0430\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u043a\u0438\u0439
languages.ay=\u0430\u0439\u043c\u0430\u0440\u0430
+languages.av=\u0430\u0432\u0430\u0440\u0441\u043a\u0438\u0439
languages.as=\u0430\u0441\u0441\u0430\u043c\u0441\u043a\u0438\u0439
+languages.dsb=\u043d\u0438\u0436\u043d\u0435\u043b\u0443\u0436\u0438\u0446\u043a\u0438\u0439
languages.ar=\u0430\u0440\u0430\u0431\u0441\u043a\u0438\u0439
-languages.elx=\u044d\u043b\u0430\u043c\u0441\u043a\u0438\u0439
languages.ilo=\u0438\u043b\u043e\u043a\u043e
+languages.elx=\u044d\u043b\u0430\u043c\u0441\u043a\u0438\u0439
languages.zh=\u043a\u0438\u0442\u0430\u0439\u0441\u043a\u0438\u0439
+languages.an=\u0430\u0440\u0430\u0433\u043e\u043d\u0441\u043a\u0438\u0439
+languages.pra=\u044f\u0437\u044b\u043a \u043f\u0440\u0430\u043a\u0440\u0438\u0442
languages.am=\u0430\u043c\u0445\u0430\u0440\u0441\u043a\u0438\u0439
-languages.pra=\u043f\u0440\u0430\u043a\u0440\u0438\u0442\u044b \u044f\u0437\u044b\u043a\u0438
-languages.new=\u043d\u0435\u0432\u0430\u0440\u0441\u043a\u0438\u0439
+languages.new=\u043d\u0435\u0432\u0430\u0440\u0438
+languages.ak=\u0430\u043a\u0430\u043d
languages.za=\u0447\u0436\u0443\u0430\u043d\u044c
+languages.en_US=\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u043a\u0438\u0439 \u0430\u043d\u0433\u043b\u0438\u0439\u0441\u043a\u0438\u0439
languages.af=\u0430\u0444\u0440\u0438\u043a\u0430\u0430\u043d\u0441
+languages.ae=\u0430\u0432\u0435\u0441\u0442\u0438\u0439\u0441\u043a\u0438\u0439
+languages.alt=\u044e\u0436\u043d\u043e\u0430\u043b\u0442\u0430\u0439\u0441\u043a\u0438\u0439
languages.ab=\u0430\u0431\u0445\u0430\u0437\u0441\u043a\u0438\u0439
languages.aa=\u0430\u0444\u0430\u0440
languages.yo=\u0439\u043e\u0440\u0443\u0431\u0430
@@ -931,5 +1186,24 @@ languages.ale=\u0430\u043b\u0435\u0443\u0442\u0441\u043a\u0438\u0439
languages.mkh=\u043c\u043e\u043d\u043a\u0445\u043c\u0435\u0440\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
languages.yi=\u0438\u0434\u0438\u0448
languages.dra=\u0434\u0440\u0430\u0432\u0438\u0434\u0438\u0439\u0441\u043a\u0438\u0435 (\u0434\u0440\u0443\u0433\u0438\u0435)
+languages.ber=\u0431\u0435\u0440\u0431\u0435\u0440\u0441\u043a\u0438\u0439
+languages.nds=\u043d\u0438\u0436\u043d\u0435\u043d\u0435\u043c\u0435\u0446\u043a\u0438\u0439
languages.bem=\u0431\u0435\u043c\u0431\u0430
languages.bej=\u0431\u0435\u0434\u0436\u0430
+languages.tpi=\u0442\u043e\u043a-\u043f\u0438\u0441\u0438\u043d
+variants.AREVELA=\u0412\u043e\u0441\u0442\u043e\u0447\u043d\u043e-\u0430\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439
+variants.POSIX=\u041a\u043e\u043c\u043f\u044c\u044e\u0442\u0435\u0440\u043d\u044b\u0439
+variants.POLYTON=\u041c\u043d\u043e\u0433\u043e\u0442\u043e\u043d\u0430\u043b\u044c\u043d\u044b\u0439
+variants.FONIPA=\u041c\u0435\u0436\u0434\u0443\u043d\u0430\u0440\u043e\u0434\u043d\u044b\u0439 \u0444\u043e\u043d\u0435\u0442\u0438\u0447\u0435\u0441\u043a\u0438\u0439 \u0430\u043b\u0444\u0430\u0432\u0438\u0442
+variants.1996=\u041f\u0440\u0430\u0432\u0438\u043b\u0430 \u043d\u0435\u043c\u0435\u0446\u043a\u043e\u0439 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u0438 (1996)
+variants.SAAHO=\u0421\u0430\u0445\u043e
+variants.1994=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u0430\u044f \u0440\u0435\u0437\u044c\u044f\u043d\u0441\u043a\u0430\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u044f
+variants.SCOTLAND=\u0410\u043d\u0433\u043b\u043e-\u0448\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u043a\u0438\u0439
+variants.AREVMDA=\u0417\u0430\u043f\u0430\u0434\u043d\u043e-\u0430\u0440\u043c\u044f\u043d\u0441\u043a\u0438\u0439
+variants.VALENCIA=\u0412\u0430\u043b\u0435\u043d\u0441\u0438\u0439\u0441\u043a\u0438\u0439
+variants.1901=\u0422\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u043d\u0435\u043c\u0435\u0446\u043a\u0430\u044f \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0438\u044f
+variants.MONOTON=\u041c\u043e\u043d\u043e\u0442\u043e\u043d\u0438\u0447\u0435\u0441\u043a\u0438\u0439
+variants.BAKU1926=\u0423\u043d\u0438\u0444\u0438\u0446\u0438\u0440\u043e\u0432\u0430\u043d\u043d\u044b\u0439 \u0442\u044e\u0440\u043a\u0441\u043a\u043e-\u043b\u0430\u0442\u0438\u043d\u0441\u043a\u0438\u0439 \u0430\u043b\u0444\u0430\u0432\u0438\u0442
+variants.TARASK=\u0422\u0430\u0440\u0430\u0448\u043a\u0435\u0432\u0438\u0446\u0430
+variants.1606NICT=\u041f\u043e\u0437\u0434\u043d\u0435-\u0441\u0440\u0435\u0434\u043d\u0435\u0432\u0435\u043a\u043e\u0432\u044b\u0439 \u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u043a\u0438\u0439 \u0434\u043e 1606 \u0433.
+variants.ROZAJ=\u0420\u0435\u0437\u044c\u044f\u043d\u0441\u043a\u0438\u0439
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru_UA.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru_UA.properties
index 65fdceb..50a9f3b 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru_UA.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ru_UA.properties
@@ -5,11 +5,16 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
+currenciesDisplayName.RHD=RHD
+currenciesDisplayName.YUM=YUM
+currenciesDisplayName.ESB=ESB
mediumDateFormat=d MMM yyyy
longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE, d MMMM yyyy '\u0433.'
shortTimeFormat=HH:mm
mediumTimeFormat=HH:mm:ss
longTimeFormat=HH:mm:ss z
fullTimeFormat=HH:mm:ss z
+languages.apa=\u0430\u043f\u0430\u0447\u0441\u043a\u0438\u0439
+languages.mh=\u043c\u0430\u0440\u0448\u0430\u043b\u044c\u0441\u043a\u0438\u0439
+languages.tlh=\u043a\u043b\u0438\u043d\u0433\u043e\u043d
+languages.den=\u0441\u043b\u044d\u0439\u0432\u0438
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_rw.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_rw.properties
new file mode 100644
index 0000000..feaced8
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_rw.properties
@@ -0,0 +1,130 @@
+# LocaleInformation_rw.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=.
+currenciesSymbol.RWF=F
+shortMonths=mut.\u00aegas.\u00aewer.\u00aemat.\u00aegic.\u00aekam.\u00aenya.\u00aekan.\u00aenze.\u00aeukw.\u00aeugu.\u00aeuku.\u00ae\u00ae
+months=Mutarama\u00aeGashyantare\u00aeWerurwe\u00aeMata\u00aeGicuransi\u00aeKamena\u00aeNyakanga\u00aeKanama\u00aeNzeli\u00aeUkwakira\u00aeUgushyingo\u00aeUkuboza\u00ae\u00ae
+shortWeekdays=\u00aecyu.\u00aembe.\u00aekab.\u00aegtu.\u00aekan.\u00aegnu.\u00aegnd.\u00ae
+weekdays=\u00aeKu cyumweru\u00aeKuwa mbere\u00aeKuwa kabiri\u00aeKuwa gatatu\u00aeKuwa kane\u00aeKuwa gatanu\u00aeKuwa gatandatu\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=Igitonga
+languages.es=Icyesipanyolo
+languages.ku=Inyekuridishi
+languages.eo=Icyesiperanto
+languages.en=Icyongereza
+languages.el=Ikigereki
+languages.ko=Igikoreya
+languages.kn=Igikanada
+languages.km=Igikambodiya
+languages.ka=Inyejeworujiya
+languages.jv=Inyejava
+languages.fil=Ikinyafilipine
+languages.pt=Igiporutugali
+languages.ps=Impashito
+languages.de=Ikidage
+languages.pl=Igipolone
+languages.da=Ikidaninwa
+languages.tlh=Inyekilingoni
+languages.ja=Ikiyapani
+languages.vi=Ikinyaviyetinamu
+languages.cy=Ikigaluwa
+languages.pa=Igipunjabi
+languages.cs=Igiceke
+languages.it=Igitaliyani
+languages.is=Igisilande
+languages.uz=Inyeyuzubeki
+languages.or=Inyoriya
+languages.ur=Inyeyurudu
+languages.ca=Igikatalani
+languages.ie=Uruhuzandimi
+languages.id=Ikinyendoziya
+languages.uk=Ikinyayukereni
+languages.ia=Ururimi Gahuzamiryango
+languages.oc=Inyogusitani
+languages.ug=Ikiwiguri
+languages.hy=Ikinyarumeniya
+languages.bs=Inyebosiniya
+languages.br=Inyebiritoni
+languages.hu=Igihongiriya
+languages.pt_PT=Inyeporutigali (Igiporutigali)
+languages.bn=Ikibengali
+languages.hr=Igikorowasiya
+languages.tw=Inyetuwi
+languages.bh=Inyebihari
+languages.bg=Urunyabuligariya
+languages.no=Ikinoruveji
+languages.be=Ikibelarusiya
+languages.nn=Inyenoruveji (Nyonorusiki)
+languages.hi=Igihindi
+languages.tr=Igiturukiya
+languages.nl=Ikinerilande
+languages.zu=Inyezulu
+languages.he=Igiheburayo
+languages.tk=Inyeturukimeni
+languages.ne=Ikinepali
+languages.az=Inyazeribayijani
+languages.ti=Inyatigirinya
+languages.th=Igitayi
+languages.te=Igitelugu
+languages.as=Icyasamizi
+languages.ar=Icyarabu
+languages.ta=Igitamili
+languages.gu=Inyegujarati
+languages.am=Inyamuhariki
+languages.mt=Ikimaliteze
+languages.ms=Ikimalayi
+languages.gn=Inyaguwarani
+languages.sw=Igiswahili
+languages.mr=Ikimarati
+languages.sv=Igisuweduwa
+languages.gl=Ikigalisiya
+languages.su=Inyesudani
+languages.af=Ikinyafurikaneri
+languages.st=Inyesesoto
+languages.mn=Ikimongoli
+languages.sr=Igiseribe
+languages.sq=Icyalubaniya
+languages.ml=Ikimalayalami
+languages.mk=Ikimasedoniyani
+languages.so=Igisomali
+languages.gd=Ikigaluwa cy'Igisweduwa
+languages.sl=Ikinyasiloveniya
+languages.sk=Igisilovaki
+languages.ga=Ikirilandi
+languages.si=Inyesimpaleze
+languages.sh=Inyeseribiya na Korowasiya
+languages.pt_BR=Inyeporutigali (Brezili)
+languages.yi=Inyeyidishi
+languages.sd=Igisindi
+languages.fy=Igifiriziyani
+languages.sa=Igisansikiri
+languages.fr=Igifaransa
+languages.lv=Ikinyaletoviyani
+languages.lt=Ikilituwaniya
+languages.fo=Inyefaroyizi
+languages.ru=Ikirusiya
+languages.lo=Ikilawotiyani
+languages.ln=Ilingala
+languages.fi=Igifinilande
+languages.ro=Ikinyarumaniya
+languages.fa=Inyeperisi
+languages.la=Ikilatini
+languages.xh=Inyehawusa
+languages.eu=Ikibasiki
+languages.ky=Inkerigizi
+languages.et=Icyesitoniya
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sa.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sa.properties
index 72491fd..62e1cb4 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sa.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sa.properties
@@ -7,7 +7,44 @@
zeroDigit=\u0966
percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
+currencyFormat=\u00a4#,##,##0.00;-\u00a4#,##,##0.00
currenciesSymbol.INR=\u0930\u0941
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=d-MM-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=hh:mm a
+mediumTimeFormat=hh:mm:ss a
+longTimeFormat=hh:mm:ss a z
+fullTimeFormat=hh:mm:ss a z
territories.IN=\u092d\u093e\u0930\u0924\u092e\u094d
-languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924
+languages.und=\u0905\u091c\u094d\u091e\u093e\u0924 \u092d\u093e\u0937\u093e
+languages.ain=\u0905\u092f\u093f\u0928\u0941
+languages.sa=\u0938\u0902\u0938\u094d\u0915\u0943\u0924 \u092d\u093e\u0937\u093e
+languages.ach=\u0905\u091a\u094b\u0932\u093f
+languages.afh=\u0905\u092b\u094d\u0930\u093f\u0939\u093f\u0932\u093f
+languages.ace=\u0905\u091a\u093f\u0928\u0940\u0938\u094d
+languages.alg=\u0905\u0932\u094d\u0917\u094b\u0923\u094d\u0915\u094d\u092f\u0928\u094d \u092d\u093e\u0937\u093e
+languages.ale=\u0905\u0932\u093f\u092f\u0941\u091f\u094d
+languages.afa=\u0906\u092b\u094d\u0930\u094b \u090f\u0937\u094d\u092f\u0928\u094d \u092d\u093e\u0937\u093e
+languages.nb=\u0928\u094b\u0930\u094d\u0935\u0940\u091c\u093f\u092f\u0928\u094d \u092c\u094a\u0915\u093e\u092e\u0932\u094d
+languages.egy=\u092a\u094d\u0930\u093e\u091a\u0940\u0928 \u0908\u091c\u093f\u092a\u094d\u0924\u094d\u092f\u0928\u094d
+languages.tut=\u0906\u0933\u091f\u093f\u0915\u094d \u092d\u093e\u0937\u093e
+languages.ar=\u0905\u0931\u092c\u093f\u0915\u094d
+languages.ada=\u0905\u0921\u0919\u094d\u0917\u092e\u0947
+languages.grc=\u092a\u0941\u0930\u093e\u0924\u0928 \u092f\u0935\u0928 \u092d\u093e\u0937\u093e
+languages.am=\u0905\u0902\u0939\u093e\u0931\u093f\u0915\u094d
+languages.apa=\u0905\u092a\u093e\u091a\u0947 \u092d\u093e\u0937\u093e
+languages.anp=\u0905\u0919\u094d\u0917\u093f\u0915
+languages.sq=\u0905\u0932\u094d\u092c\u0947\u0928\u093f\u092f\u0928\u094d
+languages.ak=\u0905\u0915\u0928\u094d
+languages.akk=\u0905\u0915\u094d\u0915\u093e\u091f\u093f\u092f\u093e\u0928\u094d
+languages.af=\u0905\u092b\u094d\u0930\u093f\u0915\u094d\u0915\u093e\u0928\u094d\u0938\u094d
+languages.ab=\u0905\u092c\u094d\u0916\u093e\u0938\u093f\u092f\u0928\u094d
+languages.aa=\u0905\u092b\u0930
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_se.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_se.properties
new file mode 100644
index 0000000..e2da6d8
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_se.properties
@@ -0,0 +1,370 @@
+# LocaleInformation_se.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+percent=%
+perMill=\u2030
+exponential=\u00d710^
+infinity=\u221e
+NaN=\u00a4\u00a4\u00a4
+minusSign=\u2212
+zeroDigit=0
+decimalSeparator=,
+groupingSeparator=\u00a0
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.XAU=golli
+currenciesDisplayName.NOK=norgga kruvdno
+currenciesDisplayName.XAG=silba
+currenciesDisplayName.SEK=ruo\u0167\u0167a kruvdno
+currenciesDisplayName.FIM=suoma m\u00e1rkki
+shortMonths=o\u0111\u0111j\u00aeguov\u00aenjuk\u00aecuo\u00aemies\u00aegeas\u00aesuoi\u00aeborg\u00ae\u010dak\u010d\u00aegolg\u00aesk\u00e1b\u00aejuov\u00ae\u00ae
+months=o\u0111\u0111ajagem\u00e1nnu\u00aeguovvam\u00e1nnu\u00aenjuk\u010dam\u00e1nnu\u00aecuo\u014bom\u00e1nnu\u00aemiessem\u00e1nnu\u00aegeassem\u00e1nnu\u00aesuoidnem\u00e1nnu\u00aeborgem\u00e1nnu\u00ae\u010dak\u010dam\u00e1nnu\u00aegolggotm\u00e1nnu\u00aesk\u00e1bmam\u00e1nnu\u00aejuovlam\u00e1nnu\u00ae\u00ae
+shortWeekdays=\u00aesotn\u00aevuos\u00aema\u014b\u00aegask\u00aeduor\u00aebear\u00ael\u00e1v\u00ae
+weekdays=\u00aesotnabeaivi\u00aevuoss\u00e1rga\u00aema\u014b\u014beb\u00e1rga\u00aegaskavahkku\u00aeduorasdat\u00aebearjadat\u00ael\u00e1vvardat\u00ae
+eras=OK\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=Nuorta-Timor
+territories.TK=Tokelau
+territories.TJ=Ta\u017eikistan
+territories.TH=Thaieana
+territories.TG=Togo
+territories.GY=Guyana
+territories.TD=Chad
+territories.TC=Turks ja Caicos-sullot
+territories.GW=Guinea-Bissau
+territories.GU=Guam
+territories.GT=Guatemala
+territories.GS=Lulli Georgia ja Lulli Sandwich-sullot
+territories.GR=Greika
+territories.GQ=Ekvatori\u00e1la Guinea
+territories.GP=Guadeloupe
+territories.SZ=Svazieana
+territories.SY=Syria
+territories.GN=Guinea
+territories.GM=G\u00e1mbia
+territories.GL=Kalaallit Nunaat
+territories.SV=El Salvador
+territories.062=m\u00e1tta-gaska-\u00c1sia
+territories.ST=S\u00e3o Tom\u00e9 ja Pr\u00edncipe
+territories.GI=Gibraltar
+territories.061=Polynesia
+territories.GH=Ghana
+territories.SR=Surinam
+territories.GG=Guernsey
+territories.GF=Frankriikka Guayana
+territories.GE=Georgia
+territories.SO=Som\u00e1lia
+territories.GD=Grenada
+territories.SN=Senegal
+territories.SM=San Marino
+territories.GB=Stuorra-Brit\u00e1nnia
+territories.SL=Sierra Leone
+territories.GA=Gabon
+territories.SK=Slov\u00e1kia
+territories.SJ=Svalb\u00e1rda ja Jan Mayen
+territories.SI=Slovenia
+territories.SH=Saint Helena
+territories.SG=Singapore
+territories.SE=Ruo\u0167\u0167a
+territories.SD=Sudan
+territories.SC=Seychellsullot
+territories.SA=Saudi-Ar\u00e1bia
+territories.FR=Frankriika
+territories.FO=Fearsullot
+territories.FM=Mikronesia
+territories.RW=Rwanda
+territories.054=Melanesia
+territories.FK=Falklandsullot
+territories.053=Austr\u00e1lia ja O\u0111\u0111a-Sel\u00e1nda
+territories.RU=Ruo\u0161\u0161a
+territories.FJ=Fijisullot
+territories.FI=Suopma
+territories.RS=Serbia
+territories.RO=Rom\u00e1nia
+territories.RE=Reunion
+territories.ET=Etiopia
+territories.ES=Sp\u00e1nia
+territories.ER=Eritrea
+territories.QU=EU
+territories.EH=Oarje-Sah\u00e1ra
+territories.EG=Egypta
+territories.EE=Estl\u00e1nda
+territories.EC=Ecuador
+territories.DZ=Algeria
+territories.QA=Qatar
+territories.039=m\u00e1tta-Eurohp\u00e1
+territories.PY=Paraguay
+territories.DM=Dominica
+territories.035=m\u00e1tta-nuorta-\u00c1sia
+territories.PW=Palau
+territories.034=m\u00e1tta-\u00c1sia
+territories.DK=D\u00e1nm\u00e1rku
+territories.DJ=Djibouti
+territories.PT=Portug\u00e1la
+territories.PS=Palestina
+territories.030=nuorta-\u00c1sia
+territories.PR=Puerto Rico
+territories.DE=Duiska
+territories.PN=Pitcairn
+territories.PM=Saint Pierre ja Miquelon
+territories.PL=Polen
+territories.PK=Pakistan
+territories.PH=Filippiinnat
+territories.PG=Papua-O\u0111\u0111a-Guinea
+territories.CZ=\u010ceahkka
+territories.PE=Peru
+territories.CY=Kypros
+territories.CV=Kap Verde
+territories.PA=Panama
+territories.CU=Kuba
+territories.CR=Costa Rica
+territories.029=Karibia
+territories.CO=Kolombia
+territories.CN=Kiinn\u00e1
+territories.CM=Kamerun
+territories.CL=Chile
+territories.021=davvi-Amerihkk\u00e1
+territories.CH=\u0160veica
+territories.CG=Kongo-Brazzaville
+territories.CD=Kongo-Kinshasa
+territories.OM=Oman
+territories.CA=Kan\u00e1da
+territories.419=Lulli-Amerihkk\u00e1 ja Karibia
+territories.BZ=Belize
+territories.BY=Vilges-Ruo\u0161\u0161a
+territories.BW=Botswana
+territories.BT=Bhutan
+territories.BS=Bahamas
+territories.BR=Brasil
+territories.019=Amerihkk\u00e1
+territories.018=m\u00e1tta-Afrihkk\u00e1
+territories.NZ=O\u0111\u0111a-Sel\u00e1nda
+territories.017=gaska-Afrihkk\u00e1
+territories.BO=Bolivia
+territories.BN=Brunei
+territories.015=davvi-Afrihkk\u00e1
+territories.BM=Bermuda
+territories.014=nuorta-Afrihkk\u00e1
+territories.013=gaska-Amerihkk\u00e1
+territories.NU=Niue
+territories.BJ=Benin
+territories.011=oarji-Afrihkk\u00e1
+territories.BI=Burundi
+territories.BH=Bahrain
+territories.NR=Nauru
+territories.BG=Bulg\u00e1ria
+territories.BF=Burkina Faso
+territories.NP=Nepal
+territories.BE=Belgia
+territories.NO=Norga
+territories.BD=Bangladesh
+territories.BB=Barbados
+territories.ZW=Zimbabwe
+territories.NL=Vuolleeatnamat
+territories.BA=Bosnia-Hercegovina
+territories.NI=Nicaragua
+territories.NG=Nigeria
+territories.AZ=Aserbai\u017ean
+territories.NE=Niger
+territories.AX=\u00c5l\u00e1nda
+territories.NC=O\u0111\u0111a-Kaledonia
+territories.AW=Aruba
+territories.ZM=Zambia
+territories.NA=Namibia
+territories.AU=Austr\u00e1lia
+territories.AT=Nuortariika
+territories.AS=Amerihk\u00e1 Samoa
+territories.AR=Argentina
+territories.AQ=Ant\u00e1rktis
+territories.009=Oseania
+territories.MZ=Mosambik
+territories.AO=Angola
+territories.MY=Malesia
+territories.MX=Meksiko
+territories.AM=Armenia
+territories.005=m\u00e1tta-Amerihkk\u00e1
+territories.MW=Malawi
+territories.AL=Alb\u00e1nia
+territories.MV=Malediivvat
+territories.003=davvi-Amerihkk\u00e1
+territories.ZA=M\u00e1tta-Afrihk\u00e1
+territories.MU=Mauritius
+territories.002=Afrihkk\u00e1
+territories.MT=M\u00e1lta
+territories.AI=Anguilla
+territories.001=m\u00e1ilbmi
+territories.MS=Montserrat
+territories.MR=Mauret\u00e1nia
+territories.AG=Antigua ja Barbuda
+territories.MQ=Martinique
+territories.AF=Afghanistan
+territories.MP=Davvi-Mari\u00e1nat
+territories.AE=Ovttastuvvan Ar\u00e1baemir\u00e1htat
+territories.MO=Mak\u00e1o
+territories.AD=Andorra
+territories.MN=Mongolia
+territories.MM=Burma
+territories.ML=Mali
+territories.MK=Makedonia
+territories.YT=Mayotte
+territories.MH=Marshallsullot
+territories.MG=Madagaskar
+territories.ME=Montenegro
+territories.MD=Mold\u00e1via
+territories.MC=Monaco
+territories.MA=Marokko
+territories.YE=Jemen
+territories.LY=Libya
+territories.LV=L\u00e1tvia
+territories.155=oarji-Eurohp\u00e1
+territories.LU=Luxembourg
+territories.154=davvi-Eurohp\u00e1
+territories.LT=Lietuva
+territories.LS=Lesotho
+territories.LR=Liberia
+territories.151=nuorta-Eurohp\u00e1
+territories.150=Eurohp\u00e1
+territories.LK=Sri Lanka
+territories.LI=Liechtenstein
+territories.LC=Saint Lucia
+territories.LB=Libanon
+territories.LA=Laos
+territories.KZ=Kasakstan
+territories.KW=Kuwait
+territories.145=oarji-\u00c1sia
+territories.143=gaska-\u00c1sia
+territories.142=\u00c1sia
+territories.KR=M\u00e1tta-Korea
+territories.KP=Davvi-Korea
+territories.KN=Saint Kitts ja Nevis
+territories.KM=Komorosullot
+territories.KI=Kiribati
+territories.WS=Samoa
+territories.KH=Kampu\u010dea
+territories.KG=Kirgisistan
+territories.KE=Kenia
+territories.WF=Wallis ja Futuna
+territories.JP=Jap\u00e1na
+territories.JO=Jord\u00e1nia
+territories.JM=Jamaica
+territories.VU=Vanuatu
+territories.JE=Jersey
+territories.VN=Vietnam
+territories.VE=Venezuela
+territories.VC=Saint Vincent ja Grenadine
+territories.VA=Vatik\u00e1na
+territories.IT=It\u00e1lia
+territories.IS=Isl\u00e1nda
+territories.IR=Iran
+territories.IQ=Irak
+territories.UZ=Usbekistan
+territories.UY=Uruguay
+territories.IN=India
+territories.IL=Israel
+territories.US=Amerihk\u00e1 ovttastuvvan st\u00e1htat
+territories.IE=Irl\u00e1nda
+territories.ID=Indonesia
+territories.UG=Uganda
+territories.UA=Ukraina
+territories.HU=Ung\u00e1r
+territories.HT=Haiti
+territories.HR=Kro\u00e1tia
+territories.TZ=Tanz\u00e1nia
+territories.HN=Honduras
+territories.TW=Taiwan
+territories.TV=Tuvalu
+territories.HK=Hongkong
+territories.TT=Trinidad ja Tobago
+territories.TR=Durka
+territories.TO=Tonga
+territories.TN=Tunisia
+territories.TM=Turkmenistan
+languages.es=sp\u00e1nskkagiella
+languages.kw=kornagiella
+languages.kv=komigiella
+languages.en=ea\u014bgalsgiella
+languages.el=greikkagiella
+languages.sms=nuortala\u0161giella
+languages.smn=an\u00e1ra\u0161giella
+languages.fiu=fenno-ugr\u00e1la\u0161 gielat
+languages.smj=julevs\u00e1megiella
+languages.smi=s\u00e1megielat
+languages.wa=vallonagiella
+languages.sma=lullis\u00e1megiella
+languages.pt=portug\u00e1lagiella
+languages.de=duiskkagiella
+languages.pl=polskkagiella
+languages.da=d\u00e1nskkagiella
+languages.apa=apachegielat
+languages.wen=sorbigiella
+languages.myv=ersagiella
+languages.cs=\u010deahkagiella
+languages.it=it\u00e1liagiella
+languages.co=corsicagiella
+languages.is=isl\u00e1nddagiella
+languages.ca=katal\u00e1nagiella
+languages.sel=selkupagiella
+languages.chm=marigiella
+languages.uk=ukrainagiella
+languages.oc=oksit\u00e1nagiella
+languages.hy=armeenala\u0161 gielat
+languages.bs=bosniagiella
+languages.br=bretonagiella
+languages.bn=bengalgiella
+languages.udm=udmurtagiella
+languages.hr=kro\u00e1tiagiella
+languages.bg=bulg\u00e1riagiella
+languages.ang=boares ea\u014bgalasgiella
+languages.no=d\u00e1rogiella
+languages.be=vilges-ruo\u0161\u0161agiella
+languages.krl=g\u00e1rjilgiella
+languages.nn=o\u0111\u0111ad\u00e1rogiella
+languages.hi=hindigiella
+languages.nl=holl\u00e1nddagiella
+languages.nb=girjed\u00e1rogiella
+languages.ar=ar\u00e1bagiella
+languages.gv=manksgiella
+languages.gu=gujaratagiella
+languages.ast=asturiagiella
+languages.an=aragoniagiella
+languages.sv=ruo\u0167agiella
+languages.af=afrik\u00e1nsagiella
+languages.sr=serbiagiella
+languages.scn=sisiliagiella
+languages.sq=alb\u00e1nagiella
+languages.mk=makedoniagiella
+languages.sl=slovenagiella
+languages.sk=slov\u00e1kiagiella
+languages.ga=iirragiella
+languages.gem=germ\u00e1nala\u0161 gielat
+languages.se=davvis\u00e1megiella
+languages.fy=friisagiella
+languages.mdf=mok\u0161agiella
+languages.sc=sardigiella
+languages.fr=fr\u00e1nskkagiella
+languages.lv=l\u00e1tviagiella
+languages.lt=liettuvagiella
+languages.fo=fearagiella
+languages.ru=ruo\u0161\u0161agiella
+languages.roa=rom\u00e1nala\u0161 gielat
+languages.fi=suomagiella
+languages.ro=rom\u00e1niagiella
+languages.rm=retorom\u00e1nagiella
+languages.cel=kelttala\u0161 gielat
+languages.fa=persijagiella
+languages.lb=luxemburggagiella
+languages.la=l\u00e1htengiella
+languages.et=esttegiella
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties
new file mode 100644
index 0000000..e858713
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties
@@ -0,0 +1,116 @@
+# LocaleInformation_se_FI.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.XAU=XAU
+currenciesDisplayName.NOK=NOK
+currenciesDisplayName.XAG=XAG
+currenciesDisplayName.SEK=SEK
+currenciesDisplayName.FIM=FIM
+shortMonths=o\u0111\u0111ajage\u00aeguovva\u00aenjuk\u010da\u00aecuo\u014bo\u00aemiesse\u00aegeasse\u00aesuoidne\u00aeborge\u00ae\u010dak\u010da\u00aegolggot\u00aesk\u00e1bma\u00aejuovla\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00aeaejlege\u00aem\u00e5anta\u00aed\u00e4jsta\u00aegaskevahkoe\u00aed\u00e5arsta\u00aebearjadahke\u00aelaavadahke\u00ae
+territories.AU=Austr\u00e1lia
+territories.TD=\u010chad
+territories.AT=Nuortariika
+territories.MY=Malesia
+territories.GR=Greika
+territories.ZA=M\u00e1tta-Afrihk\u00e1
+territories.MV=Malediivvat
+territories.MR=Mauret\u00e1nia
+territories.GL=Kalaallit Nunaat
+territories.MP=D\u00e1vvi-Mari\u00e1nat
+territories.SR=Surinam
+territories.MK=Makedonia
+territories.021=d\u00e1vvi-Amerihkk\u00e1
+territories.MH=Marshallsullot
+territories.MG=Madagaskar
+territories.SK=Slov\u00e1kia
+territories.SJ=Svalb\u00e1rda ja Jan Mayen
+territories.SI=Slovenia
+territories.MA=Marokko
+territories.SE=Ruo\u0167\u0167a
+territories.FR=Frankriika
+territories.LV=L\u00e1tvia
+territories.LT=Lietuva
+territories.FO=Fearsullot
+territories.RU=Ruo\u0161\u0161a
+territories.017=gaska-Afrihkk\u00e1
+territories.FI=Suopma
+territories.015=d\u00e1vvi-Afrihkk\u00e1
+territories.014=nuorta-Afrihkk\u00e1
+territories.011=oarji-Afrihkk\u00e1
+territories.LB=Libanon
+territories.ES=Sp\u00e1nia
+territories.KR=M\u00e1tta-Korea
+territories.KP=D\u00e1vvi-Korea
+territories.005=m\u00e1tta-Amerihkk\u00e1
+territories.002=Afrihkk\u00e1
+territories.EE=Estl\u00e1nda
+territories.JP=J\u00e1hpan
+territories.DK=D\u00e1nm\u00e1rku
+territories.PS=Palestina
+territories.155=oarji-Eurohp\u00e1
+territories.154=d\u00e1vvi-Eurohp\u00e1
+territories.DE=Duiska
+territories.151=nuorta-Eurohp\u00e1
+territories.150=Eurohp\u00e1
+territories.PL=Polen
+territories.PH=Filippiinnat
+territories.CZ=\u010ceahkka
+territories.IT=It\u00e1lia
+territories.IS=Isl\u00e1nda
+territories.CN=Kiinn\u00e1
+territories.IR=Iran
+territories.CM=Kamerun
+territories.IQ=Irak
+territories.145=oarji-\u00c1sia
+territories.CH=\u0160veica
+territories.143=gaska-\u00c1sia
+territories.US=Amerihk\u00e1 ovttastuvvan st\u00e1htat
+territories.IE=Irl\u00e1nda
+territories.BY=Vilges-Ruo\u0161\u0161a
+territories.BR=Brasil
+territories.NZ=O\u0111\u0111a-Sel\u00e1nda
+territories.HU=Ung\u00e1r
+territories.HR=Kro\u00e1tia
+territories.039=m\u00e1tta-Eurohp\u00e1
+territories.BG=Bulg\u00e1ria
+territories.NO=Norga
+territories.BE=Belgia
+territories.TR=Durka
+territories.034=m\u00e1tta-\u00c1sia
+territories.NL=Vuolleeatnamat
+territories.030=nuorta-\u00c1sia
+territories.TL=Nuorta-Timor
+territories.AX=\u00c5l\u00e1nda
+languages.en=e\u014bgelasgiella
+languages.gem=duiskkagielat
+languages.no=d\u00e1rogiella
+languages.el=greikkagiella
+languages.nn=o\u0111\u0111ad\u00e1rogiella
+languages.be=vilgesruo\u0161\u0161agiella
+languages.cs=\u010deahkagiella
+languages.sms=nuortala\u0161giella
+languages.is=isl\u00e1nddagiella
+languages.fr=fr\u00e1nskkagiella
+languages.ru=ruo\u0161\u0161agiella
+languages.nb=girjed\u00e1rogiella
+languages.fo=fearagiella
+languages.smn=an\u00e1ra\u0161giella
+languages.smj=julevs\u00e1megiella
+languages.smi=s\u00e1megielat
+languages.fi=suomagiella
+languages.sv=ruo\u0167agiella
+languages.sma=lullis\u00e1megiella
+languages.fiu=fenno-ugr\u00e1la\u0161 gielat
+languages.apa=apachegielat
+languages.de=duiskkagiella
+languages.ang=boares e\u014bgelasgiella
+languages.et=esttegiella
+languages.es=sp\u00e1nskkagiella
+languages.da=d\u00e1nskkagiella
+languages.se=d\u00e1vvis\u00e1megiella
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_si.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_si.properties
new file mode 100644
index 0000000..38f7cc8
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_si.properties
@@ -0,0 +1,28 @@
+# LocaleInformation_si.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+percentFormat=#,##,##0%
+currencyFormat=\u00a4#,##,##0.00;(\u00a4#,##,##0.00)
+currenciesDisplayName.LKR=LKR
+currenciesSymbol.LKR=SL Re
+shortMonths=\u0da2\u0db1\u00ae\u0db4\u0dd9\u0db6\u00ae\u0db8\u0dcf\u0dbb\u0dca\u0dad\u00ae\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u00ae\u0db8\u0dd0\u0dba\u00ae\u0da2\u0dd6\u0db1\u00ae\u0da2\u0dd6\u0dbd\u00ae\u0d85\u0d9c\u0ddd\u00ae\u0dc3\u0dd0\u0db4\u00ae\u0d94\u0d9a\u00ae\u0db1\u0ddc\u0dc0\u0dd0\u00ae\u0daf\u0dd9\u0dc3\u0dd0\u00ae\u00ae
+months=\u0da2\u0db1\u0dc0\u0dcf\u0dbb\u00ae\u0db4\u0dd9\u0db6\u0dbb\u0dc0\u0dcf\u0dbb\u00ae\u0db8\u0dcf\u0dbb\u0dca\u0dad\u00ae\u0d85\u0db4\u0dca\u200d\u0dbb\u0dda\u0dbd\u0dca\u00ae\u0db8\u0dd0\u0dba\u0dd2\u00ae\u0da2\u0dd6\u0db1\u00ae\u0da2\u0dd6\u0dbd\u0dd2\u00ae\u0d85\u0d9c\u0ddd\u0dc3\u0dca\u0dad\u0dd4\u00ae\u0dc3\u0dd0\u0db4\u0dca\u0dad\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca\u00ae\u0d94\u0d9a\u0dca\u0dad\u0ddd\u0db6\u0dbb\u0dca\u00ae\u0db1\u0ddc\u0dc0\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca\u00ae\u0daf\u0dd9\u0dc3\u0dd0\u0db8\u0dca\u0db6\u0dbb\u0dca\u00ae\u00ae
+shortWeekdays=\u00ae\u0d89\u0dbb\u0dd2\u00ae\u0dc3\u0db3\u0dd4\u00ae\u0d85\u0d9f\u00ae\u0db6\u0daf\u0dcf\u00ae\u0db6\u0dca\u200d\u0dbb\u0dc4\u00ae\u0dc3\u0dd2\u0d9a\u0dd4\u00ae\u0dc3\u0dd9\u0db1\u00ae
+weekdays=\u00ae\u0d89\u0dbb\u0dd2\u0daf\u0dcf\u00ae\u0dc3\u0db3\u0dd4\u0daf\u0dcf\u00ae\u0d85\u0d9f\u0dc4\u0dbb\u0dd4\u0dc0\u0dcf\u0daf\u0dcf\u00ae\u0db6\u0daf\u0dcf\u0daf\u0dcf\u00ae\u0db6\u0dca\u200d\u0dbb\u0dc4\u0dc3\u0dca\u0db4\u0dad\u0dd2\u0db1\u0dca\u0daf\u0dcf\u00ae\u0dc3\u0dd2\u0d9a\u0dd4\u0dbb\u0dcf\u0daf\u0dcf\u00ae\u0dc3\u0dd9\u0db1\u0dc3\u0dd4\u0dbb\u0dcf\u0daf\u0dcf\u00ae
+eras=\u0d9a\u0dca\u200d\u0dbb\u0dd2.\u0db4\u0dd6.\u00ae\u0d9a\u0dca\u200d\u0dbb\u0dd2.\u0dc0.\u00ae
+ampms=\u0db4\u0dd9.\u0dc0.\u00ae\u0db4.\u0dc0.\u00ae
+shortDateFormat=yyyy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM d
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=Lanka\u00ae\u0dc1\u0dca\u200d\u0dbb\u0dd3 \u0dbd\u0d82\u0d9a\u0dcf \u0dc0\u0dda\u0dbd\u0dcf\u0dc0\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.LK=\u0dc1\u0dca\u200d\u0dbb\u0dd3 \u0dbd\u0d82\u0d9a\u0dcf\u0dc0
+languages.si=Sinhala
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sid.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sid.properties
index b5e18b9..1dda965 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sid.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sid.properties
@@ -5,6 +5,7 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.INR=Indian Rupee
currenciesDisplayName.JPY=Japanese Yen
currenciesDisplayName.RUB=Russian Ruble
@@ -14,27 +15,25 @@ currenciesDisplayName.EUR=Euro
currenciesDisplayName.USD=US Dollar
currenciesDisplayName.BRL=Brazilian Real
currenciesSymbol.ETB=$
-currenciesSymbol.USD=US$
-shortMonths=Jan®Feb®Mar®Apr®May®Jun®Jul®Aug®Sep®Oct®Nov®Dec®®
-months=January®February®March®April®May®June®July®August®September®October®November®December®®
-shortWeekdays=®Sam®San®Mak®Row®Ham®Arb®Qid®
-weekdays=®Sambata®Sanyo®Maakisanyo®Roowe®Hamuse®Arbe®Qidaame®
-firstDayOfWeek=sat
-eras=YIA®YIG®
-ampms=soodo®hawwaro®
+shortMonths=Jan\u00aeFeb\u00aeMar\u00aeApr\u00aeMay\u00aeJun\u00aeJul\u00aeAug\u00aeSep\u00aeOct\u00aeNov\u00aeDec\u00ae\u00ae
+months=January\u00aeFebruary\u00aeMarch\u00aeApril\u00aeMay\u00aeJune\u00aeJuly\u00aeAugust\u00aeSeptember\u00aeOctober\u00aeNovember\u00aeDecember\u00ae\u00ae
+shortWeekdays=\u00aeSam\u00aeSan\u00aeMak\u00aeRow\u00aeHam\u00aeArb\u00aeQid\u00ae
+weekdays=\u00aeSambata\u00aeSanyo\u00aeMaakisanyo\u00aeRoowe\u00aeHamuse\u00aeArbe\u00aeQidaame\u00ae
+eras=YIA\u00aeYIG\u00ae
+ampms=soodo\u00aehawwaro\u00ae
shortDateFormat=dd/MM/yy
mediumDateFormat=dd-MMM-yyyy
longDateFormat=dd MMMM yyyy
fullDateFormat=EEEE, MMMM dd, yyyy
shortTimeFormat=h:mm a
mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.FR=France
territories.IN=India
territories.CN=China
-territories.ET=Itiyoophiya
territories.DE=Germany
+territories.ET=Itiyoophiya
territories.GB=United Kingdom
territories.BR=Brazil
territories.RU=Russia
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sk.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sk.properties
index d73c3ed..fb6250b 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sk.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sk.properties
@@ -7,125 +7,128 @@
decimalSeparator=,
groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
currenciesDisplayName.YDD=Jemensk\u00fd din\u00e1r
-currenciesDisplayName.TWD=Taiwansk\u00fd nov\u00fd dol\u00e1r
currenciesDisplayName.KES=Ke\u0148sk\u00fd \u0161iling
-currenciesDisplayName.BYB=Belarussian nov\u00fd rube\u013e (1994-1999)
+currenciesDisplayName.TWD=Taiwansk\u00fd nov\u00fd dol\u00e1r
currenciesDisplayName.LKR=\u0160rilansk\u00e1 rupia
-currenciesDisplayName.RWF=Rwandsk\u00fd frank
+currenciesDisplayName.BYB=Belarussian nov\u00fd rube\u013e (1994-1999)
currenciesDisplayName.TJS=Tad\u017eikistansk\u00fd somoni
-currenciesDisplayName.SDP=Sud\u00e1nska libra
-currenciesDisplayName.TJR=Tad\u017eikistansk\u00fd rube\u013e
+currenciesDisplayName.RWF=Rwandsk\u00fd frank
currenciesDisplayName.ERN=Eritrejsk\u00e1 nakfa
+currenciesDisplayName.TJR=Tad\u017eikistansk\u00fd rube\u013e
+currenciesDisplayName.SDP=Sud\u00e1nska libra
currenciesDisplayName.GRD=Gr\u00e9cka drachma
currenciesDisplayName.IEP=\u00cdrska libra
currenciesDisplayName.ARS=Argentinsk\u00e9 peso
-currenciesDisplayName.SDD=Sud\u00e1nsky din\u00e1r
currenciesDisplayName.ARP=Argentinsk\u00e9 peso (1983-1985)
+currenciesDisplayName.SDD=Sud\u00e1nsky din\u00e1r
currenciesDisplayName.GEL=Gruz\u00ednsky lari
currenciesDisplayName.GEK=Gruz\u00ednsky Kupon Larit
currenciesDisplayName.CRC=Kostariksk\u00fd colon
currenciesDisplayName.FKP=Falklandsk\u00e1 libra
currenciesDisplayName.EEK=Est\u00f3nska kroon
-currenciesDisplayName.HKD=Hong Kongsk\u00fd dol\u00e1r
currenciesDisplayName.MDL=Moldavsk\u00fd leu
-currenciesDisplayName.ARA=Argentinsk\u00fd austral
+currenciesDisplayName.HKD=Hong Kongsk\u00fd dol\u00e1r
currenciesDisplayName.IQD=Irack\u00fd din\u00e1r
+currenciesDisplayName.ARA=Argentinsk\u00fd austral
currenciesDisplayName.SCR=Sej\u0161elsk\u00e1 rupia
currenciesDisplayName.VUV=Vanuatu vatu
-currenciesDisplayName.DKK=D\u00e1nska krone
currenciesDisplayName.KPW=Severok\u00f3rejsk\u00fd won
-currenciesDisplayName.GQE=Rovn\u00edkov\u00e1 Guinea Ekwele Guineana
+currenciesDisplayName.DKK=D\u00e1nska krone
currenciesDisplayName.IDR=Indon\u00e9zska rupia
-currenciesDisplayName.LVR=Loty\u0161sk\u00fd rube\u013e
+currenciesDisplayName.GQE=Rovn\u00edkov\u00e1 Guinea Ekwele Guineana
currenciesDisplayName.SOS=Som\u00e1lsky \u0161iling
+currenciesDisplayName.LVR=Loty\u0161sk\u00fd rube\u013e
currenciesDisplayName.AED=UAE dirham
-currenciesDisplayName.BWP=Botswanan Pula
currenciesDisplayName.LVL=Loty\u0161sk\u00fd lats
+currenciesDisplayName.BWP=Botswanan Pula
currenciesDisplayName.RUR=Rusk\u00fd rube\u013e (1991-1998)
currenciesDisplayName.NIO=Nikaragujsk\u00e1 Cordoba Oro
-currenciesDisplayName.ADP=Andorsk\u00e1 peseta
-currenciesDisplayName.FJD=Fiji dol\u00e1r
currenciesDisplayName.MOP=Macao Pataca
+currenciesDisplayName.FJD=Fiji dol\u00e1r
+currenciesDisplayName.ADP=Andorsk\u00e1 peseta
currenciesDisplayName.RUB=Rusk\u00fd rube\u013e
currenciesDisplayName.CDF=Kon\u017esk\u00fd frank Congolais
currenciesDisplayName.NIC=Nikaragujsk\u00e1 cordoba
currenciesDisplayName.DJF=D\u017eibutsk\u00fd frank
-currenciesDisplayName.ECV=Ekuadorsk\u00fd Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Solomon Islands dol\u00e1r
currenciesDisplayName.UZS=Uzbekistansk\u00fd sum
+currenciesDisplayName.SBD=Solomon Islands dol\u00e1r
+currenciesDisplayName.ECV=Ekuadorsk\u00fd Unidad de Valor Constante (UVC)
currenciesDisplayName.ECS=Ekuadorsk\u00fd sucre
-currenciesDisplayName.PHP=Filip\u00ednske peso
currenciesDisplayName.THB=Thajsk\u00fd b\u00e1t
+currenciesDisplayName.PHP=Filip\u00ednske peso
currenciesDisplayName.LUF=Luxembursk\u00fd frank
currenciesDisplayName.FIM=Finsk\u00e1 marka
currenciesDisplayName.TTD=Trinidad a Tobago dol\u00e1r
currenciesDisplayName.SZL=Swaziland lilangeni
currenciesDisplayName.MNT=Mongolsk\u00fd tugrik
-currenciesDisplayName.SAR=Saudsk\u00fd riyal
currenciesDisplayName.UAK=Ukrainsk\u00fd karbovanetz
+currenciesDisplayName.SAR=Saudsk\u00fd riyal
currenciesDisplayName.UAH=Ukrainsk\u00e1 hrivna
currenciesDisplayName.HUF=Ma\u010farsk\u00fd forint
-currenciesDisplayName.COP=Colombijsk\u00e9 peso
currenciesDisplayName.QAR=Qatarsk\u00fd rial
+currenciesDisplayName.COP=Colombijsk\u00e9 peso
currenciesDisplayName.LTT=Litevsk\u00fd talonas
currenciesDisplayName.PTE=Portugalsk\u00e9 eskudo
-currenciesDisplayName.AOR=Angolsk\u00e1 kwanza Reajustado (1995-1999)
currenciesDisplayName.UYU=Uruguajsk\u00e9 peso Uruguayo
+currenciesDisplayName.AOR=Angolsk\u00e1 kwanza Reajustado (1995-1999)
currenciesDisplayName.GBP=Britsk\u00e1 libra
-currenciesDisplayName.BIF=Burundsk\u00fd frank
-currenciesDisplayName.INR=Indijsk\u00e1 rupia
currenciesDisplayName.ZRZ=Zairsk\u00fd Zaire
-currenciesDisplayName.AON=Angolsk\u00e1 nov\u00e1 kwanza (1990-2000)
-currenciesDisplayName.LTL=Litevsk\u00e1 lita
+currenciesDisplayName.INR=Indijsk\u00e1 rupia
+currenciesDisplayName.BIF=Burundsk\u00fd frank
currenciesDisplayName.XFU=Franc\u00fazsky UIC-frank
-currenciesDisplayName.KZT=Kaza\u017esk\u00fd tenge
-currenciesDisplayName.MZM=Mozambijsk\u00e9 metical
+currenciesDisplayName.LTL=Litevsk\u00e1 lita
+currenciesDisplayName.AON=Angolsk\u00e1 nov\u00e1 kwanza (1990-2000)
currenciesDisplayName.UYP=Uruguajsk\u00e9 peso (1975-1993)
+currenciesDisplayName.MZM=Mozambijsk\u00e9 metical
+currenciesDisplayName.KZT=Kaza\u017esk\u00fd tenge
currenciesDisplayName.AOK=Angolsk\u00e1 kwanza (1977-1990)
-currenciesDisplayName.BUK=Burmese Kyat
currenciesDisplayName.GNS=Guinejsk\u00fd syli
+currenciesDisplayName.BUK=Burmese Kyat
currenciesDisplayName.XFO=Franc\u00fazsky zlat\u00fd frank
currenciesDisplayName.PGK=Papua Nov\u00e1 Guinea kina
currenciesDisplayName.SYP=Syrsk\u00e1 libra
-currenciesDisplayName.MZE=Mozambijsk\u00e9 eskudo
currenciesDisplayName.OMR=Om\u00e1nsk\u00fd rial
-currenciesDisplayName.NGN=Nigersk\u00e1 naira
+currenciesDisplayName.MZE=Mozambijsk\u00e9 eskudo
currenciesDisplayName.ZRN=Zairsk\u00fd nov\u00fd zaire
-currenciesDisplayName.AOA=Angolsk\u00e1 kwanza
+currenciesDisplayName.NGN=Nigersk\u00e1 naira
currenciesDisplayName.CNY=\u010c\u00ednsky Yuan Renminbi
+currenciesDisplayName.AOA=Angolsk\u00e1 kwanza
currenciesDisplayName.MAF=Marock\u00fd frank
+currenciesDisplayName.RSD=Srbsk\u00fd din\u00e1r
currenciesDisplayName.GNF=Guinejsk\u00fd frank
-currenciesDisplayName.HTG=Haitsk\u00e9 gourde
currenciesDisplayName.MAD=Marock\u00fd dirham
+currenciesDisplayName.HTG=Haitsk\u00e9 gourde
+currenciesDisplayName.TRY=Nov\u00e1 tureck\u00e1 l\u00edra
currenciesDisplayName.MMK=Myanmarsk\u00fd kyat
currenciesDisplayName.MYR=Malajsk\u00fd ringgit
currenciesDisplayName.LSL=Lesothsk\u00fd loti
-currenciesDisplayName.BHD=Bahraisk\u00fd din\u00e1r
currenciesDisplayName.SLL=Sierra Leone Leone
+currenciesDisplayName.BHD=Bahraisk\u00fd din\u00e1r
currenciesDisplayName.BTN=Bhutansky ngultrum
currenciesDisplayName.TRL=Tureck\u00e1 lira
currenciesDisplayName.KMF=Comoro frank
-currenciesDisplayName.ANG=Nizozemsk\u00fd Antilsk\u00fd guilder
currenciesDisplayName.CZK=\u010cesk\u00e1 koruna
+currenciesDisplayName.ANG=Nizozemsk\u00fd Antilsk\u00fd guilder
currenciesDisplayName.AZM=Azerbaid\u017eansk\u00fd manat
currenciesDisplayName.KYD=Kajmansk\u00fd dol\u00e1r
currenciesDisplayName.GMD=Gambsk\u00fd dalasi
currenciesDisplayName.BGN=Bulharsk\u00fd leva nov\u00fd
-currenciesDisplayName.CAD=Kanadsk\u00fd dol\u00e1r
currenciesDisplayName.MXV=Mexick\u00e9 Unidad de Inversion (UDI)
+currenciesDisplayName.CAD=Kanadsk\u00fd dol\u00e1r
currenciesDisplayName.BGL=Bulharsk\u00fd leva
currenciesDisplayName.VEB=Venezuelsk\u00fd bolivar
currenciesDisplayName.MLF=Malsk\u00fd frank
-currenciesDisplayName.ILS=Izraelsk\u00fd \u0161ekel
currenciesDisplayName.MXP=Mexick\u00e9 striborn\u00e9 peso (1861-1992)
+currenciesDisplayName.ILS=Izraelsk\u00fd \u0161ekel
currenciesDisplayName.PES=Peruvsk\u00fd sol
-currenciesDisplayName.GYD=Guyansk\u00fd dol\u00e1r
currenciesDisplayName.MXN=Mexick\u00e9 peso
+currenciesDisplayName.GYD=Guyansk\u00fd dol\u00e1r
currenciesDisplayName.ILP=Izraelsk\u00e1 libra
-currenciesDisplayName.SKK=Slovensk\u00e1 koruna
currenciesDisplayName.CYP=Cyprusk\u00e1 libra
+currenciesDisplayName.SKK=Slovensk\u00e1 koruna
currenciesDisplayName.XDR=\u0160peci\u00e1lne pr\u00e1va \u010derpania
currenciesDisplayName.PEN=Peruvsk\u00fd sol Nuevo
currenciesDisplayName.LRD=Lib\u00e9rsk\u00fd dol\u00e1r
@@ -133,15 +136,15 @@ currenciesDisplayName.PEI=Peruvsk\u00fd inti
currenciesDisplayName.AMD=Armensk\u00fd dram
currenciesDisplayName.BSD=Bahamsk\u00fd dol\u00e1r
currenciesDisplayName.HRK=Chorv\u00e1tska kuna
-currenciesDisplayName.CLP=\u010c\u00edlske peso
currenciesDisplayName.HRD=Chorv\u00e1tsky din\u00e1r
+currenciesDisplayName.CLP=\u010c\u00edlske peso
currenciesDisplayName.XPF=CFP frank
currenciesDisplayName.FRF=Franc\u00fazsky frank
currenciesDisplayName.BRR=Braz\u00edlske cruzeiro
currenciesDisplayName.MKD=Maced\u00f3nsky den\u00e1r
currenciesDisplayName.CLF=\u010c\u00edlske Unidades de Fomento
-currenciesDisplayName.ALL=Alb\u00e1nsky lek
currenciesDisplayName.BRN=Braz\u00edlske Cruzado Novo
+currenciesDisplayName.ALL=Alb\u00e1nsky lek
currenciesDisplayName.MWK=Malavsk\u00e1 kwacha
currenciesDisplayName.BRL=Boliv\u00edjsky real
currenciesDisplayName.TPE=Timorsk\u00e9 eskudo
@@ -161,15 +164,16 @@ currenciesDisplayName.SIT=Slovinsk\u00fd Tolar
currenciesDisplayName.JPY=Japonsk\u00fd yen
currenciesDisplayName.XOF=CFA frank BCEAO
currenciesDisplayName.MVR=Maldivsk\u00e1 rufiyaa
-currenciesDisplayName.GWE=Portugalsk\u00e1 Guinea eskudo
currenciesDisplayName.BEF=Belgick\u00fd frank
+currenciesDisplayName.GWE=Portugalsk\u00e1 Guinea eskudo
currenciesDisplayName.TOP=Tonga Pa\u02bbanga
-currenciesDisplayName.YUD=Juhosl\u00e1vsky din\u00e1r
+currenciesDisplayName.YUD=Juhosl\u00e1vsky din\u00e1r [YUD]
currenciesDisplayName.BEC=Belgick\u00fd frank (konvertibiln\u00fd)
currenciesDisplayName.SUR=Sovietsk\u00fd rube\u013e
+currenciesDisplayName.RON=Rumunsk\u00fd Lei
currenciesDisplayName.ROL=Rumunsk\u00fd leu
-currenciesDisplayName.DDM=V\u00fdchodonemeck\u00e1 marka
currenciesDisplayName.BDT=Banglad\u00e9\u0161ska taka
+currenciesDisplayName.DDM=V\u00fdchodonemeck\u00e1 marka
currenciesDisplayName.AWG=Arubsk\u00fd guilder
currenciesDisplayName.NOK=N\u00f3rksy krone
currenciesDisplayName.MUR=Mauritsk\u00e1 rupia
@@ -191,31 +195,32 @@ currenciesDisplayName.UGS=Ugandan \u0161iling (1966-1987)
currenciesDisplayName.STD=Sao Tome a Principe dobra
currenciesDisplayName.WST=Z\u00e1padn\u00e1 Samoa tala
currenciesDisplayName.KHR=Kambod\u017esk\u00fd riel
-currenciesDisplayName.EUR=Euro
currenciesDisplayName.DOP=Dominik\u00e1nske peso
+currenciesDisplayName.EUR=Euro
currenciesDisplayName.BOV=Boliv\u00edjske mvdol
currenciesDisplayName.MTP=Maltsk\u00e1 libra
currenciesDisplayName.USS=US dol\u00e1r (Same day)
currenciesDisplayName.BOP=Boliv\u00edjske peso
-currenciesDisplayName.MTL=Maltsk\u00e1 lira
currenciesDisplayName.CUP=Kub\u00e1nske peso
+currenciesDisplayName.MTL=Maltsk\u00e1 lira
currenciesDisplayName.TMM=Turkm\u00e9nsky manat
currenciesDisplayName.USN=US dol\u00e1r (Next day)
currenciesDisplayName.SGD=Singap\u00farsky dol\u00e1r
currenciesDisplayName.NZD=Novoz\u00e9landsk\u00fd dol\u00e1r
currenciesDisplayName.USD=US dol\u00e1r
+currenciesDisplayName.BOB=Bol\u00edvijsk\u00e9 Boliviano
currenciesDisplayName.HNL=Hodurask\u00e1 lempira
currenciesDisplayName.ITL=Taliansk\u00e1 lira
currenciesDisplayName.PAB=Panamsk\u00e1 balboa
currenciesDisplayName.GTQ=Guatemalsk\u00fd quetzal
-currenciesDisplayName.LAK=Laosk\u00fd kip
-currenciesDisplayName.GHC=Ghansk\u00fd cedi
currenciesDisplayName.AUD=Austr\u00e1lsky dol\u00e1r
+currenciesDisplayName.GHC=Ghansk\u00fd cedi
+currenciesDisplayName.LAK=Laosk\u00fd kip
currenciesDisplayName.NAD=Namibsk\u00fd dol\u00e1r
currenciesDisplayName.KGS=Kyrgysk\u00fd som
currenciesDisplayName.MGF=Madagaskarsk\u00fd frank
-currenciesDisplayName.CHF=\u0160vaj\u010diarsk\u00fd frank
currenciesDisplayName.BBD=Barbadosk\u00fd dol\u00e1r
+currenciesDisplayName.CHF=\u0160vaj\u010diarsk\u00fd frank
currenciesDisplayName.MGA=Madagaskarsk\u00fd ariary
currenciesDisplayName.PYG=Paraguaysk\u00e9 guarani
currenciesDisplayName.PLZ=Polsk\u00fd zloty (1950-1995)
@@ -223,15 +228,15 @@ currenciesDisplayName.YER=Jemensk\u00fd rial
currenciesDisplayName.ATS=Rak\u00fasky \u0161iling
currenciesDisplayName.ETB=Ethiopsk\u00fd birr
currenciesDisplayName.BND=Bruneisk\u00fd dol\u00e1r
-currenciesDisplayName.JMD=Jamajsk\u00fd dol\u00e1r
currenciesDisplayName.EGP=Egyptsk\u00e1 libra
+currenciesDisplayName.JMD=Jamajsk\u00fd dol\u00e1r
currenciesDisplayName.PLN=Polsk\u00fd zloty
currenciesDisplayName.DZD=Al\u017e\u00edrsky din\u00e1r
currenciesDisplayName.ISK=Islandsk\u00e1 krona
currenciesDisplayName.SRG=Surinamsk\u00fd guilder
currenciesDisplayName.LYD=Libyjsk\u00fd din\u00e1r
-currenciesDisplayName.BZD=Belize dol\u00e1r
currenciesDisplayName.BAM=Bosniansk\u00fd konvertibiln\u00e1 marka
+currenciesDisplayName.BZD=Belize dol\u00e1r
currenciesDisplayName.ESP=\u0160panielsk\u00e1 peseta
currenciesDisplayName.KRW=Juhok\u00f3rejsk\u00fd won
currenciesDisplayName.NLG=Nizozemsk\u00fd guilder
@@ -244,31 +249,30 @@ currenciesDisplayName.BYR=Belarussian rube\u013e
currenciesDisplayName.IRR=Ir\u00e1nsky rial
currenciesDisplayName.PKR=Pakistansk\u00e1 rupia
currenciesDisplayName.BMD=Bermudsk\u00fd dol\u00e1r
-currenciesSymbol.BGL=lev
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
@@ -286,27 +290,26 @@ currenciesSymbol.FJD=F$
currenciesSymbol.UYU=Ur$
currenciesSymbol.BDT=Tk
currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
+currenciesSymbol.KHR=CR
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -315,8 +318,8 @@ currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.CNY=Y
currenciesSymbol.KMF=CF
@@ -330,10 +333,10 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=NA f.
@@ -342,13 +345,12 @@ currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=jan®feb®mar®apr®m\u00e1j®j\u00fan®j\u00fal®aug®sep®okt®nov®dec®®
-months=janu\u00e1r®febru\u00e1r®marec®apr\u00edl®m\u00e1j®j\u00fan®j\u00fal®august®september®okt\u00f3ber®november®december®®
-shortWeekdays=®Ne®Po®Ut®St®\u0160t®Pi®So®
-weekdays=®Nede\u013ea®Pondelok®Utorok®Streda®\u0160tvrtok®Piatok®Sobota®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=pred n.l.®n.l.®
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aem\u00e1j\u00aej\u00fan\u00aej\u00fal\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=janu\u00e1ra\u00aefebru\u00e1ra\u00aemarca\u00aeapr\u00edla\u00aem\u00e1ja\u00aej\u00fana\u00aej\u00fala\u00aeaugusta\u00aeseptembra\u00aeokt\u00f3bra\u00aenovembra\u00aedecembra\u00ae\u00ae
+shortWeekdays=\u00aeNe\u00aePo\u00aeUt\u00aeSt\u00ae\u0160t\u00aePi\u00aeSo\u00ae
+weekdays=\u00aeNede\u013ea\u00aePondelok\u00aeUtorok\u00aeStreda\u00ae\u0160tvrtok\u00aePiatok\u00aeSobota\u00ae
+eras=pred n.l.\u00aen.l.\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=d.M.yyyy
mediumDateFormat=d.M.yyyy
longDateFormat=d. MMMM yyyy
@@ -379,12 +381,13 @@ territories.GN=Guinea
territories.GM=Gambia
territories.GL=Gr\u00f3nsko
territories.SV=Salvador
-territories.062=Ju\u017en\u00e1 \u00c1zia
+territories.062=Stredn\u00e1 a ju\u017en\u00e1 \u00c1zia
territories.ST=Sv\u00e4t\u00fd Tom\u00e1\u0161 a Princove ostrovy
-territories.061=Polyn\u00e9zia
territories.GI=Gibralt\u00e1r
+territories.061=Polyn\u00e9zia
territories.GH=Ghana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Franc\u00fazska Guayana
territories.GE=Gruz\u00ednsko
territories.SO=Som\u00e1lsko
@@ -405,26 +408,27 @@ territories.SC=Seychelsk\u00e9 ostrovy
territories.SB=\u0160alam\u00fanove ostrovy
territories.SA=Saudsk\u00e1 Ar\u00e1bia
territories.FR=Franc\u00fazsko
-territories.057=Mikron\u00e9sia
territories.FO=Faersk\u00e9 ostrovy
+territories.057=Mikron\u00e9sia
territories.FM=Mikron\u00e9zia, Federat\u00edvne \u0161t\u00e1ty
territories.RW=Rwanda
territories.054=Melan\u00e9zia
-territories.053=Austr\u00e1lia a Nov\u00fd Z\u00e9land
territories.FK=Falklandsk\u00e9 ostrovy
+territories.053=Austr\u00e1lia a Nov\u00fd Z\u00e9land
territories.RU=Rusk\u00e1 feder\u00e1cia
territories.FJ=Fid\u017ei
territories.FI=F\u00ednsko
+territories.RS=Srbsko
territories.RO=Rumunsko
territories.RE=Reunion
territories.ET=Eti\u00f3pia
territories.ES=\u0160panielsko
territories.ER=Eritrea
-territories.833=Ostrov Man
+territories.QU=Eur\u00f3pska \u00fania
territories.EH=Z\u00e1padn\u00e1 Sahara
territories.EG=Egypt
-territories.830=Kan\u00e1l La Manche
territories.EE=Est\u00f3nsko
+territories.830=Kan\u00e1l La Manche
territories.QO=Tichomorie - ostatn\u00e9
territories.EC=Ekv\u00e1dor
territories.DZ=Al\u017e\u00edrsko
@@ -432,9 +436,10 @@ territories.QA=Katar
territories.039=Ju\u017en\u00e1 Eur\u00f3pa
territories.DO=Dominik\u00e1nska republika
territories.PY=Paraguaj
-territories.035=Juhov\u00fdchodn\u00e1 \u00c1zia
territories.DM=Dominika
+territories.035=Juhov\u00fdchodn\u00e1 \u00c1zia
territories.PW=Palau
+territories.034=Ju\u017en\u00e1 \u00c1zia
territories.DK=D\u00e1nsko
territories.DJ=D\u017eibuti
territories.PT=Portugalsko
@@ -464,8 +469,8 @@ territories.CN=\u010c\u00edna
territories.CM=Kamerun
territories.CL=\u010cile
territories.CK=Cookove ostrovy
-territories.CI=Pobre\u017eie Slonoviny
territories.021=Severn\u00e1 Amerika
+territories.CI=Pobre\u017eie Slonoviny
territories.CH=\u0160vaj\u010diarsko
territories.CG=Kongo
territories.CF=Stredoafrick\u00e1 republika
@@ -473,6 +478,7 @@ territories.CD=Kon\u017esk\u00e1 demokratick\u00e1 republika
territories.CC=Kokosov\u00e9 (Keelingove) ostrovy
territories.OM=Om\u00e1n
territories.CA=Kanada
+territories.419=Latinsk\u00e1 Amerika a Karibik
territories.BZ=Belize
territories.BY=Bielorusko
territories.BW=Botswana
@@ -481,25 +487,28 @@ territories.BT=But\u00e1n
territories.BS=Bahamy
territories.BR=Braz\u00edlia
territories.019=Americk\u00fd kontinent
-territories.018=Ju\u017en\u00e1 Afrika
+territories.018=Ju\u017en\u00e1 Afrika [018]
territories.NZ=Nov\u00fd Z\u00e9land
-territories.BO=Bol\u00edvia
territories.017=Stredn\u00e1 Afrika
+territories.BO=Bol\u00edvia
territories.BN=Brunej
-territories.BM=Bermudy
territories.015=Severn\u00e1 Afrika
+territories.BM=Bermudy
territories.014=V\u00fdchodn\u00e1 Afrika
+territories.BL=Sv\u00e4t\u00fd Bartolomej
territories.013=Stredn\u00e1 Amerika
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Z\u00e1padn\u00e1 Afrika
+territories.BI=Burundi
+territories.172=Spolo\u010denstvo nez\u00e1visl\u00fdch \u0161t\u00e1tov
territories.BH=Bahrajn
territories.NR=Nauru
territories.BG=Bulharsko
territories.BF=Burkina Faso
territories.NP=Nep\u00e1l
territories.BE=Belgicko
+territories.ZZ=Nezn\u00e1my alebo neplatn\u00fd regi\u00f3n
territories.NO=N\u00f3rsko
territories.BD=Banglad\u00e9\u0161
territories.BB=Barbados
@@ -521,23 +530,25 @@ territories.AT=Rak\u00fasko
territories.AS=Americk\u00e1 Samoa
territories.AR=Argent\u00edna
territories.AQ=Antarctica
+territories.009=Oce\u00e1nia
territories.MZ=Mozambik
-territories.200=\u010ceskoslovensko
territories.AO=Angola
+territories.200=\u010ceskoslovensko
territories.MY=Malajzia
territories.AN=Holandsk\u00e9 Antily
territories.MX=Mexiko
-territories.005=Ju\u017en\u00e1 Amerika
territories.AM=Arm\u00e9nsko
+territories.005=Ju\u017en\u00e1 Amerika
territories.MW=Malawi
territories.AL=Alb\u00e1nsko
territories.MV=Maldivy
+territories.003=Severn\u00e1 Amerika
territories.ZA=Ju\u017en\u00e1 Afrika
territories.MU=Maur\u00edcius
territories.002=Afrika
territories.MT=Malta
-territories.001=Svet
territories.AI=Anguilla
+territories.001=Svet
territories.MS=Montserrat
territories.MR=Maurit\u00e1nia
territories.AG=Antigua a Barbados
@@ -545,7 +556,7 @@ territories.MQ=Martinik
territories.AF=Afganistan
territories.MP=Severn\u00e9 Mari\u00e1ny
territories.AE=Spojen\u00e9 arabsk\u00e9 emir\u00e1ty
-territories.MO=Makao S.A.R. \u010c\u00edny
+territories.MO=Macao
territories.AD=Andorra
territories.MN=Mongolsko
territories.MM=Mjanmarsko
@@ -554,6 +565,8 @@ territories.MK=Maced\u00f3nsko, republika
territories.YT=Mayotte
territories.MH=Marshallove ostrovy
territories.MG=Madagaskar
+territories.MF=Sv\u00e4t\u00fd Martin
+territories.ME=\u010cierna Hora
territories.MD=Moldavsko, republika
territories.MC=Monako
territories.MA=Maroko
@@ -577,6 +590,7 @@ territories.KZ=Kazachstan
territories.KY=Kajmansk\u00e9 ostrovy
territories.KW=Kuvajt
territories.145=Z\u00e1padn\u00e1 \u00c1zia
+territories.143=Stredn\u00e1 \u00c1zia
territories.142=\u00c1zia
territories.KR=K\u00f3rea, Ju\u017en\u00e1
territories.KP=K\u00f3rea, Severn\u00e1
@@ -592,12 +606,13 @@ territories.JP=Japonsko
territories.JO=Jord\u00e1nsko
territories.JM=Jamajka
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=Panensk\u00e9 ostrovy - USA
territories.VG=Britsk\u00e9 panensk\u00e9 ostrovy
territories.VE=Venezuela
territories.VC=Sv\u00e4t\u00fd Vincent a Grenad\u00edny
-territories.VA=Sv\u00e4t\u00e1 stolica (Vatik\u00e1nsky mestsk\u00fd \u0161t\u00e1t)
+territories.VA=Sv\u00e4t\u00fd stolec (Vatik\u00e1nsky mestsk\u00fd \u0161t\u00e1t)
territories.IT=Taliansko
territories.IS=Island
territories.IR=Ir\u00e1n
@@ -606,6 +621,7 @@ territories.UZ=Uzbekistan
territories.IO=Britsk\u00e9 \u00fazemie v Indickom oce\u00e1ne
territories.UY=Uruguaj
territories.IN=India
+territories.IM=Ostrov Man
territories.IL=Izrael
territories.US=Spojen\u00e9 \u0161t\u00e1ty
territories.IE=\u00cdrsko
@@ -621,39 +637,166 @@ territories.HN=Honduras
territories.HM=Heardove ostrovy a McDonaldove ostrovy
territories.TW=Tajwan
territories.TV=Tuvalu
-territories.HK=Hong Kong S.A.R. \u010c\u00edny
+territories.HK=Hong Kong
territories.TT=Trinidad a Tobago
territories.TR=Turecko
territories.TO=Tonga
territories.TN=Tunisko
territories.TM=Turkm\u00e9nsko
+languages.lb=luxemburgsk\u00fd
+languages.la=latinsk\u00fd
+languages.xh=xhosky
+languages.ky=kyrgyzsk\u00fd
+languages.ku=kurdsk\u00fd
+languages.ko=k\u00f3rejsk\u00fd
+languages.kn=kanadsk\u00fd
+languages.km=kambod\u017esk\u00fd
+languages.ira=ir\u00e1nsky jazyk
+languages.kg=kon\u017esk\u00fd
+languages.en_GB=anglick\u00fd (Ve\u013ek\u00e1 Brit\u00e1nia)
+languages.grc=starogr\u00e9cky
+languages.wo=wolof
+languages.art=umel\u00fd jazyk
+languages.ka=gruz\u00ednsky
+languages.gem=germ\u00e1nsky jazyk
+languages.jv=javansk\u00fd
+languages.wa=val\u00f3nsky
+languages.cel=keltsk\u00fd jazyk
+languages.scn=sic\u00edlsky
languages.ja=japonsk\u00fd
-languages.en=anglick\u00fd
+languages.vi=vietnamsk\u00fd
+languages.it=taliansky
+languages.is=islandsk\u00fd
+languages.uz=uzbeck\u00fd
+languages.ur=urd\u0161tina
+languages.ie=interlingue
+languages.id=indon\u00e9zsky
+languages.ia=interlingua
+languages.uk=ukrajinsk\u00fd
+languages.ug=uighursky
+languages.fiu=ugrof\u00ednsky jazyk
+languages.und=nezn\u00e1my alebo neplatn\u00fd jazyk
+languages.hy=arm\u00e9nsky
+languages.got=gotick\u00fd
+languages.hu=ma\u010farsk\u00fd
+languages.ht=haitsk\u00fd
+languages.hr=chorv\u00e1tsky
+languages.fil=filip\u00ednsky
+languages.ty=tahitsk\u00fd
+languages.tw=twisky
+languages.tt=tat\u00e1rsky
+languages.hi=hind\u0161tina
languages.tr=tureck\u00fd
-languages.ko=k\u00f3rejsk\u00fd
-languages.no=n\u00f3rsky
-languages.el=gr\u00e9cky
-languages.nl=holandsk\u00fd
-languages.bg=bulharsk\u00fd
-languages.lv=loty\u0161sk\u00fd
-languages.cs=\u010desk\u00fd
languages.he=hebrejsk\u00fd
-languages.it=taliansky
-languages.lt=litovsk\u00fd
-languages.fr=franc\u00fazsky
-languages.zh=\u010d\u00ednsky
-languages.ru=rusk\u00fd
-languages.ro=rumunsk\u00fd
-languages.fi=f\u00ednsky
-languages.ar=arabsk\u00fd
+languages.sai=jazyk juhoamerick\u00fdch indi\u00e1nov
+languages.tl=tagalog\u010dina
+languages.tk=turkm\u00e9nsky
+languages.ti=tigrinyjsk\u00fd
+languages.th=thajsk\u00fd
+languages.tg=tad\u017eidsk\u00fd
+languages.te=telugsky
+languages.syr=s\u00fdrsky
+languages.ta=tamilsk\u00fd
+languages.gu=gud\u017earatsky
+languages.ine=indoeur\u00f3psky jazyk
+languages.gn=guaransky
+languages.sw=swahilsky
+languages.gl=galicijsky
languages.sv=\u0161v\u00e9dsky
-languages.pt=portugalsk\u00fd
-languages.pl=po\u013esk\u00fd
+languages.su=sundsky
+languages.st=sesothsky
+languages.sr=srbsk\u00fd
+languages.sq=alb\u00e1nsky
+languages.so=som\u00e1lsky
+languages.gd=\u0161k\u00f3tskou gael\u0161tinou
languages.sl=slovinsk\u00fd
+languages.ga=\u00edrsky
languages.sk=slovensk\u00fd
-languages.de=nemeck\u00fd
+languages.si=sinhal\u00e9zsky
+languages.sh=srbochorv\u00e1tsky
+languages.myn=jazyk mayov
+languages.fy=frizijsky
+languages.sd=sindhsky
+languages.cau=kaukazsk\u00fd jazyk
+languages.sa=sanskrtom
+languages.car=karibsk\u00fd
+languages.fr=franc\u00fazsky
+languages.sla=slovansk\u00fd jazyk
+languages.fo=faersky
+languages.ru=rusk\u00fd
+languages.cai=jazyk stredoamerick\u00fdch indi\u00e1nov
+languages.fi=f\u00ednsky
+languages.ro=rumunsk\u00fd
+languages.rm=r\u00e9torom\u00e1nsky
+languages.fa=perzsk\u00fd
+languages.eu=baskick\u00fd
languages.et=est\u00f3nsky
-languages.hu=ma\u010farsk\u00fd
languages.es=\u0161panielsky
+languages.eo=esperantsky
+languages.en=anglick\u00fd
+languages.el=gr\u00e9cky
+languages.pt=portugalsk\u00fd
+languages.ber=berbersk\u00fd
+languages.ps=pa\u0161t\u00fansky
+languages.de=nemeck\u00fd
+languages.pl=po\u013esk\u00fd
languages.da=d\u00e1nsky
-languages.hr=chorv\u00e1tsky
+languages.sux=sumersk\u00fd
+languages.cy=walesky
+languages.akk=akadsk\u00fd
+languages.pa=pand\u017e\u00e1bsky
+languages.cs=\u010desk\u00fd
+languages.or=urijsk\u00fd
+languages.ce=\u010de\u010densk\u00fd
+languages.ca=katal\u00e1nsky
+languages.oc=okcit\u00e1nsky
+languages.bs=bosniansky
+languages.br=bret\u00f3nsky
+languages.bo=tibetsk\u00fd
+languages.zh_Hans=\u010d\u00edn\u0161tina (zjednodu\u0161en\u00e1)
+languages.bn=beng\u00e1lsky
+languages.zh_Hant=\u010d\u00edn\u0161tina (tradi\u010dn\u00e1)
+languages.nv=jazyk navajov
+languages.bh=biharsk\u00fd
+languages.bg=bulharsk\u00fd
+languages.be=bielorusk\u00fd
+languages.no=n\u00f3rsky
+languages.nn=n\u00f3rsky (nynorsk)
+languages.nl=holandsk\u00fd
+languages.ba=ba\u0161k\u00edrsky
+languages.zu=zulu
+languages.sgn=znakov\u00e1 re\u010d
+languages.ain=ainsk\u00fd
+languages.az=azerbajd\u017eansk\u00fd
+languages.ne=nep\u00e1lsky
+languages.av=avarsk\u00fd
+languages.aus=austr\u00e1lsky jazyk
+languages.as=as\u00e1msky
+languages.ar=arabsk\u00fd
+languages.zh=\u010d\u00ednsky
+languages.zxx=bez jazykov\u00e9ho obsahu
+languages.my=burmsk\u00fd
+languages.am=amharsk\u00fd
+languages.nai=jazyk severoamerick\u00fdch indi\u00e1nov
+languages.paa=papu\u00e1nsky
+languages.mt=maltsk\u00fd
+languages.ms=malajsk\u00fd
+languages.mr=marathsky
+languages.af=africk\u00fd
+languages.haw=havajsk\u00fd
+languages.mn=mongolsk\u00fd
+languages.en_US=anglick\u00fd (USA)
+languages.ab=abch\u00e1zsky
+languages.ml=malajalamsky
+languages.mk=maced\u00f3nsky
+languages.egy=staroegyptsk\u00fd
+languages.tlh=klingonsk\u00fd
+languages.yi=jidi\u0161sky
+languages.gsw=nemeck\u00fd (\u0160vaj\u010diarsko)
+languages.bat=baltsk\u00fd jazyk
+languages.lv=loty\u0161sk\u00fd
+languages.dak=dakotsk\u00fd
+languages.lt=litovsk\u00fd
+languages.ban=balijsk\u00fd
+languages.lo=laosk\u00fd
+languages.ln=lingalsky
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sl.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sl.properties
index 991615e..e4081e8 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sl.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sl.properties
@@ -5,25 +5,85 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.INR=Indijski Rupi
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.CHF=\u0161vicarski frank
+currenciesDisplayName.AUD=avstralski dolar
+currenciesDisplayName.FJD=fid\u017eijski dolar
currenciesDisplayName.RUB=Ruska Rublja
-currenciesDisplayName.JPY=Japonski Jen
-currenciesDisplayName.BRL=Brazilski Real
-currenciesDisplayName.CNY=Kitajski Yuan Renminbi
+currenciesDisplayName.CZK=\u010de\u0161ka krona
+currenciesDisplayName.THB=tajski baht
+currenciesDisplayName.SEK=\u0161vedska krona
+currenciesDisplayName.HRK=hrva\u0161ka kuna
+currenciesDisplayName.PLN=poljski novi zlot
+currenciesDisplayName.SKK=slova\u0161ka krona
+currenciesDisplayName.MAD=maro\u0161ki dirham
+currenciesDisplayName.TWD=novi tajvanski dolar
+currenciesDisplayName.XXX=Neznana ali neveljavna valuta
+currenciesDisplayName.MYR=malezijski ringgit
+currenciesDisplayName.HUF=mad\u017earski forint
+currenciesDisplayName.BND=brunejski dolar
+currenciesDisplayName.UAH=ukrajinska grivna
+currenciesDisplayName.INR=Indijski Rupi
+currenciesDisplayName.AED=dirham Zdru\u017eenih Arabskih Emiratov
+currenciesDisplayName.SAR=saudski rial
+currenciesDisplayName.CAD=kanadski dolar
currenciesDisplayName.USD=Ameri\u0161ki Dolar
+currenciesDisplayName.BGN=bolgarski lev
+currenciesDisplayName.JPY=Japonski Jen
+currenciesDisplayName.GBP=Britanski Funt Sterling
+currenciesDisplayName.PKR=pakistanska rupija
+currenciesDisplayName.PHP=filipinski peso
+currenciesDisplayName.PEN=perujski novi sol
+currenciesDisplayName.FRF=francoski frank
+currenciesDisplayName.NOK=norve\u0161ka krona
currenciesDisplayName.EUR=Evro
+currenciesDisplayName.HKD=hongkon\u0161ki dolar
+currenciesDisplayName.IDR=indonezijska rupija
+currenciesDisplayName.ZAR=ju\u017enoafri\u0161ki rand
+currenciesDisplayName.SGD=singapurski dolar
+currenciesDisplayName.MXN=mehi\u0161ki peso
+currenciesDisplayName.TRY=nova tur\u0161ka lira
+currenciesDisplayName.CLP=\u010dilski peso
+currenciesDisplayName.COP=kolumbijski peso
+currenciesDisplayName.KRW=ju\u017enokorejski von
currenciesDisplayName.SIT=Slovenski tolar
-currenciesDisplayName.GBP=Britanski Funt Sterling
-shortMonths=jan®feb®mar®apr®maj®jun®jul®avg®sep®okt®nov®dec®®
-months=januar®februar®marec®april®maj®junij®julij®avgust®september®oktober®november®december®®
-shortWeekdays=®ned®pon®tor®sre®\u010det®pet®sob®
-weekdays=®nedelja®ponedeljek®torek®sreda®\u010detrtek®petek®sobota®
-firstDayOfWeek=mon
-eras=pr.n.\u0161.®n.\u0161.®
-ampms=dop.®pop.®
+currenciesDisplayName.EEK=estonska krona
+currenciesDisplayName.RSD=srbski dinar
+currenciesDisplayName.TRL=tur\u0161ka lira
+currenciesDisplayName.BRL=Brazilski Real
+currenciesDisplayName.DEM=nem\u0161ka marka
+currenciesDisplayName.VEB=venezuelski bolivar
+currenciesDisplayName.ARS=argentinski peso
+currenciesDisplayName.CNY=Kitajski Yuan Renminbi
+currenciesDisplayName.DKK=danska krone
+currenciesDisplayName.MTL=malte\u0161ka lira
+currenciesDisplayName.ILS=izraelski \u0161ekel
+currenciesDisplayName.VND=vientnamski dong
+currenciesDisplayName.BOB=bolivijski boliviano
+currenciesDisplayName.NZD=novozelandski dolar
+currenciesDisplayName.RON=romunski leu
+currenciesDisplayName.KES=kenijski \u0161iling
+currenciesDisplayName.LTL=litovski litas
+currenciesDisplayName.EGP=egiptovski funt
+currenciesSymbol.XXX=XXX
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aeavg\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januar\u00aefebruar\u00aemarec\u00aeapril\u00aemaj\u00aejunij\u00aejulij\u00aeavgust\u00aeseptember\u00aeoktober\u00aenovember\u00aedecember\u00ae\u00ae
+shortWeekdays=\u00aened\u00aepon\u00aetor\u00aesre\u00ae\u010det\u00aepet\u00aesob\u00ae
+weekdays=\u00aenedelja\u00aeponedeljek\u00aetorek\u00aesreda\u00ae\u010detrtek\u00aepetek\u00aesobota\u00ae
+eras=pr.n.\u0161.\u00aepo Kr.\u00ae
+ampms=dop.\u00aepop.\u00ae
shortDateFormat=d.M.yy
mediumDateFormat=d.M.yyyy
longDateFormat=dd. MMMM yyyy
@@ -32,19 +92,20 @@ shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
longTimeFormat=H:mm:ss z
fullTimeFormat=H:mm:ss z
+zoneStrings=Europe_Eastern\u00aeVzhodnoevropski \u010das\u00ae\u00aeVzhodnoevropski poletni \u010das\u00ae\u00ae\u00a9Europe_Central\u00aeSrednjeevropski \u010das\u00ae\u00aeSrednjeevropski poletni \u010das\u00ae\u00ae\u00a9
territories.TL=Vzhodni Timor
territories.TK=Tokelau
territories.TJ=Tad\u017eikistan
territories.TH=Tajska
territories.TG=Togo
-territories.TF=Francoski ju\u017eni teritorij
+territories.TF=Francosko ju\u017eno ozemlje
territories.GY=Gvajana
territories.TD=\u010cad
territories.TC=Oto\u010dji Turks in Caicos
territories.GW=Gvineja Bissau
territories.GU=Guam
territories.GT=Gvatemala
-territories.GS=Ju\u017ena Georgija in Ju\u017eni Sandwich Islands
+territories.GS=J. Georgija in otoki J. Sandwich
territories.GR=Gr\u010dija
territories.GQ=Ekvatorialna Gvineja
territories.GP=Guadeloupe
@@ -56,50 +117,52 @@ territories.GL=Grenlandija
territories.SV=Salvador
territories.062=Ju\u017eno-centralna Azija
territories.ST=Sao Tome in Principe
-territories.061=Polinezija
territories.GI=Gibraltar
+territories.061=Polinezija
territories.GH=Gana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Francoska Gvajana
territories.GE=Gruzija
territories.SO=Somalija
territories.GD=Grenada
territories.SN=Senegal
territories.SM=San Marino
-territories.GB=Velika Britanija
+territories.GB=Zdru\u017eeno kraljestvo (V. Britanija in S. Irska)
territories.SL=Sierra Leone
territories.GA=Gabon
territories.SK=Slova\u0161ka
-territories.SJ=Svalbard in Jan Mayen
+territories.SJ=Svalbard in otoki Jan Mayen
territories.SI=Slovenija
territories.SH=Sveta Helena
territories.SG=Singapur
territories.SE=\u0160vedska
territories.SD=Sudan
territories.SC=Sej\u0161eli
-territories.SB=Salomonovo oto\u010dje
+territories.SB=Salomonovi otoki
territories.SA=Saudova Arabija
territories.FR=Francija
+territories.FO=Ferski otoki
territories.057=Micronezija
-territories.FO=Fererski otoki
territories.FM=Mikronezija
territories.RW=Ruanda
territories.054=Melanezija
-territories.053=Avstralija i Nova Zelandija
-territories.FK=Falklandski (Malvinski) otoki
-territories.RU=Ruska federacija
+territories.FK=Falklandsko oto\u010dje
+territories.053=Avstralija in Nova Zelandija
+territories.RU=Rusija
territories.FJ=Fid\u017ei
territories.FI=Finska
+territories.RS=Srbija
territories.RO=Romunija
territories.RE=Reunion
territories.ET=Etiopija
territories.ES=\u0160panija
territories.ER=Eritreja
-territories.833=Otok Man
+territories.QU=Evropska unija
territories.EH=Zahodna Sahara
territories.EG=Egipt
-territories.830=Kanalski otoki
territories.EE=Estonija
+territories.830=Kanalski otoki
territories.QO=Ostala oceanija
territories.EC=Ekvador
territories.DZ=Al\u017eirija
@@ -107,9 +170,10 @@ territories.QA=Katar
territories.039=Ju\u017ena Evropa
territories.DO=Dominikanska republika
territories.PY=Paragvaj
-territories.035=Jugovzhodna Azija
territories.DM=Dominika
+territories.035=Jugovzhodna Azija
territories.PW=Palau
+territories.034=Ju\u017ena Azija
territories.DK=Danska
territories.DJ=D\u017eibuti
territories.PT=Portugalska
@@ -118,7 +182,7 @@ territories.030=Vzhodna Azija
territories.PR=Portoriko
territories.DE=Nem\u010dija
territories.PN=Pitcairn
-territories.PM=Saint Pierre in Miquelon
+territories.PM=St. Pierre in Miquelon
territories.PL=Poljska
territories.PK=Pakistan
territories.PH=Filipini
@@ -139,8 +203,8 @@ territories.CN=Kitajska
territories.CM=Kamerun
territories.CL=\u010cile
territories.CK=Cookovi otoki
-territories.CI=Slonoko\u0161\u010dena obala
territories.021=Severna Amerika
+territories.CI=Slonoko\u0161\u010dena obala
territories.CH=\u0160vica
territories.CG=Kongo
territories.CF=Centralnoafri\u0161ka republika
@@ -148,33 +212,36 @@ territories.CD=Demokrati\u010dna republika Kongo
territories.CC=Kokosovi otoki
territories.OM=Oman
territories.CA=Kanada
+territories.419=Latinska Amerika in Karibsko oto\u010dje
territories.BZ=Belize
territories.BY=Belorusija
territories.BW=Bocvana
-territories.BV=Otok Bouvet
+territories.BV=Bouvetov otok
territories.BT=Butan
territories.BS=Bahami
territories.BR=Brazilija
territories.019=Amerike
territories.018=Ju\u017ena Afrika
territories.NZ=Nova Zelandija
-territories.BO=Bolivija
territories.017=Centralna Afrika
+territories.BO=Bolivija
territories.BN=Brunej
-territories.BM=Bermuda
territories.015=Severna Afrika
+territories.BM=Bermudi
territories.014=Vzhodna Afrika
-territories.013=Centralna Amerika
+territories.013=Srednja Amerika
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Zahodna Afrika
+territories.BI=Burundi
+territories.172=Skupnost neodvisnih dr\u017eav
territories.BH=Bahrajn
territories.NR=Nauru
territories.BG=Bolgarija
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgija
+territories.ZZ=Neznana ali neveljavna regija
territories.NO=Norve\u0161ka
territories.BD=Banglade\u0161
territories.BB=Barbados
@@ -183,10 +250,10 @@ territories.NL=Nizozemska
territories.BA=Bosna in Hercegovina
territories.NI=Nikaragva
territories.NG=Nigerija
-territories.NF=Otok Norfolk
+territories.NF=Norfol\u0161ki otok
territories.AZ=Azerbajd\u017ean
territories.NE=Niger
-territories.AX=Alandski otoki
+territories.AX=Oto\u010dje Aland
territories.NC=Nova Kaledonija
territories.AW=Aruba
territories.ZM=Zambija
@@ -195,15 +262,15 @@ territories.AU=Avstralija
territories.AT=Avstrija
territories.AS=Ameri\u0161ka Samoa
territories.AR=Argentina
-territories.009=Oceanija
territories.AQ=Antarktika
+territories.009=Oceanija
territories.MZ=Mozambik
territories.AO=Angola
territories.MY=Malezija
territories.AN=Nizozemski Antili
territories.MX=Mehika
-territories.005=Ju\u017ena Amerika
territories.AM=Armenija
+territories.005=Ju\u017ena Amerika
territories.MW=Malavi
territories.AL=Albanija
territories.MV=Maldivi
@@ -211,8 +278,8 @@ territories.ZA=Ju\u017ena Afrika
territories.MU=Mauritius
territories.002=Afrika
territories.MT=Malta
-territories.001=Svet
territories.AI=Angvila
+territories.001=Svet
territories.MS=Montserrat
territories.MR=Mavretanija
territories.AG=Antigva in Barbuda
@@ -223,19 +290,20 @@ territories.AE=Zdru\u017eeni arabski emirati
territories.MO=Makao S.A.R. Kitajske
territories.AD=Andora
territories.MN=Mongolija
-territories.MM=Myanmar
+territories.MM=Mjanmar
territories.ML=Mali
territories.MK=Republika Makedonija
territories.YT=Mayotte
territories.MH=Marshallovi otoki
territories.MG=Madagaskar
-territories.MD=Republika Moldova
+territories.ME=\u010crna gora
+territories.MD=Moldavija
territories.MC=Monako
territories.MA=Maroko
territories.YE=Jemen
territories.LY=Libija
territories.LV=Latvija
-territories.155=Zapadna Evropa
+territories.155=Zahodna Evropa
territories.LU=Luxemburg
territories.154=Severna Evropa
territories.LT=Litva
@@ -244,7 +312,7 @@ territories.LR=Liberija
territories.151=Vzhodna Evropa
territories.150=Evropa
territories.LK=\u0160rilanka
-territories.LI=Liechtenstein
+territories.LI=Lihten\u0161tajn
territories.LC=Saint Lucia
territories.LB=Libanon
territories.LA=Ljudska demokrati\u010dna republika Laos
@@ -252,6 +320,7 @@ territories.KZ=Kazahstan
territories.KY=Kajmanski otoki
territories.KW=Kuvajt
territories.145=Zahodna Azija
+territories.143=Osrednja Azija
territories.142=Azija
territories.KR=Ju\u017ena Koreja
territories.KP=Severna Koreja
@@ -264,12 +333,13 @@ territories.KG=Kirgizistan
territories.KE=Kenija
territories.WF=Wallis in Futuna
territories.JP=Japonska
-territories.JO=Jordan
+territories.JO=Jordanija
territories.JM=Jamajka
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
-territories.VI=Ameri\u0161ki Devi\u0161ki otoki
-territories.VG=Britanski Devi\u0161ki otoki
+territories.VI=Devi\u0161ki otoki (ZDA)
+territories.VG=Devi\u0161ki otoki (britanski)
territories.VE=Venezuela
territories.VC=Saint Vincent in Grenadine
territories.VA=Vatikan
@@ -278,14 +348,15 @@ territories.IS=Islandija
territories.IR=Iran
territories.IQ=Irak
territories.UZ=Uzbekistan
-territories.IO=Britanska Indija
+territories.IO=Britanski teritorij Indijskega oceana
territories.UY=Urugvaj
territories.IN=Indija
+territories.IM=Otok Man
territories.IL=Izrael
territories.US=Zdru\u017eene dr\u017eave Amerike
territories.IE=Irska
territories.ID=Indonezija
-territories.UM=Ameri\u0161ki manj\u0161i oddaljeni otoki
+territories.UM=Druga ameri\u0161ka ozemlja v Tihem oceanu
territories.UG=Uganda
territories.UA=Ukrajina
territories.HU=Mad\u017earska
@@ -293,7 +364,7 @@ territories.HT=Haiti
territories.HR=Hrva\u0161ka
territories.TZ=Tanzanija
territories.HN=Honduras
-territories.HM=Heardov otok in McDonaldovi otoki
+territories.HM=Otoka Heard in Mc Donald
territories.TW=Tajvan
territories.TV=Tuvalu
territories.HK=Hong Kong S.A.R. Kitajske
@@ -302,34 +373,125 @@ territories.TR=Tur\u010dija
territories.TO=Tonga
territories.TN=Tunizija
territories.TM=Turkmenistan
-languages.ja=Japon\u0161\u010dina
-languages.en=Angle\u0161\u010dina
-languages.tr=Tur\u0161\u010dina
-languages.ko=Korej\u0161\u010dina
-languages.no=Norve\u0161\u010dina
-languages.el=Gr\u0161\u010dina
-languages.nl=Nizozem\u0161\u010dina
-languages.bg=Bolgar\u0161\u010dina
-languages.hi=Hinduj\u0161\u010dina
-languages.lv=Leton\u0161\u010dina
-languages.cs=\u010ce\u0161\u010dina
-languages.he=Hebrej\u0161\u010dina
-languages.it=Italijan\u0161\u010dina
-languages.lt=Litov\u0161\u010dina
-languages.fr=Franco\u0161\u010dina
-languages.zh=Kitaj\u0161\u010dina
-languages.ru=Ru\u0161\u010dina
-languages.ro=Romun\u0161\u010dina
-languages.fi=Fin\u0161\u010dina
-languages.ar=Arab\u0161\u010dina
-languages.sv=\u0160ved\u0161\u010dina
-languages.pt=Portugal\u0161\u010dina
-languages.pl=Polj\u0161\u010dina
-languages.sl=Sloven\u0161\u010dina
-languages.sk=Slova\u0161\u010dina
-languages.de=Nem\u0161\u010dina
-languages.et=Eston\u0161\u010dina
-languages.hu=Mad\u017ear\u0161\u010dina
-languages.es=\u0160pan\u0161\u010dina
-languages.da=Dan\u0161\u010dina
-languages.hr=Hrva\u0161\u010dina
+languages.es=\u0161pan\u0161\u010dina
+languages.ku=kurd\u0161\u010dina
+languages.eo=esperanto
+languages.ks=ka\u0161mir\u0161\u010dina
+languages.en=angle\u0161\u010dina
+languages.el=gr\u0161\u010dina
+languages.ko=korej\u0161\u010dina
+languages.kn=kanada
+languages.km=kambo\u0161\u010dina
+languages.wo=volof\u0161\u010dina
+languages.ka=gruzin\u0161\u010dina
+languages.zh_Hans=poenostavljena kitaj\u0161\u010dina
+languages.zh_Hant=tradicionalna kitaj\u0161\u010dina
+languages.jv=javan\u0161\u010dina
+languages.fil=tagalog\u0161\u010dina
+languages.pt=portugal\u0161\u010dina
+languages.ps=pa\u0161tu
+languages.de=nem\u0161\u010dina
+languages.pl=polj\u0161\u010dina
+languages.da=dan\u0161\u010dina
+languages.tlh=klingon\u0161\u010dina
+languages.ja=japon\u0161\u010dina
+languages.vi=vietnam\u0161\u010dina
+languages.cy=vali\u017ean\u0161\u010dina
+languages.pa=pand\u017eab\u0161\u010dina
+languages.cs=\u010de\u0161\u010dina
+languages.it=italijan\u0161\u010dina
+languages.is=island\u0161\u010dina
+languages.uz=uzbekistan\u0161\u010dina
+languages.or=orij\u0161\u010dina
+languages.ur=urdu
+languages.ca=katalon\u0161\u010dina
+languages.ie=jeziki
+languages.id=indonezij\u0161\u010dina
+languages.uk=ukrajin\u0161\u010dina
+languages.ia=interlingua
+languages.oc=okcitan\u0161\u010dina
+languages.ug=ujgur\u0161\u010dina
+languages.hy=armen\u0161\u010dina
+languages.bs=bosan\u0161\u010dina
+languages.br=breton\u0161\u010dina
+languages.hu=mad\u017ear\u0161\u010dina
+languages.pt_PT=iberska portugal\u0161\u010dina
+languages.bn=bengal\u0161\u010dina
+languages.hr=hrva\u0161\u010dina
+languages.tw=tvi (dialekt jezika akan)
+languages.bh=bihari
+languages.bg=bolgar\u0161\u010dina
+languages.no=norve\u0161\u010dina
+languages.be=beloru\u0161\u010dina
+languages.nn=novonorve\u0161\u010dina
+languages.hi=hindij\u0161\u010dina
+languages.tr=tur\u0161\u010dina
+languages.nl=nizozem\u0161\u010dina
+languages.zu=zuluj\u0161\u010dina
+languages.ba=ba\u0161kir\u0161\u010dina
+languages.he=hebrej\u0161\u010dina
+languages.tl=tagalog
+languages.tk=turkmen\u0161\u010dina
+languages.ne=nepal\u0161\u010dina
+languages.az=azerbajd\u017ean\u0161\u010dina
+languages.ti=tigrej\u0161\u010dina
+languages.ay=ajmara
+languages.th=taj\u0161\u010dina
+languages.en_US=angle\u0161\u010dina (ZDA)
+languages.te=telugij\u0161\u010dina
+languages.zh=kitaj\u0161\u010dina
+languages.as=asam\u0161\u010dina
+languages.ar=arab\u0161\u010dina
+languages.ta=tamil\u0161\u010dina
+languages.gu=gud\u017earati
+languages.my=burman\u0161\u010dina
+languages.am=amhar\u0161\u010dina
+languages.mt=malte\u0161\u010dina
+languages.ms=malaj\u0161\u010dina
+languages.gn=gvaranij\u0161\u010dina
+languages.sw=svahili
+languages.mr=mahara\u0161\u010dina
+languages.sv=\u0161ved\u0161\u010dina
+languages.gl=galicij\u0161\u010dina
+languages.su=sundan\u0161\u010dina
+languages.af=afrikan\u0161\u010dina
+languages.st=sesoto
+languages.mn=mongol\u0161\u010dina
+languages.sr=srb\u0161\u010dina
+languages.sq=alban\u0161\u010dina
+languages.ml=malajalam\u0161\u010dina
+languages.ab=abha\u0161\u010dina
+languages.mk=makedon\u0161\u010dina
+languages.aa=afar
+languages.so=somal\u0161\u010dina
+languages.gd=\u0161kotska gal\u0161\u010dina
+languages.sl=sloven\u0161\u010dina
+languages.sk=slova\u0161\u010dina
+languages.ga=ir\u0161\u010dina
+languages.si=singal\u0161\u010dina
+languages.sh=srbohrva\u0161\u010dina
+languages.yi=jidi\u0161
+languages.sd=sindi
+languages.fy=frizij\u0161\u010dina
+languages.sa=sanskrt
+languages.fr=franco\u0161\u010dina
+languages.lv=leton\u0161\u010dina
+languages.lt=litov\u0161\u010dina
+languages.fo=fer\u0161\u010dina
+languages.ru=ru\u0161\u010dina
+languages.lo=lao\u0161\u010dina
+languages.ln=lingala
+languages.fi=fin\u0161\u010dina
+languages.ro=romun\u0161\u010dina
+languages.rm=reto-roman\u0161\u010dina
+languages.fa=perzij\u0161\u010dina
+languages.und=Neznan ali neveljaven jezik
+languages.lb=luksembur\u0161\u010dina
+languages.la=latin\u0161\u010dina
+languages.xh=xhosa
+languages.en_GB=angle\u0161\u010dina (VB)
+languages.eu=baskov\u0161\u010dina
+languages.ky=kirgizij\u0161\u010dina
+languages.et=eston\u0161\u010dina
+variants.AREVELA=armenska (vzhodna)
+variants.AREVMDA=armenska (zahodna)
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so.properties
index 6928b1f..875aaae 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so.properties
@@ -5,42 +5,46 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+decimalSeparator=.
+groupingSeparator=,
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.INR=Indian Rupee
-currenciesDisplayName.RUB=Russian Ruble
currenciesDisplayName.JPY=Japanese Yen
+currenciesDisplayName.RUB=Russian Ruble
currenciesDisplayName.BRL=Brazilian Real
currenciesDisplayName.CNY=Chinese Yuan Renminbi
-currenciesDisplayName.USD=US Dollar
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.ETB=Itoobiya Bir
-currenciesDisplayName.SOS=Somalia Schilling
-currenciesDisplayName.DJF=Jabuuti Faran
+currenciesDisplayName.USD=Doollar maraykan
+currenciesDisplayName.XXX=Lacag aan la qoon ama aan saxnayn
+currenciesDisplayName.EUR=Yuuroo
+currenciesDisplayName.ETB=Birta Itoobbiya
+currenciesDisplayName.SOS=Shilin soomaali
currenciesDisplayName.GBP=British Pound Sterling
+currenciesDisplayName.DJF=Faran Jabbuuti
+currenciesSymbol.SOS=$
currenciesSymbol.KES=Ksh
-shortMonths=Kob®Lab®Sad®Afr®Sha®Lix®Tod®Sid®Sag®Tob®KIT®LIT®®
-months=Bisha Koobaad®Bisha Labaad®Bisha Saddexaad®Bisha Afraad®Bisha Shanaad®Bisha Lixaad®Bisha Todobaad®Bisha Sideedaad®Bisha Sagaalaad®Bisha Tobnaad®Bisha Kow iyo Tobnaad®Bisha Laba iyo Tobnaad®®
-shortWeekdays=®Axa®Isn®Sal®Arb®Kha®Jim®Sab®
-weekdays=®Axad®Isniin®Salaaso®Arbaco®Khamiis®Jimco®Sabti®
-firstDayOfWeek=sat
-eras=Ciise ka hor®Ciise ka dib®
-ampms=sn®gn®
+shortMonths=Kob\u00aeLab\u00aeSad\u00aeAfr\u00aeSha\u00aeLix\u00aeTod\u00aeSid\u00aeSag\u00aeTob\u00aeKIT\u00aeLIT\u00ae\u00ae
+months=Bisha Koobaad\u00aeBisha Labaad\u00aeBisha Saddexaad\u00aeBisha Afraad\u00aeBisha Shanaad\u00aeBisha Lixaad\u00aeBisha Todobaad\u00aeBisha Sideedaad\u00aeBisha Sagaalaad\u00aeBisha Tobnaad\u00aeBisha Kow iyo Tobnaad\u00aeBisha Laba iyo Tobnaad\u00ae\u00ae
+shortWeekdays=\u00aeAxa\u00aeIsn\u00aeSal\u00aeArb\u00aeKha\u00aeJim\u00aeSab\u00ae
+weekdays=\u00aeAxad\u00aeIsniin\u00aeSalaaso\u00aeArbaco\u00aeKhamiis\u00aeJimco\u00aeSabti\u00ae
+eras=Ciise ka hor\u00aeCiise ka dib\u00ae
+ampms=sn\u00aegn\u00ae
shortDateFormat=dd/MM/yy
mediumDateFormat=dd-MMM-yyyy
longDateFormat=dd MMMM yyyy
fullDateFormat=EEEE, MMMM dd, yyyy
shortTimeFormat=h:mm a
mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.AU=Awstraaliya
territories.TD=Jaad
territories.AT=Osteeriya
territories.MZ=Musambiig
territories.AO=Angoola
territories.MX=Meksiko
-territories.AM=Armeeniya
-territories.GR=Giriigga
territories.MW=Malaawi
+territories.GR=Giriigga
+territories.AM=Armeeniya
territories.ZA=Koonfur Afrika
territories.MV=Maaldiqeen
territories.SY=Suuriya
@@ -69,6 +73,7 @@ territories.LS=Losooto
territories.LR=Laybeeriya
territories.RU=Ruush
territories.FI=Fiinlaand
+territories.014=Afrikada Bari
territories.LK=Siirilaanka
territories.RO=Rumaaniya
territories.LB=Lubnaan
@@ -80,29 +85,32 @@ territories.KR=Kuuriyada Koonfureed
territories.KP=Kuuriyada Waqooyi
territories.EG=Masar
territories.KH=Kamboodiya
+territories.EC=Ikwadoor
territories.KE=Kiiniya
territories.QA=Qadar
-territories.DK=Danmaark
territories.JP=Jabbaan
+territories.DK=Danmaark
territories.PT=Bortuqaal
-territories.DJ=Jabuuti
territories.JO=Urdun
+territories.DJ=Jabuuti
territories.JM=Jameyka
territories.DE=Jarmal
+territories.151=Yurubta Bari
territories.PL=Booland
territories.PK=Bakistaan
territories.VN=Fiyetnaam
territories.PH=Filibiin
+territories.CZ=Jekoslafaakiya
territories.VE=Fenisuweela
territories.CU=Kuuba
territories.VA=Faatikaan
territories.IT=Talyaani
-territories.CN=Shiinaha
territories.IS=Iislaand
-territories.CM=Kameruun
+territories.CN=Shiinaha
territories.IR=Iiraan
-territories.CL=Jili
+territories.CM=Kameruun
territories.IQ=Ciraaq
+territories.CL=Jili
territories.IN=Hindiya
territories.CH=Swiiserlaand
territories.IL=Israa\u02bciil
@@ -119,29 +127,133 @@ territories.HR=Korweeshiya
territories.TZ=Tansaaniya
territories.BJ=Beniin
territories.BH=Baxrayn
-territories.BE=Beljiyam
+territories.ZZ=Far aan la aqoon amase aan saxnayn
territories.NO=Noorweey
+territories.BE=Beljiyam
territories.BD=Bangaala-Deesh
territories.ZW=Simbaabwe
territories.TR=Turki
territories.BB=Baarbadoos
territories.BA=Boosniya Heersigoviina
+territories.TO=Tonga
territories.TN=Tuniisiya
territories.NI=Nikaraaguwa
+territories.030=Aasiyada Bari
territories.NG=Nayjeeriya
territories.ZM=Saambiya
territories.TH=Taylaand
territories.TG=Toogo
territories.NA=Namiibiya
-languages.zh=Chinese
-languages.en=English
-languages.so=Soomaali
-languages.ru=Russian
+languages.es=Isbaanish
+languages.ku=Kurdishka
+languages.eo=Isberento
+languages.en=Ingiriisi
+languages.el=Giriik
+languages.ko=Kuuriyaan
+languages.kn=Kannadays
+languages.km=Kamboodhian
+languages.ka=Joorijiyaan
+languages.jv=Jafaaniis
+languages.fil=Tagalog
+languages.pt=Boortaqiis
+languages.ps=Bashtuu
+languages.de=Jarmal
+languages.pl=Boolish
+languages.da=Danmarkays
+languages.tlh=Kiligoon
+languages.ja=Jabbaaniis
+languages.vi=Fiitnaamays
+languages.cy=Welsh
+languages.pa=Bunjaabi
+languages.cs=Jeeg
+languages.it=Talyaani
+languages.es_ES=Isbaanish (Isbayn)
+languages.is=Ayslandays
+languages.uz=Usbakis
+languages.or=Oriya
+languages.ur=Urduu
+languages.ca=Katalaan
+languages.ie=Interlingue
+languages.id=Indunuusiyaan
+languages.es_419=Isbaanishka Laatiin Ameerika
+languages.uk=Yukreeniyaan
+languages.ia=Interlinguwa
+languages.oc=Okitaan
+languages.ug=UIGHUR
+languages.hy=Armeeniyaan
+languages.bs=Boosniya
+languages.br=Bereton
+languages.hu=Hangariyaan
+languages.pt_PT=Boortaqiis (Boortuqaal)
+languages.bn=Bangaali
+languages.fr_CH=Faransiis (Iswiiserlaand)
+languages.hr=Koro'eeshiyaan
+languages.tw=Tiwiyan
+languages.bh=Bixaari
+languages.bg=Bulgeeriyaan
+languages.de_CH=Jarmal (Iswiiserlaand)
+languages.no=Af Noorwiijiyaan
+languages.be=Beleruusiyaan
+languages.nn=Nowrwejiyan (naynoroski)
languages.hi=Hindi
-languages.ar=Arabic
-languages.it=Italian
-languages.fr=French
-languages.de=German
-languages.es=Spanish
-languages.ja=Japanese
-languages.pt=Portuguese
+languages.tr=Turkish
+languages.nl=Holandays
+languages.zu=Zuulu
+languages.he=Cibri
+languages.tk=Turkumaanish
+languages.ne=Nebaali
+languages.az=Azerbaijan
+languages.ti=Tigrinya
+languages.th=Taaylandays
+languages.en_US=Ingiriisi (Maraykan)
+languages.te=Teluugu
+languages.zh=Jayniis
+languages.as=Asaamiis
+languages.ar=Carabi
+languages.ta=Tamiil
+languages.gu=Gujaraati
+languages.am=Amhari
+languages.mt=Maltiis
+languages.ms=Malaay
+languages.gn=Guraani
+languages.sw=Sawaaxili
+languages.mr=Maarati
+languages.sv=Swiidhis
+languages.gl=Galiisiyaan
+languages.su=Suudaaniis
+languages.af=Afrikaanays
+languages.st=Sesooto
+languages.mn=Mangooli
+languages.sr=Seerbiyaan
+languages.sq=Albaaniyaan
+languages.ml=Malayalam
+languages.mk=Masadooniyaan
+languages.so=Soomaali
+languages.gd=Iskot Giilik
+languages.sl=Islofeeniyaan
+languages.sk=Isloofaak
+languages.ga=Ayrish
+languages.si=Sinhaleys
+languages.sh=Serbiyaan
+languages.pt_BR=Boortaqiiska Baraasiil
+languages.yi=Yadhish
+languages.sd=SINDHI
+languages.fy=Firiisiyan Galbeed
+languages.sa=Sanskrit
+languages.fr=Faransiis
+languages.lv=Laatfiyaan
+languages.lt=Lituwaanays
+languages.fo=Farowsi
+languages.ru=Ruush
+languages.lo=Laothian
+languages.ln=Lingala
+languages.fi=Fiinlaandees
+languages.ro=Romanka
+languages.fa=Faarisi
+languages.und=Af aan la aqoon ama aan sax ahayn
+languages.la=Laatiin
+languages.xh=Hoosta
+languages.en_GB=Ingiriisi (Boqortooyada Midowday)
+languages.eu=Basquu
+languages.ky=Kirgiis
+languages.et=Istooniyaan
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_DJ.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_DJ.properties
index e85acd3..b44d384 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_DJ.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_DJ.properties
@@ -5,6 +5,5 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesSymbol.DJF=$
-currenciesSymbol.USD=US$
+currenciesSymbol.SOS=SOS
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_ET.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_ET.properties
index 1838857..2a04c49 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_ET.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_ET.properties
@@ -5,6 +5,5 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesSymbol.ETB=$
-currenciesSymbol.USD=US$
+currenciesSymbol.SOS=SOS
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_KE.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_KE.properties
index bd7eb64..6ec20ad 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_KE.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_so_KE.properties
@@ -5,4 +5,4 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.SOS=SOS
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sq.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sq.properties
index e8e85c8..06a677f 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sq.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sq.properties
@@ -7,23 +7,25 @@
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
currenciesDisplayName.INR=Rupee indiane
currenciesDisplayName.JPY=Jeni Japonez
currenciesDisplayName.RUB=Rubla ruse
+currenciesDisplayName.BRL=Real Brazilian
currenciesDisplayName.CNY=Renminbi(Yuan) Kinez
-currenciesDisplayName.GBP=Paund Sterlina Britanike
-currenciesDisplayName.EUR=Euro
currenciesDisplayName.USD=Dollar amerikan
-currenciesDisplayName.BRL=Real Brazilian
+currenciesDisplayName.XXX=Unknown or Invalid Currency
+currenciesDisplayName.EUR=Euro
+currenciesDisplayName.GBP=Paund Sterlina Britanike
currenciesSymbol.ALL=Lek
-shortMonths=Jan®Shk®Mar®Pri®Maj®Qer®Kor®Gsh®Sht®Tet®N\u00ebn®Dhj®®
-months=janar®shkurt®mars®prill®maj®qershor®korrik®gusht®shtator®tetor®n\u00ebntor®dhjetor®®
-shortWeekdays=®Die®H\u00ebn®Mar®M\u00ebr®Enj®Pre®Sht®
-weekdays=®e diel®e h\u00ebn\u00eb®e mart\u00eb®e m\u00ebrkur\u00eb®e enjte®e premte®e shtun\u00eb®
-firstDayOfWeek=mon
-eras=p.e.r.®n.e.r.®
-ampms=PD®MD®
+currenciesSymbol.XXX=XXX
+shortMonths=Jan\u00aeShk\u00aeMar\u00aePri\u00aeMaj\u00aeQer\u00aeKor\u00aeGsh\u00aeSht\u00aeTet\u00aeN\u00ebn\u00aeDhj\u00ae\u00ae
+months=janar\u00aeshkurt\u00aemars\u00aeprill\u00aemaj\u00aeqershor\u00aekorrik\u00aegusht\u00aeshtator\u00aetetor\u00aen\u00ebntor\u00aedhjetor\u00ae\u00ae
+shortWeekdays=\u00aeDie\u00aeH\u00ebn\u00aeMar\u00aeM\u00ebr\u00aeEnj\u00aePre\u00aeSht\u00ae
+weekdays=\u00aee diel\u00aee h\u00ebn\u00eb\u00aee mart\u00eb\u00aee m\u00ebrkur\u00eb\u00aee enjte\u00aee premte\u00aee shtun\u00eb\u00ae
+eras=p.e.r.\u00aen.e.r.\u00ae
+ampms=PD\u00aeMD\u00ae
shortDateFormat=yy-MM-dd
mediumDateFormat=yyyy-MM-dd
longDateFormat=dd MMMM yyyy
@@ -32,6 +34,7 @@ shortTimeFormat=h.mm.a
mediumTimeFormat=h:mm:ss.a
longTimeFormat=h.mm.ss.a z
fullTimeFormat=h.mm.ss.a z
+zoneStrings=Moscow\u00aeOra standarde e Mosk\u00ebs\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Central\u00aeOra qendrore evropiane\u00ae\u00ae\u00ae\u00ae\u00a9Europe_Eastern\u00aeOra lindore evropiane\u00ae\u00ae\u00ae\u00ae\u00a9
territories.TJ=Taxhikistan
territories.TH=Tajland\u00eb
territories.TG=Togo
@@ -42,16 +45,16 @@ territories.GT=Guatemal\u00eb
territories.GR=Greqi
territories.GQ=Guineja Ekuatoriale
territories.SZ=Svaziland\u00eb
-territories.GN=Guine
territories.SY=Siri
+territories.GN=Guine
territories.GM=Gambi
territories.ST=Sao Tome e Prinsipe
territories.GH=Gan\u00eb
territories.GE=Gjeorgji
territories.SO=Somali
territories.GB=Mbret\u00ebria e Bashkuar
-territories.GA=Gjabon
territories.SL=Siera Leone
+territories.GA=Gjabon
territories.SK=Sllovaki
territories.SI=Slloveni
territories.SG=Singapor
@@ -62,8 +65,8 @@ territories.SA=Arabia Saudite
territories.FR=Franc\u00eb
territories.FM=Mikronezi
territories.RW=Ruanda
-territories.FJ=Fixhi
territories.RU=Rusi
+territories.FJ=Fixhi
territories.FI=Finland\u00eb
territories.RO=Rumani
territories.ET=Etiopi
@@ -104,36 +107,38 @@ territories.BY=Bjellorusi
territories.BW=Botsvana
territories.BT=Butan
territories.BR=Brazili
-territories.BO=Bolivi
territories.NZ=Zelanda e Re
+territories.BO=Bolivi
territories.BN=Brunej
territories.BH=Bahrein
territories.BG=Bullgari
territories.BE=Belgjik\u00eb
+territories.ZZ=Rajon i panjohur ose i pavlefsh\u00ebm
territories.NO=Norvegji
territories.ZW=Zimbabve
-territories.BA=Bosnja dhe Hercegovina
territories.NL=Vendet e Ul\u00ebta
+territories.BA=Bosnja dhe Hercegovina
territories.NI=Nikaragua
territories.NG=Nigeri
territories.AZ=Azerbajxhan
+territories.AX=Ishujt Aland
territories.ZM=Zambi
-territories.NA=Namibi
territories.AU=Australi
+territories.NA=Namibi
territories.AT=Austri
territories.AR=Argjentin\u00eb
-territories.AO=Angol\u00eb
territories.MZ=Mozambik
+territories.AO=Angol\u00eb
territories.MY=Malajzi
-territories.AM=Armeni
territories.MX=Meksik\u00eb
-territories.AL=Shqip\u00ebria
+territories.AM=Armeni
territories.MW=Malavi
+territories.AL=Shqip\u00ebria
territories.MV=Maldivit
territories.ZA=Afrika e Jugut
territories.MT=Malt\u00eb
-territories.AG=Antigua e Barbuda
territories.MR=Mauritani
+territories.AG=Antigua e Barbuda
territories.AF=Afganistan
territories.AE=Emiratet Arabe te Bashkuara
territories.AD=Andorr\u00eb
@@ -185,16 +190,112 @@ territories.TZ=Tanzani
territories.TW=Tajvan
territories.TT=Trinidad e Tobago
territories.TR=Turqi
+territories.TO=Tonga
territories.TN=Tunisi
-languages.zh=Kineze
-languages.sq=shqipe
+languages.es=Spanjisht
+languages.ku=Kurd
+languages.eo=Esperanto
languages.en=Anglisht
-languages.ru=Rusisht
+languages.el=Greqisht
+languages.ko=Korean\u00e7e
+languages.kn=Kanada
+languages.km=Kamboxhiane
+languages.ka=Gjeorgjisht
+languages.jv=Javanisht
+languages.fil=Tagalogisht
+languages.pt=Portugeze
+languages.ps=Pashto
+languages.de=Gjermanisht
+languages.pl=Polonisht
+languages.da=Danisht
+languages.tlh=Klingon
+languages.ja=Japanisht
+languages.vi=Vietnamisht
+languages.cy=Uellsisht
+languages.pa=Punxhabi
+languages.cs=\u00c7ekisht
+languages.it=Italisht
+languages.is=Islandisht
+languages.uz=Uzbekistanisht
+languages.or=Orija
+languages.ur=Urdu
+languages.ca=Katalonisht
+languages.ie=Gjuha nderkombtare
+languages.id=Indonezisht
+languages.uk=Ukrainisht
+languages.ia=Interlingua
+languages.oc=Oksitanisht
+languages.ug=Ujgur
+languages.hy=Armen
+languages.bs=Boshnjakisht
+languages.br=Breton
+languages.hu=Hungarisht
+languages.pt_PT=Portugalisht (Portugali)
+languages.bn=Bengalisht
+languages.hr=Kroatisht
+languages.tw=Twi
+languages.bh=Bihari
+languages.bg=Bullgarisht
+languages.no=Norvegjisht
+languages.be=Bjellorusisht
+languages.nn=Norvegjisht (Nynorsk)
languages.hi=Hindi
+languages.tr=Turqisht
+languages.nl=Hollandisht
+languages.zu=Zulu
+languages.he=Hebraisht
+languages.tk=Turk
+languages.ne=Nepalisht
+languages.az=Azerbajxhanisht
+languages.ti=Tigrinja
+languages.th=Tajlandisht
+languages.te=Telugu
+languages.zh=Kineze
+languages.as=Asamezisht
languages.ar=Arabisht
-languages.it=Italisht
+languages.ta=Tamil
+languages.gu=Guxharati
+languages.am=Amharike
+languages.mt=Maltisht
+languages.ms=Malajzisht
+languages.gn=Guarani
+languages.sw=Suahilisht
+languages.mr=Marati
+languages.sv=Suedisht
+languages.gl=Galicianisht
+languages.su=Sundanisht
+languages.af=Afrikanisht
+languages.st=Sesotho
+languages.mn=Mongolisht
+languages.sr=Serbisht
+languages.sq=shqipe
+languages.ml=Malajalam
+languages.mk=Maqedonisht
+languages.so=Somalisht
+languages.gd=Galisht
+languages.sl=Sllovenisht
+languages.sk=Sllovakisht
+languages.ga=Irlandisht
+languages.si=Sinhalezisht
+languages.sh=Serbo-Kroatisht
+languages.pt_BR=Portugalisht (Brazil)
+languages.yi=Jiden
+languages.sd=Si'ndi
+languages.fy=Frizianisht
+languages.sa=Sanskritisht
languages.fr=Frengjisht
-languages.de=Gjermanisht
-languages.es=Spanjisht
-languages.ja=Japanisht
-languages.pt=Portugeze
+languages.lv=Letonisht
+languages.lt=Lituanisht
+languages.fo=Faroisht
+languages.ru=Rusisht
+languages.lo=Laosisht
+languages.ln=Lingala
+languages.fi=Finlandisht
+languages.ro=Rumanisht
+languages.fa=Persisht
+languages.und=Unknown or Invalid Language
+languages.la=Latinisht
+languages.xh=Xhosa
+languages.eu=Baskisht
+languages.ky=Kyrgyz
+languages.et=Estonisht
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr.properties
index f3263c0..d623164 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr.properties
@@ -5,73 +5,124 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=\u0435
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.GBP=\u0424\u0443\u043d\u0442\u0430 \u0441\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0430
-currenciesDisplayName.CHF=\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u0430\u043a
-currenciesDisplayName.HRK=\u041a\u0443\u043d\u0430
-currenciesDisplayName.FRF=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u0430\u043a
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.KES=\u041a\u0435\u043d\u0438\u0458\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
+currenciesDisplayName.BAD=\u0411\u043e\u0441\u0430\u043d\u0441\u043a\u043e-\u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0430\u0447\u043a\u0438\u0445 \u0434\u0438\u043d\u0430\u0440\u0430
+currenciesDisplayName.HRK=\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0445 \u043a\u0443\u043d\u0430
+currenciesDisplayName.MKD=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u0458\u0441\u043a\u0438 \u0434\u0435\u043d\u0430\u0440
+currenciesDisplayName.CSD=\u0421\u0440\u043f\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440 (\u0421\u0440\u0431\u0438\u0458\u0430 \u0438 \u0426\u0440\u043d\u0430 \u0413\u043e\u0440\u0430)
+currenciesDisplayName.HRD=\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438\u0445 \u0434\u0438\u043d\u0430\u0440\u0430
currenciesDisplayName.IEP=\u0418\u0440\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
-currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0458\u0441\u043a\u0438 \u0420\u0443\u043f\u0438
-currenciesDisplayName.JPY=\u0408\u0435\u043d
-currenciesDisplayName.HRD=\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.EUR=\u0415\u0412\u0420\u041e
-currenciesDisplayName.ITL=\u0418\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
-currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 \u0435\u0441\u043a\u0443\u0434\u043e
-currenciesDisplayName.AUD=\u0410\u0443\u0441\u0442\u0440\u0430\u043b\u0438\u0458\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.GRD=\u0414\u0440\u0430\u0445\u043c\u0430
+currenciesDisplayName.AMD=\u0408\u0435\u0440\u043c\u0435\u043d\u0441\u043a\u0438\u0445 \u0434\u0440\u0430\u043c\u0430
+currenciesDisplayName.SIT=\u0422\u043e\u043b\u0430\u0440
+currenciesDisplayName.FRF=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0438\u0445 \u0444\u0440\u0430\u043d\u0430\u043a\u0430
+currenciesDisplayName.CLP=\u0427\u0438\u043b\u0435\u0430\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e
+currenciesDisplayName.KWD=\u041a\u0443\u0432\u0430\u0458\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.ZAR=\u0408\u0443\u0436\u043d\u043e \u0410\u0444\u0440\u0438\u0447\u043a\u0438 \u0420\u0430\u043d\u0434
+currenciesDisplayName.RON=\u0420\u0443\u043c\u0443\u043d\u0441\u043a\u0438 \u043b\u0435\u0443
+currenciesDisplayName.RUR=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430 (1991-1998)
+currenciesDisplayName.HKD=\u0425\u043e\u043d\u0433 \u041a\u043e\u043d\u0433\u0441\u043a\u0438 \u0414\u043e\u043b\u0430\u0440\u0438
+currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u043a\u0438 \u043f\u0435\u0437\u043e
+currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b\u0441\u043a\u0438 \u0420\u0435\u0430\u043b
+currenciesDisplayName.JPY=\u0408\u0430\u043f\u0430\u043d\u0441\u043a\u0438\u0445 \u0458\u0435\u043d\u0430
+currenciesDisplayName.ALL=\u0410\u043b\u0431\u0430\u043d\u0441\u043a\u0438\u0445 \u043b\u0435\u043a\u0430
+currenciesDisplayName.IDR=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0458\u0441\u043a\u0430 \u0440\u0443\u043f\u0438\u0430\u0445
+currenciesDisplayName.EEK=\u0415\u0441\u0442\u043e\u043d\u0441\u043a\u0430 \u043a\u0440\u043e\u043e\u043d
+currenciesDisplayName.DEM=\u041d\u0435\u043c\u0430\u0447\u043a\u0438\u0445 \u043c\u0430\u0440\u0430\u043a\u0430
+currenciesDisplayName.RUB=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
+currenciesDisplayName.VND=\u0412\u0438\u0458\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438 \u0434\u043e\u043d\u0433
+currenciesDisplayName.DKK=\u0414\u0430\u043d\u0441\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
currenciesDisplayName.NOK=\u041d\u043e\u0440\u0432\u0435\u0448\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
-currenciesDisplayName.DEM=\u041d\u0435\u043c\u0430\u0447\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
-currenciesDisplayName.LUF=\u041b\u0443\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0448\u043a\u0438 \u0444\u0440\u0430\u043d\u0430\u043a
-currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
currenciesDisplayName.BEF=\u0411\u0435\u043b\u0433\u0438\u0458\u0441\u043a\u0438 \u0444\u0440\u0430\u043d\u0430\u043a
-currenciesDisplayName.DKK=\u0414\u0430\u043d\u0441\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
-currenciesDisplayName.RUR=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430 (1991-1998)
-currenciesDisplayName.KWD=\u041a\u0443\u0432\u0430\u0458\u0442\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.PHP=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438 \u043f\u0435\u0441\u043e
+currenciesDisplayName.UAH=\u0423\u043a\u0440\u0430\u0458\u0438\u043d\u0441\u043a\u0430 \u0445\u0440\u0438\u0432\u045a\u0430
+currenciesDisplayName.AED=\u0423\u0458\u0435\u0434\u0438\u045a\u0435\u043d\u0438 \u0430\u0440\u0430\u043f\u0441\u043a\u0438 \u0435\u043c\u0438\u0440\u0430\u0442\u0438 \u0434\u0438\u0440\u0445\u0430\u043c
+currenciesDisplayName.FJD=\u0424\u0438\u045f\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.LUF=\u041b\u0443\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0448\u043a\u0438 \u0444\u0440\u0430\u043d\u0430\u043a
+currenciesDisplayName.XXX=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442\u0438\u0445 \u0438\u043b\u0438 \u043d\u0435\u0432\u0430\u0436\u0435\u045b\u0438\u0445 \u0432\u0430\u043b\u0443\u0442\u0430
+currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 \u0435\u0441\u043a\u0443\u0434\u043e
+currenciesDisplayName.USD=\u0410\u043c\u0435\u0440\u0438\u0447\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.SGD=\u0421\u0438\u043d\u0433\u0430\u043f\u0443\u0440\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.FIM=\u0424\u0438\u043d\u0441\u043a\u0438\u0445 \u043c\u0430\u0440\u0430\u043a\u0430
+currenciesDisplayName.MTL=\u041c\u0430\u043b\u0442\u0435\u0448\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.HUF=\u041c\u0430\u0452\u0430\u0440\u0441\u043a\u0430 \u0444\u043e\u0440\u0438\u043d\u0442\u0430
+currenciesDisplayName.LTL=\u041b\u0438\u0442\u0432\u0430\u043d\u0441\u043a\u0438 \u043b\u0438\u0442\u0430\u0441
+currenciesDisplayName.TRY=\u0422\u0443\u0440\u0441\u043a\u0430 \u043b\u0438\u0440\u0430
+currenciesDisplayName.NZD=\u041d\u043e\u0432\u043e\u0437\u0435\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.RSD=\u0421\u0440\u043f\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
+currenciesDisplayName.INR=\u0418\u043d\u0434\u0438\u0458\u0441\u043a\u0438 \u0420\u0443\u043f\u0438
+currenciesDisplayName.GBP=\u0424\u0443\u043d\u0442\u0430 \u0441\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0430
+currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0458\u0441\u043a\u0438 \u043f\u0435\u0437\u043e
+currenciesDisplayName.TRL=\u0421\u0442\u0430\u0440\u0438\u0445 \u0442\u0443\u0440\u0441\u043a\u0438\u0445 \u043b\u0438\u0440\u0430
+currenciesDisplayName.MAD=\u041c\u0430\u0440\u043e\u043a\u0430\u043d\u0441\u043a\u0438 \u0434\u0438\u0440\u0445\u0430\u043c
+currenciesDisplayName.ITL=\u0418\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0438\u0445 \u043b\u0438\u0440\u0430
+currenciesDisplayName.MYR=\u041c\u0430\u043b\u0435\u0437\u0438\u0458\u0441\u043a\u0438 \u0440\u0438\u043d\u0433\u0433\u0438\u0442
+currenciesDisplayName.VEB=\u0412\u0435\u043d\u0435\u0446\u0443\u0435\u043b\u0430\u043d\u0441\u043a\u0438 \u0431\u043e\u043b\u0438\u0432\u0430\u0440
+currenciesDisplayName.BOB=\u0411\u043e\u043b\u0438\u0432\u0438\u0458\u0441\u043a\u0438 \u0411\u043e\u043b\u0438\u0432\u0438\u0430\u043d\u043e
currenciesDisplayName.CNY=\u041a\u0438\u043d\u0435\u0441\u043a\u0438 \u0408\u0443\u0430\u043d \u0420\u0435\u043d\u043c\u0438\u043d\u0431\u0438
-currenciesDisplayName.ESP=\u0428\u043f\u0430\u043d\u0441\u043a\u0430 \u043f\u0435\u0437\u0435\u0442\u0430
-currenciesDisplayName.GRD=\u0414\u0440\u0430\u0445\u043c\u0430
-currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.ATS=\u0410\u0443\u0441\u0442\u0440\u0438\u0458\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
-currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b\u0441\u043a\u0438 \u0420\u0435\u0430\u043b
currenciesDisplayName.SEK=\u0428\u0432\u0435\u0434\u0441\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
-currenciesDisplayName.USD=\u0410\u043c\u0435\u0440\u0438\u0447\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.CSD=\u0421\u0440\u043f\u0441\u043a\u0438 \u0414\u0438\u043d\u0430\u0440
-currenciesDisplayName.RUB=\u0420\u0443\u0441\u043a\u0430 \u0440\u0443\u0431\u0459\u0430
-currenciesDisplayName.FIM=\u0424\u0438\u043d\u0441\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
-currenciesDisplayName.SIT=\u0422\u043e\u043b\u0430\u0440
-currenciesDisplayName.BAM=\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0431\u0438\u043b\u043d\u0430 \u043c\u0430\u0440\u043a\u0430
+currenciesDisplayName.AUD=\u0410\u0443\u0441\u0442\u0440\u0430\u043b\u0438\u0458\u0441\u043a\u0438\u0445 \u0434\u043e\u043b\u0430\u0440\u0430
+currenciesDisplayName.LYD=\u041b\u0438\u0431\u0438\u0458\u0441\u043a\u0438 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0447\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
+currenciesDisplayName.CHF=\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0438\u0445 \u0444\u0440\u0430\u043d\u0430\u043a\u0430
+currenciesDisplayName.NLG=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0433\u0443\u043b\u0434\u0435\u043d
+currenciesDisplayName.PEN=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u043a\u0438 \u043d\u0443\u0435\u0432\u043e \u0441\u043e\u043b
+currenciesDisplayName.KRW=\u0408\u0443\u0436\u043d\u043e\u043a\u043e\u0440\u0435\u0458\u0441\u043a\u0438 \u0412\u043e\u043d
+currenciesDisplayName.TWD=\u041d\u043e\u0432\u0438 \u0442\u0430\u0458\u0432\u0430\u043d\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.PKR=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438 \u0440\u0443\u043f\u0438
+currenciesDisplayName.ATS=\u0410\u0443\u0441\u0442\u0440\u0438\u0458\u0441\u043a\u0438 \u0448\u0438\u043b\u0438\u043d\u0433
+currenciesDisplayName.MXN=\u041c\u0435\u043a\u0441\u0438\u0447\u043a\u0438 \u043f\u0435\u0441\u043e
+currenciesDisplayName.EGP=\u0415\u0433\u0438\u043f\u0430\u0442\u0441\u043a\u0430 \u0444\u0443\u043d\u0442\u0430
+currenciesDisplayName.CZK=\u0427\u0435\u0448\u043a\u0430 \u043a\u0440\u0443\u043d\u0430
+currenciesDisplayName.BND=\u0411\u0440\u0443\u043d\u0435\u0458\u0441\u043a\u0438 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.ILS=\u0418\u0437\u0440\u0430\u0435\u043b\u0441\u043a\u0438 \u0448\u0435\u043a\u0435\u043b
+currenciesDisplayName.ESP=\u0428\u043f\u0430\u043d\u0441\u043a\u0430 \u043f\u0435\u0437\u0435\u0442\u0430
+currenciesDisplayName.BAM=\u0411\u043e\u0441\u0430\u043d\u0441\u043a\u043e-\u0425\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0430\u0447\u043a\u0430 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u0430\u0431\u0438\u043b\u043d\u0430 \u043c\u0430\u0440\u043a\u0430
+currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u043a\u0438\u0445 \u0434\u043e\u043b\u0430\u0440\u0430
+currenciesDisplayName.BGN=\u0411\u0443\u0433\u0430\u0440\u0441\u043a\u0438\u0445 \u043b\u0435\u0432\u0430
currenciesSymbol.KWD=KD
currenciesSymbol.INR=INR
currenciesSymbol.NOK=NKr
currenciesSymbol.BEF=BF
-currenciesSymbol.BAM=KM
currenciesSymbol.YUN=\u0414\u0438\u043d
+currenciesSymbol.BAM=KM
currenciesSymbol.IEP=IR\u00a3
currenciesSymbol.DKK=DKr
currenciesSymbol.CHF=SwF
-currenciesSymbol.CNY=\u0423
+currenciesSymbol.CNY=Y
currenciesSymbol.AUD=$A
-currenciesSymbol.USD=US$
-currenciesSymbol.CSD=YUN
currenciesSymbol.SEK=SKr
currenciesSymbol.CAD=Can$
-shortMonths=\u0458\u0430\u043d®\u0444\u0435\u0431®\u043c\u0430\u0440®\u0430\u043f\u0440®\u043c\u0430\u0458®\u0458\u0443\u043d®\u0458\u0443\u043b®\u0430\u0432\u0433®\u0441\u0435\u043f®\u043e\u043a\u0442®\u043d\u043e\u0432®\u0434\u0435\u0446®®
-months=\u0458\u0430\u043d\u0443\u0430\u0440®\u0444\u0435\u0431\u0440\u0443\u0430\u0440®\u043c\u0430\u0440\u0442®\u0430\u043f\u0440\u0438\u043b®\u043c\u0430\u0458®\u0458\u0443\u043d®\u0458\u0443\u043b®\u0430\u0432\u0433\u0443\u0441\u0442®\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440®\u043e\u043a\u0442\u043e\u0431\u0430\u0440®\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440®\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440®®
-shortWeekdays=®\u043d\u0435\u0434®\u043f\u043e\u043d®\u0443\u0442\u043e®\u0441\u0440\u0435®\u0447\u0435\u0442®\u043f\u0435\u0442®\u0441\u0443\u0431®
-weekdays=®\u043d\u0435\u0434\u0435\u0459\u0430®\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a®\u0443\u0442\u043e\u0440\u0430\u043a®\u0441\u0440\u0435\u0434\u0430®\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a®\u043f\u0435\u0442\u0430\u043a®\u0441\u0443\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u043f. \u043d. \u0435.®\u043d. \u0435®
+shortMonths=\u0458\u0430\u043d\u00ae\u0444\u0435\u0431\u00ae\u043c\u0430\u0440\u00ae\u0430\u043f\u0440\u00ae\u043c\u0430\u0458\u00ae\u0458\u0443\u043d\u00ae\u0458\u0443\u043b\u00ae\u0430\u0432\u0433\u00ae\u0441\u0435\u043f\u00ae\u043e\u043a\u0442\u00ae\u043d\u043e\u0432\u00ae\u0434\u0435\u0446\u00ae\u00ae
+months=\u0458\u0430\u043d\u0443\u0430\u0440\u00ae\u0444\u0435\u0431\u0440\u0443\u0430\u0440\u00ae\u043c\u0430\u0440\u0442\u00ae\u0430\u043f\u0440\u0438\u043b\u00ae\u043c\u0430\u0458\u00ae\u0458\u0443\u043d\u00ae\u0458\u0443\u043b\u00ae\u0430\u0432\u0433\u0443\u0441\u0442\u00ae\u0441\u0435\u043f\u0442\u0435\u043c\u0431\u0430\u0440\u00ae\u043e\u043a\u0442\u043e\u0431\u0430\u0440\u00ae\u043d\u043e\u0432\u0435\u043c\u0431\u0430\u0440\u00ae\u0434\u0435\u0446\u0435\u043c\u0431\u0430\u0440\u00ae\u00ae
+shortWeekdays=\u00ae\u043d\u0435\u0434\u00ae\u043f\u043e\u043d\u00ae\u0443\u0442\u043e\u00ae\u0441\u0440\u0435\u00ae\u0447\u0435\u0442\u00ae\u043f\u0435\u0442\u00ae\u0441\u0443\u0431\u00ae
+weekdays=\u00ae\u043d\u0435\u0434\u0435\u0459\u0430\u00ae\u043f\u043e\u043d\u0435\u0434\u0435\u0459\u0430\u043a\u00ae\u0443\u0442\u043e\u0440\u0430\u043a\u00ae\u0441\u0440\u0435\u0434\u0430\u00ae\u0447\u0435\u0442\u0432\u0440\u0442\u0430\u043a\u00ae\u043f\u0435\u0442\u0430\u043a\u00ae\u0441\u0443\u0431\u043e\u0442\u0430\u00ae
+eras=\u043f. \u043d. \u0435.\u00ae\u043d. \u0435\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=d.M.yy.
mediumDateFormat=dd.MM.yyyy.
-longDateFormat=dd.MM.yyyy.
-fullDateFormat=EEEE, dd.MMMM.yyyy.
+longDateFormat=dd. MMMM yyyy.
+fullDateFormat=EEEE, dd. MMMM yyyy.
shortTimeFormat=HH.mm
mediumTimeFormat=HH.mm.ss
longTimeFormat=HH.mm.ss z
fullTimeFormat=HH.mm.ss z
-zoneStrings=Europe/Belgrade®CET®\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e \u0415\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u0412\u0440\u0435\u043c\u0435®CET®\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e \u0415\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u0412\u0440\u0435\u043c\u0435®©
-territories.TL=\u0422\u0438\u043c\u043e\u0440-\u041b\u0435\u0441\u0442\u0435
+zoneStrings=Europe_Central\u00ae\u0421\u0440\u0435\u0434\u045a\u0435\u0435\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u00ae\u00ae\u0421\u0440\u0435\u0434\u045a\u0435\u0435\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u043b\u0435\u0442\u045a\u0435 \u0432\u0440\u0435\u043c\u0435\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0418\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u0432\u0440\u0435\u043c\u0435\u00ae\u00ae\u0418\u0441\u0442\u043e\u0447\u043d\u043e\u0435\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u043b\u0435\u0442\u045a\u0435 \u0432\u0440\u0435\u043c\u0435\u00ae\u00ae\u00a9
+territories.TL=\u0418\u0441\u0442\u043e\u0447\u043d\u0438 \u0422\u0438\u043c\u043e\u0440
territories.TK=\u0422\u043e\u043a\u0435\u043b\u0430\u0443
territories.TJ=\u0422\u0430\u045f\u0438\u043a\u0438\u0441\u0442\u0430\u043d
territories.TH=\u0422\u0430\u0458\u043b\u0430\u043d\u0434
@@ -93,12 +144,13 @@ territories.GN=\u0413\u0432\u0438\u043d\u0435\u0458\u0430
territories.GM=\u0413\u0430\u043c\u0431\u0438\u0458\u0430
territories.GL=\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434
territories.SV=\u0421\u0430\u043b\u0432\u0430\u0434\u043e\u0440
-territories.062=\u0408\u0443\u0436\u043d\u043e-\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
-territories.ST=\u0421\u0430\u043e \u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u0438
-territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u0458\u0430
+territories.062=\u0408\u0443\u0433\u043e-\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
+territories.ST=\u0421\u0430\u043e \u0422\u043e\u043c\u0435 \u0438 \u041f\u0440\u0438\u043d\u0446\u0438\u043f\u0435
territories.GI=\u0413\u0438\u0431\u0440\u0430\u043b\u0442\u0430\u0440
+territories.061=\u041f\u043e\u043b\u0438\u043d\u0435\u0437\u0438\u0458\u0430
territories.GH=\u0413\u0430\u043d\u0430
territories.SR=\u0421\u0443\u0440\u0438\u043d\u0430\u043c
+territories.GG=\u0413\u0443\u0440\u043d\u0441\u0438
territories.GF=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0430 \u0413\u0432\u0430\u0458\u0430\u043d\u0430
territories.GE=\u0413\u0440\u0443\u0437\u0438\u0458\u0430
territories.SO=\u0421\u043e\u043c\u0430\u043b\u0438\u0458\u0430
@@ -119,26 +171,27 @@ territories.SC=\u0421\u0435\u0458\u0448\u0435\u043b\u0438
territories.SB=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
territories.SA=\u0421\u0430\u0443\u0434\u0438\u0458\u0441\u043a\u0430 \u0410\u0440\u0430\u0431\u0438\u0458\u0430
territories.FR=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0430
-territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u0458\u0430
territories.FO=\u0424\u0430\u0440\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
+territories.057=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u0458\u0441\u043a\u0438 \u0440\u0435\u0433\u0438\u043e\u043d
territories.FM=\u041c\u0438\u043a\u0440\u043e\u043d\u0435\u0437\u0438\u0458\u0430
territories.RW=\u0420\u0443\u0430\u043d\u0434\u0430
territories.054=\u041c\u0435\u043b\u0430\u043d\u0435\u0437\u0438\u0458\u0430
+territories.FK=\u0424\u043e\u043a\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u043e\u0441\u0442\u0440\u0432\u0430
territories.053=\u0410\u0443\u0441\u0442\u0440\u0430\u043b\u0438\u0458\u0430 \u0438 \u041d\u043e\u0432\u0438 \u0417\u0435\u043b\u0430\u043d\u0434
-territories.FK=\u0424\u043e\u043b\u043a\u043b\u0430\u043d\u0434\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
territories.RU=\u0420\u0443\u0441\u0438\u0458\u0430
territories.FJ=\u0424\u0438\u045f\u0438
territories.FI=\u0424\u0438\u043d\u0441\u043a\u0430
+territories.RS=\u0421\u0440\u0431\u0438\u0458\u0430
territories.RO=\u0420\u0443\u043c\u0443\u043d\u0438\u0458\u0430
territories.RE=\u0420\u0435\u0438\u043d\u0438\u043e\u043d
territories.ET=\u0415\u0442\u0438\u043e\u043f\u0438\u0458\u0430
territories.ES=\u0428\u043f\u0430\u043d\u0438\u0458\u0430
territories.ER=\u0415\u0440\u0438\u0442\u0440\u0435\u0458\u0430
-territories.833=\u041e\u0441\u0442\u0440\u0432\u043e \u041c\u0430\u043d
+territories.QU=\u0415\u0432\u0440\u043e\u043f\u0441\u043a\u0430 \u0443\u043d\u0438\u0458\u0430
territories.EH=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430
territories.EG=\u0415\u0433\u0438\u043f\u0430\u0442
-territories.830=\u041a\u0430\u043d\u0430\u043b\u0441\u043a\u0430 \u043e\u0441\u0442\u0440\u0432\u0430
territories.EE=\u0415\u0441\u0442\u043e\u043d\u0438\u0458\u0430
+territories.830=\u041a\u0430\u043d\u0430\u043b\u0441\u043a\u0430 \u043e\u0441\u0442\u0440\u0432\u0430
territories.QO=\u041e\u0441\u0442\u0430\u043b\u0430 \u043e\u043a\u0435\u0430\u043d\u0438\u0458\u0430
territories.EC=\u0415\u043a\u0432\u0430\u0434\u043e\u0440
territories.DZ=\u0410\u043b\u0436\u0438\u0440
@@ -146,9 +199,10 @@ territories.QA=\u041a\u0430\u0442\u0430\u0440
territories.039=\u0408\u0443\u0436\u043d\u0430 \u0415\u0432\u0440\u043e\u043f\u0430
territories.DO=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430\u043d\u0441\u043a\u0430 \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
territories.PY=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0458
-territories.035=\u0408\u0443\u0433\u043e\u0438\u0441\u0442\u043e\u0447\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
territories.DM=\u0414\u043e\u043c\u0438\u043d\u0438\u043a\u0430
+territories.035=\u0408\u0443\u0433\u043e-\u0438\u0441\u0442\u043e\u0447\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
territories.PW=\u041f\u0430\u043b\u0430\u0443
+territories.034=\u0408\u0443\u0436\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
territories.DK=\u0414\u0430\u043d\u0441\u043a\u0430
territories.DJ=\u040f\u0438\u0431\u0443\u0442\u0438
territories.PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b
@@ -166,7 +220,7 @@ territories.PF=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0430 \u041f\u04
territories.CZ=\u0427\u0435\u0448\u043a\u0430
territories.PE=\u041f\u0435\u0440\u0443
territories.CY=\u041a\u0438\u043f\u0430\u0440
-territories.CX=\u0411\u043e\u0436\u0438\u045b\u043d\u043e \u041e\u0441\u0442\u0440\u0432\u043e
+territories.CX=\u0411\u043e\u0436\u0438\u045b\u043d\u0430 \u043e\u0441\u0442\u0440\u0432\u0430
territories.CV=\u041a\u0430\u043f\u0435 \u0412\u0435\u0440\u0434\u0435
territories.PA=\u041f\u0430\u043d\u0430\u043c\u0430
territories.CU=\u041a\u0443\u0431\u0430
@@ -177,42 +231,45 @@ territories.CO=\u041a\u043e\u043b\u0443\u043c\u0431\u0438\u0458\u0430
territories.CN=\u041a\u0438\u043d\u0430
territories.CM=\u041a\u0430\u043c\u0435\u0440\u0443\u043d
territories.CL=\u0427\u0438\u043b\u0435
-territories.CI=\u041e\u0431\u0430\u043b\u0430 \u0421\u043b\u043e\u043d\u043e\u0432\u0430\u0447\u0435
+territories.CK=\u041a\u0443\u043a\u043e\u0432\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
territories.021=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
+territories.CI=\u041e\u0431\u0430\u043b\u0430 \u0421\u043b\u043e\u043d\u043e\u0432\u0430\u0447\u0435
territories.CH=\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0430
territories.CG=\u041a\u043e\u043d\u0433\u043e
territories.CF=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e \u0410\u0444\u0440\u0438\u0447\u043a\u0430 \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
territories.CD=\u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0441\u043a\u0430 \u0440\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430 \u041a\u043e\u043d\u0433\u043e
-territories.CC=\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
+territories.CC=\u041a\u043e\u043a\u043e\u0441 (\u041a\u0435\u043b\u0438\u043d\u0433) \u041e\u0441\u0442\u0440\u0432\u0430
territories.OM=\u041e\u043c\u0430\u043d
territories.CA=\u041a\u0430\u043d\u0430\u0434\u0430
-territories.BZ=\u0411\u0435\u043b\u0438\u0441\u0435
+territories.419=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0438 \u041a\u0430\u0440\u0438\u0431\u0438
+territories.BZ=\u0411\u0435\u043b\u0438\u0437\u0435
territories.BY=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u0438\u0458\u0430
territories.BW=\u0411\u043e\u0446\u0432\u0430\u043d\u0430
-territories.BV=\u0411\u0443\u0432\u0435
+territories.BV=\u0411\u0443\u0432\u0435 \u041e\u0441\u0442\u0440\u0432\u0430
territories.BT=\u0411\u0443\u0442\u0430\u043d
territories.BS=\u0411\u0430\u0445\u0430\u043c\u0438
-territories.BR=\u0411\u0440\u0430\u0455\u0438\u043b
+territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b
territories.019=\u0410\u043c\u0435\u0440\u0438\u043a\u0435
territories.018=\u0408\u0443\u0436\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
territories.NZ=\u041d\u043e\u0432\u0438 \u0417\u0435\u043b\u0430\u043d\u0434
-territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u0458\u0430
territories.017=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BO=\u0411\u043e\u043b\u0438\u0432\u0438\u0458\u0430
territories.BN=\u0411\u0440\u0443\u043d\u0435\u0458
-territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0430
territories.015=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0430
territories.014=\u0418\u0441\u0442\u043e\u0447\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
territories.013=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.NU=\u041d\u0438\u0443\u0435
territories.BJ=\u0411\u0435\u043d\u0438\u043d
-territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
territories.011=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0438
territories.BH=\u0411\u0430\u0445\u0440\u0435\u0438\u043d
territories.NR=\u041d\u0430\u0443\u0440\u0443
territories.BG=\u0411\u0443\u0433\u0430\u0440\u0441\u043a\u0430
territories.BF=\u0411\u0443\u0440\u043a\u0438\u043d\u0430 \u0424\u0430\u0441\u043e
territories.NP=\u041d\u0435\u043f\u0430\u043b
territories.BE=\u0411\u0435\u043b\u0433\u0438\u0458\u0430
+territories.ZZ=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442\u0430 \u0438\u043b\u0438 \u043d\u0435\u0432\u0430\u0436\u0435\u045b\u0430 \u043e\u0431\u043b\u0430\u0441\u0442
territories.NO=\u041d\u043e\u0440\u0432\u0435\u0448\u043a\u0430
territories.BD=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448
territories.BB=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441
@@ -231,30 +288,35 @@ territories.ZM=\u0417\u0430\u043c\u0431\u0438\u0458\u0430
territories.NA=\u041d\u0430\u043c\u0438\u0431\u0438\u0458\u0430
territories.AU=\u0410\u0443\u0441\u0442\u0440\u0430\u043b\u0438\u0458\u0430
territories.AT=\u0410\u0443\u0441\u0442\u0440\u0438\u0458\u0430
+territories.AS=\u0410\u043c\u0435\u0440\u0438\u0447\u043a\u0430 \u0421\u0430\u043c\u043e\u0430
territories.AR=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430
+territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a
territories.009=\u041e\u043a\u0435\u0430\u043d\u0438\u0458\u0430
territories.MZ=\u041c\u043e\u0437\u0430\u043c\u0431\u0438\u043a
territories.AO=\u0410\u043d\u0433\u043e\u043b\u0430
territories.MY=\u041c\u0430\u043b\u0435\u0437\u0438\u0458\u0430
territories.AN=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438 \u0410\u043d\u0442\u0438\u043b\u0438
territories.MX=\u041c\u0435\u043a\u0441\u0438\u043a\u043e
-territories.005=\u0408\u0443\u0436\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.AM=\u0410\u0440\u043c\u0435\u043d\u0438\u0458\u0430
+territories.005=\u0408\u0443\u0436\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.MW=\u041c\u0430\u043b\u0430\u0432\u0438
territories.AL=\u0410\u043b\u0431\u0430\u043d\u0438\u0458\u0430
territories.MV=\u041c\u0430\u043b\u0434\u0438\u0432\u0438
-territories.ZA=\u0408\u0443\u0436\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.003=\u0421\u0435\u0432\u0435\u0440\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u0447\u043a\u0438 \u043a\u043e\u043d\u0442\u0438\u043d\u0435\u043d\u0442
+territories.ZA=\u0408\u0443\u0436\u043d\u043e\u0430\u0444\u0440\u0438\u0447\u043a\u0430 \u0420\u0435\u043f\u0443\u0431\u043b\u0438\u043a\u0430
territories.MU=\u041c\u0430\u0443\u0440\u0438\u0446\u0438\u0458\u0443\u0441
territories.002=\u0410\u0444\u0440\u0438\u043a\u0430
territories.MT=\u041c\u0430\u043b\u0442\u0430
+territories.AI=\u0410\u043d\u0433\u0432\u0438\u043b\u0430
territories.001=\u0421\u0432\u0435\u0442
territories.MS=\u041c\u043e\u043d\u0441\u0435\u0440\u0430\u0442
territories.MR=\u041c\u0430\u0443\u0440\u0438\u0442\u0430\u043d\u0438\u0458\u0430
+territories.AG=\u0410\u043d\u0442\u0438\u0433\u0432\u0435 \u0438 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
territories.MQ=\u041c\u0430\u0440\u0442\u0438\u043d\u0438\u043a
territories.AF=\u0410\u0432\u0433\u0430\u043d\u0438\u0441\u0442\u0430\u043d
territories.MP=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u041c\u0430\u0440\u0438\u0458\u0430\u043d\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
territories.AE=\u0423\u0458\u0435\u0434\u0438\u045a\u0435\u043d\u0438 \u0410\u0440\u0430\u043f\u0441\u043a\u0438 \u0415\u043c\u0438\u0440\u0430\u0442\u0438
-territories.MO=\u041c\u0430\u043a\u0430\u043e (\u0421. \u0410. \u0420. \u041a\u0438\u043d\u0430)
+territories.MO=\u041c\u0430\u043a\u0430\u043e
territories.AD=\u0410\u043d\u0434\u043e\u0440\u0430
territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b\u0438\u0458\u0430
territories.MM=\u041c\u0438\u0458\u0430\u043d\u043c\u0430\u0440
@@ -263,6 +325,8 @@ territories.MK=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0438\u0458\u0430
territories.YT=\u041c\u0430\u0458\u043e\u0442\u0435
territories.MH=\u041c\u0430\u0440\u0448\u0430\u043b\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
territories.MG=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
+territories.MF=\u0421\u0435\u043d\u0442 \u041c\u0430\u0440\u0442\u0438\u043d
+territories.ME=\u0426\u0440\u043d\u0430 \u0413\u043e\u0440\u0430
territories.MD=\u041c\u043e\u043b\u0434\u0430\u0432\u0438\u0458\u0430
territories.MC=\u041c\u043e\u043d\u0430\u043a\u043e
territories.MA=\u041c\u0430\u0440\u043e\u043a\u043e
@@ -286,6 +350,7 @@ territories.KZ=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d
territories.KY=\u041a\u0430\u0458\u043c\u0430\u043d\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
territories.KW=\u041a\u0443\u0432\u0430\u0458\u0442
territories.145=\u0417\u0430\u043f\u0430\u0434\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
+territories.143=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u0430 \u0410\u0437\u0438\u0458\u0430
territories.142=\u0410\u0437\u0438\u0458\u0430
territories.KR=\u0408\u0443\u0436\u043d\u0430 \u041a\u043e\u0440\u0435\u0458\u0430
territories.KP=\u0421\u0435\u0432\u0435\u0440\u043d\u0430 \u041a\u043e\u0440\u0435\u0458\u0430
@@ -301,6 +366,7 @@ territories.JP=\u0408\u0430\u043f\u0430\u043d
territories.JO=\u0408\u043e\u0440\u0434\u0430\u043d
territories.JM=\u0408\u0430\u043c\u0430\u0458\u043a\u0430
territories.VU=\u0412\u0430\u043d\u0443\u0430\u0442\u0443
+territories.JE=\u040f\u0435\u0440\u0441\u0438
territories.VN=\u0412\u0438\u0458\u0435\u0442\u043d\u0430\u043c
territories.VI=\u0421.\u0410.\u0414. \u0414\u0435\u0432\u0438\u0447\u0430\u043d\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
territories.VG=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430 \u0414\u0435\u0432\u0438\u0447\u0430\u043d\u0441\u043a\u0430 \u041e\u0441\u0442\u0440\u0432\u0430
@@ -312,8 +378,10 @@ territories.IS=\u0418\u0441\u043b\u0430\u043d\u0434
territories.IR=\u0418\u0440\u0430\u043d
territories.IQ=\u0418\u0440\u0430\u043a
territories.UZ=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d
+territories.IO=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u043a\u0430 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0438\u0458\u0430 \u0443 \u0418\u043d\u0434\u0438\u0458\u0441\u043a\u043e\u043c \u043e\u043a\u0435\u0430\u043d\u0443
territories.UY=\u0423\u0440\u0443\u0433\u0432\u0430\u0458
territories.IN=\u0418\u043d\u0434\u0438\u0458\u0430
+territories.IM=\u041e\u0441\u0442\u0440\u0432\u043e \u041c\u0430\u043d
territories.IL=\u0418\u0437\u0440\u0430\u0435\u043b
territories.US=\u0421\u0458\u0435\u0434\u0438\u045a\u0435\u043d\u0435 \u0410\u043c\u0435\u0440\u0438\u0447\u043a\u0435 \u0414\u0440\u0436\u0430\u0432\u0435
territories.IE=\u0418\u0440\u0441\u043a\u0430
@@ -329,70 +397,175 @@ territories.HN=\u0425\u043e\u043d\u0434\u0443\u0440\u0430\u0441
territories.HM=\u0425\u0435\u0440\u0434 \u0438 \u041c\u0435\u043a\u0434\u043e\u043d\u0430\u043b\u0434 \u041e\u0441\u0442\u0440\u0432\u0430
territories.TW=\u0422\u0430\u0458\u0432\u0430\u043d
territories.TV=\u0422\u0443\u0432\u0430\u043b\u0443
-territories.HK=\u0425\u043e\u043d\u0433 \u041a\u043e\u043d\u0433 (\u0421. \u0410. \u0420. \u041a\u0438\u043d\u0430)
+territories.HK=\u0425\u043e\u043d\u0433 \u041a\u043e\u043d\u0433
territories.TT=\u0422\u0440\u0438\u043d\u0438\u0434\u0430\u0434 \u0438 \u0422\u043e\u0431\u0430\u0433\u043e
territories.TR=\u0422\u0443\u0440\u0441\u043a\u0430
territories.TO=\u0422\u043e\u043d\u0433\u0430
territories.TN=\u0422\u0443\u043d\u0438\u0441
territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d
+languages.lb=\u041b\u0443\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0448\u043a\u0438
+languages.la=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0438
+languages.xh=\u0425\u0430\u0443\u0441\u0430
+languages.ky=\u041a\u0438\u0440\u0433\u0438\u0441\u043a\u0438
+languages.ku=\u041a\u0443\u0440\u0434\u0441\u043a\u0438
+languages.ko=\u041a\u043e\u0440\u0435\u0458\u0441\u043a\u0438
+languages.kn=\u041a\u0430\u043d\u0434\u0438\u0433\u0430\u043d\u0441\u043a\u0438 (\u0418\u043d\u0434\u0438\u0458\u0430)
+languages.km=\u041a\u043c\u0435\u0440\u0441\u043a\u0438
+languages.kk=\u041a\u043e\u0437\u0430\u0447\u043a\u0438
+languages.ira=\u0418\u0440\u0430\u043d\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.grc=\u0421\u0442\u0430\u0440\u043e\u0433\u0440\u0447\u043a\u0438
languages.ka=\u0413\u0440\u0443\u0437\u0438\u0458\u0441\u043a\u0438
-languages.zh=\u041a\u0438\u043d\u0435\u0441\u043a\u0438
-languages.ar=\u0410\u0440\u0430\u043f\u0441\u043a\u0438
-languages.my=\u0411\u0443\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.gem=\u0413\u0435\u0440\u043c\u0430\u043d\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.jv=\u0408\u0430\u0432\u0430\u043d\u0441\u043a\u0438
+languages.cel=\u041a\u0435\u043b\u0442\u0441\u043a\u0438
+languages.scn=\u0421\u0438\u0446\u0438\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0438
+languages.ja=\u0408\u0430\u043f\u0430\u043d\u0441\u043a\u0438
+languages.vi=\u0412\u0438\u0458\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438
+languages.it=\u0418\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0438
+languages.is=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.uz=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u043a\u0438
+languages.ur=\u0423\u0440\u0434\u0443
+languages.ie=\u041c\u0435\u0452\u0443\u0458\u0435\u0437\u0438\u0447\u043a\u0438
+languages.id=\u0418\u043d\u0434\u043e\u043d\u0435\u0436\u0430\u043d\u0441\u043a\u0438
+languages.ia=\u0418\u043d\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0432\u0430
+languages.uk=\u0423\u043a\u0440\u0430\u0458\u0438\u043d\u0441\u043a\u0438
+languages.ug=\u0423\u0458\u0433\u0443\u0440\u0441\u043a\u0438
+languages.fiu=\u0423\u0433\u0440\u043e-\u0444\u0438\u043d\u0441\u043a\u0438
+languages.und=\u041d\u0435\u043f\u043e\u0437\u043d\u0430\u0442 \u0438\u043b\u0438 \u043d\u0435\u0432\u0430\u0436\u0435\u045b\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.hy=\u0408\u0435\u0440\u043c\u0435\u043d\u0441\u043a\u0438
+languages.got=\u0413\u043e\u0442\u0441\u043a\u0438
+languages.hu=\u041c\u0430\u0452\u0430\u0440\u0441\u043a\u0438
+languages.ht=\u0425\u0430\u0438\u0442\u0441\u043a\u0438
+languages.phi=\u0424\u0438\u043b\u0438\u043f\u0438\u043d\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.hr=\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.fil=\u0422\u0430\u0433\u0430\u043b\u043e\u0433
+languages.ty=\u0422\u0430\u0445\u0438\u045b\u0430\u043d\u0441\u043a\u0438
+languages.apa=\u0410\u043f\u0430\u0447\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.tw=\u0422\u0432\u0438
+languages.goh=\u0421\u0442\u0430\u0440\u043e\u043d\u0435\u043c\u0430\u0447\u043a\u0438
+languages.tt=\u0422\u0430\u0442\u0430\u0440\u0441\u043a\u0438
+languages.hi=\u0425\u0438\u043d\u0434\u0438
+languages.tr=\u0422\u0443\u0440\u0441\u043a\u0438
+languages.cop=\u041a\u043e\u043f\u0442\u0441\u043a\u0438
+languages.he=\u0425\u0435\u0431\u0440\u0435\u0458\u0441\u043a\u0438
+languages.sai=\u0408\u0435\u0437\u0438\u043a \u0458\u0443\u0436\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u0447\u043a\u0438\u0445 \u0418\u043d\u0434\u0438\u0458\u0430\u043d\u0430\u0446\u0430
+languages.tl=\u0422\u0430\u0433\u0430\u043b\u043e\u0433
+languages.tk=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u043a\u0438
+languages.ti=\u0422\u0438\u0433\u0440\u0438\u045a\u0430
+languages.th=\u0422\u0430\u0458\u043b\u0430\u043d\u0434\u0441\u043a\u0438
+languages.te=\u0422\u0435\u043b\u0443\u0433\u0443
+languages.mas=\u041c\u0430\u0441\u0430\u0438
+languages.ta=\u0422\u0430\u043c\u0438\u043b\u0441\u043a\u0438
+languages.gu=\u0413\u0443\u045f\u0430\u0440\u0430\u0442\u0438
+languages.ine=\u0418\u043d\u0434\u043e-\u0435\u0432\u0440\u043e\u043f\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.gn=\u0413\u0432\u0430\u0440\u0430\u043d\u0438
languages.sw=\u0421\u0432\u0430\u0445\u0438\u043b\u0438
+languages.gl=\u0413\u0430\u043b\u0441\u043a\u0438
languages.sv=\u0428\u0432\u0435\u0434\u0441\u043a\u0438
-languages.pt=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
-languages.mo=\u041c\u043e\u043b\u0434\u0430\u0432\u0441\u043a\u0438
+languages.su=\u0421\u0443\u0434\u0430\u043d\u0441\u043a\u0438
+languages.st=\u0421\u0435\u0441\u043e\u0442\u043e
languages.sr=\u0421\u0440\u043f\u0441\u043a\u0438
-languages.mn=\u041c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438
-languages.af=\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0435\u0440\u0441\u043a\u0438
languages.sq=\u0410\u043b\u0431\u0430\u043d\u0441\u043a\u0438
-languages.mk=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438
-languages.de=\u041d\u0435\u043c\u0430\u0447\u043a\u0438
-languages.pl=\u041f\u043e\u0459\u0441\u043a\u0438
+languages.so=\u0421\u043e\u043c\u0430\u043b\u0441\u043a\u0438
+languages.gd=\u0428\u043a\u043e\u0442\u0441\u043a\u0438 \u0413\u0430\u043b\u0441\u043a\u0438
languages.sl=\u0421\u043b\u043e\u0432\u0435\u043d\u0430\u0447\u043a\u0438
-languages.sk=\u0421\u043b\u043e\u0432\u0430\u0447\u043a\u0438
-languages.da=\u0414\u0430\u043d\u0441\u043a\u0438
languages.ga=\u0418\u0440\u0441\u043a\u0438
-languages.sh=\u0421\u0440\u043f\u0441\u043a\u043e-\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438
-languages.vi=\u0412\u0438\u0458\u0435\u0442\u043d\u0430\u043c\u0441\u043a\u0438
-languages.ja=\u0408\u0430\u043f\u0430\u043d\u0441\u043a\u0438
-languages.yi=\u0408\u0438\u0434\u0438\u0448
+languages.sk=\u0421\u043b\u043e\u0432\u0430\u0447\u043a\u0438
+languages.si=\u0421\u0438\u043d\u0433\u0430\u043b\u0435\u0441\u043a\u0438
+languages.sh=\u0421\u0440\u043f\u0441\u043a\u043e\u0445\u0440\u0432\u0430\u0442\u0441\u043a\u0438
+languages.fy=\u0424\u0440\u0438\u0437\u0438\u0458\u0441\u043a\u0438
+languages.sd=\u0421\u0438\u043d\u0434\u0438
+languages.sc=\u0421\u0430\u0440\u0434\u0438\u045a\u0430\u0441\u043a\u0438
languages.sa=\u0421\u0430\u043d\u0441\u043a\u0440\u0438\u0442
-languages.cs=\u0427\u0435\u0448\u043a\u0438
-languages.lv=\u041b\u0435\u0442\u043e\u043d\u0441\u043a\u0438
+languages.ang=\u0421\u0442\u0430\u0440\u043e\u0435\u043d\u0433\u043b\u0435\u0441\u043a\u0438
languages.fr=\u0424\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0438
-languages.it=\u0418\u0442\u0430\u043b\u0438\u0458\u0430\u043d\u0441\u043a\u0438
-languages.co=\u041a\u043e\u0440\u0437\u0438\u043a\u0430\u043d\u0441\u043a\u0438
-languages.is=\u0418\u0441\u043b\u0430\u043d\u0434\u0441\u043a\u0438
-languages.lt=\u041b\u0438\u0442\u0432\u0430\u043d\u0441\u043a\u0438
+languages.sla=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.fo=\u0424\u0430\u0440\u0441\u043a\u0438
+languages.pro=\u0421\u0442\u0430\u0440\u043e\u043f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u0441\u043a\u0438
languages.ru=\u0420\u0443\u0441\u043a\u0438
+languages.cai=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u043d\u043e \u0430\u043c\u0435\u0440\u0438\u0447\u043a\u0438 \u0418\u043d\u0434\u0438\u0458\u0430\u043d\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
languages.fi=\u0424\u0438\u043d\u0441\u043a\u0438
languages.ro=\u0420\u0443\u043c\u0443\u043d\u0441\u043a\u0438
languages.rm=\u0420\u0435\u0442\u043e-\u0420\u043e\u043c\u0430\u043d\u0441\u043a\u0438
-languages.ca=\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438
-languages.id=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u0438\u0458\u0441\u043a\u0438
-languages.uk=\u0423\u043a\u0440\u0430\u0458\u0438\u043d\u0441\u043a\u0438
languages.fa=\u041f\u0435\u0440\u0441\u0438\u0458\u0441\u043a\u0438
-languages.la=\u041b\u0430\u0442\u0438\u043d\u0441\u043a\u0438
-languages.hy=\u0410\u0440\u043c\u0435\u043d\u0441\u043a\u0438
+languages.pt_PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438 (\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0438\u0458\u0430)
+languages.nl_BE=\u0424\u043b\u0430\u043c\u0435\u043d\u0441\u043a\u0438
+languages.es_419=\u0428\u043f\u0430\u043d\u0441\u043a\u0438 (\u0408\u0443\u0436\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0438 \u041a\u0430\u0440\u0438\u0431\u0438)
+languages.peo=\u0421\u0442\u0430\u0440\u043e\u043f\u0435\u0440\u0441\u0438\u0458\u0441\u043a\u0438
languages.eu=\u0411\u0430\u0441\u043a\u0438\u0458\u0441\u043a\u0438
-languages.ky=\u041a\u0438\u0440\u0433\u0438\u0441\u043a\u0438
-languages.br=\u0411\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438
languages.et=\u0415\u0441\u0442\u043e\u043d\u0441\u043a\u0438
languages.es=\u0428\u043f\u0430\u043d\u0441\u043a\u0438
-languages.hu=\u041c\u0430\u0452\u0430\u0440\u0441\u043a\u0438
-languages.ku=\u041a\u0443\u0440\u0434\u0441\u043a\u0438
-languages.hr=\u0425\u0440\u0432\u0430\u0442\u0441\u043a\u0438
languages.eo=\u0415\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
languages.en=\u0415\u043d\u0433\u043b\u0435\u0441\u043a\u0438
languages.el=\u0413\u0440\u0447\u043a\u0438
-languages.ko=\u041a\u043e\u0440\u0435\u0458\u0441\u043a\u0438
-languages.no=\u041d\u043e\u0440\u0432\u0435\u0448\u043a\u0438
+languages.jrb=\u0408\u0443\u0434\u0435\u043e-\u0430\u0440\u0430\u043f\u0441\u043a\u0438
+languages.fro=\u0421\u0442\u0430\u0440\u043e\u0444\u0440\u0430\u043d\u0446\u0443\u0441\u043a\u0438
+languages.del=\u0414\u0435\u043b\u0430\u0432\u0435\u0440
+languages.pt=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0441\u043a\u0438
+languages.ps=\u041f\u0430\u0448\u0442\u043e
+languages.de=\u041d\u0435\u043c\u0430\u0447\u043a\u0438
+languages.pl=\u041f\u043e\u0459\u0441\u043a\u0438
+languages.da=\u0414\u0430\u043d\u0441\u043a\u0438
+languages.sux=\u0421\u0443\u043c\u0435\u0440\u0441\u043a\u0438
+languages.jpr=\u0408\u0443\u0434\u0435\u043e-\u043f\u0435\u0440\u0441\u0438\u0458\u0441\u043a\u0438
+languages.cy=\u0412\u0435\u043b\u0448\u043a\u0438
+languages.akk=\u0410\u043a\u0430\u0434\u0438\u0458\u0441\u043a\u0438
+languages.pa=\u041f\u0430\u043d\u045f\u0430\u0431\u0441\u043a\u0438
+languages.cu=\u0426\u0440\u043a\u0432\u0435\u043d\u043e\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u043a\u0438
+languages.cs=\u0427\u0435\u0448\u043a\u0438
+languages.co=\u041a\u043e\u0440\u0437\u0438\u043a\u0430\u043d\u0441\u043a\u0438
+languages.or=\u041e\u0440\u0438\u0458\u0441\u043a\u0438
+languages.ce=\u0427\u0435\u0447\u0435\u043d\u0441\u043a\u0438
+languages.ca=\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u043a\u0438
+languages.oc=\u041f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u0441\u043a\u0438
+languages.bs=\u0411\u043e\u0441\u0430\u043d\u0441\u043a\u0438
+languages.br=\u0411\u0440\u0435\u0442\u043e\u043d\u0441\u043a\u0438
+languages.bo=\u0422\u0438\u0431\u0435\u0442\u0430\u043d\u0441\u043a\u0438
+languages.zh_Hans=\u041a\u0438\u043d\u0435\u0441\u043a\u0438 (\u043f\u043e\u0458\u0435\u0434\u043d\u043e\u0441\u0442\u0430\u0432\u0459\u0435\u043d)
+languages.bn=\u0411\u0435\u043d\u0433\u043b\u0430\u0441\u043a\u0438
+languages.zh_Hant=\u041a\u0438\u043d\u0435\u0441\u043a\u0438 (\u0442\u0440\u0430\u0434\u0438\u0446\u0438\u043e\u043d\u0430\u043b\u043d\u0438)
+languages.nv=\u041d\u0430\u0432\u0430\u0445\u043e
+languages.bh=\u0411\u0438\u0445\u0430\u0440\u0441\u043a\u0438
languages.bg=\u0411\u0443\u0433\u0430\u0440\u0441\u043a\u0438
-languages.km=\u041a\u043c\u0435\u0440\u0441\u043a\u0438
-languages.tr=\u0422\u0443\u0440\u0441\u043a\u0438
languages.be=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u043a\u0438
-languages.hi=\u0425\u0438\u043d\u0434\u0438
+languages.no=\u041d\u043e\u0440\u0432\u0435\u0448\u043a\u0438
languages.nl=\u0425\u043e\u043b\u0430\u043d\u0434\u0441\u043a\u0438
-languages.he=\u0425\u0435\u0431\u0440\u0435\u0458\u0441\u043a\u0438
+languages.zu=\u0417\u0443\u043b\u0443
+languages.sgn=\u0408\u0435\u0437\u0438\u043a \u0437\u043d\u0430\u043a\u043e\u0432\u0430
+languages.az=\u0410\u0437\u0435\u0440\u0431\u0435\u0458\u045f\u0430\u043d\u0441\u043a\u0438
+languages.ne=\u041d\u0435\u043f\u0430\u043b\u0441\u043a\u0438
+languages.av=\u0410\u0432\u0430\u0440\u0441\u043a\u0438
+languages.aus=\u0410\u0443\u0441\u0442\u0440\u0430\u043b\u0438\u0458\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.as=\u0410\u0441\u0435\u043c\u0438\u0458\u0441\u043a\u0438
+languages.ar=\u0410\u0440\u0430\u043f\u0441\u043a\u0438
+languages.zh=\u041a\u0438\u043d\u0435\u0441\u043a\u0438
+languages.zxx=\u0411\u0435\u0437 \u043b\u0438\u043d\u0433\u0432\u0438\u0441\u0442\u0438\u0447\u043a\u043e\u0433 \u0441\u0430\u0434\u0440\u0436\u0430\u0458\u0430
+languages.sga=\u0421\u0442\u0430\u0440\u043e\u0438\u0440\u0441\u043a\u0438
+languages.my=\u0411\u0443\u0440\u043c\u0430\u043d\u0441\u043a\u0438
+languages.am=\u0410\u043c\u0445\u0430\u0440\u0441\u043a\u0438
+languages.nai=\u0408\u0435\u0437\u0438\u043a \u0441\u0435\u0432\u0435\u0440\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u0447\u043a\u0438\u0445 \u0418\u043d\u0434\u0438\u0458\u0430\u043d\u0430\u0446\u0430
+languages.mt=\u041c\u0435\u043b\u0442\u0435\u0448\u043a\u0438
+languages.ms=\u041c\u0430\u043b\u0430\u0458\u0441\u043a\u0438
+languages.chr=\u0427\u0438\u0440\u043e\u043a\u0438
+languages.mr=\u041c\u0430\u0440\u0430\u0442\u0438
+languages.af=\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0435\u0440\u0441\u043a\u0438
+languages.haw=\u0425\u0430\u0432\u0430\u0458\u0441\u043a\u0438
+languages.mo=\u041c\u043e\u043b\u0434\u0430\u0432\u0441\u043a\u0438
+languages.mn=\u041c\u043e\u043d\u0433\u043e\u043b\u0441\u043a\u0438
+languages.en_US=\u0415\u043d\u0433\u043b\u0435\u0441\u043a\u0438 (\u0421\u0410\u0414)
+languages.ml=\u041c\u0430\u043b\u0430\u0458\u0430\u043b\u0430\u043c
+languages.bnt=\u0411\u0430\u043d\u0442\u0443
+languages.mk=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u043a\u0438
+languages.mi=\u041c\u0430\u043e\u0440\u0441\u043a\u0438
+languages.egy=\u0421\u0442\u0430\u0440\u043e\u0435\u0433\u0438\u043f\u0430\u0442\u0441\u043a\u0438
+languages.tlh=\u041a\u043b\u0438\u043d\u0433\u043e\u043d\u0441\u043a\u0438
+languages.yi=\u0408\u0438\u0434\u0438\u0448
+languages.gsw=\u041d\u0435\u043c\u0430\u0447\u043a\u0438 (\u0428\u0432\u0430\u0458\u0446\u0430\u0440\u0441\u043a\u0430)
+languages.bat=\u0411\u0430\u043b\u0442\u0438\u0447\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+languages.lv=\u041b\u0435\u0442\u043e\u043d\u0441\u043a\u0438
+languages.dak=\u0414\u0430\u043a\u043e\u0442\u0430
+languages.lt=\u041b\u0438\u0442\u0432\u0430\u043d\u0441\u043a\u0438
+languages.lo=\u041b\u0430\u043e\u0441\u043a\u0438
+languages.ln=\u041b\u0438\u043d\u0433\u0430\u043b\u0430
+variants.SCOTLAND=SCOTLAND
+variants.1606NICT=1606NICT
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties
index 6d66ad1..ca2218d 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_BA_Cyrl.properties
@@ -5,19 +5,14 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
currenciesDisplayName.BAM=\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u0438\u0431\u0438\u043b\u043d\u0430 \u041c\u0430\u0440\u043a\u0430
currenciesSymbol.BAM=\u041a\u041c.
-shortMonths=\u0408\u0430\u043d®\u0424\u0435\u0431®\u041c\u0430\u0440®\u0410\u043f\u0440®\u041c\u0430\u0458®\u0408\u0443\u043d®\u0408\u0443\u043b®\u0410\u0432\u0433®\u0421\u0435\u043f®\u041e\u043a\u0442®\u041d\u043e\u0432®\u0414\u0435\u0446®®
-months=®®®®®\u0458\u0443\u043d\u0438®\u0458\u0443\u043b\u0438®®®®®®®
-shortWeekdays=®®®®\u0441\u0440\u0438®®®®
-weekdays=®®®®\u0441\u0440\u0438\u0458\u0435\u0434\u0430®®®®
+months=\u00ae\u00ae\u00ae\u00ae\u00ae\u0458\u0443\u043d\u0438\u00ae\u0458\u0443\u043b\u0438\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00ae\u00ae\u00ae\u00ae\u0441\u0440\u0438\u00ae\u00ae\u00ae\u00ae
+weekdays=\u00ae\u00ae\u00ae\u00ae\u0441\u0440\u0438\u0458\u0435\u0434\u0430\u00ae\u00ae\u00ae\u00ae
shortDateFormat=yy-MM-dd
mediumDateFormat=yyyy-MM-dd
-longDateFormat=dd. MMMM yyyy.
-fullDateFormat=EEEE, dd. MMMM yyyy.
shortTimeFormat=HH:mm
mediumTimeFormat=HH:mm:ss
-fullTimeFormat=HH '\u0447\u0430\u0441\u043e\u0432\u0430', mm '\u043c\u0438\u043d\u0443\u0442\u0430', ss' \u0441\u0435\u043a\u0443\u043d\u0434\u0438'
-zoneStrings=Europe/Sarajevo®\u0421\u0440\u0435\u0434\u045a\u0435 \u0415\u0432\u0440\u043e\u043f\u0441\u043a\u043e \u0412\u0440\u0438\u0458\u0435\u043c\u0435®©
-languages.sr=\u0441\u0440\u043f\u0441\u043a\u0438 \u0458\u0435\u0437\u0438\u043a
+fullTimeFormat=HH '\u0447\u0430\u0441\u043e\u0432\u0430', mm '\u043c\u0438\u043d\u0443\u0442\u0430', ss '\u0441\u0435\u043a\u0443\u043d\u0434\u0438' z
+languages.sr=\u0441\u0440\u043f\u0441\u043a\u0438
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_Latn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_Latn.properties
index 8f6a178..48b6bf2 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_Latn.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_Latn.properties
@@ -5,50 +5,87 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currenciesDisplayName.GBP=Funta sterlinga
currenciesDisplayName.CHF=\u0160vajcarski franak
+currenciesDisplayName.AUD=Australijski dolar
+currenciesDisplayName.FJD=Fid\u017ei dolar
+currenciesDisplayName.RUB=Ruska rublja
+currenciesDisplayName.ESP=\u0160panska pezeta
+currenciesDisplayName.CZK=\u010ce\u0161ka kruna
+currenciesDisplayName.SEK=\u0160vedska kruna
+currenciesDisplayName.BEF=Belgijski franak
currenciesDisplayName.HRK=Kuna
-currenciesDisplayName.FRF=Francuski franak
+currenciesDisplayName.SKK=Slova\u010dka kruna
+currenciesDisplayName.MAD=Marokanski dirham
+currenciesDisplayName.TWD=Novi tajvanski dolar
+currenciesDisplayName.XXX=Nepoznata ili neva\u017ee\u0107a valuta
+currenciesDisplayName.MYR=Malezijski ringgit
+currenciesDisplayName.BND=Brunejski dolar
+currenciesDisplayName.ATS=Austrijski \u0161iling
+currenciesDisplayName.HUF=Ma\u0111arska forinta
currenciesDisplayName.IEP=Irska funta
+currenciesDisplayName.HRD=Hrvatski dinar
+currenciesDisplayName.UAH=Ukrajinska hrivnja
+currenciesDisplayName.KWD=Kuvajtski dinar
currenciesDisplayName.INR=Indijski Rupi
+currenciesDisplayName.AED=Ujedinjeni arapski emirati dirham
+currenciesDisplayName.FIM=Finska marka
+currenciesDisplayName.GRD=Drahma
+currenciesDisplayName.CAD=Kanadski dolar
+currenciesDisplayName.BAM=Konvertibilna marka
+currenciesDisplayName.ITL=Italijanska lira
+currenciesDisplayName.USD=Ameri\u010dki dolar
+currenciesDisplayName.BGN=Bugarski lev
currenciesDisplayName.JPY=Jen
-currenciesDisplayName.HRD=Hrvatski dinar
+currenciesDisplayName.PKR=Pakistanski rupi
+currenciesDisplayName.PEN=Peruanski nuevo sol
+currenciesDisplayName.GBP=Funta sterlinga
+currenciesDisplayName.PHP=Filipinski peso
+currenciesDisplayName.FRF=Francuski franak
+currenciesDisplayName.NOK=Norve\u0161ka kruna
currenciesDisplayName.EUR=EVRO
-currenciesDisplayName.ITL=Italijanska lira
+currenciesDisplayName.NLG=Holandski gulden
+currenciesDisplayName.CSD=Srpski Dinar (Srbija i Crna Gora)
+currenciesDisplayName.HKD=Hong Kongski Dolari
+currenciesDisplayName.IDR=Indonezijska rupiah
+currenciesDisplayName.ZAR=Ju\u017ena Afrika Rand
+currenciesDisplayName.SGD=Singapurski dolar
+currenciesDisplayName.MXN=Meksi\u010dki peso
+currenciesDisplayName.TRY=Nova turska lira
+currenciesDisplayName.CLP=\u010cileanski pezo
currenciesDisplayName.PTE=Portugalski eskudo
-currenciesDisplayName.AUD=Australijski dolar
-currenciesDisplayName.NOK=Norve\u0161ka kruna
-currenciesDisplayName.DEM=Nema\u010dka marka
+currenciesDisplayName.COP=Kolumbijski pezo
+currenciesDisplayName.KRW=Ju\u017eno-korejski Von
+currenciesDisplayName.SIT=Tolar
+currenciesDisplayName.RSD=Srpski Dinar
+currenciesDisplayName.EEK=Estonska kroon
+currenciesDisplayName.TRL=Turska lira
currenciesDisplayName.LUF=Luksembur\u0161ki franak
-currenciesDisplayName.NLG=Holandski gulden
-currenciesDisplayName.BEF=Belgijski franak
+currenciesDisplayName.DEM=Nema\u010dka marka
+currenciesDisplayName.BRL=Brazilski Real
+currenciesDisplayName.VEB=Venecuelanski bolivar
+currenciesDisplayName.ARS=Argentinski pezo
+currenciesDisplayName.CNY=Kineski Juan Renminbi
currenciesDisplayName.DKK=Danska kruna
+currenciesDisplayName.ILS=Izraelski \u0161ekel
+currenciesDisplayName.MTL=Malte\u0161ka lira
+currenciesDisplayName.VND=Vijetnamski dong
+currenciesDisplayName.BOB=Bolivijski Boliviano
+currenciesDisplayName.NZD=Novozelandski dolar
currenciesDisplayName.RUR=Ruska rublja (1991-1998)
-currenciesDisplayName.KWD=Kuvajtski dinar
-currenciesDisplayName.CNY=Kineski Juan Renminbi
-currenciesDisplayName.ESP=\u0160panska pezeta
-currenciesDisplayName.GRD=Drahma
-currenciesDisplayName.CAD=Kanadski dolar
-currenciesDisplayName.ATS=Austrijski \u0161iling
-currenciesDisplayName.BRL=Brazilski Real
-currenciesDisplayName.SEK=\u0160vedska kruna
-currenciesDisplayName.USD=Ameri\u010dki dolar
-currenciesDisplayName.CSD=Srpski Dinar
-currenciesDisplayName.RUB=Ruska rublja
-currenciesDisplayName.FIM=Finska marka
-currenciesDisplayName.SIT=Tolar
-currenciesDisplayName.BAM=Konvertibilna marka
+currenciesDisplayName.RON=Rumunski leu
+currenciesDisplayName.KES=Kenijski \u0161iling
+currenciesDisplayName.LTL=Litvanski litas
+currenciesDisplayName.EGP=Egipatska funta
currenciesSymbol.CNY=U
currenciesSymbol.YUN=Din
-shortMonths=jan®feb®mar®apr®maj®jun®jul®avg®sep®okt®nov®dec®®
-months=januar®februar®mart®april®maj®jun®jul®avgust®septembar®oktobar®novembar®decembar®®
-shortWeekdays=®ned®pon®uto®sre®\u010det®pet®sub®
-weekdays=®nedelja®ponedeljak®utorak®sreda®\u010detvrtak®petak®subota®
-eras=p. n. e.®n. e.®
-longDateFormat=EEEE, d.MM.yyyy.
-fullDateFormat=EEEE, dd. MMMM yyyy.
-zoneStrings=Europe/Belgrade®Centralno Evropsko Vreme®Centralno Evropsko Vreme®©
-territories.TL=Timor-Leste
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aeavg\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januar\u00aefebruar\u00aemart\u00aeapril\u00aemaj\u00aejun\u00aejul\u00aeavgust\u00aeseptembar\u00aeoktobar\u00aenovembar\u00aedecembar\u00ae\u00ae
+shortWeekdays=\u00aened\u00aepon\u00aeuto\u00aesre\u00ae\u010det\u00aepet\u00aesub\u00ae
+weekdays=\u00aenedelja\u00aeponedeljak\u00aeutorak\u00aesreda\u00ae\u010detvrtak\u00aepetak\u00aesubota\u00ae
+eras=p. n. e.\u00aen. e\u00ae
+ampms=AM\u00aePM\u00ae
+zoneStrings=Europe_Central\u00aeCentralnoevropsko vreme\u00ae\u00aeCentralnoevropsko letnje vreme\u00ae\u00ae\u00a9
+territories.TL=Isto\u010dni Timor
territories.TK=Tokelau
territories.TJ=Tad\u017eikistan
territories.TH=Tajland
@@ -72,10 +109,11 @@ territories.GL=Grenland
territories.SV=Salvador
territories.062=Ju\u017eno-centralna Azija
territories.ST=Sao Tome i Principe
-territories.061=Polinezija
territories.GI=Gibraltar
+territories.061=Polinezija
territories.GH=Gana
territories.SR=Surinam
+territories.GG=Gurnsi
territories.GF=Francuska Gvajana
territories.GE=Gruzija
territories.SO=Somalija
@@ -96,26 +134,27 @@ territories.SC=Sej\u0161eli
territories.SB=Solomonska Ostrva
territories.SA=Saudijska Arabija
territories.FR=Francuska
-territories.057=Micronezija
territories.FO=Farska Ostrva
+territories.057=Micronezija
territories.FM=Mikronezija
territories.RW=Ruanda
territories.054=Melanezija
-territories.053=Australija i Novi Zeland
territories.FK=Folklandska Ostrva
+territories.053=Australija i Novi Zeland
territories.RU=Rusija
territories.FJ=Fid\u017ei
territories.FI=Finska
+territories.RS=Srbija
territories.RO=Rumunija
territories.RE=Rejunion
territories.ET=Etiopija
territories.ES=\u0160panija
territories.ER=Eritreja
-territories.833=Ostrvo Man
+territories.QU=Evropska unija
territories.EH=Zapadna Sahara
territories.EG=Egipat
-territories.830=Kanalska ostrva
territories.EE=Estonija
+territories.830=Kanalska ostrva
territories.QO=Ostala okeanija
territories.EC=Ekvador
territories.DZ=Al\u017eir
@@ -123,9 +162,10 @@ territories.QA=Katar
territories.039=Ju\u017ena Evropa
territories.DO=Dominikanska Republika
territories.PY=Paragvaj
-territories.035=Jugoisto\u010dna Azija
territories.DM=Dominika
+territories.035=Jugoisto\u010dna Azija
territories.PW=Palau
+territories.034=Ju\u017ena Azija
territories.DK=Danska
territories.DJ=D\u017eibuti
territories.PT=Portugal
@@ -143,7 +183,7 @@ territories.PF=Francuska Polinezija
territories.CZ=\u010ce\u0161ka
territories.PE=Peru
territories.CY=Kipar
-territories.CX=Uskr\u0161nja Ostrva
+territories.CX=Bo\u017ei\u0107na Ostrva
territories.CV=Kape Verde
territories.PA=Panama
territories.CU=Kuba
@@ -155,8 +195,8 @@ territories.CN=Kina
territories.CM=Kamerun
territories.CL=\u010cile
territories.CK=Kukova Ostrva
-territories.CI=Obala Slonova\u010de
territories.021=Severna Amerika
+territories.CI=Obala Slonova\u010de
territories.CH=\u0160vajcarska
territories.CG=Kongo
territories.CF=Centralno Afri\u010dka Republika
@@ -164,6 +204,7 @@ territories.CD=Demokratska Republika Kongo
territories.CC=Kokos (Keling) Ostrva
territories.OM=Oman
territories.CA=Kanada
+territories.419=Latinska Amerika i Karibi
territories.BZ=Belise
territories.BY=Belorusija
territories.BW=Bocvana
@@ -174,23 +215,24 @@ territories.BR=Brazil
territories.019=Amerike
territories.018=Ju\u017ena Afrika
territories.NZ=Novi Zeland
-territories.BO=Bolivija
territories.017=Centralna Afrika
+territories.BO=Bolivija
territories.BN=Brunej
-territories.BM=Bermuda
territories.015=Severna Afrika
+territories.BM=Bermuda
territories.014=Isto\u010dna Afrika
territories.013=Centralna Amerika
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Zapadna Afrika
+territories.BI=Burundi
territories.BH=Bahrein
territories.NR=Nauru
territories.BG=Bugarska
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgija
+territories.ZZ=Nepoznat ili neva\u017ee\u0107i region
territories.NO=Norve\u0161ka
territories.BD=Banglade\u0161
territories.BB=Barbados
@@ -211,24 +253,25 @@ territories.AU=Australija
territories.AT=Austrija
territories.AS=Ameri\u010dka Samoa
territories.AR=Argentina
-territories.009=Okeanija
territories.AQ=Antarktika
+territories.009=Okeanija
territories.MZ=Mozambik
territories.AO=Angola
territories.MY=Malezija
territories.AN=Holandski Antili
territories.MX=Meksiko
-territories.005=Ju\u017ena Amerika
territories.AM=Armenija
+territories.005=Ju\u017ena Amerika
territories.MW=Malavi
territories.AL=Albanija
territories.MV=Maldivi
-territories.ZA=Ju\u017ena Afrika
+territories.003=Severnoameri\u010dki kontinent
+territories.ZA=Ju\u017enoafri\u010dka Republika
territories.MU=Mauricius
territories.002=Afrika
territories.MT=Malta
-territories.001=Svet
territories.AI=Angvila
+territories.001=Svet
territories.MS=Monserat
territories.MR=Mauritanija
territories.AG=Antigva i Barbuda
@@ -236,7 +279,7 @@ territories.MQ=Martinik
territories.AF=Avganistan
territories.MP=Severna Marijanska Ostrva
territories.AE=Ujedinjeni Arapski Emirati
-territories.MO=Makao (S. A. R. Kina)
+territories.MO=Makao
territories.AD=Andora
territories.MN=Mongolija
territories.MM=Mijanmar
@@ -245,6 +288,7 @@ territories.MK=Makedonija
territories.YT=Majote
territories.MH=Mar\u0161alska Ostrva
territories.MG=Madagaskar
+territories.ME=Crna Gora
territories.MD=Moldavija
territories.MC=Monako
territories.MA=Maroko
@@ -283,6 +327,7 @@ territories.JP=Japan
territories.JO=Jordan
territories.JM=Jamajka
territories.VU=Vanuatu
+territories.JE=D\u017eersi
territories.VN=Vijetnam
territories.VI=S.A.D. Devi\u010danska Ostrva
territories.VG=Britanska Devi\u010danska Ostrva
@@ -294,9 +339,10 @@ territories.IS=Island
territories.IR=Iran
territories.IQ=Irak
territories.UZ=Uzbekistan
-territories.IO=British Indian Ocean Territory
+territories.IO=Britansko Indijska Okeanska Teritorija
territories.UY=Urugvaj
territories.IN=Indija
+territories.IM=Ostrvo Man
territories.IL=Izrael
territories.US=Sjedinjene Ameri\u010dke Dr\u017eave
territories.IE=Irska
@@ -312,70 +358,127 @@ territories.HN=Honduras
territories.HM=Herd i Mekdonald Ostrva
territories.TW=Tajvan
territories.TV=Tuvalu
-territories.HK=Hong Kong (S. A. R. Kina)
+territories.HK=Hong Kong
territories.TT=Trinidad i Tobago
territories.TR=Turska
territories.TO=Tonga
territories.TN=Tunis
territories.TM=Turkmenistan
+languages.es=\u0160panski
+languages.ku=Kurdski
+languages.eo=Esperanto
+languages.en=Engleski
+languages.el=Gr\u010dki
+languages.ko=Korejski
+languages.kn=Kanada
+languages.km=Kmerski
languages.ka=Gruzijski
+languages.zh_Hans=Kineski (pojednostavljen)
+languages.zh_Hant=Kineski (tradicionalni)
+languages.jv=Javanski
+languages.fil=Tagalog
+languages.pt=Portugalski
+languages.ps=Pa\u0161tunski
+languages.de=Nema\u010dki
+languages.pl=Poljski
+languages.da=Danski
+languages.tlh=Klingonski
+languages.ja=Japanski
+languages.vi=Vijetnamski
+languages.cy=Vel\u0161ki
+languages.pa=Pand\u017eabski
+languages.cu=Staroslovenski
+languages.cs=\u010ce\u0161ki
+languages.it=Italijanski
+languages.co=Korzikanski
+languages.is=Islandski
+languages.haw=Havajski
+languages.uz=Uzbe\u010dki
+languages.or=Orijski
+languages.ce=\u010ce\u010denski
+languages.ur=Urdu
+languages.chr=\u010ceroki
+languages.ca=Katalonski
+languages.ie=Me\u0111ujezi\u010dki
+languages.id=Indonezijski
+languages.uk=Ukrajinski
+languages.ia=Interlingva
+languages.oc=Provansalski
+languages.ug=Ujgurski
+languages.hy=Jermenski
+languages.bs=Bosanski
+languages.br=Bretonski
+languages.hu=Ma\u0111arski
+languages.pt_PT=Portugalski (Portugalija)
+languages.bn=Bengalski
+languages.hr=Hrvatski
+languages.tw=Tvi
+languages.bh=Biharski
+languages.bg=Bugarski
+languages.no=Norve\u0161ki
+languages.be=Beloruski
+languages.hi=Hindi
+languages.tr=Turski
+languages.nl=Holandski
+languages.zu=Zulu
+languages.he=Hebrejski
+languages.tl=Tagalski
+languages.tk=Turkmenski
+languages.ne=Nepalski
+languages.az=Azerbejd\u017eanski
+languages.ti=Tigrinja
+languages.th=Tajlandski
+languages.en_US=Engleski (SAD)
+languages.te=Telugu
languages.zh=Kineski
+languages.as=Asemijski
languages.ar=Arapski
+languages.ta=Tamilski
+languages.gu=Gud\u017earati
languages.my=Burmanski
+languages.am=Amharski
+languages.mt=Melte\u0161ki
+languages.ms=Malajski
+languages.gn=Gvarani
languages.sw=Svahili
+languages.mr=Marati
languages.sv=\u0160vedski
-languages.pt=Portugalski
+languages.gl=Galski
+languages.su=Sudanski
+languages.af=Afrikanerski
+languages.st=Sesoto
languages.mo=Moldavski
-languages.sr=Srpski
languages.mn=Mongolski
-languages.af=Afrikanerski
+languages.sr=Srpski
languages.sq=Albanski
+languages.ml=Malajalam
languages.mk=Makedonski
-languages.de=Nema\u010dki
-languages.pl=Poljski
+languages.so=Somalski
+languages.gd=\u0160kotski Galski
+languages.sux=Sumerski
languages.sl=Slovena\u010dki
languages.sk=Slova\u010dki
-languages.da=Danski
languages.ga=Irski
+languages.si=Singaleski
languages.sh=Srpsko-Hrvatski
-languages.vi=Vijetnamski
-languages.ja=Japanski
languages.yi=Jidi\u0161
+languages.sd=Sindi
+languages.fy=Frizijski
languages.sa=Sanskrit
-languages.cs=\u010ce\u0161ki
-languages.lv=Letonski
languages.fr=Francuski
-languages.it=Italijanski
-languages.co=Korzikanski
-languages.is=Islandski
+languages.lv=Letonski
languages.lt=Litvanski
+languages.fo=Farski
languages.ru=Ruski
+languages.lo=Lao\u0161ki
+languages.ln=Lingala
languages.fi=Finski
languages.ro=Rumunski
languages.rm=Reto-Romanski
-languages.ca=Katalonski
-languages.id=Indonezijski
-languages.uk=Ukrajinski
languages.fa=Persijski
+languages.und=Nepoznat ili neva\u017ee\u0107i jezik
languages.la=Latinski
-languages.hy=Armenski
+languages.xh=Hausa
languages.eu=Baskijski
languages.ky=Kirgiski
-languages.br=Bretonski
languages.et=Estonski
-languages.es=\u0160panski
-languages.hu=Ma\u0111arski
-languages.ku=Kurdski
-languages.hr=Hrvatski
-languages.eo=Esperanto
-languages.en=Engleski
-languages.el=Gr\u010dki
-languages.ko=Korejski
-languages.no=Norve\u0161ki
-languages.bg=Bugarski
-languages.km=Kmerski
-languages.tr=Turski
-languages.be=Beloruski
-languages.hi=Hindi
-languages.nl=Holandski
-languages.he=Hebrejski
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties
new file mode 100644
index 0000000..7531660
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties
@@ -0,0 +1,10 @@
+# LocaleInformation_sr_ME_Latn.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+longDateFormat=d.MM.yyyy.
+fullTimeFormat=HH.mm.ss z
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties
new file mode 100644
index 0000000..4d828ed
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties
@@ -0,0 +1,10 @@
+# LocaleInformation_sr_RS_Latn.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currencyFormat=\u00a4 #,##0.00;-\u00a4 #,##0.00
+longDateFormat=d. MMM yyyy.
+fullTimeFormat=HH.mm.ss v
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ss.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ss.properties
new file mode 100644
index 0000000..763d8b1
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ss.properties
@@ -0,0 +1,27 @@
+# LocaleInformation_ss.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Bhi\u00aeVan\u00aeVol\u00aeMab\u00aeNkh\u00aeNhl\u00aeKho\u00aeNgc\u00aeNyo\u00aeMph\u00aeLwe\u00aeNgo\u00ae\u00ae
+months=Bhimbidvwane\u00aeiNdlovana\u00aeiNdlovu-lenkhulu\u00aeMabasa\u00aeiNkhwekhweti\u00aeiNhlaba\u00aeKholwane\u00aeiNgci\u00aeiNyoni\u00aeiMphala\u00aeLweti\u00aeiNgongoni\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMso\u00aeBil\u00aeTsa\u00aeNe\u00aeHla\u00aeMgc\u00ae
+weekdays=\u00aeLisontfo\u00aeuMsombuluko\u00aeLesibili\u00aeLesitsatfu\u00aeLesine\u00aeLesihlanu\u00aeuMgcibelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.ss=Siswati
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties
new file mode 100644
index 0000000..2582e19
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties
@@ -0,0 +1,9 @@
+# LocaleInformation_ssy.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortWeekdays=\u00aeNab\u00aeSan\u00aeSal\u00aeRab\u00aeCam\u00aeJum\u00aeQun\u00ae
+weekdays=\u00aeNaba Sambat\u00aeSani\u00aeSalus\u00aeRabuq\u00aeCamus\u00aeJumqata\u00aeQunxa Sambat\u00ae
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_st.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_st.properties
new file mode 100644
index 0000000..3fd6a05
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_st.properties
@@ -0,0 +1,119 @@
+# LocaleInformation_st.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Phe\u00aeKol\u00aeUbe\u00aeMme\u00aeMot\u00aeJan\u00aeUpu\u00aePha\u00aeLeo\u00aeMph\u00aePun\u00aeTsh\u00ae\u00ae
+months=Phesekgong\u00aeHlakola\u00aeHlakubele\u00aeMmese\u00aeMotsheanong\u00aePhupjane\u00aePhupu\u00aePhata\u00aeLeotshe\u00aeMphalane\u00aePundungwane\u00aeTshitwe\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMma\u00aeBed\u00aeRar\u00aeNe\u00aeHla\u00aeMoq\u00ae
+weekdays=\u00aeSontaha\u00aeMmantaha\u00aeLabobedi\u00aeLaboraru\u00aeLabone\u00aeLabohlane\u00aeMoqebelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.es=Sespain
+languages.ku=Kurdish
+languages.eo=Se-esperanto
+languages.en=Senyesemane
+languages.el=Se-greek
+languages.ko=Se-korea
+languages.kn=Se-kannada
+languages.ka=Se-geogia
+languages.jv=Se-javane
+languages.fil=Se-tagalog
+languages.pt=Se-portugal
+languages.ps=Pashto
+languages.de=Se-jeremane
+languages.pl=Se-polish
+languages.da=Se-dutch
+languages.tlh=Se-klingon
+languages.ja=Se-japane
+languages.vi=Se-vietnam
+languages.cy=Se-welsh
+languages.pa=Se-punjabi
+languages.cs=Se-czech
+languages.it=Se-tariana
+languages.is=Se-iceland
+languages.uz=Se-uzbek
+languages.or=Oriya
+languages.ur=Se-urdu
+languages.ca=Se-catalia
+languages.id=Se-indonesia
+languages.uk=Se-ukrania
+languages.ia=Se-interlingua
+languages.oc=Se-occitan
+languages.bs=Se-bosnia
+languages.br=Breton
+languages.hu=Se-hungaria
+languages.bn=Se-bengali
+languages.pt_PT=Se-portugal (Portugal)
+languages.hr=Se-croatia
+languages.tw=Twi
+languages.bh=Se-bihari
+languages.bg=Se-bulgaria
+languages.no=Se-norway
+languages.be=Se-belarusia
+languages.nn=Se-norway (Nynorsk)
+languages.hi=Se-hindi
+languages.tr=Se-theki
+languages.nl=Dutch
+languages.zu=se Zulu
+languages.he=Se-hebrew
+languages.tk=Turkmen
+languages.ne=Se-nepali
+languages.az=Se-azerbaijani
+languages.ti=Se-tigrinya
+languages.th=Se-thai
+languages.te=Se-telegu
+languages.ar=Se-arab
+languages.ta=Se-tamil
+languages.gu=Se-gujarati
+languages.am=Se-amhari
+languages.mt=Se-maltese
+languages.ms=Se-malay
+languages.gn=Guarani
+languages.sw=Se-swahili
+languages.mr=Se-marathi
+languages.sv=Se-sweden
+languages.gl=Se-galicia
+languages.su=Se-sundanese
+languages.af=Seburu
+languages.st=Sesotho
+languages.sr=Se-serbian
+languages.sq=Se-albanian
+languages.ml=Se-malayalam
+languages.mk=Se-masedonia
+languages.gd=Se-scots gaelic
+languages.sl=Se-slovania
+languages.sk=Se-slovak
+languages.ga=Se-irish
+languages.si=Se-sinhali
+languages.sh=Serbo-Croatian
+languages.pt_BR=Seputukesi (sa Brazil)
+languages.yi=Yiddish
+languages.fy=Se-frisia
+languages.fr=Se-french
+languages.lt=Se-Lithuano
+languages.fo=Se-foroese
+languages.ru=Se-rushia
+languages.fi=Se-finnish
+languages.ro=Se-romania
+languages.fa=Se-persia
+languages.la=Se-latino
+languages.xh=se Xhosa
+languages.eu=Se-basque
+languages.ky=Kyrgyz
+languages.et=Se-estonia
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv.properties
index 5792519..bde180e 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv.properties
@@ -5,365 +5,420 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=\u00d710^
+infinity=\u221e
+NaN=\u00a4\u00a4\u00a4
+minusSign=\u2212
+zeroDigit=0
decimalSeparator=,
groupingSeparator=\u00a0
-currenciesDisplayName.YDD=Jemenitisk dinar
-currenciesDisplayName.TWD=Taiwanesisk ny dollar
-currenciesDisplayName.KES=Kenyansk shilling
-currenciesDisplayName.BYB=Vitrysk ny rubel (1994-1999)
-currenciesDisplayName.LKR=Srilankesisk rupie
-currenciesDisplayName.RWF=Rwandisk franc
-currenciesDisplayName.TJS=Tadzjikisk somoni
-currenciesDisplayName.SDP=Sudanesiskt pund
-currenciesDisplayName.TJR=Tadzjikisk rubel
-currenciesDisplayName.ERN=Eritreansk nakfa
-currenciesDisplayName.GRD=Grekisk drachma
-currenciesDisplayName.IEP=Irl\u00e4ndskt pund
-currenciesDisplayName.ARS=Argentinsk peso
-currenciesDisplayName.SDD=Sudanesisk dinar
-currenciesDisplayName.ARP=Argentinsk peso (1983-1985)
-currenciesDisplayName.GEL=Georgisk lari
-currenciesDisplayName.GEK=Georgisk kupon larit
-currenciesDisplayName.CRC=Costarikansk col\u00f3n
+digit=#
+percentFormat=#,##0\u00a0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.YDD=jemenitiska dinarer
+currenciesDisplayName.KES=kenyanska shilling
+currenciesDisplayName.TWD=taiwanesiska nya dollar
+currenciesDisplayName.LKR=srilankesiska rupier
+currenciesDisplayName.BYB=vitryska nya rubel (1994-1999)
+currenciesDisplayName.TJS=tadzjikiska somoni
+currenciesDisplayName.RWF=rwandiska franc
+currenciesDisplayName.ERN=eritreanska nakfa
+currenciesDisplayName.TJR=tadzjikiska rubler
+currenciesDisplayName.SDP=sudanskt gammalt pund
+currenciesDisplayName.GRD=grekiska drachmer
+currenciesDisplayName.ARY=argentinska gamla pesos
+currenciesDisplayName.AFN=afghani
+currenciesDisplayName.IEP=irl\u00e4ndska pund
+currenciesDisplayName.ARS=argentinska pesos
+currenciesDisplayName.SDG=sudanskt pund
+currenciesDisplayName.ARP=argentinska pesos (1983-1985)
+currenciesDisplayName.SDD=sudansk gammal dinar
+currenciesDisplayName.GEL=georgiska lari
+currenciesDisplayName.GEK=georgiska kupon larit
+currenciesDisplayName.AFA=afghani (1927-2002)
+currenciesDisplayName.CRC=costarikanska col\u00f3n
currenciesDisplayName.FKP=Falklands\u00f6arnas pund
-currenciesDisplayName.EEK=Estnisk krona
+currenciesDisplayName.EEK=estniska kronor
+currenciesDisplayName.MDL=moldaviska leu
currenciesDisplayName.HKD=Hongkong-dollar
-currenciesDisplayName.MDL=Moldavisk leu
-currenciesDisplayName.ARA=Argentinsk austral
-currenciesDisplayName.IQD=Irakisk dinar
-currenciesDisplayName.SCR=Seychellisk rupie
-currenciesDisplayName.VUV=Vanuatisk vatu
-currenciesDisplayName.DKK=Dansk krona
-currenciesDisplayName.KPW=Nordkoreansk won
-currenciesDisplayName.GQE=Ekvatorialguineansk ekwele guineana
-currenciesDisplayName.IDR=Indonesisk rupiah
-currenciesDisplayName.LVR=Lettisk rubel
-currenciesDisplayName.SOS=Somalisk shilling
-currenciesDisplayName.AED=F\u00f6renade arabemiratens dirham
-currenciesDisplayName.BWP=Botswansk pula
-currenciesDisplayName.LVL=Lettisk lats
-currenciesDisplayName.RUR=Rysk rubel (1991-1998)
-currenciesDisplayName.NIO=Nicaraguansk c\u00f3rdoba oro
-currenciesDisplayName.ADP=Andorransk peseta
-currenciesDisplayName.FJD=Fijiansk dollar
-currenciesDisplayName.MOP=Macaoisk pataca
-currenciesDisplayName.RUB=Rysk rubel
-currenciesDisplayName.CDF=Kongolesisk franc congolais
-currenciesDisplayName.NIC=Nicaraguansk c\u00f3rdoba
-currenciesDisplayName.DJF=Djiboutisk franc
-currenciesDisplayName.ECV=Ecuadoriansk Unidad de Valor Constante (UVC)
+currenciesDisplayName.IQD=irakiska dinarer
+currenciesDisplayName.ARA=argentinska australer
+currenciesDisplayName.SCR=seychelliska rupier
+currenciesDisplayName.VUV=vanuatiska vatu
+currenciesDisplayName.KPW=nordkoreanska won
+currenciesDisplayName.DKK=danska kronor
+currenciesDisplayName.IDR=indonesiska rupier
+currenciesDisplayName.GQE=ekvatorialguineanska ekweler
+currenciesDisplayName.SOS=somaliska shilling
+currenciesDisplayName.LVR=lettiska rubel
+currenciesDisplayName.EQE=ekwele
+currenciesDisplayName.AED=F\u00f6renade Arabemiratens dirham
+currenciesDisplayName.LVL=lettiska lats
+currenciesDisplayName.BWP=botswanska pula
+currenciesDisplayName.RUR=ryska rubel (1991-1998)
+currenciesDisplayName.NIO=nicaraguanska c\u00f3rdoba oro
+currenciesDisplayName.XTS=(valutakod f\u00f6r test\u00e4ndam\u00e5l)
+currenciesDisplayName.MOP=Macao-pataca
+currenciesDisplayName.FJD=Fiji-dollar
+currenciesDisplayName.ADP=andorranska pesetas
+currenciesDisplayName.RUB=ryska rubel
+currenciesDisplayName.CDF=kongolesiska franc
+currenciesDisplayName.NIC=nicaraguanska c\u00f3rdoba
+currenciesDisplayName.DJF=djiboutiska franc
+currenciesDisplayName.UZS=uzbekiska sum
currenciesDisplayName.SBD=Salomon-dollar
-currenciesDisplayName.UZS=Uzbekisk sum
-currenciesDisplayName.ECS=Ecuadoriansk sucre
-currenciesDisplayName.PHP=Filippinsk peso
-currenciesDisplayName.THB=Thail\u00e4ndsk baht
-currenciesDisplayName.LUF=Luxemburgsk franc
-currenciesDisplayName.FIM=Finsk mark
-currenciesDisplayName.TTD=Trinidadisk dollar
-currenciesDisplayName.SZL=Swazil\u00e4ndsk lilangeni
-currenciesDisplayName.MNT=Mongolisk tugrik
-currenciesDisplayName.SAR=Saudisk riyal
-currenciesDisplayName.UAK=Ukrainsk karbovanetz
-currenciesDisplayName.UAH=Ukrainsk hryvnia
-currenciesDisplayName.HUF=Ungersk forint
-currenciesDisplayName.COP=Colombiansk peso
-currenciesDisplayName.QAR=Qatarisk rial
-currenciesDisplayName.LTT=Lettisk talonas
-currenciesDisplayName.PTE=Portugisisk escudo
-currenciesDisplayName.AOR=Angolansk kwanza \u2013 Reajustado (1995-1999)
-currenciesDisplayName.UYU=Uruguayansk peso uruguayo
-currenciesDisplayName.GBP=Brittiskt pund sterling
-currenciesDisplayName.BIF=Burundisk franc
-currenciesDisplayName.INR=Indisk rupie
-currenciesDisplayName.ZRZ=Zairisk zaire
-currenciesDisplayName.AON=Angolansk ny kwanza (1990-2000)
-currenciesDisplayName.LTL=Lettisk lita
-currenciesDisplayName.XFU=French UIC-Franc
-currenciesDisplayName.KZT=Kazakisk tenge
-currenciesDisplayName.MZM=Mo\u00e7ambikisk metical
-currenciesDisplayName.UYP=Uruguayansk peso (1975-1993)
-currenciesDisplayName.AOK=Angolansk kwanza (1977-1990)
-currenciesDisplayName.BUK=Burmesisk kyat
-currenciesDisplayName.GNS=Guineansk syli
-currenciesDisplayName.XFO=Fransk guldfranc
-currenciesDisplayName.PGK=Papuansk kina
-currenciesDisplayName.SYP=Syriskt pund
-currenciesDisplayName.MZE=Mo\u00e7ambikisk escudo
-currenciesDisplayName.OMR=Omansk rial
-currenciesDisplayName.NGN=Nigeriansk naira
-currenciesDisplayName.ZRN=Zairisk ny zaire
-currenciesDisplayName.AOA=Angolansk kwanza
-currenciesDisplayName.CNY=Kinesisk yuan renminbi
-currenciesDisplayName.MAF=Marockansk franc
-currenciesDisplayName.GNF=Guineansk franc
-currenciesDisplayName.HTG=Haitisk gourde
-currenciesDisplayName.MAD=Marockansk dirham
-currenciesDisplayName.TRY=Ny turkisk lira
-currenciesDisplayName.MMK=Myanmarisk kyat
-currenciesDisplayName.MYR=Malaysisk ringgit
-currenciesDisplayName.LSL=Lesothisk loti
-currenciesDisplayName.BHD=Bahrainsk dinar
-currenciesDisplayName.SLL=Sierraleonsk leone
-currenciesDisplayName.BTN=Bhutanesisk ngultrum
-currenciesDisplayName.TRL=Turkisk lira
-currenciesDisplayName.KMF=Komorisk franc
-currenciesDisplayName.ANG=Nederl\u00e4ndsk antillisk gulden
-currenciesDisplayName.CZK=Tjeckisk koruna
-currenciesDisplayName.AZM=Azerbajdzjansk manat
+currenciesDisplayName.ECV=ecuadorianska unidad de valor constante
+currenciesDisplayName.LUL=luxemburgska franc (finansiella)
+currenciesDisplayName.ECS=ecuadorianska sucre
+currenciesDisplayName.THB=thail\u00e4ndska baht
+currenciesDisplayName.PHP=filippinska pesos
+currenciesDisplayName.LUF=luxemburgska franc
+currenciesDisplayName.RHD=rhodesiska dollar
+currenciesDisplayName.LUC=luxemburgska franc (konvertibla)
+currenciesDisplayName.FIM=finska mark
+currenciesDisplayName.TTD=Trinidad ochTobago-dollar
+currenciesDisplayName.SZL=swazil\u00e4ndska lilangeni
+currenciesDisplayName.MNT=mongoliska tugrik
+currenciesDisplayName.UAK=ukrainska karbovanetz
+currenciesDisplayName.SAR=saudiska riyal
+currenciesDisplayName.COU=colombianska unidad de valor real
+currenciesDisplayName.UAH=ukrainska hryvnia
+currenciesDisplayName.HUF=ungerska forinter
+currenciesDisplayName.QAR=qatariska rial
+currenciesDisplayName.COP=colombianska pesos
+currenciesDisplayName.LTT=lettiska talonas
+currenciesDisplayName.PTE=portugisiska escudos
+currenciesDisplayName.UYU=uruguayanska pesos
+currenciesDisplayName.AOR=angolanska kwanza reajustado (1995-1999)
+currenciesDisplayName.GBP=brittiska pund sterling
+currenciesDisplayName.ZRZ=za\u00efriska za\u00efre
+currenciesDisplayName.INR=indiska rupier
+currenciesDisplayName.BIF=burundiska franc
+currenciesDisplayName.XFU=internationella j\u00e4rnv\u00e4gsunionens franc
+currenciesDisplayName.MZN=mo\u00e7ambikiska metical
+currenciesDisplayName.LTL=litauisk lita
+currenciesDisplayName.AON=angolanska nya kwanza (1990-2000)
+currenciesDisplayName.UYP=uruguayanska pesos (1975-1993)
+currenciesDisplayName.MZM=gammla mo\u00e7ambikiska metical
+currenciesDisplayName.KZT=kazakiska tenger
+currenciesDisplayName.UYN=UYN
+currenciesDisplayName.AOK=angolanska kwanza (1977-1990)
+currenciesDisplayName.GNS=guineanska syli
+currenciesDisplayName.BUK=burmesiska kyat
+currenciesDisplayName.XFO=franska guldfranc
+currenciesDisplayName.PGK=papuanska kinor
+currenciesDisplayName.UYI=uruguayansk peso en unidades indexadas
+currenciesDisplayName.SYP=syriska pund
+currenciesDisplayName.OMR=omanska rial
+currenciesDisplayName.MZE=mo\u00e7ambikiska escudos
+currenciesDisplayName.ZRN=za\u00efriska nya za\u00efre
+currenciesDisplayName.NGN=nigerianska naira
+currenciesDisplayName.CNY=kinesiska yuan renminbi
+currenciesDisplayName.AOA=angolanska kwanza
+currenciesDisplayName.CNX=Kina-dollar
+currenciesDisplayName.MAF=marockanska franc
+currenciesDisplayName.RSD=serbisk dinar
+currenciesDisplayName.GNF=guineanska franc
+currenciesDisplayName.MAD=marockanska dirhamer
+currenciesDisplayName.HTG=haitiska gourder
+currenciesDisplayName.GNE=guineanska syli (1972-1986)
+currenciesDisplayName.TRY=turkisk lira
+currenciesDisplayName.MMK=myanmariska kyat
+currenciesDisplayName.XRE=RINET-fond
+currenciesDisplayName.MYR=malaysiska ringgiter
+currenciesDisplayName.LSM=lesothisk gammal loti
+currenciesDisplayName.XEU=europeiska valutaenheter
+currenciesDisplayName.LSL=lesothiska lotier
+currenciesDisplayName.SLL=sierraleonska leoner
+currenciesDisplayName.BHD=Bahrain-dinarer
+currenciesDisplayName.BTN=bhutanesiska ngultrum
+currenciesDisplayName.TRL=gammal turkisk lire
+currenciesDisplayName.KMF=komoriska franc
+currenciesDisplayName.CZK=tjeckiska koruna
+currenciesDisplayName.ANG=Nederl\u00e4ndska Antillernas gulden
+currenciesDisplayName.AZN=azerbajdzjanska manat
+currenciesDisplayName.AZM=azerbajdzjanska manat (1993-2006)
currenciesDisplayName.KYD=Cayman-dollar
-currenciesDisplayName.GMD=Gambisk dalasi
-currenciesDisplayName.BGN=Bulgarisk ny lev
-currenciesDisplayName.CAD=Kanadensisk dollar
-currenciesDisplayName.MXV=Mexikansk Unidad de Inversion (UDI)
-currenciesDisplayName.BGL=Bulgarisk h\u00e5rd lev
-currenciesDisplayName.VEB=Venezuelansk bolivar
-currenciesDisplayName.MLF=Malisk franc
-currenciesDisplayName.ILS=Israelisk ny shekel
-currenciesDisplayName.MXP=Mexikansk silverpeso (1861-1992)
-currenciesDisplayName.PES=Peruansk sol
-currenciesDisplayName.GYD=Guyanansk dollar
-currenciesDisplayName.MXN=Mexikansk peso
-currenciesDisplayName.ILP=Israeliskt pund
-currenciesDisplayName.SKK=Slovakisk koruna
-currenciesDisplayName.CYP=Cypriotiskt pund
-currenciesDisplayName.PEN=Peruansk sol nuevo
-currenciesDisplayName.LRD=Liberisk dollar
-currenciesDisplayName.PEI=Peruansk inti
-currenciesDisplayName.AMD=Armenisk dram
-currenciesDisplayName.BSD=Bahamansk dollar
-currenciesDisplayName.HRK=Kroatisk kuna
-currenciesDisplayName.CLP=Chilensk peso
-currenciesDisplayName.HRD=Kroatisk dinar
-currenciesDisplayName.XPF=CFP-franc
-currenciesDisplayName.FRF=Fransk franc
-currenciesDisplayName.BRR=Brasiliansk cruzeiro
-currenciesDisplayName.MKD=Makedonisk denar
-currenciesDisplayName.CLF=Chilensk unidad de fomento
-currenciesDisplayName.ALL=Albansk lek
-currenciesDisplayName.BRN=Brasiliansk cruzado novo
-currenciesDisplayName.MWK=Malawisk kwacha
-currenciesDisplayName.BRL=Brasiliansk real
-currenciesDisplayName.TPE=Timoriansk escudo
-currenciesDisplayName.BRE=Brasiliansk cruzeiro (1990-1993)
-currenciesDisplayName.BRC=Brasiliansk cruzado
-currenciesDisplayName.BRB=Brasiliansk cruzeiro novo (1967-1986)
-currenciesDisplayName.DEM=Tysk mark
-currenciesDisplayName.KWD=Kuwaitisk dinar
-currenciesDisplayName.XCD=\u00d6stkaribisk dollar
-currenciesDisplayName.NPR=Nepalesisk rupie
-currenciesDisplayName.GWP=Guinea-Bissau-peso
-currenciesDisplayName.YUN=Jugoslavisk konvertibel dinar
-currenciesDisplayName.SVC=Salvadoransk col\u00f3n
-currenciesDisplayName.YUM=Dinar (Serbien och Montenegro)
-currenciesDisplayName.BEL=Belgisk franc (finansiell)
-currenciesDisplayName.SIT=Slovensk tolar
-currenciesDisplayName.JPY=Japansk yen
-currenciesDisplayName.XOF=CFA Franc BCEAO
-currenciesDisplayName.MVR=Maldivisk rufiyaa
-currenciesDisplayName.GWE=Portugisiska Guinea-escudo
-currenciesDisplayName.BEF=Belgisk franc
-currenciesDisplayName.TOP=Tongansk pa\u02bbanga
-currenciesDisplayName.YUD=Jugoslavisk h\u00e5rd dinar
-currenciesDisplayName.BEC=Belgisk franc (konvertibel)
-currenciesDisplayName.SUR=Sovjetisk rubel
-currenciesDisplayName.ROL=Rum\u00e4nsk leu
-currenciesDisplayName.DDM=\u00d6sttysk mark
-currenciesDisplayName.BDT=Bangladeshisk taka
-currenciesDisplayName.AWG=Aruba-florin
-currenciesDisplayName.NOK=Norsk krona
-currenciesDisplayName.MUR=Mauritisk rupie
-currenciesDisplayName.ZAR=Sydafrikansk rand
+currenciesDisplayName.GMD=gambiska dalasi
+currenciesDisplayName.VEF=venezuelanska bolivar fuerte
+currenciesDisplayName.BGN=bulgariska nya lev
+currenciesDisplayName.MXV=mexikanska unidad de inversion
+currenciesDisplayName.CAD=kanadensiska dollar
+currenciesDisplayName.BGM=bulgariska lev (1952\u20131962)
+currenciesDisplayName.BGL=bulgariska lev (1962\u20131999)
+currenciesDisplayName.VEB=venezuelanska bolivar
+currenciesDisplayName.MLF=maliska franc
+currenciesDisplayName.MXP=mexikanska silverpesos (1861-1992)
+currenciesDisplayName.ILS=israeliska nya shekel
+currenciesDisplayName.PES=peruanska sol
+currenciesDisplayName.ILR=israeliska gamla shekel
+currenciesDisplayName.MXN=mexikanska pesos
+currenciesDisplayName.GYD=guyansk dollar
+currenciesDisplayName.ILP=israeliska pund
+currenciesDisplayName.CYP=cypriotiskta pund
+currenciesDisplayName.SKK=slovakisa korunor
+currenciesDisplayName.XDR=IMF s\u00e4rskilda dragningsr\u00e4tter
+currenciesDisplayName.PEN=peruanska sol nuevo
+currenciesDisplayName.LRD=Liberia-dollar
+currenciesDisplayName.PEI=peruanska intier
+currenciesDisplayName.AMD=armeniska dram
+currenciesDisplayName.BSD=Bahamas-dollar
+currenciesDisplayName.XPT=uns platina
+currenciesDisplayName.HRK=kroatiska kunor
+currenciesDisplayName.CLP=chilenska pesos
+currenciesDisplayName.HRD=kroatiska dinarer
+currenciesDisplayName.XPF=Stilla Havet-franc
+currenciesDisplayName.FRF=franska franc
+currenciesDisplayName.XPD=uns palladium
+currenciesDisplayName.BRR=brasilianska cruzeiros
+currenciesDisplayName.MKD=makedoniska denarer
+currenciesDisplayName.CLF=chilenska unidad de fomento
+currenciesDisplayName.ALL=albanska lek
+currenciesDisplayName.BRN=brasilianska cruzado novo
+currenciesDisplayName.ALK=albanska gamla lek
+currenciesDisplayName.MWK=malawiska kwacha
+currenciesDisplayName.BRL=brasilianska real
+currenciesDisplayName.TPE=timorianska escudos
+currenciesDisplayName.BRE=brasilianska cruzeiro (1990-1993)
+currenciesDisplayName.BRC=brasilianska cruzado
+currenciesDisplayName.BRB=brasilianska cruzeiro novo (1967-1986)
+currenciesDisplayName.DEM=tyska mark
+currenciesDisplayName.KWD=kuwaitiska dinarer
+currenciesDisplayName.XCD=\u00f6stkaribiska dollar
+currenciesDisplayName.NPR=nepalesiska rupier
+currenciesDisplayName.GWP=Guinea-Bissau-pesos
+currenciesDisplayName.YUN=jugoslaviska dinarer (konvertibla)
+currenciesDisplayName.SVC=salvadoranska col\u00f3n
+currenciesDisplayName.YUM=jugoslaviska nya dinarer
+currenciesDisplayName.BEL=belgiska franc (finansiella)
+currenciesDisplayName.SIT=slovenska tolar
+currenciesDisplayName.JPY=japanska yen
+currenciesDisplayName.XOF=v\u00e4stafrikansk franc
+currenciesDisplayName.MVR=maldiviska rufiyer
+currenciesDisplayName.BEF=belgiska franc
+currenciesDisplayName.GWE=Portugisiska Guinea-escudos
+currenciesDisplayName.TOP=tonganska pa\u02bbanga
+currenciesDisplayName.YUD=jugoslaviska h\u00e5rda dinarer
+currenciesDisplayName.BEC=belgiska franc (konvertibla)
+currenciesDisplayName.SUR=sovjetiska rubler
+currenciesDisplayName.RON=rum\u00e4nska leu
+currenciesDisplayName.ROL=gamla rum\u00e4nska leu
+currenciesDisplayName.ROK=ROK
+currenciesDisplayName.BDT=bangladeshiska taka
+currenciesDisplayName.DDM=\u00f6sttyska mark
+currenciesDisplayName.XBD=europeiska kontoenheter (XBD)
+currenciesDisplayName.AWG=Aruba-gulden
+currenciesDisplayName.XBC=europeiska kontoenheter (XBC)
+currenciesDisplayName.XBB=europeisk gammal monet\u00e4r enhet
+currenciesDisplayName.XBA=europeisk gammal kompositenhet
+currenciesDisplayName.NOK=norska kronor
+currenciesDisplayName.MUR=mauritiska rupier
+currenciesDisplayName.ZAR=sydafrikanska rand
currenciesDisplayName.SHP=S:t Helena-pund
-currenciesDisplayName.ZAL=Sydafrikansk rand (finansiell)
-currenciesDisplayName.VND=Vietnamesisk dong
-currenciesDisplayName.TZS=Tanzanisk shilling
-currenciesDisplayName.GIP=Gibraltiskt pund
-currenciesDisplayName.TND=Tunisisk dinar
-currenciesDisplayName.CVE=Kapverdisk escudo
-currenciesDisplayName.UGX=Ugandisk shilling
-currenciesDisplayName.ZMK=Zambisk kwacha
-currenciesDisplayName.JOD=Jordansk dinar
-currenciesDisplayName.XAF=CFA Franc BEAC
-currenciesDisplayName.LBP=Libanesiskt pund
-currenciesDisplayName.UGS=Ugandisk shilling (1966-1987)
-currenciesDisplayName.STD=S\u00e3o Tom\u00e9 och Pr\u00edncipe-dobra
-currenciesDisplayName.WST=V\u00e4stsamoansk tala
-currenciesDisplayName.KHR=Kambodjansk riel
-currenciesDisplayName.EUR=Euro
-currenciesDisplayName.DOP=Dominikansk peso
-currenciesDisplayName.BOV=Boliviansk mvdol
-currenciesDisplayName.MTP=Maltesiskt pund
+currenciesDisplayName.XAU=uns guld
+currenciesDisplayName.ZAL=sydafrikanska rand (finansiella)
+currenciesDisplayName.VND=vietnamesiska dong
+currenciesDisplayName.VNC=vietnamesiska gamla dong
+currenciesDisplayName.TZS=tanzaniska shilling
+currenciesDisplayName.GIP=gibraltiska pund
+currenciesDisplayName.TND=tunisiska dinarer
+currenciesDisplayName.CVE=kapverdiska escudos
+currenciesDisplayName.UGX=ugandiska shilling
+currenciesDisplayName.UGW=UGW
+currenciesDisplayName.XAG=uns silver
+currenciesDisplayName.ZMK=zambiska kwacha
+currenciesDisplayName.JOD=jordanska dinarer
+currenciesDisplayName.XAF=centralafrikansk franc
+currenciesDisplayName.LBP=libanesiska pund
+currenciesDisplayName.UGS=ugandiska shilling (1966-1987)
+currenciesDisplayName.STD=S\u00e3o Tom\u00e9 och Pr\u00edncipe-dobror
+currenciesDisplayName.WST=v\u00e4stsamoanska tala
+currenciesDisplayName.KHR=kambodjanska riel
+currenciesDisplayName.DOP=dominikanska pesos
+currenciesDisplayName.EUR=euro
+currenciesDisplayName.BOV=bolivianska mvdol
+currenciesDisplayName.MTP=maltesiska pund
currenciesDisplayName.USS=US-dollar (samma dag)
-currenciesDisplayName.BOP=Boliviansk peso
-currenciesDisplayName.MTL=Maltesisk lira
-currenciesDisplayName.CUP=Kubansk peso
-currenciesDisplayName.TMM=Turkmensk manat
+currenciesDisplayName.BOP=bolivianska pesos
+currenciesDisplayName.CUP=kubanska pesos
+currenciesDisplayName.MTL=maltesisk lire
+currenciesDisplayName.TMM=turkmenska manat
currenciesDisplayName.USN=US-dollar (n\u00e4sta dag)
-currenciesDisplayName.SGD=Singaporiansk dollar
-currenciesDisplayName.NZD=Nyzeel\u00e4ndsk dollar
+currenciesDisplayName.GHS=ghananska cedi
+currenciesDisplayName.SGD=Singapore-dollar
+currenciesDisplayName.NZD=nyzeel\u00e4ndska dollar
currenciesDisplayName.USD=US-dollar
-currenciesDisplayName.HNL=Hoduransk lempira
-currenciesDisplayName.ITL=Italiensk lira
-currenciesDisplayName.PAB=Panamansk balboa
-currenciesDisplayName.GTQ=Guatemalansk quetzal
-currenciesDisplayName.LAK=Laotisk kip
-currenciesDisplayName.GHC=Ghanansk cedi
-currenciesDisplayName.AUD=Australisk dollar
-currenciesDisplayName.NAD=Namibisk dollar
-currenciesDisplayName.KGS=Kirgizistansk som
-currenciesDisplayName.MGF=Madagaskisk franc
-currenciesDisplayName.CHF=Schweizisk franc
-currenciesDisplayName.BBD=Barbadisk dollar
-currenciesDisplayName.MGA=Madagaskisk ariary
-currenciesDisplayName.PYG=Paraguaysk guarani
-currenciesDisplayName.PLZ=Polsk zloty (1950-1995)
-currenciesDisplayName.YER=Jemenitisk rial
-currenciesDisplayName.ATS=\u00d6sterrikisk schilling
-currenciesDisplayName.ETB=Etiopisk birr
-currenciesDisplayName.BND=Bruneisk dollar
-currenciesDisplayName.JMD=Jamaicansk dollar
-currenciesDisplayName.EGP=Egyptiskt pund
-currenciesDisplayName.PLN=Polsk zloty
-currenciesDisplayName.DZD=Algerisk dinar
-currenciesDisplayName.ISK=Isl\u00e4ndsk krona
-currenciesDisplayName.SRG=Surinamesisk gulden
-currenciesDisplayName.LYD=Libysk dinar
-currenciesDisplayName.BZD=Belizisk dollar
-currenciesDisplayName.BAM=Konvertibel bosnisk-hercegovinsk mark
-currenciesDisplayName.ESP=Spansk peseta
-currenciesDisplayName.KRW=Sydkoreansk won
-currenciesDisplayName.NLG=Nederl\u00e4ndsk gulden
-currenciesDisplayName.MRO=Mauretansk ouguiya
-currenciesDisplayName.BAD=Bosnisk-hercegovinsk dinar
-currenciesDisplayName.ZWD=Zimbabwisk dollar
-currenciesDisplayName.SEK=Svensk krona
-currenciesDisplayName.CSK=Tjeckisk h\u00e5rd koruna
-currenciesDisplayName.BYR=Vitrysk rubel
-currenciesDisplayName.IRR=Iransk rial
-currenciesDisplayName.PKR=Pakistansk rupie
+currenciesDisplayName.BOB=bolivianos
+currenciesDisplayName.HNL=honduranska lempiror
+currenciesDisplayName.CHW=franc (konvertibelt konto, WIR Bank, Schweiz)
+currenciesDisplayName.ITL=italiensk lire
+currenciesDisplayName.PAB=panamanska balboa
+currenciesDisplayName.GTQ=guatemalanska quetzal
+currenciesDisplayName.XXX=(ok\u00e4nd eller ogiltig valuta)
+currenciesDisplayName.AUD=australiska dollar
+currenciesDisplayName.GHC=ghananska cedi (1979-2007)
+currenciesDisplayName.LAK=laotiska kiper
+currenciesDisplayName.NAD=Namibia-dollar
+currenciesDisplayName.KGS=kirgiziska somer
+currenciesDisplayName.MGF=madagaskiska franc
+currenciesDisplayName.BBD=Barbados-dollar
+currenciesDisplayName.CHF=schweiziska franc
+currenciesDisplayName.CHE=euro (konvertibelt konto, WIR Bank, Schweiz)
+currenciesDisplayName.MGA=madagaskiska ariary
+currenciesDisplayName.PYG=paraguayska guarani
+currenciesDisplayName.PLZ=polska zloty (1950-1995)
+currenciesDisplayName.YER=jemenitiska rial
+currenciesDisplayName.ATS=\u00f6sterrikiska schilling
+currenciesDisplayName.ETB=etiopiska birr
+currenciesDisplayName.BND=Brunei-dollar
+currenciesDisplayName.EGP=egyptiska pund
+currenciesDisplayName.JMD=Jamaica-dollar
+currenciesDisplayName.PLN=polska zloty
+currenciesDisplayName.DZD=algeriska dinarer
+currenciesDisplayName.ISK=isl\u00e4ndska kronor
+currenciesDisplayName.SRG=Surinam-gulden
+currenciesDisplayName.LYD=libyska dinarer
+currenciesDisplayName.SRD=Surinam-dollar
+currenciesDisplayName.BAM=bosnisk-hercegovinska mark (konvertibla)
+currenciesDisplayName.BZD=beliziska dollar
+currenciesDisplayName.ESP=spanska pesetas
+currenciesDisplayName.KRW=sydkoreanska won
+currenciesDisplayName.NLG=nederl\u00e4ndska gulden
+currenciesDisplayName.MRO=mauretanska ouguiya
+currenciesDisplayName.BAD=bosnisk-hercegovinska dinarer
+currenciesDisplayName.ZWD=Zimbabwe-dollar
+currenciesDisplayName.SEK=svenska kronor
+currenciesDisplayName.CSK=tjeckiska h\u00e5rda koruna
+currenciesDisplayName.CSJ=tjeckoslovakiska kronor
+currenciesDisplayName.BYR=vitryska rubel
+currenciesDisplayName.ESB=spanska pesetas (konvertibelt konto)
+currenciesDisplayName.IRR=iranska rial
+currenciesDisplayName.ESA=spanska pesetas (konto)
+currenciesDisplayName.PKR=pakistanska rupier
currenciesDisplayName.BMD=Bermuda-dollar
-currenciesSymbol.BGL=lev
-currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
-currenciesSymbol.LKR=SL Re
+currenciesDisplayName.CSD=jugoslaviska dinarer
+currenciesSymbol.XCD=XCD
+currenciesSymbol.LKR=LKR
+currenciesSymbol.KES=KES
currenciesSymbol.BAD=BAD
-currenciesSymbol.CYP=\u00a3C
-currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
-currenciesSymbol.VUV=VT
-currenciesSymbol.MWK=MK
-currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
-currenciesSymbol.IEP=IR\u00a3
-currenciesSymbol.AMD=dram
-currenciesSymbol.TOP=T$
-currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
-currenciesSymbol.CLP=Ch$
-currenciesSymbol.KWD=KD
-currenciesSymbol.GEL=lari
-currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
-currenciesSymbol.IQD=ID
-currenciesSymbol.HKD=HK$
-currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
-currenciesSymbol.ALL=lek
-currenciesSymbol.CRC=C
-currenciesSymbol.IDR=Rp
-currenciesSymbol.DKK=DKr
-currenciesSymbol.TZS=T Sh
-currenciesSymbol.SBD=SI$
-currenciesSymbol.NOK=NKr
-currenciesSymbol.UGX=U Sh
-currenciesSymbol.BEF=BF
-currenciesSymbol.TTD=TT$
-currenciesSymbol.SZL=E
-currenciesSymbol.STD=Db
-currenciesSymbol.SAR=SRl
-currenciesSymbol.FJD=F$
-currenciesSymbol.UYU=Ur$
-currenciesSymbol.BDT=Tk
-currenciesSymbol.QAR=QR
-currenciesSymbol.LBP=LL
-currenciesSymbol.MNT=Tug
-currenciesSymbol.DJF=DF
-currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.CYP=CYP
+currenciesSymbol.BYR=BYR
+currenciesSymbol.VUV=VUV
+currenciesSymbol.MKD=MKD
+currenciesSymbol.MWK=MWK
+currenciesSymbol.BMD=BMD
+currenciesSymbol.IEP=IEP
+currenciesSymbol.SCR=SCR
+currenciesSymbol.AMD=AMD
+currenciesSymbol.TOP=TOP
+currenciesSymbol.SOS=SOS
+currenciesSymbol.NPR=NPR
+currenciesSymbol.CLP=CLP
+currenciesSymbol.KWD=KWD
+currenciesSymbol.GEL=GEL
+currenciesSymbol.ZAR=ZAR
+currenciesSymbol.IQD=IQD
+currenciesSymbol.ROL=ROL
+currenciesSymbol.HKD=HKD
+currenciesSymbol.ARS=ARS
+currenciesSymbol.BRL=BRL
+currenciesSymbol.ALL=ALL
+currenciesSymbol.CRC=CRC
+currenciesSymbol.IDR=IDR
+currenciesSymbol.DKK=dkr
+currenciesSymbol.TZS=TZS
+currenciesSymbol.SBD=SBD
+currenciesSymbol.NOK=nkr
+currenciesSymbol.UGX=UGX
+currenciesSymbol.BEF=BEF
+currenciesSymbol.TTD=TTD
+currenciesSymbol.SZL=SZL
+currenciesSymbol.STD=STD
+currenciesSymbol.SAR=SAR
+currenciesSymbol.FJD=FJD
+currenciesSymbol.UYU=UYU
+currenciesSymbol.BDT=BDT
+currenciesSymbol.QAR=QAR
+currenciesSymbol.MNT=MNT
+currenciesSymbol.LBP=LBP
+currenciesSymbol.DJF=DJF
+currenciesSymbol.JOD=JOD
currenciesSymbol.SGD=S$
-currenciesSymbol.KHR=CR
-currenciesSymbol.SYP=LS
-currenciesSymbol.MTL=Lm
-currenciesSymbol.MZM=Mt
-currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
-currenciesSymbol.HUF=Ft
-currenciesSymbol.NZD=$NZ
-currenciesSymbol.OMR=RO
-currenciesSymbol.KZT=T
-currenciesSymbol.DOP=RD$
-currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
-currenciesSymbol.COP=Col$
-currenciesSymbol.HNL=L
-currenciesSymbol.KGS=som
-currenciesSymbol.ZWD=Z$
-currenciesSymbol.MYR=RM
-currenciesSymbol.SRG=Sf
-currenciesSymbol.GTQ=Q
-currenciesSymbol.BIF=Fbu
-currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
-currenciesSymbol.LSL=M
-currenciesSymbol.VEB=Be
-currenciesSymbol.CNY=Y
-currenciesSymbol.KMF=CF
+currenciesSymbol.SYP=SYP
+currenciesSymbol.KHR=KHR
+currenciesSymbol.MTL=MTL
+currenciesSymbol.FIM=FIM
+currenciesSymbol.MZM=MZM
+currenciesSymbol.YER=YER
+currenciesSymbol.HUF=HUF
+currenciesSymbol.CVE=CVE
+currenciesSymbol.NZD=NZ$
+currenciesSymbol.OMR=OMR
+currenciesSymbol.KZT=KZT
+currenciesSymbol.INR=INR
+currenciesSymbol.DOP=DOP
+currenciesSymbol.NAD=NAD
+currenciesSymbol.COP=COP
+currenciesSymbol.TRL=TRL
+currenciesSymbol.HNL=HNL
+currenciesSymbol.KGS=KGS
+currenciesSymbol.ZWD=ZWD
+currenciesSymbol.MYR=MYR
+currenciesSymbol.SRG=SRG
+currenciesSymbol.GTQ=GTQ
+currenciesSymbol.BIF=BIF
+currenciesSymbol.PLN=PLN
+currenciesSymbol.LSL=LSL
+currenciesSymbol.GNF=GNF
+currenciesSymbol.VEB=VEB
+currenciesSymbol.CNY=CNY
+currenciesSymbol.KMF=KMF
currenciesSymbol.SEK=kr
-currenciesSymbol.AUD=$A
-currenciesSymbol.LYD=LD
-currenciesSymbol.JMD=J$
-currenciesSymbol.SKK=Sk
-currenciesSymbol.CHF=SwF
+currenciesSymbol.AUD=AUD
+currenciesSymbol.LYD=LYD
+currenciesSymbol.JMD=JMD
+currenciesSymbol.SKK=SKK
+currenciesSymbol.CHF=CHF
currenciesSymbol.KYD=KYD
-currenciesSymbol.ETB=Br
-currenciesSymbol.MRO=UM
-currenciesSymbol.BBD=BDS$
-currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
-currenciesSymbol.BTN=Nu
-currenciesSymbol.MXN=MEX$
-currenciesSymbol.DZD=DA
-currenciesSymbol.ANG=NA f.
-currenciesSymbol.BZD=BZ$
-currenciesSymbol.IRR=RI
-currenciesSymbol.GYD=G$
-currenciesSymbol.BAM=KM
-currenciesSymbol.CAD=Can$
-shortMonths=jan®feb®mar®apr®maj®jun®jul®aug®sep®okt®nov®dec®®
-months=januari®februari®mars®april®maj®juni®juli®augusti®september®oktober®november®december®®
-shortWeekdays=®s\u00f6n®m\u00e5n®tis®ons®tors®fre®l\u00f6r®
-weekdays=®s\u00f6ndag®m\u00e5ndag®tisdag®onsdag®torsdag®fredag®l\u00f6rdag®
-minNumberOfDaysInFirstWeek=4
-firstDayOfWeek=mon
-eras=f.Kr.®e.Kr.®
-ampms=f.m.®e.m.®
+currenciesSymbol.ETB=ETB
+currenciesSymbol.MRO=MRO
+currenciesSymbol.BBD=BBD
+currenciesSymbol.PKR=PKR
+currenciesSymbol.BTN=BTN
+currenciesSymbol.BHD=BHD
+currenciesSymbol.TWD=TWD
+currenciesSymbol.XPF=XPF
+currenciesSymbol.MXN=MXN
+currenciesSymbol.DZD=DZD
+currenciesSymbol.ANG=ANG
+currenciesSymbol.BZD=BZD
+currenciesSymbol.IRR=IRR
+currenciesSymbol.GYD=GYD
+currenciesSymbol.BAM=BAM
+currenciesSymbol.CAD=CAD
+shortMonths=jan\u00aefeb\u00aemar\u00aeapr\u00aemaj\u00aejun\u00aejul\u00aeaug\u00aesep\u00aeokt\u00aenov\u00aedec\u00ae\u00ae
+months=januari\u00aefebruari\u00aemars\u00aeapril\u00aemaj\u00aejuni\u00aejuli\u00aeaugusti\u00aeseptember\u00aeoktober\u00aenovember\u00aedecember\u00ae\u00ae
+shortWeekdays=\u00aes\u00f6n\u00aem\u00e5n\u00aetis\u00aeons\u00aetors\u00aefre\u00ael\u00f6r\u00ae
+weekdays=\u00aes\u00f6ndag\u00aem\u00e5ndag\u00aetisdag\u00aeonsdag\u00aetorsdag\u00aefredag\u00ael\u00f6rdag\u00ae
+eras=f.Kr.\u00aee.Kr.\u00ae
+ampms=fm\u00aeem\u00ae
shortDateFormat=yyyy-MM-dd
mediumDateFormat=d MMM yyyy
-longDateFormat=EEEE d MMM yyyy
-fullDateFormat=EEEE d MMMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE'en' 'den' d MMMM yyyy
shortTimeFormat=HH.mm
mediumTimeFormat=HH.mm.ss
longTimeFormat=HH.mm.ss z
-fullTimeFormat='kl. 'HH.mm.ss z
-zoneStrings=Pacific/Honolulu®HST®Hawaii, normaltid®HST®Hawaii, normaltid®©Europe/Bucharest®EET®\u00d6steuropa, normaltid®EEST®\u00d6steuropa, sommartid®©America/Los_Angeles®PST®Pacific, normaltid®PDT®Pacific, sommartid®©America/Denver®MST®Mountain, normaltid®MDT®Mountain, sommartid®©Asia/Jerusalem®IST®Israel, normaltid®IDT®Israel, sommartid®©America/Phoenix®MST®Mountain, normaltid®MST®Mountain, sommartid®©America/Chicago®CST®Central, normaltid®CDT®Central, sommartid®©America/Indianapolis®EST®Eastern, normaltid®EST®Eastern, normaltid®©America/St_Johns®CNT®Newfoundland, normaltid®CDT®Newfoundland, sommartid®©America/Anchorage®AST®Alaska, normaltid®ADT®Alaska, sommartid®©Asia/Shanghai®CTT®Kina, normaltid®CDT®Kina, normaltid®©Asia/Tokyo®JST®Japan, normaltid®JST®Japan, normaltid®©Europe/Paris®CET®Centraleuropa, normaltid®CEST®Centraleuropa, sommartid®©America/New_York®EST®Eastern, normaltid®EDT®Eastern, sommartid®©America/Halifax®AST®Atlantic, normaltid®ADT®Atlantic, sommartid®©Africa/Casablanca®GMT®Greenwichtid®GMT®Greenwichtid®©
+fullTimeFormat='kl'. HH.mm.ss z
+zoneStrings=Marshall_Islands\u00aeMarshall\u00f6normaltid\u00ae\u00aeMarshall\u00f6sommartid\u00ae\u00ae\u00a9Shevchenko\u00aeAqtaunormaltid\u00ae\u00aeAqtausommartid\u00ae\u00ae\u00a9Bangladesh\u00aebangladeshisk normaltid\u00ae\u00aebangladeshisk sommartid\u00ae\u00ae\u00a9Marquesas\u00aeMarquesasnormaltid\u00ae\u00aeMarquesassommartid\u00ae\u00ae\u00a9Indonesia_Central\u00aecentralindonesisk normaltid\u00ae\u00aecentralindonesisk sommartid\u00ae\u00ae\u00a9America_Eastern\u00ae\u00f6stnordamerikansk normaltid\u00ae\u00ae\u00f6stnordamerikansk sommartid\u00ae\u00ae\u00a9China\u00aekinesisk normaltid\u00ae\u00aekinesisk sommartid\u00ae\u00ae\u00a9Omsk\u00aeOmsknormaltid\u00ae\u00aeOmsksommartid\u00ae\u00ae\u00a9Guyana\u00aeGuyananormaltid\u00ae\u00aeGuyanasommartid\u00ae\u00ae\u00a9Uzbekistan\u00aeuzbeskisk normaltid\u00ae\u00aeuzbeskisk sommartid\u00ae\u00ae\u00a9Uruguay\u00aeuruguayansk normaltid\u00ae\u00aeuruguayansk sommartid\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeAlma-Atanormaltid\u00ae\u00aeAlma-Atasommartid\u00ae\u00ae\u00a9Karachi\u00aeKarachisommartid\u00ae\u00ae\u00ae\u00ae\u00a9Goose_Bay\u00aeGoose Baynormaltid\u00ae\u00aeGoose Baysommartid\u00ae\u00ae\u00a9Tbilisi\u00aegeorgisk normaltid\u00ae\u00aegeorgisk sommartid\u00ae\u00ae\u00a9Irish\u00aeirl\u00e4ndsk normaltid\u00ae\u00aeirl\u00e4ndsk sommartid\u00ae\u00ae\u00a9Tashkent\u00aeuzbekisk normaltid\u00ae\u00aeuzbekisk sommartid\u00ae\u00ae\u00a9Changbai\u00aeChangbainormaltid\u00ae\u00aeChangbaisommartid\u00ae\u00ae\u00a9Chatham\u00aeChathamnormaltid\u00ae\u00aeChathamsommartid\u00ae\u00ae\u00a9South_Georgia\u00aesydgeorgisk normaltid\u00ae\u00aesydgeorgisk sommartid\u00ae\u00ae\u00a9French_Guiana\u00aeFranska Guiananormaltid\u00ae\u00aeFranska Guianasommartid\u00ae\u00ae\u00a9Frunze\u00aeBisjkeknormaltid\u00ae\u00aeBisjkeksommartid\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u00f6steuropeisk normaltid\u00ae\u00ae\u00f6steuropeisk sommatid\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u00f6stgr\u00f6nl\u00e4ndsk normaltid\u00ae\u00ae\u00f6stgr\u00f6nl\u00e4ndsk sommartid\u00ae\u00ae\u00a9Dushanbe\u00aeDushanbenormaltid\u00ae\u00aeDushanbesommartid\u00ae\u00ae\u00a9Dacca\u00aeDaccanormaltid\u00ae\u00aeDaccasommartid\u00ae\u00ae\u00a9Chile\u00aechilensk normaltid\u00ae\u00aechilensk sommartid\u00ae\u00ae\u00a9Europe_Central\u00aecentraleuropeisk normaltid\u00ae\u00aecentraleuropeisk sommartid\u00ae\u00ae\u00a9Acre\u00aev\u00e4stbrasiliansk normaltid\u00ae\u00aev\u00e4stbrasiliansk sommartid\u00ae\u00ae\u00a9Arabian\u00aesaudiarabisk normaltid\u00aeAST (saudiarabisk)\u00aesaudiarabisk sommartid\u00aeADT (saudiarabisk)\u00ae\u00a9East_Timor\u00ae\u00f6stimorisk normaltid\u00ae\u00ae\u00f6stimorisk sommartid\u00ae\u00ae\u00a9New_Zealand\u00aenyzeel\u00e4ndsk normaltid\u00ae\u00aenyzeel\u00e4ndsk sommartid\u00ae\u00ae\u00a9Indochina\u00aeindokinesisk normaltid\u00ae\u00aeindokinesisk sommartid\u00ae\u00ae\u00a9Kwajalein\u00aeMarshall\u00f6arnas normaltid\u00ae\u00aeMarshall\u00f6arnas sommartid\u00ae\u00ae\u00a9Africa_Southern\u00aesydafrikansk normaltid\u00ae\u00aesydafrikansk sommartid\u00ae\u00ae\u00a9America_Mountain\u00aeKlippiga Bergennormaltid\u00ae\u00aeKlippiga Bergensommartid\u00ae\u00ae\u00a9Tokelau\u00aeTokelaunormaltid\u00ae\u00aeTokelausommartid\u00ae\u00ae\u00a9Ecuador\u00aeequadoriansk normaltid\u00ae\u00aeequadoriansk sommartid\u00ae\u00ae\u00a9Hovd\u00aeHovdnormaltid\u00ae\u00aeHovdsommartid\u00ae\u00ae\u00a9Africa_Central\u00aecentralafrikansk normaltid\u00ae\u00aecentralafrikansk sommartid\u00ae\u00ae\u00a9Phoenix_Islands\u00aeEnderburynormaltid\u00ae\u00aeEnderburysommartid\u00ae\u00ae\u00a9Armenia\u00aearmenisk normaltid\u00ae\u00aearmenisk somartid\u00ae\u00ae\u00a9Tuvalu\u00aeTuvalunormaltid\u00ae\u00aeTuvalusommartid\u00ae\u00ae\u00a9Sakhalin\u00aeSachalinnormaltid\u00ae\u00aeSachalinsommartid\u00ae\u00ae\u00a9Samara\u00aeSamaranormaltid\u00ae\u00aeSamarasommartid\u00ae\u00ae\u00a9Palau\u00aePalaunormaltid\u00ae\u00aePalausommartid\u00ae\u00ae\u00a9Kosrae\u00aeKosraenormaltid\u00ae\u00aeKosraesommartid\u00ae\u00ae\u00a9Alaska_Hawaii\u00aehawaiisk normaltid\u00ae\u00aehawaiisk sommartid\u00ae\u00ae\u00a9Pitcairn\u00aePitcairnnormaltid\u00ae\u00aePitcairnsommartid\u00ae\u00ae\u00a9America_Central\u00aecentralnordamerikansk normaltid\u00ae\u00aecentralnordamerikansk sommartid\u00ae\u00ae\u00a9Malaysia\u00aemalaysisk normaltid\u00ae\u00aemalaysisk sommartid\u00ae\u00ae\u00a9Moscow\u00aeMoskvanormaltid\u00ae\u00aeMoskvasommartid\u00ae\u00ae\u00a9Vanuatu\u00aeVanuatunormaltid\u00ae\u00aeVanuatusommartid\u00ae\u00ae\u00a9Kamchatka\u00aeKamtjatkanormaltid\u00ae\u00aeKamtjatkasommartid\u00ae\u00ae\u00a9Cape_Verde\u00aeKap Verdenormaltid\u00ae\u00aeKap Verdesommartid\u00ae\u00ae\u00a9Aqtobe\u00aeAqt\u00f6benormaltid\u00ae\u00aeAqt\u00f6besommartid\u00ae\u00ae\u00a9Falkland\u00aefalklands\u00f6arnas normaltid\u00ae\u00aefalklands\u00f6arnas sommartid\u00ae\u00ae\u00a9Peru\u00aeperuansk normalid\u00ae\u00aeperuansk sommartid\u00ae\u00ae\u00a9Krasnoyarsk\u00aeKrasnojarsknormaltid\u00ae\u00aeKrasnojarsksommartid\u00ae\u00ae\u00a9Argentina\u00ae\u00f6stargentinsk normaltid\u00ae\u00ae\u00f6stargentinsk sommartid\u00ae\u00ae\u00a9Qyzylorda\u00aeQyzylordanormaltid\u00ae\u00aeQyzylordasommartid\u00ae\u00ae\u00a9Tahiti\u00aeTahitinormaltid\u00ae\u00aeTahitisommartid\u00ae\u00ae\u00a9Indian_Ocean\u00aeBrittiska Indiska ocean\u00f6arnas normaltdi\u00ae\u00aeBrittiska Indiska ocean\u00f6arnas sommartdi\u00ae\u00ae\u00a9GMT\u00aeGreenwichtid\u00ae\u00aeGreenwichtid har per definition ingen sommartid\u00ae\u00ae\u00a9Vladivostok\u00aeVladivostoknormaltid\u00ae\u00aeVladivostoksommartid\u00ae\u00ae\u00a9British\u00aebrittisk normaltid\u00ae\u00aebrittisk sommartid\u00ae\u00ae\u00a9Atlantic\u00aenordamerikansk atlantnormaltid\u00ae\u00aenordamerikansk atlantsommartid\u00ae\u00ae\u00a9Truk\u00aeTruknormaltid\u00ae\u00aeTruksommartid\u00ae\u00ae\u00a9Wallis\u00aeWallis- och Futuna\u00f6arnas normaltid\u00ae\u00aeWallis- och Futuna\u00f6arnas sommartid\u00ae\u00ae\u00a9Korea\u00aekoreansk normaltid\u00ae\u00aekoreansk sommartid\u00ae\u00ae\u00a9Ashkhabad\u00aeAshkhabadnormaltid\u00ae\u00aeAshkhabadsommartid\u00ae\u00ae\u00a9Australia_Western\u00aev\u00e4staustralisk normaltid\u00ae\u00aev\u00e4staustralisk sommartid\u00ae\u00ae\u00a9Gilbert_Islands\u00aeKiribatinormaltid\u00ae\u00aeKiribatisommartid\u00ae\u00ae\u00a9Seychelles\u00aeSeychellernas normaltid\u00ae\u00aeSeychellernas sommartid\u00ae\u00ae\u00a9Cocos\u00aeKeeling\u00f6arnas normaltid\u00ae\u00aeKeeling\u00f6arnas sommartid\u00ae\u00ae\u00a9Venezuela\u00aevenezulansk normaltid\u00ae\u00aevenezulansk sommartid\u00ae\u00ae\u00a9Solomon\u00aeSalomon\u00f6arnas normaltid\u00ae\u00aeSalomon\u00f6arnas sommartid\u00ae\u00ae\u00a9Paraguay\u00aeparaguyansk normalid\u00ae\u00aeparaguyansk sommartid\u00ae\u00ae\u00a9Yakutsk\u00aeJakutsknormaltid\u00ae\u00aeJakutsksommartid\u00ae\u00ae\u00a9Azerbaijan\u00aeazerbajdzjansk normaltid\u00ae\u00aeazerbajdzjansk sommartid\u00ae\u00ae\u00a9Kizilorda\u00aeQyzylordanormaltid\u00ae\u00aeQyzylordasommartid\u00ae\u00ae\u00a9Yukon\u00aeYukonnormaltid\u00ae\u00aeYukonsommartid\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHoll\u00e4ndska Guiananormaltid\u00ae\u00aeHoll\u00e4ndska Guianasommartid\u00ae\u00ae\u00a9Yerevan\u00aeYerevannormaltid\u00ae\u00aeYerevansommartid\u00ae\u00ae\u00a9Turkmenistan\u00aeturkmenisk normaltid\u00ae\u00aeturkmenisk sommartid\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundlandnormaltid\u00ae\u00aeNewfoundlandsommartid\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u00f6stafrikansk normaltid\u00ae\u00ae\u00f6stafrikansk sommartid\u00ae\u00ae\u00a9Wake\u00aeWakenormaltid\u00ae\u00aeWakesommartid\u00ae\u00ae\u00a9Pakistan\u00aepakistansk normaltid\u00ae\u00aepakistansk sommartid\u00ae\u00ae\u00a9Singapore\u00aeSingaporenormaltid\u00ae\u00aeSingaporesommartid\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybyshevnormaltid\u00ae\u00aeKuybyshevsommartid\u00ae\u00ae\u00a9Europe_Western\u00aev\u00e4steuropeisk normaltid\u00ae\u00aev\u00e4steuropeisk sommartid\u00ae\u00ae\u00a9India\u00aeindisk normaltid\u00ae\u00aeindisk sommartid\u00ae\u00ae\u00a9Chamorro\u00aeChamorronormaltid\u00ae\u00aeChamorrosommartid\u00ae\u00ae\u00a9Greenland_Western\u00aev\u00e4stgr\u00f6nl\u00e4ndsk normaltid\u00ae\u00aev\u00e4stgr\u00f6nl\u00e4ndsk sommartid\u00ae\u00ae\u00a9Bolivia\u00aeboliviansk normaltid\u00ae\u00aeboliviansk sommartid\u00ae\u00ae\u00a9Indonesia_Western\u00aev\u00e4stindonesisk normaltid\u00ae\u00aev\u00e4stindonesisk sommartid\u00ae\u00ae\u00a9Galapagos\u00aeGal\u00e1pagosnormaltid\u00ae\u00aeGal\u00e1pagossommartid\u00ae\u00ae\u00a9Iran\u00aeiransk normaltid\u00ae\u00aeiransk sommartid\u00ae\u00ae\u00a9Suriname\u00aeSurinamnormaltid\u00ae\u00aeSurinamsommartid\u00ae\u00ae\u00a9Papua_New_Guinea\u00aePapua Nya Guineas normaltid\u00ae\u00aePapua Nya Guineas sommartid\u00ae\u00ae\u00a9Malaya\u00aemalaysisk normaltid\u00ae\u00aemalaysisk sommartid\u00ae\u00ae\u00a9Bering\u00aealeutisk normaltid\u00ae\u00aealeutisk sommartid\u00ae\u00ae\u00a9Georgia\u00aegeorgisk normaltid\u00ae\u00aegeorgisk sommartid\u00ae\u00ae\u00a9Kyrgystan\u00aekirgizisk normaltid\u00ae\u00aekirgizisk sommartid\u00ae\u00ae\u00a9French_Southern\u00aeFranska Sydterritoriernas normaltid\u00ae\u00aeFranska Sydterritoriernassommartid\u00ae\u00ae\u00a9Ponape\u00aePonapenormaltid\u00ae\u00aePonapesommartid\u00ae\u00ae\u00a9Lanka\u00aeSri Lankanormaltid\u00ae\u00aeSri Lankasommartid\u00ae\u00ae\u00a9Christmas\u00aeJul\u00f6ns normaltid\u00ae\u00aeJul\u00f6ns sommartid\u00ae\u00ae\u00a9Philippines\u00aefilippinsk normaltid\u00ae\u00aefilippinsk sommartid\u00ae\u00ae\u00a9Argentina_Western\u00aev\u00e4stargentinsk normaltid\u00ae\u00aev\u00e4stargentinsk sommartid\u00ae\u00ae\u00a9Volgograd\u00aeVolvogradnormaltid\u00ae\u00aeVolvogradsommartid\u00ae\u00ae\u00a9Hong_Kong\u00aeHongkongnormaltid\u00ae\u00aeHongkongsommartid\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeAqt\u00f6benormaltid\u00ae\u00aeAqt\u00f6besommartid\u00ae\u00ae\u00a9Guam\u00aeGuamnormaltid\u00ae\u00aeGuamsommartid\u00ae\u00ae\u00a9Amazon\u00aeAmazonasnormaltid\u00ae\u00aeAmazonassommartid\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre och Miquelonnormalid\u00ae\u00aePierre och Miquelonsommartid\u00ae\u00ae\u00a9Niue\u00aeNiuenormaltid\u00ae\u00aeNiuesommartid\u00ae\u00ae\u00a9Turkey\u00aeturkisk normaltid\u00ae\u00aeturkisk sommartid\u00ae\u00ae\u00a9Nepal\u00aenepalesisk normaltid\u00ae\u00aenepalesisk sommartid\u00ae\u00ae\u00a9Cook\u00aeCook\u00f6arnas normaltid\u00ae\u00aeCook\u00f6arnas sommartid\u00ae\u00ae\u00a9Macau\u00aeMacaunormaltid\u00ae\u00aeMacausommartid\u00ae\u00ae\u00a9Mauritius\u00aeMauritiustid\u00ae\u00ae\u00ae\u00ae\u00a9Dominican\u00aedominikansk normaltid\u00ae\u00aedominikansk sommartid\u00ae\u00ae\u00a9Cuba\u00aekubansk normaltid\u00ae\u00aekubansk sommartid\u00ae\u00ae\u00a9Tonga\u00aeTongatid\u00ae\u00ae\u00ae\u00ae\u00a9Maldives\u00aeMaldivernas normaltid\u00ae\u00aeMaldivernas sommartid\u00ae\u00ae\u00a9Mongolia\u00aeUlan Batornormaltid\u00ae\u00aeUlan Batorsommartid\u00ae\u00ae\u00a9Norfolk\u00aeNorfolk\u00f6ns normaltid\u00ae\u00aeNorfolk\u00f6ns sommartid\u00ae\u00ae\u00a9Anadyr\u00aeAnadirnormaltid\u00ae\u00aeAnadirsommartid\u00ae\u00ae\u00a9Irkutsk\u00aeIrkutsknormaltid\u00ae\u00aeIrkutsksommartid\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u00f6stindonesisk normaltid\u00ae\u00ae\u00f6stindonesisk sommartid\u00ae\u00ae\u00a9Myanmar\u00aeburmesisk normaltid\u00ae\u00aeburmesisk sommartid\u00ae\u00ae\u00a9Reunion\u00aeR\u00e9unionnormaltid\u00ae\u00aeR\u00e9unionsommartid\u00ae\u00ae\u00a9Gulf\u00aePersiska Golfennormaltid\u00ae\u00aePersiska Golfensommartid\u00ae\u00ae\u00a9Afghanistan\u00aeafghanisk normalid\u00ae\u00aeafghanisk sommartid\u00ae\u00ae\u00a9Kashgar\u00aeKashgarnormaltid\u00ae\u00aeKashgarsommartid\u00ae\u00ae\u00a9Brunei\u00aeBruneinormaltid\u00ae\u00aeBruneisommartid\u00ae\u00ae\u00a9Africa_FarWestern\u00aev\u00e4stsaharisk normaltid\u00ae\u00aev\u00e4stsaharisk sommartid\u00ae\u00ae\u00a9Novosibirsk\u00aeNovosibirsknormaltid\u00ae\u00aeNovosibirsksommartid\u00ae\u00ae\u00a9Brasilia\u00aeBrasilianormaltid\u00ae\u00aeBrasiliasommartid\u00ae\u00ae\u00a9Liberia\u00aeliberiansk normaltid\u00ae\u00aeliberiansk sommartid\u00ae\u00ae\u00a9Line_Islands\u00aeLine\u00f6arnas normaltid\u00ae\u00aeLine\u00f6arnas sommartid\u00ae\u00ae\u00a9America_Pacific\u00aev\u00e4stnordamerikansk normaltid\u00ae\u00aev\u00e4stnordamerikansk sommartid\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHonolulunormaltid\u00ae\u00aeHonolulusommartid\u00ae\u00ae\u00a9Samarkand\u00aeSamarkandnormaltid\u00ae\u00aeSamarkandsommartid\u00ae\u00ae\u00a9Australia_Central\u00aecentralaustralisk normaltid\u00ae\u00aecentralaustralisk sommartid\u00ae\u00ae\u00a9Long_Shu\u00aeChongqingnormaltid\u00ae\u00aeChongqingsommartid\u00ae\u00ae\u00a9Fiji\u00aeFijis normaltid\u00ae\u00aeFijis sommartid\u00ae\u00ae\u00a9Israel\u00aeisraelisk normaltid\u00aeIST (Israel)\u00aeisraelisk sommartid\u00ae\u00ae\u00a9Yekaterinburg\u00aeJekaterinburgnormaltid\u00ae\u00aeJekaterinburgsommartid\u00ae\u00ae\u00a9Easter\u00aeP\u00e5sk\u00f6ns normaltid\u00ae\u00aeP\u00e5sk\u00f6ns sommartid\u00ae\u00ae\u00a9Almaty\u00aeAlma-Atanormaltid\u00ae\u00aeAlma-Atasommartid\u00ae\u00ae\u00a9Sverdlovsk\u00aeSverdlovsknormaltid\u00ae\u00aeSverdlovsksommartid\u00ae\u00ae\u00a9Africa_Western\u00aev\u00e4stafrikansk normaltid\u00ae\u00aev\u00e4stafrikansk sommartid\u00ae\u00ae\u00a9Samoa\u00aesamoansk normaltid\u00ae\u00aesamoansk sommartid\u00ae\u00ae\u00a9Bhutan\u00aebhutansk normaltid\u00ae\u00aebhutansk sommartid\u00ae\u00ae\u00a9Uralsk\u00aeOralnormaltid\u00ae\u00aeOralsommartid\u00ae\u00ae\u00a9Alaska\u00aeAlaskanormaltid\u00ae\u00aeAlaskasommartid\u00ae\u00ae\u00a9Urumqi\u00aeUrumqinormaltid\u00ae\u00aeUrumqisommartid\u00ae\u00ae\u00a9Colombia\u00aecolombiansk normaltid\u00ae\u00aecolombiansk sommartid\u00ae\u00ae\u00a9Aktyubinsk\u00aeAqtobenormaltid\u00ae\u00aeAqtobesommartid\u00ae\u00ae\u00a9North_Mariana\u00aeNordmarianernas normaltid\u00ae\u00aeNordmarianernas sommartid\u00ae\u00ae\u00a9Nauru\u00aeNaurunormaltid\u00ae\u00aeNaurusommartid\u00ae\u00ae\u00a9Magadan\u00aeMagadannormaltid\u00ae\u00aeMagadansommartid\u00ae\u00ae\u00a9Tajikistan\u00aeTadzjikistannormaltid\u00ae\u00aeTadzjikistansommartid\u00ae\u00ae\u00a9New_Caledonia\u00aeNya Kaledoniennormaltid\u00ae\u00aeNya Kaledoniensommartid\u00ae\u00ae\u00a9Choibalsan\u00aeChoibalsannormaltid\u00ae\u00aeChoibalsansommartid\u00ae\u00ae\u00a9Azores\u00aeazorisk normaltid\u00ae\u00aeazorisk sommartid\u00ae\u00ae\u00a9Aqtau\u00aeAqtaunormaltid\u00ae\u00aeAqtausommartid\u00ae\u00ae\u00a9Oral\u00aeOralnormaltid\u00ae\u00aeOralsommartid\u00ae\u00ae\u00a9Baku\u00aeBakunormaltid\u00ae\u00aeBakusommartid\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u00f6staustralisk normaltid\u00ae\u00ae\u00f6staustralisk sommartid\u00ae\u00ae\u00a9Gambier\u00aeGambiernormaltid\u00ae\u00aeGambiersommartid\u00ae\u00ae\u00a9Noronha\u00aeFernando de Noronhanormalid\u00ae\u00aeFernando de Noronhasommartid\u00ae\u00ae\u00a9Greenland_Central\u00aecentralgr\u00f6nl\u00e4ndsk normaltid\u00ae\u00aecentralgr\u00f6nl\u00e4ndsk sommartid\u00ae\u00ae\u00a9Japan\u00aejapansk normaltid\u00ae\u00aejapansk sommartid\u00ae\u00ae\u00a9Borneo\u00aeBorneonormaltid\u00ae\u00aeBorneosommartid\u00ae\u00ae\u00a9
territories.TL=\u00d6sttimor
-territories.TK=Tokelau
+territories.TK=Tokelau\u00f6arna
territories.TJ=Tadzjikistan
territories.TH=Thailand
territories.TG=Togo
-territories.TF=Franska s\u00f6dra territorierna
+territories.TF=Franska Sydterritorierna
territories.GY=Guyana
territories.TD=Tchad
territories.TC=Turks- och Caicos\u00f6arna
@@ -380,12 +435,13 @@ territories.GN=Guinea
territories.GM=Gambia
territories.GL=Gr\u00f6nland
territories.SV=El Salvador
-territories.062=S\u00f6dra Centralasien
+territories.062=S\u00f6dra centralasien
territories.ST=S\u00e3o Tom\u00e9 och Pr\u00edncipe
-territories.061=Polynesien
territories.GI=Gibraltar
+territories.061=Polynesien
territories.GH=Ghana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Franska Guyana
territories.GE=Georgien
territories.SO=Somalia
@@ -406,26 +462,27 @@ territories.SC=Seychellerna
territories.SB=Salomon\u00f6arna
territories.SA=Saudiarabien
territories.FR=Frankrike
-territories.057=Mikronesien
territories.FO=F\u00e4r\u00f6arna
+territories.057=Mikronesiska \u00f6arna
territories.FM=Mikronesien
territories.RW=Rwanda
territories.054=Melanesien
-territories.053=Australien och Nya Zeeland
territories.FK=Falklands\u00f6arna
+territories.053=Australien och Nya Zeeland
territories.RU=Ryssland
territories.FJ=Fiji
territories.FI=Finland
+territories.RS=Serbien
territories.RO=Rum\u00e4nien
territories.RE=R\u00e9union
territories.ET=Etiopien
territories.ES=Spanien
territories.ER=Eritrea
-territories.833=Isle of Man
-territories.EH=V\u00e4stra Sahara
+territories.QU=EU
+territories.EH=V\u00e4stsahara
territories.EG=Egypten
-territories.830=Kanal\u00f6arna
territories.EE=Estland
+territories.830=Kanal\u00f6arna
territories.QO=Yttre \u00f6ar i Oceanien
territories.EC=Ecuador
territories.DZ=Algeriet
@@ -433,14 +490,15 @@ territories.QA=Qatar
territories.039=Sydeuropa
territories.DO=Dominikanska republiken
territories.PY=Paraguay
-territories.035=Sydostasien
territories.DM=Dominica
+territories.035=Sydostasien
territories.PW=Palau
+territories.034=S\u00f6dra Asien
territories.DK=Danmark
territories.DJ=Djibouti
territories.PT=Portugal
territories.PS=Palestinska territoriet
-territories.030=Ostasien
+territories.030=\u00d6stasien
territories.PR=Puerto Rico
territories.DE=Tyskland
territories.PN=Pitcairn
@@ -465,15 +523,16 @@ territories.CN=Kina
territories.CM=Kamerun
territories.CL=Chile
territories.CK=Cook\u00f6arna
+territories.021=Norra Amerika
territories.CI=Elfenbenskusten
-territories.021=Nordamerika
territories.CH=Schweiz
-territories.CG=Kongo
+territories.CG=Kongo-Brazzaville
territories.CF=Centralafrikanska republiken
-territories.CD=Demokratiska republiken Kongo
+territories.CD=Kongo-Kinshasa
territories.CC=Kokos\u00f6arna (Keeling\u00f6arna)
territories.OM=Oman
territories.CA=Kanada
+territories.419=Latinamerika och Karibien
territories.BZ=Belize
territories.BY=Vitryssland
territories.BW=Botswana
@@ -481,32 +540,35 @@ territories.BV=Bouvet\u00f6n
territories.BT=Bhutan
territories.BS=Bahamas
territories.BR=Brasilien
-territories.019=Nord- och Sydamerika
+territories.019=Amerika
territories.018=S\u00f6dra Afrika
territories.NZ=Nya Zeeland
-territories.BO=Bolivia
territories.017=Centralafrika
+territories.BO=Bolivia
territories.BN=Brunei
-territories.BM=Bermuda
territories.015=Nordafrika
+territories.BM=Bermuda
territories.014=\u00d6stafrika
+territories.BL=Saint-Barth\u00e9lemy
territories.013=Centralamerika
territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=V\u00e4stafrika
+territories.BI=Burundi
+territories.172=Oberoende staters samv\u00e4lde
territories.BH=Bahrain
territories.NR=Nauru
territories.BG=Bulgarien
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Belgien
+territories.ZZ=ok\u00e4nd eller ogiltig regionkod
territories.NO=Norge
territories.BD=Bangladesh
territories.BB=Barbados
territories.ZW=Zimbabwe
territories.NL=Nederl\u00e4nderna
-territories.BA=Bosnien och Hercegovina
+territories.BA=Bosnien-Hercegovina
territories.NI=Nicaragua
territories.NG=Nigeria
territories.NF=Norfolk\u00f6n
@@ -521,24 +583,25 @@ territories.AU=Australien
territories.AT=\u00d6sterrike
territories.AS=Amerikanska Samoa
territories.AR=Argentina
-territories.009=Oceanien
territories.AQ=Antarktis
+territories.009=Oceanien
territories.MZ=Mo\u00e7ambique
territories.AO=Angola
territories.MY=Malaysia
territories.AN=Nederl\u00e4ndska Antillerna
territories.MX=Mexiko
-territories.005=Sydamerika
territories.AM=Armenien
+territories.005=Sydamerika
territories.MW=Malawi
territories.AL=Albanien
territories.MV=Maldiverna
+territories.003=Nordamerika
territories.ZA=Sydafrika
territories.MU=Mauritius
territories.002=Afrika
territories.MT=Malta
-territories.001=V\u00e4rlden
territories.AI=Anguilla
+territories.001=V\u00e4rlden
territories.MS=Montserrat
territories.MR=Mauretanien
territories.AG=Antigua och Barbuda
@@ -546,15 +609,17 @@ territories.MQ=Martinique
territories.AF=Afghanistan
territories.MP=Nordmarianerna
territories.AE=F\u00f6renade Arabemiraten
-territories.MO=Macao (S.A.R. Kina)
+territories.MO=Macao
territories.AD=Andorra
territories.MN=Mongoliet
-territories.MM=Myanmar
+territories.MM=Burma
territories.ML=Mali
territories.MK=Makedonien
territories.YT=Mayotte
territories.MH=Marshall\u00f6arna
territories.MG=Madagaskar
+territories.MF=S:t Martin
+territories.ME=Montenegro
territories.MD=Moldavien
territories.MC=Monaco
territories.MA=Marocko
@@ -578,6 +643,7 @@ territories.KZ=Kazakstan
territories.KY=Cayman\u00f6arna
territories.KW=Kuwait
territories.145=V\u00e4stasien
+territories.143=Centralasien
territories.142=Asien
territories.KR=Sydkorea
territories.KP=Nordkorea
@@ -588,17 +654,18 @@ territories.WS=Samoa
territories.KH=Kambodja
territories.KG=Kirgizistan
territories.KE=Kenya
-territories.WF=Wallis- och Futuna\u00f6arna
+territories.WF=Wallis och Futuna
territories.JP=Japan
territories.JO=Jordanien
territories.JM=Jamaica
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=Amerikanska Jungfru\u00f6arna
territories.VG=Brittiska Jungfru\u00f6arna
territories.VE=Venezuela
territories.VC=S:t Vincent och Grenadinerna
-territories.VA=Vatikanen
+territories.VA=Vatikanstaten
territories.IT=Italien
territories.IS=Island
territories.IR=Iran
@@ -607,11 +674,12 @@ territories.UZ=Uzbekistan
territories.IO=Brittiska Indiska ocean\u00f6arna
territories.UY=Uruguay
territories.IN=Indien
+territories.IM=Isle of Man
territories.IL=Israel
territories.US=USA
territories.IE=Irland
territories.ID=Indonesien
-territories.UM=USAs yttre \u00f6ar
+territories.UM=USA:s yttre \u00f6ar
territories.UG=Uganda
territories.UA=Ukraina
territories.HU=Ungern
@@ -622,77 +690,86 @@ territories.HN=Honduras
territories.HM=Heard- och McDonald\u00f6arna
territories.TW=Taiwan
territories.TV=Tuvalu
-territories.HK=Hongkong (S.A.R. Kina)
+territories.HK=Hongkong
territories.TT=Trinidad och Tobago
territories.TR=Turkiet
territories.TO=Tonga
territories.TN=Tunisien
territories.TM=Turkmenistan
+languages.gwi=gwich-in
languages.akk=akkadiska
-languages.gwi=gwich'in
languages.eka=ekajuk
+languages.ijo=ijo
languages.xh=xhosa
languages.sux=sumeriska
languages.sus=susu
-languages.mis=blandade spr\u00e5k
+languages.mis=annat spr\u00e5k
languages.loz=lozi
-languages.tog=tonganska (Nyasa)
-languages.pon=ponape
+languages.tog=nyasatonganska
+languages.zbl=blissymboler
+languages.pon=pohnpeiska
languages.min=minangkabau
languages.suk=sukuma
languages.wo=wolof
-languages.kut=kutenai
-languages.lol=lolo; mongo
+languages.lol=mongo
+languages.kut=kutenaj
languages.mic=mic-mac
-languages.wa=walloon
-languages.kum=kumyk
+languages.wa=vallonska
+languages.kum=kumykiska
languages.zap=zapotek
-languages.cus=kushitiska (annat)
-languages.doi=dogri
+languages.ain=ainu
+languages.cus=kushitiskt spr\u00e5k
languages.jbo=lojban
-languages.vo=volap\u00fck
-languages.oto=otomanguespr\u00e5k
+languages.doi=dogri
+languages.zza=zaza
+languages.vo=volapyk
+languages.oto=otomispr\u00e5k
languages.vi=vietnamesiska
-languages.rar=rarotongan
+languages.vai=vaj
+languages.rar=rarotonganska
languages.ve=venda
languages.rap=rapanui
languages.raj=rajasthani
-languages.ota=ottomanturkiska (1500-1928)
+languages.ota=ottomanska
languages.nzi=nzima
languages.nap=napolitanska
languages.uz=uzbekiska
languages.uga=ugaritiska
languages.tmh=tamashek
-languages.nai=nordamerikanskt indianspr\u00e5k (annat)
-languages.nah=nahuatl; aztekiska
+languages.nai=nordamerikanskt indianspr\u00e5k
+languages.nah=aztekiska
languages.ur=urdu
languages.fat=fanti
languages.uk=ukrainska
languages.egy=fornegyptiska
+languages.zxx=inget spr\u00e5kligt inneh\u00e5ll
languages.ug=uiguriska
languages.fan=fang
-languages.ssa=nilosahariskt (annat)
-languages.bat=baltiskt (annat)
-languages.mga=medeliriska (900-1200)
+languages.ssa=nilosahariskt spr\u00e5k
+languages.mga=medeliriska
+languages.bat=baltiskt spr\u00e5k
languages.nyo=nyoro
languages.bas=basa
-languages.nyn=nyankole
+languages.nyn=runyankole
languages.nym=nyamwezi
-languages.hmn=hmong
+languages.gsw=schweizertyska
+languages.hmn=hmongspr\u00e5k
languages.ban=balinesiska
languages.osa=osage
languages.bal=baluchi
languages.ty=tahitiska
-languages.bai=bamilekiska spr\u00e5k
+languages.bai=bamilekespr\u00e5k
languages.tw=twi
languages.srr=serer
languages.tli=tlingit
+languages.tlh=klingon
languages.tt=tatariska
languages.ts=tsonga
+languages.srn=sranan tongo
languages.bad=banda
languages.tr=turkiska
languages.to=tonganska
-languages.tn=tswana
+languages.tn=setswana
languages.tl=tagalog
languages.tk=turkmeniska
languages.ti=tigrinja
@@ -700,148 +777,164 @@ languages.th=thail\u00e4ndska
languages.kru=kurukh
languages.tg=tadzjikiska
languages.byn=blin
-languages.te=telugu
-languages.csb=kasjubiska
+languages.te=telugiska
languages.kro=kru
+languages.csb=kasjubiska
languages.ta=tamil
+languages.krl=karelska
languages.tkl=tokelauiska
languages.efi=efik
languages.sw=swahili
languages.sv=svenska
languages.su=sundanesiska
languages.krc=karachay-balkar
-languages.st=syd\u00adsotho
-languages.ss=swati
+languages.st=sydsotho
+languages.ss=siswati
languages.sr=serbiska
languages.sq=albanska
languages.men=mende
-languages.crp=kreolska och pidgin (annat)
+languages.crp=kreol- eller pidginspr\u00e5k
languages.so=somaliska
languages.afh=afrihili
-languages.sn=shona; manshona
+languages.sn=shona
languages.sm=samoanska
languages.sl=slovenska
-languages.grc=forngrekiska (till 1453)
+languages.grc=forngrekiska
languages.sk=slovakiska
languages.grb=grebo
languages.si=singalesiska
languages.sh=serbokroatiska
-languages.afa=afro-asiatiskt (andra)
-languages.crh=krimturkiska; krimtatar
+languages.crh=krimturkiska
+languages.afa=afroasiatiskt spr\u00e5k
languages.sg=sango
-languages.se=nord\u00adsamiska
+languages.se=nordsamiska
languages.sd=sindhi
languages.udm=udmurtiska
languages.sc=sardiska
languages.sa=sanskrit
-languages.rw=rwanda; kinjarwanda
+languages.rw=kinjarwanda
+languages.nwc=klassisk newariska
languages.ru=ryska
languages.mdr=mandar
languages.ro=rum\u00e4nska
languages.rn=rundi
-languages.rm=r\u00e4to\u00adromanska
-languages.mdf=moksja
+languages.rm=r\u00e4toromanska
+languages.fr_CH=schweizisk franska
+languages.mdf=moksha
languages.tiv=tivi
+languages.fr_CA=kanadensisk franska
languages.ady=adygeiska
languages.zun=zu\u00f1i
languages.kpe=kpelle
languages.qu=quechua
languages.tig=tigr\u00e9
languages.son=songhai
-languages.cpp=kreolska och pidgin, portugisiskbaserade (\u00f6vriga)
+languages.cpp=portugisiskbaserat kreol- eller pidginspr\u00e5k
+languages.rup=arum\u00e4nska
languages.sog=sogdiska
languages.ada=adangme
-languages.cpf=kreolska och pidgin, franskbaserade (\u00f6vriga)
-languages.hit=hettitiska
languages.kos=kosreanska
-languages.cpe=kreolska och pidgin, engelskbaserade (\u00f6vriga)
+languages.hit=hettitiska
+languages.cpf=franskbaserat kreol- eller pidginspr\u00e5k
+languages.cpe=engelskbaserat kreol- eller pidginspr\u00e5k
languages.him=himachali
-languages.got=gotiska
-languages.hil=hiligaynon
languages.kok=konkani
+languages.hil=hiligaynon
+languages.got=gotiska
languages.gor=gorontalo
languages.gon=gondi
languages.din=dinka
-languages.nub=nubiska spr\u00e5k
+languages.nub=nubiskt spr\u00e5k
languages.pt=portugisiska
-languages.ps=pashto; afghanska
+languages.ps=afghanska
languages.fur=friulianska
-languages.phn=kananeiska; feniciska
-languages.goh=fornh\u00f6gtyska (ca.750-1050)
+languages.phn=fenikiska
+languages.de_CH=schweizisk h\u00f6gtyska
+languages.goh=fornh\u00f6gtyska
languages.snk=soninke
languages.cop=koptiska
-languages.ach=acholi
-languages.phi=filippinskt spr\u00e5k (annat)
+languages.yap=yap
+languages.ach=acoli
+languages.yao=kiyao
+languages.phi=filippinskt spr\u00e5k
languages.pl=polska
-languages.ace=achinese
+languages.ace=achinesiska
languages.pi=pali
+languages.pt_PT=europeisk portugisiska
languages.pa=punjabi
languages.bug=buginesiska
-languages.iba=iban
+languages.iba=ibanska
languages.sms=skoltsamiska
-languages.bua=buriat
+languages.bua=burj\u00e4tiska
languages.mas=massajiska
languages.smn=enaresamiska
languages.os=ossetiska
-languages.map=austronesiska
+languages.map=austronesiskt spr\u00e5k
languages.or=oriya
languages.man=mande
languages.smj=lulesamiska
-languages.smi=samiskt spr\u00e5k (annat)
+languages.smi=samiskt spr\u00e5k
languages.mak=makasar
languages.om=oromo
languages.mai=maithili
-languages.oj=odjibwa; chippewa
+languages.oj=ojibwa
languages.mag=magahi
-languages.mad=madurese
+languages.mad=maduresiska
languages.sma=sydsamiska
-languages.oc=provensalska (efter 1500); occitanska
-languages.nso=sotho, nord
+languages.oc=occitanska
+languages.nso=nordsotho
languages.btk=batak
-languages.myv=erjya
+languages.myv=ersjanska
+languages.es_ES=europeisk spanska
+languages.de_AT=\u00f6sterrikisk tyska
languages.dgr=dogrib
languages.ny=nyanja
-languages.myn=maya
+languages.myn=mayaspr\u00e5k
languages.nv=navaho
-languages.kmb=kinbundu
-languages.nr=syd\u00adndebele
-languages.gmh=medelh\u00f6gtyska (ca.1050-1500)
+languages.kmb=kimbundu
+languages.nr=sydndebele
+languages.gmh=medelh\u00f6gtyska
languages.no=norska
-languages.nn=ny\u00adnorsk
-languages.nl=nederl\u00e4ndska
+languages.nn=nynorska
+languages.nl=holl\u00e4ndska
+languages.root=(rot)
languages.ng=ndonga
-languages.sla=slaviskt (annat)
-languages.ne=nepalesisika
-languages.nd=nord\u00adndebele
+languages.sla=slaviskt spr\u00e5k
+languages.ne=nepali
+languages.nd=nordndebele
languages.cmc=chamispr\u00e5k
languages.tet=tetum
languages.nb=norskt bokm\u00e5l
-languages.na=nauru
+languages.na=nauriska
languages.ter=tereno
languages.tem=temne
-languages.my=burmanska
+languages.my=burmesiska
languages.lez=lezghien
languages.mt=maltesiska
-languages.peo=fornpersiska (ca 600-400 f.Kr.)
+languages.frs=\u00f6stfrisiska
+languages.peo=fornpersiska
languages.ms=malajiska
+languages.frr=nordfrisiska
languages.mr=marathi
-languages.fro=fornfranska (842- ca 1400)
+languages.fro=fornfranska
languages.mo=moldaviska
languages.mn=mongoliska
-languages.frm=medelfranska (ca 1400-1600)
+languages.frm=medelfranska
languages.ml=malayalam
languages.jrb=judisk arabiska
languages.mk=makedonska
languages.mi=maori
languages.mh=marshalliska
languages.mg=malagassiska
+languages.nqo=n-k\u00e5
languages.mwr=marwari
languages.bra=braj
+languages.mwl=mirandesiska
+languages.den=slavej
languages.lv=lettiska
-languages.den=slave
-languages.lu=luba-katanga
-languages.lt=litauiska
+languages.lu=luba-Katanga
languages.del=delaware
+languages.lt=litauiska
languages.lo=laotiska
languages.ln=lingala
languages.li=limburgiska
@@ -849,22 +942,23 @@ languages.ewo=ewondo
languages.lg=luganda
languages.lb=luxemburgiska
languages.la=latin
-languages.jpr=judisk farsi
+languages.jpr=judisk persiska
languages.vot=votiska
-languages.sit=sinotibetanska spr\u00e5k
+languages.sit=sinotibetanskt spr\u00e5k
languages.ky=kirgisiska
languages.kw=korniska
-languages.kv=kome
+languages.kv=komi
languages.ku=kurdiska
languages.sio=siouxspr\u00e5k
languages.ks=kashmiriska
languages.kr=kanuri
languages.awa=awadhi
languages.ko=koreanska
-languages.kn=kanaresiska; kannada
-languages.km=kambodjanska; khmeriska
+languages.kn=kannada
+languages.km=kambodjanska
+languages.en_GB=brittisk engelska
languages.kl=gr\u00f6nl\u00e4ndska
-languages.kk=kazakstanska
+languages.kk=kazakiska
languages.rom=romani
languages.kj=kuanyama
languages.sid=sidamo
@@ -873,220 +967,264 @@ languages.kg=kikongo
languages.non=fornnordiska
languages.ka=georgiska
languages.mus=muskogee
-languages.roa=romanskt (annat)
+languages.roa=romanskt spr\u00e5k
languages.nog=nogai
languages.mun=mundaspr\u00e5k
languages.mul=flera spr\u00e5k
languages.jv=javanesiska
-languages.gil=gilbertesiska; kiribati
+languages.gil=gilbertiska
languages.znd=zand\u00e9
languages.shn=shan
+languages.fon=fonspr\u00e5ket
languages.xal=kalmuckiska
-languages.aus=australiska spr\u00e5k
+languages.aus=australiskt spr\u00e5k
languages.kho=khotanesiska
languages.ja=japanska
-languages.khi=khoisan (annat)
-languages.pau=palau
+languages.khi=khoisanspr\u00e5k
+languages.pau=palauanska
languages.chy=cheyenne
-languages.tai=tai (annat)
+languages.tai=thaispr\u00e5k
languages.iu=inuktitut
languages.pap=papiamento
languages.it=italienska
languages.sgn=teckenspr\u00e5k
-languages.kha=khasi
languages.is=isl\u00e4ndska
+languages.kha=khasi
languages.chr=cherokesiska
languages.pam=pampanga
-languages.pal=pahlavi
+languages.pal=medelpersiska
languages.chp=chipewyan
-languages.cho=choctaw
languages.io=ido
+languages.cho=choctaw
languages.chn=chinook
languages.chm=mari
languages.tyv=tuviniska
languages.bnt=bantuspr\u00e5k
-languages.pag=pangasinan
+languages.pag=pangasin\u00e1n
+languages.ik=inupiak
languages.chk=chuukesiska
-languages.ik=inupiaq
+languages.ii=szezuan i
languages.haw=hawaiiska
-languages.ii=sichuan yi
languages.lam=lamba
-languages.chg=chagatai
languages.ig=ibo
-languages.sga=forniriska (till 900)
-languages.paa=papuaspr\u00e5k (annat)
+languages.chg=chagatai
+languages.sga=forniriska
+languages.paa=papuanskt spr\u00e5k
languages.ie=interlingue
languages.id=indonesiska
languages.lah=lahnda
+languages.day=dajakiska
languages.chb=chibcha
-languages.day=dayak
languages.ia=interlingua
languages.lad=ladino
-languages.dar=dargwa
-languages.hai=haida
languages.hz=herero
+languages.hai=haida
+languages.dar=darginska
languages.hy=armeniska
-languages.ath=athapasiska spr\u00e5k
+languages.ath=athapaskiska
languages.hu=ungerska
languages.ht=haitiska
languages.dak=dakota
languages.hr=kroatiska
-languages.ho=hiri motu
+languages.ho=hirimotu
languages.hi=hindi
languages.dyu=dyula
languages.he=hebreiska
languages.ast=asturiska
-languages.ha=haussa
-languages.wen=sorbiska spr\u00e5k
-languages.gv=manx gaeliska
+languages.kfo=koro
+languages.ha=hausa
+languages.wen=sorbiskt spr\u00e5k
+languages.gv=manx
languages.gu=gujarati
-languages.sem=semitiskt (annat)
-languages.sel=selkup
-languages.iro=irokesiska
+languages.sem=semitiskt spr\u00e5k
+languages.sel=selkupiska
+languages.iro=irokesiskt spr\u00e5k
languages.gn=guaran\u00ed
languages.gl=galiciska
+languages.en_CA=kanadensisk engelska
languages.arw=arawakiska
-languages.gd=skotsk gaeliska
-languages.art=artificiellt (annat)
-languages.gez=geez
-languages.ira=iranska
-languages.ga=irl\u00e4ndsk gaeliska
+languages.gez=fornetiopiska
+languages.art=konstgjort spr\u00e5k
+languages.gd=h\u00f6glandsskotska
+languages.ira=iranskt spr\u00e5k
+languages.ga=iriska
languages.arp=arapaho
languages.arn=araukanska
-languages.fy=frisiska
+languages.fy=v\u00e4stfrisiska
languages.bla=siksika
-languages.gem=germanskt (annat)
-languages.ypk=yupiska spr\u00e5k
-languages.fr=franska
+languages.gem=germanskt spr\u00e5k
+languages.ypk=yupiskt spr\u00e5k
languages.arc=arameiska
+languages.fr=franska
languages.fo=f\u00e4r\u00f6iska
-languages.cel=keltiskt (annat)
-languages.fj=fidjianska
+languages.cel=keltiskt spr\u00e5k
+languages.fj=fijianska
languages.fi=finska
languages.ff=fulani
languages.tvl=tuvaluanska
languages.ceb=cebuano
languages.fa=persiska
+languages.en_AU=australisk engelska
+languages.zh_Hans=f\u00f6renklad kinesiska
+languages.zh_Hant=traditionell kinesiska
languages.eu=baskiska
languages.sco=skotska
languages.et=estniska
+languages.scn=sicilianska
languages.es=spanska
languages.eo=esperanto
languages.en=engelska
languages.el=grekiska
-languages.tut=altaiskt (annat)
-languages.niu=niuean
-languages.tup=tupispr\u00e5k
+languages.tut=altaiskt spr\u00e5k
+languages.niu=niueanska
+languages.tup=tup\u00edspr\u00e5k
languages.ee=ewe
-languages.tum=tumbuka
+languages.tum=tumbukiska
+languages.nl_BE=flaml\u00e4ndska
+languages.es_419=latinamerikansk spanska
languages.mos=mossi
-languages.dz=dzongkha
-languages.nic=kordofanspr\u00e5k (annat)
-languages.dv=divehi
-languages.fiu=finskugriskt (annat)
+languages.dz=bhutanesiska
+languages.kcg=tyap
+languages.nic=Niger-Kongospr\u00e5k
languages.lus=lushai
+languages.fiu=finskugriskt spr\u00e5k
+languages.dv=divehi
languages.nia=nias
languages.moh=mohawk
+languages.luo=luo
languages.lun=lunda
languages.apa=apachespr\u00e5k
+languages.fil=filippinska
languages.lui=luise\u00f1o
languages.hup=hupa
+languages.cch=atsam
languages.bin=bini
languages.de=tyska
-languages.lua=luba-lulua
+languages.lua=luba-Lulua
languages.bik=bikol
languages.was=washo
-languages.und=obest\u00e4mt
+languages.und=obest\u00e4mt spr\u00e5k
languages.war=waray
languages.da=danska
-languages.dum=medelnederl\u00e4ndska (ca 1050-1350)
+languages.dum=medelnederl\u00e4ndska
languages.wal=walamo
languages.mno=manobospr\u00e5k
-languages.wak=wakash
+languages.wak=wakusjiskt spr\u00e5k
languages.sat=santali
languages.cy=walesiska
languages.sas=sasak
-languages.cv=tjuvasjiska
languages.kbd=kabardinska
-languages.cu=kyrkoslaviska
+languages.cv=tjuvasjiska
+languages.cu=kyrkslaviska
languages.mni=manipuri
languages.cs=tjeckiska
-languages.sam=samariska
+languages.sam=samaritanska
languages.cr=cree
-languages.sal=salishspr\u00e5k
+languages.sal=salikiskt spr\u00e5k
languages.dua=duala
languages.co=korsikanska
-languages.sai=nordamerikanskt indianskt (annat)
+languages.sai=sydamerikanskt indianspr\u00e5k
languages.mnc=manchuriska
languages.sah=jakutiska
-languages.gba=gbaya
-languages.inh=ingusjiska
languages.kaw=kawi
+languages.inh=ingusjiska
+languages.gba=gbaya
languages.sad=sandawe
languages.ch=chamorro
+languages.ine=indoeuropeiskt spr\u00e5k
languages.bho=bhojpuri
-languages.ine=indoeuropeiskt (annat)
-languages.enm=medelengelska (1100-1500)
+languages.enm=medelengelska
+languages.kar=karenska
+languages.inc=indiskt spr\u00e5k
languages.ce=tjetjenska
-languages.inc=indiskt (annat)
-languages.kar=karen
languages.gay=gayo
languages.ca=katalanska
languages.umb=umbundu
languages.syr=syriska
languages.kam=kamba
+languages.anp=angika
languages.tsi=tsimshian
-languages.ang=fornengelska (ca 450-1100)
-languages.cau=kaukasiskt (annat)
+languages.kaj=jju
+languages.ang=fornengelska
languages.kac=kachin
+languages.cau=kaukasiskt spr\u00e5k
languages.kab=kabyliska
-languages.bs=bosniska
languages.kaa=karakalpakiska
-languages.br=bretonska
+languages.bs=bosniska
languages.car=karibiska
+languages.br=bretonska
+languages.syc=fornsyriska
languages.bo=tibetanska
languages.bn=bengali
languages.bm=bambara
-languages.gaa=ga
+languages.gaa=g\u00e3
+languages.cai=centralamerikanskt indianspr\u00e5k
languages.bi=bislama
-languages.cai=centralamerikanskt indianskt (annat)
languages.bh=bihari
languages.bg=bulgariska
languages.be=vitryska
+languages.pt_BR=brasiliansk portugisiska
languages.cad=caddo
languages.ba=basjkiriska
languages.zu=zulu
languages.zen=zenaga
-languages.pro=fornprovensalska (till 1500)
+languages.pro=fornprovensalska
languages.hsb=h\u00f6gsorbiska
languages.az=azerbajdzjanska
languages.ay=aymara
-languages.av=avariska
-languages.as=assami
-languages.ar=arabiska
+languages.av=avariskt spr\u00e5k
+languages.as=assamesiska
languages.dsb=l\u00e5gsorbiska
-languages.elx=elamitiska
+languages.ar=arabiska
languages.ilo=iloko
+languages.elx=elamitiska
languages.zh=kinesiska
languages.an=aragonesiska
-languages.pra=prakrit
+languages.pra=prakritspr\u00e5k
languages.am=amhariska
-languages.new=newari
+languages.new=newariska
languages.ak=akan
languages.za=zhuang
+languages.en_US=amerikansk engelska
languages.af=afrikaans
languages.ae=avestiska
-languages.ab=abkhaziska
+languages.alt=sydaltaiska
+languages.ab=abchaziska
languages.aa=afar
languages.yo=yoruba
-languages.alg=algonquinspr\u00e5k
+languages.alg=algonkinskt spr\u00e5k
languages.ale=aleutiska
-languages.mkh=mon-khmeriska (annat)
+languages.mkh=mon-khmeriskt spr\u00e5k
languages.yi=jiddisch
-languages.dra=dravidiskt (annat)
-languages.ber=berber
-languages.nds=l\u00e5gtyska; l\u00e5gsaxiska
+languages.dra=dravidiskt spr\u00e5k
+languages.ber=berberspr\u00e5k
+languages.nds=l\u00e5gtyska
languages.bem=bemba
languages.bej=beyja
languages.tpi=tok pisin
-variants.REVISED=reviderad
+variants.AREVMDA=v\u00e4starmeniska
+variants.1996=1996 \u00e5rs stavning
+variants.SOLBA=Solbica-dialekt
+variants.NEDIS=natisonsk dialekt
+variants.1994=1994 \u00e5rs stavning
+variants.1901=1901 \u00e5rs stavning
+variants.FONUPA=uralisk fonetisk notation (UPA)
+variants.OSOJS=Osojane-dialekt
+variants.1694ACAD=1694 \u00e5rs stavning
+variants.LIPAW=Lipovaz-dialekt
+variants.REVISED=reformerad stavning
+variants.NJIVA=Njiva-dialekt
+variants.TARASK=klassisk stavning
+variants.FONIPA=internationell fonetisk notation (IPA)
+variants.BISKE=Bila-dialekt
+variants.SCOUSE=Liverpool-dialekt
+variants.BAKU1926=1926 \u00e5rs stavning
+variants.SAAHO=saho-dialekt
+variants.ROZAJ=resisk dialekt
+variants.MONOTON=monotonisk stavning
+variants.POLYTON=polytonisk stavning
+variants.AREVELA=\u00f6starmeniska
+variants.SCOTLAND=skotsk engelska
+variants.VALENCIA=valencianska
+variants.BOONT=boontling
+variants.1606NICT=1606 \u00e5rs stavning
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv_FI.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv_FI.properties
index d08acb5..6aca905 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv_FI.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sv_FI.properties
@@ -5,4 +5,12 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
+territories.BA=Bosnien-Hercegovina
+territories.HK=Hongkong
+territories.019=Amerika
+territories.UM=USA:s yttre \u00f6ar
+territories.MO=Macao
+languages.phn=fenikiska
+variants.FONUPA=uralisk fonetisk notation (UPA)
+variants.1996=1996 \u00e5rs stavning
+variants.FONIPA=internationell fonetisk notation (IPA)
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sw.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sw.properties
index 2213bcb..85cff99 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sw.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_sw.properties
@@ -5,16 +5,25 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
currenciesDisplayName.TZS=Shilingi ya Tanzania
currenciesSymbol.TZS=TSh
currenciesSymbol.KES=KSh
-shortMonths=Jan®Feb®Mac®Apr®Mei®Jun®Jul®Ago®Sep®Okt®Nov®Des®®
-months=Januari®Februari®Machi®Aprili®Mei®Juni®Julai®Agosti®Septemba®Oktoba®Novemba®Desemba®®
-shortWeekdays=®Jpl®Jtt®Jnn®Jtn®Alh®Ijm®Jms®
-weekdays=®Jumapili®Jumatatu®Jumanne®Jumatano®Alhamisi®Ijumaa®Jumamosi®
-firstDayOfWeek=sat
-eras=KK®BK®
-zoneStrings=Africa/Nairobi®EAT®Saa za Africa Mashariki®EAT®Saa za Africa Mashariki®©
+shortMonths=Jan\u00aeFeb\u00aeMac\u00aeApr\u00aeMei\u00aeJun\u00aeJul\u00aeAgo\u00aeSep\u00aeOkt\u00aeNov\u00aeDes\u00ae\u00ae
+months=Januari\u00aeFebruari\u00aeMachi\u00aeAprili\u00aeMei\u00aeJuni\u00aeJulai\u00aeAgosti\u00aeSeptemba\u00aeOktoba\u00aeNovemba\u00aeDesemba\u00ae\u00ae
+shortWeekdays=\u00aeJpi\u00aeJtt\u00aeJnn\u00aeJtn\u00aeAlh\u00aeIju\u00aeJmo\u00ae
+weekdays=\u00aeJumapili\u00aeJumatatu\u00aeJumanne\u00aeJumatano\u00aeAlhamisi\u00aeIjumaa\u00aeJumamosi\u00ae
+eras=KK\u00aeBK\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Africa_Eastern\u00aeSaa za Africa Mashariki\u00ae\u00ae\u00ae\u00ae\u00a9
territories.TD=Chadi
territories.AR=Ajentina
territories.MZ=Msumbiji
@@ -23,8 +32,8 @@ territories.MX=Meksiko
territories.ZA=Afrika ya Kusini
territories.GQ=Guinea ya Ikweta
territories.AG=Antigua na Barbuda
-territories.AE=Muugano wa Falme za Nchi za Kiarabu
territories.ST=Sao Tome na Principe
+territories.AE=Muugano wa Falme za Nchi za Kiarabu
territories.SO=Somali
territories.MH=Visiwa vya Marshall
territories.GB=Uingereza
@@ -45,16 +54,16 @@ territories.KP=Korea ya Kaskazini
territories.KN=Saint Kitts na Nevis
territories.KM=Visiwa vya Komoro
territories.EG=Misri
-territories.EC=Ekvado
territories.KH=Kampuchea
+territories.EC=Ekvado
territories.KE=Kenya
-territories.DO=Jamhuri ya Dominikan
territories.PY=Paragwai
+territories.DO=Jamhuri ya Dominikan
territories.DM=Dominika
-territories.DK=Udenmarki
territories.JP=Ujapani
-territories.DJ=Jibuti
+territories.DK=Udenmarki
territories.PT=Ureno
+territories.DJ=Jibuti
territories.JM=Jamaika
territories.DE=Udachi
territories.PH=Filipino
@@ -64,19 +73,19 @@ territories.CV=Rasi Verde
territories.VC=Saint Vincent na Grenadines
territories.CS=Serbiya da Montenegro
territories.VA=Vatikano
-territories.CO=Kolombia
territories.IT=Uitaliani
-territories.CN=Uchina
+territories.CO=Kolombia
territories.IS=Barafu
-territories.CM=Kamerun
+territories.CN=Uchina
territories.IR=Uajemi
+territories.CM=Kamerun
territories.IQ=Iraki
territories.UY=Urugwai
-territories.CI=Pwani ya Pembe
territories.IN=Uhindi
+territories.CI=Pwani ya Pembe
territories.CH=Uswisi
-territories.CG=Kongo
territories.IL=Uyahudi
+territories.CG=Kongo
territories.CF=Jamhuri ya Afrika ya Kati
territories.US=Muungano wa Nchi za Amerika
territories.CA=Kanada
@@ -87,11 +96,116 @@ territories.HR=Kroatia
territories.TZ=Tanzania
territories.NP=Nepali
territories.TT=Trinidad na Tobago
-territories.BE=Ubelgiji
territories.NO=Unorwe
+territories.BE=Ubelgiji
territories.TR=Uturuki
territories.NL=Uholanzi
territories.BA=Bosnia na Herzegowina
+territories.TO=Kitonga
territories.NI=Nikaragua
territories.TL=Timor ya Mashariki
+languages.es=kihispania
+languages.ku=kikurdi
+languages.eo=kiesperanto
+languages.en=kiingereza
+languages.el=kigiriki
+languages.ko=kikorea
+languages.kn=kikannada
+languages.km=kicambodia
+languages.ka=kijiojia
+languages.jv=kijava
+languages.fil=kitagalog
+languages.pt=kireno
+languages.ps=kipashto
+languages.de=kijerumani
+languages.pl=kipolandi
+languages.da=kidenmarki
+languages.tlh=kiklingon
+languages.ja=kijapani
+languages.vi=kivietnam
+languages.cy=kiwelsh
+languages.pa=kipunjabi
+languages.cs=kicheki
+languages.it=kiitaliano
+languages.is=kiaislandi
+languages.uz=kiuzbeki
+languages.or=kioriya
+languages.ur=kiurdu
+languages.ca=kikatalan
+languages.ie=lugha ya kisayansi
+languages.id=kiindonesia
+languages.uk=kiukrania
+languages.ia=kiinterlingua
+languages.oc=kiositani
+languages.ug=ombwa
+languages.hy=muarmeni
+languages.bs=kibosnia
+languages.br=kibreton
+languages.hu=kihungari
+languages.pt_PT=kireno (ureno)
+languages.bn=kibengali; kibangla
+languages.hr=kikroeshia
+languages.tw=kitwii
+languages.bh=kibihari
+languages.bg=kibulgaria
+languages.no=kinorwei
+languages.be=kibelarusi
+languages.hi=kihindi
+languages.tr=kituruki
+languages.nl=kiholanzi
+languages.zu=kizulu
+languages.he=kiyahudi
+languages.tk=wataki weume
+languages.ne=kinepali
+languages.az=kiazabaijani
+languages.ti=kitigrinya
+languages.th=kithailand
+languages.te=kitelugu
+languages.zh=kichina
+languages.as=kubafu
+languages.ar=kiarabu
+languages.ta=kitamil
+languages.gu=kigujarati
+languages.am=kiamhariki
+languages.mt=kimalta
+languages.ms=kimalaysia
+languages.gn=guarani
languages.sw=Kiswahili
+languages.mr=kimarathi
+languages.sv=kisweden
+languages.gl=kigalisia
+languages.su=kinubi
+languages.af=kiafrikans
+languages.st=sesotho
+languages.mn=kimongolia
+languages.sr=kiserbia
+languages.sq=kialbania
+languages.ml=kimalayalam
+languages.mk=kimasedonia
+languages.so=kisomali
+languages.gd=kiskotlandi
+languages.sl=kislovenia
+languages.sk=kislovakia
+languages.ga=kiairish
+languages.si=kisinhali
+languages.sh=kiserbia-kroeshia
+languages.pt_BR=kireno (brazil)
+languages.yi=kiyidish
+languages.sd=msindhi
+languages.fy=kifrisia
+languages.sa=kisanskriti
+languages.fr=kifaransa
+languages.lv=kilatvia
+languages.lt=kilithuania
+languages.fo=kifaroe
+languages.ru=kirusi
+languages.lo=kilaosi
+languages.ln=kilingala
+languages.fi=kifinlandi
+languages.ro=kiromania
+languages.fa=kiajemi
+languages.la=kirumi
+languages.xh=kikhosa
+languages.eu=kibaski
+languages.ky=kugizi
+languages.et=kiestonia
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_syr.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_syr.properties
index 2caa330..f5c9834 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_syr.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_syr.properties
@@ -5,7 +5,21 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4\u00a0#,##0.00;\u00a4\u00a0#,##0.00-
currenciesSymbol.SYP=\u0644.\u0633.\u200f
-shortMonths=\u070f\u071f\u0722\u00a0\u070f\u0712®\u072b\u0712\u071b®\u0710\u0715\u072a®\u0722\u071d\u0723\u0722®\u0710\u071d\u072a®\u071a\u0719\u071d\u072a\u0722®\u072c\u0721\u0718\u0719®\u0710\u0712®\u0710\u071d\u0720\u0718\u0720®\u070f\u072c\u072b\u00a0\u070f\u0710®\u070f\u072c\u072b\u00a0\u070f\u0712®\u070f\u071f\u0722\u00a0\u070f\u0710®®
+shortMonths=\u070f\u071f\u0722\u00a0\u070f\u0712\u00ae\u072b\u0712\u071b\u00ae\u0710\u0715\u072a\u00ae\u0722\u071d\u0723\u0722\u00ae\u0710\u071d\u072a\u00ae\u071a\u0719\u071d\u072a\u0722\u00ae\u072c\u0721\u0718\u0719\u00ae\u0710\u0712\u00ae\u0710\u071d\u0720\u0718\u0720\u00ae\u070f\u072c\u072b\u00a0\u070f\u0710\u00ae\u070f\u072c\u072b\u00a0\u070f\u0712\u00ae\u070f\u071f\u0722\u00a0\u070f\u0710\u00ae\u00ae
+months=\u070f\u071f\u0722 \u070f\u0712\u00ae\u072b\u0712\u071b\u00ae\u0710\u0715\u072a\u00ae\u0722\u071d\u0723\u0722\u00ae\u0710\u071d\u072a\u00ae\u071a\u0719\u071d\u072a\u0722\u00ae\u072c\u0721\u0718\u0719\u00ae\u0710\u0712\u00ae\u0710\u071d\u0720\u0718\u0720\u00ae\u070f\u072c\u072b \u070f\u0710\u00ae\u070f\u072c\u072b \u070f\u0712\u00ae\u070f\u071f\u0722 \u070f\u0710\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd/MM/yyyy
+mediumDateFormat=dd/MM/yyyy
+longDateFormat=dd MMMM, yyyy
+fullDateFormat=dd MMMM, yyyy
+shortTimeFormat=h:mm
+mediumTimeFormat=h:mm:ss
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.SY=\u0723\u0718\u072a\u071d\u071d\u0710
languages.syr=\u0723\u0718\u072a\u071d\u071d\u0710
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ta.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ta.properties
index 01bd7b9..0f15495 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ta.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ta.properties
@@ -6,15 +6,24 @@
# This file was automatically generated by gnu.localegen from CLDR.
percentFormat=#,##,##0%
-currencyFormat=\u00a4 #,##,##0.00;-\u00a4 #,##,##0.00
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
currenciesSymbol.INR=\u0bb0\u0bc2
-shortMonths=\u0b9c\u0ba9.®\u0baa\u0bbf\u0baa\u0bcd.®\u0bae\u0bbe\u0bb0\u0bcd.®\u0b8f\u0baa\u0bcd.®\u0bae\u0bc7®\u0b9c\u0bc2\u0ba9\u0bcd®\u0b9c\u0bc2\u0bb2\u0bc8®\u0b86\u0b95.®\u0b9a\u0bc6\u0baa\u0bcd.®\u0b85\u0b95\u0bcd.®\u0ba8\u0bb5.®\u0b9f\u0bbf\u0b9a.®®
-months=\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf®\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf®\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd®\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd®\u0bae\u0bc7®\u0b9c\u0bc2\u0ba9\u0bcd®\u0b9c\u0bc2\u0bb2\u0bc8®\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd®\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd®\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd®\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd®\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd®®
-shortWeekdays=®\u0b9e\u0bbe®\u0ba4\u0bbf®\u0b9a\u0bc6®\u0baa\u0bc1®\u0bb5\u0bbf®\u0bb5\u0bc6®\u0b9a®
-weekdays=®\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1®\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd®\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd®\u0baa\u0bc1\u0ba4\u0ba9\u0bcd®\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd®\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf®\u0b9a\u0ba9\u0bbf®
-eras=\u0b95\u0bbf\u0bae\u0bc1®\u0b95\u0bbf\u0baa\u0bbf®
-ampms=\u0b95\u0bbe\u0bb2\u0bc8®\u0bae\u0bbe\u0bb2\u0bc8®
-zoneStrings=Asia/Calcutta®IST®\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf \u0ba8\u0bc7\u0bb0\u0baa\u0bcd\u0baa\u0b9f\u0bbf®IST®\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf \u0ba8\u0bc7\u0bb0\u0baa\u0bcd\u0baa\u0b9f\u0bbf®©
+shortMonths=\u0b9c\u0ba9.\u00ae\u0baa\u0bbf\u0baa\u0bcd.\u00ae\u0bae\u0bbe\u0bb0\u0bcd.\u00ae\u0b8f\u0baa\u0bcd.\u00ae\u0bae\u0bc7\u00ae\u0b9c\u0bc2\u0ba9\u0bcd\u00ae\u0b9c\u0bc2\u0bb2\u0bc8\u00ae\u0b86\u0b95.\u00ae\u0b9a\u0bc6\u0baa\u0bcd.\u00ae\u0b85\u0b95\u0bcd.\u00ae\u0ba8\u0bb5.\u00ae\u0b9f\u0bbf\u0b9a.\u00ae\u00ae
+months=\u0b9c\u0ba9\u0bb5\u0bb0\u0bbf\u00ae\u0baa\u0bbf\u0baa\u0bcd\u0bb0\u0bb5\u0bb0\u0bbf\u00ae\u0bae\u0bbe\u0bb0\u0bcd\u0b9a\u0bcd\u00ae\u0b8f\u0baa\u0bcd\u0bb0\u0bb2\u0bcd\u00ae\u0bae\u0bc7\u00ae\u0b9c\u0bc2\u0ba9\u0bcd\u00ae\u0b9c\u0bc2\u0bb2\u0bc8\u00ae\u0b86\u0b95\u0bb8\u0bcd\u0b9f\u0bcd\u00ae\u0b9a\u0bc6\u0baa\u0bcd\u0b9f\u0bae\u0bcd\u0baa\u0bb0\u0bcd\u00ae\u0b85\u0b95\u0bcd\u0b9f\u0bcb\u0baa\u0bb0\u0bcd\u00ae\u0ba8\u0bb5\u0bae\u0bcd\u0baa\u0bb0\u0bcd\u00ae\u0b9f\u0bbf\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bcd\u00ae\u00ae
+shortWeekdays=\u00ae\u0b9e\u0bbe\u00ae\u0ba4\u0bbf\u00ae\u0b9a\u0bc6\u00ae\u0baa\u0bc1\u00ae\u0bb5\u0bbf\u00ae\u0bb5\u0bc6\u00ae\u0b9a\u00ae
+weekdays=\u00ae\u0b9e\u0bbe\u0baf\u0bbf\u0bb1\u0bc1\u00ae\u0ba4\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bcd\u00ae\u0b9a\u0bc6\u0bb5\u0bcd\u0bb5\u0bbe\u0baf\u0bcd\u00ae\u0baa\u0bc1\u0ba4\u0ba9\u0bcd\u00ae\u0bb5\u0bbf\u0baf\u0bbe\u0bb4\u0ba9\u0bcd\u00ae\u0bb5\u0bc6\u0bb3\u0bcd\u0bb3\u0bbf\u00ae\u0b9a\u0ba9\u0bbf\u00ae
+eras=\u0b95\u0bbf\u0bae\u0bc1\u00ae\u0b95\u0bbf\u0baa\u0bbf\u00ae
+ampms=\u0b95\u0bbe\u0bb2\u0bc8\u00ae\u0bae\u0bbe\u0bb2\u0bc8\u00ae
+shortDateFormat=d-M-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+zoneStrings=India\u00ae\u0b87\u0ba8\u0bcd\u0ba4\u0bbf\u0baf \u0ba8\u0bc7\u0bb0\u0baa\u0bcd\u0baa\u0b9f\u0bbf\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.TL=\u0b95\u0bbf\u0bb4\u0b95\u0bcd\u0b95\u0bc1 \u0ba4\u0bbf\u0bae\u0bcb\u0bb0\u0bcd
territories.TJ=\u0ba4\u0bbe\u0b9c\u0bbf\u0b95\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd
territories.TH=\u0ba4\u0bbe\u0baf\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
territories.GY=\u0b95\u0baf\u0bbe\u0ba9\u0bbe
@@ -23,16 +32,16 @@ territories.GW=\u0b95\u0bbf\u0ba9\u0bbf-\u0baa\u0bbf\u0bb8\u0bcd\u0bb8\u0bbe\u0b
territories.GT=\u0b95\u0bc1\u0bb5\u0bbe\u0ba4\u0bcd\u0ba4\u0bbe\u0bae\u0bbe\u0bb2\u0bbe
territories.GR=\u0b95\u0bbf\u0bb0\u0bc0\u0bb8\u0bcd
territories.GQ=\u0b88\u0b95\u0bcd\u0b95\u0bc1\u0bb5\u0bbf\u0b9f\u0bcb\u0bb0\u0bbf\u0baf\u0bb2\u0bcd \u0b95\u0bbf\u0ba9\u0bbf
-territories.GN=\u0b95\u0bbf\u0ba9\u0bbf
territories.SY=\u0b9a\u0bbf\u0bb0\u0bbf\u0baf\u0bbe
+territories.GN=\u0b95\u0bbf\u0ba9\u0bbf
territories.GM=\u0b95\u0bbe\u0bae\u0bcd\u0baa\u0bbf\u0baf\u0bbe
territories.SV=\u0b8e\u0bb2\u0bcd \u0b9a\u0bbe\u0bb2\u0bcd\u0bb5\u0b9f\u0bbe\u0bb0\u0bcd
territories.GH=\u0b95\u0bbe\u0ba9\u0bbe
territories.SR=\u0b9a\u0bc2\u0bb0\u0bbf\u0ba9\u0bbe\u0bae\u0bcd
territories.GE=\u0b9c\u0bbe\u0bb0\u0bcd\u0b9c\u0bbf\u0baf\u0bbe
territories.GD=\u0b95\u0bbf\u0bb0\u0ba9\u0bc6\u0b9f\u0bbe
-territories.GB=\u0baa\u0bbf\u0bb0\u0bbf\u0b9f\u0bbf\u0bb7\u0bcd \u0b95\u0bc2\u0b9f\u0bcd\u0b9f\u0bb0\u0b9a\u0bc1
territories.SM=\u0b9a\u0bbe\u0ba9\u0bcd\u0bae\u0bc6\u0bb0\u0bbf\u0ba9\u0bcb
+territories.GB=\u0baa\u0bbf\u0bb0\u0bbf\u0b9f\u0bbf\u0bb7\u0bcd \u0b95\u0bc2\u0b9f\u0bcd\u0b9f\u0bb0\u0b9a\u0bc1
territories.GA=\u0b95\u0bbe\u0baa\u0bcb\u0ba9\u0bcd
territories.SK=\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bbe\u0b95\u0bbf\u0baf\u0bbe
territories.SI=\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bc7\u0ba9\u0bbf\u0baf\u0bbe
@@ -41,8 +50,9 @@ territories.SE=\u0bb8\u0bcd\u0bb5\u0bc0\u0b9f\u0ba9\u0bcd
territories.SB=\u0b9a\u0bbe\u0bb2\u0bae\u0ba9\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd
territories.SA=\u0b9a\u0bb5\u0bc2\u0ba4\u0bbf \u0b85\u0bb0\u0bc7\u0baa\u0bbf\u0baf\u0bbe
territories.FR=\u0baa\u0bbf\u0bb0\u0bbe\u0ba9\u0bcd\u0bb8\u0bcd
-territories.FJ=\u0baa\u0bbf\u0b9c\u0bbf
+territories.053=\u0b86\u0bb8\u0bcd\u0ba4\u0bbf\u0bb0\u0bc7\u0bb2\u0bbf\u0baf\u0bbe \u0bae\u0bb1\u0bcd\u0bb1\u0bc1\u0bae\u0bcd \u0ba8\u0bbf\u0baf\u0bc2\u0b9a\u0bbf\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
territories.RU=\u0bb0\u0bb7\u0bcd\u0baf\u0bbe
+territories.FJ=\u0baa\u0bbf\u0b9c\u0bbf
territories.FI=\u0baa\u0bbf\u0ba9\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
territories.RO=\u0bb0\u0bc1\u0bae\u0bc7\u0ba9\u0bbf\u0baf\u0bbe
territories.ET=\u0b8e\u0ba4\u0bbf\u0baf\u0bcb\u0baa\u0bcd\u0baa\u0bbf\u0baf\u0bbe
@@ -58,26 +68,31 @@ territories.DM=\u0b9f\u0bca\u0bae\u0bbf\u0ba9\u0bbf\u0b95\u0bbe
territories.DK=\u0b9f\u0bc6\u0ba9\u0bcd\u0bae\u0bbe\u0bb0\u0bcd\u0b95\u0bcd
territories.DJ=\u0b9c\u0bbf\u0baa\u0bcc\u0b9f\u0bbf
territories.PT=\u0baa\u0bcb\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bc1\u0b95\u0bcd\u0b95\u0bb2\u0bcd
+territories.030=\u0b95\u0bbf\u0bb4\u0b95\u0bcd\u0b95\u0bc1 \u0b86\u0b9a\u0bbf\u0baf\u0bbe
territories.DE=\u0b9c\u0bc6\u0bb0\u0bcd\u0bae\u0ba9\u0bcd
territories.PL=\u0baa\u0bcb\u0bb2\u0ba8\u0bcd\u0ba4\u0bc1
territories.PK=\u0baa\u0bbe\u0b95\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd
territories.PH=\u0baa\u0bbf\u0bb2\u0bbf\u0baa\u0bcd\u0baa\u0bc8\u0ba9\u0bcd\u0bb8\u0bcd
territories.PG=\u0baa\u0bbe\u0baa\u0bcd\u0baa\u0bc1\u0bb5\u0bbe-\u0ba8\u0bbf\u0baf\u0bc2\u0b95\u0bbf\u0ba9\u0bbf
territories.CZ=\u0b9a\u0bc6\u0b95\u0bcd \u0b95\u0bc1\u0b9f\u0bbf\u0baf\u0bb0\u0b9a\u0bc1
-territories.CY=\u0b9a\u0bc8\u0baa\u0bcd\u0bb0\u0bb8\u0bcd
territories.PE=\u0baa\u0bc6\u0bb0\u0bc1
+territories.CY=\u0b9a\u0bc8\u0baa\u0bcd\u0bb0\u0bb8\u0bcd
+territories.CX=\u0b95\u0bbf\u0bb1\u0bbf\u0bb8\u0bcd\u0ba4\u0bc1\u0bae\u0bb8\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1
territories.CV=\u0b95\u0bc7\u0baa\u0bcd \u0bb5\u0bc6\u0bb0\u0bcd\u0b9f\u0bc7
-territories.CU=\u0b95\u0bbf\u0baf\u0bc2\u0baa\u0bbe
territories.PA=\u0baa\u0ba3\u0bbe\u0bae\u0bbe
+territories.CU=\u0b95\u0bbf\u0baf\u0bc2\u0baa\u0bbe
territories.CR=\u0b95\u0bcb\u0bb8\u0bcd\u0b9f\u0bbe\u0bb0\u0bbf\u0b95\u0bbe
+territories.029=\u0b95\u0bb0\u0bc0\u0baa\u0bbf\u0baf\u0ba9\u0bcd
territories.CO=\u0b95\u0bca\u0bb2\u0bae\u0bcd\u0baa\u0bbf\u0baf\u0bbe
-territories.CN=\u0b9a\u0bc0\u0ba9
+territories.CN=\u0b9a\u0bc0\u0ba9\u0bbe
territories.CM=\u0b95\u0bc7\u0bae\u0bb0\u0bc2\u0ba9\u0bcd
territories.CL=\u0b9a\u0bbf\u0bb2\u0bbf
+territories.CK=\u0b95\u0bc1\u0b95\u0bcd \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd
territories.CI=\u0b90\u0bb5\u0bb0\u0bbf \u0b95\u0bcb\u0bb8\u0bcd\u0b9f\u0bcd
territories.CH=\u0bb8\u0bcd\u0bb5\u0bbf\u0b9f\u0bcd\u0b9a\u0bb0\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
territories.CG=\u0b95\u0bbe\u0b99\u0bcd\u0b95\u0bcb
territories.CF=\u0bae\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0b95\u0bcd \u0b95\u0bc1\u0b9f\u0bbf\u0baf\u0bb0\u0b9a\u0bc1
+territories.CD=\u0b95\u0bbe\u0b99\u0bcd\u0b95\u0bcb - \u0b95\u0bbf\u0ba9\u0bcd\u0b9a\u0bbe\u0b9a\u0bbe
territories.OM=\u0b93\u0bae\u0bbe\u0ba9\u0bcd
territories.CA=\u0b95\u0ba9\u0b9f\u0bbe
territories.BZ=\u0baa\u0bc6\u0bb2\u0bbf\u0bb8\u0bcd
@@ -86,37 +101,45 @@ territories.BW=\u0baa\u0bcb\u0b9f\u0bcd\u0bb8\u0bcd\u0bb5\u0bbe\u0ba9\u0bbe
territories.BT=\u0baa\u0bc2\u0b9f\u0bbe\u0ba9\u0bcd
territories.BS=\u0baa\u0bb9\u0bbe\u0bae\u0bbe\u0bb8\u0bcd
territories.BR=\u0baa\u0bbf\u0bb0\u0bc7\u0bb8\u0bbf\u0bb2\u0bcd
-territories.BO=\u0baa\u0bca\u0bb2\u0bbf\u0bb5\u0bbf\u0baf\u0bbe
territories.NZ=\u0ba8\u0bbf\u0baf\u0bc2\u0b9a\u0bbf\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
+territories.BO=\u0baa\u0bca\u0bb2\u0bbf\u0bb5\u0bbf\u0baf\u0bbe
territories.BN=\u0baa\u0bc1\u0bb0\u0bc2\u0ba9\u0bc7\u0baf\u0bcd
+territories.BM=\u0baa\u0bc6\u0bb0\u0bcd\u0bae\u0bc1\u0b9f\u0bbe
+territories.014=\u0b95\u0bbf\u0bb4\u0b95\u0bcd\u0b95\u0bc1 \u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bbe
+territories.013=\u0bae\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b85\u0bae\u0bc6\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bbe
territories.BJ=\u0baa\u0bc6\u0ba9\u0bbf\u0ba9\u0bcd
territories.BI=\u0baa\u0bc1\u0bb0\u0bc1\u0ba3\u0bcd\u0b9f\u0bbf
territories.BH=\u0baa\u0bb9\u0bcd\u0bb0\u0bc8\u0ba9\u0bcd
-territories.BG=\u0baa\u0bb2\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0bbe
territories.NR=\u0ba8\u0bcc\u0bb0\u0bc1
+territories.BG=\u0baa\u0bb2\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0bbe
territories.BF=\u0baa\u0bb0\u0bcd\u0b95\u0bbf\u0ba9\u0bcb \u0baa\u0bbe\u0bb8\u0bcb
-territories.BE=\u0baa\u0bc6\u0bb2\u0bcd\u0b9c\u0bbf\u0baf\u0bae\u0bcd
territories.NP=\u0ba8\u0bc7\u0baa\u0bbe\u0bb3\u0bae\u0bcd
-territories.BD=\u0baa\u0b99\u0bcd\u0b95\u0bb3\u0bbe\u0ba4\u0bc7\u0bb7\u0bcd
+territories.BE=\u0baa\u0bc6\u0bb2\u0bcd\u0b9c\u0bbf\u0baf\u0bae\u0bcd
territories.NO=\u0ba8\u0bbe\u0bb0\u0bcd\u0bb5\u0bc7
+territories.BD=\u0bb5\u0b99\u0bcd\u0b95\u0ba4\u0bc7\u0b9a\u0bae\u0bcd
territories.BB=\u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0b9f\u0bcb\u0bb8\u0bcd
territories.ZW=\u0b9c\u0bbf\u0bae\u0bcd\u0baa\u0bbe\u0baa\u0bcd\u0bb5\u0bc7
-territories.BA=\u0baa\u0bcb\u0bb8\u0bcd\u0ba9\u0bbf\u0baf\u0bbe \u0bb9\u0bc6\u0bb0\u0bcd\u0bb8\u0bbf\u0b95\u0bcb\u0bb5\u0bbf\u0ba9\u0bbe
territories.NL=\u0ba8\u0bc6\u0ba4\u0bb0\u0bcd\u0bb2\u0bbe\u0ba8\u0bcd\u0ba4\u0bc1
+territories.BA=\u0baa\u0bcb\u0bb8\u0bcd\u0ba9\u0bbf\u0baf\u0bbe \u0bb9\u0bc6\u0bb0\u0bcd\u0bb8\u0bbf\u0b95\u0bcb\u0bb5\u0bbf\u0ba9\u0bbe
territories.NI=\u0ba8\u0bbf\u0b95\u0bbe\u0bb0\u0bbe\u0b95\u0bc1\u0bb5\u0bbe
territories.AZ=\u0b85\u0b9c\u0bb0\u0bcd\u0baa\u0bc8\u0b9c\u0bbe\u0ba9\u0bcd
-territories.NA=\u0ba9\u0bbe\u0bae\u0bc0\u0baa\u0bbf\u0baf\u0bbe
+territories.AX=\u0b86\u0bb2\u0ba8\u0bcd\u0ba4\u0bc1 \u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd
territories.AU=\u0b86\u0bb8\u0bcd\u0ba4\u0bbf\u0bb0\u0bc7\u0bb2\u0bbf\u0baf\u0bbe
+territories.NA=\u0ba9\u0bbe\u0bae\u0bc0\u0baa\u0bbf\u0baf\u0bbe
territories.AT=\u0b86\u0bb8\u0bcd\u0ba4\u0bbf\u0bb0\u0bbf\u0baf\u0bbe
+territories.AS=\u0b85\u0bae\u0bc6\u0bb0\u0bbf\u0b95\u0bcd\u0b95 \u0b9a\u0bae\u0bcb\u0bb5\u0bbe
territories.AR=\u0b85\u0bb0\u0bcd\u0b9c\u0bc6\u0ba3\u0bcd\u0b9f\u0bbf\u0ba9\u0bbe
+territories.AQ=\u0b85\u0ba3\u0bcd\u0b9f\u0bbe\u0bb0\u0bcd\u0b9f\u0bbf\u0b95\u0bbe
territories.AO=\u0b85\u0b99\u0bcd\u0b95\u0bcb\u0bb2\u0bbe
territories.MY=\u0bae\u0bb2\u0bc7\u0bb7\u0bbf\u0baf\u0bbe
-territories.AM=\u0b86\u0bb0\u0bcd\u0bae\u0bc0\u0ba9\u0bbf\u0baf\u0bbe
territories.MX=\u0bae\u0bc6\u0b95\u0bcd\u0b9a\u0bbf\u0b95\u0bcb
-territories.AL=\u0b85\u0bb2\u0bcd\u0baa\u0bc7\u0ba9\u0bbf\u0baf\u0bbe
+territories.AM=\u0b86\u0bb0\u0bcd\u0bae\u0bc0\u0ba9\u0bbf\u0baf\u0bbe
territories.MW=\u0bae\u0bb2\u0bbe\u0bb5\u0bc0
-territories.MV=\u0bae\u0bbe\u0bb2\u0ba4\u0bcd\u0ba4\u0bc0\u0bb5\u0bc1
+territories.AL=\u0b85\u0bb2\u0bcd\u0baa\u0bc7\u0ba9\u0bbf\u0baf\u0bbe
+territories.MV=\u0bae\u0bbe\u0bb2\u0ba4\u0bcd\u0ba4\u0bc0\u0bb5\u0bc1\u0b95\u0bb3\u0bcd
territories.ZA=\u0ba4\u0bc6\u0ba9\u0bcd \u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bbe
+territories.MU=\u0bae\u0bcb\u0bb0\u0bbf\u0b9a\u0bbf\u0baf\u0bb8\u0bcd
+territories.002=\u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0bcd\u0b95\u0bbe
territories.MT=\u0bae\u0bbe\u0bb2\u0bcd\u0b9f\u0bbe
territories.AG=\u0b86\u0ba9\u0bcd\u0b9f\u0bbf\u0b95\u0bc1\u0bb5\u0bbe \u0baa\u0bbe\u0bb0\u0bcd\u0baa\u0bc1\u0b9f\u0bbe
territories.AF=\u0b86\u0baa\u0bcd\u0b95\u0bbe\u0ba9\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd
@@ -136,12 +159,15 @@ territories.LU=\u0bb2\u0b95\u0bcd\u0bb8\u0bcd\u0b9a\u0bae\u0bcd\u0baa\u0bb0\u0bc
territories.LT=\u0bb2\u0bbf\u0ba4\u0bc1\u0bb5\u0bc7\u0ba9\u0bbf\u0baf\u0bbe
territories.LS=\u0bb2\u0bc6\u0b9a\u0bcb\u0ba4\u0bcb
territories.LR=\u0bb2\u0bc8\u0baa\u0bc0\u0bb0\u0bbf\u0baf\u0bbe
+territories.151=\u0b95\u0bbf\u0bb4\u0b95\u0bcd\u0b95\u0bc1 \u0b90\u0bb0\u0bcb\u0baa\u0bcd\u0baa\u0bbe
territories.LK=\u0b87\u0bb2\u0b99\u0bcd\u0b95\u0bc8
territories.LI=\u0bb2\u0bbf\u0b9a\u0bcd\u0b9f\u0bc6\u0ba3\u0bcd\u0bb8\u0bcd\u0b9f\u0bc0\u0ba9\u0bcd
territories.LB=\u0bb2\u0bc6\u0baa\u0ba9\u0bbe\u0ba9\u0bcd
territories.LA=\u0bb2\u0bbe\u0bb5\u0bcb\u0bb8\u0bcd
territories.KZ=\u0b95\u0b9c\u0b95\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd
territories.KW=\u0b95\u0bc1\u0bb5\u0bc8\u0ba4\u0bcd\u0ba4\u0bc1
+territories.143=\u0bae\u0ba4\u0bcd\u0ba4\u0bbf\u0baf \u0b86\u0b9a\u0bbf\u0baf\u0bbe
+territories.142=\u0b86\u0b9a\u0bbf\u0baf\u0bbe
territories.KR=\u0ba4\u0bc6\u0ba9\u0bcd \u0b95\u0bca\u0bb0\u0bbf\u0baf\u0bbe
territories.KP=\u0bb5\u0b9f \u0b95\u0bca\u0bb0\u0bbf\u0baf\u0bbe
territories.KM=\u0b95\u0bcb\u0bae\u0bb0\u0bcb\u0bb8\u0bcd
@@ -180,144 +206,151 @@ territories.TR=\u0ba4\u0bc1\u0bb0\u0bc1\u0b95\u0bcd\u0b95\u0bbf
territories.TO=\u0ba4\u0bca\u0b99\u0bcd\u0b95\u0bbe
territories.TN=\u0ba4\u0bc1\u0ba9\u0bbf\u0b9a\u0bbf\u0baf\u0bbe
territories.TM=\u0ba4\u0bc1\u0bb0\u0bcd\u0b95\u0bcd\u0bae\u0bc6\u0ba9\u0bbf\u0bb8\u0bcd\u0ba4\u0bbe\u0ba9\u0bcd
-languages.es=\u0bb8\u0bcd\u0baa\u0bc7\u0ba9\u0bbf\u0bb7\u0bcd
+languages.la=\u0bb2\u0ba4\u0bcd\u0ba4\u0bc0\u0ba9\u0bcd
+languages.xh=\u0bb9\u0bcb\u0bb7\u0bbe
+languages.ky=\u0b95\u0bbf\u0bb0\u0bcd\u0b95\u0bbf\u0bb7\u0bcd
languages.ku=\u0b95\u0bc1\u0bb0\u0bcd\u0ba4\u0bbf\u0bb7\u0bcd
-languages.eo=\u0b8e\u0bb8\u0bcd\u0baa\u0bb0\u0bc7\u0ba9\u0bcd\u0b9f\u0bcb
-languages.en=\u0b86\u0b99\u0bcd\u0b95\u0bbf\u0bb2\u0bae\u0bcd
languages.ks=\u0b95\u0bbe\u0bb7\u0bcd\u0bae\u0bbf\u0bb0\u0bbf
-languages.el=\u0b95\u0bbf\u0bb0\u0bc7\u0b95\u0bcd\u0b95\u0bae\u0bcd
-languages.qu=\u0b95\u0bbf\u0baf\u0bc1\u0b9a\u0bbe
languages.ko=\u0b95\u0bca\u0bb0\u0bbf\u0baf\u0ba9\u0bcd
-languages.kn=\u0b95\u0ba9\u0bcd\u0ba9\u0b9f\u0bbe
+languages.kn=\u0b95\u0ba9\u0bcd\u0ba9\u0b9f\u0bae\u0bcd
languages.km=\u0b95\u0bae\u0bcd\u0baa\u0bcb\u0b9f\u0bbf\u0baf\u0ba9\u0bcd
-languages.kok=\u0b95\u0bca\u0b99\u0bcd\u0b95\u0ba9\u0bbf
languages.kl=\u0b95\u0bbf\u0bb0\u0bbf\u0ba9\u0bcd\u0bb2\u0bc6\u0ba9\u0bcd\u0b9f\u0bbf\u0b95\u0bcd
languages.kk=\u0b95\u0b9a\u0bbe\u0b95\u0bcd
languages.wo=\u0b92\u0bb2\u0bcb\u0baa\u0bcd
-languages.ka=\u0b95\u0ba9\u0bcd\u0ba9\u0b9f\u0bae\u0bcd
-languages.dz=\u0baa\u0bc1\u0b9f\u0bbe\u0ba9\u0bbf
+languages.ka=\u0b9c\u0bbe\u0bb0\u0bcd\u0b9c\u0bbf\u0baf\u0ba9\u0bcd
languages.jv=\u0b9c\u0bbe\u0bb5\u0bbe\u0ba9\u0bc0\u0bb8\u0bcd
-languages.pt=\u0baa\u0bcb\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bc0\u0bb8\u0bcd
-languages.ps=\u0baa\u0bc7\u0bb7\u0bcd\u0b9f\u0bcb (\u0baa\u0bc1\u0bb7\u0bcd\u0b9f\u0bcb)
-languages.de=\u0b9c\u0bc6\u0bb0\u0bcd\u0bae\u0ba9\u0bcd
-languages.pl=\u0baa\u0bcb\u0bb2\u0bbf\u0bb7\u0bcd
-languages.da=\u0b9f\u0bbe\u0ba9\u0bbf\u0bb7\u0bcd
languages.vo=\u0b92\u0bb2\u0baa\u0bc1\u0b95\u0bcd
languages.ja=\u0b9c\u0baa\u0bcd\u0baa\u0bbe\u0ba9\u0bc0\u0bb8\u0bcd
languages.vi=\u0bb5\u0bbf\u0baf\u0b9f\u0bcd\u0ba8\u0bbe\u0bae\u0bbf\u0bb8\u0bcd
-languages.cy=\u0bb5\u0bc6\u0bb2\u0bcd\u0bb7\u0bcd
-languages.pa=\u0baa\u0b9e\u0bcd\u0b9a\u0bbe\u0baa\u0bbf
-languages.cs=\u0b9a\u0bc6\u0b95\u0bcd
languages.iu=\u0b87\u0ba9\u0bc1\u0b95\u0bbf\u0b9f\u0b9f\u0bcd
-languages.co=\u0b95\u0bbe\u0bb0\u0bcd\u0b9a\u0bbf\u0baf\u0ba9\u0bcd
languages.it=\u0b87\u0ba4\u0bcd\u0ba4\u0bbe\u0bb2\u0bbf\u0baf\u0ba9\u0bcd
languages.is=\u0b90\u0bb8\u0bcd\u0bb2\u0bc6\u0ba9\u0bcd\u0b9f\u0bbf\u0b95\u0bcd
languages.uz=\u0b89\u0bb8\u0bcd\u0baa\u0bc6\u0b95\u0bcd
-languages.or=\u0b92\u0bb0\u0bbf\u0baf\u0bbe
languages.ik=\u0b87\u0ba9\u0bc1\u0baa\u0bc6\u0b95\u0bcd
languages.ur=\u0b89\u0bb0\u0bc1\u0ba4\u0bc1
-languages.om=\u0b92\u0bb0\u0bcb\u0bae (\u0b85\u0baa\u0ba9\u0bcd)
-languages.ca=\u0b95\u0bbe\u0b9f\u0bb2\u0bbe\u0ba9\u0bcd
languages.ie=\u0b87\u0ba9\u0bcd\u0b9f\u0bb0\u0bcd\u0bb2\u0bbf\u0b99\u0bcd\u0b95\u0bc1\u0bb5\u0bbe
languages.id=\u0b87\u0ba8\u0bcd\u0ba4\u0bcb\u0ba9\u0bc7\u0bb7\u0bbf\u0baf\u0ba9\u0bcd
+languages.ia=\u0b87\u0ba9\u0bcd\u0b9f\u0bb0\u0bcd\u0bb2\u0bbf\u0b99\u0bcd\u0b95\u0bc1\u0bb5\u0bbe [ia]
languages.uk=\u0b89\u0b95\u0bcd\u0bb0\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
-languages.ia=\u0b87\u0ba9\u0bcd\u0b9f\u0bb0\u0bcd\u0bb2\u0bbf\u0b99\u0bcd\u0b95\u0bc1\u0bb5\u0bbe
-languages.oc=\u0b86\u0b95\u0bbf\u0b9f\u0bbf\u0baf\u0ba9\u0bcd
+languages.kok=\u0b95\u0bca\u0b99\u0bcd\u0b95\u0ba9\u0bbf
languages.ug=\u0baf\u0bc1\u0b95\u0bc1\u0bb0\u0bcd
languages.hy=\u0b86\u0bb0\u0bcd\u0bae\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
-languages.br=\u0baa\u0bbf\u0bb0\u0bbf\u0b9f\u0ba9\u0bcd
languages.hu=\u0bb9\u0b99\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0ba9\u0bcd
-languages.bo=\u0ba4\u0bbf\u0baa\u0bc6\u0ba4\u0bcd\u0ba4\u0bc1
-languages.bn=\u0bb5\u0b99\u0bcd\u0b95\u0bbe\u0bb3\u0bae\u0bcd
languages.hr=\u0b95\u0bb0\u0bcb\u0bb7\u0bbf\u0baf\u0ba9\u0bcd
-languages.bi=\u0baa\u0bbf\u0bb8\u0bcd\u0bb2\u0bbe\u0bae\u0bbe
+languages.fil=\u0b83\u0baa\u0bbf\u0bb2\u0bbf\u0baa\u0bbf\u0ba9\u0bcb
languages.tw=\u0ba4\u0bcd\u0ba4\u0bbf\u0bb5\u0bbf
-languages.bh=\u0baa\u0bbf\u0bb9\u0bbe\u0bb0\u0bbf
-languages.bg=\u0baa\u0bb2\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0ba9\u0bcd
languages.tt=\u0b9f\u0bbe\u0b9f\u0bb0\u0bcd
-languages.no=\u0ba8\u0bbe\u0bb0\u0bcd\u0bb5\u0bc7\u0b95\u0bbf\u0baf\u0ba9\u0bcd
-languages.be=\u0baa\u0bc8\u0bb2\u0bcb\u0bb0\u0bc1\u0bb7\u0bcd\u0ba9\u0bcd
-languages.ts=\u0bb8\u0bcb\u0b99\u0bcd\u0b95\u0bbe
languages.hi=\u0b87\u0ba8\u0bcd\u0ba4\u0bbf
+languages.ts=\u0bb8\u0bcb\u0b99\u0bcd\u0b95\u0bbe
languages.tr=\u0b9f\u0bb0\u0bcd\u0b95\u0bbf\u0bb7\u0bcd
-languages.nl=\u0b9f\u0b9a\u0bcd\u0b9a\u0bc1
-languages.zu=\u0b9c\u0bc2\u0bb2\u0bc2
-languages.ba=\u0baa\u0bbe\u0bb7\u0bcd\u0b95\u0bbf\u0bb0\u0bcd0
-languages.to=\u0b9f\u0bcb\u0b99\u0bcd\u0b95\u0bbe
languages.he=\u0bb9\u0bc1\u0baa\u0bcd\u0bb0\u0bc1
+languages.to=\u0b9f\u0bcb\u0b99\u0bcd\u0b95\u0bbe
languages.tn=\u0bb8\u0bc6\u0b9f\u0bcd\u0bb8\u0bcd\u0bb5\u0bbe\u0ba9\u0bbe
languages.tl=\u0b9f\u0bbe\u0b95\u0bbe\u0bb2\u0bcb\u0b95\u0bcd
-languages.tk=\u0b9f\u0bb0\u0bcd\u0b95\u0bcd\u0bae\u0bc6\u0ba9\u0bcd
languages.ha=\u0bb9\u0bca\u0bb8\u0bbe
-languages.ne=\u0ba8\u0bc7\u0baa\u0bcd\u0baa\u0bbe\u0bb2\u0bbf
-languages.az=\u0b85\u0b9a\u0bb0\u0bcd\u0baa\u0bbe\u0baf\u0bcd\u0b9c\u0bbe\u0ba9\u0bbf
+languages.tk=\u0b9f\u0bb0\u0bcd\u0b95\u0bcd\u0bae\u0bc6\u0ba9\u0bcd
languages.ti=\u0b9f\u0bbf\u0b95\u0bcd\u0bb0\u0bbf\u0ba9\u0bcd\u0baf\u0bbe
-languages.ay=\u0b85\u0baf\u0bae\u0bb0\u0bbe
languages.th=\u0ba4\u0bbe\u0baf\u0bcd
languages.tg=\u0ba4\u0bbe\u0b9c\u0bbf\u0b95\u0bcd
-languages.na=\u0ba8\u0bbe\u0bb0\u0bc2
languages.te=\u0ba4\u0bc6\u0bb2\u0bc1\u0b99\u0bcd\u0b95\u0bc1
-languages.zh=\u0b9a\u0bc0\u0ba9\u0bae\u0bcd
-languages.as=\u0b85\u0bb8\u0bcd\u0bb8\u0bbe\u0bae\u0bbf
-languages.ar=\u0b85\u0bb0\u0baa\u0bc1
languages.ta=\u0ba4\u0bae\u0bbf\u0bb4\u0bcd
languages.gu=\u0b95\u0bc1\u0b9c\u0bb0\u0bbe\u0ba4\u0bcd\u0ba4\u0bbf
-languages.my=\u0baa\u0bb0\u0bcd\u0bae\u0bbf\u0bb8\u0bcd
-languages.am=\u0b85\u0bae\u0bcd\u0bb9\u0bbe\u0bb0\u0bbf\u0b95\u0bcd
-languages.za=\u0b9c\u0bc1\u0bb5\u0bbe\u0b99\u0bcd
-languages.mt=\u0bae\u0bbe\u0bb2\u0bcd\u0b9f\u0bbf\u0bb8\u0bcd
-languages.ms=\u0bae\u0bb2\u0bbe\u0baf\u0bcd
languages.gn=\u0b95\u0bc1\u0bb0\u0bbe\u0ba9\u0bbf
languages.sw=\u0b9a\u0bc1\u0bb5\u0bbe\u0bb9\u0bbf\u0bb2\u0bbf
-languages.mr=\u0bae\u0bb0\u0bbe\u0ba4\u0bcd\u0ba4\u0bbf
-languages.sv=\u0bb7\u0bc0\u0bb5\u0bbf\u0b9f\u0bbf\u0bb8\u0bcd
languages.gl=\u0b95\u0bc6\u0bb2\u0bbf\u0bb8\u0bbf\u0baf\u0ba9\u0bcd
+languages.sv=\u0bb7\u0bc0\u0bb5\u0bbf\u0b9f\u0bbf\u0bb8\u0bcd
languages.su=\u0b9a\u0bc1\u0b9f\u0bbe\u0ba9\u0bc0\u0bb8\u0bcd
-languages.af=\u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0ba9\u0bcd\u0bb8\u0bcd
languages.st=\u0bb7\u0bc6\u0bb8\u0bcd\u0bb8\u0bcb\u0ba4\u0bcb
-languages.mo=\u0bae\u0bcb\u0bb2\u0bcd\u0b9f\u0bc7\u0bb5\u0bbf\u0baf\u0ba9\u0bcd
languages.ss=\u0bb7\u0bbf\u0bb8\u0bcd\u0bb5\u0bbe\u0ba4\u0bbf
-languages.mn=\u0bae\u0b99\u0bcd\u0b95\u0bcb\u0bb2\u0bbf\u0baf\u0ba9\u0bcd
languages.sr=\u0b9a\u0bb0\u0bcd\u0baa\u0bbf\u0baf\u0ba9\u0bcd
languages.sq=\u0b85\u0bb2\u0bcd\u0baa\u0bc6\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
-languages.ml=\u0bae\u0bb2\u0bc8\u0baf\u0bbe\u0bb3\u0bae\u0bcd
-languages.ab=\u0b85\u0baa\u0bcd\u0b95\u0bbe\u0bb8\u0bbf\u0ba9\u0bcd
-languages.mk=\u0bae\u0bc6\u0b95\u0bcd\u0b95\u0b9f\u0bcb\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
-languages.aa=\u0b85\u0baa\u0bbe\u0bb0\u0bcd
languages.so=\u0b9a\u0bcb\u0bae\u0bbe\u0bb2\u0bbf
-languages.sn=\u0bb7\u0bcb\u0ba9\u0bbe
-languages.mi=\u0bae\u0bcb\u0bb0\u0bbf
languages.gd=\u0bb8\u0bcd\u0b95\u0bbe\u0b9f\u0bcd\u0bb8\u0bcd \u0b95\u0bbe\u0bb2\u0bc6\u0b95\u0bcd
+languages.sn=\u0bb7\u0bcb\u0ba9\u0bbe
languages.sm=\u0bb8\u0bc6\u0bae\u0bcb\u0ba9\u0bcd
languages.sl=\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bbf\u0ba9\u0bc7\u0baf\u0bbf\u0ba9\u0bcd
-languages.mg=\u0bae\u0bb2\u0b95\u0bc6\u0bb8\u0bbf
-languages.sk=\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bc6\u0b95\u0bcd
languages.ga=\u0b90\u0bb0\u0bbf\u0bb7\u0bcd
-languages.yo=\u0baf\u0bcb\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bbe
+languages.sk=\u0bb8\u0bcd\u0bb2\u0bcb\u0bb5\u0bc6\u0b95\u0bcd
languages.si=\u0b9a\u0bbf\u0b99\u0bcd\u0b95\u0bb3\u0bae\u0bcd
languages.sh=\u0b9a\u0bc6\u0bb0\u0bcd\u0baa\u0bcb-\u0b95\u0bcd\u0bb0\u0bcb\u0bb7\u0bbf\u0baf\u0ba9\u0bcd
languages.sg=\u0b9a\u0bc6\u0ba9\u0bcd\u0b95\u0bcd\u0bb0\u0bcb
-languages.yi=\u0b88\u0ba4\u0bcd\u0ba4\u0bbf\u0bb7
-languages.sd=\u0b9a\u0bbf\u0ba8\u0bcd\u0ba4\u0bbf
languages.fy=\u0baa\u0bbf\u0bb0\u0bbf\u0bb7\u0bbf\u0baf\u0ba9\u0bcd
+languages.sd=\u0b9a\u0bbf\u0ba8\u0bcd\u0ba4\u0bbf
languages.sa=\u0b9a\u0bae\u0bb8\u0bcd\u0b95\u0bbf\u0bb0\u0bc1\u0ba4\u0bae\u0bcd
languages.fr=\u0baa\u0bbf\u0bb0\u0bc6\u0b9e\u0bcd\u0b9a\u0bc1
-languages.lv=\u0bb2\u0bc7\u0b9f\u0bcd\u0bb5\u0bbf\u0baf\u0ba9\u0bcd (\u0bb2\u0bc7\u0b9f\u0bcd\u0b9f\u0bbf\u0bb7\u0bcd)
languages.fo=\u0baa\u0bc8\u0bb0\u0bcb\u0bb8\u0bbf
-languages.lt=\u0bb2\u0bc1\u0ba4\u0bcd\u0ba4\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
languages.rw=\u0b95\u0bbf\u0ba9\u0bcd\u0baf\u0bb0\u0bcd\u0bb5\u0bc6\u0ba9\u0bcd\u0b9f\u0bbe
-languages.root=\u0ba4\u0bae\u0bbf\u0bb4\u0bcd
languages.ru=\u0bb0\u0bb7\u0bbf\u0baf\u0ba9\u0bcd
languages.fj=\u0baa\u0bbf\u0b9c\u0bbf
-languages.lo=\u0bb2\u0bcb\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0ba9\u0bcd
languages.fi=\u0baa\u0bbf\u0ba9\u0bcd\u0ba9\u0bbf\u0bb7\u0bcd
-languages.ln=\u0bb2\u0bbf\u0b99\u0bcd\u0b95\u0bbe\u0bb2\u0bbe
languages.ro=\u0bb0\u0bcb\u0bae\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
languages.rn=\u0b95\u0bbf\u0bb0\u0bc1\u0ba8\u0bcd\u0ba4\u0bbf
languages.rm=\u0bb0\u0bc8\u0b9f\u0bcd\u0b9f\u0bcb-\u0bb0\u0bcb\u0bae\u0bc6\u0ba9\u0bcd\u0bb8\u0bcd
languages.fa=\u0baa\u0bb0\u0bcd\u0bb8\u0bbf\u0baf\u0ba9\u0bcd
-languages.la=\u0bb2\u0bbe\u0ba4\u0bbf\u0ba9\u0bcd
-languages.xh=\u0bb9\u0bcb\u0bb7\u0bbe
+languages.pt_PT=\u0baa\u0bcb\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bc0\u0b9a\u0bbf\u0baf\u0bae\u0bcd (\u0baa\u0bcb\u0bb0\u0bcd\u0b9a\u0bcd\u0b9a\u0bc1\u0b95\u0bcd\u0b95\u0bb2\u0bcd)
languages.eu=\u0baa\u0bb8\u0bcd\u0b95\u0bcd
languages.et=\u0b8e\u0bb8\u0bcd\u0b9f\u0bcb\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
-languages.ky=\u0b95\u0bbf\u0bb0\u0bcd\u0b95\u0bbf\u0bb7\u0bcd
+languages.es=\u0bb8\u0bcd\u0baa\u0bc7\u0ba9\u0bbf\u0bb7\u0bcd
+languages.eo=\u0b8e\u0bb8\u0bcd\u0baa\u0bb0\u0bc7\u0ba9\u0bcd\u0b9f\u0bcb
+languages.en=\u0b86\u0b99\u0bcd\u0b95\u0bbf\u0bb2\u0bae\u0bcd
+languages.el=\u0b95\u0bbf\u0bb0\u0bc7\u0b95\u0bcd\u0b95\u0bae\u0bcd
+languages.qu=\u0b95\u0bbf\u0baf\u0bc1\u0b9a\u0bbe
+languages.dz=\u0baa\u0bc1\u0b9f\u0bbe\u0ba9\u0bbf
+languages.pt=\u0baa\u0bcb\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bc0\u0bb8\u0bcd
+languages.pt_BR=\u0baa\u0bcb\u0bb0\u0bcd\u0ba4\u0bcd\u0ba4\u0bc1\u0b95\u0bcd\u0b95\u0bc0\u0b9a\u0bbf\u0baf\u0bae\u0bcd(\u0baa\u0bbf\u0bb0\u0bc7\u0b9a\u0bbf\u0bb2\u0bcd)
+languages.ps=\u0baa\u0bc7\u0bb7\u0bcd\u0b9f\u0bcb (\u0baa\u0bc1\u0bb7\u0bcd\u0b9f\u0bcb)
+languages.de=\u0b9c\u0bc6\u0bb0\u0bcd\u0bae\u0ba9\u0bcd
+languages.pl=\u0baa\u0bcb\u0bb2\u0bbf\u0bb7\u0bcd
+languages.da=\u0b9f\u0bbe\u0ba9\u0bbf\u0bb7\u0bcd
+languages.cy=\u0bb5\u0bc6\u0bb2\u0bcd\u0bb7\u0bcd
+languages.pa=\u0baa\u0b9e\u0bcd\u0b9a\u0bbe\u0baa\u0bbf
+languages.cs=\u0b9a\u0bc6\u0b95\u0bcd
+languages.co=\u0b95\u0bbe\u0bb0\u0bcd\u0b9a\u0bbf\u0baf\u0ba9\u0bcd
+languages.or=\u0b92\u0bb0\u0bbf\u0baf\u0bbe
+languages.om=\u0b92\u0bb0\u0bcb\u0bae (\u0b85\u0baa\u0ba9\u0bcd)
+languages.ca=\u0b95\u0bbe\u0b9f\u0bb2\u0bbe\u0ba9\u0bcd
+languages.oc=\u0b86\u0b95\u0bbf\u0b9f\u0bbf\u0baf\u0ba9\u0bcd
+languages.bs=\u0baa\u0bcb\u0bb8\u0bcd\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
+languages.br=\u0baa\u0bbf\u0bb0\u0bbf\u0b9f\u0ba9\u0bcd
+languages.bo=\u0ba4\u0bbf\u0baa\u0bc6\u0ba4\u0bcd\u0ba4\u0bc1
+languages.zh_Hans=\u0b8e\u0bb3\u0bbf\u0baf \u0b9a\u0bc0\u0ba9\u0bae\u0bcd
+languages.bn=\u0bb5\u0b99\u0bcd\u0b95\u0bbe\u0bb3\u0bae\u0bcd
+languages.zh_Hant=\u0bae\u0bb0\u0baa\u0bc1 \u0b9a\u0bc0\u0ba9\u0bae\u0bcd
+languages.bi=\u0baa\u0bbf\u0bb8\u0bcd\u0bb2\u0bbe\u0bae\u0bbe
+languages.bh=\u0baa\u0bbf\u0bb9\u0bbe\u0bb0\u0bbf
+languages.bg=\u0baa\u0bb2\u0bcd\u0b95\u0bc7\u0bb0\u0bbf\u0baf\u0ba9\u0bcd
+languages.be=\u0baa\u0bc8\u0bb2\u0bcb\u0bb0\u0bc1\u0bb7\u0bcd\u0ba9\u0bcd
+languages.no=\u0ba8\u0bbe\u0bb0\u0bcd\u0bb5\u0bc7\u0b95\u0bbf\u0baf\u0ba9\u0bcd
+languages.nn=\u0ba8\u0bbe\u0bb0\u0bcd\u0bb5\u0bc0\u0b9c\u0bbf\u0baf\u0ba9\u0bcd (\u0ba8\u0bc8\u0ba8\u0bcb\u0bb0\u0bcd\u0bb8\u0bcd\u0b95\u0bcd)
+languages.nl=\u0b9f\u0b9a\u0bcd\u0b9a\u0bc1
+languages.ba=\u0baa\u0bbe\u0bb7\u0bcd\u0b95\u0bbf\u0bb0\u0bcd
+languages.zu=\u0b9c\u0bc2\u0bb2\u0bc2
+languages.az=\u0b85\u0b9a\u0bb0\u0bcd\u0baa\u0bbe\u0baf\u0bcd\u0b9c\u0bbe\u0ba9\u0bbf
+languages.ne=\u0ba8\u0bc7\u0baa\u0bcd\u0baa\u0bbe\u0bb2\u0bbf
+languages.ay=\u0b85\u0baf\u0bae\u0bb0\u0bbe
+languages.na=\u0ba8\u0bbe\u0bb0\u0bc2
+languages.as=\u0b85\u0bb8\u0bcd\u0bb8\u0bbe\u0bae\u0bbf
+languages.ar=\u0b85\u0bb0\u0baa\u0bc1
+languages.zh=\u0b9a\u0bc0\u0ba9\u0bae\u0bcd
+languages.my=\u0baa\u0bb0\u0bcd\u0bae\u0bbf\u0bb8\u0bcd
+languages.am=\u0b85\u0bae\u0bcd\u0bb9\u0bbe\u0bb0\u0bbf\u0b95\u0bcd
+languages.za=\u0b9c\u0bc1\u0bb5\u0bbe\u0b99\u0bcd
+languages.mt=\u0bae\u0bbe\u0bb2\u0bcd\u0b9f\u0bbf\u0bb8\u0bcd
+languages.ms=\u0bae\u0bb2\u0bbe\u0baf\u0bcd
+languages.mr=\u0bae\u0bb0\u0bbe\u0ba4\u0bcd\u0ba4\u0bbf
+languages.af=\u0b86\u0baa\u0bcd\u0bb0\u0bbf\u0b95\u0ba9\u0bcd\u0bb8\u0bcd
+languages.mo=\u0bae\u0bcb\u0bb2\u0bcd\u0b9f\u0bc7\u0bb5\u0bbf\u0baf\u0ba9\u0bcd
+languages.mn=\u0bae\u0b99\u0bcd\u0b95\u0bcb\u0bb2\u0bbf\u0baf\u0ba9\u0bcd
+languages.ab=\u0b85\u0baa\u0bcd\u0b95\u0bbe\u0bb8\u0bbf\u0ba9\u0bcd
+languages.ml=\u0bae\u0bb2\u0bc8\u0baf\u0bbe\u0bb3\u0bae\u0bcd
+languages.aa=\u0b85\u0baa\u0bbe\u0bb0\u0bcd
+languages.mk=\u0bae\u0bc6\u0b95\u0bcd\u0b95\u0b9f\u0bcb\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
+languages.mi=\u0bae\u0bcb\u0bb0\u0bbf
+languages.mg=\u0bae\u0bb2\u0b95\u0bc6\u0bb8\u0bbf
+languages.yo=\u0baf\u0bcb\u0bb0\u0bc1\u0baa\u0bcd\u0baa\u0bbe
+languages.tlh=\u0b95\u0bbf\u0bb3\u0bbf\u0b99\u0bcd\u0b95\u0ba9\u0bcd
+languages.yi=\u0b88\u0ba4\u0bcd\u0ba4\u0bbf\u0bb7
+languages.lv=\u0bb2\u0bc7\u0b9f\u0bcd\u0bb5\u0bbf\u0baf\u0ba9\u0bcd (\u0bb2\u0bc7\u0b9f\u0bcd\u0b9f\u0bbf\u0bb7\u0bcd)
+languages.lt=\u0bb2\u0bbf\u0ba4\u0bc1\u0bb5\u0bc7\u0ba9\u0bbf\u0baf\u0ba9\u0bcd
+languages.lo=\u0bb2\u0bcb\u0ba4\u0bcd\u0ba4\u0bbf\u0baf\u0ba9\u0bcd
+languages.ln=\u0bb2\u0bbf\u0b99\u0bcd\u0b95\u0bbe\u0bb2\u0bbe
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_te.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_te.properties
index c4580f5..e8b78dd 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_te.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_te.properties
@@ -6,6 +6,8 @@
# This file was automatically generated by gnu.localegen from CLDR.
zeroDigit=\u0c66
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
currenciesDisplayName.INR=\u0c30\u0c42\u0c2a\u0c3e\u0c2f\u0c3f
currenciesDisplayName.JPY=\u0c1c\u0c2a\u0c3e\u0c28\u0c41 \u0c26\u0c47\u0c36 \u0c2f\u0c46\u0c38\u0c4d
currenciesDisplayName.RUB=\u0c30\u0c37\u0c4d\u0c2f \u0c26\u0c47\u0c36 \u0c30\u0c42\u0c2c\u0c32\u0c4d
@@ -18,14 +20,24 @@ currenciesSymbol.INR=\u0c30\u0c42.
currenciesSymbol.RUB=\u0c30\u0c42\u0c2c\u0c32\u0c4d
currenciesSymbol.CNY=\u0c2f\u0c41
currenciesSymbol.BRL=\u0c30\u0c3f$
-shortMonths=\u0c1c\u0c28\u0c35\u0c30\u0c3f®\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f®\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f®\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d®\u0c2e\u0c47®\u0c1c\u0c42\u0c28\u0c4d®\u0c1c\u0c42\u0c32\u0c48®\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41®\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d®\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d®\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d®\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d®®
-months=\u0c1c\u0c28\u0c35\u0c30\u0c3f®\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f®\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f®\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d®\u0c2e\u0c47®\u0c1c\u0c42\u0c28\u0c4d®\u0c1c\u0c42\u0c32\u0c48®\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41®\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d®\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d®\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d®\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d®®
-shortWeekdays=®\u0c06\u0c26\u0c3f®\u0c38\u0c4b\u0c2e®\u0c2e\u0c02\u0c17\u0c33®\u0c2c\u0c41\u0c27®\u0c17\u0c41\u0c30\u0c41®\u0c36\u0c41\u0c15\u0c4d\u0c30®\u0c36\u0c28\u0c3f®
-weekdays=®\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02®\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02®\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02®\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02®\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02®\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02®\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02®
-ampms=\u0c2a\u0c42\u0c30\u0c4d\u0c35\u0c3e\u0c39\u0c4d\u0c28\u0c02®\u0c05\u0c2a\u0c30\u0c3e\u0c39\u0c4d\u0c28\u0c02®
+shortMonths=\u0c1c\u0c28\u0c35\u0c30\u0c3f\u00ae\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f\u00ae\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f\u00ae\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d\u00ae\u0c2e\u0c47\u00ae\u0c1c\u0c42\u0c28\u0c4d\u00ae\u0c1c\u0c42\u0c32\u0c48\u00ae\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41\u00ae\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d\u00ae\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d\u00ae\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d\u00ae\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d\u00ae\u00ae
+months=\u0c1c\u0c28\u0c35\u0c30\u0c3f\u00ae\u0c2b\u0c3f\u0c2c\u0c4d\u0c30\u0c35\u0c30\u0c3f\u00ae\u0c2e\u0c3e\u0c30\u0c4d\u0c1a\u0c3f\u00ae\u0c0f\u0c2a\u0c4d\u0c30\u0c3f\u0c32\u0c4d\u00ae\u0c2e\u0c47\u00ae\u0c1c\u0c42\u0c28\u0c4d\u00ae\u0c1c\u0c42\u0c32\u0c48\u00ae\u0c06\u0c17\u0c38\u0c4d\u0c1f\u0c41\u00ae\u0c38\u0c46\u0c2a\u0c4d\u0c1f\u0c46\u0c02\u0c2c\u0c30\u0c4d\u00ae\u0c05\u0c15\u0c4d\u0c1f\u0c4b\u0c2c\u0c30\u0c4d\u00ae\u0c28\u0c35\u0c02\u0c2c\u0c30\u0c4d\u00ae\u0c21\u0c3f\u0c38\u0c46\u0c02\u0c2c\u0c30\u0c4d\u00ae\u00ae
+shortWeekdays=\u00ae\u0c06\u0c26\u0c3f\u00ae\u0c38\u0c4b\u0c2e\u00ae\u0c2e\u0c02\u0c17\u0c33\u00ae\u0c2c\u0c41\u0c27\u00ae\u0c17\u0c41\u0c30\u0c41\u00ae\u0c36\u0c41\u0c15\u0c4d\u0c30\u00ae\u0c36\u0c28\u0c3f\u00ae
+weekdays=\u00ae\u0c06\u0c26\u0c3f\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c38\u0c4b\u0c2e\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c2e\u0c02\u0c17\u0c33\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c2c\u0c41\u0c27\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c17\u0c41\u0c30\u0c41\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c36\u0c41\u0c15\u0c4d\u0c30\u0c35\u0c3e\u0c30\u0c02\u00ae\u0c36\u0c28\u0c3f\u0c35\u0c3e\u0c30\u0c02\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=\u0c2a\u0c42\u0c30\u0c4d\u0c35\u0c3e\u0c39\u0c4d\u0c28\u0c02\u00ae\u0c05\u0c2a\u0c30\u0c3e\u0c39\u0c4d\u0c28\u0c02\u00ae
+shortDateFormat=dd-MM-yy
+mediumDateFormat=dd-MM-yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.FR=\u0c2b\u0c4d\u0c30\u0c3e\u0c28\u0c4d\u0c38\u0c4d\u200c
territories.IN=\u0c2d\u0c3e\u0c30\u0c24 \u0c26\u0c47\u0c33\u0c02
territories.CN=\u0c1a\u0c48\u0c28\u0c3e
+territories.TO=\u0c20\u0c3e\u0c19\u0c4d\u0c17
territories.DE=\u0c19\u0c30\u0c4d\u0c2e\u0c28\u0c3f
territories.GB=\u0c2c\u0c4d\u0c30\u0c3f\u0c1f\u0c28\u0c4d
territories.BR=\u0c2c\u0c4d\u0c30\u0c1c\u0c3f\u0c32\u0c4d
@@ -33,15 +45,53 @@ territories.RU=\u0c30\u0c37\u0c4d\u0c2f
territories.JP=\u0c1c\u0c2a\u0c3e\u0c38\u0c41
territories.US=\u0c10\u0c15\u0c4d\u0c2f \u0c30\u0c3e\u0c37\u0c4d\u0c1f\u0c4d\u0c30 \u0c05\u0c2e\u0c46\u0c30\u0c3f\u0c15
territories.IT=\u0c07\u0c1f\u0c32\u0c3f
-languages.zh=\u0c1a\u0c48\u0c28\u0c3e \u0c2d\u0c3e\u0c37
-languages.en=\u0c06\u0c02\u0c17\u0c4d\u0c32\u0c02
+languages.ne=\u0c28\u0c47\u0c2a\u0c3e\u0c32\u0c3f
+languages.th=\u0c25\u0c3e\u0c2f\u0c3f
languages.te=\u0c24\u0c46\u0c32\u0c41\u0c17\u0c41
-languages.ru=\u0c30\u0c37\u0c4d\u0c2f\u0c28\u0c4d \u0c2d\u0c3e\u0c37
-languages.hi=\u0c39\u0c3f\u0c02\u0c26\u0c40
+languages.zh=\u0c1a\u0c48\u0c28\u0c3e \u0c2d\u0c3e\u0c37
+languages.ta=\u0c24\u0c2e\u0c3f\u0c33\u0c02
languages.ar=\u0c05\u0c30\u0c2c\u0c3f\u0c15\u0c4d
+languages.gu=\u0c17\u0c41\u0c1c\u0c30\u0c3e\u0c24\u0c3f
+languages.sw=\u0c38\u0c4d\u0c35\u0c3e\u0c39\u0c3f\u0c32\u0c3f
+languages.sv=\u0c38\u0c4d\u0c35\u0c40\u0c21\u0c3f\u0c37\u0c4d
+languages.pt=\u0c2a\u0c4a\u0c30\u0c4d\u0c1a\u0c41\u0c17\u0c32\u0c4d \u0c2d\u0c3e\u0c37
+languages.mr=\u0c2e\u0c30\u0c3e\u0c20\u0c3f
+languages.mn=\u0c2e\u0c02\u0c17\u0c4b\u0c32\u0c3f\u0c2f\u0c28\u0c4d
+languages.ml=\u0c2e\u0c32\u0c2f\u0c3e\u0c33\u0c02
+languages.de=\u0c19\u0c30\u0c4d\u0c2e\u0c28\u0c4d
+languages.pl=\u0c2a\u0c4b\u0c32\u0c3f\u0c37\u0c4d
+languages.da=\u0c21\u0c3e\u0c28\u0c3f\u0c37\u0c4d
+languages.si=\u0c38\u0c3f\u0c02\u0c39\u0c33\u0c40
+languages.ga=\u0c10\u0c30\u0c3f\u0c37\u0c4d
+languages.ja=\u0c1c\u0c2a\u0c3e\u0c28\u0c41 \u0c2d\u0c3e\u0c37
+languages.pa=\u0c2a\u0c02\u0c1c\u0c3e\u0c2c\u0c3f
+languages.cs=\u0c1a\u0c46\u0c15\u0c4d
+languages.lv=\u0c32\u0c3e\u0c24\u0c4d\u0c35\u0c3f\u0c2f\u0c28\u0c41
languages.it=\u0c07\u0c1f\u0c3e\u0c32\u0c3f\u0c2f\u0c28\u0c4d \u0c2d\u0c3e\u0c37
languages.fr=\u0c2b\u0c4d\u0c30\u0c46\u0c02\u0c1a\u0c4d
-languages.de=\u0c19\u0c30\u0c4d\u0c2e\u0c28\u0c4d
+languages.is=\u0c10\u0c38\u0c4d \u0c32\u0c3e\u0c02\u0c21\u0c41
+languages.lt=\u0c32\u0c3f\u0c25\u0c41\u0c35\u0c47\u0c28\u0c3f\u0c2f\u0c28\u0c41
+languages.ru=\u0c30\u0c37\u0c4d\u0c2f\u0c28\u0c4d \u0c2d\u0c3e\u0c37
+languages.fi=\u0c2b\u0c3f\u0c28\u0c4d\u0c28\u0c3f\u0c37\u0c4d
+languages.ur=\u0c09\u0c30\u0c4d\u0c26\u0c41
+languages.ro=\u0c30\u0c4a\u0c2e\u0c47\u0c28\u0c3f\u0c2f\u0c28\u0c41
+languages.id=\u0c07\u0c02\u0c21\u0c4a\u0c28\u0c47\u0c38\u0c3f\u0c2f\u0c28\u0c4d
+languages.fa=\u0c2a\u0c3e\u0c30\u0c4d\u0c36\u0c40
+languages.la=\u0c32\u0c3e\u0c1f\u0c3f\u0c28\u0c4d
+languages.xh=\u0c16\u0c4b\u0c38
+languages.et=\u0c08\u0c38\u0c4d\u0c1f\u0c4b\u0c28\u0c3f\u0c2f\u0c28\u0c41
+languages.hu=\u0c39\u0c02\u0c17\u0c47\u0c30\u0c3f\u0c2f\u0c28\u0c41
languages.es=\u0c38\u0c4d\u0c2a\u0c3e\u0c28\u0c3f\u0c37\u0c4d
-languages.ja=\u0c1c\u0c2a\u0c3e\u0c28\u0c41 \u0c2d\u0c3e\u0c37
-languages.pt=\u0c2a\u0c4a\u0c30\u0c4d\u0c1a\u0c41\u0c17\u0c32\u0c4d \u0c2d\u0c3e\u0c37
+languages.bn=\u0c2c\u0c46\u0c02\u0c17\u0c3e\u0c32\u0c3f
+languages.en=\u0c06\u0c02\u0c17\u0c4d\u0c32\u0c02
+languages.el=\u0c17\u0c4d\u0c30\u0c40\u0c15\u0c41
+languages.kn=\u0c15\u0c28\u0c4d\u0c28\u0c21
+languages.bh=\u0c2c\u0c40\u0c39\u0c3e\u0c30\u0c3f
+languages.no=\u0c28\u0c3e\u0c30\u0c4d\u0c35\u0c47\u0c1c\u0c3f\u0c2f\u0c28\u0c4d
+languages.zu=\u0c1c\u0c42\u0c32\u0c42
+languages.hi=\u0c39\u0c3f\u0c02\u0c26\u0c40
+languages.nl=\u0c21\u0c1a\u0c4d
+languages.he=\u0c39\u0c40\u0c2c\u0c4d\u0c30\u0c42
+variants.1901=\u0c2a\u0c4d\u0c30\u0c3e\u0c1a\u0c40\u0c28 \u0c19\u0c30\u0c4d\u0c2e\u0c28 \u0c35\u0c30\u0c4d\u0c23\u0c15\u0c4d\u0c30\u0c2e\u0c02
+variants.1996=1996 \u0c19\u0c30\u0c4d\u0c2e\u0c28 \u0c35\u0c30\u0c4d\u0c23\u0c15\u0c4d\u0c30\u0c2e\u0c02
+variants.REVISED=\u0c38\u0c35\u0c30\u0c3f\u0c02\u0c1a\u0c2c\u0c21\u0c3f\u0c28 \u0c35\u0c30\u0c4d\u0c23\u0c15\u0c4d\u0c30\u0c2e\u0c02
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tg.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tg.properties
new file mode 100644
index 0000000..2d40d94
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tg.properties
@@ -0,0 +1,82 @@
+# LocaleInformation_tg.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.TJS=\u0421\u043e\u043c\u043e\u043d\u04e3
+currenciesSymbol.TJS=\u0441\u043e\u043c
+shortMonths=\u042f\u043d\u0432\u00ae\u0424\u0435\u0432\u00ae\u041c\u0430\u0440\u00ae\u0410\u043f\u0440\u00ae\u041c\u0430\u0439\u00ae\u0418\u044e\u043d\u00ae\u0418\u044e\u043b\u00ae\u0410\u0432\u0433\u00ae\u0421\u0435\u043d\u00ae\u041e\u043a\u0442\u00ae\u041d\u043e\u044f\u00ae\u0414\u0435\u043a\u00ae\u00ae
+months=\u042f\u043d\u0432\u0430\u0440\u00ae\u0424\u0435\u0432\u0440\u0430\u043b\u00ae\u041c\u0430\u0440\u0442\u00ae\u0410\u043f\u0440\u0435\u043b\u00ae\u041c\u0430\u0439\u00ae\u0418\u044e\u043d\u00ae\u0418\u044e\u043b\u00ae\u0410\u0432\u0433\u0443\u0441\u0442\u00ae\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u00ae\u041e\u043a\u0442\u044f\u0431\u0440\u00ae\u041d\u043e\u044f\u0431\u0440\u00ae\u0414\u0435\u043a\u0430\u0431\u0440\u00ae\u00ae
+shortWeekdays=\u00ae\u042f\u0448\u0431\u00ae\u0414\u0448\u0431\u00ae\u0421\u0448\u0431\u00ae\u0427\u0448\u0431\u00ae\u041f\u0448\u0431\u00ae\u04b6\u043c\u044a\u00ae\u0428\u043d\u0431\u00ae
+weekdays=\u00ae\u042f\u043a\u0448\u0430\u043d\u0431\u0435\u00ae\u0414\u0443\u0448\u0430\u043d\u0431\u0435\u00ae\u0421\u0435\u0448\u0430\u043d\u0431\u0435\u00ae\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0435\u00ae\u041f\u0430\u043d\u04b7\u0448\u0430\u043d\u0431\u0435\u00ae\u04b6\u0443\u043c\u044a\u0430\u00ae\u0428\u0430\u043d\u0431\u0435\u00ae
+eras=\u041f\u0435\u041c\u00ae\u041f\u0430\u041c\u00ae
+ampms=\u043f\u0435. \u0447\u043e.\u00ae\u043f\u0430. \u0447\u043e.\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=\u0422\u043e\u043d\u0433\u0430
+territories.AF=\u0410\u0444\u0493\u043e\u043d\u0438\u0441\u0442\u0430\u043d
+languages.ka=\u0413\u0443\u0440\u04b7\u04e3
+languages.zh=\u0427\u0438\u043d\u04e3
+languages.gu=\u0413\u0443\u04b7\u0430\u0440\u0430\u0442\u04e3
+languages.jv=\u04b6\u0430\u0432\u0430\u043d\u0438\u0437\u04e3
+languages.sv=\u0428\u0432\u0435\u0434\u04e3
+languages.pt=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u04e3
+languages.gn=\u0413\u043e\u0440\u0430\u043d\u04e3
+languages.gl=\u0413\u0430\u043b\u0438\u0441\u0438\u0430\u043d\u04e3
+languages.de=\u041d\u0435\u043c\u0438\u0441\u04e3
+languages.pl=\u041b\u0430\u04b3\u0438\u0441\u0442\u043e\u043d\u04e3
+languages.gd=\u0428\u043e\u0442\u043b\u0430\u043d\u0434\u04e3-\u0413\u0430\u043b\u0438\u043a\u04e3
+languages.da=\u0414\u0430\u043d\u0438\u044f\u0433\u04e3
+languages.ga=\u0418\u0440\u043b\u0430\u043d\u0434\u04e3
+languages.ja=\u04b6\u043e\u043f\u043e\u043d\u04e3
+languages.yi=\u042f\u04b3\u0443\u0434\u0438\u0438 \u0410\u0432\u0440\u0443\u043f\u043e\u0438 \u0448\u0430\u0440\u049b\u04e3
+languages.fy=\u0424\u0440\u0438\u0441\u0438\u0430\u043d\u04e3
+languages.cs=\u0427\u0435\u0445\u04e3
+languages.lv=\u041b\u0430\u0442\u0432\u0438\u044f\u0433\u04e3
+languages.fr=\u0424\u0430\u0440\u043e\u043d\u0441\u0430\u0432\u04e3
+languages.is=\u0418\u0441\u043b\u0430\u043d\u0434\u04e3
+languages.uz=\u04ee\u0437\u0431\u0435\u043a\u04e3
+languages.lt=\u041b\u0438\u0442\u0432\u043e\u043d\u04e3
+languages.fo=\u0424\u0430\u0440\u043e\u0437\u04e3
+languages.ru=\u0420\u0443\u0441\u04e3
+languages.pt_BR=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u04e3 (\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f)
+languages.or=\u0423\u0440\u0438\u0441\u043e\u04e3
+languages.lo=\u041b\u0430\u043e\u0441\u04e3
+languages.fi=\u0424\u0438\u043d\u043d\u04e3
+languages.ur=\u0423\u0440\u0434\u0443
+languages.ro=\u0420\u0443\u043c\u0438\u043d\u04e3
+languages.ca=\u041a\u0430\u0442\u0430\u043b\u0430\u043d\u04e3
+languages.id=\u0418\u043d\u0434\u043e\u043d\u0435\u0437\u04e3
+languages.uk=\u0423\u043a\u0440\u0430\u0438\u043d\u04e3
+languages.fa=\u0424\u043e\u0440\u0441\u04e3
+languages.ia=\u0411\u0430\u0439\u043d\u0438 \u0437\u0430\u0431\u043e\u043d\u04e3
+languages.ug=\u04ee\u0439\u0493\u0443\u0440\u04e3
+languages.la=\u041b\u043e\u0442\u0438\u043d\u04e3
+languages.fil=\u0424\u0438\u043b\u0438\u043f\u043f\u0438\u043d\u04e3
+languages.ky=\u049a\u0438\u0440\u0493\u0438\u0437\u04e3
+languages.eu=\u0411\u0430\u0441\u043a\u04e3
+languages.bs=\u0411\u043e\u0441\u043d\u0438\u044f\u0433\u04e3
+languages.et=\u042d\u0441\u0442\u043e\u043d\u04e3
+languages.br=\u0411\u0440\u0435\u0442\u043e\u043d\u04e3
+languages.hu=\u041c\u0430\u04b7\u043e\u0440\u04e3
+languages.es=\u0418\u0441\u043f\u0430\u043d\u04e3
+languages.bn=\u0411\u0435\u043d\u0433\u0430\u043b\u04e3
+languages.eo=\u042d\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0410\u043d\u0433\u043b\u0438\u0441\u04e3
+languages.el=\u042e\u043d\u043e\u043d\u04e3
+languages.bh=\u0411\u0438\u04b3\u0430\u0440\u04e3
+languages.no=\u041d\u043e\u0440\u0432\u0435\u0433\u04e3
+languages.bg=\u0411\u0443\u043b\u0493\u043e\u0440\u04e3
+languages.zu=\u0417\u0443\u043b\u0443
+languages.hi=\u04b2\u0438\u043d\u0434\u04e3
+languages.be=\u0411\u0435\u043b\u043e\u0440\u0443\u0441\u04e3
+languages.nl=\u04b2\u043e\u043b\u043b\u0430\u043d\u0434\u04e3
+languages.he=\u042f\u04b3\u0443\u0434\u04e3
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_th.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_th.properties
index e621f11..08fef6b 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_th.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_th.properties
@@ -5,77 +5,331 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.GBP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29
-currenciesDisplayName.PKR=\u0e23\u0e39\u0e1b\u0e35\u0e1b\u0e32\u0e01\u0e35\u0e2a\u0e16\u0e32\u0e19
-currenciesDisplayName.PHP=\u0e40\u0e1b\u0e42\u0e0b\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e1b\u0e34\u0e19\u0e2a\u0e4c
-currenciesDisplayName.ARS=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e48\u0e32
-currenciesDisplayName.FRF=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
-currenciesDisplayName.MYR=\u0e23\u0e34\u0e07\u0e01\u0e34\u0e15\u0e21\u0e32\u0e40\u0e25\u0e40\u0e0b\u0e35\u0e22
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;\u00a4-#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e40\u0e22\u0e40\u0e21\u0e19
+currenciesDisplayName.KES=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e40\u0e04\u0e19\u0e22\u0e32
+currenciesDisplayName.TWD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e44\u0e15\u0e49\u0e2b\u0e27\u0e31\u0e19\u0e43\u0e2b\u0e21\u0e48
+currenciesDisplayName.LKR=\u0e23\u0e39\u0e1b\u0e35\u0e28\u0e23\u0e35\u0e25\u0e31\u0e07\u0e01\u0e32
+currenciesDisplayName.BYB=\u0e19\u0e34\u0e27\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e40\u0e1a\u0e25\u0e32\u0e23\u0e38\u0e2a
+currenciesDisplayName.TJS=\u0e42\u0e0b\u0e42\u0e21\u0e19\u0e35\u0e17\u0e32\u0e08\u0e34\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.RWF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e23\u0e27\u0e31\u0e19\u0e14\u0e32
+currenciesDisplayName.ERN=\u0e41\u0e19\u0e01\u0e1f\u0e32\u0e40\u0e2d\u0e23\u0e34\u0e40\u0e17\u0e23\u0e35\u0e22
+currenciesDisplayName.TJR=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e17\u0e32\u0e08\u0e34\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.SDP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e0b\u0e39\u0e14\u0e32\u0e19
+currenciesDisplayName.GRD=\u0e14\u0e41\u0e23\u0e04\u0e21\u0e30 \u0e01\u0e23\u0e35\u0e01
+currenciesDisplayName.AFN=\u0e2d\u0e31\u0e1f\u0e01\u0e32\u0e19\u0e35
currenciesDisplayName.IEP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e44\u0e2d\u0e23\u0e34\u0e0a
-currenciesDisplayName.ARP=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e48\u0e32 (1983-1985)
+currenciesDisplayName.ARS=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32
+currenciesDisplayName.ARP=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32 (1983-1985)
+currenciesDisplayName.SDD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e0b\u0e39\u0e14\u0e32\u0e19\u0e40\u0e01\u0e48\u0e32
+currenciesDisplayName.GEL=\u0e25\u0e32\u0e23\u0e35\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22
+currenciesDisplayName.GEK=\u0e04\u0e39\u0e1b\u0e2d\u0e19\u0e25\u0e32\u0e23\u0e34\u0e15\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22
+currenciesDisplayName.AFA=\u0e2d\u0e31\u0e1f\u0e01\u0e32\u0e19\u0e35 (1927-2002)
+currenciesDisplayName.CRC=\u0e42\u0e04\u0e42\u0e25\u0e19\u0e04\u0e2d\u0e2a\u0e15\u0e32\u0e23\u0e34\u0e01\u0e32
+currenciesDisplayName.FKP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e1f\u0e2d\u0e25\u0e4c\u0e01\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.EEK=\u0e42\u0e04\u0e23\u0e19\u0e40\u0e2d\u0e2a\u0e42\u0e15\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.MDL=\u0e25\u0e34\u0e27\u0e21\u0e2d\u0e25\u0e42\u0e14\u0e27\u0e32
+currenciesDisplayName.HKD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2e\u0e48\u0e2d\u0e07\u0e01\u0e07
+currenciesDisplayName.IQD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e2d\u0e34\u0e23\u0e31\u0e01
+currenciesDisplayName.ARA=\u0e2d\u0e2d\u0e2a\u0e15\u0e23\u0e31\u0e25\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32
+currenciesDisplayName.SCR=\u0e23\u0e39\u0e1b\u0e35\u0e40\u0e0b\u0e40\u0e0a\u0e25\u0e2a\u0e4c
+currenciesDisplayName.VUV=\u0e27\u0e32\u0e15\u0e39\u0e27\u0e32\u0e19\u0e39\u0e2d\u0e32\u0e15\u0e39
+currenciesDisplayName.KPW=\u0e27\u0e2d\u0e19\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u0e40\u0e2b\u0e19\u0e37\u0e2d
+currenciesDisplayName.DKK=\u0e42\u0e04\u0e23\u0e19\u0e40\u0e14\u0e19\u0e21\u0e32\u0e23\u0e4c\u0e01
+currenciesDisplayName.IDR=\u0e23\u0e39\u0e40\u0e1b\u0e35\u0e22\u0e2b\u0e4c\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
+currenciesDisplayName.GQE=\u0e40\u0e2d\u0e47\u0e01\u0e40\u0e27\u0e40\u0e25\u0e01\u0e34\u0e19\u0e35\u0e19\u0e32\u0e2d\u0e34\u0e40\u0e04\u0e27\u0e17\u0e2d\u0e40\u0e23\u0e35\u0e22\u0e25\u0e01\u0e34\u0e19\u0e35
+currenciesDisplayName.SOS=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e42\u0e0b\u0e21\u0e32\u0e40\u0e25\u0e35\u0e22
+currenciesDisplayName.LVR=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e25\u0e31\u0e15\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.EQE=\u0e40\u0e2d\u0e47\u0e01\u0e40\u0e27\u0e40\u0e25
+currenciesDisplayName.AED=\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e41\u0e2e\u0e21\u0e2a\u0e2b\u0e23\u0e31\u0e10\u0e2d\u0e32\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e2d\u0e21\u0e34\u0e40\u0e23\u0e15\u0e2a\u0e4c
+currenciesDisplayName.LVL=\u0e25\u0e31\u0e15\u0e25\u0e31\u0e15\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.BWP=\u0e1b\u0e39\u0e25\u0e32\u0e1a\u0e2d\u0e15\u0e2a\u0e27\u0e32\u0e19\u0e32
+currenciesDisplayName.RUR=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22 (1991-1998)
+currenciesDisplayName.NIO=\u0e01\u0e2d\u0e23\u0e4c\u0e42\u0e14\u0e1a\u0e32\u0e42\u0e2d\u0e42\u0e23\u0e19\u0e34\u0e01\u0e32\u0e23\u0e32\u0e01\u0e31\u0e27
+currenciesDisplayName.XTS=\u0e23\u0e2b\u0e31\u0e2a\u0e17\u0e14\u0e2a\u0e2d\u0e1a\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19
+currenciesDisplayName.MOP=\u0e1e\u0e32\u0e17\u0e32\u0e01\u0e32\u0e21\u0e32\u0e40\u0e01\u0e4a\u0e32
+currenciesDisplayName.FJD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e1f\u0e34\u0e08\u0e34
+currenciesDisplayName.ADP=\u0e40\u0e1b\u0e40\u0e0b\u0e15\u0e32\u0e2d\u0e31\u0e19\u0e14\u0e2d\u0e23\u0e4c\u0e23\u0e32
+currenciesDisplayName.RUB=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22
+currenciesDisplayName.CDF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e04\u0e2d\u0e07\u0e42\u0e01
+currenciesDisplayName.NIC=\u0e01\u0e2d\u0e23\u0e4c\u0e42\u0e14\u0e1a\u0e32\u0e19\u0e34\u0e01\u0e32\u0e23\u0e32\u0e01\u0e31\u0e27
+currenciesDisplayName.DJF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e08\u0e34\u0e1a\u0e39\u0e15\u0e35
+currenciesDisplayName.UZS=\u0e42\u0e0b\u0e21\u0e2d\u0e38\u0e0b\u0e40\u0e1a\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.SBD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e42\u0e0b\u0e42\u0e25\u0e21\u0e2d\u0e19
+currenciesDisplayName.ECV=\u0e27\u0e32\u0e40\u0e25\u0e2d\u0e23\u0e4c\u0e04\u0e2d\u0e19\u0e2a\u0e41\u0e15\u0e19\u0e15\u0e4c\u0e40\u0e2d\u0e01\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c
+currenciesDisplayName.LUL=\u0e44\u0e1f\u0e41\u0e19\u0e25\u0e40\u0e0a\u0e35\u0e22\u0e25\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e25\u0e31\u0e01\u0e40\u0e0b\u0e21\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01
+currenciesDisplayName.ECS=\u0e0b\u0e39\u0e40\u0e04\u0e23\u0e40\u0e2d\u0e01\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c
+currenciesDisplayName.THB=\u0e1a\u0e32\u0e17\u0e44\u0e17\u0e22
+currenciesDisplayName.PHP=\u0e40\u0e1b\u0e42\u0e0b\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e1b\u0e34\u0e19\u0e2a\u0e4c
+currenciesDisplayName.LUF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e25\u0e31\u0e01\u0e40\u0e0b\u0e21\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01
+currenciesDisplayName.RHD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e42\u0e23\u0e14\u0e35\u0e40\u0e0b\u0e35\u0e22
+currenciesDisplayName.LUC=\u0e04\u0e2d\u0e19\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e17\u0e34\u0e40\u0e1a\u0e34\u0e25\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e25\u0e31\u0e01\u0e40\u0e0b\u0e21\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01
+currenciesDisplayName.FIM=\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e01\u0e32\u0e1f\u0e34\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.TTD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e15\u0e23\u0e34\u0e19\u0e34\u0e41\u0e14\u0e14\u0e41\u0e25\u0e30\u0e42\u0e15\u0e40\u0e1a\u0e42\u0e01
+currenciesDisplayName.SZL=\u0e25\u0e34\u0e25\u0e31\u0e07\u0e40\u0e08\u0e19\u0e35\u0e2a\u0e27\u0e32\u0e0b\u0e34\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.MNT=\u0e17\u0e39\u0e01\u0e23\u0e34\u0e04 \u0e21\u0e2d\u0e07\u0e42\u0e01\u0e40\u0e25\u0e35\u0e22
+currenciesDisplayName.UAK=\u0e04\u0e32\u0e23\u0e4c\u0e42\u0e1a\u0e27\u0e32\u0e40\u0e19\u0e15\u0e0b\u0e4c\u0e22\u0e39\u0e40\u0e04\u0e23\u0e19
+currenciesDisplayName.SAR=\u0e23\u0e34\u0e22\u0e31\u0e25\u0e0b\u0e32\u0e2d\u0e38\u0e14\u0e35\u0e2d\u0e32\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.COU=\u0e27\u0e32\u0e40\u0e25\u0e2d\u0e23\u0e4c\u0e40\u0e23\u0e35\u0e22\u0e25\u0e42\u0e04\u0e25\u0e2d\u0e21\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.UAH=\u0e23\u0e35\u0e1f\u0e40\u0e19\u0e35\u0e22\u0e22\u0e39\u0e40\u0e04\u0e23\u0e19
+currenciesDisplayName.HUF=\u0e1f\u0e2d\u0e23\u0e34\u0e19\u0e17\u0e4c\u0e2e\u0e31\u0e07\u0e01\u0e32\u0e23\u0e35
+currenciesDisplayName.QAR=\u0e23\u0e34\u0e22\u0e31\u0e25\u0e01\u0e32\u0e15\u0e32\u0e23\u0e4c
+currenciesDisplayName.COP=\u0e40\u0e1b\u0e42\u0e0b\u0e42\u0e04\u0e25\u0e2d\u0e21\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.LTT=\u0e17\u0e32\u0e42\u0e25\u0e19\u0e31\u0e2a\u0e25\u0e34\u0e17\u0e31\u0e27\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.PTE=\u0e40\u0e2d\u0e2a\u0e04\u0e39\u0e42\u0e14\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
+currenciesDisplayName.UYU=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e38\u0e23\u0e38\u0e01\u0e27\u0e31\u0e22
+currenciesDisplayName.AOR=\u0e04\u0e27\u0e31\u0e19\u0e0b\u0e32\u0e23\u0e35\u0e08\u0e31\u0e2a\u0e17\u0e32\u0e42\u0e14\u0e41\u0e2d\u0e07\u0e42\u0e01\u0e25\u0e32 (1995-1999)
+currenciesDisplayName.GBP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2a\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07 (\u0e2a\u0e2b\u0e23\u0e32\u0e0a\u0e2d\u0e32\u0e13\u0e32\u0e08\u0e31\u0e01\u0e23)
+currenciesDisplayName.ZRZ=\u0e41\u0e0b\u0e23\u0e4c\u0e04\u0e2d\u0e07\u0e42\u0e01
currenciesDisplayName.INR=\u0e23\u0e39\u0e1b\u0e35\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22
+currenciesDisplayName.BIF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e1a\u0e38\u0e23\u0e38\u0e19\u0e14\u0e35
+currenciesDisplayName.XFU=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e22\u0e39\u0e44\u0e2d\u0e0b\u0e35\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
+currenciesDisplayName.MZN=\u0e40\u0e21\u0e15\u0e34\u0e04\u0e31\u0e25\u0e42\u0e21\u0e0b\u0e31\u0e21\u0e1a\u0e34\u0e01
+currenciesDisplayName.LTL=\u0e25\u0e35\u0e15\u0e31\u0e2a\u0e25\u0e34\u0e17\u0e31\u0e27\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.AON=\u0e19\u0e34\u0e27\u0e04\u0e27\u0e31\u0e19\u0e0b\u0e32\u0e41\u0e2d\u0e07\u0e42\u0e01\u0e25\u0e32 (1990-2000)
+currenciesDisplayName.UYP=\u0e40\u0e1b\u0e42\u0e0b\u0e2d\u0e38\u0e23\u0e38\u0e01\u0e27\u0e31\u0e22 (1975-1993)
+currenciesDisplayName.MZM=\u0e40\u0e21\u0e15\u0e34\u0e04\u0e31\u0e25\u0e42\u0e21\u0e0b\u0e31\u0e21\u0e1a\u0e34\u0e01\u0e40\u0e01\u0e48\u0e32
+currenciesDisplayName.KZT=\u0e40\u0e17\u0e07\u0e40\u0e01\u0e04\u0e32\u0e0b\u0e31\u0e04\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.AOK=\u0e04\u0e27\u0e31\u0e19\u0e0b\u0e32\u0e41\u0e2d\u0e07\u0e42\u0e01\u0e25\u0e32 (1977-1990)
+currenciesDisplayName.GNS=\u0e44\u0e0b\u0e25\u0e35\u0e01\u0e34\u0e19\u0e35
+currenciesDisplayName.BUK=\u0e08\u0e4a\u0e32\u0e14\u0e1e\u0e21\u0e48\u0e32
+currenciesDisplayName.XFO=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e17\u0e2d\u0e07\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
+currenciesDisplayName.PGK=\u0e01\u0e35\u0e19\u0e32\u0e1b\u0e32\u0e1b\u0e31\u0e27\u0e19\u0e34\u0e27\u0e01\u0e34\u0e19\u0e35
+currenciesDisplayName.SYP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e0b\u0e35\u0e40\u0e23\u0e35\u0e22
+currenciesDisplayName.OMR=\u0e40\u0e23\u0e35\u0e22\u0e25\u0e42\u0e2d\u0e21\u0e32\u0e19
+currenciesDisplayName.MZE=\u0e40\u0e2d\u0e2a\u0e04\u0e39\u0e42\u0e14\u0e42\u0e21\u0e0b\u0e31\u0e21\u0e1a\u0e34\u0e01
+currenciesDisplayName.ZRN=\u0e19\u0e34\u0e27\u0e41\u0e0b\u0e23\u0e4c\u0e04\u0e2d\u0e07\u0e42\u0e01
+currenciesDisplayName.NGN=\u0e44\u0e19\u0e23\u0e32\u0e44\u0e19\u0e08\u0e35\u0e40\u0e23\u0e35\u0e22
+currenciesDisplayName.CNY=\u0e2b\u0e22\u0e27\u0e19\u0e40\u0e2b\u0e23\u0e34\u0e19\u0e2b\u0e21\u0e34\u0e19\u0e1b\u0e35\u0e49 (\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e0a\u0e19\u0e08\u0e35\u0e19)
+currenciesDisplayName.AOA=\u0e04\u0e27\u0e31\u0e19\u0e0b\u0e32\u0e41\u0e2d\u0e07\u0e42\u0e01\u0e25\u0e32
+currenciesDisplayName.MAF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e42\u0e21\u0e23\u0e47\u0e2d\u0e01\u0e42\u0e01
+currenciesDisplayName.RSD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.GNF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e01\u0e34\u0e19\u0e35
+currenciesDisplayName.MAD=\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e41\u0e2e\u0e21\u0e42\u0e21\u0e23\u0e47\u0e2d\u0e01\u0e42\u0e01
+currenciesDisplayName.HTG=\u0e01\u0e39\u0e23\u0e4c\u0e14\u0e40\u0e2e\u0e15\u0e34
+currenciesDisplayName.TRY=\u0e25\u0e35\u0e23\u0e32\u0e15\u0e38\u0e23\u0e01\u0e35
+currenciesDisplayName.MMK=\u0e08\u0e4a\u0e32\u0e14\u0e1e\u0e21\u0e48\u0e32
+currenciesDisplayName.XRE=\u0e01\u0e2d\u0e07\u0e17\u0e38\u0e19\u0e44\u0e23\u0e40\u0e19\u0e47\u0e15
+currenciesDisplayName.MYR=\u0e23\u0e34\u0e07\u0e01\u0e34\u0e15\u0e21\u0e32\u0e40\u0e25\u0e40\u0e0b\u0e35\u0e22
+currenciesDisplayName.LSM=\u0e21\u0e32\u0e42\u0e25\u0e15\u0e35
+currenciesDisplayName.XEU=\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19\u0e22\u0e38\u0e42\u0e23\u0e1b
+currenciesDisplayName.LSL=\u0e42\u0e25\u0e15\u0e35\u0e40\u0e25\u0e42\u0e0b\u0e42\u0e17
+currenciesDisplayName.SLL=\u0e25\u0e35\u0e42\u0e2d\u0e19\u0e40\u0e0b\u0e35\u0e22\u0e23\u0e4c\u0e23\u0e32\u0e25\u0e35\u0e42\u0e2d\u0e19
+currenciesDisplayName.BHD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e1a\u0e32\u0e2b\u0e4c\u0e40\u0e23\u0e19
+currenciesDisplayName.BTN=\u0e40\u0e2d\u0e07\u0e01\u0e31\u0e25\u0e17\u0e23\u0e31\u0e21\u0e20\u0e39\u0e0f\u0e32\u0e19
+currenciesDisplayName.TRL=\u0e25\u0e35\u0e23\u0e32\u0e15\u0e38\u0e23\u0e01\u0e35\u0e40\u0e01\u0e48\u0e32
+currenciesDisplayName.KMF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e04\u0e2d\u0e42\u0e21\u0e42\u0e23\u0e2a
+currenciesDisplayName.CZK=\u0e42\u0e04\u0e23\u0e39\u0e19\u0e32\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e40\u0e0a\u0e47\u0e01
+currenciesDisplayName.ANG=\u0e01\u0e34\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e40\u0e18\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e41\u0e2d\u0e19\u0e17\u0e34\u0e25\u0e25\u0e34\u0e2a
+currenciesDisplayName.AZN=\u0e21\u0e32\u0e19\u0e31\u0e15\u0e2d\u0e32\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e44\u0e1a\u0e08\u0e32\u0e19
+currenciesDisplayName.AZM=\u0e21\u0e32\u0e19\u0e31\u0e15\u0e2d\u0e32\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e44\u0e1a\u0e08\u0e32\u0e19 (1993-2006)
+currenciesDisplayName.KYD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e40\u0e04\u0e22\u0e4c\u0e41\u0e21\u0e19
+currenciesDisplayName.GMD=\u0e14\u0e32\u0e25\u0e32\u0e0b\u0e35\u0e41\u0e01\u0e21\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.VEF=\u0e1f\u0e39\u0e23\u0e4c\u0e40\u0e15\u0e42\u0e1a\u0e25\u0e35\u0e27\u0e32\u0e23\u0e4c\u0e40\u0e27\u0e40\u0e19\u0e0b\u0e38\u0e40\u0e2d\u0e25\u0e32
+currenciesDisplayName.BGN=\u0e19\u0e34\u0e27\u0e40\u0e25\u0e1f\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22
+currenciesDisplayName.MXV=\u0e22\u0e39\u0e19\u0e34\u0e41\u0e14\u0e14 \u0e14\u0e35 \u0e2d\u0e34\u0e19\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e0a\u0e31\u0e48\u0e19 \u0e40\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01
+currenciesDisplayName.CAD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e41\u0e04\u0e19\u0e32\u0e14\u0e32
+currenciesDisplayName.BGL=\u0e2e\u0e32\u0e23\u0e4c\u0e14\u0e40\u0e25\u0e1f\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22
+currenciesDisplayName.VEB=\u0e42\u0e1a\u0e25\u0e35\u0e27\u0e32\u0e23\u0e4c\u0e40\u0e27\u0e40\u0e19\u0e0b\u0e38\u0e40\u0e2d\u0e25\u0e32
+currenciesDisplayName.MLF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e21\u0e32\u0e25\u0e35
+currenciesDisplayName.MXP=\u0e0b\u0e34\u0e25\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e40\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01 (1861-1992)
+currenciesDisplayName.ILS=\u0e19\u0e34\u0e27\u0e40\u0e0a\u0e40\u0e01\u0e25\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25
+currenciesDisplayName.PES=\u0e0b\u0e31\u0e25\u0e40\u0e1b\u0e23\u0e39
+currenciesDisplayName.MXN=\u0e40\u0e1b\u0e42\u0e0b\u0e40\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01
+currenciesDisplayName.GYD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e01\u0e32\u0e22\u0e2d\u0e32\u0e19\u0e32
+currenciesDisplayName.ILP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25
+currenciesDisplayName.CYP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e44\u0e0b\u0e1b\u0e23\u0e31\u0e2a
+currenciesDisplayName.SKK=\u0e42\u0e04\u0e23\u0e39\u0e19\u0e32\u0e2a\u0e42\u0e25\u0e27\u0e31\u0e01
+currenciesDisplayName.PEN=\u0e19\u0e27\u0e22\u0e42\u0e1a\u0e0b\u0e2d\u0e25\u0e40\u0e1b\u0e23\u0e39
+currenciesDisplayName.LRD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e44\u0e25\u0e1a\u0e35\u0e40\u0e23\u0e35\u0e22
+currenciesDisplayName.PEI=\u0e2d\u0e34\u0e19\u0e15\u0e35\u0e40\u0e1b\u0e23\u0e39
+currenciesDisplayName.AMD=\u0e41\u0e14\u0e23\u0e21\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.BSD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e1a\u0e32\u0e2e\u0e32\u0e21\u0e32\u0e2a
+currenciesDisplayName.XPT=\u0e41\u0e1e\u0e25\u0e17\u0e34\u0e19\u0e31\u0e21
+currenciesDisplayName.HRK=\u0e04\u0e39\u0e19\u0e32\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
+currenciesDisplayName.HRD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
currenciesDisplayName.CLP=\u0e40\u0e1b\u0e42\u0e0b\u0e0a\u0e34\u0e25\u0e35
-currenciesDisplayName.JPY=\u0e40\u0e22\u0e19
-currenciesDisplayName.NZD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e19\u0e34\u0e27\u0e0b\u0e35\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.XPF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e0b\u0e35\u0e40\u0e2d\u0e1f\u0e1e\u0e35
+currenciesDisplayName.FRF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
+currenciesDisplayName.XPD=\u0e1e\u0e31\u0e25\u0e40\u0e25\u0e40\u0e14\u0e35\u0e22\u0e21
+currenciesDisplayName.BRR=\u0e04\u0e23\u0e39\u0e40\u0e0b\u0e42\u0e23\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
+currenciesDisplayName.MKD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e21\u0e32\u0e0b\u0e34\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.CLF=\u0e1f\u0e39\u0e40\u0e21\u0e19\u0e42\u0e15\u0e0a\u0e34\u0e25\u0e35
+currenciesDisplayName.ALL=\u0e40\u0e25\u0e01\u0e41\u0e2d\u0e25\u0e40\u0e1a\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.BRN=\u0e04\u0e23\u0e39\u0e0b\u0e32\u0e42\u0e14\u0e42\u0e19\u0e42\u0e27\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
+currenciesDisplayName.MWK=\u0e04\u0e27\u0e32\u0e0a\u0e32\u0e21\u0e32\u0e25\u0e32\u0e27\u0e35
+currenciesDisplayName.BRL=\u0e23\u0e35\u0e25\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
+currenciesDisplayName.TPE=\u0e40\u0e2d\u0e2a\u0e04\u0e39\u0e42\u0e14\u0e15\u0e34\u0e21\u0e2d\u0e23\u0e4c
+currenciesDisplayName.BRE=\u0e04\u0e23\u0e39\u0e40\u0e0b\u0e42\u0e23\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25 (1990-1993)
+currenciesDisplayName.BRC=\u0e04\u0e23\u0e39\u0e0b\u0e32\u0e42\u0e14\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
+currenciesDisplayName.BRB=\u0e04\u0e23\u0e39\u0e40\u0e0b\u0e42\u0e23\u0e42\u0e19\u0e42\u0e27\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25 (1967-1986)
+currenciesDisplayName.DEM=\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e19\u0e35
+currenciesDisplayName.KWD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e04\u0e39\u0e40\u0e27\u0e15
+currenciesDisplayName.XCD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e41\u0e04\u0e23\u0e34\u0e1a\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
+currenciesDisplayName.NPR=\u0e23\u0e39\u0e1b\u0e35\u0e40\u0e19\u0e1b\u0e32\u0e25
+currenciesDisplayName.GWP=\u0e40\u0e1b\u0e42\u0e0b\u0e01\u0e34\u0e19\u0e35-\u0e1a\u0e34\u0e2a\u0e40\u0e0b\u0e32
+currenciesDisplayName.YUN=\u0e04\u0e2d\u0e19\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e17\u0e34\u0e40\u0e1a\u0e34\u0e25\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e22\u0e39\u0e42\u0e01\u0e2a\u0e25\u0e32\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.SVC=\u0e42\u0e04\u0e42\u0e25\u0e19\u0e40\u0e2d\u0e25\u0e0b\u0e31\u0e25\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c
+currenciesDisplayName.YUM=\u0e42\u0e19\u0e27\u0e34\u0e22\u0e4c\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e22\u0e39\u0e42\u0e01\u0e2a\u0e25\u0e32\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.BEL=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e40\u0e1a\u0e25\u0e40\u0e22\u0e35\u0e22\u0e21 (\u0e01\u0e32\u0e23\u0e40\u0e07\u0e34\u0e19)
+currenciesDisplayName.SIT=\u0e17\u0e2d\u0e25\u0e32\u0e23\u0e4c\u0e2a\u0e42\u0e25\u0e27\u0e35\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.JPY=\u0e40\u0e22\u0e19\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19
+currenciesDisplayName.XOF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e40\u0e0b\u0e1f\u0e32\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23\u0e01\u0e25\u0e32\u0e07\u0e23\u0e31\u0e10\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+currenciesDisplayName.MVR=\u0e23\u0e39\u0e1f\u0e35\u0e22\u0e32\u0e2b\u0e4c\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e21\u0e31\u0e25\u0e14\u0e35\u0e1f\u0e2a\u0e4c
+currenciesDisplayName.BEF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e40\u0e1a\u0e25\u0e40\u0e22\u0e35\u0e22\u0e21
+currenciesDisplayName.GWE=\u0e40\u0e2d\u0e2a\u0e04\u0e39\u0e42\u0e14\u0e01\u0e34\u0e19\u0e35\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
+currenciesDisplayName.TOP=\u0e1e\u0e32\u0e41\u0e2d\u0e07\u0e01\u0e32\u0e15\u0e2d\u0e07\u0e01\u0e32
+currenciesDisplayName.YUD=\u0e2e\u0e32\u0e23\u0e4c\u0e14\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e22\u0e39\u0e42\u0e01\u0e2a\u0e25\u0e32\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.BEC=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e40\u0e1a\u0e25\u0e40\u0e22\u0e35\u0e22\u0e21 (\u0e40\u0e1b\u0e25\u0e35\u0e48\u0e22\u0e19\u0e41\u0e1b\u0e25\u0e07\u0e44\u0e14\u0e49)
+currenciesDisplayName.SUR=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e42\u0e0b\u0e40\u0e27\u0e35\u0e22\u0e15
+currenciesDisplayName.RON=\u0e25\u0e34\u0e27\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.ROL=\u0e25\u0e34\u0e27\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22\u0e40\u0e01\u0e48\u0e32
+currenciesDisplayName.BDT=\u0e15\u0e32\u0e01\u0e32\u0e1a\u0e31\u0e07\u0e01\u0e25\u0e32\u0e40\u0e17\u0e28
+currenciesDisplayName.DDM=\u0e2d\u0e2d\u0e2a\u0e15\u0e4c\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
+currenciesDisplayName.XBD=\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e1a\u0e31\u0e0d\u0e0a\u0e35 17 \u0e22\u0e38\u0e42\u0e23\u0e1b
+currenciesDisplayName.AWG=\u0e01\u0e34\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e2d\u0e32\u0e23\u0e39\u0e1a\u0e32
+currenciesDisplayName.XBC=\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e1a\u0e31\u0e0d\u0e0a\u0e35 9 \u0e22\u0e38\u0e42\u0e23\u0e1b
+currenciesDisplayName.XBB=\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e01\u0e32\u0e23\u0e40\u0e07\u0e34\u0e19\u0e22\u0e38\u0e42\u0e23\u0e1b
+currenciesDisplayName.XBA=\u0e2d\u0e35\u0e22\u0e39\u0e2d\u0e32\u0e23\u0e4c\u0e0b\u0e35\u0e42\u0e2d
+currenciesDisplayName.NOK=\u0e42\u0e04\u0e23\u0e19\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c
+currenciesDisplayName.MUR=\u0e23\u0e39\u0e1b\u0e35\u0e21\u0e2d\u0e23\u0e34\u0e40\u0e0a\u0e35\u0e22\u0e2a
+currenciesDisplayName.ZAR=\u0e41\u0e23\u0e19\u0e14\u0e4c\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49
+currenciesDisplayName.SHP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e40\u0e2e\u0e40\u0e25\u0e19\u0e32
+currenciesDisplayName.XAU=\u0e17\u0e2d\u0e07
+currenciesDisplayName.ZAL=\u0e41\u0e23\u0e19\u0e14\u0e4c\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49 (\u0e01\u0e32\u0e23\u0e40\u0e07\u0e34\u0e19)
+currenciesDisplayName.VND=\u0e14\u0e2d\u0e07\u0e40\u0e27\u0e35\u0e22\u0e14\u0e19\u0e32\u0e21
+currenciesDisplayName.TZS=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e41\u0e17\u0e19\u0e0b\u0e32\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.GIP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e22\u0e34\u0e1a\u0e23\u0e2d\u0e25\u0e15\u0e32\u0e23\u0e4c
+currenciesDisplayName.TND=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e15\u0e39\u0e19\u0e34\u0e40\u0e0b\u0e35\u0e22
+currenciesDisplayName.CVE=\u0e40\u0e2d\u0e2a\u0e04\u0e39\u0e42\u0e14\u0e40\u0e04\u0e1b\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e14
+currenciesDisplayName.UGX=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e22\u0e39\u0e01\u0e31\u0e19\u0e14\u0e32
+currenciesDisplayName.XAG=\u0e40\u0e07\u0e34\u0e19
+currenciesDisplayName.ZMK=\u0e04\u0e27\u0e32\u0e0a\u0e32\u0e41\u0e0b\u0e21\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.JOD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e08\u0e2d\u0e23\u0e4c\u0e41\u0e14\u0e19
+currenciesDisplayName.XAF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e40\u0e0b\u0e1f\u0e32\u0e18\u0e19\u0e32\u0e04\u0e32\u0e23\u0e23\u0e31\u0e10\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e01\u0e25\u0e32\u0e07
+currenciesDisplayName.LBP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e40\u0e25\u0e1a\u0e32\u0e19\u0e2d\u0e19
+currenciesDisplayName.UGS=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e22\u0e39\u0e01\u0e31\u0e19\u0e14\u0e32 (1966-1987)
+currenciesDisplayName.STD=\u0e42\u0e14\u0e1a\u0e23\u0e32\u0e40\u0e0b\u0e32\u0e42\u0e2d\u0e42\u0e15\u0e40\u0e21\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e19\u0e0b\u0e34\u0e40\u0e1b
+currenciesDisplayName.WST=\u0e15\u0e32\u0e25\u0e32\u0e0b\u0e32\u0e21\u0e31\u0e27\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+currenciesDisplayName.KHR=\u0e40\u0e23\u0e35\u0e22\u0e25\u0e01\u0e31\u0e21\u0e1e\u0e39\u0e0a\u0e32
+currenciesDisplayName.DOP=\u0e40\u0e1b\u0e42\u0e0b\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e42\u0e14\u0e21\u0e34\u0e19\u0e34\u0e01\u0e31\u0e19
currenciesDisplayName.EUR=\u0e22\u0e39\u0e42\u0e23
-currenciesDisplayName.AUD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22
-currenciesDisplayName.FJD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e1f\u0e34\u0e08\u0e34
-currenciesDisplayName.TRY=\u0e15\u0e38\u0e23\u0e01\u0e35 \u0e25\u0e35\u0e23\u0e48\u0e32 \u0e43\u0e2b\u0e21\u0e48
-currenciesDisplayName.USS=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e2a\u0e2b\u0e23\u0e31\u0e10 (\u0e27\u0e31\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19)
-currenciesDisplayName.ILP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25
-currenciesDisplayName.THB=\u0e1a\u0e32\u0e17
-currenciesDisplayName.USN=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e2a\u0e2b\u0e23\u0e31\u0e10 (\u0e27\u0e31\u0e19\u0e16\u0e31\u0e14\u0e44\u0e1b)
-currenciesDisplayName.SGD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e2a\u0e34\u0e07\u0e04\u0e42\u0e1b\u0e23\u0e4c
-currenciesDisplayName.CNY=\u0e2b\u0e22\u0e27\u0e19\u0e40\u0e2b\u0e23\u0e34\u0e19\u0e40\u0e2b\u0e21\u0e34\u0e19\u0e1a\u0e35\u0e49
-currenciesDisplayName.CAD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e04\u0e32\u0e19\u0e32\u0e14\u0e32
+currenciesDisplayName.BOV=\u0e21\u0e1f\u0e14\u0e2d\u0e25\u0e42\u0e1a\u0e25\u0e34\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.MTP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e21\u0e2d\u0e25\u0e15\u0e32
+currenciesDisplayName.USS=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2a\u0e2b\u0e23\u0e31\u0e10 (\u0e27\u0e31\u0e19\u0e40\u0e14\u0e35\u0e22\u0e27\u0e01\u0e31\u0e19)
+currenciesDisplayName.BOP=\u0e40\u0e1b\u0e42\u0e0b\u0e42\u0e1a\u0e25\u0e34\u0e40\u0e27\u0e35\u0e22
+currenciesDisplayName.CUP=\u0e40\u0e1b\u0e42\u0e0b\u0e04\u0e34\u0e27\u0e1a\u0e32
+currenciesDisplayName.MTL=\u0e25\u0e35\u0e23\u0e32\u0e21\u0e2d\u0e25\u0e15\u0e32
+currenciesDisplayName.TMM=\u0e21\u0e32\u0e19\u0e32\u0e17\u0e40\u0e15\u0e34\u0e23\u0e4c\u0e01\u0e40\u0e21\u0e19\u0e34\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.USN=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2a\u0e2b\u0e23\u0e31\u0e10 (\u0e27\u0e31\u0e19\u0e16\u0e31\u0e14\u0e44\u0e1b)
+currenciesDisplayName.SGD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2a\u0e34\u0e07\u0e04\u0e42\u0e1b\u0e23\u0e4c
+currenciesDisplayName.NZD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e19\u0e34\u0e27\u0e0b\u0e35\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.USD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2a\u0e2b\u0e23\u0e31\u0e10
+currenciesDisplayName.BOB=\u0e42\u0e1a\u0e25\u0e34\u0e40\u0e27\u0e35\u0e22\u0e42\u0e19
+currenciesDisplayName.HNL=\u0e40\u0e25\u0e21\u0e1b\u0e35\u0e23\u0e32\u0e2e\u0e2d\u0e19\u0e14\u0e39\u0e23\u0e31\u0e2a
+currenciesDisplayName.CHW=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e14\u0e31\u0e1a\u0e40\u0e1a\u0e34\u0e25\u0e22\u0e39\u0e44\u0e2d\u0e2d\u0e32\u0e23\u0e4c
+currenciesDisplayName.ITL=\u0e25\u0e35\u0e23\u0e32\u0e2d\u0e34\u0e15\u0e32\u0e25\u0e35
+currenciesDisplayName.PAB=\u0e1a\u0e31\u0e25\u0e42\u0e1a\u0e2d\u0e32\u0e1b\u0e32\u0e19\u0e32\u0e21\u0e32
+currenciesDisplayName.GTQ=\u0e40\u0e01\u0e47\u0e15\u0e0b\u0e32\u0e25\u0e01\u0e31\u0e27\u0e40\u0e15\u0e21\u0e32\u0e25\u0e32
+currenciesDisplayName.XXX=\u0e44\u0e21\u0e48\u0e21\u0e35\u0e2b\u0e19\u0e48\u0e27\u0e22\u0e2a\u0e01\u0e38\u0e25\u0e40\u0e07\u0e34\u0e19
+currenciesDisplayName.AUD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22
+currenciesDisplayName.GHC=\u0e40\u0e0b\u0e14\u0e35\u0e01\u0e32\u0e19\u0e32
+currenciesDisplayName.LAK=\u0e01\u0e35\u0e1a\u0e25\u0e32\u0e27
+currenciesDisplayName.NAD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e19\u0e32\u0e21\u0e34\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.KGS=\u0e0b\u0e2d\u0e21\u0e04\u0e35\u0e23\u0e4c\u0e01\u0e35\u0e0b\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.MGF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e21\u0e32\u0e14\u0e32\u0e01\u0e31\u0e2a\u0e01\u0e32\u0e23\u0e4c
+currenciesDisplayName.BBD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e1a\u0e32\u0e23\u0e4c\u0e40\u0e1a\u0e42\u0e14\u0e2a
+currenciesDisplayName.CHF=\u0e1f\u0e23\u0e31\u0e07\u0e01\u0e4c\u0e2a\u0e27\u0e34\u0e2a
+currenciesDisplayName.CHE=\u0e22\u0e39\u0e42\u0e23\u0e14\u0e31\u0e1a\u0e40\u0e1a\u0e34\u0e25\u0e22\u0e39\u0e44\u0e2d\u0e2d\u0e32\u0e23\u0e4c
+currenciesDisplayName.MGA=\u0e2d\u0e30\u0e40\u0e23\u0e35\u0e22\u0e23\u0e35\u0e21\u0e32\u0e14\u0e32\u0e01\u0e31\u0e2a\u0e01\u0e32\u0e23\u0e4c
+currenciesDisplayName.PYG=\u0e01\u0e27\u0e32\u0e23\u0e32\u0e19\u0e35\u0e1b\u0e32\u0e23\u0e32\u0e01\u0e27\u0e31\u0e22
+currenciesDisplayName.PLZ=\u0e0b\u0e27\u0e2d\u0e15\u0e35\u0e42\u0e1b\u0e41\u0e25\u0e19\u0e14\u0e4c (1950-1995)
+currenciesDisplayName.YER=\u0e40\u0e23\u0e35\u0e22\u0e25\u0e40\u0e22\u0e40\u0e21\u0e19
currenciesDisplayName.ATS=\u0e0a\u0e34\u0e25\u0e25\u0e34\u0e07\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e35\u0e22
-currenciesDisplayName.IDR=\u0e23\u0e39\u0e40\u0e1b\u0e35\u0e22\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
-currenciesDisplayName.BRL=\u0e23\u0e35\u0e25
-currenciesDisplayName.USD=\u0e14\u0e2d\u0e23\u0e4c\u0e25\u0e48\u0e32\u0e23\u0e4c\u0e2a\u0e2b\u0e23\u0e31\u0e10
-currenciesDisplayName.MXN=\u0e40\u0e1b\u0e42\u0e0b\u0e41\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01
-currenciesDisplayName.RUB=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22
-currenciesDisplayName.HKD=\u0e40\u0e2b\u0e23\u0e35\u0e22\u0e0d\u0e2e\u0e48\u0e2d\u0e07\u0e01\u0e07
-currenciesDisplayName.XAU=\u0e17\u0e2d\u0e07
-currenciesSymbol.GBP=\\u00A3
+currenciesDisplayName.ETB=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e2d\u0e18\u0e34\u0e42\u0e2d\u0e40\u0e1b\u0e35\u0e22
+currenciesDisplayName.BND=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e1a\u0e23\u0e39\u0e44\u0e19
+currenciesDisplayName.EGP=\u0e1b\u0e2d\u0e19\u0e14\u0e4c\u0e2d\u0e35\u0e22\u0e34\u0e1b\u0e15\u0e4c
+currenciesDisplayName.JMD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e08\u0e32\u0e40\u0e21\u0e01\u0e32
+currenciesDisplayName.PLN=\u0e2a\u0e25\u0e47\u0e2d\u0e15\u0e15\u0e35\u0e42\u0e1b\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.DZD=\u0e41\u0e2d\u0e25\u0e08\u0e35\u0e40\u0e23\u0e35\u0e22 \u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c
+currenciesDisplayName.ISK=\u0e42\u0e04\u0e23\u0e19\u0e32\u0e44\u0e2d\u0e0b\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.SRG=\u0e01\u0e25\u0e34\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e0b\u0e39\u0e23\u0e34\u0e19\u0e32\u0e40\u0e21
+currenciesDisplayName.LYD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e25\u0e34\u0e40\u0e1a\u0e35\u0e22
+currenciesDisplayName.SRD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e0b\u0e39\u0e23\u0e34\u0e19\u0e32\u0e40\u0e21
+currenciesDisplayName.BAM=\u0e04\u0e2d\u0e19\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e17\u0e34\u0e40\u0e1a\u0e34\u0e25\u0e21\u0e32\u0e23\u0e4c\u0e01\u0e1a\u0e2d\u0e2a\u0e40\u0e19\u0e35\u0e22-\u0e40\u0e2e\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e42\u0e01\u0e27\u0e35\u0e19\u0e32
+currenciesDisplayName.BZD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e40\u0e1a\u0e25\u0e35\u0e0b
+currenciesDisplayName.ESP=\u0e40\u0e1b\u0e40\u0e0b\u0e15\u0e32\u0e2a\u0e40\u0e1b\u0e19
+currenciesDisplayName.KRW=\u0e27\u0e2d\u0e19\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u0e43\u0e15\u0e49
+currenciesDisplayName.NLG=\u0e01\u0e34\u0e25\u0e40\u0e14\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e40\u0e18\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
+currenciesDisplayName.MRO=\u0e2d\u0e39\u0e01\u0e35\u0e22\u0e32\u0e21\u0e2d\u0e23\u0e34\u0e40\u0e15\u0e40\u0e19\u0e35\u0e22
+currenciesDisplayName.BAD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e1a\u0e2d\u0e2a\u0e40\u0e19\u0e35\u0e22-\u0e40\u0e2e\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e42\u0e01\u0e27\u0e35\u0e19\u0e32
+currenciesDisplayName.ZWD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e0b\u0e34\u0e21\u0e1a\u0e31\u0e1a\u0e40\u0e27
+currenciesDisplayName.SEK=\u0e42\u0e04\u0e23\u0e19\u0e32\u0e2a\u0e27\u0e35\u0e40\u0e14\u0e19
+currenciesDisplayName.CSK=\u0e2e\u0e32\u0e23\u0e4c\u0e14\u0e42\u0e04\u0e23\u0e39\u0e19\u0e32\u0e40\u0e0a\u0e47\u0e01
+currenciesDisplayName.BYR=\u0e23\u0e39\u0e40\u0e1a\u0e34\u0e25\u0e40\u0e1a\u0e25\u0e32\u0e23\u0e38\u0e2a
+currenciesDisplayName.ESB=\u0e40\u0e1b\u0e40\u0e0b\u0e15\u0e32\u0e2a\u0e40\u0e1b\u0e19 (\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e1a\u0e35)
+currenciesDisplayName.IRR=\u0e40\u0e23\u0e35\u0e22\u0e25\u0e2d\u0e34\u0e2b\u0e23\u0e48\u0e32\u0e19
+currenciesDisplayName.ESA=\u0e40\u0e1b\u0e40\u0e0b\u0e15\u0e32\u0e2a\u0e40\u0e1b\u0e19 (\u0e1a\u0e31\u0e0d\u0e0a\u0e35\u0e40\u0e2d)
+currenciesDisplayName.PKR=\u0e23\u0e39\u0e1b\u0e35\u0e1b\u0e32\u0e01\u0e35\u0e2a\u0e16\u0e32\u0e19
+currenciesDisplayName.BMD=\u0e14\u0e2d\u0e25\u0e25\u0e32\u0e23\u0e4c\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e21\u0e34\u0e27\u0e14\u0e32
+currenciesDisplayName.CSD=\u0e14\u0e35\u0e19\u0e32\u0e23\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
currenciesSymbol.PKR=Pra
+currenciesSymbol.GBP=UK\u00a3
currenciesSymbol.ARS=Arg$
currenciesSymbol.MYR=RM
currenciesSymbol.IEP=IR\\u00A3
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
currenciesSymbol.CLP=Ch$
currenciesSymbol.JPY=\\u00A5
currenciesSymbol.NZD=$NZ
+currenciesSymbol.EUR=\u20ac
currenciesSymbol.AUD=$A
currenciesSymbol.FJD=F$
currenciesSymbol.THB=\u0e3f
currenciesSymbol.SGD=S$
currenciesSymbol.CNY=\uffe5
currenciesSymbol.CAD=Can$
+currenciesSymbol.XXX=XXX
currenciesSymbol.IDR=Rp
+currenciesSymbol.BRL=R$
currenciesSymbol.USD=US$
+currenciesSymbol.RUB=RUB
currenciesSymbol.MXN=MEX$
currenciesSymbol.HKD=HK$
-shortMonths=\u0e21.\u0e04.®\u0e01.\u0e1e.®\u0e21\u0e35.\u0e04.®\u0e40\u0e21.\u0e22.®\u0e1e.\u0e04.®\u0e21\u0e34.\u0e22.®\u0e01.\u0e04.®\u0e2a.\u0e04.®\u0e01.\u0e22.®\u0e15.\u0e04.®\u0e1e.\u0e22.®\u0e18.\u0e04.®®
-months=\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21®\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c®\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21®\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19®\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21®\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19®\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21®\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21®\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19®\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21®\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19®\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21®®
-shortWeekdays=®\u0e2d\u0e32.®\u0e08.®\u0e2d.®\u0e1e.®\u0e1e\u0e24.®\u0e28.®\u0e2a.®
-weekdays=®\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c®\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c®\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23®\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18®\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35®\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c®\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c®
-eras=\u0e1b\u0e35\u0e01\u0e48\u0e2d\u0e19\u0e04\u0e23\u0e34\u0e2a\u0e15\u0e4c\u0e01\u0e32\u0e25\u0e17\u0e35\u0e48®\u0e04.\u0e28.®
-ampms=\u0e01\u0e48\u0e2d\u0e19\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07®\u0e2b\u0e25\u0e31\u0e07\u0e40\u0e17\u0e35\u0e48\u0e22\u0e07®
+shortMonths=\u0e21.\u0e04.\u00ae\u0e01.\u0e1e.\u00ae\u0e21\u0e35.\u0e04.\u00ae\u0e40\u0e21.\u0e22.\u00ae\u0e1e.\u0e04.\u00ae\u0e21\u0e34.\u0e22.\u00ae\u0e01.\u0e04.\u00ae\u0e2a.\u0e04.\u00ae\u0e01.\u0e22.\u00ae\u0e15.\u0e04.\u00ae\u0e1e.\u0e22.\u00ae\u0e18.\u0e04.\u00ae\u00ae
+months=\u0e21\u0e01\u0e23\u0e32\u0e04\u0e21\u00ae\u0e01\u0e38\u0e21\u0e20\u0e32\u0e1e\u0e31\u0e19\u0e18\u0e4c\u00ae\u0e21\u0e35\u0e19\u0e32\u0e04\u0e21\u00ae\u0e40\u0e21\u0e29\u0e32\u0e22\u0e19\u00ae\u0e1e\u0e24\u0e29\u0e20\u0e32\u0e04\u0e21\u00ae\u0e21\u0e34\u0e16\u0e38\u0e19\u0e32\u0e22\u0e19\u00ae\u0e01\u0e23\u0e01\u0e0e\u0e32\u0e04\u0e21\u00ae\u0e2a\u0e34\u0e07\u0e2b\u0e32\u0e04\u0e21\u00ae\u0e01\u0e31\u0e19\u0e22\u0e32\u0e22\u0e19\u00ae\u0e15\u0e38\u0e25\u0e32\u0e04\u0e21\u00ae\u0e1e\u0e24\u0e28\u0e08\u0e34\u0e01\u0e32\u0e22\u0e19\u00ae\u0e18\u0e31\u0e19\u0e27\u0e32\u0e04\u0e21\u00ae\u00ae
+shortWeekdays=\u00ae\u0e2d\u0e32.\u00ae\u0e08.\u00ae\u0e2d.\u00ae\u0e1e.\u00ae\u0e1e\u0e24.\u00ae\u0e28.\u00ae\u0e2a.\u00ae
+weekdays=\u00ae\u0e27\u0e31\u0e19\u0e2d\u0e32\u0e17\u0e34\u0e15\u0e22\u0e4c\u00ae\u0e27\u0e31\u0e19\u0e08\u0e31\u0e19\u0e17\u0e23\u0e4c\u00ae\u0e27\u0e31\u0e19\u0e2d\u0e31\u0e07\u0e04\u0e32\u0e23\u00ae\u0e27\u0e31\u0e19\u0e1e\u0e38\u0e18\u00ae\u0e27\u0e31\u0e19\u0e1e\u0e24\u0e2b\u0e31\u0e2a\u0e1a\u0e14\u0e35\u00ae\u0e27\u0e31\u0e19\u0e28\u0e38\u0e01\u0e23\u0e4c\u00ae\u0e27\u0e31\u0e19\u0e40\u0e2a\u0e32\u0e23\u0e4c\u00ae
+eras=\u0e1b\u0e35\u0e01\u0e48\u0e2d\u0e19 \u0e04.\u0e28.\u00ae\u0e04.\u0e28.\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=d/M/yyyy
mediumDateFormat=d MMM yyyy
longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE'\u0e17\u0e35\u0e48 'd MMMM G yyyy
+fullDateFormat=EEEE\u0e17\u0e35\u0e48 d MMMM G yyyy
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
-longTimeFormat=H' \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 'm' \u0e19\u0e32\u0e17\u0e35'
-fullTimeFormat=H' \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 'm' \u0e19\u0e32\u0e17\u0e35 'ss' \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35'
+longTimeFormat=H \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 m \u0e19\u0e32\u0e17\u0e35 ss \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 z
+fullTimeFormat=H \u0e19\u0e32\u0e2c\u0e34\u0e01\u0e32 m \u0e19\u0e32\u0e17\u0e35 ss \u0e27\u0e34\u0e19\u0e32\u0e17\u0e35 z
+zoneStrings=Europe_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00a9Africa_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00a9Borneo\u00ae\u0e40\u0e27\u0e25\u0e32\u0e1a\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e35\u0e22\u0e27\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e1a\u0e2d\u0e23\u0e4c\u0e40\u0e19\u0e35\u0e22\u0e27\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Aqtau\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e31\u0e04\u0e15\u0e32\u0e2d\u0e39\u00aeAQTT (\u0e2d\u0e31\u0e04\u0e15\u0e32\u0e2d\u0e39)\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e31\u0e04\u0e15\u0e32\u0e2d\u0e39\u00aeAQTST (\u0e2d\u0e31\u0e04\u0e15\u0e32\u0e2d\u0e39)\u00ae\u00a9Kazakhstan_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e04\u0e32\u0e0b\u0e31\u0e04\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2a\u0e40\u0e27\u0e35\u0e22\u0e23\u0e4c\u0e14\u0e25\u0e2d\u0e1f\u0e2a\u0e04\u0e4c\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2a\u0e40\u0e27\u0e35\u0e22\u0e23\u0e4c\u0e14\u0e25\u0e2d\u0e1f\u0e2a\u0e04\u0e4c\u00ae\u00ae\u00a9Bangladesh\u00ae\u0e40\u0e27\u0e25\u0e32\u0e1a\u0e31\u0e07\u0e01\u0e25\u0e32\u0e40\u0e17\u0e28\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00ae\u0e40\u0e27\u0e25\u0e32\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e4c\u0e04\u0e31\u0e19\u0e14\u0e4c\u00aeSAMT (\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e4c\u0e04\u0e31\u0e19\u0e14\u0e4c)\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e4c\u0e04\u0e31\u0e19\u0e14\u0e4c\u00aeSAMST (\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e4c\u0e04\u0e31\u0e19\u0e14\u0e4c)\u00ae\u00a9Amazon\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e30\u0e40\u0e21\u0e0b\u0e2d\u0e19\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e30\u0e40\u0e21\u0e0b\u0e2d\u0e19\u00ae\u00ae\u00a9Arabian\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e32\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22\u00aeAST (\u0e2d\u0e32\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22)\u00ae\u00aeADT (\u0e2d\u0e32\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22)\u00ae\u00a9Yekaterinburg\u00ae\u0e40\u0e27\u0e25\u0e32\u0e40\u0e22\u0e04\u0e32\u0e40\u0e15\u0e23\u0e34\u0e19\u0e1a\u0e39\u0e23\u0e4c\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e40\u0e22\u0e04\u0e32\u0e40\u0e15\u0e23\u0e34\u0e19\u0e1a\u0e39\u0e23\u0e4c\u0e01\u00ae\u00ae\u00a9Alaska\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e30\u0e41\u0e25\u0e2a\u0e01\u0e32\u00ae\u00ae\u00ae\u00ae\u00a9Qyzylorda\u00ae\u0e40\u0e27\u0e25\u0e32\u0e04\u0e37\u0e22\u0e0b\u0e34\u0e25\u0e2d\u0e2d\u0e23\u0e4c\u0e14\u0e32\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e04\u0e37\u0e22\u0e0b\u0e34\u0e25\u0e2d\u0e2d\u0e23\u0e4c\u0e14\u0e32\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e0a\u0e32\u0e21\u0e2d\u0e23\u0e4c\u0e42\u0e23\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22\u00aeAMT (\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22)\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22\u00aeAMST (\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22)\u00ae\u00a9America_Pacific\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e41\u0e1b\u0e0b\u0e34\u0e1f\u0e34\u0e04\u00ae\u00ae\u00ae\u00ae\u00a9Tajikistan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e17\u0e32\u0e08\u0e34\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u0e40\u0e27\u0e25\u0e32\u0e14\u0e39\u0e0a\u0e32\u0e19\u0e40\u0e1a\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e14\u0e39\u0e0a\u0e32\u0e19\u0e40\u0e1a\u00ae\u00ae\u00a9Yerevan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e40\u0e22\u0e40\u0e23\u0e27\u0e32\u0e19\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e40\u0e22\u0e40\u0e23\u0e27\u0e32\u0e19\u00ae\u00ae\u00a9Israel\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25\u00aeIST (\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25)\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00a9North_Mariana\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e21\u0e32\u0e40\u0e23\u0e35\u0e22\u0e19\u0e32\u0e40\u0e2b\u0e19\u0e37\u0e2d\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e19\u0e34\u0e27\u0e1f\u0e31\u0e19\u0e14\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e25\u0e32\u0e22\u0e32\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u00ae\u00ae\u00ae\u00ae\u00a9Argentina_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e40\u0e15\u0e34\u0e23\u0e4c\u0e01\u0e40\u0e21\u0e19\u0e34\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e40\u0e15\u0e34\u0e23\u0e4c\u0e01\u0e40\u0e21\u0e19\u0e34\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u00a9Pierre_Miquelon\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e1b\u0e35\u0e41\u0e22\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e21\u0e35\u0e40\u0e01\u0e2d\u0e25\u0e07\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e41\u0e2d\u0e15\u0e41\u0e25\u0e19\u0e15\u0e34\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e30\u0e41\u0e25\u0e2a\u0e01\u0e32-\u0e2e\u0e32\u0e27\u0e32\u0e22\u00ae\u00ae\u00ae\u00ae\u00a9Uzbekistan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e38\u0e0b\u0e40\u0e1a\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e38\u0e0b\u0e40\u0e1a\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u00a9Tbilisi\u00ae\u0e40\u0e27\u0e25\u0e32\u0e17\u0e1a\u0e34\u0e25\u0e34\u0e0b\u0e34\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e17\u0e1a\u0e34\u0e25\u0e34\u0e0b\u0e34\u00ae\u00ae\u00a9Malaysia\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e40\u0e25\u0e40\u0e0b\u0e35\u0e22\u00ae\u00ae\u00ae\u00ae\u00a9Baku\u00ae\u0e40\u0e27\u0e25\u0e32\u0e1a\u0e32\u0e01\u0e39\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e1a\u0e32\u0e01\u0e39\u00ae\u00ae\u00a9America_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Samoa\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e0b\u0e32\u0e21\u0e31\u0e27\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00ae\u0e40\u0e27\u0e25\u0e32\u0e40\u0e2d\u0e01\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e32\u0e40\u0e01\u0e23\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e32\u0e40\u0e01\u0e23\u00ae\u00ae\u00a9Europe_Western\u00ae\u0e40\u0e27\u0e25\u0e32\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01\u00ae\u00ae\u00a9Africa_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u0e40\u0e27\u0e25\u0e32\u0e15\u0e38\u0e23\u0e01\u0e35\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e15\u0e38\u0e23\u0e01\u0e35\u00ae\u00ae\u00a9Africa_Southern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e40\u0e1a\u0e23\u0e34\u0e07\u00aeBST (\u0e40\u0e1a\u0e23\u0e34\u0e07)\u00ae\u00aeBDT (\u0e40\u0e1a\u0e23\u0e34\u0e07)\u00ae\u00a9Guam\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e01\u0e27\u0e21\u00aeGST (\u0e01\u0e27\u0e21)\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e21\u0e32\u0e23\u0e4c\u0e41\u0e0a\u0e25\u0e25\u0e4c\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e20\u0e39\u0e0f\u0e32\u0e19\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00ae\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e17\u0e32\u0e0a\u0e40\u0e04\u0e19\u0e15\u0e4c\u00ae\u00ae\u00a9East_Timor\u00ae\u0e40\u0e27\u0e25\u0e32\u0e15\u0e34\u0e21\u0e2d\u0e23\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Argentina\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32\u00ae\u00ae\u00a9Yukon\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e22\u0e39\u0e04\u0e2d\u0e19\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e19\u0e34\u0e27\u0e0b\u0e35\u0e41\u0e25\u0e19\u0e14\u0e4c\u00ae\u00ae\u00ae\u00ae\u00a9China\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e08\u0e35\u0e19\u00aeCST (\u0e08\u0e35\u0e19)\u00ae\u00aeCDT (\u0e08\u0e35\u0e19)\u00ae\u00a9Indonesia_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00ae\u00ae\u00a9India\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00ae\u0e40\u0e27\u0e25\u0e32\u0e0b\u0e39\u0e23\u0e34\u0e19\u0e32\u0e40\u0e21\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e01\u0e23\u0e35\u0e19\u0e34\u0e0a\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u0e40\u0e27\u0e25\u0e32\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e32\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e32\u00ae\u00ae\u00a9Chile\u00ae\u0e40\u0e27\u0e25\u0e32\u0e0a\u0e34\u0e25\u0e35\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e0a\u0e34\u0e25\u0e35\u00ae\u00ae\u00a9Brasilia\u00ae\u0e40\u0e27\u0e25\u0e32\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e40\u0e25\u0e35\u0e22\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e40\u0e25\u0e35\u0e22\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e04\u0e32\u0e0b\u0e31\u0e04\u0e2a\u0e16\u0e32\u0e19\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00ae\u0e40\u0e27\u0e25\u0e32\u0e2d\u0e39\u0e25\u0e32\u0e19\u0e1a\u0e32\u0e15\u0e2d\u0e23\u0e4c\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e39\u0e25\u0e32\u0e19\u0e1a\u0e32\u0e15\u0e2d\u0e23\u0e4c\u00ae\u00ae\u00a9America_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u0e40\u0e27\u0e25\u0e32\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u00ae\u00ae\u00a9Azores\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e32\u0e42\u0e0b\u0e40\u0e23\u0e0a\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e2d\u0e32\u0e42\u0e0b\u0e40\u0e23\u0e0a\u00ae\u00ae\u00a9Greenland_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00a9Kwajalein\u00ae\u0e40\u0e27\u0e25\u0e32\u0e04\u0e27\u0e32\u0e08\u0e32\u0e40\u0e25\u0e19\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00ae\u0e40\u0e27\u0e25\u0e32\u0e1b\u0e32\u0e01\u0e35\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e1b\u0e32\u0e01\u0e35\u0e2a\u0e16\u0e32\u0e19\u00ae\u00ae\u00a9Australia_Central\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e15\u0e23\u0e10\u0e32\u0e19\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22\u0e01\u0e25\u0e32\u0e07\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u0e40\u0e27\u0e25\u0e32\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22\u00ae\u00ae\u00a9Galapagos\u00ae\u0e40\u0e27\u0e25\u0e32\u0e01\u0e32\u0e25\u0e32\u0e1b\u0e32\u0e42\u0e01\u0e2a\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00ae\u0e40\u0e27\u0e25\u0e32\u0e21\u0e32\u0e40\u0e01\u0e4a\u0e32\u00ae\u00ae\u0e40\u0e27\u0e25\u0e32\u0e24\u0e14\u0e39\u0e23\u0e49\u0e2d\u0e19\u0e21\u0e32\u0e40\u0e01\u0e4a\u0e32\u00ae\u00ae\u00a9
territories.TL=\u0e15\u0e34\u0e21\u0e2d\u0e23\u0e4c\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
-territories.TK=\u0e42\u0e17\u0e01\u0e34\u0e42\u0e25
+territories.TK=\u0e42\u0e15\u0e40\u0e01\u0e40\u0e25\u0e32
territories.TJ=\u0e17\u0e32\u0e08\u0e34\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19
-territories.TH=\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e44\u0e17\u0e22
+territories.TH=\u0e44\u0e17\u0e22
territories.TG=\u0e42\u0e15\u0e42\u0e01
-territories.TF=\u0e2d\u0e32\u0e13\u0e32\u0e40\u0e02\u0e15\u0e17\u0e32\u0e07\u0e43\u0e15\u0e49\u0e02\u0e2d\u0e07\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
-territories.GY=\u0e01\u0e32\u0e22\u0e32\u0e19\u0e32
+territories.TF=\u0e40\u0e1f\u0e23\u0e19\u0e0a\u0e4c\u0e40\u0e0b\u0e32\u0e40\u0e17\u0e34\u0e23\u0e4c\u0e19\u0e40\u0e17\u0e23\u0e4c\u0e23\u0e34\u0e17\u0e2d\u0e23\u0e35\u0e2a\u0e4c
+territories.GY=\u0e01\u0e32\u0e22\u0e2d\u0e32\u0e19\u0e32
territories.TD=\u0e0a\u0e32\u0e14
territories.TC=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e40\u0e15\u0e34\u0e01\u0e2a\u0e4c\u0e41\u0e25\u0e30\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e40\u0e04\u0e04\u0e2d\u0e2a
territories.GW=\u0e01\u0e34\u0e19\u0e35-\u0e1a\u0e34\u0e2a\u0e40\u0e0b\u0e32
@@ -84,7 +338,7 @@ territories.GT=\u0e01\u0e31\u0e27\u0e40\u0e15\u0e21\u0e32\u0e25\u0e32
territories.GS=\u0e40\u0e01\u0e32\u0e30\u0e40\u0e0b\u0e32\u0e17\u0e4c\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22\u0e41\u0e25\u0e30\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e40\u0e0b\u0e32\u0e17\u0e4c\u0e41\u0e0b\u0e19\u0e14\u0e4c\u0e27\u0e34\u0e0a
territories.GR=\u0e01\u0e23\u0e35\u0e0b
territories.GQ=\u0e2d\u0e34\u0e40\u0e04\u0e27\u0e17\u0e2d\u0e40\u0e23\u0e35\u0e22\u0e25\u0e01\u0e34\u0e19\u0e35
-territories.GP=\u0e01\u0e31\u0e27\u0e40\u0e14\u0e2d\u0e25\u0e39\u0e1b
+territories.GP=\u0e01\u0e27\u0e32\u0e40\u0e14\u0e2d\u0e25\u0e39\u0e1b
territories.SZ=\u0e2a\u0e27\u0e32\u0e0b\u0e34\u0e41\u0e25\u0e19\u0e14\u0e4c
territories.SY=\u0e0b\u0e35\u0e40\u0e23\u0e35\u0e22
territories.GN=\u0e01\u0e34\u0e19\u0e35
@@ -92,22 +346,23 @@ territories.GM=\u0e41\u0e01\u0e21\u0e40\u0e1a\u0e35\u0e22
territories.GL=\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c
territories.SV=\u0e40\u0e2d\u0e25\u0e0b\u0e31\u0e25\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c
territories.062=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e01\u0e25\u0e32\u0e07\u0e15\u0e2d\u0e19\u0e43\u0e15\u0e49
-territories.ST=\u0e40\u0e0b\u0e32\u0e42\u0e15\u0e40\u0e21\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e19\u0e0b\u0e34\u0e40\u0e1b
+territories.ST=\u0e40\u0e0b\u0e32\u0e15\u0e39\u0e40\u0e21\u0e41\u0e25\u0e30\u0e1b\u0e23\u0e34\u0e19\u0e0b\u0e34\u0e1b\u0e35
+territories.GI=\u0e22\u0e34\u0e1a\u0e23\u0e2d\u0e25\u0e15\u0e32
territories.061=\u0e42\u0e1b\u0e25\u0e34\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
-territories.GI=\u0e22\u0e34\u0e1a\u0e23\u0e2d\u0e25\u0e15\u0e32\u0e23\u0e4c
-territories.GH=\u0e01\u0e32\u0e19\u0e48\u0e32
-territories.SR=\u0e2a\u0e38\u0e23\u0e34\u0e19\u0e31\u0e21
-territories.GF=\u0e40\u0e1f\u0e23\u0e19\u0e0a\u0e4c\u0e01\u0e35\u0e2d\u0e32\u0e19\u0e32
+territories.GH=\u0e01\u0e32\u0e19\u0e32
+territories.SR=\u0e0b\u0e39\u0e23\u0e34\u0e19\u0e32\u0e40\u0e21
+territories.GG=\u0e40\u0e01\u0e34\u0e23\u0e4c\u0e19\u0e0b\u0e35\u0e22\u0e4c
+territories.GF=\u0e40\u0e1f\u0e23\u0e19\u0e0a\u0e4c\u0e40\u0e01\u0e35\u0e22\u0e19\u0e32
territories.GE=\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22
territories.SO=\u0e42\u0e0b\u0e21\u0e32\u0e40\u0e25\u0e35\u0e22
-territories.GD=\u0e40\u0e01\u0e23\u0e19\u0e32\u0e14\u0e32
+territories.GD=\u0e40\u0e01\u0e23\u0e40\u0e19\u0e14\u0e32
territories.SN=\u0e40\u0e0b\u0e40\u0e19\u0e01\u0e31\u0e25
territories.SM=\u0e0b\u0e32\u0e19\u0e21\u0e32\u0e23\u0e35\u0e42\u0e19
territories.GB=\u0e2a\u0e2b\u0e23\u0e32\u0e0a\u0e2d\u0e32\u0e13\u0e32\u0e08\u0e31\u0e01\u0e23
territories.SL=\u0e40\u0e0b\u0e35\u0e22\u0e23\u0e4c\u0e23\u0e32\u0e25\u0e35\u0e42\u0e2d\u0e19
territories.GA=\u0e01\u0e32\u0e1a\u0e2d\u0e07
-territories.SK=\u0e2a\u0e42\u0e25\u0e27\u0e32\u0e40\u0e01\u0e35\u0e22
-territories.SJ=\u0e2a\u0e1f\u0e32\u0e25\u0e1a\u0e32\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e41\u0e08\u0e19\u0e21\u0e32\u0e40\u0e22\u0e19
+territories.SK=\u0e2a\u0e42\u0e25\u0e27\u0e30\u0e40\u0e01\u0e35\u0e22
+territories.SJ=\u0e2a\u0e1f\u0e32\u0e25\u0e1a\u0e32\u0e23\u0e4c\u0e41\u0e25\u0e30\u0e22\u0e32\u0e19\u0e44\u0e21\u0e40\u0e2d\u0e19
territories.SI=\u0e2a\u0e42\u0e25\u0e27\u0e35\u0e40\u0e19\u0e35\u0e22
territories.SH=\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e40\u0e2e\u0e40\u0e25\u0e19\u0e32
territories.SG=\u0e2a\u0e34\u0e07\u0e04\u0e42\u0e1b\u0e23\u0e4c
@@ -117,40 +372,42 @@ territories.SC=\u0e40\u0e0b\u0e40\u0e0a\u0e25\u0e2a\u0e4c
territories.SB=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e42\u0e0b\u0e42\u0e25\u0e21\u0e2d\u0e19
territories.SA=\u0e0b\u0e32\u0e2d\u0e38\u0e14\u0e35\u0e2d\u0e32\u0e23\u0e30\u0e40\u0e1a\u0e35\u0e22
territories.FR=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
-territories.057=\u0e44\u0e21\u0e42\u0e04\u0e23\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
-territories.FO=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e1f\u0e32\u0e42\u0e23
+territories.FO=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e41\u0e1f\u0e42\u0e23
+territories.057=\u0e40\u0e02\u0e15\u0e44\u0e21\u0e42\u0e04\u0e23\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
territories.FM=\u0e44\u0e21\u0e42\u0e04\u0e23\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
territories.RW=\u0e23\u0e27\u0e31\u0e19\u0e14\u0e32
territories.054=\u0e40\u0e21\u0e25\u0e32\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
+territories.FK=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e1f\u0e2d\u0e25\u0e4c\u0e01\u0e41\u0e25\u0e19\u0e14\u0e4c
territories.053=\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22\u0e41\u0e25\u0e30\u0e19\u0e34\u0e27\u0e0b\u0e35\u0e41\u0e25\u0e19\u0e14\u0e4c
-territories.FK=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e1f\u0e2d\u0e25\u0e4c\u0e04\u0e41\u0e25\u0e19\u0e14\u0e4c
territories.RU=\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22
territories.FJ=\u0e1f\u0e34\u0e08\u0e34
territories.FI=\u0e1f\u0e34\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c
+territories.RS=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
territories.RO=\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22
-territories.RE=\u0e40\u0e23\u0e2d\u0e39\u0e40\u0e19\u0e35\u0e22\u0e07
+territories.RE=\u0e40\u0e23\u0e2d\u0e39\u0e19\u0e35\u0e22\u0e07
territories.ET=\u0e40\u0e2d\u0e18\u0e34\u0e42\u0e2d\u0e40\u0e1b\u0e35\u0e22
territories.ES=\u0e2a\u0e40\u0e1b\u0e19
territories.ER=\u0e40\u0e2d\u0e23\u0e34\u0e40\u0e17\u0e23\u0e35\u0e22
-territories.833=\u0e40\u0e01\u0e32\u0e30\u0e41\u0e21\u0e19
+territories.QU=\u0e2a\u0e2b\u0e20\u0e32\u0e1e\u0e22\u0e38\u0e42\u0e23\u0e1b
territories.EH=\u0e0b\u0e32\u0e2e\u0e32\u0e23\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
territories.EG=\u0e2d\u0e35\u0e22\u0e34\u0e1b\u0e15\u0e4c
-territories.830=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e41\u0e0a\u0e19\u0e40\u0e19\u0e25
territories.EE=\u0e40\u0e2d\u0e2a\u0e42\u0e15\u0e40\u0e19\u0e35\u0e22
+territories.830=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e41\u0e0a\u0e19\u0e40\u0e19\u0e25
territories.QO=\u0e40\u0e2d\u0e32\u0e15\u0e4c\u0e44\u0e25\u0e2d\u0e34\u0e07\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e40\u0e19\u0e35\u0e22
territories.EC=\u0e40\u0e2d\u0e01\u0e27\u0e32\u0e14\u0e2d\u0e23\u0e4c
territories.DZ=\u0e41\u0e2d\u0e25\u0e08\u0e35\u0e40\u0e23\u0e35\u0e22
territories.QA=\u0e01\u0e32\u0e15\u0e32\u0e23\u0e4c
-territories.039=\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e43\u0e15\u0e49
+territories.039=\u0e22\u0e38\u0e42\u0e23\u0e1b\u0e15\u0e2d\u0e19\u0e43\u0e15\u0e49
territories.DO=\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e42\u0e14\u0e21\u0e34\u0e19\u0e34\u0e01\u0e31\u0e19
territories.PY=\u0e1b\u0e32\u0e23\u0e32\u0e01\u0e27\u0e31\u0e22
-territories.035=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u0e40\u0e09\u0e35\u0e22\u0e07\u0e43\u0e15\u0e49
territories.DM=\u0e42\u0e14\u0e21\u0e34\u0e19\u0e34\u0e01\u0e32
+territories.035=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01\u0e40\u0e09\u0e35\u0e22\u0e07\u0e43\u0e15\u0e49
territories.PW=\u0e1b\u0e32\u0e40\u0e25\u0e32
+territories.034=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e2d\u0e19\u0e43\u0e15\u0e49
territories.DK=\u0e40\u0e14\u0e19\u0e21\u0e32\u0e23\u0e4c\u0e01
territories.DJ=\u0e08\u0e34\u0e1a\u0e39\u0e15\u0e35
territories.PT=\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
-territories.PS=\u0e1b\u0e32\u0e40\u0e25\u0e0b\u0e15\u0e34\u0e40\u0e19\u0e35\u0e22\u0e19\u0e40\u0e17\u0e23\u0e4c\u0e23\u0e34\u0e17\u0e2d\u0e23\u0e35
+territories.PS=\u0e14\u0e34\u0e19\u0e41\u0e14\u0e19\u0e22\u0e36\u0e14\u0e04\u0e23\u0e2d\u0e07\u0e1b\u0e32\u0e40\u0e25\u0e2a\u0e44\u0e15\u0e19\u0e4c
territories.030=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
territories.PR=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e42\u0e15\u0e23\u0e34\u0e42\u0e01
territories.DE=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e19\u0e35
@@ -160,71 +417,75 @@ territories.PL=\u0e42\u0e1b\u0e41\u0e25\u0e19\u0e14\u0e4c
territories.PK=\u0e1b\u0e32\u0e01\u0e35\u0e2a\u0e16\u0e32\u0e19
territories.PH=\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e1b\u0e34\u0e19\u0e2a\u0e4c
territories.PG=\u0e1b\u0e32\u0e1b\u0e31\u0e27\u0e19\u0e34\u0e27\u0e01\u0e34\u0e19\u0e35
-territories.PF=\u0e40\u0e1f\u0e23\u0e19\u0e0a\u0e4c\u0e42\u0e1e\u0e25\u0e35\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
+territories.PF=\u0e40\u0e1f\u0e23\u0e19\u0e0a\u0e4c\u0e42\u0e1b\u0e25\u0e34\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
territories.CZ=\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e40\u0e0a\u0e47\u0e01
territories.PE=\u0e40\u0e1b\u0e23\u0e39
territories.CY=\u0e44\u0e0b\u0e1b\u0e23\u0e31\u0e2a
-territories.CX=\u0e40\u0e01\u0e32\u0e30\u0e04\u0e23\u0e34\u0e2a\u0e21\u0e32\u0e2a\u0e15\u0e4c
+territories.CX=\u0e40\u0e01\u0e32\u0e30\u0e04\u0e23\u0e34\u0e2a\u0e15\u0e4c\u0e21\u0e32\u0e2a
territories.CV=\u0e40\u0e04\u0e1b\u0e40\u0e27\u0e34\u0e23\u0e4c\u0e14
territories.PA=\u0e1b\u0e32\u0e19\u0e32\u0e21\u0e32
territories.CU=\u0e04\u0e34\u0e27\u0e1a\u0e32
-territories.CS=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
+territories.CS=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22\u0e41\u0e25\u0e30\u0e21\u0e2d\u0e19\u0e40\u0e15\u0e40\u0e19\u0e42\u0e01\u0e23
territories.CR=\u0e04\u0e2d\u0e2a\u0e15\u0e32\u0e23\u0e34\u0e01\u0e32
-territories.029=\u0e41\u0e04\u0e23\u0e34\u0e40\u0e1a\u0e35\u0e22\u0e19
-territories.CO=\u0e42\u0e04\u0e25\u0e31\u0e21\u0e40\u0e1a\u0e35\u0e22
+territories.029=\u0e41\u0e04\u0e23\u0e34\u0e1a\u0e40\u0e1a\u0e35\u0e22\u0e19
+territories.CO=\u0e42\u0e04\u0e25\u0e2d\u0e21\u0e40\u0e1a\u0e35\u0e22
territories.CN=\u0e08\u0e35\u0e19
territories.CM=\u0e41\u0e04\u0e40\u0e21\u0e2d\u0e23\u0e39\u0e19
territories.CL=\u0e0a\u0e34\u0e25\u0e35
territories.CK=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e04\u0e38\u0e01
-territories.CI=\u0e42\u0e01\u0e15\u0e14\u0e34\u0e27\u0e31\u0e27\u0e23\u0e4c
-territories.021=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e40\u0e2b\u0e19\u0e37\u0e2d
+territories.021=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e15\u0e2d\u0e19\u0e40\u0e2b\u0e19\u0e37\u0e2d
+territories.CI=\u0e44\u0e2d\u0e27\u0e2d\u0e23\u0e35\u0e48\u0e42\u0e04\u0e2a\u0e15\u0e4c
territories.CH=\u0e2a\u0e27\u0e34\u0e15\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
territories.CG=\u0e04\u0e2d\u0e07\u0e42\u0e01
territories.CF=\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e01\u0e25\u0e32\u0e07
-territories.CD=\u0e2a\u0e32\u0e18\u0e32\u0e23\u0e13\u0e23\u0e31\u0e10\u0e1b\u0e23\u0e30\u0e0a\u0e32\u0e18\u0e34\u0e1b\u0e44\u0e15\u0e22\u0e04\u0e2d\u0e07\u0e42\u0e01
-territories.CC=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e42\u0e04\u0e42\u0e04\u0e2a (\u0e04\u0e35\u0e25\u0e34\u0e07)
+territories.CD=\u0e04\u0e2d\u0e07\u0e42\u0e01-\u0e01\u0e34\u0e19\u0e0a\u0e32\u0e0b\u0e32
+territories.CC=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e42\u0e04\u0e42\u0e04\u0e2a
territories.OM=\u0e42\u0e2d\u0e21\u0e32\u0e19
territories.CA=\u0e41\u0e04\u0e19\u0e32\u0e14\u0e32
-territories.BZ=\u0e40\u0e1a\u0e25\u0e35\u0e0a
+territories.419=\u0e25\u0e30\u0e15\u0e34\u0e19\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e41\u0e25\u0e30\u0e41\u0e04\u0e23\u0e34\u0e1a\u0e40\u0e1a\u0e35\u0e22\u0e19
+territories.BZ=\u0e40\u0e1a\u0e25\u0e35\u0e0b
territories.BY=\u0e40\u0e1a\u0e25\u0e32\u0e23\u0e38\u0e2a
territories.BW=\u0e1a\u0e2d\u0e15\u0e2a\u0e27\u0e32\u0e19\u0e32
-territories.BV=\u0e40\u0e01\u0e32\u0e30\u0e1a\u0e39\u0e40\u0e27\u0e15\u0e4c
-territories.BT=\u0e20\u0e39\u0e10\u0e32\u0e19
+territories.BV=\u0e40\u0e01\u0e32\u0e30\u0e1a\u0e39\u0e40\u0e27\u0e15
+territories.BT=\u0e20\u0e39\u0e0f\u0e32\u0e19
territories.BS=\u0e1a\u0e32\u0e2e\u0e32\u0e21\u0e32\u0e2a
territories.BR=\u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
territories.019=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32
-territories.018=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49
+territories.018=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e2d\u0e19\u0e43\u0e15\u0e49
territories.NZ=\u0e19\u0e34\u0e27\u0e0b\u0e35\u0e41\u0e25\u0e19\u0e14\u0e4c
-territories.BO=\u0e42\u0e1a\u0e25\u0e34\u0e40\u0e27\u0e35\u0e22
territories.017=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e01\u0e25\u0e32\u0e07
+territories.BO=\u0e42\u0e1a\u0e25\u0e34\u0e40\u0e27\u0e35\u0e22
territories.BN=\u0e1a\u0e23\u0e39\u0e44\u0e19
-territories.BM=\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e21\u0e34\u0e27\u0e14\u0e49\u0e32
territories.015=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e40\u0e2b\u0e19\u0e37\u0e2d
+territories.BM=\u0e40\u0e1a\u0e2d\u0e23\u0e4c\u0e21\u0e34\u0e27\u0e14\u0e32
territories.014=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
+territories.BL=\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e1a\u0e32\u0e23\u0e4c\u0e40\u0e18\u0e40\u0e25\u0e21\u0e35
territories.013=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e01\u0e25\u0e32\u0e07
-territories.NU=\u0e19\u0e35\u0e22\u0e39
+territories.NU=\u0e19\u0e35\u0e2d\u0e39\u0e40\u0e2d
territories.BJ=\u0e40\u0e1a\u0e19\u0e34\u0e19
-territories.BI=\u0e1a\u0e38\u0e23\u0e38\u0e19\u0e14\u0e35
territories.011=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+territories.BI=\u0e1a\u0e38\u0e23\u0e38\u0e19\u0e14\u0e35
+territories.172=\u0e40\u0e04\u0e23\u0e37\u0e2d\u0e23\u0e31\u0e10\u0e2d\u0e34\u0e2a\u0e23\u0e30
territories.BH=\u0e1a\u0e32\u0e2b\u0e4c\u0e40\u0e23\u0e19
territories.NR=\u0e19\u0e32\u0e2d\u0e39\u0e23\u0e39
territories.BG=\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22
territories.BF=\u0e1a\u0e39\u0e23\u0e4c\u0e01\u0e34\u0e19\u0e32\u0e1f\u0e32\u0e42\u0e0b
territories.NP=\u0e40\u0e19\u0e1b\u0e32\u0e25
territories.BE=\u0e40\u0e1a\u0e25\u0e40\u0e22\u0e35\u0e22\u0e21
+territories.ZZ=\u0e44\u0e21\u0e48\u0e17\u0e23\u0e32\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
territories.NO=\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c
-territories.BD=\u0e1a\u0e31\u0e07\u0e04\u0e25\u0e32\u0e40\u0e17\u0e28
+territories.BD=\u0e1a\u0e31\u0e07\u0e01\u0e25\u0e32\u0e40\u0e17\u0e28
territories.BB=\u0e1a\u0e32\u0e23\u0e4c\u0e40\u0e1a\u0e42\u0e14\u0e2a
-territories.ZW=\u0e0b\u0e34\u0e21\u0e1a\u0e32\u0e1a\u0e40\u0e27
+territories.ZW=\u0e0b\u0e34\u0e21\u0e1a\u0e31\u0e1a\u0e40\u0e27
territories.NL=\u0e40\u0e19\u0e40\u0e18\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
territories.BA=\u0e1a\u0e2d\u0e2a\u0e40\u0e19\u0e35\u0e22\u0e41\u0e25\u0e30\u0e40\u0e2e\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e42\u0e01\u0e27\u0e35\u0e19\u0e32
-territories.NI=\u0e19\u0e34\u0e04\u0e32\u0e23\u0e32\u0e01\u0e31\u0e27
+territories.NI=\u0e19\u0e34\u0e01\u0e32\u0e23\u0e32\u0e01\u0e31\u0e27
territories.NG=\u0e44\u0e19\u0e08\u0e35\u0e40\u0e23\u0e35\u0e22
territories.NF=\u0e40\u0e01\u0e32\u0e30\u0e19\u0e2d\u0e23\u0e4c\u0e1f\u0e2d\u0e25\u0e4c\u0e01
territories.AZ=\u0e2d\u0e32\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e44\u0e1a\u0e08\u0e32\u0e19
territories.NE=\u0e44\u0e19\u0e40\u0e08\u0e2d\u0e23\u0e4c
-territories.AX=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e2d\u0e41\u0e25\u0e19\u0e14\u0e4c
-territories.NC=\u0e19\u0e34\u0e27\u0e41\u0e04\u0e25\u0e35\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
+territories.AX=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e42\u0e2d\u0e25\u0e31\u0e19\u0e14\u0e4c
+territories.NC=\u0e19\u0e34\u0e27\u0e41\u0e04\u0e25\u0e34\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
territories.AW=\u0e2d\u0e32\u0e23\u0e39\u0e1a\u0e32
territories.ZM=\u0e41\u0e0b\u0e21\u0e40\u0e1a\u0e35\u0e22
territories.NA=\u0e19\u0e32\u0e21\u0e34\u0e40\u0e1a\u0e35\u0e22
@@ -232,40 +493,43 @@ territories.AU=\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22
territories.AT=\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e35\u0e22
territories.AS=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e31\u0e19\u0e0b\u0e32\u0e21\u0e31\u0e27
territories.AR=\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e08\u0e19\u0e15\u0e34\u0e19\u0e32
-territories.009=\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e40\u0e19\u0e35\u0e22
territories.AQ=\u0e41\u0e2d\u0e19\u0e15\u0e32\u0e23\u0e4c\u0e01\u0e15\u0e34\u0e01\u0e32
-territories.MZ=\u0e42\u0e21\u0e41\u0e0b\u0e21\u0e1a\u0e34\u0e04
+territories.009=\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e40\u0e19\u0e35\u0e22
+territories.MZ=\u0e42\u0e21\u0e0b\u0e31\u0e21\u0e1a\u0e34\u0e01
territories.AO=\u0e41\u0e2d\u0e07\u0e42\u0e01\u0e25\u0e32
territories.MY=\u0e21\u0e32\u0e40\u0e25\u0e40\u0e0b\u0e35\u0e22
-territories.AN=\u0e40\u0e19\u0e40\u0e2e\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e41\u0e2d\u0e19\u0e17\u0e34\u0e25\u0e25\u0e34\u0e2a
+territories.AN=\u0e40\u0e19\u0e40\u0e18\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e41\u0e2d\u0e19\u0e17\u0e34\u0e25\u0e25\u0e34\u0e2a
territories.MX=\u0e40\u0e21\u0e47\u0e01\u0e0b\u0e34\u0e42\u0e01
-territories.005=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49
territories.AM=\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22
+territories.005=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49
territories.MW=\u0e21\u0e32\u0e25\u0e32\u0e27\u0e35
territories.AL=\u0e41\u0e2d\u0e25\u0e40\u0e1a\u0e40\u0e19\u0e35\u0e22
territories.MV=\u0e21\u0e31\u0e25\u0e14\u0e35\u0e1f\u0e2a\u0e4c
+territories.003=\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32\u0e40\u0e2b\u0e19\u0e37\u0e2d
territories.ZA=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32\u0e43\u0e15\u0e49
territories.MU=\u0e21\u0e2d\u0e23\u0e34\u0e40\u0e0a\u0e35\u0e22\u0e2a
territories.002=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32
territories.MT=\u0e21\u0e2d\u0e25\u0e15\u0e32
+territories.AI=\u0e41\u0e2d\u0e07\u0e01\u0e27\u0e34\u0e25\u0e25\u0e32
territories.001=\u0e42\u0e25\u0e01
-territories.AI=\u0e2d\u0e31\u0e19\u0e01\u0e34\u0e25\u0e48\u0e32
-territories.MS=\u0e21\u0e2d\u0e19\u0e15\u0e4c\u0e40\u0e0b\u0e23\u0e4c\u0e41\u0e23\u0e47\u0e15
+territories.MS=\u0e21\u0e2d\u0e19\u0e15\u0e4c\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e23\u0e31\u0e15
territories.MR=\u0e21\u0e2d\u0e23\u0e34\u0e40\u0e15\u0e40\u0e19\u0e35\u0e22
territories.AG=\u0e41\u0e2d\u0e19\u0e15\u0e34\u0e01\u0e32\u0e41\u0e25\u0e30\u0e1a\u0e32\u0e23\u0e4c\u0e1a\u0e39\u0e14\u0e32
territories.MQ=\u0e21\u0e32\u0e23\u0e4c\u0e15\u0e34\u0e19\u0e35\u0e01
territories.AF=\u0e2d\u0e31\u0e1f\u0e01\u0e32\u0e19\u0e34\u0e2a\u0e16\u0e32\u0e19
-territories.MP=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e19\u0e2d\u0e23\u0e4c\u0e17\u0e40\u0e17\u0e34\u0e23\u0e4c\u0e19\u0e21\u0e32\u0e40\u0e23\u0e35\u0e22\u0e19\u0e32
+territories.MP=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e17\u0e34\u0e23\u0e4c\u0e19\u0e21\u0e32\u0e40\u0e23\u0e35\u0e22\u0e19\u0e32
territories.AE=\u0e2a\u0e2b\u0e23\u0e31\u0e10\u0e2d\u0e32\u0e2b\u0e23\u0e31\u0e1a\u0e40\u0e2d\u0e21\u0e34\u0e40\u0e23\u0e15\u0e2a\u0e4c
-territories.MO=\u0e21\u0e32\u0e40\u0e01\u0e4a\u0e32 \u0e40\u0e02\u0e15\u0e1b\u0e01\u0e04\u0e23\u0e2d\u0e07\u0e1e\u0e34\u0e40\u0e28\u0e29\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e08\u0e35\u0e19
+territories.MO=\u0e21\u0e32\u0e40\u0e01\u0e4a\u0e32
territories.AD=\u0e2d\u0e31\u0e19\u0e14\u0e2d\u0e23\u0e4c\u0e23\u0e32
territories.MN=\u0e21\u0e2d\u0e07\u0e42\u0e01\u0e40\u0e25\u0e35\u0e22
territories.MM=\u0e1e\u0e21\u0e48\u0e32
territories.ML=\u0e21\u0e32\u0e25\u0e35
territories.MK=\u0e21\u0e32\u0e0b\u0e34\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
territories.YT=\u0e21\u0e32\u0e22\u0e2d\u0e15
-territories.MH=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e21\u0e32\u0e23\u0e4c\u0e41\u0e0a\u0e25
+territories.MH=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e21\u0e32\u0e23\u0e4c\u0e41\u0e0a\u0e25\u0e25\u0e4c
territories.MG=\u0e21\u0e32\u0e14\u0e32\u0e01\u0e31\u0e2a\u0e01\u0e32\u0e23\u0e4c
+territories.MF=\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e21\u0e32\u0e15\u0e34\u0e19
+territories.ME=\u0e21\u0e2d\u0e19\u0e40\u0e15\u0e40\u0e19\u0e42\u0e01\u0e23
territories.MD=\u0e21\u0e2d\u0e25\u0e42\u0e14\u0e27\u0e32
territories.MC=\u0e42\u0e21\u0e19\u0e32\u0e42\u0e01
territories.MA=\u0e42\u0e21\u0e23\u0e47\u0e2d\u0e01\u0e42\u0e01
@@ -289,6 +553,7 @@ territories.KZ=\u0e04\u0e32\u0e0b\u0e31\u0e04\u0e2a\u0e16\u0e32\u0e19
territories.KY=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e40\u0e04\u0e22\u0e4c\u0e41\u0e21\u0e19
territories.KW=\u0e04\u0e39\u0e40\u0e27\u0e15
territories.145=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+territories.143=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e01\u0e25\u0e32\u0e07
territories.142=\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
territories.KR=\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u0e43\u0e15\u0e49
territories.KP=\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35\u0e40\u0e2b\u0e19\u0e37\u0e2d
@@ -297,184 +562,556 @@ territories.KM=\u0e04\u0e2d\u0e42\u0e21\u0e42\u0e23\u0e2a
territories.KI=\u0e04\u0e34\u0e23\u0e34\u0e1a\u0e32\u0e2a
territories.WS=\u0e0b\u0e32\u0e21\u0e31\u0e27
territories.KH=\u0e01\u0e31\u0e21\u0e1e\u0e39\u0e0a\u0e32
-territories.KG=\u0e04\u0e35\u0e23\u0e4c\u0e01\u0e34\u0e0b\u0e2a\u0e16\u0e32\u0e19
+territories.KG=\u0e04\u0e35\u0e23\u0e4c\u0e01\u0e35\u0e0b\u0e2a\u0e16\u0e32\u0e19
territories.KE=\u0e40\u0e04\u0e19\u0e22\u0e32
territories.WF=\u0e27\u0e32\u0e25\u0e25\u0e34\u0e2a\u0e41\u0e25\u0e30\u0e1f\u0e38\u0e15\u0e39\u0e19\u0e32
territories.JP=\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19
territories.JO=\u0e08\u0e2d\u0e23\u0e4c\u0e41\u0e14\u0e19
territories.JM=\u0e08\u0e32\u0e40\u0e21\u0e01\u0e32
territories.VU=\u0e27\u0e32\u0e19\u0e39\u0e2d\u0e32\u0e15\u0e39
+territories.JE=\u0e40\u0e08\u0e2d\u0e23\u0e4c\u0e0b\u0e35\u0e22\u0e4c
territories.VN=\u0e40\u0e27\u0e35\u0e22\u0e14\u0e19\u0e32\u0e21
-territories.VI=\u0e22\u0e39\u0e40\u0e2d\u0e2a\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e08\u0e34\u0e19\u0e44\u0e2d\u0e2a\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
-territories.VG=\u0e1a\u0e23\u0e34\u0e17\u0e34\u0e0a\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e08\u0e34\u0e19\u0e44\u0e2d\u0e2a\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
+territories.VI=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e22\u0e39\u0e40\u0e2d\u0e2a\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e08\u0e34\u0e19
+territories.VG=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e1a\u0e23\u0e34\u0e15\u0e34\u0e0a\u0e40\u0e27\u0e2d\u0e23\u0e4c\u0e08\u0e34\u0e19
territories.VE=\u0e40\u0e27\u0e40\u0e19\u0e0b\u0e38\u0e40\u0e2d\u0e25\u0e32
territories.VC=\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e27\u0e34\u0e19\u0e40\u0e0b\u0e19\u0e15\u0e4c\u0e41\u0e25\u0e30\u0e40\u0e01\u0e23\u0e19\u0e32\u0e14\u0e35\u0e19\u0e2a\u0e4c
-territories.VA=\u0e27\u0e32\u0e15\u0e34\u0e01\u0e31\u0e19
+territories.VA=\u0e19\u0e04\u0e23\u0e23\u0e31\u0e10\u0e27\u0e32\u0e15\u0e34\u0e01\u0e31\u0e19
territories.IT=\u0e2d\u0e34\u0e15\u0e32\u0e25\u0e35
territories.IS=\u0e44\u0e2d\u0e0b\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
territories.IR=\u0e2d\u0e34\u0e2b\u0e23\u0e48\u0e32\u0e19
territories.IQ=\u0e2d\u0e34\u0e23\u0e31\u0e01
territories.UZ=\u0e2d\u0e38\u0e0b\u0e40\u0e1a\u0e01\u0e34\u0e2a\u0e16\u0e32\u0e19
-territories.IO=\u0e1a\u0e23\u0e34\u0e15\u0e34\u0e2a\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e19\u0e40\u0e17\u0e23\u0e4c\u0e23\u0e34\u0e17\u0e2d\u0e23\u0e35
+territories.IO=\u0e1a\u0e23\u0e34\u0e15\u0e34\u0e0a\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u0e19\u0e42\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e19\u0e40\u0e17\u0e23\u0e4c\u0e23\u0e34\u0e17\u0e2d\u0e23\u0e35
territories.UY=\u0e2d\u0e38\u0e23\u0e38\u0e01\u0e27\u0e31\u0e22
territories.IN=\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22
+territories.IM=\u0e40\u0e01\u0e32\u0e30\u0e41\u0e21\u0e19
territories.IL=\u0e2d\u0e34\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e25
territories.US=\u0e2a\u0e2b\u0e23\u0e31\u0e10\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32
territories.IE=\u0e44\u0e2d\u0e23\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
territories.ID=\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22
territories.UM=\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e2a\u0e2b\u0e23\u0e31\u0e10\u0e44\u0e21\u0e40\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e2d\u0e32\u0e15\u0e4c\u0e44\u0e25\u0e2d\u0e34\u0e07
-territories.UG=\u0e2d\u0e39\u0e01\u0e32\u0e19\u0e14\u0e32
+territories.UG=\u0e22\u0e39\u0e01\u0e31\u0e19\u0e14\u0e32
territories.UA=\u0e22\u0e39\u0e40\u0e04\u0e23\u0e19
territories.HU=\u0e2e\u0e31\u0e07\u0e01\u0e32\u0e23\u0e35
territories.HT=\u0e40\u0e2e\u0e15\u0e34
territories.HR=\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
-territories.TZ=\u0e17\u0e32\u0e19\u0e0b\u0e32\u0e40\u0e19\u0e35\u0e22
+territories.TZ=\u0e41\u0e17\u0e19\u0e0b\u0e32\u0e40\u0e19\u0e35\u0e22
territories.HN=\u0e2e\u0e2d\u0e19\u0e14\u0e39\u0e23\u0e31\u0e2a
-territories.HM=\u0e40\u0e01\u0e32\u0e30\u0e40\u0e2e\u0e34\u0e23\u0e4c\u0e14\u0e41\u0e25\u0e30\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e41\u0e21\u0e01\u0e14\u0e2d\u0e19\u0e31\u0e25\u0e14\u0e4c
+territories.HM=\u0e40\u0e01\u0e32\u0e30\u0e40\u0e2e\u0e34\u0e23\u0e4c\u0e14\u0e41\u0e25\u0e30\u0e2b\u0e21\u0e39\u0e48\u0e40\u0e01\u0e32\u0e30\u0e41\u0e21\u0e04\u0e42\u0e14\u0e19\u0e31\u0e25\u0e14\u0e4c
territories.TW=\u0e44\u0e15\u0e49\u0e2b\u0e27\u0e31\u0e19
territories.TV=\u0e15\u0e39\u0e27\u0e32\u0e25\u0e39
-territories.HK=\u0e2e\u0e48\u0e2d\u0e07\u0e01\u0e07 \u0e40\u0e02\u0e15\u0e1b\u0e01\u0e04\u0e23\u0e2d\u0e07\u0e1e\u0e34\u0e40\u0e28\u0e29\u0e1b\u0e23\u0e30\u0e40\u0e17\u0e28\u0e08\u0e35\u0e19
+territories.HK=\u0e2e\u0e48\u0e2d\u0e07\u0e01\u0e07
territories.TT=\u0e15\u0e23\u0e34\u0e19\u0e34\u0e41\u0e14\u0e14\u0e41\u0e25\u0e30\u0e42\u0e15\u0e40\u0e1a\u0e42\u0e01
territories.TR=\u0e15\u0e38\u0e23\u0e01\u0e35
territories.TO=\u0e15\u0e2d\u0e07\u0e01\u0e32
territories.TN=\u0e15\u0e39\u0e19\u0e34\u0e40\u0e0b\u0e35\u0e22
territories.TM=\u0e40\u0e15\u0e34\u0e23\u0e4c\u0e01\u0e40\u0e21\u0e19\u0e34\u0e2a\u0e16\u0e32\u0e19
-languages.es=\u0e2a\u0e40\u0e1b\u0e19
-languages.ku=\u0e40\u0e04\u0e34\u0e14
-languages.eo=\u0e40\u0e2d\u0e2a\u0e40\u0e1b\u0e2d\u0e23\u0e31\u0e19\u0e42\u0e15
-languages.en=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29
-languages.ks=\u0e04\u0e31\u0e0a\u0e21\u0e35\u0e23\u0e35
-languages.el=\u0e01\u0e23\u0e35\u0e01
-languages.qu=\u0e04\u0e34\u0e27\u0e0a\u0e31\u0e27
-languages.ko=\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35
-languages.kn=\u0e01\u0e32\u0e19\u0e32\u0e14\u0e32
-languages.km=\u0e40\u0e02\u0e21\u0e23
-languages.kl=\u0e01\u0e23\u0e35\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e14\u0e34\u0e04
-languages.kk=\u0e04\u0e32\u0e0b\u0e31\u0e04
-languages.wo=\u0e27\u0e39\u0e25\u0e2d\u0e1f
-languages.ka=\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22\u0e19
-languages.dz=\u0e20\u0e39\u0e10\u0e32\u0e19\u0e35
-languages.jv=\u0e0a\u0e27\u0e32
-languages.pt=\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
-languages.ps=\u0e1e\u0e32\u0e2a\u0e0a\u0e4c\u0e42\u0e15 (\u0e1e\u0e38\u0e2a\u0e0a\u0e4c\u0e42\u0e15)
-languages.de=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19
-languages.pl=\u0e42\u0e1b\u0e41\u0e25\u0e19\u0e14\u0e4c
-languages.da=\u0e40\u0e14\u0e19\u0e21\u0e32\u0e23\u0e4c\u0e01
-languages.vo=\u0e42\u0e27\u0e25\u0e32\u0e1e\u0e38\u0e01
-languages.ja=\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19
+languages.gwi=\u0e44\u0e01\u0e27\u0e0a\u0e34\u0e19
+languages.akk=\u0e2d\u0e31\u0e04\u0e04\u0e32\u0e40\u0e14\u0e35\u0e22
+languages.eka=\u0e2d\u0e35\u0e01\u0e32\u0e08\u0e31\u0e01
+languages.ijo=\u0e2d\u0e34\u0e42\u0e08
+languages.xh=\u0e42\u0e04\u0e0b\u0e32
+languages.sux=\u0e2a\u0e38\u0e40\u0e21\u0e40\u0e23\u0e35\u0e22
+languages.sus=\u0e0b\u0e39\u0e0b\u0e39
+languages.mis=\u0e20\u0e32\u0e29\u0e32\u0e40\u0e1a\u0e47\u0e14\u0e40\u0e15\u0e25\u0e47\u0e14
+languages.loz=\u0e42\u0e25\u0e0b\u0e34
+languages.tog=\u0e15\u0e2d\u0e07\u0e01\u0e32 - \u0e44\u0e19\u0e0b\u0e32
+languages.pon=\u0e42\u0e1e\u0e2e\u0e4c\u0e19\u0e40\u0e1e\u0e40\u0e2d\u0e35\u0e22\u0e19
+languages.min=\u0e21\u0e35\u0e19\u0e31\u0e07\u0e01\u0e32\u0e40\u0e1a\u0e32
+languages.suk=\u0e0b\u0e39\u0e04\u0e39\u0e21\u0e32
+languages.wo=\u0e42\u0e27\u0e25\u0e2d\u0e1f
+languages.lol=\u0e21\u0e2d\u0e07\u0e42\u0e01
+languages.kut=\u0e04\u0e39\u0e15\u0e19\u0e32
+languages.mic=\u0e21\u0e34\u0e01\u0e41\u0e21\u0e01
+languages.wa=\u0e27\u0e31\u0e25\u0e25\u0e39\u0e19
+languages.kum=\u0e04\u0e34\u0e21\u0e38\u0e01
+languages.zap=\u0e0b\u0e32\u0e42\u0e1b\u0e40\u0e17\u0e01
+languages.ain=\u0e44\u0e2d\u0e19\u0e38
+languages.cus=\u0e20\u0e32\u0e29\u0e32\u0e04\u0e39\u0e0a\u0e34\u0e17\u0e34\u0e01
+languages.jbo=\u0e42\u0e25\u0e0b\u0e1a\u0e31\u0e19
+languages.doi=\u0e42\u0e11\u0e04\u0e23\u0e35
+languages.vo=\u0e42\u0e27\u0e25\u0e32\u0e1b\u0e38\u0e01
+languages.oto=\u0e20\u0e32\u0e29\u0e32\u0e42\u0e2d\u0e42\u0e17\u0e40\u0e21\u0e35\u0e22\u0e19
languages.vi=\u0e40\u0e27\u0e35\u0e22\u0e14\u0e19\u0e32\u0e21
-languages.cy=\u0e40\u0e27\u0e25\u0e2a\u0e4c
-languages.pa=\u0e1b\u0e31\u0e0d\u0e08\u0e32\u0e1b
-languages.cs=\u0e40\u0e0a\u0e47\u0e04
-languages.iu=\u0e44\u0e2d\u0e19\u0e38\u0e01\u0e15\u0e34\u0e15\u0e31\u0e17
-languages.co=\u0e04\u0e2d\u0e23\u0e4c\u0e0b\u0e34\u0e01\u0e32
-languages.it=\u0e2d\u0e34\u0e15\u0e32\u0e25\u0e35
-languages.is=\u0e44\u0e2d\u0e0b\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c\u0e14\u0e34\u0e04
-languages.uz=\u0e2d\u0e38\u0e2a\u0e40\u0e1a\u0e04
-languages.or=\u0e42\u0e2d\u0e23\u0e34\u0e22\u0e32
-languages.ik=\u0e44\u0e2d\u0e19\u0e39\u0e40\u0e1b\u0e35\u0e22\u0e01
-languages.ur=\u0e2d\u0e34\u0e23\u0e14\u0e39
-languages.om=\u0e42\u0e2d\u0e42\u0e23\u0e42\u0e21 (\u0e2d\u0e32\u0e1f\u0e32\u0e19)
-languages.ca=\u0e41\u0e04\u0e15\u0e32\u0e41\u0e25\u0e19
-languages.ie=\u0e2d\u0e34\u0e19\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07\u0e04\u0e4c
-languages.id=\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0a\u0e35\u0e22
+languages.vai=\u0e44\u0e27
+languages.rar=\u0e23\u0e32\u0e42\u0e23\u0e17\u0e47\u0e2d\u0e07\u0e01\u0e31\u0e19
+languages.ve=\u0e40\u0e27\u0e19\u0e14\u0e32
+languages.rap=\u0e23\u0e32\u0e1b\u0e32\u0e19\u0e38\u0e22
+languages.raj=\u0e23\u0e32\u0e0a\u0e2a\u0e16\u0e32\u0e19
+languages.ota=\u0e15\u0e38\u0e23\u0e01\u0e35\u0e2d\u0e2d\u0e15\u0e42\u0e14\u0e21\u0e31\u0e19
+languages.nzi=\u0e19\u0e0b\u0e34\u0e21\u0e32
+languages.nap=\u0e40\u0e19\u0e35\u0e22\u0e42\u0e1e\u0e25\u0e34\u0e41\u0e17\u0e19
+languages.uz=\u0e2d\u0e38\u0e0b\u0e40\u0e1a\u0e01
+languages.uga=\u0e22\u0e39\u0e01\u0e32\u0e23\u0e34\u0e15\u0e34\u0e01
+languages.tmh=\u0e17\u0e32\u0e21\u0e32\u0e40\u0e0a\u0e01
+languages.nai=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e31\u0e19\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u0e19\u0e40\u0e2b\u0e19\u0e37\u0e2d
+languages.nah=\u0e19\u0e32\u0e27\u0e32\u0e15\u0e25\u0e4c
+languages.ur=\u0e2d\u0e39\u0e23\u0e14\u0e39
+languages.fat=\u0e1f\u0e31\u0e19\u0e15\u0e34
languages.uk=\u0e22\u0e39\u0e40\u0e04\u0e23\u0e19
-languages.ia=\u0e2d\u0e34\u0e19\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07\u0e01\u0e27\u0e32
-languages.oc=\u0e2d\u0e2d\u0e01\u0e0b\u0e34\u0e17\u0e31\u0e19
-languages.ug=\u0e2d\u0e38\u0e22\u0e01\u0e31\u0e27
-languages.hy=\u0e2d\u0e32\u0e23\u0e4c\u0e21\u0e35\u0e40\u0e19\u0e35\u0e22
-languages.br=\u0e1a\u0e23\u0e35\u0e17\u0e31\u0e19
-languages.hu=\u0e2e\u0e31\u0e07\u0e01\u0e32\u0e23\u0e35
-languages.bo=\u0e17\u0e34\u0e40\u0e1a\u0e15
-languages.bn=\u0e40\u0e1a\u0e19\u0e01\u0e32\u0e23\u0e35
-languages.hr=\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e17\u0e35\u0e22
-languages.bi=\u0e1a\u0e34\u0e2a\u0e25\u0e32\u0e21\u0e32
-languages.tw=\u0e17\u0e27\u0e35
-languages.bh=\u0e1a\u0e34\u0e2e\u0e32\u0e23\u0e35
-languages.bg=\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22
-languages.tt=\u0e15\u0e32\u0e14
-languages.no=\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c
-languages.be=\u0e1a\u0e32\u0e22\u0e42\u0e25\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22
+languages.egy=\u0e2d\u0e35\u0e22\u0e34\u0e1b\u0e15\u0e4c\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.zxx=\u0e44\u0e21\u0e48\u0e21\u0e35\u0e02\u0e49\u0e2d\u0e21\u0e39\u0e25\u0e20\u0e32\u0e29\u0e32
+languages.ug=\u0e2d\u0e38\u0e22\u0e01\u0e39\u0e23\u0e4c
+languages.fan=\u0e1f\u0e2d\u0e07
+languages.ssa=\u0e20\u0e32\u0e29\u0e32\u0e19\u0e34\u0e42\u0e25-\u0e0b\u0e32\u0e2e\u0e32\u0e23\u0e31\u0e19
+languages.mga=\u0e44\u0e2d\u0e23\u0e34\u0e0a\u0e01\u0e25\u0e32\u0e07
+languages.bat=\u0e20\u0e32\u0e29\u0e32\u0e1a\u0e2d\u0e25\u0e15\u0e34\u0e01
+languages.nyo=\u0e44\u0e19\u0e42\u0e2d\u0e42\u0e23
+languages.bas=\u0e0a\u0e27\u0e32
+languages.nyn=\u0e44\u0e19\u0e2d\u0e31\u0e19\u0e42\u0e01\u0e25
+languages.nym=\u0e40\u0e19\u0e35\u0e22\u0e21\u0e40\u0e27\u0e0b\u0e35
+languages.gsw=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2a\u0e27\u0e34\u0e2a
+languages.hmn=\u0e21\u0e49\u0e07
+languages.ban=\u0e1a\u0e32\u0e2b\u0e25\u0e35
+languages.osa=\u0e42\u0e2d\u0e0b\u0e32\u0e40\u0e01
+languages.bal=\u0e1a\u0e32\u0e25\u0e39\u0e08\u0e34
+languages.ty=\u0e15\u0e32\u0e2e\u0e34\u0e15\u0e34
+languages.bai=\u0e20\u0e32\u0e29\u0e32\u0e40\u0e1a\u0e44\u0e21\u0e40\u0e25\u0e01
+languages.tw=\u0e17\u0e27\u0e34
+languages.srr=\u0e40\u0e0b\u0e2d\u0e40\u0e23\u0e2d\u0e23\u0e4c
+languages.tli=\u0e17\u0e25\u0e34\u0e07\u0e01\u0e34\u0e15
+languages.tlh=\u0e04\u0e25\u0e34\u0e07\u0e2d\u0e2d\u0e19
+languages.tt=\u0e15\u0e32\u0e15\u0e32\u0e23\u0e4c
languages.ts=\u0e0b\u0e2d\u0e07\u0e01\u0e32
-languages.hi=\u0e2e\u0e34\u0e19\u0e14\u0e35
+languages.srn=\u0e0b\u0e23\u0e32\u0e19\u0e32\u0e19\u0e15\u0e2d\u0e07\u0e42\u0e01
+languages.bad=\u0e1a\u0e31\u0e19\u0e14\u0e32
languages.tr=\u0e15\u0e38\u0e23\u0e01\u0e35
-languages.nl=\u0e2e\u0e2d\u0e25\u0e31\u0e19\u0e14\u0e32
-languages.zu=\u0e0b\u0e39\u0e25\u0e39
-languages.ba=\u0e1a\u0e32\u0e2a\u0e0a\u0e4c\u0e01\u0e35\u0e23\u0e4c
-languages.to=\u0e17\u0e2d\u0e07\u0e01\u0e49\u0e32
-languages.he=\u0e2e\u0e34\u0e1a\u0e23\u0e39
-languages.tn=\u0e40\u0e0b\u0e15\u0e2a\u0e27\u0e32\u0e19\u0e32
+languages.to=\u0e15\u0e2d\u0e07\u0e01\u0e32
+languages.tn=\u0e0b\u0e27\u0e32\u0e19\u0e32
languages.tl=\u0e15\u0e32\u0e01\u0e32\u0e25\u0e47\u0e2d\u0e01
languages.tk=\u0e40\u0e15\u0e34\u0e23\u0e4c\u0e01\u0e40\u0e21\u0e19
-languages.ha=\u0e42\u0e2e\u0e0b\u0e32
-languages.ne=\u0e40\u0e19\u0e1b\u0e32\u0e25
-languages.az=\u0e2d\u0e32\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e44\u0e1a\u0e08\u0e32\u0e19\u0e35
languages.ti=\u0e17\u0e34\u0e01\u0e23\u0e34\u0e19\u0e22\u0e32
-languages.ay=\u0e44\u0e2d\u0e21\u0e32\u0e23\u0e32
languages.th=\u0e44\u0e17\u0e22
-languages.tg=\u0e17\u0e32\u0e08\u0e34\u0e04
-languages.na=\u0e19\u0e2d\u0e23\u0e39
-languages.te=\u0e17\u0e34\u0e25\u0e39\u0e01\u0e39
-languages.zh=\u0e08\u0e35\u0e19
-languages.as=\u0e2d\u0e31\u0e2a\u0e2a\u0e31\u0e21\u0e21\u0e34\u0e2a
-languages.ar=\u0e2d\u0e32\u0e23\u0e32\u0e1a\u0e34\u0e04
+languages.kru=\u0e01\u0e39\u0e23\u0e31\u0e01\u0e2b\u0e4c
+languages.tg=\u0e17\u0e32\u0e08\u0e34\u0e01
+languages.byn=\u0e1a\u0e25\u0e34\u0e19
+languages.te=\u0e40\u0e15\u0e25\u0e39\u0e01\u0e39
+languages.kro=\u0e01\u0e23\u0e39
+languages.csb=\u0e04\u0e32\u0e0b\u0e39\u0e40\u0e1a\u0e35\u0e22\u0e19
languages.ta=\u0e17\u0e21\u0e34\u0e2c
-languages.gu=\u0e01\u0e39\u0e08\u0e32\u0e23\u0e32\u0e15\u0e34
-languages.my=\u0e1e\u0e21\u0e48\u0e32
-languages.am=\u0e2d\u0e31\u0e21\u0e2e\u0e32\u0e23\u0e34\u0e04
-languages.za=\u0e08\u0e27\u0e07
-languages.mt=\u0e21\u0e2d\u0e25\u0e15\u0e32
-languages.ms=\u0e21\u0e25\u0e32\u0e22\u0e39
-languages.gn=\u0e01\u0e31\u0e27\u0e23\u0e32\u0e19\u0e35
-languages.sw=\u0e0b\u0e27\u0e32\u0e2e\u0e34\u0e23\u0e35
-languages.mr=\u0e21\u0e32\u0e23\u0e32\u0e17\u0e35
+languages.tkl=\u0e42\u0e15\u0e40\u0e01\u0e40\u0e25\u0e32
+languages.efi=\u0e40\u0e2d\u0e1f\u0e34\u0e01
+languages.sw=\u0e2a\u0e27\u0e32\u0e2e\u0e35\u0e25\u0e35
languages.sv=\u0e2a\u0e27\u0e35\u0e40\u0e14\u0e19
-languages.gl=\u0e01\u0e30\u0e25\u0e35\u0e40\u0e0a\u0e35\u0e22
-languages.su=\u0e0b\u0e31\u0e19\u0e14\u0e32\u0e19\u0e35\u0e2a
-languages.af=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e31\u0e19
-languages.st=\u0e40\u0e0b\u0e42\u0e2a\u0e42\u0e17
-languages.mo=\u0e42\u0e21\u0e14\u0e32\u0e40\u0e27\u0e35\u0e22
-languages.ss=\u0e0b\u0e35\u0e2a\u0e27\u0e32\u0e15\u0e34
-languages.mn=\u0e21\u0e2d\u0e07\u0e42\u0e01\u0e25
+languages.su=\u0e0b\u0e38\u0e19\u0e14\u0e32
+languages.krc=\u0e04\u0e32\u0e23\u0e32\u0e40\u0e04-\u0e1a\u0e31\u0e25\u0e01\u0e32\u0e23\u0e4c
+languages.st=\u0e42\u0e0b\u0e42\u0e17\u0e43\u0e15\u0e49
+languages.ss=\u0e2a\u0e27\u0e32\u0e15\u0e34
languages.sr=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
languages.sq=\u0e41\u0e2d\u0e25\u0e40\u0e1a\u0e40\u0e19\u0e35\u0e22
-languages.ml=\u0e21\u0e32\u0e25\u0e32\u0e22\u0e32\u0e25\u0e31\u0e21
-languages.ab=\u0e41\u0e2d\u0e1a\u0e01\u0e32\u0e40\u0e0b\u0e35\u0e22
-languages.mk=\u0e41\u0e21\u0e0b\u0e35\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
-languages.aa=\u0e2d\u0e32\u0e1f\u0e32
+languages.men=\u0e40\u0e21\u0e19\u0e40\u0e14
+languages.crp=\u0e04\u0e23\u0e34\u0e42\u0e2d\u0e25\u0e2b\u0e23\u0e37\u0e2d\u0e1e\u0e34\u0e14\u0e08\u0e34\u0e19
languages.so=\u0e42\u0e0b\u0e21\u0e32\u0e25\u0e35
-languages.sn=\u0e42\u0e0b\u0e19\u0e32
-languages.gd=\u0e2a\u0e01\u0e47\u0e2d\u0e15\u0e2a\u0e4c\u0e40\u0e01\u0e25\u0e34\u0e04
-languages.mi=\u0e40\u0e21\u0e32\u0e23\u0e35
+languages.afh=\u0e2d\u0e32\u0e1f\u0e23\u0e34\u0e2e\u0e34\u0e25\u0e34
+languages.sn=\u0e42\u0e0a\u0e19\u0e32
languages.sm=\u0e0b\u0e32\u0e21\u0e31\u0e27
-languages.sl=\u0e2a\u0e42\u0e25\u0e40\u0e27\u0e40\u0e19\u0e35\u0e22
-languages.mg=\u0e21\u0e32\u0e25\u0e32\u0e01\u0e32\u0e0b\u0e35
-languages.sk=\u0e2a\u0e42\u0e25\u0e27\u0e31\u0e04
-languages.ga=\u0e44\u0e2d\u0e23\u0e34\u0e0a
-languages.yo=\u0e42\u0e22\u0e23\u0e39\u0e1a\u0e32
+languages.sl=\u0e2a\u0e42\u0e25\u0e27\u0e35\u0e40\u0e19\u0e35\u0e22
+languages.grc=\u0e01\u0e23\u0e35\u0e01\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.sk=\u0e2a\u0e42\u0e25\u0e27\u0e31\u0e01
+languages.grb=\u0e40\u0e01\u0e23\u0e42\u0e1a
languages.si=\u0e2a\u0e34\u0e07\u0e2b\u0e25
-languages.sh=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e42\u0e1a-\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e17\u0e35\u0e22\u0e19
-languages.sg=\u0e2a\u0e31\u0e19\u0e42\u0e04
-languages.yi=\u0e22\u0e35\u0e14\u0e34\u0e0a
-languages.sd=\u0e0b\u0e34\u0e19\u0e14\u0e34
-languages.fy=\u0e1f\u0e23\u0e35\u0e2a\u0e41\u0e25\u0e19\u0e14\u0e4c
+languages.sh=\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e42\u0e1a-\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
+languages.crh=\u0e15\u0e38\u0e23\u0e01\u0e35\u0e44\u0e04\u0e23\u0e40\u0e21\u0e35\u0e22
+languages.afa=\u0e20\u0e32\u0e29\u0e32\u0e41\u0e2d\u0e1f\u0e42\u0e23-\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22\u0e15\u0e34\u0e01
+languages.sg=\u0e41\u0e0b\u0e07\u0e42\u0e01
+languages.se=\u0e0b\u0e32\u0e21\u0e34\u0e40\u0e2b\u0e19\u0e37\u0e2d
+languages.sd=\u0e2a\u0e34\u0e19\u0e18\u0e38
+languages.udm=\u0e2d\u0e38\u0e14\u0e21\u0e39\u0e23\u0e4c\u0e15
+languages.sc=\u0e0b\u0e32\u0e23\u0e4c\u0e14\u0e34\u0e40\u0e19\u0e35\u0e22
languages.sa=\u0e2a\u0e31\u0e19\u0e2a\u0e01\u0e24\u0e15
-languages.fr=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
-languages.lv=\u0e41\u0e25\u0e15\u0e40\u0e27\u0e35\u0e22 (\u0e40\u0e25\u0e17\u0e17\u0e34\u0e2a\u0e0a\u0e4c)
-languages.fo=\u0e1f\u0e32\u0e42\u0e23\u0e2a
-languages.lt=\u0e25\u0e34\u0e18\u0e31\u0e27\u0e40\u0e19\u0e35\u0e22
-languages.rw=\u0e04\u0e34\u0e19\u0e22\u0e32\u0e27\u0e31\u0e19\u0e14\u0e32
+languages.rw=\u0e04\u0e34\u0e19\u0e22\u0e32\u0e23\u0e4c\u0e27\u0e31\u0e19\u0e14\u0e32
+languages.nwc=\u0e40\u0e19\u0e27\u0e32\u0e23\u0e34\u0e04\u0e25\u0e32\u0e2a\u0e2a\u0e34\u0e01
languages.ru=\u0e23\u0e31\u0e2a\u0e40\u0e0b\u0e35\u0e22
-languages.fj=\u0e1f\u0e34\u0e08\u0e34
+languages.mdr=\u0e21\u0e32\u0e19\u0e14\u0e32\u0e23\u0e4c
+languages.ro=\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22
+languages.rn=\u0e23\u0e38\u0e19\u0e14\u0e35
+languages.rm=\u0e41\u0e23\u0e42\u0e15-\u0e23\u0e2d\u0e21 /\u0e20\u0e32\u0e29\u0e32\u0e42\u0e23\u0e21\u0e31\u0e19\u0e0b\u0e4c
+languages.fr_CH=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a\u0e2a\u0e27\u0e34\u0e2a
+languages.mdf=\u0e21\u0e2d\u0e04\u0e0a\u0e32
+languages.tiv=\u0e17\u0e34\u0e1f
+languages.ady=\u0e2d\u0e30\u0e14\u0e35\u0e40\u0e01
+languages.zun=\u0e0b\u0e39\u0e19\u0e34
+languages.kpe=\u0e01\u0e40\u0e1b\u0e25\u0e40\u0e25
+languages.qu=\u0e40\u0e01\u0e0a\u0e31\u0e27
+languages.tig=\u0e44\u0e17\u0e40\u0e01\u0e23
+languages.son=\u0e0b\u0e2d\u0e07\u0e44\u0e2e
+languages.cpp=\u0e40\u0e04\u0e23\u0e42\u0e2d\u0e40\u0e25\u0e2a\u0e41\u0e25\u0e30\u0e1e\u0e34\u0e14\u0e08\u0e34\u0e19\u0e17\u0e35\u0e48\u0e21\u0e32\u0e08\u0e32\u0e01\u0e20\u0e32\u0e29\u0e32\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
+languages.rup=\u0e2d\u0e30\u0e42\u0e23\u0e21\u0e32\u0e40\u0e19\u0e35\u0e22\u0e19
+languages.sog=\u0e0b\u0e2d\u0e01\u0e40\u0e14\u0e35\u0e22
+languages.ada=\u0e2d\u0e32\u0e14\u0e32\u0e07\u0e21\u0e35
+languages.kos=\u0e01\u0e2d\u0e2a\u0e23\u0e32\u0e40\u0e2d\u0e35\u0e22\u0e19
+languages.hit=\u0e2e\u0e34\u0e15\u0e44\u0e15\u0e15\u0e4c
+languages.cpf=\u0e40\u0e04\u0e23\u0e42\u0e2d\u0e40\u0e25\u0e2a\u0e41\u0e25\u0e30\u0e1e\u0e34\u0e14\u0e08\u0e34\u0e19\u0e17\u0e35\u0e48\u0e21\u0e32\u0e08\u0e32\u0e01\u0e20\u0e32\u0e29\u0e32\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
+languages.cpe=\u0e04\u0e23\u0e34\u0e42\u0e2d\u0e25\u0e41\u0e25\u0e30\u0e1e\u0e34\u0e14\u0e08\u0e34\u0e19\u0e17\u0e35\u0e48\u0e21\u0e32\u0e08\u0e32\u0e01\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29\u0e2d\u0e37\u0e48\u0e19\u0e46
+languages.him=\u0e2b\u0e34\u0e21\u0e32\u0e08\u0e31\u0e25
+languages.kok=\u0e01\u0e2d\u0e19\u0e01\u0e32\u0e19\u0e35
+languages.hil=\u0e2e\u0e35\u0e25\u0e35\u0e44\u0e01\u0e19\u0e2d\u0e19
+languages.got=\u0e42\u0e01\u0e18\u0e34\u0e01
+languages.gor=\u0e01\u0e2d\u0e23\u0e2d\u0e19\u0e17\u0e32\u0e42\u0e25
+languages.gon=\u0e01\u0e2d\u0e19\u0e14\u0e4c
+languages.din=\u0e14\u0e34\u0e07\u0e01\u0e32
+languages.nub=\u0e20\u0e32\u0e29\u0e32\u0e19\u0e39\u0e40\u0e1a\u0e35\u0e22\u0e19
+languages.pt=\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a
+languages.ps=\u0e1e\u0e32\u0e0a\u0e15\u0e39
+languages.fur=\u0e1f\u0e23\u0e39\u0e25\u0e32\u0e07
+languages.phn=\u0e1f\u0e34\u0e19\u0e34\u0e40\u0e0a\u0e35\u0e22\u0e19
+languages.de_CH=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2a\u0e39\u0e07\u0e2a\u0e27\u0e34\u0e2a
+languages.goh=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2a\u0e39\u0e07\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.snk=\u0e42\u0e0b\u0e19\u0e34\u0e07\u0e40\u0e01
+languages.cop=\u0e04\u0e2d\u0e1b\u0e15\u0e34\u0e01
+languages.yap=\u0e41\u0e22\u0e1b
+languages.ach=\u0e2d\u0e32\u0e42\u0e04\u0e25\u0e34
+languages.yao=\u0e22\u0e32\u0e42\u0e2d
+languages.phi=\u0e20\u0e32\u0e29\u0e32\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e1b\u0e34\u0e19
+languages.pl=\u0e42\u0e1b\u0e41\u0e25\u0e19\u0e14\u0e4c
+languages.ace=\u0e2d\u0e30\u0e40\u0e08\u0e30\u0e2b\u0e4c
+languages.pi=\u0e1a\u0e32\u0e25\u0e35
+languages.pt_PT=\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a\u0e44\u0e2d\u0e1a\u0e35\u0e40\u0e23\u0e35\u0e22
+languages.pa=\u0e1b\u0e31\u0e0d\u0e08\u0e32\u0e1a
+languages.bug=\u0e1a\u0e39\u0e01\u0e34\u0e2a
+languages.iba=\u0e2d\u0e34\u0e1a\u0e32\u0e19
+languages.sms=\u0e2a\u0e01\u0e2d\u0e25\u0e15\u0e0b\u0e32\u0e21\u0e34
+languages.bua=\u0e1a\u0e39\u0e23\u0e4c\u0e22\u0e31\u0e15
+languages.mas=\u0e21\u0e32\u0e44\u0e0b
+languages.smn=\u0e2d\u0e34\u0e19\u0e32\u0e23\u0e34\u0e0b\u0e32\u0e21\u0e34
+languages.os=\u0e2d\u0e2d\u0e2a\u0e40\u0e0b\u0e17\u0e34\u0e01
+languages.map=\u0e2d\u0e2d\u0e2a\u0e42\u0e15\u0e23\u0e19\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e19
+languages.or=\u0e42\u0e2d\u0e23\u0e34\u0e22\u0e32
+languages.man=\u0e21\u0e31\u0e07\u0e14\u0e34\u0e07\u0e01\u0e32
+languages.smj=\u0e25\u0e39\u0e25\u0e0b\u0e32\u0e21\u0e34
+languages.smi=\u0e20\u0e32\u0e29\u0e32\u0e0b\u0e32\u0e21\u0e34
+languages.mak=\u0e21\u0e32\u0e01\u0e32\u0e0b\u0e32\u0e23\u0e4c
+languages.om=\u0e42\u0e2d\u0e23\u0e42\u0e23\u0e42\u0e21
+languages.mai=\u0e44\u0e21\u0e16\u0e34\u0e25\u0e35
+languages.oj=\u0e42\u0e2d\u0e08\u0e34\u0e1a\u0e27\u0e32
+languages.mag=\u0e21\u0e32\u0e01\u0e32\u0e2e\u0e34
+languages.mad=\u0e21\u0e32\u0e14\u0e39\u0e23\u0e32
+languages.sma=\u0e0b\u0e32\u0e21\u0e34\u0e43\u0e15\u0e49
+languages.oc=\u0e2d\u0e47\u0e2d\u0e01\u0e0b\u0e34\u0e15\u0e31\u0e19
+languages.nso=\u0e42\u0e0b\u0e42\u0e17\u0e40\u0e2b\u0e19\u0e37\u0e2d
+languages.btk=\u0e1a\u0e32\u0e15\u0e31\u0e01
+languages.myv=\u0e40\u0e2d\u0e34\u0e23\u0e4c\u0e2a\u0e22\u0e32
+languages.es_ES=\u0e2a\u0e40\u0e1b\u0e19\u0e44\u0e2d\u0e1a\u0e35\u0e40\u0e23\u0e35\u0e22
+languages.de_AT=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19 - \u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e35\u0e22
+languages.dgr=\u0e14\u0e2d\u0e08\u0e23\u0e34\u0e1a
+languages.ny=\u0e40\u0e19\u0e35\u0e22\u0e19\u0e08\u0e32
+languages.myn=\u0e20\u0e32\u0e29\u0e32\u0e21\u0e32\u0e22\u0e32
+languages.nv=\u0e19\u0e32\u0e27\u0e32\u0e42\u0e2e
+languages.kmb=\u0e04\u0e34\u0e21\u0e1a\u0e38\u0e19\u0e14\u0e39
+languages.nr=\u0e19\u0e40\u0e14\u0e40\u0e1a\u0e40\u0e25\u0e43\u0e15\u0e49
+languages.gmh=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2a\u0e39\u0e07\u0e01\u0e25\u0e32\u0e07
+languages.no=\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c
+languages.nn=\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c\u0e44\u0e19\u0e19\u0e2d\u0e23\u0e2a\u0e31\u0e01
+languages.nl=\u0e14\u0e31\u0e15\u0e0a\u0e4c
+languages.root=\u0e23\u0e39\u0e17
+languages.ng=\u0e14\u0e2d\u0e07\u0e01\u0e32
+languages.sla=\u0e20\u0e32\u0e29\u0e32\u0e2a\u0e25\u0e32\u0e27\u0e34\u0e01
+languages.ne=\u0e40\u0e19\u0e1b\u0e32\u0e25
+languages.nd=\u0e19\u0e40\u0e14\u0e40\u0e1a\u0e40\u0e25\u0e40\u0e2b\u0e19\u0e37\u0e2d
+languages.cmc=\u0e20\u0e32\u0e29\u0e32\u0e0a\u0e32\u0e21\u0e34\u0e01
+languages.tet=\u0e40\u0e15\u0e15\u0e38\u0e21
+languages.nb=\u0e19\u0e2d\u0e23\u0e4c\u0e40\u0e27\u0e22\u0e4c\u0e1a\u0e38\u0e4a\u0e01\u0e42\u0e21\u0e25
+languages.na=\u0e19\u0e32\u0e2d\u0e39\u0e23\u0e39
+languages.ter=\u0e40\u0e17\u0e40\u0e23\u0e42\u0e19
+languages.tem=\u0e17\u0e34\u0e21\u0e40\u0e19
+languages.my=\u0e1e\u0e21\u0e48\u0e32
+languages.lez=\u0e40\u0e25\u0e0b\u0e40\u0e01\u0e35\u0e22\u0e19
+languages.mt=\u0e21\u0e2d\u0e25\u0e15\u0e32
+languages.frs=\u0e1f\u0e23\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
+languages.peo=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e35\u0e22\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.ms=\u0e21\u0e32\u0e40\u0e25\u0e22\u0e4c
+languages.frr=\u0e1f\u0e23\u0e35\u0e40\u0e0b\u0e35\u0e22\u0e40\u0e2b\u0e19\u0e37\u0e2d
+languages.mr=\u0e21\u0e23\u0e32\u0e10\u0e35
+languages.fro=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.mo=\u0e21\u0e2d\u0e25\u0e42\u0e14\u0e27\u0e32
+languages.mn=\u0e21\u0e2d\u0e07\u0e42\u0e01\u0e40\u0e25\u0e35\u0e22
+languages.frm=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a\u0e01\u0e25\u0e32\u0e07
+languages.ml=\u0e21\u0e32\u0e25\u0e32\u0e22\u0e32\u0e25\u0e31\u0e21
+languages.jrb=\u0e22\u0e34\u0e27-\u0e2d\u0e32\u0e2b\u0e23\u0e31\u0e1a
+languages.mk=\u0e21\u0e32\u0e0b\u0e34\u0e42\u0e14\u0e40\u0e19\u0e35\u0e22
+languages.mi=\u0e40\u0e21\u0e32\u0e23\u0e35
+languages.mh=\u0e21\u0e32\u0e23\u0e4c\u0e41\u0e0a\u0e25\u0e25\u0e34\u0e2a
+languages.mg=\u0e21\u0e32\u0e25\u0e32\u0e01\u0e32\u0e0b\u0e35
+languages.nqo=\u0e40\u0e2d\u0e47\u0e19\u0e42\u0e01
+languages.mwr=\u0e21\u0e32\u0e23\u0e4c\u0e27\u0e32\u0e23\u0e35
+languages.bra=\u0e1a\u0e23\u0e32\u0e08
+languages.mwl=\u0e21\u0e34\u0e23\u0e31\u0e19\u0e14\u0e35\u0e2a
+languages.den=\u0e2a\u0e25\u0e32\u0e1f
+languages.lv=\u0e25\u0e31\u0e15\u0e40\u0e27\u0e35\u0e22
+languages.lu=\u0e25\u0e39\u0e1a\u0e32-\u0e01\u0e32\u0e15\u0e2d\u0e07\u0e01\u0e32
+languages.del=\u0e40\u0e14\u0e25\u0e32\u0e41\u0e27\u0e23\u0e4c
+languages.lt=\u0e25\u0e34\u0e17\u0e31\u0e27\u0e40\u0e19\u0e35\u0e22
languages.lo=\u0e25\u0e32\u0e27
-languages.fi=\u0e1f\u0e34\u0e19
languages.ln=\u0e25\u0e34\u0e07\u0e01\u0e32\u0e25\u0e32
-languages.ro=\u0e42\u0e23\u0e21\u0e31\u0e19
-languages.rn=\u0e04\u0e34\u0e23\u0e31\u0e19\u0e14\u0e35
-languages.rm=\u0e40\u0e23\u0e42\u0e15-\u0e42\u0e23\u0e41\u0e21\u0e19\u0e0b\u0e4c
-languages.fa=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e35\u0e22
+languages.li=\u0e25\u0e34\u0e21\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01
+languages.ewo=\u0e2d\u0e35\u0e27\u0e31\u0e19\u0e42\u0e14
+languages.lg=\u0e01\u0e31\u0e19\u0e14\u0e32
+languages.lb=\u0e25\u0e31\u0e01\u0e40\u0e0b\u0e21\u0e40\u0e1a\u0e34\u0e23\u0e4c\u0e01
languages.la=\u0e25\u0e30\u0e15\u0e34\u0e19
-languages.xh=\u0e42\u0e0b\u0e2a\u0e32
-languages.eu=\u0e41\u0e1a\u0e2a\u0e01\u0e4c
+languages.jpr=\u0e22\u0e34\u0e27-\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e35\u0e22
+languages.vot=\u0e42\u0e27\u0e17\u0e34\u0e01
+languages.sit=\u0e20\u0e32\u0e29\u0e32\u0e0b\u0e34\u0e42\u0e19-\u0e17\u0e34\u0e40\u0e1a\u0e15\u0e31\u0e19
+languages.ky=\u0e04\u0e35\u0e23\u0e4c\u0e01\u0e35\u0e0b
+languages.kw=\u0e04\u0e2d\u0e23\u0e4c\u0e19\u0e34\u0e0a
+languages.kv=\u0e42\u0e01\u0e21\u0e34
+languages.ku=\u0e40\u0e04\u0e34\u0e23\u0e4c\u0e14
+languages.sio=\u0e20\u0e32\u0e29\u0e32\u0e0b\u0e34\u0e2d\u0e27\u0e19
+languages.ks=\u0e41\u0e04\u0e0a\u0e40\u0e21\u0e35\u0e22\u0e23\u0e4c
+languages.kr=\u0e04\u0e32\u0e19\u0e39\u0e23\u0e35
+languages.awa=\u0e2d\u0e27\u0e18\u0e35
+languages.ko=\u0e40\u0e01\u0e32\u0e2b\u0e25\u0e35
+languages.kn=\u0e01\u0e31\u0e19\u0e19\u0e32\u0e14\u0e32
+languages.km=\u0e40\u0e02\u0e21\u0e23
+languages.en_GB=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29 - \u0e2a\u0e2b\u0e23\u0e32\u0e0a\u0e2d\u0e32\u0e13\u0e32\u0e08\u0e31\u0e01\u0e23
+languages.kl=\u0e01\u0e30\u0e25\u0e32\u0e25\u0e25\u0e34\u0e0b\u0e38\u0e15
+languages.kk=\u0e04\u0e32\u0e0b\u0e31\u0e04
+languages.rom=\u0e42\u0e23\u0e21\u0e32\u0e19\u0e35
+languages.kj=\u0e01\u0e27\u0e19\u0e22\u0e32\u0e21\u0e32
+languages.sid=\u0e0b\u0e35\u0e14\u0e32\u0e42\u0e21
+languages.ki=\u0e01\u0e34\u0e04\u0e39\u0e22\u0e39
+languages.kg=\u0e04\u0e2d\u0e07\u0e42\u0e01
+languages.non=\u0e19\u0e2d\u0e23\u0e4c\u0e2a\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.ka=\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e08\u0e35\u0e22
+languages.mus=\u0e04\u0e23\u0e35\u0e01
+languages.roa=\u0e20\u0e32\u0e29\u0e32\u0e42\u0e23\u0e21\u0e32\u0e19\u0e0b\u0e4c
+languages.nog=\u0e42\u0e19\u0e44\u0e01
+languages.mun=\u0e20\u0e32\u0e29\u0e32\u0e21\u0e31\u0e19\u0e14\u0e32
+languages.mul=\u0e2b\u0e25\u0e32\u0e22\u0e20\u0e32\u0e29\u0e32
+languages.jv=\u0e0a\u0e27\u0e32
+languages.gil=\u0e04\u0e34\u0e23\u0e34\u0e1a\u0e32\u0e15\u0e34
+languages.znd=\u0e0b\u0e31\u0e19\u0e40\u0e14
+languages.shn=\u0e44\u0e17\u0e43\u0e2b\u0e0d\u0e48
+languages.fon=\u0e1f\u0e2d\u0e19
+languages.xal=\u0e01\u0e32\u0e25\u0e21\u0e34\u0e01
+languages.aus=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22
+languages.kho=\u0e40\u0e04\u0e32\u0e40\u0e17\u0e19\u0e34\u0e2a
+languages.ja=\u0e0d\u0e35\u0e48\u0e1b\u0e38\u0e48\u0e19
+languages.khi=\u0e20\u0e32\u0e29\u0e32\u0e04\u0e2d\u0e22\u0e2a\u0e31\u0e19
+languages.pau=\u0e1e\u0e32\u0e25\u0e32\u0e2d\u0e27\u0e19
+languages.chy=\u0e40\u0e0a\u0e40\u0e22\u0e19
+languages.tai=\u0e20\u0e32\u0e29\u0e32\u0e44\u0e17
+languages.iu=\u0e2d\u0e34\u0e19\u0e38\u0e01\u0e15\u0e34\u0e15\u0e38\u0e15
+languages.pap=\u0e1e\u0e32\u0e40\u0e1e\u0e35\u0e22\u0e40\u0e21\u0e19\u0e42\u0e17
+languages.it=\u0e2d\u0e34\u0e15\u0e32\u0e25\u0e35
+languages.sgn=\u0e20\u0e32\u0e29\u0e32\u0e2a\u0e31\u0e0d\u0e25\u0e31\u0e01\u0e29\u0e13\u0e4c
+languages.is=\u0e44\u0e2d\u0e0b\u0e4c\u0e41\u0e25\u0e19\u0e14\u0e4c
+languages.kha=\u0e01\u0e32\u0e2a\u0e35
+languages.chr=\u0e40\u0e0a\u0e2d\u0e42\u0e23\u0e01\u0e35
+languages.pam=\u0e1b\u0e31\u0e21\u0e1b\u0e32\u0e07\u0e31\u0e19
+languages.pal=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e35\u0e22\u0e01\u0e25\u0e32\u0e07
+languages.chp=\u0e0a\u0e34\u0e40\u0e1e\u0e27\u0e22\u0e31\u0e19
+languages.io=\u0e2d\u0e34\u0e14\u0e2d
+languages.cho=\u0e0a\u0e2d\u0e01\u0e17\u0e32\u0e27
+languages.chn=\u0e0a\u0e34\u0e19\u0e38\u0e04\u0e08\u0e32\u0e23\u0e4c\u0e01\u0e2d\u0e19
+languages.chm=\u0e21\u0e32\u0e23\u0e34
+languages.tyv=\u0e15\u0e39\u0e27\u0e31\u0e19
+languages.bnt=\u0e1a\u0e31\u0e19\u0e15\u0e39
+languages.pag=\u0e1b\u0e31\u0e07\u0e01\u0e32\u0e0b\u0e35\u0e19\u0e31\u0e19
+languages.ik=\u0e2d\u0e35\u0e19\u0e39\u0e40\u0e1e\u0e35\u0e22\u0e01
+languages.chk=\u0e0a\u0e39\u0e01\u0e34\u0e2a
+languages.ii=\u0e22\u0e34\u0e40\u0e2a\u0e09\u0e27\u0e19
+languages.haw=\u0e2e\u0e32\u0e27\u0e32\u0e22
+languages.lam=\u0e41\u0e25\u0e21\u0e1a\u0e32
+languages.ig=\u0e2d\u0e34\u0e01\u0e42\u0e1a
+languages.chg=\u0e0c\u0e32\u0e06\u0e32\u0e44\u0e15\u0e22
+languages.sga=\u0e44\u0e2d\u0e23\u0e34\u0e0a\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.paa=\u0e20\u0e32\u0e29\u0e32\u0e1b\u0e32\u0e1b\u0e27\u0e19
+languages.ie=\u0e2d\u0e34\u0e19\u0e40\u0e15\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07\u0e01\u0e4c
+languages.id=\u0e2d\u0e34\u0e19\u0e42\u0e14\u0e19\u0e35\u0e40\u0e0a\u0e35\u0e22
+languages.lah=\u0e25\u0e32\u0e2e\u0e4c\u0e19\u0e14\u0e32
+languages.day=\u0e14\u0e32\u0e22\u0e31\u0e01
+languages.chb=\u0e0a\u0e34\u0e1a\u0e0a\u0e32
+languages.ia=\u0e2d\u0e34\u0e19\u0e40\u0e17\u0e2d\u0e23\u0e4c\u0e25\u0e34\u0e07\u0e01\u0e27\u0e32
+languages.lad=\u0e25\u0e32\u0e14\u0e34\u0e42\u0e19
+languages.hz=\u0e40\u0e2e\u0e40\u0e23\u0e42\u0e23
+languages.hai=\u0e44\u0e2e\u0e14\u0e32
+languages.dar=\u0e14\u0e32\u0e23\u0e4c\u0e08\u0e27\u0e32
+languages.hy=\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22
+languages.ath=\u0e20\u0e32\u0e29\u0e32\u0e41\u0e2d\u0e18\u0e32\u0e41\u0e1e\u0e2a\u0e01\u0e31\u0e19
+languages.hu=\u0e2e\u0e31\u0e07\u0e01\u0e32\u0e23\u0e35
+languages.ht=\u0e40\u0e2e\u0e15\u0e34
+languages.dak=\u0e14\u0e32\u0e42\u0e01\u0e17\u0e32
+languages.hr=\u0e42\u0e04\u0e23\u0e40\u0e2d\u0e40\u0e0a\u0e35\u0e22
+languages.ho=\u0e2e\u0e34\u0e23\u0e34\u0e42\u0e21\u0e17\u0e38
+languages.hi=\u0e2e\u0e34\u0e19\u0e14\u0e35
+languages.dyu=\u0e14\u0e34\u0e27\u0e25\u0e32
+languages.he=\u0e2e\u0e34\u0e1a\u0e23\u0e39
+languages.ast=\u0e2d\u0e31\u0e2a\u0e15\u0e39\u0e40\u0e23\u0e35\u0e22\u0e2a
+languages.kfo=\u0e42\u0e04\u0e42\u0e23
+languages.ha=\u0e40\u0e2e\u0e32\u0e0b\u0e32
+languages.wen=\u0e20\u0e32\u0e29\u0e32\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22
+languages.gv=\u0e21\u0e32\u0e19\u0e0b\u0e4c
+languages.gu=\u0e04\u0e38\u0e0a\u0e23\u0e32\u0e15
+languages.sem=\u0e20\u0e32\u0e29\u0e32\u0e40\u0e0b\u0e21\u0e34\u0e15\u0e34\u0e01
+languages.sel=\u0e40\u0e0b\u0e25\u0e01\u0e31\u0e1e
+languages.iro=\u0e20\u0e32\u0e29\u0e32\u0e44\u0e2d\u0e23\u0e32\u0e40\u0e01\u0e27\u0e35\u0e22\u0e19
+languages.gn=\u0e01\u0e27\u0e32\u0e23\u0e32\u0e19\u0e35
+languages.gl=\u0e01\u0e32\u0e25\u0e34\u0e40\u0e0b\u0e35\u0e22
+languages.en_CA=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29 - \u0e41\u0e04\u0e19\u0e32\u0e14\u0e32
+languages.arw=\u0e2d\u0e32\u0e23\u0e32\u0e27\u0e31\u0e01
+languages.gez=\u0e01\u0e35\u0e0b
+languages.art=\u0e20\u0e32\u0e29\u0e32\u0e1b\u0e23\u0e30\u0e14\u0e34\u0e29\u0e10\u0e4c
+languages.gd=\u0e40\u0e01\u0e25\u0e2d\u0e34\u0e01\u0e2a\u0e01\u0e2d\u0e15\u0e41\u0e25\u0e19\u0e14\u0e4c
+languages.ira=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e34\u0e2b\u0e23\u0e48\u0e32\u0e19
+languages.ga=\u0e44\u0e2d\u0e23\u0e34\u0e0a
+languages.arp=\u0e2d\u0e32\u0e23\u0e32\u0e1e\u0e32\u0e42\u0e2e
+languages.arn=\u0e2d\u0e32\u0e40\u0e23\u0e32\u0e01\u0e32\u0e40\u0e19\u0e35\u0e22
+languages.fy=\u0e1f\u0e23\u0e34\u0e40\u0e0b\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+languages.bla=\u0e2a\u0e34\u0e01\u0e2a\u0e34\u0e01\u0e32
+languages.gem=\u0e20\u0e32\u0e29\u0e32\u0e40\u0e08\u0e2d\u0e23\u0e4c\u0e40\u0e21\u0e19\u0e34\u0e01
+languages.ypk=\u0e20\u0e32\u0e29\u0e32\u0e22\u0e39\u0e1e\u0e34\u0e01
+languages.arc=\u0e2d\u0e23\u0e32\u0e40\u0e21\u0e2d\u0e34\u0e01
+languages.fr=\u0e1d\u0e23\u0e31\u0e48\u0e07\u0e40\u0e28\u0e2a
+languages.fo=\u0e41\u0e1f\u0e42\u0e23
+languages.cel=\u0e40\u0e0b\u0e25\u0e15\u0e34\u0e01
+languages.fj=\u0e1f\u0e34\u0e08\u0e34
+languages.fi=\u0e1f\u0e34\u0e19\u0e41\u0e25\u0e19\u0e14\u0e4c
+languages.ff=\u0e1f\u0e39\u0e25\u0e32\u0e2e\u0e4c
+languages.tvl=\u0e15\u0e39\u0e27\u0e32\u0e25\u0e39
+languages.ceb=\u0e40\u0e0b\u0e1a\u0e39
+languages.fa=\u0e40\u0e1b\u0e2d\u0e23\u0e4c\u0e40\u0e0b\u0e35\u0e22
+languages.en_AU=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29 - \u0e2d\u0e2d\u0e2a\u0e40\u0e15\u0e23\u0e40\u0e25\u0e35\u0e22
+languages.zh_Hans=\u0e08\u0e35\u0e19\u0e1b\u0e23\u0e30\u0e22\u0e38\u0e01\u0e15\u0e4c
+languages.zh_Hant=\u0e08\u0e35\u0e19\u0e14\u0e31\u0e49\u0e07\u0e40\u0e14\u0e34\u0e21
+languages.eu=\u0e1a\u0e32\u0e2a\u0e01\u0e4c
+languages.sco=\u0e2a\u0e01\u0e2d\u0e15\u0e2a\u0e4c
languages.et=\u0e40\u0e2d\u0e2a\u0e42\u0e15\u0e40\u0e19\u0e35\u0e22
-languages.ky=\u0e40\u0e04\u0e2d\u0e23\u0e4c\u0e01\u0e34\u0e0b
+languages.scn=\u0e0b\u0e34\u0e0b\u0e34\u0e25\u0e35
+languages.es=\u0e2a\u0e40\u0e1b\u0e19
+languages.eo=\u0e40\u0e2d\u0e2a\u0e40\u0e1b\u0e2d\u0e23\u0e31\u0e19\u0e42\u0e15
+languages.en=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29
+languages.el=\u0e01\u0e23\u0e35\u0e01
+languages.tut=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e31\u0e25\u0e15\u0e32\u0e2d\u0e34\u0e01
+languages.niu=\u0e44\u0e19\u0e2d\u0e35\u0e19
+languages.tup=\u0e20\u0e32\u0e29\u0e32\u0e17\u0e38\u0e1e\u0e34
+languages.ee=\u0e40\u0e2d\u0e40\u0e27
+languages.tum=\u0e17\u0e39\u0e21\u0e1a\u0e39\u0e01\u0e32
+languages.nl_BE=\u0e40\u0e1f\u0e25\u0e21\u0e34\u0e0a
+languages.es_419=\u0e2a\u0e40\u0e1b\u0e19\u0e25\u0e30\u0e15\u0e34\u0e19\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e32
+languages.mos=\u0e21\u0e2d\u0e2a\u0e2a\u0e34
+languages.dz=\u0e0b\u0e2d\u0e07\u0e04\u0e32
+languages.nic=\u0e20\u0e32\u0e29\u0e32\u0e44\u0e19\u0e40\u0e08\u0e2d\u0e23\u0e4c-\u0e01\u0e2d\u0e23\u0e4c\u0e42\u0e14\u0e1f\u0e32\u0e40\u0e19\u0e35\u0e22\u0e19
+languages.lus=\u0e25\u0e39\u0e44\u0e0a
+languages.fiu=\u0e20\u0e32\u0e29\u0e32\u0e1f\u0e34\u0e19\u0e42\u0e19-\u0e2d\u0e31\u0e01\u0e40\u0e23\u0e35\u0e22\u0e19
+languages.dv=\u0e14\u0e34\u0e40\u0e27\u0e2e\u0e34
+languages.nia=\u0e44\u0e19\u0e41\u0e2d\u0e2a
+languages.moh=\u0e42\u0e21\u0e2e\u0e2d\u0e27\u0e4c\u0e01
+languages.luo=\u0e25\u0e31\u0e27
+languages.lun=\u0e25\u0e31\u0e19\u0e14\u0e32
+languages.apa=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e32\u0e1b\u0e32\u0e40\u0e0a\u0e48
+languages.fil=\u0e1f\u0e34\u0e25\u0e34\u0e1b\u0e34\u0e42\u0e19
+languages.lui=\u0e25\u0e38\u0e22\u0e40\u0e0b\u0e42\u0e19
+languages.hup=\u0e2e\u0e39\u0e1e\u0e32
+languages.bin=\u0e1a\u0e34\u0e19\u0e35
+languages.de=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19
+languages.lua=\u0e25\u0e39\u0e1a\u0e32-\u0e25\u0e39\u0e25\u0e31\u0e27
+languages.bik=\u0e1a\u0e34\u0e42\u0e01\u0e25
+languages.was=\u0e27\u0e32\u0e42\u0e0a
+languages.und=\u0e44\u0e21\u0e48\u0e17\u0e23\u0e32\u0e1a\u0e2b\u0e23\u0e37\u0e2d\u0e44\u0e21\u0e48\u0e16\u0e39\u0e01\u0e15\u0e49\u0e2d\u0e07
+languages.war=\u0e27\u0e32\u0e44\u0e23
+languages.da=\u0e40\u0e14\u0e19\u0e21\u0e32\u0e23\u0e4c\u0e01
+languages.dum=\u0e14\u0e31\u0e15\u0e0a\u0e4c\u0e01\u0e25\u0e32\u0e07
+languages.wal=\u0e27\u0e32\u0e25\u0e32\u0e42\u0e21
+languages.mno=\u0e20\u0e32\u0e29\u0e32\u0e21\u0e32\u0e42\u0e19\u0e42\u0e1a
+languages.wak=\u0e20\u0e32\u0e29\u0e32\u0e27\u0e32\u0e01\u0e32\u0e0a\u0e32\u0e19
+languages.sat=\u0e2a\u0e31\u0e19\u0e15\u0e32\u0e25\u0e35
+languages.cy=\u0e40\u0e27\u0e25\u0e2a\u0e4c
+languages.sas=\u0e0b\u0e32\u0e0b\u0e31\u0e01
+languages.kbd=\u0e04\u0e32\u0e23\u0e4c\u0e1a\u0e32\u0e40\u0e14\u0e35\u0e22
+languages.cv=\u0e0a\u0e39\u0e27\u0e31\u0e0a
+languages.cu=\u0e40\u0e0a\u0e2d\u0e23\u0e4c\u0e0a\u0e2a\u0e25\u0e32\u0e27\u0e34\u0e01
+languages.mni=\u0e21\u0e13\u0e35\u0e1b\u0e38\u0e23\u0e35
+languages.cs=\u0e40\u0e0a\u0e47\u0e01
+languages.sam=\u0e2d\u0e23\u0e32\u0e40\u0e21\u0e2d\u0e34\u0e01\u0e0b\u0e32\u0e21\u0e32\u0e23\u0e34\u0e17\u0e31\u0e19
+languages.cr=\u0e04\u0e23\u0e35
+languages.sal=\u0e20\u0e32\u0e29\u0e32\u0e0b\u0e32\u0e25\u0e34\u0e2e\u0e32\u0e19
+languages.dua=\u0e14\u0e31\u0e27\u0e25\u0e32
+languages.co=\u0e04\u0e2d\u0e23\u0e4c\u0e0b\u0e34\u0e01\u0e32
+languages.sai=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e31\u0e19\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u0e19\u0e43\u0e15\u0e49
+languages.mnc=\u0e41\u0e21\u0e19\u0e08\u0e39
+languages.sah=\u0e22\u0e32\u0e04\u0e39\u0e15
+languages.kaw=\u0e01\u0e27\u0e34
+languages.inh=\u0e2d\u0e34\u0e19\u0e01\u0e38\u0e0a
+languages.gba=\u0e01\u0e1a\u0e32\u0e22\u0e32
+languages.sad=\u0e0b\u0e31\u0e19\u0e14\u0e32\u0e40\u0e27
+languages.ch=\u0e0a\u0e32\u0e21\u0e2d\u0e23\u0e4c\u0e42\u0e23
+languages.ine=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e34\u0e19\u0e42\u0e14-\u0e22\u0e39\u0e42\u0e23\u0e40\u0e1b\u0e35\u0e22\u0e19
+languages.bho=\u0e42\u0e20\u0e0a\u0e1b\u0e38\u0e23\u0e35
+languages.enm=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29\u0e01\u0e25\u0e32\u0e07
+languages.kar=\u0e01\u0e30\u0e40\u0e2b\u0e23\u0e35\u0e48\u0e22\u0e07
+languages.inc=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e34\u0e19\u0e14\u0e34\u0e01
+languages.ce=\u0e40\u0e0a\u0e40\u0e0a\u0e19
+languages.gay=\u0e01\u0e32\u0e42\u0e22
+languages.ca=\u0e01\u0e32\u0e15\u0e32\u0e25\u0e31\u0e19
+languages.umb=\u0e2d\u0e38\u0e21\u0e1a\u0e38\u0e19\u0e14\u0e39
+languages.syr=\u0e0b\u0e35\u0e40\u0e23\u0e35\u0e22
+languages.kam=\u0e04\u0e31\u0e21\u0e1a\u0e32
+languages.anp=\u0e2d\u0e31\u0e07\u0e04\u0e34\u0e01\u0e32
+languages.tsi=\u0e0b\u0e34\u0e21\u0e40\u0e0a\u0e35\u0e22\u0e19
+languages.ang=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.kac=\u0e01\u0e30\u0e09\u0e34\u0e48\u0e19
+languages.cau=\u0e04\u0e2d\u0e40\u0e04\u0e40\u0e0b\u0e35\u0e22\u0e19
+languages.kab=\u0e01\u0e32\u0e44\u0e1a\u0e25
+languages.kaa=\u0e01\u0e32\u0e23\u0e32-\u0e01\u0e32\u0e25\u0e1e\u0e32\u0e01
+languages.bs=\u0e1a\u0e2d\u0e2a\u0e40\u0e19\u0e35\u0e22
+languages.car=\u0e41\u0e04\u0e23\u0e34\u0e1a
+languages.br=\u0e40\u0e1a\u0e23\u0e15\u0e31\u0e19
+languages.bo=\u0e17\u0e34\u0e40\u0e1a\u0e15
+languages.bn=\u0e40\u0e1a\u0e07\u0e01\u0e32\u0e25\u0e35
+languages.bm=\u0e1a\u0e31\u0e21\u0e1a\u0e32\u0e23\u0e32
+languages.gaa=\u0e01\u0e32
+languages.cai=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e31\u0e19\u0e2d\u0e34\u0e19\u0e40\u0e14\u0e35\u0e22\u0e19\u0e01\u0e25\u0e32\u0e07
+languages.bi=\u0e1a\u0e34\u0e2a\u0e25\u0e32\u0e21\u0e32
+languages.bh=\u0e1e\u0e34\u0e2b\u0e32\u0e23
+languages.bg=\u0e1a\u0e31\u0e25\u0e41\u0e01\u0e40\u0e23\u0e35\u0e22
+languages.be=\u0e40\u0e1a\u0e25\u0e32\u0e23\u0e38\u0e2a
+languages.pt_BR=\u0e42\u0e1b\u0e23\u0e15\u0e38\u0e40\u0e01\u0e2a - \u0e1a\u0e23\u0e32\u0e0b\u0e34\u0e25
+languages.cad=\u0e04\u0e31\u0e14\u0e42\u0e14
+languages.ba=\u0e1a\u0e31\u0e0a\u0e04\u0e35\u0e23\u0e4c
+languages.zu=\u0e0b\u0e39\u0e25\u0e39
+languages.zen=\u0e40\u0e0b\u0e19\u0e32\u0e01\u0e32
+languages.pro=\u0e42\u0e1e\u0e23\u0e40\u0e27\u0e19\u0e04\u0e2d\u0e25\u0e42\u0e1a\u0e23\u0e32\u0e13
+languages.hsb=\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e1a\u0e19
+languages.az=\u0e2d\u0e32\u0e40\u0e0b\u0e2d\u0e23\u0e4c\u0e44\u0e1a\u0e08\u0e32\u0e19
+languages.ay=\u0e44\u0e2d\u0e22\u0e4c\u0e21\u0e32\u0e23\u0e32
+languages.av=\u0e2d\u0e32\u0e27\u0e32\u0e23\u0e34\u0e01
+languages.as=\u0e2d\u0e31\u0e2a\u0e2a\u0e31\u0e21
+languages.dsb=\u0e0b\u0e2d\u0e23\u0e4c\u0e40\u0e1a\u0e35\u0e22\u0e19\u0e15\u0e48\u0e33
+languages.ar=\u0e2d\u0e32\u0e2b\u0e23\u0e31\u0e1a
+languages.ilo=\u0e2d\u0e35\u0e42\u0e25\u0e01\u0e32\u0e42\u0e19
+languages.elx=\u0e2d\u0e35\u0e25\u0e32\u0e44\u0e21\u0e15\u0e4c
+languages.zh=\u0e08\u0e35\u0e19
+languages.an=\u0e2d\u0e32\u0e23\u0e32\u0e01\u0e2d\u0e19
+languages.pra=\u0e20\u0e32\u0e29\u0e32\u0e1b\u0e23\u0e32\u0e01\u0e24\u0e15
+languages.am=\u0e2d\u0e31\u0e21\u0e2e\u0e32\u0e23\u0e34\u0e01
+languages.new=\u0e40\u0e19\u0e27\u0e32\u0e23\u0e34
+languages.ak=\u0e2d\u0e32\u0e04\u0e32\u0e19
+languages.za=\u0e08\u0e49\u0e27\u0e07
+languages.en_US=\u0e2d\u0e31\u0e07\u0e01\u0e24\u0e29 - \u0e2d\u0e40\u0e21\u0e23\u0e34\u0e01\u0e31\u0e19
+languages.af=\u0e41\u0e2d\u0e1f\u0e23\u0e34\u0e01\u0e32
+languages.ae=\u0e2d\u0e40\u0e27\u0e2a\u0e15\u0e31\u0e19
+languages.alt=\u0e2d\u0e31\u0e25\u0e44\u0e15\u0e43\u0e15\u0e49
+languages.ab=\u0e41\u0e2d\u0e1a\u0e01\u0e32\u0e40\u0e0b\u0e35\u0e22
+languages.aa=\u0e2d\u0e30\u0e1f\u0e32\u0e23\u0e4c
+languages.yo=\u0e42\u0e22\u0e23\u0e39\u0e1a\u0e32
+languages.alg=\u0e20\u0e32\u0e29\u0e32\u0e2d\u0e32\u0e25\u0e07\u0e40\u0e04\u0e27\u0e35\u0e22\u0e19
+languages.ale=\u0e2d\u0e25\u0e34\u0e2d\u0e38\u0e15
+languages.mkh=\u0e20\u0e32\u0e29\u0e32\u0e21\u0e2d\u0e0d-\u0e40\u0e02\u0e21\u0e23
+languages.yi=\u0e22\u0e34\u0e14\u0e14\u0e34\u0e0a
+languages.dra=\u0e20\u0e32\u0e29\u0e32\u0e14\u0e23\u0e32\u0e27\u0e34\u0e40\u0e14\u0e35\u0e22\u0e19
+languages.ber=\u0e40\u0e1a\u0e2d\u0e40\u0e1a\u0e2d\u0e30
+languages.nds=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e15\u0e48\u0e33
+languages.bem=\u0e40\u0e1a\u0e21\u0e1a\u0e32
+languages.bej=\u0e40\u0e1a\u0e08\u0e32
+languages.tpi=\u0e17\u0e2d\u0e04\u0e1e\u0e35\u0e0b\u0e34\u0e19
+variants.REVISED=\u0e2d\u0e2d\u0e23\u0e4c\u0e42\u0e18\u0e01\u0e23\u0e32\u0e1f\u0e35\u0e1b\u0e23\u0e31\u0e1a\u0e1b\u0e23\u0e38\u0e07
+variants.AREVELA=\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e2d\u0e2d\u0e01
+variants.POSIX=\u0e04\u0e2d\u0e21\u0e1e\u0e34\u0e27\u0e40\u0e15\u0e2d\u0e23\u0e4c
+variants.POLYTON=\u0e42\u0e1e\u0e25\u0e35\u0e42\u0e17\u0e19\u0e34\u0e01
+variants.FONIPA=\u0e2a\u0e31\u0e17\u0e2d\u0e31\u0e01\u0e29\u0e23\u0e2a\u0e32\u0e01\u0e25
+variants.1996=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2d\u0e2d\u0e23\u0e4c\u0e42\u0e18\u0e01\u0e23\u0e32\u0e1f\u0e35\u0e1b\u0e35 1996
+variants.SAAHO=\u0e42\u0e0b\u0e42\u0e2b
+variants.AREVMDA=\u0e2d\u0e32\u0e23\u0e4c\u0e40\u0e21\u0e40\u0e19\u0e35\u0e22\u0e15\u0e30\u0e27\u0e31\u0e19\u0e15\u0e01
+variants.1901=\u0e40\u0e22\u0e2d\u0e23\u0e21\u0e31\u0e19\u0e2d\u0e2d\u0e23\u0e4c\u0e42\u0e18\u0e01\u0e23\u0e32\u0e1f\u0e35\u0e14\u0e31\u0e49\u0e07\u0e40\u0e14\u0e34\u0e21
+variants.ROZAJ=\u0e40\u0e23\u0e40\u0e0b\u0e35\u0e22\u0e19
+variants.NEDIS=\u0e20\u0e32\u0e29\u0e32\u0e1e\u0e37\u0e49\u0e19\u0e40\u0e21\u0e37\u0e2d\u0e07\u0e19\u0e32\u0e17\u0e34\u0e42\u0e0b\u0e40\u0e19
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti.properties
index 22dbc40..6f81b93 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti.properties
@@ -5,9 +5,10 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
@@ -17,11 +18,111 @@ currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u129
currenciesSymbol.ETB=$
currenciesSymbol.CNY=Y
currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u1303\u1295\u12e9®\u134c\u1265\u1229®\u121b\u122d\u127d®\u12a4\u1355\u1228®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235®\u1234\u1355\u1274®\u12a6\u12ad\u1270®\u1296\u126c\u121d®\u12f2\u1234\u121d®®
-months=\u1303\u1295\u12e9\u12c8\u122a®\u134c\u1265\u1229\u12c8\u122a®\u121b\u122d\u127d®\u12a4\u1355\u1228\u120d®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235\u1275®\u1234\u1355\u1274\u121d\u1260\u122d®\u12a6\u12ad\u1270\u12cd\u1260\u122d®\u1296\u126c\u121d\u1260\u122d®\u12f2\u1234\u121d\u1260\u122d®®
-shortWeekdays=®\u1230\u1295\u1260®\u1230\u1291\u12ed®\u1220\u1209\u1235®\u1228\u1261\u12d5®\u1283\u1219\u1235®\u12d3\u122d\u1262®\u1240\u12f3\u121d®
-weekdays=®\u1230\u1295\u1260\u1275®\u1230\u1291\u12ed®\u1220\u1209\u1235®\u1228\u1261\u12d5®\u1283\u1219\u1235®\u12d3\u122d\u1262®\u1240\u12f3\u121d®
-firstDayOfWeek=sat
-eras=\u12d3/\u12d3®\u12d3/\u121d®
-ampms=\u1295\u1309\u1206 \u1230\u12d3\u1270®\u12f5\u1215\u122d \u1230\u12d3\u1275®
+shortMonths=\u1303\u1295\u12e9\u00ae\u134c\u1265\u1229\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u00ae\u1234\u1355\u1274\u00ae\u12a6\u12ad\u1270\u00ae\u1296\u126c\u121d\u00ae\u12f2\u1234\u121d\u00ae\u00ae
+months=\u1303\u1295\u12e9\u12c8\u122a\u00ae\u134c\u1265\u1229\u12c8\u122a\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u120d\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u1275\u00ae\u1234\u1355\u1274\u121d\u1260\u122d\u00ae\u12a6\u12ad\u1270\u12cd\u1260\u122d\u00ae\u1296\u126c\u121d\u1260\u122d\u00ae\u12f2\u1234\u121d\u1260\u122d\u00ae\u00ae
+shortWeekdays=\u00ae\u1230\u1295\u1260\u00ae\u1230\u1291\u12ed\u00ae\u1220\u1209\u1235\u00ae\u1228\u1261\u12d5\u00ae\u1283\u1219\u1235\u00ae\u12d3\u122d\u1262\u00ae\u1240\u12f3\u121d\u00ae
+weekdays=\u00ae\u1230\u1295\u1260\u1275\u00ae\u1230\u1291\u12ed\u00ae\u1220\u1209\u1235\u00ae\u1228\u1261\u12d5\u00ae\u1283\u1219\u1235\u00ae\u12d3\u122d\u1262\u00ae\u1240\u12f3\u121d\u00ae
+eras=\u12d3/\u12d3\u00ae\u12d3/\u121d\u00ae
+ampms=\u1295\u1309\u1206 \u1230\u12d3\u1270\u00ae\u12f5\u1215\u122d \u1230\u12d3\u1275\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1363 dd MMMM \u1218\u12d3\u120d\u1272 yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+languages.es=\u1235\u1353\u1292\u123d
+languages.ku=\u12a9\u122d\u12f5\u123d
+languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
+languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
+languages.el=\u130d\u122a\u12a8\u129b
+languages.ko=\u12ae\u122a\u12eb\u129b
+languages.kn=\u12ab\u121b\u12f0\u129b
+languages.ka=\u130a\u12ee\u122d\u130a\u12eb\u129b
+languages.jv=\u1303\u126b\u1295\u129b
+languages.fil=\u1273\u130b\u120e\u1308\u129b
+languages.pt=\u1356\u122d\u1271\u130b\u120a\u129b
+languages.ps=\u1353\u123d\u1276
+languages.de=\u1300\u122d\u1218\u1295
+languages.pl=\u1356\u120a\u123d
+languages.da=\u12f4\u1292\u123d
+languages.tlh=\u12ad\u120a\u1295\u130d\u12a6\u1295\u129b
+languages.ja=\u1303\u1353\u1295\u129b
+languages.vi=\u126a\u1275\u1293\u121d\u129b
+languages.cy=\u12c8\u120d\u123d
+languages.pa=\u1351\u1295\u1303\u1262\u129b
+languages.cs=\u127c\u12ad\u129b
+languages.it=\u1323\u120a\u12eb\u1295\u129b
+languages.is=\u12a0\u12ed\u1235\u120b\u1295\u12f0\u129b
+languages.uz=\u12a1\u12dd\u1260\u12ad\u129b
+languages.or=\u12a6\u122a\u12eb
+languages.ur=\u12a1\u122d\u12f1\u129b
+languages.ca=\u12ab\u1273\u120b\u1295
+languages.id=\u12a5\u1295\u12f6\u1291\u1232\u129b
+languages.uk=\u12e9\u12ad\u1228\u1292\u129b
+languages.ia=\u12a2\u1295\u1274\u122d \u124b\u1295\u124b
+languages.oc=\u12a6\u12aa\u1273\u1295\u129b
+languages.bs=\u1266\u1235\u1292\u12eb\u1295
+languages.br=\u1265\u122c\u1276\u1295
+languages.hu=\u1200\u1295\u130b\u122a\u129b
+languages.bn=\u1260\u1295\u130b\u120a\u129b
+languages.pt_PT=\u1356\u122d\u1271\u130b\u120d\u129b (\u1293\u12ed \u1356\u122d\u1271\u130b\u120d)
+languages.hr=\u12ad\u122e\u123d\u12eb\u1295\u129b
+languages.tw=\u1275\u12ca
+languages.bh=\u1262\u1203\u122a
+languages.bg=\u1261\u120d\u130b\u122a\u129b
+languages.no=\u1296\u122d\u12cc\u1302\u12eb\u1295
+languages.be=\u1264\u120b\u122b\u123b\u129b
+languages.nn=\u1296\u122d\u12cc\u12ed\u129b (\u1293\u12ed \u129d\u1296\u122d\u1235\u12ad)
+languages.hi=\u1215\u1295\u12f0\u129b
+languages.tr=\u1271\u122d\u12a8\u129b
+languages.nl=\u12f0\u127d
+languages.zu=\u12d9\u1209\u129b
+languages.he=\u12d5\u1265\u122b\u1235\u1325
+languages.tk=\u1293\u12ed \u1271\u122d\u12aa \u1230\u1265\u12d3\u12ed (\u1271\u122d\u12ab\u12ca)
+languages.ne=\u1294\u1356\u120a\u129b
+languages.az=\u12a0\u12dc\u122d\u1263\u12ed\u1303\u1295\u129b
+languages.ti=\u1275\u130d\u122d\u129b
+languages.th=\u1273\u12ed\u129b
+languages.te=\u1270\u1209\u1309\u129b
+languages.ar=\u12d3\u1228\u1260\u129b
+languages.ta=\u1273\u121a\u120d\u129b
+languages.gu=\u1309\u1303\u122b\u1272\u129b
+languages.am=\u12a0\u121d\u1210\u1228\u129b
+languages.mt=\u121b\u120d\u1272\u1235\u129b
+languages.ms=\u121b\u120b\u12ed\u129b
+languages.gn=\u1313\u122b\u1292
+languages.sw=\u1230\u12cb\u1202\u120a\u129b
+languages.mr=\u121b\u122b\u1272\u129b
+languages.sv=\u1235\u12ca\u12f5\u1295\u129b
+languages.gl=\u130b\u1208\u126a\u129b
+languages.su=\u1231\u12f3\u1295\u129b
+languages.af=\u12a0\u134d\u122a\u1243\u1295\u1230\u129b
+languages.st=\u1230\u1234\u1276
+languages.sr=\u1230\u122d\u1262\u129b
+languages.sq=\u12a0\u120d\u1264\u1292\u129b
+languages.ml=\u121b\u120b\u12eb\u120b\u121d\u129b
+languages.mk=\u121b\u12ad\u12f6\u1292\u129b
+languages.gd=\u12a5\u1235\u12ae\u1275\u1235 \u130c\u120d\u12ad\u129b
+languages.sl=\u1235\u1241\u126a\u129b
+languages.sk=\u1235\u120e\u1268\u12ad\u129b
+languages.ga=\u12a0\u12ed\u122a\u123d
+languages.si=\u1235\u1295\u1203\u120d\u129b
+languages.sh=\u1230\u122d\u1266- \u12ad\u122e\u12ca\u1273\u1295
+languages.pt_BR=\u1356\u122d\u1271\u130b\u120d\u129b (\u1293\u12ed \u1265\u122b\u12da\u120d)
+languages.yi=\u12ea\u12f2\u123d
+languages.fy=\u134d\u122a\u1230\u129b
+languages.fr=\u1348\u1228\u1295\u1233\u12ed\u129b
+languages.lv=\u120b\u1272\u126a\u12eb\u1295
+languages.lt=\u120a\u1271\u12a0\u1292\u12e8\u1295
+languages.fo=\u134b\u122e\u129b
+languages.ru=\u122b\u123d\u129b
+languages.fi=\u134a\u1292\u123d
+languages.ro=\u122e\u121b\u1292\u12eb\u1295
+languages.fa=\u1350\u122d\u1232\u12eb\u129b
+languages.la=\u120b\u1272\u1295\u129b
+languages.xh=\u12de\u1233\u129b
+languages.eu=\u1263\u1235\u12ad\u129b
+languages.ky=\u12aa\u1229\u130b\u12da
+languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti_ER.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti_ER.properties
index 7b9882c..99411b6 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti_ER.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ti_ER.properties
@@ -5,18 +5,10 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ETB=ETB
currenciesSymbol.ERN=$
-currenciesSymbol.USD=US$
-shortMonths=\u1325\u122a®\u1208\u12ab\u1272®\u1218\u130b\u1262®\u121a\u12eb\u12dd®\u130d\u1295\u1266®\u1230\u1290®\u1213\u121d\u1208®\u1290\u1213\u1230®\u1218\u1235\u12a8®\u1325\u1245\u121d®\u1215\u12f3\u122d®\u1273\u1215\u1233®®
-months=\u1325\u122a®\u1208\u12ab\u1272\u1275®\u1218\u130b\u1262\u1275®\u121a\u12eb\u12dd\u12eb®\u130d\u1295\u1266\u1275®\u1230\u1290®\u1213\u121d\u1208®\u1290\u1213\u1230®\u1218\u1235\u12a8\u1228\u121d®\u1325\u1245\u121d\u1272®\u1215\u12f3\u122d®\u1273\u1215\u1233\u1235®®
-shortWeekdays=®®®\u1230\u1209\u1235®®\u1213\u1219\u1235®®®
-weekdays=®®®\u1230\u1209\u1235®®\u1213\u1219\u1235®®®
-shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
-longDateFormat=dd MMMM yyyy
+shortMonths=\u1325\u122a\u00ae\u1208\u12ab\u1272\u00ae\u1218\u130b\u1262\u00ae\u121a\u12eb\u12dd\u00ae\u130d\u1295\u1266\u00ae\u1230\u1290\u00ae\u1213\u121d\u1208\u00ae\u1290\u1213\u1230\u00ae\u1218\u1235\u12a8\u00ae\u1325\u1245\u121d\u00ae\u1215\u12f3\u122d\u00ae\u1273\u1215\u1233\u00ae\u00ae
+months=\u1325\u122a\u00ae\u1208\u12ab\u1272\u1275\u00ae\u1218\u130b\u1262\u1275\u00ae\u121a\u12eb\u12dd\u12eb\u00ae\u130d\u1295\u1266\u1275\u00ae\u1230\u1290\u00ae\u1213\u121d\u1208\u00ae\u1290\u1213\u1230\u00ae\u1218\u1235\u12a8\u1228\u121d\u00ae\u1325\u1245\u121d\u1272\u00ae\u1215\u12f3\u122d\u00ae\u1273\u1215\u1233\u1235\u00ae\u00ae
+shortWeekdays=\u00ae\u00ae\u00ae\u1230\u1209\u1235\u00ae\u00ae\u1213\u1219\u1235\u00ae\u00ae\u00ae
+weekdays=\u00ae\u00ae\u00ae\u1230\u1209\u1235\u00ae\u00ae\u1213\u1219\u1235\u00ae\u00ae\u00ae
fullDateFormat=EEEE\u1361 dd MMMM \u1218\u12d3\u120d\u1272 yyyy G
-shortTimeFormat=h:mm a
-mediumTimeFormat=h:mm:ss a
-longTimeFormat=h:mm:ss a
-fullTimeFormat=h:mm:ss a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tig.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tig.properties
index 12e05b3..6c85f6b 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tig.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tig.properties
@@ -5,41 +5,46 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
currenciesDisplayName.EUR=\u12a0\u12cd\u122e
currenciesDisplayName.ETB=\u12e8\u12a2\u1275\u12ee\u1335\u12eb \u1265\u122d
currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u1295\u12f5 \u1235\u1270\u122d\u120a\u1295\u130d
-currenciesSymbol.ETB=$
currenciesSymbol.CNY=Y
currenciesSymbol.ERN=$
-currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u1303\u1295\u12e9®\u134c\u1265\u1229®\u121b\u122d\u127d®\u12a4\u1355\u1228®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235®\u1234\u1355\u1274®\u12a6\u12ad\u1270®\u1296\u126c\u121d®\u12f2\u1234\u121d®®
-months=\u1303\u1295\u12e9\u12c8\u122a®\u134c\u1265\u1229\u12c8\u122a®\u121b\u122d\u127d®\u12a4\u1355\u1228\u120d®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235\u1275®\u1234\u1355\u1274\u121d\u1260\u122d®\u12a6\u12ad\u1270\u12cd\u1260\u122d®\u1296\u126c\u121d\u1260\u122d®\u12f2\u1234\u121d\u1260\u122d®®
-shortWeekdays=®\u1230/\u12d3®\u1230\u1296®\u1273\u120b\u1238®\u12a3\u1228\u122d®\u12a8\u121a\u123d®\u1305\u121d\u12d3®\u1230/\u1295®
-weekdays=®\u1230\u1295\u1260\u1275 \u12d3\u1263\u12ed®\u1230\u1296®\u1273\u120b\u1238\u1296®\u12a3\u1228\u122d\u1263\u12d3®\u12a8\u121a\u123d®\u1305\u121d\u12d3\u1275®\u1230\u1295\u1260\u1275 \u1295\u12a2\u123d®
-firstDayOfWeek=sat
-eras=\u12d3/\u12d3®\u12d3/\u121d®
-ampms=\u1240\u12f0\u121d \u1230\u122d\u121d\u12d5\u120d®\u1213\u1246 \u1235\u122d\u121d\u12d5\u120d®
+shortMonths=\u1303\u1295\u12e9\u00ae\u134c\u1265\u1229\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u00ae\u1234\u1355\u1274\u00ae\u12a6\u12ad\u1270\u00ae\u1296\u126c\u121d\u00ae\u12f2\u1234\u121d\u00ae\u00ae
+months=\u1303\u1295\u12e9\u12c8\u122a\u00ae\u134c\u1265\u1229\u12c8\u122a\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u120d\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u1275\u00ae\u1234\u1355\u1274\u121d\u1260\u122d\u00ae\u12a6\u12ad\u1270\u12cd\u1260\u122d\u00ae\u1296\u126c\u121d\u1260\u122d\u00ae\u12f2\u1234\u121d\u1260\u122d\u00ae\u00ae
+shortWeekdays=\u00ae\u1230/\u12d3\u00ae\u1230\u1296\u00ae\u1273\u120b\u1238\u00ae\u12a3\u1228\u122d\u00ae\u12a8\u121a\u123d\u00ae\u1305\u121d\u12d3\u00ae\u1230/\u1295\u00ae
+weekdays=\u00ae\u1230\u1295\u1260\u1275 \u12d3\u1263\u12ed\u00ae\u1230\u1296\u00ae\u1273\u120b\u1238\u1296\u00ae\u12a3\u1228\u122d\u1263\u12d3\u00ae\u12a8\u121a\u123d\u00ae\u1305\u121d\u12d3\u1275\u00ae\u1230\u1295\u1260\u1275 \u1295\u12a2\u123d\u00ae
+eras=\u12d3/\u12d3\u00ae\u12d3/\u121d\u00ae
+ampms=\u1240\u12f0\u121d \u1230\u122d\u121d\u12d5\u120d\u00ae\u1213\u1246 \u1235\u122d\u121d\u12d5\u120d\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1361 dd MMMM \u12ee\u121d yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.AU=\u12a0\u12cd\u1235\u1275\u122c\u120a\u12eb
territories.TD=\u127b\u12f5
-territories.AT=\u12a6\u1235\u1275\u122a\u12eb
territories.GY=\u1309\u12eb\u1293
-territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
+territories.AT=\u12a6\u1235\u1275\u122a\u12eb
territories.GW=\u1262\u1233\u12ce
+territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
territories.MY=\u121b\u120c\u12e2\u12eb
territories.MX=\u121c\u12ad\u1232\u12ae
territories.AN=\u1294\u12d8\u122d\u120b\u1295\u12f5\u1235 \u12a0\u1295\u1272\u120d\u1235
-territories.AM=\u12a0\u122d\u121c\u1292\u12eb
territories.GR=\u130d\u122a\u12ad
+territories.AM=\u12a0\u122d\u121c\u1292\u12eb
territories.ZA=\u12f0\u1261\u1265 \u12a0\u134d\u122a\u12ab
-territories.AL=\u12a0\u120d\u1263\u1292\u12eb
territories.GQ=\u12a2\u12b3\u1276\u122a\u12eb\u120d \u130a\u1292
+territories.AL=\u12a0\u120d\u1263\u1292\u12eb
territories.MU=\u121b\u1229\u1238\u1235
territories.SY=\u1232\u122a\u12eb
territories.MT=\u121b\u120d\u1273
@@ -85,13 +90,13 @@ territories.KM=\u12ae\u121e\u122e\u1235
territories.EH=\u121d\u12d5\u122b\u1263\u12ca \u1233\u1205\u122b
territories.EG=\u130d\u1265\u133d
territories.EE=\u12a4\u1235\u1276\u1292\u12eb
-territories.EC=\u12a2\u12b3\u12f6\u122d
territories.KH=\u12ab\u121d\u1266\u12f2\u12eb
+territories.EC=\u12a2\u12b3\u12f6\u122d
territories.DZ=\u12a0\u120d\u1304\u122a\u12eb
territories.DO=\u12f6\u121a\u1292\u12ad \u122a\u1351\u1265\u120a\u12ad
territories.DM=\u12f6\u121a\u1292\u12ab
-territories.DK=\u12f4\u1295\u121b\u122d\u12ad
territories.JP=\u1303\u1353\u1295
+territories.DK=\u12f4\u1295\u121b\u122d\u12ad
territories.JO=\u1306\u122d\u12f3\u1295
territories.PR=\u1356\u122d\u1273 \u122a\u12ae
territories.JM=\u1303\u121b\u12ed\u12ab
@@ -107,13 +112,13 @@ territories.VG=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u12f5\u1295\u130d\u120d \u1
territories.CV=\u12ac\u1355 \u126c\u122d\u12f4
territories.VE=\u126c\u1295\u12d9\u12cc\u120b
territories.CS=\u1230\u122d\u1262\u12eb
-territories.CO=\u12ae\u120e\u121d\u1262\u12eb
territories.IT=\u1323\u120a\u12eb\u1295
-territories.CN=\u127b\u12ed\u1293
+territories.CO=\u12ae\u120e\u121d\u1262\u12eb
territories.IS=\u12a0\u12ed\u1235\u120b\u1295\u12f5
+territories.CN=\u127b\u12ed\u1293
territories.CM=\u12ab\u121c\u1229\u1295
-territories.CL=\u127a\u120a
territories.IQ=\u12a2\u122b\u1245
+territories.CL=\u127a\u120a
territories.UZ=\u12e9\u12dd\u1260\u12aa\u1235\u1273\u1295
territories.IN=\u1205\u1295\u12f5
territories.CH=\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5
@@ -130,10 +135,10 @@ territories.BT=\u1261\u1205\u1273\u1295
territories.BR=\u1265\u122b\u12da\u120d
territories.NZ=\u1292\u12cd \u12da\u120b\u1295\u12f5
territories.HU=\u1200\u1295\u130b\u122a
-territories.BO=\u1266\u120a\u126a\u12eb
territories.HT=\u1200\u12ed\u1272
-territories.BM=\u1264\u122d\u1219\u12f3
+territories.BO=\u1266\u120a\u126a\u12eb
territories.HR=\u12ad\u122e\u12a4\u123d\u12eb
+territories.BM=\u1264\u122d\u1219\u12f3
territories.TZ=\u1273\u1295\u12db\u1292\u12eb
territories.BH=\u1263\u1205\u122c\u1295
territories.BG=\u1261\u120d\u130c\u122a\u12eb
@@ -159,8 +164,8 @@ territories.NA=\u1293\u121a\u1262\u12eb
languages.es=\u1235\u1353\u1292\u123d
languages.ku=\u12a9\u122d\u12f5\u123d\u129b
languages.eo=\u12a4\u1235\u1350\u122b\u1295\u1276
-languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
languages.ks=\u12ab\u123d\u121a\u122d\u129b
+languages.en=\u12a5\u1295\u130d\u120a\u12dd\u129b
languages.el=\u130d\u122a\u12ad\u129b
languages.qu=\u12b5\u127f\u129b
languages.ko=\u12ae\u122a\u12eb\u129b
@@ -184,8 +189,8 @@ languages.cy=\u12c8\u120d\u123d
languages.pa=\u1353\u1295\u1303\u1262\u129b
languages.cs=\u127c\u12ad\u129b
languages.iu=\u12a5\u1291\u12ad\u1272\u1271\u1275\u129b
-languages.co=\u12ae\u122d\u1232\u12ab\u129b
languages.it=\u1323\u120a\u12eb\u1295\u129b
+languages.co=\u12ae\u122d\u1232\u12ab\u129b
languages.is=\u12a0\u12ed\u1235\u120b\u1295\u12f5\u129b
languages.uz=\u12a1\u12dd\u1260\u12ad\u129b
languages.or=\u12a6\u122a\u12eb\u129b
@@ -242,8 +247,8 @@ languages.am=\u12a0\u121d\u1210\u1228\u129b
languages.za=\u12e1\u12cb\u1295\u130d\u129b
languages.mt=\u121b\u120d\u1272\u1235\u129b
languages.ms=\u121b\u120b\u12ed\u129b
-languages.gn=\u1313\u122b\u1292\u129b
languages.byn=\u1265\u120a\u1295
+languages.gn=\u1313\u122b\u1292\u129b
languages.sw=\u1235\u12cb\u1202\u120a\u129b
languages.mr=\u121b\u122b\u12da\u129b
languages.sv=\u1235\u12ca\u12f5\u1295\u129b
@@ -281,14 +286,14 @@ languages.sid=\u1232\u12f3\u121d\u129b
languages.sa=\u1233\u1295\u1235\u12ad\u122a\u1275\u129b
languages.fr=\u1348\u1228\u1295\u1233\u12ed\u129b
languages.lv=\u120b\u1275\u126a\u12eb\u1295
-languages.fo=\u134b\u122e\u129b
languages.lt=\u120a\u1271\u12a0\u1292\u12eb\u1295
+languages.fo=\u134b\u122e\u129b
languages.rw=\u12aa\u1295\u12eb\u122d\u12cb\u1295\u12f5\u129b
languages.ru=\u122b\u123d\u129b
-languages.fj=\u134a\u1302\u129b
languages.lo=\u120b\u12cd\u1235\u129b
-languages.fi=\u134a\u1292\u123d
+languages.fj=\u134a\u1302\u129b
languages.ln=\u120a\u1295\u130b\u120b\u129b
+languages.fi=\u134a\u1292\u123d
languages.ro=\u122e\u121b\u1292\u12eb\u1295
languages.rn=\u1229\u1295\u12f2\u129b
languages.rm=\u122e\u121b\u1295\u1235
@@ -296,5 +301,5 @@ languages.fa=\u1350\u122d\u1232\u12eb\u129b
languages.la=\u120b\u1272\u1295\u129b
languages.xh=\u12de\u1233\u129b
languages.eu=\u1263\u1235\u12ad\u129b
-languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
languages.ky=\u12aa\u122d\u130a\u12dd\u129b
+languages.et=\u12a4\u1235\u1276\u1292\u12a0\u1295
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tn.properties
new file mode 100644
index 0000000..0d8170f
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tn.properties
@@ -0,0 +1,106 @@
+# LocaleInformation_tn.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Fer\u00aeTlh\u00aeMop\u00aeMor\u00aeMot\u00aeSee\u00aePhu\u00aePha\u00aeLwe\u00aeDip\u00aeNgw\u00aeSed\u00ae\u00ae
+months=Ferikgong\u00aeTlhakole\u00aeMopitlo\u00aeMoranang\u00aeMotsheganang\u00aeSeetebosigo\u00aePhukwi\u00aePhatwe\u00aeLwetse\u00aeDiphalane\u00aeNgwanatsele\u00aeSedimonthole\u00ae\u00ae
+shortWeekdays=\u00aeTsh\u00aeMos\u00aeBed\u00aeRar\u00aeNe\u00aeTla\u00aeMat\u00ae
+weekdays=\u00aeTshipi\u00aeMosopulogo\u00aeLabobedi\u00aeLaboraro\u00aeLabone\u00aeLabotlhano\u00aeMatlhatso\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.es=Spanish
+languages.eo=Esperanto
+languages.en=Sekgoa
+languages.el=SeGerika
+languages.ko=Se Korea
+languages.kn=Kannada
+languages.ka=Mo/SeJojia
+languages.jv=Javanese
+languages.fil=Tagalog
+languages.pt=Se Potoketsi
+languages.de=German
+languages.pl=Se Poland
+languages.da=Danish
+languages.tlh=Klingon
+languages.ja=Se Japan
+languages.vi=Vietnamese
+languages.cy=Welsh
+languages.pa=Punjabi
+languages.cs=Se Czeck
+languages.it=Se Italiano
+languages.is=Icelandic
+languages.uz=Uzbek
+languages.ur=Urdu
+languages.ca=Catalan
+languages.id=Indonesian
+languages.uk=Ukrainian
+languages.ia=Interlingua
+languages.oc=Occitan
+languages.bs=SeBosnia
+languages.hu=Hungarian
+languages.bn=Bengali
+languages.hr=Croatian
+languages.bh=Bihari
+languages.bg=Bulgarian
+languages.no=Puo ya kwa Norway
+languages.be=Belarusian
+languages.hi=Hindi
+languages.tr=Turkish
+languages.nl=Se Dutch
+languages.zu=IsiZulu
+languages.he=Se heberu
+languages.tn=Setswana
+languages.ne=Nepali
+languages.az=Azerbaijani
+languages.ti=Tigrinya
+languages.th=Thai
+languages.te=Telugu
+languages.ar=Arabic
+languages.ta=Tamil
+languages.gu=Gujarati
+languages.am=Amhariki
+languages.mt=Maltese
+languages.ms=Malay
+languages.sw=Swahili
+languages.mr=Marathi
+languages.sv=Swedish
+languages.gl=Galician
+languages.su=Mo/SeSundane
+languages.af=Seburu
+languages.sr=Serbian
+languages.sq=Albanian
+languages.ml=Malayalam
+languages.mk=Macedonian
+languages.gd=Scots Gaelic
+languages.sl=Slovenian
+languages.sk=Slovak
+languages.ga=Irish
+languages.fy=Frisian
+languages.fr=Se Fora
+languages.lv=Latvian
+languages.lt=Lithuanian
+languages.fo=Faroese
+languages.ru=Russian
+languages.fi=Se-Finland
+languages.ro=Se Roma
+languages.fa=Mo/SePerishia
+languages.la=Latin
+languages.xh=IsiXhosa
+languages.eu=Basque
+languages.et=Estonian
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_to.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_to.properties
new file mode 100644
index 0000000..e36e83a
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_to.properties
@@ -0,0 +1,212 @@
+# LocaleInformation_to.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+shortMonths=S\u0101n\u00aeF\u0113p\u00aeMa\u02bba\u00ae\u02bbEpe\u00aeM\u0113\u00aeSun\u00aeSiu\u00ae\u02bbAok\u00aeS\u0113p\u00ae\u02bbOka\u00aeN\u014dv\u00aeTis\u00ae\u00ae
+months=S\u0101nuali\u00aeF\u0113pueli\u00aeMa\u02bbasi\u00ae\u02bbEpeleli\u00aeM\u0113\u00aeSune\u00aeSiulai\u00ae\u02bbAokosi\u00aeS\u0113pitema\u00ae\u02bbOkatopa\u00aeN\u014dvema\u00aeTisema\u00ae\u00ae
+shortWeekdays=\u00aeS\u0101p\u00aeM\u014dn\u00aeTus\u00aePul\u00aeTu\u02bba\u00aeFal\u00aeTok\u00ae
+weekdays=\u00aeS\u0101pate\u00aeM\u014dnite\u00aeTusite\u00aePulelulu\u00aeTu\u02bbapulelulu\u00aeFalaite\u00aeTokonaki\u00ae
+eras=KM\u00aeTS\u00ae
+ampms=HH\u00aeEA\u00ae
+shortDateFormat=dd-MM-yyyy
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE d MMMM yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Fiji\u00aehoua fakafisi\u00ae\u00aehoua fakafisi fakamaama\u00ae\u00ae\u00a9Samoa\u00aehoua fakaha\u02bbamoa\u00ae\u00ae\u00ae\u00ae\u00a9Niue\u00aehoua fakaniu\u0113\u00ae\u00ae\u00ae\u00ae\u00a9Tuvalu\u00aehoua fakat\u016bvalu\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aehoua fakanu\u02bbusila fakas\u012bpinga\u00ae\u00aehoua fakanu\u02bbusila fakamaama\u00ae\u00ae\u00a9Tahiti\u00aehoua fakatahisi\u00ae\u00ae\u00ae\u00ae\u00a9Tonga\u00aehoua fakatonga\u00ae\u00aehoua fakatonga lotoh\u0113\u00ae\u00ae\u00a9Wallis\u00aehoua faka\u02bbuvea mo futuna\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aehoua fakahaua\u02bbi\u00ae\u00ae\u00ae\u00ae\u00a9Tokelau\u00aehoua fakatokelau\u00ae\u00ae\u00ae\u00ae\u00a9
+territories.AU=\u02bbAositel\u0113lia
+territories.GY=Kuiana
+territories.AS=Ha\u02bbamoa faka\u02bbamelika
+territories.AQ=\u02bbAnet\u0101tika
+territories.GU=Kuami
+territories.MX=Mekesik\u014d
+territories.GS=\u02bbOtumotu Siosia-tonga mo Saniuisi-tonga
+territories.MW=Malaui
+territories.GR=Kalisi
+territories.ZA=\u02bbAfelika tonga
+territories.MU=Maulitiusi
+territories.MT=Malita
+territories.MS=Mo\u02bbungaselati
+territories.AI=Anikuila
+territories.GM=Kamipia
+territories.AG=Anitikua mo Palaputa
+territories.029=Kalipea
+territories.MP=\u02bbOtumotu Maliana tokelau
+territories.GI=Sipal\u0101lit\u0101
+territories.GH=Kana
+territories.GG=Kuenis\u012b
+territories.419=\u02bbAmelika fakalatina mo Kalipea
+territories.GD=Kelenat\u0101
+territories.021=\u02bbAmelika tonga ange
+territories.MH=\u02bbOtumotu M\u0101solo
+territories.GB=Pilit\u0101nia
+territories.SG=Singapula
+territories.SE=Su\u0113teni
+territories.SC=\u02bbOtumotu Seiseli
+territories.SB=\u02bbOtumotu Solomone
+territories.FR=Falanis\u0113
+territories.LS=Lesoto
+territories.RW=Luanit\u0101
+territories.LR=Laipelia
+territories.FM=Mikolonisia
+territories.019=Ongo \u02bbAmelika
+territories.RU=L\u016bsia
+territories.018=\u02bbAfelika fakatonga
+territories.FJ=Fisi
+territories.017=\u02bbAfelika lotoloto
+territories.FI=Finilani
+territories.015=\u02bbAfelika tokelau
+territories.014=\u02bbAfelika hahake
+territories.LK=S\u012bloni
+territories.172=Komoniueli
+territories.013=\u02bbAmelika lotoloto
+territories.011=\u02bbAfelika hihifo
+territories.ES=Sepeni
+territories.KR=K\u014dlea tonga
+territories.009=\u02bbOseania
+territories.QU=\u02bbEulope fakataha
+territories.KP=K\u014dloa tokelau
+territories.005=\u02bbAmelika tonga
+territories.EG=\u02bbIsipite
+territories.003=\u02bbAmelika tokelau
+territories.002=\u02bbAfelika
+territories.WS=Ha\u02bbamoa
+territories.KI=Kilipasi
+territories.001=M\u0101mani
+territories.KE=Kenia
+territories.062=\u02bb\u0112sia tongalotoloto
+territories.061=Polinisia
+territories.WF=\u02bbUvea mo Futuna
+territories.PW=Palau
+territories.DM=Tominika
+territories.JP=Siapani
+territories.PT=Potukali
+territories.155=\u02bbEulope hihifo
+territories.154=\u02bbEulope tokelau
+territories.VU=Vanuatu
+territories.DE=Siamane
+territories.151=\u02bbEulope hahake
+territories.057=Potu fonua Mikolonisia
+territories.PN=Pitikeni
+territories.150=\u02bbEulope
+territories.054=Melanisia
+territories.PK=Pakisitani
+territories.053=\u02bbAositel\u0113lia mo Nu\u02bbusila
+territories.JE=Selus\u012b
+territories.PG=Papuaniukini
+territories.PF=Polinisia fakafalanis\u0113
+territories.VI=\u02bbOtumotu Vilikini faka\u02bbamelika
+territories.CX=Motu Kilisimasi
+territories.VG=\u02bbOtumotu Vilikini fakapilit\u0101nia
+territories.PA=Panam\u0101
+territories.VA=Vatikani
+territories.IT=\u02bb\u012atali
+territories.CN=Siaina
+territories.CK=\u02bbOtumotu Kuki
+territories.IO=Potu fonua moana \u02bbInitia fakapilit\u0101nia
+territories.IN=\u02bbInitia
+territories.145=\u02bb\u0112sia hihifo
+territories.IM=Motu Mani
+territories.CH=Suisilani
+territories.IL=\u02bbIsileli
+territories.143=\u02bb\u0112sia lotoloto
+territories.142=\u02bb\u0112sia
+territories.US=Pule\u02bbanga fakataha \u02bbAmelika
+territories.CA=K\u0101nata
+territories.IE=\u02bbAealani
+territories.UM=\u02bbOtumotu si\u02bbi \u02bbo \u02bbAmelika
+territories.BZ=Pelise
+territories.BW=Potisiuana
+territories.BV=Motu Puveti
+territories.BS=Pahama
+territories.BR=Pal\u0101sili
+territories.NZ=Nu\u02bbusila
+territories.NU=Niu\u0113
+territories.HN=Honitulasi
+territories.NR=Naulu
+territories.HM=\u02bbOtumotu Heati mo Makitonali
+territories.TV=T\u016bvalu
+territories.039=\u02bbEulope tonga
+territories.ZZ=Potu fonua ta\u02bbe\u02bbiloa pe hala
+territories.HK=Hongi Kongi
+territories.TT=Tilinitati mo Topako
+territories.NO=Noau\u0113
+territories.BE=Pelesiume
+territories.ZW=Simipapue
+territories.TR=Toake
+territories.035=\u02bb\u0112sia tongahahake
+territories.NL=Holani
+territories.034=\u02bb\u0112sia tonga
+territories.TO=Tonga
+territories.030=\u02bb\u0112sia hahake
+territories.NG=Naisilia
+territories.TK=Tokelau
+territories.NF=Motu N\u014dfoliki
+territories.NC=Niu Kaletonia
+territories.TF=Potu fonua tonga fakafalanis\u0113
+territories.NA=Namipia
+languages.haw=lea fakahauai\u02bbi
+languages.na=lea fakanaulu
+languages.zh=lea fakasiaina
+languages.ar=lea faka\u02bbalepea
+languages.my=lea fakapema
+languages.sco=lea fakasikotilani
+languages.ms=lea fakamalei
+languages.sv=lea fakasueteni
+languages.pt=lea fakapotukali
+languages.de=lea fakasiamane
+languages.sm=lea fakaha\u02bbamoa
+languages.mi=lea fakamauli
+languages.mh=lea fakam\u0101solo
+languages.art=lea fa\u02bbu p\u0113 kehe
+languages.ga=lea faka\u02bbaealani
+languages.ja=lea fakasiapani
+languages.zxx=\u02bbikai ha lea
+languages.und=lea ta\u02bbe\u02bbiloa
+languages.tkl=lea fakatokelau
+languages.it=lea faka\u02bb\u012btali
+languages.fr=lea fakafalanis\u0113
+languages.ru=lea fakalusia
+languages.pt_BR=lea fakapotukali-pal\u0101sili
+languages.fj=lea fakafisi
+languages.fi=lea fakafinilani
+languages.gil=lea fakakilipasi
+languages.fa=lea fakap\u0113sia
+languages.la=lea fakalatina
+languages.niu=lea fakaniu\u0113
+languages.zh_Hans=lea fakasiaina fakangofua
+languages.zh_Hant=lea fakasiaina tukufakaholo
+languages.grc=lea fakakalisimu\u02bba
+languages.es=lea fakasepeni
+languages.ty=lea fakatahisi
+languages.en=lea fakapilit\u0101nia
+languages.el=lea fakakalisi
+languages.mis=lea kehekehe
+languages.ko=lea fakak\u014dlea
+languages.sgn=lea faka\u02bbilonga
+languages.tvl=lea fakat\u016bvalu
+languages.no=lea fakanoau\u0113
+languages.tr=lea fakatoake
+languages.rar=lea fakalalotonga
+languages.nl=lea fakaholani
+languages.rap=lea fakalapanui
+languages.to=lea fakatonga
+languages.he=lea fakahepel\u016b
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tr.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tr.properties
index a13d86e..09c2069 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tr.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tr.properties
@@ -5,142 +5,168 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+digit=#
+percentFormat=%\u00a0#,##0
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
currenciesDisplayName.YDD=Yemen Dinar\u0131
-currenciesDisplayName.TWD=Yeni Tayvan Dolar\u0131
currenciesDisplayName.KES=Kenya \u015eilini
-currenciesDisplayName.BYB=Yeni Beyaz Rusya Rublesi (1994-1999)
+currenciesDisplayName.TWD=Yeni Tayvan Dolar\u0131
currenciesDisplayName.LKR=Sri Lanka Rupisi
-currenciesDisplayName.RWF=Ruanda Frang\u0131
+currenciesDisplayName.BYB=Yeni Beyaz Rusya Rublesi (1994-1999)
currenciesDisplayName.TJS=Tacikistan Somonisi
-currenciesDisplayName.SDP=Sudan Liras\u0131
-currenciesDisplayName.TJR=Tacikistan Rublesi
+currenciesDisplayName.RWF=Ruanda Frang\u0131
currenciesDisplayName.ERN=Eritre Nakfas\u0131
-currenciesDisplayName.AFN=Afganistan Afganisi
+currenciesDisplayName.TJR=Tacikistan Rublesi
+currenciesDisplayName.SDP=Eski Sudan Liras\u0131
currenciesDisplayName.GRD=Yunan Drahmisi
+currenciesDisplayName.AFN=Afganistan Afganisi
currenciesDisplayName.IEP=\u0130rlanda Liras\u0131
currenciesDisplayName.ARS=Arjantin Pezosu
-currenciesDisplayName.SDD=Sudan Dinar\u0131
+currenciesDisplayName.SDG=Sudan Liras\u0131
currenciesDisplayName.ARP=Arjantin Pezosu (1983-1985)
+currenciesDisplayName.SDD=Sudan Dinar\u0131
currenciesDisplayName.GEL=G\u00fcrcistan Larisi
-currenciesDisplayName.AFA=Afganistan Afganisi (1927-2002)
currenciesDisplayName.GEK=G\u00fcrcistan Kupon Larisi
+currenciesDisplayName.AFA=Afganistan Afganisi (1927-2002)
currenciesDisplayName.CRC=Kosta Rika Kolonu
currenciesDisplayName.FKP=Falkland Adalar\u0131 Liras\u0131
currenciesDisplayName.EEK=Estonya Krunu
-currenciesDisplayName.HKD=Hong Kong Dolar\u0131
currenciesDisplayName.MDL=Moldova Leyi
-currenciesDisplayName.ARA=Arjantin Australi
+currenciesDisplayName.HKD=Hong Kong Dolar\u0131
currenciesDisplayName.IQD=Irak Dinar\u0131
+currenciesDisplayName.ARA=Arjantin Australi
currenciesDisplayName.SCR=Sey\u015feller Rupisi
currenciesDisplayName.VUV=Vanuatu Vatusu
-currenciesDisplayName.DKK=Danimarka Kronu
currenciesDisplayName.KPW=Kuzey Kore Wonu
-currenciesDisplayName.GQE=Ekvator Ginesi Ekuelesi
+currenciesDisplayName.DKK=Danimarka Kronu
currenciesDisplayName.IDR=Endonezya Rupiah\u0131
-currenciesDisplayName.LVR=Letonya Rublesi
+currenciesDisplayName.GQE=Ekvator Ginesi Ekuelesi
currenciesDisplayName.SOS=Somali \u015eilini
+currenciesDisplayName.LVR=Letonya Rublesi
+currenciesDisplayName.EQE=Ekuele
currenciesDisplayName.AED=Birle\u015fik Arap Emirlikleri Dirhemi
-currenciesDisplayName.BWP=Botsvana Pulas\u0131
currenciesDisplayName.LVL=Letonya Lat\u0131
+currenciesDisplayName.BWP=Botsvana Pulas\u0131
currenciesDisplayName.RUR=Rus Rublesi (1991-1998)
currenciesDisplayName.NIO=Nikaragua Kordobas\u0131 (Oro)
-currenciesDisplayName.ADP=Andora Pezetas\u0131
-currenciesDisplayName.FJD=Fiji Dolar\u0131
+currenciesDisplayName.XTS=Test Para Birimi Kodu
currenciesDisplayName.MOP=Makao Patacas\u0131
+currenciesDisplayName.FJD=Fiji Dolar\u0131
+currenciesDisplayName.ADP=Andora Pesetas\u0131
currenciesDisplayName.RUB=Rus Rublesi
currenciesDisplayName.CDF=Kongo Frang\u0131
currenciesDisplayName.NIC=Nikaragua Kordobas\u0131
currenciesDisplayName.DJF=Cibuti Frang\u0131
-currenciesDisplayName.ECV=Ekvator Unidad de Valor Constante (UVC)
-currenciesDisplayName.SBD=Solomon Adalar\u0131 Dolar\u0131
currenciesDisplayName.UZS=\u00d6zbekistan Sumu
+currenciesDisplayName.SBD=Solomon Adalar\u0131 Dolar\u0131
+currenciesDisplayName.ECV=Ekvator Unidad de Valor Constante (UVC)
+currenciesDisplayName.LUL=Finansal L\u00fcksemburg Frang\u0131
currenciesDisplayName.ECS=Ekvator Sukresi
-currenciesDisplayName.PHP=Filipinler Pezosu
currenciesDisplayName.THB=Tayland Baht\u0131
+currenciesDisplayName.PHP=Filipinler Pezosu
currenciesDisplayName.LUF=L\u00fcksemburg Frang\u0131
+currenciesDisplayName.RHD=Rodezya Dolar\u0131
+currenciesDisplayName.LUC=Konvertibl L\u00fcksemburg Frang\u0131
currenciesDisplayName.FIM=Fin Markkas\u0131
currenciesDisplayName.TTD=Trinidad ve Tobago Dolar\u0131
currenciesDisplayName.SZL=Swaziland Lilangenisi
currenciesDisplayName.MNT=Mo\u011fol Tugriki
-currenciesDisplayName.SAR=Suudi Arabistan Riyali
currenciesDisplayName.UAK=Ukrayna Karbovanetz
+currenciesDisplayName.SAR=Suudi Arabistan Riyali
+currenciesDisplayName.COU=Unidad de Valor Real
currenciesDisplayName.UAH=Ukrayna Grivnas\u0131
currenciesDisplayName.HUF=Macar Forinti
-currenciesDisplayName.COP=Kolombiya Pezosu
currenciesDisplayName.QAR=Katar Riyali
+currenciesDisplayName.COP=Kolombiya Pezosu
currenciesDisplayName.LTT=Litvanya Talonu
currenciesDisplayName.PTE=Portekiz Esk\u00fcdosu
-currenciesDisplayName.AOR=Angola Kvanzas\u0131 Reajustado (1995-1999)
currenciesDisplayName.UYU=Uruguay Pezosu (Uruguayo)
+currenciesDisplayName.AOR=Angola Kvanzas\u0131 Reajustado (1995-1999)
currenciesDisplayName.GBP=\u0130ngiliz Sterlini
-currenciesDisplayName.BIF=Burundi Frang\u0131
-currenciesDisplayName.INR=Hindistan Rupisi
currenciesDisplayName.ZRZ=Zaire Zairesi
-currenciesDisplayName.AON=Yeni Angola Kvanzas\u0131 (1990-2000)
-currenciesDisplayName.LTL=Litvanya Litas\u0131
+currenciesDisplayName.INR=Hindistan Rupisi
+currenciesDisplayName.BIF=Burundi Frang\u0131
currenciesDisplayName.XFU=Frans\u0131z UIC-Frang\u0131
-currenciesDisplayName.KZT=Kazakistan Tengesi
-currenciesDisplayName.MZM=Mozambik Metical\u0131
+currenciesDisplayName.MZN=Mozambik Metikali
+currenciesDisplayName.LTL=Litvanya Litas\u0131
+currenciesDisplayName.AON=Yeni Angola Kvanzas\u0131 (1990-2000)
currenciesDisplayName.UYP=Uruguay Pezosu (1975-1993)
+currenciesDisplayName.MZM=Eski Mozambik Metikali
+currenciesDisplayName.KZT=Kazakistan Tengesi
currenciesDisplayName.AOK=Angola Kvanzas\u0131 (1977-1990)
-currenciesDisplayName.BUK=Burma Kyat\u0131
currenciesDisplayName.GNS=Gine Syli
+currenciesDisplayName.BUK=Burma Kyat\u0131
currenciesDisplayName.XFO=Frans\u0131z Alt\u0131n Frang\u0131
currenciesDisplayName.PGK=Papua Yeni Gine Kinas\u0131
+currenciesDisplayName.UYI=Uruguay Peso en Unidades Indexadas
currenciesDisplayName.SYP=Suriye Liras\u0131
-currenciesDisplayName.MZE=Mozambik Esk\u00fcdosu
currenciesDisplayName.OMR=Umman Riyali
-currenciesDisplayName.NGN=Nijerya Nairas\u0131
+currenciesDisplayName.MZE=Mozambik Esk\u00fcdosu
currenciesDisplayName.ZRN=Yeni Zaire Zairesi
-currenciesDisplayName.AOA=Angola Kvanzas\u0131
+currenciesDisplayName.NGN=Nijerya Nairas\u0131
currenciesDisplayName.CNY=\u00c7in Yuan\u0131 Renminbi
+currenciesDisplayName.AOA=Angola Kvanzas\u0131
currenciesDisplayName.MAF=Fas Frang\u0131
+currenciesDisplayName.RSD=S\u0131rp Dinar\u0131
currenciesDisplayName.GNF=Gine Frang\u0131
-currenciesDisplayName.HTG=Haiti Gurdu
currenciesDisplayName.MAD=Fas Dirhemi
-currenciesDisplayName.TRY=Yeni T\u00fcrk Liras\u0131
+currenciesDisplayName.HTG=Haiti Gurdu
+currenciesDisplayName.TRY=T\u00fcrk Liras\u0131
currenciesDisplayName.MMK=Myanmar Kyat\u0131
+currenciesDisplayName.XRE=RINET Fonlar\u0131
currenciesDisplayName.MYR=Malezya Ringiti
-currenciesDisplayName.LSL=Lesotho Lotisi
+currenciesDisplayName.LSM=Maloti
currenciesDisplayName.XEU=Avrupa Para Birimi
-currenciesDisplayName.BHD=Bahreyn Dinar\u0131
+currenciesDisplayName.LSL=Lesotho Lotisi
currenciesDisplayName.SLL=Sierra Leone Leonesi
+currenciesDisplayName.BHD=Bahreyn Dinar\u0131
currenciesDisplayName.BTN=Bhutan Ngultrumu
-currenciesDisplayName.TRL=T\u00fcrk Liras\u0131
+currenciesDisplayName.TRL=Eski T\u00fcrk Liras\u0131
currenciesDisplayName.KMF=Komorlar Frang\u0131
-currenciesDisplayName.ANG=Hollanda Antilleri Guldeni
currenciesDisplayName.CZK=\u00c7ek Cumhuriyeti Korunas\u0131
+currenciesDisplayName.ANG=Hollanda Antilleri Guldeni
+currenciesDisplayName.AZN=Azeri Manat\u0131
currenciesDisplayName.AZM=Azerbaycan Manat\u0131
currenciesDisplayName.KYD=Kayman Adalar\u0131 Dolar\u0131
currenciesDisplayName.GMD=Gambiya Dalasisi
+currenciesDisplayName.VEF=G\u00fc\u00e7l\u00fc Venezuela Bolivar\u0131
currenciesDisplayName.BGN=Yeni Bulgar Levas\u0131
-currenciesDisplayName.CAD=Kanada Dolar\u0131
currenciesDisplayName.MXV=Meksika Unidad de Inversion (UDI)
+currenciesDisplayName.CAD=Kanada Dolar\u0131
currenciesDisplayName.BGL=Bulgar Levas\u0131 (Hard)
currenciesDisplayName.VEB=Venezuela Bolivar\u0131
currenciesDisplayName.MLF=Mali Frang\u0131
-currenciesDisplayName.ILS=Yeni \u0130srail \u015eekeli
currenciesDisplayName.MXP=G\u00fcm\u00fc\u015f Meksika Pezosu (1861-1992)
+currenciesDisplayName.ILS=Yeni \u0130srail \u015eekeli
currenciesDisplayName.PES=Peru Solu
-currenciesDisplayName.GYD=Guyana Dolar\u0131
currenciesDisplayName.MXN=Meksika Pezosu
+currenciesDisplayName.GYD=Guyana Dolar\u0131
currenciesDisplayName.ILP=\u0130srail Liras\u0131
-currenciesDisplayName.SKK=Slovak Korunas\u0131
currenciesDisplayName.CYP=G\u00fcney K\u0131br\u0131s Liras\u0131
+currenciesDisplayName.SKK=Slovak Korunas\u0131
currenciesDisplayName.XDR=\u00d6zel \u00c7ekme Hakk\u0131 (SDR)
currenciesDisplayName.PEN=Yeni Peru Solu
currenciesDisplayName.LRD=Liberya Dolar\u0131
currenciesDisplayName.PEI=Peru \u0130nti
currenciesDisplayName.AMD=Ermenistan Dram\u0131
currenciesDisplayName.BSD=Bahama Dolar\u0131
+currenciesDisplayName.XPT=Platin
currenciesDisplayName.HRK=H\u0131rvat Kunas\u0131
currenciesDisplayName.CLP=\u015eili Pezosu
currenciesDisplayName.HRD=H\u0131rvat Dinar\u0131
currenciesDisplayName.XPF=CFP Frang\u0131
currenciesDisplayName.FRF=Frans\u0131z Frang\u0131
+currenciesDisplayName.XPD=Paladyum
currenciesDisplayName.BRR=Brezilya Kruzeirosu
currenciesDisplayName.MKD=Makedonya Dinar\u0131
currenciesDisplayName.CLF=\u015eili Unidades de Fomento
@@ -165,19 +191,20 @@ currenciesDisplayName.SIT=Slovenya Tolar\u0131
currenciesDisplayName.JPY=Japon Yeni
currenciesDisplayName.XOF=CFA Frang\u0131 BCEAO
currenciesDisplayName.MVR=Maldiv Adalar\u0131 Rufiyaa
-currenciesDisplayName.GWE=Portekiz Ginesi Esk\u00fcdosu
currenciesDisplayName.BEF=Bel\u00e7ika Frang\u0131
+currenciesDisplayName.GWE=Portekiz Ginesi Esk\u00fcdosu
currenciesDisplayName.TOP=Tonga Pa\u02bbangas\u0131
currenciesDisplayName.YUD=Yugoslav Dinar\u0131 (Hard)
currenciesDisplayName.BEC=Bel\u00e7ika Frang\u0131 (konvertibl)
currenciesDisplayName.SUR=Sovyet Rublesi
-currenciesDisplayName.ROL=Romen Leyi
-currenciesDisplayName.DDM=Do\u011fu Alman Mark\u0131
+currenciesDisplayName.RON=Romen Leyi
+currenciesDisplayName.ROL=Eski Romen Leyi
currenciesDisplayName.BDT=Banglade\u015f Takas\u0131
+currenciesDisplayName.DDM=Do\u011fu Alman Mark\u0131
currenciesDisplayName.XBD=Avrupa Hesap Birimi (XBD)
currenciesDisplayName.AWG=Aruba Florini
currenciesDisplayName.XBC=Avrupa Hesap Birimi (XBC)
-currenciesDisplayName.XBB=Avrupa Para Birimi
+currenciesDisplayName.XBB=Avrupa Para Birimi (EMU)
currenciesDisplayName.XBA=Birle\u015fik Avrupa Birimi
currenciesDisplayName.NOK=Norve\u00e7 Kronu
currenciesDisplayName.MUR=Mauritius Rupisi
@@ -191,6 +218,7 @@ currenciesDisplayName.GIP=Cebelitar\u0131k Liras\u0131
currenciesDisplayName.TND=Tunus Dinar\u0131
currenciesDisplayName.CVE=Cape Verde Esk\u00fcdosu
currenciesDisplayName.UGX=Uganda \u015eilini
+currenciesDisplayName.XAG=G\u00fcm\u00fc\u015f
currenciesDisplayName.ZMK=Zambiya Kva\u00e7as\u0131
currenciesDisplayName.JOD=\u00dcrd\u00fcn Dinar\u0131
currenciesDisplayName.XAF=CFA Frang\u0131 BEAC
@@ -199,32 +227,36 @@ currenciesDisplayName.UGS=Uganda \u015eilini (1966-1987)
currenciesDisplayName.STD=Sao Tome ve Principe Dobras\u0131
currenciesDisplayName.WST=Bat\u0131 Samoa Talas\u0131
currenciesDisplayName.KHR=Kambo\u00e7ya Rieli
-currenciesDisplayName.EUR=Euro
currenciesDisplayName.DOP=Dominik Pezosu
+currenciesDisplayName.EUR=Euro
currenciesDisplayName.BOV=Bolivya Mvdol
-currenciesDisplayName.MTP=Malta Liras\u0131
+currenciesDisplayName.MTP=Malta Sterlini
currenciesDisplayName.USS=ABD Dolar\u0131 (Ayn\u0131 g\u00fcn)
currenciesDisplayName.BOP=Bolivya Pezosu
-currenciesDisplayName.MTL=Malta Liras\u0131
currenciesDisplayName.CUP=K\u00fcba Pezosu
+currenciesDisplayName.MTL=Malta Liras\u0131
currenciesDisplayName.TMM=T\u00fcrkmenistan Manat\u0131
currenciesDisplayName.USN=ABD Dolar\u0131 (Ertesi g\u00fcn)
+currenciesDisplayName.GHS=Gana Sedisi
currenciesDisplayName.SGD=Singapur Dolar\u0131
currenciesDisplayName.NZD=Yeni Zelanda Dolar\u0131
currenciesDisplayName.USD=ABD Dolar\u0131
-currenciesDisplayName.HNL=Honduras Lempiras\u0131
currenciesDisplayName.BOB=Bolivya Bolivyanosu
+currenciesDisplayName.HNL=Honduras Lempiras\u0131
+currenciesDisplayName.CHW=WIR Frang\u0131
currenciesDisplayName.ITL=\u0130talyan Lireti
currenciesDisplayName.PAB=Panama Balboas\u0131
currenciesDisplayName.GTQ=Guatemala Ketzali
-currenciesDisplayName.LAK=Laos Kipi
-currenciesDisplayName.GHC=Gana Sedisi
+currenciesDisplayName.XXX=Bilinmeyen veya Ge\u00e7ersiz Para Birimi
currenciesDisplayName.AUD=Avustralya Dolar\u0131
+currenciesDisplayName.GHC=Gana Sedisi (1979-2007)
+currenciesDisplayName.LAK=Laos Kipi
currenciesDisplayName.NAD=Namibya Dolar\u0131
currenciesDisplayName.KGS=K\u0131rg\u0131z Somu
currenciesDisplayName.MGF=Madagaskar Frang\u0131
-currenciesDisplayName.CHF=\u0130svi\u00e7re Frang\u0131
currenciesDisplayName.BBD=Barbados Dolar\u0131
+currenciesDisplayName.CHF=\u0130svi\u00e7re Frang\u0131
+currenciesDisplayName.CHE=WIR Avrosu
currenciesDisplayName.MGA=Madagaskar Ariary
currenciesDisplayName.PYG=Paraguay Guaranisi
currenciesDisplayName.PLZ=Polonya Zlotisi (1950-1995)
@@ -232,15 +264,16 @@ currenciesDisplayName.YER=Yemen Riyali
currenciesDisplayName.ATS=Avusturya \u015eilini
currenciesDisplayName.ETB=Etiyopya Birri
currenciesDisplayName.BND=Brunei Dolar\u0131
-currenciesDisplayName.JMD=Jamaika Dolar\u0131
currenciesDisplayName.EGP=M\u0131s\u0131r Liras\u0131
+currenciesDisplayName.JMD=Jamaika Dolar\u0131
currenciesDisplayName.PLN=Polonya Zlotisi
currenciesDisplayName.DZD=Cezayir Dinar\u0131
currenciesDisplayName.ISK=\u0130zlanda Kronu
currenciesDisplayName.SRG=Surinam Guldeni
currenciesDisplayName.LYD=Libya Dinar\u0131
-currenciesDisplayName.BZD=Belize Dolar\u0131
+currenciesDisplayName.SRD=Surinam Dolar\u0131
currenciesDisplayName.BAM=Konvertibl Bosna Hersek Mark\u0131
+currenciesDisplayName.BZD=Belize Dolar\u0131
currenciesDisplayName.ESP=\u0130spanyol Pezetas\u0131
currenciesDisplayName.KRW=G\u00fcney Kore Wonu
currenciesDisplayName.NLG=Hollanda Florini
@@ -250,35 +283,38 @@ currenciesDisplayName.ZWD=Zimbabwe Dolar\u0131
currenciesDisplayName.SEK=\u0130sve\u00e7 Kronu
currenciesDisplayName.CSK=\u00c7ekoslavak Korunas\u0131 (Hard)
currenciesDisplayName.BYR=Beyaz Rusya Rublesi
+currenciesDisplayName.ESB=\u0130spanyol Pesetas\u0131 (konvertibl hesap)
currenciesDisplayName.IRR=\u0130ran Riyali
+currenciesDisplayName.ESA=\u0130spanyol Pesetas\u0131 (A hesab\u0131)
currenciesDisplayName.PKR=Pakistan Rupisi
currenciesDisplayName.BMD=Bermuda Dolar\u0131
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=Eski S\u0131rbistan Dinar\u0131
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.JPY=\u00a5
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
@@ -289,6 +325,7 @@ currenciesSymbol.NOK=NKr
currenciesSymbol.UGX=U Sh
currenciesSymbol.BEF=BF
currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
currenciesSymbol.SZL=E
currenciesSymbol.STD=Db
currenciesSymbol.SAR=SRl
@@ -300,23 +337,26 @@ currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
-currenciesSymbol.USD=US$
+currenciesSymbol.USD=$
currenciesSymbol.SGD=S$
currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -324,9 +364,10 @@ currenciesSymbol.MYR=RM
currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
currenciesSymbol.CNY=Y
@@ -341,29 +382,34 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
currenciesSymbol.BZD=BZ$
currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=Oca®\u015eub®Mar®Nis®May®Haz®Tem®A\u011fu®Eyl®Eki®Kas®Ara®®
-months=Ocak®\u015eubat®Mart®Nisan®May\u0131s®Haziran®Temmuz®A\u011fustos®Eyl\u00fcl®Ekim®Kas\u0131m®Aral\u0131k®®
-shortWeekdays=®Paz®Pzt®Sal®\u00c7ar®Per®Cum®Cmt®
-weekdays=®Pazar®Pazartesi®Sal\u0131®\u00c7ar\u015famba®Per\u015fembe®Cuma®Cumartesi®
-firstDayOfWeek=mon
-eras=M\u00d6®MS®
+shortMonths=Oca\u00ae\u015eub\u00aeMar\u00aeNis\u00aeMay\u00aeHaz\u00aeTem\u00aeA\u011fu\u00aeEyl\u00aeEki\u00aeKas\u00aeAra\u00ae\u00ae
+months=Ocak\u00ae\u015eubat\u00aeMart\u00aeNisan\u00aeMay\u0131s\u00aeHaziran\u00aeTemmuz\u00aeA\u011fustos\u00aeEyl\u00fcl\u00aeEkim\u00aeKas\u0131m\u00aeAral\u0131k\u00ae\u00ae
+shortWeekdays=\u00aePaz\u00aePzt\u00aeSal\u00ae\u00c7ar\u00aePer\u00aeCum\u00aeCmt\u00ae
+weekdays=\u00aePazar\u00aePazartesi\u00aeSal\u0131\u00ae\u00c7ar\u015famba\u00aePer\u015fembe\u00aeCuma\u00aeCumartesi\u00ae
+eras=M\u00d6\u00aeMS\u00ae
+ampms=AM\u00aePM\u00ae
shortDateFormat=dd.MM.yyyy
mediumDateFormat=dd.MMM.yyyy
-longDateFormat=dd MMMM yyyy EEEE
+longDateFormat=d MMMM yyyy
fullDateFormat=dd MMMM yyyy EEEE
-zoneStrings=Pacific/Honolulu®Hawaii Standart Saati®Hawaii Standart Saati®©America/Los_Angeles®Pasifik Standart Saati®Pasifik Yaz Saati®©America/Denver®ABD S\u0131rada\u011flar Standart Saati®ABD S\u0131rada\u011flar Yaz Saati®©America/Phoenix®ABD S\u0131rada\u011flar Standart Saati®ABD S\u0131rada\u011flar Standart Saati®©America/Chicago®Merkezi Standart Saati®Merkezi Yaz Saati®©America/Indianapolis®Do\u011fu Standart Saati®Do\u011fu Standart Saati®©America/St_Johns®Newfoundland Standart Saati®Newfoundland Yaz Saati®©America/Anchorage®Alaska Standart Saati®Alaska Yaz Saati®©Asia/Shanghai®\u00c7in Standart Saati®\u00c7in Standart Saati®©America/New_York®Do\u011fu Standart Saati®Do\u011fu Yaz Saati®©America/Halifax®Atlantik Standart Saati®Atlantik Yaz Saati®©
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Marshall_Islands\u00aeMarshall Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00ae\u015eev\u00e7enko Saati\u00ae\u00ae\u015eev\u00e7enko Yaz Saati\u00ae\u00ae\u00a9Bangladesh\u00aeBanglade\u015f Saati\u00ae\u00ae\u00ae\u00ae\u00a9Australia_CentralWestern\u00aeAvustralya Bat\u0131 Merkezi Standart Saati\u00ae\u00aeAvustralya Bat\u0131 Merkezi Yaz Saati\u00ae\u00ae\u00a9Marquesas\u00aeMarkiz Saati\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Central\u00aeOrta Endonezya Saati\u00ae\u00ae\u00ae\u00ae\u00a9America_Eastern\u00aeDo\u011fu Standart Saati\u00ae\u00aeDo\u011fu Yaz Saati\u00ae\u00ae\u00a9China\u00ae\u00c7in Standart Saati\u00aeCST (\u00c7in)\u00ae\u00c7in Yaz Saati\u00aeCDT (\u00c7in)\u00ae\u00a9Omsk\u00aeOmsk Saati\u00ae\u00aeOmsk Yaz Saati\u00ae\u00ae\u00a9Guyana\u00aeGuyana Saati\u00ae\u00ae\u00ae\u00ae\u00a9Uzbekistan\u00ae\u00d6zbekistan Saati\u00ae\u00ae\u00d6zbekistan Yaz Saati\u00ae\u00ae\u00a9Uruguay\u00aeUruguay Saati\u00ae\u00aeUruguay Yaz Saati\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00aeDo\u011fu Kazakistan Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00aeKara\u00e7i Saati\u00ae\u00ae\u00ae\u00ae\u00a9Tbilisi\u00aeTiflis Saati\u00ae\u00aeTiflis Yaz Saati\u00ae\u00ae\u00a9Tashkent\u00aeTa\u015fkent Saati\u00ae\u00aeTa\u015fkent Yaz Saati\u00ae\u00ae\u00a9Changbai\u00aeChangbai Saati\u00ae\u00ae\u00ae\u00ae\u00a9Chatham\u00aeChatham Standart Saati\u00ae\u00aeChatham Yaz Saati\u00ae\u00ae\u00a9South_Georgia\u00aeG\u00fcney Georgia Saati\u00aeGST (G\u00fcney Georgia)\u00ae\u00ae\u00ae\u00a9French_Guiana\u00aeFrans\u0131z Guyanas\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Frunze\u00aeBi\u015fkek Saati\u00ae\u00aeBi\u015fkek Yaz Saati\u00ae\u00ae\u00a9Europe_Eastern\u00aeDo\u011fu Avrupa Saati\u00ae\u00aeDo\u011fu Avrupa Yaz Saati\u00ae\u00ae\u00a9Greenland_Eastern\u00aeDo\u011fu Gr\u00f6nland Saati\u00ae\u00aeDo\u011fu Gr\u00f6nland Yaz Saati\u00ae\u00ae\u00a9Dushanbe\u00aeDu\u015fanbe Saati\u00ae\u00aeDu\u015fanbe Yaz Saati\u00ae\u00ae\u00a9Dacca\u00aeDakka Saati\u00ae\u00ae\u00ae\u00ae\u00a9Chile\u00ae\u015eili Saati\u00ae\u00ae\u015eili Yaz Saati\u00ae\u00ae\u00a9Europe_Central\u00aeOrta Avrupa Saati\u00ae\u00aeOrta Avrupa Yaz Saati\u00ae\u00ae\u00a9Acre\u00aeAcre Saati\u00ae\u00aeAcre Yaz Saati\u00ae\u00ae\u00a9Arabian\u00aeArap Standart Saati\u00aeAST (Arap)\u00aeArap Yaz Saati\u00aeADT (Arap)\u00ae\u00a9East_Timor\u00aeDo\u011fu Timor Saati\u00ae\u00ae\u00ae\u00ae\u00a9New_Zealand\u00aeYeni Zelanda Standart Saati\u00ae\u00aeYeni Zelanda Yaz Saati\u00ae\u00ae\u00a9Indochina\u00ae\u00c7inhindi Saati\u00ae\u00ae\u00ae\u00ae\u00a9Kwajalein\u00aeKwajalein Saati\u00ae\u00ae\u00ae\u00ae\u00a9Africa_Southern\u00aeG\u00fcney Afrika Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9DumontDUrville\u00aeDumont-d'Urville Saati\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00aeABD S\u0131rada\u011flar Standart Saati\u00ae\u00aeABD S\u0131rada\u011flar Yaz Saati\u00ae\u00ae\u00a9Tokelau\u00aeTokelau Saati\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00aeEkvator Saati\u00ae\u00ae\u00ae\u00ae\u00a9Hovd\u00aeHovd Saati\u00ae\u00aeHovd Yaz Saati\u00ae\u00ae\u00a9Africa_Central\u00aeOrta Afrika Saati\u00ae\u00ae\u00ae\u00ae\u00a9Phoenix_Islands\u00aePhoenix Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Armenia\u00aeErmenistan Saati\u00aeAMT (Ermenistan)\u00aeErmenistan Yaz Saati\u00aeAMST (Ermenistan)\u00ae\u00a9Tuvalu\u00aeTuvalu Saati\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00aeSakhalin Saati\u00ae\u00aeSakhalin Yaz Saati\u00ae\u00ae\u00a9Samara\u00aeSamara Saati\u00ae\u00aeSamara Yaz Saati\u00ae\u00ae\u00a9Palau\u00aePalau Saati\u00ae\u00ae\u00ae\u00ae\u00a9Kosrae\u00aeKosrae Saati\u00ae\u00ae\u00ae\u00ae\u00a9Alaska_Hawaii\u00aeAlaska-Hawaii Standart Saati\u00ae\u00aeAlaska-Hawaii Yaz Saati\u00ae\u00ae\u00a9Pitcairn\u00aePitcairn Saati\u00ae\u00ae\u00ae\u00ae\u00a9America_Central\u00aeMerkezi Standart Saati\u00ae\u00aeMerkezi Yaz Saati\u00ae\u00ae\u00a9Malaysia\u00aeMalezya Saati\u00ae\u00ae\u00ae\u00ae\u00a9Moscow\u00aeMoskova Standart Saati\u00ae\u00aeMoskova Yaz Saati\u00ae\u00ae\u00a9Vanuatu\u00aeVanuatu Saati\u00ae\u00aeVanuatu Yaz Saati\u00ae\u00ae\u00a9Kamchatka\u00aePetropavlovsk-Kam\u00e7atski Saati\u00ae\u00aePetropavlovsk-Kam\u00e7atski Yaz Saati\u00ae\u00ae\u00a9Cape_Verde\u00aeCape Verde Saati\u00ae\u00aeCape Verde Yaz Saati\u00ae\u00ae\u00a9Aqtobe\u00aeAkt\u00f6be Saati\u00aeAQTT (Akt\u00f6be)\u00aeAkt\u00f6be Yaz Saati\u00aeAQTST (Akt\u00f6be)\u00ae\u00a9Falkland\u00aeFalkland Adalar\u0131 Saati\u00ae\u00aeFalkland Adalar\u0131 Yaz Saati\u00ae\u00ae\u00a9Peru\u00aePeru Saati\u00ae\u00aePeru Yaz Saati\u00ae\u00ae\u00a9Krasnoyarsk\u00aeKrasnoyarsk Saati\u00ae\u00aeKrasnoyarsk Yaz Saati\u00ae\u00ae\u00a9Argentina\u00aeArjantin Saati\u00ae\u00aeArjantin Yaz Saati\u00ae\u00ae\u00a9Qyzylorda\u00aeK\u0131z\u0131lorda Saati\u00ae\u00aeK\u0131z\u0131lorda Yaz Saati\u00ae\u00ae\u00a9Tahiti\u00aeTahiti Saati\u00ae\u00ae\u00ae\u00ae\u00a9Indian_Ocean\u00aeHint Okyanusu Saati\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00aeGreenwich Merkez Saati\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00aeVladivostok Saati\u00ae\u00aeVladivostok Yaz Saati\u00ae\u00ae\u00a9Atlantic\u00aeAtlantik Standart Saati\u00ae\u00aeAtlantik Yaz Saati\u00ae\u00ae\u00a9Truk\u00aeTruk Saati\u00ae\u00ae\u00ae\u00ae\u00a9Rothera\u00aeRothera Saati\u00ae\u00ae\u00ae\u00ae\u00a9Wallis\u00aeWallis ve Futuna Saati\u00ae\u00ae\u00ae\u00ae\u00a9Syowa\u00aeShowa Saati\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00aeKore Standart Saati\u00ae\u00aeKore Yaz Saati\u00ae\u00ae\u00a9Ashkhabad\u00aeA\u015fkabat Saati\u00ae\u00aeA\u015fkabat Yaz Saati\u00ae\u00ae\u00a9Australia_Western\u00aeBat\u0131 Avustralya Standart Saati\u00ae\u00aeBat\u0131 Avustralya Yaz Saati\u00ae\u00ae\u00a9Gilbert_Islands\u00aeGilbert Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Seychelles\u00aeSey\u015feller Saati\u00ae\u00ae\u00ae\u00ae\u00a9Cocos\u00aeCocos Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Venezuela\u00aeVenezuela Saati\u00ae\u00ae\u00ae\u00ae\u00a9Solomon\u00aeSolomon Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Paraguay\u00aeParaguay Saati\u00ae\u00aeParaguay Yaz Saati\u00ae\u00ae\u00a9Yakutsk\u00aeYakutsk Saati\u00ae\u00aeYakutsk Yaz Saati\u00ae\u00ae\u00a9Azerbaijan\u00aeAzerbaycan Saati\u00ae\u00aeAzerbaycan Yaz Saati\u00ae\u00ae\u00a9Kizilorda\u00aeK\u0131z\u0131lorda Saati\u00ae\u00aeK\u0131z\u0131lorda Yaz Saati\u00ae\u00ae\u00a9Yukon\u00aeYukon Standart Saati\u00ae\u00aeYukon Yaz Saati\u00ae\u00ae\u00a9Dutch_Guiana\u00aeHollanda Guyanas\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Yerevan\u00aeErivan Saati\u00ae\u00aeErivan Yaz Saati\u00ae\u00ae\u00a9Turkmenistan\u00aeT\u00fcrkmenistan Saati\u00ae\u00aeT\u00fcrkmenistan Yaz Saati\u00ae\u00ae\u00a9Newfoundland\u00aeNewfoundland Standart Saati\u00ae\u00aeNewfoundland Yaz Saati\u00ae\u00ae\u00a9Africa_Eastern\u00aeDo\u011fu Afrika Saati\u00ae\u00ae\u00ae\u00ae\u00a9Wake\u00aeWake Adas\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Pakistan\u00aePakistan Saati\u00ae\u00aePakistan Yaz Saati\u00ae\u00ae\u00a9Singapore\u00aeSingapur Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00aeKuybi\u015fev Saati\u00ae\u00aeKuybi\u015fev Yaz Saati\u00ae\u00ae\u00a9Europe_Western\u00aeBat\u0131 Avrupa Saati\u00ae\u00aeBat\u0131 Avrupa Yaz Saati\u00ae\u00ae\u00a9India\u00aeHindistan Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Chamorro\u00aeChamorro Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Greenland_Western\u00aeBat\u0131 Gr\u00f6nland Saati\u00ae\u00aeBat\u0131 Gr\u00f6nland Yaz Saati\u00ae\u00ae\u00a9Bolivia\u00aeBolivya Saati\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Western\u00aeBat\u0131 Endonezya Saati\u00ae\u00ae\u00ae\u00ae\u00a9Galapagos\u00aeGalapagos Saati\u00ae\u00ae\u00ae\u00ae\u00a9Iran\u00ae\u0130ran Standart Saati\u00ae\u00ae\u0130ran Yaz Saati\u00ae\u00ae\u00a9Suriname\u00aeSurinam Saati\u00ae\u00ae\u00ae\u00ae\u00a9Vostok\u00aeVostok Saati\u00ae\u00ae\u00ae\u00ae\u00a9Papua_New_Guinea\u00aePapua Yeni Gine Saati\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00aeMalaya Saati\u00ae\u00ae\u00ae\u00ae\u00a9Bering\u00aeBering Standart Saati\u00ae\u00aeBering Yaz Saati\u00ae\u00ae\u00a9Mawson\u00aeMawson Saati\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00aeG\u00fcrcistan Saati\u00ae\u00aeG\u00fcrcistan Yaz Saati\u00ae\u00ae\u00a9Kyrgystan\u00aeK\u0131rg\u0131zistan Saati\u00ae\u00ae\u00ae\u00ae\u00a9French_Southern\u00aeFrans\u0131z G\u00fcney B\u00f6lgeleri Saati\u00ae\u00ae\u00ae\u00ae\u00a9Ponape\u00aePonape Saati\u00ae\u00ae\u00ae\u00ae\u00a9Lanka\u00aeLanka Saati\u00ae\u00ae\u00ae\u00ae\u00a9Christmas\u00aeChristmas Adas\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Philippines\u00aeFilipinler Saati\u00ae\u00aeFilipinler Yaz Saati\u00ae\u00ae\u00a9Argentina_Western\u00aeBat\u0131 Arjantin Saati\u00ae\u00ae\u00ae\u00ae\u00a9Volgograd\u00aeVolgograd Saati\u00ae\u00aeVolgograd Yaz Saati\u00ae\u00ae\u00a9Hong_Kong\u00aeHong Kong Saati\u00ae\u00aeHong Kong Yaz Saati\u00ae\u00ae\u00a9Kazakhstan_Western\u00aeBat\u0131 Kazakistan Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Guam\u00aeGuam Standart Saati\u00aeGST (Guam)\u00ae\u00ae\u00ae\u00a9Amazon\u00aeAmazon Saati\u00ae\u00aeAmazon Yaz Saati\u00ae\u00ae\u00a9Pierre_Miquelon\u00aePierre ve Miquelon Standart Saati\u00ae\u00aePierre ve Miquelon Yaz Saati\u00ae\u00ae\u00a9Niue\u00aeNiue Saati\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00aeT\u00fcrkiye Saati\u00ae\u00aeT\u00fcrkiye Yaz Saati\u00ae\u00ae\u00a9Nepal\u00aeNepal Saati\u00ae\u00ae\u00ae\u00ae\u00a9Cook\u00aeCook Adalar\u0131 Saati\u00ae\u00aeCook Adalar\u0131 Yar\u0131 Yaz Saati\u00ae\u00ae\u00a9Macau\u00aeMakao Saati\u00ae\u00aeMakao Yaz Saati\u00ae\u00ae\u00a9Mauritius\u00aeMauritius Saati\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00aeK\u00fcba Standart Saati\u00aeCST (K\u00fcba)\u00aeK\u00fcba Yaz Saati\u00aeCDT (K\u00fcba)\u00ae\u00a9Lord_Howe\u00aeLord Howe Standart Saati\u00ae\u00aeLord Howe Yaz Saati\u00ae\u00ae\u00a9Tonga\u00aeTonga Saati\u00ae\u00aeTonga Yaz Saati\u00ae\u00ae\u00a9Maldives\u00aeMaldivler Saati\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00aeUlan Batur Saati\u00ae\u00aeUlan Batur Yaz Saati\u00ae\u00ae\u00a9Norfolk\u00aeNorfolk Adas\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Anadyr\u00aeAnad\u0131r Saati\u00ae\u00aeAnad\u0131r Yaz Saati\u00ae\u00ae\u00a9Irkutsk\u00aeIrkutsk Saati\u00ae\u00aeIrkutsk Yaz Saati\u00ae\u00ae\u00a9Indonesia_Eastern\u00aeDo\u011fu Endonezya Saati\u00ae\u00ae\u00ae\u00ae\u00a9Myanmar\u00aeMyanmar Saati\u00ae\u00ae\u00ae\u00ae\u00a9Reunion\u00aeReunion Saati\u00ae\u00ae\u00ae\u00ae\u00a9Gulf\u00aeGulf Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Afghanistan\u00aeAfganistan Saati\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00aeKa\u015fgar Saati\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00aeBrunei Saati\u00ae\u00ae\u00ae\u00ae\u00a9Novosibirsk\u00aeNovosibirsk Saati\u00ae\u00aeNovosibirsk Yaz Saati\u00ae\u00ae\u00a9Brasilia\u00aeBrezilya Saati\u00ae\u00aeBrezilya Yaz Saati\u00ae\u00ae\u00a9Line_Islands\u00aeLine Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9America_Pacific\u00aePasifik Standart Saati\u00ae\u00aePasifik Yaz Saati\u00ae\u00ae\u00a9Hawaii_Aleutian\u00aeHawaii-Aleutian Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00aeSemerkand Saati\u00aeSAMT (Semerkand)\u00aeSemerkand Yaz Saati\u00aeSAMST (Semerkand)\u00ae\u00a9Australia_Central\u00aeOrta Avustralya Standart Saati\u00ae\u00aeOrta Avustralya Yaz Saati\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu Saati\u00ae\u00ae\u00ae\u00ae\u00a9Fiji\u00aeFiji Saati\u00ae\u00aeFiji Yaz Saati\u00ae\u00ae\u00a9Israel\u00ae\u0130srail Standart Saati\u00aeIST (\u0130srail)\u00ae\u0130srail Yaz Saati\u00ae\u00ae\u00a9Yekaterinburg\u00aeYekaterinburg Saati\u00ae\u00aeYekaterinburg Yaz Saati\u00ae\u00ae\u00a9Easter\u00aeEaster Adas\u0131 Saati\u00ae\u00aeEaster Adas\u0131 Yaz Saati\u00ae\u00ae\u00a9Almaty\u00aeAlmati Saati\u00ae\u00aeAlmati Yaz Saati\u00ae\u00ae\u00a9Sverdlovsk\u00aeSverdlovsk Saati\u00ae\u00aeSverdlovsk Yaz Saati\u00ae\u00ae\u00a9Africa_Western\u00aeBat\u0131 Afrika Saati\u00ae\u00aeBat\u0131 Afrika Yaz Saati\u00ae\u00ae\u00a9Samoa\u00aeSamoa Standart Saati\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00aeBhutan Saati\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00aeUral Saati\u00ae\u00aeUral Yaz Saati\u00ae\u00ae\u00a9Alaska\u00aeAlaska Standart Saati\u00ae\u00aeAlaska Yaz Saati\u00ae\u00ae\u00a9Urumqi\u00aeUrum\u00e7i Saati\u00ae\u00ae\u00ae\u00ae\u00a9Colombia\u00aeKolombiya Saati\u00ae\u00aeKolombiya Yaz Saati\u00ae\u00ae\u00a9Aktyubinsk\u00aeAktyubinsk Saati\u00ae\u00aeAktyubinsk Yaz Saati\u00ae\u00ae\u00a9North_Mariana\u00aeKuzey Mariana Adalar\u0131 Saati\u00ae\u00ae\u00ae\u00ae\u00a9Nauru\u00aeNauru Saati\u00ae\u00ae\u00ae\u00ae\u00a9Magadan\u00aeMagadan Saati\u00ae\u00aeMagadan Yaz Saati\u00ae\u00ae\u00a9Tajikistan\u00aeTacikistan Saati\u00ae\u00ae\u00ae\u00ae\u00a9New_Caledonia\u00aeYeni Kaledonya Saati\u00ae\u00aeYeni Kaledonya Yaz Saati\u00ae\u00ae\u00a9Choibalsan\u00ae\u00c7oybalsan Saati\u00ae\u00ae\u00c7oybalsan Yaz Saati\u00ae\u00ae\u00a9Azores\u00aeAzor Saati\u00ae\u00aeAzor Yaz Saati\u00ae\u00ae\u00a9Aqtau\u00aeAktau Saati\u00aeAQTT (Aktau)\u00aeAktau Yaz Saati\u00aeAQTST (Aktau)\u00ae\u00a9Baku\u00aeBak\u00fc Saati\u00ae\u00aeBak\u00fc Yaz Saati\u00ae\u00ae\u00a9Australia_Eastern\u00aeDo\u011fu Avustralya Standart Saati\u00ae\u00aeDo\u011fu Avustralya Yaz Saati\u00ae\u00ae\u00a9Davis\u00aeDavis Saati\u00ae\u00ae\u00ae\u00ae\u00a9Gambier\u00aeGambier Saati\u00ae\u00ae\u00ae\u00ae\u00a9Noronha\u00aeFernando de Noronha Saati\u00ae\u00aeFernando de Noronha Yaz Saati\u00ae\u00ae\u00a9Greenland_Central\u00aeOrta Gr\u00f6nland Saati\u00ae\u00aeOrta Gr\u00f6nland Yaz Saati\u00ae\u00ae\u00a9Japan\u00aeJaponya Standart Saati\u00ae\u00aeJaponya Yaz Saati\u00ae\u00ae\u00a9Borneo\u00aeBorneo Saati\u00ae\u00aeBorneo Yaz Saati\u00ae\u00ae\u00a9
territories.TL=Do\u011fu Timor
territories.TK=Tokelau
territories.TJ=Tacikistan
@@ -388,10 +434,11 @@ territories.GL=Gr\u00f6nland
territories.SV=El Salvador
territories.062=G\u00fcney Orta Asya
territories.ST=Sao Tome ve Principe
-territories.061=Polinezya
territories.GI=Cebelitar\u0131k
+territories.061=Polinezya
territories.GH=Gana
territories.SR=Surinam
+territories.GG=Guernsey
territories.GF=Frans\u0131z Guyanas\u0131
territories.GE=G\u00fcrcistan
territories.SO=Somali
@@ -412,26 +459,27 @@ territories.SC=Sey\u015feller
territories.SB=Solomon Adalar\u0131
territories.SA=Suudi Arabistan
territories.FR=Fransa
-territories.057=Mikronezya
territories.FO=Faroe Adalar\u0131
+territories.057=Mikronezya
territories.FM=Mikronezya Federal Eyaletleri
territories.RW=Ruanda
territories.054=Melanezya
-territories.053=Avustralya ve Yeni Zelanda
territories.FK=Falkland Adalar\u0131 (Malvinalar)
+territories.053=Avustralya ve Yeni Zelanda
territories.RU=Rusya Federasyonu
territories.FJ=Fiji
territories.FI=Finlandiya
+territories.RS=S\u0131rbistan
territories.RO=Romanya
territories.RE=Reunion
territories.ET=Etiyopya
territories.ES=\u0130spanya
territories.ER=Eritre
-territories.833=Man Adas\u0131
+territories.QU=Avrupa Birli\u011fi
territories.EH=Bat\u0131 Sahara
territories.EG=M\u0131s\u0131r
-territories.830=Kanal Adalar\u0131
territories.EE=Estonya
+territories.830=Kanal Adalar\u0131
territories.QO=Uzak Okyanusya
territories.EC=Ekvator
territories.DZ=Cezayir
@@ -439,9 +487,10 @@ territories.QA=Katar
territories.039=G\u00fcney Avrupa
territories.DO=Dominik Cumhuriyeti
territories.PY=Paraguay
-territories.035=G\u00fcney Do\u011fu Asya
territories.DM=Dominik
+territories.035=G\u00fcney Do\u011fu Asya
territories.PW=Palau
+territories.034=G\u00fcney Asya
territories.DK=Danimarka
territories.DJ=Cibuti
territories.PT=Portekiz
@@ -458,7 +507,7 @@ territories.PG=Papua Yeni Gine
territories.PF=Frans\u0131z Polinezyas\u0131
territories.CZ=\u00c7ek Cumhuriyeti
territories.PE=Peru
-territories.CY=K\u0131br\u0131s
+territories.CY=G\u00fcney K\u0131br\u0131s Rum Kesimi
territories.CX=Christmas Adas\u0131
territories.CV=Cape Verde
territories.PA=Panama
@@ -471,15 +520,16 @@ territories.CN=\u00c7in
territories.CM=Kamerun
territories.CL=\u015eili
territories.CK=Cook Adalar\u0131
-territories.CI=Fildi\u015fi Sahilleri
territories.021=Kuzey Amerika
+territories.CI=Fildi\u015fi Sahilleri
territories.CH=\u0130svi\u00e7re
territories.CG=Kongo
territories.CF=Orta Afrika Cumhuriyeti
territories.CD=Kongo Demokratik Cumhuriyeti
-territories.CC=Cocos (Keeling) Adalar\u0131
+territories.CC=Cocos Adalar\u0131
territories.OM=Umman
territories.CA=Kanada
+territories.419=Latin Amerika ve Karayipler
territories.BZ=Belize
territories.BY=Beyaz Rusya
territories.BW=Botsvana
@@ -488,29 +538,32 @@ territories.BT=Bhutan
territories.BS=Bahamalar
territories.BR=Brezilya
territories.019=Amerika
-territories.018=G\u00fcney Afrika
+territories.018=G\u00fcney Afrika [018]
territories.NZ=Yeni Zelanda
-territories.BO=Bolivya
territories.017=Orta Afrika
+territories.BO=Bolivya
territories.BN=Brunei
-territories.BM=Bermuda
territories.015=Kuzey Afrika
+territories.BM=Bermuda
territories.014=Do\u011fu Afrika
+territories.BL=Saint Barthelemy
territories.013=Orta Amerika
-territories.NU=Niue Adalar\u0131
+territories.NU=Niue
territories.BJ=Benin
-territories.BI=Burundi
territories.011=Bat\u0131 Afrika
+territories.BI=Burundi
+territories.172=Ba\u011f\u0131ms\u0131z Devletler Toplulu\u011fu
territories.BH=Bahreyn
-territories.NR=Nauru Adas\u0131
+territories.NR=Nauru
territories.BG=Bulgaristan
territories.BF=Burkina Faso
territories.NP=Nepal
territories.BE=Bel\u00e7ika
+territories.ZZ=Bilinmeyen veya Ge\u00e7ersiz B\u00f6lge
territories.NO=Norve\u00e7
territories.BD=Banglade\u015f
territories.BB=Barbados
-territories.ZW=Zimbabwe
+territories.ZW=Zimbabve
territories.NL=Hollanda
territories.BA=Bosna Hersek
territories.NI=Nikaragua
@@ -527,24 +580,25 @@ territories.AU=Avustralya
territories.AT=Avusturya
territories.AS=Amerikan Samoas\u0131
territories.AR=Arjantin
-territories.009=Okyanusya
territories.AQ=Antarktika
+territories.009=Okyanusya
territories.MZ=Mozambik
territories.AO=Angola
territories.MY=Malezya
territories.AN=Hollanda Antilleri
territories.MX=Meksika
-territories.005=G\u00fcney Amerika
territories.AM=Ermenistan
+territories.005=G\u00fcney Amerika
territories.MW=Malavi
territories.AL=Arnavutluk
territories.MV=Maldivler
+territories.003=Kuzey Amerika
territories.ZA=G\u00fcney Afrika
territories.MU=Mauritius
territories.002=Afrika
territories.MT=Malta
-territories.001=D\u00fcnya
territories.AI=Anguilla
+territories.001=D\u00fcnya
territories.MS=Montserrat
territories.MR=Moritanya
territories.AG=Antigua ve Barbuda
@@ -552,15 +606,17 @@ territories.MQ=Martinik
territories.AF=Afganistan
territories.MP=Kuzey Mariana Adalar\u0131
territories.AE=Birle\u015fik Arap Emirlikleri
-territories.MO=Makao S.A.R. \u00c7in
+territories.MO=Makao
territories.AD=Andora
territories.MN=Mo\u011folistan
territories.MM=Myanmar
territories.ML=Mali
-territories.MK=Makedonya Cumhuriyeti
+territories.MK=Makedonya
territories.YT=Mayotte
territories.MH=Marshall Adalar\u0131
territories.MG=Madagaskar
+territories.MF=Saint Martin
+territories.ME=Karada\u011f
territories.MD=Moldovya Cumhuriyeti
territories.MC=Monako
territories.MA=Fas
@@ -584,10 +640,11 @@ territories.KZ=Kazakistan
territories.KY=Kayman Adalar\u0131
territories.KW=Kuveyt
territories.145=Bat\u0131 Asya
+territories.143=Orta Asya
territories.142=Asya
territories.KR=G\u00fcney Kore
territories.KP=Kuzey Kore
-territories.KN=Saint Kittler ve Neviler
+territories.KN=Saint Kitts ve Nevis
territories.KM=Komorlar
territories.KI=Kiribati
territories.WS=Samoa
@@ -599,12 +656,13 @@ territories.JP=Japonya
territories.JO=\u00dcrd\u00fcn
territories.JM=Jamaika
territories.VU=Vanuatu
+territories.JE=Jersey
territories.VN=Vietnam
territories.VI=ABD Virgin Adalar\u0131
territories.VG=\u0130ngiliz Virgin Adalar\u0131
territories.VE=Venezuela
territories.VC=Saint Vincent ve Grenadinler
-territories.VA=Kutsal Devlet (Vatikan \u015eehir Devleti)
+territories.VA=Vatikan
territories.IT=\u0130talya
territories.IS=\u0130zlanda
territories.IR=\u0130ran
@@ -613,6 +671,7 @@ territories.UZ=\u00d6zbekistan
territories.IO=Hint Okyanusu \u0130ngiliz B\u00f6lgesi
territories.UY=Uruguay
territories.IN=Hindistan
+territories.IM=Man Adas\u0131
territories.IL=\u0130srail
territories.US=Amerika Birle\u015fik Devletleri
territories.IE=\u0130rlanda
@@ -628,266 +687,540 @@ territories.HN=Honduras
territories.HM=Heard Adas\u0131 ve McDonald Adalar\u0131
territories.TW=Tayvan
territories.TV=Tuvalu
-territories.HK=Hong Kong SAR - \u00c7in
+territories.HK=Hong Kong
territories.TT=Trinidad ve Tobago
territories.TR=T\u00fcrkiye
territories.TO=Tonga
territories.TN=Tunus
territories.TM=T\u00fcrkmenistan
-languages.lb=L\u00fcksemburg Dili
-languages.la=Latince
+languages.gwi=Gwich\u02bcin
+languages.akk=Akad Dili
+languages.eka=Ekajuk
+languages.ijo=Ijo
languages.xh=Xhosa
-languages.ky=K\u0131rg\u0131zca
-languages.iro=Iroquoian Dilleri
-languages.ku=K\u00fcrt\u00e7e
-languages.krc=Kara\u00e7ay-Balkar
-languages.ks=Ke\u015fmirce
-languages.ypk=Yupik Dilleri
-languages.ko=Korece
-languages.kn=Kannada
-languages.km=Kambo\u00e7ya Dili
-languages.kl=Gr\u00f6nland Dili
-languages.ira=\u0130ran Dili
-languages.kk=Kazak Dili
-languages.grc=Antik Yunan (1453'e kadar)
-languages.crp=Creoles ve Pidgins (Di\u011fer)
+languages.sux=S\u00fcmerce
+languages.sus=Susu
+languages.mis=\u00c7e\u015fitli Diller
+languages.loz=Lozi
+languages.tog=Nyasa Tonga
+languages.zbl=Blis Sembolleri
+languages.pon=Pohnpeian
+languages.min=Minangkabau
+languages.suk=Sukuma
languages.wo=Wolof
-languages.art=Yapay (Di\u011fer)
-languages.ka=G\u00fcrc\u00fcce
-languages.crh=K\u0131r\u0131m T\u00fcrk\u00e7esi; K\u0131r\u0131m Tatarcas\u0131
-languages.gem=Almanca tabanl\u0131 (Di\u011fer)
-languages.afa=Afro Asya Dilleri (Di\u011fer)
-languages.jv=Java Dili
-languages.arc=Aramice
-languages.cel=Kelt\u00e7e (Di\u011fer)
-languages.sco=\u0130sko\u00e7
-languages.vo=Volapuk
-languages.tut=Altay Dilleri (Di\u011fer)
-languages.ja=Japonca
-languages.vi=Vietnam Dili
-languages.tup=Tupi dilleri
-languages.iu=Inuktitut
-languages.it=\u0130talyanca
-languages.is=\u0130zlandaca
-languages.ady=Adige
+languages.lol=Mongo
+languages.kut=Kutenai
+languages.mic=Micmac
+languages.wa=Walloon
+languages.kum=Kumuk\u00e7a
+languages.zap=Zapotek Dili
+languages.ain=Ainu
+languages.cus=Di\u011fer Ku\u015fitik Diller
+languages.jbo=Lojban
+languages.doi=Dogri
+languages.zza=Zazaca
+languages.vo=Volap\u00fck
+languages.oto=Otomi Dilleri
+languages.vi=Vietnamca
+languages.vai=Vai
+languages.rar=Rarotongan
+languages.ve=Venda
+languages.rap=Rapanui
+languages.raj=Rajasthani
+languages.ota=Osmanl\u0131 T\u00fcrk\u00e7esi
+languages.nzi=Nzima
+languages.nap=Napolice
languages.uz=\u00d6zbek\u00e7e
-languages.io=Ido
-languages.ik=Inupiak
+languages.uga=Ugarit Dili
+languages.tmh=Tama\u015fek
+languages.nai=Di\u011fer Kuzey Amerika Yerli Dilleri
+languages.nah=Nahuatl
languages.ur=Urduca
-languages.nic=Nijer - Kordofanian (Di\u011fer)
-languages.ie=Interlingue
-languages.cpp=Creoles ve Pidgins, Portekizce tabanl\u0131 (Di\u011fer)
-languages.id=Endonezya Dili
-languages.ia=Interlingua
-languages.hit=Hitit\u00e7e
+languages.fat=Fanti
languages.uk=Ukraynaca
+languages.egy=Eski M\u0131s\u0131r Dili
+languages.zxx=Dilbilim i\u00e7eri\u011fi yok
languages.ug=Uygurca
-languages.cpf=Creoles ve Pidgins, Frans\u0131zca tabanl\u0131 (Di\u011fer)
-languages.fiu=Finno - Ugrian (Di\u011fer)
-languages.hy=Ermenice
-languages.cpe=Creoles ve Pidgins, \u0130ngilizce tabanl\u0131 (Di\u011fer)
-languages.nub=Nubian Dilleri
-languages.hu=Macarca
-languages.ht=Haiti Dili
-languages.wak=Wakashan Dilleri
-languages.phi=Filipinler Dili (Di\u011fer)
-languages.hr=H\u0131rvat\u00e7a
+languages.fan=Fang
+languages.ssa=Di\u011fer Nil-Sahara Dilleri
+languages.mga=Orta\u00e7a\u011f \u0130rlandacas\u0131
+languages.bat=Di\u011fer Balt\u0131k Dilleri
+languages.nyo=Nyoro
+languages.bas=Basa Dili
+languages.nyn=Nyankole
+languages.nym=Nyamwezi
+languages.gsw=\u0130svi\u00e7re Almancas\u0131
+languages.hmn=Hmong
+languages.ban=Bali Dili
+languages.osa=Osage
+languages.bal=Baluchi
languages.ty=Tahiti Dili
-languages.apa=Apa\u00e7i Dilleri
+languages.bai=Bamileke Dilleri
languages.tw=Twi
-languages.goh=Almanca (750-1050)
+languages.srr=Serer
+languages.tli=Tlingit
+languages.tlh=Klingon
languages.tt=Tatarca
-languages.hi=Hint Dili
languages.ts=Tsonga
-languages.mno=Manobo Dilleri
+languages.srn=Sranan Tongo
+languages.bad=Banda Dili
languages.tr=T\u00fcrk\u00e7e
-languages.sal=Salishan Dilleri
-languages.he=\u0130branice
-languages.cop=Kiptice
-languages.to=Tonga (Tonga Adalar\u0131)
+languages.to=Tonga
languages.tn=Setswana
-languages.sai=G\u00fcney Amerika Yerlileri Dili (Di\u011fer)
-languages.sms=Skolt Sami
languages.tl=Tagalog
-languages.ha=Hausa
languages.tk=T\u00fcrkmence
-languages.dum=Felemenk\u00e7e (1050-1350)
languages.ti=Tigrinya
languages.th=Tay Dili
-languages.smn=Inari Sami
+languages.kru=Kurukh
languages.tg=Tacik Dili
-languages.mnc=Man\u00e7urya Dili
+languages.byn=Blin
languages.te=Telugu
-languages.smj=Lule Sami
-languages.smi=Sami Dilleri (Di\u011fer)
+languages.kro=Kru
+languages.csb=Kashubian
languages.ta=Tamil
-languages.syr=S\u00fcryanice
-languages.gu=Gujarati
-languages.inh=\u0130ngu\u015f Dili
-languages.sma=G\u00fcney Sami
-languages.ine=Hint-Avrupa (Di\u011fer)
-languages.gn=Guarani
-languages.inc=Hint\u00e7e (Di\u011fer)
+languages.krl=Karelian
+languages.tkl=Tokelau
+languages.efi=Efik
languages.sw=Swahili
-languages.gl=Gali\u00e7ya Dili
languages.sv=\u0130sve\u00e7\u00e7e
-languages.su=Sudan Dili
-languages.st=Sesotho
-languages.enm=\u0130ngilizce (1100-1500)
+languages.su=Sunda Dili
+languages.krc=Kara\u00e7ay-Balkar
+languages.st=G\u00fcney Sotho
languages.ss=Siswati
-languages.mad=Madura Dili
languages.sr=S\u0131rp\u00e7a
languages.sq=Arnavut\u00e7a
+languages.men=Mende
+languages.crp=Di\u011fer Creole ve Pidgin Dilleri
languages.so=Somali Dili
-languages.gd=\u0130sko\u00e7 Gal Dili
+languages.afh=Afrihili
languages.sn=Shona
languages.sm=Samoa Dili
languages.sl=Slovence
-languages.ga=\u0130rlanda Dili
+languages.grc=Antik Yunanca
languages.sk=Slovak\u00e7a
+languages.grb=Grebo
languages.si=Sinhal Dili
languages.sh=S\u0131rp-H\u0131rvat Dili
+languages.crh=K\u0131r\u0131m T\u00fcrk\u00e7esi
+languages.afa=Di\u011fer Afro-Asyatik Diller
languages.sg=Sangho
languages.se=Kuzey Sami
-languages.fy=Frizye Dili
languages.sd=Sindhi
+languages.udm=Udmurt\u00e7a
languages.sc=Sardunya Dili
languages.sa=Sanskrit\u00e7e
-languages.cau=Kafkas\u00e7a (Di\u011fer)
-languages.ang=Eski \u0130ngilizce (450-1100)
-languages.fr=Frans\u0131zca
-languages.sla=Slav Dilleri (Di\u011fer)
-languages.fo=Faroe Dili
-languages.pro=Eski Proven\u00e7al (1500'e kadar)
languages.rw=Kinyarwanda
-languages.gmh=Almanca (1050-1500)
+languages.nwc=Klasik Nevari
languages.ru=Rus\u00e7a
-languages.fj=Fiji Dili
-languages.fi=Fince
-languages.cai=Orta Amerika Yerlileri (Di\u011fer)
+languages.mdr=Mandar
languages.ro=Romence
-languages.cad=Caddo
languages.rn=Kirundi
-languages.hsb=Yukar\u0131 Sorb\u00e7a
languages.rm=Rhaeto-Roman Dili
-languages.fa=Fars\u00e7a
-languages.pra=Prakrit Dilleri
-languages.peo=Eski Fars\u00e7a (600-400 M.\u00d6.)
+languages.fr_CH=\u0130svi\u00e7re Frans\u0131zcas\u0131
+languages.mdf=Moksha
+languages.tiv=Tiv
+languages.fr_CA=Kanada Frans\u0131zcas\u0131
+languages.ady=\u00c7erkezce
+languages.zun=Zuni
+languages.kpe=Kpelle
+languages.qu=Quechua
+languages.tig=Tigre
+languages.son=Songhai
+languages.cpp=Di\u011fer Portekizce tabanl\u0131 Creole ve Pidgin Dilleri
+languages.rup=Aromanca
+languages.sog=Sogdiana\u00a0Dili
+languages.ada=Adangme
+languages.kos=Kosraean
+languages.hit=Hitit\u00e7e
+languages.cpf=Di\u011fer Frans\u0131zca tabanl\u0131 Creole ve Pidgin Dilleri
+languages.cpe=Di\u011fer \u0130ngilizce tabanl\u0131 Creole ve Pidgin Dilleri
+languages.him=Himachali
+languages.kok=Konkani
+languages.hil=Hiligaynon
+languages.got=Got\u00e7a
+languages.gor=Gorontalo
+languages.gon=Gondi
+languages.din=Dinka
+languages.nub=Nubian Dilleri
+languages.pt=Portekizce
+languages.ps=Pe\u015ftuca
+languages.fur=Friulian
+languages.phn=Fenike Dili
+languages.de_CH=\u0130svi\u00e7re Y\u00fcksek Almancas\u0131
+languages.goh=Eski Y\u00fcksek Almanca
+languages.snk=Soninke
+languages.cop=Kiptice
+languages.yap=Yap\u00e7a
+languages.ach=Acoli
+languages.yao=Yao
+languages.phi=Di\u011fer Filipinler Dilleri
+languages.pl=Leh\u00e7e
+languages.ace=Achinese
+languages.pi=Pali
+languages.pt_PT=\u0130ber Portekizcesi
+languages.pa=Pencap Dili
+languages.bug=Bugis
+languages.iba=Iban
+languages.sms=Skolt Sami
+languages.bua=Buryat
+languages.mas=Masai
+languages.smn=Inari Sami
+languages.os=Oset
+languages.map=Avustronezya Dili
+languages.or=Oriya
+languages.man=Mandingo
+languages.smj=Lule Sami
+languages.smi=Di\u011fer Sami Dilleri
+languages.mak=Makasar
+languages.om=Oromo
+languages.mai=Maithili
+languages.oj=Ojibwa
+languages.mag=Magahi
+languages.mad=Madura Dili
+languages.sma=G\u00fcney Sami
+languages.oc=Occitan
+languages.nso=Kuzey Sotho
+languages.btk=Batak
+languages.myv=Erzya
+languages.es_ES=\u0130ber \u0130spanyolcas\u0131
+languages.de_AT=Avusturya Almancas\u0131
+languages.dgr=Dogrib
+languages.ny=Nyanja
+languages.myn=Maya Dilleri
+languages.nv=Navaho Dili
+languages.kmb=Kimbundu
+languages.nr=G\u00fcney Ndebele
+languages.gmh=Orta\u00e7a\u011f Y\u00fcksek Almancas\u0131
+languages.no=Norve\u00e7\u00e7e
+languages.nn=Norve\u00e7\u00e7e Nynorsk
+languages.nl=Hollanda Dili
+languages.root=K\u00f6ken
+languages.ng=Ndonga
+languages.sla=Di\u011fer Slav Dilleri
+languages.ne=Nepalce
+languages.nd=Kuzey Ndebele
languages.cmc=Chamic Dilleri
-languages.eu=Bask Dili
+languages.tet=Tetum
+languages.nb=Norve\u00e7\u00e7e Bokm\u00e5l
+languages.na=Nauru Dili
+languages.ter=Tereno
+languages.tem=Timne
+languages.my=Birmanya Dili
+languages.lez=Lezgice
+languages.mt=Malta Dili
+languages.frs=Do\u011fu Frizcesi
+languages.peo=Eski Fars\u00e7a
+languages.ms=Malay
+languages.frr=Kuzey Frizce
+languages.mr=Marathi
+languages.fro=Eski Frans\u0131zca
+languages.mo=Moldovaca
+languages.mn=Mo\u011folca
+languages.frm=Orta\u00e7a\u011f Frans\u0131zcas\u0131
+languages.ml=Malayalam
+languages.jrb=Yahudi Arap\u00e7as\u0131
+languages.mk=Makedonca
+languages.mi=Maori
+languages.mh=Marshall Adalar\u0131 Dili
+languages.mg=Malaga Dili
+languages.nqo=N\u2019Ko
+languages.mwr=Marwari
+languages.bra=Braj
+languages.mwl=Miranda Dili
+languages.den=Slavey
+languages.lv=Letonya Dili
+languages.lu=Luba-Katanga
+languages.del=Delaware
+languages.lt=Litvanya Dili
+languages.lo=Laos Dili
+languages.ln=Lingala
+languages.li=Limburgish
+languages.ewo=Ewondo
+languages.lg=Ganda
+languages.lb=L\u00fcksemburg Dili
+languages.la=Latince
+languages.jpr=Yahudi Fars\u00e7as\u0131
+languages.vot=Votic
+languages.sit=Di\u011fer Sino-Tibet Dilleri
+languages.ky=K\u0131rg\u0131zca
+languages.kw=Cornish
+languages.kv=Komi
+languages.ku=K\u00fcrt\u00e7e
+languages.sio=Siu Dilleri
+languages.ks=Ke\u015fmirce
+languages.kr=Kanuri
+languages.awa=Awadhi
+languages.ko=Korece
+languages.kn=Kannada
+languages.km=Kambo\u00e7ya Dili
+languages.en_GB=\u0130ngiliz \u0130ngilizcesi
+languages.kl=Gr\u00f6nland Dili
+languages.kk=Kazak Dili
+languages.rom=Romanca
+languages.kj=Kuanyama
+languages.sid=Sidamo
+languages.ki=Kikuyu
+languages.kg=Kongo
+languages.non=Old Norse
+languages.ka=G\u00fcrc\u00fcce
+languages.mus=Creek
+languages.roa=Di\u011fer Roman Dilleri
+languages.nog=Nogay Dili
+languages.mun=Munda Dilleri
+languages.mul=Birden Fazla Dil
+languages.jv=Java Dili
+languages.gil=Gilbertese
+languages.znd=Zande
+languages.shn=Shan Dili
+languages.fon=Fon
+languages.xal=Kalm\u0131k
+languages.aus=Avustralya Dilleri
+languages.kho=Hotanca
+languages.ja=Japonca
+languages.khi=Di\u011fer Hoisan Dilleri
+languages.pau=Palau Dili
+languages.chy=\u015eayen Dili
+languages.tai=Tay Dili (Di\u011fer)
+languages.iu=Inuktitut
+languages.pap=Papiamento
+languages.it=\u0130talyanca
+languages.sgn=\u0130\u015faret Dilleri
+languages.is=\u0130zlandaca
+languages.kha=Khasi
+languages.chr=\u00c7eroki
+languages.pam=Pampanga
+languages.pal=Pehlevi
+languages.chp=Chipewyan
+languages.io=Ido
+languages.cho=Choctaw
+languages.chn=Chinook Jargon
+languages.chm=Mari
+languages.tyv=Tuvaca
+languages.bnt=Bantu Dili
+languages.pag=Pangasinan
+languages.ik=Inupiak
+languages.chk=Chuukese
+languages.ii=Sichuan Yi
+languages.haw=Hawaii Dili
+languages.lam=Lamba
+languages.ig=Igbo
+languages.chg=\u00c7a\u011fatay Dili
+languages.sga=Eski \u0130rlandaca
+languages.paa=Di\u011fer Papua Dilleri
+languages.ie=Interlingue
+languages.id=Endonezya Dili
+languages.lah=Lahnda
+languages.day=Dayak
+languages.chb=Chibcha
+languages.ia=Interlingua
+languages.lad=Ladino
+languages.hz=Herero
+languages.hai=Haida
+languages.dar=Dargva
+languages.hy=Ermenice
+languages.ath=Ataba\u015fkan Dilleri
+languages.hu=Macarca
+languages.ht=Haiti Dili
+languages.dak=Dakota
+languages.hr=H\u0131rvat\u00e7a
+languages.ho=Hiri Motu
+languages.hi=Hint\u00e7e
+languages.dyu=Dyula
+languages.he=\u0130branice
+languages.ast=Asturyasca
+languages.kfo=Koro
+languages.ha=Hausa
+languages.wen=Sorb Dilleri
+languages.gv=Manks
+languages.gu=Gujarati
+languages.sem=Di\u011fer Semitik Diller
+languages.sel=Selkup
+languages.iro=Iroquoian Dilleri
+languages.gn=Guarani
+languages.gl=Gali\u00e7ya Dili
+languages.en_CA=Kanada \u0130ngilizcesi
+languages.arw=Arawak Dili
+languages.gez=Geez
+languages.art=Di\u011fer Yapay Diller
+languages.gd=\u0130sko\u00e7 Gal Dili
+languages.ira=Di\u011fer \u0130ran Dilleri
+languages.ga=\u0130rlanda Dili
+languages.arp=Arapaho Dili
+languages.arn=Araucanian Dili
+languages.fy=Bat\u0131 Frizcesi
+languages.bla=Siksika
+languages.gem=Di\u011fer Germen Dilleri
+languages.ypk=Yupik Dilleri
+languages.arc=Aramice
+languages.fr=Frans\u0131zca
+languages.fo=Faroe Dili
+languages.cel=Di\u011fer Kelt Dilleri
+languages.fj=Fiji Dili
+languages.fi=Fince
+languages.ff=Fulah
+languages.tvl=Tuvalu
+languages.ceb=Cebuano
+languages.fa=Fars\u00e7a
+languages.en_AU=Avustralya \u0130ngilizcesi
+languages.zh_Hans=Basitle\u015ftirilmi\u015f \u00c7ince
+languages.zh_Hant=Geleneksel \u00c7ince
+languages.eu=Bask\u00e7a
+languages.sco=\u0130sko\u00e7
languages.et=Estonya Dili
-languages.dsb=A\u015fa\u011f\u0131 Sorb\u00e7a
-languages.elx=Elam
+languages.scn=Sicilya Dili
languages.es=\u0130spanyolca
languages.eo=Esperanto
languages.en=\u0130ngilizce
languages.el=Yunanca
-languages.qu=Quechua
-languages.fro=Frans\u0131zca (842-1400)
-languages.frm=Frans\u0131zca (1400-1600)
+languages.tut=Di\u011fer Altay Dilleri
+languages.niu=Niuean
+languages.tup=Tupi dilleri
languages.ee=Ewe
-languages.mkh=Mon-Khmer (Di\u011fer)
-languages.dz=Bhutan Dili
-languages.nds=A\u015fa\u011f\u0131 Almanca; A\u015fa\u011f\u0131 Sakson
-languages.alg=Algonquian Dilleri
-languages.dra=Dravidian (Di\u011fer)
-languages.pt=Portekizce
-languages.ber=Berberi
-languages.ps=Pe\u015ftun Dili
+languages.tum=Tumbuka
+languages.nl_BE=Felemenk\u00e7e
+languages.es_419=Latin Amerika \u0130spanyolcas\u0131
+languages.mos=Mossi
+languages.dz=Butan Dili
+languages.kcg=Tyap
+languages.nic=Di\u011fer Nijer-Kordofan Dilleri
+languages.lus=Lushai
+languages.fiu=Di\u011fer Finno - Ugrik Dilleri
+languages.dv=Divehi
+languages.nia=Nias
+languages.moh=Mohawk
+languages.luo=Luo
+languages.lun=Lunda
+languages.apa=Apa\u00e7i Dilleri
+languages.fil=Filipino
+languages.lui=Luiseno
+languages.hup=Hupa
+languages.cch=Atsam
+languages.bin=Bini
languages.de=Almanca
-languages.sit=\u00c7in-Tibet (Di\u011fer)
-languages.pl=Polonya Dili
+languages.lua=Luba-Lulua
+languages.bik=Bikol
+languages.was=Washo
+languages.und=Bilinmeyen veya Ge\u00e7ersiz Dil
+languages.war=Waray
languages.da=Danca
-languages.sio=Siu Dilleri
-languages.sux=S\u00fcmer
-languages.cy=Gal Dili
-languages.akk=Akad Dili
+languages.dum=Orta\u00e7a\u011f Felemenk\u00e7esi
+languages.wal=Walamo
+languages.mno=Manobo Dilleri
+languages.wak=Wakashan Dilleri
+languages.sat=Santali
+languages.cy=Galce
+languages.sas=Sasak
+languages.kbd=Kabardeyce
languages.cv=\u00c7uva\u015f
-languages.pa=Pencap Dili
languages.cu=Kilise Slavcas\u0131
+languages.mni=Manipuri
languages.cs=\u00c7ek\u00e7e
-languages.rom=Romanca
+languages.sam=Samarit Aramcas\u0131
+languages.cr=Cree
+languages.sal=Salishan Dilleri
+languages.dua=Duala
languages.co=Korsika Dili
-languages.mis=\u00c7e\u015fitli Diller
-languages.os=Oset
-languages.or=Oriya
-languages.roa=Roman Dili (Di\u011fer)
+languages.sai=Di\u011fer G\u00fcney Amerika Yerli Dilleri
+languages.mnc=Man\u00e7urya Dili
+languages.sah=Yakut\u00e7a
+languages.kaw=Kawi
+languages.inh=\u0130ngu\u015f Dili
+languages.gba=Gbaya
+languages.sad=Sandawe
+languages.ch=Chamorro
+languages.ine=Di\u011fer Hint-Avrupa Dilleri
+languages.bho=Bhojpuri
+languages.enm=Orta\u00e7a\u011f \u0130ngilizcesi
+languages.kar=Karen
+languages.inc=Di\u011fer Hint Dilleri
languages.ce=\u00c7e\u00e7ence
-languages.om=Oromo (Afan)
-languages.ca=Katalan Dili
-languages.oj=Ojibwa
-languages.mun=Munda Dilleri
-languages.mul=Birden Fazla Diller
-languages.oc=Occitan (1500 sonras\u0131); Proven\u00e7al
-languages.bs=Bosna Dili
-languages.kum=Kumuk\u00e7a
-languages.xal=Kalm\u0131k
+languages.gay=Gayo
+languages.ca=Katalanca
+languages.umb=Umbundu
+languages.syr=S\u00fcryanice
+languages.kam=Kamba
+languages.anp=Angika
+languages.tsi=Tsimshian
+languages.kaj=Jju
+languages.ang=Eski \u0130ngilizce
+languages.kac=Ka\u00e7in
+languages.cau=Di\u011fer Kafkas Dilleri
+languages.kab=Kabile
+languages.kaa=Karakalpak\u00e7a
+languages.bs=Bo\u015fnak\u00e7a
+languages.car=Carib
languages.br=Breton Dili
+languages.syc=Klasik S\u00fcryanice
languages.bo=Tibet\u00e7e
languages.bn=Bengal Dili
+languages.bm=Bambara
+languages.gaa=Ga
+languages.cai=Di\u011fer Orta Amerika Yerli Dilleri
languages.bi=Bislama
languages.bh=Bihari
-languages.nr=G\u00fcney Ndebele
languages.bg=Bulgarca
languages.be=Beyaz Rus\u00e7a
-languages.oto=Osmanl\u0131 Dilleri
-languages.no=Norve\u00e7\u00e7e
-languages.nn=Norve\u00e7\u00e7e Nynorsk
-languages.tai=Tay Dili (Di\u011fer)
-languages.nl=Hollanda Dili
+languages.pt_BR=Brezilya Portekizcesi
+languages.cad=Caddo
languages.ba=Ba\u015fk\u0131rt Dili
languages.zu=Zulu
-languages.pau=Palau Dili
-languages.sgn=\u0130\u015faret Dilleri
-languages.cus=Cushitic (Di\u011fer)
+languages.zen=Zenaga
+languages.pro=Eski Provensal
+languages.hsb=Yukar\u0131 Sorb\u00e7a
languages.az=Azerice
-languages.khi=Khoisan (Di\u011fer)
-languages.ne=Nepal Dili
languages.ay=Aymara
-languages.nd=Kuzey Ndebele
-languages.nb=Norve\u00e7 Kitap Dili
languages.av=Avar Dili
-languages.ota=Osmanl\u0131ca (1500-1928)
-languages.na=Nauru
-languages.aus=Avustralya Dilleri
+languages.as=Assamca
+languages.dsb=A\u015fa\u011f\u0131 Sorb\u00e7a
languages.ar=Arap\u00e7a
+languages.ilo=Iloko
+languages.elx=Elam
languages.zh=\u00c7ince
-languages.sga=Eski \u0130rlandaca (900'e kadar)
-languages.my=Birmanya Dili
-languages.chy=\u00c7eyen
+languages.an=Aragonca
+languages.pra=Prakrit Dilleri
languages.am=Amharik
-languages.nai=Kuzey Amerika Yerlileri Dili (Di\u011fer)
+languages.new=Newari
+languages.ak=Akan
languages.za=Zhuang
-languages.paa=Papua Dili (Di\u011fer)
-languages.mt=Malta Dili
-languages.ms=Malay
-languages.mr=Marathi
-languages.chr=\u00c7eroki
+languages.en_US=Amerikan \u0130ngilizcesi
languages.af=Afrikaan Dili
-languages.ssa=Nil-Sahara (Di\u011fer)
-languages.mo=Moldavya Dili
-languages.haw=Hawaii Dili
-languages.mn=Mo\u011fol Dili
-languages.ab=Abazca
+languages.ae=Avest\u00e7e
+languages.alt=G\u00fcney Altayca
+languages.ab=Abazaca
languages.aa=Afar
-languages.ml=Malayalam
-languages.mk=Makedonca
-languages.mi=Maori
-languages.mh=Marshall Adalar\u0131 Dili
-languages.mg=Malaga Dili
-languages.chg=\u00c7a\u011fatay Dili
-languages.mga=\u0130rlanda Dili (900-1200)
languages.yo=Yoruba
-languages.osa=Osage
-languages.egy=M\u0131s\u0131r Dili (Eski)
+languages.alg=Algonquian Dilleri
+languages.ale=Aleut
+languages.mkh=Di\u011fer Mon-Khmer Dilleri
languages.yi=Yiddi\u015f
-languages.wen=Sorb Dilleri
-languages.lv=Letonya Dili
-languages.bat=Balt\u0131k (Di\u011fer)
-languages.ath=Athapascan Dilleri
-languages.lt=Litvanya Dili
-languages.ban=Bali Dili
-languages.lo=Laos Dili
-languages.ln=Lingala
-languages.bai=Bamileke Dilleri
-languages.sem=Sami (Di\u011fer)
+languages.dra=Di\u011fer Dravid Dilleri
+languages.ber=Berberi
+languages.nds=A\u015fa\u011f\u0131 Almanca
+languages.bem=Bemba
+languages.bej=Beja Dili
+languages.tpi=Tok Pisin
+variants.POSIX=Bilgisayar
+variants.AREVMDA=Bat\u0131 Ermenicesi
+variants.1996=1996 Alman Yaz\u0131m Kurallar\u0131
+variants.SOLBA=Stolvizza/Solbica Leh\u00e7esi
+variants.NEDIS=Natisone Leh\u00e7esi
+variants.1994=Standart Resia Yaz\u0131m Kurallar\u0131
+variants.1901=Geleneksel Alman Yaz\u0131m Kurallar\u0131
+variants.FONUPA=UPA Fonetik
+variants.OSOJS=Oseacco/Osojane Leh\u00e7esi
+variants.LIPAW=Resia Lipovaz Leh\u00e7esi
+variants.REVISED=G\u00f6zden Ge\u00e7irilmi\u015f Yaz\u0131m Kurallar\u0131
+variants.NJIVA=Gniva/Njiva Leh\u00e7esi
+variants.TARASK=Taraskievica Yaz\u0131m Kurallar\u0131
+variants.FONIPA=IPA Fonetik
+variants.BISKE=San Giorgio/Bila Leh\u00e7esi
+variants.SCOUSE=Scouse
+variants.BAKU1926=Birle\u015ftirilmi\u015f Yeni T\u00fcrk Alfabesi
+variants.SAAHO=Saho
+variants.ROZAJ=Resia Leh\u00e7esi
+variants.MONOTON=Monotonik
+variants.POLYTON=Politonik
+variants.AREVELA=Do\u011fu Ermenicesi
+variants.SCOTLAND=\u0130sko\u00e7 Standart \u0130ngilizcesi
+variants.BOONT=Boontling
+variants.1606NICT=1606'ya Dek Ge\u00e7 Orta\u00e7a\u011f Frans\u0131zcas\u0131
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_trv.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_trv.properties
new file mode 100644
index 0000000..7774c65
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_trv.properties
@@ -0,0 +1,80 @@
+# LocaleInformation_trv.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4\u00a0#,##0.00;-\u00a4\u00a0#,##0.00
+currenciesDisplayName.TWD=pila Taiwan
+currenciesDisplayName.INR=pila Intia
+currenciesDisplayName.NOK=pila Nowey
+currenciesDisplayName.JPY=pila Nihong
+currenciesDisplayName.RUB=pila Ruski
+currenciesDisplayName.BRL=pila Pajey
+currenciesDisplayName.CNY=pila Ipaw
+currenciesDisplayName.AUD=pila Autaria
+currenciesDisplayName.HKD=pila Hong Kong
+currenciesDisplayName.USD=pila America
+currenciesDisplayName.XXX=ini klayi pila ni
+currenciesDisplayName.MOP=pila Macao
+currenciesDisplayName.EUR=pila Irow
+currenciesDisplayName.GBP=pila Inglis
+shortMonths=Kii\u00aeDhi\u00aeTri\u00aeSpi\u00aeRii\u00aeMti\u00aeEmi\u00aeMai\u00aeMni\u00aeMxi\u00aeMxk\u00aeMxd\u00ae\u00ae
+months=Kingal idas\u00aeDha idas\u00aeTru idas\u00aeSpat idas\u00aeRima idas\u00aeMataru idas\u00aeEmpitu idas\u00aeMaspat idas\u00aeMngari idas\u00aeMaxal idas\u00aeMaxal kingal idas\u00aeMaxal dha idas\u00ae\u00ae
+shortWeekdays=\u00aeEmp\u00aeKin\u00aeDha\u00aeTru\u00aeSpa\u00aeRim\u00aeMat\u00ae
+weekdays=\u00aeJiyax sngayan\u00aetgKingal jiyax iyax sngayan\u00aetgDha jiyax iyax sngayan\u00aetgTru jiyax iyax sngayan\u00aetgSpac jiyax iyax sngayan\u00aetgRima jiyax iyax sngayan\u00aetgMataru jiyax iyax sngayan\u00ae
+eras=BRY\u00aeBUY\u00ae
+ampms=Brax kndaax\u00aeBaubau kndaax\u00ae
+shortDateFormat=yyyy-MM-dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Atlantic\u00aeSnegun Jikan Yayun Tasiyan\u00aeSJYT\u00aeJikan Yayun Tasiyan o Karat Rbagan\u00aeJYTKR\u00ae\u00a9America_Eastern\u00aeSnegun Jikan Ton-Amarika\u00aeSJTA\u00aeJikan Ton-Amarika o Karat Rbagan\u00aeJTAKR\u00ae\u00a9Europe_Eastern\u00aeJikan Tonow\u00aeJT\u00aeJikan Tonow o Karat Rbagan\u00aeJTKR\u00ae\u00a9Europe_Central\u00aeJikan Conow\u00aeJC\u00aeJikan Conow o Karat Rbagan\u00aeJCKR\u00ae\u00a9GMT\u00aeJikan Quri Grinweyji\u00aeJQG\u00ae\u00ae\u00ae\u00a9America_Central\u00aeSnegun Jikan Con-Amarika\u00aeSJCA\u00aeJikan Con-Amarika o Karat Rbagan\u00aeJCAKR\u00ae\u00a9America_Pacific\u00aeSnegun Jikan Amarika-Daybinyan\u00aeSJAD\u00aeJikan Amarika-Daybinyan o Karat Rbagan\u00aeJADKR\u00ae\u00a9America_Mountain\u00aeSnegun Jikan Yama-Amarika\u00aeSJYA\u00aeJikan Hidaw niq Yama-Amarika\u00aeJHYA\u00ae\u00a9Europe_Western\u00aeJikan Siow\u00aeJS\u00aeJikan Siow o Karat Rbagan\u00aeJSKR\u00ae\u00a9
+territories.IT=alang Itariya
+territories.FR=alang Posey
+territories.BA=alang Posniya
+territories.TF=alang Posey niq Nan
+territories.RU=alang Ruski
+territories.RS=alang Srbia
+territories.CN=alang Ipaw
+territories.US=alang Amarika
+territories.IO=alang Inglis niq Intu
+territories.IN=alang Intu
+territories.CH=alang Switjrrant
+territories.GS=alang Nanjiouya ni Nansanminji
+territories.AQ=alang Nanci
+territories.JP=alang Nihong
+territories.SM=alang Snmarinow
+territories.BV=alang Puwei
+territories.DE=alang Towjih
+territories.ZZ=ini klayi na alang ni
+territories.BR=alang Pajey
+territories.ME=alang Mondineygrw
+territories.HR=alang Krowtia
+territories.GB=alang Inglis
+territories.HM=alang Htee ni Mayktan
+languages.zh=patas Ipaw
+languages.sr=patas Srpian
+languages.en=patas Ingrisi
+languages.pt_BR=patas Pajey
+languages.bn=patas Monchiara
+languages.ru=patas Ruski
+languages.hi=patas Heyti
+languages.ur=patas Yurtu
+languages.it=patas Itariya
+languages.fr=patas Bosey
+languages.und=Ini klayna patas ni
+languages.de=patas Towjih
+languages.es=patas Espanniu
+languages.ja=patas Nihong
+languages.zh_Hans=Qantan Ipaw patas
+languages.zh_Hant=Baday Ipaw patas
+languages.pt=patas Bowdu
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ts.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ts.properties
new file mode 100644
index 0000000..d3540cd
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ts.properties
@@ -0,0 +1,51 @@
+# LocaleInformation_ts.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Sun\u00aeYan\u00aeKul\u00aeDzi\u00aeMud\u00aeKho\u00aeMaw\u00aeMha\u00aeNdz\u00aeNhl\u00aeHuk\u00aeN'w\u00ae\u00ae
+months=Sunguti\u00aeNyenyenyani\u00aeNyenyankulu\u00aeDzivamisoko\u00aeMudyaxihi\u00aeKhotavuxika\u00aeMawuwani\u00aeMhawuri\u00aeNdzhati\u00aeNhlangula\u00aeHukuri\u00aeN'wendzamhala\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMus\u00aeBir\u00aeHar\u00aeNe\u00aeTlh\u00aeMug\u00ae
+weekdays=\u00aeSonto\u00aeMusumbhunuku\u00aeRavumbirhi\u00aeRavunharhu\u00aeRavumune\u00aeRavuntlhanu\u00aeMugqivela\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.ja=Xi Japani
+languages.ts=Xitsonga
+languages.en=Xi Nghezi
+languages.ko=Xikorea
+languages.no=Xi Norway
+languages.el=Xi Giriki
+languages.nl=Xi bunu
+languages.lv=hi xi Latvia
+languages.he=XiHeberu
+languages.cs=Xi Czech
+languages.it=Xi Ithali
+languages.lt=hi xi Lithuania
+languages.is=hi xi Iceland
+languages.fr=Xi Furwa
+languages.ru=Xi Rhaxiya
+languages.ro=hi xi Romania
+languages.fi=Xi Finnish
+languages.sv=Xi Swiden
+languages.pt=Putukezi
+languages.pl=Xi Polixi
+languages.de=Xi Jarimani
+languages.hu=hi xi Hungary
+languages.et=hi xi Estonia
+languages.es=Xi spain
+languages.da=Xi Danish
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tt.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tt.properties
index fe92ef7..d12ed61 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tt.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_tt.properties
@@ -7,6 +7,21 @@
decimalSeparator=,
groupingSeparator=\u00a0
+currencyFormat=#,##0.00\u00a4;-#,##0.00\u00a4
currenciesSymbol.RUR=\u0440.
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd.MM.yyyy
+mediumDateFormat=dd.MM.yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=d MMMM yyyy
+shortTimeFormat=H:mm
+mediumTimeFormat=H:mm:ss
+longTimeFormat=H:mm:ss z
+fullTimeFormat=h:mm:ss a z
territories.RU=\u0420\u043e\u0441\u0441\u0438\u044f
languages.tt=\u0422\u0430\u0442\u0430\u0440
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ug.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ug.properties
new file mode 100644
index 0000000..7dc07d9
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ug.properties
@@ -0,0 +1,22 @@
+# LocaleInformation_ug.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+variants.REVISED=Uyghur
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uk.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uk.properties
index 2716f7b..26d5aee 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uk.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uk.properties
@@ -5,144 +5,172 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+infinity=\u221e
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=\u00a0
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
currenciesDisplayName.YDD=\u0404\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.TWD=\u041d\u043e\u0432\u0438\u0439 \u0442\u0430\u0439\u0432\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.KES=\u041a\u0435\u043d\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0448\u0438\u043b\u0456\u043d\u0433
-currenciesDisplayName.BYB=\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1994-1999)
+currenciesDisplayName.TWD=\u041d\u043e\u0432\u0438\u0439 \u0442\u0430\u0439\u0432\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.LKR=\u0428\u0440\u0456-\u043b\u0430\u043d\u043a\u0456\u0439\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
-currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.BYB=\u0431\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1994-1999)
currenciesDisplayName.TJS=\u0422\u0430\u0434\u0436\u0438\u0446\u044c\u043a\u0438\u0439 \u0441\u043e\u043c\u043e\u043d\u0456
-currenciesDisplayName.SDP=\u0421\u0443\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u0446\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.RWF=\u0420\u0443\u0430\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.ERN=\u0415\u0440\u0438\u0442\u0440\u0435\u0439\u0441\u044c\u043a\u0430 \u043d\u0430\u043a\u0444\u0430
-currenciesDisplayName.AFN=\u0410\u0444\u0433\u0430\u043d\u0456
+currenciesDisplayName.TJR=\u0422\u0430\u0434\u0436\u0438\u0446\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.SDP=\u0421\u0442\u0430\u0440\u0438\u0439 \u0441\u0443\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
currenciesDisplayName.GRD=\u0413\u0440\u0435\u0446\u044c\u043a\u0430 \u0434\u0440\u0430\u0445\u043c\u0430
+currenciesDisplayName.AFN=\u0410\u0444\u0433\u0430\u043d\u0456
currenciesDisplayName.IEP=\u0406\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.ARS=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
+currenciesDisplayName.SDG=\u0421\u0443\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.ARP=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e (1983-1985)
currenciesDisplayName.SDD=\u0421\u0443\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.ARP=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e (1983-1985)
currenciesDisplayName.GEL=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u043b\u0430\u0440\u0456
+currenciesDisplayName.GEK=\u0433\u0440\u0443\u0437\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u0443\u043f\u043e\u043d
currenciesDisplayName.AFA=\u0410\u0444\u0433\u0430\u043d\u0456 (1927-2002)
-currenciesDisplayName.CRC=\u041a\u043e\u0441\u0442\u0430-\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
+currenciesDisplayName.CRC=\u041a\u043e\u0441\u0442\u0430\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
currenciesDisplayName.FKP=\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
currenciesDisplayName.EEK=\u0415\u0441\u0442\u043e\u043d\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.HKD=\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0456\u0432\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.MDL=\u041c\u043e\u043b\u0434\u043e\u0432\u0441\u044c\u043a\u0438\u0439 \u043b\u0435\u0439
-currenciesDisplayName.ARA=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u0430\u0432\u0441\u0442\u0440\u0430\u043b
+currenciesDisplayName.HKD=\u0413\u043e\u043d\u043a\u043e\u043d\u0433\u0456\u0432\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.IQD=\u0406\u0440\u0430\u043a\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.ARA=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u0430\u0432\u0441\u0442\u0440\u0430\u043b
currenciesDisplayName.SCR=\u0421\u0435\u0439\u0448\u0435\u043b\u044c\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
currenciesDisplayName.VUV=\u0412\u0430\u043d\u0443\u0430\u0442\u0441\u044c\u043a\u0430 \u0432\u0430\u0442\u0443
-currenciesDisplayName.DKK=\u0414\u0430\u0442\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.KPW=\u0412\u043e\u043d\u0430 \u041f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0457 \u041a\u043e\u0440\u0435\u0457
+currenciesDisplayName.DKK=\u0414\u0430\u0442\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.IDR=\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
-currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.GQE=\u0415\u043a\u0432\u0435\u043b\u0435 (\u0415\u043a\u0432\u0430\u0442\u043e\u0440\u0456\u0430\u043b\u044c\u043d\u0430 \u0490\u0432\u0456\u043d\u0435\u044f)
currenciesDisplayName.SOS=\u0421\u043e\u043c\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0448\u0438\u043b\u0456\u043d\u0433
+currenciesDisplayName.LVR=\u041b\u0430\u0442\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.EQE=\u0415\u043a\u0432\u0435\u043b\u0435
currenciesDisplayName.AED=\u0414\u0438\u0440\u0445\u0435\u043c \u041e\u0410\u0415
-currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0441\u044c\u043a\u0430 \u043f\u0443\u043b\u0430
currenciesDisplayName.LVL=\u041b\u0430\u0442\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u043b\u0430\u0442
-currenciesDisplayName.RUR=\u0420\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (1991-1998)
+currenciesDisplayName.BWP=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0441\u044c\u043a\u0430 \u043f\u0443\u043b\u0430
+currenciesDisplayName.RUR=\u0440\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c (RUR)
currenciesDisplayName.NIO=\u041d\u0456\u043a\u0430\u0440\u0430\u0433\u0443\u0430\u043d\u0441\u044c\u043a\u0430 \u043a\u043e\u0440\u0434\u043e\u0431\u0430 \u043e\u0440\u043e
-currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0440\u0441\u044c\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
-currenciesDisplayName.FJD=\u0424\u0456\u0434\u0436\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.XTS=\u041a\u043e\u0434 \u0442\u0435\u0441\u0442\u0443\u0432\u0430\u043d\u043d\u044f \u0432\u0430\u043b\u044e\u0442\u0438
currenciesDisplayName.MOP=\u041c\u0430\u043a\u0430\u043e \u043f\u0430\u0442\u0430\u043a\u0430
-currenciesDisplayName.RUB=\u0420\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.FJD=\u0414\u043e\u043b\u0430\u0440 \u0424\u0456\u0434\u0436\u0456
+currenciesDisplayName.ADP=\u0410\u043d\u0434\u043e\u0440\u0440\u0441\u044c\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
+currenciesDisplayName.RUB=\u0440\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
currenciesDisplayName.CDF=\u041a\u043e\u043d\u0433\u043e\u043b\u0435\u0437\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.NIC=\u041d\u0456\u043a\u0430\u0440\u0430\u0433\u0443\u0430\u043d\u0441\u044c\u043a\u0430 \u043a\u043e\u0440\u0434\u043e\u0431\u0430
-currenciesDisplayName.DJF=\u0424\u0440\u0430\u043d\u043a \u0414\u0436\u0456\u0431\u0443\u0442\u0456
-currenciesDisplayName.ECV=\u0415\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0438\u0439 UV\u0421
-currenciesDisplayName.SBD=\u0414\u043e\u043b\u0430\u0440 \u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0438\u0445 \u041e\u0441\u0442\u0440\u043e\u0432\u0456\u0432
+currenciesDisplayName.DJF=\u0414\u0436\u0438\u0431\u0443\u0442\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.UZS=\u0423\u0437\u0431\u0435\u0446\u044c\u043a\u0438\u0439 \u0441\u0443\u043c
-currenciesDisplayName.ECS=\u0415\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0435 \u0441\u0443\u043a\u0440\u0435
-currenciesDisplayName.PHP=\u0424\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.SBD=\u0414\u043e\u043b\u0430\u0440 \u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0438\u0445 \u041e\u0441\u0442\u0440\u043e\u0432\u0456\u0432
+currenciesDisplayName.ECV=\u0415\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u044e\u043d\u0456\u0434\u0430\u0434 \u0434\u0435 \u0432\u0430\u043b\u043e\u0440 \u043a\u043e\u043d\u0441\u0442\u0430\u043d\u0442\u0435
+currenciesDisplayName.LUL=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0491\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u0424\u0456\u043d\u0430\u043d\u0441\u043e\u0432\u0438\u0439)
+currenciesDisplayName.ECS=\u0415\u043a\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u0441\u0443\u043a\u0440\u0435
currenciesDisplayName.THB=\u0422\u0430\u0457\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0439 \u0431\u0430\u0442
+currenciesDisplayName.PHP=\u0424\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
currenciesDisplayName.LUF=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0437\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.RHD=\u0420\u043e\u0434\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.LUC=\u041b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0491\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u0430\u043d\u0438\u0439)
currenciesDisplayName.FIM=\u0424\u0456\u043d\u043b\u044f\u043d\u0434\u0441\u044c\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
currenciesDisplayName.TTD=\u0414\u043e\u043b\u0430\u0440 \u0422\u0440\u0438\u043d\u0456\u0434\u0430\u0434\u0443 \u0456 \u0422\u043e\u0431\u0430\u0433\u043e
currenciesDisplayName.SZL=\u0421\u0432\u0430\u0437\u0456\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0456 \u043b\u0456\u043b\u0430\u043d\u0433\u0435\u043d\u0456
currenciesDisplayName.MNT=\u041c\u043e\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0442\u0443\u0433\u0440\u0438\u043a
+currenciesDisplayName.UAK=\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u043e\u0433\u043e \u043a\u0430\u0440\u0431\u043e\u0432\u0430\u043d\u0446\u044f
currenciesDisplayName.SAR=\u0421\u0430\u0443\u0434\u0456\u0432\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0430\u043b
-currenciesDisplayName.UAK=\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u0430\u0440\u0431\u043e\u0432\u0430\u043d\u0435\u0446\u044c
+currenciesDisplayName.COU=\u042e\u043d\u0456\u0434\u0430\u0434 \u0434\u0435 \u0432\u0430\u043b\u043e\u0440 \u0440\u0456\u0430\u043b
+currenciesDisplayName.UAH=\u0433\u0440\u0438\u0432\u043d\u0456
currenciesDisplayName.HUF=\u0423\u0433\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u043e\u0440\u0438\u043d\u0442
-currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0456\u0439\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
currenciesDisplayName.QAR=\u041a\u0430\u0442\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0430\u043b
+currenciesDisplayName.COP=\u041a\u043e\u043b\u0443\u043c\u0431\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
currenciesDisplayName.LTT=\u041b\u0438\u0442\u043e\u0432\u0441\u044c\u043a\u0438\u0439 \u0442\u0430\u043b\u043e\u043d
currenciesDisplayName.PTE=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.UYU=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.AOR=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u043d\u0437\u0430 \u0440\u0435\u0430\u0434\u0436\u0430\u0441\u0442\u0430\u0434\u043e (1995-1999)
currenciesDisplayName.GBP=\u0410\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442 \u0441\u0442\u0435\u0440\u043b\u0456\u043d\u0433\u0456\u0432
-currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.INR=\u0406\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
currenciesDisplayName.ZRZ=\u0417\u0430\u0457\u0440\u0441\u044c\u043a\u0438\u0439 \u0437\u0430\u0457\u0440
-currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0437\u0430 (1990-2000)
-currenciesDisplayName.LTL=\u041b\u0438\u0442\u043e\u0432\u0441\u044c\u043a\u0438\u0439 \u043b\u0456\u0442
+currenciesDisplayName.INR=\u0406\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
+currenciesDisplayName.BIF=\u0411\u0443\u0440\u0443\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.XFU=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a UIC
-currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0442\u0435\u043d\u0433\u0435
-currenciesDisplayName.MZM=\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u0446\u044c\u043a\u0438\u0439 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.MZN=\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u0446\u044c\u043a\u0438\u0439 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.LTL=\u041b\u0438\u0442\u043e\u0432\u0441\u044c\u043a\u0438\u0439 \u043b\u0456\u0442
+currenciesDisplayName.AON=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043d\u043e\u0432\u0430 \u043a\u0432\u0430\u043d\u0437\u0430 (1990-2000)
currenciesDisplayName.UYP=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e (1975-1993)
+currenciesDisplayName.MZM=\u0421\u0442\u0430\u0440\u0438\u0439 \u043c\u043e\u0437\u0430\u043c\u0431\u0456\u0446\u044c\u043a\u0438\u0439 \u043c\u0435\u0442\u0438\u043a\u0430\u043b
+currenciesDisplayName.KZT=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0442\u0435\u043d\u0433\u0435
currenciesDisplayName.AOK=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u043d\u0437\u0430 (1977-1990)
-currenciesDisplayName.BUK=\u0411\u0456\u0440\u043c\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u0456\u0430\u0442
currenciesDisplayName.GNS=\u0413\u0432\u0456\u043d\u0435\u0439\u0441\u044c\u043a\u0435 \u0441\u0456\u043b\u0456
+currenciesDisplayName.BUK=\u0411\u0456\u0440\u043c\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043a\u0456\u0430\u0442
currenciesDisplayName.XFO=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0438\u0439 \u0437\u043e\u043b\u043e\u0442\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.PGK=\u041a\u0456\u043d\u0430 \u041f\u0430\u043f\u0443\u0430 \u041d\u043e\u0432\u043e\u0457 \u0413\u0432\u0456\u043d\u0435\u0457
+currenciesDisplayName.UYI=\u0423\u0440\u0443\u0433\u0432\u0430\u0439\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e \u0432 \u0456\u043d\u0434\u0435\u043a\u0441\u043e\u0432\u0430\u043d\u0438\u0445 \u043e\u0434\u0438\u043d\u0438\u0446\u044f\u0445
currenciesDisplayName.SYP=\u0421\u0438\u0440\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u0446\u044c\u043a\u0438\u0439 \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.OMR=\u041e\u043c\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0430\u043b
-currenciesDisplayName.NGN=\u041d\u0456\u0433\u0435\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u043d\u0430\u0439\u0440\u0430
+currenciesDisplayName.MZE=\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u0446\u044c\u043a\u0438\u0439 \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.ZRN=\u0417\u0430\u0457\u0440\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0437\u0430\u0457\u0440
-currenciesDisplayName.AOA=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u043d\u0437\u0430
+currenciesDisplayName.NGN=\u041d\u0456\u0433\u0435\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u043d\u0430\u0439\u0440\u0430
currenciesDisplayName.CNY=\u041a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0438\u0439 \u044e\u0430\u043d\u044c
+currenciesDisplayName.AOA=\u0410\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u043d\u0437\u0430
currenciesDisplayName.MAF=\u041c\u0430\u0440\u043e\u043a\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.RSD=\u0421\u0435\u0440\u0431\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.GNF=\u0413\u0432\u0456\u0439\u043d\u0435\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.HTG=\u0413\u0430\u0457\u0442\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u0440\u0434
currenciesDisplayName.MAD=\u041c\u0430\u0440\u043e\u043a\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u0440\u0445\u0435\u043c
-currenciesDisplayName.TRY=\u041d\u043e\u0432\u0430 \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
+currenciesDisplayName.HTG=\u0413\u0430\u0457\u0442\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u0440\u0434
+currenciesDisplayName.TRY=\u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
currenciesDisplayName.MMK=\u041a\u02bc\u044f\u0442 \u041c\u02bc\u044f\u043d\u043c\u0438
+currenciesDisplayName.XRE=\u0424\u043e\u043d\u0434\u0438 RINET
currenciesDisplayName.MYR=\u041c\u0430\u043b\u0430\u0439\u0437\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0438\u043d\u0433\u0456\u0442
-currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u044c\u043a\u0438\u0439 \u043b\u043e\u0442\u0456
+currenciesDisplayName.LSM=\u041c\u0430\u043b\u043e\u0442\u0456
currenciesDisplayName.XEU=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0432\u0430\u043b\u044e\u0442\u043d\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f
-currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
+currenciesDisplayName.LSL=\u041b\u0435\u0441\u043e\u0442\u0441\u044c\u043a\u0438\u0439 \u043b\u043e\u0442\u0456
currenciesDisplayName.SLL=\u041b\u0435\u043e\u043d\u0435 \u0421\u044c\u0454\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435
+currenciesDisplayName.BHD=\u0411\u0430\u0445\u0440\u0435\u0439\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.BTN=\u0411\u0443\u0442\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043d\u0433\u0443\u043b\u0442\u0440\u0443\u043c
-currenciesDisplayName.TRL=\u0422\u0443\u0440\u0435\u0446\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
+currenciesDisplayName.TRL=\u0441\u0442\u0430\u0440\u0430 \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
currenciesDisplayName.KMF=\u041a\u043e\u043c\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.ANG=\u0413\u0443\u043b\u044c\u0434\u0435\u043d \u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0445 \u0410\u043d\u0442\u0456\u043b
currenciesDisplayName.CZK=\u0427\u0435\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.AZM=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.ANG=\u0413\u0443\u043b\u044c\u0434\u0435\u043d \u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0445 \u0410\u043d\u0442\u0456\u043b
+currenciesDisplayName.AZN=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.AZM=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442 (1993-2006)
currenciesDisplayName.KYD=\u0414\u043e\u043b\u0430\u0440 \u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0438\u0445 \u043e\u0441\u0442\u0440\u043e\u0432\u0456\u0432
currenciesDisplayName.GMD=\u0413\u0430\u043c\u0431\u0456\u0439\u0441\u044c\u043a\u0430 \u0434\u0430\u043b\u0430\u0441\u0456
+currenciesDisplayName.VEF=\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0431\u043e\u043b\u0456\u0432\u0430\u0440 \u0444\u0443\u0435\u0440\u0442\u0435
currenciesDisplayName.BGN=\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u043b\u0435\u0432
+currenciesDisplayName.MXV=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u044e\u043d\u0456\u0434\u0430\u0434 \u0434\u0435 \u0456\u043d\u0432\u0435\u0440\u0441\u0456\u043e\u043d
currenciesDisplayName.CAD=\u041a\u0430\u043d\u0430\u0434\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.MXV=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 UDI
currenciesDisplayName.BGL=\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0442\u0432\u0435\u0440\u0434\u0438\u0439 \u043b\u0435\u0432
currenciesDisplayName.VEB=\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0431\u043e\u043b\u0456\u0432\u0430\u0440
currenciesDisplayName.MLF=\u041c\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.ILS=\u0406\u0437\u0440\u0430\u0457\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0448\u0435\u043a\u0435\u043b\u044c
currenciesDisplayName.MXP=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u0441\u0440\u0456\u0431\u043d\u0435 \u043f\u0435\u0441\u043e (1861-1992)
+currenciesDisplayName.ILS=\u0406\u0437\u0440\u0430\u0457\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0448\u0435\u043a\u0435\u043b\u044c
currenciesDisplayName.PES=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0441\u043e\u043b
-currenciesDisplayName.GYD=\u0413\u0430\u0439\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.MXN=\u041c\u0435\u043a\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.GYD=\u0413\u0430\u0439\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.ILP=\u0406\u0437\u0440\u0430\u0457\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
-currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.CYP=\u041a\u0456\u043f\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.SKK=\u0421\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.XDR=\u0421\u043f\u0435\u0446\u0456\u0430\u043b\u044c\u043d\u0456 \u043f\u0440\u0430\u0432\u0430 \u0437\u0430\u043f\u043e\u0437\u0438\u0447\u0435\u043d\u043d\u044f
currenciesDisplayName.PEN=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0441\u043e\u043b
currenciesDisplayName.LRD=\u041b\u0456\u0431\u0435\u0440\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.PEI=\u041f\u0435\u0440\u0443\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0456\u043d\u0442\u0456
currenciesDisplayName.AMD=\u0412\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0440\u0430\u043c
currenciesDisplayName.BSD=\u0411\u0430\u0433\u0430\u043c\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.XPT=\u041f\u043b\u0430\u0442\u0438\u043d\u0430
currenciesDisplayName.HRK=\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0430 \u043a\u0443\u043d\u0430
-currenciesDisplayName.CLP=\u0427\u0438\u043b\u0456\u0439\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.CLP=\u0427\u0456\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
currenciesDisplayName.HRD=\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.XPF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0438\u0439 \u0442\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.FRF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.XPD=\u041f\u0430\u043b\u0430\u0434\u0456\u0439
currenciesDisplayName.BRR=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0435 \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e
currenciesDisplayName.MKD=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.CLF=\u0427\u0438\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 UF
+currenciesDisplayName.CLF=\u0427\u0438\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u044e\u043d\u0456\u0434\u0430\u0434\u0435\u0441 \u0434\u0435 \u0444\u043e\u043c\u0435\u043d\u0442\u043e
currenciesDisplayName.ALL=\u0410\u043b\u0431\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043b\u0435\u043a
currenciesDisplayName.BRN=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0435 \u043d\u043e\u0432\u0435 \u043a\u0440\u0443\u0437\u0430\u0434\u043e
-currenciesDisplayName.MWK=\u041c\u0430\u043b\u0430\u0432\u0456\u0439\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u0447\u0430
+currenciesDisplayName.MWK=\u041a\u0432\u0430\u0447\u0430 (\u041c\u0430\u043b\u0430\u0432\u0456)
currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0440\u0435\u0430\u043b
currenciesDisplayName.TPE=\u0422\u0456\u043c\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u0435\u0441\u043a\u0443\u0434\u043e
currenciesDisplayName.BRE=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0435 \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e (1990-1993)
@@ -150,42 +178,46 @@ currenciesDisplayName.BRC=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c
currenciesDisplayName.BRB=\u0411\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0435 \u043d\u043e\u0432\u0435 \u043a\u0440\u0443\u0437\u0435\u0439\u0440\u043e (1967-1986)
currenciesDisplayName.DEM=\u041d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 \u043c\u0430\u0440\u043a\u0430
currenciesDisplayName.KWD=\u041a\u0443\u0432\u0435\u0439\u0442\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.XCD=\u0414\u043e\u043b\u0430\u0440 \u0421\u0445\u0456\u0434\u043d\u0438\u0445 \u041a\u0438\u0440\u0438\u0431\u0456\u0432
+currenciesDisplayName.XCD=\u0421\u0445\u0456\u0434\u043d\u043e\u043a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.NPR=\u041d\u0435\u043f\u0430\u043b\u044c\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
currenciesDisplayName.GWP=\u041f\u0435\u0441\u043e \u0413\u0432\u0456\u043d\u0435\u0457-\u0411\u0456\u0441\u0430\u0443
currenciesDisplayName.YUN=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u044c\u043a\u0438\u0439 \u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u0430\u043d\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.SVC=\u0415\u043b\u044c-\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
+currenciesDisplayName.SVC=\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440\u0441\u044c\u043a\u0438\u0439 \u043a\u043e\u043b\u043e\u043d
currenciesDisplayName.YUM=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u044c\u043a\u0438\u0439 \u043d\u043e\u0432\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.BEL=\u0411\u0435\u043b\u044c\u0433\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u0444\u0456\u043d\u0430\u043d\u0441\u043e\u0432\u0438\u0439)
currenciesDisplayName.SIT=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u044c\u043a\u0438\u0439 \u0442\u043e\u043b\u0430\u0440
currenciesDisplayName.JPY=\u042f\u043f\u043e\u043d\u0441\u044c\u043a\u0430 \u0454\u043d\u0430
currenciesDisplayName.XOF=\u0424\u0440\u0430\u043d\u043a \u0417\u0430\u0445\u0456\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u043e\u0433\u043e \u0444\u0456\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0438\u0441\u0442\u0432\u0430
currenciesDisplayName.MVR=\u041c\u0430\u043b\u044c\u0434\u0456\u0432\u0441\u044c\u043a\u0430 \u0440\u0443\u0444\u0456\u044f
-currenciesDisplayName.GWE=\u0415\u0441\u043a\u0443\u0434\u043e \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u043e\u0457 \u0413\u0432\u0456\u043d\u0435\u0457
currenciesDisplayName.BEF=\u0411\u0435\u043b\u044c\u0433\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.GWE=\u0415\u0441\u043a\u0443\u0434\u043e \u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u043e\u0457 \u0413\u0432\u0456\u043d\u0435\u0457
currenciesDisplayName.TOP=\u041f\u0430\u0430\u043d\u0433\u0430 \u0422\u043e\u043d\u0433\u043e
currenciesDisplayName.YUD=\u042e\u0433\u043e\u0441\u043b\u0430\u0432\u0441\u044c\u043a\u0438\u0439 \u0442\u0432\u0435\u0440\u0434\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.BEC=\u0411\u0435\u043b\u044c\u0433\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u0430\u043d\u0438\u0439)
-currenciesDisplayName.SUR=\u0420\u0430\u0434\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
-currenciesDisplayName.ROL=\u0420\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0438\u0439 \u043b\u0435\u0439
+currenciesDisplayName.SUR=\u0440\u0430\u0434\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.RON=\u0420\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0438\u0439 \u043b\u0435\u0439
+currenciesDisplayName.ROL=\u0421\u0442\u0430\u0440\u0438\u0439 \u0440\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0438\u0439 \u043b\u0435\u0439
currenciesDisplayName.BDT=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0441\u044c\u043a\u0430 \u0442\u0430\u043a\u0430
-currenciesDisplayName.XBD=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f (XBD)
+currenciesDisplayName.DDM=\u041c\u0430\u0440\u043a\u0430 \u041d\u0414\u0420
+currenciesDisplayName.XBD=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f XBD
currenciesDisplayName.AWG=\u0410\u0440\u0443\u0431\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
-currenciesDisplayName.XBC=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f (XBC)
-currenciesDisplayName.XBB=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0433\u0440\u043e\u0448\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f
+currenciesDisplayName.XBC=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0440\u043e\u0437\u0440\u0430\u0445\u0443\u043d\u043a\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f XBC
+currenciesDisplayName.XBB=\u041e\u0434\u0438\u043d\u0438\u0446\u044f \u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u043e\u0433\u043e \u0432\u0430\u043b\u044e\u0442\u043d\u043e\u0433\u043e \u0444\u043e\u043d\u0434\u0443
+currenciesDisplayName.XBA=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0430 \u0441\u043a\u043b\u0430\u0434\u0435\u043d\u0430 \u0432\u0430\u043b\u044e\u0442\u043d\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f
currenciesDisplayName.NOK=\u041d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.MUR=\u041c\u0430\u0432\u0440\u0438\u043a\u0456\u0439\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
currenciesDisplayName.ZAR=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0430\u043d\u0434
currenciesDisplayName.SHP=\u0424\u0443\u043d\u0442 \u0421\u0432\u044f\u0442\u043e\u0457 \u0404\u043b\u0435\u043d\u0438
currenciesDisplayName.XAU=\u0417\u043e\u043b\u043e\u0442\u043e
-currenciesDisplayName.ZAL=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0430\u043d\u0434
+currenciesDisplayName.ZAL=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0456\u043d\u0430\u043d\u0441\u043e\u0432\u0438\u0439 \u0440\u0430\u043d\u0434
currenciesDisplayName.VND=\u0412\u02bc\u0454\u0442\u043d\u0430\u043c\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043d\u0433
currenciesDisplayName.TZS=\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0448\u0438\u043b\u0456\u043d\u0433
currenciesDisplayName.GIP=\u0413\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
currenciesDisplayName.TND=\u0422\u0443\u043d\u0456\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.CVE=\u0415\u0441\u043a\u0443\u0434\u043e \u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435
currenciesDisplayName.UGX=\u0423\u0433\u0430\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0448\u0438\u043b\u0456\u043d\u0433
-currenciesDisplayName.ZMK=\u0417\u0430\u043c\u0431\u0456\u0439\u0441\u044c\u043a\u0430 \u043a\u0432\u0430\u0447\u0430
+currenciesDisplayName.XAG=\u0421\u0440\u0456\u0431\u043b\u043e
+currenciesDisplayName.ZMK=\u041a\u0432\u0430\u0447\u0430 (\u0417\u0430\u043c\u0431\u0456\u044f)
currenciesDisplayName.JOD=\u0419\u043e\u0440\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.XAF=\u0424\u0440\u0430\u043d\u043a \u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u043e\u0433\u043e \u0444\u0456\u043d\u0430\u043d\u0441\u043e\u0432\u043e\u0433\u043e \u0442\u043e\u0432\u0430\u0440\u0438\u0441\u0442\u0432\u0430
currenciesDisplayName.LBP=\u041b\u0456\u0432\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
@@ -193,84 +225,94 @@ currenciesDisplayName.UGS=\u0423\u0433\u0430\u043d\u0434\u0456\u0439\u0441\u044c
currenciesDisplayName.STD=\u0414\u043e\u0431\u0440\u0430 \u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0456 \u041f\u0440\u0456\u043d\u0441\u0456\u043f\u0456
currenciesDisplayName.WST=\u0422\u0430\u043b\u0430 \u0417\u0430\u0445\u0456\u0434\u043d\u043e\u0433\u043e \u0421\u0430\u043c\u043e\u0430
currenciesDisplayName.KHR=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0454\u043b\u044c
-currenciesDisplayName.EUR=\u0404\u0432\u0440\u043e
-currenciesDisplayName.DOP=\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.DOP=\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
+currenciesDisplayName.EUR=\u0454\u0432\u0440\u043e
currenciesDisplayName.BOV=\u0411\u043e\u043b\u0456\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u043c\u0432\u0434\u043e\u043b
currenciesDisplayName.MTP=\u041c\u0430\u043b\u044c\u0442\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.USS=\u0414\u043e\u043b\u0430\u0440 \u0421\u0428\u0410 (\u0446\u044c\u043e\u0433\u043e \u0434\u043d\u044f)
currenciesDisplayName.BOP=\u0411\u043e\u043b\u0456\u0432\u0456\u0439\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
+currenciesDisplayName.CUP=\u041a\u0443\u0431\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u043f\u0435\u0441\u043e
currenciesDisplayName.MTL=\u041c\u0430\u043b\u044c\u0442\u0456\u0439\u0441\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
-currenciesDisplayName.CUP=\u041a\u0443\u0431\u0438\u043d\u0441\u044c\u043a\u0435 \u043f\u0435\u0441\u043e
currenciesDisplayName.TMM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439 \u043c\u0430\u043d\u0430\u0442
+currenciesDisplayName.USN=\u0414\u043e\u043b\u0430\u0440 \u0421\u0428\u0410 (\u043d\u0430\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u0434\u043d\u044f)
+currenciesDisplayName.GHS=\u0413\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0441\u0435\u0434\u0456
currenciesDisplayName.SGD=\u0421\u0456\u043d\u0433\u0430\u043f\u0443\u0440\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.NZD=\u041d\u043e\u0432\u043e\u0437\u0435\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.USD=\u0414\u043e\u043b\u0430\u0440 \u0421\u0428\u0410
-currenciesDisplayName.HNL=\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441\u044c\u043a\u0430 \u043b\u0435\u043c\u043f\u0456\u0440\u0430
currenciesDisplayName.BOB=\u0411\u043e\u043b\u0456\u0432\u0456\u0430\u043d\u043e
+currenciesDisplayName.HNL=\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441\u044c\u043a\u0430 \u043b\u0435\u043c\u043f\u0456\u0440\u0430
+currenciesDisplayName.CHW=\u0424\u0440\u0430\u043d\u043a WIR
currenciesDisplayName.ITL=\u0406\u0442\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430 \u043b\u0456\u0440\u0430
currenciesDisplayName.PAB=\u041f\u0430\u043d\u0430\u043c\u0441\u044c\u043a\u0430 \u0431\u0430\u043b\u044c\u0431\u043e\u0430
currenciesDisplayName.GTQ=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u043a\u0435\u0442\u0441\u0430\u043b\u044c
-currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u044c\u043a\u0438\u0439 \u043a\u0456\u043f
-currenciesDisplayName.GHC=\u0413\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0441\u0435\u0434\u0456
+currenciesDisplayName.XXX=\u043d\u0435\u0432\u0456\u0434\u043e\u043c\u0430 \u0430\u0431\u043e \u043d\u0435\u0434\u0456\u0439\u0441\u043d\u0430 \u0433\u0440\u043e\u0448\u043e\u0432\u0430 \u043e\u0434\u0438\u043d\u0438\u0446\u044f
currenciesDisplayName.AUD=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.GHC=\u0413\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0441\u0435\u0434\u0456 (1979-2007)
+currenciesDisplayName.LAK=\u041b\u0430\u043e\u0441\u044c\u043a\u0438\u0439 \u043a\u0456\u043f
currenciesDisplayName.NAD=\u041d\u0430\u043c\u0456\u0431\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.KGS=\u041a\u0438\u0440\u0433\u0438\u0437\u044c\u043a\u0438\u0439 \u0441\u043e\u043c
currenciesDisplayName.MGF=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
-currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
currenciesDisplayName.BBD=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.CHF=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0444\u0440\u0430\u043d\u043a
+currenciesDisplayName.CHE=\u0404\u0432\u0440\u043e WIR
currenciesDisplayName.MGA=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440\u0441\u044c\u043a\u0438\u0439 \u0430\u0440\u0456\u0430\u0440\u0456
currenciesDisplayName.PYG=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u0430\u0440\u0430\u043d\u0456
currenciesDisplayName.PLZ=\u041f\u043e\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0437\u043b\u043e\u0442\u0438\u0439 (1950-1995)
currenciesDisplayName.YER=\u0404\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0430\u043b
currenciesDisplayName.ATS=\u0410\u0432\u0441\u0442\u0440\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0448\u0438\u043b\u0456\u043d\u0433
-currenciesDisplayName.ETB=\u0415\u0444\u0456\u043e\u043f\u0441\u044c\u043a\u0438\u0439 \u0431\u0438\u0440
+currenciesDisplayName.ETB=\u0415\u0444\u0456\u043e\u043f\u0441\u044c\u043a\u0438\u0439 \u0431\u0456\u0440
currenciesDisplayName.BND=\u0411\u0440\u0443\u043d\u0435\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
-currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.EGP=\u0404\u0433\u0438\u043f\u0435\u0442\u0441\u044c\u043a\u0438\u0439 \u0444\u0443\u043d\u0442
+currenciesDisplayName.JMD=\u042f\u043c\u0430\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.PLN=\u041f\u043e\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0437\u043b\u043e\u0442\u0438\u0439
currenciesDisplayName.DZD=\u0410\u043b\u0436\u0438\u0440\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesDisplayName.ISK=\u0406\u0441\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.SRG=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
currenciesDisplayName.LYD=\u041b\u0456\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
-currenciesDisplayName.BZD=\u0411\u0435\u043b\u0456\u0437\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
+currenciesDisplayName.SRD=\u0421\u0443\u0440\u0438\u043d\u0430\u043c\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.BAM=\u041a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u0430\u043d\u0430 \u043c\u0430\u0440\u043a\u0430 \u0411\u043e\u0441\u043d\u0456\u0457 \u0456 \u0413\u0435\u0440\u0446\u043e\u0433\u043e\u0432\u0438\u043d\u0438
+currenciesDisplayName.BZD=\u0411\u0435\u043b\u0456\u0437\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.ESP=\u0406\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430
currenciesDisplayName.KRW=\u0412\u043e\u043d\u0430 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0457 \u041a\u043e\u0440\u0435\u0457
currenciesDisplayName.NLG=\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0438\u0439 \u0433\u0443\u043b\u044c\u0434\u0435\u043d
currenciesDisplayName.MRO=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0430 \u0443\u0433\u0456\u044f
-currenciesDisplayName.BAD=\u0414\u0438\u043d\u0430\u0440 \u0411\u043e\u0441\u043d\u0456\u0457 \u0456 \u0413\u0435\u0446\u043e\u0433\u043e\u0432\u0438\u043d\u0438
+currenciesDisplayName.BAD=\u0414\u0438\u043d\u0430\u0440 (\u0411\u043e\u0441\u043d\u0456\u044f \u0456 \u0413\u0435\u0440\u0446\u0435\u0433\u043e\u0432\u0438\u043d\u0430)
currenciesDisplayName.ZWD=\u0417\u0456\u043c\u0431\u0430\u0431\u0432\u0456\u0439\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
currenciesDisplayName.SEK=\u0428\u0432\u0435\u0434\u0441\u044c\u043a\u0430 \u043a\u0440\u043e\u043d\u0430
currenciesDisplayName.CSK=\u0427\u0435\u0445\u043e\u0441\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430 \u0442\u0432\u0435\u0440\u0434\u0430 \u043a\u0440\u043e\u043d\u0430
-currenciesDisplayName.BYR=\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.BYR=\u0431\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0438\u0439 \u0440\u0443\u0431\u043b\u044c
+currenciesDisplayName.ESB=\u0406\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430 (\u043a\u043e\u043d\u0432\u0435\u0440\u0442\u043e\u0432\u0430\u043d\u0456 \u0440\u0430\u0445\u0443\u043d\u043a\u0438)
currenciesDisplayName.IRR=\u0406\u0440\u0430\u043d\u0441\u044c\u043a\u0438\u0439 \u0440\u0456\u0430\u043b
+currenciesDisplayName.ESA=\u0406\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430 \u043f\u0435\u0441\u0435\u0442\u0430 (\"\u0410\" \u0440\u0430\u0445\u0443\u043d\u043e\u043a)
currenciesDisplayName.PKR=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d\u0441\u044c\u043a\u0430 \u0440\u0443\u043f\u0456\u044f
currenciesDisplayName.BMD=\u0411\u0435\u0440\u043c\u0443\u0434\u0441\u044c\u043a\u0438\u0439 \u0434\u043e\u043b\u0430\u0440
-currenciesSymbol.BGL=lev
+currenciesDisplayName.CSD=\u0421\u0442\u0430\u0440\u0438\u0439 \u0441\u0435\u0440\u0431\u0441\u044c\u043a\u0438\u0439 \u0434\u0438\u043d\u0430\u0440
currenciesSymbol.XCD=EC$
-currenciesSymbol.KES=K Sh
+currenciesSymbol.BGL=lev
currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
currenciesSymbol.CYP=\u00a3C
currenciesSymbol.BYR=Rbl
-currenciesSymbol.MKD=MDen
currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
currenciesSymbol.MWK=MK
currenciesSymbol.BMD=Ber$
-currenciesSymbol.SCR=SR
currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
currenciesSymbol.AMD=dram
currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
currenciesSymbol.NPR=Nrs
-currenciesSymbol.SOS=So. Sh.
currenciesSymbol.CLP=Ch$
currenciesSymbol.KWD=KD
currenciesSymbol.GEL=lari
currenciesSymbol.AFN=Af
currenciesSymbol.ZAR=R
-currenciesSymbol.ROL=leu
currenciesSymbol.IQD=ID
+currenciesSymbol.ROL=leu
currenciesSymbol.HKD=HK$
currenciesSymbol.ARS=Arg$
-currenciesSymbol.BRL=R$
+currenciesSymbol.JPY=\u00a5
currenciesSymbol.ALL=lek
currenciesSymbol.CRC=C
currenciesSymbol.IDR=Rp
@@ -282,9 +324,10 @@ currenciesSymbol.NOK=NKr
currenciesSymbol.UGX=U Sh
currenciesSymbol.BEF=BF
currenciesSymbol.TTD=TT$
+currenciesSymbol.UAK=\u043a\u0440\u0431.
currenciesSymbol.SZL=E
currenciesSymbol.STD=Db
-currenciesSymbol.UAH=UAH
+currenciesSymbol.UAH=\u0433\u0440\u043d.
currenciesSymbol.SAR=SRl
currenciesSymbol.FJD=F$
currenciesSymbol.UYU=Ur$
@@ -294,22 +337,25 @@ currenciesSymbol.LBP=LL
currenciesSymbol.MNT=Tug
currenciesSymbol.DJF=DF
currenciesSymbol.JOD=JD
+currenciesSymbol.USD=$
currenciesSymbol.SGD=S$
currenciesSymbol.KHR=CR
currenciesSymbol.SYP=LS
currenciesSymbol.MTL=Lm
currenciesSymbol.MZM=Mt
currenciesSymbol.YER=YRl
-currenciesSymbol.CVE=CVEsc
currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
currenciesSymbol.OMR=RO
currenciesSymbol.KZT=T
currenciesSymbol.INR=INR
currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
currenciesSymbol.NAD=N$
-currenciesSymbol.TRL=TL
currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
currenciesSymbol.HNL=L
currenciesSymbol.KGS=som
currenciesSymbol.ZWD=Z$
@@ -318,8 +364,8 @@ currenciesSymbol.SRG=Sf
currenciesSymbol.GTQ=Q
currenciesSymbol.BIF=Fbu
currenciesSymbol.PLN=Zl
-currenciesSymbol.GNF=GF
currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
currenciesSymbol.VEB=Be
currenciesSymbol.BOB=Bs
currenciesSymbol.CNY=Y
@@ -334,10 +380,10 @@ currenciesSymbol.ETB=Br
currenciesSymbol.MRO=UM
currenciesSymbol.BBD=BDS$
currenciesSymbol.PKR=Pra
-currenciesSymbol.XPF=CFPF
-currenciesSymbol.TWD=NT$
-currenciesSymbol.BHD=BD
currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.TWD=NT$
+currenciesSymbol.XPF=CFPF
currenciesSymbol.MXN=MEX$
currenciesSymbol.DZD=DA
currenciesSymbol.ANG=NA f.
@@ -346,107 +392,115 @@ currenciesSymbol.IRR=RI
currenciesSymbol.GYD=G$
currenciesSymbol.BAM=KM
currenciesSymbol.CAD=Can$
-shortMonths=\u0421\u0456\u0447®\u041b\u044e\u0442®\u0411\u0435\u0440®\u041a\u0432\u0456®\u0422\u0440\u0430®\u0427\u0435\u0440®\u041b\u0438\u043f®\u0421\u0435\u0440®\u0412\u0435\u0440®\u0416\u043e\u0432®\u041b\u0438\u0441®\u0413\u0440\u0443®®
-months=\u0421\u0456\u0447\u0435\u043d\u044c®\u041b\u044e\u0442\u0438\u0439®\u0411\u0435\u0440\u0435\u0437\u0435\u043d\u044c®\u041a\u0432\u0456\u0442\u0435\u043d\u044c®\u0422\u0440\u0430\u0432\u0435\u043d\u044c®\u0427\u0435\u0440\u0432\u0435\u043d\u044c®\u041b\u0438\u043f\u0435\u043d\u044c®\u0421\u0435\u0440\u043f\u0435\u043d\u044c®\u0412\u0435\u0440\u0435\u0441\u0435\u043d\u044c®\u0416\u043e\u0432\u0442\u0435\u043d\u044c®\u041b\u0438\u0441\u0442\u043e\u043f\u0430\u0434®\u0413\u0440\u0443\u0434\u0435\u043d\u044c®®
-shortWeekdays=®\u041d\u0434®\u041f\u043d®\u0412\u0442®\u0421\u0440®\u0427\u0442®\u041f\u0442®\u0421\u0431®
-weekdays=®\u041d\u0435\u0434\u0456\u043b\u044f®\u041f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a®\u0412\u0456\u0432\u0442\u043e\u0440\u043e\u043a®\u0421\u0435\u0440\u0435\u0434\u0430®\u0427\u0435\u0442\u0432\u0435\u0440®\u041f\u02bc\u044f\u0442\u043d\u0438\u0446\u044f®\u0421\u0443\u0431\u043e\u0442\u0430®
-firstDayOfWeek=mon
-eras=\u0434\u043e \u043d.\u0435.®\u043d.\u0435.®
-shortDateFormat=dd.MM.yy
+shortMonths=\u0421\u0456\u0447\u00ae\u041b\u044e\u0442\u00ae\u0411\u0435\u0440\u00ae\u043a\u0432\u0456\u0442\u00ae\u0422\u0440\u0430\u00ae\u0427\u0435\u0440\u00ae\u041b\u0438\u043f\u00ae\u0421\u0435\u0440\u00ae\u0412\u0435\u0440\u00ae\u0416\u043e\u0432\u00ae\u041b\u0438\u0441\u00ae\u0413\u0440\u0443\u00ae\u00ae
+months=\u0421\u0456\u0447\u0435\u043d\u044c\u00ae\u041b\u044e\u0442\u0438\u0439\u00ae\u0411\u0435\u0440\u0435\u0437\u0435\u043d\u044c\u00ae\u041a\u0432\u0456\u0442\u0435\u043d\u044c\u00ae\u0422\u0440\u0430\u0432\u0435\u043d\u044c\u00ae\u0427\u0435\u0440\u0432\u0435\u043d\u044c\u00ae\u041b\u0438\u043f\u0435\u043d\u044c\u00ae\u0421\u0435\u0440\u043f\u0435\u043d\u044c\u00ae\u0412\u0435\u0440\u0435\u0441\u0435\u043d\u044c\u00ae\u0416\u043e\u0432\u0442\u0435\u043d\u044c\u00ae\u041b\u0438\u0441\u0442\u043e\u043f\u0430\u0434\u00ae\u0413\u0440\u0443\u0434\u0435\u043d\u044c\u00ae\u00ae
+shortWeekdays=\u00ae\u041d\u0434\u00ae\u041f\u043d\u00ae\u0412\u0442\u00ae\u0421\u0440\u00ae\u0427\u0442\u00ae\u041f\u0442\u00ae\u0421\u0431\u00ae
+weekdays=\u00ae\u041d\u0435\u0434\u0456\u043b\u044f\u00ae\u041f\u043e\u043d\u0435\u0434\u0456\u043b\u043e\u043a\u00ae\u0412\u0456\u0432\u0442\u043e\u0440\u043e\u043a\u00ae\u0421\u0435\u0440\u0435\u0434\u0430\u00ae\u0427\u0435\u0442\u0432\u0435\u0440\u00ae\u041f\u02bc\u044f\u0442\u043d\u0438\u0446\u044f\u00ae\u0421\u0443\u0431\u043e\u0442\u0430\u00ae
+eras=\u0434\u043e\u00a0\u043d.\u00a0\u0435.\u00ae\u043d.\u00a0\u0435.\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=dd.MM.yyyy
mediumDateFormat=d MMM yyyy
-longDateFormat=d MMMM yyyy
-fullDateFormat=EEEE, d MMMM yyyy '\u0440.'
+longDateFormat=d MMMM yyyy '\u0440'.
+fullDateFormat=EEEE, d MMMM yyyy '\u0440'.
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Europe_Central\u00ae\u0437\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Africa_Western\u00ae\u0437\u0430 \u0437\u0430\u0445\u0456\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0437\u0430\u0445\u0456\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Kamchatka\u00ae\u0437\u0430 \u043a\u0430\u043c\u0447\u0430\u0442\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043a\u0430\u043c\u0447\u0430\u0442\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Novosibirsk\u00ae\u0437\u0430 \u043d\u043e\u0432\u043e\u0441\u0438\u0431\u0456\u0440\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043d\u043e\u0432\u043e\u0441\u0438\u0431\u0456\u0440\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Irkutsk\u00ae\u0437\u0430 \u0456\u0440\u043a\u0443\u0442\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0456\u0440\u043a\u0443\u0442\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Yekaterinburg\u00ae\u0437\u0430 \u0454\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0431\u0443\u0440\u0437\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0454\u043a\u0430\u0442\u0435\u0440\u0438\u043d\u0431\u0443\u0440\u0437\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Krasnoyarsk\u00ae\u0437\u0430 \u043a\u0440\u0430\u0441\u043d\u043e\u044f\u0440\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043a\u0440\u0430\u0441\u043d\u043e\u044f\u0440\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Omsk\u00ae\u0437\u0430 \u043e\u043c\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043e\u043c\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Vladivostok\u00ae\u0437\u0430 \u0432\u043b\u0430\u0434\u0438\u0432\u043e\u0441\u0442\u043e\u0446\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0432\u043b\u0430\u0434\u0438\u0432\u043e\u0441\u0442\u043e\u0446\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Armenia\u00ae\u0437\u0430 \u0432\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0432\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9America_Pacific\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0442\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0442\u0438\u0445\u043e\u043e\u043a\u0435\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Volgograd\u00ae\u0437\u0430 \u0432\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0432\u043e\u043b\u0433\u043e\u0433\u0440\u0430\u0434\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u0437\u0430 \u0441\u0445\u0456\u0434\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0441\u0445\u0456\u0434\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Moscow\u00ae\u0437\u0430 \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u044c\u043a\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043c\u043e\u0441\u043a\u043e\u0432\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u0437\u0430 \u0441\u0445\u0456\u0434\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00ae\u00ae\u00a9Atlantic\u00ae\u0437\u0430 \u0430\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u043d\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0430\u0442\u043b\u0430\u043d\u0442\u0438\u0447\u043d\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9America_Eastern\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0441\u0445\u0456\u0434\u043d\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0441\u0445\u0456\u0434\u043d\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Europe_Western\u00ae\u0437\u0430 \u0437\u0430\u0445\u0456\u0434\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0437\u0430\u0445\u0456\u0434\u043d\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Africa_Central\u00ae\u0437\u0430 \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u0437\u0430 \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Africa_Southern\u00ae\u0437\u0430 \u043f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00ae\u00ae\u00a9Yakutsk\u00ae\u0437\u0430 \u044f\u043a\u0443\u0442\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u044f\u043a\u0443\u0442\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Iran\u00ae\u0437\u0430 \u0456\u0440\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0456\u0440\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Magadan\u00ae\u0437\u0430 \u043c\u0430\u0433\u0430\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043c\u0430\u0433\u0430\u0434\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9America_Mountain\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0433\u0456\u0440\u043d\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0433\u0456\u0440\u043d\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9GMT\u00ae\u0437\u0430 \u0413\u0440\u0456\u043d\u0432\u0456\u0447\u0435\u043c\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u0437\u0430 \u0441\u0430\u043c\u0430\u0440\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u0441\u0430\u043c\u0430\u0440\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9America_Central\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0438\u043c \u0441\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u043d\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u043c \u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Kuybyshev\u00ae\u0437\u0430 \u043a\u0443\u0439\u0431\u0438\u0448\u0435\u0432\u0441\u044c\u043a\u0438\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u0437\u0430 \u043a\u0443\u0439\u0431\u0438\u0448\u0435\u0432\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9Japan\u00ae\u00ae\u00ae\u0437\u0430 \u044f\u043f\u043e\u043d\u0441\u044c\u043a\u0438\u043c \u043b\u0456\u0442\u043d\u0456\u043c \u0447\u0430\u0441\u043e\u043c\u00ae\u00ae\u00a9
territories.TL=\u0421\u0445\u0456\u0434\u043d\u0438\u0439 \u0422\u0438\u043c\u043e\u0440
territories.TK=\u0422\u043e\u043a\u0435\u043b\u0430\u0443
-territories.TJ=\u0422\u0430\u0434\u0436\u0438\u043a\u0438\u0441\u0442\u0430\u043d
+territories.TJ=\u0422\u0430\u0434\u0436\u0438\u043a\u0456\u0441\u0442\u0430\u043d
territories.TH=\u0422\u0430\u0457\u043b\u0430\u043d\u0434
-territories.TG=\u0422\u043e\u0433\u043e
+territories.TG=\u0422\u043e\u0491\u043e
territories.TF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0456 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0422\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457
-territories.GY=\u0413\u0430\u0439\u0430\u043d\u0430
+territories.GY=\u0490\u0430\u0439\u0430\u043d\u0430
territories.TD=\u0427\u0430\u0434
territories.TC=\u0422\u0435\u0440\u043a\u0441 \u0456 \u041a\u0430\u0439\u043a\u043e\u0441
-territories.GW=\u0413\u0432\u0456\u043d\u0435\u044f-\u0411\u0456\u0441\u0441\u0430\u0443
-territories.GU=\u0413\u0443\u0430\u043c
-territories.GT=\u0413\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430
+territories.GW=\u0490\u0432\u0456\u043d\u0435\u044f-\u0411\u0456\u0441\u0430\u0443
+territories.GU=\u0490\u0443\u0430\u043c
+territories.GT=\u0490\u0432\u0430\u0442\u0435\u043c\u0430\u043b\u0430
territories.GS=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0414\u0436\u043e\u0440\u0434\u0436\u0456\u044f \u0442\u0430 \u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0456 \u0421\u0430\u043d\u0434\u0432\u0456\u0447\u0435\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
territories.GR=\u0413\u0440\u0435\u0446\u0456\u044f
-territories.GQ=\u0415\u043a\u0432\u0430\u0442\u043e\u0440\u0456\u0430\u043b\u044c\u043d\u0430 \u0413\u0432\u0456\u043d\u0435\u044f
-territories.GP=\u0413\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430
+territories.GQ=\u0415\u043a\u0432\u0430\u0442\u043e\u0440\u0456\u0430\u043b\u044c\u043d\u0430 \u0490\u0432\u0456\u043d\u0435\u044f
+territories.GP=\u0490\u0432\u0430\u0434\u0435\u043b\u0443\u043f\u0430
territories.SZ=\u0421\u0432\u0430\u0437\u0456\u043b\u0435\u043d\u0434
-territories.SY=\u0421\u0438\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
-territories.GN=\u0413\u0432\u0456\u043d\u0435\u044f
-territories.GM=\u0413\u0430\u043c\u0431\u0456\u044f
-territories.GL=\u0413\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0456\u044f
+territories.SY=\u0421\u0438\u0440\u0456\u044f
+territories.GN=\u0490\u0432\u0456\u043d\u0435\u044f
+territories.GM=\u0490\u0430\u043c\u0431\u0456\u044f
+territories.GL=\u0490\u0440\u0435\u043d\u043b\u0430\u043d\u0434\u0456\u044f
territories.SV=\u0421\u0430\u043b\u044c\u0432\u0430\u0434\u043e\u0440
territories.062=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e-\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430 \u0410\u0437\u0456\u044f
territories.ST=\u0421\u0430\u043d-\u0422\u043e\u043c\u0435 \u0456 \u041f\u0440\u0456\u043d\u0441\u0456\u043f\u0456
+territories.GI=\u0490\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440
territories.061=\u041f\u043e\u043b\u0456\u043d\u0435\u0437\u0456\u044f
-territories.GI=\u0413\u0456\u0431\u0440\u0430\u043b\u0442\u0430\u0440
territories.GH=\u0413\u0430\u043d\u0430
-territories.SR=\u0421\u0443\u0440\u0438\u043d\u0430\u043c
+territories.SR=\u0421\u0443\u0440\u0456\u043d\u0430\u043c
+territories.GG=\u0490\u0435\u0440\u043d\u0441\u0456
territories.GF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u0413\u0432\u0456\u0430\u043d\u0430
territories.GE=\u0413\u0440\u0443\u0437\u0456\u044f
territories.SO=\u0421\u043e\u043c\u0430\u043b\u0456
-territories.GD=\u0413\u0440\u0435\u043d\u0430\u0434\u0430
-territories.SN=\u0421\u0435\u043d\u0435\u0433\u0430\u043b
-territories.SM=\u0421\u0430\u043d-\u041c\u0430\u0440\u0456\u043d\u043e
+territories.GD=\u0490\u0440\u0435\u043d\u0430\u0434\u0430
+territories.SN=\u0421\u0435\u043d\u0435\u0491\u0430\u043b
+territories.SM=\u0421\u0430\u043d-\u041c\u0430\u0440\u0438\u043d\u043e
territories.GB=\u0412\u0435\u043b\u0438\u043a\u043e\u0431\u0440\u0438\u0442\u0430\u043d\u0456\u044f
-territories.SL=\u0421\u044c\u0454\u0440\u0440\u0430-\u041b\u0435\u043e\u043d\u0435
+territories.SL=\u0421'\u0454\u0440\u0430 \u041b\u0435\u043e\u043d\u0435
territories.GA=\u0413\u0430\u0431\u043e\u043d
-territories.SK=\u0421\u043b\u043e\u0432\u0430\u043a\u0456\u044f
-territories.SJ=\u0421\u0432\u0430\u043b\u0431\u0430\u0440\u0434 \u0456 \u042f\u043d \u041c\u0430\u0439\u0454\u043d, \u043e\u0441\u0442\u0440\u043e\u0432\u0438
+territories.SK=\u0421\u043b\u043e\u0432\u0430\u0447\u0447\u0438\u043d\u0430
+territories.SJ=\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0421\u0432\u0430\u043b\u044c\u0431\u0430\u0440\u0434 \u0442\u0430 \u042f\u043d-\u041c\u0430\u0454\u043d
territories.SI=\u0421\u043b\u043e\u0432\u0435\u043d\u0456\u044f
-territories.SH=\u0421\u0432. \u0404\u043b\u0435\u043d\u0430
-territories.SG=\u0421\u0456\u043d\u0433\u0430\u043f\u0443\u0440
+territories.SH=\u041e\u0441\u0442\u0440\u0456\u0432 \u0421\u0432\u044f\u0442\u043e\u0457 \u0404\u043b\u0435\u043d\u0438
+territories.SG=\u0421\u0456\u043d\u0491\u0430\u043f\u0443\u0440
territories.SE=\u0428\u0432\u0435\u0446\u0456\u044f
territories.SD=\u0421\u0443\u0434\u0430\u043d
territories.SC=\u0421\u0435\u0439\u0448\u0435\u043b\u0438
territories.SB=\u0421\u043e\u043b\u043e\u043c\u043e\u043d\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
territories.SA=\u0421\u0430\u0443\u0434\u0456\u0432\u0441\u044c\u043a\u0430 \u0410\u0440\u0430\u0432\u0456\u044f
territories.FR=\u0424\u0440\u0430\u043d\u0446\u0456\u044f
-territories.057=\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f
territories.FO=\u0424\u0430\u0440\u0435\u0440\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
-territories.FM=\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f
+territories.057=\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f
+territories.FM=\u041c\u0456\u043a\u0440\u043e\u043d\u0435\u0437\u0456\u044f, \u0424\u0435\u0434\u0435\u0440\u0430\u0442\u0438\u0432\u043d\u0456 \u0428\u0442\u0430\u0442\u0438
territories.RW=\u0420\u0443\u0430\u043d\u0434\u0430
territories.054=\u041c\u0435\u043b\u0430\u043d\u0435\u0437\u0456\u044f
+territories.FK=\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
territories.053=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u044f \u0442\u0430 \u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0456\u044f
-territories.FK=\u0424\u043e\u043b\u043a\u043b\u0435\u043d\u0434\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438 (\u041c\u0430\u043b\u044c\u0432\u0456\u043d\u0438)
territories.RU=\u0420\u043e\u0441\u0456\u044f
territories.FJ=\u0424\u0456\u0434\u0436\u0456
territories.FI=\u0424\u0456\u043d\u043b\u044f\u043d\u0434\u0456\u044f
+territories.RS=\u0421\u0435\u0440\u0431\u0456\u044f
territories.RO=\u0420\u0443\u043c\u0443\u043d\u0456\u044f
territories.RE=\u0420\u0435\u044e\u043d\u044c\u0439\u043e\u043d
territories.ET=\u0415\u0444\u0456\u043e\u043f\u0456\u044f
territories.ES=\u0406\u0441\u043f\u0430\u043d\u0456\u044f
territories.ER=\u0415\u0440\u0438\u0442\u0440\u0435\u044f
-territories.833=\u041e\u0441\u0442\u0440\u0456\u0432 \u041c\u0435\u043d
+territories.QU=\u0404\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0438\u0439 \u0421\u043e\u044e\u0437
territories.EH=\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0421\u0430\u0445\u0430\u0440\u0430
territories.EG=\u0404\u0433\u0438\u043f\u0435\u0442
-territories.830=\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041b\u0430-\u041c\u0430\u043d\u0448\u0443
territories.EE=\u0415\u0441\u0442\u043e\u043d\u0456\u044f
+territories.830=\u041d\u043e\u0440\u043c\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
territories.QO=\u0406\u043d\u0448\u0430 \u041e\u043a\u0435\u0430\u043d\u0456\u044f
territories.EC=\u0415\u043a\u0432\u0430\u0434\u043e\u0440
territories.DZ=\u0410\u043b\u0436\u0438\u0440
territories.QA=\u041a\u0430\u0442\u0430\u0440
territories.039=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0404\u0432\u0440\u043e\u043f\u0430
territories.DO=\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
-territories.PY=\u041f\u0430\u0440\u0430\u0433\u0432\u0430\u0439
+territories.PY=\u041f\u0430\u0440\u0430\u0491\u0432\u0430\u0439
+territories.DM=\u0414\u043e\u043c\u0456\u043d\u0456\u043a\u0430
territories.035=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e-\u0421\u0445\u0456\u0434\u043d\u0430 \u0410\u0437\u0456\u044f
-territories.DM=\u0414\u043e\u043c\u0456\u043d\u0456\u043a
territories.PW=\u041f\u0430\u043b\u0430\u0443
+territories.034=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0410\u0437\u0456\u044f
territories.DK=\u0414\u0430\u043d\u0456\u044f
-territories.DJ=\u0414\u0436\u0456\u0431\u0443\u0442\u0456
+territories.DJ=\u0414\u0436\u0438\u0431\u0443\u0442\u0456
territories.PT=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u0456\u044f
territories.PS=\u041f\u0430\u043b\u0435\u0441\u0442\u0438\u043d\u0430
territories.030=\u0421\u0445\u0456\u0434\u043d\u0430 \u0410\u0437\u0456\u044f
territories.PR=\u041f\u0443\u0435\u0440\u0442\u043e-\u0420\u0456\u043a\u043e
territories.DE=\u041d\u0456\u043c\u0435\u0447\u0447\u0438\u043d\u0430
territories.PN=\u041f\u0456\u0442\u043a\u0435\u0440\u043d
-territories.PM=\u0421\u0435\u043d-\u041f\u02bc\u0454\u0440 \u0456 \u041c\u0456\u043a\u0435\u043b\u043e\u043d
+territories.PM=\u0421\u0435\u043d-\u041f'\u0454\u0440 \u0442\u0430 \u041c\u0456\u043a\u0435\u043b\u043e\u043d
territories.PL=\u041f\u043e\u043b\u044c\u0449\u0430
territories.PK=\u041f\u0430\u043a\u0438\u0441\u0442\u0430\u043d
territories.PH=\u0424\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0438
-territories.PG=\u041f\u0430\u043f\u0443\u0430 \u041d\u043e\u0432\u0430 \u0413\u0432\u0456\u043d\u0435\u044f
+territories.PG=\u041f\u0430\u043f\u0443\u0430-\u041d\u043e\u0432\u0430 \u0490\u0432\u0456\u043d\u0435\u044f
territories.PF=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u041f\u043e\u043b\u0456\u043d\u0435\u0437\u0456\u044f
territories.CZ=\u0427\u0435\u0441\u044c\u043a\u0430 \u0440\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
territories.PE=\u041f\u0435\u0440\u0443
@@ -455,49 +509,54 @@ territories.CX=\u041e\u0441\u0442\u0440\u0456\u0432 \u0420\u0456\u0437\u0434\u04
territories.CV=\u041a\u0430\u0431\u043e-\u0412\u0435\u0440\u0434\u0435
territories.PA=\u041f\u0430\u043d\u0430\u043c\u0430
territories.CU=\u041a\u0443\u0431\u0430
+territories.CS=\u0421\u0435\u0440\u0431\u0456\u044f \u0442\u0430 \u0427\u043e\u0440\u043d\u043e\u0433\u043e\u0440\u0456\u044f
territories.CR=\u041a\u043e\u0441\u0442\u0430-\u0420\u0438\u043a\u0430
-territories.029=\u041a\u0430\u0440\u0438\u0431\u0438
+territories.029=\u041a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0438\u0439 \u0431\u0430\u0441\u0435\u0439\u043d
territories.CO=\u041a\u043e\u043b\u0443\u043c\u0431\u0456\u044f
territories.CN=\u041a\u0438\u0442\u0430\u0439
territories.CM=\u041a\u0430\u043c\u0435\u0440\u0443\u043d
territories.CL=\u0427\u0438\u043b\u0456
territories.CK=\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u041a\u0443\u043a\u0430
-territories.CI=\u041a\u043e\u0442-\u0434\u2019\u0406\u0432\u0443\u0430\u0440
territories.021=\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
+territories.CI=\u041a\u043e\u0442-\u0434\u2019\u0406\u0432\u0443\u0430\u0440
territories.CH=\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0456\u044f
-territories.CG=\u041a\u043e\u043d\u0433\u043e
-territories.CF=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e-\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
-territories.CD=\u041a\u043e\u043d\u0433\u043e, \u0414\u0435\u043c\u043e\u043a\u0440\u0430\u0442\u0438\u0447\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.CG=\u041a\u043e\u043d\u0491\u043e - \u0411\u0440\u0430\u0437\u0437\u0430\u0432\u0456\u043b\u044c
+territories.CF=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.CD=\u041a\u043e\u043d\u0491\u043e - \u041a\u0456\u043d\u0448\u0430\u0441\u0430
territories.CC=\u041a\u043e\u043a\u043e\u0441\u043e\u0432\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
territories.OM=\u041e\u043c\u0430\u043d
territories.CA=\u041a\u0430\u043d\u0430\u0434\u0430
+territories.419=\u041b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430 \u0456 \u041a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0438\u0439 \u0431\u0430\u0441\u0435\u0439\u043d
territories.BZ=\u0411\u0435\u043b\u0456\u0437
territories.BY=\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c
territories.BW=\u0411\u043e\u0442\u0441\u0432\u0430\u043d\u0430
-territories.BV=\u0411\u0443\u0432\u0435, \u043e\u0441\u0442\u0440\u0456\u0432
+territories.BV=\u041e\u0441\u0442\u0440\u0456\u0432 \u0411\u0443\u0432\u0435
territories.BT=\u0411\u0443\u0442\u0430\u043d
territories.BS=\u0411\u0430\u0433\u0430\u043c\u0438
territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0456\u044f
territories.019=\u0410\u043c\u0435\u0440\u0438\u043a\u0438
territories.018=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
territories.NZ=\u041d\u043e\u0432\u0430 \u0417\u0435\u043b\u0430\u043d\u0434\u0456\u044f
-territories.BO=\u0411\u043e\u043b\u0456\u0432\u0456\u044f
territories.017=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BO=\u0411\u043e\u043b\u0456\u0432\u0456\u044f
territories.BN=\u0411\u0440\u0443\u043d\u0435\u0439
-territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0438
territories.015=\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BM=\u0411\u0435\u0440\u043c\u0443\u0434\u0438
territories.014=\u0421\u0445\u0456\u0434\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BL=\u041e\u0441\u0442\u0440\u0456\u0432 \u0421\u0432\u044f\u0442\u043e\u0433\u043e \u0411\u0430\u0440\u0442\u043e\u043b\u043e\u043c\u0435\u044f
territories.013=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.NU=\u041d\u0456\u044f
territories.BJ=\u0411\u0435\u043d\u0456\u043d
-territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0456
territories.011=\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0410\u0444\u0440\u0438\u043a\u0430
+territories.BI=\u0411\u0443\u0440\u0443\u043d\u0434\u0456
+territories.172=\u0421\u043f\u0456\u0432\u0434\u0440\u0443\u0436\u043d\u0456\u0441\u0442\u044c \u041d\u0435\u0437\u0430\u043b\u0435\u0436\u043d\u0438\u0445 \u0414\u0435\u0440\u0436\u0430\u0432
territories.BH=\u0411\u0430\u0445\u0440\u0435\u0439\u043d
territories.NR=\u041d\u0430\u0443\u0440\u0443
territories.BG=\u0411\u043e\u043b\u0433\u0430\u0440\u0456\u044f
territories.BF=\u0411\u0443\u0440\u043a\u0456\u043d\u0430-\u0424\u0430\u0441\u043e
territories.NP=\u041d\u0435\u043f\u0430\u043b
territories.BE=\u0411\u0435\u043b\u044c\u0433\u0456\u044f
+territories.ZZ=\u041d\u0435\u0432\u0456\u0434\u043e\u043c\u0438\u0439 \u0430\u0431\u043e \u043d\u0435\u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u0438\u0439 \u0440\u0435\u0433\u0456\u043e\u043d
territories.NO=\u041d\u043e\u0440\u0432\u0435\u0433\u0456\u044f
territories.BD=\u0411\u0430\u043d\u0433\u043b\u0430\u0434\u0435\u0448
territories.BB=\u0411\u0430\u0440\u0431\u0430\u0434\u043e\u0441
@@ -505,10 +564,10 @@ territories.ZW=\u0417\u0456\u043c\u0431\u0430\u0431\u0432\u0435
territories.NL=\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0438
territories.BA=\u0411\u043e\u0441\u043d\u0456\u044f \u0456 \u0413\u0435\u0440\u0446\u043e\u0433\u043e\u0432\u0438\u043d\u0430
territories.NI=\u041d\u0456\u043a\u0430\u0440\u0430\u0433\u0443\u0430
-territories.NG=\u041d\u0456\u0433\u0435\u0440\u0456\u044f
+territories.NG=\u041d\u0456\u0491\u0435\u0440\u0456\u044f
territories.NF=\u041e\u0441\u0442\u0440\u0456\u0432 \u041d\u043e\u0440\u0444\u043e\u043b\u043a
territories.AZ=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d
-territories.NE=\u041d\u0456\u0433\u0435\u0440
+territories.NE=\u041d\u0456\u0491\u0435\u0440
territories.AX=\u0410\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
territories.NC=\u041d\u043e\u0432\u0430 \u041a\u0430\u043b\u0435\u0434\u043e\u043d\u0456\u044f
territories.AW=\u0410\u0440\u0443\u0431\u0430
@@ -518,40 +577,43 @@ territories.AU=\u0410\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u044f
territories.AT=\u0410\u0432\u0441\u0442\u0440\u0456\u044f
territories.AS=\u0410\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0435 \u0421\u0430\u043c\u043e\u0430
territories.AR=\u0410\u0440\u0433\u0435\u043d\u0442\u0438\u043d\u0430
+territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u0434\u0430
territories.009=\u041e\u043a\u0435\u0430\u043d\u0456\u044f
-territories.AQ=\u0410\u043d\u0442\u0430\u0440\u043a\u0442\u0438\u043a\u0430
territories.MZ=\u041c\u043e\u0437\u0430\u043c\u0431\u0456\u043a
territories.AO=\u0410\u043d\u0433\u043e\u043b\u0430
territories.MY=\u041c\u0430\u043b\u0430\u0439\u0437\u0456\u044f
-territories.AN=\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u0410\u043d\u0442\u0456\u043b\u044c\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
+territories.AN=\u041d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0456 \u0410\u043d\u0442\u0438\u043b\u044c\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
territories.MX=\u041c\u0435\u043a\u0441\u0438\u043a\u0430
-territories.005=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.AM=\u0412\u0456\u0440\u043c\u0435\u043d\u0456\u044f
+territories.005=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
territories.MW=\u041c\u0430\u043b\u0430\u0432\u0456
territories.AL=\u0410\u043b\u0431\u0430\u043d\u0456\u044f
territories.MV=\u041c\u0430\u043b\u044c\u0434\u0456\u0432\u0438
-territories.ZA=\u041f\u0410\u0420
+territories.003=\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u0410\u043c\u0435\u0440\u0438\u043a\u0430
+territories.ZA=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u0444\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
territories.MU=\u041c\u0430\u0432\u0440\u0438\u043a\u0456\u0439
territories.002=\u0410\u0444\u0440\u0438\u043a\u0430
territories.MT=\u041c\u0430\u043b\u044c\u0442\u0430
-territories.001=\u0421\u0432\u0456\u0442
territories.AI=\u0410\u043d\u0433\u0456\u043b\u044c\u044f
+territories.001=\u0421\u0432\u0456\u0442
territories.MS=\u041c\u043e\u043d\u0441\u0435\u0440\u0440\u0430\u0442
territories.MR=\u041c\u0430\u0432\u0440\u0438\u0442\u0430\u043d\u0456\u044f
-territories.AG=\u0410\u043d\u0442\u0438\u0433\u0443\u0430 \u0456 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
+territories.AG=\u0410\u043d\u0442\u0438\u0491\u0443\u0430 \u0456 \u0411\u0430\u0440\u0431\u0443\u0434\u0430
territories.MQ=\u041c\u0430\u0440\u0442\u0438\u043d\u0456\u043a\u0430
territories.AF=\u0410\u0444\u0433\u0430\u043d\u0456\u0441\u0442\u0430\u043d
territories.MP=\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0456 \u041c\u0430\u0440\u0456\u0430\u043d\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
-territories.AE=\u041e\u0431\u02bc\u0454\u0434\u043d\u0430\u043d\u0456 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0456 \u0415\u043c\u0456\u0440\u0430\u0442\u0438
-territories.MO=\u041c\u0430\u043a\u0430\u043e, \u0421.\u0410.\u0420. \u041a\u0438\u0442\u0430\u044e
+territories.AE=\u041e\u0431'\u0454\u0434\u043d\u0430\u043d\u0456 \u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0456 \u0415\u043c\u0456\u0440\u0430\u0442\u0438
+territories.MO=\u041c\u0430\u043a\u0430\u043e
territories.AD=\u0410\u043d\u0434\u043e\u0440\u0440\u0430
territories.MN=\u041c\u043e\u043d\u0433\u043e\u043b\u0456\u044f
-territories.MM=\u041c\u02bc\u044f\u043d\u043c\u0430
+territories.MM=\u041c'\u044f\u043d\u043c\u0430
territories.ML=\u041c\u0430\u043b\u0456
territories.MK=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0456\u044f
territories.YT=\u041c\u0430\u0439\u043e\u0442
territories.MH=\u041c\u0430\u0440\u0448\u0430\u043b\u043b\u043e\u0432\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
-territories.MG=\u041c\u0430\u0434\u0430\u0433\u0430\u0441\u043a\u0430\u0440
+territories.MG=\u041c\u0430\u0434\u0430\u0491\u0430\u0441\u043a\u0430\u0440
+territories.MF=\u041e\u0441\u0442\u0440\u0456\u0432 \u0421\u0432\u044f\u0442\u043e\u0433\u043e \u041c\u0430\u0440\u0442\u0456\u043d\u0430
+territories.ME=\u0427\u043e\u0440\u043d\u043e\u0433\u043e\u0440\u0456\u044f
territories.MD=\u041c\u043e\u043b\u0434\u043e\u0432\u0430
territories.MC=\u041c\u043e\u043d\u0430\u043a\u043e
territories.MA=\u041c\u0430\u0440\u043e\u043a\u043a\u043e
@@ -575,22 +637,24 @@ territories.KZ=\u041a\u0430\u0437\u0430\u0445\u0441\u0442\u0430\u043d
territories.KY=\u041a\u0430\u0439\u043c\u0430\u043d\u043e\u0432\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438
territories.KW=\u041a\u0443\u0432\u0435\u0439\u0442
territories.145=\u0417\u0430\u0445\u0456\u0434\u043d\u0430 \u0410\u0437\u0456\u044f
+territories.143=\u0426\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u0430 \u0410\u0437\u0456\u044f
territories.142=\u0410\u0437\u0456\u044f
territories.KR=\u041f\u0456\u0432\u0434\u0435\u043d\u043d\u0430 \u041a\u043e\u0440\u0435\u044f
territories.KP=\u041f\u0456\u0432\u043d\u0456\u0447\u043d\u0430 \u041a\u043e\u0440\u0435\u044f
territories.KN=\u0421\u0435\u043d\u0442-\u041a\u0456\u0442\u0441 \u0456 \u041d\u0435\u0432\u0456\u0441
territories.KM=\u041a\u043e\u043c\u043e\u0440\u0441\u044c\u043a\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438
-territories.KI=\u041a\u0456\u0440\u0438\u0431\u0430\u0442\u0456
+territories.KI=\u041a\u0456\u0440\u0456\u0431\u0430\u0442\u0456
territories.WS=\u0421\u0430\u043c\u043e\u0430
territories.KH=\u041a\u0430\u043c\u0431\u043e\u0434\u0436\u0430
territories.KG=\u041a\u0438\u0440\u0433\u0438\u0437\u0441\u0442\u0430\u043d
territories.KE=\u041a\u0435\u043d\u0456\u044f
-territories.WF=\u0412\u0430\u043b\u043b\u0456\u0441 \u0456 \u0424\u0443\u0442\u0443\u043d\u0430, \u043e\u0441\u0442\u0440\u043e\u0432\u0438
+territories.WF=\u0423\u043e\u043b\u043b\u0456\u0441 \u0456 \u0424\u0443\u0442\u0443\u043d\u0430
territories.JP=\u042f\u043f\u043e\u043d\u0456\u044f
territories.JO=\u0419\u043e\u0440\u0434\u0430\u043d\u0456\u044f
territories.JM=\u042f\u043c\u0430\u0439\u043a\u0430
territories.VU=\u0412\u0430\u043d\u0443\u0430\u0442\u0443
-territories.VN=\u0412\u02bc\u0454\u0442\u043d\u0430\u043c
+territories.JE=\u0414\u0436\u0435\u0440\u0441\u0456
+territories.VN=\u0412'\u0454\u0442\u043d\u0430\u043c
territories.VI=\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 (\u0421\u0428\u0410)
territories.VG=\u0412\u0456\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0456 \u043e\u0441\u0442\u0440\u043e\u0432\u0438 (\u0411\u0440\u0438\u0442\u0430\u043d\u0456\u044f)
territories.VE=\u0412\u0435\u043d\u0435\u0441\u0443\u0435\u043b\u0430
@@ -602,164 +666,558 @@ territories.IR=\u0406\u0440\u0430\u043d
territories.IQ=\u0406\u0440\u0430\u043a
territories.UZ=\u0423\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u0430\u043d
territories.IO=\u0411\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0456 \u0442\u0435\u0440\u0438\u0442\u043e\u0440\u0456\u0457 \u0406\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u043e\u0433\u043e \u043e\u043a\u0435\u0430\u043d\u0443
-territories.UY=\u0423\u0440\u0443\u0433\u0432\u0430\u0439
+territories.UY=\u0423\u0440\u0443\u0491\u0432\u0430\u0439
territories.IN=\u0406\u043d\u0434\u0456\u044f
+territories.IM=\u041e\u0441\u0442\u0440\u0456\u0432 \u041c\u0435\u043d
territories.IL=\u0406\u0437\u0440\u0430\u0457\u043b\u044c
-territories.US=\u0421\u0428\u0410
+territories.US=\u0421\u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0456 \u0428\u0442\u0430\u0442\u0438 \u0410\u043c\u0435\u0440\u0438\u043a\u0438
territories.IE=\u0406\u0440\u043b\u0430\u043d\u0434\u0456\u044f
territories.ID=\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u044f
territories.UM=\u0412\u0456\u0434\u0434\u0430\u043b\u0435\u043d\u0456 \u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0421\u0428\u0410
-territories.UG=\u0423\u0433\u0430\u043d\u0434\u0430
+territories.UG=\u0423\u0491\u0430\u043d\u0434\u0430
territories.UA=\u0423\u043a\u0440\u0430\u0457\u043d\u0430
territories.HU=\u0423\u0433\u043e\u0440\u0449\u0438\u043d\u0430
territories.HT=\u0413\u0430\u0457\u0442\u0456
territories.HR=\u0425\u043e\u0440\u0432\u0430\u0442\u0456\u044f
-territories.TZ=\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f, \u041e\u0431\u02bc\u0454\u0434\u043d\u0430\u043d\u0430 \u0420\u0435\u0441\u043f\u0443\u0431\u043b\u0456\u043a\u0430
+territories.TZ=\u0422\u0430\u043d\u0437\u0430\u043d\u0456\u044f
territories.HN=\u0413\u043e\u043d\u0434\u0443\u0440\u0430\u0441
territories.HM=\u041e\u0441\u0442\u0440\u043e\u0432\u0438 \u0425\u0435\u0440\u0434 \u0456 \u041c\u0430\u043a-\u0414\u043e\u043d\u0430\u043b\u044c\u0434
territories.TW=\u0422\u0430\u0439\u0432\u0430\u043d\u044c
territories.TV=\u0422\u0443\u0432\u0430\u043b\u0443
-territories.HK=\u0413\u043e\u043d\u043a\u043e\u043d\u0433, \u0421.\u0410.\u0420. \u041a\u0438\u0442\u0430\u044e
-territories.TT=\u0422\u0440\u0438\u043d\u0456\u0434\u0430\u0434 \u0456 \u0422\u043e\u0431\u0430\u0433\u043e
+territories.HK=\u0413\u043e\u043d\u043a\u043e\u043d\u0491
+territories.TT=\u0422\u0440\u0438\u043d\u0456\u0434\u0430\u0434 \u0456 \u0422\u043e\u0431\u0430\u0491\u043e
territories.TR=\u0422\u0443\u0440\u0435\u0447\u0447\u0438\u043d\u0430
-territories.TO=\u0422\u043e\u043d\u0433\u0430
+territories.TO=\u0422\u043e\u043d\u0491\u0430
territories.TN=\u0422\u0443\u043d\u0456\u0441
-territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0438\u0441\u0442\u0430\u043d
-languages.es=\u0406\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430
-languages.ku=\u041a\u0443\u0440\u0434\u0441\u044c\u043a\u0430
-languages.eo=\u0415\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
-languages.en=\u0410\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
-languages.ks=\u041a\u0430\u0448\u043c\u0456\u0440\u0441\u044c\u043a\u0430
-languages.el=\u0413\u0440\u0435\u0446\u044c\u043a\u0430
-languages.qu=\u041a\u0435\u0447\u0443\u0430
-languages.ko=\u041a\u043e\u0440\u0435\u0439\u0441\u044c\u043a\u0430
-languages.kn=\u041a\u0430\u043d\u043d\u0430\u0434\u0430
-languages.km=\u041a\u0445\u043c\u0435\u0440\u0441\u044c\u043a\u0430
-languages.kl=\u041a\u0430\u043b\u0430\u0430\u043b\u043b\u0456\u0441\u0443\u0442
-languages.kk=\u041a\u0430\u0437\u0430\u0445\u0441\u044c\u043a\u0430
-languages.wo=\u0412\u043e\u043b\u043e\u0444
-languages.ka=\u0413\u0440\u0443\u0437\u0438\u043d\u0441\u044c\u043a\u0430
-languages.dz=\u0414\u0437\u043e\u043d\u0433-\u043a\u0435
-languages.jv=\u042f\u0432\u0430\u043d\u0441\u044c\u043a\u0430
-languages.pt=\u041f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
-languages.ps=\u041f\u0430\u0448\u0442\u043e
-languages.de=\u041d\u0456\u043c\u0435\u0446\u044c\u043a\u0430
-languages.pl=\u041f\u043e\u043b\u044c\u0441\u044c\u043a\u0430
-languages.da=\u0414\u0430\u0442\u0441\u044c\u043a\u0430
-languages.vo=\u0412\u043e\u043b\u0430\u043f\u0430\u043a
-languages.ja=\u042f\u043f\u043e\u043d\u0441\u044c\u043a\u0430
-languages.vi=\u0412\u02bc\u0454\u0442\u043d\u0430\u043c\u0441\u044c\u043a\u0430
-languages.cy=\u0412\u0430\u043b\u043b\u0456\u0439\u0441\u044c\u043a\u0430
-languages.pa=\u041f\u0430\u043d\u0434\u0436\u0430\u0431\u0456
-languages.cs=\u0427\u0435\u0441\u044c\u043a\u0430
-languages.co=\u041a\u043e\u0440\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430
-languages.it=\u0406\u0442\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430
-languages.is=\u0406\u0441\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
-languages.uz=\u0423\u0437\u0431\u0435\u0446\u044c\u043a\u0430
-languages.or=\u041e\u0440\u0456\u044f
-languages.ik=\u0406\u043d\u0443\u043f\u0456\u0430\u043a
-languages.ur=\u0423\u0440\u0434\u0443
-languages.om=\u041e\u0440\u043e\u043c\u043e
-languages.ca=\u041a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u044c\u043a\u0430
-languages.ie=\u0406\u043d\u0442\u0435\u0440\u043b\u0456\u043d\u0433\u0432\u0430
-languages.id=\u0406\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0430
-languages.uk=\u0423\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430
-languages.ia=\u0406\u043d\u0442\u0435\u0440\u043b\u0456\u043d\u0433\u0432\u0430
-languages.oc=\u041e\u043a\u0438\u0442\u0430\u043d
-languages.ug=\u0423\u0439\u0433\u0443\u0440\u0441\u044c\u043a\u0430
-languages.hy=\u0412\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0430
-languages.br=\u0411\u0440\u0435\u0442\u043e\u043d\u0441\u044c\u043a\u0430
-languages.hu=\u0423\u0433\u043e\u0440\u0441\u044c\u043a\u0430
-languages.bo=\u0422\u0438\u0431\u0435\u0442\u0441\u044c\u043a\u0430
-languages.bn=\u0411\u0435\u043d\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
-languages.hr=\u0425\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0430
-languages.bi=\u0411\u0456\u0441\u043b\u0430\u043c\u0456\u0439\u0441\u044c\u043a\u0430
-languages.tw=\u0422\u0432\u0456
-languages.bh=\u0411\u0456\u0445\u0430\u0440\u0456\u0439\u0441\u044c\u043a\u0430
-languages.bg=\u0411\u043e\u043b\u0433\u0430\u0440\u0441\u044c\u043a\u0430
-languages.tt=\u0422\u0430\u0442\u0430\u0440\u0441\u044c\u043a\u0430
-languages.no=\u041d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430
-languages.be=\u0411\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0430
-languages.ts=\u0422\u0441\u043e\u043d\u0433\u043e
-languages.hi=\u0413\u0456\u043d\u0434\u0456
-languages.tr=\u0422\u0443\u0440\u0435\u0446\u044c\u043a\u0430
-languages.nl=\u0413\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
-languages.zu=\u0417\u0443\u043b\u0443\u0441\u044c\u043a\u0430
-languages.ba=\u0411\u0430\u0448\u043a\u0438\u0440\u0441\u044c\u043a\u0430
-languages.to=\u0422\u043e\u043d\u0433\u0430 (\u043e\u0441\u0442\u0440\u043e\u0432\u0438 \u0422\u043e\u043d\u0433\u0430)
-languages.he=\u0406\u0432\u0440\u0438\u0442
-languages.tn=\u0421\u0435\u0442\u0441\u0432\u0430\u043d\u0441\u044c\u043a\u0430
-languages.tl=\u0422\u0430\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
-languages.tk=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u044c\u043a\u0430
-languages.ha=\u0425\u0430\u0443\u0441\u0430
-languages.ne=\u041d\u0435\u043f\u0430\u043b\u044c\u0441\u044c\u043a\u0430
-languages.az=\u0410\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u044c\u043a\u0430
-languages.ti=\u0422\u0438\u0433\u0440\u0456\u043d\u0456
-languages.ay=\u0410\u0439\u043c\u0430\u0440\u0430
-languages.th=\u0422\u0430\u0439\u0441\u044c\u043a\u0430
-languages.tg=\u0422\u0430\u0434\u0436\u0438\u0446\u044c\u043a\u0430
-languages.na=\u041d\u0430\u0443\u0440\u0443
-languages.te=\u0422\u0435\u043b\u0443\u0433\u0443
-languages.zh=\u041a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0430
-languages.as=\u0410\u0441\u0441\u0430\u043c\u0441\u044c\u043a\u0430
-languages.ar=\u0410\u0440\u0430\u0431\u0441\u044c\u043a\u0430
-languages.ta=\u0422\u0430\u043c\u0456\u043b\u044c\u0441\u044c\u043a\u0430
-languages.gu=\u0413\u0443\u044f\u0440\u0430\u0442\u0456
-languages.my=\u0411\u0456\u0440\u043c\u0430\u043d\u0441\u044c\u043a\u0430
-languages.am=\u0410\u043c\u0445\u0430\u0440\u0456\u043a
-languages.za=\u0417\u0443\u0430\u043d\u0433
-languages.mt=\u041c\u0430\u043b\u044c\u0442\u0456\u0439\u0441\u044c\u043a\u0430
-languages.ms=\u041c\u0430\u043b\u0430\u0439\u0441\u044c\u043a\u0430
-languages.gn=\u0413\u0443\u0430\u0440\u0430\u043d\u0456
-languages.sw=\u0421\u0443\u0430\u0445\u0456\u043b\u0456
-languages.mr=\u041c\u0430\u0440\u0430\u0442\u0445\u0456
-languages.sv=\u0428\u0432\u0435\u0434\u0441\u044c\u043a\u0430
-languages.gl=\u0413\u0430\u043b\u0456\u0441\u0456\u0439\u0441\u044c\u043a\u0430
-languages.su=\u0421\u0443\u0434\u0430\u043d\u0441\u044c\u043a\u0430
-languages.af=\u0410\u0444\u0440\u0438\u043a\u0430\u043d\u0441
-languages.st=\u0421\u043e\u0442\u043e, \u043f\u0456\u0432\u0434\u0435\u043d\u043d\u0438\u0439 \u0434\u0456\u0430\u043b\u0435\u043a\u0442
-languages.mo=\u041c\u043e\u043b\u0434\u0430\u0432\u0441\u044c\u043a\u0430
-languages.ss=\u0421\u0456\u0441\u0432\u0430\u0442\u0456
-languages.mn=\u041c\u043e\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430
-languages.sr=\u0421\u0435\u0440\u0431\u0441\u044c\u043a\u0430
-languages.sq=\u0410\u043b\u0431\u0430\u043d\u0441\u044c\u043a\u0430
-languages.ml=\u041c\u0430\u043b\u0430\u0439\u044f\u043b\u0430\u043c
-languages.ab=\u0410\u0431\u0445\u0430\u0437\u044c\u043a\u0430
-languages.aa=\u0410\u0444\u0430\u0440\u0441\u044c\u043a\u0430
-languages.mk=\u041c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u044c\u043a\u0430
-languages.so=\u0421\u043e\u043c\u0430\u043b\u0456
-languages.sn=\u0428\u043e\u043d\u0430
-languages.gd=\u0413\u0430\u0435\u043b\u044c\u0441\u044c\u043a\u0430
-languages.mi=\u041c\u0430\u043e\u0440\u0456
-languages.sm=\u0421\u0430\u043c\u043e\u0430\u043d\u0441\u044c\u043a\u0430
-languages.sl=\u0421\u043b\u043e\u0432\u0435\u043d\u0441\u044c\u043a\u0430
-languages.mg=\u041c\u0430\u043b\u0430\u0433\u0430\u0441\u0456\u0439\u0441\u044c\u043a\u0430
-languages.sk=\u0421\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430
-languages.ga=\u0406\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
-languages.yo=\u0419\u043e\u0440\u0443\u0431\u0430
-languages.si=\u0421\u0438\u043d\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
-languages.sh=\u0421\u0435\u0440\u0431\u0441\u044c\u043a\u043e-\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0430
-languages.sg=\u0421\u0430\u043d\u0433\u0440\u043e
-languages.yi=\u0406\u0434\u0438\u0448
-languages.sd=\u0421\u0456\u043d\u0434\u0442\u0445\u0456
-languages.fy=\u0424\u0440\u0438\u0437\u044c\u043a\u0430
-languages.sa=\u0421\u0430\u043d\u0441\u043a\u0440\u0438\u0442
-languages.fr=\u0424\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430
-languages.lv=\u041b\u0430\u0442\u0432\u0456\u0439\u0441\u044c\u043a\u0430
-languages.fo=\u0424\u0430\u0440\u0435\u0440\u0441\u044c\u043a\u0430
-languages.lt=\u041b\u0438\u0442\u043e\u0432\u0441\u044c\u043a\u0430
-languages.rw=\u041a\u0456\u043d\u0430\u0440\u0443\u0430\u043d\u0434\u0430
-languages.ru=\u0420\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0430
-languages.fj=\u0424\u0456\u0434\u0436\u0456
-languages.lo=\u041b\u0430\u043e\u0441\u044c\u043a\u0430
-languages.fi=\u0424\u0456\u043d\u0441\u044c\u043a\u0430
-languages.ln=\u041b\u0456\u043d\u0433\u0430\u043b\u0430
-languages.ro=\u0420\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0430
-languages.rn=\u041a\u0456\u0440\u0443\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0430
-languages.rm=\u0420\u0435\u0442\u0440\u043e\u0440\u043e\u043c\u0430\u043d\u0441\u044c\u043a\u0456 \u0434\u0456\u0430\u043b\u0435\u043a\u0442\u0438
-languages.fa=\u041f\u0435\u0440\u0441\u044c\u043a\u0430
-languages.la=\u041b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0430
-languages.xh=\u041a\u0445\u043e\u0441\u0430
-languages.eu=\u0411\u0430\u0441\u043a\u0456\u0432
-languages.et=\u0415\u0441\u0442\u043e\u043d\u0441\u044c\u043a\u0430
-languages.ky=\u041a\u0438\u0440\u0433\u0438\u0437\u044c\u043a\u0430
+territories.TM=\u0422\u0443\u0440\u043a\u043c\u0435\u043d\u0456\u0441\u0442\u0430\u043d
+languages.gwi=\u043a\u0443\u0447\u0456\u043d
+languages.akk=\u0430\u043a\u043a\u0430\u0434\u0441\u044c\u043a\u0430
+languages.eka=\u0435\u043a\u0430\u0434\u0436\u0443\u043a
+languages.ijo=\u0456\u0434\u0436\u043e
+languages.xh=\u043a\u0445\u043e\u0441\u0430
+languages.sux=\u0448\u0443\u043c\u0435\u0440\u0441\u044c\u043a\u0430
+languages.sus=\u0441\u0443\u0441\u0443
+languages.mis=\u0456\u043d\u0448\u0456 \u043c\u043e\u0432\u0438
+languages.loz=\u043b\u043e\u0437\u0456
+languages.tog=\u043d\u044c\u044f\u0441\u0430 \u0442\u043e\u043d\u0433\u0430
+languages.zbl=\u0431\u043b\u0456\u0441\u0441\u0430 \u043c\u043e\u0432\u0430
+languages.pon=\u043f\u043e\u043d\u0430\u043f\u0435
+languages.min=\u043c\u0456\u043d\u0430\u043d\u0433\u043a\u0430\u0431\u0430\u0443
+languages.suk=\u0441\u0443\u043a\u0443\u043c\u0430
+languages.wo=\u0432\u043e\u043b\u043e\u0444
+languages.lol=\u043c\u043e\u043d\u0433\u043e
+languages.kut=\u043a\u0443\u0442\u0435\u043d\u0430\u0457
+languages.mic=\u043c\u0456\u043a\u043c\u0430\u043a
+languages.wa=\u0432\u0430\u043b\u043b\u043e\u043d\u0441\u044c\u043a\u0430
+languages.kum=\u043a\u0443\u043c\u0438\u0446\u044c\u043a\u0430
+languages.zap=\u0441\u0430\u043f\u043e\u0442\u0435\u043a\u0441\u044c\u043a\u0430
+languages.ain=\u0430\u0439\u043d\u0441\u044c\u043a\u0430
+languages.cus=\u043a\u0443\u0448\u0456\u0442\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.jbo=\u043b\u043e\u0436\u0431\u0430\u043d
+languages.doi=\u0434\u043e\u0433\u0440\u0456
+languages.zza=\u0437\u0430\u0437\u0430
+languages.vo=\u0432\u043e\u043b\u0430\u043f\u2019\u044e\u043a
+languages.oto=\u043e\u0442\u043e\u043c\u0456 \u043c\u043e\u0432\u0438
+languages.vi=\u0432'\u0454\u0442\u043d\u0430\u043c\u0441\u044c\u043a\u0430
+languages.vai=\u0432\u0430\u0457
+languages.rar=\u0440\u0430\u0440\u043e\u0442\u043e\u043d\u0433\u0430
+languages.ve=\u0432\u0435\u043d\u0434\u0430
+languages.rap=\u0440\u0430\u043f\u0430\u043d\u0443\u0457
+languages.raj=\u0440\u0430\u0434\u0436\u0430\u0441\u0442\u0445\u0430\u043d\u0456
+languages.ota=\u043e\u0441\u043c\u0430\u043d\u0441\u044c\u043a\u0430
+languages.nzi=\u043d\u0437\u0456\u043c\u0430
+languages.nap=\u043d\u0435\u0430\u043f\u043e\u043b\u0456\u0442\u0430\u043d\u0441\u044c\u043a\u0430
+languages.uz=\u0443\u0437\u0431\u0435\u0446\u044c\u043a\u0430
+languages.uga=\u0443\u0433\u0430\u0440\u0438\u0442\u0441\u044c\u043a\u0430
+languages.tmh=\u0442\u0430\u043c\u0430\u0448\u0435\u043a
+languages.nai=\u043f\u0456\u0432\u043d\u0456\u0447\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0445 \u0456\u043d\u0434\u0456\u0430\u043d\u0446\u0456\u0432 \u043c\u043e\u0432\u0438
+languages.nah=\u043d\u0430\u0445\u0443\u0430\u0442\u043b\u044c
+languages.ur=\u0443\u0440\u0434\u0443
+languages.fat=\u0444\u0430\u043d\u0442\u0456
+languages.uk=\u0443\u043a\u0440\u0430\u0457\u043d\u0441\u044c\u043a\u0430
+languages.egy=\u0434\u0430\u0432\u043d\u044c\u043e\u0454\u0433\u0438\u043f\u0435\u0442\u0441\u044c\u043a\u0430
+languages.zxx=\u043d\u0435\u043c\u0430\u0454 \u043c\u043e\u0432\u043d\u043e\u0433\u043e \u0432\u043c\u0456\u0441\u0442\u0443
+languages.ug=\u0443\u0439\u0433\u0443\u0440\u0441\u044c\u043a\u0430
+languages.fan=\u0444\u0430\u043d\u0433
+languages.ssa=\u043d\u0456\u043b\u043e-\u0441\u0430\u0445\u0430\u0440\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.mga=\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0456\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.bat=\u0431\u0430\u043b\u0442\u0456\u0439\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.nyo=\u043d\u044c\u043e\u0440\u043e
+languages.bas=\u0431\u0430\u0441\u0430
+languages.nyn=\u043d\u044c\u044f\u043d\u043a\u043e\u043b\u0435
+languages.nym=\u043d\u044c\u044f\u043c\u0432\u0435\u0437\u0456
+languages.gsw=\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 (\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0456\u044f)
+languages.hmn=\u0445\u043c\u043e\u043d\u0433
+languages.ban=\u0431\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.osa=\u043e\u0441\u0435\u0439\u0434\u0436
+languages.bal=\u0431\u0430\u043b\u0443\u0447\u0456
+languages.ty=\u0442\u0430\u0457\u0442\u044f\u043d\u0441\u044c\u043a\u0430
+languages.bai=\u0431\u0430\u043c\u0456\u043b\u0435\u043a\u0435 \u043c\u043e\u0432\u0438
+languages.tw=\u0442\u0432\u0456
+languages.srr=\u0441\u0435\u0440\u0435\u0440
+languages.tli=\u0442\u043b\u0456\u043d\u0433\u0456\u0442
+languages.tlh=\u043a\u043b\u0456\u043d\u0433\u043e\u043d
+languages.tt=\u0442\u0430\u0442\u0430\u0440\u0441\u044c\u043a\u0430
+languages.ts=\u0442\u0441\u043e\u043d\u0433\u0430
+languages.srn=\u0441\u0440\u0430\u043d\u0430\u043d \u0442\u043e\u043d\u0433\u043e
+languages.bad=\u0431\u0430\u043d\u0434\u0430
+languages.tr=\u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0430
+languages.to=\u0422\u043e\u043d\u0433\u0430
+languages.tn=\u0442\u0441\u0432\u0430\u043d\u0430
+languages.tl=\u0442\u0430\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.tk=\u0442\u0443\u0440\u043a\u043c\u0435\u043d\u0441\u044c\u043a\u0430
+languages.ti=\u0442\u0438\u0433\u0440\u0456\u043d\u0456
+languages.th=\u0442\u0430\u0439\u0441\u044c\u043a\u0430
+languages.kru=\u043a\u0443\u0440\u0443\u043a\u0445
+languages.tg=\u0442\u0430\u0434\u0436\u0438\u0446\u044c\u043a\u0430
+languages.byn=\u0431\u043b\u0456\u043d
+languages.te=\u0442\u0435\u043b\u0443\u0433\u0443
+languages.kro=\u043a\u0440\u0443
+languages.csb=\u043a\u0430\u0448\u0443\u0431\u0441\u044c\u043a\u0430
+languages.ta=\u0442\u0430\u043c\u0456\u043b\u044c\u0441\u044c\u043a\u0430
+languages.krl=\u043a\u0430\u0440\u0435\u043b\u044c\u0441\u044c\u043a\u0430
+languages.tkl=\u0442\u043e\u043a\u0435\u043b\u0430\u0443
+languages.efi=\u0435\u0444\u0456\u043a
+languages.sw=\u0441\u0443\u0430\u0445\u0456\u043b\u0456
+languages.sv=\u0448\u0432\u0435\u0434\u0441\u044c\u043a\u0430
+languages.su=\u0441\u0443\u043d\u0434\u0430\u043d\u0441\u044c\u043a\u0430
+languages.krc=\u043a\u0430\u0440\u0430\u0447\u0430\u0454\u0432\u043e-\u0431\u0430\u043b\u043a\u0430\u0440\u0441\u044c\u043a\u0430
+languages.st=\u0441\u043e\u0442\u043e \u043f\u0456\u0432\u0434\u0435\u043d\u043d\u0430
+languages.ss=\u0441\u0456\u0441\u0432\u0430\u0442\u0456
+languages.sr=\u0441\u0435\u0440\u0431\u0441\u044c\u043a\u0430
+languages.sq=\u0430\u043b\u0431\u0430\u043d\u0441\u044c\u043a\u0430
+languages.men=\u043c\u0435\u043d\u0434\u0435
+languages.crp=\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u044c\u043a\u0456 \u0442\u0430 \u043f\u0456\u0434\u0436\u0456\u043d\u0456\u0437\u043e\u0432\u0430\u043d\u0456 \u043c\u043e\u0432\u0438
+languages.so=\u0441\u043e\u043c\u0430\u043b\u0456
+languages.afh=\u0430\u0444\u0440\u0438\u0445\u0456\u043b\u0456
+languages.sn=\u0448\u043e\u043d\u0430
+languages.sm=\u0441\u0430\u043c\u043e\u0430\u043d\u0441\u044c\u043a\u0430
+languages.sl=\u0441\u043b\u043e\u0432\u0435\u043d\u0441\u044c\u043a\u0430
+languages.grc=\u0434\u0430\u0432\u043d\u044c\u043e\u0433\u0440\u0435\u0446\u044c\u043a\u0430
+languages.sk=\u0441\u043b\u043e\u0432\u0430\u0446\u044c\u043a\u0430
+languages.grb=\u0433\u0440\u0435\u0431\u043e
+languages.si=\u0441\u0438\u043d\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.sh=\u0441\u0435\u0440\u0431\u0441\u044c\u043a\u043e-\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0430
+languages.crh=\u043a\u0440\u0438\u043c\u0441\u044c\u043a\u043e\u0442\u0430\u0442\u0430\u0440\u0441\u044c\u043a\u0430
+languages.afa=\u0430\u0444\u0440\u043e-\u0430\u0437\u0456\u0439\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.sg=\u0441\u0430\u043d\u0433\u043e
+languages.se=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u0430
+languages.sd=\u0441\u0456\u043d\u0434\u0445\u0456
+languages.udm=\u0443\u0434\u043c\u0443\u0440\u0442\u0441\u044c\u043a\u0430
+languages.sc=\u0441\u0430\u0440\u0434\u0438\u043d\u0441\u044c\u043a\u0430
+languages.sa=\u0441\u0430\u043d\u0441\u043a\u0440\u0438\u0442
+languages.rw=\u043a\u0456\u043d\u044c\u044f\u0440\u0443\u0430\u043d\u0434\u0430
+languages.nwc=\u043d\u0435\u0432\u0430\u0440\u0456 \u043a\u043b\u0430\u0441\u0438\u0447\u043d\u0430
+languages.ru=\u0440\u043e\u0441\u0456\u0439\u0441\u044c\u043a\u0430
+languages.mdr=\u043c\u0430\u043d\u0434\u0430\u0440\u0441\u044c\u043a\u0430
+languages.ro=\u0440\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0430
+languages.rn=\u0440\u0443\u043d\u0434\u0456
+languages.rm=\u0440\u0435\u0442\u043e\u0440\u043e\u043c\u0430\u043d\u0441\u044c\u043a\u0430
+languages.fr_CH=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u0448\u0432\u0435\u0439\u0446\u0430\u0440\u0441\u044c\u043a\u0430
+languages.mdf=\u043c\u043e\u043a\u0448\u0430
+languages.tiv=\u0442\u0456\u0432
+languages.fr_CA=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430 \u043a\u0430\u043d\u0430\u0434\u0441\u044c\u043a\u0430
+languages.ady=\u0430\u0434\u0438\u0433\u0435\u0439\u0441\u044c\u043a\u0430
+languages.zun=\u0437\u0443\u043d\u044c\u0457
+languages.kpe=\u043a\u043f\u0435\u043b\u043b\u0454
+languages.qu=\u043a\u0435\u0447\u0443\u0430
+languages.tig=\u0442\u0438\u0433\u0440\u0435
+languages.son=\u0441\u043e\u043d\u0433\u0430\u0439
+languages.cpp=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u044c\u043a\u0456 \u0442\u0430 \u043f\u0456\u0434\u0436\u0456\u043d\u0456\u0437\u043e\u0432\u0430\u043d\u0456 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.rup=\u0430\u0440\u0443\u043c\u0443\u043d\u0441\u044c\u043a\u0430
+languages.sog=\u0441\u043e\u0433\u0434\u0456\u0439\u0441\u044c\u043a\u0430
+languages.ada=\u0430\u0434\u0430\u043d\u0433\u043c\u0435
+languages.kos=\u043a\u043e\u0441\u0440\u0430\u0435
+languages.hit=\u0445\u0456\u0442\u0456\u0442\u0456
+languages.cpf=\u0440\u0430\u043d\u043a\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u044c\u043a\u0456 \u0442\u0430 \u043f\u0456\u0434\u0436\u0456\u043d\u0456\u0437\u043e\u0432\u0430\u043d\u0456 \u0444\u0440\u0430\u043d\u043a\u043e\u0444\u043e\u043d\u043d\u0456 \u043c\u043e\u0432\u0438
+languages.cpe=\u043d\u0433\u043b\u043e-\u043a\u0440\u0435\u043e\u043b\u044c\u0441\u044c\u043a\u0456 \u0442\u0430 \u043f\u0456\u0434\u0436\u0456\u043d\u0456\u0437\u043e\u0432\u0430\u043d\u0456 \u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.him=\u0445\u0456\u043c\u0430\u0447\u0430\u043b\u0456
+languages.kok=\u043a\u043e\u043d\u043a\u0430\u043d\u0456
+languages.hil=\u0445\u0456\u043b\u0456\u0433\u0430\u0439\u043d\u043e\u043d
+languages.got=\u0433\u043e\u0442\u0441\u044c\u043a\u0430
+languages.gor=\u0433\u043e\u0440\u043e\u043d\u0442\u0430\u043b\u043e
+languages.gon=\u0433\u043e\u043d\u0434\u0456
+languages.din=\u0434\u0456\u043d\u043a\u0430
+languages.nub=\u043d\u0443\u0431\u0456\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.pt=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.ps=\u043f\u0443\u0448\u0442\u0443
+languages.fur=\u0444\u0440\u0456\u0443\u043b\u044c\u0441\u044c\u043a\u0430
+languages.phn=\u0444\u0456\u043d\u0456\u043a\u0456\u0439\u0441\u044c\u043a\u043e-\u043f\u0443\u043d\u0456\u0447\u043d\u0430
+languages.de_CH=\u0432\u0435\u0440\u0445\u044c\u043e\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 (\u0428\u0432\u0435\u0439\u0446\u0430\u0440\u0456\u044f)
+languages.goh=\u0434\u0430\u0432\u043d\u044c\u043e\u0432\u0435\u0440\u0445\u043d\u044c\u043e\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430
+languages.snk=\u0441\u043e\u043d\u0456\u043d\u043a\u0435
+languages.cop=\u043a\u043e\u043f\u0442\u0441\u044c\u043a\u0430
+languages.yap=\u044f\u043f
+languages.ach=\u0430\u0447\u043e\u043b\u0456
+languages.yao=\u044f\u043e
+languages.phi=\u0444\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.pl=\u043f\u043e\u043b\u044c\u0441\u044c\u043a\u0430
+languages.ace=\u0430\u0447\u0435\u0445\u0441\u044c\u043a\u0430
+languages.pi=\u043f\u0430\u043b\u0456
+languages.pt_PT=\u0456\u0431\u0435\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.pa=\u043f\u0430\u043d\u0434\u0436\u0430\u0431\u0456
+languages.bug=\u0431\u0443\u0433\u0456\u0439\u0441\u044c\u043a\u0430
+languages.iba=\u0456\u0431\u0430\u043d\u0441\u044c\u043a\u0430
+languages.sms=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0430 \u0441\u043a\u043e\u043b\u044c\u0442
+languages.bua=\u0431\u0443\u0440\u044f\u0442\u0441\u044c\u043a\u0430
+languages.mas=\u043c\u0430\u0441\u0430\u0457
+languages.smn=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0430 \u0456\u043d\u0430\u0440\u0456
+languages.os=\u043e\u0441\u0435\u0442\u0438\u043d\u0441\u044c\u043a\u0430
+languages.map=\u0430\u0432\u0441\u0442\u0440\u043e\u043d\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.or=\u043e\u0440\u0456\u044f
+languages.man=\u043c\u0430\u043d\u0434\u0456\u043d\u0433\u043e
+languages.smj=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0430 \u043b\u0443\u043b\u0435
+languages.smi=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.mak=\u043c\u0430\u043a\u0430\u0441\u0430\u0440\u0441\u044c\u043a\u0430
+languages.om=\u043e\u0440\u043e\u043c\u043e
+languages.mai=\u043c\u0430\u0439\u0442\u0445\u0456\u043b\u0456
+languages.oj=\u043e\u0434\u0436\u0456\u0431\u0432\u0430
+languages.mag=\u043c\u0430\u0433\u0430\u0434\u0445\u0456
+languages.mad=\u043c\u0430\u0434\u0443\u0440\u0441\u044c\u043a\u0430
+languages.sma=\u0441\u0430\u0430\u043c\u0441\u044c\u043a\u0430 \u043f\u0456\u0432\u0434\u0435\u043d\u043d\u0430
+languages.oc=\u043e\u043a\u0438\u0442\u0430\u043d
+languages.nso=\u0441\u043e\u0442\u043e \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u0430
+languages.btk=\u0431\u0430\u0442\u0430\u043a
+languages.myv=\u0435\u0440\u0437\u044f
+languages.es_ES=\u0456\u0431\u0435\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u0456\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430
+languages.de_AT=\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 \u0430\u0432\u0441\u0442\u0440\u0456\u0439\u0441\u044c\u043a\u0430
+languages.dgr=\u0434\u043e\u0433\u0440\u0438\u0431\u0441\u044c\u043a\u0430
+languages.ny=\u043d\u044c\u044f\u043d\u0434\u0436\u0430
+languages.myn=\u043c\u0430\u0439\u044f \u043c\u043e\u0432\u0438
+languages.nv=\u043d\u0430\u0432\u0430\u0445\u043e
+languages.kmb=\u043a\u0456\u043c\u0431\u0443\u043d\u0434\u0443
+languages.nr=\u043d\u0434\u0435\u0431\u0435\u043b\u0454 \u043f\u0456\u0432\u0434\u0435\u043d\u043d\u0430
+languages.gmh=\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0432\u0435\u0440\u0445\u043d\u044c\u043e\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430
+languages.no=\u043d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430
+languages.nn=\u043d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430 \u043d\u044e\u043d\u043e\u0440\u0441\u044c\u043a
+languages.nl=\u0433\u043e\u043b\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.root=\u043a\u043e\u0440\u0456\u043d\u044c
+languages.ng=\u043d\u0434\u043e\u043d\u0433\u0430
+languages.sla=\u0441\u043b\u043e\u0432\u2019\u044f\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.ne=\u043d\u0435\u043f\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.nd=\u043d\u0434\u0435\u0431\u0435\u043b\u0454 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u0430
+languages.cmc=\u0445\u0430\u043c\u0456\u0442\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.tet=\u0442\u0435\u0442\u0443\u043c
+languages.nb=\u043d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430 \u0431\u0443\u043a\u043c\u043e\u043b
+languages.na=\u043d\u0430\u0443\u0440\u0443
+languages.ter=\u0442\u0435\u0440\u0435\u043d\u043e
+languages.tem=\u0442\u0435\u043c\u043d\u0435
+languages.my=\u0431\u0456\u0440\u043c\u0430\u043d\u0441\u044c\u043a\u0430
+languages.lez=\u043b\u0435\u0437\u0433\u0456\u043d\u0441\u044c\u043a\u0430
+languages.mt=\u043c\u0430\u043b\u044c\u0442\u0456\u0439\u0441\u044c\u043a\u0430
+languages.frs=\u0444\u0440\u0438\u0437\u044c\u043a\u0430 \u0441\u0445\u0456\u0434\u043d\u0430
+languages.peo=\u0434\u0430\u0432\u043d\u044c\u043e\u043f\u0435\u0440\u0441\u044c\u043a\u0430
+languages.ms=\u043c\u0430\u043b\u0430\u0439\u0441\u044c\u043a\u0430
+languages.frr=\u0444\u0440\u0438\u0437\u044c\u043a\u0430 \u043f\u0456\u0432\u043d\u0456\u0447\u043d\u0430
+languages.mr=\u043c\u0430\u0440\u0430\u0442\u0445\u0456
+languages.fro=\u0434\u0430\u0432\u043d\u044c\u043e\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430
+languages.mo=\u043c\u043e\u043b\u0434\u0430\u0432\u0441\u044c\u043a\u0430
+languages.mn=\u043c\u043e\u043d\u0433\u043e\u043b\u044c\u0441\u044c\u043a\u0430
+languages.frm=\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430
+languages.ml=\u043c\u0430\u043b\u0430\u0439\u044f\u043b\u0430\u043c
+languages.jrb=\u0456\u0443\u0434\u0435\u043e-\u0430\u0440\u0430\u0431\u0441\u044c\u043a\u0430
+languages.mk=\u043c\u0430\u043a\u0435\u0434\u043e\u043d\u0441\u044c\u043a\u0430
+languages.mi=\u043c\u0430\u043e\u0440\u0456
+languages.mh=\u043c\u0430\u0440\u0448\u0430\u043b\u043b\u044c\u0441\u044c\u043a\u0430
+languages.mg=\u043c\u0430\u043b\u0430\u0433\u0430\u0441\u0456\u0439\u0441\u044c\u043a\u0430
+languages.nqo=\u043d\u043a\u043e
+languages.mwr=\u043c\u0430\u0440\u0432\u0430\u0440\u0456
+languages.bra=\u0431\u0440\u0430\u0434\u0436
+languages.mwl=\u043c\u0456\u0440\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.den=\u0441\u043b\u0435\u0439\u0432
+languages.lv=\u043b\u0430\u0442\u0432\u0456\u0439\u0441\u044c\u043a\u0430
+languages.lu=\u043b\u0443\u0431\u0430-\u043a\u0430\u0442\u0430\u043d\u0433\u0430
+languages.del=\u0434\u0435\u043b\u0430\u0432\u0430\u0440\u0441\u044c\u043a\u0430
+languages.lt=\u043b\u0438\u0442\u043e\u0432\u0441\u044c\u043a\u0430
+languages.lo=\u043b\u0430\u043e\u0441\u044c\u043a\u0430
+languages.ln=\u043b\u0456\u043d\u0433\u0430\u043b\u0430
+languages.li=\u043b\u0456\u043c\u0431\u0443\u0440\u0433\u0456\u0439\u0441\u044c\u043a\u0430
+languages.ewo=\u0435\u0432\u043e\u043d\u0434\u043e
+languages.lg=\u0433\u0430\u043d\u0434\u0430
+languages.lb=\u043b\u044e\u043a\u0441\u0435\u043c\u0431\u0443\u0440\u0437\u044c\u043a\u0430
+languages.la=\u043b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0430
+languages.jpr=\u0456\u0443\u0434\u0435\u043e-\u043f\u0435\u0440\u0441\u044c\u043a\u0430
+languages.vot=\u0432\u043e\u0434\u0441\u044c\u043a\u0430
+languages.sit=\u043a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u043e-\u0442\u0438\u0431\u0435\u0442\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.ky=\u043a\u0438\u0440\u0433\u0438\u0437\u044c\u043a\u0430
+languages.kw=\u043a\u043e\u0440\u043d\u0456\u0439\u0441\u044c\u043a\u0430
+languages.kv=\u043a\u043e\u043c\u0456
+languages.ku=\u043a\u0443\u0440\u0434\u0441\u044c\u043a\u0430
+languages.sio=\u0441\u0456\u0443 \u043c\u043e\u0432\u0438
+languages.ks=\u043a\u0430\u0448\u043c\u0456\u0440\u0441\u044c\u043a\u0430
+languages.kr=\u043a\u0430\u043d\u0443\u0440\u0456
+languages.awa=\u0430\u0432\u0430\u0434\u0445\u0456
+languages.ko=\u043a\u043e\u0440\u0435\u0439\u0441\u044c\u043a\u0430
+languages.kn=\u043a\u0430\u043d\u043d\u0430\u0434\u0430
+languages.km=\u043a\u0445\u043c\u0435\u0440\u0441\u044c\u043a\u0430
+languages.en_GB=\u0431\u0440\u0438\u0442\u0430\u043d\u0441\u044c\u043a\u0430 \u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.kl=\u043a\u0430\u043b\u0430\u0430\u043b\u043b\u0456\u0441\u0443\u0442
+languages.kk=\u043a\u0430\u0437\u0430\u0445\u0441\u044c\u043a\u0430
+languages.rom=\u0446\u0438\u0433\u0430\u043d\u0441\u044c\u043a\u0430
+languages.kj=\u043a\u0443\u043d\u0430\u043c\u0430
+languages.sid=\u0441\u0456\u0434\u0430\u043c\u043e
+languages.ki=\u043a\u0456\u043a\u0443\u0439\u044e
+languages.kg=\u043a\u043e\u043d\u0491\u043e\u043b\u0435\u0437\u044c\u043a\u0430
+languages.non=\u0434\u0430\u0432\u043d\u044c\u043e\u043d\u043e\u0440\u0432\u0435\u0437\u044c\u043a\u0430
+languages.ka=\u0433\u0440\u0443\u0437\u0438\u043d\u0441\u044c\u043a\u0430
+languages.mus=\u043a\u0440\u0456\u043a
+languages.roa=\u0440\u043e\u043c\u0430\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.nog=\u043d\u043e\u0433\u0430\u0439\u0441\u044c\u043a\u0430
+languages.mun=\u043c\u0443\u043d\u0434\u0430 \u043c\u043e\u0432\u0438
+languages.mul=\u0434\u0435\u043a\u0456\u043b\u044c\u043a\u0430 \u043c\u043e\u0432
+languages.jv=\u044f\u0432\u0430\u043d\u0441\u044c\u043a\u0430
+languages.gil=\u0433\u0456\u043b\u044c\u0431\u0435\u0440\u0442\u0441\u044c\u043a\u0430
+languages.znd=\u0437\u0430\u043d\u0434\u0435
+languages.shn=\u0448\u0430\u043d\u0441\u044c\u043a\u0430
+languages.fon=\u0444\u043e\u043d
+languages.xal=\u043a\u0430\u043b\u043c\u0438\u0446\u044c\u043a\u0430
+languages.aus=\u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.kho=\u0445\u043e\u0442\u0430\u043d\u043e\u0441\u0430\u043a\u0441\u044c\u043a\u0430
+languages.ja=\u044f\u043f\u043e\u043d\u0441\u044c\u043a\u0430
+languages.khi=\u043a\u043e\u0439\u0441\u0430\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.pau=\u043f\u0430\u043b\u0430\u0443\u0430\u043d\u0441\u044c\u043a\u0430
+languages.chy=\u0447\u0435\u0439\u0454\u043d\u043d
+languages.tai=\u0442\u0430\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.iu=\u0456\u043d\u0443\u043a\u0442\u0456\u0442\u0443\u0442
+languages.pap=\u043f\u0430\u043f\u2019\u044f\u043c\u0435\u043d\u0442\u043e
+languages.it=\u0456\u0442\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.sgn=\u0437\u043d\u0430\u043a\u043e\u0432\u0456 \u043c\u043e\u0432\u0438
+languages.is=\u0456\u0441\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.kha=\u043a\u0445\u0430\u0441\u0456
+languages.chr=\u0447\u0435\u0440\u043e\u043a\u0456
+languages.pam=\u043f\u0430\u043c\u043f\u0430\u043d\u0433\u0430
+languages.pal=\u043f\u0435\u0445\u043b\u0435\u0432\u0456
+languages.chp=\u0447\u0456\u043f\u0435\u0432\u2019\u044f\u043d
+languages.io=\u0456\u0434\u043e
+languages.cho=\u0447\u043e\u043a\u0442\u043e
+languages.chn=\u0447\u0438\u043d\u0443\u043a \u0436\u0430\u0440\u0433\u043e\u043d
+languages.chm=\u043c\u0430\u0440\u0456\u0439\u0441\u044c\u043a\u0430
+languages.tyv=\u0442\u0443\u0432\u0438\u043d\u0441\u044c\u043a\u0430
+languages.bnt=\u0431\u0430\u043d\u0442\u0443
+languages.pag=\u043f\u0430\u043d\u0433\u0430\u0441\u0456\u043d\u0430\u043d\u0441\u044c\u043a\u0430
+languages.ik=\u0456\u043d\u0443\u043f\u0456\u0430\u043a
+languages.chk=\u0447\u0443\u0443\u043a\u0441\u044c\u043a\u0430
+languages.ii=\u0441\u0438\u0447\u0443\u0430\u043d\u044c
+languages.haw=\u0433\u0430\u0432\u0430\u0439\u0441\u044c\u043a\u0430
+languages.lam=\u043b\u0430\u043c\u0431\u0430
+languages.ig=\u0456\u0433\u0431\u043e
+languages.chg=\u0447\u0430\u0433\u0430\u0442\u0430\u0439\u0441\u044c\u043a\u0430
+languages.sga=\u0434\u0430\u0432\u043d\u044c\u043e\u0456\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.paa=\u043f\u0430\u043f\u0443\u0430\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.ie=\u0456\u043d\u0442\u0435\u0440\u043b\u0456\u043d\u0433\u0432\u0435
+languages.id=\u0456\u043d\u0434\u043e\u043d\u0435\u0437\u0456\u0439\u0441\u044c\u043a\u0430
+languages.lah=\u043b\u0430\u043d\u0434\u0430
+languages.day=\u0434\u0430\u044f\u043a
+languages.chb=\u0447\u0456\u0431\u0447\u0430
+languages.ia=\u0456\u043d\u0442\u0435\u0440\u043b\u0456\u043d\u0433\u0432\u0430
+languages.lad=\u043b\u0430\u0434\u0456\u043d\u043e
+languages.hz=\u0433\u0435\u0440\u0435\u0440\u043e
+languages.hai=\u0445\u0430\u0439\u0434\u0430
+languages.dar=\u0434\u0430\u0440\u0433\u0456\u043d\u0441\u044c\u043a\u0430
+languages.hy=\u0432\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0430
+languages.ath=\u0430\u0442\u0430\u043f\u0430\u0441\u043a\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.hu=\u0443\u0433\u043e\u0440\u0441\u044c\u043a\u0430
+languages.ht=\u0433\u0430\u0457\u0442\u044f\u043d\u0441\u044c\u043a\u0430
+languages.dak=\u0434\u0430\u043a\u043e\u0442\u0430
+languages.hr=\u0445\u043e\u0440\u0432\u0430\u0442\u0441\u044c\u043a\u0430
+languages.ho=\u0445\u0456\u0440\u0456-\u043c\u043e\u0442\u0443
+languages.hi=\u0433\u0456\u043d\u0434\u0456
+languages.dyu=\u0434\u0456\u0443\u043b\u0430
+languages.he=\u0456\u0432\u0440\u0438\u0442
+languages.ast=\u0430\u0441\u0442\u0443\u0440\u0441\u044c\u043a\u0430
+languages.kfo=\u043a\u043e\u0440\u043e
+languages.ha=\u0445\u0430\u0443\u0441\u0430
+languages.wen=\u043b\u0443\u0436\u0438\u0446\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.gv=\u043c\u0435\u043d\u043a\u0441\u044c\u043a\u0430
+languages.gu=\u0433\u0443\u0434\u0436\u0430\u0440\u0430\u0442\u0456
+languages.sem=\u0441\u0435\u043c\u0456\u0442\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.sel=\u0441\u0435\u043b\u044c\u043a\u0443\u043f\u0441\u044c\u043a\u0430
+languages.iro=\u0456\u0440\u043e\u043a\u0435\u0437\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.gn=\u0433\u0443\u0430\u0440\u0430\u043d\u0456
+languages.gl=\u0433\u0430\u043b\u0456\u0441\u0456\u0439\u0441\u044c\u043a\u0430
+languages.en_CA=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430 \u043a\u0430\u043d\u0430\u0434\u0441\u044c\u043a\u0430
+languages.arw=\u0430\u0440\u0430\u0432\u0430\u043a\u0441\u044c\u043a\u0430
+languages.gez=\u0433\u0454\u0435\u0437
+languages.art=\u0448\u0442\u0443\u0447\u043d\u0430 \u043c\u043e\u0432\u0430
+languages.gd=\u0433\u0430\u0435\u043b\u044c\u0441\u044c\u043a\u0430
+languages.ira=\u0456\u0440\u0430\u043d\u0441\u044c\u043a\u0430
+languages.ga=\u0456\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.arp=\u0430\u0440\u0430\u043f\u0430\u0445\u043e
+languages.arn=\u0430\u0440\u0430\u0443\u043a\u0430\u043d\u0441\u044c\u043a\u0430
+languages.fy=\u0444\u0440\u0438\u0437\u044c\u043a\u0430
+languages.bla=\u0441\u0456\u043a\u0441\u0456\u043a\u0430
+languages.gem=\u0433\u0435\u0440\u043c\u0430\u043d\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.ypk=\u044e\u043f\u0456\u043a \u043c\u043e\u0432\u0438
+languages.arc=\u0430\u0440\u0430\u043c\u0435\u0439\u0441\u044c\u043a\u0430
+languages.fr=\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u044c\u043a\u0430
+languages.fo=\u0444\u0430\u0440\u0435\u0440\u0441\u044c\u043a\u0430
+languages.cel=\u043a\u0435\u043b\u044c\u0442\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.fj=\u0444\u0456\u0434\u0436\u0456
+languages.fi=\u0444\u0456\u043d\u0441\u044c\u043a\u0430
+languages.ff=\u0444\u0443\u043b\u0430
+languages.tvl=\u0442\u0443\u0432\u0430\u043b\u0443
+languages.ceb=\u0441\u0435\u0431\u0443\u0430\u043d\u0441\u044c\u043a\u0430
+languages.fa=\u043f\u0435\u0440\u0441\u044c\u043a\u0430
+languages.en_AU=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430 \u0430\u0432\u0441\u0442\u0440\u0430\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.zh_Hans=\u043a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0430 (\u0441\u043f\u0440\u043e\u0449\u0435\u043d\u0430)
+languages.zh_Hant=\u043a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0430 (\u0442\u0440\u0430\u0434\u0438\u0446\u0456\u0439\u043d\u0430)
+languages.eu=\u0431\u0430\u0441\u043a\u0456\u0432
+languages.sco=\u0448\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.et=\u0435\u0441\u0442\u043e\u043d\u0441\u044c\u043a\u0430
+languages.scn=\u0441\u0438\u0446\u0438\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.es=\u0456\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430
+languages.eo=\u0435\u0441\u043f\u0435\u0440\u0430\u043d\u0442\u043e
+languages.en=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.el=\u0433\u0440\u0435\u0446\u044c\u043a\u0430
+languages.tut=\u0430\u043b\u0442\u0430\u0439\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.niu=\u043d\u0456\u0443\u0435
+languages.tup=\u0442\u0443\u043f\u0456
+languages.ee=\u0435\u0432\u0435
+languages.tum=\u0442\u0443\u043c\u0431\u0443\u043a\u0430
+languages.nl_BE=\u0444\u043b\u0430\u043c\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.es_419=\u043b\u0430\u0442\u0438\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430 \u0456\u0441\u043f\u0430\u043d\u0441\u044c\u043a\u0430
+languages.mos=\u043c\u043e\u0441\u0441\u0456
+languages.dz=\u0434\u0437\u043e\u043d\u0433-\u043a\u0435
+languages.kcg=\u0442\u0456\u0430\u043f
+languages.nic=\u043d\u0456\u0491\u0435\u0440\u043e-\u043a\u043e\u0440\u0434\u043e\u0444\u0430\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.lus=\u043b\u0443\u0448\u0435\u0439
+languages.fiu=\u0444\u0456\u043d\u043d\u043e-\u0443\u0433\u043e\u0440\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.dv=\u0434\u0456\u0432\u0435\u0445\u0456
+languages.nia=\u043d\u0456\u0430\u0441\u044c\u043a\u0430
+languages.moh=\u043c\u0430\u0433\u0430\u0432\u043a
+languages.luo=\u043b\u0443\u043e
+languages.lun=\u043b\u0443\u043d\u0434\u0430
+languages.apa=\u0430\u043f\u0430\u0447\u0456 \u043c\u043e\u0432\u0438
+languages.fil=\u0444\u0456\u043b\u0456\u043f\u043f\u0456\u043d\u0441\u044c\u043a\u0430
+languages.lui=\u043b\u0443\u0457\u0441\u0435\u043d\u044c\u043e
+languages.hup=\u0445\u0443\u043f\u0430
+languages.cch=\u0430\u0442\u0441\u0430\u043c
+languages.bin=\u0431\u0456\u043d\u0456
+languages.de=\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430
+languages.lua=\u043b\u0443\u0431\u0430-\u043b\u0443\u043b\u0443\u0430
+languages.bik=\u0431\u0456\u043a\u043e\u043b\u044c\u0441\u044c\u043a\u0430
+languages.was=\u0432\u0430\u0448\u043e
+languages.und=\u043d\u0435\u0432\u0438\u0437\u043d\u0430\u0447\u0435\u043d\u0430
+languages.war=\u0432\u0430\u0440\u0430\u0439
+languages.da=\u0434\u0430\u0442\u0441\u044c\u043a\u0430
+languages.dum=\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u043d\u0456\u0434\u0435\u0440\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430
+languages.wal=\u0432\u0430\u043b\u0430\u043c\u043e
+languages.mno=\u043c\u0430\u043d\u043e\u0431\u043e \u043c\u043e\u0432\u0438
+languages.wak=\u0432\u0430\u043a\u0430\u0448\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.sat=\u0441\u0430\u043d\u0442\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.cy=\u0432\u0430\u043b\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.sas=\u0441\u0430\u0441\u0430\u043a\u0441\u044c\u043a\u0430
+languages.kbd=\u043a\u0430\u0431\u0430\u0440\u0434\u0438\u043d\u0441\u044c\u043a\u0430
+languages.cv=\u0447\u0443\u0432\u0430\u0441\u044c\u043a\u0430
+languages.cu=\u0446\u0435\u0440\u043a\u043e\u0432\u043d\u043e\u0441\u043b\u043e\u0432\u2019\u044f\u043d\u0441\u044c\u043a\u0430
+languages.mni=\u043c\u0430\u043d\u0456\u043f\u0443\u0440\u0456
+languages.cs=\u0447\u0435\u0441\u044c\u043a\u0430
+languages.sam=\u0441\u0430\u043c\u0430\u0440\u0438\u0442\u044f\u043d\u0441\u044c\u043a\u0430 \u0430\u0440\u0430\u043c\u0435\u0439\u0441\u044c\u043a\u0430
+languages.cr=\u043a\u0440\u0456
+languages.sal=\u0441\u0430\u043b\u0456\u0448\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.dua=\u0434\u0443\u0430\u043b\u0430
+languages.co=\u043a\u043e\u0440\u0441\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0430
+languages.sai=\u043f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u0441\u044c\u043a\u0438\u0445 \u0456\u043d\u0434\u0456\u0430\u043d\u0446\u0456\u0432 \u043c\u043e\u0432\u0438
+languages.mnc=\u043c\u0430\u043d\u0447\u0436\u0443\u0440\u0441\u044c\u043a\u0430
+languages.sah=\u044f\u043a\u0443\u0442\u0441\u044c\u043a\u0430
+languages.kaw=\u043a\u0430\u0432\u0456
+languages.inh=\u0456\u043d\u0433\u0443\u0441\u044c\u043a\u0430
+languages.gba=\u0433\u0431\u0430\u0439\u044f
+languages.sad=\u0441\u0430\u043d\u0434\u0430\u0432\u0435
+languages.ch=\u0447\u0430\u043c\u043e\u0440\u0440\u043e
+languages.ine=\u0456\u043d\u0434\u043e\u0454\u0432\u0440\u043e\u043f\u0435\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.bho=\u0431\u0445\u043e\u0434\u0436\u043f\u0443\u0440\u0456
+languages.enm=\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.kar=\u043a\u0430\u0440\u0435\u043d\u0441\u044c\u043a\u0430
+languages.inc=\u0456\u043d\u0434\u0456\u0439\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.ce=\u0447\u0435\u0447\u0435\u043d\u0441\u044c\u043a\u0430
+languages.gay=\u0433\u0430\u0439\u043e
+languages.ca=\u043a\u0430\u0442\u0430\u043b\u043e\u043d\u0441\u044c\u043a\u0430
+languages.umb=\u0443\u043c\u0431\u0443\u043d\u0434\u0443
+languages.syr=\u0441\u0438\u0440\u0456\u0439\u0441\u044c\u043a\u0430
+languages.kam=\u043a\u0430\u043c\u0431\u0430
+languages.anp=\u0430\u043d\u0433\u0456\u043a\u0430
+languages.tsi=\u0446\u0438\u043c\u0448\u0438\u0430\u043d
+languages.kaj=\u0439\u044e
+languages.ang=\u0434\u0430\u0432\u043d\u044c\u043e\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+languages.kac=\u043a\u0430\u0447\u0456\u043d
+languages.cau=\u043a\u0430\u0432\u043a\u0430\u0437\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.kab=\u043a\u0430\u0431\u0438\u043b\u044c\u0441\u044c\u043a\u0430
+languages.kaa=\u043a\u0430\u0440\u0430\u043a\u0430\u043b\u043f\u0430\u0446\u044c\u043a\u0430
+languages.bs=\u0431\u043e\u0441\u043d\u0456\u0439\u0441\u044c\u043a\u0430
+languages.car=\u043a\u0430\u0440\u0438\u0431\u0441\u044c\u043a\u0430
+languages.br=\u0431\u0440\u0435\u0442\u043e\u043d\u0441\u044c\u043a\u0430
+languages.syc=\u0441\u0438\u0440\u0456\u0439\u0441\u044c\u043a\u0430 \u043a\u043b\u0430\u0441\u0438\u0447\u043d\u0430
+languages.bo=\u0442\u0438\u0431\u0435\u0442\u0441\u044c\u043a\u0430
+languages.bn=\u0431\u0435\u043d\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.bm=\u0431\u0430\u043c\u0431\u0430\u0440\u0430
+languages.gaa=\u0433\u0430
+languages.cai=\u0446\u0435\u043d\u0442\u0440\u0430\u043b\u044c\u043d\u043e\u0430\u043c\u0435\u0440\u0438\u043a\u0430\u043d\u044c\u0441\u043a\u0438\u0445 \u0456\u043d\u0434\u0456\u0430\u043d\u0446\u0456\u0432 \u043c\u043e\u0432\u0430
+languages.bi=\u0431\u0456\u0441\u043b\u0430\u043c\u0430
+languages.bh=\u0431\u0456\u0445\u0430\u0440\u0456
+languages.bg=\u0431\u043e\u043b\u0433\u0430\u0440\u0441\u044c\u043a\u0430
+languages.be=\u0431\u0456\u043b\u043e\u0440\u0443\u0441\u044c\u043a\u0430
+languages.pt_BR=\u043f\u043e\u0440\u0442\u0443\u0433\u0430\u043b\u044c\u0441\u044c\u043a\u0430 \u0431\u0440\u0430\u0437\u0438\u043b\u044c\u0441\u044c\u043a\u0430
+languages.cad=\u043a\u0430\u0434\u0434\u043e
+languages.ba=\u0431\u0430\u0448\u043a\u0438\u0440\u0441\u044c\u043a\u0430
+languages.zu=\u0437\u0443\u043b\u0443\u0441\u044c\u043a\u0430
+languages.zen=\u0437\u0435\u043d\u0430\u0433\u0430
+languages.pro=\u0434\u0430\u0432\u043d\u044c\u043e\u043f\u0440\u043e\u0432\u0430\u043d\u0441\u0430\u043b\u044c\u0441\u044c\u043a\u0430
+languages.hsb=\u0432\u0435\u0440\u0445\u043d\u044c\u043e\u043b\u0443\u0436\u0438\u0446\u044c\u043a\u0430
+languages.az=\u0430\u0437\u0435\u0440\u0431\u0430\u0439\u0434\u0436\u0430\u043d\u0441\u044c\u043a\u0430
+languages.ay=\u0430\u0439\u043c\u0430\u0440\u0430
+languages.av=\u0430\u0432\u0430\u0440\u0441\u044c\u043a\u0430
+languages.as=\u0430\u0441\u0441\u0430\u043c\u0441\u044c\u043a\u0430
+languages.dsb=\u043d\u0438\u0436\u043d\u044c\u043e\u043b\u0443\u0436\u0438\u0446\u044c\u043a\u0430
+languages.ar=\u0430\u0440\u0430\u0431\u0441\u044c\u043a\u0430
+languages.ilo=\u0456\u043b\u043e\u043a\u0430\u043d\u0441\u044c\u043a\u0430
+languages.elx=\u0435\u043b\u0430\u043c\u0441\u044c\u043a\u0430
+languages.zh=\u043a\u0438\u0442\u0430\u0439\u0441\u044c\u043a\u0430
+languages.an=\u0430\u0440\u0430\u0433\u043e\u043d\u0441\u044c\u043a\u0430
+languages.pra=\u043f\u0440\u0430\u043a\u0440\u0456\u0442\u0456 \u043c\u043e\u0432\u0438
+languages.am=\u0430\u043c\u0445\u0430\u0440\u0441\u044c\u043a\u0430
+languages.new=\u043d\u0435\u0432\u0430\u0440\u0456
+languages.ak=\u0430\u043a\u0430\u043d
+languages.za=\u0447\u0436\u0443\u0430\u043d
+languages.en_US=\u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430 \u0421\u0428\u0410
+languages.af=\u0430\u0444\u0440\u0438\u043a\u0430\u0430\u043d\u0441
+languages.ae=\u0430\u0432\u0435\u0441\u0442\u0456\u0439\u0441\u044c\u043a\u0430
+languages.alt=\u043f\u0456\u0432\u0434\u0435\u043d\u043d\u043e\u0430\u043b\u0442\u0430\u0439\u0441\u044c\u043a\u0430
+languages.ab=\u0430\u0431\u0445\u0430\u0437\u044c\u043a\u0430
+languages.aa=\u0430\u0444\u0430\u0440\u0441\u044c\u043a\u0430
+languages.yo=\u0439\u043e\u0440\u0443\u0431\u0430
+languages.alg=\u0430\u043b\u0433\u043e\u043d\u043a\u0456\u043d\u0441\u044c\u043a\u0456 \u043c\u043e\u0432\u0438
+languages.ale=\u0430\u043b\u0435\u0443\u0442\u0441\u044c\u043a\u0430
+languages.mkh=\u043c\u043e\u043d-\u043a\u0445\u043c\u0435\u0440\u0441\u044c\u043a\u0456 \u0456\u043d\u0448\u0456
+languages.yi=\u0456\u0434\u0438\u0448
+languages.dra=\u0434\u0440\u0430\u0432\u0456\u0434\u0456\u0439\u0441\u044c\u043a\u0430 \u043c\u043e\u0432\u0430
+languages.ber=\u0431\u0435\u0440\u0431\u0435\u0440\u0441\u044c\u043a\u0430
+languages.nds=\u043d\u0438\u0436\u043d\u044c\u043e\u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430
+languages.bem=\u0431\u0435\u043c\u0431\u0430
+languages.bej=\u0431\u0435\u0434\u0436\u0430
+languages.tpi=\u0442\u043e\u043a-\u043f\u0456\u0441\u0456\u043d
+variants.POSIX=\u041a\u043e\u043c\u043f'\u044e\u0442\u0435\u0440\u043d\u0438\u0439
+variants.AREVMDA=\u0417\u0430\u0445\u0456\u0434\u043d\u043e\u0432\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439
+variants.1996=\u041d\u043e\u0432\u0430 \u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u044f (\u0437 1996 \u0440.)
+variants.SOLBA=\u0414\u0456\u0430\u043b\u0435\u043a\u0442 \u0421\u0442\u043e\u043b\u0432\u0456\u0446\u0430/\u0421\u043e\u043b\u0431\u0456\u043a\u0430
+variants.NEDIS=\u041d\u0430\u0442\u0456\u0441\u043e\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0456\u0430\u043b\u0435\u043a\u0442
+variants.1994=\u0421\u0442\u0430\u043d\u0434\u0430\u0440\u0442\u0438\u0437\u043e\u0432\u0430\u043d\u0430 \u0440\u0435\u0437\u044c\u044f\u043d\u0441\u044c\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u044f
+variants.1901=\u0422\u0440\u0430\u0434\u0438\u0446\u0456\u0439\u043d\u0430 \u043d\u0456\u043c\u0435\u0446\u044c\u043a\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u044f
+variants.FONUPA=\u0423\u0440\u0430\u043b\u044c\u0441\u044c\u043a\u0438\u0439 \u0444\u043e\u043d\u0435\u0442\u0438\u0447\u043d\u0438\u0439 \u0430\u043b\u0444\u0430\u0432\u0456\u0442
+variants.OSOJS=\u041e\u0441\u043e\u044f\u043d\u0441\u044c\u043a\u0438\u0439 \u0434\u0456\u0430\u043b\u0435\u043a\u0442
+variants.LIPAW=\u041b\u0456\u043f\u043e\u0432\u0430\u0437\u0441\u044c\u043a\u0438\u0439 \u0434\u0456\u0430\u043b\u0435\u043a\u0442 \u0440\u0435\u0437\u044c\u044f\u043d\u0441\u044c\u043a\u043e\u0457 \u043c\u043e\u0432\u0438
+variants.REVISED=\u041d\u043e\u0432\u0430 \u043e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u044f
+variants.NJIVA=\u0414\u0456\u0430\u043b\u0435\u043a\u0442 \u041d\u0434\u0436\u0456\u0432\u0430
+variants.TARASK=\u041e\u0440\u0444\u043e\u0433\u0440\u0430\u0444\u0456\u044f \u0422\u0430\u0440\u0430\u0441\u043a\u0435\u0432\u0438\u0447\u0430
+variants.FONIPA=\u041c\u0456\u0436\u043d\u0430\u0440\u043e\u0434\u043d\u0438\u0439 \u0444\u043e\u043d\u0435\u0442\u0438\u0447\u043d\u0438\u0439 \u0430\u043b\u0444\u0430\u0432\u0456\u0442
+variants.BISKE=\u0414\u0456\u0430\u043b\u0435\u043a\u0442 \u0421\u0430\u043d-\u0414\u0436\u043e\u0440\u0434\u0436\u0456\u043e/\u0411\u0456\u043b\u0430
+variants.SCOUSE=\u041b\u0456\u0432\u0435\u0440\u043f\u0443\u043b\u044c\u0441\u044c\u043a\u0438\u0439
+variants.BAKU1926=\u0423\u043d\u0456\u0444\u0456\u043a\u043e\u0432\u0430\u043d\u0438\u0439 \u0442\u0443\u0440\u0435\u0446\u044c\u043a\u0438\u0439 \u043b\u0430\u0442\u0438\u043d\u0441\u044c\u043a\u0438\u0439 \u0430\u043b\u0444\u0430\u0432\u0456\u0442
+variants.SAAHO=\u0421\u0430\u0445\u043e
+variants.ROZAJ=\u0420\u0435\u0437\u044c\u044f\u043d\u0441\u044c\u043a\u0438\u0439
+variants.MONOTON=\u041c\u043e\u043d\u043e\u0442\u043e\u043d\u0456\u0447\u043d\u0438\u0439
+variants.POLYTON=\u041f\u043e\u043b\u0456\u0442\u043e\u043d\u0456\u0447\u043d\u0438\u0439
+variants.AREVELA=\u0421\u0445\u0456\u0434\u043d\u043e\u0432\u0456\u0440\u043c\u0435\u043d\u0441\u044c\u043a\u0438\u0439
+variants.SCOTLAND=\u0428\u043e\u0442\u043b\u0430\u043d\u0434\u0441\u044c\u043a\u0430 \u0430\u043d\u0433\u043b\u0456\u0439\u0441\u044c\u043a\u0430
+variants.BOONT=\u0411\u0443\u043d\u0442\u043b\u0456\u043d\u0433
+variants.1606NICT=\u041f\u0456\u0437\u043d\u044c\u043e\u0441\u0435\u0440\u0435\u0434\u043d\u044c\u043e\u0444\u0440\u0430\u043d\u0446\u0443\u0437\u0441\u044c\u043a\u0430 \u0434\u043e 1606
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur.properties
index a8bb439..56ae7f9 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur.properties
@@ -5,6 +5,389 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currenciesSymbol.PKR=Rs
+percent=%
+perMill=\u2030
+exponential=\u0642
+infinity=\u221e
+NaN=\u06cc\u06c1 \u0639\u062f\u062f \u0646\u06c1\u06cc\u06ba
+minusSign=-
+zeroDigit=0
+decimalSeparator=.
+groupingSeparator=,
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.CHF=\u0633\u0648\u0626\u0633 \u0641\u0631\u0627\u0646\u06a9\u0633
+currenciesDisplayName.AUD=\u0622\u0633\u0679\u0631\u06cc\u0644\u06cc\u0646 \u0688\u0627\u0644\u0631
+currenciesDisplayName.RUB=\u0631\u0648\u0633\u06cc \u0631\u0648\u0628\u0644
+currenciesDisplayName.CZK=\u0686\u06cc\u06a9 \u06a9\u0631\u0648\u0646\u0627
+currenciesDisplayName.THB=\u062a\u06be\u0627\u0626\u06cc \u0628\u0627\u06c1\u062a
+currenciesDisplayName.SEK=\u0633\u0648\u06cc\u0688\u0646 \u06a9\u0631\u0648\u0646\u0631
+currenciesDisplayName.HRK=\u06a9\u0631\u0648\u0634\u06cc\u0646 \u06a9\u0648\u0646\u0627
+currenciesDisplayName.PLN=\u067e\u0648\u0644\u0634 \u0646\u06cc\u0648 \u0632\u0644\u0648\u0679\u06cc
+currenciesDisplayName.SKK=\u0633\u0644\u0648\u0648\u06a9 \u06a9\u0631\u0648\u0646\u0627
+currenciesDisplayName.MAD=\u0645\u0631\u0627\u06a9\u0634\u06cc \u062f\u0631\u06c1\u0645
+currenciesDisplayName.TWD=\u0646\u06cc\u0648 \u062a\u0627\u0626\u06cc\u0648\u0627\u0646 \u0688\u0627\u0644\u0631
+currenciesDisplayName.MYR=\u0645\u0644\u0627\u0626\u06cc\u0634\u06cc\u0646 \u0631\u0646\u06af\u0679
+currenciesDisplayName.HUF=\u06c1\u0646\u06af\u0631\u06cc\u0646 \u0641\u0648\u0631\u0646\u0679
+currenciesDisplayName.INR=\u0627\u0646\u0688\u06cc\u0646 \u0631\u0648\u067e\u06cc\u06c1
+currenciesDisplayName.AED=\u0645\u062a\u062d\u062f\u06c1 \u0639\u0631\u0628 \u0627\u0645\u0627\u0631\u0627\u062a\u06cc \u062f\u0631\u06c1\u0645
+currenciesDisplayName.SAR=\u0633\u0639\u0648\u062f\u06cc \u0631\u06cc\u0627\u0644
+currenciesDisplayName.CAD=\u06a9\u0646\u06cc\u0688\u06cc\u0646 \u0688\u0627\u0644\u0631
+currenciesDisplayName.USD=\u0627\u0645\u0631\u06cc\u06a9\u06cc \u0688\u0627\u0644\u0631
+currenciesDisplayName.BGN=\u0628\u0644\u063a\u0627\u0631\u06cc\u0646 \u0644\u06cc\u0648
+currenciesDisplayName.JPY=\u062c\u0627\u067e\u0627\u0646\u06cc \u06cc\u0646
+currenciesDisplayName.GBP=\u0627\u0646\u06af\u0644\u0633\u062a\u0627\u0646\u06cc \u067e\u0627\u0648\u0646\u0688 \u0633\u0679\u0631\u0644\u0646\u06af
+currenciesDisplayName.PKR=\u067e\u0627\u06a9\u0633\u062a\u0627\u0646\u06cc \u0631\u0648\u067e\u06cc\u06c1
+currenciesDisplayName.PHP=\u0641\u0644\u067e\u0627\u0626\u06cc\u0646\u06cc \u067e\u06cc\u0633\u06c1
+currenciesDisplayName.PEN=\u067e\u06cc\u0631\u0648\u06cc\u0646 \u0646\u06cc\u0648\u0648\u0633\u0648\u0644
+currenciesDisplayName.FRF=\u0641\u0631\u0627\u0646\u0633\u06cc\u0633\u06cc \u0641\u0631\u0627\u0646\u06a9
+currenciesDisplayName.NOK=\u0646\u0627\u0631\u0648\u06d2 \u06a9\u0631\u0648\u0646\u0631
+currenciesDisplayName.EUR=\u06cc\u0648\u0631\u0648
+currenciesDisplayName.HKD=\u06be\u0627\u0646\u06af \u06a9\u0627\u0646\u06af \u0688\u0627\u0644\u0631
+currenciesDisplayName.IDR=\u0627\u0646\u0688\u0648\u0646\u06cc\u0634\u06cc\u0646 \u0631\u0648\u067e\u06cc\u06c1
+currenciesDisplayName.ZAR=\u062c\u0646\u0648\u0628\u06cc \u0627\u0641\u0631\u06cc\u0642\u06cc \u0631\u0627\u0646\u0688
+currenciesDisplayName.SGD=\u0633\u0646\u06af\u0627 \u067e\u0648\u0631 \u0688\u0627\u0644\u0631
+currenciesDisplayName.MXN=\u0645\u06cc\u06a9\u0633\u06cc\u06a9\u06cc \u067e\u06cc\u0633\u06c1
+currenciesDisplayName.TRY=\u0646\u06cc\u0627 \u062a\u0631\u06a9\u06cc \u0644\u06cc\u0631\u0627
+currenciesDisplayName.CLP=\u0686\u0644\u0651\u06cc\u0646 \u067e\u06cc\u0633\u06c1
+currenciesDisplayName.COP=\u06a9\u0648\u0644\u0645\u0628\u06cc\u0646 \u067e\u06cc\u0633\u06c1
+currenciesDisplayName.KRW=\u062c\u0646\u0648\u0628\u06cc \u06a9\u0648\u0631\u06cc\u0627\u0626\u06cc \u062c\u06cc\u062a\u0627\u06d4
+currenciesDisplayName.SIT=\u0633\u0644\u0648\u0627\u0646\u06cc\u0646 \u0679\u0648\u0644\u0631
+currenciesDisplayName.EEK=\u0627\u06cc\u0633\u0679\u0648\u0646\u06cc\u0646 \u06a9\u0631\u0648\u0646
+currenciesDisplayName.RSD=\u0633\u0631\u0628\u06cc\u0646 \u062f\u06cc\u0646\u0627\u0631
+currenciesDisplayName.TRL=\u062a\u0631\u06a9\u06cc \u0644\u06cc\u0631\u0627
+currenciesDisplayName.BRL=\u0628\u0631\u0627\u0632\u06cc\u0644\u06cc \u0631\u06cc\u0626\u0644
+currenciesDisplayName.DEM=\u0688\u0686 \u0645\u0627\u0631\u06a9\u0633
+currenciesDisplayName.VEB=\u0648\u06cc\u0646\u0632\u0648\u06cc\u0644\u0627 \u0628\u0648\u0644\u06cc\u0648\u0631
+currenciesDisplayName.ARS=\u0627\u0631\u062c\u0646\u0679\u0627\u0626\u0646 \u067e\u06cc\u0633\u06c1
+currenciesDisplayName.CNY=\u06cc\u0648\u0622\u0646 \u0631\u06cc\u0646\u0645\u0646\u0628\u06cc
+currenciesDisplayName.DKK=\u0688\u0646\u0645\u0627\u0631\u06a9 \u06a9\u0631\u0648\u0646\u0631
+currenciesDisplayName.ILS=\u0627\u0633\u0631\u0627\u0626\u06cc\u0644\u06cc \u0634\u06cc\u06a9\u0644
+currenciesDisplayName.BOB=\u0628\u0648\u0644\u06cc\u0648\u06cc\u0646 \u0628\u0648\u0644\u06cc\u0648\u06cc\u0627\u0646\u0648
+currenciesDisplayName.NZD=\u0646\u06cc\u0648\u0632\u06cc \u0644\u06cc\u0646\u0688 \u0688\u0627\u0644\u0631
+currenciesDisplayName.RON=\u0646\u06cc\u0627 \u0631\u0648\u0645\u0627\u0646\u06cc\u0627\u0626\u06cc \u0644\u06cc\u0648
+currenciesDisplayName.LTL=\u0644\u06cc\u062a\u06be\u0648\u0627\u0646\u06cc \u0644\u06cc\u0679\u0627\u0633
+currenciesDisplayName.EGP=\u0645\u0635\u0631\u06cc \u067e\u0627\u0626\u0648\u0646\u0688
+currenciesSymbol.PKR=\u0631\u0648\u067e\u06d2
+currenciesSymbol.USD=\u0688\u0627\u0644\u0631
+months=\u062c\u0646\u0648\u0631\u06cc\u00ae\u0641\u0631\u0648\u0631\u06cc\u00ae\u0645\u0627\u0631 \u0686\u00ae\u0627\u067e\u0631\u064a\u0644\u00ae\u0645\u0626\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u0627\u0626\u00ae\u0627\u06af\u0633\u062a\u00ae\u0633\u062a\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0645\u0628\u0631\u00ae\u062f\u0633\u0645\u0628\u0631\u00ae\u00ae
+weekdays=\u00ae\u0627\u062a\u0648\u0627\u0631\u00ae\u067e\u064a\u0631\u00ae\u0645\u0646\u06af\u0644\u00ae\u0628\u062f\u0647\u00ae\u062c\u0645\u0639\u0631\u0627\u062a\u00ae\u062c\u0645\u0639\u06c1\u00ae\u06c1\u0641\u062a\u06c1\u00ae
+eras=\u0642 \u0645\u00ae\u0639\u064a\u0633\u0648\u06cc \u0633\u0646\u00ae
+ampms=\u0642\u0628\u0644 \u062f\u0648\u067e\u06c1\u0631\u00ae\u0628\u0639\u062f \u062f\u0648\u067e\u06c1\u0631\u00ae
+shortDateFormat=d/M/yy
+mediumDateFormat=d, MMM yyyy
+longDateFormat=d, MMMM yyyy
+fullDateFormat=EEEE, d, MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+territories.TL=\u0645\u0634\u0631\u0642\u06cc \u062a\u06cc\u0645\u0648\u0631
+territories.TK=\u0679\u0648\u06a9\u06cc\u0644\u0627\u0624
+territories.TJ=\u062a\u0627\u062c\u06a9\u0633\u062a\u0627\u0646
+territories.TH=\u062a\u06be\u0627\u0626\u06cc \u0644\u06cc\u0646\u0688
+territories.TG=\u0679\u0648\u06af\u0648
+territories.TF=\u062c\u0646\u0648\u0628\u06cc \u0641\u0631\u0627\u0646\u0633\u06cc\u0633\u06cc \u0639\u0644\u0627\u0642\u06c1 \u062c\u0627\u062a
+territories.TD=\u0686\u0627\u0688
+territories.TC=\u062c\u0632\u0627\u0626\u0631 \u06a9\u06cc\u06a9\u0633 \u0627\u0648\u0631 \u062a\u0631\u06a9\u06cc\u0651\u06c1
+territories.GW=\u06af\u0646\u06cc \u0628\u0633\u0627\u0626\u0648
+territories.GS=\u062c\u0646\u0648\u0628\u06cc \u062c\u0627\u0631\u062c\u06cc\u0627 \u0627\u0648\u0631 \u062c\u0632\u0627\u0626\u0631 \u062c\u0646\u0648\u0628\u06cc \u0633\u06cc\u0646\u0688\u0648\u0686
+territories.GR=\u06cc\u0648\u0646\u0627\u0646
+territories.GQ=\u0627\u0633\u062a\u0648\u0627\u0626\u06cc \u06af\u0646\u06cc
+territories.SZ=\u0633\u0648\u0627\u0632\u06cc \u0644\u06cc\u0646\u0688
+territories.SY=\u0633\u06cc\u0631\u06cc\u0627
+territories.GN=\u06af\u0646\u06cc
+territories.GM=\u06af\u06cc\u0645\u0628\u06cc\u0627
+territories.GL=\u06af\u0631\u06cc\u0646 \u0644\u06cc\u0646\u0688
+territories.GH=\u06af\u06be\u0627\u0646\u0627
+territories.SR=\u0633\u0648\u0631\u06cc\u0646\u0627\u0645
+territories.GG=\u06af\u0631\u0646\u0632\u06cc
+territories.GF=\u0641\u0631\u0627\u0646\u0633\u06cc\u0633\u06cc \u06af\u06cc \u0622\u0646\u0627
+territories.GE=\u062c\u0627\u0631\u062c\u06cc\u0627
+territories.SO=\u0635\u0648\u067e\u0627\u0644\u06cc\u06c1
+territories.SN=\u0633\u06cc\u0646\u06cc\u06af\u0627\u0644
+territories.SM=\u0633\u0627\u0646 \u0645\u06cc\u0631\u06cc\u0646\u0648
+territories.GB=\u0628\u0631\u0637\u0627\u0646\u06cc\u06c1
+territories.SL=\u0633\u06cc\u0631\u0627\u0644\u06cc\u0648\u0646
+territories.GA=\u063a\u06cc\u0628\u0648\u0646
+territories.SK=\u0633\u0644\u0648\u0648\u0627\u06a9\u06cc\u06c1
+territories.SI=\u0633\u0644\u0648\u0627\u0646\u06cc\u06c1
+territories.SH=\u0633\u06cc\u0646\u0679 \u06be\u06cc\u0644\u06cc\u0646\u0627
+territories.SE=\u0633\u0648\u06cc\u0688\u0646
+territories.SD=\u0633\u0648\u0688\u0627\u0646
+territories.SC=\u0633\u06d2 \u0634\u0644\u0632
+territories.SB=\u062c\u0632\u0627\u0626\u0631\u0633\u0648\u0644\u0645\u0648\u0646
+territories.SA=\u0633\u0639\u0648\u062f\u06cc \u0639\u0631\u0628
+territories.FR=\u0641\u0631\u0627\u0646\u0633
+territories.FO=\u062c\u0632\u0627\u0626\u0631\u0641\u0627\u0631\u0648
+territories.FM=\u0645\u0627\u0626\u06a9\u0631\u0648\u0646\u06cc\u0632\u06cc\u0627
+territories.RW=\u0631\u0648\u0627\u0646\u0688\u0627
+territories.FK=\u062c\u0632\u0627\u0626\u0631 \u0641\u0627\u06a9 \u0644\u06cc\u0646\u0688
+territories.RU=\u0631\u0648\u0633
+territories.FI=\u0641\u0646 \u0644\u06cc\u0646\u0688
+territories.RO=\u0631\u0648\u0645\u0627\u0646\u06cc\u06c1
+territories.ET=\u0627\u06cc\u062a\u06be\u0648\u067e\u06cc\u0627
+territories.ES=\u0633\u067e\u06cc\u0646
+territories.ER=\u0627\u0631\u06cc\u0679\u06cc\u0631\u06cc\u0627
+territories.EH=\u0645\u063a\u0631\u0628\u06cc \u0635\u062d\u0627\u0631\u0627
+territories.EG=\u0645\u0635\u0631
+territories.EE=\u0627\u06cc\u0633\u0679\u0648\u0646\u06cc\u0627
+territories.EC=\u0627\u06cc\u06a9\u0648\u0627\u0688\u0648\u0631
+territories.DZ=\u0627\u0644\u062c\u06cc\u0631\u06cc\u0627
+territories.DO=\u0688\u0648\u0645\u06cc\u0646\u06cc\u06a9\u0646 \u0631\u06cc\u067e\u0628\u0644\u06a9
+territories.PY=\u067e\u06cc\u0631\u0627\u06af\u0648\u0626\u06d2
+territories.DK=\u0688\u0646\u0645\u0627\u0631\u06a9
+territories.PT=\u067e\u0631\u062a\u06af\u0627\u0644
+territories.PS=\u0641\u0644\u0633\u0637\u06cc\u0646
+territories.DE=\u062c\u0631\u0645\u0646\u06cc
+territories.PM=\u0633\u06cc\u0646\u0679 \u067e\u0627\u0626\u0631\u06d2 \u0627\u0648\u0631 \u0645\u06cc\u06a9\u0648\u06cc\u0644\u0648\u0646
+territories.PL=\u067e\u0648\u0644\u06cc\u0646\u0688
territories.PK=\u067e\u0627\u06a9\u0633\u062a\u0627\u0646
+territories.PH=\u0641\u0644\u067e\u0627\u0626\u0646
+territories.PG=\u067e\u0627\u067e\u0648\u0627 \u0646\u06cc\u0648 \u06af\u0646\u06cc
+territories.PF=\u0641\u0631\u0627\u0646\u0633\u06cc\u0633\u06cc \u067e\u0648\u0644\u06cc\u0646\u06cc\u0633\u06cc\u0627
+territories.CZ=\u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u0686\u06cc\u06a9
+territories.PE=\u067e\u06cc\u0631\u0648
+territories.CY=\u0642\u0628\u0631\u0635
+territories.CX=\u062c\u0632\u06cc\u0631\u06c1 \u06a9\u0631\u0633\u0645\u0633
+territories.CU=\u06a9\u06cc\u0648\u0628\u0627
+territories.CS=\u0633\u0631\u0628\u06cc\u0627 \u0627\u0648\u0631 \u0645\u0627\u0646\u0679\u06cc\u0646\u06cc\u06af\u0631\u0648
+territories.CO=\u06a9\u0648\u0644\u0645\u0628\u06cc\u0627
+territories.CN=\u0686\u06cc\u0646
+territories.CM=\u06a9\u06cc\u0645\u0631\u0648\u0646
+territories.CL=\u0686\u0644\u06cc
+territories.CK=\u062c\u0632\u0627\u0626\u0631 \u06a9\u064f\u06a9
+territories.CH=\u0633\u0648\u0626\u0632\u0631 \u0644\u06cc\u0646\u0688
+territories.CG=\u06a9\u0627\u0646\u06af\u0648
+territories.CF=\u062c\u0645\u06c1\u0648\u0631\u06cc\u06c1 \u0648\u0633\u0637\u06cc \u0627\u0641\u0631\u06cc\u0642\u06c1
+territories.CD=\u06a9\u0627\u0646\u06af\u0648\u060c \u062c\u0645\u06c1\u0648\u0631\u06cc \u0631\u06cc\u0627\u0633\u062a
+territories.CC=\u062c\u0632\u0627\u0626\u0631 \u06a9\u0648\u06a9\u0648\u0632
+territories.OM=\u0639\u0645\u0627\u0646
+territories.CA=\u06a9\u06cc\u0646\u06cc\u0688\u0627
+territories.BY=\u0628\u06cc\u0644\u0627 \u0631\u0633
+territories.BW=\u0628\u0648\u0679\u0633\u0648\u0627\u0646\u0627
+territories.BV=\u062c\u0632\u06cc\u0631\u06c1 \u0628\u0648\u0648\u0679
+territories.BT=\u0628\u06be\u0648\u0679\u0627\u0646
+territories.BS=\u0628\u0627\u06be\u0627 \u0645\u0627\u0633
+territories.BR=\u0628\u0631\u0627\u0632\u06cc\u0644
+territories.NZ=\u0646\u06cc\u0648\u0632\u06cc \u0644\u06cc\u0646\u0688
+territories.BO=\u0628\u0648\u0644\u06cc\u0648\u06cc\u0627
+territories.BJ=\u0628\u06cc\u0646\u0646
+territories.BI=\u0628\u0631\u0646\u0688\u06cc
+territories.BG=\u0628\u0644\u063a\u0627\u0631\u06cc\u06c1
+territories.BF=\u0628\u0631\u06a9\u06cc\u0646\u0627 \u0641\u0627\u0633\u0648
+territories.NP=\u0646\u06cc\u067e\u0627\u0644
+territories.BE=\u0628\u06cc\u0644\u062c\u0626\u06cc\u0645
+territories.ZZ=Unknown or Invalid Region
+territories.NO=\u0646\u0627\u0631\u0648\u06d2
+territories.BD=\u0628\u0646\u06af\u0644\u0627 \u062f\u06cc\u0634
+territories.ZW=\u0632\u0645\u0628\u0627\u0628\u0648\u06d2
+territories.NL=\u0646\u06cc\u062f\u0631\u0644\u06cc\u0646\u0688
+territories.BA=\u0628\u0648\u0633\u0646\u06cc\u0627 \u06c1\u0631\u0632\u06af\u0648\u06cc\u0646\u0627
+territories.NI=\u0646\u06a9\u0627\u0631\u0627\u06af\u0648\u0627
+territories.NG=\u0646\u0627\u0626\u06cc\u062c\u06cc\u0631\u06cc\u0627
+territories.NF=\u062c\u0632\u06cc\u0631\u06c1 \u0646\u0627\u0631\u0641\u0648\u0644\u06a9
+territories.AZ=\u0622\u0630\u0631 \u0628\u0627\u0626\u062c\u0627\u0646
+territories.NE=\u0646\u0627\u0626\u06cc\u062c\u0631
+territories.NC=\u0646\u06cc\u0648 \u06a9\u06cc\u0644\u06cc\u0688\u0648\u0646\u06cc\u0627
+territories.ZM=\u0632\u06cc\u0645\u0628\u06cc\u0627
+territories.AU=\u0622\u0633\u0679\u0631\u06cc\u0644\u06cc\u0627
+territories.NA=\u0646\u0645\u06cc\u0628\u06cc\u0627
+territories.AT=\u0622\u0633\u0679\u0631\u06cc\u0627
+territories.AS=\u0627\u0645\u0631\u06cc\u06a9\u06cc \u0633\u0627\u0645\u0648\u0627
+territories.AR=\u0627\u0631\u062c\u0646\u0679\u06cc\u0646\u0627
+territories.AQ=\u0627\u0646\u0679\u0627\u0631 \u0679\u06a9\u0627
+territories.MZ=\u0645\u0648\u0632\u0646\u0628\u06cc\u0642
+territories.AO=\u0627\u0646\u06af\u0648\u0644\u0627
+territories.MY=\u0645\u0644\u0627\u0626\u06cc\u0634\u06cc\u0627
+territories.AN=\u0646\u06cc\u062f\u0631\u0644\u06cc\u0646\u0688\u0632 \u0627\u0646\u0679\u06cc\u0644\u06cc\u0632
+territories.MX=\u0645\u06cc\u06a9\u0633\u06cc\u06a9\u0648
+territories.AM=\u0622\u0631 \u0645\u06cc\u0646\u06cc\u0627
+territories.MW=\u0645\u0644\u0627\u0648\u06cc
+territories.AL=\u0627\u0644\u0628\u0627\u0646\u06cc\u0627
+territories.ZA=\u062c\u0646\u0648\u0628\u06cc \u0627\u0641\u0631\u06cc\u0642\u06c1
+territories.MR=\u0645\u0648\u0631\u06cc\u0637\u0627\u0646\u06cc\u06c1
+territories.AG=\u0627\u0646\u0679\u06cc\u06af\u0648\u0627 \u0627\u0648\u0631 \u0628\u0627\u0631\u0628\u0648\u062f\u0627
+territories.AF=\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646
+territories.MP=\u0634\u0645\u0627\u0644\u06cc \u0645\u0627\u0631\u06cc\u0627\u0646\u0627\u062c\u0632\u0627\u0626\u0631
+territories.AE=\u0645\u062a\u062d\u062f\u06c1 \u0639\u0631\u0628 \u0627\u0645\u0627\u0631\u0627\u062a
+territories.MO=\u0645\u0627\u06a9\u0627\u0624
+territories.MN=\u0645\u0646\u06af\u0648\u0644\u06cc\u0627
+territories.MM=\u0645\u06cc\u0627\u0646\u0645\u0631
+territories.ML=\u0645\u0627\u0644\u06cc
+territories.MK=\u0645\u0642\u062f\u0648\u0646\u06cc\u06c1
+territories.MH=\u062c\u0632\u0627\u0626\u0631 \u0645\u0627\u0631\u0634\u0644
+territories.MG=\u0645\u0688\u063a\u0627\u0633\u06a9\u0631
+territories.MD=\u0645\u0627\u0644\u062f\u0648\u0648\u0627
+territories.MA=\u0645\u0631\u0627\u06a9\u0634
+territories.YE=\u06cc\u0645\u0646
+territories.LY=\u0644\u06cc\u0628\u06cc\u0627
+territories.LV=\u0644\u0679\u0648\u0650\u06cc\u0627
+territories.LT=\u0644\u062a\u06be\u0648\u0627\u0646\u06cc\u0627
+territories.LS=\u0644\u06cc\u0633\u0648\u062a\u06be\u0648
+territories.LR=\u0644\u0627\u0626\u0628\u06cc\u0631\u06cc\u0627
+territories.LK=\u0633\u0631\u06cc \u0644\u0646\u06a9\u0627
+territories.LI=\u0644\u06a9\u0679\u0646\u0633\u0679\u0627\u0626\u0646
+territories.LC=\u0633\u06cc\u0646\u0679 \u0644\u0648\u0633\u06cc\u0627
+territories.LB=\u0644\u0628\u0646\u0627\u0646
+territories.LA=\u0644\u0627\u0624\u0633
+territories.KZ=\u0642\u0632\u0627\u0642\u0633\u062a\u0627\u0646
+territories.KY=\u062c\u0632\u0627\u0626\u0631 \u06a9\u06cc\u0645\u0646
+territories.KR=\u062c\u0646\u0648\u0628\u06cc \u06a9\u0648\u0631\u06cc\u0627
+territories.KP=\u0634\u0645\u0627\u0644\u06cc \u06a9\u0648\u0631\u06cc\u0627
+territories.KN=\u0633\u06cc\u0646\u0679 \u06a9\u0679\u0633 \u0627\u0648\u0631 \u0646\u06cc\u0648\u0633
+territories.KM=\u06a9\u0648\u0645\u0648\u0631\u0648\u0633
+territories.KI=\u06a9\u0650\u0631\u0628\u0627\u062a\u06cc
+territories.WS=\u0633\u0627\u0645\u0648\u0627
+territories.KH=\u06a9\u0645\u0628\u0648\u0688\u06cc\u0627
+territories.KG=\u06a9\u0631\u063a\u0633\u062a\u0627\u0646
+territories.KE=\u06a9\u06cc\u0646\u06cc\u0627
+territories.WF=\u0648\u0627\u0644\u0633 \u0627\u0648\u0631 \u0641\u062a\u0648\u0646\u06c1
+territories.JP=\u062c\u0627\u067e\u0627\u0646
+territories.JO=\u0627\u0631\u062f\u0646
+territories.VU=\u0648\u0627\u0646\u0648\u0627\u0679\u0648
+territories.JE=\u062c\u0631\u0633\u06cc
+territories.VN=\u0648\u06cc\u062a \u0646\u0627\u0645
+territories.VI=\u062c\u0632\u0627\u0626\u0631 \u0648\u0631\u062c\u0646\u060c \u0627\u0645\u0631\u06cc\u06a9\u06c1
+territories.VG=\u062c\u0632\u0627\u0626\u0631 \u0648\u0631\u062c\u0646\u060c \u0628\u0631\u0679\u0634
+territories.VE=\u0648\u06cc\u0646\u0632\u0648\u0644\u0627
+territories.VC=\u0633\u06cc\u0646\u0679 \u06a9\u06cc\u0631\u0646 \u0627\u0648\u0631 \u06af\u0631\u06cc\u0646\u0627\u0688\u0627\u0626\u0646\u0632
+territories.VA=\u0648\u06cc\u0679\u06cc\u06a9\u0646 \u0633\u0679\u06cc
+territories.IT=\u0627\u0679\u0644\u06cc
+territories.IS=\u0622\u0626\u0633 \u0644\u06cc\u0646\u0688
+territories.IR=\u0627\u06cc\u0631\u0627\u0646
+territories.IQ=\u0639\u0631\u0627\u0642
+territories.UZ=\u0627\u0632\u0628\u06a9\u0633\u062a\u0627\u0646
+territories.IO=\u0628\u062d\u0631\u06be\u0646\u062f \u06a9\u0627 \u0628\u0631\u0679\u0634 \u0639\u0644\u0627\u0642\u06c1
+territories.UY=\u06c1\u0648\u0631\u0627\u06af\u0648\u0626\u06d2
+territories.IN=\u0628\u06be\u0627\u0631\u062a
+territories.IL=\u0627\u0633\u0631\u0627\u0626\u06cc\u0644
+territories.US=\u0631\u06cc\u0627\u0633\u062a \u06c1\u0627\u0626\u06d2 \u0645\u062a\u062d\u062f\u06c1 \u0627\u0645\u0631\u06cc\u06a9\u0627
+territories.IE=\u0622\u0626\u0631 \u0644\u06cc\u0646\u0688
+territories.ID=\u0627\u0646\u0688\u0648\u0646\u06cc\u0634\u06cc\u0627
+territories.UM=\u0631\u06cc\u0627\u0633\u062a \u06c1\u0627\u0626\u06d2 \u0645\u062a\u062d\u062f\u06c1 \u0627\u0648\u0631 \u0628\u06cc\u0631\u0648\u0646\u06cc \u062c\u0632\u0627\u0626\u0631
+territories.UG=\u06cc\u0648\u06af\u0646\u0688\u0627
+territories.UA=\u06cc\u0648\u06a9\u0631\u0627\u0626\u0646
+territories.HU=\u06c1\u0646\u06af\u0631\u06cc
+territories.HT=\u06c1\u0627\u0626\u0679\u06cc
+territories.HR=\u06a9\u0631\u0648\u0634\u06cc\u0627
+territories.TZ=\u062a\u0646\u0632\u0627\u0646\u06cc\u06c1
+territories.HN=\u06c1\u0648\u0646\u0688\u0648\u0631\u0627\u0633
+territories.HM=\u062c\u0632\u06cc\u0631\u06c1 \u06c1\u0631\u0688 \u0627\u0648\u0631 \u062c\u0632\u0627\u0626\u0631 \u0645\u06a9\u0688\u0648\u0646\u0644\u0688
+territories.TW=\u062a\u0627\u0626\u06cc\u0648\u0627\u0646
+territories.TV=\u0679\u0648\u0627\u0644\u0648
+territories.TT=\u0679\u0631\u06cc\u0646\u06cc\u0688\u0627\u0688 \u0627\u0648\u0631 \u0679\u0648\u0628\u0627\u06af\u0648
+territories.TR=\u062a\u0631\u06a9\u06cc
+territories.TO=\u062a\u0648\u0646\u06af\u0627
+territories.TN=\u062a\u06cc\u0648\u0646\u0633
+territories.TM=\u062a\u0631\u06a9\u0645\u0627\u0646\u0633\u062a\u0627\u0646
+languages.es=\u06c1\u0633\u067e\u0627\u0646\u0648\u06cc
+languages.ku=\u0643\u0631\u062f\u0634
+languages.eo=\u0627\u064a\u0633\u067e\u0631\u0627\u0646\u0679\u0648
+languages.en=\u0627\u0646\u06af\u0631\u064a\u0632\u06cc
+languages.el=\u064a\u0648\u0646\u0627\u0646\u06cc
+languages.ko=\u06a9\u0648\u0631\u064a\u0646
+languages.kn=\u06a9\u0646\u0651\u0627\u0688\u0627
+languages.km=\u06a9\u0645\u0628\u0648\u0688\u06cc\u064e\u0646
+languages.ka=\u062c\u0627\u0631\u062c\u06cc
+languages.zh_Hans=\u0686\u06cc\u0646\u06cc (\u0622\u0633\u0627\u0646 \u06a9\u0631\u062f\u06c1)
+languages.zh_Hant=\u0686\u06cc\u0646\u06cc (\u0631\u0648\u0627\u06cc\u062a\u06cc)
+languages.jv=\u062c\u0627\u0648\u06cc
+languages.fil=\u0679\u064a\u06af\u0627\u0644\u0627\u06af\u06cc
+languages.pt=\u067e\u064f\u0631\u062a\u06af\u0627\u0644\u06cc
+languages.ps=\u067e\u0634\u062a\u0648
+languages.de=\u062c\u0631\u0645\u0646
+languages.pl=\u067e\u0648\u0644\u0633\u062a\u0627\u0646\u06cc
+languages.da=\u0688\u064a\u0646\u0634
+languages.tlh=\u06a9\u0644\u0646\u06af\u0627\u0646
+languages.ja=\u062c\u0627\u067e\u0627\u0646\u06cc
+languages.vi=\u0648\u064a\u062a\u0646\u0627\u0645\u06cc
+languages.cy=\u0648\u064a\u0644\u0634
+languages.pa=\u067e\u0646\u062c\u0627\u0628\u06cc
+languages.cs=\u0686\u064a\u06a9
+languages.it=\u0627\u0637\u0627\u0644\u0648\u06cc
+languages.is=\u0628\u0631\u0641\u0633\u062a\u0627\u0646\u06cc
+languages.uz=\u0627\u0632\u0628\u06a9
+languages.or=\u0627\u0648\u0631\u0650\u06cc\u0627
languages.ur=\u0627\u0631\u062f\u0648
+languages.ca=\u06a9\u0627\u0679\u0627\u0644\u0627\u0646\u064a\u0646
+languages.id=\u0627\u0646\u0688\u0648\u0646\u064a\u062b\u064a\u0627\u0626\u06cc
+languages.uk=\u064a\u064f\u0648\u06a9\u0631\u064a\u0646\u06cc
+languages.ia=\u0627\u0646\u0679\u0631\u0644\u0646\u06af\u0648\u06cc
+languages.oc=\u0622\u06a9\u064a\u0679\u0627\u0646\u06cc
+languages.ug=\u0627\u064f\u0626\u0650\u06cc\u06af\u064f\u0648\u0631
+languages.hy=\u0627\u0631\u0645\u06cc\u0646\u06cc
+languages.bs=\u0628\u0648\u0633\u0646\u06cc
+languages.br=\u0628\u0631\u0650\u06cc\u0679\u0646
+languages.hu=\u06c1\u0646\u06af\u06cc\u0631\u06cc\u0646
+languages.pt_PT=\u067e\u0631\u062a\u06af\u0627\u0644\u06cc (\u067e\u0631\u062a\u06af\u0627\u0644)
+languages.bn=\u0628\u0646\u06af\u0627\u0644\u06cc
+languages.hr=\u06a9\u0631\u0627\u062a\u06cc
+languages.tw=\u062a\u0648\u06cc
+languages.bh=\u0628\u0650\u06c1\u0627\u0631\u06cc
+languages.bg=\u0628\u0644\u063a\u0627\u0631\u06cc
+languages.no=\u0646\u0627\u0631\u0648\u064a\u062c\u064a\u0646
+languages.be=\u0628\u064a\u0644\u0627\u0631\u0648\u0633\u06cc
+languages.nn=\u0646\u0648\u0631\u0648\u06cc\u062c\u06cc\u0646\u06cc (\u0646\u06cc\u0646\u0648\u0631\u0633\u06a9)
+languages.hi=\u06c1\u0646\u062f\u06cc
+languages.tr=\u062a\u0631\u06a9\u06cc
+languages.nl=\u0688\u0686
+languages.zu=\u0632\u064f\u0648\u0644\u064f\u0648
+languages.he=\u0639\u0628\u0631\u0627\u0646\u06cc
+languages.tl=\u0679\u06cc\u06af\u0627 \u0644\u0648\u06af
+languages.tk=\u062a\u0631\u06a9\u0645\u0627\u0646\u06cc
+languages.ne=\u0646\u064a\u067e\u0627\u0644\u06cc
+languages.az=\u0622\u0632\u0631\u0628\u0627\u0626\u06cc\u062c\u0627\u0646\u06cc
+languages.ti=\u062a\u06af\u0631\u06cc\u0646\u06cc
+languages.th=\u062a\u0647\u0627\u0626\u06cc
+languages.en_US=\u0627\u0645\u0631\u06cc\u06a9\u06c1 \u06a9\u06cc \u0627\u0646\u06af\u0631\u06cc\u0632\u06cc
+languages.te=\u062a\u064a\u0644\u0648\u06af\u0648
+languages.as=\u0622\u0633\u0627\u0645\u06cc
+languages.ar=\u0639\u0631\u0628\u06cc
+languages.ta=\u062a\u0627\u0645\u0650\u0644
+languages.gu=\u06af\u062c\u0631\u0627\u062a\u06cc
+languages.am=\u0627\u0645\u06c1\u0627\u0631\u06cc
+languages.mt=\u0645\u0627\u0644\u0679\u06cc
+languages.ms=\u0645\u0627\u0644\u0627\u0626\u06cc
+languages.gn=\u06af\u064f\u0627\u0631\u0627\u0646\u06cc
+languages.sw=\u0633\u0648\u0627\u06c1\u06cc\u0644\u06cc
+languages.mr=\u0645\u0631\u0627\u0679\u0647\u06cc
+languages.sv=\u0633\u0648\u064a\u0688\u0634
+languages.gl=\u06af\u0627\u0644\u064a\u0634\u064a\u0627\u0626\u06cc
+languages.su=\u0633\u064f\u0648\u0688\u0627\u0646\u06cc
+languages.af=\u0627\u064a\u0641\u0631\u064a\u06a9\u0627\u0646\u0632
+languages.st=\u0633\u06cc\u0633\u0648\u062a\u06be\u0648
+languages.mn=\u0645\u0646\u06af\u0624\u0644\u06cc
+languages.sr=\u0635\u0631\u0628\u06cc
+languages.sq=\u0627\u0644\u0628\u0627\u0646\u06cc
+languages.ml=\u0645\u0627\u0644\u0627\u064a\u0627\u0644\u0645
+languages.mk=\u0645\u0642\u062f\u0648\u0646\u064a\u0627\u0626\u06cc
+languages.so=\u0633\u0648\u0645\u0627\u0644\u06cc
+languages.gd=\u0633\u06a9\u0627\u0679 \u06af\u064a\u0644\u0650\u06a9
+languages.sl=\u0633\u0644\u0648\u064a\u0646\u06cc
+languages.sk=\u0633\u0644\u0627\u0648\u0627\u06a9\u06cc
+languages.ga=\u0622\u0626\u064a\u0631\u0650\u0634
+languages.si=\u0633\u0646\u06c1\u0627\u0644\u06cc
+languages.sh=\u0633\u0631\u0628\u0648-\u06a9\u0631\u0648\u0626\u06cc\u0634\u06cc\u0646
+languages.pt_BR=\u067e\u0631\u062a\u06af\u0627\u0644\u06cc (\ufe91\ufeae\ufe8d\ufeaf\ufef3\ufede)
+languages.yi=\u064a\u0627\u062f\u0634
+languages.sd=\u0633\u0646\u062f\u06be\u06cc
+languages.fy=\u0641\u0631\u064a\u0698\u064a\u0646
+languages.sa=\u0633\u064e\u0646\u0633\u06a9\u0631\u0650\u062a
+languages.fr=\u0641\u0631\u0627\u0646\u0633\u064a\u0633\u06cc
+languages.lv=\u0644\u064a\u0679\u0648\u064a\u0646
+languages.lt=\u0644\u062a\u06be\u064f\u0648\u0627\u06cc\u0646\u06cc\u0646
+languages.fo=\u0641\u06cc\u0631\u0648\u0626\u06cc\u0632
+languages.ru=\u0631\u0648\u0633\u06cc
+languages.lo=\u0644\u0627\u0624\u0634\u0650\u06cc\u064e\u0646
+languages.ln=\u0644\u0650\u0646\u06af\u064e\u0644\u0627
+languages.fi=\u0641\u0646\u0651\u0646\u0650\u0634
+languages.ro=\u0631\u0648\u0645\u0646\u06cc
+languages.fa=\u0641\u0627\u0631\u0633\u06cc
+languages.la=\u0644\u0627\u0637\u064a\u0646\u06cc
+languages.xh=\u062e\u0648\u0633\u06c1
+languages.en_GB=\u0628\u0631\u0637\u0627\u0646\u0648\u06cc \u0627\u0646\u06af\u0631\u06cc\u0632\u06cc
+languages.eu=\u0628\u0627\u0633\u06a9\u06cc
+languages.ky=\u06a9\u0631\u063a\u06cc\u0632\u06cc
+languages.et=\u0627\u0633\u0679\u0648\u0646\u064a\u0646
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties
new file mode 100644
index 0000000..13716ab
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties
@@ -0,0 +1,9 @@
+# LocaleInformation_ur_IN.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+percentFormat=#,##,##0%
+currencyFormat=\u00a4\u00a0#,##,##0.00;-\u00a4\u00a0#,##,##0.00
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz.properties
index 3ffc7a8..e82e1c1 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz.properties
@@ -8,24 +8,35 @@
decimalSeparator=,
groupingSeparator=\u00a0
currenciesDisplayName.INR=\u04b2\u0438\u043d\u0434 \u0440\u0443\u043f\u0438\u044f\u0441\u0438
-currenciesDisplayName.RUB=\u0420\u0443\u0441 \u0440\u0443\u0431\u043b\u0438
currenciesDisplayName.JPY=\u042f\u043f\u043e\u043d \u0439\u0435\u043d\u0430\u0441\u0438
+currenciesDisplayName.RUB=\u0420\u0443\u0441 \u0440\u0443\u0431\u043b\u0438
currenciesDisplayName.BRL=\u0411\u0440\u0430\u0437\u0438\u043b \u0440\u0435\u0430\u043b\u0438
-currenciesDisplayName.UZS=\u040e\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u043e\u043d \u0441\u045e\u043c
currenciesDisplayName.CNY=\u0425\u0438\u0442\u043e\u0439 \u044e\u0430\u043d\u0438
+currenciesDisplayName.UZS=\u040e\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u043e\u043d \u0441\u045e\u043c
currenciesDisplayName.USD=\u0410\u049a\u0428 \u0434\u043e\u043b\u043b\u0430\u0440\u0438
currenciesDisplayName.EUR=\u0415\u0432\u0440\u043e
currenciesDisplayName.GBP=\u0418\u043d\u0433\u043b\u0438\u0437 \u0444\u0443\u043d\u0442 \u0441\u0442\u0435\u0440\u043b\u0438\u043d\u0433\u0438
currenciesSymbol.UZS=\u0441\u045e\u043c
-shortMonths=\u042f\u043d\u0432®\u0424\u0435\u0432®\u041c\u0430\u0440®\u0410\u043f\u0440®\u041c\u0430\u0439®\u0418\u044e\u043d®\u0418\u044e\u043b®\u0410\u0432\u0433®\u0421\u0435\u043d®\u041e\u043a\u0442®\u041d\u043e\u044f®\u0414\u0435\u043a®®
-months=\u042f\u043d\u0432\u0430\u0440\u044c®\u0424\u0435\u0432\u0440\u0430\u043b\u044c®\u041c\u0430\u0440\u0442®\u0410\u043f\u0440\u0435\u043b\u044c®\u041c\u0430\u0439®\u0418\u044e\u043d\u044c®\u0418\u044e\u043b\u044c®\u0410\u0432\u0433\u0443\u0441\u0442®\u0421\u0435\u043d\u0442\u044f\u0431\u0440\u044c®\u041e\u043a\u0442\u044f\u0431\u0440\u044c®\u041d\u043e\u044f\u0431\u0440\u044c®\u0414\u0435\u043a\u0430\u0431\u0440\u044c®®
-shortWeekdays=®\u042f\u043a\u0448®\u0414\u0443\u0448®\u0421\u0435\u0448®\u0427\u043e\u0440®\u041f\u0430\u0439®\u0416\u0443\u043c®\u0428\u0430\u043d®
-weekdays=®\u042f\u043a\u0448\u0430\u043d\u0431\u0430®\u0414\u0443\u0448\u0430\u043d\u0431\u0430®\u0421\u0435\u0448\u0430\u043d\u0431\u0430®\u0427\u043e\u0440\u0448\u0430\u043d\u0431\u0430®\u041f\u0430\u0439\u0448\u0430\u043d\u0431\u0430®\u0416\u0443\u043c\u0430®\u0428\u0430\u043d\u0431\u0430®
+shortMonths=\u042f\u043d\u0432\u00ae\u0424\u0435\u0432\u00ae\u041c\u0430\u0440\u00ae\u0410\u043f\u0440\u00ae\u041c\u0430\u0439\u00ae\u0418\u044e\u043d\u00ae\u0418\u044e\u043b\u00ae\u0410\u0432\u0433\u00ae\u0421\u0435\u043d\u00ae\u041e\u043a\u0442\u00ae\u041d\u043e\u044f\u00ae\u0414\u0435\u043a\u00ae\u00ae
+months=\u041c\u0443\u04b3\u0430\u0440\u0440\u0430\u043c\u00ae\u0421\u0430\u0444\u0430\u0440\u00ae\u0420\u0430\u0431\u0438\u0443\u043b-\u0430\u0432\u0432\u0430\u043b\u00ae\u0420\u0430\u0431\u0438\u0443\u043b-\u043e\u0445\u0438\u0440\u00ae\u0416\u0443\u043c\u043e\u0434\u0438\u0443\u043b-\u0443\u043b\u043e\u00ae\u0416\u0443\u043c\u043e\u0434\u0438\u0443\u043b-\u0443\u0445\u0440\u043e\u00ae\u0420\u0430\u0436\u0430\u0431\u00ae\u0428\u0430\u044a\u0431\u043e\u043d\u00ae\u0420\u0430\u043c\u0430\u0437\u043e\u043d\u00ae\u0428\u0430\u0432\u0432\u043e\u043b\u00ae\u0417\u0438\u043b-\u049b\u0430\u044a\u0434\u0430\u00ae\u0417\u0438\u043b-\u04b3\u0438\u0436\u0436\u0430\u00ae\u00ae
+shortWeekdays=\u00ae\u042f\u043a\u0448\u00ae\u0414\u0443\u0448\u00ae\u0421\u0435\u0448\u00ae\u0427\u043e\u0440\u00ae\u041f\u0430\u0439\u00ae\u0416\u0443\u043c\u00ae\u0428\u0430\u043d\u00ae
+weekdays=\u00ae\u044f\u043a\u0448\u0430\u043d\u0431\u0430\u00ae\u0434\u0443\u0448\u0430\u043d\u0431\u0430\u00ae\u0441\u0435\u0448\u0430\u043d\u0431\u0430\u00ae\u0447\u043e\u0440\u0448\u0430\u043d\u0431\u0430\u00ae\u043f\u0430\u0439\u0448\u0430\u043d\u0431\u0430\u00ae\u0436\u0443\u043c\u0430\u00ae\u0448\u0430\u043d\u0431\u0430\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+zoneStrings=Afghanistan\u00ae\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 \u0648\u0642\u062a\u06cc\u00ae\u00ae\u00ae\u00ae\u00a9
territories.FR=\u0424\u0440\u0430\u043d\u0446\u0438\u044f
territories.IN=\u04b2\u0438\u043d\u0434\u0438\u0441\u0442\u043e\u043d
territories.CN=\u0425\u0438\u0442\u043e\u0439
-territories.AF=\u0410\u0444\u0493\u043e\u043d\u0438\u0441\u0442\u043e\u043d
territories.DE=\u041e\u043b\u043c\u043e\u043d\u0438\u044f
+territories.AF=\u0410\u0444\u0493\u043e\u043d\u0438\u0441\u0442\u043e\u043d
territories.GB=\u0411\u0438\u0440\u043b\u0430\u0448\u0433\u0430\u043d \u049a\u0438\u0440\u043e\u043b\u043b\u0438\u043a
territories.BR=\u0411\u0440\u0430\u0437\u0438\u043b\u0438\u044f
territories.UZ=\u040e\u0437\u0431\u0435\u043a\u0438\u0441\u0442\u043e\u043d
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Arab.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Arab.properties
index 5a66a0f..f657804 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Arab.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Arab.properties
@@ -11,24 +11,21 @@ minusSign=\u2212
zeroDigit=\u06f0
decimalSeparator=\u066b
groupingSeparator=\u066c
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
-currenciesDisplayName.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc
-currenciesSymbol.AFA=\u0627\u0641\u063a\u0627\u0646\u06cc
-shortMonths=\u062c\u0646\u0648®\u0641\u0628\u0631®\u0645\u0627\u0631®\u0627\u067e\u0631®\u0645\u0640\u06cc®\u062c\u0648\u0646®\u062c\u0648\u0644®\u0627\u06af\u0633®\u0633\u067e\u062a®\u0627\u06a9\u062a®\u0646\u0648\u0645®\u062f\u0633\u0645®®
-months=\u062c\u0646\u0648\u0631\u06cc®\u0641\u0628\u0631\u0648\u0631\u06cc®\u0645\u0627\u0631\u0686®\u0627\u067e\u0631\u06cc\u0644®\u0645\u06cc®\u062c\u0648\u0646®\u062c\u0648\u0644\u0627\u06cc®\u0627\u06af\u0633\u062a®\u0633\u067e\u062a\u0645\u0628\u0631®\u0627\u06a9\u062a\u0648\u0628\u0631®\u0646\u0648\u0645\u0628\u0631®\u062f\u0633\u0645\u0628\u0631®®
-shortWeekdays=®\u06cc.®\u062f.®\u0633.®\u0686.®\u067e.®\u062c.®\u0634.®
-weekdays=®\u06cc\u06a9\u0634\u0646\u0628\u0647®\u062f\u0648\u0634\u0646\u0628\u0647®\u0633\u0647\u200c\u0634\u0646\u0628\u0647®\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647®\u067e\u0646\u062c\u0634\u0646\u0628\u0647®\u062c\u0645\u0639\u0647®\u0634\u0646\u0628\u0647®
-firstDayOfWeek=sat
-eras=\u0642.\u0645.®\u0645.®
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.AFN=\u0627\u0641\u063a\u0627\u0646\u06cc
+shortMonths=\u062c\u0646\u0648\u00ae\u0641\u0628\u0631\u00ae\u0645\u0627\u0631\u00ae\u0627\u067e\u0631\u00ae\u0645\u0640\u06cc\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u00ae\u0627\u06af\u0633\u00ae\u0633\u067e\u062a\u00ae\u0627\u06a9\u062a\u00ae\u0646\u0648\u0645\u00ae\u062f\u0633\u0645\u00ae\u00ae
+months=\u062c\u0646\u0648\u0631\u06cc\u00ae\u0641\u0628\u0631\u0648\u0631\u06cc\u00ae\u0645\u0627\u0631\u0686\u00ae\u0627\u067e\u0631\u06cc\u0644\u00ae\u0645\u06cc\u00ae\u062c\u0648\u0646\u00ae\u062c\u0648\u0644\u0627\u06cc\u00ae\u0627\u06af\u0633\u062a\u00ae\u0633\u067e\u062a\u0645\u0628\u0631\u00ae\u0627\u06a9\u062a\u0648\u0628\u0631\u00ae\u0646\u0648\u0645\u0628\u0631\u00ae\u062f\u0633\u0645\u0628\u0631\u00ae\u00ae
+shortWeekdays=\u00ae\u06cc.\u00ae\u062f.\u00ae\u0633.\u00ae\u0686.\u00ae\u067e.\u00ae\u062c.\u00ae\u0634.\u00ae
+weekdays=\u00ae\u06cc\u06a9\u0634\u0646\u0628\u0647\u00ae\u062f\u0648\u0634\u0646\u0628\u0647\u00ae\u0633\u0647\u200c\u0634\u0646\u0628\u0647\u00ae\u0686\u0647\u0627\u0631\u0634\u0646\u0628\u0647\u00ae\u067e\u0646\u062c\u0634\u0646\u0628\u0647\u00ae\u062c\u0645\u0639\u0647\u00ae\u0634\u0646\u0628\u0647\u00ae
+eras=\u0642.\u0645.\u00ae\u0645.\u00ae
shortDateFormat=yyyy/M/d
-mediumDateFormat=d MMMM yyyy
+mediumDateFormat=d MMM yyyy
longDateFormat=d \u0646\u0686\u06cc MMMM yyyy
fullDateFormat=yyyy \u0646\u0686\u06cc \u06cc\u06cc\u0644 d \u0646\u0686\u06cc MMMM EEEE \u06a9\u0648\u0646\u06cc
shortTimeFormat=H:mm
mediumTimeFormat=H:mm:ss
longTimeFormat=H:mm:ss (z)
fullTimeFormat=H:mm:ss (z)
-zoneStrings=Asia/Kabul®AFT®\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 \u0648\u0642\u062a\u06cc®AFT®\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646 \u0648\u0642\u062a\u06cc®©
territories.AF=\u0627\u0641\u063a\u0627\u0646\u0633\u062a\u0627\u0646
languages.uz=\u0627\u06c9\u0632\u0628\u06d0\u06a9
languages.fa=\u062f\u0631\u06cc
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Latn.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Latn.properties
index 8d0c8c7..87131e0 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Latn.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_uz_Latn.properties
@@ -6,24 +6,24 @@
# This file was automatically generated by gnu.localegen from CLDR.
currenciesDisplayName.INR=Hind rupiyasi
-currenciesDisplayName.RUB=Rus rubli
currenciesDisplayName.JPY=Yapon yenasi
+currenciesDisplayName.RUB=Rus rubli
currenciesDisplayName.BRL=Brazil reali
-currenciesDisplayName.UZS=O\u02bfzbekiston so\u02bfm
currenciesDisplayName.CNY=Xitoy yuani
+currenciesDisplayName.UZS=O\u02bfzbekiston so\u02bfm
currenciesDisplayName.USD=AQSH dollari
currenciesDisplayName.EUR=Evro
currenciesDisplayName.GBP=Ingliz funt sterlingi
currenciesSymbol.UZS=so\u02bfm
-shortMonths=Yanv®Fev®Mar®Apr®May®Iyun®Iyul®Avg®Sen®Okt®Noya®Dek®®
-months=Yanvar®Fevral®Mart®Aprel®May®Iyun®Iyul®Avgust®Sentyabr®Oktyabr®Noyabr®Dekabr®®
-shortWeekdays=®Yaksh®Dush®Sesh®Chor®Pay®Jum®Shan®
-weekdays=®Yakshanba®Dushanba®Seshanba®Chorshanba®Payshanba®Juma®Shanba®
-territories.FR=Frantsiya
+shortMonths=Yanv\u00aeFev\u00aeMar\u00aeApr\u00aeMay\u00aeIyun\u00aeIyul\u00aeAvg\u00aeSen\u00aeOkt\u00aeNoya\u00aeDek\u00ae\u00ae
+months=Yanvar\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae\u00ae
+shortWeekdays=\u00aeYaksh\u00aeDush\u00aeSesh\u00aeChor\u00aePay\u00aeJum\u00aeShan\u00ae
+weekdays=\u00aeyakshanba\u00aedushanba\u00aeseshanba\u00aechorshanba\u00aepayshanba\u00aejuma\u00aeshanba\u00ae
+territories.FR=Fransiya
territories.IN=Hindiston
territories.CN=Xitoy
-territories.AF=Afg\u02bfoniston
territories.DE=Olmoniya
+territories.AF=Afg\u02bfoniston
territories.GB=Birlashgan Qirollik
territories.BR=Braziliya
territories.UZ=O\u02bfzbekiston
@@ -31,15 +31,15 @@ territories.RU=Rossiya
territories.JP=Yaponiya
territories.US=Qo'shma Shtatlar
territories.IT=Italiya
-languages.zh=Xitoycha
-languages.en=Inglizcha
-languages.ru=Ruscha
-languages.hi=Hindcha
-languages.ar=Arabcha
-languages.it=Italyancha
-languages.fr=Frantsuzcha
-languages.de=Olmoncha
-languages.es=Ispancha
-languages.ja=Yaponcha
-languages.uz=o\u02bfzbek
-languages.pt=Portugalcha
+languages.zh=xitoycha
+languages.en=inglizcha
+languages.ru=ruscha
+languages.hi=hindcha
+languages.ar=arabcha
+languages.it=italyancha
+languages.fr=fransuzcha
+languages.de=olmoncha
+languages.es=ispancha
+languages.ja=yaponcha
+languages.uz=o'zbekcha
+languages.pt=portugalcha
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ve.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ve.properties
new file mode 100644
index 0000000..7084f62
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_ve.properties
@@ -0,0 +1,27 @@
+# LocaleInformation_ve.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Pha\u00aeLuh\u00ae\u1e70ha\u00aeLam\u00aeShu\u00aeLwi\u00aeLwa\u00ae\u1e70ha\u00aeKhu\u00aeTsh\u00ae\u1e3car\u00aeNye\u00ae\u00ae
+months=Phando\u00aeLuhuhi\u00ae\u1e70hafamuhwe\u00aeLambamai\u00aeShundunthule\u00aeFulwi\u00aeFulwana\u00ae\u1e70hangule\u00aeKhubvumedzi\u00aeTshimedzi\u00ae\u1e3cara\u00aeNyendavhusiku\u00ae\u00ae
+shortWeekdays=\u00aeSwo\u00aeMus\u00aeVhi\u00aeRar\u00ae\u1e4aa\u00ae\u1e70an\u00aeMug\u00ae
+weekdays=\u00aeSwondaha\u00aeMusumbuluwo\u00ae\u1e3cavhuvhili\u00ae\u1e3cavhuraru\u00ae\u1e3cavhu\u1e4ba\u00ae\u1e3cavhu\u1e71anu\u00aeMugivhela\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.ve=Tshiven\u1e13a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_vi.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_vi.properties
index e8482ca..8b05413 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_vi.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_vi.properties
@@ -5,39 +5,130 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+percent=%
+perMill=\u2030
+exponential=E
+infinity=\u221e
+NaN=NaN
+minusSign=-
+zeroDigit=0
decimalSeparator=,
groupingSeparator=.
-currencyFormat=#,##0.00 \u00a4;-#,##0.00 \u00a4
+digit=#
+percentFormat=#,##0%
+currencyFormat=#,##0.00\u00a0\u00a4;-#,##0.00\u00a0\u00a4
+currenciesDisplayName.CHF=Franc Th\u1ee5y s\u0129
+currenciesDisplayName.GYD=\u0110\u00f4-la Guyana
+currenciesDisplayName.FJD=\u0110\u00f4-la Fi-ji
+currenciesDisplayName.KZT=Kazakhstan Tenge
+currenciesDisplayName.RUB=R\u00fap Nga
+currenciesDisplayName.THB=B\u1ea1t Th\u00e1i Lan
+currenciesDisplayName.SEK=Cua-ron Thu\u1ef5 \u0110i\u1ec3n
+currenciesDisplayName.GIP=Pao Gibraltar
+currenciesDisplayName.PLN=Zloty Ba Lan
+currenciesDisplayName.SKK=Cuaron Xl\u00f4v\u00e1c
+currenciesDisplayName.MAD=\u0110iaham Mar\u1ed1c
+currenciesDisplayName.TWD=\u0110\u00f4-la \u0110\u00e0i Loan
+currenciesDisplayName.XXX=Ti\u1ec1n t\u1ec7 ch\u01b0a bi\u1ebft ho\u1eb7c kh\u00f4ng h\u1ee3p l\u1ec7
+currenciesDisplayName.MYR=Rinhgit Malaixia
+currenciesDisplayName.IEP=Pao Ai-len
+currenciesDisplayName.HUF=Ph\u00f4rin Hungari
+currenciesDisplayName.UAH=R\u00fap U-crai-na
+currenciesDisplayName.INR=Rupi \u1ea4n \u0110\u1ed9
+currenciesDisplayName.AED=\u0110iram UAE
+currenciesDisplayName.GRD=Drachma Hy L\u1ea1p
+currenciesDisplayName.SAR=Rian \u1ea2 r\u1eadp X\u00ea\u00fat
+currenciesDisplayName.ITL=Lia \u00dd
+currenciesDisplayName.USD=\u0110\u00f4-la M\u1ef9
+currenciesDisplayName.BGN=L\u00e9p Bungari
+currenciesDisplayName.JPY=Y\u00ean Nh\u1eadt
+currenciesDisplayName.GBP=B\u1ea3ng Anh
+currenciesDisplayName.PKR=Rupi Pakistan
+currenciesDisplayName.PHP=Peso Phil\u00edppin
+currenciesDisplayName.PEN=Nuevo Sol P\u00earu
+currenciesDisplayName.FRF=Franc Ph\u00e1p
+currenciesDisplayName.NOK=Curon Na Uy
+currenciesDisplayName.IQD=Dinar I-r\u1eafc
+currenciesDisplayName.GHS=Cedi Ghana
+currenciesDisplayName.EUR=Euro
+currenciesDisplayName.HNL=Honduras Lempira
+currenciesDisplayName.GNS=Syli Guinea
+currenciesDisplayName.GEL=Lari Georgia
+currenciesDisplayName.HKD=\u0110\u00f4-la H\u1ed3ng K\u00f4ng
+currenciesDisplayName.IDR=Rupia In\u0111\u00f4n\u00eaxia
+currenciesDisplayName.HTG=Gourde Haiti
+currenciesDisplayName.SGD=\u0110\u00f4-la Singapore
+currenciesDisplayName.ZAR=Ran Nam Phi
+currenciesDisplayName.GTQ=Quetzal Guatemala
+currenciesDisplayName.GWP=Peso Guinea-Bissau
+currenciesDisplayName.MXN=Peso M\u00eahic\u00f4
+currenciesDisplayName.GHC=Cedi Ghana (1979-2007)
+currenciesDisplayName.TRY=Lia Th\u1ed5 Nh\u0129 K\u1ef3 M\u1edbi
+currenciesDisplayName.JMD=\u0110\u00f4 la Jamaica
+currenciesDisplayName.GNF=Franc Guinea
+currenciesDisplayName.KRW=Won H\u00e0n Qu\u1ed1c
+currenciesDisplayName.SIT=T\u00f4la Xl\u00f4v\u00eania
+currenciesDisplayName.EEK=Crun Ext\u00f4nia
+currenciesDisplayName.RSD=\u0110ina X\u00e9c-bi
+currenciesDisplayName.XAU=V\u00e0ng
+currenciesDisplayName.TRL=Lia Th\u1ed5 Nh\u0129 K\u1ef3
+currenciesDisplayName.BRL=BRL
+currenciesDisplayName.VEB=B\u00f4liva V\u00ean\u00eadu\u00eala
+currenciesDisplayName.CNY=CNY
+currenciesDisplayName.ILS=S\u00eaken Ixraen
+currenciesDisplayName.MTL=Lia x\u1ee9 Man-t\u01a1
currenciesDisplayName.VND=\u0111\u1ed3ng
+currenciesDisplayName.NZD=\u0110\u00f4-la New Zealand
+currenciesDisplayName.ILP=Pao Ixraen
+currenciesDisplayName.RON=L\u00e2y Rumani
+currenciesDisplayName.IRR=Rial I-ran
+currenciesDisplayName.KES=Si-ling K\u00ea-ny-a
+currenciesDisplayName.JOD=Dinar Jordan
+currenciesDisplayName.LTL=Litat Lituani
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
currenciesSymbol.VND=\u0111
-shortMonths=thg 1®thg 2®thg 3®thg 4®thg 5®thg 6®thg 7®thg 8®thg 9®thg 10®thg 11®thg 12®®
-months=th\u00e1ng m\u1ed9t®th\u00e1ng hai®th\u00e1ng ba®th\u00e1ng t\u01b0®th\u00e1ng n\u0103m®th\u00e1ng s\u00e1u®th\u00e1ng b\u1ea3y®th\u00e1ng t\u00e1m®th\u00e1ng ch\u00edn®th\u00e1ng m\u01b0\u1eddi®th\u00e1ng m\u01b0\u1eddi m\u1ed9t®th\u00e1ng m\u01b0\u1eddi hai®®
-shortWeekdays=®CN®Th 2®Th 3®Th 4®Th 5®Th 6®Th 7®
-weekdays=®Ch\u1ee7 nh\u1eadt®Th\u1ee9 hai®Th\u1ee9 ba®Th\u1ee9 t\u01b0®Th\u1ee9 n\u0103m®Th\u1ee9 s\u00e1u®Th\u1ee9 b\u1ea3y®
-firstDayOfWeek=mon
-eras=tr. CN®sau CN®
-ampms=SA®CH®
+shortMonths=thg 1\u00aethg 2\u00aethg 3\u00aethg 4\u00aethg 5\u00aethg 6\u00aethg 7\u00aethg 8\u00aethg 9\u00aethg 10\u00aethg 11\u00aethg 12\u00ae\u00ae
+months=th\u00e1ng m\u1ed9t\u00aeth\u00e1ng hai\u00aeth\u00e1ng ba\u00aeth\u00e1ng t\u01b0\u00aeth\u00e1ng n\u0103m\u00aeth\u00e1ng s\u00e1u\u00aeth\u00e1ng b\u1ea3y\u00aeth\u00e1ng t\u00e1m\u00aeth\u00e1ng ch\u00edn\u00aeth\u00e1ng m\u01b0\u1eddi\u00aeth\u00e1ng m\u01b0\u1eddi m\u1ed9t\u00aeth\u00e1ng m\u01b0\u1eddi hai\u00ae\u00ae
+shortWeekdays=\u00aeCN\u00aeTh 2\u00aeTh 3\u00aeTh 4\u00aeTh 5\u00aeTh 6\u00aeTh 7\u00ae
+weekdays=\u00aeCh\u1ee7 nh\u1eadt\u00aeTh\u1ee9 hai\u00aeTh\u1ee9 ba\u00aeTh\u1ee9 t\u01b0\u00aeTh\u1ee9 n\u0103m\u00aeTh\u1ee9 s\u00e1u\u00aeTh\u1ee9 b\u1ea3y\u00ae
+eras=tr. CN\u00aesau CN\u00ae
+ampms=SA\u00aeCH\u00ae
shortDateFormat=dd/MM/yyyy
mediumDateFormat=dd-MM-yyyy
longDateFormat='Ng\u00e0y' dd 'th\u00e1ng' M 'n\u0103m' yyyy
fullDateFormat=EEEE, 'ng\u00e0y' dd MMMM 'n\u0103m' yyyy
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TL=\u00d0\u00f4ng Ti-mo
+territories.TK=Tokelau
territories.TJ=T\u00e1t-gi-ki-xtan
territories.TH=Th\u00e1i Lan
territories.TG=T\u00f4-g\u00f4
+territories.TF=Thu\u1ed9c \u0110\u1ecba Nam c\u1ee7a Ph\u00e1p
territories.GY=Guy-a-na
-territories.TD=S\u00e1t
+territories.TD=S\u00e1t (Chad)
+territories.TC=Qu\u1ea7n \u0110\u1ea3o Turk v\u00e0 Caicos
territories.GW=Ghi-n\u00ea B\u00edt-xao
+territories.GU=\u0110\u1ea3o Gu-am
territories.GT=Goa-t\u00ea-ma-la
+territories.GS=Qu\u1ea7n \u0111\u1ea3o Nam Georgia v\u00e0 Nam Sandwich
territories.GR=Hy L\u1ea1p
territories.GQ=Ghi-n\u00ea X\u00edch-\u0111\u1ea1o
territories.SZ=Xoa-di-len
territories.SY=Xi-ri
territories.GN=Ghi-n\u00ea
territories.GM=G\u0103m-bi-a
+territories.GL=B\u0103ng \u0110\u1ea3o
territories.SV=En-san-va-\u0111o
+territories.062=Trung Nam \u00c1
territories.ST=Xao T\u00f4-m\u00ea v\u00e0 Prin-xi-p\u00ea
+territories.061=Polynesia
territories.GH=Gha-na
territories.SR=Xu-ri-nam
+territories.GG=Guernsey
+territories.GF=Quiana thu\u1ed9c Ph\u00e1p
territories.GE=Gru-di-a
territories.SO=X\u00f4-ma-li
territories.GD=Gr\u00ea-na-\u0111a
@@ -47,7 +138,9 @@ territories.GB=V\u01b0\u01a1ng qu\u1ed1c Anh
territories.SL=Xi-\u00ea-ra L\u00ea-\u00f4n
territories.GA=Ga-b\u00f4ng
territories.SK=Xl\u00f4-va-ki-a
+territories.SJ=Svalbard v\u00e0 Jan Mayen
territories.SI=Xl\u00f4-ven-ni-a
+territories.SH=Saint Helena
territories.SG=Xin-ga-po
territories.SE=Th\u1ee5y \u0110i\u1ec3n
territories.SD=Xu-\u0111\u0103ng
@@ -55,116 +148,177 @@ territories.SC=X\u00e2y-sen
territories.SB=Qu\u1ea7n \u0111\u1ea3o X\u00f4-l\u00f4-m\u00f4ng
territories.SA=A-r\u1eadp X\u00ea-\u00fat
territories.FR=Ph\u00e1p
+territories.FO=Qu\u1ea7n \u0110\u1ea3o Faroe
+territories.057=V\u00f9ng Micronesian
territories.FM=Mi-cr\u00f4-n\u00ea-xi-a
territories.RW=Ru-an-\u0111a
-territories.FJ=Phi-gi
+territories.054=Melanesia
+territories.FK=Qu\u1ea7n \u0110\u1ea3o Falkland
+territories.053=\u00dac v\u00e0 New Zealand
territories.RU=Nga
+territories.FJ=Phi-gi
territories.FI=Ph\u1ea7n Lan
+territories.RS=X\u00e9c-bi
territories.RO=Ru-ma-ni
+territories.RE=RE
territories.ET=\u00ca-ti-\u00f4-pi-a
territories.ES=T\u00e2y Ban Nha
territories.ER=\u00ca-ri-t\u01a1-r\u00ea-a
+territories.QU=Li\u00ean Minh Ch\u00e2u \u00c2u
territories.EH=T\u00e2y Sahara
territories.EG=Ai C\u1eadp
territories.EE=E-xt\u00f4-ni-a
+territories.QO=V\u00f9ng xa x\u00f4i thu\u1ed9c Ch\u00e2u \u0110\u1ea1i D\u01b0\u01a1ng
territories.EC=\u00ca-cu-a-\u0111o
territories.DZ=An-gi\u00ea-ri
territories.QA=Ca-ta
+territories.039=Nam \u00c2u
+territories.DO=C\u1ed9ng ho\u00e0 \u0110\u00f4-mi-ni-ca
territories.PY=Pa-ra-goay
+territories.035=\u0110\u00f4ng Nam \u00c1
+territories.034=Nam \u00c1
territories.DK=\u0110an M\u1ea1ch
territories.DJ=Gi-bu-ti
territories.PT=B\u1ed3 \u0110\u00e0o Nha
+territories.PS=Palestine
+territories.030=\u0110\u00f4ng \u00c1
territories.DE=\u0110\u1ee9c
+territories.PM=Saint Pierre v\u00e0 Miquelon
territories.PL=Ba Lan
territories.PK=Pa-ki-xtan
territories.PH=Phi-lip-pin
territories.PG=Pa-pu-a Niu Ghi-n\u00ea
+territories.PF=Polynesia thu\u1ed9c Ph\u00e1p
territories.CZ=C\u1ed9ng h\u00f2a S\u00e9c
-territories.CY=S\u00edp
territories.PE=P\u00ea-ru
+territories.CY=S\u00edp
+territories.CX=\u0110\u1ea3o Gi\u00e1ng Sinh
territories.CV=C\u00e1p-ve
-territories.CU=Cu Ba
territories.PA=Pa-na-ma
+territories.CU=Cu Ba
territories.CS=S\u00e9c-bia
territories.CR=C\u1ed1t-xta Ri-ca
+territories.029=Ca-ri-b\u00ea
territories.CO=C\u00f4-l\u00f4m-bi-a
territories.CN=Trung Qu\u1ed1c
territories.CM=Ca-m\u01a1-run
territories.CL=Chi-l\u00ea
+territories.CK=Qu\u1ea7n \u0110\u1ea3o Cook
+territories.021=Mi\u1ec1n B\u1eafc Ch\u00e2u M\u1ef9
territories.CI=B\u1edd Bi\u1ec3n Ng\u00e0
territories.CH=Th\u1ee5y S\u0129
territories.CG=C\u00f4ng-g\u00f4
territories.CF=C\u1ed9ng h\u00f2a Trung Phi
+territories.CD=C\u1ed9ng ho\u00e0 d\u00e2n ch\u1ee7 C\u00f4ng\u00f4
+territories.CC=Qu\u1ea7n \u0111\u1ea3o Cocos
territories.OM=\u00d4-man
territories.CA=Ca-na-\u0111a
+territories.419=Ch\u00e2u M\u1ef9 La-tinh v\u00e0 Ca-ri-be
territories.BZ=B\u00ea-li-x\u00ea
territories.BY=B\u00ea-la-r\u00fat
territories.BW=B\u1ed1t-xoa-na
+territories.BV=\u0110\u1ea3o Bouvet (Na Uy)
+territories.BT=Bu-tan (Bhutan)
territories.BS=Ba-ha-ma
territories.BR=Bra-xin
-territories.BO=B\u00f4-li-vi-a
+territories.019=Ch\u00e2u M\u1ef9
+territories.018=Nam Phi
territories.NZ=Niu Di-l\u00e2n
+territories.017=Trung Phi
+territories.BO=B\u00f4-li-vi-a
territories.BN=Bru-n\u00e2y
-territories.BJ=B\u00ea-nanh
+territories.015=B\u1eafc Phi
+territories.014=\u0110\u00f4ng Ph\u00ed
+territories.BL=BL
+territories.013=Trung M\u1ef9
+territories.BJ=Benin
+territories.011=T\u00e2y Phi
territories.BI=Bu-run-\u0111i
territories.BH=Ba-ren
territories.BG=Bun-ga-ri
territories.BF=Bu\u1ed1c-ki-na Pha-x\u00f4
-territories.BE=B\u1ec9
territories.NP=N\u00ea-pan
-territories.BD=B\u0103ng-la-\u0111\u00e9t
+territories.BE=B\u1ec9
+territories.ZZ=V\u00f9ng Ch\u01b0a bi\u1ebft ho\u1eb7c kh\u00f4ng H\u1ee3p l\u1ec7
territories.NO=Na Uy
+territories.BD=B\u0103ng-la-\u0111\u00e9t
territories.BB=B\u00e1c-ba-\u0111\u1ed1t
territories.ZW=Dim-ba-bu-\u00ea
-territories.BA=B\u00f4-xni-a H\u00e9c-x\u00ea-g\u00f4-vi-na
territories.NL=H\u00e0 Lan
+territories.BA=B\u00f4-xni-a H\u00e9c-x\u00ea-g\u00f4-vi-na
territories.NI=Ni-ca-ra-goa
territories.NG=Ni-gi\u00ea-ri-a
+territories.NF=\u0110\u1ea3o Norfolk
territories.AZ=Ai-d\u00e9c-bai-gian
territories.NE=Ni-gi\u00ea
+territories.AX=Qu\u1ea7n \u0111\u1ea3o Aland
+territories.NC=New Caledonia
territories.ZM=D\u0103m-bi-a
territories.NA=Nam-mi-bi-a
territories.AU=\u00dac
territories.AT=\u00c1o
+territories.AS=\u0110\u1ea3o Xa-m\u00f4-a c\u1ee7a M\u1ef9 (Samoa)
territories.AR=\u00c1c-hen-ti-na
-territories.AO=\u0102ng-g\u00f4-la
+territories.AQ=Nam C\u1ef1c
+territories.009=Ch\u00e2u \u0110\u1ea1i D\u01b0\u01a1ng
territories.MZ=M\u00f4-d\u0103m-b\u00edch
+territories.AO=\u0102ng-g\u00f4-la
territories.MY=Ma-lay-xi-a
-territories.AM=\u00c1c-m\u00ea-ni-a
+territories.AN=T\u00e2y \u1ea4n H\u00e0 Lan
territories.MX=M\u00ea-hi-c\u00f4
-territories.AL=An-ba-ni
+territories.AM=\u00c1c-m\u00ea-ni-a
+territories.005=Nam M\u1ef9
territories.MW=Ma-la-uy
+territories.AL=An-ba-ni
territories.MV=Man-\u0111i-v\u01a1
+territories.003=B\u1eafc M\u1ef9
territories.ZA=Nam Phi
territories.MU=M\u00f4-ri-x\u01a1
+territories.002=Phi Ch\u00e2u
territories.MT=Man-ta
-territories.AG=An-ti-gu-a v\u00e0 Ba-bu-\u0111a
+territories.001=Th\u1ebf gi\u1edbi
territories.MR=M\u00f4-ri-ta-ni
+territories.AG=An-ti-gu-a v\u00e0 Ba-bu-\u0111a
+territories.MQ=MQ
territories.AF=\u00c1p-ga-ni-xtan
+territories.MP=Qu\u1ea7n \u0110\u1ea3o B\u1eafc Mariana
territories.AE=C\u00e1c Ti\u1ec3u V\u01b0\u01a1ng qu\u1ed1c A-r\u1eadp Th\u1ed1ng nh\u1ea5t
+territories.MO=Macao
+territories.AD=Andorra
territories.MN=M\u00f4ng C\u1ed5
-territories.MM=Mi-an-ma
+territories.MM=Mi\u1ebfn \u0110i\u1ec7n
territories.ML=Ma-li
territories.MK=Ma-x\u00ea-\u0111\u00f4-ni-a
+territories.YT=YT
territories.MH=Qu\u1ea7n \u0111\u1ea3o M\u00e1c-san
territories.MG=Ma-\u0111a-g\u00e1t-xca
+territories.MF=MF
+territories.ME=Montenegro
territories.MD=M\u00f4n-\u0111\u00f4-va
territories.MC=M\u00f4-na-c\u00f4
territories.MA=Ma-r\u1ed1c
territories.YE=Y-\u00ea-men
territories.LY=Li-bi
territories.LV=L\u00e1t-vi-a
+territories.155=T\u00e2y \u00c2u
territories.LU=L\u00fac-x\u0103m-bua
+territories.154=Mi\u1ec1n B\u1eafc Ch\u00e2u \u00c2u
territories.LT=Li-tu-a-ni-a
territories.LS=L\u00ea-x\u00f4-th\u00f4
territories.LR=Li-b\u00ea-ri-a
+territories.151=\u0110\u00f4ng \u00c2u
+territories.150=\u00c2u Ch\u00e2u
territories.LK=Xri Lan-ca
territories.LI=Lich-ten-xt\u00ean
territories.LC=Xan Lu-xi
territories.LB=Li-b\u0103ng
territories.LA=L\u00e0o
territories.KZ=Ka-d\u1eafc-xtan
+territories.KY=Qu\u1ea7n \u0110\u1ea3o Cayman
territories.KW=C\u00f4-o\u00e9t
+territories.145=T\u00e2y \u00c1
+territories.143=Trung \u00c1
+territories.142=Ch\u00e2u \u00c1
territories.KR=H\u00e0n Qu\u1ed1c
territories.KP=B\u1eafc Tri\u1ec1u Ti\u00ean
territories.KN=Xan-k\u00edt v\u00e0 N\u00ea-vi
@@ -174,11 +328,15 @@ territories.WS=Xa-moa
territories.KH=Campuchia
territories.KG=C\u01b0-r\u01a1-g\u01b0-xtan
territories.KE=K\u00ea-ni-a
+territories.WF=Wallis v\u00e0 Futuna
territories.JP=Nh\u1eadt B\u1ea3n
territories.JO=Gi\u00f3c-\u0111a-ni
territories.JM=Ha-mai-ca
territories.VU=Va-nu-a-tu
+territories.JE=Jersey
territories.VN=Vi\u1ec7t Nam
+territories.VI=Qu\u1ea7n \u0111\u1ea3o Virgin, M\u1ef9
+territories.VG=\u0110\u1ea3o Virgin, thu\u1ed9c Anh
territories.VE=V\u00ea-n\u00ea-zu-\u00ea-la
territories.VC=Xan Vin-xen v\u00e0 Gr\u00ea-na-din
territories.VA=Va-ti-c\u0103ng
@@ -187,12 +345,15 @@ territories.IS=Ai-x\u01a1-len
territories.IR=I-ran
territories.IQ=I-r\u1eafc
territories.UZ=U-d\u01a1-b\u00ea-ki-xtan
+territories.IO=Thu\u1ed9c \u0111\u1ecba Anh t\u1ea1i \u1ea4n \u0110\u1ed9 D\u01b0\u01a1ng
territories.UY=U-ru-goay
territories.IN=\u1ea4n \u0110\u1ed9
+territories.IM=\u0110\u1ea3o Man
territories.IL=I-xra-en
territories.US=Hoa K\u1ef3
territories.IE=Ai-len
territories.ID=Nam D\u01b0\u01a1ng
+territories.UM=C\u00e1c \u0111\u1ea3o nh\u1ecf xa trung t\u00e2m thu\u1ed9c M\u1ef9
territories.UG=U-gan-\u0111a
territories.UA=U-crai-na
territories.HU=Hung-ga-ri
@@ -200,70 +361,129 @@ territories.HT=Ha-i-ti
territories.HR=Cr\u00f4-a-ti-a
territories.TZ=Tan-da-ni-a
territories.HN=H\u00f4n-\u0111u-r\u00e1t
+territories.HM=\u0110\u1ea3o Heard v\u00e0 Qu\u1ea7n \u0111\u1ea3o McDonald
territories.TW=\u0110\u00e0i Loan
territories.TV=Tu-va-lu
+territories.HK=H\u1ed3ng K\u00f4ng
territories.TT=Tri-ni-\u0111\u00e1t v\u00e0 T\u00f4-ba-g\u00f4
territories.TR=Th\u1ed5 Nh\u0129 K\u1ef3
territories.TO=T\u00f4ng-ga
territories.TN=Tuy-ni-di
territories.TM=Tu\u1ed1c-m\u00ea-ni-xtan
-languages.ne=Ti\u1ebfng N\u00ea-pan
-languages.th=Ti\u1ebfng Th\u00e1i
-languages.az=Ti\u1ebfng Ai-d\u00e9c-bai-gian
-languages.zh=Ti\u1ebfng Trung Qu\u1ed1c
-languages.ar=Ti\u1ebfng A-r\u1eadp
+languages.es=Ti\u1ebfng T\u00e2y Ban Nha
+languages.ku=Ti\u1ebfng Kurd (Iran)
+languages.eo=Ti\u1ebfng Qu\u1ed1c T\u1ebf Ng\u1eef
+languages.ks=Ti\u1ebfng Kashmiri
+languages.en=Ti\u1ebfng Anh
+languages.el=Ti\u1ebfng Hy L\u1ea1p
+languages.ko=Ti\u1ebfng H\u00e0n Qu\u1ed1c
+languages.kn=Ti\u1ebfng Kan-na-\u0111a
+languages.km=Ti\u1ebfng Campuchia
+languages.wo=Ti\u1ebfng Wolof
+languages.ka=Ti\u1ebfng Georgian
+languages.zh_Hans=Ti\u1ebfng Trung Qu\u1ed1c (Gi\u1ea3n th\u1ec3)
+languages.zh_Hant=Ti\u1ebfng Trung Qu\u1ed1c (Ph\u1ed3n th\u1ec3)
languages.jv=Ti\u1ebfng Gia-va
-languages.ms=Ti\u1ebfng Ma-lay-xi-a
-languages.sv=Ti\u1ebfng Th\u1ee5y \u0110i\u1ec3n
+languages.fil=Ti\u1ebfng Philipin
languages.pt=Ti\u1ebfng B\u1ed3 \u0110\u00e0o Nha
-languages.sr=Ti\u1ebfng S\u00e9c-bi
-languages.mn=Ti\u1ebfng M\u00f4ng C\u1ed5
-languages.sq=Ti\u1ebfng An-ba-ni
-languages.so=Ti\u1ebfng X\u00f4-ma-li
-languages.mk=Ti\u1ebfng Ma-x\u00ea-\u0111\u00f4-ni-a
+languages.ps=Ti\u1ebfng Pa-t\u00f4
languages.de=Ti\u1ebfng \u0110\u1ee9c
languages.pl=Ti\u1ebfng Ba Lan
-languages.sl=Ti\u1ebfng Xl\u00f4-ven
-languages.sk=Ti\u1ebfng Xl\u00f4-v\u00e1c
languages.da=Ti\u1ebfng \u0110an M\u1ea1ch
-languages.ga=Ti\u1ebfng Ai-len
-languages.vi=Ti\u1ebfng Vi\u1ec7t
+languages.tlh=Ti\u1ebfng Klingon
languages.ja=Ti\u1ebfng Nh\u1eadt
-languages.yi=Ti\u1ebfng Y-\u0111it
-languages.sa=Ti\u1ebfng Ph\u1ea1n
-languages.cs=Ti\u1ebfng S\u00e9c
-languages.lv=Ti\u1ebfng L\u00e1t-vi-a
-languages.fr=Ti\u1ebfng Ph\u00e1p
+languages.vi=Ti\u1ebfng Vi\u1ec7t
+languages.cy=Ti\u1ebfng Xent\u01a1
+languages.pa=Ti\u1ebfng Punjabi
+languages.cs=Ti\u1ebfng Ti\u1ec7p Kh\u1eafc
languages.it=Ti\u1ebfng \u00dd
languages.is=Ti\u1ebfng Ai-x\u01a1-len
languages.uz=Ti\u1ebfng U-d\u01a1-b\u1ebfch
-languages.lt=Ti\u1ebfng L\u00edt-va
-languages.ru=Ti\u1ebfng Nga
-languages.lo=Ti\u1ebfng L\u00e0o
-languages.fi=Ti\u1ebfng Ph\u1ea7n Lan
-languages.ro=Ti\u1ebfng Ru-ma-ni
+languages.or=Ti\u1ebfng \u00d4-ri-a
+languages.ur=Ti\u1ebfng U\u0111u
languages.ca=Ti\u1ebfng Ca-ta-l\u0103ng
+languages.ie=Ti\u1ebfng Khoa h\u1ecdc qu\u1ed1c t\u1ebf
languages.id=Ti\u1ebfng In-\u0111\u00f4-n\u00ea-xia
languages.uk=Ti\u1ebfng U-crai-na
-languages.fa=Ti\u1ebfng Ba T\u01b0
languages.ia=Ti\u1ebfng Khoa H\u1ecdc Qu\u1ed1c T\u1ebf
-languages.la=Ti\u1ebfng La-tinh
+languages.oc=Ti\u1ebfng Occitan
+languages.ug=Ti\u1ebfng Uighur
languages.hy=Ti\u1ebfng \u00c1c-m\u00ea-ni
-languages.et=Ti\u1ebfng E-xt\u00f4-ni-a
-languages.es=Ti\u1ebfng T\u00e2y Ban Nha
+languages.bs=Ti\u1ebfng Nam T\u01b0
+languages.br=Ti\u1ebfng Breton
languages.hu=Ti\u1ebfng Hung-ga-ri
languages.bo=Ti\u1ebfng T\u00e2y T\u1ea1ng
+languages.pt_PT=Ti\u1ebfng B\u1ed3 \u0110\u00e0o Nha (I-b\u00ea-ri)
+languages.bn=Ti\u1ebfng Bengali (\u1ea4n \u0110\u1ed9)
languages.hr=Ti\u1ebfng Cr\u00f4-a-ti-a
-languages.eo=Ti\u1ebfng Qu\u1ed1c T\u1ebf Ng\u1eef
-languages.en=Ti\u1ebfng Anh
-languages.el=Ti\u1ebfng Hy L\u1ea1p
-languages.ko=Ti\u1ebfng H\u00e0n Qu\u1ed1c
-languages.kn=Ti\u1ebfng Kan-na-\u0111a
-languages.no=Ti\u1ebfng Na Uy
+languages.tw=Ti\u1ebfng Twi
+languages.bh=Ti\u1ebfng Bihari
languages.bg=Ti\u1ebfng Bun-ga-ri
-languages.km=Ti\u1ebfng Campuchia
-languages.tr=Ti\u1ebfng Th\u1ed5 Nh\u0129 K\u1ef3
+languages.no=Ti\u1ebfng Na Uy
languages.be=Ti\u1ebfng B\u00ea-la-r\u00fat
+languages.nn=Ti\u1ebfng Na Uy (Nynorsk)
languages.hi=Ti\u1ebfng Hin-\u0111i
+languages.tr=Ti\u1ebfng Th\u1ed5 Nh\u0129 K\u1ef3
languages.nl=Ti\u1ebfng H\u00e0 Lan
+languages.zu=Ti\u1ebfng Zulu
languages.he=Ti\u1ebfng H\u00ea-br\u01a1
+languages.tl=Ti\u1ebfng Tagalog
+languages.tk=Ti\u1ebfng Tu\u00f4c-men
+languages.ne=Ti\u1ebfng N\u00ea-pan
+languages.az=Ti\u1ebfng Ai-d\u00e9c-bai-gian
+languages.ti=Ti\u1ebfng Tigrigya
+languages.ay=Ti\u1ebfng Aymara
+languages.th=Ti\u1ebfng Th\u00e1i
+languages.en_US=Ti\u1ebfng Anh (M\u1ef9)
+languages.te=Ti\u1ebfng Telugu
+languages.zh=Ti\u1ebfng Trung Qu\u1ed1c
+languages.as=Ti\u1ebfng Assam
+languages.ar=Ti\u1ebfng A-r\u1eadp
+languages.ta=Ti\u1ebfng Tamil
+languages.gu=Ti\u1ebfng Gujarati
+languages.am=Ti\u1ebfng Amharic
+languages.mt=Ti\u1ebfng Mant\u01a1
+languages.ms=Ti\u1ebfng M\u00e3 Lai
+languages.gn=Ti\u1ebfng Guarani
+languages.sw=Ti\u1ebfng Bantu (\u0110\u00f4ng Phi)
+languages.mr=Ti\u1ebfng Marathi
+languages.sv=Ti\u1ebfng Th\u1ee5y \u0110i\u1ec3n
+languages.gl=Ti\u1ebfng Galician
+languages.su=Ti\u1ebfng Xu \u0111\u0103ng
+languages.af=Ti\u1ebfng Nam Phi
+languages.st=Ti\u1ebfng Sesotho
+languages.mn=Ti\u1ebfng M\u00f4ng C\u1ed5
+languages.sr=Ti\u1ebfng X\u00e9c-bi
+languages.sq=Ti\u1ebfng An-ba-ni
+languages.ml=Ti\u1ebfng Malayalam
+languages.mk=Ti\u1ebfng Ma-x\u00ea-\u0111\u00f4-ni-a
+languages.so=Ti\u1ebfng X\u00f4-ma-li
+languages.gd=Ti\u1ebfng Xent\u01a1 (Xc\u1ed1t len)
+languages.sl=Ti\u1ebfng Xl\u00f4-ven
+languages.sk=Ti\u1ebfng Xl\u00f4-v\u00e1c
+languages.ga=Ti\u1ebfng Ai-len
+languages.si=Ti\u1ebfng Sinhala
+languages.sh=Ti\u1ebfng X\u00e9c bi - Croatia
+languages.pt_BR=Ti\u1ebfng B\u1ed3 \u0110\u00e0o Nha (Braxin)
+languages.yi=Ti\u1ebfng Y-\u0111it
+languages.sd=Ti\u1ebfng Sin-hi
+languages.fy=Ti\u1ebfng Frisian
+languages.sa=Ti\u1ebfng Ph\u1ea1n
+languages.fr=Ti\u1ebfng Ph\u00e1p
+languages.lv=Ti\u1ebfng L\u00e1t-vi-a
+languages.lt=Ti\u1ebfng L\u00edt-va
+languages.fo=Ti\u1ebfng Faore
+languages.ru=Ti\u1ebfng Nga
+languages.lo=Ti\u1ebfng L\u00e0o
+languages.ln=Ti\u1ebfng Lingala
+languages.fi=Ti\u1ebfng Ph\u1ea7n Lan
+languages.ro=Ti\u1ebfng Ru-ma-ni
+languages.rm=Ti\u1ebfng Rhaeto-Romance
+languages.fa=Ti\u1ebfng Ba T\u01b0
+languages.und=und
+languages.la=Ti\u1ebfng La-tinh
+languages.xh=Ti\u1ebfng Bantu
+languages.en_GB=Ti\u1ebfng Anh (Anh)
+languages.eu=Ti\u1ebfng Basque
+languages.ky=Ti\u1ebfng Kyrgyz
+languages.et=Ti\u1ebfng E-xt\u00f4-ni-a
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_wal.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_wal.properties
index f0485c2..7b62a31 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_wal.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_wal.properties
@@ -5,9 +5,11 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+groupingSeparator=\u12c8
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
currenciesDisplayName.INR=\u12e8\u1215\u1295\u12f5 \u1229\u1352
-currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.JPY=\u12e8\u1303\u1353\u1295 \u12e8\u1295
+currenciesDisplayName.RUB=\u12e8\u122b\u123b \u1229\u1265\u120d
currenciesDisplayName.BRL=\u12e8\u1265\u122b\u12da\u120d \u122a\u120d
currenciesDisplayName.CNY=\u12e8\u127b\u12ed\u1293 \u12e9\u12a0\u1295 \u1228\u1295\u121a\u1295\u1262
currenciesDisplayName.USD=\u12e8\u12a0\u121c\u122a\u12ab\u1295 \u12f6\u120b\u122d
@@ -16,29 +18,34 @@ currenciesDisplayName.ETB=\u12e8\u12a2\u1275\u12ee\u1335\u12eb \u1265\u122d
currenciesDisplayName.GBP=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u1353\u12cd\u1295\u12f5 \u1235\u1270\u122d\u120a\u1295\u130d
currenciesSymbol.ETB=$
currenciesSymbol.CNY=Y
-currenciesSymbol.USD=USD
-currenciesSymbol.BRL=R$
-shortMonths=\u1303\u1295\u12e9®\u134c\u1265\u1229®\u121b\u122d\u127d®\u12a4\u1355\u1228®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235®\u1234\u1355\u1274®\u12a6\u12ad\u1270®\u1296\u126c\u121d®\u12f2\u1234\u121d®®
-months=\u1303\u1295\u12e9\u12c8\u122a®\u134c\u1265\u1229\u12c8\u122a®\u121b\u122d\u127d®\u12a4\u1355\u1228\u120d®\u121c\u12ed®\u1301\u1295®\u1301\u120b\u12ed®\u12a6\u1308\u1235\u1275®\u1234\u1355\u1274\u121d\u1260\u122d®\u12a6\u12ad\u1270\u12cd\u1260\u122d®\u1296\u126c\u121d\u1260\u122d®\u12f2\u1234\u121d\u1260\u122d®®
-shortWeekdays=®\u12c8\u130b®\u1233\u12ed\u1296®\u121b\u1246\u1233®\u12a0\u1229\u12cb®\u1203\u1219\u1233®\u12a0\u122d\u1263®\u1244\u122b®
-weekdays=®\u12c8\u130b®\u1233\u12ed\u1296®\u121b\u1246\u1233\u129b®\u12a0\u1229\u12cb®\u1203\u1219\u1233®\u12a0\u122d\u1263®\u1244\u122b®
-firstDayOfWeek=sat
-eras=\u12a0\u12f3 \u12ce\u12f4®\u130d\u122e\u1270\u1273 \u120b\u12ed\u1273®
-ampms=\u121b\u1208\u12f6®\u1243\u121b®
+shortMonths=\u1303\u1295\u12e9\u00ae\u134c\u1265\u1229\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u00ae\u1234\u1355\u1274\u00ae\u12a6\u12ad\u1270\u00ae\u1296\u126c\u121d\u00ae\u12f2\u1234\u121d\u00ae\u00ae
+months=\u1303\u1295\u12e9\u12c8\u122a\u00ae\u134c\u1265\u1229\u12c8\u122a\u00ae\u121b\u122d\u127d\u00ae\u12a4\u1355\u1228\u120d\u00ae\u121c\u12ed\u00ae\u1301\u1295\u00ae\u1301\u120b\u12ed\u00ae\u12a6\u1308\u1235\u1275\u00ae\u1234\u1355\u1274\u121d\u1260\u122d\u00ae\u12a6\u12ad\u1270\u12cd\u1260\u122d\u00ae\u1296\u126c\u121d\u1260\u122d\u00ae\u12f2\u1234\u121d\u1260\u122d\u00ae\u00ae
+shortWeekdays=\u00ae\u12c8\u130b\u00ae\u1233\u12ed\u1296\u00ae\u121b\u1246\u1233\u00ae\u12a0\u1229\u12cb\u00ae\u1203\u1219\u1233\u00ae\u12a0\u122d\u1263\u00ae\u1244\u122b\u00ae
+weekdays=\u00ae\u12c8\u130b\u00ae\u1233\u12ed\u1296\u00ae\u121b\u1246\u1233\u129b\u00ae\u12a0\u1229\u12cb\u00ae\u1203\u1219\u1233\u00ae\u12a0\u122d\u1263\u00ae\u1244\u122b\u00ae
+eras=\u12a0\u12f3 \u12ce\u12f4\u00ae\u130d\u122e\u1270\u1273 \u120b\u12ed\u1273\u00ae
+ampms=\u121b\u1208\u12f6\u00ae\u1243\u121b\u00ae
+shortDateFormat=dd/MM/yy
+mediumDateFormat=dd-MMM-yyyy
+longDateFormat=dd MMMM yyyy
+fullDateFormat=EEEE\u1365 dd MMMM \u130b\u120b\u1233 yyyy G
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
territories.AU=\u12a0\u12cd\u1235\u1275\u122c\u120a\u12eb
territories.TD=\u127b\u12f5
-territories.AT=\u12a6\u1235\u1275\u122a\u12eb
territories.GY=\u1309\u12eb\u1293
-territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
+territories.AT=\u12a6\u1235\u1275\u122a\u12eb
territories.GW=\u1262\u1233\u12ce
+territories.AR=\u12a0\u122d\u1300\u1295\u1272\u1293
territories.MY=\u121b\u120c\u12e2\u12eb
territories.MX=\u121c\u12ad\u1232\u12ae
territories.AN=\u1294\u12d8\u122d\u120b\u1295\u12f5\u1235 \u12a0\u1295\u1272\u120d\u1235
-territories.AM=\u12a0\u122d\u121c\u1292\u12eb
territories.GR=\u130d\u122a\u12ad
+territories.AM=\u12a0\u122d\u121c\u1292\u12eb
territories.ZA=\u12f0\u1261\u1265 \u12a0\u134d\u122a\u12ab
-territories.AL=\u12a0\u120d\u1263\u1292\u12eb
territories.GQ=\u12a2\u12b3\u1276\u122a\u12eb\u120d \u130a\u1292
+territories.AL=\u12a0\u120d\u1263\u1292\u12eb
territories.MU=\u121b\u1229\u1238\u1235
territories.SY=\u1232\u122a\u12eb
territories.MT=\u121b\u120d\u1273
@@ -84,13 +91,13 @@ territories.KM=\u12ae\u121e\u122e\u1235
territories.EH=\u121d\u12d5\u122b\u1263\u12ca \u1233\u1205\u122b
territories.EG=\u130d\u1265\u133d
territories.EE=\u12a4\u1235\u1276\u1292\u12eb
-territories.EC=\u12a2\u12b3\u12f6\u122d
territories.KH=\u12ab\u121d\u1266\u12f2\u12eb
+territories.EC=\u12a2\u12b3\u12f6\u122d
territories.DZ=\u12a0\u120d\u1304\u122a\u12eb
territories.DO=\u12f6\u121a\u1292\u12ad \u122a\u1351\u1265\u120a\u12ad
territories.DM=\u12f6\u121a\u1292\u12ab
-territories.DK=\u12f4\u1295\u121b\u122d\u12ad
territories.JP=\u1303\u1353\u1295
+territories.DK=\u12f4\u1295\u121b\u122d\u12ad
territories.JO=\u1306\u122d\u12f3\u1295
territories.PR=\u1356\u122d\u1273 \u122a\u12ae
territories.JM=\u1303\u121b\u12ed\u12ab
@@ -106,13 +113,13 @@ territories.VG=\u12e8\u12a5\u1295\u130d\u120a\u12dd \u12f5\u1295\u130d\u120d \u1
territories.CV=\u12ac\u1355 \u126c\u122d\u12f4
territories.VE=\u126c\u1295\u12d9\u12cc\u120b
territories.CS=\u1230\u122d\u1262\u12eb
-territories.CO=\u12ae\u120e\u121d\u1262\u12eb
territories.IT=\u1323\u120a\u12eb\u1295
-territories.CN=\u127b\u12ed\u1293
+territories.CO=\u12ae\u120e\u121d\u1262\u12eb
territories.IS=\u12a0\u12ed\u1235\u120b\u1295\u12f5
+territories.CN=\u127b\u12ed\u1293
territories.CM=\u12ab\u121c\u1229\u1295
-territories.CL=\u127a\u120a
territories.IQ=\u12a2\u122b\u1245
+territories.CL=\u127a\u120a
territories.UZ=\u12e9\u12dd\u1260\u12aa\u1235\u1273\u1295
territories.IN=\u1205\u1295\u12f5
territories.CH=\u1235\u12ca\u12d8\u122d\u120b\u1295\u12f5
@@ -129,10 +136,10 @@ territories.BT=\u1261\u1205\u1273\u1295
territories.BR=\u1265\u122b\u12da\u120d
territories.NZ=\u1292\u12cd \u12da\u120b\u1295\u12f5
territories.HU=\u1200\u1295\u130b\u122a
-territories.BO=\u1266\u120a\u126a\u12eb
territories.HT=\u1200\u12ed\u1272
-territories.BM=\u1264\u122d\u1219\u12f3
+territories.BO=\u1266\u120a\u126a\u12eb
territories.HR=\u12ad\u122e\u12a4\u123d\u12eb
+territories.BM=\u1264\u122d\u1219\u12f3
territories.TZ=\u1273\u1295\u12db\u1292\u12eb
territories.BH=\u1263\u1205\u122c\u1295
territories.BG=\u1261\u120d\u130c\u122a\u12eb
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_wo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_wo.properties
new file mode 100644
index 0000000..bf7c375
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_wo.properties
@@ -0,0 +1,33 @@
+# LocaleInformation_wo.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+shortMonths=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+months=1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae8\u00ae9\u00ae10\u00ae11\u00ae12\u00ae\u00ae
+shortWeekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+weekdays=\u00ae1\u00ae2\u00ae3\u00ae4\u00ae5\u00ae6\u00ae7\u00ae
+eras=BCE\u00aeCE\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.nl=Olaande
+languages.en=Angale
+languages.it=Itaaliee
+languages.fr=Fraa\u00f1se
+languages.de=Almaa
+languages.sv=Suweedwaa
+languages.es=Espa\u00f1ool
+languages.no=Norweejiee
+languages.ja=Jappone
+languages.fi=Finlaande
+languages.pt=Portugees
+languages.da=Danwaa
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_xh.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_xh.properties
new file mode 100644
index 0000000..f4a45d9
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_xh.properties
@@ -0,0 +1,131 @@
+# LocaleInformation_xh.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Jan\u00aeFeb\u00aeMat\u00aeEpr\u00aeMey\u00aeJun\u00aeJul\u00aeAga\u00aeSep\u00aeOkt\u00aeNov\u00aeDis\u00ae\u00ae
+months=Janyuwari\u00aeFebruwari\u00aeMatshi\u00aeEpreli\u00aeMeyi\u00aeJuni\u00aeJulayi\u00aeAgasti\u00aeSeptemba\u00aeOkthoba\u00aeNovemba\u00aeDisemba\u00ae\u00ae
+shortWeekdays=\u00aeCaw\u00aeMvu\u00aeBin\u00aeTha\u00aeSin\u00aeHla\u00aeMgq\u00ae
+weekdays=\u00aeCawe\u00aeMvulo\u00aeLwesibini\u00aeLwesithathu\u00aeLwesine\u00aeLwesihlanu\u00aeMgqibelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+languages.es=Isi-Spanish
+languages.ku=Kurdish
+languages.eo=Isi-Esperanto
+languages.en=isiNgesi
+languages.el=Isi-Greek
+languages.ko=Isi-Korean
+languages.kn=Isi-Kannada
+languages.km=isiCambodia
+languages.ka=Isi-Georgia
+languages.jv=Isi-Javanese
+languages.fil=Isi-Taglog
+languages.pt=Isi-Portuguese
+languages.ps=Pashto
+languages.de=Isi-German
+languages.pl=Isi-Polish
+languages.da=Isi-Danish
+languages.tlh=Klingon
+languages.ja=Isi-Japanese
+languages.vi=Isi-Vietnamese
+languages.cy=Isi-Welsh
+languages.pa=Isi-Punjabi
+languages.cs=Isi-Czech
+languages.it=Isi-Italian
+languages.is=Isi-Icelandic
+languages.uz=Isi-Uzbek
+languages.or=Oriya
+languages.ur=Urdu
+languages.ca=Isi-Calatan
+languages.ie=isiInterlingue
+languages.id=Isi-Indonesian
+languages.uk=Isi-Ukranian
+languages.ia=Interlingua
+languages.oc=Iso-Occitan
+languages.ug=Isi Uighur
+languages.hy=isiArmenian
+languages.bs=Isi-Bosnia
+languages.br=Breton
+languages.hu=Isi-Hungarian
+languages.pt_PT=Isi-Portuguese (Portugal)
+languages.bn=Isi-Bengali
+languages.hr=Isi-Croatia
+languages.tw=Twi
+languages.bh=Isi-Bihari
+languages.bg=Isi-Bulgaria
+languages.no=Isi-Norwegian
+languages.be=Isi-Belarusian
+languages.nn=Isi-Norwegia (Nynorsk)
+languages.hi=Isi-Hindi
+languages.tr=Isi-Turkish
+languages.nl=Isi-Dutch
+languages.zu=isiZulu
+languages.he=Isi-Hebrew
+languages.tk=Turkmen
+languages.ne=Isi-Nepali
+languages.az=Isi-Azerbaijani
+languages.ti=Isi-Tigrinya
+languages.th=Isi-Thai
+languages.te=Isi-Telegu
+languages.as=isiAssamese
+languages.ar=Isi-Arabic
+languages.ta=Isi-Tamil
+languages.gu=Isi-Gujarati
+languages.am=Isi-Amharic
+languages.mt=Isi-Maltese
+languages.ms=Isi-Malay
+languages.gn=Guarani
+languages.sw=Isi-Swahili
+languages.mr=Isi-Marathi
+languages.sv=Isi-Swedish
+languages.gl=Isi-Galician
+languages.su=Isi-Sudanese
+languages.af=isiBhulu
+languages.st=Sesotho
+languages.mn=IsiMongolian
+languages.sr=Isi-Serbia
+languages.sq=Isi-Albania
+languages.ml=Isi-Malayalam
+languages.mk=Isi-Macedonian
+languages.so=IsiSomaliya
+languages.gd=Scots Gaelic
+languages.sl=Isi-Slovenian
+languages.sk=Isi-Slovak
+languages.ga=Isi-Irish
+languages.si=Isi-Sinhalese
+languages.sh=Serbo-Croatian
+languages.pt_BR=portokugusseee
+languages.yi=Yiddish
+languages.sd=isiSindhi
+languages.fy=Isi-Frisian
+languages.sa=iSanskrit
+languages.fr=Isi-French
+languages.lv=Isi-Latvian
+languages.lt=Isi-Lithuanian
+languages.fo=Isi-Faroese
+languages.ru=Isi-Russian
+languages.lo=IsiLoathian
+languages.ln=Iilwimi
+languages.fi=Isi-Finnish
+languages.ro=Isi-Romanian
+languages.fa=Isi-Persia
+languages.la=Isi-Latin
+languages.xh=isiXhosa
+languages.eu=Isi-Basque
+languages.ky=Kyrgyz
+languages.et=Isi-Estonian
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_yo.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_yo.properties
new file mode 100644
index 0000000..802756f
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_yo.properties
@@ -0,0 +1,130 @@
+# LocaleInformation_yo.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+currenciesDisplayName.NGN=Naira
+currenciesSymbol.NGN=\u20a6
+shortMonths=\u1e62\u1eb9\u0301r\u1eb9\u0301\u00ae\u00c8r\u00e8l\u00e8\u00ae\u1eb8r\u1eb9\u0300n\u00e0\u00ae\u00ccgb\u00e9\u00ae\u1eb8\u0300bibi\u00ae\u00d2k\u00fadu\u00aeAg\u1eb9m\u1ecd\u00ae\u00d2g\u00fan\u00aeOwewe\u00ae\u1ecc\u0300w\u00e0r\u00e0\u00aeB\u00e9l\u00fa\u00ae\u1ecc\u0300p\u1eb9\u0300\u00ae\u00ae
+months=O\u1e63\u00f9 \u1e62\u1eb9\u0301r\u1eb9\u0301\u00aeO\u1e63\u00f9 \u00c8r\u00e8l\u00e8\u00aeO\u1e63\u00f9 \u1eb8r\u1eb9\u0300n\u00e0\u00aeO\u1e63\u00f9 \u00ccgb\u00e9\u00aeO\u1e63\u00f9 \u1eb8\u0300bibi\u00aeO\u1e63\u00f9 \u00d2k\u00fadu\u00aeO\u1e63\u00f9 Ag\u1eb9m\u1ecd\u00aeO\u1e63\u00f9 \u00d2g\u00fan\u00aeO\u1e63\u00f9 Owewe\u00aeO\u1e63\u00f9 \u1ecc\u0300w\u00e0r\u00e0\u00aeO\u1e63\u00f9 B\u00e9l\u00fa\u00aeO\u1e63\u00f9 \u1ecc\u0300p\u1eb9\u0300\u00ae\u00ae
+shortWeekdays=\u00ae\u00c0\u00eck\u00fa\u00aeAj\u00e9\u00ae\u00ccs\u1eb9\u0301gun\u00ae\u1eccj\u1ecd\u0301r\u00fa\u00ae\u00c0\u1e63\u1eb9\u0300\u1e63\u1eb9\u0300d\u00e1iy\u00e9\u00ae\u1eb8t\u00ec\u00ae\u00c0b\u00e1m\u1eb9\u0301ta\u00ae
+weekdays=\u00ae\u1eccj\u1ecd\u0301 \u00c0\u00eck\u00fa\u00ae\u1eccj\u1ecd\u0301 Aj\u00e9\u00ae\u1eccj\u1ecd\u0301 \u00ccs\u1eb9\u0301gun\u00ae\u1eccj\u1ecd\u0301r\u00fa\u00ae\u1eccj\u1ecd\u0301 \u00c0\u1e63\u1eb9\u0300\u1e63\u1eb9\u0300d\u00e1iy\u00e9\u00ae\u1eccj\u1ecd\u0301 \u1eb8t\u00ec\u00ae\u1eccj\u1ecd\u0301 \u00c0b\u00e1m\u1eb9\u0301ta\u00ae
+eras=SK\u00aeLK\u00ae
+ampms=\u00e0\u00e1r\u1ecd\u0300\u00ae\u1ecd\u0300s\u00e1n\u00ae
+shortDateFormat=yy/MM/dd
+mediumDateFormat=yyyy MMM d
+longDateFormat=yyyy MMMM d
+fullDateFormat=EEEE, yyyy MMMM dd
+shortTimeFormat=HH:mm
+mediumTimeFormat=HH:mm:ss
+longTimeFormat=HH:mm:ss z
+fullTimeFormat=HH:mm:ss z
+territories.TO=Tonga
+territories.BW=BW
+territories.NG=NG
+languages.es=Panyan
+languages.ku=Kurdish
+languages.eo=Ede Esperanto
+languages.en=\u00c8d\u00e8 G\u1eb9\u0300\u1eb9\u0301s\u00ec
+languages.el=giriki
+languages.ko=Korean
+languages.kn=Ede Kannada
+languages.km=Cambodian
+languages.ka=Ede Georgia
+languages.jv=Ede Javana
+languages.fil=Ede Tagalogi
+languages.pt=Ede Portugi
+languages.ps=Pashto
+languages.de=\u00c8d\u00e8 Il\u1eb9\u0300 Germany
+languages.pl=\u00c8d\u00e8 Il\u1eb9\u0300 Polandi
+languages.da=\u00c8d\u00e8 Il\u1eb9\u0300 Denmark
+languages.tlh=Ede Klingoni
+languages.ja=Japanisi
+languages.vi=Ede Vietnamu
+languages.cy=Ede Welshi
+languages.pa=Ede Punjabi
+languages.cs=Orile-ede Tseki
+languages.it=Italiani
+languages.is=Ede Icelandic
+languages.uz=Ede Uzbek
+languages.or=Oriya
+languages.ur=Ede Urdu
+languages.ca=Ede Catala
+languages.ie=Iru Ede
+languages.id=Ede Indonesia
+languages.uk=Ede Ukrani
+languages.ia=Ede pipo
+languages.oc=Ede Occitani
+languages.ug=Uighur
+languages.hy=Ile Armenia
+languages.bs=Ede Bosnia
+languages.br=Bretoni
+languages.hu=Ede Hungaria
+languages.pt_PT=Ede Portugal
+languages.bn=Ede Bengali
+languages.hr=Ede Kroatia
+languages.tw=Twi
+languages.bh=Ede Bihari
+languages.bg=Ede Bulgaria
+languages.no=Ede Norway
+languages.be=Ede Belarusi
+languages.hi=Ede Hindi
+languages.tr=Ede Turkey
+languages.nl=Ede Dutch
+languages.zu=Ede Zulu
+languages.he=Heberu
+languages.tk=Turkmen
+languages.ne=Ede Nepali
+languages.az=Ede Azerbaijani
+languages.ti=Ede Tigrinya
+languages.th=Ede Thai
+languages.te=Ede Telugu
+languages.as=Ti Assam
+languages.ar=Ede Arabia
+languages.ta=Ede Tamili
+languages.gu=Ede Gujarati
+languages.am=Ede Amharic
+languages.mt=Ede Malta
+languages.ms=Ede Malaya
+languages.gn=Guarani
+languages.sw=Ede Swahili
+languages.mr=Ede marathi
+languages.sv=suwidiisi
+languages.gl=Ede Galicia
+languages.su=Ede Sudani
+languages.af=Ede Afrikani
+languages.st=Sesoto
+languages.mn=ara Mangoli
+languages.sr=Ede Serbia
+languages.sq=Ede Albania
+languages.ml=Ede Malayalami
+languages.mk=Ede Macedonia
+languages.so=ara Somalia
+languages.gd=Ede Gaelik ti Ilu Scotland
+languages.sl=Ede Slovenia
+languages.sk=Ede Slovaki
+languages.ga=Ede Ireland
+languages.yo=Yor\u00f9b\u00e1
+languages.si=Ede Sinhalese
+languages.sh=Serbo-Croatiani
+languages.yi=Yiddishi
+languages.sd=Sindhi
+languages.fy=Ede Frisia
+languages.sa=ede awon ara Indo
+languages.fr=\u00c8d\u00e8 Farans\u00e9
+languages.lv=Ede Latvianu
+languages.lt=Ede Lithuania
+languages.fo=Ede Faroesi
+languages.ru=Ede Roosia
+languages.lo=ara Laos
+languages.ln=Ta
+languages.fi=Finisi
+languages.ro=Ede Romania
+languages.fa=Ede Persia
+languages.la=Ede Latini
+languages.xh=Ede Xhosa
+languages.eu=Ede Baski
+languages.ky=Kyrgyz
+languages.et=Ede Estonia
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh.properties
index 1924cee..c761a60 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh.properties
@@ -5,265 +5,307 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-localPatternChars=GanjkHmsSEDFwWxhKzAeugXZ
-currenciesDisplayName.YDD=\u4e5f\u95e8\u7b2c\u7eb3\u5c14\u5143
-currenciesDisplayName.TWD=\u65b0\u53f0\u5e01
+decimalSeparator=.
+groupingSeparator=,
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+localPatternChars=GanjkHmsSEDFwWxhKzAeugXZvcL
+currenciesDisplayName.YDD=\u4e5f\u95e8\u7b2c\u7eb3\u5c14
currenciesDisplayName.KES=\u80af\u5c3c\u4e9a\u5148\u4ee4
-currenciesDisplayName.BYB=\u767d\u4fc4\u7f57\u65af\u65b0\u5362\u5e03 (1994-1999)
+currenciesDisplayName.TWD=\u65b0\u53f0\u5e01\u5143
currenciesDisplayName.LKR=\u65af\u91cc\u5170\u5361\u5362\u6bd4
-currenciesDisplayName.RWF=\u5362\u65fa\u8fbe\u6cd5\u90ce
+currenciesDisplayName.BYB=\u767d\u4fc4\u7f57\u65af\u65b0\u5362\u5e03 (1994-1999)
currenciesDisplayName.TJS=\u5854\u5409\u514b\u65af\u5766\u7d22\u83ab\u5c3c
-currenciesDisplayName.SDP=\u82cf\u4e39\u78c5
+currenciesDisplayName.RWF=\u5362\u65fa\u8fbe\u6cd5\u90ce
+currenciesDisplayName.ERN=\u5384\u7acb\u7279\u91cc\u4e9a\u7eb3\u514b\u6cd5
currenciesDisplayName.TJR=\u5854\u5409\u514b\u65af\u5766\u5362\u5e03
-currenciesDisplayName.ERN=\u5384\u7acb\u7279\u91cc\u4e9a\u7eb3\u798f\u5361
-currenciesDisplayName.AFN=\u963f\u5bcc\u6c57\u5c3c
+currenciesDisplayName.SDP=SDP
currenciesDisplayName.GRD=\u5e0c\u814a\u5fb7\u62c9\u514b\u9a6c
-currenciesDisplayName.IEP=\u7231\u5c14\u5170\u78c5
+currenciesDisplayName.AFN=\u963f\u5bcc\u6c57\u5c3c
+currenciesDisplayName.IEP=\u7231\u5c14\u5170\u9551
currenciesDisplayName.ARS=\u963f\u6839\u5ef7\u6bd4\u7d22
-currenciesDisplayName.SDD=\u82cf\u4e39\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.SDG=\u82cf\u4e39\u9551
currenciesDisplayName.ARP=\u963f\u6839\u5ef7\u6bd4\u7d22 (1983-1985)
-currenciesDisplayName.GEL=\u4e54\u6cbb\u4e9a\u5e93\u84ec\u62c9\u745e
-currenciesDisplayName.AFA=\u963f\u5bcc\u6c57\u5c3c (1927-2002)
+currenciesDisplayName.SDD=\u82cf\u4e39\u7b2c\u7eb3\u5c14
+currenciesDisplayName.GEL=\u4e54\u6cbb\u4e9a\u62c9\u745e
currenciesDisplayName.GEK=\u4e54\u6cbb\u4e9a\u5e93\u84ec\u62c9\u745e\u7279
-currenciesDisplayName.CRC=\u54e5\u65af\u8fbe\u9ece\u52a0\u79d1\u9686
-currenciesDisplayName.FKP=\u798f\u514b\u5170\u7fa4\u5c9b\u78c5
+currenciesDisplayName.AFA=\u963f\u5bcc\u6c57\u5c3c (1927-2002)
+currenciesDisplayName.CRC=\u54e5\u65af\u8fbe\u9ece\u52a0\u79d1\u6717
+currenciesDisplayName.FKP=\u798f\u514b\u5170\u9551
currenciesDisplayName.EEK=\u7231\u6c99\u5c3c\u4e9a\u514b\u6717
+currenciesDisplayName.MDL=\u6469\u5c14\u591a\u74e6\u5217\u4f0a
currenciesDisplayName.HKD=\u6e2f\u5143
-currenciesDisplayName.MDL=\u5357\u7279\u5e02\u5217\u4f0a
+currenciesDisplayName.IQD=\u4f0a\u62c9\u514b\u7b2c\u7eb3\u5c14
currenciesDisplayName.ARA=\u963f\u6839\u5ef7\u5965\u65af\u7279
-currenciesDisplayName.IQD=\u4f0a\u62c9\u514b\u7b2c\u7eb3\u5c14\u5143
currenciesDisplayName.SCR=\u585e\u820c\u5c14\u5362\u6bd4
-currenciesDisplayName.VUV=\u74e6\u52aa\u963f\u56fe
+currenciesDisplayName.VUV=\u74e6\u52aa\u963f\u56fe\u74e6\u56fe
+currenciesDisplayName.KPW=\u671d\u9c9c\u5706
currenciesDisplayName.DKK=\u4e39\u9ea6\u514b\u6717
-currenciesDisplayName.KPW=\u5317\u671d\u9c9c\u5e01
-currenciesDisplayName.GQE=\u8d64\u9053\u51e0\u5185\u4e9a\u7231\u514b\u5a01\u4e50
currenciesDisplayName.IDR=\u5370\u5ea6\u5c3c\u897f\u4e9a\u76fe
-currenciesDisplayName.LVR=\u62c9\u8131\u7ef4\u4e9a\u5362\u5e03
+currenciesDisplayName.GQE=\u8d64\u9053\u51e0\u5185\u4e9a\u57c3\u594e\u52d2
currenciesDisplayName.SOS=\u7d22\u9a6c\u91cc\u5148\u4ee4
+currenciesDisplayName.LVR=\u62c9\u8131\u7ef4\u4e9a\u5362\u5e03
+currenciesDisplayName.EQE=\u57c3\u594e\u52d2
currenciesDisplayName.AED=\u963f\u8054\u914b\u8fea\u62c9\u59c6
-currenciesDisplayName.BWP=\u6ce2\u6e23\u90a3\u6251\u62c9
currenciesDisplayName.LVL=\u62c9\u8131\u7ef4\u4e9a\u62c9\u7279
+currenciesDisplayName.BWP=\u535a\u8328\u74e6\u7eb3\u666e\u62c9
currenciesDisplayName.RUR=\u4fc4\u56fd\u5362\u5e03 (1991-1998)
-currenciesDisplayName.NIO=\u5c3c\u52a0\u62c9\u74dc\u91d1\u54e5\u591a\u534e
-currenciesDisplayName.ADP=\u5b89\u9053\u5c14\u6bd4\u585e\u5854\u5143
-currenciesDisplayName.FJD=\u6590\u6d4e\u5143
+currenciesDisplayName.NIO=\u5c3c\u52a0\u62c9\u74dc\u91d1\u79d1\u591a\u5df4
+currenciesDisplayName.XTS=\u4e3a\u6d4b\u8bd5\u4fdd\u7559\u7684\u4ee3\u7801
currenciesDisplayName.MOP=\u6fb3\u95e8\u5143
+currenciesDisplayName.FJD=\u6590\u6d4e\u5143
+currenciesDisplayName.ADP=\u5b89\u9053\u5c14\u6bd4\u585e\u5854
currenciesDisplayName.RUB=\u4fc4\u56fd\u5362\u5e03
currenciesDisplayName.CDF=\u521a\u679c\u6cd5\u90ce
currenciesDisplayName.NIC=\u5c3c\u52a0\u62c9\u74dc\u79d1\u591a\u5df4
currenciesDisplayName.DJF=\u5409\u5e03\u63d0\u6cd5\u90ce
+currenciesDisplayName.UZS=\u4e4c\u5179\u522b\u514b\u65af\u82cf\u59c6
currenciesDisplayName.SBD=\u6240\u7f57\u95e8\u7fa4\u5c9b\u5143
-currenciesDisplayName.UZS=\u4e4c\u5179\u522b\u514b\u65af\u5766\u5e01
+currenciesDisplayName.ECV=\u5384\u74dc\u591a\u5c14 Unidad de Valor Constante (UVC)
+currenciesDisplayName.LUL=\u5362\u68ee\u5821\u91d1\u878d\u6cd5\u90ce
currenciesDisplayName.ECS=\u5384\u74dc\u591a\u5c14\u82cf\u514b\u96f7
-currenciesDisplayName.PHP=\u83f2\u5f8b\u5bbe\u6bd4\u7d22
currenciesDisplayName.THB=\u6cf0\u94e2
+currenciesDisplayName.PHP=\u83f2\u5f8b\u5bbe\u6bd4\u7d22
currenciesDisplayName.LUF=\u5362\u68ee\u5821\u6cd5\u90ce
-currenciesDisplayName.FIM=\u82ac\u5170\u739b\u5361
+currenciesDisplayName.RHD=\u7f57\u5f97\u897f\u4e9a\u5143
+currenciesDisplayName.LUC=\u5362\u68ee\u5821\u53ef\u5151\u6362\u6cd5\u90ce
+currenciesDisplayName.FIM=\u82ac\u5170\u9a6c\u514b
currenciesDisplayName.TTD=\u7279\u7acb\u5c3c\u8fbe\u548c\u591a\u5df4\u54e5\u5143
-currenciesDisplayName.SZL=\u65af\u5a01\u58eb\u5170\u5e01
+currenciesDisplayName.SZL=\u65af\u5a01\u58eb\u5170\u91cc\u5170\u5409\u5c3c
currenciesDisplayName.MNT=\u8499\u53e4\u56fe\u683c\u91cc\u514b
-currenciesDisplayName.SAR=\u6c99\u7279\u91cc\u4e9a\u5c14
currenciesDisplayName.UAK=\u4e4c\u514b\u5170\u5e01
-currenciesDisplayName.UAH=\u4e4c\u514b\u5170\u8d6b\u91cc\u7eb3
-currenciesDisplayName.HUF=\u5308\u7259\u5229\u7f36\u745e\u7279
-currenciesDisplayName.COP=\u54e5\u4f26\u6bd4\u4e9a\u6bd4\u7d22
+currenciesDisplayName.SAR=\u6c99\u7279\u91cc\u4e9a\u5c14
+currenciesDisplayName.UAH=\u4e4c\u514b\u5170\u683c\u91cc\u592b\u5c3c\u4e9a
+currenciesDisplayName.HUF=\u5308\u7259\u5229\u798f\u6797
currenciesDisplayName.QAR=\u5361\u5854\u5c14\u91cc\u4e9a\u5c14
+currenciesDisplayName.COP=\u54e5\u4f26\u6bd4\u4e9a\u6bd4\u7d22
currenciesDisplayName.LTT=\u7acb\u9676\u5b9b\u5854\u54af\u5450\u53f8
-currenciesDisplayName.PTE=\u8461\u8404\u7259\u94c3\u6728
-currenciesDisplayName.AOR=\u5b89\u6208\u62c9\u5bbd\u624e Reajustado (1995-1999)
+currenciesDisplayName.PTE=\u8461\u8404\u7259\u57c3\u65af\u5e93\u591a
currenciesDisplayName.UYU=\u4e4c\u62c9\u572d\u6bd4\u7d22
-currenciesDisplayName.GBP=\u82f1\u78c5
-currenciesDisplayName.BIF=\u5e03\u9686\u8fea\u6cd5\u90ce
+currenciesDisplayName.AOR=\u5b89\u54e5\u62c9\u5bbd\u624e Reajustado (1995-1999)
+currenciesDisplayName.GBP=\u82f1\u9551
+currenciesDisplayName.ZRZ=\u624e\u4f0a\u5c14
currenciesDisplayName.INR=\u5370\u5ea6\u5362\u6bd4
-currenciesDisplayName.ZRZ=\u624e\u4f0a\u5c14\u5143
-currenciesDisplayName.AON=\u5b89\u6208\u62c9\u65b0\u5bbd\u624e (1990-2000)
-currenciesDisplayName.LTL=\u7acb\u9676\u5b9b\u5229\u5854
-currenciesDisplayName.KZT=\u54c8\u8428\u514b\u817e\u989d
-currenciesDisplayName.MZM=\u83ab\u6851\u6bd4\u514b\u5e01
-currenciesDisplayName.UYP=\u4e4c\u62c9\u572d\u6bd4\u7d22 (1975-1993)
-currenciesDisplayName.AOK=\u5b89\u6208\u62c9\u5bbd\u624e (1977-1990)
+currenciesDisplayName.BIF=\u5e03\u9686\u8fea\u6cd5\u90ce
+currenciesDisplayName.XFU=\u6cd5\u56fd UIC \u6cd5\u90ce
+currenciesDisplayName.MZN=\u83ab\u6851\u6bd4\u514b\u7f8e\u63d0\u5361
+currenciesDisplayName.LTL=\u7acb\u9676\u5b9b\u7acb\u7279
+currenciesDisplayName.AON=\u5b89\u54e5\u62c9\u65b0\u5bbd\u624e (1990-2000)
+currenciesDisplayName.UYP=\u4e4c\u62c9\u572d\u65b0\u6bd4\u7d22 (1975-1993)
+currenciesDisplayName.MZM=\u83ab\u6851\u6bd4\u514b\u6885\u8482\u5361\u5c14
+currenciesDisplayName.KZT=\u54c8\u8428\u514b\u65af\u5766\u575a\u6208
+currenciesDisplayName.AOK=\u5b89\u54e5\u62c9\u5bbd\u624e (1977-1990)
+currenciesDisplayName.GNS=\u51e0\u5185\u4e9a\u897f\u91cc
currenciesDisplayName.BUK=\u7f05\u5143
-currenciesDisplayName.GNS=\u51e0\u5185\u4e9aSyli
currenciesDisplayName.XFO=\u6cd5\u56fd\u91d1\u6cd5\u90ce
currenciesDisplayName.PGK=\u5df4\u5e03\u4e9a\u65b0\u51e0\u5185\u4e9a\u57fa\u90a3
-currenciesDisplayName.SYP=\u53d9\u5229\u4e9a\u78c5
+currenciesDisplayName.SYP=\u53d9\u5229\u4e9a\u9551
+currenciesDisplayName.OMR=\u963f\u66fc\u91cc\u4e9a\u5c14
currenciesDisplayName.MZE=\u83ab\u6851\u6bd4\u514b\u57c3\u65af\u5e93\u591a
-currenciesDisplayName.OMR=\u963f\u66fc\u91cc\u5c14
-currenciesDisplayName.NGN=\u5c3c\u65e5\u5229\u4e9a\u5948\u62c9.
-currenciesDisplayName.ZRN=\u65b0\u624e\u4f0a\u5c14\u5143
-currenciesDisplayName.AOA=\u5b89\u6208\u62c9\u5bbd\u624e
+currenciesDisplayName.ZRN=\u65b0\u624e\u4f0a\u5c14
+currenciesDisplayName.NGN=\u5c3c\u65e5\u5229\u4e9a\u5948\u62c9
currenciesDisplayName.CNY=\u4eba\u6c11\u5e01
+currenciesDisplayName.AOA=\u5b89\u54e5\u62c9\u5bbd\u624e
currenciesDisplayName.MAF=\u6469\u6d1b\u54e5\u6cd5\u90ce
+currenciesDisplayName.RSD=\u585e\u5c14\u7ef4\u4e9a\u7b2c\u7eb3\u5c14
currenciesDisplayName.GNF=\u51e0\u5185\u4e9a\u6cd5\u90ce
-currenciesDisplayName.HTG=\u6d77\u5730\u53e4\u5fb7
currenciesDisplayName.MAD=\u6469\u6d1b\u54e5\u8fea\u62c9\u59c6
+currenciesDisplayName.HTG=\u6d77\u5730\u53e4\u5fb7
currenciesDisplayName.TRY=\u65b0\u571f\u8033\u5176\u91cc\u62c9
currenciesDisplayName.MMK=\u7f05\u7538\u5f00\u4e9a\u7279
-currenciesDisplayName.MYR=\u9a6c\u6765\u897f\u4e9a\u5e01
-currenciesDisplayName.LSL=\u83b1\u7d22\u6258
+currenciesDisplayName.XRE=RINET \u57fa\u91d1
+currenciesDisplayName.MYR=\u9a6c\u6765\u897f\u4e9a\u6797\u5409\u7279
+currenciesDisplayName.LSM=\u9a6c\u6d1b\u8482
currenciesDisplayName.XEU=\u6b27\u6d32\u8d27\u5e01\u5355\u4f4d
-currenciesDisplayName.BHD=\u5df4\u6797\u7b2c\u7eb3\u5c14\u5143
-currenciesDisplayName.SLL=\u8d5b\u62c9\u91cc\u6602\u5e01
+currenciesDisplayName.LSL=\u83b1\u7d22\u6258\u6d1b\u8482
+currenciesDisplayName.SLL=\u585e\u62c9\u5229\u6602\u5229\u6602
+currenciesDisplayName.BHD=\u5df4\u6797\u7b2c\u7eb3\u5c14
currenciesDisplayName.BTN=\u4e0d\u4e39\u52aa\u624e\u59c6
currenciesDisplayName.TRL=\u571f\u8033\u5176\u91cc\u62c9
currenciesDisplayName.KMF=\u79d1\u6469\u7f57\u6cd5\u90ce
-currenciesDisplayName.ANG=\u8377\u5170\u5b89\u66ff\u5170\u76fe
currenciesDisplayName.CZK=\u6377\u514b\u514b\u90ce
-currenciesDisplayName.KYD=\u5f00\u66fc\u5c9b\u5143
+currenciesDisplayName.ANG=\u8377\u5170\u5b89\u66ff\u5170\u76fe
+currenciesDisplayName.AZN=\u963f\u585e\u62dc\u7586\u9a6c\u7eb3\u7279
+currenciesDisplayName.AZM=\u963f\u585e\u62dc\u7586\u9a6c\u7eb3\u7279 (1993-2006)
+currenciesDisplayName.KYD=\u5f00\u66fc\u5143
currenciesDisplayName.GMD=\u5188\u6bd4\u4e9a\u8fbe\u62c9\u897f
-currenciesDisplayName.BGN=\u4fdd\u52a0\u5229\u4e9a\u65b0\u5217\u514b
+currenciesDisplayName.VEF=Venezuelan Bolivar Fuerte
+currenciesDisplayName.BGN=\u4fdd\u52a0\u5229\u4e9a\u65b0\u5217\u5f17
+currenciesDisplayName.MXV=\u58a8\u897f\u54e5 Unidad de Inversion (UDI)\uff08\u8d44\u91d1\uff09
currenciesDisplayName.CAD=\u52a0\u62ff\u5927\u5143
-currenciesDisplayName.BGL=\u4fdd\u52a0\u5229\u4e9a\u786c\u5217\u514b
-currenciesDisplayName.VEB=\u5185\u745e\u62c9\u535a\u5229\u74e6
+currenciesDisplayName.BGL=\u4fdd\u52a0\u5229\u4e9a\u786c\u5217\u5f17
+currenciesDisplayName.VEB=\u59d4\u5185\u745e\u62c9\u535a\u5229\u74e6
currenciesDisplayName.MLF=\u9a6c\u91cc\u6cd5\u90ce
-currenciesDisplayName.ILS=\u4ee5\u8272\u5217\u65b0\u8c22\u5ba2\u5c14
currenciesDisplayName.MXP=\u58a8\u897f\u54e5\u94f6\u6bd4\u7d22 (1861-1992)
-currenciesDisplayName.PES=\u79d8\u9c81\u7d22\u989d
-currenciesDisplayName.GYD=\u572d\u4e9a\u90a3\u5143
+currenciesDisplayName.ILS=\u4ee5\u8272\u5217\u65b0\u8c22\u514b\u5c14
+currenciesDisplayName.PES=\u79d8\u9c81\u7d22\u5c14
currenciesDisplayName.MXN=\u58a8\u897f\u54e5\u6bd4\u7d22
-currenciesDisplayName.ILP=\u4ee5\u8272\u5217\u78c5
-currenciesDisplayName.SKK=\u65af\u6d1b\u4f10\u514b\u79d1\u8def\u90a3
-currenciesDisplayName.CYP=\u585e\u6d66\u8def\u65af\u78c5
+currenciesDisplayName.GYD=\u572d\u4e9a\u90a3\u5143
+currenciesDisplayName.ILP=\u4ee5\u8272\u5217\u9551
+currenciesDisplayName.CYP=\u585e\u6d66\u8def\u65af\u9551
+currenciesDisplayName.SKK=\u65af\u6d1b\u4f10\u514b\u514b\u6717
currenciesDisplayName.XDR=\u7279\u522b\u63d0\u6b3e\u6743
-currenciesDisplayName.PEN=\u79d8\u9c81\u7d22\u989d\u5974\u827e\u631d
+currenciesDisplayName.PEN=\u79d8\u9c81\u65b0\u7d22\u5c14
currenciesDisplayName.LRD=\u5229\u6bd4\u4e9a\u5143
-currenciesDisplayName.PEI=\u79d8\u9c81\u56e0\u8482
+currenciesDisplayName.PEI=\u79d8\u9c81\u5370\u7b2c
currenciesDisplayName.AMD=\u4e9a\u7f8e\u5c3c\u4e9a\u5fb7\u62c9\u59c6
currenciesDisplayName.BSD=\u5df4\u54c8\u9a6c\u5143
-currenciesDisplayName.HRK=\u514b\u7f57\u5730\u4e9a\u5e93\u5a1c\u5143
-currenciesDisplayName.CLP=\u667a\u5229 \u6bd4\u7d22
-currenciesDisplayName.HRD=\u514b\u7f57\u5730\u4e9a\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.XPT=\u94c2
+currenciesDisplayName.HRK=\u514b\u7f57\u5730\u4e9a\u5e93\u7eb3
+currenciesDisplayName.CLP=\u667a\u5229\u6bd4\u7d22
+currenciesDisplayName.HRD=\u514b\u7f57\u5730\u4e9a\u7b2c\u7eb3\u5c14
+currenciesDisplayName.XPF=\u592a\u5e73\u6d0b\u6cd5\u90ce
currenciesDisplayName.FRF=\u6cd5\u56fd\u6cd5\u90ce
+currenciesDisplayName.XPD=\u94af
currenciesDisplayName.BRR=\u5df4\u897f\u514b\u9c81\u585e\u7f57
-currenciesDisplayName.MKD=\u9a6c\u5176\u987f\u6234\u7eb3
-currenciesDisplayName.CLF=\u667a\u5229 Unidades de Fomento
+currenciesDisplayName.MKD=\u9a6c\u5176\u987f\u6234\u4ee3\u7eb3\u5c14
+currenciesDisplayName.CLF=\u667a\u5229 Unidades de Fomento\uff08\u8d44\u91d1\uff09
currenciesDisplayName.ALL=\u963f\u5c14\u5df4\u5c3c\u4e9a\u5217\u514b
-currenciesDisplayName.BRN=\u5df4\u897f\u514b\u9c81\u585e\u7f57 Cruzado Novo
-currenciesDisplayName.MWK=\u9a6c\u62c9\u7ef4\u5938\u6070
-currenciesDisplayName.BRL=\u5df4\u897f\u91cc\u5c14
+currenciesDisplayName.BRN=\u5df4\u897f\u514b\u9c81\u624e\u591a Novo
+currenciesDisplayName.MWK=\u9a6c\u62c9\u7ef4\u514b\u74e6\u67e5
+currenciesDisplayName.BRL=\u5df4\u897f\u96f7\u4e9a\u5c14
currenciesDisplayName.TPE=\u5e1d\u6c76\u57c3\u65af\u5e93\u591a
currenciesDisplayName.BRE=\u5df4\u897f\u514b\u9c81\u585e\u7f57 (1990-1993)
-currenciesDisplayName.BRC=\u5df4\u897f\u514b\u9c81\u585e\u7f57
-currenciesDisplayName.BRB=\u5df4\u897f\u514b\u9c81\u8d5b\u7f57 (1967-1986)
+currenciesDisplayName.BRC=\u5df4\u897f\u514b\u9c81\u624e\u591a
+currenciesDisplayName.BRB=\u5df4\u897f\u514b\u9c81\u8d5b\u7f57 Novo (1967-1986)
currenciesDisplayName.DEM=\u5fb7\u56fd\u9a6c\u514b
-currenciesDisplayName.KWD=\u79d1\u5a01\u7279\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.KWD=\u79d1\u5a01\u7279\u7b2c\u7eb3\u5c14
currenciesDisplayName.XCD=\u4e1c\u52a0\u52d2\u6bd4\u5143
currenciesDisplayName.NPR=\u5c3c\u6cca\u5c14\u5362\u6bd4
-currenciesDisplayName.GWP=\u51e0\u5185\u4e9a\u6bd4\u7d22
-currenciesDisplayName.YUN=\u5357\u65af\u62c9\u592b\u5151\u6362\u7b2c\u7eb3\u5c14\u5143
-currenciesDisplayName.SVC=\u8428\u5c14\u74e6\u591a\u79d1\u6d1b\u6d85
-currenciesDisplayName.YUM=\u5357\u65af\u62c9\u592b\u504c\u5a01\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.GWP=\u51e0\u5185\u4e9a\u6bd4\u7ecd\u6bd4\u7d22
+currenciesDisplayName.YUN=\u5357\u65af\u62c9\u592b\u53ef\u5151\u6362\u7b2c\u7eb3\u5c14
+currenciesDisplayName.SVC=\u8428\u5c14\u74e6\u591a\u79d1\u6717
+currenciesDisplayName.YUM=\u5357\u65af\u62c9\u592b\u504c\u5a01\u7b2c\u7eb3\u5c14
currenciesDisplayName.BEL=\u6bd4\u5229\u65f6\u6cd5\u90ce\uff08\u91d1\u878d\uff09
-currenciesDisplayName.SIT=\u65af\u6d1b\u6587\u5c3c\u4e9a\u6dd8\u62c9
+currenciesDisplayName.SIT=\u65af\u6d1b\u6587\u5c3c\u4e9a\u6258\u62c9\u5c14
currenciesDisplayName.JPY=\u65e5\u5143
-currenciesDisplayName.MVR=\u9a6c\u5c14\u4ee3\u592b\u7fa4\u5c9b\u82a6\u83f2\u4e9a
-currenciesDisplayName.GWE=\u8461\u8404\u7259\u51e0\u5185\u4e9a\u57c3\u65af\u5e93\u591a
+currenciesDisplayName.XOF=\u975e\u6d32\u91d1\u878d\u5171\u540c\u4f53\u6cd5\u90ce
+currenciesDisplayName.MVR=\u9a6c\u5c14\u4ee3\u592b\u62c9\u83f2\u4e9a
currenciesDisplayName.BEF=\u6bd4\u5229\u65f6\u6cd5\u90ce
-currenciesDisplayName.TOP=\u6c64\u52a0\u5e01
-currenciesDisplayName.YUD=\u5357\u65af\u62c9\u592b\u786c\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.GWE=\u8461\u8404\u7259\u51e0\u5185\u4e9a\u57c3\u65af\u5e93\u591a
+currenciesDisplayName.TOP=\u6c64\u52a0\u6f58\u52a0
+currenciesDisplayName.YUD=\u5357\u65af\u62c9\u592b\u786c\u7b2c\u7eb3\u5c14
currenciesDisplayName.BEC=\u6bd4\u5229\u65f6\u6cd5\u90ce\u5151\u6362\u5238
currenciesDisplayName.SUR=\u82cf\u8054\u5362\u5e03
-currenciesDisplayName.ROL=\u7f57\u9a6c\u5c3c\u4e9a\u956d
+currenciesDisplayName.RON=\u7f57\u9a6c\u5c3c\u4e9a\u5217\u4f0a
+currenciesDisplayName.ROL=\u65e7\u7f57\u9a6c\u5c3c\u4e9a\u5217\u4f0a
+currenciesDisplayName.BDT=\u5b5f\u52a0\u62c9\u5854\u5361
currenciesDisplayName.DDM=\u4e1c\u5fb7\u5965\u65af\u7279\u9a6c\u514b
-currenciesDisplayName.BDT=\u5b5f\u52a0\u62c9\u8fbe\u5361
+currenciesDisplayName.XBD=\u6b27\u6d32\u8ba1\u7b97\u5355\u4f4d (XBD)
currenciesDisplayName.AWG=\u963f\u9c81\u5df4\u57fa\u5c14\u5fb7\u5143
-currenciesDisplayName.XBB=\u6b27\u6d32\u91d1\u878d\u5355\u4f4d
+currenciesDisplayName.XBC=\u6b27\u6d32\u8ba1\u7b97\u5355\u4f4d (XBC)
+currenciesDisplayName.XBB=\u6b27\u6d32\u8d27\u5e01\u8054\u76df
currenciesDisplayName.XBA=\u6b27\u6d32\u590d\u5408\u5355\u4f4d
currenciesDisplayName.NOK=\u632a\u5a01\u514b\u6717
currenciesDisplayName.MUR=\u6bdb\u91cc\u6c42\u65af\u5362\u6bd4
currenciesDisplayName.ZAR=\u5357\u975e\u5170\u7279
-currenciesDisplayName.SHP=\u5723\u8d6b\u52d2\u62ff\u78c5
+currenciesDisplayName.SHP=\u5723\u8d6b\u52d2\u62ff\u7fa4\u5c9b\u78c5
currenciesDisplayName.XAU=\u9ec4\u91d1
currenciesDisplayName.ZAL=\u5357\u975e\u5170\u7279 (\u91d1\u878d)
currenciesDisplayName.VND=\u8d8a\u5357\u76fe
currenciesDisplayName.TZS=\u5766\u6851\u5c3c\u4e9a\u5148\u4ee4
-currenciesDisplayName.GIP=\u76f4\u5e03\u7f57\u9640\u78c5
-currenciesDisplayName.TND=\u7a81\u5c3c\u65af\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.GIP=\u76f4\u5e03\u7f57\u9640\u9551
+currenciesDisplayName.TND=\u7a81\u5c3c\u65af\u7b2c\u7eb3\u5c14
currenciesDisplayName.CVE=\u4f5b\u5f97\u89d2\u57c3\u65af\u5e93\u591a
currenciesDisplayName.UGX=\u4e4c\u5e72\u8fbe\u5148\u4ee4
-currenciesDisplayName.ZMK=\u8d5e\u6bd4\u4e9a\u9a6c\u62c9\u7ef4
-currenciesDisplayName.JOD=\u7ea6\u65e6\u7b2c\u7eb3\u5c14\u5143
-currenciesDisplayName.LBP=\u9ece\u5df4\u5ae9\u78c5
+currenciesDisplayName.XAG=\u94f6
+currenciesDisplayName.ZMK=\u8d5e\u6bd4\u4e9a\u514b\u74e6\u67e5
+currenciesDisplayName.JOD=\u7ea6\u65e6\u7b2c\u7eb3\u5c14
+currenciesDisplayName.XAF=\u4e2d\u975e\u91d1\u878d\u5408\u4f5c\u6cd5\u90ce
+currenciesDisplayName.LBP=\u9ece\u5df4\u5ae9\u9551
currenciesDisplayName.UGS=\u4e4c\u5e72\u8fbe\u5148\u4ee4 (1966-1987)
-currenciesDisplayName.STD=\u5723\u591a\u7f8e\u666e\u6797\u897f\u6bd4\u90fd\u6bd4\u62c9
+currenciesDisplayName.STD=\u5723\u591a\u7f8e\u548c\u666e\u6797\u897f\u6bd4\u591a\u5e03\u62c9
currenciesDisplayName.WST=\u897f\u8428\u6469\u4e9a\u5854\u62c9
-currenciesDisplayName.KHR=\u67ec\u57d4\u5be8\u91cc\u5c14
-currenciesDisplayName.EUR=\u6b27\u5143
+currenciesDisplayName.KHR=\u67ec\u57d4\u5be8\u745e\u5c14
currenciesDisplayName.DOP=\u591a\u7c73\u5c3c\u52a0\u6bd4\u7d22
-currenciesDisplayName.MTP=\u9a6c\u5c14\u4ed6\u78c5
-currenciesDisplayName.USS=\u7f8e\u5143 (\u540c\u4e00\u5929)
+currenciesDisplayName.EUR=\u6b27\u5143
+currenciesDisplayName.BOV=\u73bb\u5229\u7ef4\u4e9a Mvdol\uff08\u8d44\u91d1\uff09
+currenciesDisplayName.MTP=\u9a6c\u8033\u4ed6\u9551
+currenciesDisplayName.USS=\u7f8e\u5143\uff08\u5f53\u65e5\uff09
currenciesDisplayName.BOP=\u73bb\u5229\u7ef4\u4e9a\u6bd4\u7d22
-currenciesDisplayName.MTL=\u9a6c\u5c14\u4ed6\u91cc\u62c9
currenciesDisplayName.CUP=\u53e4\u5df4\u6bd4\u7d22
-currenciesDisplayName.TMM=\u571f\u5e93\u66fc\u65af\u5766\u5e01
-currenciesDisplayName.USN=\u7f8e\u5143 (\u4e0b\u4e00\u5929)
+currenciesDisplayName.MTL=\u9a6c\u8033\u4ed6\u91cc\u62c9
+currenciesDisplayName.TMM=\u571f\u5e93\u66fc\u65af\u5766\u9a6c\u7eb3\u7279
+currenciesDisplayName.USN=\u7f8e\u5143\uff08\u6b21\u65e5\uff09
+currenciesDisplayName.GHS=\u52a0\u7eb3\u585e\u8fea
currenciesDisplayName.SGD=\u65b0\u52a0\u5761\u5143
currenciesDisplayName.NZD=\u65b0\u897f\u5170\u5143
currenciesDisplayName.USD=\u7f8e\u5143
-currenciesDisplayName.HNL=\u6d2a\u90fd\u62c9\u65af\u52d2\u76ae\u62c9
-currenciesDisplayName.BOB=\u73bb\u5229\u7ef4\u4e9a
+currenciesDisplayName.BOB=\u73bb\u5229\u7ef4\u4e9a\u8bfa
+currenciesDisplayName.HNL=\u6d2a\u90fd\u62c9\u65af\u62c9\u4f26\u76ae\u62c9
currenciesDisplayName.ITL=\u610f\u5927\u5229\u91cc\u62c9
currenciesDisplayName.PAB=\u5df4\u62ff\u9a6c\u5df4\u6ce2\u4e9a
-currenciesDisplayName.GTQ=\u5371\u5730\u9a6c\u62c9
-currenciesDisplayName.LAK=\u8001\u631d\u57fa\u666e
-currenciesDisplayName.GHC=\u52a0\u7eb3\u585e\u7b2c
+currenciesDisplayName.GTQ=\u5371\u5730\u9a6c\u62c9\u683c\u67e5\u5c14
+currenciesDisplayName.XXX=\u8d27\u5e01\u672a\u77e5\u6216\u65e0\u6548
currenciesDisplayName.AUD=\u6fb3\u5927\u5229\u4e9a\u5143
+currenciesDisplayName.GHC=\u52a0\u7eb3\u585e\u7b2c
+currenciesDisplayName.LAK=\u8001\u631d\u57fa\u666e
currenciesDisplayName.NAD=\u7eb3\u7c73\u6bd4\u4e9a\u5143
-currenciesDisplayName.KGS=\u5409\u5c14\u5409\u65af\u5766\u8428\u59c6
+currenciesDisplayName.KGS=\u5409\u5c14\u5409\u65af\u65af\u5766\u7d22\u59c6
currenciesDisplayName.MGF=\u9a6c\u8fbe\u52a0\u65af\u52a0\u6cd5\u90ce
-currenciesDisplayName.CHF=\u745e\u58eb\u6cd5\u90ce
currenciesDisplayName.BBD=\u5df4\u5df4\u591a\u65af\u5143
-currenciesDisplayName.MGA=\u9a6c\u8fbe\u52a0\u65af\u52a0\u963f\u65e5\u745e
-currenciesDisplayName.PYG=\u5df4\u62c9\u572d\u5e01
+currenciesDisplayName.CHF=\u745e\u58eb\u6cd5\u90ce
+currenciesDisplayName.MGA=\u9a6c\u8fbe\u52a0\u65af\u52a0\u963f\u91cc\u4e9a\u91cc
+currenciesDisplayName.PYG=\u5df4\u62c9\u572d\u74dc\u62c9\u5c3c
currenciesDisplayName.PLZ=\u6ce2\u5170\u5179\u7f57\u63d0 (1950-1995)
-currenciesDisplayName.YER=\u4e5f\u95e8\u91cc\u5c14
-currenciesDisplayName.ATS=\u5965\u5730\u5229\u897f\u4ee4
+currenciesDisplayName.YER=\u4e5f\u95e8\u91cc\u4e9a\u5c14
+currenciesDisplayName.ATS=\u5965\u5730\u5229\u5148\u4ee4
currenciesDisplayName.ETB=\u57c3\u585e\u4fc4\u6bd4\u4e9a\u6bd4\u5c14
-currenciesDisplayName.BND=\u6c76\u83b1\u5143
+currenciesDisplayName.BND=\u6587\u83b1\u5143
+currenciesDisplayName.EGP=\u57c3\u53ca\u9551
currenciesDisplayName.JMD=\u7259\u4e70\u52a0\u5143
-currenciesDisplayName.EGP=\u57c3\u53ca\u78c5
currenciesDisplayName.PLN=\u6ce2\u5170\u5179\u7f57\u63d0
-currenciesDisplayName.DZD=\u963f\u5c14\u53ca\u5229\u4e9a\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.DZD=\u963f\u5c14\u53ca\u5229\u4e9a\u7b2c\u7eb3\u5c14
currenciesDisplayName.ISK=\u51b0\u5c9b\u514b\u6717
-currenciesDisplayName.SRG=\u82cf\u91cc\u5357\u57fa\u5c14
-currenciesDisplayName.LYD=\u5229\u6bd4\u4e9a\u7b2c\u7eb3\u5c14\u5143
-currenciesDisplayName.BZD=\u4f2f\u5229\u5179\u5143
+currenciesDisplayName.SRG=\u82cf\u91cc\u5357\u76fe
+currenciesDisplayName.LYD=\u5229\u6bd4\u4e9a\u7b2c\u7eb3\u5c14
+currenciesDisplayName.SRD=\u82cf\u91cc\u5357\u5143
currenciesDisplayName.BAM=\u6ce2\u58eb\u5c3c\u4e9a-\u8d6b\u585e\u54e5\u7ef4\u7eb3\u5151\u6362\u5238
-currenciesDisplayName.ESP=\u897f\u73ed\u7259\u9a6c\u8d5b\u5854
-currenciesDisplayName.KRW=\u97e9\u56fd\u5e01
+currenciesDisplayName.BZD=\u4f2f\u5229\u5179\u5143
+currenciesDisplayName.ESP=\u897f\u73ed\u7259\u6bd4\u585e\u5854
+currenciesDisplayName.KRW=\u97e9\u5706
currenciesDisplayName.NLG=\u8377\u5170\u76fe
-currenciesDisplayName.MRO=\u91cc\u5854\u5c3c\u4e9a\u4e4c\u5409\u4e9a
-currenciesDisplayName.BAD=\u6ce2\u58eb\u5c3c\u4e9a-\u8d6b\u585e\u54e5\u7ef4\u7eb3\u7b2c\u7eb3\u5c14\u5143
+currenciesDisplayName.MRO=\u6bdb\u91cc\u5854\u5c3c\u4e9a\u4e4c\u5409\u4e9a
+currenciesDisplayName.BAD=\u6ce2\u58eb\u5c3c\u4e9a-\u8d6b\u585e\u54e5\u7ef4\u7eb3\u7b2c\u7eb3\u5c14
currenciesDisplayName.ZWD=\u6d25\u5df4\u5e03\u97e6\u5143
-currenciesDisplayName.SEK=\u745e\u58eb\u514b\u6717
+currenciesDisplayName.SEK=\u745e\u5178\u514b\u6717
currenciesDisplayName.CSK=\u6377\u514b\u786c\u514b\u90ce
currenciesDisplayName.BYR=\u767d\u4fc4\u7f57\u65af\u5362\u5e03
-currenciesDisplayName.IRR=\u4f0a\u6717\u91cc\u4e9a \u5c14
+currenciesDisplayName.ESB=\u897f\u73ed\u7259\u6bd4\u585e\u5854\uff08\u5151\u6362\u5e10\u6237\uff09
+currenciesDisplayName.IRR=\u4f0a\u6717\u91cc\u4e9a\u5c14
+currenciesDisplayName.ESA=\u897f\u73ed\u7259\u6bd4\u585e\u5854\uff08\u5e10\u6237 A\uff09
currenciesDisplayName.PKR=\u5df4\u57fa\u65af\u5766\u5362\u6bd4
currenciesDisplayName.BMD=\u767e\u6155\u5927\u5143
-currenciesSymbol.TWD=NT$
-currenciesSymbol.ITL=ITL
-currenciesSymbol.JPY=JP\u00a5
-currenciesSymbol.SGD=S$
-currenciesSymbol.CNY=\uffe5
-currenciesSymbol.HKD=HK$
-currenciesSymbol.USD=US$
+currenciesDisplayName.CSD=\u65e7\u585e\u5c14\u7ef4\u4e9a\u7b2c\u7eb3\u5c14
currenciesSymbol.MOP=P
+currenciesSymbol.TWD=NT$
currenciesSymbol.SAR=SRl
+currenciesSymbol.HKD=HK$
+currenciesSymbol.SGD=S$
currenciesSymbol.KRW=\uffe6
-shortMonths=\u4e00\u6708®\u4e8c\u6708®\u4e09\u6708®\u56db\u6708®\u4e94\u6708®\u516d\u6708®\u4e03\u6708®\u516b\u6708®\u4e5d\u6708®\u5341\u6708®\u5341\u4e00\u6708®\u5341\u4e8c\u6708®®
-months=\u4e00\u6708®\u4e8c\u6708®\u4e09\u6708®\u56db\u6708®\u4e94\u6708®\u516d\u6708®\u4e03\u6708®\u516b\u6708®\u4e5d\u6708®\u5341\u6708®\u5341\u4e00\u6708®\u5341\u4e8c\u6708®®
-shortWeekdays=®\u5468\u65e5®\u5468\u4e00®\u5468\u4e8c®\u5468\u4e09®\u5468\u56db®\u5468\u4e94®\u5468\u516d®
-weekdays=®\u661f\u671f\u65e5®\u661f\u671f\u4e00®\u661f\u671f\u4e8c®\u661f\u671f\u4e09®\u661f\u671f\u56db®\u661f\u671f\u4e94®\u661f\u671f\u516d®
-eras=\u516c\u5143\u524d®\u516c\u5143®
-ampms=\u4e0a\u5348®\u4e0b\u5348®
-zoneStrings=America/Halifax®AST®\u5927\u897f\u6d0b\u6807\u51c6\u65f6\u95f4®ADT®\u5927\u897f\u6d0b\u590f\u4ee4\u65f6\u95f4®©America/Indianapolis®EST®\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4®EST®\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4®©Europe/Paris®CET®\u4e2d\u6b27\u6807\u51c6\u65f6\u95f4®CEST®\u4e2d\u6b27\u590f\u4ee4\u65f6\u95f4®©America/Phoenix®MST®\u5c71\u533a\u6807\u51c6\u65f6\u95f4®MST®\u5c71\u533a\u6807\u51c6\u65f6\u95f4®©America/Los_Angeles®PST®\u592a\u5e73\u6d0b\u6807\u51c6\u65f6\u95f4®PDT®\u592a\u5e73\u6d0b\u590f\u4ee4\u65f6\u95f4®©Pacific/Honolulu®HST®\u590f\u5a01\u5937\u6807\u51c6\u65f6\u95f4®HST®\u590f\u5a01\u5937\u6807\u51c6\u65f6\u95f4®©America/Denver®MST®\u5c71\u533a\u6807\u51c6\u65f6\u95f4®MDT®\u5c71\u533a\u590f\u4ee4\u65f6\u95f4®©Europe/Bucharest®EET®\u4e1c\u6b27\u6807\u51c6\u65f6\u95f4®EEST®\u4e1c\u6b27\u590f\u4ee4\u65f6\u95f4®©America/New_York®EST®\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4®EDT®\u4e1c\u90e8\u590f\u4ee4\u65f6\u95f4®©Asia/Tokyo®JST®\u65e5\u672c\u6807\u51c6\u65f6\u95f4®JST®\u65e5\u672c\u6807\u51c6\u65f6\u95f4®©America/Anchorage®AST®\u963f\u62c9\u65af\u52a0\u6807\u51c6\u65f6\u95f4®ADT®\u963f\u62c9\u65af\u52a0\u590f\u4ee4\u65f6\u95f4®©Asia/Shanghai®CTT®\u4e2d\u56fd\u6807\u51c6\u65f6\u95f4®CDT®\u4e2d\u56fd\u6807\u51c6\u65f6\u95f4®©America/Chicago®CST®\u4e2d\u592e\u6807\u51c6\u65f6\u95f4®CDT®\u4e2d\u592e\u590f\u4ee4\u65f6\u95f4®©Africa/Casablanca®GMT®\u683c\u6797\u5a01\u6cbb\u6807\u51c6\u65f6\u95f4®GMT®\u683c\u6797\u5a01\u6cbb\u6807\u51c6\u65f6\u95f4®©America/St_Johns®CNT®\u7ebd\u82ac\u5170\u6807\u51c6\u65f6\u95f4®CDT®\u7ebd\u82ac\u5170\u590f\u4ee4\u65f6\u95f4®©Asia/Jerusalem®IST®\u4ee5\u8272\u5217\u6807\u51c6\u65f6\u95f4®IDT®\u4ee5\u8272\u5217\u590f\u4ee4\u65f6\u95f4®©
+currenciesSymbol.CNY=\uffe5
+currenciesSymbol.ITL=ITL
+shortMonths=\u4e00\u6708\u00ae\u4e8c\u6708\u00ae\u4e09\u6708\u00ae\u56db\u6708\u00ae\u4e94\u6708\u00ae\u516d\u6708\u00ae\u4e03\u6708\u00ae\u516b\u6708\u00ae\u4e5d\u6708\u00ae\u5341\u6708\u00ae\u5341\u4e00\u6708\u00ae\u5341\u4e8c\u6708\u00ae\u00ae
+months=\u4e00\u6708\u00ae\u4e8c\u6708\u00ae\u4e09\u6708\u00ae\u56db\u6708\u00ae\u4e94\u6708\u00ae\u516d\u6708\u00ae\u4e03\u6708\u00ae\u516b\u6708\u00ae\u4e5d\u6708\u00ae\u5341\u6708\u00ae\u5341\u4e00\u6708\u00ae\u5341\u4e8c\u6708\u00ae\u00ae
+shortWeekdays=\u00ae\u5468\u65e5\u00ae\u5468\u4e00\u00ae\u5468\u4e8c\u00ae\u5468\u4e09\u00ae\u5468\u56db\u00ae\u5468\u4e94\u00ae\u5468\u516d\u00ae
+weekdays=\u00ae\u661f\u671f\u65e5\u00ae\u661f\u671f\u4e00\u00ae\u661f\u671f\u4e8c\u00ae\u661f\u671f\u4e09\u00ae\u661f\u671f\u56db\u00ae\u661f\u671f\u4e94\u00ae\u661f\u671f\u516d\u00ae
+eras=\u516c\u5143\u524d\u00ae\u516c\u5143\u00ae
+ampms=\u4e0a\u5348\u00ae\u4e0b\u5348\u00ae
+shortDateFormat=yy-M-d
+mediumDateFormat=yyyy-M-d
+longDateFormat=yyyy\u5e74M\u6708d\u65e5
+fullDateFormat=yyyy\u5e74M\u6708d\u65e5EEEE
+shortTimeFormat=ah:mm
+mediumTimeFormat=ah:mm:ss
+longTimeFormat=zah\u65f6mm\u5206ss\u79d2
+fullTimeFormat=zah\u65f6mm\u5206ss\u79d2
+zoneStrings=Europe_Central\u00ae\u4e2d\u6b27\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e2d\u6b27\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Africa_Western\u00ae\u897f\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u5357\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u897f\u90e8\u975e\u6d32\u590f\u4ee4\u65f6\u95f4\u00ae\u897f\u90e8\u975e\u6d32\u6807\u51c6\u65f6\u95f4\u00ae\u00a9Urumqi\u00ae\u4e4c\u9c81\u6728\u9f50\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e4c\u9c81\u6728\u9f50\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Uralsk\u00ae\u4e4c\u62c9\u5c14\u65af\u514b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e4c\u62c9\u5c14\u65af\u514b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Novosibirsk\u00ae\u65b0\u897f\u4f2f\u5229\u4e9e\u6642\u9593\u00ae\u00ae\u65b0\u897f\u4f2f\u5229\u4e9e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Irkutsk\u00ae\u4f0a\u723e\u5eab\u8328\u514b\u6642\u9593\u00ae\u00ae\u4f0a\u723e\u5eab\u8328\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Borneo\u00ae\u5a46\u7f57\u6d32\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5a46\u7f57\u6d32\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u6fb3\u5927\u5229\u4e9a\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e1c\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e1c\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Aqtau\u00ae\u963f\u514b\u56fe\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u514b\u56fe\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Kazakhstan_Western\u00ae\u54c8\u8428\u514b\u65af\u5766\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00ae\u65af\u7ef4\u5c14\u5fb7\u6d1b\u592b\u65af\u514b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u65af\u7ef4\u5c14\u5fb7\u6d1b\u592b\u65af\u514b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Bangladesh\u00ae\u5b5f\u52a0\u62c9\u6807\u51c6\u65f6\u95f4\u00ae\u5b5f\u52a0\u62c9\u590f\u4ee4\u65f6\u95f4\u00ae\u5b5f\u52a0\u62c9\u590f\u4ee4\u65f6\u95f4\u00aeBDT\u00ae\u00a9Samarkand\u00ae\u6492\u9a6c\u5c14\u7f55\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u6492\u9a6c\u5c14\u7f55\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Long_Shu\u00aeLong-Shu \u6807\u51c6\u65f6\u95f4\u00ae\u00aeLong-Shu \u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Singapore\u00ae\u65b0\u52a0\u5761\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00ae\u963f\u585e\u62dc\u7586\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u585e\u62dc\u7586\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Amazon\u00ae\u4e9a\u9a6c\u900a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e9a\u9a6c\u900a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Arabian\u00ae\u963f\u62c9\u4f2f\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u62c9\u4f2f\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Yekaterinburg\u00ae\u53f6\u5361\u6377\u7433\u5821\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u53f6\u5361\u6377\u7433\u5821\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Alaska\u00ae\u963f\u62c9\u65af\u52a0\u6807\u51c6\u65f6\u95f4\u00ae\u963f\u62c9\u65af\u52a0\u6807\u51c6\u65f6\u95f4\u00ae\u963f\u62c9\u65af\u52a0\u590f\u4ee4\u65f6\u95f4\u00ae\u963f\u62c9\u65af\u52a0\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Qyzylorda\u00ae\u514b\u5b5c\u52d2\u5965\u5c14\u8fbe\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u514b\u5b5c\u52d2\u5965\u5c14\u8fbe\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Gulf\u00ae\u6d77\u6e7e\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Dutch_Guiana\u00ae\u8377\u5c5e\u572d\u4e9a\u90a3\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u8377\u5c5e\u572d\u4e9a\u90a3\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Omsk\u00ae\u9102\u6728\u65af\u514b\u6642\u9593\u00ae\u00ae\u9102\u6728\u65af\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Hong_Kong\u00ae\u9999\u6e2f\u6642\u9593\u00ae\u00ae\u9999\u6e2f\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u5370\u5ea6\u5c3c\u897f\u4e9a\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u5370\u5ea6\u5c3c\u897f\u4e9a\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Vladivostok\u00ae\u6d77\u53c3\u5d34\u6642\u9593\u00ae\u00ae\u6d77\u53c3\u5d34\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Aqtobe\u00ae\u963f\u514b\u6258\u522b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u514b\u6258\u522b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Chamorro\u00ae\u67e5\u83ab\u7f57\u6807\u51c6\u65f6\u533a\u00ae\u67e5\u83ab\u7f57\u6807\u51c6\u65f6\u533a\u00ae\u00ae\u00ae\u00a9Kizilorda\u00aeKizilorda \u6807\u51c6\u65f6\u95f4\u00ae\u00aeKizilorda \u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Armenia\u00ae\u4e9a\u7f8e\u5c3c\u4e9a\u6807\u51c6\u65f6\u95f4\u00aeAMST (Armenia)\u00ae\u4e9a\u7f8e\u5c3c\u4e9a\u590f\u4ee4\u65f6\u95f4\u00aeAMDT (Armenia)\u00ae\u00a9America_Pacific\u00ae\u592a\u5e73\u6d0b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u592a\u5e73\u6d0b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Almaty\u00aeAlmaty \u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u62c9\u6728\u56fe\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Tajikistan\u00ae\u5854\u5409\u514b\u65af\u5766\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5854\u5409\u514b\u65af\u5766\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Anadyr\u00ae\u963f\u7d0d\u5fb7\u723e\u6642\u9593\u00ae\u00ae\u963f\u7d0d\u5fb7\u723e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9French_Guiana\u00ae\u6cd5\u5c6c\u572d\u4e9e\u90a3\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00ae\u590f\u5a01\u5937\u2014\u963f\u7559\u7533\u6807\u51c6\u65f6\u95f4\u00ae\u590f\u5a01\u5937\u2014\u963f\u7559\u7533\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00a9Nepal\u00ae\u5c3c\u6cca\u723e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Brunei\u00ae\u6c76\u840a\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u675c\u5c1a\u522b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u675c\u5c1a\u522b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Yerevan\u00ae\u57c3\u91cc\u6e29\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u57c3\u91cc\u6e29\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Paraguay\u00ae\u5df4\u62c9\u572d\u6642\u9593\u00ae\u00ae\u5df4\u62c9\u572d\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Israel\u00ae\u4ee5\u8272\u5217\u6807\u51c6\u65f6\u95f4\u00aeIST (Israel)\u00ae\u4ee5\u8272\u5217\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Greenland_Western\u00ae\u683c\u6797\u5170\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u683c\u6797\u5170\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u4e1c\u6b27\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e1c\u6b27\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9North_Mariana\u00ae\u5317\u9a6c\u91cc\u4e9a\u7eb3\u7fa4\u5c9b\u65f6\u95f4\u00ae\u00ae\u5317\u9a6c\u91cc\u4e9a\u7eb3\u7fa4\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Newfoundland\u00ae\u7ebd\u82ac\u5170\u6807\u51c6\u65f6\u95f4\u00ae\u7ebd\u82ac\u5170\u6807\u51c6\u65f6\u95f4\u00ae\u7ebd\u82ac\u5170\u590f\u4ee4\u65f6\u95f4\u00ae\u7ebd\u82ac\u5170\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Australia_Western\u00ae\u6fb3\u5927\u5229\u4e9a\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Moscow\u00ae\u83ab\u65af\u79d1\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u83ab\u65af\u79d1\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Kyrgystan\u00aeKyrgystan \u6807\u51c6\u65f6\u95f4\u00ae\u00aeKyrgystan \u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Venezuela\u00ae\u59d4\u5167\u745e\u62c9\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00ae\u9a6c\u6765\u4e9a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u9a6c\u6765\u4e9a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Peru\u00ae\u79d8\u9b6f\u6642\u9593\u00ae\u00ae\u79d8\u9b6f\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Korea\u00ae\u97e9\u56fd\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u97e9\u56fd\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Argentina_Western\u00ae\u963f\u6839\u5ef7\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u6839\u5ef7\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u4e1c\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u4e1c\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00ae\u571f\u5e93\u66fc\u65af\u5766\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u571f\u5e93\u66fc\u65af\u5766\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Pierre_Miquelon\u00ae\u5f7c\u5f97\u5c9b\u548c\u7c73\u514b\u9686\u5c9b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5f7c\u5f97\u5c9b\u548c\u7c73\u514b\u9686\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Atlantic\u00ae\u5927\u897f\u6d0b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5927\u897f\u6d0b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u963f\u62c9\u65af\u52a0\uff0d\u590f\u5a01\u5937\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u62c9\u65af\u52a0\uff0d\u590f\u5a01\u5937\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Uzbekistan\u00ae\u4e4c\u5179\u522b\u514b\u65af\u5766\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e4c\u5179\u522b\u514b\u65af\u5766\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Lord_Howe\u00ae\u7f57\u5fb7\u6beb\u5c9b\u6807\u51c6\u65f6\u95f4\u00ae\u7f57\u5fb7\u6beb\u5c9b\u6807\u51c6\u65f6\u95f4\u00ae\u7f57\u5fb7\u6beb\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Hovd\u00ae\u79d1\u5e03\u591a\u6642\u9593\u00ae\u00ae\u79d1\u5e03\u591a\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Tbilisi\u00ae\u7b2c\u6bd4\u5229\u65af\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u7b2c\u6bd4\u5229\u65af\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Malaysia\u00ae\u9a6c\u6765\u897f\u4e9a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u9a6c\u6765\u897f\u4e9a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Baku\u00ae\u5df4\u5e93\u6807\u51c6\u65f6\u95f4\u00ae\u5df4\u5e93\u65f6\u95f4\u00ae\u5df4\u5e93\u590f\u4ee4\u65f6\u95f4\u00ae\u5df4\u5e93\u6807\u51c6\u65f6\u95f4\u00ae\u00a9America_Eastern\u00ae\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e1c\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Noronha\u00ae\u723e\u5357\u591a-\u8fea\u8afe\u7f85\u5c3c\u4e9e\u5cf6\u6642\u9593\u00ae\u00ae\u723e\u5357\u591a-\u8fea\u8afe\u7f85\u5c3c\u4e9e\u5cf6\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Afghanistan\u00ae\u963f\u5bcc\u6c57\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Samoa\u00ae\u8428\u6469\u4e9a\u6807\u51c6\u65f6\u95f4\u00ae\u745e\u5178\u590f\u4ee4\u65f6\u95f4\u00ae\u8428\u6469\u4e9a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Europe/London\u00ae\u00ae\u00ae\u00aeBST\u00ae\u00a9Ecuador\u00ae\u5384\u74dc\u591a\u5c14\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00ae\u963f\u514b\u91cc\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u514b\u91cc\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Dacca\u00ae\u8fbe\u5361\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u8fbe\u5361\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Choibalsan\u00ae\u4e54\u5df4\u5c71\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e54\u5df4\u5c71\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Europe_Western\u00ae\u6b27\u6d32\u897f\u90e8\u65f6\u95f4\u00ae\u6b27\u6d32\u897f\u90e8\u65f6\u95f4\u00ae\u6b27\u6d32\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u6b27\u6d32\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Africa_Central\u00ae\u4e2d\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u4e2d\u90e8\u975e\u6d32\u65f6\u95f4\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u571f\u8033\u5176\u65f6\u95f4\u00ae\u571f\u8033\u5176\u65f6\u95f4\u00ae\u571f\u8033\u5176\u590f\u4ee4\u65f6\u95f4\u00ae\u571f\u8033\u5176\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Africa_Southern\u00ae\u5357\u90e8\u975e\u6d32\u6807\u51c6\u65f6\u95f4\u00ae\u5357\u90e8\u975e\u6d32\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00ae\u963f\u4ec0\u54c8\u5df4\u5fb7\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u4ec0\u54c8\u5df4\u5fb7\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Bering\u00ae\u767d\u4ee4\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u767d\u4ee4\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Guam\u00ae\u5173\u5c9b\u6807\u51c6\u65f6\u95f4\u00ae\u5173\u5c9b\u6807\u51c6\u65f6\u95f4\u00ae\u5173\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u5173\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Marshall_Islands\u00ae\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u65f6\u95f4\u00ae\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u65f6\u95f4\u00ae\u9a6c\u7ecd\u5c14\u7fa4\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Bhutan\u00ae\u4e0d\u4e39\u6807\u51c6\u65f6\u95f4\u00ae\u5b5f\u52a0\u62c9\u6807\u51c6\u65f6\u95f4\u00ae\u4e0d\u4e39\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Changbai\u00ae\u957f\u767d\u5c71\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Sakhalin\u00ae\u5eab\u9801\u5cf6\u6642\u9593\u00ae\u00ae\u5eab\u9801\u5cf6\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Karachi\u00ae\u5361\u62c9\u5947\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5361\u62c9\u5947\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Tashkent\u00ae\u5854\u4ec0\u5e72\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5854\u4ec0\u5e72\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Philippines\u00ae\u83f2\u5f8b\u8cd3\u6642\u9593\u00ae\u00ae\u83f2\u5f8b\u8cd3\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9East_Timor\u00ae\u4e1c\u5e1d\u6c76\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e1c\u5e1d\u6c76\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Yakutsk\u00ae\u96c5\u5eab\u8328\u514b\u6642\u9593\u00ae\u00ae\u96c5\u5eab\u8328\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Iran\u00ae\u4f0a\u6717\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u4f0a\u6717\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Argentina\u00ae\u963f\u6839\u5ef7\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u6839\u5ef7\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Yukon\u00ae\u80b2\u7a7a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u80b2\u7a7a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9New_Zealand\u00ae\u65b0\u897f\u5170\u6807\u51c6\u65f6\u95f4\u00ae\u65b0\u897f\u5170\u6807\u51c6\u65f6\u95f4\u00ae\u65b0\u897f\u5170\u590f\u4ee4\u65f6\u95f4\u00ae\u65b0\u897f\u5170\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Magadan\u00ae\u99ac\u52a0\u4e39\u6642\u9593\u00ae\u00ae\u99ac\u52a0\u4e39\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9China\u00ae\u4e2d\u56fd\u6807\u51c6\u65f6\u95f4\u00aeCST\uff08\u4e2d\u56fd\uff09\u00ae\u4e2d\u56fd\u590f\u4ee4\u65f6\u95f4\u00aeCDT\uff08\u4e2d\u56fd\uff09\u00ae\u00a9Indonesia_Central\u00ae\u5370\u5ea6\u5c3c\u897f\u4e9a\u4e2d\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u5c71\u533a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5c71\u533a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9India\u00ae\u5370\u5ea6\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00ae\u82cf\u91cc\u5357\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u8607\u5229\u5357\u590f\u4ee4\u6642\u9593\u00ae\u00a9GMT\u00ae\u683c\u6797\u5c3c\u6cbb\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u8428\u9a6c\u62c9\u65f6\u95f4\u00ae\u8428\u9a6c\u62c9\u65f6\u95f4\u00ae\u8428\u9a6c\u62c9\u590f\u4ee4\u65f6\u95f4\u00ae\u8428\u9a6c\u62c9\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Uruguay\u00ae\u70cf\u62c9\u572d\u6642\u9593\u00ae\u00ae\u70cf\u62c9\u572d\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Chile\u00ae\u667a\u5229\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u667a\u5229\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Brasilia\u00ae\u5df4\u897f\u5229\u4e9a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5df4\u897f\u5229\u4e9a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Australia_CentralWestern\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u897f\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u897f\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Kazakhstan_Eastern\u00ae\u54c8\u8428\u514b\u65af\u5766\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00ae\u4e4c\u5170\u5df4\u6258\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e4c\u5170\u5df4\u6258\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9America_Central\u00ae\u4e2d\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4e2d\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Frunze\u00ae\u4f0f\u9f99\u829d\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u4f0f\u9f99\u829d\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Lanka\u00aeLanka \u6807\u51c6\u65f6\u95f4\u00ae\u00aeLanka \u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Kuybyshev\u00ae\u53e4\u6bd4\u96ea\u592b\u65f6\u95f4\u00ae\u53e4\u6bd4\u96ea\u592b\u65f6\u95f4\u00ae\u53e4\u6bd4\u96ea\u592b\u590f\u4ee4\u65f6\u95f4\u00ae\u53e4\u6bd4\u96ea\u592b\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Greenland_Eastern\u00ae\u683c\u6797\u5170\u4e1c\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u683c\u6797\u5170\u4e1c\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Azores\u00ae\u4e9a\u8ff0\u5c14\u7fa4\u5c9b\u65f6\u95f4\u00ae\u4e9a\u8ff0\u5c14\u7fa4\u5c9b\u65f6\u95f4\u00ae\u4e9a\u8ff0\u5c14\u7fa4\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u4e9a\u8ff0\u5c14\u7fa4\u5c9b\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Japan\u00ae\u65e5\u672c\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u65e5\u672c\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Greenland_Central\u00ae\u683c\u6797\u5170\u4e2d\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u683c\u6797\u5170\u4e2d\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Kwajalein\u00ae\u5938\u8d3e\u6797\u65f6\u95f4\u00ae\u5938\u8d3e\u6797\u65f6\u95f4\u00ae\u5938\u8d3e\u6797\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Shevchenko\u00ae\u820d\u752b\u7434\u79d1\u65f6\u95f4\u00ae\u00ae\u820d\u752b\u7434\u79d1\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Pakistan\u00ae\u5df4\u57fa\u65af\u5766\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u5df4\u57fa\u65af\u5766\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Bolivia\u00ae\u73bb\u5229\u7dad\u4e9e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Kashgar\u00ae\u5580\u4ec0\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u90e8\u6807\u51c6\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u6fb3\u5927\u5229\u4e9a\u4e2d\u90e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Guyana\u00ae\u84cb\u4e9e\u90a3\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Georgia\u00ae\u683c\u9c81\u5409\u4e9a\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u683c\u9c81\u5409\u4e9a\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Colombia\u00ae\u54e5\u502b\u6bd4\u4e9e\u6642\u9593\u00ae\u00ae\u54e5\u502b\u6bd4\u4e9e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Galapagos\u00ae\u52a0\u62c9\u5e15\u6208\u65af\u65f6\u95f4\u00ae\u52a0\u62c9\u5e15\u6208\u65af\u65f6\u95f4\u00ae\u52a0\u62c9\u5e15\u6208\u65af\u590f\u4ee4\u65f6\u95f4\u00ae\u52a0\u62c9\u5e15\u54e5\u65af\u590f\u4ee4\u65f6\u95f4\u00ae\u00a9Cuba\u00ae\u53e4\u5df4\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u53e4\u5df4\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Myanmar\u00ae\u7dec\u7538\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Macau\u00ae\u6fb3\u95e8\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u6fb3\u95e8\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9Aktyubinsk\u00ae\u963f\u514b\u7ea6\u5bbe\u65af\u514b\u6807\u51c6\u65f6\u95f4\u00ae\u00ae\u963f\u514b\u7ea6\u5bbe\u65af\u514b\u590f\u4ee4\u65f6\u95f4\u00ae\u00ae\u00a9
territories.TL=\u4e1c\u5e1d\u6c76
territories.TK=\u6258\u514b\u52b3
territories.TJ=\u5854\u5409\u514b\u65af\u5766
territories.TH=\u6cf0\u56fd
territories.TG=\u591a\u54e5
-territories.TF=\u6cd5\u5c5e\u5357\u534a\u7403\u9886\u5730
+territories.TF=\u6cd5\u5c5e\u5357\u90e8\u9886\u571f
territories.GY=\u572d\u4e9a\u90a3
territories.TD=\u4e4d\u5f97
territories.TC=\u7279\u514b\u65af\u548c\u51ef\u79d1\u65af\u7fa4\u5c9b
@@ -282,10 +324,11 @@ territories.GL=\u683c\u9675\u5170
territories.SV=\u8428\u5c14\u74e6\u591a
territories.062=\u4e2d\u5357\u4e9a
territories.ST=\u5723\u591a\u7f8e\u548c\u666e\u6797\u897f\u6bd4
-territories.061=\u73bb\u91cc\u5c3c\u897f\u4e9a
territories.GI=\u76f4\u5e03\u7f57\u9640
+territories.061=\u73bb\u5229\u5c3c\u897f\u4e9a
territories.GH=\u52a0\u7eb3
territories.SR=\u82cf\u91cc\u5357
+territories.GG=\u683c\u6069\u897f\u5c9b
territories.GF=\u6cd5\u5c5e\u572d\u4e9a\u90a3
territories.GE=\u683c\u9c81\u5409\u4e9a
territories.SO=\u7d22\u9a6c\u91cc
@@ -302,30 +345,31 @@ territories.SH=\u5723\u8d6b\u52d2\u62ff
territories.SG=\u65b0\u52a0\u5761
territories.SE=\u745e\u5178
territories.SD=\u82cf\u4e39
-territories.SC=\u585e\u820c\u5c14
+territories.SC=\u585e\u820c\u5c14\u7fa4\u5c9b
territories.SB=\u6240\u7f57\u95e8\u7fa4\u5c9b
territories.SA=\u6c99\u7279\u963f\u62c9\u4f2f
territories.FR=\u6cd5\u56fd
-territories.057=\u5bc6\u514b\u7f57\u5c3c\u897f\u4e9a
territories.FO=\u6cd5\u7f57\u7fa4\u5c9b
+territories.057=\u5bc6\u514b\u7f57\u5c3c\u897f\u4e9a
territories.FM=\u5bc6\u514b\u7f57\u5c3c\u897f\u4e9a\u8054\u90a6
territories.RW=\u5362\u65fa\u8fbe
territories.054=\u7f8e\u62c9\u5c3c\u897f\u4e9a
-territories.053=\u6fb3\u5927\u5229\u4e9a\u548c\u65b0\u897f\u5170
territories.FK=\u798f\u514b\u5170\u7fa4\u5c9b
-territories.RU=\u4fc4\u7f57\u65af\u8054\u90a6
+territories.053=\u6fb3\u5927\u5229\u4e9a\u548c\u65b0\u897f\u5170
+territories.RU=\u4fc4\u7f57\u65af
territories.FJ=\u6590\u6d4e
territories.FI=\u82ac\u5170
+territories.RS=\u585e\u5c14\u7ef4\u4e9a
territories.RO=\u7f57\u9a6c\u5c3c\u4e9a
territories.RE=\u7559\u5c3c\u6c6a
territories.ET=\u57c3\u585e\u4fc4\u6bd4\u4e9a
territories.ES=\u897f\u73ed\u7259
territories.ER=\u5384\u7acb\u7279\u91cc\u4e9a
-territories.833=\u66fc\u5c9b
+territories.QU=\u6b27\u76df
territories.EH=\u897f\u6492\u54c8\u62c9
territories.EG=\u57c3\u53ca
-territories.830=\u6d77\u5ce1\u7fa4\u5c9b
territories.EE=\u7231\u6c99\u5c3c\u4e9a
+territories.830=\u6d77\u5ce1\u7fa4\u5c9b
territories.QO=\u5927\u6d0b\u6d32\u8fb9\u8fdc\u7fa4\u5c9b
territories.EC=\u5384\u74dc\u591a\u5c14
territories.DZ=\u963f\u5c14\u53ca\u5229\u4e9a
@@ -333,9 +377,10 @@ territories.QA=\u5361\u5854\u5c14
territories.039=\u5357\u6b27
territories.DO=\u591a\u7c73\u5c3c\u52a0\u5171\u548c\u56fd
territories.PY=\u5df4\u62c9\u572d
+territories.DM=\u591a\u7c73\u5c3c\u52a0
territories.035=\u4e1c\u5357\u4e9a
-territories.DM=\u591a\u7c73\u5c3c\u52a0\u5c98
territories.PW=\u5e15\u52b3
+territories.034=\u5357\u4e9a
territories.DK=\u4e39\u9ea6
territories.DJ=\u5409\u5e03\u63d0
territories.PT=\u8461\u8404\u7259
@@ -365,15 +410,16 @@ territories.CN=\u4e2d\u56fd
territories.CM=\u5580\u9ea6\u9686
territories.CL=\u667a\u5229
territories.CK=\u5e93\u514b\u7fa4\u5c9b
+territories.021=\u7f8e\u6d32\u5317\u90e8
territories.CI=\u8c61\u7259\u6d77\u5cb8
-territories.021=\u5317\u7f8e\u6d32
territories.CH=\u745e\u58eb
-territories.CG=\u521a\u679c
+territories.CG=\u521a\u679c\uff08\u5e03\uff09
territories.CF=\u4e2d\u975e\u5171\u548c\u56fd
-territories.CD=\u521a\u679c\u6c11\u4e3b\u5171\u548c\u56fd
+territories.CD=\u521a\u679c\uff08\u91d1\uff09
territories.CC=\u79d1\u79d1\u65af\u7fa4\u5c9b
territories.OM=\u963f\u66fc
territories.CA=\u52a0\u62ff\u5927
+territories.419=\u62c9\u4e01\u7f8e\u6d32\u548c\u52a0\u52d2\u6bd4\u6d77
territories.BZ=\u4f2f\u5229\u5179
territories.BY=\u767d\u4fc4\u7f57\u65af
territories.BW=\u535a\u8328\u74e6\u7eb3
@@ -382,31 +428,34 @@ territories.BT=\u4e0d\u4e39
territories.BS=\u5df4\u54c8\u9a6c
territories.BR=\u5df4\u897f
territories.019=\u7f8e\u6d32
-territories.018=\u5357\u975e
+territories.018=\u975e\u6d32\u5357\u90e8
territories.NZ=\u65b0\u897f\u5170
-territories.BO=\u73bb\u5229\u7ef4\u4e9a
territories.017=\u4e2d\u975e
+territories.BO=\u73bb\u5229\u7ef4\u4e9a
territories.BN=\u6587\u83b1
-territories.BM=\u767e\u6155\u5927
territories.015=\u5317\u975e
+territories.BM=\u767e\u6155\u5927
territories.014=\u4e1c\u975e
+territories.BL=\u5723\u5df4\u6cf0\u52d2\u7c73
territories.013=\u4e2d\u7f8e\u6d32
territories.NU=\u7ebd\u57c3
territories.BJ=\u8d1d\u5b81
-territories.BI=\u5e03\u9686\u8fea
territories.011=\u897f\u975e
+territories.BI=\u5e03\u9686\u8fea
+territories.172=\u72ec\u8054\u4f53
territories.BH=\u5df4\u6797
territories.NR=\u7459\u9c81
territories.BG=\u4fdd\u52a0\u5229\u4e9a
territories.BF=\u5e03\u57fa\u7eb3\u6cd5\u7d22
territories.NP=\u5c3c\u6cca\u5c14
territories.BE=\u6bd4\u5229\u65f6
+territories.ZZ=\u672a\u77e5\u6216\u65e0\u6548\u5730\u533a
territories.NO=\u632a\u5a01
territories.BD=\u5b5f\u52a0\u62c9\u56fd
territories.BB=\u5df4\u5df4\u591a\u65af
territories.ZW=\u6d25\u5df4\u5e03\u97e6
territories.NL=\u8377\u5170
-territories.BA=\u6ce2\u65af\u5c3c\u4e9a\u548c\u9ed1\u5c71\u5171\u548c\u56fd
+territories.BA=\u6ce2\u65af\u5c3c\u4e9a\u548c\u9ed1\u585e\u54e5\u7ef4\u90a3
territories.NI=\u5c3c\u52a0\u62c9\u74dc
territories.NG=\u5c3c\u65e5\u5229\u4e9a
territories.NF=\u8bfa\u798f\u514b\u5c9b
@@ -421,41 +470,44 @@ territories.AU=\u6fb3\u5927\u5229\u4e9a
territories.AT=\u5965\u5730\u5229
territories.AS=\u7f8e\u5c5e\u8428\u6469\u4e9a
territories.AR=\u963f\u6839\u5ef7
-territories.009=\u5927\u6d0b\u6d32
territories.AQ=\u5357\u6781\u6d32
+territories.009=\u5927\u6d0b\u6d32
territories.MZ=\u83ab\u6851\u6bd4\u514b
territories.AO=\u5b89\u54e5\u62c9
territories.MY=\u9a6c\u6765\u897f\u4e9a
territories.AN=\u8377\u5c5e\u5b89\u7684\u5217\u65af\u7fa4\u5c9b
territories.MX=\u58a8\u897f\u54e5
-territories.005=\u5357\u7f8e\u6d32
territories.AM=\u4e9a\u7f8e\u5c3c\u4e9a
+territories.005=\u5357\u7f8e\u6d32
territories.MW=\u9a6c\u62c9\u7ef4
territories.AL=\u963f\u5c14\u5df4\u5c3c\u4e9a
territories.MV=\u9a6c\u5c14\u4ee3\u592b
+territories.003=\u5317\u7f8e\u6d32
territories.ZA=\u5357\u975e
territories.MU=\u6bdb\u91cc\u6c42\u65af
territories.002=\u975e\u6d32
territories.MT=\u9a6c\u8033\u4ed6
-territories.001=\u4e16\u754c
territories.AI=\u5b89\u572d\u62c9
-territories.MS=\u8499\u7279\u585e\u62c9\u7fa4\u5c9b
+territories.001=\u4e16\u754c
+territories.MS=\u8499\u585e\u62c9\u7279\u7fa4\u5c9b
territories.MR=\u6bdb\u91cc\u5854\u5c3c\u4e9a
territories.AG=\u5b89\u63d0\u74dc\u548c\u5df4\u5e03\u8fbe
-territories.MQ=\u9a6c\u63d0\u5c3c\u514b\u5c9b
+territories.MQ=\u9a6c\u63d0\u5c3c\u514b\u7fa4\u5c9b
territories.AF=\u963f\u5bcc\u6c57
territories.MP=\u5317\u9a6c\u91cc\u4e9a\u7eb3\u7fa4\u5c9b
territories.AE=\u963f\u62c9\u4f2f\u8054\u5408\u914b\u957f\u56fd
-territories.MO=\u4e2d\u56fd\u6fb3\u95e8\u7279\u522b\u884c\u653f\u533a
+territories.MO=\u6fb3\u95e8\u5730\u533a
territories.AD=\u5b89\u9053\u5c14
territories.MN=\u8499\u53e4
territories.MM=\u7f05\u7538
territories.ML=\u9a6c\u91cc
-territories.MK=\u9a6c\u5176\u987f\u738b\u56fd
+territories.MK=\u9a6c\u5176\u987f
territories.YT=\u9a6c\u7ea6\u7279
territories.MH=\u9a6c\u7ecd\u5c14\u7fa4\u5c9b
territories.MG=\u9a6c\u8fbe\u52a0\u65af\u52a0
-territories.MD=\u6469\u5c14\u591a\u74e6\u5171\u548c\u56fd
+territories.MF=\u5723\u9a6c\u4e01
+territories.ME=\u9ed1\u5c71\u5171\u548c\u56fd
+territories.MD=\u6469\u5c14\u591a\u74e6
territories.MC=\u6469\u7eb3\u54e5
territories.MA=\u6469\u6d1b\u54e5
territories.YE=\u4e5f\u95e8
@@ -478,21 +530,23 @@ territories.KZ=\u54c8\u8428\u514b\u65af\u5766
territories.KY=\u5f00\u66fc\u7fa4\u5c9b
territories.KW=\u79d1\u5a01\u7279
territories.145=\u897f\u4e9a
+territories.143=\u4e2d\u4e9a
territories.142=\u4e9a\u6d32
territories.KR=\u97e9\u56fd
-territories.KP=\u5317\u671d\u9c9c
+territories.KP=\u671d\u9c9c
territories.KN=\u5723\u57fa\u8328\u548c\u5c3c\u7ef4\u65af
territories.KM=\u79d1\u6469\u7f57
territories.KI=\u57fa\u91cc\u5df4\u65af
territories.WS=\u8428\u6469\u4e9a
territories.KH=\u67ec\u57d4\u5be8
-territories.KG=\u5409\u5c14\u5409\u514b\u65af\u5766
+territories.KG=\u5409\u5c14\u5409\u65af\u65af\u5766
territories.KE=\u80af\u5c3c\u4e9a
territories.WF=\u74e6\u5229\u65af\u548c\u5bcc\u56fe\u7eb3
territories.JP=\u65e5\u672c
territories.JO=\u7ea6\u65e6
territories.JM=\u7259\u4e70\u52a0
territories.VU=\u74e6\u52aa\u963f\u56fe
+territories.JE=\u6cfd\u897f\u5c9b
territories.VN=\u8d8a\u5357
territories.VI=\u7f8e\u5c5e\u7ef4\u4eac\u7fa4\u5c9b
territories.VG=\u82f1\u5c5e\u7ef4\u4eac\u7fa4\u5c9b
@@ -507,6 +561,7 @@ territories.UZ=\u4e4c\u5179\u522b\u514b\u65af\u5766
territories.IO=\u82f1\u5c5e\u5370\u5ea6\u6d0b\u9886\u5730
territories.UY=\u4e4c\u62c9\u572d
territories.IN=\u5370\u5ea6
+territories.IM=\u66fc\u5c9b
territories.IL=\u4ee5\u8272\u5217
territories.US=\u7f8e\u56fd
territories.IE=\u7231\u5c14\u5170
@@ -522,78 +577,86 @@ territories.HN=\u6d2a\u90fd\u62c9\u65af
territories.HM=\u8d6b\u5fb7\u4e0e\u9ea6\u514b\u5510\u7eb3\u7fa4\u5c9b
territories.TW=\u53f0\u6e7e
territories.TV=\u56fe\u74e6\u5362
-territories.HK=\u4e2d\u56fd\u9999\u6e2f\u7279\u522b\u884c\u653f\u533a
+territories.HK=\u9999\u6e2f\u5730\u533a
territories.TT=\u7279\u7acb\u5c3c\u8fbe\u548c\u591a\u5df4\u54e5
territories.TR=\u571f\u8033\u5176
territories.TO=\u6c64\u52a0
territories.TN=\u7a81\u5c3c\u65af
territories.TM=\u571f\u5e93\u66fc\u65af\u5766
-languages.akk=\u963f\u5361\u5fb7\u6587
languages.gwi=\u5409\u7ef4\u514b\u7434\u6587
+languages.akk=\u963f\u5361\u5fb7\u6587
+languages.eka=\u57c3\u514b\u4e18\u514b\u6587
languages.ijo=\u4f0a\u4e54\u6587
-languages.xh=\u73ed\u56fe\u6587
+languages.xh=\u79d1\u8428\u6587
languages.sux=\u82cf\u9a6c\u6587
languages.sus=\u82cf\u82cf\u6587
-languages.mis=\u5404\u79cd\u4e0d\u540c\u8bed\u8a00
+languages.mis=\u5404\u79cd\u4e0d\u540c\u8bed\u7cfb
languages.loz=\u6d1b\u5179\u6587
languages.tog=\u6c64\u52a0\u6587\uff08\u5c3c\u4e9a\u8428\u5730\u533a\uff09
-languages.pon=\u6ce2\u90a3\u8d1d\u6587
+languages.pon=\u6ce2\u7eb3\u4f69\u6587
languages.min=\u7c73\u5357\u5361\u4fdd\u6587
languages.suk=\u82cf\u5e93\u9a6c\u6587
-languages.wo=\u6c83\u5c14\u592b\u6587
+languages.wo=\u6c83\u6d1b\u592b\u6587
+languages.lol=\u8292\u6208\u6587
languages.kut=\u5e93\u7279\u5185\u6587
-languages.lol=\u8499\u53e4\u6587
languages.mic=\u7c73\u514b\u9a6c\u514b\u6587
-languages.wa=\u83ef\u9686\u6587
+languages.wa=\u74e6\u9686\u6587
languages.kum=\u5e93\u6885\u514b\u6587
languages.zap=\u8428\u6ce2\u8482\u514b\u6587
+languages.ain=\u963f\u4f0a\u52aa\u6587
languages.cus=\u5176\u4ed6\u5e93\u65bd\u7279\u8bed\u7cfb
-languages.doi=\u591a\u683c\u6765\u6587
-languages.jbo=\u6d1b\u5409\u822c\uff08\u4eba\u5de5\u8bed\u8a00\uff09
+languages.jbo=\u903b\u8f91\u6587
+languages.doi=\u591a\u683c\u62c9\u6587
+languages.zza=\u624e\u624e\u6587
languages.vo=\u6c83\u62c9\u666e\u514b\u6587
languages.oto=\u5965\u6258\u7c73\u8bed\u7cfb
languages.vi=\u8d8a\u5357\u6587
languages.vai=\u74e6\u4f0a\u6587
languages.rar=\u62c9\u7f57\u6c64\u52a0\u6587
languages.ve=\u6587\u8fbe\u6587
-languages.rap=\u62c9\u5e15\u52aa\u6587
+languages.rap=\u62c9\u5e15\u52aa\u4f0a\u6587
languages.raj=\u62c9\u8d3e\u65af\u5766\u6587
languages.ota=\u5965\u6258\u66fc\u571f\u8033\u5176\u6587
-languages.nzi=\u5c3c\u5179\u739b\u6587
+languages.nzi=\u6069\u6d4e\u9a6c\u6587
languages.nap=\u62ff\u6ce2\u91cc\u6587
languages.uz=\u4e4c\u5179\u522b\u514b\u6587
languages.uga=\u4e4c\u52a0\u91cc\u7279\u6587
-languages.tmh=\u5854\u739b\u538d\u514b\u6587
+languages.tmh=\u5854\u9a6c\u5947\u514b\u6587
languages.nai=\u5176\u4ed6\u5317\u7f8e\u5370\u7b2c\u5b89\u8bed\u7cfb
languages.nah=\u7eb3\u74e6\u7279\u5c14\u6587
languages.ur=\u4e4c\u5c14\u90fd\u6587
languages.fat=\u82b3\u8482\u6587
languages.uk=\u4e4c\u514b\u5170\u6587
+languages.egy=\u53e4\u57c3\u53ca\u6587
+languages.zxx=\u65e0\u8bed\u8a00\u5185\u5bb9
languages.ug=\u7ef4\u543e\u5c14\u6587
languages.fan=\u82b3\u683c\u6587
-languages.ssa=\u5176\u4ed6\u5c3c\u7f57\u8428\u54c8\u5170\u6587
-languages.bat=\u6ce2\u7f57\u7684\u6d77\u5730\u533a\u4e4b\u8bed\u8a00
+languages.ssa=\u975e\u6d32\u6492\u54c8\u62c9\u6c99\u6f20\u8fb9\u7f18\u5730\u5e26\u8bed\u8a00
languages.mga=\u4e2d\u53e4\u7231\u5c14\u5170\u6587
-languages.nyo=\u5c3c\u7ea6\u7f57\u8bed\u65cf
+languages.bat=\u5176\u4ed6\u6ce2\u7f57\u7684\u8bed\u7cfb
+languages.nyo=\u5c3c\u7ea6\u7f57\u6587
languages.bas=\u5df4\u8428\u6587
languages.nyn=\u5c3c\u6602\u79d1\u52d2\u6587
languages.nym=\u5c3c\u4e9a\u59c6\u97e6\u9f50\u6587
+languages.gsw=\u745e\u58eb\u5fb7\u6587
languages.hmn=\u8d6b\u8499\u6587
languages.ban=\u5df4\u91cc\u6587
-languages.osa=\u5965\u8428\u54f2\u6587
+languages.osa=\u5965\u8428\u683c\u6587
languages.bal=\u4ffe\u8def\u652f\u6587
languages.ty=\u5854\u897f\u63d0\u6587
-languages.bai=\u5df4\u7c73\u7d2f\u514b\u6587
-languages.tw=\u53f0\u6e7e\u6587
+languages.bai=\u5df4\u7c73\u7d2f\u514b\u8bed\u7cfb
+languages.tw=\u7279\u5a01\u6587
languages.srr=\u8c22\u5217\u5c14\u6587
languages.tli=\u7279\u6797\u5409\u7279\u6587
-languages.tt=\u9791\u977c\u6587
-languages.ts=\u7279\u677e\u52a0\u6587
+languages.tlh=\u514b\u6797\u8d21\u6587
+languages.tt=\u5854\u5854\u5c14\u6587
+languages.ts=\u5b97\u52a0\u6587
+languages.srn=Sranan Tongo\uff08\u6e90\u4e8e\u514b\u91cc\u5965\u5c14\u8bed\uff09
languages.bad=\u73ed\u8fbe\u6587
languages.tr=\u571f\u8033\u5176\u6587
languages.to=\u6c64\u52a0\u6587
-languages.tn=\u7a81\u5c3c\u65af\u6587
-languages.tl=\u5854\u52a0\u8def\u65cf\u6587
+languages.tn=\u585e\u8328\u74e6\u7eb3\u6587
+languages.tl=\u5854\u52a0\u6d1b\u8bed
languages.tk=\u571f\u5e93\u66fc\u6587
languages.ti=\u63d0\u683c\u91cc\u5c3c\u4e9a\u6587
languages.th=\u6cf0\u6587
@@ -601,72 +664,79 @@ languages.kru=\u5e93\u9c81\u514b\u6587
languages.tg=\u5854\u5409\u514b\u6587
languages.byn=\u5e03\u6797\u6587
languages.te=\u6cf0\u5362\u56fa\u6587
-languages.csb=\u5361\u8212\u6587
languages.kro=\u514b\u9c81\u6587
+languages.csb=\u5361\u8212\u6587
languages.ta=\u6cf0\u7c73\u5c14\u6587
-languages.tkl=\u9640\u514b\u5a04\u6587
+languages.krl=\u5361\u7d2f\u5229\u4e9a\u8bed
+languages.tkl=\u6258\u514b\u52b3\u6587
+languages.efi=\u57c3\u83f2\u514b\u6587
languages.sw=\u65af\u74e6\u5e0c\u91cc\u6587
languages.sv=\u745e\u5178\u6587
-languages.su=\u82cf\u4e39\u6587
-languages.krc=\u5361\u62c9\u5361\u5c14\u5e15\u514b\u6587
+languages.su=\u5dfd\u4ed6\u8bed
+languages.krc=\u5361\u62c9\u6070\u4f0a\u5df4\u5c14\u5361\u5c14\u6587
languages.st=\u585e\u7d22\u6258\u6587
-languages.ss=\u8f9b\u8f9b\u90a3\u63d0\u6587
+languages.ss=\u65af\u74e6\u7279\u6587
languages.sr=\u585e\u5c14\u7ef4\u4e9a\u6587
languages.sq=\u963f\u5c14\u5df4\u5c3c\u4e9a\u6587
languages.men=\u95e8\u8fea\u6587
-languages.crp=\u514b\u91cc\u5965\u5c14\u8bed\u548c\u76ae\u94a6\u6587
+languages.crp=\u5176\u4ed6\u514b\u91cc\u5965\u5c14\u6df7\u5408\u8bed\u7cfb
languages.so=\u7d22\u9a6c\u91cc\u6587
languages.afh=\u963f\u5f17\u91cc\u5e0c\u5229\u6587
-languages.sn=\u585e\u5185\u52a0\u5c14\u6587
+languages.sn=\u7ecd\u7eb3\u6587
languages.sm=\u8428\u6469\u4e9a\u6587
languages.sl=\u65af\u6d1b\u6587\u5c3c\u4e9a\u6587
languages.grc=\u53e4\u5e0c\u814a\u6587
languages.sk=\u65af\u6d1b\u4f10\u514b\u6587
languages.grb=\u683c\u5217\u535a\u6587
languages.si=\u50e7\u4f3d\u7f57\u6587
-languages.sh=\u585e\u6ce2\u5c3c\u65af-\u514b\u7f57\u5730\u4e9a\u6587
-languages.afa=\u5176\u4ed6\u4e9a\u975e\u8bed\u7cfb
+languages.sh=\u585e\u5c14\u7ef4\u4e9a-\u514b\u7f57\u5730\u4e9a\u6587
languages.crh=\u514b\u91cc\u7c73\u4e9a\u571f\u8033\u5176\u6587\uff1b\u514b\u91cc\u7c73\u4e9a\u5854\u5854\u6587
+languages.afa=\u5176\u4ed6\u4e9a\u975e\u8bed\u7cfb
languages.sg=\u6851\u6208\u6587
-languages.se=\u5317\u8428\u8ff7\u6587
-languages.sd=\u82cf\u4e39\u6587
+languages.se=\u5317\u8428\u7c73\u6587
+languages.sd=\u4fe1\u5fb7\u6587
languages.udm=\u4e4c\u5fb7\u7a46\u5c14\u7279\u6587
languages.sc=\u8428\u4e01\u6587
languages.sa=\u68b5\u6587
languages.rw=\u5362\u65fa\u8fbe\u6587
+languages.nwc=\u5c3c\u74e6\u5c14\u6587 Classical Newari
languages.ru=\u4fc4\u6587
languages.mdr=\u66fc\u8fbe\u5c14
languages.ro=\u7f57\u9a6c\u5c3c\u4e9a\u6587
languages.rn=\u57fa\u9686\u8fea\u6587
-languages.rm=\u91cc\u6258\u7f57\u66fc\u65af\u6587
+languages.rm=\u5217\u6258\uff0d\u7f57\u66fc\u6587
+languages.fr_CH=\u745e\u58eb\u6cd5\u8bed
languages.mdf=\u83ab\u514b\u6c99\u6587
languages.tiv=\u8482\u592b\u6587
+languages.fr_CA=\u52a0\u62ff\u5927\u6cd5\u8bed
languages.ady=\u963f\u8fea\u4f55\u6587
languages.zun=\u7956\u5c3c\u8bed
languages.kpe=\u514b\u4f69\u5217\u6587
languages.qu=\u76d6\u4e18\u4e9a\u6587
languages.tig=\u63d0\u683c\u96f7\u6587
languages.son=\u6851\u6d77\u6587
-languages.cpp=\u4e0d\u7eaf\u7cb9\u4e4b\u8461\u56fd\u65b9\u8a00
-languages.sog=\u7d22\u683c\u8fea\u4e9a\u6587
+languages.cpp=\u5176\u4ed6\u4ee5\u8461\u8404\u7259\u6587\u4e3a\u57fa\u7840\u7684\u514b\u91cc\u5965\u5c14\u6df7\u5408\u8bed\u7cfb
+languages.rup=\u4e9a\u7f8e\u5c3c\u4e9a\u8bed
+languages.sog=\u53e4\u7c9f\u7279\u6587
languages.ada=\u963f\u5f53\u6885\u6587
-languages.cpf=\u4e0d\u7eaf\u7cb9\u4e4b\u6cd5\u56fd\u65b9\u8a00
-languages.hit=\u897f\u53f0\u6587
-languages.kos=\u67ef\u53f8\u745e\u6069\u6587
-languages.cpe=\u4e0d\u7eaf\u7cb9\u4e4b\u82f1\u56fd\u65b9\u8a00
+languages.kos=\u79d1\u65af\u62c9\u4f0a\u6587
+languages.hit=\u8d6b\u68af\u6587
+languages.cpf=\u5176\u4ed6\u4ee5\u6cd5\u6587\u4e3a\u57fa\u7840\u7684\u514b\u91cc\u5965\u5c14\u6df7\u5408\u8bed\u7cfb
+languages.cpe=\u5176\u4ed6\u4ee5\u82f1\u6587\u4e3a\u57fa\u7840\u7684\u514b\u91cc\u5965\u5c14\u6df7\u5408\u8bed\u7cfb
languages.him=\u8d6b\u9a6c\u67e5\u5229\u6587
-languages.got=\u54e5\u8fbe\u6587
-languages.hil=\u5e0c\u5229\u76d6\u519c\u6587
languages.kok=\u521a\u5361\u5c3c\u6587
+languages.hil=\u5e0c\u5229\u76d6\u519c\u6587
+languages.got=\u54e5\u7279\u6587
languages.gor=\u79d1\u6d1b\u6d85\u8fbe\u7f57\u6587
languages.gon=\u5c97\u5fb7\u6587
languages.din=\u4e01\u5361\u6587
-languages.nub=\u52aa\u6bd4\u4e9a\u6587
+languages.nub=\u52aa\u6bd4\u4e9a\u8bed\u7cfb
languages.pt=\u8461\u8404\u7259\u6587
languages.ps=\u666e\u4ec0\u56fe\u6587
languages.fur=\u5f17\u7559\u5229\u6587
-languages.phn=\u8153\u5229\u57fa\u6587
-languages.goh=\u53e4\u4ee3\u9ad8\u5730\u5fb7\u6587
+languages.phn=\u8153\u5c3c\u57fa\u6587
+languages.de_CH=\u9ad8\u5730\u5fb7\u6587 (\u745e\u58eb)
+languages.goh=\u53e4\u9ad8\u5730\u5fb7\u6587
languages.snk=\u7d22\u5c3c\u57fa\u6587
languages.cop=\u79d1\u666e\u7279\u6587
languages.yap=\u96c5\u6d66\u6587
@@ -675,34 +745,37 @@ languages.yao=\u7476\u65cf\u6587
languages.phi=\u5176\u4ed6\u83f2\u5f8b\u5bbe\u8bed\u7cfb
languages.pl=\u6ce2\u5170\u6587
languages.ace=\u4e9a\u9f50\u6587
-languages.pi=\u5e15\u5229\u6587
+languages.pi=\u5df4\u5229\u6587
+languages.pt_PT=\u4f9d\u4f2f\u5229\u4e9a\u8461\u8404\u7259\u6587
languages.pa=\u65c1\u906e\u666e\u6587
languages.bug=\u5e03\u5409\u6587
languages.iba=\u4f0a\u73ed\u6587
-languages.sms=\u53f8\u5bc7\u7279\u8428\u8ff7\u6587
+languages.sms=\u65af\u79d1\u7279\u8428\u7c73\u6587
languages.bua=\u5e03\u91cc\u4e9a\u7279\u6587
languages.mas=\u8428\u4f0a\u8bed
-languages.smn=\u4f9d\u7eb3\u65e5\u8428\u8ff7\u6587
-languages.os=\u5965\u585e\u63d0\u6587
-languages.map=\u9a6c\u6765\u4e9a\u73bb\u91cc\u5c3c\u897f\u4e9a\u8bed\u7cfb
+languages.smn=\u4f0a\u7eb3\u91cc\u8428\u7c73\u8bed
+languages.os=\u5965\u585e\u68af\u6587
+languages.map=\u6fb3\u65af\u7279\u7f57\u5c3c\u897f\u4e9a\u8bed\u7cfb
languages.or=\u6b27\u91cc\u4e9a\u6587
languages.man=\u66fc\u4e01\u54e5\u6587
-languages.smj=\u5362\u4e50\u8428\u8ff7\u6587
-languages.smi=\u5176\u4ed6\u8428\u8ff7\u6587
+languages.smj=Lule \u8428\u7c73\u8bed
+languages.smi=\u5176\u4ed6\u8428\u7c73\u6587
languages.mak=\u671b\u52a0\u9521\u6587
-languages.om=\u963f\u66fc\u6587
+languages.om=\u5965\u6d1b\u83ab\u6587
languages.mai=\u8fc8\u8482\u5229\u6587
-languages.oj=\u5965\u5b63\u5e03\u74e6\u6587
+languages.oj=\u5965\u5409\u5e03\u74e6\u6587
languages.mag=\u9a6c\u52a0\u4f0a\u6587
languages.mad=\u9a6c\u90fd\u62c9\u6587
-languages.sma=\u5357\u8428\u8ff7\u6587
-languages.oc=\u5965\u897f\u5766\u6587
+languages.sma=\u5357\u8428\u7c73\u6587
+languages.oc=\u5965\u514b\u897f\u5510\u6587(1500\u4ee5\u540e)
languages.nso=\u5317\u7d22\u6258\u6587
languages.btk=\u5df4\u5854\u514b\u6587
languages.myv=\u4fc4\u65e5\u4e9a\u6587
-languages.dgr=\u591a\u683c\u6765\u6587
-languages.ny=\u5c3c\u6602\u52a0\u6587\uff1b\u5207\u74e6\u6587\uff1b\u5207\u74e6\u6587
-languages.myn=\u739b\u96c5\u6587
+languages.es_ES=\u897f\u73ed\u7259\u8bed\uff08\u4f0a\u6bd4\u5229\u4e9a\uff09
+languages.de_AT=\u5965\u5730\u5229\u5fb7\u8bed
+languages.dgr=\u591a\u683c\u91cc\u5e03\u6587
+languages.ny=\u5c3c\u626c\u8d3e\u6587\uff1b\u9f50\u5207\u74e6\u6587\uff1b\u5207\u74e6\u6587
+languages.myn=\u739b\u96c5\u8bed\u7cfb
languages.nv=\u7eb3\u74e6\u970d\u6587
languages.kmb=\u91d1\u90a6\u675c\u6587
languages.nr=\u5357\u90e8\u6069\u5fb7\u8d1d\u52d2\u6587
@@ -710,39 +783,44 @@ languages.gmh=\u4e2d\u53e4\u9ad8\u5730\u5fb7\u6587
languages.no=\u632a\u5a01\u6587
languages.nn=\u632a\u5a01\u5c3c\u8bfa\u65af\u514b\u6587
languages.nl=\u8377\u5170\u6587
+languages.root=root
languages.ng=\u6069\u4e1c\u52a0\u6587
languages.sla=\u5176\u4ed6\u65af\u62c9\u592b\u8bed\u7cfb
languages.ne=\u5c3c\u6cca\u5c14\u6587
languages.nd=\u5317\u6069\u5fb7\u8d1d\u52d2\u6587
languages.cmc=\u67e5\u7c73\u514b\u6587
-languages.tet=\u7279\u56fe\u4eec\u6587
+languages.tet=\u7279\u5854\u59c6\u6587
languages.nb=\u632a\u5a01\u535a\u514b\u9a6c\u5c14\u6587
languages.na=\u7459\u9c81\u6587
-languages.ter=\u7279\u558f\u8bfa\u6587
-languages.tem=\u4f53\u59c6\u5450\u6587
+languages.ter=\u7279\u5217\u7eb3\u6587
+languages.tem=\u6ed5\u5185\u8bed
languages.my=\u7f05\u7538\u6587
languages.lez=\u83b1\u5179\u4f9d\u6602\u6587
languages.mt=\u9a6c\u8033\u4ed6\u6587
+languages.frs=\u4e1c\u5f17\u91cc\u897f\u4e9a\u6587
languages.peo=\u53e4\u8001\u6ce2\u65af\u8bed
languages.ms=\u9a6c\u6765\u6587
+languages.frr=\u5317\u5f17\u91cc\u897f\u4e9a\u8bed
languages.mr=\u9a6c\u62c9\u5730\u6587
languages.fro=\u53e4\u6cd5\u6587
languages.mo=\u6469\u5c14\u591a\u74e6\u6587
languages.mn=\u8499\u53e4\u6587
languages.frm=\u4e2d\u53e4\u6cd5\u6587
languages.ml=\u9a6c\u6765\u4e9a\u62c9\u59c6\u6587
-languages.jrb=\u72b9\u592a\u963f\u62c9\u4f2f\u8bed\u7cfb
+languages.jrb=\u72b9\u592a\u963f\u62c9\u4f2f\u6587
languages.mk=\u9a6c\u5176\u987f\u6587
languages.mi=\u6bdb\u5229\u6587
languages.mh=\u9a6c\u7ecd\u5c14\u6587
languages.mg=\u9a6c\u5c14\u52a0\u4ec0\u6587
-languages.mwr=\u9a6c\u5c14\u5c3c\u91cc\u6587
+languages.nqo=\u897f\u975e\u4e66\u9762\u8bed\u8a00
+languages.mwr=\u9a6c\u5c14\u74e6\u5229\u6587
languages.bra=\u5e03\u62c9\u6770\u6587
-languages.lv=\u62c9\u812b\u7dad\u4e9e\u6587
+languages.mwl=\u7c73\u5170\u5fb7\u65af\u6587
languages.den=\u53f8\u96f7\u592b\u6587
+languages.lv=\u62c9\u8131\u7ef4\u4e9a\u6587
languages.lu=\u9c81\u5df4\u52a0\u4e39\u52a0\u6587
+languages.del=\u7279\u62c9\u534e\u6587
languages.lt=\u7acb\u9676\u5b9b\u6587
-languages.del=\u7279\u62c9\u74e6\u5370\u7b2c\u5b89\u4eba\u6587
languages.lo=\u8001\u631d\u6587
languages.ln=\u6797\u52a0\u62c9\u6587
languages.li=\u6dcb\u5e03\u5c14\u5409\u6587
@@ -750,7 +828,7 @@ languages.ewo=\u65fa\u675c\u6587
languages.lg=\u5362\u5e72\u8fbe\u6587
languages.lb=\u5362\u68ee\u5821\u6587
languages.la=\u62c9\u4e01\u6587
-languages.jpr=\u72b9\u592a\u6ce2\u65af\u8bed\u7cfb
+languages.jpr=\u72b9\u592a\u6ce2\u65af\u6587
languages.vot=\u6c83\u63d0\u514b\u6587
languages.sit=\u5176\u4ed6\u6c49\u85cf\u8bed\u7cfb
languages.ky=\u5409\u5c14\u5409\u65af\u6587
@@ -762,103 +840,108 @@ languages.ks=\u514b\u4ec0\u7c73\u5c14\u6587
languages.kr=\u5361\u52aa\u91cc\u6587
languages.awa=\u963f\u74e6\u4e54\u6587
languages.ko=\u97e9\u6587
-languages.kn=\u57c3\u7eb3\u5fb7\u6587
+languages.kn=\u574e\u7eb3\u8fbe\u6587
languages.km=\u67ec\u57d4\u5be8\u6587
+languages.en_GB=\u82f1\u8bed\uff08\u82f1\u56fd\uff09
languages.kl=\u683c\u9675\u5170\u6587
languages.kk=\u54c8\u8428\u514b\u6587
languages.rom=\u5409\u666e\u8d5b\u6587
-languages.kj=\u5173\u740a\u739b\u6587
+languages.kj=\u5bbd\u4e9a\u739b\u6587
languages.sid=\u6089\u8fbe\u6469\u6587
languages.ki=\u5409\u5e93\u5c24\u6587
languages.kg=\u521a\u679c\u6587
languages.non=\u53e4\u8bfa\u5c14\u65af\u6587
languages.ka=\u683c\u9c81\u5409\u4e9a\u6587
-languages.mus=\u6469\u65af\u79d1\u683c\u6587
+languages.mus=\u514b\u91cc\u514b\u6587
languages.roa=\u5176\u4ed6\u62c9\u4e01\u8bed\u7cfb
languages.nog=\u8bfa\u76d6\u6587
-languages.mun=\u8499\u8fbe\u6587
-languages.mul=\u591a\u79cd\u8bed\u8a00
+languages.mun=\u8499\u8fbe\u8bed\u7cfb
+languages.mul=\u591a\u79cd\u8bed\u7cfb
languages.jv=\u722a\u54c7\u6587
languages.gil=\u5409\u5c14\u4f2f\u7279\u65af\u6587
languages.znd=\u8d5e\u5fb7\u6587
languages.shn=\u63b8\u6587
languages.fon=\u4e30\u6587
-languages.xal=\u5361\u5566\u8ff7\u514b\u6587
+languages.xal=\u5361\u5c14\u6885\u514b\u6587
languages.aus=\u6fb3\u5927\u5229\u4e9a\u8bed\u7cfb
languages.kho=\u548c\u7530\u6587
languages.ja=\u65e5\u6587
-languages.khi=\u5176\u4ed6\u79d1\u4f0a\u6851\u6587
+languages.khi=\u5176\u4ed6\u79d1\u4f0a\u6851\u8bed\u7cfb
languages.pau=\u5e15\u52b3\u6587
languages.chy=\u590f\u5ef6\u6587
-languages.tai=\u5176\u4ed6\u6cf0\u6587
-languages.iu=\u7231\u65af\u57fa\u6469\u6587
-languages.pap=\u5e15\u76ae\u4e9a\u5185\u6258\u6587
+languages.tai=\u50a3\u8bed\u8bf8\u8bed\u8a00\uff08\u5176\u4ed6\uff09
+languages.iu=\u4f0a\u52aa\u4f0a\u7279\u6587
+languages.pap=\u5e15\u76ae\u4e9a\u95e8\u6258\u6587
languages.it=\u610f\u5927\u5229\u6587
languages.sgn=\u624b\u8bed
-languages.kha=\u5361\u897f\u6587
languages.is=\u51b0\u5c9b\u6587
+languages.kha=\u5361\u897f\u6587
languages.chr=\u5f7b\u7f57\u57fa\u6587
languages.pam=\u90a6\u677f\u7259\u6587
languages.pal=\u5e15\u62c9\u7ef4\u6587
languages.chp=\u4f69\u74e6\u626c\u6587
+languages.io=\u4f0a\u591a\u6587
languages.cho=\u4e54\u514b\u6258\u6587
-languages.io=\u7231\u5fb7\u83aa\u6587\uff08\u4eba\u5de5\u8bed\u8a00\uff09
languages.chn=\u5951\u52aa\u514b\u6587
languages.chm=\u9a6c\u91cc\u6587
languages.tyv=\u56fe\u74e6\u6587
languages.bnt=\u73ed\u56fe\u6587
-languages.pag=\u90a6\u963f\u897f\u5357\u6587
-languages.chk=\u695a\u543e\u514b\u6587
+languages.pag=\u90a6\u963f\u897f\u6960\u6587
languages.ik=\u4f9d\u5974\u76ae\u7ef4\u514b\u6587
-languages.haw=\u590f\u5a01\u5937\u6587
+languages.chk=\u695a\u543e\u514b\u6587
languages.ii=\u56db\u5ddd\u8bdd
+languages.haw=\u590f\u5a01\u5937\u6587
languages.lam=\u5170\u5df4\u6587
-languages.chg=\u67e5\u52a0\u6587
languages.ig=\u4f0a\u683c\u535a\u6587
+languages.chg=\u67e5\u52a0\u6587
languages.sga=\u53e4\u7231\u5c14\u5170\u6587
languages.paa=\u5176\u4ed6\u5df4\u5e03\u4e9a\u6587
-languages.ie=\u62c9\u4e01\u56fd\u9645\u6587
+languages.ie=\u56fd\u9645\u8bedE
languages.id=\u5370\u5ea6\u5c3c\u897f\u4e9a\u6587
languages.lah=\u62c9\u4ea8\u8fbe\u6587
-languages.chb=\u5951\u5e03\u5361\u6587
languages.day=\u8fbe\u96c5\u514b\u6587
-languages.ia=\u62c9\u4e01\u56fd\u9645\u6587
+languages.chb=\u5951\u5e03\u5361\u6587
+languages.ia=\u56fd\u9645\u8bed
languages.lad=\u62c9\u8fea\u8bfa\u6587
-languages.dar=\u8fbe\u5c14\u683c\u74e6\u6587
-languages.hai=\u6d77\u8fbe\u6587
languages.hz=\u8d6b\u96f7\u7f57\u6587
+languages.hai=\u6d77\u8fbe\u6587
+languages.dar=\u8fbe\u5c14\u683c\u74e6\u6587
languages.hy=\u4e9a\u7f8e\u5c3c\u4e9a\u6587
-languages.ath=\u5176\u4ed6\u963f\u6492\u5df4\u65af\u5361\u8bed\u7cfb
+languages.ath=\u963f\u8428\u5e15\u65af\u574e\u8bed\u7cfb
languages.hu=\u5308\u7259\u5229\u6587
+languages.ht=\u6d77\u5730\u6587
languages.dak=\u8fbe\u79d1\u4ed6\u6587
languages.hr=\u514b\u7f57\u5730\u4e9a\u6587
-languages.ho=\u65b0\u91cc\u6728\u6258\u6587
+languages.ho=\u5e0c\u91cc\u83ab\u56fe\u6587
languages.hi=\u5370\u5730\u6587
languages.dyu=\u8fea\u5c24\u62c9\u6587
languages.he=\u5e0c\u4f2f\u6765\u6587
-languages.ast=\u963f\u65af\u56fe\u91cc\u4e9a\u601d\u7279\u8bed
+languages.ast=\u963f\u65af\u56fe\u91cc\u4e9a\u601d\u7279\u6587
+languages.kfo=\u79d1\u7f57\u8bed
languages.ha=\u8c6a\u6492\u6587
languages.wen=\u7d22\u5e03\u8bf8\u8bed\u8a00
languages.gv=\u9a6c\u6069\u5c9b\u6587
languages.gu=\u53e4\u52a0\u62c9\u63d0\u6587
languages.sem=\u5176\u4ed6\u95ea\u65cf\u8bed\u7cfb
languages.sel=\u585e\u5c14\u5e93\u666e\u6587
-languages.iro=\u4f0a\u6d1b\u90ed\u4f0a\u8d39\u6587
+languages.iro=\u6613\u6d1b\u9b41\u8bed
languages.gn=\u74dc\u62c9\u5c3c\u6587
languages.gl=\u52a0\u5229\u897f\u4e9a\u6587
+languages.en_CA=\u52a0\u62ff\u5927\u82f1\u8bed
languages.arw=\u963f\u62c9\u74e6\u514b\u6587
-languages.gd=\u82cf\u683c\u5170- \u76d6\u5c14\u6587
-languages.art=\u5176\u4ed6\u4eba\u5de5\u8bed\u8a00
languages.gez=\u5409\u5179\u6587
+languages.art=\u5176\u4ed6\u4eba\u5de5\u8bed\u7cfb
+languages.gd=\u82cf\u683c\u5170\u76d6\u5c14\u6587
languages.ira=\u4f0a\u6717\u6587
languages.ga=\u7231\u5c14\u5170\u6587
languages.arp=\u963f\u62c9\u5e15\u970d\u6587
languages.arn=\u963f\u52b3\u574e\u6587
languages.fy=\u5f17\u91cc\u65af\u5170\u6587
languages.bla=\u53f8\u514b\u53f8\u5361\u6587
-languages.ypk=\u55bb\u76ae\u514b\u6587
-languages.fr=\u6cd5\u6587
+languages.gem=\u5176\u4ed6\u65e5\u5c14\u66fc\u8bed\u7cfb
+languages.ypk=\u5c24\u76ae\u514b\u8bf8\u8bed\u8a00
languages.arc=\u963f\u62c9\u7c73\u6587
+languages.fr=\u6cd5\u6587
languages.fo=\u6cd5\u7f57\u6587
languages.cel=\u5176\u4ed6\u51ef\u5c14\u7279\u8bed\u7cfb
languages.fj=\u6590\u6d4e\u6587
@@ -867,48 +950,57 @@ languages.ff=\u592b\u62c9\u6587
languages.tvl=\u56fe\u74e6\u5362\u6587
languages.ceb=\u5bbf\u52a1\u6587
languages.fa=\u6ce2\u65af\u6587
+languages.en_AU=\u82f1\u8bed\uff08\u6fb3\u5927\u5229\u4e9a\uff09
+languages.zh_Hans=\u4e2d\u6587\uff08\u7b80\u4f53\uff09
+languages.zh_Hant=\u4e2d\u6587\uff08\u7e41\u4f53\uff09
languages.eu=\u5df4\u65af\u514b\u6587
languages.sco=\u82cf\u683c\u5170\u6587
languages.et=\u7231\u6c99\u5c3c\u4e9a\u6587
+languages.scn=\u897f\u897f\u91cc\u6587
languages.es=\u897f\u73ed\u7259\u6587
languages.eo=\u4e16\u754c\u6587
languages.en=\u82f1\u6587
languages.el=\u5e0c\u814a\u6587
-languages.tut=\u5176\u4ed6\u963f\u5c14\u6cf0\u8bed\u7cfb
+languages.tut=\u963f\u5c14\u6cf0\u8bf8\u8bed\u8a00\uff08\u5176\u4ed6\uff09
languages.niu=\u7ebd\u57c3\u6587
-languages.tup=\u56fe\u5339\u6587
-languages.ee=\u5e7d\u6587
+languages.tup=\u56fe\u76ae\u8bed\u7cfb
+languages.ee=\u57c3\u7ef4\u6587
languages.tum=\u901a\u5e03\u5361\u6587
+languages.nl_BE=\u5f17\u62c9\u8292\u6587
+languages.es_419=\u62c9\u4e01\u7f8e\u6d32\u897f\u73ed\u7259\u8bed
languages.mos=\u83ab\u897f\u6587
languages.dz=\u4e0d\u4e39\u6587
-languages.nic=\u5176\u4ed6\u5c3c\u65e5\u5c14\u521a\u679c\u8bed\u7cfb
-languages.dv=\u8fea\u7ef4\u5e0c\u6587
-languages.fiu=\u82ac\u5308\u6587\uff08\u5176\u4ed6\uff09
+languages.kcg=kcg
+languages.nic=\u5176\u4ed6\u5c3c\u65e5\u5c14\u79d1\u5c14\u591a\u51e1\u8bed\u7cfb
languages.lus=\u5362\u6652\u6587
-languages.nia=\u5c3c\u5c14\u53f8\u6587
+languages.fiu=\u5176\u4ed6\u82ac\u5170\u4e4c\u6208\u5c14\u8bed\u7cfb
+languages.dv=\u8fea\u7ef4\u5e0c\u6587
+languages.nia=\u5c3c\u4e9a\u65af\u6587
languages.moh=\u6469\u970d\u514b\u6587
languages.luo=\u5362\u5965\u6587
languages.lun=\u9686\u8fbe\u6587
languages.apa=\u963f\u5e15\u5207\u6587
+languages.fil=\u83f2\u5f8b\u5bbe\u6587
languages.lui=\u8def\u6613\u585e\u8bfa\u6587
languages.hup=\u80e1\u5e15\u6587
+languages.cch=cch
languages.bin=\u6bd4\u5c3c\u6587
languages.de=\u5fb7\u6587
languages.lua=\u9c81\u5df4\u9c81\u74e6\u6587
languages.bik=\u6bd5\u5e93\u5c14\u6587
languages.was=\u74e6\u7ecd\u6587
languages.und=\u672a\u5b9a\u8bed\u79cd
-languages.war=\u4f64\u745e\u6587
+languages.war=\u74e6\u8d56\u6587
languages.da=\u4e39\u9ea6\u6587
languages.dum=\u4e2d\u53e4\u8377\u5170\u6587
languages.wal=\u74e6\u62c9\u83ab\u6587
-languages.mno=\u9a6c\u8bfa\u535a\u6c61\u6587
-languages.wak=\u74e6\u5580\u5c71\u6587
-languages.sat=\u6851\u55d2\u5229\u6587
+languages.mno=\u9a6c\u8bfa\u535a\u8bed\u7cfb
+languages.wak=\u74e6\u5361\u4ec0\u8bf8\u8bed\u8a00
+languages.sat=\u6851\u5854\u5229\u6587
languages.cy=\u5a01\u5c14\u58eb\u6587
-languages.sas=\u585e\u585e\u5361\u6587
-languages.cv=\u695a\u74e6\u4ec0\u6587
+languages.sas=\u8428\u8428\u514b\u6587
languages.kbd=\u5361\u5df4\u5c14\u8fbe\u6587
+languages.cv=\u695a\u74e6\u4ec0\u6587
languages.cu=\u5b97\u6559\u65af\u62c9\u592b\u6587
languages.mni=\u66fc\u5c3c\u666e\u91cc\u6587
languages.cs=\u6377\u514b\u6587
@@ -920,40 +1012,43 @@ languages.co=\u79d1\u897f\u5609\u6587
languages.sai=\u5176\u4ed6\u5357\u7f8e\u5370\u7b2c\u5b89\u6587
languages.mnc=\u6ee1\u6587
languages.sah=\u96c5\u5e93\u7279\u6587
-languages.gba=\u845b\u5df4\u4e9a\u6587
-languages.inh=\u5370\u53e4\u4ec0\u6587
languages.kaw=\u5361\u5a01\u6587
+languages.inh=\u5370\u53e4\u4ec0\u6587
+languages.gba=\u845b\u5df4\u4e9a\u6587
languages.sad=\u6563\u8fbe\u7ef4\u6587
languages.ch=\u67e5\u83ab\u7f57\u6587
-languages.bho=\u535a\u6770\u666e\u5c14\u6587
languages.ine=\u5176\u4ed6\u5370\u6b27\u8bed\u7cfb
+languages.bho=\u535a\u6770\u666e\u5c14\u6587
languages.enm=\u4e2d\u53e4\u82f1\u6587
-languages.ce=\u8f66\u81e3\u6587
-languages.inc=\u5370\u5ea6\u6587\uff08\u5176\u4ed6\uff09
languages.kar=\u5580\u4f26\u6587
+languages.inc=\u5176\u4ed6\u5370\u5ea6\u8bed\u7cfb
+languages.ce=\u8f66\u81e3\u6587
languages.gay=\u8fe6\u7ea6\u6587
languages.ca=\u52a0\u6cf0\u7f57\u5c3c\u4e9a\u6587
-languages.umb=\u59c6\u5d29\u675c\u6587
+languages.umb=\u7fc1\u672c\u675c\u6587
languages.syr=\u53d9\u5229\u4e9a\u6587
languages.kam=\u5361\u59c6\u5df4\u6587
+languages.anp=\u6602\u52a0\u8bed
languages.tsi=\u8482\u59c6\u897f\u4e9a\u6587
-languages.ang=\u4e2d\u53e4\u82f1\u8bed
-languages.cau=\u5176\u4ed6\u9ad8\u52a0\u7d22\u8bed\u7cfb
+languages.kaj=kaj
+languages.ang=\u53e4\u82f1\u6587
languages.kac=\u5361\u7434\u6587
+languages.cau=\u5176\u4ed6\u9ad8\u52a0\u7d22\u8bed\u7cfb
languages.kab=\u5361\u6bd4\u5c14\u6587
-languages.bs=\u6ce2\u65af\u5c3c\u4e9a\u6587
languages.kaa=\u5361\u62c9\u5361\u5c14\u5e15\u514b\u6587
-languages.br=\u5e03\u91cc\u591a\u5c3c\u6587
+languages.bs=\u6ce2\u65af\u5c3c\u4e9a\u6587
languages.car=\u5df4\u52d2\u6bd4\u6587
-languages.bo=\u897f\u85cf\u6587
+languages.br=\u5e03\u91cc\u591a\u5c3c\u6587
+languages.bo=\u85cf\u6587
languages.bn=\u5b5f\u52a0\u62c9\u6587
languages.bm=\u73ed\u5df4\u62c9\u6587
languages.gaa=\u52a0\u6587
-languages.bi=\u6bd4\u65af\u62c9\u9a6c\u6587
languages.cai=\u5176\u4ed6\u4e2d\u7f8e\u5370\u7b2c\u5b89\u8bed\u7cfb
+languages.bi=\u6bd4\u65af\u62c9\u9a6c\u6587
languages.bh=\u6bd4\u54c8\u5c14\u6587
languages.bg=\u4fdd\u52a0\u5229\u4e9a\u6587
languages.be=\u767d\u4fc4\u7f57\u65af\u6587
+languages.pt_BR=\u8461\u8404\u7259\u8bed\uff08\u5df4\u897f\uff09
languages.cad=\u5361\u591a\u6587
languages.ba=\u5df4\u4ec0\u5ba2\u5c14\u6587
languages.zu=\u7956\u9c81\u6587
@@ -964,29 +1059,39 @@ languages.az=\u963f\u585e\u62dc\u7586\u6587
languages.ay=\u827e\u9a6c\u62c9\u6587
languages.av=\u963f\u74e6\u5c14\u6587
languages.as=\u963f\u8428\u59c6\u6587
+languages.dsb=\u4e0b\u7d22\u5e03\u6587
languages.ar=\u963f\u62c9\u4f2f\u6587
-languages.dsb=\u4e0b\u585e\u5c14\u7ef4\u4e9a\u6587
-languages.elx=\u827e\u62c9\u7c73\u7279\u6587
languages.ilo=\u4f0a\u6d1b\u5e72\u8bfa\u6587
+languages.elx=\u827e\u62c9\u7c73\u7279\u6587
languages.zh=\u4e2d\u6587
-languages.pra=\u5370\u5ea6\u53e4\u4ee3\u53ca\u4e2d\u4e16\u7eaa\u4e4b\u4e2d\u90e8\u53ca\u5317\u90e8\u65b9\u8a00
+languages.an=\u963f\u62c9\u8d21\u6587
+languages.pra=\u666e\u62c9\u514b\u91cc\u7279\u8bf8\u8bed\u8a00
languages.am=\u963f\u59c6\u54c8\u62c9\u6587
languages.new=\u5c3c\u74e6\u5c14\u6587
languages.ak=\u963f\u80af\u6587
-languages.za=\u85cf\u6587
+languages.za=\u58ee\u8bed
+languages.en_US=\u82f1\u8bed\uff08\u7f8e\u56fd\uff09
languages.af=\u5357\u975e\u8377\u5170\u6587
languages.ae=\u963f\u7ef4\u65af\u5854\u6587
+languages.alt=\u5357\u963f\u5c14\u6cf0\u6587
languages.ab=\u963f\u5e03\u54c8\u897f\u4e9a\u6587
languages.aa=\u963f\u6cd5\u6587
languages.yo=\u7ea6\u9c81\u5df4\u6587
languages.alg=\u5176\u4ed6\u963f\u5c14\u8d21\u8bed\u7cfb
-languages.ale=\u963f\u7559\u7533\u7fa4\u5c9b\u4e4b\u571f\u8bed
-languages.mkh=\u5176\u4ed6\u8499\u5409\u8511\u6587
+languages.ale=\u963f\u7559\u7533\u6587
+languages.mkh=\u5176\u4ed6\u5b5f\u9ad8\u68c9\u8bed\u7cfb
languages.yi=\u4f9d\u5730\u6587
languages.dra=\u5176\u4ed6\u5fb7\u62c9\u7ef4\u8bed\u7cfb
-languages.ber=\u5317\u975e\u56de\u6559\u571f\u65cf\u4e4b\u8bed\u8a00
-languages.nds=\u5fb7\u56fd\u5317\u90e8\u7684\u5fb7\u6587\uff1b\u4f4e\u5730\u8428\u514b\u900a\u6587
+languages.ber=\u67cf\u67cf\u5c14\u6587
+languages.nds=\u4f4e\u5730\u5fb7\u6587\uff1b\u4f4e\u5730\u6492\u514b\u900a\u6587
languages.bem=\u522b\u59c6\u5df4\u6587
languages.bej=\u522b\u672d\u6587
languages.tpi=\u6258\u514b\u76ae\u8f9b\u6587
+variants.1901=\u4f20\u7edf\u5fb7\u8bed\u62fc\u5b57\u5b66
+variants.1996=1996 \u5e74\u7684\u5fb7\u8bed\u62fc\u5b57\u5b66
+variants.POLYTON=\u591a(\u58f0)\u8c03\u8bed\u8a00
+variants.FONIPA=\u56fd\u9645\u97f3\u6807
+variants.AREVELA=\u4e1c\u4e9a\u7f8e\u5c3c\u4e9a\u8bed
+variants.SAAHO=\u8428\u970d
+variants.AREVMDA=\u897f\u4e9a\u7f8e\u5c3c\u4e9a\u8bed
variants.REVISED=\u5df2\u4fee\u8ba2
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties
index 01c043d..e48836f 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties
@@ -5,12 +5,32 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
+groupingSeparator=\uff0c
currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
-shortMonths=1\u6708®2\u6708®3\u6708®4\u6708®5\u6708®6\u6708®7\u6708®8\u6708®9\u6708®10\u6708®11\u6708®12\u6708®®
-shortDateFormat=yy'\u5e74'M'\u6708'd'\u65e5'
-mediumDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'
-longDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'
-fullDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5' EEEE
-shortTimeFormat=ah:mm
+currenciesDisplayName.TWD=\u65b0\u53f0\u5e63
+currenciesDisplayName.ITL=\u610f\u5927\u5229\u91cc\u62c9
+currenciesDisplayName.SGD=\u65b0\u52a0\u5761\u5143
+currenciesDisplayName.BAM=\u6ce2\u65af\u5c3c\u4e9e-\u9ed1\u585e\u54e5\u7dad\u90a3\u53ef\u8f49\u63db\u99ac\u514b
+currenciesDisplayName.HKD=\u6e2f\u5143
+currenciesDisplayName.AUD=\u6fb3\u5143
+currenciesDisplayName.NZD=\u7d10\u897f\u862d\u5143
+currenciesDisplayName.BAD=\u6ce2\u65af\u5c3c\u4e9e-\u9ed1\u585e\u54e5\u7dad\u90a3\u7b2c\u7d0d\u723e
+currenciesDisplayName.CAD=\u52a0\u5143
+currenciesDisplayName.RSD=\u585e\u723e\u7dad\u4e9e\u7b2c\u7d0d\u723e
+shortDateFormat=yy\u5e74M\u6708d\u65e5
+mediumDateFormat=yyyy\u5e74M\u6708d\u65e5
+longDateFormat=yyyy\u5e74M\u6708d\u65e5
+fullDateFormat=yyyy\u5e74M\u6708d\u65e5EEEE
mediumTimeFormat=ahh:mm:ss
-territories.MO=\u6fb3\u9580\u7279\u5225\u884c\u653f\u5340
+territories.TW=\u53f0\u7063
+territories.IT=\u610f\u5927\u5229
+languages.lol=\u8499\u53e4\u8a9e
+languages.it=\u610f\u5927\u5229\u6587
+variants.SOLBA=Stolvizza/Solbica \u65b9\u8a00
+variants.1901=\u50b3\u7d71\u5fb7\u570b\u62fc\u5b57\u6cd5
+variants.BISKE=San Giorgio/Bila \u65b9\u8a00
+variants.1996=1996 \u5fb7\u570b\u62fc\u5b57\u6cd5
+variants.NJIVA=Gniva/Njiva \u65b9\u8a00
+variants.OSOJS=Oseacco/Osojane \u65b9\u8a00
+variants.SCOTLAND=\u8607\u683c\u862d\u6a19\u6e96\u82f1\u8a9e
+variants.REVISED=\u5df2\u4fee\u8a02\u62fc\u5b57\u6cd5
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_Hant.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_Hant.properties
index 505cf5f..8c5cf7c 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_Hant.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_Hant.properties
@@ -6,226 +6,244 @@
# This file was automatically generated by gnu.localegen from CLDR.
currenciesDisplayName.YDD=\u8449\u9580\u7b2c\u7d0d\u723e
-currenciesDisplayName.TWD=\u65b0\u81fa\u5e63
currenciesDisplayName.KES=\u80af\u5c3c\u4e9e\u5148\u4ee4
-currenciesDisplayName.BYB=\u767d\u4fc4\u7f85\u65af\u65b0\u76e7\u5e03 (1994-1999)
+currenciesDisplayName.TWD=\u65b0\u81fa\u5e63
currenciesDisplayName.LKR=\u65af\u91cc\u862d\u5361\u76e7\u5e03
+currenciesDisplayName.BYB=\u767d\u4fc4\u7f85\u65af\u65b0\u76e7\u5e03 (1994-1999)
+currenciesDisplayName.TJS=\u5854\u5409\u514b\u7d22\u83ab\u5c3c
currenciesDisplayName.RWF=\u76e7\u5b89\u9054\u6cd5\u90ce
-currenciesDisplayName.TJS=\u5854\u5409\u514b\u65af\u5766 \u7d22\u83ab\u5c3c
-currenciesDisplayName.SDP=\u8607\u4e39\u938a
-currenciesDisplayName.TJR=\u5854\u5409\u514b\u65af\u5766\u76e7\u5e03
currenciesDisplayName.ERN=\u5384\u7acb\u7279\u91cc\u4e9e\u7d0d\u514b\u6cd5
+currenciesDisplayName.TJR=\u5854\u5409\u514b\u65af\u5766\u76e7\u5e03
+currenciesDisplayName.SDP=\u8607\u4e39\u938a
currenciesDisplayName.GRD=\u5e0c\u81d8\u5fb7\u62c9\u514b\u99ac
currenciesDisplayName.IEP=\u611b\u723e\u862d\u938a
currenciesDisplayName.ARS=\u963f\u6839\u5ef7\u62ab\u7d22
+currenciesDisplayName.ARP=\u963f\u6839\u5ef7\u62ab\u7d22 (1983-1985)
currenciesDisplayName.SDD=\u8607\u4e39\u7b2c\u7d0d\u723e
-currenciesDisplayName.ARP=\u963f\u6839\u5ef7\u62ab\u7d22(1983-1985)
currenciesDisplayName.GEL=\u55ac\u6cbb\u62c9\u91cc
-currenciesDisplayName.GEK=\u55ac\u6cbb \u5eab\u65c1 \u62c9\u91cc
+currenciesDisplayName.GEK=\u55ac\u6cbb\u5eab\u65c1\u62c9\u91cc
currenciesDisplayName.CRC=\u54e5\u65af\u5927\u9ece\u52a0\u79d1\u90ce
currenciesDisplayName.FKP=\u798f\u514b\u862d\u7fa4\u5cf6\u938a
currenciesDisplayName.EEK=\u611b\u6c99\u5c3c\u4e9e\u514b\u6717
currenciesDisplayName.MDL=\u6469\u675c\u96f2\u5217\u4f0a
-currenciesDisplayName.ARA=\u963f\u6839\u5ef7\u5967\u65af\u7279\u7d0d\u723e
+currenciesDisplayName.HKD=\u6e2f\u5e63
currenciesDisplayName.IQD=\u4f0a\u62c9\u514b\u7b2c\u7d0d\u723e
-currenciesDisplayName.SCR=\u585e\u820c\u723e\u7fa4\u5cf6\u76e7\u5e03
+currenciesDisplayName.ARA=\u963f\u6839\u5ef7\u5967\u65af\u7279\u7d0d\u723e
+currenciesDisplayName.SCR=\u585e\u5e2d\u723e\u76e7\u6bd4
currenciesDisplayName.VUV=\u842c\u90a3\u675c\u842c\u675c
+currenciesDisplayName.KPW=\u5317\u97d3\u5713
currenciesDisplayName.DKK=\u4e39\u9ea5\u514b\u7f85\u7d0d
-currenciesDisplayName.KPW=\u5317\u671d\u9bae\u5e63
+currenciesDisplayName.IDR=\u5370\u5c3c\u76fe
currenciesDisplayName.GQE=\u8d64\u9053\u5e7e\u5167\u4e9e\u57c3\u594e\u52d2
-currenciesDisplayName.IDR=\u5370\u5c3c - \u76e7\u5e03
-currenciesDisplayName.LVR=\u62c9\u812b\u7dad\u4e9e\u76e7\u5e03
currenciesDisplayName.SOS=\u7d22\u99ac\u5229\u4e9e\u5148\u4ee4
+currenciesDisplayName.LVR=\u62c9\u812b\u7dad\u4e9e\u76e7\u5e03
+currenciesDisplayName.EQE=\u57c3\u594e\u7dad\u52d2
currenciesDisplayName.AED=\u963f\u62c9\u4f2f\u806f\u5408\u5927\u516c\u570b\u8fea\u723e\u6c57
-currenciesDisplayName.BWP=\u6ce2\u672d\u90a3 - \u666e\u62c9
currenciesDisplayName.LVL=\u62c9\u812b\u7dad\u4e9e\u62c9\u7279\u9280\u5e63
+currenciesDisplayName.BWP=\u6ce2\u672d\u90a3\u666e\u62c9
currenciesDisplayName.RUR=\u4fc4\u7f85\u65af\u76e7\u5e03 (1991-1998)
-currenciesDisplayName.NIO=\u5c3c\u52a0\u62c9\u74dc \u91d1\u54e5\u591a\u83ef
-currenciesDisplayName.ADP=\u5b89\u9053\u723e\u966a\u58eb\u7279
-currenciesDisplayName.FJD=\u6590\u6fdf\u5143
+currenciesDisplayName.NIO=\u5c3c\u52a0\u62c9\u74dc\u91d1\u79d1\u591a\u5df4
+currenciesDisplayName.XTS=XTS
currenciesDisplayName.MOP=\u6fb3\u9580\u5143
+currenciesDisplayName.FJD=\u6590\u6fdf\u5143
+currenciesDisplayName.ADP=\u5b89\u9053\u723e\u966a\u58eb\u7279
currenciesDisplayName.RUB=\u4fc4\u7f85\u65af\u76e7\u5e03
currenciesDisplayName.CDF=\u525b\u679c\u6cd5\u90ce
currenciesDisplayName.DJF=\u5409\u5e03\u5730\u6cd5\u90ce
-currenciesDisplayName.ECV=\u5384\u74dc\u591a\u723e\u7531\u91cc\u9054\u74e6\u5eb7\u65af\u5766 (UVC)
+currenciesDisplayName.UZS=\u70cf\u8332\u5225\u514b\u65af\u5766\u85a9\u6728
currenciesDisplayName.SBD=\u7d22\u7f85\u9580\u7fa4\u5cf6\u5143
-currenciesDisplayName.UZS=\u70cf\u8332\u5225\u514b\u65af\u5766 \u85a9\u6728
+currenciesDisplayName.ECV=\u5384\u74dc\u591a UVC
+currenciesDisplayName.LUL=\u76e7\u68ee\u5821\u91d1\u878d\u6cd5\u90ce
currenciesDisplayName.ECS=\u5384\u74dc\u591a\u8607\u514b\u96f7
-currenciesDisplayName.PHP=\u83f2\u5f8b\u8cd3\u62ab\u7d22
currenciesDisplayName.THB=\u6cf0\u9296
+currenciesDisplayName.PHP=\u83f2\u5f8b\u8cd3\u62ab\u7d22
currenciesDisplayName.LUF=\u76e7\u68ee\u5821\u6cd5\u90ce
+currenciesDisplayName.RHD=\u7f85\u5fb7\u897f\u4e9e\u5143
+currenciesDisplayName.LUC=\u76e7\u68ee\u5821\u53ef\u514c\u63db\u6cd5\u90ce
currenciesDisplayName.FIM=\u82ac\u862d\u99ac\u514b
-currenciesDisplayName.TTD=\u5343\u91cc\u9054\u53ca\u6258\u5df4\u54e5r
-currenciesDisplayName.SZL=\u65af\u5a01\u58eb\u862d \u91cc\u90ce
+currenciesDisplayName.TTD=\u5343\u91cc\u9054\u53ca\u6258\u5df4\u54e5\u5143
+currenciesDisplayName.SZL=\u53f2\u74e6\u6fdf\u862d\u91cc\u6717\u5409\u5c3c
currenciesDisplayName.MNT=\u8499\u53e4\u5716\u683c\u91cc\u514b
+currenciesDisplayName.UAK=\u70cf\u514b\u862d\u5361\u672c\u74e6\u90a3\u8332
currenciesDisplayName.SAR=\u6c99\u70cf\u5730\u91cc\u96c5
-currenciesDisplayName.UAK=\u70cf\u514b\u862d \u5361\u672c\u74e6\u90a3\u8332
currenciesDisplayName.UAH=\u70cf\u514b\u862d\u683c\u91cc\u592b\u90a3
-currenciesDisplayName.HUF=\u5308\u7259\u5229 - \u798f\u6797
-currenciesDisplayName.COP=\u54e5\u502b\u6bd4\u4e9e\u62ab\u7d22
+currenciesDisplayName.HUF=\u5308\u7259\u5229\u798f\u6797
currenciesDisplayName.QAR=\u5361\u9054\u723e\u91cc\u4e9e\u723e
+currenciesDisplayName.COP=\u54e5\u502b\u6bd4\u4e9e\u62ab\u7d22
currenciesDisplayName.LTT=\u7acb\u9676\u5b9b\u7279\u7f85
currenciesDisplayName.PTE=\u8461\u8404\u7259\u57c3\u65af\u5eab\u591a
-currenciesDisplayName.AOR=\u5b89\u54e5\u62c9\u65b0\u5bec\u624e Reajustado (1995-1999)
currenciesDisplayName.UYU=\u70cf\u62c9\u572d\u62ab\u7d22
+currenciesDisplayName.AOR=\u5b89\u54e5\u62c9\u65b0\u5bec\u624e Reajustado (1995-1999)
currenciesDisplayName.GBP=\u82f1\u938a
+currenciesDisplayName.ZRZ=\u85a9\u4f0a\u624e\u4f0a\u723e
+currenciesDisplayName.INR=\u5370\u5ea6\u76e7\u6bd4
currenciesDisplayName.BIF=\u84b2\u9686\u5730\u6cd5\u90ce
-currenciesDisplayName.INR=\u5370\u5ea6\u76e7\u5e03
-currenciesDisplayName.ZRZ=\u624e\u4f0a\u723e\u624e\u4f0a\u723e
-currenciesDisplayName.AON=\u5b89\u54e5\u62c9\u65b0\u5bec\u624e (1990-2000)
-currenciesDisplayName.LTL=\u7acb\u9676\u5b9b\u91cc\u5854
currenciesDisplayName.XFU=\u6cd5\u570b UIC \u6cd5\u90ce
-currenciesDisplayName.KZT=\u5361\u624e\u514b\u65af\u5766\u5766\u5409
-currenciesDisplayName.MZM=\u83ab\u4e09\u6bd4\u514b\u6885\u8482\u5361\u723e
+currenciesDisplayName.LTL=\u7acb\u9676\u5b9b\u91cc\u5854
+currenciesDisplayName.AON=\u5b89\u54e5\u62c9\u65b0\u5bec\u624e (1990-2000)
currenciesDisplayName.UYP=\u70cf\u62c9\u572d\u62ab\u7d22 (1975-1993)
-currenciesDisplayName.AOK=\u5b89\u54e5\u62c9\u5bec\u624e(1977-1990)
-currenciesDisplayName.BUK=\u7dec\u7538\u5143
+currenciesDisplayName.MZM=\u83ab\u4e09\u6bd4\u514b\u6885\u8482\u5361\u723e
+currenciesDisplayName.KZT=\u5361\u624e\u514b\u65af\u5766\u5766\u5409
+currenciesDisplayName.AOK=\u5b89\u54e5\u62c9\u5bec\u624e (1977-1990)
currenciesDisplayName.GNS=\u5e7e\u5167\u4e9e\u897f\u91cc
+currenciesDisplayName.BUK=\u7dec\u7538\u57fa\u96c5\u7279
currenciesDisplayName.XFO=\u6cd5\u570b\u91d1\u6cd5\u90ce
currenciesDisplayName.PGK=\u5df4\u5e03\u4e9e\u7d10\u5e7e\u5167\u4e9e\u57fa\u90a3
currenciesDisplayName.SYP=\u6558\u5229\u4e9e\u938a
-currenciesDisplayName.MZE=\u83ab\u6851\u6bd4\u514b\u57c3\u65af\u5eab\u591a
currenciesDisplayName.OMR=\u963f\u66fc\u91cc\u5967
+currenciesDisplayName.MZE=\u83ab\u6851\u6bd4\u514b\u57c3\u65af\u5eab\u591a
+currenciesDisplayName.ZRN=\u85a9\u4f0a\u65b0\u624e\u4f0a\u723e
currenciesDisplayName.NGN=\u5948\u53ca\u5229\u4e9e\u5948\u62c9
-currenciesDisplayName.ZRN=\u85a9\u4f0a\u624e\u65b0\u4f0a\u723e
-currenciesDisplayName.AOA=\u5b89\u54e5\u62c9\u5bec\u624e
currenciesDisplayName.CNY=\u4eba\u6c11\u5e63
+currenciesDisplayName.AOA=\u5b89\u54e5\u62c9\u5bec\u624e
currenciesDisplayName.GNF=\u5e7e\u5167\u4e9e\u6cd5\u90ce
currenciesDisplayName.MMK=\u7dec\u7538\u5143
-currenciesDisplayName.MYR=\u99ac\u4f86\u897f\u4e9e - \u6797\u5409\u7279
+currenciesDisplayName.MYR=\u99ac\u4f86\u897f\u4e9e\u4ee4\u5409
+currenciesDisplayName.LSM=\u99ac\u6d1b\u8482
+currenciesDisplayName.XEU=\u6b50\u6d32\u8ca8\u5e63\u55ae\u4f4d XEU
currenciesDisplayName.LSL=\u8cf4\u7d22\u6258\u7f85\u8482
-currenciesDisplayName.XEU=\u6b50\u6d32\u8ca8\u5e63\u55ae\u4f4d
-currenciesDisplayName.BHD=\u5df4\u6797\u7b2c\u7d0d\u723e
currenciesDisplayName.SLL=\u7345\u5b50\u5c71\u5229\u6602
+currenciesDisplayName.BHD=\u5df4\u6797\u7b2c\u7d0d\u723e
+currenciesDisplayName.BTN=\u4e0d\u4e39\u90a3\u7279\u502b
currenciesDisplayName.KMF=\u79d1\u6469\u7f85\u6cd5\u90ce
-currenciesDisplayName.ANG=\u8377\u862d \u5b89\u68af\u862d \u76fe
currenciesDisplayName.CZK=\u6377\u514b\u514b\u6717
+currenciesDisplayName.ANG=\u8377\u5c6c\u5b89\u5730\u5217\u65af\u76fe
+currenciesDisplayName.AZN=\u4e9e\u585e\u62dc\u7136\u8499\u7d0d\u7279
currenciesDisplayName.AZM=\u963f\u585e\u62dc\u5f4a\u99ac\u7279\u7d0d
currenciesDisplayName.KYD=\u958b\u66fc\u7fa4\u5cf6\u7f8e\u5143
currenciesDisplayName.GMD=\u7518\u6bd4\u4e9e\u9054\u62c9\u897f
currenciesDisplayName.BGN=\u4fdd\u52a0\u5229\u4e9e\u65b0\u5217\u5f17
+currenciesDisplayName.MXV=\u58a8\u897f\u54e5\u8f49\u63db\u55ae\u4f4d\uff08UDI\uff09
currenciesDisplayName.CAD=\u52a0\u5e63
-currenciesDisplayName.MXV=\u58a8\u897f\u54e5\u6cd5\u5f8b\u53cd\u8f49(UDI)
currenciesDisplayName.BGL=\u4fdd\u52a0\u5229\u4e9e\u786c\u5217\u5f17
currenciesDisplayName.VEB=\u59d4\u5167\u745e\u62c9\u535a\u5229\u74e6
currenciesDisplayName.MLF=\u99ac\u91cc\u6cd5\u90ce
-currenciesDisplayName.ILS=\u4ee5\u8272\u5217\u65b0\u8b1d\u514b\u723e
currenciesDisplayName.MXP=\u58a8\u897f\u54e5\u9280\u62ab\u7d22 (1861-1992)
+currenciesDisplayName.ILS=\u4ee5\u8272\u5217\u65b0\u8b1d\u514b\u723e
currenciesDisplayName.PES=\u79d8\u9b6f\u592a\u967d\u5e63
+currenciesDisplayName.MXN=\u58a8\u897f\u54e5\u62ab\u7d22
currenciesDisplayName.GYD=\u572d\u4e9e\u90a3\u5143
-currenciesDisplayName.MXN=\u58a8\u897f\u54e5 - \u62ab\u7d22
currenciesDisplayName.ILP=\u4ee5\u8272\u5217\u938a
+currenciesDisplayName.CYP=\u8cfd\u666e\u52d2\u65af\u938a
currenciesDisplayName.SKK=\u65af\u6d1b\u4f10\u514b\u514b\u6717
-currenciesDisplayName.CYP=\u8cfd\u6d66\u8def\u65af\u938a
currenciesDisplayName.XDR=\u7279\u6b8a\u63d0\u6b3e\u6b0a
currenciesDisplayName.PEN=\u79d8\u9b6f\u65b0\u592a\u967d\u5e63
currenciesDisplayName.LRD=\u8cf4\u6bd4\u745e\u4e9e\u5143
currenciesDisplayName.PEI=\u7955\u9b6f\u56e0\u8482
currenciesDisplayName.AMD=\u4e9e\u7f8e\u5c3c\u4e9e\u5fb7\u62c9\u59c6
currenciesDisplayName.BSD=\u5df4\u54c8\u99ac\u5143
+currenciesDisplayName.XPT=\u767d\u91d1
currenciesDisplayName.HRK=\u514b\u7f85\u5730\u4e9e\u5eab\u7d0d
-currenciesDisplayName.CLP=\u667a\u5229\u62ab\u7d22
currenciesDisplayName.HRD=\u514b\u7f85\u5730\u4e9e\u7b2c\u7d0d\u723e
+currenciesDisplayName.CLP=\u667a\u5229\u62ab\u7d22
currenciesDisplayName.XPF=CFP \u6cd5\u90ce
currenciesDisplayName.FRF=\u6cd5\u570b\u6cd5\u90ce
+currenciesDisplayName.XPD=\u5e15\u62c9\u72c4\u6602
currenciesDisplayName.BRR=\u5df4\u897f\u514b\u9b6f\u8cfd\u7f85
currenciesDisplayName.MKD=\u99ac\u5176\u9813\u7b2c\u7d0d\u723e
-currenciesDisplayName.CLF=\u5361\u6797\u6cb9\u9054\u4f5b\u66fc\u8dce
+currenciesDisplayName.CLF=\u667a\u5229 UF
+currenciesDisplayName.BRN=\u5df4\u897f\u514b\u5982\u723e\u9054\u8fb2\u74e6
currenciesDisplayName.ALL=\u963f\u723e\u5df4\u5c3c\u4e9e\u5217\u514b
-currenciesDisplayName.BRN=\u5df4\u897f \u514b\u5982\u723e\u9054 \u8fb2\u74e6
currenciesDisplayName.MWK=\u99ac\u62c9\u7dad\u514b\u74e6\u67e5
currenciesDisplayName.BRL=\u5df4\u897f\u91cc\u62c9
-currenciesDisplayName.TPE=\u5e1d\u6c76 \u57c3\u65af\u5eab\u591a
+currenciesDisplayName.TPE=\u5e1d\u6c76\u57c3\u65af\u5eab\u591a
currenciesDisplayName.BRE=\u5df4\u897f\u514b\u9b6f\u8cfd\u7f85 (1990-1993)
currenciesDisplayName.BRC=\u5df4\u897f\u514b\u9b6f\u8cfd\u7f85 (1986-1989)
-currenciesDisplayName.BRB=\u5df4\u897f\u514b\u9b6f\u85a9\u591a \u8fb2\u74e6 (1967-1986)
+currenciesDisplayName.BRB=\u5df4\u897f\u514b\u9b6f\u85a9\u591a\u8fb2\u74e6\uff081967-1986\uff09
currenciesDisplayName.DEM=\u5fb7\u570b\u99ac\u514b
currenciesDisplayName.KWD=\u79d1\u5a01\u7279\u7b2c\u7d0d\u723e
currenciesDisplayName.XCD=\u683c\u745e\u90a3\u9054\u5143
currenciesDisplayName.NPR=\u5c3c\u6cca\u723e\u76e7\u5e03
currenciesDisplayName.GWP=\u5e7e\u5167\u4e9e\u62ab\u7d22\u62ab\u7d22
currenciesDisplayName.YUN=\u5357\u65af\u62c9\u592b \u53ef\u8f49\u63db\u7b2c\u7d0d\u723e
-currenciesDisplayName.SVC=\u611b\u723e \u85a9\u723e\u74e6\u591a\u79d1\u90ce
+currenciesDisplayName.SVC=\u85a9\u723e\u74e6\u591a\u79d1\u90ce
currenciesDisplayName.YUM=\u5357\u65af\u62c9\u592b\u632a\u5a01\u4e9e\u7b2c\u7d0d\u723e
currenciesDisplayName.BEL=\u6bd4\u5229\u6642\u6cd5\u90ce \uff08\u91d1\u878d\uff09
currenciesDisplayName.SIT=\u65af\u6d1b\u7dad\u5c3c\u4e9e\u6258\u52d2
currenciesDisplayName.JPY=\u65e5\u5713
-currenciesDisplayName.XOF=\u897f\u975e \u6cd5\u90ce BCEAO
+currenciesDisplayName.XOF=\u897f\u975e\u6cd5\u90ce BCEAO
currenciesDisplayName.MVR=\u99ac\u723e\u5730\u592b\u6d77\u5cf6\u76e7\u975e\u4e9e
-currenciesDisplayName.GWE=\u8461\u5c6c\u5e7e\u5167\u4e9e\u57c3\u65af\u5eab\u591a
currenciesDisplayName.BEF=\u6bd4\u5229\u6642\u6cd5\u90ce
+currenciesDisplayName.GWE=\u8461\u5c6c\u5e7e\u5167\u4e9e\u57c3\u65af\u5eab\u591a
currenciesDisplayName.TOP=\u6771\u52a0\u6f58\u52a0
currenciesDisplayName.YUD=\u5357\u65af\u62c9\u592b\u7b2c\u7d0d\u723e\u786c\u5e63
currenciesDisplayName.BEC=\u6bd4\u5229\u6642\u6cd5\u90ce \uff08\u53ef\u8f49\u63db\uff09
currenciesDisplayName.SUR=\u8607\u806f\u76e7\u5e03
-currenciesDisplayName.ROL=\u7f85\u99ac\u5c3c\u4e9e\u5217\u4f0a
-currenciesDisplayName.DDM=\u6771\u5fb7\u6771\u5fb7\u99ac\u514b
+currenciesDisplayName.RON=\u7f85\u99ac\u5c3c\u4e9e\u5217\u4f0a
+currenciesDisplayName.ROL=\u820a\u7f85\u99ac\u5c3c\u4e9e\u5217\u4f0a
currenciesDisplayName.BDT=\u5b5f\u52a0\u62c9\u5854\u5361
+currenciesDisplayName.DDM=\u6771\u5fb7\u5967\u65af\u7279\u99ac\u514b
currenciesDisplayName.XBD=\u6b50\u6d32\u6703\u8a08\u55ae\u4f4d(XBD)
currenciesDisplayName.AWG=\u963f\u9b6f\u5df4\u76fe
currenciesDisplayName.XBC=\u6b50\u6d32\u6703\u8a08\u55ae\u4f4d(XBC)
-currenciesDisplayName.XBB=\u6b50\u6d32\u8ca8\u5e63\u55ae\u4f4d
+currenciesDisplayName.XBB=\u6b50\u6d32\u8ca8\u5e63\u55ae\u4f4d XBB
currenciesDisplayName.XBA=\u6b50\u6d32\u7d9c\u5408\u55ae\u4f4d
currenciesDisplayName.NOK=\u632a\u5a01\u514b\u7f85\u7d0d
currenciesDisplayName.MUR=\u6a21\u91cc\u897f\u65af\u76e7\u5e03
currenciesDisplayName.ZAR=\u5357\u975e\u862d\u7279
-currenciesDisplayName.SHP=\u8056\u8d6b\u52d2\u62ff \u938a
+currenciesDisplayName.SHP=\u8056\u8d6b\u52d2\u62ff\u938a
currenciesDisplayName.XAU=\u9ec3\u91d1
currenciesDisplayName.ZAL=\u5357\u975e - \u862d\u7279 (\u91d1\u878d)
-currenciesDisplayName.TZS=\u5766\u6851\u5c3c\u4e9e \u5148\u4ee4
+currenciesDisplayName.TZS=\u5766\u5c1a\u5c3c\u4e9e\u5148\u4ee4
currenciesDisplayName.GIP=\u76f4\u5e03\u7f85\u9640\u938a
currenciesDisplayName.TND=\u7a81\u5c3c\u897f\u4e9e\u7b2c\u7d0d\u723e
-currenciesDisplayName.CVE=\u7dad\u5fb7\u89d2\u57c3\u65af\u5eab\u591a
+currenciesDisplayName.CVE=\u7dad\u5fb7\u89d2\u76fe
currenciesDisplayName.UGX=\u70cf\u5e72\u9054\u5148\u4ee4
+currenciesDisplayName.XAG=XAG
currenciesDisplayName.ZMK=\u5c1a\u6bd4\u4e9e\u514b\u74e6\u67e5
currenciesDisplayName.JOD=\u7d04\u65e6\u7b2c\u7d0d\u723e
-currenciesDisplayName.XAF=\u897f\u975e \u6cd5\u90ce BEAC
+currenciesDisplayName.XAF=\u897f\u975e\u6cd5\u90ce BEAC
currenciesDisplayName.LBP=\u9ece\u5df4\u5ae9\u938a
currenciesDisplayName.UGS=\u70cf\u5e72\u9054\u5148\u4ee4 (1966-1987)
currenciesDisplayName.STD=\u8056\u591a\u7f8e\u5cf6\u548c\u666e\u6797\u897f\u6bd4\u5cf6\u591a\u5e03\u62c9
currenciesDisplayName.WST=\u897f\u85a9\u6469\u4e9e\u5854\u62c9
currenciesDisplayName.KHR=\u67ec\u57d4\u5be8\u745e\u723e
-currenciesDisplayName.EUR=\u6b50\u5143
currenciesDisplayName.DOP=\u591a\u660e\u5c3c\u52a0\u62ab\u7d22
-currenciesDisplayName.BOV=\u73bb\u5229\u7dad\u4e9e \u5e55\u591a
+currenciesDisplayName.EUR=\u6b50\u5143
+currenciesDisplayName.BOV=\u73bb\u5229\u7dad\u4e9e\u5e55\u591a
currenciesDisplayName.MTP=\u99ac\u723e\u4ed6\u938a
+currenciesDisplayName.USS=\u7f8e\u5143 (\u7576\u65e5)
currenciesDisplayName.BOP=\u73bb\u5229\u7dad\u4e9e\u62ab\u7d22
-currenciesDisplayName.MTL=\u99ac\u723e\u4ed6\u91cc\u62c9
currenciesDisplayName.CUP=\u53e4\u5df4\u62ab\u7d22
+currenciesDisplayName.MTL=\u99ac\u723e\u4ed6\u91cc\u62c9
currenciesDisplayName.TMM=\u571f\u5eab\u66fc\u99ac\u7d0d\u7279
-currenciesDisplayName.USN=\u7f8e\u5143 (\u7b2c\u4e8c\u5929)
+currenciesDisplayName.USN=\u7f8e\u5143 (\u6b21\u65e5)
currenciesDisplayName.SGD=\u65b0\u52a0\u5761\u5e63
currenciesDisplayName.NZD=\u7d10\u897f\u862d\u5e63
-currenciesDisplayName.HNL=\u6d2a\u90fd\u62c9\u65af\u502b\u76ae\u62c9
currenciesDisplayName.BOB=\u73bb\u5229\u7dad\u4e9e\u8ca8\u5e63\u55ae\u4f4d
+currenciesDisplayName.HNL=\u6d2a\u90fd\u62c9\u65af\u502b\u76ae\u62c9
+currenciesDisplayName.CHW=WIR \u6cd5\u90ce
currenciesDisplayName.ITL=\u7fa9\u5927\u5229\u91cc\u62c9
currenciesDisplayName.PAB=\u5df4\u62ff\u99ac\u5df4\u6ce2\u4e9e
currenciesDisplayName.GTQ=\u74dc\u5730\u99ac\u62c9\u683c\u67e5\u723e
-currenciesDisplayName.LAK=\u8001\u64be \u958b\u666e
-currenciesDisplayName.GHC=\u8fe6\u7d0d\u4ed9\u8515
+currenciesDisplayName.XXX=XXX
currenciesDisplayName.AUD=\u6fb3\u5e63
+currenciesDisplayName.GHC=\u8fe6\u7d0d\u585e\u5730
+currenciesDisplayName.LAK=\u5bee\u570b\u57fa\u666e
currenciesDisplayName.NAD=\u7d0d\u7c73\u6bd4\u4e9e\u5143
currenciesDisplayName.KGS=\u5409\u723e\u5409\u65af\u7d22\u99ac
currenciesDisplayName.MGF=\u99ac\u9054\u52a0\u65af\u52a0\u6cd5\u90ce
currenciesDisplayName.BBD=\u5df4\u8c9d\u591a\u5143
+currenciesDisplayName.CHE=WIR \u6b50\u5143
currenciesDisplayName.MGA=\u99ac\u9054\u52a0\u65af\u52a0\u827e\u745e\u723e
currenciesDisplayName.PYG=\u5df4\u62c9\u572d\u74dc\u62c9\u5c3c
currenciesDisplayName.PLZ=\u6ce2\u862d\u8332\u7f85\u63d0 (1950-1995)
-currenciesDisplayName.YER=\u4e5f\u9580\u91cc\u4e9e\u723e
+currenciesDisplayName.YER=\u8449\u9580\u91cc\u96c5
currenciesDisplayName.ATS=\u5967\u5730\u5229\u5148\u4ee4
currenciesDisplayName.ETB=\u8863\u7d22\u6bd4\u4e9e\u6bd4\u723e
currenciesDisplayName.BND=\u6c76\u840a\u5143
-currenciesDisplayName.JMD=\u7259\u8cb7\u52a0\u5143
currenciesDisplayName.EGP=\u57c3\u53ca\u938a
+currenciesDisplayName.JMD=\u7259\u8cb7\u52a0\u5143
currenciesDisplayName.PLN=\u6ce2\u862d\u8332\u7f85\u63d0
currenciesDisplayName.DZD=\u963f\u723e\u53ca\u5229\u4e9e\u7b2c\u7d0d\u723e
currenciesDisplayName.ISK=\u51b0\u5cf6\u514b\u6717
currenciesDisplayName.SRG=\u8607\u91cc\u5357\u76fe
currenciesDisplayName.LYD=\u5229\u6bd4\u4e9e\u7b2c\u7d0d\u723e
-currenciesDisplayName.BZD=\u4f2f\u5229\u8332\u5143
+currenciesDisplayName.SRD=\u8607\u5229\u5357\u5143
currenciesDisplayName.BAM=\u6ce2\u58eb\u5c3c\u4e9e-\u9ed1\u585e\u54e5\u7dad\u90a3\u53ef\u8f49\u63db\u99ac\u514b
+currenciesDisplayName.BZD=\u8c9d\u91cc\u65af\u5143
currenciesDisplayName.ESP=\u897f\u73ed\u7259\u966a\u58eb\u7279
-currenciesDisplayName.KRW=\u97d3\u570b\u571c
+currenciesDisplayName.KRW=\u97d3\u5713
currenciesDisplayName.NLG=\u8377\u862d\u76fe
currenciesDisplayName.MRO=\u8305\u5229\u5854\u5c3c\u4e9e\u70cf\u5409\u4e9e
currenciesDisplayName.BAD=\u6ce2\u58eb\u5c3c\u4e9e-\u9ed1\u585e\u54e5\u7dad\u90a3\u7b2c\u7d0d\u723e
@@ -233,31 +251,134 @@ currenciesDisplayName.ZWD=\u8f9b\u5df4\u5a01\u5143
currenciesDisplayName.SEK=\u745e\u5178\u514b\u7f85\u7d0d
currenciesDisplayName.CSK=\u6377\u514b\u65af\u6d1b\u4f10\u514b\u786c\u514b\u6717
currenciesDisplayName.BYR=\u767d\u4fc4\u7f85\u65af\u76e7\u5e03
+currenciesDisplayName.ESB=\u897f\u73ed\u7259\u6bd4\u585e\u5854\uff08\u53ef\u8f49\u63db\u6703\u8a08\u55ae\u4f4d\uff09
currenciesDisplayName.IRR=\u4f0a\u6717\u91cc\u4e9e\u723e
+currenciesDisplayName.ESA=\u897f\u73ed\u7259\u6bd4\u585e\u5854\uff08\u6703\u8a08\u55ae\u4f4d\uff09
currenciesDisplayName.PKR=\u5df4\u57fa\u65af\u5766\u76e7\u5e03
currenciesDisplayName.BMD=\u767e\u6155\u9054\u5e63
+currenciesDisplayName.CSD=\u820a\u585e\u723e\u7dad\u4e9e\u7b2c\u7d0d\u723e
+currenciesSymbol.XCD=EC$
+currenciesSymbol.BGL=lev
+currenciesSymbol.LKR=SL Re
+currenciesSymbol.KES=K Sh
+currenciesSymbol.CYP=\u00a3C
+currenciesSymbol.BYR=Rbl
+currenciesSymbol.VUV=VT
+currenciesSymbol.MKD=MDen
+currenciesSymbol.MWK=MK
+currenciesSymbol.BMD=Ber$
+currenciesSymbol.IEP=IR\u00a3
+currenciesSymbol.SCR=SR
+currenciesSymbol.AMD=dram
+currenciesSymbol.TOP=T$
+currenciesSymbol.SOS=Sh.
+currenciesSymbol.NPR=Nrs
+currenciesSymbol.CLP=Ch$
+currenciesSymbol.KWD=KD
+currenciesSymbol.GEL=lari
+currenciesSymbol.AFN=Af
+currenciesSymbol.ZAR=R
+currenciesSymbol.RON=0\u2264lei|1\u2264leu|1
+currenciesSymbol.IQD=ID
+currenciesSymbol.ARS=Arg$
+currenciesSymbol.JPY=\uffe5
+currenciesSymbol.ALL=lek
+currenciesSymbol.CRC=C
+currenciesSymbol.IDR=Rp
+currenciesSymbol.DKK=DKr
+currenciesSymbol.TZS=T Sh
+currenciesSymbol.SBD=SI$
+currenciesSymbol.NOK=NKr
currenciesSymbol.MOP=MOP
-currenciesSymbol.SGD=SGD
-currenciesSymbol.KRW=KRW
+currenciesSymbol.UGX=U Sh
+currenciesSymbol.BEF=BF
+currenciesSymbol.TTD=TT$
+currenciesSymbol.PHP=Php
+currenciesSymbol.SZL=E
+currenciesSymbol.STD=Db
+currenciesSymbol.FJD=F$
+currenciesSymbol.UYU=Ur$
+currenciesSymbol.BDT=Tk
+currenciesSymbol.QAR=QR
+currenciesSymbol.MNT=Tug
+currenciesSymbol.LBP=LL
+currenciesSymbol.DJF=DF
+currenciesSymbol.JOD=JD
+currenciesSymbol.USD=$
+currenciesSymbol.SGD=S$
+currenciesSymbol.KHR=CR
+currenciesSymbol.SYP=LS
+currenciesSymbol.MTL=Lm
+currenciesSymbol.MZN=MTn
+currenciesSymbol.MZM=Mt
+currenciesSymbol.YER=YRl
+currenciesSymbol.HUF=Ft
+currenciesSymbol.CVE=CVEsc
currenciesSymbol.NZD=$NZ
-currenciesSymbol.EUR=EUR
-currenciesSymbol.GBP=GBP
+currenciesSymbol.OMR=RO
+currenciesSymbol.KZT=T
+currenciesSymbol.EUR=\u20ac
+currenciesSymbol.INR=0\u2264Rs.|1\u2264Re.|1<Rs.
+currenciesSymbol.DOP=RD$
+currenciesSymbol.GBP=\u00a3
+currenciesSymbol.NAD=N$
+currenciesSymbol.GHS=GH\u00a2
+currenciesSymbol.COP=Col$
+currenciesSymbol.TRL=TL
+currenciesSymbol.ITL=\u20a4
+currenciesSymbol.HNL=L
+currenciesSymbol.KGS=som
+currenciesSymbol.ZWD=Z$
+currenciesSymbol.MYR=RM
+currenciesSymbol.SRG=Sf
+currenciesSymbol.GTQ=Q
+currenciesSymbol.BIF=Fbu
+currenciesSymbol.VEF=BsF
+currenciesSymbol.PLN=Zl
+currenciesSymbol.LSL=M
+currenciesSymbol.GNF=GF
+currenciesSymbol.VEB=Be
+currenciesSymbol.BOB=Bs
+currenciesSymbol.KMF=CF
+currenciesSymbol.SEK=SKr
+currenciesSymbol.AUD=$A
+currenciesSymbol.LYD=LD
+currenciesSymbol.JMD=J$
+currenciesSymbol.SKK=Sk
+currenciesSymbol.CHF=SwF
+currenciesSymbol.ETB=Br
+currenciesSymbol.MRO=UM
+currenciesSymbol.BBD=BDS$
+currenciesSymbol.KRW=\uffe6
+currenciesSymbol.PKR=Pra
+currenciesSymbol.BTN=Nu
+currenciesSymbol.BHD=BD
+currenciesSymbol.XPF=CFPF
+currenciesSymbol.MXN=MEX$
+currenciesSymbol.DZD=DA
+currenciesSymbol.ANG=NA f.
+currenciesSymbol.ESP=\u20a7
+currenciesSymbol.BZD=BZ$
+currenciesSymbol.IRR=RI
+currenciesSymbol.GYD=G$
+currenciesSymbol.BAM=KM
+currenciesSymbol.CAD=Can$
+shortMonths=1\u6708\u00ae2\u6708\u00ae3\u6708\u00ae4\u6708\u00ae5\u6708\u00ae6\u6708\u00ae7\u6708\u00ae8\u6708\u00ae9\u6708\u00ae10\u6708\u00ae11\u6708\u00ae12\u6708\u00ae\u00ae
+months=1\u6708\u00ae2\u6708\u00ae3\u6708\u00ae4\u6708\u00ae5\u6708\u00ae6\u6708\u00ae7\u6708\u00ae8\u6708\u00ae9\u6708\u00ae10\u6708\u00ae11\u6708\u00ae12\u6708\u00ae\u00ae
+shortWeekdays=\u00ae\u9031\u65e5\u00ae\u9031\u4e00\u00ae\u9031\u4e8c\u00ae\u9031\u4e09\u00ae\u9031\u56db\u00ae\u9031\u4e94\u00ae\u9031\u516d\u00ae
shortDateFormat=yyyy/M/d
mediumDateFormat=yyyy/M/d
-longDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'
-fullDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'EEEE
-shortTimeFormat=a h:mm
-mediumTimeFormat=a h:mm:ss
-longTimeFormat=ahh'\u6642'mm'\u5206'ss'\u79d2'
-fullTimeFormat=ahh'\u6642'mm'\u5206'ss'\u79d2' z
-zoneStrings=America/Halifax®\u5927\u897f\u6d0b\u6a19\u6e96\u6642\u9593®\u5927\u897f\u6d0b\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©America/Indianapolis®\u6771\u90e8\u6a19\u6e96\u6642\u9593®\u6771\u90e8\u6a19\u6e96\u6642\u9593®©Europe/Paris®\u4e2d\u6b50\u6a19\u6e96\u6642\u9593®\u4e2d\u6b50\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©America/Phoenix®\u5c71\u5340\u6a19\u6e96\u6642\u9593®\u5c71\u5340\u6a19\u6e96\u6642\u9593®©America/Los_Angeles®\u592a\u5e73\u6d0b\u6a19\u6e96\u6642\u9593®\u592a\u5e73\u6d0b\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Pacific/Honolulu®\u590f\u5a01\u5937\u6a19\u6e96\u6642\u9593®\u590f\u5a01\u5937\u6a19\u6e96\u6642\u9593®©America/Denver®\u5c71\u5340\u6a19\u6e96\u6642\u9593®\u5c71\u5340\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Europe/Bucharest®\u6771\u6b50\u6a19\u6e96\u6642\u9593®\u6771\u6b50\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©America/New_York®\u6771\u90e8\u6a19\u6e96\u6642\u9593®\u6771\u90e8\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Asia/Tokyo®\u65e5\u672c\u6a19\u6e96\u6642\u9593®\u65e5\u672c\u6a19\u6e96\u6642\u9593®©America/Anchorage®\u963f\u62c9\u65af\u52a0\u6a19\u6e96\u6642\u9593®\u963f\u62c9\u65af\u52a0\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Asia/Shanghai®\u4e2d\u570b\u6a19\u6e96\u6642\u9593®\u4e2d\u570b\u6a19\u6e96\u6642\u9593®©America/Chicago®\u4e2d\u90e8\u6a19\u6e96\u6642\u9593®\u4e2d\u90e8\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Africa/Casablanca®\u683c\u6797\u5a01\u6cbb\u6a19\u6e96\u6642\u9593®\u683c\u6797\u5a01\u6cbb\u6a19\u6e96\u6642\u9593®©America/St_Johns®\u7d10\u82ac\u862d\u6a19\u6e96\u6642\u9593®\u7d10\u82ac\u862d\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©Asia/Jerusalem®\u4ee5\u8272\u5217\u6a19\u6e96\u6642\u9593®\u4ee5\u8272\u5217\u65e5\u5149\u7bc0\u7d04\u6642\u9593®©
-territories.TL=\u6771\u5e1d\u6587
+mediumTimeFormat=ah:mm:ss
+longTimeFormat=zahh\u6642mm\u5206ss\u79d2
+fullTimeFormat=zah\u6642mm\u5206ss\u79d2
+zoneStrings=Europe_Central\u00ae\u4e2d\u6b50\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u4e2d\u6b50\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Africa_Western\u00ae\u897f\u975e\u6642\u9593\u00ae\u00ae\u897f\u975e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Urumqi\u00ae\u70cf\u9b6f\u6728\u9f4a\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Uralsk\u00ae\u70cf\u62c9\u65af\u514b\u6642\u9593\u00ae\u00ae\u70cf\u62c9\u65af\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Borneo\u00ae\u5a46\u7f85\u6d32\u6642\u9593\u00ae\u00ae\u5a46\u7f85\u6d32\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Australia_Eastern\u00ae\u6fb3\u6d32\u6771\u90e8\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u6fb3\u6d32\u6771\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Aqtau\u00ae\u963f\u514b\u9676\u6642\u9593\u00aeAQTT\uff08\u963f\u514b\u9676\uff09\u00ae\u963f\u514b\u9676\u590f\u4ee4\u6642\u9593\u00aeAQTST\uff08\u963f\u514b\u9676\uff09\u00ae\u00a9Kazakhstan_Western\u00ae\u897f\u54c8\u85a9\u514b\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Sverdlovsk\u00ae\u65af\u7dad\u723e\u5fb7\u6d1b\u592b\u65af\u514b\u6642\u9593\u00ae\u00ae\u65af\u7dad\u723e\u5fb7\u6d1b\u592b\u65af\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Bangladesh\u00ae\u5b5f\u52a0\u62c9\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Samarkand\u00ae\u6492\u99ac\u723e\u7f55\u6642\u9593\u00aeSAMT\uff08\u6492\u99ac\u723e\u7f55\uff09\u00ae\u6492\u99ac\u723e\u7f55\u590f\u4ee4\u6642\u9593\u00aeSAMST\uff08\u6492\u99ac\u723e\u7f55\uff09\u00ae\u00a9Long_Shu\u00ae\u96b4\u8700\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Azerbaijan\u00ae\u4e9e\u585e\u62dc\u7136\u6642\u9593\u00ae\u00ae\u4e9e\u585e\u62dc\u7136\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Amazon\u00ae\u4e9e\u99ac\u905c\u6642\u9593\u00ae\u00ae\u4e9e\u99ac\u905c\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Arabian\u00ae\u963f\u62c9\u4f2f\u6a19\u6e96\u6642\u9593\u00aeAST\uff08\u963f\u62c9\u4f2f\uff09\u00ae\u963f\u62c9\u4f2f\u590f\u4ee4\u6642\u9593\u00aeADT\uff08\u963f\u62c9\u4f2f\uff09\u00ae\u00a9Yekaterinburg\u00ae\u51f1\u85a9\u7433\u5821\u6642\u9593\u00ae\u00ae\u51f1\u85a9\u7433\u5821\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Alaska\u00ae\u963f\u62c9\u65af\u52a0\u6a19\u6e96\u6642\u9593\u00ae\u963f\u62c9\u65af\u52a0\u6a19\u6e96\u6642\u9593\u00ae\u963f\u62c9\u65af\u52a0\u590f\u4ee4\u6642\u9593\u00ae\u963f\u62c9\u65af\u52a0\u6642\u9593\u00ae\u00a9Qyzylorda\u00ae\u514b\u5b5c\u52d2\u5967\u723e\u9054\u6642\u9593\u00ae\u00ae\u514b\u5b5c\u52d2\u5967\u723e\u9054\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Dutch_Guiana\u00ae\u8377\u5c6c\u572d\u4e9e\u90a3\u6642\u9593\u00ae\u00ae\u8377\u5c6c\u572d\u4e9e\u90a3\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Indonesia_Western\u00ae\u5370\u5c3c\u897f\u90e8\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Indonesia_Eastern\u00ae\u5370\u5c3c\u6771\u90e8\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Aqtobe\u00ae\u963f\u514b\u6258\u6bd4\u6642\u9593\u00aeAQTT\uff08\u963f\u514b\u6258\u6bd4\uff09\u00ae\u963f\u514b\u6258\u6bd4\u590f\u4ee4\u6642\u9593\u00aeAQTST\uff08\u963f\u514b\u6258\u6bd4\uff09\u00ae\u00a9Kizilorda\u00ae\u5409\u529b\u7f85\u9054\u6642\u9593\u00ae\u00ae\u5409\u529b\u7f85\u9054\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Armenia\u00ae\u4e9e\u7f8e\u5c3c\u4e9e\u6642\u9593\u00aeAMT\uff08\u4e9e\u7f8e\u5c3c\u4e9e\uff09\u00ae\u4e9e\u7f8e\u5c3c\u4e9e\u590f\u4ee4\u6642\u9593\u00aeAMST\uff08\u4e9e\u7f8e\u5c3c\u4e9e\uff09\u00ae\u00a9America_Pacific\u00ae\u592a\u5e73\u6d0b\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u592a\u5e73\u6d0b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Almaty\u00ae\u963f\u62c9\u6728\u5716\u6642\u9593\u00ae\u00ae\u963f\u62c9\u6728\u5716\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Tajikistan\u00ae\u5854\u5409\u514b\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Hawaii_Aleutian\u00ae\u590f\u5a01\u5937-\u963f\u7559\u7533\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Dushanbe\u00ae\u675c\u5c1a\u5225\u6642\u9593\u00ae\u00ae\u675c\u5c1a\u5225\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Yerevan\u00ae\u8449\u91cc\u6eab\u6642\u9593\u00ae\u00ae\u8449\u91cc\u6eab\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Israel\u00ae\u4ee5\u8272\u5217\u6a19\u6e96\u6642\u9593\u00aeIST\uff08\u4ee5\u8272\u5217\uff09\u00ae\u4ee5\u8272\u5217\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Greenland_Western\u00ae\u683c\u9675\u862d\u897f\u90e8\u6642\u9593\u00ae\u00ae\u683c\u9675\u862d\u897f\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Europe_Eastern\u00ae\u6771\u6b50\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u6771\u6b50\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9North_Mariana\u00ae\u5317\u99ac\u91cc\u4e9e\u7d0d\u7fa4\u5cf6\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Newfoundland\u00ae\u7d10\u82ac\u862d\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u7d10\u82ac\u862d\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Australia_Western\u00ae\u6fb3\u6d32\u897f\u90e8\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u6fb3\u6d32\u897f\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Kyrgystan\u00ae\u5409\u723e\u5409\u65af\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Malaya\u00ae\u99ac\u4f86\u4e9e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Korea\u00ae\u97d3\u570b\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u97d3\u570b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Argentina_Western\u00ae\u963f\u6839\u5ef7\u897f\u90e8\u6642\u9593\u00ae\u00ae\u963f\u6839\u5ef7\u897f\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Africa_Eastern\u00ae\u6771\u975e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Turkmenistan\u00ae\u571f\u5eab\u66fc\u6642\u9593\u00ae\u00ae\u571f\u5eab\u66fc\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Pierre_Miquelon\u00ae\u8056\u5f7c\u5fb7\u8207\u5bc6\u555f\u5d19\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u8056\u5f7c\u5fb7\u8207\u5bc6\u555f\u5d19\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Atlantic\u00ae\u5927\u897f\u6d0b\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u5927\u897f\u6d0b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Alaska_Hawaii\u00ae\u963f\u62c9\u65af\u52a0-\u590f\u5a01\u5937\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u963f\u62c9\u65af\u52a0-\u590f\u5a01\u5937\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Uzbekistan\u00ae\u70cf\u8332\u5225\u514b\u6642\u9593\u00ae\u00ae\u70cf\u8332\u5225\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Lord_Howe\u00ae\u8c6a\u52f3\u7235\u5cf6\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u8c6a\u52f3\u7235\u5cf6\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Tbilisi\u00ae\u7b2c\u6bd4\u5229\u65af\u6642\u9593\u00ae\u00ae\u7b2c\u6bd4\u5229\u65af\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Malaysia\u00ae\u99ac\u4f86\u897f\u4e9e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Baku\u00ae\u5df4\u5eab\u6642\u9593\u00ae\u00ae\u5df4\u5eab\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9America_Eastern\u00ae\u6771\u90e8\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u6771\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Samoa\u00ae\u85a9\u6469\u4e9e\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Ecuador\u00ae\u5384\u74dc\u591a\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Acre\u00ae\u827e\u514b\u6642\u9593\u00aeACT\uff08\u827e\u514b\uff09\u00ae\u827e\u514b\u590f\u4ee4\u6642\u9593\u00aeACST\uff08\u827e\u514b\uff09\u00ae\u00a9Dacca\u00ae\u9054\u5361\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Choibalsan\u00ae\u55ac\u5df4\u5c71\u6642\u9593\u00ae\u00ae\u55ac\u5df4\u5c71\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Europe_Western\u00ae\u897f\u6b50\u6642\u9593\u00ae\u00ae\u897f\u6b50\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Africa_Central\u00ae\u4e2d\u975e\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Turkey\u00ae\u571f\u8033\u5176\u6642\u9593\u00ae\u00ae\u571f\u8033\u5176\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Africa_Southern\u00ae\u5357\u975e\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Ashkhabad\u00ae\u963f\u4ec0\u54c8\u5df4\u5fb7\u6642\u9593\u00ae\u00ae\u963f\u4ec0\u54c8\u5df4\u5fb7\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Bering\u00ae\u767d\u4ee4\u6a19\u6e96\u6642\u9593\u00aeBST\uff08\u767d\u4ee4\uff09\u00ae\u767d\u4ee4\u590f\u4ee4\u6642\u9593\u00aeBDT\uff08\u767d\u4ee4\uff09\u00ae\u00a9Guam\u00ae\u95dc\u5cf6\u6a19\u6e96\u6642\u9593\u00aeGST (\u95dc\u5cf6)\u00ae\u00ae\u00ae\u00a9Marshall_Islands\u00ae\u99ac\u7d39\u723e\u7fa4\u5cf6\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Bhutan\u00ae\u4e0d\u4e39\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Changbai\u00ae\u9577\u767d\u5c71\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Karachi\u00ae\u5580\u62c9\u86a9\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Tashkent\u00ae\u5854\u4ec0\u5e72\u6642\u9593\u00ae\u00ae\u5854\u4ec0\u5e72\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9East_Timor\u00ae\u6771\u5e1d\u6c76\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Argentina\u00ae\u963f\u6839\u5ef7\u6642\u9593\u00ae\u00ae\u963f\u6839\u5ef7\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Yukon\u00ae\u80b2\u7a7a\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u80b2\u7a7a\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9New_Zealand\u00ae\u7d10\u897f\u862d\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u7d10\u897f\u862d\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9China\u00ae\u4e2d\u570b\u6a19\u6e96\u6642\u9593\u00aeCST\uff08\u4e2d\u570b\uff09\u00ae\u4e2d\u570b\u590f\u4ee4\u6642\u9593\u00aeCDT\uff08\u4e2d\u570b\uff09\u00ae\u00a9Indonesia_Central\u00ae\u5370\u5c3c\u4e2d\u90e8\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9America_Mountain\u00ae\u5c71\u5340\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u5c71\u5340\u65e5\u5149\u7bc0\u7d04\u6642\u9593\u00ae\u00ae\u00a9India\u00ae\u5370\u5ea6\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Suriname\u00ae\u8607\u5229\u5357\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9GMT\u00ae\u683c\u6797\u5a01\u6cbb\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Samara\u00ae\u85a9\u99ac\u62c9\u6642\u9593\u00ae\u00ae\u85a9\u99ac\u62c9\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Chile\u00ae\u667a\u5229\u6642\u9593\u00ae\u00ae\u667a\u5229\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Brasilia\u00ae\u5df4\u897f\u5229\u4e9e\u6642\u9593\u00ae\u00ae\u5df4\u897f\u5229\u4e9e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Kazakhstan_Eastern\u00ae\u6771\u54c8\u85a9\u514b\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Mongolia\u00ae\u70cf\u862d\u5df4\u6258\u6642\u9593\u00ae\u00ae\u70cf\u862d\u5df4\u6258\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9America_Central\u00ae\u4e2d\u90e8\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u4e2d\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Frunze\u00ae\u4f0f\u9f8d\u829d\u6642\u9593\u00ae\u00ae\u4f0f\u9f8d\u829d\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Lanka\u00ae\u862d\u5361\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Kuybyshev\u00ae\u53e4\u6bd4\u96ea\u592b\u6642\u9593\u00ae\u00ae\u53e4\u6bd4\u96ea\u592b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Greenland_Eastern\u00ae\u683c\u9675\u862d\u6771\u90e8\u6642\u9593\u00ae\u00ae\u683c\u9675\u862d\u6771\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Azores\u00ae\u4e9e\u901f\u723e\u7fa4\u5cf6\u6642\u9593\u00ae\u00ae\u4e9e\u901f\u723e\u7fa4\u5cf6\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Japan\u00ae\u65e5\u672c\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u65e5\u672c\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Greenland_Central\u00ae\u683c\u9675\u862d\u4e2d\u90e8\u6642\u9593\u00ae\u00ae\u683c\u9675\u862d\u4e2d\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Kwajalein\u00ae\u74dc\u52a0\u6797\u74b0\u7901\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Shevchenko\u00ae\u00ae\u00ae\u820d\u752b\u7434\u79d1\u6642\u9593\u00ae\u00ae\u00a9Pakistan\u00ae\u5df4\u57fa\u65af\u5766\u6642\u9593\u00ae\u00ae\u5df4\u57fa\u65af\u5766\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Kashgar\u00ae\u5580\u4ec0\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Australia_Central\u00ae\u6fb3\u6d32\u4e2d\u90e8\u6a19\u6e96\u6642\u9593\u00ae\u00ae\u6fb3\u6d32\u4e2d\u90e8\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Georgia\u00ae\u55ac\u6cbb\u4e9e\u6642\u9593\u00ae\u00ae\u55ac\u6cbb\u4e9e\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Galapagos\u00ae\u52a0\u62c9\u5e15\u6208\u7fa4\u5cf6\u6642\u9593\u00ae\u00ae\u00ae\u00ae\u00a9Cuba\u00ae\u00aeCST\uff08\u53e4\u5df4\uff09\u00ae\u00aeCDT\uff08\u53e4\u5df4\uff09\u00ae\u00a9Macau\u00ae\u6fb3\u9580\u6642\u9593\u00ae\u00ae\u6fb3\u9580\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9Aktyubinsk\u00ae\u963f\u514b\u79cb\u8cd3\u65af\u514b\u6642\u9593\u00ae\u00ae\u963f\u514b\u79cb\u8cd3\u65af\u514b\u590f\u4ee4\u6642\u9593\u00ae\u00ae\u00a9
+territories.TL=\u6771\u5e1d\u6c76
territories.TK=\u6258\u514b\u52de\u7fa4\u5cf6
territories.TJ=\u5854\u5409\u514b
territories.TH=\u6cf0\u570b
territories.TG=\u591a\u54e5\u5171\u548c\u570b
-territories.TF=\u6cd5\u570b\u5357\u5c6c\u5730
-territories.GY=\u84cb\u4e9e\u7d0d
+territories.TF=\u6cd5\u5c6c\u5357\u65b9\u5c6c\u5730
+territories.GY=\u84cb\u4e9e\u90a3
territories.TD=\u67e5\u5fb7
territories.TC=\u571f\u514b\u65af\u53ca\u958b\u79d1\u65af\u7fa4\u5cf6
territories.GW=\u5e7e\u5167\u4e9e\u6bd4\u7d22
@@ -275,10 +396,11 @@ territories.GL=\u683c\u9675\u862d
territories.SV=\u85a9\u723e\u74e6\u591a
territories.062=\u4e2d\u5357\u4e9e
territories.ST=\u8056\u591a\u7f8e\u53ca\u666e\u6797\u897f\u6bd4
-territories.061=\u73bb\u91cc\u5c3c\u897f\u4e9e
territories.GI=\u76f4\u5e03\u7f85\u9640
+territories.061=\u73bb\u91cc\u5c3c\u897f\u4e9e
territories.GH=\u8fe6\u7d0d
territories.SR=\u8607\u5229\u5357
+territories.GG=\u6839\u897f\u5cf6
territories.GF=\u6cd5\u5c6c\u572d\u4e9e\u90a3
territories.GE=\u55ac\u6cbb\u4e9e\u5171\u548c\u570b
territories.SO=\u7d22\u99ac\u5229\u4e9e
@@ -296,37 +418,38 @@ territories.SC=\u585e\u5e2d\u723e
territories.SB=\u7d22\u7f85\u9580\u7fa4\u5cf6
territories.SA=\u6c99\u70cf\u5730\u963f\u62c9\u4f2f
territories.FR=\u6cd5\u570b
-territories.057=\u5bc6\u514b\u7f85\u5c3c\u897f\u4e9e
territories.FO=\u6cd5\u7f85\u7fa4\u5cf6
+territories.057=\u5bc6\u514b\u7f85\u5c3c\u897f\u4e9e
territories.FM=\u5bc6\u514b\u7f85\u5c3c\u897f\u4e9e\u7fa4\u5cf6
territories.RW=\u76e7\u5b89\u9054
territories.054=\u7f8e\u62c9\u5c3c\u897f\u4e9e
-territories.053=\u6fb3\u6d32\u8207\u7d10\u897f\u862d
territories.FK=\u798f\u514b\u862d\u7fa4\u5cf6
+territories.053=\u6fb3\u6d32\u8207\u7d10\u897f\u862d
territories.RU=\u4fc4\u7f85\u65af
territories.FJ=\u6590\u6fdf
territories.FI=\u82ac\u862d
+territories.RS=\u585e\u723e\u7dad\u4e9e
territories.RO=\u7f85\u99ac\u5c3c\u4e9e
territories.RE=\u7559\u5c3c\u65fa
territories.ET=\u8863\u7d22\u6bd4\u4e9e
territories.ER=\u5384\u5229\u5782\u4e9e
-territories.833=\u66fc\u5cf6
-territories.830=\u6d77\u5cfd\u7fa4\u5cf6
+territories.QU=\u6b50\u76df
territories.EE=\u611b\u6c99\u5c3c\u4e9e
+territories.830=\u6d77\u5cfd\u7fa4\u5cf6
territories.QO=\u5927\u6d0b\u6d32\u908a\u7586\u7fa4\u5cf6
-territories.EC=\u5384\u74dc\u591a\u723e
+territories.EC=\u5384\u74dc\u591a
territories.DZ=\u963f\u723e\u53ca\u5229\u4e9e
territories.QA=\u5361\u9054
territories.039=\u5357\u6b50
territories.DO=\u591a\u660e\u5c3c\u52a0\u5171\u548c\u570b
-territories.035=\u6771\u5357\u4e9e
territories.DM=\u591a\u660e\u5c3c\u52a0
+territories.035=\u6771\u5357\u4e9e
territories.PW=\u5e1b\u7409
+territories.034=\u5357\u4e9e
territories.DK=\u4e39\u9ea5
territories.DJ=\u5409\u5e03\u5730
territories.PS=\u5df4\u52d2\u65af\u5766
territories.030=\u6771\u4e9e
-territories.PR=\u73bb\u591a\u9ece\u514b
territories.DE=\u5fb7\u570b
territories.PN=\u76ae\u7279\u5eb7
territories.PM=\u8056\u5f7c\u5fb7\u8207\u5bc6\u555f\u5d19
@@ -357,19 +480,23 @@ territories.BY=\u767d\u4fc4\u7f85\u65af
territories.BW=\u6ce2\u672d\u90a3
territories.BV=\u5e03\u5a01\u5cf6
territories.BS=\u5df4\u54c8\u99ac
+territories.018=\u975e\u6d32\u5357\u90e8
territories.NZ=\u7d10\u897f\u862d
territories.BO=\u73bb\u5229\u7dad\u4e9e
territories.BN=\u6c76\u840a
territories.BM=\u767e\u6155\u9054
territories.014=\u6771\u975e
+territories.BL=\u8056\u5df4\u745f\u7c73
territories.NU=\u7d10\u5a01\u5cf6
territories.BJ=\u8c9d\u5357
-territories.BI=\u6d66\u9686\u5730
+territories.BI=\u84b2\u9686\u5730
+territories.172=\u7368\u7acb\u570b\u5354
territories.NR=\u8afe\u9b6f
territories.BG=\u4fdd\u52a0\u5229\u4e9e
-territories.BF=\u5e03\u57fa\u7d0d\u6cd5\u7d22
+territories.BF=\u5e03\u5409\u7d0d\u6cd5\u7d22
territories.NP=\u5c3c\u6cca\u723e
territories.BE=\u6bd4\u5229\u6642
+territories.ZZ=\u672a\u78ba\u5b9a\u7684\u5340\u57df
territories.BD=\u5b5f\u52a0\u62c9
territories.BB=\u5df4\u8c9d\u591a
territories.ZW=\u8f9b\u5df4\u5a01
@@ -379,7 +506,7 @@ territories.NG=\u5948\u53ca\u5229\u4e9e
territories.NF=\u8afe\u798f\u514b\u5cf6
territories.AZ=\u4e9e\u585e\u62dc\u7136
territories.NE=\u5c3c\u65e5
-territories.AX=\u4e9e\u862d\u7fa4\u5cf6
+territories.AX=\u5967\u862d\u7fa4\u5cf6
territories.NC=\u65b0\u5580\u91cc\u591a\u5c3c\u4e9e\u7fa4\u5cf6
territories.AW=\u963f\u8def\u5df4
territories.ZM=\u5c1a\u6bd4\u4e9e
@@ -389,40 +516,42 @@ territories.AT=\u5967\u5730\u5229
territories.AS=\u7f8e\u5c6c\u85a9\u6469\u4e9e\u7fa4\u5cf6
territories.AQ=\u5357\u6975\u6d32
territories.MZ=\u83ab\u4e09\u6bd4\u514b
-territories.AN=\u8377\u5c6c\u5b89\u5730\u5217\u65af
territories.MY=\u99ac\u4f86\u897f\u4e9e
+territories.AN=\u8377\u5c6c\u5b89\u5730\u5217\u65af
territories.AM=\u4e9e\u7f8e\u5c3c\u4e9e
-territories.AL=\u963f\u723e\u5df4\u5c3c\u4e9e
territories.MW=\u99ac\u62c9\u5a01
+territories.AL=\u963f\u723e\u5df4\u5c3c\u4e9e
territories.MV=\u99ac\u723e\u5730\u592b
territories.MU=\u6a21\u91cc\u897f\u65af
-territories.AI=\u5b89\u572d\u62c9\u5cf6
territories.MT=\u99ac\u723e\u4ed6
+territories.AI=\u5b89\u572d\u62c9\u5cf6
territories.MS=\u8499\u7279\u8272\u62c9\u7279\u5cf6
-territories.AG=\u5b89\u5730\u5361\u53ca\u5df4\u5e03\u9054
territories.MR=\u8305\u5229\u5854\u5c3c\u4e9e
+territories.AG=\u5b89\u5730\u5361\u53ca\u5df4\u5e03\u9054
territories.MQ=\u99ac\u4e01\u5c3c\u514b\u5cf6
+territories.MP=\u5317\u99ac\u91cc\u4e9e\u7d0d\u7fa4\u5cf6
territories.AE=\u963f\u62c9\u4f2f\u806f\u5408\u5927\u516c\u570b
-territories.MP=\u5317\u99ac\u91cc\u5b89\u7d0d
+territories.MO=\u6fb3\u9580
territories.AD=\u5b89\u9053\u723e
-territories.MO=\u4e2d\u83ef\u4eba\u6c11\u5171\u548c\u570b\u6fb3\u9580\u7279\u5225\u884c\u653f\u5340
territories.MM=\u7dec\u7538
territories.ML=\u99ac\u5229
territories.MK=\u99ac\u5176\u9813
territories.YT=\u99ac\u7d04\u7279
territories.MH=\u99ac\u7d39\u723e\u7fa4\u5cf6
territories.MG=\u99ac\u9054\u52a0\u65af\u52a0
+territories.MF=\u8056\u99ac\u4e01
+territories.ME=\u8499\u7279\u5167\u54e5\u7f85
territories.MD=\u6469\u723e\u591a\u74e6
territories.MC=\u6469\u7d0d\u54e5
territories.YE=\u8449\u9580
territories.LY=\u5229\u6bd4\u4e9e
-territories.155=\u897f\u6b50
territories.LV=\u62c9\u812b\u7dad\u4e9e
-territories.154=\u5317\u6b50
+territories.155=\u897f\u6b50
territories.LU=\u76e7\u68ee\u5821
+territories.154=\u5317\u6b50
territories.LS=\u8cf4\u7d22\u6265
-territories.151=\u6771\u6b50
territories.LR=\u8cf4\u6bd4\u745e\u4e9e
+territories.151=\u6771\u6b50
territories.150=\u6b50\u6d32
territories.LK=\u65af\u91cc\u862d\u5361
territories.LI=\u5217\u652f\u6566\u65af\u767b
@@ -431,6 +560,7 @@ territories.LA=\u5bee\u570b
territories.KZ=\u54c8\u85a9\u514b
territories.KY=\u958b\u66fc\u7fa4\u5cf6
territories.145=\u897f\u4e9e
+territories.143=\u4e2d\u4e9e
territories.142=\u4e9e\u6d32
territories.KR=\u5357\u97d3
territories.KP=\u5317\u97d3
@@ -438,23 +568,24 @@ territories.KN=\u8056\u514b\u91cc\u65af\u591a\u798f\u53ca\u5c3c\u7dad\u65af
territories.KM=\u79d1\u6469\u7f85\u7fa4\u5cf6
territories.KI=\u5409\u91cc\u5df4\u65af
territories.WS=\u85a9\u6469\u4e9e\u7fa4\u5cf6
-territories.KH=\u9ad8\u68c9
territories.KG=\u5409\u723e\u5409\u65af
territories.KE=\u80af\u4e9e
territories.WF=\u74e6\u5229\u65af\u548c\u798f\u675c\u7d0d\u7fa4\u5cf6
territories.JO=\u7d04\u65e6
territories.JM=\u7259\u8cb7\u52a0
territories.VU=\u842c\u90a3\u675c
-territories.VI=\u7f8e\u5c6c\u7dad\u723e\u4eac\u7fa4\u5cf6
-territories.VG=\u82f1\u5c6c\u7dad\u723e\u4eac\u7fa4\u5cf6
+territories.JE=\u6fa4\u897f\u5cf6
+territories.VI=\u7f8e\u5c6c\u7dad\u4eac\u7fa4\u5cf6
+territories.VG=\u82f1\u5c6c\u7dad\u4eac\u7fa4\u5cf6
territories.VE=\u59d4\u5167\u745e\u62c9
territories.VC=\u8056\u6587\u68ee\u53ca\u683c\u745e\u90a3\u4e01
-territories.VA=\u68b5\u5e1d\u5ca1
+territories.VA=\u68b5\u8482\u5ca1
territories.IT=\u7fa9\u5927\u5229
territories.IS=\u51b0\u5cf6
territories.UZ=\u70cf\u8332\u5225\u514b
territories.IO=\u82f1\u5c6c\u5370\u5ea6\u6d0b\u9818\u571f
territories.UY=\u70cf\u62c9\u572d
+territories.IM=\u66fc\u5cf6
territories.US=\u7f8e\u570b
territories.IE=\u611b\u723e\u862d
territories.ID=\u5370\u5c3c
@@ -475,72 +606,82 @@ territories.TM=\u571f\u5eab\u66fc
languages.gwi=\u572d\u5951\u6587
languages.eka=\u827e\u5361\u6731\u514b\u6587
languages.ijo=\u4f0a\u55ac\u6587
-languages.xh=\u73ed\u5716\u6587
+languages.xh=\u79d1\u85a9\u6587
languages.sux=\u8607\u7f8e\u6587
languages.sus=\u8607\u8607\u6587
-languages.mis=\u5176\u4ed6\u8a9e\u8a00
+languages.mis=\u6df7\u96dc\u8a9e\u8af8\u8a9e\u8a00
languages.loz=\u6d1b\u9f4a\u6587
languages.tog=\u6e6f\u52a0\u6587(\u5c3c\u4e9e\u85a9\u6587)
+languages.zbl=\u5e03\u5217\u65af\u7b26\u865f
languages.pon=\u6ce2\u90a3\u8c9d\u6587
languages.min=\u7c73\u5357\u5361\u5821\u6587
languages.suk=\u8607\u5eab\u99ac\u6587
languages.wo=\u6c83\u723e\u592b\u6587
+languages.lol=\u8292\u6208\u6587
languages.kut=\u5eab\u7279\u5948\u6587
languages.mic=\u7c73\u514b\u99ac\u514b\u6587
-languages.wa=\u74e6\u9686\u6587
languages.kum=\u5eab\u5bc6\u514b\u6587
languages.zap=\u85a9\u6ce2\u7279\u514b\u6587
-languages.cus=\u5eab\u65bd\u7279\u8a9e\u7cfb\uff08\u5176\u4ed6\uff09
-languages.doi=\u591a\u683c\u4f86\u6587
+languages.ain=\u611b\u52aa\u6587
+languages.cus=\u5eab\u65bd\u7279\u8af8\u8a9e\u8a00
languages.jbo=\u908f\u8f2f\u6587
-languages.oto=\u5967\u6258\u7c73\u6587
-languages.vai=\u8d8a\u5357\u6587
+languages.doi=\u591a\u683c\u4f86\u6587
+languages.oto=\u5967\u6258\u7c73\u8af8\u8a9e\u8a00
+languages.vi=\u8d8a\u5357\u6587
+languages.vai=\u74e6\u4f0a\u6587
languages.rar=\u62c9\u7f85\u901a\u52a0\u6587
-languages.ve=\u6eab\u9054\u6587
+languages.ve=\u6587\u9054\u6587
languages.rap=\u5fa9\u6d3b\u5cf6\u6587
languages.raj=\u62c9\u8cc8\u65af\u5766\u8af8\u6587
+languages.ota=\u5967\u65af\u66fc\u571f\u8033\u5176\u6587
languages.nzi=\u5c3c\u8332\u99ac\u6587
-languages.ota=\u9102\u5716\u66fc\u571f\u8033\u5176\u6587 (1500-1928)
languages.uz=\u70cf\u8332\u5225\u514b\u6587
languages.uga=\u70cf\u52a0\u5217\u6587
languages.tmh=\u5854\u99ac\u5947\u514b\u6587
-languages.nai=\u5176\u4ed6\u5317\u7f8e\u5370\u5730\u5b89\u6587
+languages.nai=\u5317\u7f8e\u5370\u7b2c\u5b89\u8af8\u8a9e\u8a00
languages.nah=\u7d0d\u74e6\u7279\u6587
languages.ur=\u70cf\u723e\u90fd\u6587
languages.uk=\u70cf\u514b\u862d\u6587
-languages.egy=\u53e4\u57c3\u53ca\u6587)
+languages.egy=\u53e4\u57c3\u53ca\u6587
+languages.zxx=\u7121\u8a9e\u8a00\u5167\u5bb9
languages.ug=\u7dad\u543e\u723e\u6587
languages.fan=\u82b3\u65cf\u6587
-languages.ssa=\u975e\u6d32\u6492\u54c8\u62c9\u6c99\u6f20\u908a\u7de3\u5730\u5e36\u6587
-languages.bat=\u6ce2\u7f85\u7684\u6587\uff08\u5176\u4ed6\uff09
-languages.mga=\u611b\u723e\u862d\u6587\uff0c\u4e2d\u53e4 (900-1200)
-languages.bas=\u5df4\u85a9\u6587
+languages.ssa=\u5c3c\u7f85\u6492\u54c8\u62c9\u8af8\u8a9e\u8a00
+languages.mga=\u4e2d\u53e4\u611b\u723e\u862d\u6587
+languages.bat=\u6ce2\u7f85\u7684\u6d77\u8af8\u8a9e\u8a00
languages.nyo=\u5c3c\u5967\u56c9\u6587
+languages.bas=\u5df4\u85a9\u6587
languages.nyn=\u5c3c\u63da\u79d1\u840a\u6587
languages.nym=\u5c3c\u63da\u97cb\u9f4a\u6587
-languages.hmn=\u5b5f\u6587
-languages.ban=\u5df4\u5398\u6587
+languages.hmn=\u8d6b\u8499\u6587
+languages.ban=\u5cc7\u91cc\u6587
languages.osa=\u6b50\u585e\u5947\u6587
languages.ty=\u5927\u6eaa\u5730\u6587
-languages.tw=\u7e41\u9ad4\u4e2d\u6587
+languages.bai=\u5df4\u7c73\u7d2f\u514b\u8af8\u8a9e\u8a00
languages.srr=\u585e\u96f7\u723e\u6587
languages.tli=\u7279\u6797\u57fa\u7279\u6587
+languages.tlh=\u514b\u6797\u8ca2\u6587
languages.tt=\u97c3\u977c\u6587
+languages.ts=\u7279\u677e\u52a0\u6587
+languages.srn=\u8607\u62c9\u5357\u6771\u588e\u6587
languages.bad=\u73ed\u9054\u6587
languages.to=\u6771\u52a0\u6587
languages.tn=\u7a81\u5c3c\u897f\u4e9e\u6587
+languages.tl=\u5854\u52a0\u8def\u65cf\u6587
languages.tk=\u571f\u5eab\u66fc\u6587
languages.ti=\u63d0\u683c\u5229\u5c3c\u4e9e\u6587
languages.kru=\u5eab\u9b6f\u79d1\u6587
+languages.byn=\u6bd4\u6797\u6587
languages.te=\u6cf0\u76e7\u56fa\u6587
-languages.csb=\u5361\u8212\u5e03\u6587
languages.kro=\u514b\u9b6f\u6587
+languages.csb=\u5361\u8212\u5e03\u6587
languages.ta=\u5766\u7c73\u723e\u6587
languages.tkl=\u6258\u514b\u52de\u6587
languages.efi=\u57c3\u83f2\u514b\u6587
languages.sw=\u53f2\u74e6\u5e0c\u91cc\u6587
-languages.su=\u8607\u4e39\u6587
+languages.su=\u5dfd\u4ed6\u8a9e
languages.krc=\u5361\u62c9\u67f4-\u5305\u723e\u5361\u723e\u6587
+languages.ss=\u65af\u74e6\u7279\u6587
languages.sr=\u585e\u723e\u7dad\u4e9e\u6587
languages.sq=\u963f\u723e\u5df4\u5c3c\u4e9e\u6587
languages.men=\u9580\u5fb7\u6587
@@ -549,115 +690,130 @@ languages.so=\u7d22\u99ac\u5229\u6587
languages.sn=\u585e\u5167\u52a0\u723e\u6587
languages.sm=\u85a9\u6469\u4e9e\u6587
languages.sl=\u65af\u6d1b\u7dad\u5c3c\u4e9e\u6587
-languages.grc=\u53e4\u5e0c\u81d8\u6587 (\u81f3 1453)
-languages.grb=\u54e5\u535a\u8a9e
+languages.grc=\u53e4\u5e0c\u81d8\u6587
languages.si=\u50e7\u4f3d\u7f85\u6587
languages.sh=\u585e\u723e\u7dad\u4e9e\u514b\u7f85\u57c3\u897f\u4e9e\u6587
-languages.afa=\u975e\u9583\u65cf\u53ca\u975e\u4e9e\u8a9e\u8a00
-languages.crh=\u514b\u91cc\u7c73\u4e9e\u534a\u5cf6\u7684\u571f\u8033\u5176\u6587\uff1b\u514b\u91cc\u7c73\u4e9e\u534a\u5cf6\u7684\u5854\u5854\u723e\u6587
+languages.crh=\u514b\u91cc\u7c73\u4e9e\u571f\u8033\u5176\u6587
+languages.afa=\u4e9e\u975e\u8af8\u8a9e\u8a00
languages.se=\u5317\u65b9\u85a9\u7c73\u6587
-languages.sd=\u8607\u4e39\u6587
+languages.sd=\u5370\u5ea6\u8a9e
languages.udm=\u6c83\u8482\u827e\u514b\u6587
languages.sc=\u6492\u4e01\u6587
languages.rw=\u76e7\u5b89\u9054\u6587
+languages.nwc=\u53e4\u5c3c\u74e6\u723e\u6587
languages.mdr=\u66fc\u9054\u6587
languages.ro=\u7f85\u99ac\u5c3c\u4e9e\u6587
+languages.rn=\u9686\u8fea\u6587
languages.rm=\u91cc\u6258\u7f85\u66fc\u65af\u6587
+languages.fr_CH=\u6cd5\u6587 (\u745e\u58eb)
languages.tiv=\u63d0\u592b\u6587
languages.ady=\u963f\u8fea\u5404\u6587
languages.zun=\u7956\u5c3c\u6587
languages.qu=\u84cb\u4e18\u4e9e\u6587
languages.tig=\u8482\u683c\u96f7\u6587
-languages.cpp=\u6b50\u6d32\u8154\u8abf\u548c\u6d0b\u6d87\u6ff1\uff0c\u6e90\u81ea\u8461\u8404\u7259\u6587\u7684(\u5176\u4ed6)
+languages.cpp=\u57fa\u65bc\u8461\u8404\u7259\u6587\u7684\u514b\u91cc\u5967\u723e\u6587\u548c\u76ae\u6b3d\u6587
+languages.rup=\u7f85\u99ac\u5c3c\u4e9e\u8a9e\u7cfb
languages.sog=\u7d22\u683c\u5e95\u4e9e\u7d0d\u6587
languages.ada=\u963f\u7576\u83ab\u6587
-languages.cpf=\u6b50\u6d32\u8154\u8abf\u548c\u6d0b\u6d87\u6ff1\uff0c\u6e90\u81ea\u6cd5\u6587\u7684(\u5176\u4ed6)
-languages.hit=\u8d6b\u68af\u6587
languages.kos=\u79d1\u65af\u96f7\u6069\u6587
-languages.cpe=\u6b50\u6d32\u8154\u8abf\u548c\u6d0b\u6d87\u6ff1\uff0c\u6e90\u81ea\u82f1\u6587\u7684(\u5176\u4ed6)
+languages.hit=\u8d6b\u68af\u6587
+languages.cpf=\u57fa\u65bc\u6cd5\u6587\u7684\u514b\u91cc\u5967\u723e\u6587\u548c\u76ae\u6b3d\u6587
+languages.cpe=\u4ee5\u82f1\u6587\u70ba\u57fa\u790e\u7684\u6df7\u8a9e\u65b9\u8a00\u548c\u6d0b\u6d87\u6ff1
languages.him=\u8d6b\u99ac\u67e5\u5229\u6587
-languages.got=\u54e5\u7279\u6587
-languages.hil=\u5e0c\u5229\u84cb\u8fb2\u6587
languages.kok=\u8ca2\u6839\u6587
+languages.hil=\u5e0c\u5229\u84cb\u8fb2\u6587
+languages.got=\u54e5\u5fb7\u6587
languages.gor=\u79d1\u9686\u9054\u7f85\u6587
languages.gon=\u5ca1\u5fb7\u6587
-languages.nub=\u52aa\u6bd4\u4e9e\u6587
+languages.nub=\u52aa\u6bd4\u4e9e\u8af8\u8a9e\u8a00
languages.ps=\u666e\u4ec0\u5716\u6587
-languages.phn=\u8153\u5c3c\u57fa\u6587
-languages.goh=\u5fb7\u6587,\u4e0a\u53e4\u5168\u76db\u6642\u671f (ca.750-1050)
+languages.goh=\u53e4\u9ad8\u5730\u65e5\u8033\u66fc\u6587
languages.ach=\u963f\u50d1\u5229\u6587
languages.yao=\u7464\u6587
-languages.phi=\u5176\u4ed6\u83f2\u5f8b\u8cd3\u6587
-languages.pl=\u6ce2\u862d\u6587
+languages.phi=\u83f2\u5f8b\u8cd3\u8af8\u8a9e\u8a00
languages.ace=\u4e9e\u9f4a\u6587
-languages.pi=\u5df4\u5229\u6587
+languages.pl=\u6ce2\u862d\u6587
+languages.pt_PT=\u8461\u8404\u7259\u6587 (\u8461\u8404\u7259)
languages.bug=\u5e03\u5409\u65af\u6587
languages.sms=\u65af\u79d1\u7279\u85a9\u7c73\u6587
languages.bua=\u5e03\u91cc\u963f\u7279\u6587
languages.mas=\u99ac\u8cfd\u6587
languages.smn=\u4f0a\u7d0d\u88e1\u85a9\u7c73\u6587
+languages.map=\u5357\u5cf6\u8af8\u8a9e\u8a00
languages.os=\u5967\u585e\u63d0\u6587
-languages.map=\u5357\u5cf6\u6587
languages.or=\u6b50\u91cc\u4e9e\u6587
languages.smj=\u9b6f\u52d2\u85a9\u7c73\u6587
-languages.smi=\u5176\u4ed6\u85a9\u7c73\u6587
+languages.smi=\u85a9\u7c73\u8af8\u8a9e\u8a00
languages.mak=\u671b\u52a0\u932b\u6587
+languages.om=\u963f\u66fc\u6587
languages.mai=\u9081\u8482\u5229\u6587
-languages.oj=\u5967\u6770\u5e03\u74e6\u6587
languages.mag=\u99ac\u52a0\u4f0a\u6587
+languages.oj=\u5967\u6770\u5e03\u74e6\u6587
languages.mad=\u99ac\u90fd\u62c9\u6587
languages.sma=\u5357\u85a9\u7c73\u6587
-languages.oc=\u5967\u897f\u5766\u6587
+languages.oc=\u5967\u514b\u897f\u5766\u6587
languages.myv=\u5384\u723e\u8332\u4e9e\u6587
+languages.es_ES=\u897f\u73ed\u7259\u6587 (\u897f\u73ed\u7259)
+languages.de_AT=\u5fb7\u6587 (\u5967\u5730\u5229)
languages.dgr=\u591a\u683c\u91cc\u5e03\u6587
+languages.myn=\u99ac\u96c5\u8af8\u8a9e\u8a00
languages.ny=\u5c3c\u63da\u8cc8\u6587
-languages.myn=\u99ac\u96c5\u6587
languages.nv=\u7d0d\u74e6\u7d04\u6587
languages.nr=\u5357\u5730\u7562\u5217\u6587
-languages.gmh=\u5fb7\u6587, \u4e2d\u53e4\u5168\u76db\u6642\u671f (ca.1050-1500)
+languages.gmh=\u4e2d\u53e4\u9ad8\u5730\u65e5\u8033\u66fc\u6587
languages.nn=\u65b0\u632a\u5a01\u6587
languages.nl=\u8377\u862d\u6587
+languages.root=\u6839\u8a9e\u8a00
languages.ng=\u6069\u6771\u52a0\u6587
-languages.sla=\u5176\u4ed6\u65af\u62c9\u592b\u6587
+languages.sla=\u65af\u62c9\u592b\u8af8\u8a9e
languages.ne=\u5c3c\u6cca\u723e\u6587
languages.nd=\u5317\u5730\u7562\u5217\u6587
+languages.cmc=\u4f54\u8a9e\u8af8\u8a9e\u8a00
languages.tet=\u6cf0\u9813\u6587
languages.nb=\u632a\u5a01\u6ce2\u514b\u9ed8\u723e\u6587
languages.na=\u8afe\u9b6f\u6587
languages.ter=\u6cf0\u96f7\u8afe\u6587
languages.tem=\u63d0\u59c6\u6587
languages.my=\u7dec\u7538\u6587
-languages.lez=\u7acb\u9676\u5b9b\u6587
+languages.lez=\u5217\u8332\u5e72\u6587
+languages.frs=\u6771\u5f17\u91cc\u897f\u4e9e\u6587
languages.mt=\u99ac\u723e\u4ed6\u6587
+languages.peo=\u53e4\u6ce2\u65af\u6587
+languages.frr=\u5317\u5f17\u91cc\u897f\u4e9e\u6587
languages.ms=\u99ac\u4f86\u6587
-languages.peo=\u53e4\u6ce2\u65af\u6587 (ca.600-400 B.C.)
languages.mr=\u99ac\u62c9\u5730\u6587
languages.mo=\u6469\u723e\u591a\u74e6\u6587
+languages.jrb=\u7336\u592a\u963f\u62c9\u4f2f\u6587
languages.ml=\u99ac\u4f86\u4e9e\u62c9\u59c6\u6587
-languages.jrb=\u7336\u592a\u6559-\u963f\u62c9\u4f2f\u6587
languages.mk=\u99ac\u5176\u9813\u6587
languages.mh=\u99ac\u7d39\u723e\u6587
languages.mg=\u99ac\u723e\u52a0\u4ec0\u6587
+languages.nqo=\u897f\u975e\u66f8\u9762\u8a9e\u8a00\uff08N'ko\uff09
languages.mwr=\u99ac\u723e\u5c3c\u88e1\u6587
+languages.mwl=\u7c73\u862d\u5fb7\u65af\u6587
languages.den=\u65af\u62c9\u592b
+languages.lv=\u62c9\u812b\u7dad\u4e9e\u6587
languages.lu=\u9b6f\u5df4\u52a0\u4e39\u52a0\u6587
-languages.del=\u5fb7\u62c9\u74e6
+languages.del=\u5fb7\u62c9\u74e6\u6587
+languages.lt=\u7acb\u9676\u5b9b\u8a9e
languages.lo=\u5bee\u570b\u6587
languages.li=\u6797\u5821\u6587
languages.ewo=\u4f9d\u6c6a\u90fd\u6587
languages.lg=\u5e72\u9054\u6587
languages.lb=\u76e7\u68ee\u5821\u6587
languages.jpr=\u7336\u592a\u6559-\u6ce2\u65af\u6587
-languages.sit=\u5176\u4ed6\u6f22\u85cf\u6587
+languages.sit=\u6f22\u85cf\u8af8\u8a9e\u8a00
languages.ky=\u5409\u723e\u5409\u65af\u6587
languages.kw=\u5eb7\u74e6\u8033\u6587
languages.ku=\u5eab\u723e\u5fb7\u6587
-languages.sio=\u5927\u8607\u6587
+languages.sio=\u8607\u8a9e\u8af8\u8a9e\u8a00
languages.ks=\u514b\u4ec0\u7c73\u723e\u6587
languages.kr=\u5361\u52aa\u88e1\u6587
+languages.awa=\u963f\u74e6\u5fb7\u6587
languages.ko=\u97d3\u6587
languages.kn=\u574e\u90a3\u9054\u6587
languages.km=\u9ad8\u68c9\u6587
+languages.en_GB=\u82f1\u6587 (\u82f1\u570b)
languages.kl=\u683c\u9675\u862d\u6587
languages.kk=\u54c8\u85a9\u514b\u6587
languages.rom=\u5409\u666e\u8cfd\u6587
@@ -668,54 +824,56 @@ languages.kg=\u525b\u679c\u6587
languages.non=\u53e4\u8afe\u723e\u65af\u6587
languages.ka=\u55ac\u6cbb\u4e9e\u6587
languages.mus=\u514b\u91cc\u514b\u6587
-languages.roa=\u5176\u4ed6\u7f85\u66fc\u6587
+languages.roa=\u7f85\u66fc\u8af8\u8a9e\u8a00
languages.nog=\u8afe\u84cb\u6587
-languages.mun=\u8499\u9054\u6587
+languages.mun=\u8499\u9054\u8af8\u8a9e\u8a00
languages.mul=\u591a\u7a2e\u8a9e\u8a00
languages.gil=\u5409\u723e\u4f2f\u7279\u7fa4\u5cf6\u6587
languages.znd=\u8d0a\u5fb7\u6587
languages.shn=\u64a3\u6587
languages.fon=\u8c50\u6587
languages.xal=\u5361\u723e\u6885\u514b\u6587
-languages.aus=\u6fb3\u6d32\u82f1\u6587
-languages.kho=\u548c\u95d0[\u8207\u95d0]\u6587
-languages.chy=\u6c99\u4f0a\u5b89\u6587
+languages.aus=\u6fb3\u6d32\u8af8\u8a9e\u8a00
+languages.kho=\u548c\u95d0\u6587
+languages.khi=\u79d1\u4f9d\u6851\u8af8\u8a9e\u8a00
languages.pau=\u5e1b\u7409\u6587
+languages.chy=\u6c99\u4f0a\u5b89\u6587
+languages.tai=\u50a3\u8a9e\u8af8\u8a9e\u8a00
languages.iu=\u56e0\u7d10\u7279\u6587
-languages.pap=\u5e15\u76ae\u963f\u9580\u6258\u6587
languages.it=\u7fa9\u5927\u5229\u6587
+languages.pap=\u5e15\u76ae\u963f\u9580\u6258\u6587
languages.sgn=\u624b\u8a9e
languages.is=\u51b0\u5cf6\u6587
languages.chr=\u67f4\u7f85\u57fa\u6587
languages.pam=\u6f58\u5e15\u5609\u6587
-languages.chp=\u5947\u4f69\u74e6\u63da\u6587
languages.pal=\u5df4\u5217\u7dad\u6587
-languages.cho=\u55ac\u514b\u6258\u6587
+languages.chp=\u5947\u4f69\u7dad\u5b89\u6587
languages.io=\u4f0a\u6717\u6587
+languages.cho=\u55ac\u514b\u6258\u6587
languages.chn=\u5951\u5974\u514b\u6587
languages.chm=\u99ac\u91cc\u6587
languages.tyv=\u571f\u51e1\u6587
-languages.bnt=\u73ed\u5716\u6587
-languages.chk=\u8655\u5947\u65af\u6587
-languages.pag=\u6f58\u52a0\u8f9b\u6587
+languages.bnt=\u73ed\u5716\u8af8\u8a9e\u8a00
languages.ik=\u4f9d\u5974\u76ae\u7dad\u514b\u6587
-languages.ii=\u56db\u5ddd\u8a71
+languages.pag=\u6f58\u52a0\u8f9b\u6587
+languages.chk=\u8655\u5947\u65af\u6587
+languages.ii=\u56db\u5ddd\u5f5d\u6587
languages.lam=\u862d\u5df4\u6587
languages.ig=\u4f0a\u5e03\u6587
languages.sga=\u53e4\u611b\u723e\u862d\u6587\uff08\u81f3 900\uff09
-languages.paa=\u5176\u4ed6\u5df4\u5e03\u4e9e\u8af8\u8a9e\u8a00
-languages.ie=\u62c9\u4e01\u570b\u969b\u6587
+languages.ie=\u570b\u969b\u8a9e E
+languages.paa=\u5df4\u5e03\u4e9e\u8af8\u8a9e\u8a00
languages.id=\u5370\u5c3c\u6587
languages.lah=\u62c9\u4ea8\u9054\u6587
-languages.chb=\u5947\u5e03\u67e5\u6587
languages.day=\u8fea\u96c5\u514b\u6587
-languages.ia=\u62c9\u4e01\u570b\u969b\u6587
+languages.chb=\u5947\u5e03\u67e5\u6587
+languages.ia=\u570b\u969b\u8a9e A
languages.lad=\u62c9\u8fea\u8afe\u6587
-languages.dar=\u9054\u723e\u683c\u74e6\u6587
-languages.hai=\u6d77\u9054\u6587
languages.hz=\u8d6b\u96f7\u7f85\u6587
+languages.hai=\u6d77\u9054\u6587
+languages.dar=\u9054\u723e\u683c\u74e6\u6587
languages.hy=\u4e9e\u7f8e\u5c3c\u4e9e\u6587
-languages.ath=\u963f\u85a9\u5df4\u65af\u5361\u6587
+languages.ath=\u963f\u85a9\u5e15\u65af\u574e\u8af8\u8a9e\u8a00
languages.ht=\u6d77\u5730\u6587
languages.dak=\u9054\u79d1\u4ed6\u6587
languages.hr=\u514b\u7f85\u57c3\u897f\u4e9e\u6587
@@ -723,123 +881,145 @@ languages.ho=\u897f\u91cc\u83ab\u5716\u571f\u6587
languages.hi=\u5317\u5370\u5ea6\u6587
languages.he=\u5e0c\u4f2f\u4f86\u6587
languages.ast=\u963f\u65af\u5716\u91cc\u4e9e\u6587
-languages.wen=\u6587\u5fb7\u6587
+languages.kfo=\u79d1\u7f85\u6587
+languages.wen=\u7d22\u5e03\u8af8\u8a9e\u8a00
languages.gv=\u66fc\u5cf6\u6587
languages.gu=\u5409\u4e9e\u62c9\u5854\u6587
-languages.sem=\u5176\u4ed6\u9583\u65cf\u8a9e\u8a00
+languages.sem=\u9583\u8a9e\u8af8\u8a9e\u8a00
languages.sel=\u745f\u723e\u5361\u666e\u6587
-languages.iro=\u6613\u6d1b\u9b41\u6587
-languages.gl=\u52a0\u91cc\u897f\u4e9e\u6587
-languages.gd=\u8607\u683c\u862d - \u84cb\u723e\u6587
-languages.art=\u5176\u4ed6\u4eba\u5de5\u8a9e\u8a00
+languages.iro=\u6613\u6d1b\u9b41\u8af8\u8a9e\u8a00
+languages.gl=\u52a0\u5229\u897f\u4e9e\u6587
languages.gez=\u5409\u8332\u6587
-languages.ira=\u4f0a\u82b3\u6717\u6587
+languages.art=\u5176\u4ed6\u4eba\u5de5\u8a9e\u8a00
+languages.gd=\u8607\u683c\u862d - \u84cb\u723e\u6587
+languages.ira=\u4f0a\u6717\u8af8\u8a9e\u8a00
languages.ga=\u611b\u723e\u862d\u6587
languages.arn=\u963f\u52de\u574e\u6587
-languages.fy=\u5f17\u91cc\u65af\u862d\u6587
+languages.fy=\u897f\u5f17\u91cc\u897f\u4e9e\u6587
languages.bla=\u932b\u514b\u932b\u5361\u6587
-languages.gem=\u5fb7\u570b\u6587(\u5176\u4ed6)
-languages.ypk=\u611b\u65af\u57fa\u6469\u6587
+languages.gem=\u65e5\u8033\u66fc\u8af8\u8a9e\u8a00
+languages.ypk=\u5c24\u76ae\u514b\u8af8\u8a9e\u8a00
languages.fo=\u6cd5\u7f85\u6587
-languages.cel=\u514b\u723e\u7279\u6587\uff08\u5176\u4ed6\uff09
+languages.cel=\u51f1\u723e\u7279\u8af8\u8a9e\u8a00
languages.fj=\u6590\u6fdf\u6587
languages.fi=\u82ac\u862d\u6587
languages.ff=\u5bcc\u62c9\u6587
languages.tvl=\u5410\u74e6\u9b6f\u6587
-languages.ceb=\u5bbf\u52d9\u65cf\u6587
+languages.ceb=\u5bbf\u9727\u6587
+languages.en_AU=\u82f1\u6587 (\u6fb3\u6d32)
+languages.zh_Hans=\u7c21\u9ad4\u4e2d\u6587
+languages.zh_Hant=\u7e41\u9ad4\u4e2d\u6587
+languages.sco=\u8607\u683c\u862d\u6587
languages.et=\u611b\u6c99\u5c3c\u4e9e\u6587
languages.eo=\u4e16\u754c\u8a9e
languages.el=\u5e0c\u81d8\u6587
-languages.tut=\u5176\u4ed6\u963f\u723e\u6cf0\u8af8\u6587
+languages.tut=\u963f\u723e\u6cf0\u8af8\u8a9e\u8a00\uff08\u5176\u4ed6\uff09
languages.niu=\u7d10\u57c3\u6587
-languages.tup=\u5716\u76ae\u6587
-languages.ee=\u57c3\u7def\u6587
+languages.tup=\u5716\u76ae\u8af8\u8a9e\u8a00
+languages.ee=\u57c3\u7dad\u6587
languages.tum=\u5716\u59c6\u5e03\u5361\u6587
-languages.dv=\u8fea\u7dad\u897f\u6587
-languages.fiu=\u82ac\u862d-\u70cf\u6208\u723e\u65cf\u6587(\u5176\u4ed6)
+languages.nl_BE=\u6cd5\u862d\u5fb7\u65af\u6587
+languages.es_419=\u897f\u73ed\u7259\u6587 (\u62c9\u4e01\u7f8e\u6d32)
+languages.nic=\u5c3c\u65e5\u723e\u79d1\u723e\u591a\u51e1\u8af8\u8a9e\u8a00
languages.lus=\u76e7\u6652\u6587
-languages.nic=\u5176\u4ed6\u5c3c\u65e5\u525b\u679c\u8a9e\u7cfb
+languages.fiu=\u82ac\u70cf\u8af8\u8a9e\u8a00
+languages.dv=\u8fea\u7dad\u897f\u6587
languages.nia=\u5c3c\u4e9e\u65af\u6587
languages.moh=\u83ab\u970d\u514b\u6587
languages.luo=\u76e7\u5967\u6587
languages.lun=\u76e7\u6069\u9054\u6587
-languages.apa=\u963f\u5e15\u5947\u8a9e\u8a00
+languages.apa=\u963f\u5e15\u5207\u8af8\u8a9e\u8a00
+languages.fil=\u83f2\u5f8b\u8cd3\u6587
languages.lui=\u8def\u6613\u585e\u8afe\u6587
+languages.cch=\u963f\u71e6\u6587
languages.lua=\u9b6f\u5df4\u9b6f\u9b6f\u4e9e\u6587
languages.bik=\u6bd4\u79d1\u723e\u6587
languages.was=\u74e6\u7d39\u6587
languages.und=\u672a\u78ba\u5b9a\u7684
languages.war=\u74e6\u745e\u6587
languages.da=\u4e39\u9ea5\u6587
-languages.dum=\u8377\u862d\uff0c\u4e2d\u53e4 (ca. 1050-1350)
-languages.mno=\u99ac\u8afe\u6ce2\u6587
-languages.wak=\u5938\u57fa\u6b66\u7279\u6587
-languages.cy=\u5a01\u723e\u58eb\u6587
+languages.dum=\u4e2d\u53e4\u8377\u862d\u6587
+languages.mno=\u99ac\u8afe\u535a\u8af8\u8a9e\u8a00
+languages.wak=\u74e6\u5361\u4ec0\u8af8\u8a9e\u8a00
languages.sat=\u6563\u5854\u5229\u6587
+languages.cy=\u5a01\u723e\u65af\u6587
languages.sas=\u6492\u6492\u514b\u6587
-languages.cv=\u695a\u74e6\u751a\u6587
languages.kbd=\u5361\u5df4\u723e\u9054\u6587
languages.mni=\u66fc\u5c3c\u666e\u88e1\u6587
-languages.cr=\u514b\u88e1\u6587
languages.sam=\u85a9\u746a\u5229\u4e9e\u963f\u62c9\u59c6\u6587
+languages.cr=\u514b\u88e1\u6587
+languages.sal=\u85a9\u5229\u4ec0\u8af8\u8a9e\u8a00
languages.dua=\u675c\u4e9e\u62c9\u6587
-languages.sal=\u85a9\u5229\u751a\u6587
-languages.mnc=\u6eff\u65cf\u6587
+languages.sai=\u5357\u7f8e\u5370\u7b2c\u5b89\u8af8\u8a9e\u8a00
+languages.mnc=\u6eff\u6587
languages.sah=\u96c5\u5eab\u7279\u6587
languages.gba=\u845b\u5df4\u4e9e\u6587
languages.sad=\u6851\u9054\u97cb\u6587
languages.ch=\u67e5\u83ab\u6d1b\u6587
+languages.ine=\u5370\u6b50\u8af8\u8a9e\u8a00
languages.bho=\u535a\u5091\u666e\u723e\u6587
-languages.ine=\u5370\u6b50\u8a9e\u7cfb\uff08\u5176\u4ed6\uff09
-languages.enm=\u82f1\u6587\uff0c\u4e2d\u4e16\u7d00 (1100-1500)
-languages.ce=\u8eca\u81e3\u6587
-languages.inc=\u5370\u5ea6\u8a9e\u7cfb\uff08\u5176\u4ed6\uff09
languages.kar=\u514b\u502b\u6587
+languages.inc=\u5370\u5ea6\u8af8\u8a9e\u8a00
+languages.ce=\u8eca\u81e3\u6587
languages.gay=\u52a0\u7d04\u6587
languages.ca=\u52a0\u6cf0\u7f85\u5c3c\u4e9e\u6587
languages.umb=\u59c6\u672c\u675c\u6587
-languages.syr=\u53e4\u6558\u5229\u4e9e\u6587
+languages.syr=\u6558\u5229\u4e9e\u6587
languages.tsi=\u6b3d\u897f\u5b89\u6587
-languages.ang=\u53e4\u82f1\u6587 (ca.450-1100)
-languages.cau=\u9ad8\u52a0\u7d22\u6587\uff08\u5176\u4ed6\uff09
+languages.ang=\u53e4\u82f1\u6587
+languages.cau=\u9ad8\u52a0\u7d22\u8af8\u8a9e\u8a00
languages.kab=\u5361\u6bd4\u723e\u6587
-languages.bs=\u6ce2\u58eb\u5c3c\u4e9e\u6587
languages.kaa=\u5361\u62c9\u5361\u723e\u5e15\u514b\u6587
+languages.bs=\u6ce2\u58eb\u5c3c\u4e9e\u6587
+languages.car=\u52a0\u52d2\u6bd4\u6587
+languages.syc=\u53e4\u6558\u5229\u4e9e\u6587
languages.bo=\u85cf\u6587
languages.gaa=\u52a0\u65cf\u6587
+languages.cai=\u4e2d\u7f8e\u5370\u7b2c\u5b89\u8af8\u8a9e\u8a00
languages.bi=\u6bd4\u65af\u62c9\u99ac\u6587
-languages.cai=\u4e2d\u7f8e\u5370\u7b2c\u5b89\u6587\uff08\u5176\u4ed6\uff09
languages.bh=\u6bd4\u54c8\u723e\u6587
languages.bg=\u4fdd\u52a0\u5229\u4e9e\u6587
languages.be=\u767d\u4fc4\u7f85\u65af\u6587
languages.ba=\u5df4\u4ec0\u5ba2\u723e\u6587
languages.zu=\u7956\u9b6f\u6587
languages.zen=\u6fa4\u7d0d\u52a0\u6587
-languages.pro=\u666e\u7f85\u6587\u65af\u6587 (to 1500)
+languages.pro=\u53e4\u666e\u7f85\u65fa\u65af\u6587
languages.az=\u4e9e\u585e\u62dc\u7136\u6587
languages.ay=\u827e\u99ac\u62c9\u6587
-languages.av=\u963f\u6cd5\u6587
+languages.av=\u963f\u74e6\u723e\u6587
languages.as=\u963f\u85a9\u59c6\u6587
languages.dsb=\u4e0b\u7d22\u5e03\u6587
-languages.elx=\u57c3\u862d\u6587
languages.ilo=\u4f0a\u6d1b\u95ca\u6587
+languages.elx=\u57c3\u862d\u6587
languages.an=\u963f\u62c9\u8ca2\u6587
-languages.pra=\u5370\u5ea6\u53e4\u4ee3\u53ca\u4e2d\u4e16\u7d00\u4e4b\u4e2d\u90e8\u53ca\u5317\u90e8\u65b9\u8a00
-languages.ak=\u963f\u574e\u6587
+languages.pra=\u666e\u62c9\u514b\u91cc\u7279\u8af8\u8a9e\u8a00
languages.new=\u5c3c\u74e6\u723e\u6587
+languages.ak=\u963f\u574e\u6587
languages.za=\u58ef\u6587
+languages.en_US=\u82f1\u6587 (\u7f8e\u570b)
languages.af=\u5357\u975e\u8377\u862d\u6587
-languages.ae=\u963f\u7def\u65af\u9640\u6587
-languages.ab=\u963f\u5e03\u54c8\u897f\u4e9e\u6587
+languages.ae=\u963f\u7dad\u65af\u9640\u6587
+languages.alt=\u5357\u963f\u723e\u6cf0\u6587
+languages.ab=\u963f\u5e03\u54c8\u8332\u6587
languages.yo=\u7d04\u9b6f\u5df4\u6587
-languages.alg=\u963f\u723e\u5ca1\u6606\u6587
+languages.alg=\u963f\u723e\u5ca1\u6606\u8af8\u8a9e\u8a00
languages.ale=\u963f\u7559\u7533\u6587
-languages.mkh=\u5176\u4ed6\u9ad8\u68c9\u8a9e\u7cfb
+languages.mkh=\u5b5f\u9ad8\u68c9\u8af8\u8a9e\u8a00
languages.yi=\u610f\u7b2c\u7dd2\u6587
-languages.dra=\u5fb7\u62c9\u5a01\u6587\uff08\u5176\u4ed6\uff09
+languages.dra=\u9054\u7f85\u6bd7\u837c\u8af8\u8a9e\u8a00
languages.ber=\u67cf\u67cf\u723e\u6587
-languages.nds=\u5fb7\u570b\u5317\u90e8\u7684\u5fb7\u6587; \u85a9\u514b\u905c\u6587
+languages.nds=\u4f4e\u5730\u65e5\u8033\u66fc\u6587\uff1b\u4f4e\u5730\u85a9\u514b\u905c\u6587
languages.bem=\u5225\u59c6\u5df4\u6587
languages.bej=\u8c9d\u624e\u6587
languages.tpi=\u6258\u6bd4\u8f9b\u6587
-variants.REVISED=\u5df2\u4fee\u8a02
+variants.REVISED=\u5df2\u4fee\u8a02\u7684\u62fc\u5b57\u5b78
+variants.AREVELA=\u4e9e\u7f8e\u5c3c\u4e9e\u6771\u90e8
+variants.POSIX=\u96fb\u8166
+variants.FONIPA=IPA \u62fc\u97f3
+variants.1996=1996 \u5e74\u7684\u5fb7\u8a9e\u62fc\u5b57\u5b78
+variants.SAAHO=\u85a9\u970d
+variants.AREVMDA=\u4e9e\u7f8e\u5c3c\u4e9e\u897f\u90e8
+variants.1901=\u50b3\u7d71\u5fb7\u8a9e\u62fc\u5b57\u5b78
+variants.MONOTON=\u55ae\u97f3
+variants.FONUPA=UPA \u62fc\u97f3
+variants.NEDIS=Natisone \u65b9\u8a00
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties
index ca7e33f..82334ac 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties
@@ -5,12 +5,8 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;(\u00a4#,##0.00)
-shortMonths=1\u6708®2\u6708®3\u6708®4\u6708®5\u6708®6\u6708®7\u6708®8\u6708®9\u6708®10\u6708®11\u6708®12\u6708®®
-shortDateFormat=yy'\u5e74'M'\u6708'd'\u65e5'
-mediumDateFormat=yyyy'\u5e74'M'\u6708'd'\u65e5'
-longDateFormat=yyyy'\u5e74'MM'\u6708'dd'\u65e5'
-fullDateFormat=yyyy'\u5e74'MM'\u6708'dd'\u65e5' EEEE
-shortTimeFormat=ah:mm
+shortDateFormat=yy\u5e74M\u6708d\u65e5
+mediumDateFormat=yyyy\u5e74M\u6708d\u65e5
+longDateFormat=yyyy\u5e74MM\u6708dd\u65e5
+fullDateFormat=yyyy\u5e74MM\u6708dd\u65e5EEEE
mediumTimeFormat=ahh:mm:ss
-territories.MO=\u6fb3\u9580\u7279\u5225\u884c\u653f\u5340
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties
index 3d101b4..2caabd1 100644
--- a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties
@@ -5,21 +5,6 @@
#
# This file was automatically generated by gnu.localegen from CLDR.
-currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
shortDateFormat=dd/MM/yy
-mediumDateFormat=dd-MMM-yy
-longDateFormat=dd MMM yyyy
-fullDateFormat=dd MMMM yyyy
-shortTimeFormat=a hh:mm
-mediumTimeFormat=a hh:mm
-longTimeFormat=a hh:mm:ss
-fullTimeFormat=a hh:mm:ss
-territories.ID=\u5370\u5c3c
-territories.AU=\u6fb3\u6d32
-territories.SA=\u6c99\u5730\u963f\u62c9\u4f2f
-territories.MK=\u9a6c\u5176\u987f
-territories.KR=\u5357\u97e9
-territories.NZ=\u7ebd\u897f\u5170
-territories.CZ=\u6377\u514b
-languages.root=\u6839 \u6e90
-languages.sh=\u585e\u5c14\u7ef4\u4e9a\u514b\u7f57\u5730\u4e9a\u6587
+shortTimeFormat=ahh:mm
+longTimeFormat=ahh:mm:ssz
diff --git a/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zu.properties b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zu.properties
new file mode 100644
index 0000000..ca2e500
--- /dev/null
+++ b/libjava/classpath/resource/gnu/java/locale/LocaleInformation_zu.properties
@@ -0,0 +1,131 @@
+# LocaleInformation_zu.properties --
+# Copyright (C) 1991-2005 Unicode, Inc.
+# All rights reserved. Distributed under the Terms of Use
+# in http://www.unicode.org/copyright.html.
+#
+# This file was automatically generated by gnu.localegen from CLDR.
+
+decimalSeparator=,
+groupingSeparator=\u00a0
+percentFormat=#,##0%
+currencyFormat=\u00a4#,##0.00;-\u00a4#,##0.00
+currenciesSymbol.ZAR=R
+shortMonths=Jan\u00aeFeb\u00aeMas\u00aeApr\u00aeMey\u00aeJun\u00aeJul\u00aeAga\u00aeSep\u00aeOkt\u00aeNov\u00aeDis\u00ae\u00ae
+months=uJanuwari\u00aeuFebruwari\u00aeuMashi\u00aeu-Apreli\u00aeuMeyi\u00aeuJuni\u00aeuJulayi\u00aeuAgasti\u00aeuSepthemba\u00aeu-Okthoba\u00aeuNovemba\u00aeuDisemba\u00ae\u00ae
+shortWeekdays=\u00aeSon\u00aeMso\u00aeBil\u00aeTha\u00aeSin\u00aeHla\u00aeMgq\u00ae
+weekdays=\u00aeSonto\u00aeMsombuluko\u00aeLwesibili\u00aeLwesithathu\u00aeuLwesine\u00aeLwesihlanu\u00aeMgqibelo\u00ae
+eras=BC\u00aeAD\u00ae
+ampms=AM\u00aePM\u00ae
+shortDateFormat=yyyy-MM-dd
+mediumDateFormat=d MMM yyyy
+longDateFormat=d MMMM yyyy
+fullDateFormat=EEEE dd MMMM yyyy
+shortTimeFormat=h:mm a
+mediumTimeFormat=h:mm:ss a
+longTimeFormat=h:mm:ss a z
+fullTimeFormat=h:mm:ss a z
+languages.es=isiSpeyini
+languages.ku=ulimu lwama Kudishi
+languages.eo=Isi-Esperanto
+languages.en=isiNgisi
+languages.el=IsiGreki
+languages.ko=IsiKoriya
+languages.kn=Ikhanada
+languages.km=Cambodian
+languages.ka=IsiJojiyani
+languages.jv=IsiJavanisi
+languages.fil=IsiThagalogi
+languages.pt=IsiPotukezi
+languages.ps=Pashto
+languages.de=isiJalimani
+languages.pl=IsiPholisi
+languages.da=IsiDenishi
+languages.tlh=IsiKlingoni
+languages.ja=IsiJaphani
+languages.vi=IsiVietnamise
+languages.cy=IsiWelshi
+languages.pa=IsiPhunjabi
+languages.cs=Isi-Czech
+languages.it=isItalian
+languages.is=Isi-Icelandic
+languages.uz=Isi-Uzibheki
+languages.or=Oriya
+languages.ur=Isi-Udu
+languages.ca=IsiKhathalani
+languages.ie=Izilimu
+languages.id=Isi-Indonesia
+languages.uk=Isi-Ukrain
+languages.ia=Izilimi ezihlangene
+languages.oc=Isi-Osithani
+languages.ug=Uighur
+languages.hy=Armenian
+languages.bs=IsiBhosiniyani
+languages.br=isihlobo sase Britain
+languages.hu=IsiHangari
+languages.pt_PT=IsiPotukezi (Ephothugali)
+languages.bn=IsiBhengali
+languages.hr=Isi-Croatia
+languages.tw=Twi
+languages.bh=IsiBhihari
+languages.bg=Isi-Bulgaria
+languages.no=IsiNoweyi
+languages.be=IsiBhelarashiyani
+languages.nn=IsiNowejiyani (Nynorsk)
+languages.hi=isiHindi
+languages.tr=IsiThekishi
+languages.nl=Isi-Dutch
+languages.zu=isiZulu
+languages.he=IsiHebheru
+languages.tk=umuntu wase Turkmenistan.
+languages.ne=IsiNepali
+languages.az=Isi-Azebhayijani
+languages.ti=IsiTigrinya
+languages.th=IsiThayi
+languages.te=IsiThelugu
+languages.as=Assamese
+languages.ar=isi-Alabhu
+languages.ta=IsiThamil
+languages.gu=IsiGujarati
+languages.am=Isi-Amaharikhi
+languages.mt=IsiMalithize
+languages.ms=IsiMalayi
+languages.gn=Gurani
+languages.sw=isiSwahili
+languages.mr=IsiMarathi
+languages.sv=IsiSwidishi
+languages.gl=Isi-Galashiya
+languages.su=IsiSundanizi
+languages.af=isiBhunu
+languages.st=isiSuthu
+languages.mn=Mongolian
+languages.sr=Isi-Sebhiya
+languages.sq=Isi-Albania
+languages.ml=IsiMalayami
+languages.mk=IsiMakhedoniya
+languages.so=Somali
+languages.gd=I-Scots Gaelic
+languages.sl=IsiSlovakiyani
+languages.sk=IsiSlovaki
+languages.ga=Isi-Irishi
+languages.si=IsiSinhalese
+languages.sh=Serbo-Croatian
+languages.pt_BR=Isiputukezi (Brazil)
+languages.yi=ulimu olwi Yidish
+languages.sd=Sindhi
+languages.fy=IsiFriziyani
+languages.sa=Sanskrit
+languages.fr=isiFulentshi
+languages.lv=Isi-Latvian
+languages.lt=Isi-Lithuanian
+languages.fo=Isifaro
+languages.ru=IsiRashiya
+languages.lo=Laothian
+languages.ln=Lingala
+languages.fi=isiFinnish
+languages.ro=IsiRomani
+languages.fa=IsiPheshiyani
+languages.la=IsiLathini
+languages.xh=isiXhosa
+languages.eu=Isi-Basque
+languages.ky=Kyrgyz
+languages.et=Isi-Esistoniya
diff --git a/libjava/classpath/resource/java/text/metazones.properties b/libjava/classpath/resource/java/text/metazones.properties
new file mode 100644
index 0000000..2535eaa
--- /dev/null
+++ b/libjava/classpath/resource/java/text/metazones.properties
@@ -0,0 +1,323 @@
+# This document is automatically generated by gnu.supplementgen
+
+Acre.DEFAULT=America/Rio_Branco
+Afghanistan.DEFAULT=Asia/Kabul
+Africa_Central.BI=Africa/Bujumbura
+Africa_Central.BW=Africa/Gaborone
+Africa_Central.CD=Africa/Lubumbashi
+Africa_Central.DEFAULT=Africa/Maputo
+Africa_Central.MW=Africa/Blantyre
+Africa_Central.RW=Africa/Kigali
+Africa_Central.ZM=Africa/Lusaka
+Africa_Central.ZW=Africa/Harare
+Africa_Eastern.DEFAULT=Africa/Nairobi
+Africa_Eastern.DJ=Africa/Djibouti
+Africa_Eastern.ER=Africa/Asmera
+Africa_Eastern.ET=Africa/Addis_Ababa
+Africa_Eastern.KM=Indian/Comoro
+Africa_Eastern.MG=Indian/Antananarivo
+Africa_Eastern.SO=Africa/Mogadishu
+Africa_Eastern.TZ=Africa/Dar_es_Salaam
+Africa_Eastern.UG=Africa/Kampala
+Africa_Eastern.YT=Indian/Mayotte
+Africa_FarWestern.DEFAULT=Africa/El_Aaiun
+Africa_FarWestern.GW=Africa/Bissau
+Africa_Southern.DEFAULT=Africa/Johannesburg
+Africa_Southern.LS=Africa/Maseru
+Africa_Southern.SZ=Africa/Mbabane
+Africa_Western.AO=Africa/Luanda
+Africa_Western.BJ=Africa/Porto-Novo
+Africa_Western.CD=Africa/Kinshasa
+Africa_Western.CF=Africa/Bangui
+Africa_Western.CG=Africa/Brazzaville
+Africa_Western.CM=Africa/Douala
+Africa_Western.DEFAULT=Africa/Lagos
+Africa_Western.GA=Africa/Libreville
+Africa_Western.GQ=Africa/Malabo
+Africa_Western.NE=Africa/Niamey
+Africa_Western.TD=Africa/Ndjamena
+Aktyubinsk.DEFAULT=Asia/Aqtobe
+Alaska.DEFAULT=America/Juneau
+Alaska_Hawaii.DEFAULT=America/Anchorage
+Almaty.DEFAULT=Asia/Almaty
+Amazon.DEFAULT=America/Manaus
+America_Central.BZ=America/Belize
+America_Central.CA=America/Winnipeg
+America_Central.CR=America/Costa_Rica
+America_Central.DEFAULT=America/Chicago
+America_Central.GT=America/Guatemala
+America_Central.HN=America/Tegucigalpa
+America_Central.MX=America/Mexico_City
+America_Central.SV=America/El_Salvador
+America_Eastern.BS=America/Nassau
+America_Eastern.CA=America/Toronto
+America_Eastern.DEFAULT=America/New_York
+America_Eastern.HT=America/Port-au-Prince
+America_Eastern.JM=America/Jamaica
+America_Eastern.KY=America/Cayman
+America_Eastern.PA=America/Panama
+America_Eastern.TC=America/Grand_Turk
+America_Mountain.CA=America/Edmonton
+America_Mountain.DEFAULT=America/Denver
+America_Mountain.MX=America/Hermosillo
+America_Pacific.CA=America/Vancouver
+America_Pacific.DEFAULT=America/Los_Angeles
+America_Pacific.MX=America/Tijuana
+Anadyr.DEFAULT=Asia/Anadyr
+Aqtau.DEFAULT=Asia/Aqtau
+Aqtobe.DEFAULT=Asia/Aqtobe
+Arabian.BH=Asia/Bahrain
+Arabian.DEFAULT=Asia/Riyadh
+Arabian.IQ=Asia/Baghdad
+Arabian.KW=Asia/Kuwait
+Arabian.QA=Asia/Qatar
+Arabian.YE=Asia/Aden
+Argentina.DEFAULT=America/Buenos_Aires
+Argentina_Western.DEFAULT=America/Mendoza
+Armenia.DEFAULT=Asia/Yerevan
+Ashkhabad.DEFAULT=Asia/Ashgabat
+Atlantic.AG=America/Antigua
+Atlantic.AI=America/Anguilla
+Atlantic.AN=America/Curacao
+Atlantic.AW=America/Aruba
+Atlantic.BB=America/Barbados
+Atlantic.BM=America/Bermuda
+Atlantic.DEFAULT=America/Halifax
+Atlantic.DM=America/Dominica
+Atlantic.GD=America/Grenada
+Atlantic.GL=America/Thule
+Atlantic.GP=America/Guadaloupe
+Atlantic.KN=America/St_Kitts
+Atlantic.LC=America/St_Lucia
+Atlantic.MQ=America/Martinique
+Atlantic.MS=America/Montserrat
+Atlantic.PR=America/Puerto_Rico
+Atlantic.TT=America/Port_of_Spain
+Atlantic.VC=America/St_Vincent
+Atlantic.VG=America/Tortola
+Atlantic.VI=America/St_Thomas
+Australia_Central.DEFAULT=Australia/Adelaide
+Australia_CentralWestern.DEFAULT=Australia/Eucla
+Australia_Eastern.DEFAULT=Australia/Sydney
+Australia_Western.DEFAULT=Australia/Perth
+Azerbaijan.DEFAULT=Asia/Baku
+Azores.DEFAULT=Atlantic/Azores
+Baku.DEFAULT=Asia/Baku
+Bangladesh.DEFAULT=Asia/Dhaka
+Bering.DEFAULT=America/Adak
+Bhutan.DEFAULT=Asia/Thimphu
+Bolivia.DEFAULT=America/La_Paz
+Borneo.DEFAULT=Asia/Kuching
+Brasilia.DEFAULT=America/Sao_Paulo
+British.DEFAULT=Europe/London
+Brunei.DEFAULT=Asia/Brunei
+Cape_Verde.DEFAULT=Atlantic/Cape_Verde
+Chamorro.DEFAULT=Pacific/Saipan
+Chamorro.GU=Pacific/Guam
+Changbai.DEFAULT=Asia/Harbin
+Chatham.DEFAULT=Pacific/Chatham
+Chile.AQ=Antarctica/Palmer
+Chile.DEFAULT=America/Santiago
+China.DEFAULT=Asia/Shanghai
+China.MO=Asia/Macau
+China.TW=Asia/Taipei
+Choibalsan.DEFAULT=Asia/Choibalsan
+Christmas.DEFAULT=Indian/Christmas
+Cocos.DEFAULT=Indian/Cocos
+Colombia.DEFAULT=America/Bogota
+Cook.DEFAULT=Pacific/Rarotonga
+Cuba.DEFAULT=America/Havana
+Dacca.DEFAULT=Asia/Dhaka
+Davis.DEFAULT=Antarctica/Davis
+Dominican.DEFAULT=America/Santo_Domingo
+DumontDUrville.DEFAULT=Antarctica/DumontDUrville
+Dushanbe.DEFAULT=Asia/Dushanbe
+Dutch_Guiana.DEFAULT=America/Paramaribo
+East_Timor.DEFAULT=Asia/Dili
+Easter.DEFAULT=Pacific/Easter
+Ecuador.DEFAULT=America/Guayaquil
+Europe_Central.AD=Europe/Andorra
+Europe_Central.AL=Europe/Tirane
+Europe_Central.AT=Europe/Vienna
+Europe_Central.BA=Europe/Sarajevo
+Europe_Central.BE=Europe/Brussels
+Europe_Central.CH=Europe/Zurich
+Europe_Central.CZ=Europe/Prague
+Europe_Central.DE=Europe/Berlin
+Europe_Central.DEFAULT=Europe/Paris
+Europe_Central.DK=Europe/Copenhagen
+Europe_Central.ES=Europe/Madrid
+Europe_Central.GI=Europe/Gibraltar
+Europe_Central.HR=Europe/Zagreb
+Europe_Central.HU=Europe/Budapest
+Europe_Central.IT=Europe/Rome
+Europe_Central.LI=Europe/Vaduz
+Europe_Central.LU=Europe/Luxembourg
+Europe_Central.MC=Europe/Monaco
+Europe_Central.ME=Europe/Podgorica
+Europe_Central.MK=Europe/Skopje
+Europe_Central.MT=Europe/Malta
+Europe_Central.NL=Europe/Amsterdam
+Europe_Central.NO=Europe/Oslo
+Europe_Central.PL=Europe/Warsaw
+Europe_Central.RS=Europe/Belgrade
+Europe_Central.SE=Europe/Stockholm
+Europe_Central.SI=Europe/Ljubljana
+Europe_Central.SK=Europe/Bratislava
+Europe_Central.TN=Africa/Tunis
+Europe_Eastern.BG=Europe/Sofia
+Europe_Eastern.CY=Asia/Nicosia
+Europe_Eastern.DEFAULT=Europe/Bucharest
+Europe_Eastern.EG=Africa/Cairo
+Europe_Eastern.FI=Europe/Helsinki
+Europe_Eastern.GR=Europe/Athens
+Europe_Eastern.JO=Asia/Amman
+Europe_Eastern.LB=Asia/Beirut
+Europe_Eastern.SY=Asia/Damascus
+Europe_Western.DEFAULT=Atlantic/Canary
+Europe_Western.FO=Atlantic/Faeroe
+Falkland.DEFAULT=Atlantic/Stanley
+Fiji.DEFAULT=Pacific/Fiji
+French_Guiana.DEFAULT=America/Cayenne
+French_Southern.DEFAULT=Indian/Kerguelen
+Frunze.DEFAULT=Asia/Bishkek
+GMT.BF=Africa/Ouagadougou
+GMT.CI=Africa/Abidjan
+GMT.DEFAULT=Atlantic/Reykjavik
+GMT.GB=Europe/London
+GMT.GH=Africa/Accra
+GMT.GM=Africa/Banjul
+GMT.GN=Africa/Conakry
+GMT.GW=Africa/Bissau
+GMT.IE=Europe/Dublin
+GMT.LR=Africa/Monrovia
+GMT.ML=Africa/Bamako
+GMT.MR=Africa/Nouakchott
+GMT.SH=Atlantic/St_Helena
+GMT.SL=Africa/Freetown
+GMT.SN=Africa/Dakar
+GMT.ST=Africa/Sao_Tome
+GMT.TG=Africa/Lome
+Galapagos.DEFAULT=Pacific/Galapagos
+Gambier.DEFAULT=Pacific/Gambier
+Georgia.DEFAULT=Asia/Tbilisi
+Gilbert_Islands.DEFAULT=Pacific/Tarawa
+Goose_Bay.DEFAULT=America/Goose_Bay
+Greenland_Central.DEFAULT=America/Scoresbysund
+Greenland_Eastern.DEFAULT=America/Scoresbysund
+Greenland_Western.DEFAULT=America/Godthab
+Guam.DEFAULT=Pacific/Guam
+Gulf.DEFAULT=Asia/Dubai
+Gulf.OM=Asia/Muscat
+Guyana.DEFAULT=America/Guyana
+Hawaii_Aleutian.DEFAULT=Pacific/Honolulu
+Hong_Kong.DEFAULT=Asia/Hong_Kong
+Hovd.DEFAULT=Asia/Hovd
+India.DEFAULT=Asia/Calcutta
+India.LK=Asia/Colombo
+Indian_Ocean.DEFAULT=Indian/Chagos
+Indochina.DEFAULT=Asia/Saigon
+Indochina.KH=Asia/Phnom_Penh
+Indochina.LA=Asia/Vientiane
+Indochina.TH=Asia/Bangkok
+Indonesia_Central.DEFAULT=Asia/Makassar
+Indonesia_Eastern.DEFAULT=Asia/Jayapura
+Indonesia_Western.DEFAULT=Asia/Jakarta
+Iran.DEFAULT=Asia/Tehran
+Irish.DEFAULT=Europe/Dublin
+Irkutsk.DEFAULT=Asia/Irkutsk
+Israel.DEFAULT=Asia/Jerusalem
+Japan.DEFAULT=Asia/Tokyo
+Kamchatka.DEFAULT=Asia/Kamchatka
+Karachi.DEFAULT=Asia/Karachi
+Kashgar.DEFAULT=Asia/Kashgar
+Kazakhstan_Eastern.DEFAULT=Asia/Almaty
+Kazakhstan_Western.DEFAULT=Asia/Aqtobe
+Kizilorda.DEFAULT=Asia/Qyzylorda
+Korea.DEFAULT=Asia/Seoul
+Korea.KP=Asia/Pyongyang
+Kosrae.DEFAULT=Pacific/Kosrae
+Krasnoyarsk.DEFAULT=Asia/Krasnoyarsk
+Kuybyshev.DEFAULT=Europe/Samara
+Kwajalein.DEFAULT=Pacific/Kwajalein
+Kyrgystan.DEFAULT=Asia/Bishkek
+Lanka.DEFAULT=Asia/Colombo
+Liberia.DEFAULT=Africa/Monrovia
+Line_Islands.DEFAULT=Pacific/Kiritimati
+Long_Shu.DEFAULT=Asia/Chongqing
+Lord_Howe.DEFAULT=Australia/Lord_Howe
+Macau.DEFAULT=Asia/Macau
+Magadan.DEFAULT=Asia/Magadan
+Malaya.DEFAULT=Asia/Kuala_Lumpur
+Malaysia.DEFAULT=Asia/Kuching
+Maldives.DEFAULT=Indian/Maldives
+Marquesas.DEFAULT=Pacific/Marquesas
+Marshall_Islands.DEFAULT=Pacific/Majuro
+Mauritius.DEFAULT=Indian/Mauritius
+Mawson.DEFAULT=Antarctica/Mawson
+Mongolia.DEFAULT=Asia/Ulaanbaatar
+Moscow.DEFAULT=Europe/Moscow
+Myanmar.DEFAULT=Asia/Rangoon
+Nauru.DEFAULT=Pacific/Nauru
+Nepal.DEFAULT=Asia/Katmandu
+New_Caledonia.DEFAULT=Pacific/Noumea
+New_Zealand.AQ=Antarctica/McMurdo
+New_Zealand.DEFAULT=Pacific/Auckland
+Newfoundland.DEFAULT=America/St_Johns
+Niue.DEFAULT=Pacific/Niue
+Norfolk.DEFAULT=Pacific/Norfolk
+Noronha.DEFAULT=America/Noronha
+North_Mariana.DEFAULT=Pacific/Saipan
+Novosibirsk.DEFAULT=Asia/Novosibirsk
+Omsk.DEFAULT=Asia/Omsk
+Oral.DEFAULT=Asia/Oral
+Pakistan.DEFAULT=Asia/Karachi
+Palau.DEFAULT=Pacific/Palau
+Papua_New_Guinea.DEFAULT=Pacific/Port_Moresby
+Paraguay.DEFAULT=America/Asuncion
+Peru.DEFAULT=America/Lima
+Philippines.DEFAULT=Asia/Manila
+Phoenix_Islands.DEFAULT=Pacific/Enderbury
+Pierre_Miquelon.DEFAULT=America/Miquelon
+Pitcairn.DEFAULT=Pacific/Pitcairn
+Ponape.DEFAULT=Pacific/Ponape
+Qyzylorda.DEFAULT=Asia/Qyzylorda
+Reunion.DEFAULT=Indian/Reunion
+Rothera.DEFAULT=Antarctica/Rothera
+Sakhalin.DEFAULT=Asia/Sakhalin
+Samara.DEFAULT=Europe/Samara
+Samarkand.DEFAULT=Asia/Samarkand
+Samoa.DEFAULT=Pacific/Apia
+Seychelles.DEFAULT=Indian/Mahe
+Shevchenko.DEFAULT=Asia/Aqtau
+Singapore.DEFAULT=Asia/Singapore
+Solomon.DEFAULT=Pacific/Guadalcanal
+South_Georgia.DEFAULT=Atlantic/South_Georgia
+Suriname.DEFAULT=America/Paramaribo
+Sverdlovsk.DEFAULT=Asia/Yekaterinburg
+Syowa.DEFAULT=Antarctica/Syowa
+Tahiti.DEFAULT=Pacific/Tahiti
+Tajikistan.DEFAULT=Asia/Dushanbe
+Tashkent.DEFAULT=Asia/Tashkent
+Tbilisi.DEFAULT=Asia/Tbilisi
+Tokelau.DEFAULT=Pacific/Fakaofo
+Tonga.DEFAULT=Pacific/Tongatapu
+Truk.DEFAULT=Pacific/Truk
+Turkey.DEFAULT=Europe/Istanbul
+Turkmenistan.DEFAULT=Asia/Ashgabat
+Tuvalu.DEFAULT=Pacific/Funafuti
+Uralsk.DEFAULT=Asia/Oral
+Uruguay.DEFAULT=America/Montevideo
+Urumqi.DEFAULT=Asia/Urumqi
+Uzbekistan.DEFAULT=Asia/Tashkent
+Vanuatu.DEFAULT=Pacific/Efate
+Venezuela.DEFAULT=America/Caracas
+Vladivostok.DEFAULT=Asia/Vladivostok
+Volgograd.DEFAULT=Europe/Volgograd
+Vostok.DEFAULT=Antarctica/Vostok
+Wake.DEFAULT=Pacific/Wake
+Wallis.DEFAULT=Pacific/Wallis
+Yakutsk.DEFAULT=Asia/Yakutsk
+Yekaterinburg.DEFAULT=Asia/Yekaterinburg
+Yerevan.DEFAULT=Asia/Yerevan
+Yukon.DEFAULT=America/Yakutat
diff --git a/libjava/classpath/resource/java/util/iso4217.properties b/libjava/classpath/resource/java/util/iso4217.properties
index 316b2d6..bc1c758 100644
--- a/libjava/classpath/resource/java/util/iso4217.properties
+++ b/libjava/classpath/resource/java/util/iso4217.properties
@@ -1,26 +1,26 @@
-# This document is automatically generated by gnu.currencygen
+# This document is automatically generated by gnu.supplementgen
AD.currency=EUR,ESP,FRF,ADP
-AD.fractionDigits=2
+AD.fractionDigits=0
AE.currency=AED
AE.fractionDigits=2
-AF.currency=AFN
+AF.currency=AFN,AFA
AF.fractionDigits=2
AG.currency=XCD
AG.fractionDigits=2
AI.currency=XCD
AI.fractionDigits=2
-AL.currency=ALL
+AL.currency=ALL,ALK
AL.fractionDigits=2
-AM.currency=AMD
+AM.currency=AMD,RUR,SUR
AM.fractionDigits=2
AN.currency=ANG
AN.fractionDigits=2
-AO.currency=AOA
+AO.currency=AOA,AOR,AON,AOK
AO.fractionDigits=2
-AQ.currency=
+AQ.currency=XXX
AQ.fractionDigits=2
-AR.currency=ARS
+AR.currency=ARS,ARA,ARP
AR.fractionDigits=2
AS.currency=USD
AS.fractionDigits=2
@@ -28,21 +28,23 @@ AT.currency=EUR,ATS
AT.fractionDigits=2
AU.currency=AUD
AU.fractionDigits=2
-AW.currency=AWG
+AW.currency=AWG,ANG
AW.fractionDigits=2
-AZ.currency=AZM
+AX.currency=EUR
+AX.fractionDigits=2
+AZ.currency=AZN,AZM,RUR,SUR
AZ.fractionDigits=2
-BA.currency=BAM
+BA.currency=BAM,BAD,YUN,YUD
BA.fractionDigits=2
-BB.currency=BBD
+BB.currency=BBD,XCD
BB.fractionDigits=2
-BD.currency=BDT
+BD.currency=BDT,PKR,INR
BD.fractionDigits=2
-BE.currency=EUR,BEF
+BE.currency=EUR,BEF,NLG
BE.fractionDigits=2
BF.currency=XOF
BF.fractionDigits=0
-BG.currency=BGN
+BG.currency=BGN,BGL,BGM
BG.fractionDigits=2
BH.currency=BHD
BH.fractionDigits=3
@@ -50,29 +52,35 @@ BI.currency=BIF
BI.fractionDigits=0
BJ.currency=XOF
BJ.fractionDigits=0
+BL.currency=EUR,FRF
+BL.fractionDigits=2
BM.currency=BMD
BM.fractionDigits=2
-BN.currency=BND
+BN.currency=BND,MYR
BN.fractionDigits=2
-BO.currency=BOB
+BO.currency=BOB,BOP
BO.fractionDigits=2
-BR.currency=BRL
+BR.currency=BRL,BRR,BRE,BRN,BRC,BRB
BR.fractionDigits=2
BS.currency=BSD
BS.fractionDigits=2
+BT.currency=INR,BTN
+BT.fractionDigits=2
+BU.currency=BUK
+BU.fractionDigits=2
BV.currency=NOK
BV.fractionDigits=2
-BW.currency=BWP
+BW.currency=BWP,ZAR
BW.fractionDigits=2
-BY.currency=BYR
-BY.fractionDigits=0
+BY.currency=BYR,BYB,RUR,SUR
+BY.fractionDigits=2
BZ.currency=BZD
BZ.fractionDigits=2
CA.currency=CAD
CA.fractionDigits=2
CC.currency=AUD
CC.fractionDigits=2
-CD.currency=CDF
+CD.currency=CDF,ZRN,ZRZ
CD.fractionDigits=2
CF.currency=XAF
CF.fractionDigits=0
@@ -91,19 +99,23 @@ CM.fractionDigits=0
CN.currency=CNY
CN.fractionDigits=2
CO.currency=COP
-CO.fractionDigits=2
+CO.fractionDigits=0
CR.currency=CRC
-CR.fractionDigits=2
-CU.currency=CUP
+CR.fractionDigits=0
+CS.currency=CSD,EUR,YUM
+CS.fractionDigits=2
+CU.currency=CUP,USD
CU.fractionDigits=2
-CV.currency=CVE
+CV.currency=CVE,PTE
CV.fractionDigits=2
CX.currency=AUD
CX.fractionDigits=2
-CY.currency=CYP
+CY.currency=EUR,CYP
CY.fractionDigits=2
-CZ.currency=CZK
+CZ.currency=CZK,CSK
CZ.fractionDigits=2
+DD.currency=DDM
+DD.fractionDigits=2
DE.currency=EUR,DEM
DE.fractionDigits=2
DJ.currency=DJF
@@ -112,13 +124,13 @@ DK.currency=DKK
DK.fractionDigits=2
DM.currency=XCD
DM.fractionDigits=2
-DO.currency=DOP
+DO.currency=DOP,USD
DO.fractionDigits=2
DZ.currency=DZD
DZ.fractionDigits=2
-EC.currency=USD
+EC.currency=USD,ECS
EC.fractionDigits=2
-EE.currency=EEK
+EE.currency=EEK,SUR
EE.fractionDigits=2
EG.currency=EGP
EG.fractionDigits=2
@@ -127,7 +139,7 @@ EH.fractionDigits=2
ER.currency=ERN
ER.fractionDigits=2
ES.currency=EUR,ESP
-ES.fractionDigits=2
+ES.fractionDigits=0
ET.currency=ETB
ET.fractionDigits=2
FI.currency=EUR,FIM
@@ -136,8 +148,8 @@ FJ.currency=FJD
FJ.fractionDigits=2
FK.currency=FKP
FK.fractionDigits=2
-FM.currency=USD
-FM.fractionDigits=2
+FM.currency=USD,JPY
+FM.fractionDigits=0
FO.currency=DKK
FO.fractionDigits=2
FR.currency=EUR,FRF
@@ -148,11 +160,13 @@ GB.currency=GBP
GB.fractionDigits=2
GD.currency=XCD
GD.fractionDigits=2
-GE.currency=GEL
+GE.currency=GEL,GEK,RUR,SUR
GE.fractionDigits=2
-GF.currency=EUR
+GF.currency=EUR,FRF
GF.fractionDigits=2
-GH.currency=GHC
+GG.currency=GBP
+GG.fractionDigits=2
+GH.currency=GHS,GHC
GH.fractionDigits=2
GI.currency=GIP
GI.fractionDigits=2
@@ -160,48 +174,58 @@ GL.currency=DKK
GL.fractionDigits=2
GM.currency=GMD
GM.fractionDigits=2
-GN.currency=GNF
-GN.fractionDigits=0
-GP.currency=EUR
+GN.currency=GNF,GNS
+GN.fractionDigits=2
+GP.currency=EUR,FRF
GP.fractionDigits=2
-GQ.currency=XAF
-GQ.fractionDigits=0
+GQ.currency=XAF,GQE
+GQ.fractionDigits=2
GR.currency=EUR,GRD
GR.fractionDigits=2
+GS.currency=GBP
+GS.fractionDigits=2
GT.currency=GTQ
GT.fractionDigits=2
GU.currency=USD
GU.fractionDigits=2
+GW.currency=GWP,XOF,GWE
+GW.fractionDigits=2
GY.currency=GYD
-GY.fractionDigits=2
+GY.fractionDigits=0
HK.currency=HKD
HK.fractionDigits=2
HM.currency=AUD
HM.fractionDigits=2
HN.currency=HNL
HN.fractionDigits=2
-HR.currency=HRK
+HR.currency=HRK,HRD,YUN,YUD
HR.fractionDigits=2
+HT.currency=HTG,USD
+HT.fractionDigits=2
HU.currency=HUF
-HU.fractionDigits=2
+HU.fractionDigits=0
ID.currency=IDR
-ID.fractionDigits=2
-IE.currency=EUR,IEP
+ID.fractionDigits=0
+IE.currency=EUR,IEP,GBP
IE.fractionDigits=2
-IL.currency=ILS
+IL.currency=ILS,ILP
IL.fractionDigits=2
+IM.currency=GBP
+IM.fractionDigits=2
IN.currency=INR
IN.fractionDigits=2
-IO.currency=USD
+IO.currency=USD,GBP
IO.fractionDigits=2
-IQ.currency=IQD
-IQ.fractionDigits=3
+IQ.currency=IQD,EGP,INR
+IQ.fractionDigits=2
IR.currency=IRR
-IR.fractionDigits=2
-IS.currency=ISK
+IR.fractionDigits=0
+IS.currency=ISK,DKK
IS.fractionDigits=2
IT.currency=EUR,ITL
-IT.fractionDigits=2
+IT.fractionDigits=0
+JE.currency=GBP
+JE.fractionDigits=2
JM.currency=JMD
JM.fractionDigits=2
JO.currency=JOD
@@ -210,7 +234,7 @@ JP.currency=JPY
JP.fractionDigits=0
KE.currency=KES
KE.fractionDigits=2
-KG.currency=KGS
+KG.currency=KGS,RUR,SUR
KG.fractionDigits=2
KH.currency=KHR
KH.fractionDigits=2
@@ -221,19 +245,19 @@ KM.fractionDigits=0
KN.currency=XCD
KN.fractionDigits=2
KP.currency=KPW
-KP.fractionDigits=2
+KP.fractionDigits=0
KR.currency=KRW
KR.fractionDigits=0
KW.currency=KWD
KW.fractionDigits=3
-KY.currency=KYD
+KY.currency=KYD,JMD
KY.fractionDigits=2
KZ.currency=KZT
KZ.fractionDigits=2
LA.currency=LAK
-LA.fractionDigits=2
+LA.fractionDigits=0
LB.currency=LBP
-LB.fractionDigits=2
+LB.fractionDigits=0
LC.currency=XCD
LC.fractionDigits=2
LI.currency=CHF
@@ -242,56 +266,64 @@ LK.currency=LKR
LK.fractionDigits=2
LR.currency=LRD
LR.fractionDigits=2
-LT.currency=LTL
+LS.currency=ZAR,LSL
+LS.fractionDigits=2
+LT.currency=LTL,LTT,SUR
LT.fractionDigits=2
LU.currency=EUR,LUF
-LU.fractionDigits=2
-LV.currency=LVL
+LU.fractionDigits=0
+LV.currency=LVL,LVR,SUR
LV.fractionDigits=2
LY.currency=LYD
LY.fractionDigits=3
MA.currency=MAD
MA.fractionDigits=2
-MC.currency=EUR
+MC.currency=EUR,FRF
MC.fractionDigits=2
MD.currency=MDL
MD.fractionDigits=2
-MG.currency=MGF
+ME.currency=EUR,DEM,YUM
+ME.fractionDigits=2
+MF.currency=EUR,FRF
+MF.fractionDigits=2
+MG.currency=MGA,MGF
MG.fractionDigits=0
MH.currency=USD
MH.fractionDigits=2
MK.currency=MKD
MK.fractionDigits=2
-ML.currency=XOF
+ML.currency=XOF,MLF,XOF
ML.fractionDigits=0
-MM.currency=MMK
+MM.currency=MMK,BUK
MM.fractionDigits=2
MN.currency=MNT
-MN.fractionDigits=2
+MN.fractionDigits=0
MO.currency=MOP
MO.fractionDigits=2
MP.currency=USD
MP.fractionDigits=2
-MQ.currency=EUR
+MQ.currency=EUR,FRF
MQ.fractionDigits=2
-MR.currency=MRO
-MR.fractionDigits=2
+MR.currency=MRO,XOF
+MR.fractionDigits=0
MS.currency=XCD
MS.fractionDigits=2
-MT.currency=MTL
+MT.currency=EUR,MTL,MTP
MT.fractionDigits=2
MU.currency=MUR
-MU.fractionDigits=2
+MU.fractionDigits=0
MV.currency=MVR
MV.fractionDigits=2
MW.currency=MWK
MW.fractionDigits=2
-MX.currency=MXN
+MX.currency=MXN,MXP
MX.fractionDigits=2
MY.currency=MYR
MY.fractionDigits=2
-MZ.currency=MZM
+MZ.currency=MZN,MZM,MZE
MZ.fractionDigits=2
+NA.currency=ZAR,NAD
+NA.fractionDigits=2
NC.currency=XPF
NC.fractionDigits=0
NE.currency=XOF
@@ -300,13 +332,13 @@ NF.currency=AUD
NF.fractionDigits=2
NG.currency=NGN
NG.fractionDigits=2
-NI.currency=NIO
+NI.currency=NIO,NIC
NI.fractionDigits=2
NL.currency=EUR,NLG
NL.fractionDigits=2
-NO.currency=NOK
+NO.currency=NOK,SEK
NO.fractionDigits=2
-NP.currency=NPR
+NP.currency=NPR,INR
NP.fractionDigits=2
NR.currency=AUD
NR.fractionDigits=2
@@ -316,26 +348,28 @@ NZ.currency=NZD
NZ.fractionDigits=2
OM.currency=OMR
OM.fractionDigits=3
-PA.currency=PAB
+PA.currency=PAB,USD
PA.fractionDigits=2
-PE.currency=PEN
+PE.currency=PEN,PEI,PES
PE.fractionDigits=2
PF.currency=XPF
PF.fractionDigits=0
-PG.currency=PGK
+PG.currency=PGK,AUD
PG.fractionDigits=2
PH.currency=PHP
PH.fractionDigits=2
-PK.currency=PKR
+PK.currency=PKR,INR
PK.fractionDigits=2
-PL.currency=PLN
+PL.currency=PLN,PLZ
PL.fractionDigits=2
-PM.currency=EUR
+PM.currency=EUR,FRF
PM.fractionDigits=2
PN.currency=NZD
PN.fractionDigits=2
-PR.currency=USD
-PR.fractionDigits=2
+PR.currency=USD,ESP
+PR.fractionDigits=0
+PS.currency=JOD,ILS,ILP,JOD
+PS.fractionDigits=3
PT.currency=EUR,PTE
PT.fractionDigits=2
PW.currency=USD
@@ -344,108 +378,116 @@ PY.currency=PYG
PY.fractionDigits=0
QA.currency=QAR
QA.fractionDigits=2
-RE.currency=EUR
+QU.currency=EUR
+QU.fractionDigits=2
+RE.currency=EUR,FRF
RE.fractionDigits=2
-RO.currency=ROL
+RO.currency=RON,ROL
RO.fractionDigits=2
-RU.currency=RUB
+RS.currency=RSD,CSD,YUM
+RS.fractionDigits=2
+RU.currency=RUB,RUR
RU.fractionDigits=2
RW.currency=RWF
RW.fractionDigits=0
SA.currency=SAR
SA.fractionDigits=2
-SB.currency=SBD
+SB.currency=SBD,AUD
SB.fractionDigits=2
SC.currency=SCR
SC.fractionDigits=2
-SD.currency=SDD
+SD.currency=SDG,SDD,SDP,EGP,GBP
SD.fractionDigits=2
SE.currency=SEK
SE.fractionDigits=2
-SG.currency=SGD
+SG.currency=SGD,MYR
SG.fractionDigits=2
SH.currency=SHP
SH.fractionDigits=2
-SI.currency=SIT
+SI.currency=EUR,SIT
SI.fractionDigits=2
SJ.currency=NOK
SJ.fractionDigits=2
-SK.currency=SKK
+SK.currency=SKK,CSK
SK.fractionDigits=2
-SL.currency=SLL
+SL.currency=SLL,GBP
SL.fractionDigits=2
-SM.currency=EUR
-SM.fractionDigits=2
+SM.currency=EUR,ITL
+SM.fractionDigits=0
SN.currency=XOF
SN.fractionDigits=0
SO.currency=SOS
-SO.fractionDigits=2
-SR.currency=SRG
+SO.fractionDigits=0
+SR.currency=SRD,SRG,NLG
SR.fractionDigits=2
ST.currency=STD
-ST.fractionDigits=2
-SV.currency=SVC
+ST.fractionDigits=0
+SU.currency=SUR
+SU.fractionDigits=2
+SV.currency=SVC,USD
SV.fractionDigits=2
SY.currency=SYP
-SY.fractionDigits=2
+SY.fractionDigits=0
SZ.currency=SZL
SZ.fractionDigits=2
TC.currency=USD
TC.fractionDigits=2
TD.currency=XAF
TD.fractionDigits=0
-TF.currency=EUR
+TF.currency=EUR,FRF
TF.fractionDigits=2
TG.currency=XOF
TG.fractionDigits=0
TH.currency=THB
TH.fractionDigits=2
-TJ.currency=TJS
+TJ.currency=TJS,TJR
TJ.fractionDigits=2
TK.currency=NZD
TK.fractionDigits=2
-TL.currency=USD
-TL.fractionDigits=2
-TM.currency=TMM
+TL.currency=USD,TPE,IDR
+TL.fractionDigits=0
+TM.currency=TMM,RUR,SUR
TM.fractionDigits=2
TN.currency=TND
TN.fractionDigits=3
TO.currency=TOP
TO.fractionDigits=2
-TR.currency=TRL
+TP.currency=TPE,IDR
+TP.fractionDigits=0
+TR.currency=TRY,TRL
TR.fractionDigits=0
TT.currency=TTD
TT.fractionDigits=2
TV.currency=AUD
TV.fractionDigits=2
TW.currency=TWD
-TW.fractionDigits=2
+TW.fractionDigits=0
TZ.currency=TZS
-TZ.fractionDigits=2
-UA.currency=UAH
+TZ.fractionDigits=0
+UA.currency=UAH,UAK,RUR,SUR
UA.fractionDigits=2
-UG.currency=UGX
+UG.currency=UGX,UGS
UG.fractionDigits=2
UM.currency=USD
UM.fractionDigits=2
US.currency=USD
US.fractionDigits=2
-UY.currency=UYU
+UY.currency=UYU,UYP
UY.fractionDigits=2
UZ.currency=UZS
-UZ.fractionDigits=2
-VA.currency=EUR
-VA.fractionDigits=2
+UZ.fractionDigits=0
+VA.currency=EUR,ITL
+VA.fractionDigits=0
VC.currency=XCD
VC.fractionDigits=2
-VE.currency=VEB
+VE.currency=VEF,VEB
VE.fractionDigits=2
-VG.currency=USD
+VG.currency=USD,GBP
VG.fractionDigits=2
VI.currency=USD
VI.fractionDigits=2
VN.currency=VND
-VN.fractionDigits=2
+VN.fractionDigits=0
VU.currency=VUV
VU.fractionDigits=0
WF.currency=XPF
@@ -453,14 +495,16 @@ WF.fractionDigits=0
WS.currency=WST
WS.fractionDigits=2
YE.currency=YER
-YE.fractionDigits=2
-YT.currency=EUR
-YT.fractionDigits=2
-YU.currency=YUM
+YE.fractionDigits=0
+YT.currency=EUR,FRF,KMF
+YT.fractionDigits=0
+YU.currency=YUM,YUN,YUD
YU.fractionDigits=2
ZA.currency=ZAR
ZA.fractionDigits=2
ZM.currency=ZMK
-ZM.fractionDigits=2
+ZM.fractionDigits=0
+ZR.currency=ZRN,ZRZ
+ZR.fractionDigits=2
ZW.currency=ZWD
-ZW.fractionDigits=2
+ZW.fractionDigits=0
diff --git a/libjava/classpath/resource/java/util/weeks.properties b/libjava/classpath/resource/java/util/weeks.properties
new file mode 100644
index 0000000..a2547f4
--- /dev/null
+++ b/libjava/classpath/resource/java/util/weeks.properties
@@ -0,0 +1,80 @@
+# This document is automatically generated by gnu.supplementgen
+
+firstDay.AF=sat
+firstDay.AS=sun
+firstDay.AZ=sun
+firstDay.BH=sat
+firstDay.BW=sun
+firstDay.CA=sun
+firstDay.CN=sun
+firstDay.DEFAULT=mon
+firstDay.DJ=sat
+firstDay.DZ=sat
+firstDay.EG=sat
+firstDay.ER=sat
+firstDay.ET=sat
+firstDay.FO=sun
+firstDay.GE=sun
+firstDay.GL=sun
+firstDay.GU=sun
+firstDay.HK=sun
+firstDay.IE=sun
+firstDay.IL=sun
+firstDay.IQ=sat
+firstDay.IR=sat
+firstDay.IS=sun
+firstDay.JM=sun
+firstDay.JO=sat
+firstDay.JP=sun
+firstDay.KE=sat
+firstDay.KG=sun
+firstDay.KR=sun
+firstDay.KW=sat
+firstDay.LA=sun
+firstDay.LY=sat
+firstDay.MA=sat
+firstDay.MH=sun
+firstDay.MN=sun
+firstDay.MO=sun
+firstDay.MP=sun
+firstDay.MT=sun
+firstDay.MV=fri
+firstDay.NZ=sun
+firstDay.OM=sat
+firstDay.PH=sun
+firstDay.PK=sun
+firstDay.QA=sat
+firstDay.SA=sat
+firstDay.SD=sat
+firstDay.SG=sun
+firstDay.SO=sat
+firstDay.SY=sun
+firstDay.TH=sun
+firstDay.TN=sat
+firstDay.TT=sun
+firstDay.TW=sun
+firstDay.UM=sun
+firstDay.US=sun
+firstDay.UZ=sun
+firstDay.VI=sun
+firstDay.YE=sat
+firstDay.ZW=sun
+minDays.AT=4
+minDays.BE=4
+minDays.CA=4
+minDays.CH=4
+minDays.DE=4
+minDays.DEFAULT=1
+minDays.DK=4
+minDays.FI=4
+minDays.FR=4
+minDays.IT=4
+minDays.LI=4
+minDays.LT=4
+minDays.LU=4
+minDays.MC=4
+minDays.MT=4
+minDays.NL=4
+minDays.NO=4
+minDays.SE=4
+minDays.SK=4
diff --git a/libjava/classpath/scripts/Makefile.in b/libjava/classpath/scripts/Makefile.in
index fec57be..dd93467 100644
--- a/libjava/classpath/scripts/Makefile.in
+++ b/libjava/classpath/scripts/Makefile.in
@@ -51,6 +51,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -73,6 +76,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -104,6 +109,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -142,11 +153,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -156,6 +168,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -177,7 +191,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -243,8 +260,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -255,6 +274,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -314,6 +334,7 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
EXTRA_DIST = generate-locale-list.sh import-cacerts.sh
all: all-am
diff --git a/libjava/classpath/scripts/check_jni_methods.sh.in b/libjava/classpath/scripts/check_jni_methods.sh.in
index 2a114d3..cf30094 100644
--- a/libjava/classpath/scripts/check_jni_methods.sh.in
+++ b/libjava/classpath/scripts/check_jni_methods.sh.in
@@ -6,12 +6,16 @@ set -e
TMPFILE=/tmp/check-jni-methods.$$.1
TMPFILE2=/tmp/check-jni-methods.$$.2
TMPFILE3=/tmp/check-jni-methods.$$.3
+TMPFILE4=/tmp/check-jni-methods.$$.4
# Find all methods defined in the header files generated
# from the java source files.
-grep -h '^JNIEXPORT .* Java_' @abs_top_builddir@/include/*.h @abs_top_srcdir@/include/*.h | \
- LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' | \
- sort -u > $TMPFILE
+grep -h '^JNIEXPORT .* Java_' @abs_top_srcdir@/include/*.h | \
+ LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' > $TMPFILE
+grep -h '^JNIEXPORT .* Java_' @abs_top_builddir@/include/*.h | \
+ LC_ALL=C sed -e 's,.*JNICALL \(Java_[a-z_A-Z0-9]*\).*$,\1,' >> $TMPFILE
+sort -u $TMPFILE > $TMPFILE4
+mv $TMPFILE4 $TMPFILE
# Find all methods in the JNI C source files.
find @abs_top_srcdir@/native/jni -name \*.c | \
diff --git a/libjava/classpath/tools/Makefile.am b/libjava/classpath/tools/Makefile.am
index 81953bc..01c07ee 100755
--- a/libjava/classpath/tools/Makefile.am
+++ b/libjava/classpath/tools/Makefile.am
@@ -2,19 +2,35 @@
## GCJ LOCAL: use srcdir to find core classes.
GLIBJ_BOOTCLASSPATH='$(top_srcdir)/lib'
-GLIBJ_CLASSPATH=.:$(srcdir)/asm
+GLIBJ_CLASSPATH=.:$(srcdir)/asm:$(ANTLR_CLASSPATH)
## END GCJ LOCAL
-# Setup the compiler to use the GNU Classpath library we just build
-## GCJ LOCAL: don't pass $(JAVACFLAGS) -source 1.5 -target 1.5
-JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
+# Setup the compiler to use the GNU Classpath library we just built.
+if GCJ_JAVAC
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_BOOTCLASSPATH) --classpath=$(GLIBJ_CLASSPATH)
+else
+JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
+endif
+
+if CREATE_GJDOC
+## GCJ LOCAL: always put source files in srcdir
+## if CREATE_GJDOC_PARSER
+## gjdoc_gendir = ${top_builddir}/tools/generated
+## else
+gjdoc_gendir = ${top_srcdir}/tools/generated
+## endif
+## END GCJ LOCAL
+ANTLR_CLASSPATH = $(ANTLR_JAR):$(gjdoc_gendir)
+endif
if CREATE_WRAPPERS
bin_SCRIPTS =
bin_PROGRAMS = gappletviewer gjarsigner gkeytool \
gjar gnative2ascii gserialver gjavah grmiregistry \
gtnameserv gorbd grmid grmic
-
+if CREATE_GJDOC
+bin_PROGRAMS += gjdoc
+endif
AM_CPPFLAGS = -Wall \
-I$(top_srcdir)/include \
@@ -83,11 +99,19 @@ grmic_CFLAGS = \
-DTOOLPACKAGE="\"rmic\"" \
-DTOOLNAME="\"grmic\""
+gjdoc_SOURCES = toolwrapper.c
+gjdoc_CFLAGS = \
+ -DTOOLPACKAGE="\"gjdoc\"" \
+ -DTOOLNAME="\"gjdoc\""
+
else
## GCJ LOCAL: do not install these.
noinst_SCRIPTS = gappletviewer gjarsigner gkeytool \
gjar gnative2ascii gserialver gjavah grmiregistry \
gtnameserv gorbd grmid grmic
+if CREATE_GJDOC
+noinst_SCRIPTS += gjdoc
+endif
bin_PROGRAMS =
## FIXME: remove these unneeded dependency lines once we can
## require Automake 1.11.
@@ -103,17 +127,25 @@ gtnameserv: gtnameserv.in
gorbd: gorbd.in
grmid: grmid.in
grmic: grmic.in
+if CREATE_GJDOC
+gjdoc: gjdoc.in
+endif
endif
EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \
gjar.in gnative2ascii.in gserialver.in gjavah.in grmiregistry.in \
- gtnameserv.in gorbd.in grmid.in grmic.in
+ gtnameserv.in gorbd.in grmid.in grmic.in gjdoc.in
# All our example java source files
TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
+ $(srcdir)/gnu/classpath/tools/*.java \
+ $(srcdir)/gnu/classpath/tools/*/*.java \
+ $(srcdir)/gnu/classpath/tools/*/*/*.java \
+ $(srcdir)/gnu/classpath/tools/*/*/*/*.java \
$(srcdir)/com/sun/javadoc/*.java \
$(srcdir)/com/sun/tools/doclets/*.java \
$(srcdir)/com/sun/tools/javac/*.java \
$(srcdir)/com/sun/tools/javah/*.java \
+ $(srcdir)/com/sun/tools/javadoc/*.java \
$(srcdir)/sun/rmi/rmic/*.java \
$(srcdir)/external/asm/org/objectweb/asm/*.java \
$(srcdir)/external/asm/org/objectweb/asm/attrs/*.java \
@@ -147,6 +179,107 @@ PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.prope
# RMIC templates that must be included in the generated zip file.
RMIC_TEMPLATES = $(srcdir)/resource/gnu/classpath/tools/rmic/templates/*.jav
+# gjdoc resource files.
+gnu_classpath_tools_gjdoc_jar_CSS = \
+ doctranslets/html/res/gjdochtml-clean.css \
+ doctranslets/html/res/gjdochtml-fixed.css \
+ doctranslets/html/res/gjdochtml-sclara.css \
+ doctranslets/html/res/gjdochtml.css \
+ htmldoclet/gjdochtml-vanilla.css \
+ htmldoclet/gjdochtml-clean-layout.css \
+ htmldoclet/gjdochtml-clean-color1.css
+
+gnu_classpath_tools_gjdoc_jar_DTDS = \
+ htmldoclet/xhtml11-target10.dtd \
+ dtd/gjdoc-alphaindex.dtd \
+ dtd/gjdoc.dtd
+
+gnu_classpath_tools_gjdoc_jar_ENTS = \
+ dtd/ent/iso-amsa.ent \
+ dtd/ent/iso-amsb.ent \
+ dtd/ent/iso-amsc.ent \
+ dtd/ent/iso-amsn.ent \
+ dtd/ent/iso-amso.ent \
+ dtd/ent/iso-amsr.ent \
+ dtd/ent/iso-box.ent \
+ dtd/ent/iso-cyr1.ent \
+ dtd/ent/iso-cyr2.ent \
+ dtd/ent/iso-dia.ent \
+ dtd/ent/iso-grk1.ent \
+ dtd/ent/iso-grk2.ent \
+ dtd/ent/iso-grk3.ent \
+ dtd/ent/iso-grk4.ent \
+ dtd/ent/iso-lat1.ent \
+ dtd/ent/iso-lat2.ent \
+ dtd/ent/iso-num.ent \
+ dtd/ent/iso-pub.ent \
+ dtd/ent/iso-tech.ent
+
+gnu_classpath_tools_gjdoc_jar_HTML = doctranslets/html/res/default_help_en.html
+
+gnu_classpath_tools_gjdoc_jar_JS = \
+ doctranslets/html/res/gjdoc.js \
+ htmldoclet/gjdoc.js
+
+gnu_classpath_tools_gjdoc_jar_PNG = \
+ htmldoclet/inherit.png
+
+gnu_classpath_tools_gjdoc_jar_MODS = dtd/dbcentx.mod
+
+gnu_classpath_tools_gjdoc_jar_PROPERTIES = htmldoclet/HtmlDoclet.properties
+
+gnu_classpath_tools_gjdoc_jar_RNGS = \
+ rng/gjdoc-classdoc.rng \
+ rng/gjdoc-common.rng \
+ rng/gjdoc-index.rng
+
+gnu_classpath_tools_gjdoc_jar_TXTS = \
+ java.lang-classes-1.2.txt \
+ java.lang-classes-1.3.txt \
+ java.lang-classes-1.4.txt \
+ java.lang-classes-1.5.txt
+
+gnu_classpath_tools_gjdoc_jar_XHTML = htmldoclet/help.xhtml
+
+gnu_classpath_tools_gjdoc_jar_XSLS = \
+ doctranslets/gjdoc_common.xsl \
+ doctranslets/html/about.xsl \
+ doctranslets/html/allclasses.xsl \
+ doctranslets/html/allpackages.xsl \
+ doctranslets/html/alphaindex.xsl \
+ doctranslets/html/alphaindex_chunked.xsl \
+ doctranslets/html/classdoc-source.xsl \
+ doctranslets/html/classdoc-uses.xsl \
+ doctranslets/html/classdoc.xsl \
+ doctranslets/html/deprecated.xsl \
+ doctranslets/html/descriptor.xsl \
+ doctranslets/html/doctranslet.xsl \
+ doctranslets/html/fulltree.xsl \
+ doctranslets/html/gjdoc.xsl \
+ doctranslets/html/help.xsl \
+ doctranslets/html/html_common.xsl \
+ doctranslets/html/index_noframes.xsl \
+ doctranslets/html/index.xsl \
+ doctranslets/html/packageclasses.xsl \
+ doctranslets/html/packagedoc.xsl
+
+# All our resources.
+gjdoc_resources = $(gnu_classpath_tools_gjdoc_jar_CSS) $(gnu_classpath_tools_gjdoc_jar_DTDS) \
+ $(gnu_classpath_tools_gjdoc_jar_ENTS) $(gnu_classpath_tools_gjdoc_jar_HTML) \
+ $(gnu_classpath_tools_gjdoc_jar_JS) $(gnu_classpath_tools_gjdoc_jar_MODS) \
+ $(gnu_classpath_tools_gjdoc_jar_PNG) $(gnu_classpath_tools_gjdoc_jar_PROPERTIES) \
+ $(gnu_classpath_tools_gjdoc_jar_RNGS) $(gnu_classpath_tools_gjdoc_jar_TXTS) \
+ $(gnu_classpath_tools_gjdoc_jar_XHTML) $(gnu_classpath_tools_gjdoc_jar_XSLS)
+
+if !CREATE_GJDOC
+GJDOC_EX = -path '*gnu/classpath/tools/gjdoc' -prune -o \
+ -path '*gnu/classpath/tools/doclets' -prune -o \
+ -path '*gnu/classpath/tools/taglets' -prune -o \
+ -path '*com/sun/javadoc' -prune -o \
+ -path '*com/sun/tools/doclets' -prune -o \
+ -path '*com/sun/tools/javadoc' -prune -o
+endif
+
# The zip files with classes we want to produce.
TOOLS_ZIP = tools.zip
@@ -154,7 +287,9 @@ TOOLS_ZIP = tools.zip
BUILT_SOURCES = $(TOOLS_ZIP)
# All the files we find "interesting"
-ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES)
+ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES) \
+ $(addprefix $(srcdir)/resource/gnu/classpath/tools/gjdoc/,$(gjdoc_resources))\
+ $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
# Some architecture independent data to be installed.
# GCJ LOCAL: do not install this.
@@ -184,14 +319,17 @@ dist-hook:
$(TOOLS_ZIP): $(ALL_TOOLS_FILES)
## GCJ LOCAL: put classes in srcdir
## @rm -rf classes asm
-## mkdir classes asm
+## @mkdir_p@ classes asm
+## Compile ASM separately as it is latin-1 encoded.
find $(srcdir)/external/asm -name '*.java' -print > asm.lst
find $(srcdir)/gnu/classpath/tools \
$(srcdir)/com/sun/javadoc \
$(srcdir)/com/sun/tools/doclets \
+ $(srcdir)/com/sun/tools/javadoc \
$(srcdir)/com/sun/tools/javac \
$(srcdir)/com/sun/tools/javah \
$(srcdir)/sun/rmi/rmic \
+ $(GJDOC_EX) \
-name '*.java' -print > classes.lst
if [ -f $(top_builddir)/../vm-tools-packages ]; then \
: > vm-tools.lst; \
@@ -203,46 +341,65 @@ $(TOOLS_ZIP): $(ALL_TOOLS_FILES)
fi
cat classes.lst asm.lst vm-tools.lst > all-classes.lst
if JAVA_MAINTAINER_MODE
+if CREATE_GJDOC
+if CREATE_GJDOC_PARSER
+## Generate antlr sources.
+ @mkdir_p@ $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr
+ $(ANTLR) -o $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr \
+ $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
+endif
+endif
## Compile ASM separately as it is latin-1 encoded.
AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
$$AC -g -w -d $(srcdir)/asm @asm.lst
- $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst @vm-tools.lst
+ $(JCOMPILER) $(USE_JAVAC_FLAGS) -g -d $(srcdir)/classes @classes.lst @vm-tools.lst
+endif
+## END GCJ LOCAL
## Copy over tools resource files.
@list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
- sun/rmi/rmic -name \*.properties -print -o -name \*.jav -print`; \
+ sun/rmi/rmic $(GJDOC_EX) -name \*.properties -print -o -name \*.jav -print`; \
for p in $$list; do \
dirname=classes/`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
- echo " cp $(srcdir)resource/$$p classes/$$p"; \
+ if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
+ echo " cp $(srcdir)/resource/$$p classes/$$p"; \
cp $(srcdir)/resource/$$p classes/$$p; \
done
-endif
-## Copy over rmic template files.
- @list=`cd $(srcdir) && find gnu/classpath/tools -name \*.jav -print`; \
- for p in $$list; do \
- dirname=classes/`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
- echo " cp $(srcdir)/$$p classes/$$p"; \
- cp $(srcdir)/$$p classes/$$p; \
- done
cp -pR $(srcdir)/asm .
cp -pR $(srcdir)/classes .
-## END GCJ LOCAL
+if CREATE_GJDOC
+## Copy over gjdoc resource files.
+ for res in $(gjdoc_resources); do \
+ dir=classes/`dirname $$res`; \
+ if ! test -d "$$dir"; then @mkdir_p@ "$$dir"; fi; \
+ echo " cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res"; \
+ cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res; \
+ done
+endif
+
+if WITH_JAR
+CREATE_TOOLS_ZIP=$(JAR) cf ../$(TOOLS_ZIP) .
+UPDATE_TOOLS_ZIP=$(JAR) uf ../$(TOOLS_ZIP) .
+else
+CREATE_TOOLS_ZIP=$(ZIP) -r ../$(TOOLS_ZIP) .
+UPDATE_TOOLS_ZIP=$(ZIP) -u -r ../$(TOOLS_ZIP) .
+endif
+
## First add classpath tools stuff.
(cd classes; \
- if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \
- if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf ../$(TOOLS_ZIP) .; fi; \
+ $(CREATE_TOOLS_ZIP); \
cd ..)
## Now add ASM classes.
(cd asm; \
- if test "$(ZIP)" != ""; then $(ZIP) -u -r ../$(TOOLS_ZIP) .; fi; \
- if test "$(FASTJAR)" != ""; then "$(FASTJAR)" uf ../$(TOOLS_ZIP) .; fi; \
+ $(UPDATE_TOOLS_ZIP); \
cd ..)
rm -rf asm classes classes.lst asm.lst
# Zip file be gone! (and make sure the classes are gone too)
clean-local:
rm -rf $(TOOLS_ZIP) classes classes.lst asm asm.lst all-classes.lst
+if CREATE_GJDOC_PARSER
+ rm -rf $(gjdoc_gendir)
+endif
# FIXME: remove this when GNU Classpath includes a bootstrap VM.
installcheck-binSCRIPTS:
diff --git a/libjava/classpath/tools/Makefile.in b/libjava/classpath/tools/Makefile.in
index 4204dd0..cf52853 100644
--- a/libjava/classpath/tools/Makefile.in
+++ b/libjava/classpath/tools/Makefile.in
@@ -45,11 +45,14 @@ target_triplet = @target@
@CREATE_WRAPPERS_TRUE@ gserialver$(EXEEXT) gjavah$(EXEEXT) \
@CREATE_WRAPPERS_TRUE@ grmiregistry$(EXEEXT) \
@CREATE_WRAPPERS_TRUE@ gtnameserv$(EXEEXT) gorbd$(EXEEXT) \
-@CREATE_WRAPPERS_TRUE@ grmid$(EXEEXT) grmic$(EXEEXT)
+@CREATE_WRAPPERS_TRUE@ grmid$(EXEEXT) grmic$(EXEEXT) \
+@CREATE_WRAPPERS_TRUE@ $(am__EXEEXT_1)
+@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_TRUE@am__append_1 = gjdoc
+@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_FALSE@am__append_2 = gjdoc
subdir = tools
DIST_COMMON = README $(srcdir)/Makefile.am $(srcdir)/Makefile.in \
$(srcdir)/gappletviewer.in $(srcdir)/gjar.in \
- $(srcdir)/gjarsigner.in $(srcdir)/gjavah.in \
+ $(srcdir)/gjarsigner.in $(srcdir)/gjavah.in $(srcdir)/gjdoc.in \
$(srcdir)/gkeytool.in $(srcdir)/gnative2ascii.in \
$(srcdir)/gorbd.in $(srcdir)/grmic.in $(srcdir)/grmid.in \
$(srcdir)/grmiregistry.in $(srcdir)/gserialver.in \
@@ -66,6 +69,9 @@ am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
$(top_srcdir)/../../ltsugar.m4 \
$(top_srcdir)/../../ltversion.m4 \
$(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
$(top_srcdir)/m4/ac_prog_javac.m4 \
$(top_srcdir)/m4/ac_prog_javac_works.m4 \
$(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
@@ -82,7 +88,9 @@ mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
CONFIG_HEADER = $(top_builddir)/include/config.h
CONFIG_CLEAN_FILES = gappletviewer gjarsigner gkeytool gjar \
gnative2ascii gserialver grmiregistry gtnameserv gorbd grmid \
- grmic gjavah
+ grmic gjavah gjdoc
+@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_TRUE@am__EXEEXT_1 = \
+@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_TRUE@ gjdoc$(EXEEXT)
am__installdirs = "$(DESTDIR)$(bindir)" "$(DESTDIR)$(bindir)"
binPROGRAMS_INSTALL = $(INSTALL_PROGRAM)
PROGRAMS = $(bin_PROGRAMS)
@@ -105,6 +113,10 @@ am__gjavah_SOURCES_DIST = toolwrapper.c
@CREATE_WRAPPERS_TRUE@ gjavah-toolwrapper.$(OBJEXT)
gjavah_OBJECTS = $(am_gjavah_OBJECTS)
gjavah_LDADD = $(LDADD)
+am__gjdoc_SOURCES_DIST = toolwrapper.c
+@CREATE_WRAPPERS_TRUE@am_gjdoc_OBJECTS = gjdoc-toolwrapper.$(OBJEXT)
+gjdoc_OBJECTS = $(am_gjdoc_OBJECTS)
+gjdoc_LDADD = $(LDADD)
am__gkeytool_SOURCES_DIST = toolwrapper.c
@CREATE_WRAPPERS_TRUE@am_gkeytool_OBJECTS = \
@CREATE_WRAPPERS_TRUE@ gkeytool-toolwrapper.$(OBJEXT)
@@ -156,16 +168,16 @@ CCLD = $(CC)
LINK = $(LIBTOOL) --tag=CC --mode=link $(CCLD) $(AM_CFLAGS) $(CFLAGS) \
$(AM_LDFLAGS) $(LDFLAGS) -o $@
SOURCES = $(gappletviewer_SOURCES) $(gjar_SOURCES) \
- $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gkeytool_SOURCES) \
- $(gnative2ascii_SOURCES) $(gorbd_SOURCES) $(grmic_SOURCES) \
- $(grmid_SOURCES) $(grmiregistry_SOURCES) $(gserialver_SOURCES) \
- $(gtnameserv_SOURCES)
+ $(gjarsigner_SOURCES) $(gjavah_SOURCES) $(gjdoc_SOURCES) \
+ $(gkeytool_SOURCES) $(gnative2ascii_SOURCES) $(gorbd_SOURCES) \
+ $(grmic_SOURCES) $(grmid_SOURCES) $(grmiregistry_SOURCES) \
+ $(gserialver_SOURCES) $(gtnameserv_SOURCES)
DIST_SOURCES = $(am__gappletviewer_SOURCES_DIST) \
$(am__gjar_SOURCES_DIST) $(am__gjarsigner_SOURCES_DIST) \
- $(am__gjavah_SOURCES_DIST) $(am__gkeytool_SOURCES_DIST) \
- $(am__gnative2ascii_SOURCES_DIST) $(am__gorbd_SOURCES_DIST) \
- $(am__grmic_SOURCES_DIST) $(am__grmid_SOURCES_DIST) \
- $(am__grmiregistry_SOURCES_DIST) \
+ $(am__gjavah_SOURCES_DIST) $(am__gjdoc_SOURCES_DIST) \
+ $(am__gkeytool_SOURCES_DIST) $(am__gnative2ascii_SOURCES_DIST) \
+ $(am__gorbd_SOURCES_DIST) $(am__grmic_SOURCES_DIST) \
+ $(am__grmid_SOURCES_DIST) $(am__grmiregistry_SOURCES_DIST) \
$(am__gserialver_SOURCES_DIST) $(am__gtnameserv_SOURCES_DIST)
DATA = $(noinst_DATA)
ETAGS = etags
@@ -175,6 +187,8 @@ ACLOCAL = @ACLOCAL@
AMDEP_FALSE = @AMDEP_FALSE@
AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AUTOCONF = @AUTOCONF@
AUTOHEADER = @AUTOHEADER@
@@ -206,6 +220,12 @@ CREATE_DSSI_LIBRARIES_FALSE = @CREATE_DSSI_LIBRARIES_FALSE@
CREATE_DSSI_LIBRARIES_TRUE = @CREATE_DSSI_LIBRARIES_TRUE@
CREATE_GCONF_PEER_LIBRARIES_FALSE = @CREATE_GCONF_PEER_LIBRARIES_FALSE@
CREATE_GCONF_PEER_LIBRARIES_TRUE = @CREATE_GCONF_PEER_LIBRARIES_TRUE@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_PARSER_FALSE = @CREATE_GJDOC_PARSER_FALSE@
+CREATE_GJDOC_PARSER_TRUE = @CREATE_GJDOC_PARSER_TRUE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
+CREATE_GMPBI_LIBRARY_FALSE = @CREATE_GMPBI_LIBRARY_FALSE@
+CREATE_GMPBI_LIBRARY_TRUE = @CREATE_GMPBI_LIBRARY_TRUE@
CREATE_GSTREAMER_PEER_LIBRARIES_FALSE = @CREATE_GSTREAMER_PEER_LIBRARIES_FALSE@
CREATE_GSTREAMER_PEER_LIBRARIES_TRUE = @CREATE_GSTREAMER_PEER_LIBRARIES_TRUE@
CREATE_GTK_PEER_LIBRARIES_FALSE = @CREATE_GTK_PEER_LIBRARIES_FALSE@
@@ -244,11 +264,12 @@ ERROR_CFLAGS = @ERROR_CFLAGS@
EXAMPLESDIR = @EXAMPLESDIR@
EXEEXT = @EXEEXT@
EXTRA_CFLAGS = @EXTRA_CFLAGS@
-FASTJAR = @FASTJAR@
FGREP = @FGREP@
FIND = @FIND@
FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCJ_JAVAC_FALSE = @GCJ_JAVAC_FALSE@
+GCJ_JAVAC_TRUE = @GCJ_JAVAC_TRUE@
GCONF_CFLAGS = @GCONF_CFLAGS@
GCONF_LIBS = @GCONF_LIBS@
GDK_CFLAGS = @GDK_CFLAGS@
@@ -258,6 +279,8 @@ GENINSRC_TRUE = @GENINSRC_TRUE@
GJDOC = @GJDOC@
GLIB_CFLAGS = @GLIB_CFLAGS@
GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
GREP = @GREP@
GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
@@ -279,7 +302,10 @@ INSTALL_GLIBJ_ZIP_TRUE = @INSTALL_GLIBJ_ZIP_TRUE@
INSTALL_PROGRAM = @INSTALL_PROGRAM@
INSTALL_SCRIPT = @INSTALL_SCRIPT@
INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
JAVA_MAINTAINER_MODE_FALSE = @JAVA_MAINTAINER_MODE_FALSE@
@@ -345,8 +371,10 @@ USE_ESCHER_TRUE = @USE_ESCHER_TRUE@
USE_PREBUILT_GLIBJ_ZIP_FALSE = @USE_PREBUILT_GLIBJ_ZIP_FALSE@
USE_PREBUILT_GLIBJ_ZIP_TRUE = @USE_PREBUILT_GLIBJ_ZIP_TRUE@
VERSION = @VERSION@
-VM_BINARY = @VM_BINARY@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
WARNING_CFLAGS = @WARNING_CFLAGS@
+WITH_JAR_FALSE = @WITH_JAR_FALSE@
+WITH_JAR_TRUE = @WITH_JAR_TRUE@
XML_CFLAGS = @XML_CFLAGS@
XML_LIBS = @XML_LIBS@
XSLT_CFLAGS = @XSLT_CFLAGS@
@@ -357,6 +385,7 @@ X_EXTRA_LIBS = @X_EXTRA_LIBS@
X_LIBS = @X_LIBS@
X_PRE_LIBS = @X_PRE_LIBS@
ZIP = @ZIP@
+ac_ct_ANTLR = @ac_ct_ANTLR@
ac_ct_AR = @ac_ct_AR@
ac_ct_CC = @ac_ct_CC@
ac_ct_CXX = @ac_ct_CXX@
@@ -416,12 +445,16 @@ target_cpu = @target_cpu@
target_os = @target_os@
target_vendor = @target_vendor@
toolexeclibdir = @toolexeclibdir@
+uudecode = @uudecode@
vm_classes = @vm_classes@
GLIBJ_BOOTCLASSPATH = '$(top_srcdir)/lib'
-GLIBJ_CLASSPATH = .:$(srcdir)/asm
+GLIBJ_CLASSPATH = .:$(srcdir)/asm:$(ANTLR_CLASSPATH)
+@GCJ_JAVAC_FALSE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -source 1.5 -target 1.5 -encoding UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
-# Setup the compiler to use the GNU Classpath library we just build
-JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH) -classpath $(GLIBJ_CLASSPATH)
+# Setup the compiler to use the GNU Classpath library we just built.
+@GCJ_JAVAC_TRUE@JCOMPILER = $(JAVAC) $(JAVACFLAGS) -fsource=1.5 -ftarget=1.5 --encoding=UTF-8 --bootclasspath=$(GLIBJ_BOOTCLASSPATH) --classpath=$(GLIBJ_CLASSPATH)
+@CREATE_GJDOC_TRUE@gjdoc_gendir = ${top_srcdir}/tools/generated
+@CREATE_GJDOC_TRUE@ANTLR_CLASSPATH = $(ANTLR_JAR):$(gjdoc_gendir)
@CREATE_WRAPPERS_TRUE@bin_SCRIPTS =
@CREATE_WRAPPERS_TRUE@AM_CPPFLAGS = -Wall \
@CREATE_WRAPPERS_TRUE@ -I$(top_srcdir)/include \
@@ -490,21 +523,31 @@ JCOMPILER = $(JAVAC) -g -w --encoding=UTF-8 -bootclasspath $(GLIBJ_BOOTCLASSPATH
@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"rmic\"" \
@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"grmic\""
-@CREATE_WRAPPERS_FALSE@noinst_SCRIPTS = gappletviewer gjarsigner gkeytool \
-@CREATE_WRAPPERS_FALSE@ gjar gnative2ascii gserialver gjavah grmiregistry \
-@CREATE_WRAPPERS_FALSE@ gtnameserv gorbd grmid grmic
+@CREATE_WRAPPERS_TRUE@gjdoc_SOURCES = toolwrapper.c
+@CREATE_WRAPPERS_TRUE@gjdoc_CFLAGS = \
+@CREATE_WRAPPERS_TRUE@ -DTOOLPACKAGE="\"gjdoc\"" \
+@CREATE_WRAPPERS_TRUE@ -DTOOLNAME="\"gjdoc\""
+@CREATE_WRAPPERS_FALSE@noinst_SCRIPTS = gappletviewer gjarsigner \
+@CREATE_WRAPPERS_FALSE@ gkeytool gjar gnative2ascii gserialver \
+@CREATE_WRAPPERS_FALSE@ gjavah grmiregistry gtnameserv gorbd \
+@CREATE_WRAPPERS_FALSE@ grmid grmic $(am__append_2)
EXTRA_DIST = toolwrapper.c gappletviewer.in gjarsigner.in gkeytool.in \
gjar.in gnative2ascii.in gserialver.in gjavah.in grmiregistry.in \
- gtnameserv.in gorbd.in grmid.in grmic.in
+ gtnameserv.in gorbd.in grmid.in grmic.in gjdoc.in
# All our example java source files
TOOLS_JAVA_FILES = $(srcdir)/gnu/classpath/tools/*/*.java \
+ $(srcdir)/gnu/classpath/tools/*.java \
+ $(srcdir)/gnu/classpath/tools/*/*.java \
+ $(srcdir)/gnu/classpath/tools/*/*/*.java \
+ $(srcdir)/gnu/classpath/tools/*/*/*/*.java \
$(srcdir)/com/sun/javadoc/*.java \
$(srcdir)/com/sun/tools/doclets/*.java \
$(srcdir)/com/sun/tools/javac/*.java \
$(srcdir)/com/sun/tools/javah/*.java \
+ $(srcdir)/com/sun/tools/javadoc/*.java \
$(srcdir)/sun/rmi/rmic/*.java \
$(srcdir)/external/asm/org/objectweb/asm/*.java \
$(srcdir)/external/asm/org/objectweb/asm/attrs/*.java \
@@ -540,6 +583,103 @@ PROPERTY_FILES = $(srcdir)/external/asm/org/objectweb/asm/optimizer/shrink.prope
# RMIC templates that must be included in the generated zip file.
RMIC_TEMPLATES = $(srcdir)/resource/gnu/classpath/tools/rmic/templates/*.jav
+# gjdoc resource files.
+gnu_classpath_tools_gjdoc_jar_CSS = \
+ doctranslets/html/res/gjdochtml-clean.css \
+ doctranslets/html/res/gjdochtml-fixed.css \
+ doctranslets/html/res/gjdochtml-sclara.css \
+ doctranslets/html/res/gjdochtml.css \
+ htmldoclet/gjdochtml-vanilla.css \
+ htmldoclet/gjdochtml-clean-layout.css \
+ htmldoclet/gjdochtml-clean-color1.css
+
+gnu_classpath_tools_gjdoc_jar_DTDS = \
+ htmldoclet/xhtml11-target10.dtd \
+ dtd/gjdoc-alphaindex.dtd \
+ dtd/gjdoc.dtd
+
+gnu_classpath_tools_gjdoc_jar_ENTS = \
+ dtd/ent/iso-amsa.ent \
+ dtd/ent/iso-amsb.ent \
+ dtd/ent/iso-amsc.ent \
+ dtd/ent/iso-amsn.ent \
+ dtd/ent/iso-amso.ent \
+ dtd/ent/iso-amsr.ent \
+ dtd/ent/iso-box.ent \
+ dtd/ent/iso-cyr1.ent \
+ dtd/ent/iso-cyr2.ent \
+ dtd/ent/iso-dia.ent \
+ dtd/ent/iso-grk1.ent \
+ dtd/ent/iso-grk2.ent \
+ dtd/ent/iso-grk3.ent \
+ dtd/ent/iso-grk4.ent \
+ dtd/ent/iso-lat1.ent \
+ dtd/ent/iso-lat2.ent \
+ dtd/ent/iso-num.ent \
+ dtd/ent/iso-pub.ent \
+ dtd/ent/iso-tech.ent
+
+gnu_classpath_tools_gjdoc_jar_HTML = doctranslets/html/res/default_help_en.html
+gnu_classpath_tools_gjdoc_jar_JS = \
+ doctranslets/html/res/gjdoc.js \
+ htmldoclet/gjdoc.js
+
+gnu_classpath_tools_gjdoc_jar_PNG = \
+ htmldoclet/inherit.png
+
+gnu_classpath_tools_gjdoc_jar_MODS = dtd/dbcentx.mod
+gnu_classpath_tools_gjdoc_jar_PROPERTIES = htmldoclet/HtmlDoclet.properties
+gnu_classpath_tools_gjdoc_jar_RNGS = \
+ rng/gjdoc-classdoc.rng \
+ rng/gjdoc-common.rng \
+ rng/gjdoc-index.rng
+
+gnu_classpath_tools_gjdoc_jar_TXTS = \
+ java.lang-classes-1.2.txt \
+ java.lang-classes-1.3.txt \
+ java.lang-classes-1.4.txt \
+ java.lang-classes-1.5.txt
+
+gnu_classpath_tools_gjdoc_jar_XHTML = htmldoclet/help.xhtml
+gnu_classpath_tools_gjdoc_jar_XSLS = \
+ doctranslets/gjdoc_common.xsl \
+ doctranslets/html/about.xsl \
+ doctranslets/html/allclasses.xsl \
+ doctranslets/html/allpackages.xsl \
+ doctranslets/html/alphaindex.xsl \
+ doctranslets/html/alphaindex_chunked.xsl \
+ doctranslets/html/classdoc-source.xsl \
+ doctranslets/html/classdoc-uses.xsl \
+ doctranslets/html/classdoc.xsl \
+ doctranslets/html/deprecated.xsl \
+ doctranslets/html/descriptor.xsl \
+ doctranslets/html/doctranslet.xsl \
+ doctranslets/html/fulltree.xsl \
+ doctranslets/html/gjdoc.xsl \
+ doctranslets/html/help.xsl \
+ doctranslets/html/html_common.xsl \
+ doctranslets/html/index_noframes.xsl \
+ doctranslets/html/index.xsl \
+ doctranslets/html/packageclasses.xsl \
+ doctranslets/html/packagedoc.xsl
+
+
+# All our resources.
+gjdoc_resources = $(gnu_classpath_tools_gjdoc_jar_CSS) $(gnu_classpath_tools_gjdoc_jar_DTDS) \
+ $(gnu_classpath_tools_gjdoc_jar_ENTS) $(gnu_classpath_tools_gjdoc_jar_HTML) \
+ $(gnu_classpath_tools_gjdoc_jar_JS) $(gnu_classpath_tools_gjdoc_jar_MODS) \
+ $(gnu_classpath_tools_gjdoc_jar_PNG) $(gnu_classpath_tools_gjdoc_jar_PROPERTIES) \
+ $(gnu_classpath_tools_gjdoc_jar_RNGS) $(gnu_classpath_tools_gjdoc_jar_TXTS) \
+ $(gnu_classpath_tools_gjdoc_jar_XHTML) $(gnu_classpath_tools_gjdoc_jar_XSLS)
+
+@CREATE_GJDOC_FALSE@GJDOC_EX = -path '*gnu/classpath/tools/gjdoc' -prune -o \
+@CREATE_GJDOC_FALSE@ -path '*gnu/classpath/tools/doclets' -prune -o \
+@CREATE_GJDOC_FALSE@ -path '*gnu/classpath/tools/taglets' -prune -o \
+@CREATE_GJDOC_FALSE@ -path '*com/sun/javadoc' -prune -o \
+@CREATE_GJDOC_FALSE@ -path '*com/sun/tools/doclets' -prune -o \
+@CREATE_GJDOC_FALSE@ -path '*com/sun/tools/javadoc' -prune -o
+
+
# The zip files with classes we want to produce.
TOOLS_ZIP = tools.zip
@@ -547,7 +687,10 @@ TOOLS_ZIP = tools.zip
BUILT_SOURCES = $(TOOLS_ZIP)
# All the files we find "interesting"
-ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES)
+ALL_TOOLS_FILES = $(TOOLS_JAVA_FILES) $(RMIC_TEMPLATES) $(PROPERTY_FILES) \
+ $(addprefix $(srcdir)/resource/gnu/classpath/tools/gjdoc/,$(gjdoc_resources))\
+ $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
+
# Some architecture independent data to be installed.
# GCJ LOCAL: do not install this.
@@ -555,6 +698,10 @@ noinst_DATA = $(TOOLS_ZIP)
# Where we want these data files installed.
TOOLSdir = $(pkgdatadir)
+@WITH_JAR_FALSE@CREATE_TOOLS_ZIP = $(ZIP) -r ../$(TOOLS_ZIP) .
+@WITH_JAR_TRUE@CREATE_TOOLS_ZIP = $(JAR) cf ../$(TOOLS_ZIP) .
+@WITH_JAR_FALSE@UPDATE_TOOLS_ZIP = $(ZIP) -u -r ../$(TOOLS_ZIP) .
+@WITH_JAR_TRUE@UPDATE_TOOLS_ZIP = $(JAR) uf ../$(TOOLS_ZIP) .
all: $(BUILT_SOURCES)
$(MAKE) $(AM_MAKEFLAGS) all-am
@@ -613,6 +760,8 @@ grmic: $(top_builddir)/config.status $(srcdir)/grmic.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
gjavah: $(top_builddir)/config.status $(srcdir)/gjavah.in
cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
+gjdoc: $(top_builddir)/config.status $(srcdir)/gjdoc.in
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@
install-binPROGRAMS: $(bin_PROGRAMS)
@$(NORMAL_INSTALL)
test -z "$(bindir)" || $(mkdir_p) "$(DESTDIR)$(bindir)"
@@ -669,6 +818,12 @@ installcheck-binPROGRAMS: $(bin_PROGRAMS)
@CREATE_WRAPPERS_TRUE@gjavah$(EXEEXT): $(gjavah_OBJECTS) $(gjavah_DEPENDENCIES)
@CREATE_WRAPPERS_TRUE@ @rm -f gjavah$(EXEEXT)
@CREATE_WRAPPERS_TRUE@ $(LINK) $(gjavah_LDFLAGS) $(gjavah_OBJECTS) $(gjavah_LDADD) $(LIBS)
+@CREATE_GJDOC_FALSE@gjdoc$(EXEEXT): $(gjdoc_OBJECTS) $(gjdoc_DEPENDENCIES)
+@CREATE_GJDOC_FALSE@ @rm -f gjdoc$(EXEEXT)
+@CREATE_GJDOC_FALSE@ $(LINK) $(gjdoc_LDFLAGS) $(gjdoc_OBJECTS) $(gjdoc_LDADD) $(LIBS)
+@CREATE_WRAPPERS_TRUE@gjdoc$(EXEEXT): $(gjdoc_OBJECTS) $(gjdoc_DEPENDENCIES)
+@CREATE_WRAPPERS_TRUE@ @rm -f gjdoc$(EXEEXT)
+@CREATE_WRAPPERS_TRUE@ $(LINK) $(gjdoc_LDFLAGS) $(gjdoc_OBJECTS) $(gjdoc_LDADD) $(LIBS)
@CREATE_WRAPPERS_TRUE@gkeytool$(EXEEXT): $(gkeytool_OBJECTS) $(gkeytool_DEPENDENCIES)
@CREATE_WRAPPERS_TRUE@ @rm -f gkeytool$(EXEEXT)
@CREATE_WRAPPERS_TRUE@ $(LINK) $(gkeytool_LDFLAGS) $(gkeytool_OBJECTS) $(gkeytool_LDADD) $(LIBS)
@@ -723,6 +878,7 @@ distclean-compile:
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjar-toolwrapper.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjarsigner-toolwrapper.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjavah-toolwrapper.Po@am__quote@
+@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gjdoc-toolwrapper.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gkeytool-toolwrapper.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gnative2ascii-toolwrapper.Po@am__quote@
@AMDEP_TRUE@@am__include@ @am__quote@./$(DEPDIR)/gorbd-toolwrapper.Po@am__quote@
@@ -809,6 +965,20 @@ gjavah-toolwrapper.obj: toolwrapper.c
@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjavah_CFLAGS) $(CFLAGS) -c -o gjavah-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`
+gjdoc-toolwrapper.o: toolwrapper.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjdoc_CFLAGS) $(CFLAGS) -MT gjdoc-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gjdoc-toolwrapper.Tpo" -c -o gjdoc-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gjdoc-toolwrapper.Tpo" "$(DEPDIR)/gjdoc-toolwrapper.Po"; else rm -f "$(DEPDIR)/gjdoc-toolwrapper.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gjdoc-toolwrapper.o' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjdoc_CFLAGS) $(CFLAGS) -c -o gjdoc-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c
+
+gjdoc-toolwrapper.obj: toolwrapper.c
+@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjdoc_CFLAGS) $(CFLAGS) -MT gjdoc-toolwrapper.obj -MD -MP -MF "$(DEPDIR)/gjdoc-toolwrapper.Tpo" -c -o gjdoc-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`; \
+@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gjdoc-toolwrapper.Tpo" "$(DEPDIR)/gjdoc-toolwrapper.Po"; else rm -f "$(DEPDIR)/gjdoc-toolwrapper.Tpo"; exit 1; fi
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ source='toolwrapper.c' object='gjdoc-toolwrapper.obj' libtool=no @AMDEPBACKSLASH@
+@AMDEP_TRUE@@am__fastdepCC_FALSE@ DEPDIR=$(DEPDIR) $(CCDEPMODE) $(depcomp) @AMDEPBACKSLASH@
+@am__fastdepCC_FALSE@ $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gjdoc_CFLAGS) $(CFLAGS) -c -o gjdoc-toolwrapper.obj `if test -f 'toolwrapper.c'; then $(CYGPATH_W) 'toolwrapper.c'; else $(CYGPATH_W) '$(srcdir)/toolwrapper.c'; fi`
+
gkeytool-toolwrapper.o: toolwrapper.c
@am__fastdepCC_TRUE@ if $(CC) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS) $(gkeytool_CFLAGS) $(CFLAGS) -MT gkeytool-toolwrapper.o -MD -MP -MF "$(DEPDIR)/gkeytool-toolwrapper.Tpo" -c -o gkeytool-toolwrapper.o `test -f 'toolwrapper.c' || echo '$(srcdir)/'`toolwrapper.c; \
@am__fastdepCC_TRUE@ then mv -f "$(DEPDIR)/gkeytool-toolwrapper.Tpo" "$(DEPDIR)/gkeytool-toolwrapper.Po"; else rm -f "$(DEPDIR)/gkeytool-toolwrapper.Tpo"; exit 1; fi
@@ -1121,6 +1291,7 @@ uninstall-am: uninstall-binPROGRAMS uninstall-binSCRIPTS \
@CREATE_WRAPPERS_FALSE@gorbd: gorbd.in
@CREATE_WRAPPERS_FALSE@grmid: grmid.in
@CREATE_WRAPPERS_FALSE@grmic: grmic.in
+@CREATE_GJDOC_TRUE@@CREATE_WRAPPERS_FALSE@gjdoc: gjdoc.in
# Make sure everything is included in the distribution.
dist-hook:
@@ -1145,9 +1316,11 @@ $(TOOLS_ZIP): $(ALL_TOOLS_FILES)
find $(srcdir)/gnu/classpath/tools \
$(srcdir)/com/sun/javadoc \
$(srcdir)/com/sun/tools/doclets \
+ $(srcdir)/com/sun/tools/javadoc \
$(srcdir)/com/sun/tools/javac \
$(srcdir)/com/sun/tools/javah \
$(srcdir)/sun/rmi/rmic \
+ $(GJDOC_EX) \
-name '*.java' -print > classes.lst
if [ -f $(top_builddir)/../vm-tools-packages ]; then \
: > vm-tools.lst; \
@@ -1158,39 +1331,41 @@ $(TOOLS_ZIP): $(ALL_TOOLS_FILES)
echo -n > vm-tools.lst; \
fi
cat classes.lst asm.lst vm-tools.lst > all-classes.lst
+@CREATE_GJDOC_PARSER_TRUE@@CREATE_GJDOC_TRUE@@JAVA_MAINTAINER_MODE_TRUE@ @mkdir_p@ $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr
+@CREATE_GJDOC_PARSER_TRUE@@CREATE_GJDOC_TRUE@@JAVA_MAINTAINER_MODE_TRUE@ $(ANTLR) -o $(gjdoc_gendir)/gnu/classpath/tools/gjdoc/expr \
+@CREATE_GJDOC_PARSER_TRUE@@CREATE_GJDOC_TRUE@@JAVA_MAINTAINER_MODE_TRUE@ $(srcdir)/gnu/classpath/tools/gjdoc/expr/java-expression.g
@JAVA_MAINTAINER_MODE_TRUE@ AC=`echo $(JCOMPILER) | sed -e 's/UTF-8/ISO-8859-1/g'`; \
@JAVA_MAINTAINER_MODE_TRUE@ $$AC -g -w -d $(srcdir)/asm @asm.lst
-@JAVA_MAINTAINER_MODE_TRUE@ $(JCOMPILER) -g -w -d $(srcdir)/classes @classes.lst @vm-tools.lst
-@JAVA_MAINTAINER_MODE_TRUE@ @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
-@JAVA_MAINTAINER_MODE_TRUE@ sun/rmi/rmic -name \*.properties -print -o -name \*.jav -print`; \
-@JAVA_MAINTAINER_MODE_TRUE@ for p in $$list; do \
-@JAVA_MAINTAINER_MODE_TRUE@ dirname=classes/`dirname $$p`; \
-@JAVA_MAINTAINER_MODE_TRUE@ if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
-@JAVA_MAINTAINER_MODE_TRUE@ echo " cp $(srcdir)resource/$$p classes/$$p"; \
-@JAVA_MAINTAINER_MODE_TRUE@ cp $(srcdir)/resource/$$p classes/$$p; \
-@JAVA_MAINTAINER_MODE_TRUE@ done
- @list=`cd $(srcdir) && find gnu/classpath/tools -name \*.jav -print`; \
+@JAVA_MAINTAINER_MODE_TRUE@ $(JCOMPILER) $(USE_JAVAC_FLAGS) -g -d $(srcdir)/classes @classes.lst @vm-tools.lst
+ @list=`cd $(srcdir)/resource && find gnu/classpath/tools com/sun/tools/javac \
+ sun/rmi/rmic $(GJDOC_EX) -name \*.properties -print -o -name \*.jav -print`; \
for p in $$list; do \
dirname=classes/`dirname $$p`; \
- if ! test -d "$$dirname"; then mkdir -p "$$dirname"; fi; \
- echo " cp $(srcdir)/$$p classes/$$p"; \
- cp $(srcdir)/$$p classes/$$p; \
+ if ! test -d "$$dirname"; then @mkdir_p@ "$$dirname"; fi; \
+ echo " cp $(srcdir)/resource/$$p classes/$$p"; \
+ cp $(srcdir)/resource/$$p classes/$$p; \
done
cp -pR $(srcdir)/asm .
cp -pR $(srcdir)/classes .
+@CREATE_GJDOC_TRUE@ for res in $(gjdoc_resources); do \
+@CREATE_GJDOC_TRUE@ dir=classes/`dirname $$res`; \
+@CREATE_GJDOC_TRUE@ if ! test -d "$$dir"; then @mkdir_p@ "$$dir"; fi; \
+@CREATE_GJDOC_TRUE@ echo " cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res"; \
+@CREATE_GJDOC_TRUE@ cp $(srcdir)/resource/gnu/classpath/tools/gjdoc/$$res classes/$$res; \
+@CREATE_GJDOC_TRUE@ done
+
(cd classes; \
- if test "$(ZIP)" != ""; then $(ZIP) -r ../$(TOOLS_ZIP) .; fi; \
- if test "$(FASTJAR)" != ""; then "$(FASTJAR)" cf ../$(TOOLS_ZIP) .; fi; \
+ $(CREATE_TOOLS_ZIP); \
cd ..)
(cd asm; \
- if test "$(ZIP)" != ""; then $(ZIP) -u -r ../$(TOOLS_ZIP) .; fi; \
- if test "$(FASTJAR)" != ""; then "$(FASTJAR)" uf ../$(TOOLS_ZIP) .; fi; \
+ $(UPDATE_TOOLS_ZIP); \
cd ..)
rm -rf asm classes classes.lst asm.lst
# Zip file be gone! (and make sure the classes are gone too)
clean-local:
rm -rf $(TOOLS_ZIP) classes classes.lst asm asm.lst all-classes.lst
+@CREATE_GJDOC_PARSER_TRUE@ rm -rf $(gjdoc_gendir)
# FIXME: remove this when GNU Classpath includes a bootstrap VM.
installcheck-binSCRIPTS:
diff --git a/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class b/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class
new file mode 100644
index 0000000..f2822a6
--- /dev/null
+++ b/libjava/classpath/tools/classes/com/sun/tools/javadoc/Main.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class
new file mode 100644
index 0000000..83a757f
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$FileStreamInfo.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class
new file mode 100644
index 0000000..4e4d392
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$JarStreamInfo.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class
new file mode 100644
index 0000000..85f53ae
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader$StreamInfo.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class
new file mode 100644
index 0000000..7b65b82
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/FileSystemClassLoader.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class b/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class
new file mode 100644
index 0000000..d5f72fb
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/IOToolkit.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class
new file mode 100644
index 0000000..445a1f3
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputEvent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class b/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class
new file mode 100644
index 0000000..6a90af5
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/MalformedInputListener.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class
new file mode 100644
index 0000000..fc7d134
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/NotifyingInputStreamReader.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class b/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class
new file mode 100644
index 0000000..bef494c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/StringToolkit.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
index 36bc25f..2c8a74d 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/common/ClasspathToolParser.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class
new file mode 100644
index 0000000..5b3b3d9
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionGroup.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class
new file mode 100644
index 0000000..2aee2cf
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTag.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class
new file mode 100644
index 0000000..b88206b
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class
new file mode 100644
index 0000000..c16cb5a
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$DocletOptionTagletPath.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class
new file mode 100644
index 0000000..7247ed8
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$IndexKey.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class
new file mode 100644
index 0000000..28d360b
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$InterfaceRelation.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class
new file mode 100644
index 0000000..e06dc5f
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet$UsageType.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class
new file mode 100644
index 0000000..268778d
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/AbstractDoclet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class
new file mode 100644
index 0000000..f8f4287
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletConfigurationException.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class
new file mode 100644
index 0000000..2b2bf91
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOption.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class
new file mode 100644
index 0000000..b51e167
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionColonSeparated.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class
new file mode 100644
index 0000000..ff961e9
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFile.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class
new file mode 100644
index 0000000..da98b73
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionFlag.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class
new file mode 100644
index 0000000..72b2822
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class
new file mode 100644
index 0000000..39529c26
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/DocletOptionString.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class
new file mode 100644
index 0000000..d938d61
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InlineTagRenderer.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class
new file mode 100644
index 0000000..c2cfa70
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/InvalidPackageWildcardException.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class
new file mode 100644
index 0000000..a046a58
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageGroup.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class
new file mode 100644
index 0000000..6370bc4
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/PackageMatcher.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class
new file mode 100644
index 0000000..711c57e
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/StandardTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class
new file mode 100644
index 0000000..ac908c9
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/TagletPrinter.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class
new file mode 100644
index 0000000..70bd890
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class
new file mode 100644
index 0000000..9fe2194
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/CssClass.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class
new file mode 100644
index 0000000..125649f
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class
new file mode 100644
index 0000000..5bcba7c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$1.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class
new file mode 100644
index 0000000..cfecc2e
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$2.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class
new file mode 100644
index 0000000..620bb15
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$3.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class
new file mode 100644
index 0000000..f0d1ad7
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet$TreeNode.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class
new file mode 100644
index 0000000..6e9981b
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class
new file mode 100644
index 0000000..c8fef27
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class
new file mode 100644
index 0000000..9c422ca
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class
new file mode 100644
index 0000000..29ff940
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$1.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class
new file mode 100644
index 0000000..fdaf194
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$NullErrorReporter.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class
new file mode 100644
index 0000000..bc7fc36
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver$UsageType.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class
new file mode 100644
index 0000000..e4c9da6
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class
new file mode 100644
index 0000000..7c022b4
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class
new file mode 100644
index 0000000..0afc368
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer$TagInfo.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class
new file mode 100644
index 0000000..32d5568
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class
new file mode 100644
index 0000000..de769e9
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/TargetContext.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class
new file mode 100644
index 0000000..949aaf4
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet$DocErrorReporterOutputStream.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class
new file mode 100644
index 0000000..9f45994
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class
new file mode 100644
index 0000000..9cfc10e
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class
new file mode 100644
index 0000000..7c2a5bc
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class
new file mode 100644
index 0000000..b0dc3a6
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class
new file mode 100644
index 0000000..7fcd83c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class
new file mode 100644
index 0000000..a5491d4
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class
index bfc4834..7607644 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$1.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class
index ffdb2ec..f2ecf97 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$2.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class
index 7167f6c..56fd358 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser$3.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class
index 7725dd8..1e0586d 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/getopt/Parser.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class
new file mode 100644
index 0000000..15810fa
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/AbstractTagImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class
new file mode 100644
index 0000000..66c1f8a
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class
new file mode 100644
index 0000000..164d5f3
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BlockSourceComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class
new file mode 100644
index 0000000..4a6a517
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/BracketClose.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class
new file mode 100644
index 0000000..aa31f74
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class
new file mode 100644
index 0000000..ce8fb48
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class
new file mode 100644
index 0000000..62185a0
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocProxy.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class
new file mode 100644
index 0000000..a9b7f63
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class
new file mode 100644
index 0000000..0637151
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/CommentComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class
new file mode 100644
index 0000000..774e33c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ConstructorDocImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class
new file mode 100644
index 0000000..849e687
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Debug.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class
new file mode 100644
index 0000000..c1c373f
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree$FileNode.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class
new file mode 100644
index 0000000..1c1abd5
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DirectoryTree.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class
new file mode 100644
index 0000000..1b09a31
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/DocImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class
new file mode 100644
index 0000000..e25d162
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/EmptyStatementComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class
new file mode 100644
index 0000000..3fda481
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ErrorReporter.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class
new file mode 100644
index 0000000..3450312
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class
new file mode 100644
index 0000000..32fb32e
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class
new file mode 100644
index 0000000..4479e84
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FieldDocImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class
new file mode 100644
index 0000000..4a8a340
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/FunctionComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class
new file mode 100644
index 0000000..0932db2
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocPackageDoc.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class
new file mode 100644
index 0000000..7ad3e40
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/GjdocRootDoc.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class
new file mode 100644
index 0000000..f0cf14d
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/IgnoredFileParseException.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class
new file mode 100644
index 0000000..7f30dac
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ImportComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class
new file mode 100644
index 0000000..5d56604
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/InheritDocTagImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class
new file mode 100644
index 0000000..df1abf1
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/JavadocWrapper.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class
new file mode 100644
index 0000000..5f1ca92
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/LinkTagImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class
new file mode 100644
index 0000000..93de99a
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$1.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class
new file mode 100644
index 0000000..691c53c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$10.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class
new file mode 100644
index 0000000..e8bb15f
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$11.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class
new file mode 100644
index 0000000..1479d58
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$12.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class
new file mode 100644
index 0000000..c47a836
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$13.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class
new file mode 100644
index 0000000..5bb6c72
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$14.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class
new file mode 100644
index 0000000..13f7e77
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$15.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class
new file mode 100644
index 0000000..bee8820
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$16.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class
new file mode 100644
index 0000000..da2e873
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$17.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class
new file mode 100644
index 0000000..9402410
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$18.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class
new file mode 100644
index 0000000..c2bfa2d
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$19.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class
new file mode 100644
index 0000000..d294d3c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$2.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class
new file mode 100644
index 0000000..390bd1b
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$20.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class
new file mode 100644
index 0000000..5977dc8
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$21.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class
new file mode 100644
index 0000000..46f194b
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$22.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class
new file mode 100644
index 0000000..1b14a41
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$23.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class
new file mode 100644
index 0000000..d38eff9
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$24.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class
new file mode 100644
index 0000000..a812e14
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$25.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class
new file mode 100644
index 0000000..00817da
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$3.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class
new file mode 100644
index 0000000..a789799
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$4.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class
new file mode 100644
index 0000000..09dfcbb
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$5.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class
new file mode 100644
index 0000000..634155f
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$6.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class
new file mode 100644
index 0000000..91e10b2
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$7.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class
new file mode 100644
index 0000000..f1118b6
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$8.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class
new file mode 100644
index 0000000..2c84fff
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$9.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class
new file mode 100644
index 0000000..15840c0
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main$OptionProcessor.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class
new file mode 100644
index 0000000..48b5bc8
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Main.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class
new file mode 100644
index 0000000..7b55575
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MemberDocImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class
new file mode 100644
index 0000000..743f0be
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/MethodDocImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class
new file mode 100644
index 0000000..60e378f
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class
new file mode 100644
index 0000000..4542752
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/PackageDocImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class
new file mode 100644
index 0000000..25ea587
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParamTagImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class
new file mode 100644
index 0000000..2940fc0
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParameterImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class
new file mode 100644
index 0000000..716b568
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ParseException.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class
new file mode 100644
index 0000000..9c05a90
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$1.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class
new file mode 100644
index 0000000..1836050
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser$Context.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class
new file mode 100644
index 0000000..149bd7e
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Parser.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class
new file mode 100644
index 0000000..27aaa1a
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class
new file mode 100644
index 0000000..803eb60
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImport.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class
new file mode 100644
index 0000000..75ef96c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportClassFile.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class
new file mode 100644
index 0000000..6f6faf5
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportNotFound.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class
new file mode 100644
index 0000000..e6f0bde
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportPackageFile.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class
new file mode 100644
index 0000000..4a29649
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionClass.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class
new file mode 100644
index 0000000..e956768
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ResolvedImportReflectionPackage.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class
new file mode 100644
index 0000000..92ddaf8
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl$ScheduledClass.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class
new file mode 100644
index 0000000..f06d76f
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/RootDocImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class
new file mode 100644
index 0000000..9fa4c15
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SeeTagImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class
new file mode 100644
index 0000000..e833966
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class
new file mode 100644
index 0000000..751f5b6
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SlashSlashCommentComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class
new file mode 100644
index 0000000..ec9e789
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourceComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class
new file mode 100644
index 0000000..da0e63f
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/SourcePositionImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class
new file mode 100644
index 0000000..75640c8
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/StaticBlockComponent.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class
new file mode 100644
index 0000000..6ff3032
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagContainer.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class
new file mode 100644
index 0000000..e51bbf4
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TagImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class
new file mode 100644
index 0000000..661f493
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TemporaryStore.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class
new file mode 100644
index 0000000..494a09e
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TextTagImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class
new file mode 100644
index 0000000..d86084c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ThrowsTagImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class
new file mode 100644
index 0000000..1d448e3
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Timer.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class
new file mode 100644
index 0000000..41b7e2c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet$1.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class
new file mode 100644
index 0000000..ea6cb55
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TimerDoclet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class
new file mode 100644
index 0000000..e2e630a
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class
new file mode 100644
index 0000000..24ba68d
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/TypeVariableImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class
new file mode 100644
index 0000000..94302c2
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/ValueTagImpl.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class
new file mode 100644
index 0000000..d705151
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/Whitespace.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class
new file mode 100644
index 0000000..8c61a4a
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/WritableType.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class
new file mode 100644
index 0000000..fe0b482
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AdditionExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class
new file mode 100644
index 0000000..fe47334
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/AndExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class
new file mode 100644
index 0000000..ea024cf
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class
new file mode 100644
index 0000000..7aa1b43
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class
new file mode 100644
index 0000000..5c4aa30
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class
new file mode 100644
index 0000000..fc81485
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class
new file mode 100644
index 0000000..96a1dee
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class
new file mode 100644
index 0000000..06e07c2
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class
new file mode 100644
index 0000000..090c9d9
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class
new file mode 100644
index 0000000..d0abe9d
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class
new file mode 100644
index 0000000..26c14ed
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class
new file mode 100644
index 0000000..56050b9
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class
new file mode 100644
index 0000000..ebba4c8
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class
new file mode 100644
index 0000000..07a85b1
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantByte.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class
new file mode 100644
index 0000000..6d44b80
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantChar.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class
new file mode 100644
index 0000000..e5b4f83
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantDouble.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class
new file mode 100644
index 0000000..791aae0
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class
new file mode 100644
index 0000000..0fe33bd
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantFloat.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class
new file mode 100644
index 0000000..1fc0bf3
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantInteger.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class
new file mode 100644
index 0000000..32af351
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantLong.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class
new file mode 100644
index 0000000..aabd3f5
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantNull.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class
new file mode 100644
index 0000000..082f9f0
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantShort.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class
new file mode 100644
index 0000000..605278d
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ConstantString.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class
new file mode 100644
index 0000000..3afc146
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Context.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class
new file mode 100644
index 0000000..3543f00
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/DivisionExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class
new file mode 100644
index 0000000..222c6e4
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EqualExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class
new file mode 100644
index 0000000..4cf131a
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Evaluator.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class
new file mode 100644
index 0000000..5ff7b19
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class
new file mode 100644
index 0000000..9b36557
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class
new file mode 100644
index 0000000..52b5f93
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Expression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class
new file mode 100644
index 0000000..eef127e
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class
new file mode 100644
index 0000000..5a8dcc2
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class
new file mode 100644
index 0000000..10ab574
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class
new file mode 100644
index 0000000..7c9b52e
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class
new file mode 100644
index 0000000..b54b51b
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class
new file mode 100644
index 0000000..a61433c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaLexer.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class
new file mode 100644
index 0000000..91e156a
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class
new file mode 100644
index 0000000..39e584d
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class
new file mode 100644
index 0000000..08f71e4
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class
new file mode 100644
index 0000000..97e19b3
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class
new file mode 100644
index 0000000..d031ae3
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class
new file mode 100644
index 0000000..0fec9ca
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class
new file mode 100644
index 0000000..c9a6dbf
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class
new file mode 100644
index 0000000..e005b63
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ModuloExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class
new file mode 100644
index 0000000..f5c4efe
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class
new file mode 100644
index 0000000..d136821
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NegateExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class
new file mode 100644
index 0000000..57c8943
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class
new file mode 100644
index 0000000..85b5aa5
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/NotExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class
new file mode 100644
index 0000000..07e417c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class
new file mode 100644
index 0000000..92a2cde
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class
new file mode 100644
index 0000000..7d53d1e
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class
new file mode 100644
index 0000000..c0ec607
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/Type.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class
new file mode 100644
index 0000000..018024d
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class
new file mode 100644
index 0000000..b4a86d1
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnaryExpression.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class
new file mode 100644
index 0000000..97557e0
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class
index 0460b3f..cd3602b 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Creator.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class
index 6b8d258..cc51ad4 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Indexer.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class
index 8fbd266..e9f19b7 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/jar/Updater.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class b/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class
new file mode 100644
index 0000000..71875ab
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml$State.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class b/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class
new file mode 100644
index 0000000..e3db499
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/java2xhtml/Java2xhtml.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class
index da5ddeb..5c20124a 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/ClassWrapper.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class
index 938789b..8f09f16 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/javah/JniHelper.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
index fdfa2fb..3a2bd54 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/native2ascii/Native2ASCII.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class
index c37eee1..843d741 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/orbd/PersistentMap$Entry.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
index 8d1e58f..b4ffcae 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/ClassRmicCompiler.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class
index 5a5fec4..95f7c77 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/Generator.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class
index 2720183..ab9c27ea 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/MethodGenerator.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class
index 731f27a..d914461 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/RmiMethodGenerator.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class
index 810ce35..955983b 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class
index 1c267c9..b0e4160 100644
--- a/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/rmic/SourceRmicCompiler.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class
new file mode 100644
index 0000000..22248a2
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet$EmailReplacement.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class
new file mode 100644
index 0000000..53a734a
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/AuthorTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class
new file mode 100644
index 0000000..7fc603cb
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CodeTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class
new file mode 100644
index 0000000..84f9343
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/CopyrightTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class
new file mode 100644
index 0000000..3c9e77c
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/DeprecatedTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class
new file mode 100644
index 0000000..50ab7c0
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GenericTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class
new file mode 100644
index 0000000..b05eabb
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/GnuExtendedTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class
new file mode 100644
index 0000000..2b99746
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/SinceTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class
new file mode 100644
index 0000000..2e6377b
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/TagletContext.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class
new file mode 100644
index 0000000..aae85fb
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/ValueTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class
new file mode 100644
index 0000000..28bb7c9
--- /dev/null
+++ b/libjava/classpath/tools/classes/gnu/classpath/tools/taglets/VersionTaglet.class
Binary files differ
diff --git a/libjava/classpath/tools/com/sun/tools/javadoc/Main.java b/libjava/classpath/tools/com/sun/tools/javadoc/Main.java
new file mode 100644
index 0000000..2893030
--- /dev/null
+++ b/libjava/classpath/tools/com/sun/tools/javadoc/Main.java
@@ -0,0 +1,9 @@
+package com.sun.tools.javadoc;
+
+public class Main
+{
+ public static void main(String[] args)
+ {
+ gnu.classpath.tools.gjdoc.Main.main(args);
+ }
+}
diff --git a/libjava/classpath/tools/gappletviewer.in b/libjava/classpath/tools/gappletviewer.in
index 721078b..d957e45 100644
--- a/libjava/classpath/tools/gappletviewer.in
+++ b/libjava/classpath/tools/gappletviewer.in
@@ -44,4 +44,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.appletviewer.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.appletviewer.Main "$@"
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java
new file mode 100644
index 0000000..053f122
--- /dev/null
+++ b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.java
@@ -0,0 +1,1962 @@
+// $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaLexer.java"$
+
+ package gnu.classpath.tools.gjdoc.expr;
+
+import java.io.InputStream;
+import antlr.TokenStreamException;
+import antlr.TokenStreamIOException;
+import antlr.TokenStreamRecognitionException;
+import antlr.CharStreamException;
+import antlr.CharStreamIOException;
+import antlr.ANTLRException;
+import java.io.Reader;
+import java.util.Hashtable;
+import antlr.CharScanner;
+import antlr.InputBuffer;
+import antlr.ByteBuffer;
+import antlr.CharBuffer;
+import antlr.Token;
+import antlr.CommonToken;
+import antlr.RecognitionException;
+import antlr.NoViableAltForCharException;
+import antlr.MismatchedCharException;
+import antlr.TokenStream;
+import antlr.ANTLRHashString;
+import antlr.LexerSharedInputState;
+import antlr.collections.impl.BitSet;
+import antlr.SemanticException;
+
+public class JavaLexer extends antlr.CharScanner implements JavaTokenTypes, TokenStream
+ {
+public JavaLexer(InputStream in) {
+ this(new ByteBuffer(in));
+}
+public JavaLexer(Reader in) {
+ this(new CharBuffer(in));
+}
+public JavaLexer(InputBuffer ib) {
+ this(new LexerSharedInputState(ib));
+}
+public JavaLexer(LexerSharedInputState state) {
+ super(state);
+ caseSensitiveLiterals = true;
+ setCaseSensitive(true);
+ literals = new Hashtable();
+ literals.put(new ANTLRHashString("String", this), new Integer(55));
+ literals.put(new ANTLRHashString("final", this), new Integer(39));
+ literals.put(new ANTLRHashString("false", this), new Integer(84));
+ literals.put(new ANTLRHashString("true", this), new Integer(83));
+ literals.put(new ANTLRHashString("void", this), new Integer(46));
+ literals.put(new ANTLRHashString("float", this), new Integer(52));
+ literals.put(new ANTLRHashString("boolean", this), new Integer(47));
+ literals.put(new ANTLRHashString("long", this), new Integer(53));
+ literals.put(new ANTLRHashString("null", this), new Integer(85));
+ literals.put(new ANTLRHashString("short", this), new Integer(50));
+ literals.put(new ANTLRHashString("char", this), new Integer(49));
+ literals.put(new ANTLRHashString("abstract", this), new Integer(40));
+ literals.put(new ANTLRHashString("byte", this), new Integer(48));
+ literals.put(new ANTLRHashString("int", this), new Integer(51));
+ literals.put(new ANTLRHashString("double", this), new Integer(54));
+ literals.put(new ANTLRHashString("strictfp", this), new Integer(41));
+}
+
+public Token nextToken() throws TokenStreamException {
+ Token theRetToken=null;
+tryAgain:
+ for (;;) {
+ Token _token = null;
+ int _ttype = Token.INVALID_TYPE;
+ resetText();
+ try { // for char stream error handling
+ try { // for lexical error handling
+ switch ( LA(1)) {
+ case '?':
+ {
+ mQUESTION(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case '(':
+ {
+ mLPAREN(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case ')':
+ {
+ mRPAREN(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case '[':
+ {
+ mLBRACK(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case ']':
+ {
+ mRBRACK(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case '{':
+ {
+ mLCURLY(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case '}':
+ {
+ mRCURLY(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case ':':
+ {
+ mCOLON(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case ',':
+ {
+ mCOMMA(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case '~':
+ {
+ mBNOT(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case ';':
+ {
+ mSEMI(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case '\t': case '\n': case '\u000c': case '\r':
+ case ' ':
+ {
+ mWS(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case '\'':
+ {
+ mCHAR_LITERAL(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case '"':
+ {
+ mSTRING_LITERAL(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case '$': case 'A': case 'B': case 'C':
+ case 'D': case 'E': case 'F': case 'G':
+ case 'H': case 'I': case 'J': case 'K':
+ case 'L': case 'M': case 'N': case 'O':
+ case 'P': case 'Q': case 'R': case 'S':
+ case 'T': case 'U': case 'V': case 'W':
+ case 'X': case 'Y': case 'Z': case '_':
+ case 'a': case 'b': case 'c': case 'd':
+ case 'e': case 'f': case 'g': case 'h':
+ case 'i': case 'j': case 'k': case 'l':
+ case 'm': case 'n': case 'o': case 'p':
+ case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x':
+ case 'y': case 'z':
+ {
+ mIDENT(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ case '.': case '0': case '1': case '2':
+ case '3': case '4': case '5': case '6':
+ case '7': case '8': case '9':
+ {
+ mNUM_INT(true);
+ theRetToken=_returnToken;
+ break;
+ }
+ default:
+ if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='>') && (LA(4)=='=')) {
+ mBSR_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='=')) {
+ mSR_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='>') && (LA(2)=='>') && (LA(3)=='>') && (true)) {
+ mBSR(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='<') && (LA(2)=='<') && (LA(3)=='=')) {
+ mSL_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='=') && (LA(2)=='=')) {
+ mEQUAL(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='!') && (LA(2)=='=')) {
+ mNOT_EQUAL(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='/') && (LA(2)=='=')) {
+ mDIV_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='+') && (LA(2)=='=')) {
+ mPLUS_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='+') && (LA(2)=='+')) {
+ mINC(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='-') && (LA(2)=='=')) {
+ mMINUS_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='-') && (LA(2)=='-')) {
+ mDEC(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='*') && (LA(2)=='=')) {
+ mSTAR_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='%') && (LA(2)=='=')) {
+ mMOD_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='>') && (LA(2)=='>') && (true)) {
+ mSR(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='>') && (LA(2)=='=')) {
+ mGE(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='<') && (LA(2)=='<') && (true)) {
+ mSL(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='<') && (LA(2)=='=')) {
+ mLE(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='^') && (LA(2)=='=')) {
+ mBXOR_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='|') && (LA(2)=='=')) {
+ mBOR_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='|') && (LA(2)=='|')) {
+ mLOR(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='&') && (LA(2)=='=')) {
+ mBAND_ASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='&') && (LA(2)=='&')) {
+ mLAND(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='/') && (LA(2)=='/')) {
+ mSL_COMMIT(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='/') && (LA(2)=='*')) {
+ mML_COMMENT(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='=') && (true)) {
+ mASSIGN(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='!') && (true)) {
+ mLNOT(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='/') && (true)) {
+ mDIV(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='+') && (true)) {
+ mPLUS(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='-') && (true)) {
+ mMINUS(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='*') && (true)) {
+ mSTAR(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='%') && (true)) {
+ mMOD(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='>') && (true)) {
+ mGT(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='<') && (true)) {
+ mLT(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='^') && (true)) {
+ mBXOR(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='|') && (true)) {
+ mBOR(true);
+ theRetToken=_returnToken;
+ }
+ else if ((LA(1)=='&') && (true)) {
+ mBAND(true);
+ theRetToken=_returnToken;
+ }
+ else {
+ if (LA(1)==EOF_CHAR) {uponEOF(); _returnToken = makeToken(Token.EOF_TYPE);}
+ else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+ }
+ }
+ if ( _returnToken==null ) continue tryAgain; // found SKIP token
+ _ttype = _returnToken.getType();
+ _returnToken.setType(_ttype);
+ return _returnToken;
+ }
+ catch (RecognitionException e) {
+ throw new TokenStreamRecognitionException(e);
+ }
+ }
+ catch (CharStreamException cse) {
+ if ( cse instanceof CharStreamIOException ) {
+ throw new TokenStreamIOException(((CharStreamIOException)cse).io);
+ }
+ else {
+ throw new TokenStreamException(cse.getMessage());
+ }
+ }
+ }
+}
+
+ public final void mQUESTION(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = QUESTION;
+ int _saveIndex;
+
+ match('?');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mLPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = LPAREN;
+ int _saveIndex;
+
+ match('(');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mRPAREN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = RPAREN;
+ int _saveIndex;
+
+ match(')');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mLBRACK(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = LBRACK;
+ int _saveIndex;
+
+ match('[');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mRBRACK(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = RBRACK;
+ int _saveIndex;
+
+ match(']');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mLCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = LCURLY;
+ int _saveIndex;
+
+ match('{');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mRCURLY(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = RCURLY;
+ int _saveIndex;
+
+ match('}');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mCOLON(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = COLON;
+ int _saveIndex;
+
+ match(':');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mCOMMA(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = COMMA;
+ int _saveIndex;
+
+ match(',');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = ASSIGN;
+ int _saveIndex;
+
+ match('=');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mEQUAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = EQUAL;
+ int _saveIndex;
+
+ match("==");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mLNOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = LNOT;
+ int _saveIndex;
+
+ match('!');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mBNOT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = BNOT;
+ int _saveIndex;
+
+ match('~');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mNOT_EQUAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = NOT_EQUAL;
+ int _saveIndex;
+
+ match("!=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mDIV(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = DIV;
+ int _saveIndex;
+
+ match('/');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mDIV_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = DIV_ASSIGN;
+ int _saveIndex;
+
+ match("/=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mPLUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = PLUS;
+ int _saveIndex;
+
+ match('+');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mPLUS_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = PLUS_ASSIGN;
+ int _saveIndex;
+
+ match("+=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mINC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = INC;
+ int _saveIndex;
+
+ match("++");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mMINUS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = MINUS;
+ int _saveIndex;
+
+ match('-');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mMINUS_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = MINUS_ASSIGN;
+ int _saveIndex;
+
+ match("-=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mDEC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = DEC;
+ int _saveIndex;
+
+ match("--");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mSTAR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = STAR;
+ int _saveIndex;
+
+ match('*');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mSTAR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = STAR_ASSIGN;
+ int _saveIndex;
+
+ match("*=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mMOD(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = MOD;
+ int _saveIndex;
+
+ match('%');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mMOD_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = MOD_ASSIGN;
+ int _saveIndex;
+
+ match("%=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mSR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = SR;
+ int _saveIndex;
+
+ match(">>");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mSR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = SR_ASSIGN;
+ int _saveIndex;
+
+ match(">>=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mBSR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = BSR;
+ int _saveIndex;
+
+ match(">>>");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mBSR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = BSR_ASSIGN;
+ int _saveIndex;
+
+ match(">>>=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mGE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = GE;
+ int _saveIndex;
+
+ match(">=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mGT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = GT;
+ int _saveIndex;
+
+ match(">");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mSL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = SL;
+ int _saveIndex;
+
+ match("<<");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mSL_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = SL_ASSIGN;
+ int _saveIndex;
+
+ match("<<=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mLE(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = LE;
+ int _saveIndex;
+
+ match("<=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mLT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = LT;
+ int _saveIndex;
+
+ match('<');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mBXOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = BXOR;
+ int _saveIndex;
+
+ match('^');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mBXOR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = BXOR_ASSIGN;
+ int _saveIndex;
+
+ match("^=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mBOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = BOR;
+ int _saveIndex;
+
+ match('|');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mBOR_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = BOR_ASSIGN;
+ int _saveIndex;
+
+ match("|=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mLOR(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = LOR;
+ int _saveIndex;
+
+ match("||");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mBAND(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = BAND;
+ int _saveIndex;
+
+ match('&');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mBAND_ASSIGN(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = BAND_ASSIGN;
+ int _saveIndex;
+
+ match("&=");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mLAND(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = LAND;
+ int _saveIndex;
+
+ match("&&");
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mSEMI(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = SEMI;
+ int _saveIndex;
+
+ match(';');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mWS(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = WS;
+ int _saveIndex;
+
+ {
+ int _cnt105=0;
+ _loop105:
+ do {
+ switch ( LA(1)) {
+ case ' ':
+ {
+ match(' ');
+ break;
+ }
+ case '\t':
+ {
+ match('\t');
+ break;
+ }
+ case '\u000c':
+ {
+ match('\f');
+ break;
+ }
+ case '\n': case '\r':
+ {
+ {
+ if ((LA(1)=='\r') && (LA(2)=='\n') && (true) && (true)) {
+ match("\r\n");
+ }
+ else if ((LA(1)=='\r') && (true) && (true) && (true)) {
+ match('\r');
+ }
+ else if ((LA(1)=='\n')) {
+ match('\n');
+ }
+ else {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+
+ }
+ if ( inputState.guessing==0 ) {
+ newline();
+ }
+ break;
+ }
+ default:
+ {
+ if ( _cnt105>=1 ) { break _loop105; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+ }
+ }
+ _cnt105++;
+ } while (true);
+ }
+ if ( inputState.guessing==0 ) {
+ _ttype = Token.SKIP;
+ }
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mSL_COMMIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = SL_COMMIT;
+ int _saveIndex;
+
+ match("//");
+ {
+ _loop109:
+ do {
+ if ((_tokenSet_0.member(LA(1)))) {
+ {
+ match(_tokenSet_0);
+ }
+ }
+ else {
+ break _loop109;
+ }
+
+ } while (true);
+ }
+ {
+ switch ( LA(1)) {
+ case '\n':
+ {
+ match('\n');
+ break;
+ }
+ case '\r':
+ {
+ match('\r');
+ {
+ if ((LA(1)=='\n')) {
+ match('\n');
+ }
+ else {
+ }
+
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ if ( inputState.guessing==0 ) {
+ _ttype = Token.SKIP; newline();
+ }
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mML_COMMENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = ML_COMMENT;
+ int _saveIndex;
+
+ match("/*");
+ {
+ _loop115:
+ do {
+ if ((LA(1)=='\r') && (LA(2)=='\n') && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')) && ((LA(4) >= '\u0003' && LA(4) <= '\uffff'))) {
+ match('\r');
+ match('\n');
+ if ( inputState.guessing==0 ) {
+ newline();
+ }
+ }
+ else if (((LA(1)=='*') && ((LA(2) >= '\u0003' && LA(2) <= '\uffff')) && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')))&&( LA(2)!='/' )) {
+ match('*');
+ }
+ else if ((LA(1)=='\r') && ((LA(2) >= '\u0003' && LA(2) <= '\uffff')) && ((LA(3) >= '\u0003' && LA(3) <= '\uffff')) && (true)) {
+ match('\r');
+ if ( inputState.guessing==0 ) {
+ newline();
+ }
+ }
+ else if ((LA(1)=='\n')) {
+ match('\n');
+ if ( inputState.guessing==0 ) {
+ newline();
+ }
+ }
+ else if ((_tokenSet_1.member(LA(1)))) {
+ {
+ match(_tokenSet_1);
+ }
+ }
+ else {
+ break _loop115;
+ }
+
+ } while (true);
+ }
+ match("*/");
+ if ( inputState.guessing==0 ) {
+ _ttype = Token.SKIP;
+ }
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mCHAR_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = CHAR_LITERAL;
+ int _saveIndex;
+
+ match('\'');
+ {
+ if ((LA(1)=='\\')) {
+ mESC(false);
+ }
+ else if ((_tokenSet_2.member(LA(1)))) {
+ {
+ match(_tokenSet_2);
+ }
+ }
+ else {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+
+ }
+ match('\'');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ protected final void mESC(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = ESC;
+ int _saveIndex;
+
+ match('\\');
+ {
+ switch ( LA(1)) {
+ case 'n':
+ {
+ match('n');
+ break;
+ }
+ case 'r':
+ {
+ match('r');
+ break;
+ }
+ case 't':
+ {
+ match('t');
+ break;
+ }
+ case 'b':
+ {
+ match('b');
+ break;
+ }
+ case 'f':
+ {
+ match('f');
+ break;
+ }
+ case '"':
+ {
+ match('"');
+ break;
+ }
+ case '\'':
+ {
+ match('\'');
+ break;
+ }
+ case '\\':
+ {
+ match('\\');
+ break;
+ }
+ case 'u':
+ {
+ {
+ int _cnt126=0;
+ _loop126:
+ do {
+ if ((LA(1)=='u')) {
+ match('u');
+ }
+ else {
+ if ( _cnt126>=1 ) { break _loop126; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+ }
+
+ _cnt126++;
+ } while (true);
+ }
+ mHEX_DIGIT(false);
+ mHEX_DIGIT(false);
+ mHEX_DIGIT(false);
+ mHEX_DIGIT(false);
+ break;
+ }
+ case '0': case '1': case '2': case '3':
+ {
+ matchRange('0','3');
+ {
+ if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
+ matchRange('0','7');
+ {
+ if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
+ matchRange('0','7');
+ }
+ else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
+ }
+ else {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+
+ }
+ }
+ else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
+ }
+ else {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+
+ }
+ break;
+ }
+ case '4': case '5': case '6': case '7':
+ {
+ matchRange('4','7');
+ {
+ if (((LA(1) >= '0' && LA(1) <= '7')) && (_tokenSet_0.member(LA(2))) && (true) && (true)) {
+ matchRange('0','7');
+ }
+ else if ((_tokenSet_0.member(LA(1))) && (true) && (true) && (true)) {
+ }
+ else {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mSTRING_LITERAL(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = STRING_LITERAL;
+ int _saveIndex;
+
+ match('"');
+ {
+ _loop122:
+ do {
+ if ((LA(1)=='\\')) {
+ mESC(false);
+ }
+ else if ((_tokenSet_3.member(LA(1)))) {
+ {
+ match(_tokenSet_3);
+ }
+ }
+ else {
+ break _loop122;
+ }
+
+ } while (true);
+ }
+ match('"');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ protected final void mHEX_DIGIT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = HEX_DIGIT;
+ int _saveIndex;
+
+ {
+ switch ( LA(1)) {
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ case '8': case '9':
+ {
+ matchRange('0','9');
+ break;
+ }
+ case 'A': case 'B': case 'C': case 'D':
+ case 'E': case 'F':
+ {
+ matchRange('A','F');
+ break;
+ }
+ case 'a': case 'b': case 'c': case 'd':
+ case 'e': case 'f':
+ {
+ matchRange('a','f');
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ protected final void mVOCAB(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = VOCAB;
+ int _saveIndex;
+
+ matchRange('\3','\377');
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mIDENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = IDENT;
+ int _saveIndex;
+
+ {
+ switch ( LA(1)) {
+ case 'a': case 'b': case 'c': case 'd':
+ case 'e': case 'f': case 'g': case 'h':
+ case 'i': case 'j': case 'k': case 'l':
+ case 'm': case 'n': case 'o': case 'p':
+ case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x':
+ case 'y': case 'z':
+ {
+ matchRange('a','z');
+ break;
+ }
+ case 'A': case 'B': case 'C': case 'D':
+ case 'E': case 'F': case 'G': case 'H':
+ case 'I': case 'J': case 'K': case 'L':
+ case 'M': case 'N': case 'O': case 'P':
+ case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X':
+ case 'Y': case 'Z':
+ {
+ matchRange('A','Z');
+ break;
+ }
+ case '_':
+ {
+ match('_');
+ break;
+ }
+ case '$':
+ {
+ match('$');
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ {
+ _loop136:
+ do {
+ switch ( LA(1)) {
+ case 'a': case 'b': case 'c': case 'd':
+ case 'e': case 'f': case 'g': case 'h':
+ case 'i': case 'j': case 'k': case 'l':
+ case 'm': case 'n': case 'o': case 'p':
+ case 'q': case 'r': case 's': case 't':
+ case 'u': case 'v': case 'w': case 'x':
+ case 'y': case 'z':
+ {
+ matchRange('a','z');
+ break;
+ }
+ case 'A': case 'B': case 'C': case 'D':
+ case 'E': case 'F': case 'G': case 'H':
+ case 'I': case 'J': case 'K': case 'L':
+ case 'M': case 'N': case 'O': case 'P':
+ case 'Q': case 'R': case 'S': case 'T':
+ case 'U': case 'V': case 'W': case 'X':
+ case 'Y': case 'Z':
+ {
+ matchRange('A','Z');
+ break;
+ }
+ case '_':
+ {
+ match('_');
+ break;
+ }
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ case '8': case '9':
+ {
+ matchRange('0','9');
+ break;
+ }
+ case '$':
+ {
+ match('$');
+ break;
+ }
+ default:
+ {
+ break _loop136;
+ }
+ }
+ } while (true);
+ }
+ _ttype = testLiteralsTable(_ttype);
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ public final void mNUM_INT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = NUM_INT;
+ int _saveIndex;
+ Token f1=null;
+ Token f2=null;
+ Token f3=null;
+ Token f4=null;
+ boolean isDecimal=false; Token t=null;
+
+ switch ( LA(1)) {
+ case '.':
+ {
+ match('.');
+ if ( inputState.guessing==0 ) {
+ _ttype = DOT;
+ }
+ {
+ if (((LA(1) >= '0' && LA(1) <= '9'))) {
+ {
+ int _cnt140=0;
+ _loop140:
+ do {
+ if (((LA(1) >= '0' && LA(1) <= '9'))) {
+ matchRange('0','9');
+ }
+ else {
+ if ( _cnt140>=1 ) { break _loop140; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+ }
+
+ _cnt140++;
+ } while (true);
+ }
+ {
+ if ((LA(1)=='E'||LA(1)=='e')) {
+ mEXPONENT(false);
+ }
+ else {
+ }
+
+ }
+ {
+ if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
+ mFLOAT_SUFFIX(true);
+ f1=_returnToken;
+ if ( inputState.guessing==0 ) {
+ t=f1;
+ }
+ }
+ else {
+ }
+
+ }
+ if ( inputState.guessing==0 ) {
+
+ if (t != null && t.getText().toUpperCase().indexOf('F')>=0) {
+ _ttype = NUM_FLOAT;
+ }
+ else {
+ _ttype = NUM_DOUBLE; // assume double
+ }
+
+ }
+ }
+ else {
+ }
+
+ }
+ break;
+ }
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ case '8': case '9':
+ {
+ {
+ switch ( LA(1)) {
+ case '0':
+ {
+ match('0');
+ if ( inputState.guessing==0 ) {
+ isDecimal = true;
+ }
+ {
+ if ((LA(1)=='X'||LA(1)=='x')) {
+ {
+ switch ( LA(1)) {
+ case 'x':
+ {
+ match('x');
+ break;
+ }
+ case 'X':
+ {
+ match('X');
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ {
+ int _cnt147=0;
+ _loop147:
+ do {
+ if ((_tokenSet_4.member(LA(1))) && (true) && (true) && (true)) {
+ mHEX_DIGIT(false);
+ }
+ else {
+ if ( _cnt147>=1 ) { break _loop147; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+ }
+
+ _cnt147++;
+ } while (true);
+ }
+ }
+ else {
+ boolean synPredMatched152 = false;
+ if ((((LA(1) >= '0' && LA(1) <= '9')) && (true) && (true) && (true))) {
+ int _m152 = mark();
+ synPredMatched152 = true;
+ inputState.guessing++;
+ try {
+ {
+ {
+ int _cnt150=0;
+ _loop150:
+ do {
+ if (((LA(1) >= '0' && LA(1) <= '9'))) {
+ matchRange('0','9');
+ }
+ else {
+ if ( _cnt150>=1 ) { break _loop150; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+ }
+
+ _cnt150++;
+ } while (true);
+ }
+ {
+ switch ( LA(1)) {
+ case '.':
+ {
+ match('.');
+ break;
+ }
+ case 'E': case 'e':
+ {
+ mEXPONENT(false);
+ break;
+ }
+ case 'D': case 'F': case 'd': case 'f':
+ {
+ mFLOAT_SUFFIX(false);
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ }
+ }
+ catch (RecognitionException pe) {
+ synPredMatched152 = false;
+ }
+ rewind(_m152);
+inputState.guessing--;
+ }
+ if ( synPredMatched152 ) {
+ {
+ int _cnt154=0;
+ _loop154:
+ do {
+ if (((LA(1) >= '0' && LA(1) <= '9'))) {
+ matchRange('0','9');
+ }
+ else {
+ if ( _cnt154>=1 ) { break _loop154; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+ }
+
+ _cnt154++;
+ } while (true);
+ }
+ }
+ else if (((LA(1) >= '0' && LA(1) <= '7')) && (true) && (true) && (true)) {
+ {
+ int _cnt156=0;
+ _loop156:
+ do {
+ if (((LA(1) >= '0' && LA(1) <= '7'))) {
+ matchRange('0','7');
+ }
+ else {
+ if ( _cnt156>=1 ) { break _loop156; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+ }
+
+ _cnt156++;
+ } while (true);
+ }
+ }
+ else {
+ }
+ }
+ }
+ break;
+ }
+ case '1': case '2': case '3': case '4':
+ case '5': case '6': case '7': case '8':
+ case '9':
+ {
+ {
+ matchRange('1','9');
+ }
+ {
+ _loop159:
+ do {
+ if (((LA(1) >= '0' && LA(1) <= '9'))) {
+ matchRange('0','9');
+ }
+ else {
+ break _loop159;
+ }
+
+ } while (true);
+ }
+ if ( inputState.guessing==0 ) {
+ isDecimal=true;
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ {
+ if ((LA(1)=='L'||LA(1)=='l')) {
+ {
+ switch ( LA(1)) {
+ case 'l':
+ {
+ match('l');
+ break;
+ }
+ case 'L':
+ {
+ match('L');
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ if ( inputState.guessing==0 ) {
+ _ttype = NUM_LONG;
+ }
+ }
+ else if (((LA(1)=='.'||LA(1)=='D'||LA(1)=='E'||LA(1)=='F'||LA(1)=='d'||LA(1)=='e'||LA(1)=='f'))&&(isDecimal)) {
+ {
+ switch ( LA(1)) {
+ case '.':
+ {
+ match('.');
+ {
+ _loop164:
+ do {
+ if (((LA(1) >= '0' && LA(1) <= '9'))) {
+ matchRange('0','9');
+ }
+ else {
+ break _loop164;
+ }
+
+ } while (true);
+ }
+ {
+ if ((LA(1)=='E'||LA(1)=='e')) {
+ mEXPONENT(false);
+ }
+ else {
+ }
+
+ }
+ {
+ if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
+ mFLOAT_SUFFIX(true);
+ f2=_returnToken;
+ if ( inputState.guessing==0 ) {
+ t=f2;
+ }
+ }
+ else {
+ }
+
+ }
+ break;
+ }
+ case 'E': case 'e':
+ {
+ mEXPONENT(false);
+ {
+ if ((LA(1)=='D'||LA(1)=='F'||LA(1)=='d'||LA(1)=='f')) {
+ mFLOAT_SUFFIX(true);
+ f3=_returnToken;
+ if ( inputState.guessing==0 ) {
+ t=f3;
+ }
+ }
+ else {
+ }
+
+ }
+ break;
+ }
+ case 'D': case 'F': case 'd': case 'f':
+ {
+ mFLOAT_SUFFIX(true);
+ f4=_returnToken;
+ if ( inputState.guessing==0 ) {
+ t=f4;
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ if ( inputState.guessing==0 ) {
+
+ if (t != null && t.getText().toUpperCase() .indexOf('F') >= 0) {
+ _ttype = NUM_FLOAT;
+ }
+ else {
+ _ttype = NUM_DOUBLE; // assume double
+ }
+
+ }
+ }
+ else {
+ }
+
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ protected final void mEXPONENT(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = EXPONENT;
+ int _saveIndex;
+
+ {
+ switch ( LA(1)) {
+ case 'e':
+ {
+ match('e');
+ break;
+ }
+ case 'E':
+ {
+ match('E');
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ {
+ switch ( LA(1)) {
+ case '+':
+ {
+ match('+');
+ break;
+ }
+ case '-':
+ {
+ match('-');
+ break;
+ }
+ case '0': case '1': case '2': case '3':
+ case '4': case '5': case '6': case '7':
+ case '8': case '9':
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ }
+ {
+ int _cnt172=0;
+ _loop172:
+ do {
+ if (((LA(1) >= '0' && LA(1) <= '9'))) {
+ matchRange('0','9');
+ }
+ else {
+ if ( _cnt172>=1 ) { break _loop172; } else {throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());}
+ }
+
+ _cnt172++;
+ } while (true);
+ }
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+ protected final void mFLOAT_SUFFIX(boolean _createToken) throws RecognitionException, CharStreamException, TokenStreamException {
+ int _ttype; Token _token=null; int _begin=text.length();
+ _ttype = FLOAT_SUFFIX;
+ int _saveIndex;
+
+ switch ( LA(1)) {
+ case 'f':
+ {
+ match('f');
+ break;
+ }
+ case 'F':
+ {
+ match('F');
+ break;
+ }
+ case 'd':
+ {
+ match('d');
+ break;
+ }
+ case 'D':
+ {
+ match('D');
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltForCharException((char)LA(1), getFilename(), getLine(), getColumn());
+ }
+ }
+ if ( _createToken && _token==null && _ttype!=Token.SKIP ) {
+ _token = makeToken(_ttype);
+ _token.setText(new String(text.getBuffer(), _begin, text.length()-_begin));
+ }
+ _returnToken = _token;
+ }
+
+
+ private static final long[] mk_tokenSet_0() {
+ long[] data = new long[2048];
+ data[0]=-9224L;
+ for (int i = 1; i<=1023; i++) { data[i]=-1L; }
+ return data;
+ }
+ public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
+ private static final long[] mk_tokenSet_1() {
+ long[] data = new long[2048];
+ data[0]=-4398046520328L;
+ for (int i = 1; i<=1023; i++) { data[i]=-1L; }
+ return data;
+ }
+ public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
+ private static final long[] mk_tokenSet_2() {
+ long[] data = new long[2048];
+ data[0]=-549755823112L;
+ data[1]=-268435457L;
+ for (int i = 2; i<=1023; i++) { data[i]=-1L; }
+ return data;
+ }
+ public static final BitSet _tokenSet_2 = new BitSet(mk_tokenSet_2());
+ private static final long[] mk_tokenSet_3() {
+ long[] data = new long[2048];
+ data[0]=-17179878408L;
+ data[1]=-268435457L;
+ for (int i = 2; i<=1023; i++) { data[i]=-1L; }
+ return data;
+ }
+ public static final BitSet _tokenSet_3 = new BitSet(mk_tokenSet_3());
+ private static final long[] mk_tokenSet_4() {
+ long[] data = new long[1025];
+ data[0]=287948901175001088L;
+ data[1]=541165879422L;
+ return data;
+ }
+ public static final BitSet _tokenSet_4 = new BitSet(mk_tokenSet_4());
+
+ }
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap
new file mode 100644
index 0000000..045e3e3
--- /dev/null
+++ b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaLexer.smap
@@ -0,0 +1,1280 @@
+SMAP
+JavaLexer.java
+G
+*S G
+*F
++ 0 java-expression.g
+java-expression.g
+*L
+0:75
+0:81
+0:87
+0:93
+0:99
+0:105
+0:111
+0:117
+0:123
+0:129
+0:135
+0:142
+0:148
+0:154
+0:173
+0:181
+0:187
+0:191
+0:195
+0:199
+0:203
+0:207
+0:211
+0:215
+0:219
+0:223
+0:227
+0:231
+0:235
+0:239
+0:243
+0:247
+0:251
+0:255
+0:259
+0:263
+0:267
+0:271
+0:275
+0:279
+0:283
+0:287
+0:291
+0:295
+0:299
+0:303
+0:307
+0:311
+0:315
+0:319
+0:323
+0:327
+19:3
+231:355
+231:356
+231:357
+231:358
+231:360
+231:361
+231:362
+231:363
+231:364
+231:365
+231:366
+232:368
+232:369
+232:370
+232:371
+232:373
+232:374
+232:375
+232:376
+232:377
+232:378
+232:379
+233:381
+233:382
+233:383
+233:384
+233:386
+233:387
+233:388
+233:389
+233:390
+233:391
+233:392
+234:394
+234:395
+234:396
+234:397
+234:399
+234:400
+234:401
+234:402
+234:403
+234:404
+234:405
+235:407
+235:408
+235:409
+235:410
+235:412
+235:413
+235:414
+235:415
+235:416
+235:417
+235:418
+236:420
+236:421
+236:422
+236:423
+236:425
+236:426
+236:427
+236:428
+236:429
+236:430
+236:431
+237:433
+237:434
+237:435
+237:436
+237:438
+237:439
+237:440
+237:441
+237:442
+237:443
+237:444
+238:446
+238:447
+238:448
+238:449
+238:451
+238:452
+238:453
+238:454
+238:455
+238:456
+238:457
+239:459
+239:460
+239:461
+239:462
+239:464
+239:465
+239:466
+239:467
+239:468
+239:469
+239:470
+241:472
+241:473
+241:474
+241:475
+241:477
+241:478
+241:479
+241:480
+241:481
+241:482
+241:483
+242:485
+242:486
+242:487
+242:488
+242:490
+242:491
+242:492
+242:493
+242:494
+242:495
+242:496
+243:498
+243:499
+243:500
+243:501
+243:503
+243:504
+243:505
+243:506
+243:507
+243:508
+243:509
+244:511
+244:512
+244:513
+244:514
+244:516
+244:517
+244:518
+244:519
+244:520
+244:521
+244:522
+245:524
+245:525
+245:526
+245:527
+245:529
+245:530
+245:531
+245:532
+245:533
+245:534
+245:535
+246:537
+246:538
+246:539
+246:540
+246:542
+246:543
+246:544
+246:545
+246:546
+246:547
+246:548
+247:550
+247:551
+247:552
+247:553
+247:555
+247:556
+247:557
+247:558
+247:559
+247:560
+247:561
+248:563
+248:564
+248:565
+248:566
+248:568
+248:569
+248:570
+248:571
+248:572
+248:573
+248:574
+249:576
+249:577
+249:578
+249:579
+249:581
+249:582
+249:583
+249:584
+249:585
+249:586
+249:587
+250:589
+250:590
+250:591
+250:592
+250:594
+250:595
+250:596
+250:597
+250:598
+250:599
+250:600
+251:602
+251:603
+251:604
+251:605
+251:607
+251:608
+251:609
+251:610
+251:611
+251:612
+251:613
+252:615
+252:616
+252:617
+252:618
+252:620
+252:621
+252:622
+252:623
+252:624
+252:625
+252:626
+253:628
+253:629
+253:630
+253:631
+253:633
+253:634
+253:635
+253:636
+253:637
+253:638
+253:639
+254:641
+254:642
+254:643
+254:644
+254:646
+254:647
+254:648
+254:649
+254:650
+254:651
+254:652
+255:654
+255:655
+255:656
+255:657
+255:659
+255:660
+255:661
+255:662
+255:663
+255:664
+255:665
+256:667
+256:668
+256:669
+256:670
+256:672
+256:673
+256:674
+256:675
+256:676
+256:677
+256:678
+257:680
+257:681
+257:682
+257:683
+257:685
+257:686
+257:687
+257:688
+257:689
+257:690
+257:691
+258:693
+258:694
+258:695
+258:696
+258:698
+258:699
+258:700
+258:701
+258:702
+258:703
+258:704
+259:706
+259:707
+259:708
+259:709
+259:711
+259:712
+259:713
+259:714
+259:715
+259:716
+259:717
+260:719
+260:720
+260:721
+260:722
+260:724
+260:725
+260:726
+260:727
+260:728
+260:729
+260:730
+261:732
+261:733
+261:734
+261:735
+261:737
+261:738
+261:739
+261:740
+261:741
+261:742
+261:743
+262:745
+262:746
+262:747
+262:748
+262:750
+262:751
+262:752
+262:753
+262:754
+262:755
+262:756
+263:758
+263:759
+263:760
+263:761
+263:763
+263:764
+263:765
+263:766
+263:767
+263:768
+263:769
+264:771
+264:772
+264:773
+264:774
+264:776
+264:777
+264:778
+264:779
+264:780
+264:781
+264:782
+265:784
+265:785
+265:786
+265:787
+265:789
+265:790
+265:791
+265:792
+265:793
+265:794
+265:795
+266:797
+266:798
+266:799
+266:800
+266:802
+266:803
+266:804
+266:805
+266:806
+266:807
+266:808
+267:810
+267:811
+267:812
+267:813
+267:815
+267:816
+267:817
+267:818
+267:819
+267:820
+267:821
+268:823
+268:824
+268:825
+268:826
+268:828
+268:829
+268:830
+268:831
+268:832
+268:833
+268:834
+269:836
+269:837
+269:838
+269:839
+269:841
+269:842
+269:843
+269:844
+269:845
+269:846
+269:847
+270:849
+270:850
+270:851
+270:852
+270:854
+270:855
+270:856
+270:857
+270:858
+270:859
+270:860
+271:862
+271:863
+271:864
+271:865
+271:867
+271:868
+271:869
+271:870
+271:871
+271:872
+271:873
+272:875
+272:876
+272:877
+272:878
+272:880
+272:881
+272:882
+272:883
+272:884
+272:885
+272:886
+273:888
+273:889
+273:890
+273:891
+273:893
+273:894
+273:895
+273:896
+273:897
+273:898
+273:899
+274:901
+274:902
+274:903
+274:904
+274:906
+274:907
+274:908
+274:909
+274:910
+274:911
+274:912
+275:914
+275:915
+275:916
+275:917
+275:919
+275:920
+275:921
+275:922
+275:923
+275:924
+275:925
+276:927
+276:928
+276:929
+276:930
+276:932
+276:933
+276:934
+276:935
+276:936
+276:937
+276:938
+280:940
+280:941
+280:942
+280:943
+280:946
+280:947
+280:948
+280:949
+280:950
+280:951
+280:952
+280:987
+280:988
+280:989
+280:990
+280:991
+280:992
+280:993
+280:994
+280:998
+280:999
+280:1000
+280:1001
+280:1002
+280:1003
+281:955
+281:956
+281:957
+282:960
+282:961
+282:962
+284:965
+284:966
+284:970
+284:973
+284:976
+284:977
+284:978
+284:979
+285:968
+285:969
+286:971
+286:972
+287:974
+287:975
+289:982
+289:983
+291:995
+291:996
+295:1005
+295:1006
+295:1007
+295:1008
+295:1054
+295:1055
+295:1056
+295:1057
+295:1058
+295:1059
+296:1010
+297:1011
+297:1012
+297:1013
+297:1014
+297:1016
+297:1018
+297:1019
+297:1020
+297:1021
+297:1023
+297:1024
+297:1026
+297:1027
+297:1028
+297:1029
+297:1032
+297:1033
+297:1034
+297:1036
+297:1037
+297:1038
+297:1040
+297:1045
+297:1046
+297:1047
+297:1048
+297:1049
+298:1051
+298:1052
+302:1061
+302:1062
+302:1063
+302:1064
+302:1107
+302:1108
+302:1109
+302:1110
+302:1111
+302:1112
+303:1066
+304:1067
+304:1068
+304:1069
+304:1076
+304:1079
+304:1085
+304:1091
+304:1096
+304:1097
+304:1098
+304:1099
+304:1101
+304:1102
+315:1077
+315:1078
+316:1070
+316:1071
+316:1072
+316:1073
+316:1074
+317:1080
+317:1081
+317:1082
+317:1083
+318:1086
+318:1087
+318:1088
+318:1089
+319:1092
+319:1094
+321:1103
+322:1104
+322:1105
+327:1114
+327:1115
+327:1116
+327:1117
+327:1135
+327:1136
+327:1137
+327:1138
+327:1139
+327:1140
+328:1119
+328:1121
+328:1122
+328:1123
+328:1124
+328:1126
+328:1128
+328:1129
+328:1130
+328:1131
+328:1134
+332:1268
+332:1269
+332:1270
+332:1271
+332:1292
+332:1293
+332:1294
+332:1295
+332:1296
+332:1297
+333:1273
+333:1274
+333:1275
+333:1276
+333:1277
+333:1278
+333:1279
+333:1280
+333:1282
+333:1284
+333:1285
+333:1286
+333:1287
+333:1289
+333:1290
+333:1291
+346:1142
+346:1143
+346:1144
+346:1145
+346:1261
+346:1262
+346:1263
+346:1264
+346:1265
+346:1266
+347:1147
+348:1149
+348:1150
+348:1151
+348:1152
+348:1255
+348:1256
+348:1257
+348:1258
+348:1259
+349:1155
+349:1156
+349:1157
+350:1160
+350:1161
+350:1162
+351:1165
+351:1166
+351:1167
+352:1170
+352:1171
+352:1172
+353:1175
+353:1176
+353:1177
+354:1180
+354:1181
+354:1182
+355:1185
+355:1186
+355:1187
+356:1190
+356:1191
+356:1193
+356:1194
+356:1195
+356:1196
+356:1197
+356:1198
+356:1199
+356:1200
+356:1201
+356:1203
+356:1204
+356:1205
+356:1206
+356:1207
+356:1208
+356:1209
+357:1212
+357:1213
+357:1214
+358:1229
+358:1231
+358:1232
+358:1233
+358:1234
+362:1216
+362:1217
+363:1221
+363:1223
+363:1224
+363:1225
+363:1226
+367:1219
+367:1220
+370:1239
+370:1240
+370:1241
+371:1245
+371:1247
+371:1248
+371:1249
+371:1250
+375:1243
+375:1244
+383:1299
+383:1300
+383:1301
+383:1302
+383:1331
+383:1332
+383:1333
+383:1334
+383:1335
+383:1336
+384:1305
+384:1306
+384:1307
+384:1308
+384:1309
+384:1310
+384:1313
+384:1314
+384:1315
+384:1316
+384:1319
+384:1320
+384:1321
+384:1322
+384:1325
+384:1326
+384:1327
+384:1328
+384:1329
+391:1338
+391:1339
+391:1340
+391:1341
+391:1344
+391:1345
+391:1346
+391:1347
+391:1348
+391:1349
+392:1343
+399:1351
+399:1352
+399:1353
+399:1354
+399:1446
+399:1447
+399:1448
+399:1449
+399:1450
+399:1451
+399:1452
+401:1357
+401:1358
+401:1359
+401:1360
+401:1361
+401:1362
+401:1363
+401:1364
+401:1365
+401:1366
+401:1369
+401:1370
+401:1371
+401:1372
+401:1373
+401:1374
+401:1375
+401:1376
+401:1377
+401:1380
+401:1381
+401:1382
+401:1385
+401:1386
+401:1387
+401:1390
+401:1391
+401:1392
+401:1393
+401:1394
+401:1396
+401:1397
+401:1398
+401:1399
+401:1400
+401:1401
+401:1402
+401:1403
+401:1404
+401:1405
+401:1406
+401:1407
+401:1408
+401:1411
+401:1412
+401:1413
+401:1414
+401:1415
+401:1416
+401:1417
+401:1418
+401:1419
+401:1422
+401:1423
+401:1424
+401:1427
+401:1428
+401:1429
+401:1430
+401:1431
+401:1434
+401:1435
+401:1436
+401:1439
+401:1440
+401:1441
+401:1442
+401:1443
+401:1444
+401:1445
+406:1454
+406:1455
+406:1456
+406:1457
+406:1462
+406:1464
+406:1805
+406:1806
+406:1807
+406:1808
+406:1809
+406:1810
+406:1811
+406:1812
+406:1813
+406:1814
+406:1815
+408:1465
+408:1466
+408:1467
+408:1468
+408:1469
+409:1458
+409:1472
+409:1474
+409:1475
+409:1476
+409:1477
+409:1478
+409:1479
+409:1480
+409:1481
+409:1482
+409:1484
+409:1485
+409:1486
+409:1488
+409:1489
+409:1490
+409:1492
+409:1496
+409:1497
+409:1498
+409:1499
+409:1500
+409:1502
+409:1504
+409:1517
+409:1519
+410:1507
+411:1509
+412:1510
+413:1511
+414:1512
+415:1513
+416:1514
+420:1524
+420:1525
+420:1526
+420:1527
+420:1529
+420:1530
+420:1531
+420:1532
+420:1533
+420:1534
+420:1686
+420:1687
+420:1688
+420:1689
+420:1690
+421:1537
+421:1539
+421:1540
+421:1541
+421:1542
+421:1545
+421:1546
+421:1547
+421:1550
+421:1551
+421:1552
+421:1553
+421:1554
+421:1570
+421:1639
+421:1655
+421:1657
+421:1658
+422:1557
+422:1558
+422:1559
+422:1562
+422:1563
+422:1564
+422:1565
+422:1567
+422:1568
+422:1569
+431:1560
+431:1561
+435:1571
+435:1572
+435:1573
+435:1574
+435:1575
+435:1576
+435:1577
+435:1580
+435:1581
+435:1582
+435:1583
+435:1584
+435:1585
+435:1586
+435:1587
+435:1588
+435:1590
+435:1591
+435:1592
+435:1594
+435:1595
+435:1596
+435:1597
+435:1600
+435:1601
+435:1602
+435:1605
+435:1606
+435:1607
+435:1610
+435:1611
+435:1612
+435:1613
+435:1614
+435:1617
+435:1618
+435:1619
+435:1620
+435:1621
+435:1622
+435:1623
+435:1624
+435:1626
+435:1627
+435:1628
+435:1629
+435:1630
+435:1631
+435:1632
+435:1633
+435:1634
+435:1636
+435:1637
+435:1638
+437:1640
+437:1642
+437:1643
+437:1644
+437:1645
+437:1646
+437:1647
+437:1648
+437:1649
+437:1650
+437:1652
+437:1653
+437:1654
+439:1662
+439:1663
+439:1664
+439:1665
+439:1667
+439:1669
+439:1670
+439:1671
+439:1672
+439:1673
+439:1674
+439:1675
+439:1676
+439:1677
+439:1679
+439:1680
+439:1681
+439:1682
+441:1693
+441:1695
+441:1696
+441:1697
+441:1698
+441:1701
+441:1702
+441:1703
+441:1706
+441:1707
+441:1708
+441:1709
+441:1710
+441:1712
+441:1713
+441:1715
+441:1798
+441:1800
+445:1459
+445:1716
+445:1718
+445:1719
+445:1720
+445:1721
+445:1722
+445:1723
+445:1724
+445:1725
+445:1726
+445:1727
+445:1728
+445:1729
+445:1730
+445:1732
+445:1733
+445:1735
+445:1736
+445:1737
+445:1739
+445:1743
+445:1744
+445:1745
+445:1746
+445:1747
+445:1749
+445:1751
+445:1782
+445:1783
+445:1784
+445:1785
+445:1786
+446:1460
+446:1756
+446:1757
+446:1758
+446:1760
+446:1761
+446:1762
+446:1763
+446:1764
+446:1766
+446:1768
+447:1461
+447:1773
+447:1774
+447:1775
+447:1776
+447:1777
+447:1778
+449:1788
+450:1790
+451:1791
+452:1792
+453:1793
+454:1794
+455:1795
+463:1817
+463:1818
+463:1819
+463:1820
+463:1878
+463:1879
+463:1880
+463:1881
+463:1882
+463:1883
+464:1823
+464:1824
+464:1825
+464:1826
+464:1829
+464:1830
+464:1831
+464:1834
+464:1835
+464:1836
+464:1837
+464:1838
+464:1841
+464:1842
+464:1843
+464:1844
+464:1847
+464:1848
+464:1849
+464:1858
+464:1859
+464:1860
+464:1861
+464:1862
+464:1865
+464:1866
+464:1867
+464:1868
+464:1869
+464:1870
+464:1871
+464:1872
+464:1873
+464:1875
+464:1876
+464:1877
+469:1885
+469:1886
+469:1887
+469:1888
+469:1890
+469:1911
+469:1912
+469:1913
+469:1914
+469:1915
+469:1916
+469:1917
+469:1918
+469:1919
+469:1920
+469:1921
+470:1891
+470:1892
+470:1893
+470:1896
+470:1897
+470:1898
+470:1901
+470:1902
+470:1903
+470:1906
+470:1907
+470:1908
+*E
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java
new file mode 100644
index 0000000..9dfc9db
--- /dev/null
+++ b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.java
@@ -0,0 +1,1406 @@
+// $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaRecognizer.java"$
+
+ package gnu.classpath.tools.gjdoc.expr;
+
+import antlr.TokenBuffer;
+import antlr.TokenStreamException;
+import antlr.TokenStreamIOException;
+import antlr.ANTLRException;
+import antlr.LLkParser;
+import antlr.Token;
+import antlr.TokenStream;
+import antlr.RecognitionException;
+import antlr.NoViableAltException;
+import antlr.MismatchedTokenException;
+import antlr.SemanticException;
+import antlr.ParserSharedInputState;
+import antlr.collections.impl.BitSet;
+import antlr.collections.AST;
+import java.util.Hashtable;
+import antlr.ASTFactory;
+import antlr.ASTPair;
+import antlr.collections.impl.ASTArray;
+
+public class JavaRecognizer extends antlr.LLkParser implements JavaTokenTypes
+ {
+
+protected JavaRecognizer(TokenBuffer tokenBuf, int k) {
+ super(tokenBuf,k);
+ tokenNames = _tokenNames;
+ buildTokenTypeASTClassMap();
+ astFactory = new ASTFactory(getTokenTypeToASTClassMap());
+}
+
+public JavaRecognizer(TokenBuffer tokenBuf) {
+ this(tokenBuf,2);
+}
+
+protected JavaRecognizer(TokenStream lexer, int k) {
+ super(lexer,k);
+ tokenNames = _tokenNames;
+ buildTokenTypeASTClassMap();
+ astFactory = new ASTFactory(getTokenTypeToASTClassMap());
+}
+
+public JavaRecognizer(TokenStream lexer) {
+ this(lexer,2);
+}
+
+public JavaRecognizer(ParserSharedInputState state) {
+ super(state,2);
+ tokenNames = _tokenNames;
+ buildTokenTypeASTClassMap();
+ astFactory = new ASTFactory(getTokenTypeToASTClassMap());
+}
+
+ public final Type builtInTypeSpec(
+ boolean addImagNode
+ ) throws RecognitionException, TokenStreamException {
+ Type t = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST builtInTypeSpec_AST = null;
+ Token lb = null;
+ AST lb_AST = null;
+
+ t=builtInType();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ _loop3:
+ do {
+ if ((LA(1)==LBRACK)) {
+ lb = LT(1);
+ lb_AST = astFactory.create(lb);
+ astFactory.makeASTRoot(currentAST, lb_AST);
+ match(LBRACK);
+ if ( inputState.guessing==0 ) {
+ lb_AST.setType(ARRAY_DECLARATOR);
+ }
+ match(RBRACK);
+ }
+ else {
+ break _loop3;
+ }
+
+ } while (true);
+ }
+ if ( inputState.guessing==0 ) {
+ builtInTypeSpec_AST = (AST)currentAST.root;
+
+ if ( addImagNode ) {
+ builtInTypeSpec_AST = (AST)astFactory.make( (new ASTArray(2)).add(astFactory.create(TYPE,"TYPE")).add(builtInTypeSpec_AST));
+ }
+
+ currentAST.root = builtInTypeSpec_AST;
+ currentAST.child = builtInTypeSpec_AST!=null &&builtInTypeSpec_AST.getFirstChild()!=null ?
+ builtInTypeSpec_AST.getFirstChild() : builtInTypeSpec_AST;
+ currentAST.advanceChildToEnd();
+ }
+ builtInTypeSpec_AST = (AST)currentAST.root;
+ returnAST = builtInTypeSpec_AST;
+ return t;
+ }
+
+ public final Type builtInType() throws RecognitionException, TokenStreamException {
+ Type t = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST builtInType_AST = null;
+
+ switch ( LA(1)) {
+ case LITERAL_void:
+ {
+ AST tmp2_AST = null;
+ tmp2_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp2_AST);
+ match(LITERAL_void);
+ if ( inputState.guessing==0 ) {
+ t=Type.VOID;
+ }
+ builtInType_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_boolean:
+ {
+ AST tmp3_AST = null;
+ tmp3_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp3_AST);
+ match(LITERAL_boolean);
+ if ( inputState.guessing==0 ) {
+ t=Type.BOOLEAN;
+ }
+ builtInType_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_byte:
+ {
+ AST tmp4_AST = null;
+ tmp4_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp4_AST);
+ match(LITERAL_byte);
+ if ( inputState.guessing==0 ) {
+ t=Type.BYTE;
+ }
+ builtInType_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_char:
+ {
+ AST tmp5_AST = null;
+ tmp5_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp5_AST);
+ match(LITERAL_char);
+ if ( inputState.guessing==0 ) {
+ t=Type.CHAR;
+ }
+ builtInType_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_short:
+ {
+ AST tmp6_AST = null;
+ tmp6_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp6_AST);
+ match(LITERAL_short);
+ if ( inputState.guessing==0 ) {
+ t=Type.SHORT;
+ }
+ builtInType_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_int:
+ {
+ AST tmp7_AST = null;
+ tmp7_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp7_AST);
+ match(LITERAL_int);
+ if ( inputState.guessing==0 ) {
+ t=Type.INTEGER;
+ }
+ builtInType_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_float:
+ {
+ AST tmp8_AST = null;
+ tmp8_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp8_AST);
+ match(LITERAL_float);
+ if ( inputState.guessing==0 ) {
+ t=Type.FLOAT;
+ }
+ builtInType_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_long:
+ {
+ AST tmp9_AST = null;
+ tmp9_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp9_AST);
+ match(LITERAL_long);
+ if ( inputState.guessing==0 ) {
+ t=Type.LONG;
+ }
+ builtInType_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_double:
+ {
+ AST tmp10_AST = null;
+ tmp10_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp10_AST);
+ match(LITERAL_double);
+ if ( inputState.guessing==0 ) {
+ t=Type.DOUBLE;
+ }
+ builtInType_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_String:
+ {
+ AST tmp11_AST = null;
+ tmp11_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp11_AST);
+ match(LITERAL_String);
+ if ( inputState.guessing==0 ) {
+ t=Type.STRING;
+ }
+ builtInType_AST = (AST)currentAST.root;
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ returnAST = builtInType_AST;
+ return t;
+ }
+
+ public final Type type() throws RecognitionException, TokenStreamException {
+ Type t;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST type_AST = null;
+
+ t=builtInType();
+ astFactory.addASTChild(currentAST, returnAST);
+ type_AST = (AST)currentAST.root;
+ returnAST = type_AST;
+ return t;
+ }
+
+ public final String identifier() throws RecognitionException, TokenStreamException {
+ String s = null;;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST identifier_AST = null;
+ Token i = null;
+ AST i_AST = null;
+ Token i2 = null;
+ AST i2_AST = null;
+
+ i = LT(1);
+ i_AST = astFactory.create(i);
+ astFactory.addASTChild(currentAST, i_AST);
+ match(IDENT);
+ if ( inputState.guessing==0 ) {
+ s=i.getText();
+ }
+ {
+ _loop8:
+ do {
+ if ((LA(1)==DOT)) {
+ AST tmp12_AST = null;
+ tmp12_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp12_AST);
+ match(DOT);
+ i2 = LT(1);
+ i2_AST = astFactory.create(i2);
+ astFactory.addASTChild(currentAST, i2_AST);
+ match(IDENT);
+ if ( inputState.guessing==0 ) {
+ s+="."+i2.getText();
+ }
+ }
+ else {
+ break _loop8;
+ }
+
+ } while (true);
+ }
+ identifier_AST = (AST)currentAST.root;
+ returnAST = identifier_AST;
+ return s;
+ }
+
+ public final Expression expression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST expression_AST = null;
+
+ e=conditionalExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ match(Token.EOF_TYPE);
+ expression_AST = (AST)currentAST.root;
+ returnAST = expression_AST;
+ return e;
+ }
+
+ public final Expression conditionalExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST conditionalExpression_AST = null;
+ Expression a,b,c;
+
+ e=logicalOrExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ switch ( LA(1)) {
+ case QUESTION:
+ {
+ AST tmp14_AST = null;
+ tmp14_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp14_AST);
+ match(QUESTION);
+ b=conditionalExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ match(COLON);
+ c=conditionalExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new ConditionalExpression(e,b,c);
+ }
+ break;
+ }
+ case EOF:
+ case COLON:
+ case RPAREN:
+ {
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ }
+ conditionalExpression_AST = (AST)currentAST.root;
+ returnAST = conditionalExpression_AST;
+ return e;
+ }
+
+ public final Expression logicalOrExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST logicalOrExpression_AST = null;
+ Expression a,b;
+
+ e=logicalAndExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ _loop14:
+ do {
+ if ((LA(1)==LOR)) {
+ AST tmp16_AST = null;
+ tmp16_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp16_AST);
+ match(LOR);
+ b=logicalAndExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new LogicalOrExpression(e,b);
+ }
+ }
+ else {
+ break _loop14;
+ }
+
+ } while (true);
+ }
+ logicalOrExpression_AST = (AST)currentAST.root;
+ returnAST = logicalOrExpression_AST;
+ return e;
+ }
+
+ public final Expression logicalAndExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST logicalAndExpression_AST = null;
+ Expression a,b;
+
+ e=inclusiveOrExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ _loop17:
+ do {
+ if ((LA(1)==LAND)) {
+ AST tmp17_AST = null;
+ tmp17_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp17_AST);
+ match(LAND);
+ b=inclusiveOrExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new LogicalAndExpression(e,b);
+ }
+ }
+ else {
+ break _loop17;
+ }
+
+ } while (true);
+ }
+ logicalAndExpression_AST = (AST)currentAST.root;
+ returnAST = logicalAndExpression_AST;
+ return e;
+ }
+
+ public final Expression inclusiveOrExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST inclusiveOrExpression_AST = null;
+ Expression a,b;
+
+ e=exclusiveOrExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ _loop20:
+ do {
+ if ((LA(1)==BOR)) {
+ AST tmp18_AST = null;
+ tmp18_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp18_AST);
+ match(BOR);
+ b=exclusiveOrExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new InclusiveOrExpression(e,b);
+ }
+ }
+ else {
+ break _loop20;
+ }
+
+ } while (true);
+ }
+ inclusiveOrExpression_AST = (AST)currentAST.root;
+ returnAST = inclusiveOrExpression_AST;
+ return e;
+ }
+
+ public final Expression exclusiveOrExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST exclusiveOrExpression_AST = null;
+ Expression a,b;
+
+ e=andExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ _loop23:
+ do {
+ if ((LA(1)==BXOR)) {
+ AST tmp19_AST = null;
+ tmp19_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp19_AST);
+ match(BXOR);
+ b=andExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new ExclusiveOrExpression(e,b);
+ }
+ }
+ else {
+ break _loop23;
+ }
+
+ } while (true);
+ }
+ exclusiveOrExpression_AST = (AST)currentAST.root;
+ returnAST = exclusiveOrExpression_AST;
+ return e;
+ }
+
+ public final Expression andExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST andExpression_AST = null;
+ Expression a,b;
+
+ e=equalityExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ _loop26:
+ do {
+ if ((LA(1)==BAND)) {
+ AST tmp20_AST = null;
+ tmp20_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp20_AST);
+ match(BAND);
+ b=equalityExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new AndExpression(e,b);
+ }
+ }
+ else {
+ break _loop26;
+ }
+
+ } while (true);
+ }
+ andExpression_AST = (AST)currentAST.root;
+ returnAST = andExpression_AST;
+ return e;
+ }
+
+ public final Expression equalityExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST equalityExpression_AST = null;
+ Expression a,b;
+
+ e=relationalExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ _loop30:
+ do {
+ if ((LA(1)==NOT_EQUAL||LA(1)==EQUAL)) {
+ {
+ switch ( LA(1)) {
+ case NOT_EQUAL:
+ {
+ AST tmp21_AST = null;
+ tmp21_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp21_AST);
+ match(NOT_EQUAL);
+ a=relationalExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new NotEqualExpression(e,a);
+ }
+ break;
+ }
+ case EQUAL:
+ {
+ AST tmp22_AST = null;
+ tmp22_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp22_AST);
+ match(EQUAL);
+ a=relationalExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new EqualExpression(e,a);
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ }
+ }
+ else {
+ break _loop30;
+ }
+
+ } while (true);
+ }
+ equalityExpression_AST = (AST)currentAST.root;
+ returnAST = equalityExpression_AST;
+ return e;
+ }
+
+ public final Expression relationalExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST relationalExpression_AST = null;
+ Expression a,b;
+
+ e=shiftExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ {
+ _loop35:
+ do {
+ if (((LA(1) >= LT && LA(1) <= GE))) {
+ {
+ switch ( LA(1)) {
+ case LT:
+ {
+ AST tmp23_AST = null;
+ tmp23_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp23_AST);
+ match(LT);
+ a=shiftExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new LessThanExpression(e,a);
+ }
+ break;
+ }
+ case GT:
+ {
+ AST tmp24_AST = null;
+ tmp24_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp24_AST);
+ match(GT);
+ a=shiftExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new GreaterThanExpression(e,a);
+ }
+ break;
+ }
+ case LE:
+ {
+ AST tmp25_AST = null;
+ tmp25_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp25_AST);
+ match(LE);
+ a=shiftExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new LessThanOrEqualExpression(e,a);
+ }
+ break;
+ }
+ case GE:
+ {
+ AST tmp26_AST = null;
+ tmp26_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp26_AST);
+ match(GE);
+ a=shiftExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new GreaterThanOrEqualExpression(e,a);
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ }
+ }
+ else {
+ break _loop35;
+ }
+
+ } while (true);
+ }
+ }
+ relationalExpression_AST = (AST)currentAST.root;
+ returnAST = relationalExpression_AST;
+ return e;
+ }
+
+ public final Expression shiftExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST shiftExpression_AST = null;
+ Expression a,b;
+
+ e=additiveExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ _loop39:
+ do {
+ if (((LA(1) >= SL && LA(1) <= BSR))) {
+ {
+ switch ( LA(1)) {
+ case SL:
+ {
+ AST tmp27_AST = null;
+ tmp27_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp27_AST);
+ match(SL);
+ a=additiveExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new ShiftLeftExpression(e,a);
+ }
+ break;
+ }
+ case SR:
+ {
+ AST tmp28_AST = null;
+ tmp28_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp28_AST);
+ match(SR);
+ a=additiveExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new ShiftRightExpression(e,a);
+ }
+ break;
+ }
+ case BSR:
+ {
+ AST tmp29_AST = null;
+ tmp29_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp29_AST);
+ match(BSR);
+ a=additiveExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new BitShiftRightExpression(e,a);
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ }
+ }
+ else {
+ break _loop39;
+ }
+
+ } while (true);
+ }
+ shiftExpression_AST = (AST)currentAST.root;
+ returnAST = shiftExpression_AST;
+ return e;
+ }
+
+ public final Expression additiveExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST additiveExpression_AST = null;
+ Expression a,b;
+
+ e=multiplicativeExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ _loop43:
+ do {
+ if ((LA(1)==PLUS||LA(1)==MINUS)) {
+ {
+ switch ( LA(1)) {
+ case PLUS:
+ {
+ AST tmp30_AST = null;
+ tmp30_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp30_AST);
+ match(PLUS);
+ a=multiplicativeExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new AdditionExpression(e,a);
+ }
+ break;
+ }
+ case MINUS:
+ {
+ AST tmp31_AST = null;
+ tmp31_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp31_AST);
+ match(MINUS);
+ a=multiplicativeExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new SubtractionExpression(e,a);
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ }
+ }
+ else {
+ break _loop43;
+ }
+
+ } while (true);
+ }
+ additiveExpression_AST = (AST)currentAST.root;
+ returnAST = additiveExpression_AST;
+ return e;
+ }
+
+ public final Expression multiplicativeExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST multiplicativeExpression_AST = null;
+ Expression a,b;
+
+ e=unaryExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ {
+ _loop47:
+ do {
+ if (((LA(1) >= STAR && LA(1) <= MOD))) {
+ {
+ switch ( LA(1)) {
+ case STAR:
+ {
+ AST tmp32_AST = null;
+ tmp32_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp32_AST);
+ match(STAR);
+ a=unaryExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new MultiplicationExpression(e,a);
+ }
+ break;
+ }
+ case DIV:
+ {
+ AST tmp33_AST = null;
+ tmp33_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp33_AST);
+ match(DIV);
+ a=unaryExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new DivisionExpression(e,a);
+ }
+ break;
+ }
+ case MOD:
+ {
+ AST tmp34_AST = null;
+ tmp34_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp34_AST);
+ match(MOD);
+ a=unaryExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new ModuloExpression(e,a);
+ }
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ }
+ }
+ else {
+ break _loop47;
+ }
+
+ } while (true);
+ }
+ multiplicativeExpression_AST = (AST)currentAST.root;
+ returnAST = multiplicativeExpression_AST;
+ return e;
+ }
+
+ public final Expression unaryExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST unaryExpression_AST = null;
+ Expression a,b;
+
+ switch ( LA(1)) {
+ case MINUS:
+ {
+ AST tmp35_AST = null;
+ tmp35_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp35_AST);
+ match(MINUS);
+ if ( inputState.guessing==0 ) {
+ tmp35_AST.setType(UNARY_MINUS);
+ }
+ a=unaryExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new NegateExpression(a);
+ }
+ unaryExpression_AST = (AST)currentAST.root;
+ break;
+ }
+ case PLUS:
+ {
+ AST tmp36_AST = null;
+ tmp36_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp36_AST);
+ match(PLUS);
+ if ( inputState.guessing==0 ) {
+ tmp36_AST.setType(UNARY_PLUS);
+ }
+ e=unaryExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ unaryExpression_AST = (AST)currentAST.root;
+ break;
+ }
+ case IDENT:
+ case BNOT:
+ case LNOT:
+ case LPAREN:
+ case LITERAL_true:
+ case LITERAL_false:
+ case LITERAL_null:
+ case NUM_INT:
+ case CHAR_LITERAL:
+ case STRING_LITERAL:
+ case NUM_FLOAT:
+ case NUM_LONG:
+ case NUM_DOUBLE:
+ {
+ e=unaryExpressionNotPlusMinus();
+ astFactory.addASTChild(currentAST, returnAST);
+ unaryExpression_AST = (AST)currentAST.root;
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ returnAST = unaryExpression_AST;
+ return e;
+ }
+
+ public final Expression unaryExpressionNotPlusMinus() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST unaryExpressionNotPlusMinus_AST = null;
+ Token lpb = null;
+ AST lpb_AST = null;
+ Expression a; Type t;
+
+ switch ( LA(1)) {
+ case BNOT:
+ {
+ AST tmp37_AST = null;
+ tmp37_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp37_AST);
+ match(BNOT);
+ a=unaryExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new NotExpression(a);
+ }
+ unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
+ break;
+ }
+ case LNOT:
+ {
+ AST tmp38_AST = null;
+ tmp38_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp38_AST);
+ match(LNOT);
+ a=unaryExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new LogicalNotExpression(a);
+ }
+ unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
+ break;
+ }
+ default:
+ boolean synPredMatched51 = false;
+ if (((LA(1)==LPAREN) && ((LA(2) >= LITERAL_void && LA(2) <= LITERAL_String)))) {
+ int _m51 = mark();
+ synPredMatched51 = true;
+ inputState.guessing++;
+ try {
+ {
+ match(LPAREN);
+ builtInTypeSpec(true);
+ match(RPAREN);
+ }
+ }
+ catch (RecognitionException pe) {
+ synPredMatched51 = false;
+ }
+ rewind(_m51);
+inputState.guessing--;
+ }
+ if ( synPredMatched51 ) {
+ lpb = LT(1);
+ lpb_AST = astFactory.create(lpb);
+ astFactory.makeASTRoot(currentAST, lpb_AST);
+ match(LPAREN);
+ if ( inputState.guessing==0 ) {
+ lpb_AST.setType(TYPECAST);
+ }
+ t=builtInTypeSpec(true);
+ astFactory.addASTChild(currentAST, returnAST);
+ match(RPAREN);
+ a=unaryExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new TypeCastExpression(t,a);
+ }
+ unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
+ }
+ else if ((_tokenSet_0.member(LA(1))) && (_tokenSet_1.member(LA(2)))) {
+ e=primaryExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ unaryExpressionNotPlusMinus_AST = (AST)currentAST.root;
+ }
+ else {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ returnAST = unaryExpressionNotPlusMinus_AST;
+ return e;
+ }
+
+ public final Expression primaryExpression() throws RecognitionException, TokenStreamException {
+ Expression e = null; String i = null;;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST primaryExpression_AST = null;
+
+ switch ( LA(1)) {
+ case NUM_INT:
+ case CHAR_LITERAL:
+ case STRING_LITERAL:
+ case NUM_FLOAT:
+ case NUM_LONG:
+ case NUM_DOUBLE:
+ {
+ e=constant();
+ astFactory.addASTChild(currentAST, returnAST);
+ primaryExpression_AST = (AST)currentAST.root;
+ break;
+ }
+ case IDENT:
+ {
+ i=identifier();
+ astFactory.addASTChild(currentAST, returnAST);
+ if ( inputState.guessing==0 ) {
+ e=new IdentifierExpression(i);
+ }
+ primaryExpression_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_true:
+ {
+ AST tmp40_AST = null;
+ tmp40_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp40_AST);
+ match(LITERAL_true);
+ if ( inputState.guessing==0 ) {
+ e=new ConstantBoolean(true);
+ }
+ primaryExpression_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_false:
+ {
+ AST tmp41_AST = null;
+ tmp41_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp41_AST);
+ match(LITERAL_false);
+ if ( inputState.guessing==0 ) {
+ e=new ConstantBoolean(false);
+ }
+ primaryExpression_AST = (AST)currentAST.root;
+ break;
+ }
+ case LITERAL_null:
+ {
+ AST tmp42_AST = null;
+ tmp42_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp42_AST);
+ match(LITERAL_null);
+ if ( inputState.guessing==0 ) {
+ e=new ConstantNull();
+ }
+ primaryExpression_AST = (AST)currentAST.root;
+ break;
+ }
+ case LPAREN:
+ {
+ match(LPAREN);
+ e=conditionalExpression();
+ astFactory.addASTChild(currentAST, returnAST);
+ match(RPAREN);
+ primaryExpression_AST = (AST)currentAST.root;
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ returnAST = primaryExpression_AST;
+ return e;
+ }
+
+ public final Expression constant() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST constant_AST = null;
+ Token l1 = null;
+ AST l1_AST = null;
+ Token l2 = null;
+ AST l2_AST = null;
+ Token l3 = null;
+ AST l3_AST = null;
+ Token l4 = null;
+ AST l4_AST = null;
+ Token l5 = null;
+ AST l5_AST = null;
+ Token l6 = null;
+ AST l6_AST = null;
+
+ switch ( LA(1)) {
+ case NUM_INT:
+ {
+ l1 = LT(1);
+ l1_AST = astFactory.create(l1);
+ astFactory.addASTChild(currentAST, l1_AST);
+ match(NUM_INT);
+ if ( inputState.guessing==0 ) {
+ e=new ConstantInteger(l1.getText());
+ }
+ constant_AST = (AST)currentAST.root;
+ break;
+ }
+ case CHAR_LITERAL:
+ {
+ l2 = LT(1);
+ l2_AST = astFactory.create(l2);
+ astFactory.addASTChild(currentAST, l2_AST);
+ match(CHAR_LITERAL);
+ if ( inputState.guessing==0 ) {
+ e=new ConstantChar(l2.getText());
+ }
+ constant_AST = (AST)currentAST.root;
+ break;
+ }
+ case STRING_LITERAL:
+ {
+ l3 = LT(1);
+ l3_AST = astFactory.create(l3);
+ astFactory.addASTChild(currentAST, l3_AST);
+ match(STRING_LITERAL);
+ if ( inputState.guessing==0 ) {
+ e=new ConstantString(l3.getText().substring(1, l3.getText().length()-1));
+ }
+ constant_AST = (AST)currentAST.root;
+ break;
+ }
+ case NUM_FLOAT:
+ {
+ l4 = LT(1);
+ l4_AST = astFactory.create(l4);
+ astFactory.addASTChild(currentAST, l4_AST);
+ match(NUM_FLOAT);
+ if ( inputState.guessing==0 ) {
+ e=new ConstantFloat(l4.getText());
+ }
+ constant_AST = (AST)currentAST.root;
+ break;
+ }
+ case NUM_LONG:
+ {
+ l5 = LT(1);
+ l5_AST = astFactory.create(l5);
+ astFactory.addASTChild(currentAST, l5_AST);
+ match(NUM_LONG);
+ if ( inputState.guessing==0 ) {
+ e=new ConstantLong(l5.getText());
+ }
+ constant_AST = (AST)currentAST.root;
+ break;
+ }
+ case NUM_DOUBLE:
+ {
+ l6 = LT(1);
+ l6_AST = astFactory.create(l6);
+ astFactory.addASTChild(currentAST, l6_AST);
+ match(NUM_DOUBLE);
+ if ( inputState.guessing==0 ) {
+ e=new ConstantDouble(l6.getText());
+ }
+ constant_AST = (AST)currentAST.root;
+ break;
+ }
+ default:
+ {
+ throw new NoViableAltException(LT(1), getFilename());
+ }
+ }
+ returnAST = constant_AST;
+ return e;
+ }
+
+/** Match a, a.b.c refs
+ */
+ public final Expression identPrimary() throws RecognitionException, TokenStreamException {
+ Expression e = null;
+
+ returnAST = null;
+ ASTPair currentAST = new ASTPair();
+ AST identPrimary_AST = null;
+
+ AST tmp45_AST = null;
+ tmp45_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp45_AST);
+ match(IDENT);
+ {
+ _loop55:
+ do {
+ if ((LA(1)==DOT)) {
+ AST tmp46_AST = null;
+ tmp46_AST = astFactory.create(LT(1));
+ astFactory.makeASTRoot(currentAST, tmp46_AST);
+ match(DOT);
+ AST tmp47_AST = null;
+ tmp47_AST = astFactory.create(LT(1));
+ astFactory.addASTChild(currentAST, tmp47_AST);
+ match(IDENT);
+ }
+ else {
+ break _loop55;
+ }
+
+ } while (true);
+ }
+ identPrimary_AST = (AST)currentAST.root;
+ returnAST = identPrimary_AST;
+ return e;
+ }
+
+
+ public static final String[] _tokenNames = {
+ "<0>",
+ "EOF",
+ "<2>",
+ "NULL_TREE_LOOKAHEAD",
+ "BLOCK",
+ "MODIFIERS",
+ "OBJBLOCK",
+ "SLIST",
+ "CTOR_DEF",
+ "METHOD_DEF",
+ "VARIABLE_DEF",
+ "INSTANCE_INIT",
+ "STATIC_INIT",
+ "TYPE",
+ "CLASS_DEF",
+ "INTERFACE_DEF",
+ "PACKAGE_DEF",
+ "ARRAY_DECLARATOR",
+ "EXTENDS_CLAUSE",
+ "IMPLEMENTS_CLAUSE",
+ "PARAMETERS",
+ "PARAMETER_DEF",
+ "LABELED_STAT",
+ "TYPECAST",
+ "INDEX_OP",
+ "POST_INC",
+ "POST_DEC",
+ "METHOD_CALL",
+ "EXPR",
+ "ARRAY_INIT",
+ "IMPORT",
+ "UNARY_MINUS",
+ "UNARY_PLUS",
+ "CASE_GROUP",
+ "ELIST",
+ "FOR_INIT",
+ "FOR_CONDITION",
+ "FOR_ITERATOR",
+ "EMPTY_STAT",
+ "\"final\"",
+ "\"abstract\"",
+ "\"strictfp\"",
+ "SUPER_CTOR_CALL",
+ "CTOR_CALL",
+ "LBRACK",
+ "RBRACK",
+ "\"void\"",
+ "\"boolean\"",
+ "\"byte\"",
+ "\"char\"",
+ "\"short\"",
+ "\"int\"",
+ "\"float\"",
+ "\"long\"",
+ "\"double\"",
+ "\"String\"",
+ "IDENT",
+ "DOT",
+ "QUESTION",
+ "COLON",
+ "LOR",
+ "LAND",
+ "BOR",
+ "BXOR",
+ "BAND",
+ "NOT_EQUAL",
+ "EQUAL",
+ "LT",
+ "GT",
+ "LE",
+ "GE",
+ "SL",
+ "SR",
+ "BSR",
+ "PLUS",
+ "MINUS",
+ "STAR",
+ "DIV",
+ "MOD",
+ "BNOT",
+ "LNOT",
+ "LPAREN",
+ "RPAREN",
+ "\"true\"",
+ "\"false\"",
+ "\"null\"",
+ "NUM_INT",
+ "CHAR_LITERAL",
+ "STRING_LITERAL",
+ "NUM_FLOAT",
+ "NUM_LONG",
+ "NUM_DOUBLE",
+ "LCURLY",
+ "RCURLY",
+ "COMMA",
+ "ASSIGN",
+ "DIV_ASSIGN",
+ "PLUS_ASSIGN",
+ "INC",
+ "MINUS_ASSIGN",
+ "DEC",
+ "STAR_ASSIGN",
+ "MOD_ASSIGN",
+ "SR_ASSIGN",
+ "BSR_ASSIGN",
+ "SL_ASSIGN",
+ "BXOR_ASSIGN",
+ "BOR_ASSIGN",
+ "BAND_ASSIGN",
+ "SEMI",
+ "WS",
+ "SL_COMMIT",
+ "ML_COMMENT",
+ "ESC",
+ "HEX_DIGIT",
+ "VOCAB",
+ "EXPONENT",
+ "FLOAT_SUFFIX"
+ };
+
+ protected void buildTokenTypeASTClassMap() {
+ tokenTypeToASTClassMap=null;
+ };
+
+ private static final long[] mk_tokenSet_0() {
+ long[] data = { 72057594037927936L, 268042240L, 0L, 0L};
+ return data;
+ }
+ public static final BitSet _tokenSet_0 = new BitSet(mk_tokenSet_0());
+ private static final long[] mk_tokenSet_1() {
+ long[] data = { -72057594037927934L, 268435455L, 0L, 0L};
+ return data;
+ }
+ public static final BitSet _tokenSet_1 = new BitSet(mk_tokenSet_1());
+
+ }
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap
new file mode 100644
index 0000000..667caad
--- /dev/null
+++ b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaRecognizer.smap
@@ -0,0 +1,987 @@
+SMAP
+JavaRecognizer.java
+G
+*S G
+*F
++ 0 java-expression.g
+java-expression.g
+*L
+19:3
+46:56
+46:57
+46:58
+46:59
+46:61
+46:62
+46:63
+46:101
+46:102
+46:103
+47:64
+47:65
+47:67
+47:68
+47:69
+47:70
+47:71
+47:72
+47:73
+47:74
+47:75
+47:76
+47:77
+47:78
+47:80
+47:81
+47:82
+47:83
+47:84
+47:86
+47:87
+48:88
+48:89
+48:95
+48:97
+48:98
+49:91
+49:100
+50:92
+51:93
+57:242
+57:243
+57:245
+57:246
+57:247
+57:252
+57:253
+57:254
+58:249
+58:250
+58:251
+62:105
+62:106
+62:108
+62:109
+62:110
+62:112
+62:233
+62:234
+62:235
+62:236
+62:237
+62:238
+62:239
+62:240
+63:113
+63:114
+63:115
+63:116
+63:117
+63:118
+63:119
+63:120
+64:125
+64:126
+64:127
+64:128
+64:129
+64:130
+64:131
+64:132
+65:137
+65:138
+65:139
+65:140
+65:141
+65:142
+65:143
+65:144
+66:122
+66:149
+66:150
+66:151
+66:152
+66:153
+66:154
+66:155
+66:156
+67:134
+67:161
+67:162
+67:163
+67:164
+67:165
+67:166
+67:167
+67:168
+68:146
+68:173
+68:174
+68:175
+68:176
+68:177
+68:178
+68:179
+68:180
+69:158
+69:185
+69:186
+69:187
+69:188
+69:189
+69:190
+69:191
+69:192
+70:170
+70:197
+70:198
+70:199
+70:200
+70:201
+70:202
+70:203
+70:204
+71:182
+71:209
+71:210
+71:211
+71:212
+71:213
+71:214
+71:215
+71:216
+72:194
+72:221
+72:222
+72:223
+72:224
+72:225
+72:226
+72:227
+72:228
+73:206
+74:218
+75:230
+77:256
+77:257
+77:259
+77:260
+77:261
+77:297
+77:298
+77:299
+78:262
+78:263
+78:264
+78:265
+78:267
+78:268
+78:269
+78:270
+78:271
+78:272
+78:274
+78:275
+78:276
+78:277
+78:278
+78:279
+78:280
+78:281
+78:282
+78:283
+78:284
+78:285
+78:286
+78:287
+78:289
+78:290
+78:291
+78:292
+78:294
+78:295
+78:296
+81:301
+81:302
+81:304
+81:305
+81:306
+81:312
+81:313
+81:314
+82:308
+82:309
+82:310
+84:311
+86:316
+86:317
+86:319
+86:320
+86:321
+86:322
+86:357
+86:358
+86:359
+87:324
+87:325
+88:327
+88:328
+88:329
+88:330
+88:331
+88:332
+88:333
+88:334
+88:335
+88:336
+88:337
+88:338
+88:339
+88:340
+88:350
+88:351
+88:352
+88:353
+88:354
+89:356
+93:361
+93:362
+93:364
+93:365
+93:366
+93:367
+93:392
+93:393
+93:394
+94:369
+94:370
+94:371
+94:372
+94:373
+94:374
+94:375
+94:376
+94:377
+94:378
+94:379
+94:380
+94:381
+94:382
+94:384
+94:385
+94:386
+94:387
+94:389
+94:390
+94:391
+99:396
+99:397
+99:399
+99:400
+99:401
+99:402
+99:427
+99:428
+99:429
+100:404
+100:405
+100:406
+100:407
+100:408
+100:409
+100:410
+100:411
+100:412
+100:413
+100:414
+100:415
+100:416
+100:417
+100:419
+100:420
+100:421
+100:422
+100:424
+100:425
+100:426
+105:431
+105:432
+105:434
+105:435
+105:436
+105:437
+105:462
+105:463
+105:464
+106:439
+106:440
+106:441
+106:442
+106:443
+106:444
+106:445
+106:446
+106:447
+106:448
+106:449
+106:450
+106:451
+106:452
+106:454
+106:455
+106:456
+106:457
+106:459
+106:460
+106:461
+111:466
+111:467
+111:469
+111:470
+111:471
+111:472
+111:497
+111:498
+111:499
+112:474
+112:475
+112:476
+112:477
+112:478
+112:479
+112:480
+112:481
+112:482
+112:483
+112:484
+112:485
+112:486
+112:487
+112:489
+112:490
+112:491
+112:492
+112:494
+112:495
+112:496
+117:501
+117:502
+117:504
+117:505
+117:506
+117:507
+117:532
+117:533
+117:534
+118:509
+118:510
+118:511
+118:512
+118:513
+118:514
+118:515
+118:516
+118:517
+118:518
+118:519
+118:520
+118:521
+118:522
+118:524
+118:525
+118:526
+118:527
+118:529
+118:530
+118:531
+123:536
+123:537
+123:539
+123:540
+123:541
+123:542
+123:592
+123:593
+123:594
+124:544
+124:545
+124:546
+124:547
+124:548
+124:549
+124:551
+124:552
+124:553
+124:554
+124:555
+124:556
+124:557
+124:558
+124:559
+124:560
+124:561
+124:565
+124:566
+124:567
+124:568
+124:569
+124:570
+124:571
+124:572
+124:573
+124:574
+124:578
+124:579
+124:580
+124:581
+124:582
+124:584
+124:585
+124:586
+124:587
+124:589
+124:590
+124:591
+129:596
+129:597
+129:599
+129:600
+129:601
+129:602
+129:680
+129:681
+129:682
+130:604
+130:605
+131:607
+131:608
+131:609
+131:610
+131:612
+131:613
+131:614
+131:615
+131:616
+131:617
+131:618
+131:619
+131:620
+131:621
+131:622
+131:665
+131:666
+131:667
+131:668
+131:669
+131:671
+131:672
+131:673
+131:674
+131:676
+131:677
+132:626
+132:627
+132:628
+132:629
+132:630
+132:631
+132:632
+132:633
+132:634
+132:635
+132:679
+133:639
+133:640
+133:641
+133:642
+133:643
+133:644
+133:645
+133:646
+133:647
+133:648
+134:652
+134:653
+134:654
+134:655
+134:656
+134:657
+134:658
+134:659
+134:660
+134:661
+143:684
+143:685
+143:687
+143:688
+143:689
+143:690
+143:753
+143:754
+143:755
+144:692
+144:693
+144:694
+144:695
+144:696
+144:697
+144:699
+144:700
+144:701
+144:702
+144:703
+144:704
+144:705
+144:706
+144:707
+144:708
+144:709
+144:713
+144:714
+144:715
+144:716
+144:717
+144:718
+144:719
+144:720
+144:721
+144:722
+144:726
+144:727
+144:728
+144:729
+144:730
+144:731
+144:732
+144:733
+144:734
+144:735
+144:739
+144:740
+144:741
+144:742
+144:743
+144:745
+144:746
+144:747
+144:748
+144:750
+144:751
+144:752
+149:757
+149:758
+149:760
+149:761
+149:762
+149:763
+149:813
+149:814
+149:815
+150:765
+150:766
+150:767
+150:768
+150:769
+150:770
+150:772
+150:773
+150:774
+150:775
+150:776
+150:777
+150:778
+150:779
+150:780
+150:781
+150:782
+150:786
+150:787
+150:788
+150:789
+150:790
+150:791
+150:792
+150:793
+150:794
+150:795
+150:799
+150:800
+150:801
+150:802
+150:803
+150:805
+150:806
+150:807
+150:808
+150:810
+150:811
+150:812
+155:817
+155:818
+155:820
+155:821
+155:822
+155:823
+155:886
+155:887
+155:888
+156:825
+156:826
+156:827
+156:828
+156:829
+156:830
+156:832
+156:833
+156:834
+156:835
+156:836
+156:837
+156:838
+156:839
+156:840
+156:841
+156:842
+156:846
+156:847
+156:848
+156:849
+156:850
+156:851
+156:852
+156:853
+156:854
+156:855
+156:859
+156:860
+156:861
+156:862
+156:863
+156:864
+156:865
+156:866
+156:867
+156:868
+156:872
+156:873
+156:874
+156:875
+156:876
+156:878
+156:879
+156:880
+156:881
+156:883
+156:884
+156:885
+160:890
+160:891
+160:893
+160:894
+160:895
+160:896
+160:898
+160:949
+160:950
+160:951
+160:952
+160:953
+160:954
+160:955
+160:956
+161:899
+161:900
+161:901
+161:902
+161:903
+161:904
+161:905
+161:906
+161:908
+161:909
+161:910
+161:911
+162:916
+162:917
+162:918
+162:919
+162:920
+162:921
+162:922
+162:923
+162:925
+162:926
+162:927
+163:930
+163:931
+163:932
+163:933
+163:934
+163:935
+163:936
+163:937
+163:938
+163:939
+163:940
+163:941
+163:942
+163:943
+163:944
+163:945
+163:946
+164:913
+166:958
+166:959
+166:961
+166:962
+166:963
+166:966
+166:968
+166:997
+166:1033
+166:1038
+166:1039
+166:1040
+166:1041
+166:1042
+166:1043
+166:1044
+166:1045
+167:969
+167:970
+167:971
+167:972
+167:973
+167:974
+167:975
+167:976
+167:977
+167:978
+168:983
+168:984
+168:985
+168:986
+168:987
+168:988
+168:989
+168:990
+168:991
+168:992
+170:980
+171:994
+171:998
+171:999
+171:1000
+171:1001
+171:1002
+171:1003
+171:1005
+171:1006
+171:1007
+171:1009
+171:1010
+171:1011
+171:1012
+171:1013
+171:1014
+171:1015
+171:1016
+172:964
+172:965
+172:1017
+172:1018
+172:1019
+172:1020
+172:1021
+172:1022
+172:1024
+172:1025
+172:1026
+173:1027
+173:1028
+173:1029
+173:1030
+175:1034
+175:1035
+175:1036
+175:1037
+176:1032
+179:1047
+179:1048
+179:1050
+179:1051
+179:1052
+179:1054
+179:1122
+179:1123
+179:1124
+179:1125
+179:1126
+179:1127
+179:1128
+179:1129
+180:1055
+180:1056
+180:1057
+180:1058
+180:1059
+180:1060
+180:1061
+180:1062
+180:1063
+180:1064
+181:1067
+181:1068
+181:1069
+181:1070
+181:1071
+181:1072
+182:1077
+182:1078
+182:1079
+182:1080
+182:1081
+182:1082
+182:1083
+182:1084
+183:1089
+183:1090
+183:1091
+183:1092
+183:1093
+183:1094
+183:1095
+183:1096
+184:1074
+184:1101
+184:1102
+184:1103
+184:1104
+184:1105
+184:1106
+184:1107
+184:1108
+185:1086
+185:1113
+185:1114
+185:1115
+185:1116
+185:1117
+185:1118
+186:1098
+187:1110
+187:1119
+190:1232
+190:1234
+190:1235
+190:1237
+190:1238
+190:1239
+190:1265
+190:1266
+190:1267
+191:1233
+191:1241
+191:1242
+191:1243
+191:1244
+192:1245
+192:1246
+192:1247
+192:1257
+192:1258
+192:1259
+192:1260
+192:1262
+192:1263
+192:1264
+198:1248
+198:1249
+198:1250
+198:1251
+198:1252
+198:1253
+198:1254
+198:1255
+198:1256
+202:1131
+202:1132
+202:1134
+202:1135
+202:1136
+202:1150
+202:1223
+202:1224
+202:1225
+202:1226
+202:1227
+202:1228
+202:1229
+202:1230
+203:1137
+203:1138
+203:1151
+203:1152
+203:1153
+203:1154
+203:1155
+203:1156
+203:1157
+203:1158
+204:1139
+204:1140
+204:1163
+204:1164
+204:1165
+204:1166
+204:1167
+204:1168
+204:1169
+204:1170
+205:1141
+205:1142
+205:1175
+205:1176
+205:1177
+205:1178
+205:1179
+205:1180
+205:1181
+205:1182
+206:1143
+206:1144
+206:1160
+206:1187
+206:1188
+206:1189
+206:1190
+206:1191
+206:1192
+206:1193
+206:1194
+207:1145
+207:1146
+207:1172
+207:1199
+207:1200
+207:1201
+207:1202
+207:1203
+207:1204
+207:1205
+207:1206
+208:1147
+208:1148
+208:1184
+208:1211
+208:1212
+208:1213
+208:1214
+208:1215
+208:1216
+208:1217
+208:1218
+209:1196
+210:1208
+211:1220
+*E
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java
new file mode 100644
index 0000000..2962388
--- /dev/null
+++ b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.java
@@ -0,0 +1,122 @@
+// $ANTLR 2.7.7 (20080530): "java-expression.g" -> "JavaLexer.java"$
+
+ package gnu.classpath.tools.gjdoc.expr;
+
+public interface JavaTokenTypes {
+ int EOF = 1;
+ int NULL_TREE_LOOKAHEAD = 3;
+ int BLOCK = 4;
+ int MODIFIERS = 5;
+ int OBJBLOCK = 6;
+ int SLIST = 7;
+ int CTOR_DEF = 8;
+ int METHOD_DEF = 9;
+ int VARIABLE_DEF = 10;
+ int INSTANCE_INIT = 11;
+ int STATIC_INIT = 12;
+ int TYPE = 13;
+ int CLASS_DEF = 14;
+ int INTERFACE_DEF = 15;
+ int PACKAGE_DEF = 16;
+ int ARRAY_DECLARATOR = 17;
+ int EXTENDS_CLAUSE = 18;
+ int IMPLEMENTS_CLAUSE = 19;
+ int PARAMETERS = 20;
+ int PARAMETER_DEF = 21;
+ int LABELED_STAT = 22;
+ int TYPECAST = 23;
+ int INDEX_OP = 24;
+ int POST_INC = 25;
+ int POST_DEC = 26;
+ int METHOD_CALL = 27;
+ int EXPR = 28;
+ int ARRAY_INIT = 29;
+ int IMPORT = 30;
+ int UNARY_MINUS = 31;
+ int UNARY_PLUS = 32;
+ int CASE_GROUP = 33;
+ int ELIST = 34;
+ int FOR_INIT = 35;
+ int FOR_CONDITION = 36;
+ int FOR_ITERATOR = 37;
+ int EMPTY_STAT = 38;
+ int FINAL = 39;
+ int ABSTRACT = 40;
+ int STRICTFP = 41;
+ int SUPER_CTOR_CALL = 42;
+ int CTOR_CALL = 43;
+ int LBRACK = 44;
+ int RBRACK = 45;
+ int LITERAL_void = 46;
+ int LITERAL_boolean = 47;
+ int LITERAL_byte = 48;
+ int LITERAL_char = 49;
+ int LITERAL_short = 50;
+ int LITERAL_int = 51;
+ int LITERAL_float = 52;
+ int LITERAL_long = 53;
+ int LITERAL_double = 54;
+ int LITERAL_String = 55;
+ int IDENT = 56;
+ int DOT = 57;
+ int QUESTION = 58;
+ int COLON = 59;
+ int LOR = 60;
+ int LAND = 61;
+ int BOR = 62;
+ int BXOR = 63;
+ int BAND = 64;
+ int NOT_EQUAL = 65;
+ int EQUAL = 66;
+ int LT = 67;
+ int GT = 68;
+ int LE = 69;
+ int GE = 70;
+ int SL = 71;
+ int SR = 72;
+ int BSR = 73;
+ int PLUS = 74;
+ int MINUS = 75;
+ int STAR = 76;
+ int DIV = 77;
+ int MOD = 78;
+ int BNOT = 79;
+ int LNOT = 80;
+ int LPAREN = 81;
+ int RPAREN = 82;
+ int LITERAL_true = 83;
+ int LITERAL_false = 84;
+ int LITERAL_null = 85;
+ int NUM_INT = 86;
+ int CHAR_LITERAL = 87;
+ int STRING_LITERAL = 88;
+ int NUM_FLOAT = 89;
+ int NUM_LONG = 90;
+ int NUM_DOUBLE = 91;
+ int LCURLY = 92;
+ int RCURLY = 93;
+ int COMMA = 94;
+ int ASSIGN = 95;
+ int DIV_ASSIGN = 96;
+ int PLUS_ASSIGN = 97;
+ int INC = 98;
+ int MINUS_ASSIGN = 99;
+ int DEC = 100;
+ int STAR_ASSIGN = 101;
+ int MOD_ASSIGN = 102;
+ int SR_ASSIGN = 103;
+ int BSR_ASSIGN = 104;
+ int SL_ASSIGN = 105;
+ int BXOR_ASSIGN = 106;
+ int BOR_ASSIGN = 107;
+ int BAND_ASSIGN = 108;
+ int SEMI = 109;
+ int WS = 110;
+ int SL_COMMIT = 111;
+ int ML_COMMENT = 112;
+ int ESC = 113;
+ int HEX_DIGIT = 114;
+ int VOCAB = 115;
+ int EXPONENT = 116;
+ int FLOAT_SUFFIX = 117;
+}
diff --git a/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt
new file mode 100644
index 0000000..b9983e2
--- /dev/null
+++ b/libjava/classpath/tools/generated/gnu/classpath/tools/gjdoc/expr/JavaTokenTypes.txt
@@ -0,0 +1,116 @@
+// $ANTLR 2.7.7 (20080530): java-expression.g -> JavaTokenTypes.txt$
+Java // output token vocab name
+BLOCK=4
+MODIFIERS=5
+OBJBLOCK=6
+SLIST=7
+CTOR_DEF=8
+METHOD_DEF=9
+VARIABLE_DEF=10
+INSTANCE_INIT=11
+STATIC_INIT=12
+TYPE=13
+CLASS_DEF=14
+INTERFACE_DEF=15
+PACKAGE_DEF=16
+ARRAY_DECLARATOR=17
+EXTENDS_CLAUSE=18
+IMPLEMENTS_CLAUSE=19
+PARAMETERS=20
+PARAMETER_DEF=21
+LABELED_STAT=22
+TYPECAST=23
+INDEX_OP=24
+POST_INC=25
+POST_DEC=26
+METHOD_CALL=27
+EXPR=28
+ARRAY_INIT=29
+IMPORT=30
+UNARY_MINUS=31
+UNARY_PLUS=32
+CASE_GROUP=33
+ELIST=34
+FOR_INIT=35
+FOR_CONDITION=36
+FOR_ITERATOR=37
+EMPTY_STAT=38
+FINAL="final"=39
+ABSTRACT="abstract"=40
+STRICTFP="strictfp"=41
+SUPER_CTOR_CALL=42
+CTOR_CALL=43
+LBRACK=44
+RBRACK=45
+LITERAL_void="void"=46
+LITERAL_boolean="boolean"=47
+LITERAL_byte="byte"=48
+LITERAL_char="char"=49
+LITERAL_short="short"=50
+LITERAL_int="int"=51
+LITERAL_float="float"=52
+LITERAL_long="long"=53
+LITERAL_double="double"=54
+LITERAL_String="String"=55
+IDENT=56
+DOT=57
+QUESTION=58
+COLON=59
+LOR=60
+LAND=61
+BOR=62
+BXOR=63
+BAND=64
+NOT_EQUAL=65
+EQUAL=66
+LT=67
+GT=68
+LE=69
+GE=70
+SL=71
+SR=72
+BSR=73
+PLUS=74
+MINUS=75
+STAR=76
+DIV=77
+MOD=78
+BNOT=79
+LNOT=80
+LPAREN=81
+RPAREN=82
+LITERAL_true="true"=83
+LITERAL_false="false"=84
+LITERAL_null="null"=85
+NUM_INT=86
+CHAR_LITERAL=87
+STRING_LITERAL=88
+NUM_FLOAT=89
+NUM_LONG=90
+NUM_DOUBLE=91
+LCURLY=92
+RCURLY=93
+COMMA=94
+ASSIGN=95
+DIV_ASSIGN=96
+PLUS_ASSIGN=97
+INC=98
+MINUS_ASSIGN=99
+DEC=100
+STAR_ASSIGN=101
+MOD_ASSIGN=102
+SR_ASSIGN=103
+BSR_ASSIGN=104
+SL_ASSIGN=105
+BXOR_ASSIGN=106
+BOR_ASSIGN=107
+BAND_ASSIGN=108
+SEMI=109
+WS=110
+SL_COMMIT=111
+ML_COMMENT=112
+ESC=113
+HEX_DIGIT=114
+VOCAB=115
+EXPONENT=116
+FLOAT_SUFFIX=117
diff --git a/libjava/classpath/tools/gjar.in b/libjava/classpath/tools/gjar.in
index da75811..e3dcea2 100644
--- a/libjava/classpath/tools/gjar.in
+++ b/libjava/classpath/tools/gjar.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.jar.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.jar.Main "$@"
diff --git a/libjava/classpath/tools/gjarsigner.in b/libjava/classpath/tools/gjarsigner.in
index e3abc6c..d515418 100644
--- a/libjava/classpath/tools/gjarsigner.in
+++ b/libjava/classpath/tools/gjarsigner.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.jarsigner.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.jarsigner.Main "$@"
diff --git a/libjava/classpath/tools/gjavah.in b/libjava/classpath/tools/gjavah.in
index 797721b..d6f3ab1 100644
--- a/libjava/classpath/tools/gjavah.in
+++ b/libjava/classpath/tools/gjavah.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.javah.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.javah.Main "$@"
diff --git a/libjava/classpath/tools/gjdoc.in b/libjava/classpath/tools/gjdoc.in
new file mode 100644
index 0000000..1fb6ca6
--- /dev/null
+++ b/libjava/classpath/tools/gjdoc.in
@@ -0,0 +1,49 @@
+#!/bin/sh
+
+## Copyright (C) 2006 Free Software Foundation, Inc.
+##
+## This file is a part of GNU Classpath.
+##
+## GNU Classpath is free software; you can redistribute it and/or modify
+## it under the terms of the GNU General Public License as published by
+## the Free Software Foundation; either version 2 of the License, or (at
+## your option) any later version.
+##
+## GNU Classpath is distributed in the hope that it will be useful, but
+## WITHOUT ANY WARRANTY; without even the implied warranty of
+## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+## General Public License for more details.
+##
+## You should have received a copy of the GNU General Public License
+## along with GNU Classpath; if not, write to the Free Software
+## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301
+## USA.
+##
+## Linking this library statically or dynamically with other modules is
+## making a combined work based on this library. Thus, the terms and
+## conditions of the GNU General Public License cover the whole
+## combination.
+##
+## As a special exception, the copyright holders of this library give you
+## permission to link this library with independent modules to produce an
+## executable, regardless of the license terms of these independent
+## modules, and to copy and distribute the resulting executable under
+## terms of your choice, provided that you also meet, for each linked
+## independent module, the terms and conditions of the license of that
+## module. An independent module is a module which is not derived from
+## or based on this library. If you modify this library, you may extend
+## this exception to your version of the library, but you are not
+## obligated to do so. If you do not wish to do so, delete this
+## exception statement from your version.
+##
+##
+## A simple shell script to launch the GNU Classpath javadoc tool.
+##
+
+prefix=@prefix@
+datarootdir=@datarootdir@
+tools_dir=@datadir@/@PACKAGE@
+tools_cp=${tools_dir}/tools.zip
+antlr_jar=@ANTLR_JAR@
+
+exec @JAVA@ -classpath "${tools_cp}:${antlr_jar}" gnu.classpath.tools.gjdoc.Main "$@"
diff --git a/libjava/classpath/tools/gkeytool.in b/libjava/classpath/tools/gkeytool.in
index 59516ef..3c886f8 100644
--- a/libjava/classpath/tools/gkeytool.in
+++ b/libjava/classpath/tools/gkeytool.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.keytool.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.keytool.Main "$@"
diff --git a/libjava/classpath/tools/gnative2ascii.in b/libjava/classpath/tools/gnative2ascii.in
index 17d7cd7..52d8f69 100644
--- a/libjava/classpath/tools/gnative2ascii.in
+++ b/libjava/classpath/tools/gnative2ascii.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.native2ascii.Native2ASCII "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.native2ascii.Native2ASCII "$@"
diff --git a/libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java b/libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java
new file mode 100644
index 0000000..0ec243d
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/FileSystemClassLoader.java
@@ -0,0 +1,296 @@
+/* gnu.classpath.tools.FileSystemClassLoader
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.StreamTokenizer;
+import java.io.StringReader;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ArrayList;
+import java.util.StringTokenizer;
+
+import java.util.jar.JarEntry;
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+import java.util.jar.Attributes;
+
+/**
+ * A <code>ClassLoader</code> implementation which looks for classes
+ * on the local filesystem given a standard search path.
+ */
+public class FileSystemClassLoader extends ClassLoader {
+
+ private File[] pathComponents;
+
+ /**
+ * Initialize the class loader with a normal path string. The path
+ * string should contain path components separated by {@link
+ * File.pathSeparator}. Each path component should either denote a
+ * directory or a .jar or .zip file.
+ */
+ public FileSystemClassLoader(String path)
+ {
+ List components = new ArrayList();
+ for (StringTokenizer st = new StringTokenizer(path, File.pathSeparator); st.hasMoreTokens(); ) {
+ File pathComponent = new File(st.nextToken());
+ components.add(pathComponent);
+ if (pathComponent.exists() && !pathComponent.isDirectory()) {
+ List subComponents = tryGetJarFileClassPathComponents(pathComponent);
+ if (null != subComponents) {
+ components.addAll(subComponents);
+ }
+ }
+ }
+ File[] componentArray = new File[components.size()];
+ this.pathComponents = (File[])components.toArray(componentArray);
+ }
+
+ /**
+ * Initialize the class loader with an array of path
+ * components. Each path component should either denote a
+ * directory or a .jar or .zip file.
+ */
+ public FileSystemClassLoader(File[] pathComponents)
+ {
+ this.pathComponents = pathComponents;
+ for (int i = 0; i < pathComponents.length; ++i) {
+ if (!pathComponents[i].exists()) {
+ System.err.println("WARNING: Path component '" + pathComponents[i] + "' not found.");
+ }
+ }
+ }
+
+ public Class loadClass(String name)
+ throws ClassNotFoundException {
+
+ return super.loadClass(name);
+ }
+
+ public Class findClass(String name)
+ throws ClassNotFoundException {
+
+ byte[] b = loadClassData(name);
+ return defineClass(name, b, 0, b.length);
+ }
+
+ public URL findResource(String name)
+ {
+ StreamInfo streamInfo = getResourceStream(name);
+ if (null == streamInfo) {
+ return super.findResource(name);
+ }
+ else {
+ try {
+ return streamInfo.getURL();
+ }
+ catch (MalformedURLException e) {
+ System.err.println("WARNING: In FileSystemClassLoader: could not derive URL from file or jar entry: " + e.toString());
+ return null;
+ }
+ }
+ }
+
+ private byte[] readFromStream(InputStream in, long size)
+ throws IOException
+ {
+ byte[] result = new byte[(int)size];
+ int nread = 0;
+ int offset = 0;
+ while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {
+ offset += nread;
+ }
+ in.close();
+ return result;
+ }
+
+ private byte[] readFromStream(StreamInfo streamInfo)
+ throws IOException
+ {
+ InputStream in = streamInfo.openStream();
+ long size = streamInfo.getSize();
+
+ byte[] result = new byte[(int)size];
+ int nread = 0;
+ int offset = 0;
+ while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {
+ offset += nread;
+ }
+ in.close();
+ return result;
+ }
+
+ private static interface StreamInfo
+ {
+ public InputStream openStream()
+ throws IOException;
+ public long getSize();
+ public URL getURL()
+ throws MalformedURLException;
+ }
+
+ private static class FileStreamInfo
+ implements StreamInfo
+ {
+ File file;
+
+ FileStreamInfo(File file)
+ {
+ this.file = file;
+ }
+
+ public InputStream openStream()
+ throws IOException
+ {
+ return new FileInputStream(file);
+ }
+
+ public long getSize()
+ {
+ return file.length();
+ }
+
+ public URL getURL()
+ throws MalformedURLException
+ {
+ return file.toURL();
+ }
+ }
+
+ private static class JarStreamInfo
+ implements StreamInfo
+ {
+ private File file;
+ private JarFile jarFile;
+ private JarEntry jarEntry;
+
+ JarStreamInfo(File file, JarFile jarFile, JarEntry jarEntry)
+ {
+ this.file = file;
+ this.jarFile = jarFile;
+ this.jarEntry = jarEntry;
+ }
+
+ public InputStream openStream()
+ throws IOException
+ {
+ return jarFile.getInputStream(jarEntry);
+ }
+
+ public long getSize()
+ {
+ return jarEntry.getSize();
+ }
+
+ public URL getURL()
+ throws MalformedURLException
+ {
+ String urlString = "jar:" + file.toURL() + "!/" + jarEntry.getName();
+ return new URL(urlString);
+ }
+ }
+
+ private StreamInfo getResourceStream(String path)
+ {
+ for (int i = 0; i < pathComponents.length; ++i) {
+ try {
+ File parent = pathComponents[i];
+ if (parent.isDirectory()) {
+ File file = new File(parent, path);
+ if (file.exists()) {
+ return new FileStreamInfo(file);
+ }
+ }
+ else {
+ JarFile jarFile = new JarFile(parent, false, JarFile.OPEN_READ);
+ JarEntry jarEntry = jarFile.getJarEntry(path);
+ if (null != jarEntry) {
+ return new JarStreamInfo(parent, jarFile, jarEntry);
+ }
+ }
+ }
+ catch (IOException ignore) {
+ }
+ }
+ return null;
+ }
+
+ private byte[] loadClassData(String className)
+ throws ClassNotFoundException
+ {
+ String classFileName = className.replace('.', File.separatorChar) + ".class";
+ StreamInfo streamInfo = getResourceStream(classFileName);
+
+ try {
+ if (null != streamInfo) {
+ return readFromStream(streamInfo);
+ }
+ }
+ catch (IOException ignore) {
+ }
+
+ throw new ClassNotFoundException(className);
+ }
+
+ private static List tryGetJarFileClassPathComponents(File file)
+ {
+ try {
+ JarFile jarFile = new JarFile(file, false, JarFile.OPEN_READ);
+ Manifest manifest = jarFile.getManifest();
+ if (null != manifest) {
+ Attributes mainAttributes = manifest.getMainAttributes();
+ if (null != mainAttributes) {
+ String classPath = mainAttributes.getValue(Attributes.Name.CLASS_PATH);
+ if (null != classPath) {
+ List result = new LinkedList();
+ StreamTokenizer tokenizer = new StreamTokenizer(new StringReader(classPath));
+ tokenizer.resetSyntax();
+ tokenizer.wordChars(0, Integer.MAX_VALUE);
+ tokenizer.whitespaceChars(9, 9); // tab
+ tokenizer.whitespaceChars(10, 10); // lf
+ tokenizer.whitespaceChars(13, 13); // cr
+ tokenizer.whitespaceChars(32, 32); // space
+ tokenizer.quoteChar('"');
+ int token;
+ while ((token = tokenizer.nextToken()) != StreamTokenizer.TT_EOF) {
+ if (StreamTokenizer.TT_WORD == token) {
+ result.add(new File(file.getParentFile(), tokenizer.sval));
+ }
+ }
+ return result;
+ }
+ }
+ }
+ }
+ catch (IOException ignore) {
+ }
+ return null;
+ }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java b/libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java
new file mode 100644
index 0000000..4e222d2
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/IOToolkit.java
@@ -0,0 +1,199 @@
+/* gnu.classpath.tools.IOToolkit
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.Reader;
+import java.io.StringWriter;
+import java.io.Writer;
+
+import java.util.Set;
+
+/**
+ * Provides various I/O-related helper methods.
+ *
+ * @author Julian Scheid
+ */
+public class IOToolkit
+{
+ /**
+ * Prevents instantiation.
+ */
+ private IOToolkit() {}
+
+ /**
+ * Read all binary data from the given InputStream and write it to
+ * the given OutputStream. This method doesn't close either
+ * stream.
+ *
+ * @param in the stream from which to read data
+ * @param out the stream to which to write data
+ */
+ public static void copyStream(InputStream in, OutputStream out)
+ throws IOException
+ {
+ byte[] buf = new byte[256];
+ int nread;
+
+ while ((nread = in.read(buf)) >= 0) {
+ out.write(buf, 0, nread);
+ }
+ }
+
+ /**
+ * Read all character data from the given Reader and write it to
+ * the given Writer. This method doesn't close either stream.
+ *
+ * @param in the Reader from which to read character data
+ * @param out the Writer to which to write character data
+ */
+ public static void copyStream(Reader in, Writer out)
+ throws IOException
+ {
+ char[] buf = new char[256];
+ int nread;
+
+ while ((nread = in.read(buf)) >= 0) {
+ out.write(buf, 0, nread);
+ }
+ }
+
+ /**
+ * Recursively copy the contents of the input directory to the
+ * output directory. The output directory is created if it doesn't
+ * exist. If the output directory doesn't exist and can't be
+ * created, an IOException is thrown.
+ *
+ * @param sourceDir source directory from which to copy files
+ * @param targetDir target directory to which to copy files
+ * @param recursive if true, recursively copy subdirectoryies
+ * @param excludeDirs if non null, must be a Set of String. Each
+ * element from the set specifies the name of a direct
+ * subdirectory of the source directory which should be excluded
+ * from recursive copying.
+ */
+ public static void copyDirectory(File sourceDir, File targetDir,
+ boolean recursive,
+ Set excludeDirs)
+ throws IOException
+ {
+ if (!targetDir.exists() && !targetDir.mkdirs()) {
+ throw new IOException("Cannot create directory " + targetDir);
+ }
+
+ File[] sourceFiles = sourceDir.listFiles();
+ for (int i=0; i<sourceFiles.length; ++i) {
+ if (sourceFiles[i].isDirectory()) {
+ if (recursive && (null == excludeDirs
+ || !excludeDirs.contains(sourceFiles[i].getName()))) {
+ File targetSubDir = new File(targetDir,
+ sourceFiles[i].getName());
+ if (targetSubDir.exists() || targetSubDir.mkdir()) {
+ copyDirectory(sourceFiles[i], targetSubDir, recursive, null);
+ }
+ else {
+ throw new IOException("Cannot create directory " + targetSubDir);
+ }
+ }
+ }
+ else {
+ copyFile(sourceFiles[i], new File(targetDir, sourceFiles[i].getName()));
+ }
+ }
+ }
+
+ /**
+ * Copy the contents of the input file to the output file. The
+ * output file's parent directory must exist.
+ *
+ * @param sourceFile specifies the file to copy
+ * @param targetFile specifies the file to create
+ */
+ public static void copyFile(File sourceFile, File targetFile)
+ throws IOException
+ {
+ InputStream in = new FileInputStream(sourceFile);
+ OutputStream out = new FileOutputStream(targetFile);
+ int nread;
+ byte[] buf = new byte[512];
+ while ((nread = in.read(buf)) >= 0) {
+ out.write(buf, 0, nread);
+ }
+ in.close();
+ out.close();
+ }
+
+ /**
+ * Read the (remaining) contents of the given reader into a char
+ * array. This method doesn't close the reader when it is done.
+ *
+ * @param reader the Reader to read characters from
+ * @return an array with the contents of the Reader
+ */
+ public static char[] readFully(Reader reader)
+ throws IOException
+ {
+ StringWriter writer = new StringWriter();
+ final int readBufferSize = 256;
+ char[] chunk = new char[readBufferSize];
+ int nread;
+ while ((nread=reader.read(chunk))>=0) {
+ writer.write(chunk,0,nread);
+ }
+ StringBuffer buffer = writer.getBuffer();
+ char[] result = new char[buffer.length()];
+ buffer.getChars(0, buffer.length(), result, 0);
+ return result;
+ }
+
+ public static String getLineFromFile(File file, int line)
+ throws IOException
+ {
+ FileReader reader = new FileReader(file);
+ BufferedReader bufferedReader = new BufferedReader(reader);
+ while (line > 1) {
+ bufferedReader.readLine();
+ -- line;
+ }
+ String result = bufferedReader.readLine();
+ reader.close();
+ return result;
+ }
+
+ public static String getColumnDisplayLine(int column)
+ {
+ StringBuffer result = new StringBuffer();
+ while (column > 0) {
+ result.append(' ');
+ --column;
+ }
+ result.append('^');
+ return result.toString();
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java b/libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java
new file mode 100644
index 0000000..b2ac3ce
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/MalformedInputEvent.java
@@ -0,0 +1,93 @@
+/* gnu.classpath.tools.MalformedInputEvent
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+import java.util.EventObject;
+
+/**
+ * Encapsulates information about malformed input encountered by a
+ * {@link NotifyingInputStreamReader}.
+ *
+ * You can use {@link getSource()} to fetch a reference to the
+ * <code>NotifyingInputStreamReader</code> which encountered the
+ * malformed input.
+ *
+ * @author Julian Scheid
+ */
+public class MalformedInputEvent
+ extends EventObject
+{
+ private int lineNumber;
+ private int columnNumber;
+ private int length;
+
+ MalformedInputEvent(NotifyingInputStreamReader source,
+ int lineNumber,
+ int columnNumber,
+ int length)
+ {
+ super(source);
+ this.columnNumber = columnNumber;
+ this.lineNumber = lineNumber;
+ this.length = length;
+ }
+
+ /**
+ * Return the 1-based line number where the malformed input begins
+ * in the stream read by the
+ * <code>NotifyingInputStreamReader</code>.
+ */
+ public int getLineNumber()
+ {
+ return lineNumber;
+ }
+
+ /**
+ * Return the 0-based column number where the malformed input
+ * begins in the stream read by the
+ * <code>NotifyingInputStreamReader</code>.
+ */
+ public int getColumnNumber()
+ {
+ return columnNumber;
+ }
+
+ /**
+ * Return the length (in bytes) of the malformed input encountered
+ * by the <code>NotifyingInputStreamReader</code>. Note that a
+ * consecutive run of malformed input isn't necessarily reported
+ * as a whole; depending on the <code>Charset</code> and
+ * implementation details of <code>CharsetDecoder</code>, the run
+ * could be reported in chunks down to individual bytes.
+ */
+ public int getLength()
+ {
+ return length;
+ }
+
+ public String toString()
+ {
+ return "MalformedInputEvent{line=" + lineNumber
+ + ",column=" + columnNumber
+ + ",length=" + length
+ + "}";
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java b/libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java
new file mode 100644
index 0000000..66ab128
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/MalformedInputListener.java
@@ -0,0 +1,39 @@
+/* gnu.classpath.tools.MalformedInputListener
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+/**
+ * Classes implementing this interface can be notified when a {@link
+ * NotifyingInputStreamReader} encounters malformed input.
+ *
+ * @author Julian Scheid
+ */
+public interface MalformedInputListener
+{
+ /**
+ * Invoked when a <code>NotifyingInputStreamReader</code> this
+ * listener is registered with encounters malformed input.
+ *
+ * @param MalformedInputEvent contains detailed information about
+ * the event.
+ */
+ public void malformedInputEncountered(MalformedInputEvent event);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java b/libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java
new file mode 100644
index 0000000..8c35c25
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/NotifyingInputStreamReader.java
@@ -0,0 +1,406 @@
+/* gnu.classpath.tools.NotifyingInputStreamReader
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.Reader;
+
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CoderResult;
+import java.nio.charset.IllegalCharsetNameException;
+import java.nio.charset.UnsupportedCharsetException;
+
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.Set;
+
+/**
+ * Similar to {@link java.io.InputStreamReader}, but can give
+ * notification when malformed input is encountered.
+ *
+ * <p> Users of this class can register interest in the event of
+ * malformed input by calling {@link
+ * #addMalformedInputListener}. Each time a run of malformed input
+ * data is encountered, all listener objects are notified. For
+ * instance, this allows the calling code to inform the user about
+ * problems in the input stream. </p>
+ *
+ * <p> <strong>Background:</strong> The default
+ * <code>InputStreamReader</code> implementation will ignore
+ * malformed input, silently replacing it with the default
+ * replacement string (usually the question mark). Alternatively, you
+ * can configure a <code>CharsetDecoder</code> for the default
+ * <char>InputStreamReader</code> implementation, instructing it to
+ * ignore malformed input without replacing it; to replace it with a
+ * different string; or to throw an exception when malformed input is
+ * encountered. However, you cannot configure an
+ * <code>InputStreamReader</code> to gracefully handle malformed data
+ * but notify the client code about such
+ * problems. <code>NotifyingInputStreamReader</code> fills this
+ * gap. </p>
+ *
+ * @author Julian Scheid
+ */
+public class NotifyingInputStreamReader
+ extends Reader
+{
+ /**
+ * The default size (in bytes) for byteBuf, i.e. the size of data
+ * chunks read from the underlying input stream.
+ */
+ private static final int DEFAULT_INPUT_BUFFER_SIZE = 64;
+
+ /**
+ * The default size (in chars) for charBuf. This should be large
+ * enough to hold a decoded chunk of input data for the Charset
+ * with the minimum number of bytes per character. Since the
+ * minimum number of bytes per character for usual Charsets is
+ * one, this number should be identical to
+ * DEFAULT_INPUT_BUFFER_SIZE.
+ */
+ private static final int DEFAULT_OUTPUT_BUFFER_SIZE = 64;
+
+ /**
+ * The underlying InputStream.
+ */
+ private InputStream in;
+
+ /**
+ * The CharsetDecoder used to decode the underlying stream.
+ */
+ private CharsetDecoder decoder;
+
+ /**
+ * Holds bytes already read from the underlying stream, but not
+ * yet decoded.
+ */
+ private ByteBuffer byteBuffer;
+
+ /**
+ * Holds characters already decoded, but not yet fetched via
+ * read().
+ */
+ private CharBuffer charBuffer;
+
+ /**
+ * This is the primitive byte array wrapped in byteBuffer for
+ * passing to to InputStream.read().
+ */
+ private byte[] readBuffer;
+
+ /**
+ * Keeps track of the current line number (1-based).
+ */
+ private int lineNumber = 1;
+
+ /**
+ * Keeps track of the current column number (0-based).
+ */
+ private int columnNumber = 0;
+
+ /**
+ * Becomes true as soon as EOF has been reached in the underlying
+ * InputStream. At this point, byteBuffer contains the last chunk
+ * of data from the underlying InputStream.
+ */
+ private boolean allInputConsumed = false;
+
+ /**
+ * Becomes true as soon as the decoder has been supplied with the
+ * last chunk of data from the InputStream after EOF has been
+ * reached. At this point, the last chunk of data has been drained
+ * from the byteBuffer.
+ */
+ private boolean decodingFinished = false;
+
+ /**
+ * Becomes true as soon as the decoder has been flushed. At this
+ * point, the last chunk of character data has been written to the
+ * charBuffer.
+ */
+ private boolean flushed = false;
+
+ /**
+ * Stores all registered MalformedInputListeners.
+ */
+ private Set listeners = new LinkedHashSet();
+
+ /**
+ * Initializes a new instance for reading from the given
+ * InputStream using the default encoding. The default encoding is
+ * currently determined by looking at the system property
+ * <code>file.encoding</code>. If this property isn't set,
+ * <code>ISO-8859-1</code> is used as a fallback.
+ *
+ * <p>This method should use {@link Charset.defaultCharset()}
+ * instead, but this isn't implemented in Classpath at the
+ * moment.</p>
+ *
+ * @param in the <code>InputStream</code> to read from.
+ */
+ public NotifyingInputStreamReader(InputStream in)
+ {
+ this(in, System.getProperty("file.encoding", "ISO-8859-1"));
+ }
+
+ /**
+ * Initializes a new instance for reading from the given
+ * InputStream using the specified charset.
+ *
+ * @param in the <code>InputStream</code> to read from.
+ * @param charsetName the canonical name or an alias of a
+ * <code>Charset</code>.
+ *
+ * @throws IllegalCharsetNameException if there is no
+ * <code>Charset</code> with the given canonical name or alias.
+ *
+ * @throws UnsupportedCharsetException if there is no support for
+ * the specified <code>Charset</code> in the runtime environment.
+ */
+ public NotifyingInputStreamReader(InputStream in, String charsetName)
+ throws IllegalCharsetNameException, UnsupportedCharsetException
+ {
+ this(in, Charset.forName(charsetName));
+ }
+
+ /**
+ * Initializes a new instance for reading from the given
+ * InputStream using the specified charset.
+ *
+ * @param in the <code>InputStream</code> to read from.
+ * @param charset the <code>Charset</code> to use for decoding
+ * characters.
+ */
+ public NotifyingInputStreamReader(InputStream in, Charset charset)
+ {
+ this(in, charset.newDecoder());
+ }
+
+ /**
+ * Initializes a new instance for reading from the given
+ * InputStream using the specified charset decoder.
+ *
+ * <strong>Note:</strong> the
+ * <code>NotifyingInputStreamReader</code> will not exhibit the
+ * advertised behaviour if you changed the action to take on
+ * malformed input in the specified
+ * <code>CharsetDecoder</code>. In other words, you should not
+ * call {@link CharsetDecoder.onMalformedInput(CodingErrorAction)}
+ * on the specified decoder before or while this reader is being
+ * used unless you know what you're doing.
+ *
+ * @param in the <code>InputStream</code> to read from.
+ * @param charset the <code>CharsetDecoder</code> to use for
+ * decoding characters.
+ */
+ public NotifyingInputStreamReader(InputStream in, CharsetDecoder decoder)
+ {
+ this.in = in;
+ this.decoder = decoder;
+ this.charBuffer = CharBuffer.wrap(new char[DEFAULT_INPUT_BUFFER_SIZE]);
+ this.charBuffer.position(charBuffer.limit());
+ this.readBuffer = new byte[DEFAULT_OUTPUT_BUFFER_SIZE];
+ this.byteBuffer = ByteBuffer.wrap(readBuffer);
+ this.byteBuffer.position(byteBuffer.limit());
+ }
+
+ public void close()
+ throws IOException
+ {
+ in.close();
+ }
+
+ /**
+ * Fill charBuffer with new character data. This method returns if
+ * either the charBuffer has been filled completely with decoded
+ * character data, or if EOF is reached in the underlying
+ * InputStream. When this method returns, charBuffer is flipped
+ * and ready to be read from.
+ */
+ private void fillCharBuf()
+ throws IOException
+ {
+ charBuffer.clear();
+ outer:
+ while (!flushed) {
+ CoderResult coderResult;
+ int charBufferPositionBefore = charBuffer.position();
+ if (!decodingFinished) {
+ coderResult = decoder.decode(byteBuffer, charBuffer, allInputConsumed);
+ if (allInputConsumed) {
+ decodingFinished = true;
+ }
+ }
+ else {
+ coderResult = decoder.flush(charBuffer);
+ flushed = coderResult.isUnderflow();
+ }
+
+ int charBufferPositionAfter = charBuffer.position();
+ for (int i=charBufferPositionBefore; i<charBufferPositionAfter; ++i) {
+ if (10 == charBuffer.get(i)) {
+ ++ lineNumber;
+ columnNumber = 0;
+ }
+ else {
+ ++ columnNumber;
+ }
+ }
+ if (coderResult.isOverflow()) {
+ break;
+ }
+ else if (coderResult.isUnderflow()) {
+ if (!allInputConsumed) {
+ int nRemainingBytes = 0;
+ if (byteBuffer.position() > 0) {
+ nRemainingBytes = Math.max(0, byteBuffer.limit() - byteBuffer.position());
+ }
+ if (nRemainingBytes > 0) {
+ byteBuffer.get(readBuffer, 0, nRemainingBytes);
+ }
+ byteBuffer.rewind();
+ int nread = in.read(readBuffer, nRemainingBytes,
+ readBuffer.length - nRemainingBytes);
+ if (nread < 0) {
+ allInputConsumed = true;
+ }
+ byteBuffer.limit(nRemainingBytes + Math.max(0, nread));
+ }
+ else {
+ break;
+ }
+ }
+ else if (coderResult.isMalformed()) {
+ fireMalformedInputEncountered(coderResult.length());
+ String replacement = decoder.replacement();
+ for (int i=0; i<coderResult.length(); ++i) {
+ if (charBuffer.remaining() > replacement.length()) {
+ charBuffer.put(replacement);
+ byteBuffer.position(byteBuffer.position() + 1);
+ columnNumber ++;
+ }
+ else {
+ break outer;
+ }
+ }
+ }
+ else if (coderResult.isUnmappable()) {
+ // This should not happen, since unmappable input bytes
+ // trigger a "malformed" event instead.
+ coderResult.throwException();
+ }
+ else {
+ // This should only happen if run in a future environment
+ // where additional events apart from underflow, overflow,
+ // malformed and unmappable can be generated.
+ coderResult.throwException();
+ }
+ }
+ charBuffer.flip();
+ }
+
+ /**
+ * Fire a MalformedInputEvent, notifying all registered listeners.
+ */
+ private void fireMalformedInputEncountered(int length)
+ {
+ MalformedInputEvent event
+ = new MalformedInputEvent(this, lineNumber, columnNumber, length);
+ Iterator it = listeners.iterator();
+ while (it.hasNext()) {
+ MalformedInputListener listener
+ = (MalformedInputListener)it.next();
+ listener.malformedInputEncountered(event);
+ }
+ }
+
+ public int read(char[] cbuf, int offset, int length)
+ throws IOException
+ {
+ if (flushed) {
+ return -1;
+ }
+ else {
+ int nread = 0;
+ while (nread < length && !flushed) {
+ while (charBuffer.hasRemaining() && nread < length) {
+ int copyLen = Math.min(length - nread,
+ charBuffer.remaining());
+ charBuffer.get(cbuf, offset + nread, copyLen);
+ nread += copyLen;
+ }
+ if (nread < length) {
+ fillCharBuf();
+ }
+ }
+ return nread;
+ }
+ }
+
+ public int read()
+ throws IOException
+ {
+ while (!flushed) {
+ if (charBuffer.hasRemaining()) {
+ return charBuffer.get();
+ }
+ else {
+ fillCharBuf();
+ }
+ }
+ return -1;
+ }
+
+ /**
+ * Returns whether this reader is ready. The reader is ready if
+ * there is data in the internal buffer, or if additional data can
+ * be read from the underlying InputStream.
+ */
+ public boolean ready()
+ {
+ return charBuffer.hasRemaining() || !flushed;
+ }
+
+ /**
+ * Register a <code>MalformedInputListener</code> which should be
+ * notified when malformed input is encountered.
+ */
+ public void addMalformedInputListener(MalformedInputListener listener)
+ {
+ this.listeners.add(listener);
+ }
+
+ /**
+ * Unregister a previously registered
+ * <code>MalformedInputListener</code> if it should no longer be
+ * notified when malformed input is encountered.
+ */
+ public void removeMalformedInputListener(MalformedInputListener listener)
+ {
+ this.listeners.remove(listener);
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java b/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java
new file mode 100644
index 0000000..214dc1b
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/StringToolkit.java
@@ -0,0 +1,67 @@
+/* gnu.classpath.tools.StringToolkit
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools;
+
+/**
+ * Provides various String-related helper methods.
+ *
+ * @author Julian Scheid
+ */
+public class StringToolkit
+{
+ /**
+ * Prevents instantiation.
+ */
+ private StringToolkit() {}
+
+ /**
+ * Return <code>haystack</code> with all occurrences of
+ * <code>needle</code> replaced by </code>replacement</code>.
+ *
+ * @param haystack the string to replace occurrences of <code>needle</code> in
+ * @param needle the substring to replace
+ * @param replacement the substring to replace <code>needle</code> with
+ *
+ * @return <code>haystack</code> with all occurrences of
+ * <code>needle</code> replaced by </code>replacement</code>.
+ */
+ public static String replace(String haystack, String needle, String replacement)
+ {
+ int ndx = haystack.indexOf(needle);
+ if (ndx < 0) {
+ return haystack;
+ }
+ else {
+ StringBuffer result = new StringBuffer();
+ result.append(haystack.substring(0, ndx));
+ result.append(replacement);
+ ndx += needle.length();
+ int ndx2;
+ while ((ndx2 = haystack.indexOf(needle, ndx)) >= 0) {
+ result.append(haystack.substring(ndx, ndx2));
+ result.append(replacement);
+ ndx = ndx2 + needle.length();
+ }
+ result.append(haystack.substring(ndx));
+ return result.toString();
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java
new file mode 100644
index 0000000..8777207
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/AbstractDoclet.java
@@ -0,0 +1,1369 @@
+/* gnu.classpath.tools.doclets.AbstractDoclet
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.ConstructorDoc;
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.Doclet;
+import com.sun.javadoc.ExecutableMemberDoc;
+import com.sun.javadoc.FieldDoc;
+import com.sun.javadoc.MethodDoc;
+import com.sun.javadoc.PackageDoc;
+import com.sun.javadoc.Parameter;
+import com.sun.javadoc.RootDoc;
+import com.sun.javadoc.Tag;
+import com.sun.javadoc.Type;
+
+import com.sun.tools.doclets.Taglet;
+
+import gnu.classpath.tools.taglets.GnuExtendedTaglet;
+import gnu.classpath.tools.taglets.AuthorTaglet;
+import gnu.classpath.tools.taglets.CodeTaglet;
+import gnu.classpath.tools.taglets.DeprecatedTaglet;
+import gnu.classpath.tools.taglets.GenericTaglet;
+import gnu.classpath.tools.taglets.SinceTaglet;
+import gnu.classpath.tools.taglets.ValueTaglet;
+import gnu.classpath.tools.taglets.VersionTaglet;
+import gnu.classpath.tools.taglets.TagletContext;
+
+import gnu.classpath.tools.IOToolkit;
+import gnu.classpath.tools.FileSystemClassLoader;
+
+import java.io.File;
+import java.io.IOException;
+
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+import java.lang.reflect.InvocationTargetException;
+
+import java.text.MessageFormat;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.Comparator;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.ResourceBundle;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+import java.util.TreeSet;
+
+/**
+ * An abstract Doclet implementation with helpers for common tasks
+ * performed by Doclets.
+ */
+public abstract class AbstractDoclet
+{
+ /**
+ * Mapping from tag type to Taglet for user Taglets specified on
+ * the command line.
+ */
+ protected Map tagletMap = new LinkedHashMap();
+
+ /**
+ * Stores the package groups specified in the user
+ * options. Contains objects of type PackageGroup.
+ */
+ private List packageGroups = new LinkedList();
+
+ /**
+ * The current classpath for loading taglet classes.
+ */
+ private String tagletPath;
+
+ /**
+ * Keeps track of the tags mentioned by the user during option
+ * processiong so that an error can be emitted if a tag is
+ * mentioned more than once.
+ */
+ private List mentionedTags = new LinkedList();
+
+ public static int optionLength(String option) {
+ return instance.getOptionLength(option);
+ }
+
+ public static boolean validOptions(String[][] options) {
+ return true;
+ }
+
+ private static AbstractDoclet instance;
+
+ protected static void setInstance(AbstractDoclet instance)
+ {
+ AbstractDoclet.instance = instance;
+ }
+
+ protected abstract void run()
+ throws DocletConfigurationException, IOException;
+
+ public static boolean start(RootDoc rootDoc)
+ {
+ try {
+
+ instance.startInstance(rootDoc);
+ return true;
+ }
+ catch (DocletConfigurationException e) {
+ instance.printError(e.getMessage());
+ return false;
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ protected RootDoc getRootDoc()
+ {
+ return this.rootDoc;
+ }
+
+ private RootDoc rootDoc;
+
+ protected abstract InlineTagRenderer getInlineTagRenderer();
+
+ private void startInstance(RootDoc rootDoc)
+ throws DocletConfigurationException, IOException
+ {
+ this.rootDoc = rootDoc;
+
+ // Set the default Taglet order
+
+ registerTaglet(new VersionTaglet());
+ registerTaglet(new AuthorTaglet());
+ registerTaglet(new SinceTaglet(getInlineTagRenderer()));
+ registerTaglet(new StandardTaglet("serial"));
+ registerTaglet(new StandardTaglet("deprecated"));
+ registerTaglet(new StandardTaglet("see"));
+ registerTaglet(new StandardTaglet("param"));
+ registerTaglet(new StandardTaglet("return"));
+
+ registerTaglet(new ValueTaglet());
+ registerTaglet(new CodeTaglet());
+
+ // Process command line options
+
+ for (int i=0, ilim=rootDoc.options().length; i<ilim; ++i) {
+
+ String[] optionArr = rootDoc.options()[i];
+ String _optionTag = optionArr[0];
+
+ DocletOption option = (DocletOption)nameToOptionMap.get(_optionTag.toLowerCase());
+
+ if (null != option) {
+ option.set(optionArr);
+ }
+ }
+
+ // Enable/disable standard taglets based on user input
+
+ AuthorTaglet.setTagletEnabled(optionAuthor.getValue());
+ VersionTaglet.setTagletEnabled(optionVersion.getValue());
+ SinceTaglet.setTagletEnabled(!optionNoSince.getValue());
+ DeprecatedTaglet.setTagletEnabled(!optionNoDeprecated.getValue());
+
+ if (!getTargetDirectory().exists()) {
+ if (!getTargetDirectory().mkdirs()) {
+ throw new DocletConfigurationException("Cannot create target directory "
+ + getTargetDirectory());
+ }
+ }
+
+ run();
+ }
+
+ public File getTargetDirectory()
+ {
+ return optionTargetDirectory.getValue();
+ }
+
+ private DocletOptionFile optionTargetDirectory =
+ new DocletOptionFile("-d",
+ new File(System.getProperty("user.dir")));
+
+ private DocletOptionFlag optionNoEmailWarn =
+ new DocletOptionFlag("-noemailwarn");
+
+ private DocletOptionFlag optionAuthor =
+ new DocletOptionFlag("-author");
+
+ private DocletOptionFlag optionVersion =
+ new DocletOptionFlag("-version");
+
+ private DocletOptionFlag optionNoSince =
+ new DocletOptionFlag("-nosince");
+
+ private DocletOptionFlag optionNoDeprecated =
+ new DocletOptionFlag("-nodeprecated");
+
+ private DocletOptionGroup optionGroup =
+ new DocletOptionGroup("-group");
+
+ private DocletOptionPackageWildcard optionNoQualifier =
+ new DocletOptionPackageWildcard("-noqualifier", true);
+
+ private DocletOptionFlag optionDocFilesSubDirs =
+ new DocletOptionFlag("-docfilessubdirs");
+
+ private DocletOptionColonSeparated optionExcludeDocFilesSubDir =
+ new DocletOptionColonSeparated("-excludedocfilessubdir");
+
+ private DocletOptionTagletPath optionTagletPath =
+ new DocletOptionTagletPath("-tagletpath");
+
+ private DocletOptionTag optionTaglet =
+ new DocletOptionTag("-taglet");
+
+ private DocletOptionTag optionTag =
+ new DocletOptionTag("-tag");
+
+ private class DocletOptionTaglet
+ extends DocletOption
+ {
+ DocletOptionTaglet(String optionName)
+ {
+ super(optionName);
+ }
+
+ public int getLength()
+ {
+ return 2;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+
+ boolean tagletLoaded = false;
+
+ String useTagletPath = AbstractDoclet.this.tagletPath;
+ if (null == useTagletPath) {
+ useTagletPath = System.getProperty("java.class.path");
+ }
+
+ try {
+ Class tagletClass;
+ try {
+ tagletClass
+ = new FileSystemClassLoader(useTagletPath).loadClass(optionArr[1]);
+ }
+ catch (ClassNotFoundException e) {
+ // If not found on specified tagletpath, try default classloader
+ tagletClass
+ = Class.forName(optionArr[1]);
+ }
+ Method registerTagletMethod
+ = tagletClass.getDeclaredMethod("register", new Class[] { java.util.Map.class });
+
+ if (!registerTagletMethod.getReturnType().equals(Void.TYPE)) {
+ printError("Taglet class '" + optionArr[1] + "' found, but register method doesn't return void.");
+ }
+ else if (registerTagletMethod.getExceptionTypes().length > 0) {
+ printError("Taglet class '" + optionArr[1] + "' found, but register method contains throws clause.");
+ }
+ else if ((registerTagletMethod.getModifiers() & (Modifier.STATIC | Modifier.PUBLIC | Modifier.ABSTRACT)) != (Modifier.STATIC | Modifier.PUBLIC)) {
+ printError("Taglet class '" + optionArr[1] + "' found, but register method isn't public static, or is abstract..");
+ }
+ else {
+ Map tempMap = new HashMap();
+ registerTagletMethod.invoke(null, new Object[] { tempMap });
+ tagletLoaded = true;
+ String name = (String)tempMap.keySet().iterator().next();
+ Taglet taglet = (Taglet)tempMap.get(name);
+ tagletMap.put(name, taglet);
+ mentionedTags.add(taglet);
+ }
+ }
+ catch (NoSuchMethodException e) {
+ printError("Taglet class '" + optionArr[1] + "' found, but doesn't contain the register method.");
+ }
+ catch (SecurityException e) {
+ printError("Taglet class '" + optionArr[1] + "' cannot be loaded: " + e.getMessage());
+ }
+ catch (InvocationTargetException e) {
+ printError("Taglet class '" + optionArr[1] + "' found, but register method throws exception: " + e.toString());
+ }
+ catch (IllegalAccessException e) {
+ printError("Taglet class '" + optionArr[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
+ }
+ catch (IllegalArgumentException e) {
+ printError("Taglet class '" + optionArr[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
+ }
+ catch (ClassNotFoundException e) {
+ printError("Taglet class '" + optionArr[1] + "' cannot be found.");
+ }
+ return tagletLoaded;
+ }
+ }
+
+ private class DocletOptionGroup
+ extends DocletOption
+ {
+ DocletOptionGroup(String optionName)
+ {
+ super(optionName);
+ }
+
+ public int getLength()
+ {
+ return 3;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+ try {
+ PackageMatcher packageMatcher = new PackageMatcher();
+
+ StringTokenizer tokenizer = new StringTokenizer(optionArr[2], ":");
+ while (tokenizer.hasMoreTokens()) {
+ String packageWildcard = tokenizer.nextToken();
+ packageMatcher.addWildcard(packageWildcard);
+ }
+
+ SortedSet groupPackages = packageMatcher.filter(rootDoc.specifiedPackages());
+
+ packageGroups.add(new PackageGroup(optionArr[1], groupPackages));
+
+ return true;
+ }
+ catch (InvalidPackageWildcardException e) {
+ return false;
+ }
+ }
+ }
+
+
+ private class DocletOptionTagletPath
+ extends DocletOption
+ {
+ DocletOptionTagletPath(String optionName)
+ {
+ super(optionName);
+ }
+
+ public int getLength()
+ {
+ return 2;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+ AbstractDoclet.this.tagletPath = optionArr[1];
+ return true;
+ }
+ }
+
+ private class DocletOptionTag
+ extends DocletOption
+ {
+ DocletOptionTag(String optionName)
+ {
+ super(optionName);
+ }
+
+ public int getLength()
+ {
+ return 2;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+ String tagSpec = optionArr[1];
+ boolean validTagSpec = false;
+ int ndx1 = tagSpec.indexOf(':');
+ if (ndx1 < 0) {
+ Taglet taglet = (Taglet)tagletMap.get(tagSpec);
+ if (null == taglet) {
+ printError("There is no standard tag '" + tagSpec + "'.");
+ }
+ else {
+ if (mentionedTags.contains(taglet)) {
+ printError("Tag '" + tagSpec + "' has been added or moved before.");
+ }
+ else {
+ mentionedTags.add(taglet);
+
+ // re-append taglet
+ tagletMap.remove(tagSpec);
+ tagletMap.put(tagSpec, taglet);
+ }
+ }
+ }
+ else {
+ int ndx2 = tagSpec.indexOf(':', ndx1 + 1);
+ if (ndx2 > ndx1 && ndx2 < tagSpec.length() - 1) {
+ String tagName = tagSpec.substring(0, ndx1);
+ String tagHead = null;
+ if (tagSpec.charAt(ndx2 + 1) == '\"') {
+ if (tagSpec.charAt(tagSpec.length() - 1) == '\"') {
+ tagHead = tagSpec.substring(ndx2 + 2, tagSpec.length() - 1);
+ validTagSpec = true;
+ }
+ }
+ else {
+ tagHead = tagSpec.substring(ndx2 + 1);
+ validTagSpec = true;
+ }
+
+ boolean tagScopeOverview = false;
+ boolean tagScopePackages = false;
+ boolean tagScopeTypes = false;
+ boolean tagScopeConstructors = false;
+ boolean tagScopeMethods = false;
+ boolean tagScopeFields = false;
+ boolean tagDisabled = false;
+
+ tag_option_loop:
+ for (int n=ndx1+1; n<ndx2; ++n) {
+ switch (tagSpec.charAt(n)) {
+ case 'X':
+ tagDisabled = true;
+ break;
+ case 'a':
+ tagScopeOverview = true;
+ tagScopePackages = true;
+ tagScopeTypes = true;
+ tagScopeConstructors = true;
+ tagScopeMethods = true;
+ tagScopeFields = true;
+ break;
+ case 'o':
+ tagScopeOverview = true;
+ break;
+ case 'p':
+ tagScopePackages = true;
+ break;
+ case 't':
+ tagScopeTypes = true;
+ break;
+ case 'c':
+ tagScopeConstructors = true;
+ break;
+ case 'm':
+ tagScopeMethods = true;
+ break;
+ case 'f':
+ tagScopeFields = true;
+ break;
+ default:
+ validTagSpec = false;
+ break tag_option_loop;
+ }
+ }
+
+ if (validTagSpec) {
+ GenericTaglet taglet
+ = new GenericTaglet(tagName,
+ tagHead,
+ tagScopeOverview,
+ tagScopePackages,
+ tagScopeTypes,
+ tagScopeConstructors,
+ tagScopeMethods,
+ tagScopeFields);
+ taglet.setTagletEnabled(!tagDisabled);
+ taglet.register(tagletMap);
+ mentionedTags.add(taglet);
+ }
+ }
+ }
+ if (!validTagSpec) {
+ printError("Value for option -tag must be in format \"<tagname>:Xaoptcmf:<taghead>\".");
+ }
+ return validTagSpec;
+ }
+ }
+
+ private DocletOption[] commonOptions =
+ {
+ optionTargetDirectory,
+ optionAuthor,
+ optionVersion,
+ optionNoSince,
+ optionNoDeprecated,
+ optionGroup,
+ optionDocFilesSubDirs,
+ optionExcludeDocFilesSubDir,
+ optionTagletPath,
+ optionTaglet,
+ optionTag,
+ };
+
+ private void registerOptions()
+ {
+ if (!optionsRegistered) {
+ for (int i=0; i<commonOptions.length; ++i) {
+ DocletOption option = commonOptions[i];
+ registerOption(option);
+ }
+ DocletOption[] docletOptions = getOptions();
+ for (int i=0; i<docletOptions.length; ++i) {
+ DocletOption option = docletOptions[i];
+ registerOption(option);
+ }
+ optionsRegistered = true;
+ }
+ }
+
+ protected abstract DocletOption[] getOptions();
+
+ private boolean optionsRegistered = false;
+
+ private void registerOption(DocletOption option)
+ {
+ nameToOptionMap.put(option.getName(), option);
+ }
+
+ private Map nameToOptionMap = new HashMap();
+
+ private int getOptionLength(String optionName)
+ {
+ registerOptions();
+ DocletOption option = (DocletOption)nameToOptionMap.get(optionName.toLowerCase());
+ if (null != option) {
+ return option.getLength();
+ }
+ else {
+ return -1;
+ }
+ }
+
+ protected List getKnownDirectSubclasses(ClassDoc classDoc)
+ {
+ List result = new LinkedList();
+ if (!"java.lang.Object".equals(classDoc.qualifiedName())) {
+ ClassDoc[] classes = rootDoc.classes();
+ for (int i=0; i<classes.length; ++i) {
+ if (classDoc == classes[i].superclass()) {
+ result.add(classes[i]);
+ }
+ }
+ }
+ return result;
+ }
+
+ protected static class IndexKey
+ implements Comparable
+ {
+ private String name;
+ private String lowerName;
+
+ public IndexKey(String name)
+ {
+ this.name = name;
+ this.lowerName = name.toLowerCase();
+ }
+
+ public boolean equals(Object other)
+ {
+ return this.lowerName.equals(((IndexKey)other).lowerName);
+ }
+
+ public int hashCode()
+ {
+ return lowerName.hashCode();
+ }
+
+ public int compareTo(Object other)
+ {
+ return lowerName.compareTo(((IndexKey)other).lowerName);
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+ }
+
+ private Map categorizedIndex;
+
+ protected Map getCategorizedIndex()
+ {
+ if (null == categorizedIndex) {
+ categorizedIndex = new LinkedHashMap();
+
+ Map indexMap = getIndexByName();
+ LinkedList keys = new LinkedList(); //indexMap.keySet().size());
+ keys.addAll(indexMap.keySet());
+ Collections.sort(keys);
+ Iterator it = keys.iterator(); //indexMap.keySet().iterator();
+ char previousCategoryLetter = '\0';
+ Character keyLetter = null;
+ while (it.hasNext()) {
+ IndexKey key = (IndexKey)it.next();
+ char firstChar = Character.toUpperCase(key.getName().charAt(0));
+ if (firstChar != previousCategoryLetter) {
+ keyLetter = new Character(firstChar);
+ previousCategoryLetter = firstChar;
+ categorizedIndex.put(keyLetter, new LinkedList());
+ }
+ List letterList = (List)categorizedIndex.get(keyLetter);
+ letterList.add(indexMap.get(key));
+ }
+ }
+
+ return categorizedIndex;
+ }
+
+
+ private Map indexByName;
+
+ protected Map getIndexByName()
+ {
+ if (null == indexByName) {
+ // Create index
+
+ // Collect index
+
+ indexByName = new HashMap(); //TreeMap();
+
+ // Add packages to index
+
+ PackageDoc[] packages = rootDoc.specifiedPackages();
+ for (int i=0, ilim=packages.length; i<ilim; ++i) {
+ PackageDoc c = packages[i];
+ if (c.name().length() > 0) {
+ indexByName.put(new IndexKey(c.name()), c);
+ }
+ }
+
+ // Add classes, fields and methods to index
+
+ ClassDoc[] sumclasses = rootDoc.classes();
+ for (int i=0, ilim=sumclasses.length; i<ilim; ++i) {
+ ClassDoc c = sumclasses[i];
+ if (null == c.containingClass()) {
+ indexByName.put(new IndexKey(c.name() + " " + c.containingPackage().name()), c);
+ }
+ else {
+ indexByName.put(new IndexKey(c.name().substring(c.containingClass().name().length() + 1)
+ + " " + c.containingClass().name() + " " + c.containingPackage().name()), c);
+ }
+ FieldDoc[] fields = c.fields();
+ for (int j=0, jlim=fields.length; j<jlim; ++j) {
+ indexByName.put(new IndexKey(fields[j].name() + " " + fields[j].containingClass().name() + " " + fields[j].containingPackage().name()), fields[j]);
+ }
+ MethodDoc[] methods = c.methods();
+ for (int j=0, jlim=methods.length; j<jlim; ++j) {
+ MethodDoc method = methods[j];
+ indexByName.put(new IndexKey(method.name() + method.signature() + " " + method.containingClass().name() + " " + method.containingPackage().name()), method);
+ }
+ ConstructorDoc[] constructors = c.constructors();
+ for (int j=0, jlim=constructors.length; j<jlim; ++j) {
+ ConstructorDoc constructor = constructors[j];
+ indexByName.put(new IndexKey(constructor.name() + constructor.signature() + " " + constructor.containingClass().name() + " " + constructor.containingPackage().name()), constructor);
+ }
+ }
+ }
+ return indexByName;
+ }
+
+ private void registerTaglet(Taglet taglet)
+ {
+ tagletMap.put(taglet.getName(), taglet);
+ }
+
+ protected void printTaglets(Tag[] tags, TagletContext context, TagletPrinter output, boolean inline)
+ {
+ for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) {
+ String tagName = (String)it.next();
+ Object o = tagletMap.get(tagName);
+ Taglet taglet = (Taglet)o;
+ Doc doc = context.getDoc();
+ if (inline == taglet.isInlineTag()
+ && ((doc == null
+ && taglet.inOverview())
+ || (doc != null
+ && ((doc.isConstructor() && taglet.inConstructor())
+ || (doc.isField() && taglet.inField())
+ || (doc.isMethod() && taglet.inMethod())
+ || (doc instanceof PackageDoc && taglet.inPackage())
+ || ((doc.isClass() || doc.isInterface()) && taglet.inType()))))) {
+
+ List tagsOfThisType = new LinkedList();
+ for (int i=0; i<tags.length; ++i) {
+ if (tags[i].name().substring(1).equals(tagName)) {
+ tagsOfThisType.add(tags[i]);
+ }
+ }
+
+ Tag[] tagletTags = (Tag[])tagsOfThisType.toArray(new Tag[tagsOfThisType.size()]);
+
+ String tagletString;
+ if (taglet instanceof StandardTaglet) {
+ tagletString = renderTag(tagName, tagletTags, context);
+ }
+ else if (taglet instanceof GnuExtendedTaglet) {
+ tagletString = ((GnuExtendedTaglet)taglet).toString(tagletTags, context);
+ }
+ else {
+ tagletString = taglet.toString(tagletTags);
+ }
+ if (null != tagletString) {
+ output.printTagletString(tagletString);
+ }
+ }
+ }
+ }
+
+ protected void printInlineTaglet(Tag tag, TagletContext context, TagletPrinter output)
+ {
+ Taglet taglet = (Taglet)tagletMap.get(tag.name().substring(1));
+ if (null != taglet) {
+ String tagletString;
+ if (taglet instanceof GnuExtendedTaglet) {
+ tagletString = ((GnuExtendedTaglet)taglet).toString(tag, context);
+ }
+ else {
+ tagletString = taglet.toString(tag);
+ }
+ if (null != tagletString) {
+ output.printTagletString(tagletString);
+ }
+ }
+ else {
+ printWarning("Unknown tag: " + tag.name());
+ }
+ }
+
+ protected void printMainTaglets(Tag[] tags, TagletContext context, TagletPrinter output)
+ {
+ printTaglets(tags, context, output, false);
+ }
+
+ /**
+ * @param usedClassToPackagesMap ClassDoc to (PackageDoc to (UsageType to (Set of Doc)))
+ */
+ private void addUsedBy(Map usedClassToPackagesMap,
+ ClassDoc usedClass, UsageType usageType, Doc user, PackageDoc userPackage)
+ {
+ Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(usedClass);
+ if (null == packageToUsageTypeMap) {
+ packageToUsageTypeMap = new HashMap();
+ usedClassToPackagesMap.put(usedClass, packageToUsageTypeMap);
+ }
+
+ Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(userPackage);
+ if (null == usageTypeToUsersMap) {
+ usageTypeToUsersMap = new TreeMap();
+ packageToUsageTypeMap.put(userPackage, usageTypeToUsersMap);
+ }
+
+ Set userSet = (Set)usageTypeToUsersMap.get(usageType);
+ if (null == userSet) {
+ userSet = new TreeSet(); // FIXME: we need the collator from Main here
+ usageTypeToUsersMap.put(usageType, userSet);
+ }
+ userSet.add(user);
+ }
+
+ /**
+ * Create the cross reference database.
+ */
+ private Map collectUsage() {
+
+ Map _usedClassToPackagesMap = new HashMap();
+
+ ClassDoc[] classes = rootDoc.classes();
+ for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
+ ClassDoc clazz = classes[i];
+
+ if (clazz.isInterface()) {
+ // classes implementing
+ InterfaceRelation relation
+ = (InterfaceRelation)getInterfaceRelations().get(clazz);
+ Iterator it = relation.implementingClasses.iterator();
+ while (it.hasNext()) {
+ ClassDoc implementor = (ClassDoc)it.next();
+ addUsedBy(_usedClassToPackagesMap,
+ clazz, UsageType.CLASS_IMPLEMENTING, implementor, implementor.containingPackage());
+ }
+ }
+ else {
+ // classes derived from
+ for (ClassDoc superclass = clazz.superclass(); superclass != null;
+ superclass = superclass.superclass()) {
+ addUsedBy(_usedClassToPackagesMap,
+ superclass, UsageType.CLASS_DERIVED_FROM, clazz, clazz.containingPackage());
+ }
+ }
+
+ FieldDoc[] fields = clazz.fields();
+ for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
+ FieldDoc field = fields[j];
+
+ // fields of type
+ ClassDoc fieldType = field.type().asClassDoc();
+ if (null != fieldType) {
+ addUsedBy(_usedClassToPackagesMap,
+ fieldType, UsageType.FIELD_OF_TYPE,
+ field, clazz.containingPackage());
+ }
+ }
+
+ MethodDoc[] methods = clazz.methods();
+ for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
+ MethodDoc method = methods[j];
+
+ // methods with return type
+
+ ClassDoc returnType = method.returnType().asClassDoc();
+ if (null != returnType) {
+ addUsedBy(_usedClassToPackagesMap,
+ returnType, UsageType.METHOD_WITH_RETURN_TYPE,
+ method, clazz.containingPackage());
+ }
+ Parameter[] parameters = method.parameters();
+ for (int k=0; k<parameters.length; ++k) {
+
+ // methods with parameter type
+
+ Parameter parameter = parameters[k];
+ ClassDoc parameterType = parameter.type().asClassDoc();
+ if (null != parameterType) {
+ addUsedBy(_usedClassToPackagesMap,
+ parameterType, UsageType.METHOD_WITH_PARAMETER_TYPE,
+ method, clazz.containingPackage());
+ }
+ }
+
+ // methods which throw
+
+ ClassDoc[] thrownExceptions = method.thrownExceptions();
+ for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
+ ClassDoc thrownException = thrownExceptions[k];
+ addUsedBy(_usedClassToPackagesMap,
+ thrownException, UsageType.METHOD_WITH_THROWN_TYPE,
+ method, clazz.containingPackage());
+ }
+ }
+
+ ConstructorDoc[] constructors = clazz.constructors();
+ for (int j = 0, jlim = constructors.length; j < jlim; ++ j) {
+
+ ConstructorDoc constructor = constructors[j];
+
+ Parameter[] parameters = constructor.parameters();
+ for (int k = 0, klim = parameters.length; k < klim; ++ k) {
+
+ // constructors with parameter type
+
+ Parameter parameter = parameters[k];
+ ClassDoc parameterType = parameter.type().asClassDoc();
+ if (null != parameterType) {
+ addUsedBy(_usedClassToPackagesMap,
+ parameterType, UsageType.CONSTRUCTOR_WITH_PARAMETER_TYPE,
+ constructor, clazz.containingPackage());
+ }
+ }
+
+ // constructors which throw
+
+ ClassDoc[] thrownExceptions = constructor.thrownExceptions();
+ for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
+ ClassDoc thrownException = thrownExceptions[k];
+ addUsedBy(_usedClassToPackagesMap,
+ thrownException, UsageType.CONSTRUCTOR_WITH_THROWN_TYPE,
+ constructor, clazz.containingPackage());
+ }
+ }
+ }
+ return _usedClassToPackagesMap;
+ }
+
+ private Map usedClassToPackagesMap = null;
+
+ protected Map getUsageOfClass(ClassDoc classDoc)
+ {
+ if (null == this.usedClassToPackagesMap) {
+ this.usedClassToPackagesMap = collectUsage();
+ }
+ return (Map)this.usedClassToPackagesMap.get(classDoc);
+ }
+
+ protected static class UsageType
+ implements Comparable
+ {
+ public static final UsageType CLASS_DERIVED_FROM = new UsageType("class-derived-from");
+ public static final UsageType CLASS_IMPLEMENTING = new UsageType("class-implementing");
+ public static final UsageType FIELD_OF_TYPE = new UsageType("field-of-type");
+ public static final UsageType METHOD_WITH_RETURN_TYPE = new UsageType("method-with-return-type");
+ public static final UsageType METHOD_WITH_PARAMETER_TYPE = new UsageType("method-with-parameter-type");
+ public static final UsageType METHOD_WITH_THROWN_TYPE = new UsageType("method-with-thrown-type");
+ public static final UsageType CONSTRUCTOR_WITH_PARAMETER_TYPE = new UsageType("constructor-with-parameter-type");
+ public static final UsageType CONSTRUCTOR_WITH_THROWN_TYPE = new UsageType("constructor-with-thrown-type");
+ private String id;
+
+ private UsageType(String id)
+ {
+ this.id = id;
+ }
+
+ public int compareTo(Object other)
+ {
+ return this.id.compareTo(((UsageType)other).id);
+ }
+
+ public String toString() {
+ return "UsageType{id=" + id + "}";
+ }
+
+ public String getId() {
+ return id;
+ }
+ }
+
+ private ResourceBundle resources;
+
+ protected String getString(String key)
+ {
+ if (null == resources) {
+ Locale currentLocale = Locale.getDefault();
+
+ resources
+ = ResourceBundle.getBundle("htmldoclet.HtmlDoclet", currentLocale);
+ }
+
+ return resources.getString(key);
+ }
+
+ protected String format(String key, String value1)
+ {
+ return MessageFormat.format(getString(key), new Object[] { value1 });
+ }
+
+ protected List getPackageGroups()
+ {
+ return packageGroups;
+ }
+
+ protected void copyDocFiles(File sourceDir, File targetDir)
+ throws IOException
+ {
+ File sourceDocFiles = new File(sourceDir, "doc-files");
+ File targetDocFiles = new File(targetDir, "doc-files");
+
+ if (sourceDocFiles.exists()) {
+ IOToolkit.copyDirectory(sourceDocFiles,
+ targetDocFiles,
+ optionDocFilesSubDirs.getValue(),
+ optionExcludeDocFilesSubDir.getComponents());
+ }
+ }
+
+ private Set sourcePaths;
+
+ /**
+ * Try to determine the source directory for the given package by
+ * looking at the path specified by -sourcepath, or the current
+ * directory if -sourcepath hasn't been specified.
+ *
+ * @throws IOException if the source directory couldn't be
+ * located.
+ *
+ * @return List of File
+ */
+ protected List getPackageSourceDirs(PackageDoc packageDoc)
+ throws IOException
+ {
+ if (null == sourcePaths) {
+ for (int i=0; i<rootDoc.options().length; ++i) {
+ if ("-sourcepath".equals(rootDoc.options()[i][0])
+ || "-s".equals(rootDoc.options()[i][0])) {
+ sourcePaths = new LinkedHashSet();
+ String sourcepathString = rootDoc.options()[i][1];
+ StringTokenizer st = new StringTokenizer(sourcepathString, File.pathSeparator);
+ while (st.hasMoreTokens()) {
+ sourcePaths.add(new File(st.nextToken()));
+ }
+ }
+ }
+ if (null == sourcePaths) {
+ sourcePaths = new LinkedHashSet();
+ sourcePaths.add(new File(System.getProperty("user.dir")));
+ }
+ }
+
+ String packageSubDir = packageDoc.name().replace('.', File.separatorChar);
+ Iterator it = sourcePaths.iterator();
+ List result = new LinkedList();
+ while (it.hasNext()) {
+ File pathComponent = (File)it.next();
+ File packageDir = new File(pathComponent, packageSubDir);
+ if (packageDir.exists()) {
+ result.add(packageDir);
+ }
+ }
+ if (result.isEmpty()) {
+ throw new IOException("Couldn't locate source directory for package " + packageDoc.name());
+ }
+ else {
+ return result;
+ }
+ }
+
+ protected File getSourceFile(ClassDoc classDoc)
+ throws IOException
+ {
+ List packageDirs = getPackageSourceDirs(classDoc.containingPackage());
+ Iterator it = packageDirs.iterator();
+ while (it.hasNext()) {
+ File packageDir = (File)it.next();
+ File sourceFile = new File(packageDir, getOuterClassDoc(classDoc).name() + ".java");
+ if (sourceFile.exists()) {
+ return sourceFile;
+ }
+ }
+
+ throw new IOException("Couldn't locate source file for class " + classDoc.qualifiedTypeName());
+ }
+
+ protected void printError(String error)
+ {
+ if (null != rootDoc) {
+ rootDoc.printError(error);
+ }
+ else {
+ System.err.println("ERROR: "+error);
+ }
+ }
+
+ protected void printWarning(String warning)
+ {
+ if (null != rootDoc) {
+ rootDoc.printWarning(warning);
+ }
+ else {
+ System.err.println("WARNING: "+warning);
+ }
+ }
+
+ protected void printNotice(String notice)
+ {
+ if (null != rootDoc) {
+ rootDoc.printNotice(notice);
+ }
+ else {
+ System.err.println(notice);
+ }
+ }
+
+ protected static ClassDoc getOuterClassDoc(ClassDoc classDoc)
+ {
+ while (null != classDoc.containingClass()) {
+ classDoc = classDoc.containingClass();
+ }
+ return classDoc;
+ }
+
+ private SortedSet allPackages;
+
+ protected Set getAllPackages()
+ {
+ if (null == this.allPackages) {
+ allPackages = new TreeSet();
+ PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();
+ for (int i=0; i<specifiedPackages.length; ++i) {
+ allPackages.add(specifiedPackages[i]);
+ }
+ ClassDoc[] specifiedClasses = rootDoc.specifiedClasses();
+ for (int i=0; i<specifiedClasses.length; ++i) {
+ allPackages.add(specifiedClasses[i].containingPackage());
+ }
+ }
+ return this.allPackages;
+ }
+
+ protected boolean omitPackageQualifier(PackageDoc packageDoc)
+ {
+ if (!optionNoQualifier.isSpecified()) {
+ return false;
+ }
+ else {
+ return optionNoQualifier.match(packageDoc);
+ }
+ }
+
+ protected String possiblyQualifiedName(Type type)
+ {
+ if (null == type.asClassDoc()
+ || !omitPackageQualifier(type.asClassDoc().containingPackage())) {
+ return type.qualifiedTypeName();
+ }
+ else {
+ return type.typeName();
+ }
+ }
+
+ protected static class InterfaceRelation
+ {
+ public Set superInterfaces;
+ public Set subInterfaces;
+ public Set implementingClasses;
+
+ public InterfaceRelation()
+ {
+ superInterfaces = new TreeSet();
+ subInterfaces = new TreeSet();
+ implementingClasses = new TreeSet();
+ }
+ }
+
+ private void addAllInterfaces(ClassDoc classDoc, Set allInterfaces)
+ {
+ ClassDoc[] interfaces = classDoc.interfaces();
+ for (int i=0; i<interfaces.length; ++i) {
+ allInterfaces.add(interfaces[i]);
+ addAllInterfaces(interfaces[i], allInterfaces);
+ }
+ }
+
+ private Map allSubClasses;
+
+ protected Map getAllSubClasses()
+ {
+ if (null == allSubClasses) {
+ allSubClasses = new HashMap();
+
+ ClassDoc[] classDocs = getRootDoc().classes();
+ for (int i=0; i<classDocs.length; ++i) {
+ if (!classDocs[i].isInterface()) {
+ for (ClassDoc cd = classDocs[i].superclass();
+ null != cd;
+ cd = cd.superclass()) {
+
+ if (!cd.qualifiedTypeName().equals("java.lang.Object")) {
+ List subClasses = (List)allSubClasses.get(cd);
+ if (null == subClasses) {
+ subClasses = new LinkedList();
+ allSubClasses.put(cd, subClasses);
+ }
+ subClasses.add(classDocs[i]);
+ }
+ }
+ }
+ }
+ }
+ return allSubClasses;
+ }
+
+ private Map interfaceRelations;
+
+ private void addToInterfaces(ClassDoc classDoc, ClassDoc[] interfaces)
+ {
+ for (int i=0; i<interfaces.length; ++i) {
+ InterfaceRelation interfaceRelation
+ = (InterfaceRelation)interfaceRelations.get(interfaces[i]);
+ if (null == interfaceRelation) {
+ interfaceRelation = new InterfaceRelation();
+ interfaceRelations.put(interfaces[i], interfaceRelation);
+ }
+ interfaceRelation.implementingClasses.add(classDoc);
+ addToInterfaces(classDoc, interfaces[i].interfaces());
+ }
+ }
+
+ protected Map getInterfaceRelations()
+ {
+ if (null == interfaceRelations) {
+ interfaceRelations = new HashMap();
+
+ ClassDoc[] classDocs = getRootDoc().classes();
+ for (int i=0; i<classDocs.length; ++i) {
+ if (classDocs[i].isInterface()) {
+ InterfaceRelation relation = new InterfaceRelation();
+ addAllInterfaces(classDocs[i], relation.superInterfaces);
+ interfaceRelations.put(classDocs[i], relation);
+ }
+ }
+
+ Iterator it = interfaceRelations.keySet().iterator();
+ while (it.hasNext()) {
+ ClassDoc interfaceDoc = (ClassDoc)it.next();
+ InterfaceRelation relation
+ = (InterfaceRelation)interfaceRelations.get(interfaceDoc);
+ Iterator superIt = relation.superInterfaces.iterator();
+ while (superIt.hasNext()) {
+ ClassDoc superInterfaceDoc = (ClassDoc)superIt.next();
+ InterfaceRelation superRelation
+ = (InterfaceRelation)interfaceRelations.get(superInterfaceDoc);
+ if (null != superRelation) {
+ superRelation.subInterfaces.add(interfaceDoc);
+ }
+ }
+ }
+
+ for (int i=0; i<classDocs.length; ++i) {
+ if (!classDocs[i].isInterface()) {
+ for (ClassDoc cd = classDocs[i]; null != cd; cd = cd.superclass()) {
+ addToInterfaces(classDocs[i], cd.interfaces());
+ }
+ }
+ }
+ }
+
+ return interfaceRelations;
+ }
+
+ private Map sortedMethodMap = new HashMap();
+
+ protected MethodDoc[] getSortedMethods(ClassDoc classDoc)
+ {
+ MethodDoc[] result = (MethodDoc[])sortedMethodMap.get(classDoc);
+ if (null == result) {
+ MethodDoc[] methods = classDoc.methods();
+ result = (MethodDoc[])methods.clone();
+ Arrays.sort(result);
+ return result;
+ }
+ return result;
+ }
+
+ private Map sortedConstructorMap = new HashMap();
+
+ protected ConstructorDoc[] getSortedConstructors(ClassDoc classDoc)
+ {
+ ConstructorDoc[] result = (ConstructorDoc[])sortedConstructorMap.get(classDoc);
+ if (null == result) {
+ ConstructorDoc[] constructors = classDoc.constructors();
+ result = (ConstructorDoc[])constructors.clone();
+ Arrays.sort(result);
+ return result;
+ }
+ return result;
+ }
+
+ private Map sortedFieldMap = new HashMap();
+
+ protected FieldDoc[] getSortedFields(ClassDoc classDoc)
+ {
+ FieldDoc[] result = (FieldDoc[])sortedFieldMap.get(classDoc);
+ if (null == result) {
+ FieldDoc[] fields = classDoc.fields();
+ result = (FieldDoc[])fields.clone();
+ Arrays.sort(result);
+ return result;
+ }
+ return result;
+ }
+
+ private Map sortedInnerClassMap = new HashMap();
+
+ protected ClassDoc[] getSortedInnerClasses(ClassDoc classDoc)
+ {
+ ClassDoc[] result = (ClassDoc[])sortedInnerClassMap.get(classDoc);
+ if (null == result) {
+ ClassDoc[] innerClasses = classDoc.innerClasses();
+ result = (ClassDoc[])innerClasses.clone();
+ Arrays.sort(result);
+ return result;
+ }
+ return result;
+ }
+
+ protected abstract String renderTag(String tagName, Tag[] tags, TagletContext context);
+
+ protected abstract String getDocletVersion();
+
+ protected SortedSet getThrownExceptions(ExecutableMemberDoc execMemberDoc)
+ {
+ SortedSet result = new TreeSet();
+ ClassDoc[] thrownExceptions = execMemberDoc.thrownExceptions();
+ for (int j=0; j<thrownExceptions.length; ++j) {
+ result.add(thrownExceptions[j]);
+ }
+ return result;
+ }
+
+ protected boolean isUncheckedException(ClassDoc classDoc)
+ {
+ if (classDoc.isException()) {
+ while (null != classDoc) {
+ if (classDoc.qualifiedTypeName().equals("java.lang.RuntimeException")) {
+ return true;
+ }
+ classDoc = classDoc.superclass();
+ }
+ return false;
+ }
+ else {
+ return false;
+ }
+ }
+
+ protected FieldDoc findField(ClassDoc classDoc, String fieldName)
+ {
+ for (ClassDoc cd = classDoc; cd != null; cd = cd.superclass()) {
+ FieldDoc[] fields = cd.fields(false);
+ for (int i=0; i<fields.length; ++i) {
+ if (fields[i].name().equals(fieldName)) {
+ return fields[i];
+ }
+ }
+ }
+ return null;
+ }
+
+ private Map implementedInterfacesCache = new HashMap();
+
+ protected Set getImplementedInterfaces(ClassDoc classDoc)
+ {
+ Set result = (Set)implementedInterfacesCache.get(classDoc);
+ if (null == result) {
+ result = new TreeSet();
+
+ for (ClassDoc cd = classDoc; cd != null; cd = cd.superclass()) {
+ ClassDoc[] interfaces = cd.interfaces();
+ for (int i=0; i<interfaces.length; ++i) {
+ result.add(interfaces[i]);
+ InterfaceRelation relation
+ = (InterfaceRelation)getInterfaceRelations().get(interfaces[i]);
+ if (null != relation) {
+ result.addAll(relation.superInterfaces);
+ }
+ }
+ }
+
+ implementedInterfacesCache.put(classDoc, result);
+ }
+
+ return result;
+ }
+
+ protected boolean isSinglePackage()
+ {
+ return getAllPackages().size() <= 1;
+ }
+
+ protected PackageDoc getSinglePackage()
+ {
+ return (PackageDoc)getAllPackages().iterator().next();
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java
new file mode 100644
index 0000000..f75c6cd
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletConfigurationException.java
@@ -0,0 +1,37 @@
+/* gnu.classpath.tools.doclets.DocletConfigurationException
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+/**
+ * Thrown by <code>AbstractDoclet</code> members or members of
+ * <code>AbstractDoclet</code> subclasses when a problem caused by
+ * user-specified options is detected.
+ *
+ * @see AbstractDoclet
+ */
+public class DocletConfigurationException
+ extends Exception
+{
+ public DocletConfigurationException(String message)
+ {
+ super(message);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java
new file mode 100644
index 0000000..fec2c7a
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOption.java
@@ -0,0 +1,39 @@
+/* gnu.classpath.tools.doclets.DocletOption
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+public abstract class DocletOption
+{
+ private String optionName;
+
+ protected DocletOption(String optionName)
+ {
+ this.optionName = optionName;
+ }
+
+ public String getName()
+ {
+ return this.optionName;
+ }
+
+ public abstract int getLength();
+ public abstract boolean set(String[] optionArr);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java
new file mode 100644
index 0000000..b33519f
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionColonSeparated.java
@@ -0,0 +1,60 @@
+/* gnu.classpath.tools.doclets.DocletOptionColonSeparated
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import java.util.StringTokenizer;
+
+/**
+ * Processes a doclet option whose value consists of a
+ * colon-separated list of strings.
+ */
+public class DocletOptionColonSeparated
+ extends DocletOption
+{
+ private Set components = new LinkedHashSet();
+
+ DocletOptionColonSeparated(String optionName)
+ {
+ super(optionName);
+ }
+
+ public int getLength()
+ {
+ return 2;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+ StringTokenizer st = new StringTokenizer(":");
+ while (st.hasMoreTokens()) {
+ components.add(st.nextToken());
+ }
+ return true;
+ }
+
+ public Set getComponents()
+ {
+ return components;
+ }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java
new file mode 100644
index 0000000..c1f1c3c
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFile.java
@@ -0,0 +1,60 @@
+/* gnu.classpath.tools.doclets.DocletOptionFile
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import java.io.File;
+
+/**
+ * Processes a doclet option whose value denotes an existing or
+ * non-existing file in the local file system.
+ */
+public class DocletOptionFile
+ extends DocletOption
+{
+ private File value;
+
+ public DocletOptionFile(String optionName)
+ {
+ this(optionName, null);
+ }
+
+ public DocletOptionFile(String optionName, File defaultFile)
+ {
+ super(optionName);
+ this.value = defaultFile;
+ }
+
+ public File getValue()
+ {
+ return this.value;
+ }
+
+ public int getLength()
+ {
+ return 2;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+ this.value = new File(optionArr[1]);
+ return true;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java
new file mode 100644
index 0000000..0909a86
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionFlag.java
@@ -0,0 +1,52 @@
+/* gnu.classpath.tools.doclets.DocletOptionFlag
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+/**
+ * Processes a doclet option without a value whose existance denotes
+ * that a specific feature should be enabled or disabled.
+ */
+public class DocletOptionFlag
+ extends DocletOption
+{
+ private boolean value = false;
+
+ public DocletOptionFlag(String optionName)
+ {
+ super(optionName);
+ }
+
+ public boolean getValue()
+ {
+ return this.value;
+ }
+
+ public int getLength()
+ {
+ return 1;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+ value = true;
+ return true;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java
new file mode 100644
index 0000000..261c676
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionPackageWildcard.java
@@ -0,0 +1,108 @@
+/* gnu.classpath.tools.doclets.DocletOptionPackageWildcard
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import java.util.LinkedHashSet;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.StringTokenizer;
+import java.util.TreeSet;
+
+import com.sun.javadoc.PackageDoc;
+
+/**
+ * Processes a doclet option whose value consists of a
+ * colon-separated list of package wildcards, or - optionally -
+ * equals the string "all", denoting that all packages should match.
+ */
+public class DocletOptionPackageWildcard
+ extends DocletOption
+{
+ private PackageMatcher packageMatcher;
+ private boolean allowAll;
+ private boolean specified;
+
+ DocletOptionPackageWildcard(String optionName, boolean allowAll)
+ {
+ super(optionName);
+ this.allowAll = allowAll;
+ }
+
+ public int getLength()
+ {
+ return 2;
+ }
+
+ public boolean isSpecified()
+ {
+ return specified;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+ this.specified = true;
+ try {
+ if (allowAll && "all".equals(optionArr[2])) {
+ packageMatcher = null;
+ }
+ else {
+ packageMatcher = new PackageMatcher();
+
+ StringTokenizer tokenizer = new StringTokenizer(optionArr[2], ":");
+ while (tokenizer.hasMoreTokens()) {
+ String packageWildcard = tokenizer.nextToken();
+ packageMatcher.addWildcard(packageWildcard);
+ }
+ }
+ return true;
+ }
+ catch (InvalidPackageWildcardException e) {
+ // FIXME: output problem description here, better throw
+ // DocletConfigurationException
+ return false;
+ }
+ }
+
+ public SortedSet filter(PackageDoc[] packages)
+ {
+ if (null != packageMatcher) {
+ return packageMatcher.filter(packages);
+ }
+ else {
+ SortedSet result = new TreeSet();
+ for (int i=0; i<packages.length; ++i) {
+ result.add(packages[i]);
+ }
+ return result;
+ }
+ }
+
+ public boolean match(PackageDoc packageDoc)
+ {
+ if (null != packageMatcher) {
+ return packageMatcher.match(packageDoc);
+ }
+ else {
+ return true;
+ }
+ }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java
new file mode 100644
index 0000000..b9b9566
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/DocletOptionString.java
@@ -0,0 +1,51 @@
+/* gnu.classpath.tools.doclets.DocletOptionString
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+/**
+ * Processes a doclet option whose value is an arbitrary string.
+ */
+public class DocletOptionString
+ extends DocletOption
+{
+ private String value = null;
+
+ public DocletOptionString(String optionName)
+ {
+ super(optionName);
+ }
+
+ public String getValue()
+ {
+ return this.value;
+ }
+
+ public int getLength()
+ {
+ return 2;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+ value = optionArr[1];
+ return true;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java
new file mode 100644
index 0000000..fa5cf84
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/InlineTagRenderer.java
@@ -0,0 +1,29 @@
+/* gnu.classpath.tools.doclets.InlineTagRenderer
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import com.sun.javadoc.Tag;
+import gnu.classpath.tools.taglets.TagletContext;
+
+public interface InlineTagRenderer
+{
+ public String renderInlineTags(Tag[] tags, TagletContext context);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java
new file mode 100644
index 0000000..f8806c5
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/InvalidPackageWildcardException.java
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.doclets.InvalidPackageWildcardException
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+/**
+ * Thrown when an invalid wildcard pattern is passed to {@link
+ * PackageMatcher.addWildcard(String)}.
+ */
+public class InvalidPackageWildcardException
+ extends Exception
+{
+ public InvalidPackageWildcardException(String msg)
+ {
+ super(msg);
+ }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java
new file mode 100644
index 0000000..a005b16
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageGroup.java
@@ -0,0 +1,41 @@
+/* gnu.classpath.tools.doclets.PackageGroup
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import java.util.SortedSet;
+
+/**
+ * Stores a package group given on the command line.
+ */
+public class PackageGroup
+{
+ private String name;
+ private SortedSet packages; // contains PackageDoc
+
+ public PackageGroup(String name, SortedSet packages)
+ {
+ this.name = name;
+ this.packages = packages;
+ }
+
+ public String getName() { return name; }
+ public SortedSet getPackages() { return packages; }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java
new file mode 100644
index 0000000..23da79c
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/PackageMatcher.java
@@ -0,0 +1,135 @@
+/* gnu.classpath.tools.doclets.PackageMatcher
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import java.util.Iterator;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TreeSet;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+import com.sun.javadoc.PackageDoc;
+
+/**
+ * Filters a set of packages according to a set of wildcards.
+ */
+public class PackageMatcher
+{
+ private Set patterns = new HashSet();
+
+ /**
+ * Add a wildcard to be matched. Wildcards can contain asterisk
+ * characters which match zero or more characters.
+ *
+ * @throw InvalidPackageWildcardException if the wildcard cannot
+ * match any valid package name.
+ */
+ public void addWildcard(String wildcard)
+ throws InvalidPackageWildcardException
+ {
+ final int STATE_ID_START = 0;
+ final int STATE_ID = 1;
+
+ int state = STATE_ID_START;
+
+ char[] wildcardChars = wildcard.toCharArray();
+ StringBuffer regexString = new StringBuffer();
+
+ for (int i=0; i<wildcardChars.length; ++i) {
+ char c = wildcardChars[i];
+ switch (state) {
+ case STATE_ID_START:
+ if ('*' == c) {
+ regexString.append(".*");
+ }
+ else if (Character.isJavaIdentifierStart(c)) {
+ regexString.append(c);
+ }
+ else {
+ throw new InvalidPackageWildcardException(wildcard);
+ }
+ state = STATE_ID;
+ break;
+
+ case STATE_ID:
+ if ('.' == c) {
+ regexString.append("\\.");
+ state = STATE_ID_START;
+ }
+ else if ('*' == c) {
+ regexString.append(".*");
+ }
+ else if (Character.isJavaIdentifierPart(c)) {
+ regexString.append(c);
+ }
+ else {
+ throw new InvalidPackageWildcardException(wildcard);
+ }
+ }
+ }
+ if (STATE_ID_START == state) {
+ throw new InvalidPackageWildcardException(wildcard);
+ }
+
+ patterns.add(Pattern.compile(regexString.toString()));
+ }
+
+ /**
+ * Return a sorted, filtered set of packages. A package from the
+ * array given will be put into the output list if it matches one
+ * or more of the wildcards added to this PackageMatcher before.
+ */
+ public SortedSet filter(PackageDoc[] packageDocs)
+ {
+ SortedSet result = new TreeSet();
+ for (int i=0; i<packageDocs.length; ++i) {
+ if (match(packageDocs[i])) {
+ result.add(packageDocs[i]);
+ }
+ }
+ return result;
+ }
+
+ /**
+ * Return true when the given PackageDoc matches one or more of
+ * the wildcard added to this PackageMatcher before.
+ */
+ public boolean match(PackageDoc packageDoc)
+ {
+ Iterator it = patterns.iterator();
+ while (it.hasNext()) {
+ Pattern pattern = (Pattern)it.next();
+ Matcher matcher = pattern.matcher(packageDoc.name());
+ if (matcher.matches()) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ public String toString()
+ {
+ return "PackageMatcher{patterns=" + patterns + "}";
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java
new file mode 100644
index 0000000..86a6a4e
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/StandardTaglet.java
@@ -0,0 +1,83 @@
+/* gnu.classpath.tools.doclets.StandardTaglet
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+import com.sun.javadoc.Tag;
+import com.sun.tools.doclets.Taglet;
+
+/**
+ * Represents one of the built-in taglets. Used for specifying taglet
+ * order.
+ */
+public class StandardTaglet
+ implements Taglet
+{
+ private String name;
+
+ /**
+ * Initialize with one of the built-in taglet names.
+ */
+ public StandardTaglet(String name) {
+ this.name = name;
+ }
+
+ public boolean inField() {
+ return true;
+ }
+
+ public boolean inConstructor() {
+ return true;
+ }
+
+ public boolean inMethod() {
+ return true;
+ }
+
+ public boolean inOverview() {
+ return true;
+ }
+
+ public boolean inPackage() {
+ return true;
+ }
+
+ public boolean inType() {
+ return true;
+ }
+
+ public boolean isInlineTag() {
+ return false;
+ }
+
+ public String getName() {
+ return this.name;
+ }
+
+ public String toString(Tag tag) {
+ //assert(false);
+ return null;
+ }
+
+ public String toString(Tag[] tags) {
+ //assert(false);
+ return null;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java
new file mode 100644
index 0000000..e626369
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/TagletPrinter.java
@@ -0,0 +1,30 @@
+/* gnu.classpath.tools.doclets.TagletPrinter
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets;
+
+/**
+ * Call-back interface for taglet string output.
+ */
+public interface TagletPrinter
+{
+ public void printTagletString(String s);
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java
new file mode 100644
index 0000000..63026de
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/debugdoclet/DebugDoclet.java
@@ -0,0 +1,137 @@
+package gnu.classpath.tools.doclets.debugdoclet;
+
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.FieldDoc;
+import com.sun.javadoc.MethodDoc;
+import com.sun.javadoc.PackageDoc;
+import com.sun.javadoc.RootDoc;
+import com.sun.javadoc.Tag;
+
+import java.io.PrintStream;
+
+import java.util.Arrays;
+
+public class DebugDoclet
+{
+ public static boolean start(RootDoc rootDoc)
+ {
+ new DebugDoclet().run(rootDoc);
+ return true;
+ }
+
+ private PrintStream out;
+
+ public DebugDoclet()
+ {
+ out = System.out;
+ }
+
+ private void printHeader(String header)
+ {
+ out.println();
+ out.println("******** " + header + " ********");
+ out.println();
+ }
+
+ private void printSubHeader(String header)
+ {
+ out.println();
+ out.println("======== " + header + " ========");
+ out.println();
+ }
+
+ private void printSub2Header(String header)
+ {
+ out.println();
+ out.println("-------- " + header + " --------");
+ out.println();
+ }
+
+ private void run(RootDoc rootDoc)
+ {
+ printHeader("Overview");
+
+ printSubHeader("Specified Packages");
+
+ PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();
+ Arrays.sort(specifiedPackages);
+ for (int i=0; i<specifiedPackages.length; ++i) {
+ out.println(specifiedPackages[i].name());
+ }
+
+ printSubHeader("Specified Classes");
+
+ ClassDoc[] specifiedClasses = rootDoc.specifiedClasses();
+ Arrays.sort(specifiedClasses);
+ for (int i=0; i<specifiedClasses.length; ++i) {
+ out.println(specifiedClasses[i].qualifiedTypeName());
+ }
+ printSubHeader("Classes");
+
+ ClassDoc[] classes = rootDoc.classes();
+ Arrays.sort(classes);
+ for (int i=0; i<classes.length; ++i) {
+ out.println(classes[i].qualifiedTypeName());
+ }
+
+ printHeader("Class Detail");
+
+ for (int i=0; i<classes.length; ++i) {
+ printSubHeader(classes[i].qualifiedTypeName());
+
+ printTags(classes[i].firstSentenceTags());
+
+ printSub2Header("Methods");
+
+ MethodDoc[] methods = classes[i].methods();
+
+ for (int j=0; j<methods.length; ++j) {
+ out.println("name: \"" + methods[j].name() + "\"");
+ out.println("signature: \"" + methods[j].signature() + "\"");
+ out.println("modifiers: \"" + methods[j].modifiers() + "\"");
+ out.print("throws: ");
+ ClassDoc[] thrownExceptions = methods[j].thrownExceptions();
+ for (int k=0; k<thrownExceptions.length; ++k) {
+ if (k>0) { out.print(", "); }
+ out.print(thrownExceptions[k].qualifiedTypeName());
+ }
+ out.println();
+ }
+
+ printSub2Header("Fields");
+
+ FieldDoc[] fields = classes[i].fields();
+
+ for (int j=0; j<fields.length; ++j) {
+ out.println("name: \"" + fields[j].name() + "\"");
+ out.println("modifiers: \"" + fields[j].modifiers() + "\"");
+ out.println();
+ }
+
+ printSub2Header("Serializable Fields");
+
+ FieldDoc[] sfields = classes[i].serializableFields();
+
+ for (int j=0; j<sfields.length; ++j) {
+ out.println("name: \"" + sfields[j].name() + "\"");
+ out.println("modifiers: \"" + sfields[j].modifiers() + "\"");
+ out.println();
+ }
+ }
+ }
+
+ private void printTag(Tag tag)
+ {
+ if (null != tag.text()) {
+ System.out.println(tag.text());
+ }
+ }
+
+ private void printTags(Tag[] tags)
+ {
+ for (int i=0; i<tags.length; ++i) {
+ out.println("Tag #" + (i+1) + ":");
+ printTag(tags[i]);
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java
new file mode 100644
index 0000000..5086759
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/CssClass.java
@@ -0,0 +1,283 @@
+/* gnu.classpath.tools.doclets.htmldoclet.CssClass
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.htmldoclet;
+
+/**
+ * Represents a CSS (Cascading Stylesheet) class. Supports
+ * substituting <code>div</code> and <code>span</code> tags by more
+ * specialized HTML tags.
+ */
+public class CssClass
+{
+ public static final CssClass BODY_MENU_PACKAGES = new CssClass("menu packages");
+ public static final CssClass BODY_MENU_CLASSES = new CssClass("menu classes");
+ public static final CssClass BODY_CONTENT_CLASS = new CssClass("content class");
+ public static final CssClass BODY_CONTENT_DEPRECATED = new CssClass("content deprecated");
+ public static final CssClass BODY_CONTENT_PACKAGE = new CssClass("content package");
+ public static final CssClass BODY_CONTENT_OVERVIEW = new CssClass("content overview");
+ public static final CssClass BODY_CONTENT_ABOUT = new CssClass("content about");
+ public static final CssClass BODY_CONTENT_HELP = new CssClass("content help");
+ public static final CssClass BODY_CONTENT_PACKAGE_TREE = new CssClass("content packagetree");
+ public static final CssClass BODY_CONTENT_FULL_TREE = new CssClass("content fulltree");
+ public static final CssClass BODY_CONTENT_INDEX = new CssClass("content index");
+ public static final CssClass BODY_CONTENT_USES = new CssClass("content uses");
+ public static final CssClass BODY_CONTENT_SOURCE = new CssClass("content source");
+
+ public static final CssClass OVERVIEW_TITLE = new CssClass("overview title", "h1");
+ public static final CssClass OVERVIEW_SUMMARY = new CssClass("overview summary");
+ public static final CssClass OVERVIEW_SUMMARY_LEFT = new CssClass("left");
+ public static final CssClass OVERVIEW_SUMMARY_RIGHT = new CssClass("right");
+ public static final CssClass OVERVIEW_DESCRIPTION_TOP = new CssClass("overview description top");
+ public static final CssClass OVERVIEW_DESCRIPTION_FULL = new CssClass("overview description full");
+
+ public static final CssClass DEPRECATION_TITLE = new CssClass("deprecation title", "h1");
+ public static final CssClass DEPRECATION_SUMMARY = new CssClass("summary");
+ public static final CssClass DEPRECATION_SUMMARY_LEFT = new CssClass("left");
+ public static final CssClass DEPRECATION_SUMMARY_DESCRIPTION = new CssClass("description");
+ public static final CssClass DEPRECATION_TOC = new CssClass("dep-toc");
+ public static final CssClass DEPRECATION_TOC_HEADER = new CssClass("header", "h3");
+ public static final CssClass DEPRECATION_TOC_LIST = new CssClass("list", "ul");
+ public static final CssClass DEPRECATION_TOC_ENTRY = new CssClass("entry", "li");
+ public static final CssClass DEPRECATION_EMPTY = new CssClass("dep-empty", "p");
+ public static final CssClass DEPRECATION_LIST = new CssClass("dep-list", "div");
+
+ public static final CssClass SERIALIZED_TITLE = new CssClass("serialized title", "h1");
+ public static final CssClass SERIALIZED_PACKAGE_HEADER = new CssClass("serialized package header", "h2");
+ public static final CssClass SERIALIZED_CLASS_HEADER = new CssClass("serialized class header", "h3");
+ public static final CssClass SERIALIZED_SVUID_OUTER = new CssClass("serialized svuid outer", "p");
+ public static final CssClass SERIALIZED_SVUID_HEADER = new CssClass("serialized svuid header", "b");
+ public static final CssClass SERIALIZED_SVUID_VALUE = new CssClass("serialized svuid header");
+ public static final CssClass SERIALIZED_SECTION = new CssClass("serialized section");
+ public static final CssClass SERIALIZED_SECTION_HEADER = new CssClass("serialized section header", "h4");
+
+ public static final CssClass PACKAGE_TITLE = new CssClass("package title", "h1");
+ public static final CssClass PACKAGE_SUMMARY = new CssClass("package summary");
+ public static final CssClass PACKAGE_SUMMARY_LEFT = new CssClass("left");
+ public static final CssClass PACKAGE_SUMMARY_RIGHT = new CssClass("right");
+ public static final CssClass PACKAGE_DESCRIPTION_TOP = new CssClass("package description top");
+ public static final CssClass PACKAGE_DESCRIPTION_FULL = new CssClass("package description full");
+ public static final CssClass PACKAGE_TREE_TITLE = new CssClass("package tree title", "h1");
+ public static final CssClass PACKAGE_TREE_SECTION_TITLE = new CssClass("package tree section title", "h2");
+ public static final CssClass PACKAGE_TREE = new CssClass("tree", "ul");
+
+ public static final CssClass TREE_LINK = new CssClass("tree link", "b");
+
+ public static final CssClass FULL_TREE_PACKAGELIST = new CssClass("fulltree package list", "dl");
+ public static final CssClass FULL_TREE_PACKAGELIST_HEADER = new CssClass("fulltree package header", "dt", "b");
+ public static final CssClass FULL_TREE_PACKAGELIST_ITEM = new CssClass("fulltree package item", "dd");
+
+ public static final CssClass PACKAGE_MENU_LIST = new CssClass("package menu-list", "div");
+ public static final CssClass PACKAGE_MENU_ENTRY = new CssClass("package menu-entry");
+ public static final CssClass PACKAGE_MENU_TITLE = new CssClass("package menu-title", "h4");
+
+ public static final CssClass CLASS_MENU_LIST = new CssClass("classes menu-list", "div");
+ public static final CssClass CLASS_MENU_TITLE = new CssClass("classes menu-title", "h4");
+ public static final CssClass CLASS_MENU_SUBTITLE = new CssClass("classes menu-subtitle", "p");
+ public static final CssClass CLASS_MENU_ENTRY_CLASS = new CssClass("classes menu-entry class");
+ public static final CssClass CLASS_MENU_ENTRY_INTERFACE = new CssClass("classes menu-entry interface", "i");
+
+ public static final CssClass INDEX_TITLE = new CssClass("index title", "h1");
+ public static final CssClass INDEX_CATEGORY = new CssClass("index category");
+ public static final CssClass INDEX_CATEGORY_HEADER = new CssClass("index category header", "h2");
+ public static final CssClass INDEX_ENTRY = new CssClass("index entry");
+ public static final CssClass INDEX_ENTRY_DESCRIPTION = new CssClass("description");
+ public static final CssClass INDEX_ENTRY_KEY = new CssClass("key");
+ public static final CssClass INDEX_LETTERS = new CssClass("index letters");
+ public static final CssClass INDEX_LETTER = new CssClass("index letter");
+ public static final CssClass INDEX_LETTER_SPACER = new CssClass("index letter spacer");
+
+ public static final CssClass CLASS_TITLE = new CssClass("class title outer");
+ public static final CssClass CLASS_TITLE_PACKAGE = new CssClass("class title-package", "h3");
+ public static final CssClass CLASS_TITLE_CLASS = new CssClass("class title-class", "h1");
+ public static final CssClass CLASS_SUBCLASSES = new CssClass("class subclasses", "dl");
+ public static final CssClass CLASS_SUBCLASSES_HEADER = new CssClass("class subclasses header", "dt", "b");
+ public static final CssClass CLASS_SUBCLASSES_ITEM = new CssClass("class subclasses header", "dd");
+ public static final CssClass CLASS_ENCLOSINGCLASS = new CssClass("class enclosing", "dl");
+ public static final CssClass CLASS_ENCLOSINGCLASS_HEADER = new CssClass("class enclosing header", "dt", "b");
+ public static final CssClass CLASS_ENCLOSINGCLASS_ITEM = new CssClass("class enclosing item", "dd");
+ public static final CssClass CLASS_KNOWNIMPLEMENTING = new CssClass("class knownimplementing", "dl");
+ public static final CssClass CLASS_KNOWNIMPLEMENTING_HEADER = new CssClass("header", "dt", "b");
+ public static final CssClass CLASS_KNOWNIMPLEMENTING_ITEM = new CssClass("item", "dd");
+ public static final CssClass CLASS_INHERITANCETREE = new CssClass("class inheritance-tree");
+ public static final CssClass CLASS_SYNOPSIS = new CssClass("class synopsis outer");
+ public static final CssClass CLASS_SYNOPSIS_NAME = new CssClass("class synopsis name", "b");
+ public static final CssClass CLASS_SYNOPSIS_DECLARATION = new CssClass("class synopsis declaration", "div", "code");
+ public static final CssClass CLASS_SYNOPSIS_SUPERCLASS = new CssClass("class synopsis superclass", "div", "code");
+ public static final CssClass CLASS_SYNOPSIS_IMPLEMENTS = new CssClass("class synopsis implements", "div", "code");
+ public static final CssClass CLASS_DESCRIPTION = new CssClass("class description");
+ public static final CssClass CLASS_SUMMARY = new CssClass("class summary");
+ public static final CssClass CLASS_SUMMARY_LEFT = new CssClass("left", new String[] { "valign" }, new String[] { "top" });
+ public static final CssClass CLASS_SUMMARY_LEFT_SYNOPSIS = new CssClass("synopsis", "code");
+ public static final CssClass CLASS_SUMMARY_RIGHT = new CssClass("right");
+ public static final CssClass CLASS_SUMMARY_RIGHT_LIST = new CssClass("list", "dl");
+ public static final CssClass CLASS_SUMMARY_RIGHT_SYNOPSIS = new CssClass("synopsis", "dt", "code");
+ public static final CssClass CLASS_SUMMARY_RIGHT_DESCRIPTION = new CssClass("description", "dd");
+ public static final CssClass CLASS_SUMMARY_INHERITED = new CssClass("inherited");
+ public static final CssClass CLASS_SUMMARY_INHERITED_MEMBER = new CssClass("member", "code");
+ public static final CssClass CLASS_BOILERPLATE = new CssClass("boilerplate", "pre", new String[] { "style" }, new String[] { "font-size: x-small;" });
+
+ public static final CssClass USAGE_TITLE = new CssClass("usage title", "h1");
+ public static final CssClass USAGE_PACKAGE_TITLE = new CssClass("usage package title", "h2");
+ public static final CssClass USAGE_USAGE_TITLE = new CssClass("usage usage title", "h3");
+ public static final CssClass USAGE_SUMMARY = new CssClass("usage summary");
+ public static final CssClass USAGE_SUMMARY_LEFT = new CssClass("left");
+ public static final CssClass USAGE_SUMMARY_RIGHT = new CssClass("right");
+ public static final CssClass USAGE_SUMMARY_SYNOPSIS = new CssClass("synopsis");
+ public static final CssClass USAGE_SUMMARY_DESCRIPTION = new CssClass("description");
+ public static final CssClass USAGE_TABLE_HEADER = new CssClass("table header", "h3");
+ public static final CssClass USAGE_EMPTY = new CssClass("usage empty", "p");
+
+ public static final CssClass MEMBER_DETAIL = new CssClass("member detail outer");
+ public static final CssClass MEMBER_DETAIL_NAME = new CssClass("member detail name", "h3");
+ public static final CssClass MEMBER_DETAIL_BODY = new CssClass("member detail name", "blockquote");
+ public static final CssClass MEMBER_DETAIL_SYNOPSIS = new CssClass("member detail synopsis", "pre");
+ public static final CssClass MEMBER_DETAIL_DESCRIPTION = new CssClass("member detail description");
+ public static final CssClass MEMBER_DETAIL_SPECIFIED_BY_LIST = new CssClass("member detail specified by list", "dl");
+ public static final CssClass MEMBER_DETAIL_SPECIFIED_BY_HEADER = new CssClass("member detail specified by header", "dt", "b");
+ public static final CssClass MEMBER_DETAIL_SPECIFIED_BY_ITEM = new CssClass("member detail specified by item", "dd");
+ public static final CssClass MEMBER_DETAIL_OVERRIDDEN_LIST = new CssClass("member detail overridden list", "dl");
+ public static final CssClass MEMBER_DETAIL_OVERRIDDEN_HEADER = new CssClass("member detail overridden header", "dt", "b");
+ public static final CssClass MEMBER_DETAIL_OVERRIDDEN_ITEM = new CssClass("member detail overridden item", "dd");
+ public static final CssClass MEMBER_DETAIL_PARAMETER_LIST = new CssClass("parameter", "div", "dl");
+ public static final CssClass MEMBER_DETAIL_PARAMETER_HEADER = new CssClass("header", "dt", "b");
+ public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM = new CssClass("item", "dd");
+ public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM_NAME = new CssClass("name", "code");
+ public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM_SEPARATOR = new CssClass("separator");
+ public static final CssClass MEMBER_DETAIL_PARAMETER_ITEM_DESCRIPTION = new CssClass("description");
+ public static final CssClass MEMBER_DETAIL_RETURN_LIST = new CssClass("member detail return list", "div", "dl");
+ public static final CssClass MEMBER_DETAIL_RETURN_HEADER = new CssClass("member detail return header", "dt", "b");
+ public static final CssClass MEMBER_DETAIL_RETURN_ITEM = new CssClass("member detail return item", "dd");
+ public static final CssClass MEMBER_DETAIL_THROWN_LIST = new CssClass("member detail thrown list", "div", "dl");
+ public static final CssClass MEMBER_DETAIL_THROWN_HEADER = new CssClass("member detail thrown header", "dt", "b");
+ public static final CssClass MEMBER_DETAIL_THROWN_ITEM = new CssClass("member detail thrown item", "dd");
+ public static final CssClass MEMBER_DETAIL_THROWN_ITEM_NAME = new CssClass("name", "code");
+ public static final CssClass MEMBER_DETAIL_THROWN_ITEM_SEPARATOR = new CssClass("separator");
+ public static final CssClass MEMBER_DETAIL_THROWN_ITEM_DESCRIPTION = new CssClass("description");
+
+ public static final CssClass TABLE_HEADER = new CssClass("table header", "h2");
+ public static final CssClass TABLE_SUB_HEADER = new CssClass("table sub header", "h3");
+ public static final CssClass TABLE_CONTAINER = new CssClass("table container", "dl", "dd");
+
+ public static final CssClass SECTION = new CssClass("section", "div");
+ public static final CssClass SECTION_HEADER = new CssClass("section header", "h2");
+
+ public static final CssClass NAVBAR_TOP = new CssClass("navbar div top");
+ public static final CssClass NAVBAR_TOP_NAVI = new CssClass("navi");
+ public static final CssClass NAVBAR_TOP_HEADER = new CssClass("header", new String[] { "rowspan" }, new String[] { "2" });
+ public static final CssClass NAVBAR_BOTTOM = new CssClass("navbar div bottom");
+ public static final CssClass NAVBAR_BOTTOM_SPACER = new CssClass("navbar bottom spacer", "p");
+ public static final CssClass NAVBAR_ITEM_ENABLED = new CssClass("navbar item enabled");
+ public static final CssClass NAVBAR_ITEM_DISABLED = new CssClass("navbar item disabled");
+ public static final CssClass NAVBAR_ITEM_ACTIVE = new CssClass("navbar item active");
+
+ public static final CssClass TAGLET = new CssClass("taglet", "div");
+
+ public static final CssClass ABOUT_TITLE = new CssClass("about title", "h1");
+ public static final CssClass ABOUT_GENERATOR = new CssClass("about generator", "p");
+
+ public static final CssClass SOURCE = new CssClass("source body");
+ public static final CssClass SOURCE_TITLE = new CssClass("source title", "h1");
+
+ public static final CssClass DEPRECATED = new CssClass("deprecated", "span");
+ public static final CssClass DEPRECATED_INLINE = new CssClass("deprecated", "p");
+ public static final CssClass DEPRECATED_HEADER = new CssClass("deprecated header", "b");
+ public static final CssClass DEPRECATED_BODY = new CssClass("deprecated", "i");
+
+ private String name;
+ private String elementName;
+ private String innerElementName;
+ private String[] attributeNames;
+ private String[] attributeValues;
+
+ private CssClass(String name)
+ {
+ this(name, null);
+ }
+
+ private CssClass(String name, String elementName)
+ {
+ this(name, elementName, null);
+ }
+
+ private CssClass(String name, String elementName, String innerElementName)
+ {
+ this(name, elementName, innerElementName, null, null);
+ }
+
+ private CssClass(String name, String elementName, String[] attributeNames, String[] attributeValues)
+ {
+ this(name, null, null, attributeNames, attributeValues);
+ }
+
+ private CssClass(String name, String[] attributeNames, String[] attributeValues)
+ {
+ this(name, null, null, attributeNames, attributeValues);
+ }
+
+ private CssClass(String name, String elementName, String innerElementName, String[] attributeNames, String[] attributeValues)
+ {
+ this.name = name;
+ this.elementName = elementName;
+ this.innerElementName = innerElementName;
+ this.attributeNames = attributeNames;
+ this.attributeValues = attributeValues;
+ }
+
+ public String getSpanElementName()
+ {
+ if (null != this.elementName) {
+ return this.elementName;
+ }
+ else {
+ return "span";
+ }
+ }
+
+ public String getDivElementName()
+ {
+ if (null != this.elementName) {
+ return this.elementName;
+ }
+ else {
+ return "div";
+ }
+ }
+
+ public String getInnerElementName()
+ {
+ return this.innerElementName;
+ }
+
+ public String[] getAttributeNames()
+ {
+ return this.attributeNames;
+ }
+
+ public String[] getAttributeValues()
+ {
+ return this.attributeValues;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java
new file mode 100644
index 0000000..7fd2fa0
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/ExternalDocSet.java
@@ -0,0 +1,170 @@
+/* gnu.classpath.tools.doclets.htmldoclet.ExternalDocSet
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.htmldoclet;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import java.util.HashSet;
+import java.util.Properties;
+import java.util.Set;
+
+import com.sun.javadoc.ClassDoc;
+
+public class ExternalDocSet
+{
+ private String url;
+ private String packageListDir;
+ private URL docSetDirectoryURL;
+
+ public String getPackageListDir()
+ {
+ return packageListDir;
+ }
+
+ public ExternalDocSet(String url,
+ String packageListDir)
+ {
+ this.url = url;
+ this.packageListDir = packageListDir;
+ }
+
+ private Set packageNames = new HashSet();
+ private boolean javadocCompatible;
+
+ public void load(File targetDirectory)
+ throws IOException, MalformedURLException
+ {
+ if (!url.endsWith("/")) {
+ url += "/";
+ }
+
+ this.docSetDirectoryURL = new URL(targetDirectory.toURL(),
+ url);
+
+ URL packageListDirURL;
+ if (null != packageListDir) {
+ if (!packageListDir.endsWith("/")) {
+ packageListDir += "/";
+ }
+ packageListDirURL = new URL(new File(System.getProperty("user.dir")).toURL(),
+ packageListDir);
+ }
+ else {
+ packageListDirURL = docSetDirectoryURL;
+ }
+
+ URL packageListURL = new URL(packageListDirURL,
+ "package-list");
+ InputStream in = packageListURL.openStream();
+ if (null != in) {
+ readPackages(in);
+ in.close();
+ }
+ else {
+ throw new FileNotFoundException(packageListURL.toString());
+ }
+
+ URL gjdocPropertiesURL = new URL(packageListDirURL,
+ "gjdoc.properties");
+ try {
+ InputStream propertiesIn = gjdocPropertiesURL.openStream();
+ if (null != in) {
+ Properties properties = new Properties();
+ properties.load(propertiesIn);
+ propertiesIn.close();
+
+ String gjdocCompatProperty = properties.getProperty("gjdoc.compat");
+ if (null != gjdocCompatProperty) {
+ javadocCompatible = "true".equals(properties.getProperty("gjdoc.compat"));
+ }
+ else {
+ javadocCompatible = true;
+ }
+ }
+ else {
+ javadocCompatible = true;
+ }
+ }
+ catch (FileNotFoundException e) {
+ javadocCompatible = true;
+ }
+ }
+
+ public String getPackageDocURL(String packageName)
+ {
+ try {
+ URL packageURL = new URL(docSetDirectoryURL,
+ packageName.replace('.', '/'));
+ return packageURL.toString();
+ }
+ catch (MalformedURLException e) {
+ // This should not happen since we know that packageName is a
+ // proper Java identifiers, so the resulting URL can't be
+ // invalid
+ throw new RuntimeException(e);
+ }
+ }
+
+ public String getClassDocURL(String packageName, String typeName)
+ {
+ try {
+ URL fileURL = new URL(docSetDirectoryURL,
+ packageName.replace('.', '/') + "/" + typeName + ".html");
+ return fileURL.toString();
+ }
+ catch (MalformedURLException e) {
+ // This should not happen since we know that packageName and
+ // typeName are proper Java identifiers, so the resulting URL
+ // can't be invalid
+ throw new RuntimeException(e);
+ }
+ }
+
+ protected void readPackages(InputStream in)
+ throws IOException
+ {
+ BufferedReader reader
+ = new BufferedReader(new InputStreamReader(in, "UTF-8"));
+ String line;
+ while ((line = reader.readLine()) != null) {
+ line = line.trim();
+ packageNames.add(line);
+ }
+ }
+
+ public Set getPackageNames()
+ {
+ return packageNames;
+ }
+
+ public boolean isJavadocCompatible()
+ {
+ return javadocCompatible;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java
new file mode 100644
index 0000000..837333d
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlDoclet.java
@@ -0,0 +1,3883 @@
+/* gnu.classpath.tools.doclets.htmldoclet.HtmlDoclet
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.htmldoclet;
+
+import gnu.classpath.tools.IOToolkit;
+
+import gnu.classpath.tools.doclets.AbstractDoclet;
+import gnu.classpath.tools.doclets.DocletConfigurationException;
+import gnu.classpath.tools.doclets.DocletOption;
+import gnu.classpath.tools.doclets.DocletOptionFile;
+import gnu.classpath.tools.doclets.DocletOptionFlag;
+import gnu.classpath.tools.doclets.DocletOptionString;
+import gnu.classpath.tools.doclets.PackageGroup;
+import gnu.classpath.tools.doclets.TagletPrinter;
+import gnu.classpath.tools.doclets.InlineTagRenderer;
+
+import gnu.classpath.tools.doclets.xmldoclet.HtmlRepairer;
+
+import gnu.classpath.tools.taglets.GnuExtendedTaglet;
+import gnu.classpath.tools.taglets.TagletContext;
+
+import gnu.classpath.tools.java2xhtml.Java2xhtml;
+
+import gnu.classpath.tools.StringToolkit;
+
+import com.sun.javadoc.*;
+import com.sun.tools.doclets.Taglet;
+
+import java.io.ByteArrayInputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.FileReader;
+import java.io.FileWriter;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.io.IOException;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.StringWriter;
+
+import java.net.MalformedURLException;
+
+import java.nio.charset.Charset;
+
+import java.text.DateFormat;
+import java.text.MessageFormat;
+
+import java.util.Arrays;
+import java.util.Calendar;
+import java.util.Collection;
+import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.LinkedHashSet;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.ListIterator;
+import java.util.Locale;
+import java.util.Map;
+import java.util.Properties;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.TimeZone;
+import java.util.TreeSet;
+
+public class HtmlDoclet
+ extends AbstractDoclet
+ implements InlineTagRenderer
+{
+ private static String filenameExtension = ".html";
+
+ /**
+ * Contains ExternalDocSet.
+ */
+ private List externalDocSets = new LinkedList();
+
+ /**
+ * Contains String->ExternalDocSet.
+ */
+ private Map packageNameToDocSet = new HashMap();
+
+ /**
+ * Cache for version string from resource /version.properties
+ */
+ private String docletVersion;
+
+ /**
+ * For now, do not output a help page.
+ */
+ private static final boolean outputHelpPage = false;
+
+ /**
+ * Stores the output encoding (either the one specified using
+ * -charset, or the platform default encoding).
+ */
+ private String outputCharset;
+
+ private void printNavBar(HtmlPage output, String currentPage, ClassDoc currentClass)
+ {
+ output.beginDiv(CssClass.NAVBAR_TOP);
+
+ boolean overviewLevel
+ = ("overview".equals(currentPage)
+ || "full-tree".equals(currentPage)
+ || "index".equals(currentPage)
+ || "split-index".equals(currentPage)
+ || "serialized".equals(currentPage)
+ || "deprecated".equals(currentPage)
+ || "about".equals(currentPage)
+ );
+
+ if (!isSinglePackage()) {
+ if ("overview".equals(currentPage)) {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ output.print("Overview");
+ output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ output.beginAnchor(output.getPathToRoot() + "/overview-summary" + filenameExtension);
+ output.print("Overview");
+ output.endAnchor();
+ output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ }
+
+ output.print(" ");
+ }
+
+ if (!overviewLevel || isSinglePackage()) {
+ if ("package".equals(currentPage)) {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ output.print("Package");
+ output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ String packageHref;
+ if (isSinglePackage()) {
+ packageHref = output.getPathToRoot() + "/" + getPackageURL(getSinglePackage()) + "package-summary" + filenameExtension;
+ }
+ else {
+ packageHref = "package-summary" + filenameExtension;
+ }
+ output.beginAnchor(packageHref);
+ output.print("Package");
+ output.endAnchor();
+ output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ }
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
+ output.print("Package");
+ output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
+ }
+
+ if (optionUse.getValue() || optionLinkSource.getValue()) {
+ output.print(" ");
+
+ if (null != currentClass) {
+ if ("class".equals(currentPage)) {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ output.print("Class");
+ output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ output.beginAnchor(currentClass.name() + filenameExtension);
+ output.print("Class");
+ output.endAnchor();
+ output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ }
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
+ output.print("Class");
+ output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
+ }
+
+ if (optionUse.getValue()) {
+ output.print(" ");
+
+ if (null != currentClass) {
+ if ("uses".equals(currentPage)) {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ output.print("Use");
+ output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ output.beginAnchor(currentClass.name() + "-uses" + filenameExtension);
+ output.print("Use");
+ output.endAnchor();
+ output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ }
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
+ output.print("Use");
+ output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
+ }
+ }
+
+ if (optionLinkSource.getValue()) {
+ output.print(" ");
+
+
+ if ("source".equals(currentPage)) {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ output.print("Source");
+ output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ }
+ else {
+
+ if (null != currentClass) {
+
+ output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ String targetClassName = currentClass.name();
+ String targetAnchor = "";
+ if (null != currentClass.containingClass()) {
+ targetClassName = getOuterClassDoc(currentClass).name();
+ targetAnchor = "#line." + currentClass.position().line();
+ }
+ output.beginAnchor(targetClassName + "-source" + filenameExtension + targetAnchor);
+ output.print("Source");
+ output.endAnchor();
+ output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_DISABLED);
+ output.print("Source");
+ output.endSpan(CssClass.NAVBAR_ITEM_DISABLED);
+ }
+ }
+ }
+ }
+
+
+ if (!optionNoTree.getValue()) {
+ output.print(" ");
+
+ if ("full-tree".equals(currentPage)
+ || "package-tree".equals(currentPage)) {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ output.print("Tree");
+ output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ String treeHref;
+ if (isSinglePackage() && overviewLevel) {
+ treeHref = getPackageURL(getSinglePackage()) + "tree" + filenameExtension;
+ }
+ else {
+ treeHref = "tree" + filenameExtension;
+ }
+
+ output.beginAnchor(treeHref);
+ output.print("Tree");
+ output.endAnchor();
+ output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ }
+ }
+
+ output.print(" ");
+
+ String indexName;
+ if (optionSplitIndex.getValue()) {
+ indexName = "alphaindex-1";
+ }
+ else {
+ indexName = "alphaindex";
+ }
+
+ if ("index".equals(currentPage) || "split-index".equals(currentPage)) {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ output.print("Index");
+ output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ output.beginAnchor(output.getPathToRoot() + "/" + indexName + filenameExtension);
+ output.print("Index");
+ output.endAnchor();
+ output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ }
+
+ if (!optionNoDeprecatedList.getValue()) {
+ output.print(" ");
+
+ if ("deprecated".equals(currentPage)) {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ output.print("Deprecated");
+ output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ output.beginAnchor(output.getPathToRoot() + "/deprecated" + filenameExtension);
+ output.print("Deprecated");
+ output.endAnchor();
+ output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ }
+ }
+
+ if (outputHelpPage) {
+ if (!optionNoHelp.getValue()) {
+ output.print(" ");
+
+ if ("help".equals(currentPage)) {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ output.print("Help");
+ output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ output.beginAnchor(output.getPathToRoot() + "/help" + filenameExtension);
+ output.print("Help");
+ output.endAnchor();
+ output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ }
+ }
+ }
+
+ output.print(" ");
+
+ if ("about".equals(currentPage)) {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ output.print("About");
+ output.endSpan(CssClass.NAVBAR_ITEM_ACTIVE);
+ }
+ else {
+ output.beginSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ output.beginAnchor(output.getPathToRoot() + "/about" + filenameExtension);
+ output.print("About");
+ output.endAnchor();
+ output.endSpan(CssClass.NAVBAR_ITEM_ENABLED);
+ }
+
+ output.endDiv(CssClass.NAVBAR_TOP);
+ }
+
+ private void printNavBarTopRow(HtmlPage output, String currentPage, ClassDoc currentClass)
+ {
+ output.beginRow();
+ output.beginCell(CssClass.NAVBAR_TOP);
+ printNavBar(output, currentPage, currentClass);
+ output.endCell();
+ if (null != optionHeader.getValue()) {
+ output.beginCell(CssClass.NAVBAR_TOP_HEADER);
+ output.print(replaceDocRoot(output, optionHeader.getValue()));
+ output.endCell();
+ }
+ output.endRow();
+ }
+
+ private void printNavBarTopNaviCell(HtmlPage output)
+ {
+ output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+ output.beginAnchor(output.getPathToRoot() + "/index" + filenameExtension, "Show in a frameset", "_top");
+ output.print("Frames");
+ output.endAnchor();
+ output.print(" | ");
+
+ output.beginAnchor(output.getFile().getName(), "Show without frames", "_top");
+ output.print("No Frames");
+ output.endAnchor();
+ output.print(" ");
+
+ output.endCell();
+ }
+
+ private void printNavBarTop(HtmlPage output, String currentPage)
+ {
+ printNavBarTop(output, currentPage, null, null, null);
+ }
+
+ private void printNavBarTop(HtmlPage output, String currentPage,
+ ClassDoc currentClass, Object prev, Object next)
+ {
+ if (!optionNoNavBar.getValue()) {
+ output.beginTable(CssClass.NAVBAR_TOP);
+ printNavBarTopRow(output, currentPage, currentClass);
+ output.beginRow();
+ if ("class".equals(currentPage)) {
+ output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+ ClassDoc prevClass = (ClassDoc)prev;
+ ClassDoc nextClass = (ClassDoc)next;
+ if (null != prevClass) {
+ output.anchor(getClassDocURL(output, prevClass), "Prev Class");
+ }
+ else {
+ output.print("Prev Class");
+ }
+ output.print(" | ");
+ if (null != nextClass) {
+ output.anchor(getClassDocURL(output, nextClass), "Next Class");
+ }
+ else {
+ output.print("Next Class");
+ }
+ output.endCell();
+ }
+ else if ("split-index".equals(currentPage)) {
+ output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+ Integer prevLetter = (Integer)prev;
+ Integer nextLetter = (Integer)next;
+ if (null != prevLetter) {
+ output.anchor("alphaindex-" + prevLetter + filenameExtension, "Prev Letter");
+ }
+ else {
+ output.print("Prev Letter");
+ }
+ output.print(" | ");
+ if (null != nextLetter) {
+ output.anchor("alphaindex-" + nextLetter + filenameExtension, "Next Letter");
+ }
+ else {
+ output.print("Next Letter");
+ }
+ output.endCell();
+ }
+ else {
+ output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+ output.endCell();
+ }
+
+ printNavBarTopNaviCell(output);
+ output.endRow();
+
+ if ("class".equals(currentPage)) {
+ output.beginRow();
+
+ output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+ output.print("Summary: ");
+
+ if (currentClass.innerClasses().length > 0) {
+ output.anchor("#summary-inner", "Nested");
+ }
+ else {
+ output.print("Nested");
+ }
+
+ output.print(" | ");
+
+ if (currentClass.fields().length > 0) {
+ output.anchor("#summary-fields", "Field");
+ }
+ else {
+ output.print("Field");
+ }
+
+ output.print(" | ");
+
+ if (currentClass.methods().length > 0) {
+ output.anchor("#summary-methods", "Method");
+ }
+ else {
+ output.print("Method");
+ }
+
+ output.print(" | ");
+
+ if (currentClass.constructors().length > 0) {
+ output.anchor("#summary-constructors", "Constr");
+ }
+ else {
+ output.print("Constr");
+ }
+
+ output.endCell();
+
+ output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+ output.print("Detail: ");
+
+ if (currentClass.innerClasses().length > 0) {
+ output.anchor("#detail-inner", "Nested");
+ }
+ else {
+ output.print("Nested");
+ }
+
+ output.print(" | ");
+
+ if (currentClass.fields().length > 0) {
+ output.anchor("#detail-fields", "Field");
+ }
+ else {
+ output.print("Field");
+ }
+
+ output.print(" | ");
+
+ if (currentClass.methods().length > 0) {
+ output.anchor("#detail-methods", "Method");
+ }
+ else {
+ output.print("Method");
+ }
+
+ output.print(" | ");
+
+ if (currentClass.constructors().length > 0) {
+ output.anchor("#detail-constructors", "Constr");
+ }
+ else {
+ output.print("Constr");
+ }
+
+ output.endCell();
+ output.endRow();
+ }
+ output.endTable();
+ }
+ }
+
+ private void printNavBarTopPackage(HtmlPage output, String currentPage,
+ PackageDoc prevPackage, PackageDoc nextPackage)
+ {
+ if (!optionNoNavBar.getValue()) {
+ output.beginTable(CssClass.NAVBAR_TOP);
+ printNavBarTopRow(output, currentPage, null);
+
+ output.beginRow();
+ output.beginCell(CssClass.NAVBAR_TOP_NAVI);
+ if (null != prevPackage) {
+ output.anchor(output.getPathToRoot() + "/" + getPackageURL(prevPackage) + "package-summary" + filenameExtension, "Prev Package");
+ }
+ else {
+ output.print("Prev Package");
+ }
+ output.print(" | ");
+ if (null != nextPackage) {
+ output.anchor(output.getPathToRoot() + "/" + getPackageURL(nextPackage) + "package-summary" + filenameExtension, "Next Package");
+ }
+ else {
+ output.print("Next Package");
+ }
+ output.endCell();
+
+ printNavBarTopNaviCell(output);
+ output.endRow();
+
+ output.endTable();
+ }
+ }
+
+ private void printNavBarBottom(HtmlPage output, String currentPage)
+ {
+ printNavBarBottom(output, currentPage, null);
+ }
+
+ private void printNavBarBottom(HtmlPage output, String currentPage, ClassDoc currentClass)
+ {
+ if ("class".equals(currentPage)) {
+ String boilerplate = null;
+ Tag[] boilerplateTags = getOuterClassDoc(currentClass).tags("@boilerplate");
+ if (boilerplateTags.length > 0) {
+ boilerplate = boilerplateTags[0].text();
+ }
+ if (null != boilerplate) {
+ output.hr();
+ output.beginDiv(CssClass.CLASS_BOILERPLATE);
+ output.print(boilerplate);
+ output.endDiv(CssClass.CLASS_BOILERPLATE);
+ output.hr();
+ }
+ }
+
+ if (!optionNoNavBar.getValue()) {
+ output.beginDiv(CssClass.NAVBAR_BOTTOM_SPACER);
+ output.print(" ");
+ output.endDiv(CssClass.NAVBAR_BOTTOM_SPACER);
+ output.beginTable(CssClass.NAVBAR_BOTTOM);
+ output.beginRow();
+ output.beginCell();
+ printNavBar(output, currentPage, currentClass);
+ output.endCell();
+ if (null != optionFooter.getValue()) {
+ output.beginCell();
+ output.print(replaceDocRoot(output, optionFooter.getValue()));
+ output.endCell();
+ }
+ output.endRow();
+ output.endTable();
+ }
+
+ if (null != optionBottom.getValue()) {
+ output.hr();
+ output.print(replaceDocRoot(output, optionBottom.getValue()));
+ }
+ }
+
+ private void printPackagePageClasses(HtmlPage output, ClassDoc[] classDocs, String header)
+ {
+ if (classDocs.length > 0) {
+ output.beginDiv(CssClass.TABLE_CONTAINER);
+ output.beginTable(CssClass.PACKAGE_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+ output.rowDiv(CssClass.TABLE_HEADER, header);
+
+ for (int i=0; i<classDocs.length; ++i) {
+ ClassDoc classDoc = classDocs[i];
+ if (classDoc.isIncluded()) {
+ output.beginRow();
+
+ output.beginCell(CssClass.PACKAGE_SUMMARY_LEFT);
+ printType(output, classDoc);
+ output.endCell();
+
+ output.beginCell(CssClass.PACKAGE_SUMMARY_RIGHT);
+ printTags(output, classDoc, classDoc.firstSentenceTags(), true);
+ output.endCell();
+ output.endRow();
+ }
+ }
+ output.endTable();
+ output.endDiv(CssClass.TABLE_CONTAINER);
+ output.print("\n");
+ }
+ }
+
+ private void printPackagesListFile()
+ throws IOException
+ {
+ PrintWriter out
+ = new PrintWriter(new OutputStreamWriter(new FileOutputStream(new File(getTargetDirectory(),
+ "package-list")),
+ "UTF-8"));
+
+ PackageDoc[] packages = getRootDoc().specifiedPackages();
+ for (int i=0; i<packages.length; ++i) {
+ String packageName = packages[i].name();
+ if (packageName.length() > 0) {
+ out.println(packageName);
+ }
+ }
+
+ out.close();
+ }
+
+ private void printPackagePage(File packageDir, String pathToRoot,
+ PackageDoc packageDoc,
+ PackageDoc prevPackageDoc,
+ PackageDoc nextPackageDoc)
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(packageDir, "package-summary" + filenameExtension),
+ pathToRoot);
+
+ Set keywords = new LinkedHashSet();
+ keywords.add(packageDoc.name() + " packages");
+
+ output.beginPage(getPageTitle(packageDoc.name()), getOutputCharset(),
+ keywords, getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_PACKAGE);
+ printNavBarTopPackage(output, "package", prevPackageDoc, nextPackageDoc);
+
+ output.beginDiv(CssClass.PACKAGE_TITLE);
+ output.print("Package ");
+ if (packageDoc.name().length() > 0) {
+ output.print(packageDoc.name());
+ }
+ else {
+ output.print("&lt;Unnamed&gt;");
+ }
+ output.endDiv(CssClass.PACKAGE_TITLE);
+
+ output.beginDiv(CssClass.PACKAGE_DESCRIPTION_TOP);
+ printTags(output, packageDoc, packageDoc.firstSentenceTags(), true);
+ output.endDiv(CssClass.PACKAGE_DESCRIPTION_TOP);
+
+ printPackagePageClasses(output, packageDoc.interfaces(),
+ "Interface Summary");
+ printPackagePageClasses(output, packageDoc.ordinaryClasses(),
+ "Class Summary");
+ printPackagePageClasses(output, packageDoc.exceptions(),
+ "Exception Summary");
+ printPackagePageClasses(output, packageDoc.errors(),
+ "Error Summary");
+
+ output.anchorName("description");
+ output.beginDiv(CssClass.PACKAGE_DESCRIPTION_FULL);
+ printTags(output, packageDoc, packageDoc.inlineTags(), false);
+ output.endDiv(CssClass.PACKAGE_DESCRIPTION_FULL);
+
+ printNavBarBottom(output, "package");
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ static class TreeNode
+ implements Comparable
+ {
+ ClassDoc classDoc;
+ SortedSet children = new TreeSet();
+
+ TreeNode(ClassDoc classDoc) {
+ TreeNode.this.classDoc = classDoc;
+ }
+
+ public boolean equals(Object other)
+ {
+ return classDoc.equals(((TreeNode)other).classDoc);
+ }
+
+ public int compareTo(Object other)
+ {
+ return classDoc.compareTo(((TreeNode)other).classDoc);
+ }
+
+ public int hashCode()
+ {
+ return classDoc.hashCode();
+ }
+ }
+
+ private TreeNode addClassTreeNode(Map treeMap, ClassDoc classDoc)
+ {
+ TreeNode node = (TreeNode)treeMap.get(classDoc.qualifiedName());
+ if (null == node) {
+ node = new TreeNode(classDoc);
+ treeMap.put(classDoc.qualifiedName(), node);
+
+ ClassDoc superClassDoc = (ClassDoc)classDoc.superclass();
+ if (null != superClassDoc) {
+ TreeNode parentNode = addClassTreeNode(treeMap, superClassDoc);
+ parentNode.children.add(node);
+ }
+ }
+ return node;
+ }
+
+ private TreeNode addInterfaceTreeNode(Map treeMap, ClassDoc classDoc)
+ {
+ TreeNode node = (TreeNode)treeMap.get(classDoc.qualifiedName());
+ if (null == node) {
+ node = new TreeNode(classDoc);
+ treeMap.put(classDoc.qualifiedName(), node);
+
+ ClassDoc[] superInterfaces = classDoc.interfaces();
+ if (null != superInterfaces && superInterfaces.length > 0) {
+ for (int i=0; i<superInterfaces.length; ++i) {
+ TreeNode parentNode = addInterfaceTreeNode(treeMap, superInterfaces[i]);
+ parentNode.children.add(node);
+ }
+ }
+ else {
+ TreeNode rootNode = (TreeNode)treeMap.get("<root>");
+ if (null == rootNode) {
+ rootNode = new TreeNode(null);
+ treeMap.put("<root>", rootNode);
+ }
+ rootNode.children.add(node);
+ }
+ }
+ return node;
+ }
+
+ private void printPackageTreeRec(HtmlPage output, TreeNode node, TreeNode parentNode)
+ {
+ output.beginElement("li", "class", "node");
+ output.beginElement("div");
+ if (node.classDoc.isIncluded()) {
+ String packageName = node.classDoc.containingPackage().name();
+ if (packageName.length() > 0) {
+ output.print(packageName);
+ output.print(".");
+ }
+ output.beginSpan(CssClass.TREE_LINK);
+ printType(output, node.classDoc);
+ output.endSpan(CssClass.TREE_LINK);
+ }
+ else {
+ output.print(possiblyQualifiedName(node.classDoc));
+ }
+ ClassDoc[] interfaces = node.classDoc.interfaces();
+ ClassDoc parentClassDoc = null;
+ if (null != parentNode) {
+ parentClassDoc = parentNode.classDoc;
+ }
+ if (interfaces.length > 0
+ && !(interfaces.length == 1 && interfaces[0].equals(parentClassDoc))) {
+ if (node.classDoc.isInterface()) {
+ output.print(" (also implements ");
+ }
+ else {
+ output.print(" (implements ");
+ }
+
+ boolean firstItem = true;
+ for (int i=0; i<interfaces.length; ++i) {
+ ClassDoc implemented = interfaces[i];
+ if (!implemented.equals(parentClassDoc)) {
+ if (!firstItem) {
+ output.print(", ");
+ }
+ firstItem = false;
+ if (implemented.isIncluded()) {
+ output.print(implemented.containingPackage().name());
+ output.print(".");
+ printType(output, implemented);
+ }
+ else {
+ output.print(possiblyQualifiedName(implemented));
+ }
+ }
+ }
+ output.print(")");
+ }
+
+ output.endElement("div");
+ output.endElement("li");
+ if (!node.children.isEmpty()) {
+ output.beginElement("li", "class", "level");
+ output.beginElement("ul");
+ Iterator it = node.children.iterator();
+ while (it.hasNext()) {
+ TreeNode child = (TreeNode)it.next();
+ printPackageTreeRec(output, child, node);
+ }
+ output.endElement("ul");
+ output.endElement("li");
+ }
+ }
+
+ private void printClassTree(HtmlPage output, ClassDoc[] classDocs)
+ {
+ Map classTreeMap = new HashMap();
+
+ for (int i=0; i<classDocs.length; ++i) {
+ ClassDoc classDoc = classDocs[i];
+ if (!classDoc.isInterface()) {
+ addClassTreeNode(classTreeMap, classDoc);
+ }
+ }
+
+ TreeNode root = (TreeNode)classTreeMap.get("java.lang.Object");
+ if (null != root) {
+ output.div(CssClass.PACKAGE_TREE_SECTION_TITLE, "Class Hierarchy");
+ output.beginDiv(CssClass.PACKAGE_TREE);
+ printPackageTreeRec(output, root, null);
+ output.endDiv(CssClass.PACKAGE_TREE);
+ }
+ }
+
+ private void printInterfaceTree(HtmlPage output, ClassDoc[] classDocs)
+ {
+ Map interfaceTreeMap = new HashMap();
+
+ for (int i=0; i<classDocs.length; ++i) {
+ ClassDoc classDoc = classDocs[i];
+ if (classDoc.isInterface()) {
+ addInterfaceTreeNode(interfaceTreeMap, classDoc);
+ }
+ }
+
+ TreeNode interfaceRoot = (TreeNode)interfaceTreeMap.get("<root>");
+ if (null != interfaceRoot) {
+ Iterator it = interfaceRoot.children.iterator();
+ if (it.hasNext()) {
+ output.div(CssClass.PACKAGE_TREE_SECTION_TITLE, "Interface Hierarchy");
+ output.beginDiv(CssClass.PACKAGE_TREE);
+ while (it.hasNext()) {
+ TreeNode node = (TreeNode)it.next();
+ printPackageTreeRec(output, node, null);
+ }
+ output.endDiv(CssClass.PACKAGE_TREE);
+ }
+ }
+
+ }
+
+ private void printPackageTreePage(File packageDir, String pathToRoot, PackageDoc packageDoc)
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(packageDir,
+ "tree" + filenameExtension),
+ pathToRoot);
+ output.beginPage(getPageTitle(packageDoc.name() + " Hierarchy"),
+ getOutputCharset(),
+ getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_PACKAGE_TREE);
+ printNavBarTop(output, "package-tree");
+
+ output.div(CssClass.PACKAGE_TREE_TITLE, "Hierarchy for Package " + packageDoc.name());
+
+ ClassDoc[] classDocs = packageDoc.allClasses();
+ printClassTree(output, classDocs);
+ printInterfaceTree(output, classDocs);
+
+ printNavBarBottom(output, "package-tree");
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printFullTreePage()
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+ "tree" + filenameExtension),
+ ".");
+ output.beginPage(getPageTitle("Hierarchy"),
+ getOutputCharset(),
+ getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_FULL_TREE);
+ printNavBarTop(output, "full-tree");
+
+ output.div(CssClass.PACKAGE_TREE_TITLE, "Hierarchy for All Packages");
+
+ output.beginDiv(CssClass.FULL_TREE_PACKAGELIST);
+ output.div(CssClass.FULL_TREE_PACKAGELIST_HEADER, "Package Hierarchies:");
+ output.beginDiv(CssClass.FULL_TREE_PACKAGELIST_ITEM);
+ Set allPackages = getAllPackages();
+ Iterator it = allPackages.iterator();
+ while (it.hasNext()) {
+ PackageDoc packageDoc = (PackageDoc)it.next();
+ output.beginAnchor(getPackageURL(packageDoc) + "tree" + filenameExtension);
+ output.print(packageDoc.name());
+ output.endAnchor();
+ if (it.hasNext()) {
+ output.print(", ");
+ }
+ }
+ output.endDiv(CssClass.FULL_TREE_PACKAGELIST_ITEM);
+ output.endDiv(CssClass.FULL_TREE_PACKAGELIST);
+
+ ClassDoc[] classDocs = getRootDoc().classes();
+ printClassTree(output, classDocs);
+ printInterfaceTree(output, classDocs);
+
+ printNavBarBottom(output, "full-tree");
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printIndexEntry(HtmlPage output, Doc entry)
+ {
+ output.beginDiv(CssClass.INDEX_ENTRY);
+ output.beginDiv(CssClass.INDEX_ENTRY_KEY);
+ String anchor = null;
+ String description = null;
+ if (entry instanceof PackageDoc) {
+ output.beginAnchor(getPackageURL((PackageDoc)entry) + "package-summary" + filenameExtension);
+ output.print(entry.name());
+ output.endAnchor();
+ output.print(" - package");
+ }
+ else if (entry instanceof ClassDoc) {
+ ClassDoc classDoc = (ClassDoc)entry;
+ output.beginAnchor(getClassURL(classDoc));
+ output.print(entry.name() + getTypeParameters(classDoc));
+ output.endAnchor();
+ output.print(" - ");
+ if (entry.isInterface()) {
+ output.print("interface ");
+ }
+ else if (entry.isException()) {
+ output.print("exception ");
+ }
+ else if (entry.isError()) {
+ output.print("error ");
+ }
+ else {
+ output.print("class ");
+ }
+ String packageName = classDoc.containingPackage().name();
+ if (packageName.length() > 0) {
+ output.print(packageName);
+ output.print(".");
+ }
+ printType(output, classDoc);
+ }
+ else {
+ ProgramElementDoc memberDoc = (ProgramElementDoc)entry;
+ output.beginAnchor(getMemberDocURL(output, memberDoc));
+ output.print(entry.name());
+ if (memberDoc instanceof ExecutableMemberDoc) {
+ output.print(((ExecutableMemberDoc)memberDoc).signature());
+ }
+ output.endAnchor();
+ output.print(" - ");
+
+ if (memberDoc.isStatic()) {
+ output.print("static ");
+ }
+
+ if (entry.isConstructor()) {
+ output.print("constructor for class ");
+ }
+ else if (entry.isMethod()) {
+ output.print("method in class ");
+ }
+ else if (entry.isField()) {
+ output.print("field in class ");
+ }
+ ClassDoc containingClass = memberDoc.containingClass();
+ String packageName = containingClass.containingPackage().name();
+ if (packageName.length() > 0) {
+ output.print(packageName);
+ output.print(".");
+ }
+ printType(output, containingClass);
+ }
+ output.endDiv(CssClass.INDEX_ENTRY_KEY);
+ output.beginDiv(CssClass.INDEX_ENTRY_DESCRIPTION);
+ printTags(output, entry, entry.firstSentenceTags(), true);
+ output.endDiv(CssClass.INDEX_ENTRY_DESCRIPTION);
+ output.endDiv(CssClass.INDEX_ENTRY);
+ }
+
+ private void printFrameSetPage()
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+ "index" + filenameExtension),
+ ".",
+ HtmlPage.DOCTYPE_FRAMESET);
+
+ String title = getWindowTitle();
+ output.beginPage(title, getOutputCharset(), getStylesheets());
+ output.beginElement("frameset", "cols", "20%,80%");
+
+ String contentURL;
+ if (isSinglePackage()) {
+ output.atomicElement("frame",
+ new String[] { "src", "name" },
+ new String[] { getPackageURL(getSinglePackage()) + "classes" + filenameExtension, "classes" });
+ contentURL = getPackageURL(getSinglePackage()) + "package-summary.html";
+ }
+ else {
+ output.beginElement("frameset", "rows", "25%,75%");
+ output.atomicElement("frame",
+ new String[] { "src", "name" },
+ new String[] { "all-packages" + filenameExtension, "packages" });
+ output.atomicElement("frame",
+ new String[] { "src", "name" },
+ new String[] { "all-classes" + filenameExtension, "classes" });
+ output.endElement("frameset");
+ contentURL = "overview-summary" + filenameExtension;
+ }
+ output.atomicElement("frame",
+ new String[] { "src", "name" },
+ new String[] { contentURL, "content" });
+ output.endElement("frameset");
+ output.endPage();
+ output.close();
+ }
+
+ private void printPackagesMenuPage()
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+ "all-packages" + filenameExtension),
+ ".");
+ output.beginPage(getPageTitle("Package Menu"), getOutputCharset(), getStylesheets());
+ output.beginBody(CssClass.BODY_MENU_PACKAGES, false);
+
+ output.beginSpan(CssClass.PACKAGE_MENU_ENTRY);
+ output.beginAnchor("all-classes" + filenameExtension,
+ null,
+ "classes");
+ output.print("All Classes");
+ output.endAnchor();
+ output.endSpan(CssClass.PACKAGE_MENU_ENTRY);
+
+ output.div(CssClass.PACKAGE_MENU_TITLE, "Packages");
+
+ output.beginDiv(CssClass.PACKAGE_MENU_LIST);
+
+ Set packageDocs = getAllPackages();
+ Iterator it = packageDocs.iterator();
+ while (it.hasNext()) {
+ PackageDoc packageDoc = (PackageDoc)it.next();
+ output.beginSpan(CssClass.PACKAGE_MENU_ENTRY);
+ output.beginAnchor(getPackageURL(packageDoc) + "classes" + filenameExtension,
+ null,
+ "classes");
+ if (packageDoc.name().length() > 0) {
+ output.print(packageDoc.name());
+ }
+ else {
+ output.print("&lt;unnamed package&gt;");
+ }
+ output.endAnchor();
+ output.endSpan(CssClass.PACKAGE_MENU_ENTRY);
+ output.br();
+ }
+
+ output.endDiv(CssClass.PACKAGE_MENU_LIST);
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printClassMenuEntry(HtmlPage output, ClassDoc classDoc)
+ {
+ CssClass entryClass;
+ if (classDoc.isInterface()) {
+ entryClass = CssClass.CLASS_MENU_ENTRY_INTERFACE;
+ }
+ else {
+ entryClass = CssClass.CLASS_MENU_ENTRY_CLASS;
+ }
+ output.beginSpan(entryClass);
+ output.beginAnchor(getClassDocURL(output, classDoc),
+ classDoc.qualifiedTypeName(),
+ "content");
+ output.print(classDoc.name());
+ output.endAnchor();
+ output.endSpan(entryClass);
+ output.br();
+ }
+
+ private void printClassMenuSection(HtmlPage output, Collection classDocs, String header)
+ {
+ if (!classDocs.isEmpty()) {
+ output.div(CssClass.CLASS_MENU_SUBTITLE, header);
+ Iterator it = classDocs.iterator();
+ while (it.hasNext()) {
+ ClassDoc classDoc = (ClassDoc)it.next();
+ printClassMenuEntry(output, classDoc);
+ }
+ }
+ }
+
+ private void printClassMenuList(HtmlPage output, ClassDoc[] classDocs, boolean categorized)
+ {
+ output.beginDiv(CssClass.CLASS_MENU_LIST);
+
+ if (categorized) {
+ Set classes = new TreeSet();
+ Set interfaces = new TreeSet();
+ Set exceptions = new TreeSet();
+ Set errors = new TreeSet();
+
+ for (int i=0; i<classDocs.length; ++i) {
+ ClassDoc classDoc = classDocs[i];
+ if (classDoc.isInterface()) {
+ interfaces.add(classDoc);
+ }
+ else if (classDoc.isException()) {
+ exceptions.add(classDoc);
+ }
+ else if (classDoc.isError()) {
+ errors.add(classDoc);
+ }
+ else {
+ classes.add(classDoc);
+ }
+ }
+ printClassMenuSection(output, interfaces, "Interfaces");
+ printClassMenuSection(output, classes, "Classes");
+ printClassMenuSection(output, exceptions, "Exceptions");
+ printClassMenuSection(output, errors, "Errors");
+ }
+ else {
+ for (int i=0; i<classDocs.length; ++i) {
+ ClassDoc classDoc = classDocs[i];
+ if (classDoc.isIncluded()) {
+ printClassMenuEntry(output, classDoc);
+ }
+ }
+ }
+
+ output.endDiv(CssClass.CLASS_MENU_LIST);
+ }
+
+ private void printAllClassesMenuPage()
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+ "all-classes" + filenameExtension),
+ ".");
+ output.beginPage(getPageTitle("Class Menu"), getOutputCharset(), getStylesheets());
+ output.beginBody(CssClass.BODY_MENU_CLASSES, false);
+
+ output.div(CssClass.CLASS_MENU_TITLE, "All Classes");
+
+ printClassMenuList(output, getRootDoc().classes(), false);
+
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printPackageClassesMenuPage(File packageDir, String pathToRoot, PackageDoc packageDoc)
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(packageDir,
+ "classes" + filenameExtension),
+ pathToRoot);
+
+ output.beginPage(getPageTitle(packageDoc.name() + " Class Menu"),
+ getOutputCharset(), getStylesheets());
+ output.beginBody(CssClass.BODY_MENU_CLASSES, false);
+
+ output.beginDiv(CssClass.CLASS_MENU_TITLE);
+ output.beginAnchor("package-summary" + filenameExtension, "", "content");
+ if (packageDoc.name().length() > 0) {
+ output.print(packageDoc.name());
+ }
+ else {
+ output.print("&lt;Unnamed&gt;");
+ }
+ output.endAnchor();
+ output.endDiv(CssClass.CLASS_MENU_TITLE);
+
+ printClassMenuList(output, packageDoc.allClasses(), true);
+
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printSplitIndex()
+ throws IOException
+ {
+ Map categorizedIndex = getCategorizedIndex();
+ Iterator it = categorizedIndex.keySet().iterator();
+ int n = 1;
+ int count = categorizedIndex.size();
+ while (it.hasNext()) {
+ Character c = (Character)it.next();
+ List classList = (List)categorizedIndex.get(c);
+ printIndexPage(n++, count, c, classList);
+ }
+ }
+
+ private void printIndexPage()
+ throws IOException
+ {
+ printIndexPage(0, 0, null, null);
+ }
+
+ private void printIndexPage(int index, int maxIndex, Character letter, List classList)
+ throws IOException
+ {
+ String pageName = "alphaindex";
+ if (null != letter) {
+ pageName += "-" + index;
+ }
+ HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+ pageName + filenameExtension),
+ ".");
+ output.beginPage(getPageTitle("Alphabetical Index"),
+ getOutputCharset(),
+ getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_INDEX);
+ if (null == letter) {
+ printNavBarTop(output, "index");
+ }
+ else {
+ printNavBarTop(output, "split-index", null,
+ (index > 1) ? new Integer(index - 1) : null,
+ (index < maxIndex) ? new Integer(index + 1) : null);
+ }
+
+ {
+ String title;
+ if (null == letter) {
+ title = "Alphabetical Index";
+ }
+ else {
+ title = "Alphabetical Index: " + letter;
+ }
+ output.div(CssClass.INDEX_TITLE, title);
+
+ if (null != letter || getCategorizedIndex().keySet().size() > 1) {
+ output.beginDiv(CssClass.INDEX_LETTERS);
+
+ Iterator it = getCategorizedIndex().keySet().iterator();
+ int n = 1;
+ while (it.hasNext()) {
+ Character c = (Character)it.next();
+ output.beginSpan(CssClass.INDEX_LETTER);
+ if (letter != null) {
+ output.beginAnchor("alphaindex-" + n + filenameExtension);
+ }
+ else {
+ output.beginAnchor("#" + c);
+ }
+ output.print(c.toString());
+ output.endAnchor();
+ output.endSpan(CssClass.INDEX_LETTER);
+ output.beginSpan(CssClass.INDEX_LETTER_SPACER);
+ output.print(" ");
+ output.endSpan(CssClass.INDEX_LETTER_SPACER);
+ ++n;
+ }
+ }
+
+ output.endDiv(CssClass.INDEX_LETTERS);
+ }
+
+ if (null != letter) {
+ printIndexCategory(output, letter, classList);
+ }
+ else {
+ Map categorizedIndex = getCategorizedIndex();
+ Iterator categoryIt = categorizedIndex.keySet().iterator();
+
+ while (categoryIt.hasNext()) {
+ letter = (Character)categoryIt.next();
+ classList = (List)categorizedIndex.get(letter);
+ output.anchorName(letter.toString());
+ printIndexCategory(output, letter, classList);
+ }
+ }
+
+ printNavBarBottom(output, "index");
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printIndexCategory(HtmlPage output, Character letter, List classList)
+ {
+ Iterator it = classList.iterator();
+
+ output.div(CssClass.INDEX_CATEGORY_HEADER, letter.toString());
+ output.beginDiv(CssClass.INDEX_CATEGORY);
+ while (it.hasNext()) {
+ Doc entry = (Doc)it.next();
+ printIndexEntry(output, entry);
+ }
+ output.endDiv(CssClass.INDEX_CATEGORY);
+ }
+
+ private void printDeprecationSummary(HtmlPage output, List docs, String header)
+ {
+ if (!docs.isEmpty()) {
+ output.beginDiv(CssClass.TABLE_CONTAINER);
+ output.beginTable(CssClass.DEPRECATION_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+ output.rowDiv(CssClass.TABLE_HEADER, header);
+
+ Iterator it = docs.iterator();
+ while (it.hasNext()) {
+ Doc doc = (Doc)it.next();
+ output.beginRow();
+
+ output.beginCell(CssClass.DEPRECATION_SUMMARY_LEFT);
+ if (doc instanceof Type) {
+ printType(output, (Type)doc);
+ }
+ else {
+ ProgramElementDoc memberDoc = (ProgramElementDoc)doc;
+ output.beginAnchor(getMemberDocURL(output, memberDoc));
+ output.print(memberDoc.containingClass().qualifiedName());
+ output.print(".");
+ output.print(memberDoc.name());
+ if (memberDoc instanceof ExecutableMemberDoc) {
+ output.print(((ExecutableMemberDoc)memberDoc).flatSignature());
+ }
+ output.endAnchor();
+ }
+ output.beginDiv(CssClass.DEPRECATION_SUMMARY_DESCRIPTION);
+ printTags(output, doc, doc.tags("deprecated")[0].firstSentenceTags(), true);
+ output.endDiv(CssClass.DEPRECATION_SUMMARY_DESCRIPTION);
+
+ output.endCell();
+
+ output.endRow();
+ }
+ output.endTable();
+ output.endDiv(CssClass.TABLE_CONTAINER);
+ output.print("\n");
+ }
+ }
+
+
+ private void printSerializationPage()
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+ "serialized-form" + filenameExtension),
+ ".");
+ output.beginPage(getPageTitle("Serialized Form"),
+ getOutputCharset(),
+ getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_DEPRECATED);
+ printNavBarTop(output, "serialized");
+
+ output.div(CssClass.SERIALIZED_TITLE, "Serialized Form");
+
+ Iterator it = getAllPackages().iterator();
+
+ while (it.hasNext()) {
+
+ PackageDoc packageDoc = (PackageDoc)it.next();
+
+ List serializableClasses = new LinkedList();
+ ClassDoc[] classes = packageDoc.allClasses();
+ for (int i=0; i<classes.length; ++i) {
+ ClassDoc classDoc = classes[i];
+ if (classDoc.isSerializable() || classDoc.isExternalizable()) {
+ serializableClasses.add(classDoc);
+ }
+ }
+
+ if (!serializableClasses.isEmpty()) {
+ output.div(CssClass.SERIALIZED_PACKAGE_HEADER, "Package " + packageDoc.name());
+
+ Iterator cit = serializableClasses.iterator();
+ while (cit.hasNext()) {
+ ClassDoc classDoc = (ClassDoc)cit.next();
+
+ output.anchorName(classDoc.qualifiedTypeName());
+
+ output.beginDiv(CssClass.SERIALIZED_CLASS_HEADER);
+ output.print("Class ");
+ printType(output, classDoc, true);
+ output.print(" extends ");
+ printType(output, classDoc.superclass());
+ output.print(" implements Serializable");
+ output.endDiv(CssClass.SERIALIZED_CLASS_HEADER);
+
+ FieldDoc serialVersionUidField = findField(classDoc, "serialVersionUID");
+ if (null != serialVersionUidField
+ && serialVersionUidField.isFinal()
+ && serialVersionUidField.isStatic()
+ && serialVersionUidField.type().typeName().equals("long")) {
+
+ String fieldValue = serialVersionUidField.constantValueExpression();
+ if (null != fieldValue) {
+ output.beginDiv(CssClass.SERIALIZED_SVUID_OUTER);
+ output.span(CssClass.SERIALIZED_SVUID_HEADER, "serialVersionUID: ");
+ output.span(CssClass.SERIALIZED_SVUID_VALUE, fieldValue);
+ output.endDiv(CssClass.SERIALIZED_SVUID_OUTER);
+ }
+ }
+ printMemberDetails(output,
+ classDoc.serializationMethods(),
+ "Serialization Methods",
+ true, null);
+ printMemberDetails(output,
+ classDoc.serializableFields(),
+ "Serialized Fields",
+ true, null);
+ }
+ }
+ }
+
+ printNavBarBottom(output, "serialized");
+
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+
+ private void printDeprecationPage()
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+ "deprecated" + filenameExtension),
+ ".");
+ output.beginPage(getPageTitle("Deprecated API"),
+ getOutputCharset(),
+ getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_DEPRECATED);
+ printNavBarTop(output, "deprecated");
+
+ output.div(CssClass.DEPRECATION_TITLE, "Deprecated API");
+
+ List deprecatedInterfaces = new LinkedList();
+ List deprecatedExceptions = new LinkedList();
+ List deprecatedErrors = new LinkedList();
+ List deprecatedClasses = new LinkedList();
+ List deprecatedFields = new LinkedList();
+ List deprecatedMethods = new LinkedList();
+ List deprecatedConstructors = new LinkedList();
+
+ ClassDoc[] classDocs = getRootDoc().classes();
+ for (int i=0; i<classDocs.length; ++i) {
+ ClassDoc classDoc = classDocs[i];
+ {
+ Tag[] deprecatedTags = classDoc.tags("deprecated");
+ if (null != deprecatedTags && deprecatedTags.length > 0) {
+ if (classDoc.isInterface()) {
+ deprecatedInterfaces.add(classDoc);
+ }
+ else if (classDoc.isException()) {
+ deprecatedExceptions.add(classDoc);
+ }
+ else if (classDoc.isError()) {
+ deprecatedErrors.add(classDoc);
+ }
+ else {
+ deprecatedClasses.add(classDoc);
+ }
+ }
+ }
+ ConstructorDoc[] constructors = classDoc.constructors();
+ for (int j=0; j<constructors.length; ++j) {
+ Tag[] deprecatedTags = constructors[j].tags("deprecated");
+ if (null != deprecatedTags && deprecatedTags.length > 0) {
+ deprecatedConstructors.add(constructors[j]);
+ }
+ }
+ MethodDoc[] methods = classDoc.methods();
+ for (int j=0; j<methods.length; ++j) {
+ Tag[] deprecatedTags = methods[j].tags("deprecated");
+ if (null != deprecatedTags && deprecatedTags.length > 0) {
+ deprecatedMethods.add(methods[j]);
+ }
+ }
+ FieldDoc[] fields = classDoc.fields();
+ for (int j=0; j<fields.length; ++j) {
+ Tag[] deprecatedTags = fields[j].tags("deprecated");
+ if (null != deprecatedTags && deprecatedTags.length > 0) {
+ deprecatedFields.add(fields[j]);
+ }
+ }
+ }
+
+ if (!deprecatedInterfaces.isEmpty()
+ || !deprecatedClasses.isEmpty()
+ || !deprecatedExceptions.isEmpty()
+ || !deprecatedErrors.isEmpty()
+ || !deprecatedFields.isEmpty()
+ || !deprecatedMethods.isEmpty()
+ || !deprecatedConstructors.isEmpty()) {
+
+ output.beginDiv(CssClass.DEPRECATION_TOC);
+ output.div(CssClass.DEPRECATION_TOC_HEADER, "Contents");
+ output.beginDiv(CssClass.DEPRECATION_TOC_LIST);
+ if (!deprecatedInterfaces.isEmpty()) {
+ output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ output.anchor("#interfaces", "Deprecated Interfaces");
+ output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ }
+ if (!deprecatedClasses.isEmpty()) {
+ output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ output.anchor("#classes", "Deprecated Classes");
+ output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ }
+ if (!deprecatedExceptions.isEmpty()) {
+ output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ output.anchor("#exceptions", "Deprecated Exceptions");
+ output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ }
+ if (!deprecatedErrors.isEmpty()) {
+ output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ output.anchor("#errors", "Deprecated Errors");
+ output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ }
+ if (!deprecatedFields.isEmpty()) {
+ output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ output.anchor("#fields", "Deprecated Fields");
+ output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ }
+ if (!deprecatedMethods.isEmpty()) {
+ output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ output.anchor("#methods", "Deprecated Methods");
+ output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ }
+ if (!deprecatedConstructors.isEmpty()) {
+ output.beginDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ output.anchor("#constructors", "Deprecated Constructors");
+ output.endDiv(CssClass.DEPRECATION_TOC_ENTRY);
+ }
+ output.endDiv(CssClass.DEPRECATION_TOC_LIST);
+ output.endDiv(CssClass.DEPRECATION_TOC);
+ output.beginDiv(CssClass.DEPRECATION_LIST);
+
+ output.anchorName("interfaces");
+ printDeprecationSummary(output, deprecatedInterfaces, "Deprecated Interfaces");
+
+ output.anchorName("classes");
+ printDeprecationSummary(output, deprecatedClasses, "Deprecated Classes");
+
+ output.anchorName("exceptions");
+ printDeprecationSummary(output, deprecatedExceptions, "Deprecated Exceptions");
+
+ output.anchorName("errors");
+ printDeprecationSummary(output, deprecatedErrors, "Deprecated Errors");
+
+ output.anchorName("fields");
+ printDeprecationSummary(output, deprecatedFields, "Deprecated Fields");
+
+ output.anchorName("methods");
+ printDeprecationSummary(output, deprecatedMethods, "Deprecated Methods");
+
+ output.anchorName("constructors");
+ printDeprecationSummary(output, deprecatedConstructors, "Deprecated Constructors");
+
+ output.endDiv(CssClass.DEPRECATION_LIST);
+ }
+ else {
+ output.beginDiv(CssClass.DEPRECATION_EMPTY);
+ output.print("No deprecated classes or class members in this API.");
+ output.endDiv(CssClass.DEPRECATION_EMPTY);
+
+ }
+
+ printNavBarBottom(output, "deprecated");
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printAboutPage()
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+ "about" + filenameExtension),
+ ".");
+ output.beginPage(getPageTitle("About"),
+ getOutputCharset(),
+ getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_ABOUT);
+
+ printNavBarTop(output, "about");
+
+ output.div(CssClass.ABOUT_TITLE, "About");
+
+ output.beginDiv(CssClass.ABOUT_GENERATOR);
+ output.print("Generated by ");
+ output.print("Gjdoc");
+ output.print(" HtmlDoclet ");
+ output.print(getDocletVersion());
+ output.print(", part of ");
+ output.beginAnchor("http://www.gnu.org/software/classpath/cp-tools/", "", "_top");
+ output.print("GNU Classpath Tools");
+ output.endAnchor();
+ output.print(", on ");
+ DateFormat format = DateFormat.getDateTimeInstance(DateFormat.LONG,
+ DateFormat.LONG,
+ Locale.US);
+ Calendar cal = Calendar.getInstance(TimeZone.getTimeZone("UTC"),
+ Locale.US);
+ format.setCalendar(cal);
+ output.print(format.format(new Date()));
+ output.print(".");
+ output.endDiv(CssClass.ABOUT_GENERATOR);
+
+ printNavBarBottom(output, "about");
+
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printSourcePage(File packageDir, ClassDoc classDoc, String sourceXhtml)
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(packageDir,
+ classDoc.name() + "-source" + filenameExtension),
+ getPathToRoot(packageDir, getTargetDirectory()));
+ output.beginPage(getPageTitle("Source for " + classDoc.qualifiedTypeName()),
+ getOutputCharset(),
+ getStylesheets());
+
+ output.beginBody(CssClass.BODY_CONTENT_SOURCE);
+
+ printNavBarTop(output, "source", classDoc, null, null);
+
+ output.div(CssClass.SOURCE_TITLE, "Source for " + classDoc.qualifiedTypeName());
+ output.beginDiv(CssClass.SOURCE);
+ output.print(sourceXhtml);
+ output.endDiv(CssClass.SOURCE);
+
+ printNavBarBottom(output, "source", classDoc);
+
+ output.endBody();
+ output.endPage();
+
+ output.close();
+ }
+
+ private void printHelpPage()
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+ "help" + filenameExtension),
+ ".");
+ output.beginPage(getPageTitle("Help"),
+ getOutputCharset(),
+ getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_HELP);
+
+ printNavBarTop(output, "help");
+
+ InputStream helpIn;
+ if (null != optionHelpFile.getValue()){
+ helpIn = new FileInputStream(optionHelpFile.getValue());
+ }
+ else {
+ helpIn = getClass().getResourceAsStream("/htmldoclet/help.xhtml");
+ }
+ output.insert(new InputStreamReader(helpIn, "utf-8"));
+ helpIn.close();
+
+ printNavBarBottom(output, "help");
+
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printOverviewPage()
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(getTargetDirectory(),
+ "overview-summary" + filenameExtension),
+ ".");
+ output.beginPage(getWindowTitle(),
+ getOutputCharset(),
+ getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_OVERVIEW);
+
+ printNavBarTop(output, "overview");
+
+ String overviewHeader;
+ if (null != optionDocTitle.getValue()) {
+ overviewHeader = optionDocTitle.getValue();
+ }
+ else if (null != optionTitle.getValue()) {
+ overviewHeader = optionTitle.getValue();
+ }
+ else {
+ overviewHeader = null;
+ }
+
+ if (null != overviewHeader) {
+ output.div(CssClass.OVERVIEW_TITLE, overviewHeader);
+ }
+
+ output.beginDiv(CssClass.OVERVIEW_DESCRIPTION_TOP);
+ printTags(output, getRootDoc(), getRootDoc().firstSentenceTags(), true);
+ output.endDiv(CssClass.OVERVIEW_DESCRIPTION_TOP);
+
+ List packageGroups = getPackageGroups();
+
+ if (packageGroups.isEmpty()) {
+
+ printOverviewPackages(output, getAllPackages(),
+ "All Packages");
+ }
+ else {
+ Set otherPackages = new LinkedHashSet();
+ otherPackages.addAll(getAllPackages());
+
+ Iterator it = packageGroups.iterator();
+ while (it.hasNext()) {
+ PackageGroup packageGroup = (PackageGroup)it.next();
+ printOverviewPackages(output,
+ packageGroup.getPackages(),
+ packageGroup.getName());
+ otherPackages.removeAll(packageGroup.getPackages());
+ }
+
+ if (!otherPackages.isEmpty()) {
+ printOverviewPackages(output,
+ otherPackages,
+ "Other Packages");
+ }
+ }
+
+ output.anchorName("description");
+ output.beginDiv(CssClass.OVERVIEW_DESCRIPTION_FULL);
+ printTags(output, getRootDoc(), getRootDoc().inlineTags(), false);
+ output.endDiv(CssClass.OVERVIEW_DESCRIPTION_FULL);
+
+ printNavBarBottom(output, "overview");
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printOverviewPackages(HtmlPage output, Collection packageDocs, String header)
+ {
+ output.beginDiv(CssClass.TABLE_CONTAINER);
+ output.beginTable(CssClass.OVERVIEW_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+ output.rowDiv(CssClass.TABLE_HEADER, header);
+
+ Iterator it = packageDocs.iterator();
+ while (it.hasNext()) {
+ PackageDoc packageDoc = (PackageDoc)it.next();
+ output.beginRow();
+
+ output.beginCell(CssClass.OVERVIEW_SUMMARY_LEFT);
+ output.beginAnchor(getPackageURL(packageDoc) + "package-summary" + filenameExtension);
+ output.print(packageDoc.name());
+ output.endAnchor();
+ output.endCell();
+
+ output.beginCell(CssClass.OVERVIEW_SUMMARY_RIGHT);
+ printTags(output, packageDoc, packageDoc.firstSentenceTags(), true);
+ output.endCell();
+ output.endRow();
+ }
+ output.endTable();
+ output.endDiv(CssClass.TABLE_CONTAINER);
+ }
+
+ private void printClassUsagePage(File packageDir, String pathToRoot, ClassDoc classDoc)
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(packageDir,
+ classDoc.name() + "-uses" + filenameExtension),
+ pathToRoot);
+ output.beginPage(getPageTitle(classDoc.name()), getOutputCharset(), getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_USES);
+ printNavBarTop(output, "uses", classDoc, null, null);
+
+ output.div(CssClass.USAGE_TITLE,
+ "Uses of " + getClassTypeName(classDoc)
+ + " " + classDoc.qualifiedName());
+
+ Map packageToUsageTypeMap = getUsageOfClass(classDoc);
+ if (null != packageToUsageTypeMap && !packageToUsageTypeMap.isEmpty()) {
+
+ Iterator packagesIterator = packageToUsageTypeMap.keySet().iterator();
+ while (packagesIterator.hasNext()) {
+ PackageDoc packageDoc = (PackageDoc)packagesIterator.next();
+
+ output.div(CssClass.USAGE_PACKAGE_TITLE, "Uses in package " + packageDoc.name());
+
+ Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(packageDoc);
+ Iterator usageTypeIterator = usageTypeToUsersMap.keySet().iterator();
+ while (usageTypeIterator.hasNext()) {
+ UsageType usageType = (UsageType)usageTypeIterator.next();
+
+ output.beginTable(CssClass.USAGE_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+ output.rowDiv(CssClass.USAGE_TABLE_HEADER, format("usagetype." + usageType.getId(),
+ classDoc.qualifiedName()));
+
+ Set users = (Set)usageTypeToUsersMap.get(usageType);
+ Iterator userIterator = users.iterator();
+ while (userIterator.hasNext()) {
+ Doc user = (Doc)userIterator.next();
+
+ output.beginRow();
+
+ if (user instanceof ClassDoc) {
+ output.beginCell(CssClass.USAGE_SUMMARY_LEFT);
+ output.print("class");
+ output.endCell();
+
+ output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
+ output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+ printType(output, ((ClassDoc)user));
+ output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+ output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+ printTags(output, ((ClassDoc)user), ((ClassDoc)user).firstSentenceTags(), true);
+ output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+ output.endCell();
+ }
+ else if (user instanceof FieldDoc) {
+ FieldDoc fieldDoc = (FieldDoc)user;
+
+ output.beginCell(CssClass.USAGE_SUMMARY_LEFT);
+ printType(output, ((FieldDoc)user).type());
+ output.endCell();
+
+ output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
+ output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+ printType(output, ((FieldDoc)user).containingClass());
+ output.print(".");
+ output.beginAnchor(getMemberDocURL(output, (FieldDoc)user));
+ output.print(((FieldDoc)user).name());
+ output.endAnchor();
+ output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+ output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+ printTags(output, ((FieldDoc)user), ((FieldDoc)user).firstSentenceTags(), true);
+ output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+ output.endCell();
+ }
+ else if (user instanceof MethodDoc) {
+ MethodDoc methodDoc = (MethodDoc)user;
+
+ output.beginCell(CssClass.USAGE_SUMMARY_LEFT);
+ printType(output, ((MethodDoc)user).returnType());
+ output.endCell();
+
+ output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
+ output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+ printType(output, ((MethodDoc)user).containingClass());
+ output.print(".");
+ output.beginAnchor(getMemberDocURL(output, (MethodDoc)user));
+ output.print(((MethodDoc)user).name());
+ output.endAnchor();
+ printParameters(output, (ExecutableMemberDoc)user);
+ output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+ output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+ printTags(output, ((MethodDoc)user), ((MethodDoc)user).firstSentenceTags(), true);
+ output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+ output.endCell();
+ }
+ else if (user instanceof ConstructorDoc) {
+ ConstructorDoc constructorDoc = (ConstructorDoc)user;
+
+ output.beginCell(CssClass.USAGE_SUMMARY_RIGHT);
+ output.beginDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+ printType(output, ((ConstructorDoc)user).containingClass());
+ output.print(".");
+ output.beginAnchor(getMemberDocURL(output, (ConstructorDoc)user));
+ output.print(((ConstructorDoc)user).name());
+ output.endAnchor();
+ printParameters(output, (ExecutableMemberDoc)user);
+ output.endDiv(CssClass.USAGE_SUMMARY_SYNOPSIS);
+ output.beginDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+ printTags(output, ((ConstructorDoc)user),
+ ((ConstructorDoc)user).firstSentenceTags(), true);
+ output.endDiv(CssClass.USAGE_SUMMARY_DESCRIPTION);
+ output.endCell();
+ }
+
+ output.endRow();
+ }
+ output.endTable();
+ }
+ }
+ }
+ else {
+ output.div(CssClass.USAGE_EMPTY,
+ getClassTypeName(classDoc)
+ + " " + classDoc.qualifiedName() + " is not used by any class in this documentation set.");
+ }
+ printNavBarBottom(output, "uses", classDoc);
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printSuperTreeRec(HtmlPage output, ListIterator it, int level)
+ {
+ if (it.hasPrevious()) {
+ ClassDoc cd = (ClassDoc)it.previous();
+ output.beginElement("li", new String[] { "class" }, new String[] { "inheritance " + level });
+ output.beginElement("code");
+ if (it.hasPrevious()) {
+ printType(output, cd, true);
+ }
+ else {
+ output.print(cd.qualifiedName() + getTypeParameters(cd));
+ }
+ output.endElement("code");
+ output.endElement("li");
+
+ output.beginElement("li");
+
+ if (it.hasPrevious()) {
+ output.beginElement("ul", new String[] { "class" }, new String[] { "inheritance " + (level + 1) });
+ printSuperTreeRec(output, it, level + 1);
+ output.endElement("ul");
+ }
+
+ output.endElement("li");
+ }
+ }
+
+ private static boolean isSubInterface(ClassDoc classDoc, ClassDoc otherClassDoc)
+ {
+ ClassDoc[] interfaces = otherClassDoc.interfaces();
+ for (int i=0; i<interfaces.length; ++i) {
+ if (classDoc == interfaces[i]) {
+ return true;
+ }
+ else if (isSubInterface(classDoc, interfaces[i])) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private void printCommaSeparatedTypes(HtmlPage output,
+ Collection list,
+ String header,
+ CssClass cssClass)
+ {
+ if (!list.isEmpty()) {
+ output.beginDiv(cssClass);
+ output.div(CssClass.CLASS_KNOWNIMPLEMENTING_HEADER, header);
+ output.beginDiv(CssClass.CLASS_KNOWNIMPLEMENTING_ITEM);
+ Iterator it = list.iterator();
+ while (it.hasNext()) {
+ Type type = (Type)it.next();
+ printType(output, type);
+ if (it.hasNext()) {
+ output.print(", ");
+ }
+ }
+ output.endDiv(CssClass.CLASS_KNOWNIMPLEMENTING_ITEM);
+ output.endDiv(cssClass);
+ }
+ }
+
+ private void printClassPage(File packageDir, String pathToRoot,
+ ClassDoc classDoc, ClassDoc prevClassDoc, ClassDoc nextClassDoc)
+ throws IOException
+ {
+ HtmlPage output = newHtmlPage(new File(packageDir,
+ classDoc.name() + filenameExtension),
+ pathToRoot);
+ Set keywords = new LinkedHashSet();
+ {
+ keywords.add(classDoc.qualifiedName() + " class");
+ FieldDoc[] fieldDocs = classDoc.fields();
+ for (int i=0; i<fieldDocs.length; ++i) {
+ FieldDoc fieldDoc = fieldDocs[i];
+ keywords.add(fieldDoc.name());
+ }
+
+ MethodDoc[] methodDocs = classDoc.methods();
+ for (int i=0; i<methodDocs.length; ++i) {
+ MethodDoc methodDoc = methodDocs[i];
+ keywords.add(methodDoc.name() + "()");
+ }
+ }
+ String parameters = getTypeParameters(classDoc);
+
+ output.beginPage(getPageTitle(classDoc.name()), getOutputCharset(),
+ keywords, getStylesheets());
+ output.beginBody(CssClass.BODY_CONTENT_CLASS);
+ printNavBarTop(output, "class", classDoc, prevClassDoc, nextClassDoc);
+
+ output.beginDiv(CssClass.CLASS_TITLE);
+ output.div(CssClass.CLASS_TITLE_PACKAGE,
+ classDoc.containingPackage().name());
+ output.div(CssClass.CLASS_TITLE_CLASS,
+ getClassTypeName(classDoc)
+ + " " + classDoc.name()
+ + parameters);
+ output.endDiv(CssClass.CLASS_TITLE);
+
+ boolean needSep = false;
+
+ if (classDoc.isInterface()) {
+
+ InterfaceRelation relation
+ = (InterfaceRelation)getInterfaceRelations().get(classDoc);
+
+ printCommaSeparatedTypes(output,
+ relation.superInterfaces,
+ "All Superinterfaces:",
+ CssClass.CLASS_KNOWNIMPLEMENTING);
+
+ printCommaSeparatedTypes(output,
+ relation.subInterfaces,
+ "Known Subinterfaces:",
+ CssClass.CLASS_KNOWNIMPLEMENTING);
+
+ printCommaSeparatedTypes(output,
+ relation.implementingClasses,
+ "Known Implementing Classes:",
+ CssClass.CLASS_KNOWNIMPLEMENTING);
+
+ needSep = !relation.superInterfaces.isEmpty()
+ || !relation.subInterfaces.isEmpty()
+ || !relation.implementingClasses.isEmpty();
+ }
+ else {
+ needSep = true;
+
+ if (!"java.lang.Object".equals(classDoc.qualifiedName())) {
+ LinkedList superClasses = new LinkedList();
+ for (ClassDoc cd = classDoc; cd != null; cd = cd.superclass()) {
+ superClasses.add(cd);
+ }
+ output.beginDiv(CssClass.CLASS_INHERITANCETREE);
+ output.beginElement("ul", new String[] { "class" }, new String[] { "inheritance 0" });
+ printSuperTreeRec(output, superClasses.listIterator(superClasses.size()), 0);
+ output.endElement("ul");
+ output.endDiv(CssClass.CLASS_INHERITANCETREE);
+
+ if (null != classDoc.containingClass()) {
+ output.beginDiv(CssClass.CLASS_ENCLOSINGCLASS);
+ output.div(CssClass.CLASS_ENCLOSINGCLASS_HEADER, "Enclosing Class:");
+ output.beginDiv(CssClass.CLASS_ENCLOSINGCLASS_ITEM);
+ printType(output, classDoc.containingClass());
+ output.endDiv(CssClass.CLASS_ENCLOSINGCLASS_ITEM);
+ output.endDiv(CssClass.CLASS_ENCLOSINGCLASS);
+ }
+
+ Set implementedInterfaces = getImplementedInterfaces(classDoc);
+
+ printCommaSeparatedTypes(output,
+ implementedInterfaces,
+ "Implemented Interfaces:",
+ CssClass.CLASS_KNOWNIMPLEMENTING);
+
+ List knownDirectSubclasses = getKnownDirectSubclasses(classDoc);
+ if (!knownDirectSubclasses.isEmpty()) {
+ output.beginDiv(CssClass.CLASS_SUBCLASSES);
+ output.div(CssClass.CLASS_SUBCLASSES_HEADER, "Known Direct Subclasses:");
+ output.beginDiv(CssClass.CLASS_SUBCLASSES_ITEM);
+ Iterator it = knownDirectSubclasses.iterator();
+ while (it.hasNext()) {
+ printType(output, (ClassDoc)it.next());
+ if (it.hasNext()) {
+ output.print(", ");
+ }
+ }
+
+ output.endDiv(CssClass.CLASS_SUBCLASSES_ITEM);
+ output.endDiv(CssClass.CLASS_SUBCLASSES_HEADER);
+ output.endDiv(CssClass.CLASS_SUBCLASSES);
+ }
+ }
+ }
+
+ if (needSep) {
+ output.hr();
+ }
+
+ output.beginDiv(CssClass.CLASS_SYNOPSIS);
+ output.beginDiv(CssClass.CLASS_SYNOPSIS_DECLARATION);
+ output.print(getFullModifiers(classDoc) + ' ' + getClassTypeKeyword(classDoc)
+ + ' ');
+ output.beginSpan(CssClass.CLASS_SYNOPSIS_NAME);
+ if (optionLinkSource.getValue() && null != classDoc.position()) {
+ output.beginAnchor(getOuterClassDoc(classDoc).name() + "-source" + filenameExtension + "#line." + classDoc.position());
+ output.print(classDoc.name() + parameters);
+ output.endAnchor();
+ }
+ else {
+ output.print(classDoc.name() + parameters);
+ }
+ output.endSpan(CssClass.CLASS_SYNOPSIS_NAME);
+ output.endDiv(CssClass.CLASS_SYNOPSIS_DECLARATION);
+
+ if (!classDoc.isInterface()) {
+ if (null != classDoc.superclass()) {
+ output.beginDiv(CssClass.CLASS_SYNOPSIS_SUPERCLASS);
+ output.print("extends ");
+ printType(output, classDoc.superclass());
+ output.endDiv(CssClass.CLASS_SYNOPSIS_SUPERCLASS);
+ }
+ }
+
+ ClassDoc[] interfaces = classDoc.interfaces();
+ if (interfaces.length > 0) {
+ output.beginDiv(CssClass.CLASS_SYNOPSIS_IMPLEMENTS);
+ if (!classDoc.isInterface()) {
+ output.print("implements ");
+ }
+ else {
+ output.print("extends ");
+ }
+ for (int i=0; i<interfaces.length; ++i) {
+ if (i>0) {
+ output.print(", ");
+ }
+ printType(output, interfaces[i]);
+ }
+ output.endDiv(CssClass.CLASS_SYNOPSIS_IMPLEMENTS);
+ }
+ output.endDiv(CssClass.CLASS_SYNOPSIS);
+
+ output.hr();
+
+ if (!optionNoComment.getValue()) {
+ output.beginDiv(CssClass.CLASS_DESCRIPTION);
+ printTags(output, classDoc, classDoc.inlineTags(), false);
+ output.endDiv(CssClass.CLASS_DESCRIPTION);
+
+ printTaglets(output, classDoc.tags(), new HtmlTagletContext(classDoc, output, false));
+ }
+
+
+ Set implementedInterfaces = getImplementedInterfaces(classDoc);
+
+ boolean haveInheritedFields = false;
+ boolean haveInheritedMethods = false;
+ boolean haveInheritedClasses = false;
+ {
+ if (!classDoc.isInterface()) {
+ ClassDoc superClassDoc = classDoc.superclass();
+ while (null != superClassDoc
+ && (!haveInheritedFields
+ || !haveInheritedMethods
+ || !haveInheritedClasses)) {
+ if (superClassDoc.fields().length > 0) {
+ haveInheritedFields = true;
+ }
+ if (superClassDoc.methods().length > 0) {
+ haveInheritedMethods = true;
+ }
+ if (superClassDoc.innerClasses().length > 0) {
+ haveInheritedClasses = true;
+ }
+ superClassDoc = superClassDoc.superclass();
+ }
+ }
+ }
+
+ printProgramElementDocs(output, getSortedInnerClasses(classDoc),
+ "Nested Class Summary", haveInheritedClasses,
+ "summary-inner");
+
+ {
+ ClassDoc superClassDoc = classDoc.superclass();
+ while (null != superClassDoc) {
+ printInheritedMembers(output, getSortedInnerClasses(superClassDoc),
+ "Nested classes/interfaces inherited from class {0}",
+ superClassDoc);
+ superClassDoc = superClassDoc.superclass();
+ }
+ }
+
+ printProgramElementDocs(output, getSortedFields(classDoc),
+ "Field Summary", haveInheritedFields,
+ "summary-fields");
+
+ {
+ ClassDoc superClassDoc = classDoc.superclass();
+ while (null != superClassDoc) {
+ printInheritedMembers(output, getSortedFields(superClassDoc),
+ "Fields inherited from class {0}",
+ superClassDoc);
+ superClassDoc = superClassDoc.superclass();
+ }
+ }
+
+ {
+ Iterator it = implementedInterfaces.iterator();
+ while (it.hasNext()) {
+ ClassDoc implementedInterface
+ = (ClassDoc)it.next();
+ if (!"java.io.Serializable".equals(implementedInterface.qualifiedName())
+ && !"java.io.Externalizable".equals(implementedInterface.qualifiedName())) {
+ printInheritedMembers(output, getSortedFields(implementedInterface),
+ "Fields inherited from interface {0}",
+ implementedInterface);
+ }
+ }
+ }
+
+ printProgramElementDocs(output, getSortedConstructors(classDoc),
+ "Constructor Summary", false,
+ "summary-constructors");
+ printProgramElementDocs(output, getSortedMethods(classDoc),
+ "Method Summary", haveInheritedMethods,
+ "summary-methods");
+
+ if (classDoc.isInterface()) {
+ InterfaceRelation relation
+ = (InterfaceRelation)getInterfaceRelations().get(classDoc);
+ Iterator it = relation.superInterfaces.iterator();
+ while (it.hasNext()) {
+ ClassDoc superClassDoc = (ClassDoc)it.next();
+ printInheritedMembers(output, getSortedMethods(superClassDoc),
+ "Methods inherited from interface {0}",
+ superClassDoc);
+ }
+ }
+ else {
+ ClassDoc superClassDoc = classDoc.superclass();
+ while (null != superClassDoc) {
+ printInheritedMembers(output, getSortedMethods(superClassDoc),
+ "Methods inherited from class {0}",
+ superClassDoc);
+ superClassDoc = superClassDoc.superclass();
+ }
+ }
+
+ printMemberDetails(output, getSortedFields(classDoc),
+ "Field Details", false, "detail-fields");
+ printMemberDetails(output, getSortedConstructors(classDoc),
+ "Constructor Details", false, "detail-constructors");
+ printMemberDetails(output, getSortedMethods(classDoc),
+ "Method Details", false, "detail-methods");
+
+ printNavBarBottom(output, "class", classDoc);
+
+ output.endBody();
+ output.endPage();
+ output.close();
+ }
+
+ private void printInheritedMembers(HtmlPage output,
+ ProgramElementDoc[] memberDocs,
+ String headerFormat,
+ ClassDoc superclass)
+ {
+ if (memberDocs.length > 0) {
+
+ output.beginDiv(CssClass.TABLE_CONTAINER);
+ output.beginTable(CssClass.CLASS_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+ String superclassLink;
+ if (superclass.isIncluded()) {
+ superclassLink = superclass.containingPackage().name()
+ + "." + createTypeHref(output, superclass, false);
+ }
+ else {
+ superclassLink = createTypeHref(output, superclass, true);
+ }
+ output.rowDiv(CssClass.TABLE_SUB_HEADER,
+ new MessageFormat(headerFormat).format(new Object[] {
+ superclassLink
+ }));
+
+ output.beginRow();
+ output.beginCell(CssClass.CLASS_SUMMARY_INHERITED);
+ for (int i=0; i<memberDocs.length; ++i) {
+ ProgramElementDoc memberDoc = memberDocs[i];
+ if (i > 0) {
+ output.print(", ");
+ }
+ String title = null;
+ if (memberDoc.isMethod()) {
+ title = memberDoc.name() + ((MethodDoc)memberDoc).flatSignature();
+ }
+ else if (memberDoc.isInterface()) {
+ title = "interface " + ((ClassDoc)memberDoc).qualifiedName();
+ }
+ else if (memberDoc.isClass()) {
+ title = "class " + ((ClassDoc)memberDoc).qualifiedName();
+ }
+ output.beginAnchor(getMemberDocURL(output, memberDoc), title);
+ output.beginSpan(CssClass.CLASS_SUMMARY_INHERITED_MEMBER);
+ output.print(memberDoc.name());
+ output.endSpan(CssClass.CLASS_SUMMARY_INHERITED_MEMBER);
+ output.endAnchor();
+ }
+ output.endCell();
+ output.endRow();
+ output.endTable();
+ output.endDiv(CssClass.TABLE_CONTAINER);
+ }
+ }
+
+ private void collectSpecifiedByRecursive(Set specifyingInterfaces,
+ ClassDoc classDoc,
+ MethodDoc methodDoc)
+ {
+ ClassDoc[] interfaces = classDoc.interfaces();
+ for (int i=0; i<interfaces.length; ++i) {
+ MethodDoc[] methods = interfaces[i].methods();
+ for (int j=0; j<methods.length; ++j) {
+ if (methods[j].name().equals(methodDoc.name())
+ && methods[j].signature().equals(methodDoc.signature())) {
+ specifyingInterfaces.add(methods[j]);
+ break;
+ }
+ }
+ collectSpecifiedByRecursive(specifyingInterfaces,
+ interfaces[i],
+ methodDoc);
+ }
+ }
+
+ private void printMemberDetails(HtmlPage output,
+ ProgramElementDoc[] memberDocs, String header,
+ boolean isOnSerializedPage,
+ String anchor)
+ {
+ if (memberDocs.length > 0) {
+
+ if (null != anchor) {
+ output.anchorName(anchor);
+ }
+
+ CssClass sectionClass;
+ CssClass headerClass;
+ if (isOnSerializedPage) {
+ sectionClass = CssClass.SERIALIZED_SECTION;
+ headerClass = CssClass.SERIALIZED_SECTION_HEADER;
+ }
+ else {
+ sectionClass = CssClass.SECTION;
+ headerClass = CssClass.SECTION_HEADER;
+ }
+ output.div(headerClass, header);
+ output.beginDiv(sectionClass);
+
+ for (int i=0; i<memberDocs.length; ++i) {
+ if (i>0) {
+ output.hr();
+ }
+
+ ProgramElementDoc memberDoc = memberDocs[i];
+
+ output.anchorName(getMemberAnchor(memberDoc));
+
+ output.beginDiv(CssClass.MEMBER_DETAIL);
+ output.div(CssClass.MEMBER_DETAIL_NAME, memberDoc.name());
+
+ StringBuffer synopsis = new StringBuffer();
+ int synopsisLength = 0;
+
+ if (!isOnSerializedPage || !memberDoc.isField()) {
+ String fullModifiers = getFullModifiers(memberDoc);
+ synopsis.append(fullModifiers);
+ synopsisLength += fullModifiers.length();
+
+ }
+ if (memberDoc.isMethod() || memberDoc.isField()) {
+ Type type;
+ if (memberDoc.isMethod()) {
+ type = ((MethodDoc)memberDoc).returnType();
+ }
+ else {
+ type = ((FieldDoc)memberDoc).type();
+ }
+
+ synopsis.append(" ");
+ synopsisLength ++;
+ synopsis.append(createTypeHref(output, type, false));
+ if (null != type.asClassDoc() && type.asClassDoc().isIncluded()) {
+ synopsisLength += type.asClassDoc().name().length();
+ }
+ else {
+ synopsisLength += type.qualifiedTypeName().length();
+ }
+ synopsisLength += type.dimension().length();
+ }
+
+ synopsis.append(" ");
+ synopsisLength ++;
+
+ if (optionLinkSource.getValue() && null != memberDoc.position()) {
+ ClassDoc containingClass = memberDoc.containingClass();
+ while (null != containingClass.containingClass()) {
+ containingClass = containingClass.containingClass();
+ }
+ String href = containingClass.name() + "-source" + filenameExtension + "#line." + memberDoc.position().line();
+ synopsis.append(output.createHrefString(href, memberDoc.name()));
+ }
+ else {
+ synopsis.append(memberDoc.name());
+ }
+ synopsisLength += memberDoc.name().length();
+
+ if (memberDoc.isConstructor() || memberDoc.isMethod()) {
+ //printParameters(output, (ExecutableMemberDoc)memberDoc);
+ synopsis.append("(");
+ ++ synopsisLength;
+ StringBuffer paddingLeft = new StringBuffer();
+ for (int j=0; j<synopsisLength; ++j) {
+ paddingLeft.append(' ');
+ }
+ Parameter[] parameters = ((ExecutableMemberDoc)memberDoc).parameters();
+ for (int j=0; j<parameters.length; ++j) {
+ Parameter parameter = parameters[j];
+ synopsis.append(createTypeHref(output, parameter.type(), false));
+ synopsis.append(" ");
+ synopsis.append(parameter.name());
+ if (j < parameters.length - 1) {
+ synopsis.append(",\n");
+ synopsis.append(paddingLeft);
+ }
+ }
+ synopsis.append(")");
+ ClassDoc[] exceptions = ((ExecutableMemberDoc)memberDoc).thrownExceptions();
+ if (exceptions.length > 0) {
+ synopsis.append("\n throws ");
+ for (int j=0; j<exceptions.length; ++j) {
+ ClassDoc exception = exceptions[j];
+ synopsis.append(createTypeHref(output, exception, false));
+ if (j < exceptions.length - 1) {
+ synopsis.append(",\n ");
+ }
+ }
+ }
+ }
+
+ output.beginDiv(CssClass.MEMBER_DETAIL_SYNOPSIS);
+ output.print(synopsis.toString());
+ output.endDiv(CssClass.MEMBER_DETAIL_SYNOPSIS);
+
+ output.beginDiv(CssClass.MEMBER_DETAIL_BODY);
+
+ Tag[] deprecatedTags = memberDoc.tags("deprecated");
+ if (deprecatedTags.length > 0) {
+ output.beginDiv(CssClass.DEPRECATED_INLINE);
+ output.beginSpan(CssClass.DEPRECATED_HEADER);
+ output.print("Deprecated. ");
+ output.endSpan(CssClass.DEPRECATED_HEADER);
+ output.beginSpan(CssClass.DEPRECATED_BODY);
+ }
+ for (int j=0; j<deprecatedTags.length; ++j) {
+ printTags(output, memberDoc, deprecatedTags[j].inlineTags(), true);
+ }
+ if (deprecatedTags.length > 0) {
+ output.endSpan(CssClass.DEPRECATED_BODY);
+ output.beginDiv(CssClass.DEPRECATED_INLINE);
+ }
+
+ output.beginDiv(CssClass.MEMBER_DETAIL_DESCRIPTION);
+ printTags(output, memberDoc, memberDoc.inlineTags(), false);
+ output.endDiv(CssClass.MEMBER_DETAIL_DESCRIPTION);
+
+ if (memberDoc.isConstructor() || memberDoc.isMethod()) {
+
+ if (memberDoc.isMethod()) {
+ Set specifyingInterfaces = new LinkedHashSet();
+ if (memberDoc.containingClass().isInterface()) {
+ collectSpecifiedByRecursive(specifyingInterfaces,
+ memberDoc.containingClass(),
+ (MethodDoc)memberDoc);
+ }
+ else {
+ for (ClassDoc cd = memberDoc.containingClass();
+ null != cd; cd = cd.superclass()) {
+ collectSpecifiedByRecursive(specifyingInterfaces,
+ cd,
+ (MethodDoc)memberDoc);
+ }
+ }
+
+ if (!specifyingInterfaces.isEmpty()
+ && !isOnSerializedPage) {
+ output.beginDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_LIST);
+ output.div(CssClass.MEMBER_DETAIL_SPECIFIED_BY_HEADER, "Specified by:");
+ Iterator it = specifyingInterfaces.iterator();
+ while (it.hasNext()) {
+ MethodDoc specifyingInterfaceMethod = (MethodDoc)it.next();
+ output.beginDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_ITEM);
+ output.beginAnchor(getMemberDocURL(output,
+ specifyingInterfaceMethod));
+ output.print(memberDoc.name());
+ output.endAnchor();
+ output.print(" in interface ");
+ printType(output, specifyingInterfaceMethod.containingClass());
+ output.endDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_ITEM);
+ }
+ output.endDiv(CssClass.MEMBER_DETAIL_SPECIFIED_BY_LIST);
+ }
+
+ ClassDoc overriddenClassDoc = null;
+ MemberDoc specifyingSuperMethod = null;
+
+ for (ClassDoc superclassDoc = memberDoc.containingClass().superclass();
+ null != superclassDoc && null == overriddenClassDoc;
+ superclassDoc = superclassDoc.superclass()) {
+
+ MethodDoc[] methods = superclassDoc.methods();
+ for (int j=0; j<methods.length; ++j) {
+ if (methods[j].name().equals(memberDoc.name())
+ && methods[j].signature().equals(((MethodDoc)memberDoc).signature())) {
+ overriddenClassDoc = superclassDoc;
+ specifyingSuperMethod = methods[j];
+ break;
+ }
+ }
+ }
+
+ if (null != overriddenClassDoc) {
+ output.beginDiv(CssClass.MEMBER_DETAIL_OVERRIDDEN_LIST);
+ output.div(CssClass.MEMBER_DETAIL_OVERRIDDEN_HEADER, "Overrides:");
+ output.beginDiv(CssClass.MEMBER_DETAIL_OVERRIDDEN_ITEM);
+
+ output.beginAnchor(getMemberDocURL(output,
+ specifyingSuperMethod));
+ output.print(memberDoc.name());
+ output.endAnchor();
+ output.print(" in interface ");
+ printType(output, overriddenClassDoc);
+
+ output.endDiv(CssClass.MEMBER_DETAIL_OVERRIDDEN_ITEM);
+ output.endDiv(CssClass.MEMBER_DETAIL_OVERRIDDEN_LIST);
+ }
+ }
+
+ if (!optionNoComment.getValue()) {
+
+ ExecutableMemberDoc execMemberDoc
+ = (ExecutableMemberDoc)memberDoc;
+
+ if (execMemberDoc.paramTags().length > 0) {
+ output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST);
+ output.div(CssClass.MEMBER_DETAIL_PARAMETER_HEADER, "Parameters:");
+ Parameter[] parameters = execMemberDoc.parameters();
+ for (int j=0; j<parameters.length; ++j) {
+ Parameter parameter = parameters[j];
+ ParamTag[] paramTags = execMemberDoc.paramTags();
+ ParamTag paramTag = null;
+ for (int k=0; k<paramTags.length; ++k) {
+ if (paramTags[k].parameterName().equals(parameter.name())) {
+ paramTag = paramTags[k];
+ break;
+ }
+ }
+
+ if (null != paramTag) {
+ output.beginDiv(CssClass.MEMBER_DETAIL_PARAMETER_ITEM);
+ output.beginSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_NAME);
+ output.print(parameter.name());
+ output.endSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_NAME);
+ output.beginSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_SEPARATOR);
+ output.print(" - ");
+ output.endSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_SEPARATOR);
+ output.beginSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_DESCRIPTION);
+ printTags(output, execMemberDoc, paramTag.inlineTags(), false);
+ output.endSpan(CssClass.MEMBER_DETAIL_PARAMETER_ITEM_DESCRIPTION);
+ output.endDiv(CssClass.MEMBER_DETAIL_PARAMETER_ITEM);
+ }
+ }
+ output.endDiv(CssClass.MEMBER_DETAIL_PARAMETER_LIST);
+ }
+
+ if (execMemberDoc.isMethod()
+ && !"void".equals(((MethodDoc)execMemberDoc).returnType().typeName())) {
+
+ Tag[] returnTags = execMemberDoc.tags("return");
+ if (returnTags.length > 0) {
+ Tag returnTag = returnTags[0];
+
+ output.beginDiv(CssClass.MEMBER_DETAIL_RETURN_LIST);
+ output.div(CssClass.MEMBER_DETAIL_RETURN_HEADER, "Returns:");
+ output.beginDiv(CssClass.MEMBER_DETAIL_RETURN_ITEM);
+
+ printTags(output, execMemberDoc, returnTag.inlineTags(), false);
+
+ output.endDiv(CssClass.MEMBER_DETAIL_RETURN_ITEM);
+ output.endDiv(CssClass.MEMBER_DETAIL_RETURN_LIST);
+ }
+ }
+
+ Set thrownExceptions = getThrownExceptions(execMemberDoc);
+ boolean haveThrowsInfo = false;
+ ThrowsTag[] throwsTags = execMemberDoc.throwsTags();
+ for (int k=0; k<throwsTags.length; ++k) {
+ ThrowsTag throwsTag = throwsTags[k];
+ if (null != throwsTags[k].exception()
+ && (isUncheckedException(throwsTags[k].exception())
+ || thrownExceptions.contains(throwsTag.exception()))) {
+ haveThrowsInfo = true;
+ break;
+ }
+ }
+
+ if (haveThrowsInfo) {
+ output.beginDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
+ output.div(CssClass.MEMBER_DETAIL_THROWN_HEADER, "Throws:");
+
+ for (int k=0; k<throwsTags.length; ++k) {
+ ThrowsTag throwsTag = throwsTags[k];
+ if (null != throwsTag.exception()
+ && (isUncheckedException(throwsTag.exception())
+ || thrownExceptions.contains(throwsTag.exception()))) {
+ output.beginDiv(CssClass.MEMBER_DETAIL_THROWN_ITEM);
+ output.beginSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_NAME);
+ printType(output, throwsTags[k].exception());
+ output.endSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_NAME);
+ if (null != throwsTag) {
+ output.beginSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_SEPARATOR);
+ output.print(" - ");
+ output.endSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_SEPARATOR);
+ output.beginSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_DESCRIPTION);
+ printTags(output, execMemberDoc, throwsTag.inlineTags(), false);
+ output.endSpan(CssClass.MEMBER_DETAIL_THROWN_ITEM_DESCRIPTION);
+ }
+ output.endDiv(CssClass.MEMBER_DETAIL_THROWN_ITEM);
+ }
+ }
+ output.endDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
+ }
+ }
+ }
+
+ if (!optionNoComment.getValue()) {
+
+ if (memberDoc.isField()) {
+ FieldDoc fieldDoc = ((FieldDoc)memberDoc);
+ if (null != fieldDoc.constantValue()) {
+ output.beginDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
+ output.div(CssClass.MEMBER_DETAIL_THROWN_HEADER, "Field Value:");
+ output.div(CssClass.MEMBER_DETAIL_THROWN_ITEM,
+ fieldDoc.constantValueExpression().toString());
+ output.endDiv(CssClass.MEMBER_DETAIL_THROWN_LIST);
+ }
+ }
+
+ TagletContext context = new HtmlTagletContext(memberDoc, output, isOnSerializedPage);
+ printTaglets(output, memberDoc.tags(), context);
+ }
+
+ output.endDiv(CssClass.MEMBER_DETAIL_BODY);
+ output.endDiv(CssClass.MEMBER_DETAIL);
+ }
+ output.endDiv(sectionClass);
+ }
+ }
+
+
+ private void printParameters(HtmlPage output, ExecutableMemberDoc memberDoc)
+ {
+ Parameter[] parameters = memberDoc.parameters();
+ output.print("(");
+ for (int j=0; j<parameters.length; ++j) {
+ if (j > 0) {
+ output.print(", ");
+ }
+ printType(output, parameters[j].type());
+ output.print("&nbsp;");
+ output.print(parameters[j].name());
+ }
+ output.print(")");
+ }
+
+ private void printProgramElementDocs(HtmlPage output,
+ ProgramElementDoc[] memberDocs,
+ String header,
+ boolean forceOutputHeader,
+ String anchor)
+ {
+ if (memberDocs.length > 0 || forceOutputHeader) {
+ output.anchorName(anchor);
+ output.beginDiv(CssClass.TABLE_CONTAINER);
+ output.beginTable(CssClass.CLASS_SUMMARY, new String[] { "border", "width" }, new String[] { "1", "100%" });
+ output.rowDiv(CssClass.TABLE_HEADER, header);
+
+ for (int i=0; i<memberDocs.length; ++i) {
+ ProgramElementDoc memberDoc = memberDocs[i];
+ output.beginRow();
+
+ if (!memberDoc.isConstructor()) {
+ output.beginCell(CssClass.CLASS_SUMMARY_LEFT);
+ output.beginDiv(CssClass.CLASS_SUMMARY_LEFT_SYNOPSIS);
+ output.print(getSummaryModifiers(memberDoc) + " ");
+ if (memberDoc.isMethod()) {
+ printType(output, ((MethodDoc)memberDoc).returnType());
+ }
+ else if (memberDoc.isField()) {
+ printType(output, ((FieldDoc)memberDoc).type());
+ }
+ else if (memberDoc.isInterface()) {
+ output.print(" interface");
+ }
+ else if (memberDoc.isClass()) {
+ output.print(" class");
+ }
+ output.endDiv(CssClass.CLASS_SUMMARY_LEFT_SYNOPSIS);
+ output.endCell();
+ }
+
+ output.beginCell(CssClass.CLASS_SUMMARY_RIGHT);
+ output.beginDiv(CssClass.CLASS_SUMMARY_RIGHT_LIST);
+ output.beginDiv(CssClass.CLASS_SUMMARY_RIGHT_SYNOPSIS);
+ if (memberDoc.isClass() || memberDoc.isInterface()) {
+ output.beginAnchor(getClassDocURL(output, (ClassDoc)memberDoc));
+ }
+ else {
+ output.beginAnchor("#" + getMemberAnchor(memberDoc));
+ }
+ output.print(memberDoc.name());
+ output.endAnchor();
+ if (memberDoc.isConstructor() || memberDoc.isMethod()) {
+ printParameters(output, (ExecutableMemberDoc)memberDoc);
+ }
+ output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_SYNOPSIS);
+ Tag[] firstSentenceTags;
+ Tag[] deprecatedTags = memberDoc.tags("deprecated");
+ if (deprecatedTags.length > 0) {
+ firstSentenceTags = deprecatedTags[0].firstSentenceTags();
+ }
+ else {
+ firstSentenceTags = memberDoc.firstSentenceTags();
+ }
+
+ if (null != firstSentenceTags && firstSentenceTags.length > 0) {
+ output.beginDiv(CssClass.CLASS_SUMMARY_RIGHT_DESCRIPTION);
+ if (deprecatedTags.length > 0) {
+ output.beginDiv(CssClass.DEPRECATED);
+ output.beginSpan(CssClass.DEPRECATED_HEADER);
+ output.print("Deprecated. ");
+ output.endSpan(CssClass.DEPRECATED_HEADER);
+ output.beginSpan(CssClass.DEPRECATED_BODY);
+ }
+ printTags(output, memberDoc, firstSentenceTags, true);
+ if (deprecatedTags.length > 0) {
+ output.endSpan(CssClass.DEPRECATED_BODY);
+ output.beginDiv(CssClass.DEPRECATED);
+ }
+ output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_DESCRIPTION);
+ }
+ output.endDiv(CssClass.CLASS_SUMMARY_RIGHT_LIST);
+ output.endCell();
+ output.endRow();
+ }
+ output.endTable();
+ output.endDiv(CssClass.TABLE_CONTAINER);
+ }
+ }
+
+ private void printTag(final HtmlPage output,
+ HtmlRepairer repairer,
+ Tag tag, boolean firstSentence,
+ boolean inline,
+ Doc contextDoc)
+ {
+ TagletContext context = new HtmlTagletContext(contextDoc, output, false);
+ if (firstSentence) {
+ output.print(renderInlineTags(tag.firstSentenceTags(), context));
+ }
+ else {
+ output.print(renderInlineTags(tag.inlineTags(), context));
+ }
+ }
+
+ private void printTags(HtmlPage output, Doc contextDoc, Tag[] tags, boolean firstSentence)
+ {
+ printTags(output, contextDoc, tags, firstSentence, false);
+ }
+
+ private void printTags(HtmlPage output, Doc contextDoc, Tag[] tags, boolean firstSentence, boolean inline)
+ {
+ if (!optionNoComment.getValue()) {
+ output.print(renderInlineTags(tags, new HtmlTagletContext(contextDoc, output, false)));
+ }
+
+ /*
+ if (!optionNoComment.getValue()) {
+ output.print(renderInlineTags(tag.firstSentenceTags(), output));
+ HtmlRepairer repairer = new HtmlRepairer(getRootDoc(),
+ true, false,
+ null, null,
+ true);
+ for (int i=0; i<tags.length; ++i) {
+ printTag(output, repairer, tags[i], firstSentence, inline);
+ }
+ output.print(repairer.terminateText());
+ }
+ */
+ }
+
+ private String getClassDocURL(HtmlPage output, ClassDoc classDoc)
+ {
+ return output.getPathToRoot()
+ + "/"
+ + getPackageURL(classDoc.containingPackage())
+ + classDoc.name() + filenameExtension;
+ }
+
+ private String getMemberDocURL(HtmlPage output, ProgramElementDoc memberDoc)
+ {
+ ClassDoc classDoc = memberDoc.containingClass();
+ PackageDoc packageDoc = classDoc.containingPackage();
+ ExternalDocSet externalDocSet = null;
+ if (classDoc.containingPackage().name().length() > 0) {
+ externalDocSet = (ExternalDocSet)packageNameToDocSet.get(packageDoc.name());
+ }
+ StringBuffer result = new StringBuffer();
+ result.append(getClassDocURL(output, classDoc));
+ result.append('#');
+ if (null == externalDocSet) {
+ result.append(getMemberAnchor(memberDoc));
+ }
+ else {
+ result.append(getMemberAnchor(memberDoc, externalDocSet.isJavadocCompatible()));
+ }
+ return result.toString();
+ }
+
+ private void printType(HtmlPage output, Type type)
+ {
+ printType(output, type, false);
+ }
+
+ private void printType(HtmlPage output, Type type, boolean fullyQualified)
+ {
+ output.print(createTypeHref(output, type, fullyQualified));
+ }
+
+ private String createTypeHref(HtmlPage output, Type type, boolean fullyQualified)
+ {
+ ClassDoc asClassDoc = type.asClassDoc();
+ String url = null;
+ if (null != asClassDoc && asClassDoc.isIncluded()) {
+ url = getClassDocURL(output, asClassDoc);
+ }
+ else if (!type.isPrimitive()) {
+ if (type.qualifiedTypeName().length() > type.typeName().length()) {
+ String packageName = type.qualifiedTypeName();
+ packageName = packageName.substring(0, packageName.length() - type.typeName().length() - 1);
+
+ ExternalDocSet externalDocSet
+ = (ExternalDocSet)packageNameToDocSet.get(packageName);
+ if (null != externalDocSet) {
+ url = externalDocSet.getClassDocURL(packageName, type.typeName());
+ }
+ }
+ }
+
+ StringBuffer result = new StringBuffer();
+
+ if (null != url && null != asClassDoc) {
+ String parameters = getTypeParameters(asClassDoc);
+ if (fullyQualified) {
+ result.append(output.createHrefString(url,possiblyQualifiedName(asClassDoc) + parameters));
+ }
+ else {
+ StringBuffer title = new StringBuffer();
+ title.append(getClassTypeName(asClassDoc));
+ title.append(" in ");
+ title.append(asClassDoc.containingPackage().name());
+ result.append(output.createHrefString(url, asClassDoc.name() + parameters, title.toString()));
+ }
+ }
+ else {
+ result.append(possiblyQualifiedName(type));
+ }
+ result.append(type.dimension());
+ return result.toString();
+ }
+
+ private void printTaglets(final HtmlPage output, Tag[] tags, TagletContext context)
+ {
+ super.printMainTaglets(tags, context, new TagletPrinter() {
+ public void printTagletString(String tagletString) {
+ output.beginDiv(CssClass.TAGLET);
+ output.print(tagletString);
+ output.endDiv(CssClass.TAGLET);
+ }
+ });
+ }
+
+ private String getPackageURL(PackageDoc packageDoc)
+ {
+ if (packageDoc.name().length() > 0) {
+ ExternalDocSet externalDocSet = (ExternalDocSet)packageNameToDocSet.get(packageDoc.name());
+ String url;
+ if (null != externalDocSet) {
+ url = externalDocSet.getPackageDocURL(packageDoc.name());
+ }
+ else {
+ url = packageDoc.name().replace('.', '/');
+ }
+ if (!url.endsWith("/")) {
+ return url + '/';
+ }
+ else {
+ return url;
+ }
+ }
+ else {
+ return "";
+ }
+ }
+
+ private String getClassURL(ClassDoc classDoc)
+ {
+ ExternalDocSet externalDocSet = null;
+ if (classDoc.containingPackage().name().length() > 0) {
+ externalDocSet = (ExternalDocSet)packageNameToDocSet.get(classDoc.containingPackage().name());
+ }
+ if (null != externalDocSet) {
+ return externalDocSet.getClassDocURL(classDoc.containingPackage().name(),
+ classDoc.name());
+ }
+ else {
+ return getPackageURL(classDoc.containingPackage()) + classDoc.name() + filenameExtension;
+ }
+ }
+
+ protected void run()
+ throws DocletConfigurationException, IOException
+ {
+ if (optionSerialWarn.getValue()) {
+ printWarning("Option -serialwarn is currently ignored.");
+ }
+
+ if (null != optionTitle.getValue()) {
+ printWarning("Option -title is deprecated.");
+ }
+
+ if (!optionValidHtml.getValue()) {
+ printWarning("Option -validhtml hasn't been specified. Generated HTML will not validate.");
+ }
+
+
+ {
+ boolean warningEmitted = false;
+ Iterator it = externalDocSets.iterator();
+ while (it.hasNext()) {
+ ExternalDocSet externalDocSet = (ExternalDocSet)it.next();
+ printNotice("Fetching package list for external documentation set.");
+ try {
+ externalDocSet.load(getTargetDirectory());
+ if (!isJavadocCompatibleNames() && externalDocSet.isJavadocCompatible()
+ && !warningEmitted) {
+ printWarning("Linking to javadoc-compatible documentation. Generated HTML will not validate ");
+ warningEmitted = true;
+ }
+ }
+ catch (FileNotFoundException e) {
+ printWarning("Cannot fetch package list from " + externalDocSet.getPackageListDir());
+ }
+ Iterator pit = externalDocSet.getPackageNames().iterator();
+ while (pit.hasNext()) {
+ String packageName = (String)pit.next();
+ packageNameToDocSet.put(packageName, externalDocSet);
+ }
+ }
+ }
+ printNotice("Building cross-reference information...");
+ getInterfaceRelations();
+ getAllSubClasses();
+
+ printNotice("Writing overview files...");
+ printFrameSetPage();
+ if (!isSinglePackage()) {
+ printPackagesMenuPage();
+ printAllClassesMenuPage();
+ printOverviewPage();
+ if (!optionNoTree.getValue()) {
+ printNotice("Writing full tree...");
+ printFullTreePage();
+ }
+ }
+ printPackagesListFile();
+ printAboutPage();
+ if (!optionNoIndex.getValue()) {
+ printNotice("Writing index...");
+ if (!optionSplitIndex.getValue()) {
+ printIndexPage();
+ }
+ else {
+ printSplitIndex();
+ }
+ }
+ if (outputHelpPage && !optionNoHelp.getValue()) {
+ printHelpPage();
+ }
+
+ // Copy resources
+
+ File resourcesDir = new File(getTargetDirectory(),
+ "resources");
+
+ if ((resourcesDir.exists() && !resourcesDir.isDirectory())
+ || (!resourcesDir.exists() && !resourcesDir.mkdirs())) {
+ throw new IOException("Cannot create directory " + resourcesDir);
+ }
+
+ // Copy resources
+
+ String[] resourceNames = {
+ "gjdoc.js",
+ "gjdochtml-clean-layout.css",
+ "gjdochtml-clean-color1.css",
+ "inherit.png",
+ "xhtml11-target10.dtd",
+ };
+
+ for (int i=0; i<resourceNames.length; ++i) {
+ String resourceName = resourceNames[i];
+ File targetFile = new File(resourcesDir,
+ resourceName);
+ InputStream in = getClass().getResourceAsStream("/htmldoclet/" + resourceName);
+ if (in == null) {
+ in = new FileInputStream("src/resources/htmldoclet/" + resourceName);
+ }
+ FileOutputStream out = new FileOutputStream(targetFile);
+ IOToolkit.copyStream(in, out);
+ in.close();
+ out.close();
+ }
+
+ // Copy stylesheets
+
+ if (null != optionAddStylesheet.getValue()) {
+ File addStylesheetTargetFile = new File(resourcesDir,
+ "user.css");
+
+ IOToolkit.copyFile(optionAddStylesheet.getValue(),
+ addStylesheetTargetFile);
+ }
+
+ if (null != optionStylesheetFile.getValue()) {
+ File stylesheetTargetFile = new File(resourcesDir,
+ "user.css");
+
+ IOToolkit.copyFile(optionStylesheetFile.getValue(),
+ stylesheetTargetFile);
+ }
+
+ // Write gjdoc.properties
+
+ File gjdocPropertiesTargetFile = new File(getTargetDirectory(),
+ "gjdoc.properties");
+ writeGjdocProperties(gjdocPropertiesTargetFile);
+
+ /*
+ else {
+ InputStream cssIn = getClass().getResourceAsStream("/htmldoclet/gjdochtml-vanilla.css");
+ FileOutputStream cssOut = new FileOutputStream(stylesheetTargetFile);
+ IOToolkit.copyStream(cssIn, cssOut);
+ cssIn.close();
+ cssOut.close();
+ }
+ */
+
+ if (!optionNoDeprecatedList.getValue()) {
+ printDeprecationPage();
+ }
+
+ printSerializationPage();
+
+ Collection packageDocsCollection = getAllPackages();
+ PackageDoc[] packageDocs
+ = (PackageDoc[])packageDocsCollection.toArray(new PackageDoc[0]);
+
+ for (int i=0; i<packageDocs.length; ++i) {
+ PackageDoc packageDoc = packageDocs[i];
+ File packageDir = new File(getTargetDirectory(),
+ packageDoc.name().replace('.', File.separatorChar));
+ if (!packageDir.exists() && !packageDir.mkdirs()) {
+ throw new IOException("Couldn't create directory " + packageDir);
+ }
+ try {
+ List packageSourceDirs = getPackageSourceDirs(packageDoc);
+ Iterator pdIt = packageSourceDirs.iterator();
+ while (pdIt.hasNext()) {
+ File sourcePackageDir = (File)pdIt.next();
+ copyDocFiles(sourcePackageDir, packageDir);
+ }
+ }
+ catch (IOException ignore) {
+ }
+ String pathToRoot = getPathToRoot(packageDir, getTargetDirectory());
+ String packageName = packageDoc.name();
+ if (0 == packageName.length()) {
+ packageName = "<unnamed>";
+ }
+ printNotice("Writing HTML files for package " + packageName);
+ printPackagePage(packageDir, pathToRoot, packageDoc,
+ (i > 0) ? packageDocs[i - 1] : null,
+ (i < packageDocs.length - 1) ? packageDocs[i + 1] : null);
+ if (!optionNoTree.getValue()) {
+ printPackageTreePage(packageDir, pathToRoot, packageDoc);
+ }
+ printPackageClassesMenuPage(packageDir, pathToRoot, packageDoc);
+ ClassDoc[] classDocs = packageDoc.allClasses();
+ for (int j=0; j<classDocs.length; ++j) {
+ ClassDoc classDoc = classDocs[j];
+ if (classDoc.isIncluded()) {
+ printClassPage(packageDir, pathToRoot,
+ classDocs[j],
+ (j > 0) ? classDocs[j - 1] : null,
+ (j < classDocs.length - 1) ? classDocs[j + 1] : null
+ );
+ if (optionUse.getValue()) {
+ printClassUsagePage(packageDir, pathToRoot, classDocs[j]);
+ }
+ if (optionLinkSource.getValue() && null == classDoc.containingClass()) {
+ try {
+ File sourceFile = getSourceFile(classDoc);
+
+ Java2xhtml java2xhtml = new Java2xhtml();
+ Properties properties = new Properties();
+ properties.setProperty("isCodeSnippet", "true");
+ properties.setProperty("hasLineNumbers", "true");
+ java2xhtml.setProperties(properties);
+
+ StringWriter sourceBuffer = new StringWriter();
+ FileReader sourceReader = new FileReader(sourceFile);
+ IOToolkit.copyStream(sourceReader, sourceBuffer);
+ sourceReader.close();
+ String result = java2xhtml.makeHTML(sourceBuffer.getBuffer(), sourceFile.getName());
+
+ printSourcePage(packageDir,
+ classDoc,
+ result);
+ }
+ catch (IOException e) {
+ printWarning("Cannot locate source file for class " + classDoc.qualifiedTypeName());
+ }
+ }
+ }
+ }
+ }
+ }
+
+ private String getPathToRoot(File subDir, File rootDir)
+ {
+ StringBuffer result = new StringBuffer();
+ while (!subDir.equals(rootDir)) {
+ if (result.length() > 0) {
+ result.append("/");
+ }
+ subDir = subDir.getParentFile();
+ result.append("..");
+ }
+ if (0 == result.length()) {
+ result.append(".");
+ }
+ return result.toString();
+ }
+
+ private String getClassTypeName(ClassDoc classDoc)
+ {
+ if (classDoc.isInterface()) {
+ return "Interface";
+ }
+ else {
+ return "Class";
+ }
+ }
+
+ private String getClassTypeKeyword(ClassDoc classDoc)
+ {
+ if (classDoc.isInterface()) {
+ return "interface";
+ }
+ else {
+ return "class";
+ }
+ }
+
+ private String getMemberAnchor(ProgramElementDoc memberDoc)
+ {
+ return getMemberAnchor(memberDoc, isJavadocCompatibleNames());
+ }
+
+ private String getMemberAnchor(ProgramElementDoc memberDoc, boolean javadocCompatibility)
+ {
+ StringBuffer anchor = new StringBuffer();
+ anchor.append(memberDoc.name());
+ if (memberDoc.isConstructor() || memberDoc.isMethod()) {
+ if (javadocCompatibility) {
+ anchor.append(((ExecutableMemberDoc)memberDoc).signature());
+ }
+ else {
+ anchor.append(':');
+ Parameter[] parameters = ((ExecutableMemberDoc)memberDoc).parameters();
+ for (int i=0; i<parameters.length; ++i) {
+ anchor.append(parameters[i].type().typeName());
+ for (int j=0; j<parameters[i].type().dimension().length()/2; ++j) {
+ anchor.append('-');
+ }
+ if (i < parameters.length - 1) {
+ anchor.append(':');
+ }
+ }
+ }
+ }
+ return anchor.toString();
+ }
+
+ private String getFullModifiers(ProgramElementDoc memberDoc)
+ {
+ StringBuffer result = new StringBuffer();
+ if (memberDoc.isPackagePrivate()) {
+ result.append("(package private) ");
+ }
+ result.append(memberDoc.modifiers());
+ if ((memberDoc.isClass() && ((ClassDoc)memberDoc).isAbstract())
+ || (memberDoc.isMethod() && ((MethodDoc)memberDoc).isAbstract())) {
+ result.append(" abstract");
+ }
+ return result.toString();
+ }
+
+ private String getSummaryModifiers(ProgramElementDoc memberDoc)
+ {
+ StringBuffer result = new StringBuffer();
+ if (memberDoc.isPackagePrivate()) {
+ result.append("(package private) ");
+ }
+ else if (memberDoc.isPrivate()) {
+ result.append("private ");
+ }
+ else if (memberDoc.isProtected()) {
+ result.append("protected ");
+ }
+ if (memberDoc.isStatic()) {
+ result.append("static");
+ }
+ else if ((memberDoc.isClass() && ((ClassDoc)memberDoc).isAbstract())
+ || (memberDoc.isMethod() && ((MethodDoc)memberDoc).isAbstract())) {
+ result.append("abstract");
+ }
+ return result.toString();
+ }
+
+ protected DocletOption[] getOptions()
+ {
+ return options;
+ }
+
+ private DocletOptionFlag optionNoNavBar =
+ new DocletOptionFlag("-nonavbar");
+
+ private DocletOptionFlag optionNoTree =
+ new DocletOptionFlag("-notree");
+
+ private DocletOptionFlag optionNoDeprecatedList =
+ new DocletOptionFlag("-nodeprecatedlist");
+
+ private DocletOptionFlag optionNoIndex =
+ new DocletOptionFlag("-noindex");
+
+ private DocletOptionFlag optionUse =
+ new DocletOptionFlag("-use");
+
+ private DocletOptionFlag optionNoHelp =
+ new DocletOptionFlag("-nohelp");
+
+ private DocletOptionFlag optionNoComment =
+ new DocletOptionFlag("-nocomment");
+
+ private DocletOptionFlag optionSerialWarn =
+ new DocletOptionFlag("-serialwarn");
+
+ private DocletOptionFlag optionSplitIndex =
+ new DocletOptionFlag("-splitindex");
+
+ private DocletOptionString optionHeader =
+ new DocletOptionString("-header");
+
+ private DocletOptionString optionFooter =
+ new DocletOptionString("-footer");
+
+ private DocletOptionString optionBottom =
+ new DocletOptionString("-bottom");
+
+ private DocletOptionString optionWindowTitle =
+ new DocletOptionString("-windowtitle");
+
+ private DocletOptionString optionDocTitle =
+ new DocletOptionString("-doctitle");
+
+ private DocletOptionString optionTitle =
+ new DocletOptionString("-title");
+
+ private DocletOptionFile optionHelpFile =
+ new DocletOptionFile("-helpfile");
+
+ private DocletOptionFile optionStylesheetFile =
+ new DocletOptionFile("-stylesheetfile");
+
+ private DocletOptionFlag optionLinkSource =
+ new DocletOptionFlag("-linksource");
+
+ private DocletOption optionLink =
+ new DocletOption("-link") {
+
+ public int getLength()
+ {
+ return 2;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+ externalDocSets.add(new ExternalDocSet(optionArr[1], null));
+ return true;
+ }
+ };
+
+ private DocletOption optionLinkOffline =
+ new DocletOption("-linkoffline") {
+
+ public int getLength()
+ {
+ return 3;
+ }
+
+ public boolean set(String[] optionArr)
+ {
+ externalDocSets.add(new ExternalDocSet(optionArr[1], optionArr[2]));
+ return true;
+ }
+ };
+
+ private DocletOptionString optionDocEncoding =
+ new DocletOptionString("-docencoding");
+
+ private DocletOptionString optionEncoding =
+ new DocletOptionString("-encoding");
+
+ private DocletOptionString optionCharset =
+ new DocletOptionString("-charset");
+
+ private DocletOptionFile optionAddStylesheet =
+ new DocletOptionFile("-addstylesheet");
+
+ private DocletOptionFlag optionValidHtml =
+ new DocletOptionFlag("-validhtml");
+
+ private DocletOptionString optionBaseUrl =
+ new DocletOptionString("-baseurl");
+
+ private DocletOption[] options =
+ {
+ optionNoNavBar,
+ optionNoTree,
+ optionNoDeprecatedList,
+ optionNoIndex,
+ optionNoHelp,
+ optionNoComment,
+ optionUse,
+ optionSplitIndex,
+ optionHeader,
+ optionFooter,
+ optionBottom,
+ optionHelpFile,
+ optionStylesheetFile,
+ optionWindowTitle,
+ optionDocTitle,
+ optionTitle,
+ optionLinkSource,
+ optionLink,
+ optionLinkOffline,
+ optionDocEncoding,
+ optionEncoding,
+ optionCharset,
+ optionAddStylesheet,
+ optionValidHtml,
+ optionBaseUrl,
+ };
+
+ static {
+ setInstance(new HtmlDoclet());
+ }
+
+ private static String replaceDocRoot(HtmlPage output, String str)
+ {
+ return StringToolkit.replace(str, "{@docRoot}", output.getPathToRoot());
+ }
+
+ private String getOutputDocEncoding()
+ {
+ String encoding = optionDocEncoding.getValue();
+
+ if (null == encoding) {
+ encoding = optionEncoding.getValue();
+ }
+
+ return encoding;
+ }
+
+ private String getOutputCharset()
+ {
+ if (null == outputCharset) {
+
+ if (null != optionCharset.getValue()) {
+ outputCharset = optionCharset.getValue();
+ }
+ else {
+ String fileEncoding = System.getProperty("file.encoding");
+ if (null != fileEncoding) {
+ try {
+ outputCharset = Charset.forName(fileEncoding).name();
+ }
+ catch (Exception ignore) {
+ }
+ }
+
+ if (null == outputCharset) {
+ printWarning("Cannot determine platform default charset, falling back to ISO-8859-1.");
+ outputCharset = "ISO-8859-1";
+ }
+ }
+ }
+ return outputCharset;
+ }
+
+ public InlineTagRenderer getInlineTagRenderer()
+ {
+ return this;
+ }
+
+ public String renderInlineTags(Tag[] tags, TagletContext context)
+ {
+ StringBuffer result = new StringBuffer();
+
+ HtmlRepairer repairer = new HtmlRepairer(getRootDoc(),
+ true, false,
+ null, null,
+ true);
+
+ for (int i=0; i<tags.length; ++i) {
+
+ Tag tag = tags[i];
+
+ if ("Text".equals(tag.name())) {
+ result.append(repairer.getWellformedHTML(tag.text()));
+ }
+ else if ("@link".equals(tag.name())) {
+ result.append(renderSeeTag((SeeTag)tag, context, false));
+ }
+ else if ("@linkplain".equals(tag.name())) {
+ result.append(renderSeeTag((SeeTag)tag, context, true));
+ }
+ else if ("@docRoot".equals(tag.name())) {
+ result.append(((HtmlTagletContext)context).getOutput().getPathToRoot());
+ }
+ else {
+ //TagletContext context = TagletContext.OVERVIEW; // FIXME
+ Taglet taglet = (Taglet)tagletMap.get(tag.name().substring(1));
+ if (null != taglet) {
+ if (taglet instanceof GnuExtendedTaglet) {
+ result.append(((GnuExtendedTaglet)taglet).toString(tag, context));
+ }
+ else {
+ result.append(taglet.toString(tag));
+ }
+ }
+ }
+ }
+ result.append(repairer.terminateText());
+ return result.toString();
+ }
+
+ public String renderSeeTag(SeeTag seeTag, TagletContext context, boolean plainFont)
+ {
+ StringBuffer result = new StringBuffer();
+
+ String href = null;
+ String label = null;
+ MemberDoc referencedMember = seeTag.referencedMember();
+ if (null != seeTag.referencedClass()) {
+
+ href = getClassDocURL(((HtmlTagletContext)context).getOutput(), seeTag.referencedClass());
+
+ Doc doc = context.getDoc();
+ ClassDoc classDoc = null;
+ if (doc.isClass() || doc.isInterface()) {
+ classDoc = (ClassDoc)doc;
+ }
+ else if (doc.isField() || doc.isMethod() || doc.isConstructor()) {
+ classDoc = ((MemberDoc)doc).containingClass();
+ }
+
+ if (null == referencedMember
+ || seeTag.referencedClass() != classDoc
+ || ((HtmlTagletContext)context).isOnSerializedPage()) {
+
+ if (!seeTag.referencedClass().isIncluded()) {
+ label = possiblyQualifiedName(seeTag.referencedClass());
+ }
+ else {
+ label = seeTag.referencedClass().typeName();
+ }
+ if (null != referencedMember) {
+ label += '.';
+ }
+ }
+ else {
+ label = "";
+ }
+
+ if (null != referencedMember) {
+ label += referencedMember.name();
+ if (referencedMember.isMethod() || referencedMember.isConstructor()) {
+ label += ((ExecutableMemberDoc)referencedMember).flatSignature();
+ }
+ href += '#' + getMemberAnchor(referencedMember);
+ }
+ else if (null != seeTag.referencedMemberName()) {
+ href = null;
+ }
+ }
+ else {
+ String referencedClassName = seeTag.referencedClassName();
+
+ if (null != referencedClassName) {
+
+ String referencedPackageName = null;
+
+ Iterator it = packageNameToDocSet.keySet().iterator();
+ while (it.hasNext()) {
+ String packageName = (String)it.next();
+ if ((null == referencedPackageName
+ || packageName.length() > referencedPackageName.length())
+ && referencedClassName.startsWith(packageName + '.')) {
+ referencedPackageName = packageName;
+ }
+ }
+
+ if (null != referencedPackageName) {
+ ExternalDocSet externalDocSet
+ = (ExternalDocSet)packageNameToDocSet.get(referencedPackageName);
+
+ String className = referencedClassName.substring(referencedPackageName.length() + 1);
+ href = externalDocSet.getClassDocURL(referencedPackageName,
+ className);
+ label = className;
+
+ String referencedMemberName = seeTag.referencedMemberName();
+
+ if (null != referencedMemberName) {
+ label += '.';
+ label += referencedMemberName;
+ href += '#' + transformReferencedMemberName(referencedMemberName,
+ externalDocSet.isJavadocCompatible());
+ }
+ else if (null != seeTag.referencedMemberName()) {
+ href = null;
+ }
+ }
+ }
+ }
+
+ if (null != seeTag.label()
+ && seeTag.label().length() > 0) {
+ label = seeTag.label();
+ }
+
+ if (null == label) {
+ label = seeTag.text();
+ if (label.startsWith("#")) {
+ label = label.substring(1);
+ }
+ else {
+ label = label.replace('#', '.');
+ }
+ label.trim();
+ }
+
+ if (null != href) {
+ result.append("<a href=\"");
+ result.append(href);
+ result.append("\">");
+ if (!plainFont) {
+ result.append("<code>");
+ }
+ result.append(label);
+ if (!plainFont) {
+ result.append("</code>");
+ }
+ result.append("</a>");
+ }
+ else {
+ if (!plainFont) {
+ result.append("<code>");
+ }
+ result.append(label);
+ if (!plainFont) {
+ result.append("</code>");
+ }
+ }
+
+ return result.toString();
+ }
+
+ protected String renderTag(String tagName, Tag[] tags, TagletContext context)
+ {
+ Doc doc = context.getDoc();
+
+ if ("see".equals(tagName)
+ && ((tags.length > 0)
+ || (doc.isClass()
+ && (((ClassDoc)doc).isSerializable()
+ || ((ClassDoc)doc).isExternalizable())))) {
+
+ StringBuffer result = new StringBuffer();
+ result.append("<dl class=\"tag list\">");
+ result.append("<dt class=\"tag section header\"><b>");
+ result.append("See Also:");
+ result.append("</b></dt>");
+
+ boolean oneLine = true;
+
+ if (oneLine) {
+ result.append("<dd>");
+ }
+
+ for (int i = 0; i < tags.length; ++i) {
+ if (oneLine) {
+ if (i > 0) {
+ result.append(", ");
+ }
+ }
+ else {
+ result.append("<dd>");
+ }
+ result.append(renderSeeTag((SeeTag)tags[i], context, false));
+ if (!oneLine) {
+ result.append("</dd>");
+ }
+ }
+
+ if ((doc instanceof ClassDoc)
+ && (((ClassDoc)doc).isSerializable() || ((ClassDoc)doc).isExternalizable())) {
+ if (tags.length > 0) {
+ result.append(", ");
+ }
+ HtmlPage output = ((HtmlTagletContext)context).getOutput();
+ result.append("<a href=\"" + output.getPathToRoot() + "/serialized-form" + filenameExtension + "#" + ((ClassDoc)doc).qualifiedName() + "\">Serialized Form</a>");
+ }
+
+ if (oneLine) {
+ result.append("</dd>");
+ }
+ result.append("</dl>");
+ return result.toString();
+ }
+ else if (tags.length > 0
+ && "serial".equals(tagName)
+ && ((HtmlTagletContext)context).isOnSerializedPage()) {
+
+ return renderInlineTags(tags[0].inlineTags(), context);
+ }
+ else {
+ return "";
+ }
+ }
+
+ private String getWindowTitle()
+ {
+ if (null == optionWindowTitle.getValue()) {
+ return "Generated API Documentation";
+ }
+ else {
+ return optionWindowTitle.getValue();
+ }
+ }
+
+ private String getPageTitle(String title)
+ {
+ if (null == optionWindowTitle.getValue()) {
+ return title;
+ }
+ else {
+ return title + " (" + optionWindowTitle.getValue() + ")";
+ }
+ }
+
+ protected String getDocletVersion()
+ {
+ if (null == docletVersion) {
+ try {
+ Properties versionProperties = new Properties();
+ InputStream in = getClass().getResourceAsStream("/version.properties");
+ if (in == null) {
+ in = new FileInputStream("src/resources/version.properties");
+ }
+ versionProperties.load(in);
+ docletVersion = versionProperties.getProperty("gjdoc.version");
+ }
+ catch (IOException ignore) {
+ }
+ if (null == docletVersion) {
+ docletVersion = "unknown";
+ }
+ }
+ return docletVersion;
+ }
+
+ private Map getStylesheets()
+ {
+ Map sheets = new HashMap();
+ if (null != optionStylesheetFile.getValue()) {
+ sheets.put("User-specified", new String[] {
+ "resources/user.css"
+ });
+ }
+ else {
+ List cleanSheets = new LinkedList();
+ cleanSheets.add("resources/gjdochtml-clean-layout.css");
+ cleanSheets.add("resources/gjdochtml-clean-color1.css");
+ if (null != optionAddStylesheet.getValue()) {
+ cleanSheets.add("resources/user.css");
+ }
+ sheets.put("GNU Clean", cleanSheets.toArray(new String[0]));
+ }
+ return sheets;
+ }
+
+ protected boolean isSinglePackage()
+ {
+ if (getRootDoc().firstSentenceTags().length > 0) {
+ return false;
+ }
+ else if (null != optionDocTitle.getValue()
+ || null != optionTitle.getValue()) {
+ return false;
+ }
+ else {
+ return super.isSinglePackage();
+ }
+ }
+
+ private String getTypeParameters(ClassDoc classDoc)
+ {
+ String parameters = "";
+ TypeVariable[] params = classDoc.typeParameters();
+ if (params != null && params.length > 0)
+ {
+ parameters = "&lt;";
+ for (int a = 0; a < params.length; ++a)
+ {
+ parameters += params[a].typeName();
+ Type[] bounds = params[a].bounds();
+ if (bounds != null)
+ {
+ parameters += " extends ";
+ for (int b = 0; a < bounds.length; ++b)
+ {
+ parameters += bounds[a];
+ if (b != bounds.length - 1)
+ parameters += " & ";
+ }
+ }
+ if (a != params.length - 1)
+ parameters += ",";
+ }
+ parameters += "&gt;";
+ }
+ return parameters;
+ }
+
+ private String transformReferencedMemberName(String referencedMemberName,
+ boolean javadocCompatibility)
+ {
+ if (!javadocCompatibility) {
+ StringBuffer result = new StringBuffer();
+ for (int i=0; i<referencedMemberName.length(); ++i) {
+ char c = referencedMemberName.charAt(i);
+ switch (c) {
+ case '(': result.append(':'); break;
+ case ')': break;
+ case ',': result.append(':'); break;
+ case '[': result.append('-'); break;
+ case ']': break;
+ default: result.append(c); break;
+ }
+ }
+ return result.toString();
+ }
+ else {
+ return referencedMemberName;
+ }
+ }
+
+ public void writeGjdocProperties(File outputFile)
+ throws IOException
+ {
+ Properties properties = new Properties();
+ properties.setProperty("gjdoc.version", getDocletVersion());
+ properties.setProperty("gjdoc.compat", Boolean.toString(isJavadocCompatibleNames()));
+
+ FileOutputStream out = new FileOutputStream(outputFile);
+ properties.store(out, "GNU Gjdoc API Documentation Set Descriptor");
+ out.close();
+ }
+
+ public boolean isJavadocCompatibleNames()
+ {
+ return !optionValidHtml.getValue();
+ }
+
+ private HtmlPage newHtmlPage(File file,
+ String pathToRoot)
+ throws IOException
+ {
+ return new HtmlPage(file,
+ pathToRoot,
+ getOutputDocEncoding(),
+ optionBaseUrl.getValue(),
+ getTargetDirectory());
+ }
+
+ private HtmlPage newHtmlPage(File file,
+ String pathToRoot,
+ String docType)
+ throws IOException
+ {
+ return new HtmlPage(file,
+ pathToRoot,
+ getOutputDocEncoding(),
+ optionBaseUrl.getValue(),
+ getTargetDirectory(),
+ docType);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java
new file mode 100644
index 0000000..0026e0b
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlPage.java
@@ -0,0 +1,518 @@
+/* gnu.classpath.tools.doclets.htmldoclet.HtmlPage
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.htmldoclet;
+
+import gnu.classpath.tools.IOToolkit;
+
+import java.io.BufferedWriter;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.FileWriter;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.OutputStreamWriter;
+import java.io.PrintWriter;
+import java.io.Reader;
+import java.io.Writer;
+
+import java.util.Collection;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import com.sun.javadoc.Tag;
+
+/**
+ * Allows outputting an HTML document without having to build the
+ * document tree in-memory.
+ */
+public class HtmlPage
+{
+ private File file;
+ private PrintWriter out;
+ private String pathToRoot;
+ private String docType;
+ private String baseUrl;
+ private File rootDir;
+
+ public static final String DOCTYPE_FRAMESET = "<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Frameset//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd\">";
+
+ public HtmlPage(File file, String pathToRoot, String encoding, String baseUrl, File rootDir)
+ throws IOException
+ {
+ this(file, pathToRoot, encoding, baseUrl, rootDir, "<!DOCTYPE html PUBLIC \"-//gnu.org///DTD XHTML 1.1 plus Target 1.0//EN\" \"" + pathToRoot + "/resources/xhtml11-target10.dtd\">");
+ }
+
+ public HtmlPage(File file, String pathToRoot, String encoding, String baseUrl, File rootDir, String docType)
+ throws IOException
+ {
+ this.file = file;
+ OutputStream fileOut = new FileOutputStream(file);
+ Writer writer;
+ if (null != encoding) {
+ writer = new OutputStreamWriter(fileOut,
+ encoding);
+ }
+ else {
+ writer = new OutputStreamWriter(fileOut);
+ }
+ this.out = new PrintWriter(new BufferedWriter(writer));
+ this.pathToRoot = pathToRoot;
+ this.docType = docType;
+ this.baseUrl = baseUrl;
+ this.rootDir = rootDir;
+ }
+
+ public void beginElement(String elementName)
+ {
+ print('<');
+ print(elementName);
+ print('>');
+ }
+
+ public void beginElement(String elementName, String attributeName, String attributeValue)
+ {
+ print('<');
+ print(elementName);
+ print(' ');
+ print(attributeName);
+ print('=');
+ print('\"');
+ print(attributeValue);
+ print('\"');
+ print('>');
+ }
+
+ public void beginElement(String elementName, String[] attributeNames, String[] attributeValues)
+ {
+ print('<');
+ print(elementName);
+ for (int i=0; i<attributeNames.length; ++i) {
+ if (null != attributeValues[i]) {
+ print(' ');
+ print(attributeNames[i]);
+ print('=');
+ print('\"');
+ print(attributeValues[i]);
+ print('\"');
+ }
+ }
+ print('>');
+ }
+
+ public void beginElement(String elementName, String attributeName, String attributeValue, String[] attributeNames, String[] attributeValues)
+ {
+ print('<');
+ print(elementName);
+ print(' ');
+ print(attributeName);
+ print('=');
+ print('\"');
+ print(attributeValue);
+ print('\"');
+ if (null != attributeNames) {
+ for (int i=0; i<attributeNames.length; ++i) {
+ if (null != attributeValues[i]) {
+ print(' ');
+ print(attributeNames[i]);
+ print('=');
+ print('\"');
+ print(attributeValues[i]);
+ print('\"');
+ }
+ }
+ }
+ print('>');
+ }
+
+ public void atomicElement(String elementName)
+ {
+ print('<');
+ print(elementName);
+ print("/>");
+ }
+
+ public void atomicElement(String elementName, String attributeName, String attributeValue)
+ {
+ print('<');
+ print(elementName);
+ print(' ');
+ print(attributeName);
+ print('=');
+ print('\"');
+ print(attributeValue);
+ print('\"');
+ print("/>");
+ }
+
+ public void atomicElement(String elementName, String[] attributeNames, String[] attributeValues)
+ {
+ print('<');
+ print(elementName);
+ for (int i=0; i<attributeNames.length; ++i) {
+ if (null != attributeValues[i]) {
+ print(' ');
+ print(attributeNames[i]);
+ print('=');
+ print('\"');
+ print(attributeValues[i]);
+ print('\"');
+ }
+ }
+ print("/>");
+ }
+
+
+ public void endElement(String elementName)
+ {
+ print("</");
+ print(elementName);
+ print('>');
+ }
+
+
+ public void beginDiv(CssClass cssClass)
+ {
+ String[] divAttributeNames = cssClass.getAttributeNames();
+ String[] divAttributeValues = cssClass.getAttributeValues();
+ if (null == divAttributeNames) {
+ divAttributeNames = new String[0];
+ }
+ if (null == divAttributeValues) {
+ divAttributeValues = new String[0];
+ }
+
+ String[] attributeNames = new String[1 + divAttributeNames.length];
+ String[] attributeValues = new String[1 + divAttributeValues.length];
+
+ System.arraycopy(divAttributeNames, 0, attributeNames, 1, divAttributeNames.length);
+ System.arraycopy(divAttributeValues, 0, attributeValues, 1, divAttributeNames.length);
+
+ attributeNames[0] = "class";
+ attributeValues[0] = cssClass.getName();
+
+ beginElement(cssClass.getDivElementName(), attributeNames, attributeValues);
+ if (null != cssClass.getInnerElementName()) {
+ beginElement(cssClass.getInnerElementName());
+ }
+ }
+
+ public void endDiv(CssClass cssClass)
+ {
+ if (null != cssClass.getInnerElementName()) {
+ endElement(cssClass.getInnerElementName());
+ }
+ endElement(cssClass.getDivElementName());
+ }
+
+ public void beginSpan(CssClass cssClass)
+ {
+ beginElement(cssClass.getSpanElementName(), "class", cssClass.getName());
+ }
+
+ public void endSpan(CssClass cssClass)
+ {
+ endElement(cssClass.getSpanElementName());
+ }
+
+ public void hr()
+ {
+ atomicElement("hr");
+ }
+
+ public void br()
+ {
+ atomicElement("br");
+ }
+
+ public void print(String text)
+ {
+ out.print(text);
+ }
+
+ public void print(char c)
+ {
+ out.print(c);
+ }
+
+ public void div(CssClass cssClass, String contents)
+ {
+ beginDiv(cssClass);
+ print(contents);
+ endDiv(cssClass);
+ }
+
+ public void span(CssClass cssClass, String contents)
+ {
+ beginSpan(cssClass);
+ print(contents);
+ endSpan(cssClass);
+ }
+
+ public void beginPage(String title, String charset, Map stylesheets)
+ throws IOException
+ {
+ beginPage(title, charset, Collections.EMPTY_SET, stylesheets);
+ }
+
+ public void beginPage(String title, String charset,
+ Collection keywords, Map stylesheets)
+ throws IOException
+ {
+ print("<?xml version=\"1.0\" encoding=\"" + charset + "\"?>\n");
+ print(docType);
+ print("<html xmlns=\"http://www.w3.org/1999/xhtml\" lang=\"en\" xml:lang=\"en\">");
+ beginElement("head");
+ beginElement("title");
+ print(title);
+ endElement("title");
+ if (null != baseUrl && baseUrl.length() > 0) {
+ StringBuffer url = new StringBuffer();
+ url.append(baseUrl);
+ if ('/' == url.charAt(url.length() - 1)) {
+ url.delete(url.length() - 1, url.length());
+ }
+ url.append(file.getCanonicalPath().substring(rootDir.getCanonicalPath().length()));
+ atomicElement("base",
+ new String[] { "href" },
+ new String[] { url.toString() });
+ }
+ beginElement("script",
+ new String[] { "src", "type" },
+ new String[] { pathToRoot + "/resources/gjdoc.js", "text/javascript" });
+ print("<!-- this comment required for konqueror 3.2.2 -->");
+ endElement("script");
+ atomicElement("meta",
+ new String[] { "http-equiv", "content" },
+ new String[] { "Content-Type", "text/html; charset=" + charset });
+ atomicElement("meta",
+ new String[] { "name", "content" },
+ new String[] { "generator", "GNU Gjdoc Standard Doclet" });
+ Iterator keywordIt = keywords.iterator();
+ while (keywordIt.hasNext()) {
+ String keyword = (String)keywordIt.next();
+ atomicElement("meta",
+ new String[] { "name", "content" },
+ new String[] { "keywords", keyword });
+ }
+
+ Iterator cssIt = stylesheets.keySet().iterator();
+ while (cssIt.hasNext()) {
+ String sheetName = (String)cssIt.next();
+ String[] sheetFiles = (String[])stylesheets.get(sheetName);
+
+ for (int i=0; i<sheetFiles.length; ++i) {
+ String sheetFile = sheetFiles[i];
+ atomicElement("link",
+ new String[] { "rel", "type", "href", "title" },
+ new String[] { "stylesheet", "text/css",
+ pathToRoot + "/" + sheetFile, sheetName });
+ }
+ }
+
+ endElement("head");
+ }
+
+ public void endPage()
+ {
+ endElement("html");
+ }
+
+ public void close()
+ {
+ out.close();
+ }
+
+ public void beginTable(CssClass cssClass)
+ {
+ beginElement("table", "class", cssClass.getName());
+ }
+
+ public void beginTable(CssClass cssClass, String[] attributeNames, String[] attributeValues)
+ {
+ beginElement("table", "class", cssClass.getName(), attributeNames, attributeValues);
+ }
+
+ public void beginRow()
+ {
+ beginElement("tr");
+ }
+
+ public void beginRow(CssClass cssClass)
+ {
+ beginElement("tr", "class", cssClass.getName(), cssClass.getAttributeNames(), cssClass.getAttributeValues());
+ }
+
+ public void beginRow(String attribute, String value)
+ {
+ beginElement("tr", attribute, value);
+ }
+
+ public void beginCell()
+ {
+ beginElement("td");
+ }
+
+ public void beginCell(String attribute, String value)
+ {
+ beginElement("td", attribute, value);
+ }
+
+ public void beginCell(CssClass cssClass)
+ {
+ beginElement("td", "class", cssClass.getName(), cssClass.getAttributeNames(), cssClass.getAttributeValues());
+ }
+
+ public void endCell()
+ {
+ endElement("td");
+ }
+
+ public void cell(CssClass cssClass, String contents)
+ {
+ beginCell(cssClass);
+ print(contents);
+ endCell();
+ }
+
+ public void endRow()
+ {
+ endElement("tr");
+ }
+
+ public void rowDiv(CssClass cssClass, String contents)
+ {
+ beginRow(cssClass);
+ beginCell("colspan", "2");
+ beginDiv(cssClass);
+ print(contents);
+ endDiv(cssClass);
+ endCell();
+ endRow();
+ }
+
+ public void endTable()
+ {
+ endElement("table");
+ }
+
+ public void beginAnchor(String href)
+ {
+ beginElement("a", "href", href);
+ }
+
+ public void beginAnchor(String href, String title)
+ {
+ beginElement("a",
+ new String[] { "href", "title" },
+ new String[] { href, title });
+ }
+
+ public void beginAnchor(String href, String title, String target)
+ {
+ beginElement("a",
+ new String[] { "href", "title", "target" },
+ new String[] { href, title, target });
+ }
+
+ public void endAnchor()
+ {
+ endElement("a");
+ }
+
+ public void anchor(String href, String label)
+ {
+ beginAnchor(href);
+ print(label);
+ endAnchor();
+ }
+
+ public void anchorName(String name)
+ {
+ atomicElement("a", new String[] { "name", "id" }, new String[] { name, name });
+ }
+
+ public String getPathToRoot()
+ {
+ return pathToRoot;
+ }
+
+ public void beginBody(CssClass cssClass)
+ {
+ beginBody(cssClass, true);
+ }
+
+ public void beginBody(CssClass cssClass, boolean setTitle)
+ {
+ if (setTitle) {
+ beginElement("body",
+ new String[] { "class", "onload" },
+ new String[] { cssClass.getName(), "if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)" }
+ );
+ }
+ else {
+ beginElement("body",
+ new String[] { "class", "onload" },
+ new String[] { cssClass.getName(), "if(parent.contentPageLoaded)parent.contentPageLoaded()" }
+ );
+ }
+ }
+
+ public void endBody()
+ {
+ endElement("body");
+ }
+
+ public void insert(Reader in)
+ throws IOException
+ {
+ IOToolkit.copyStream(in, out);
+ }
+
+ public String createHrefString(String url, String content)
+ {
+ return createHrefString(url, content, null);
+ }
+
+ public String createHrefString(String url, String content, String title)
+ {
+ StringBuffer result = new StringBuffer();
+ result.append("<a href=\"");
+ result.append(url);
+ result.append("\"");
+ if (null != title) {
+ result.append(" title=\"");
+ result.append(title);
+ result.append("\"");
+ }
+ result.append(">");
+ result.append(content);
+ result.append("</a>");
+ return result.toString();
+ }
+
+ public File getFile()
+ {
+ return this.file;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java
new file mode 100644
index 0000000..5c6e849
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/htmldoclet/HtmlTagletContext.java
@@ -0,0 +1,48 @@
+/* gnu.classpath.tools.doclets.htmldoclet.HtmlTagletContext
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.htmldoclet;
+
+import com.sun.javadoc.Doc;
+import gnu.classpath.tools.taglets.TagletContext;
+
+public class HtmlTagletContext
+ extends TagletContext
+{
+ private HtmlPage output;
+ private boolean isOnSerializedPage;
+
+ public HtmlTagletContext(Doc doc, HtmlPage output, boolean isOnSerializedPage)
+ {
+ super(doc);
+ this.output = output;
+ this.isOnSerializedPage = isOnSerializedPage;
+ }
+
+ public HtmlPage getOutput()
+ {
+ return output;
+ }
+
+ public boolean isOnSerializedPage()
+ {
+ return isOnSerializedPage;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java
new file mode 100644
index 0000000..6f90338
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver.java
@@ -0,0 +1,2434 @@
+/* gnu.classpath.tools.doclets.xmldoclet.Driver
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet;
+
+import com.sun.javadoc.*;
+import java.io.*;
+
+import com.sun.tools.doclets.Taglet;
+
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import java.lang.reflect.Modifier;
+
+import java.text.DateFormat;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Comparator;
+import java.util.HashSet;
+import java.util.TreeSet;
+import java.util.Iterator;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Locale;
+import java.util.Map;
+import java.util.HashMap;
+import java.util.Properties;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.StringTokenizer;
+import java.util.TreeMap;
+
+import gnu.classpath.tools.gjdoc.TemporaryStore;
+import gnu.classpath.tools.gjdoc.GjdocPackageDoc;
+
+import gnu.classpath.tools.doclets.PackageGroup;
+import gnu.classpath.tools.doclets.PackageMatcher;
+import gnu.classpath.tools.doclets.InvalidPackageWildcardException;
+
+import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;
+import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletOptions;
+
+import gnu.classpath.tools.taglets.AuthorTaglet;
+import gnu.classpath.tools.taglets.VersionTaglet;
+import gnu.classpath.tools.taglets.SinceTaglet;
+import gnu.classpath.tools.taglets.DeprecatedTaglet;
+import gnu.classpath.tools.taglets.GenericTaglet;
+import gnu.classpath.tools.doclets.StandardTaglet;
+
+import gnu.classpath.tools.java2xhtml.Java2xhtml;
+
+import gnu.classpath.tools.IOToolkit;
+import gnu.classpath.tools.FileSystemClassLoader;
+
+/**
+ * A Doclet which retrieves all information presented by the Doclet
+ * API, dumping it to stdout in XML format.
+ *
+ * @author Julian Scheid
+ */
+public class Driver {
+
+ public static final String XMLDOCLET_VERSION = "0.6.1";
+
+ /**
+ * Used for redirecting error messages to <code>/dev/null</code>.
+ */
+ private static class NullErrorReporter implements DocErrorReporter {
+ public void printError(String ignore) {}
+ public void printWarning(String ignore) {}
+ public void printNotice(String ignore) {}
+ }
+
+ /*
+ * Taglet context constants.
+ */
+ private static final int CONTEXT_CONSTRUCTOR = 1;
+ private static final int CONTEXT_FIELD = 2;
+ private static final int CONTEXT_METHOD = 3;
+ private static final int CONTEXT_OVERVIEW = 4;
+ private static final int CONTEXT_PACKAGE = 5;
+ private static final int CONTEXT_TYPE = 6;
+
+ /**
+ * All XML output will go to this stream.
+ */
+ private PrintWriter out;
+
+ /**
+ * How many spaces to indent each XML node level,
+ * i.e. Tab size for output.
+ */
+ private static int indentStep = 1;
+
+ /**
+ * Won't output superfluous spaces if set to true.
+ * If set to false, output will be more legible.
+ */
+ private boolean compress = false;
+
+ /**
+ * Won't output warning messages while fixing
+ * HTML code if set to true.
+ */
+ private boolean noHTMLWarn = false;
+
+ /**
+ * Won't output warning messages when encountering tags
+ * that look like an email address if set to true.
+ */
+ private boolean noEmailWarn = false;
+
+ /**
+ * Will fix HTML if necessary so that each comment
+ * contains valid XML code if set to true. If set
+ * to false, HTML code will not be modified and
+ * instead encapsulated in a CDATA section.
+ */
+ private boolean fixHTML = true;
+
+ /**
+ * User-specified name of the directory where the final version of
+ * the generated files will be written to.
+ *
+ * If no XSLT sheet is given, the XML output will go directly into
+ * this directory. Otherwise, XML output will go to a temporary
+ * directory and XSLT output will go to this directory.
+ */
+ private File targetDirectory = null;
+
+ /**
+ * Directory where XML output will be written to. If no XSLT
+ * sheet was given, this is the target directory specified
+ * by the user. Otherwise, this is a temporary directory.
+ */
+ private File xmlTargetDirectory;
+
+ /**
+ * Contains a number of TargetContexts which describe which XSLT
+ * sheet to apply to the output of this doclet, to what directory
+ * the XSLT output is written, and which postprocess driver to use
+ * to process XSLT output.
+ */
+ private List targets = new ArrayList();
+
+ /**
+ * XML text to include at the end of every generated page. Read
+ * from the file specified on the command line using -bottomnote.
+ * If present, this will be written to the main output file
+ * (index.xml) in node /gjdoc:rootDoc/gjdoc:bottomnote.
+ */
+ private String bottomNote;
+
+ /**
+ * Brief description of the package set. Can be specified on the
+ * command line using -title. This will be written to the main
+ * output file (index.xml) in node
+ * /gjdoc:rootDoc/gjdoc:title. The HTML generating XSLT sheet
+ * uses this for example in window titles.
+ */
+ private String title;
+
+ /**
+ * Path to the directory where temporary files should be stored.
+ * Defaults to system tempdir, but can be overridden by user
+ * with -workpath.
+ */
+ private String workingPath = System.getProperty("java.io.tmpdir");
+
+ /**
+ * Temporary directory created by this doclet where all
+ * temporary files will be stored in. If no temporary
+ * files are needed (i.e. no XSLT postprocessing stage
+ * specified by user), this is <code>null</code>.
+ */
+ private File workingDirectory;
+
+ /**
+ * Whether to deep-copy the doc-files subdirectory.
+ */
+ private boolean docFilesSubdirsEnabled = false;
+
+ /**
+ * Which direct subdirectories of the doc-files directories to exclude.
+ * Set of String.
+ */
+ private Set excludeDocFilesSubDirs = new HashSet();
+
+ /**
+ * Stores the Doclet API RootDoc we are operating on.
+ */
+ private RootDoc rootDoc;
+
+ /**
+ * XML namespace prefix used for all tags, except for HTML
+ * tags copied from Javadoc comments. Excluding colon.
+ */
+ public static final String tagPrefix = "gjdoc";
+
+ /**
+ * Classpath for loading Taglet classes.
+ */
+ private String tagletPath = null;
+
+ /**
+ * The current class that is being processed.
+ * Set in outputClassDoc().
+ */
+ private ClassDoc currentClass;
+
+ /**
+ * The current member that is being processed.
+ * Set in outputMemberDoc().
+ */
+ private MemberDoc currentMember;
+
+ /**
+ * The current constructor/method that is being processed.
+ * Set in outputExecutableMemberDoc().
+ */
+ private ExecutableMemberDoc currentExecMember;
+
+ /**
+ * Mapping from tag type to Taglet for user Taglets specified on
+ * the command line.
+ */
+ private Map tagletMap = new LinkedHashMap();
+
+ /**
+ * Keeps track of the tags mentioned by the user during option
+ * processiong so that an error can be emitted if a tag is
+ * mentioned more than once.
+ */
+ private List mentionedTags = new LinkedList();
+
+ /**
+ * Stores options to be passed to the DocTranslet.
+ */
+ private DocTransletOptions docTransletOptions = new DocTransletOptions();
+
+ /**
+ * Stores the package groups specified in the user
+ * options. Contains objects of type PackageGroup.
+ */
+ private List packageGroups = new LinkedList();
+
+ private HtmlRepairer htmlRepairer;
+
+ public static boolean start(TemporaryStore _rootDocWrapper) {
+ return new Driver().instanceStart((RootDoc)_rootDocWrapper.getAndClear());
+ }
+
+ /**
+ * Official Doclet entry point.
+ */
+ public static boolean start(RootDoc _rootDoc) {
+
+ // Create a new XmlDoclet instance and delegate control.
+ TemporaryStore tstore = new TemporaryStore(_rootDoc);
+ _rootDoc = null;
+ return new Driver().instanceStart((RootDoc)tstore.getAndClear());
+ }
+
+ /**
+ * Output an XML tag describing a com.sun.javadoc.Type object.
+ * Assumes that the tag does not have subtags.
+ *
+ * @param level Level of indentation. Will be multiplied by
+ * <code>indentStep</code> to yield actual amount
+ * of whitespace inserted at start of line.
+ * @param tag Identifier for the XML tag being output.
+ * @param type The Javadoc Type to be output.
+ */
+ protected void outputType(int level, String tag, Type type) {
+ outputType(level, tag, type, true);
+ }
+
+ protected void outputType(int level, String tag, Type type, boolean atomic) {
+
+ boolean isIncluded = false;
+ ClassDoc typeAsClassDoc = type.asClassDoc();
+ String packageName = null;
+ if (null != typeAsClassDoc) {
+ isIncluded = typeAsClassDoc.isIncluded();
+ packageName = typeAsClassDoc.containingPackage().name();
+ }
+ println(level, "<"+tagPrefix+":"+tag + " typename=\""+type.typeName()+"\""+
+ " qualifiedtypename=\""+type.qualifiedTypeName()+"\""
+ +(type.dimension().length()==0?"":" dimension=\""+type.dimension()+"\"")
+ +(isIncluded?" isIncluded=\"true\"" : "")
+ +((null != packageName)?" package=\"" + packageName + "\"" : "")
+ +(atomic?"/":"")+">");
+ }
+
+ protected void outputExecutableMemberDocBody(int level, ExecutableMemberDoc memberDoc) {
+
+ currentExecMember = memberDoc;
+
+ outputMemberDocBody(level, memberDoc);
+
+ Parameter[] parameters = memberDoc.parameters();
+ for (int i=0, ilim=parameters.length; i<ilim; ++i) {
+ Parameter parameter = parameters[i];
+ outputType(level, "parameter name=\""+parameter.name()+"\"", parameter.type());
+ }
+
+ ClassDoc[] exceptions = memberDoc.thrownExceptions();
+ for (int i=0, ilim=exceptions.length; i<ilim; ++i) {
+ ClassDoc exception = exceptions[i];
+ outputType(level, "thrownException", exception);
+ }
+
+ printAtomTag(level, "signature full=\""+memberDoc.signature()+"\" flat=\""+memberDoc.flatSignature()+"\"");
+
+ if (memberDoc.isNative()) {
+ printAtomTag(level, "isNative");
+ }
+
+ if (memberDoc.isSynchronized()) {
+ printAtomTag(level, "isSynchronized");
+ }
+ }
+
+ protected void outputMethodDoc(int level, MethodDoc methodDoc) {
+ println();
+ printOpenTag(level, "methoddoc name=\""+methodDoc.name()+"\"");
+ outputExecutableMemberDocBody(level+1, methodDoc);
+ outputType(level+1, "returns", methodDoc.returnType());
+ printCloseTag(level, "methoddoc");
+ }
+
+ protected void outputMemberDocBody(int level, MemberDoc memberDoc) {
+ currentMember = memberDoc;
+ outputProgramElementDocBody(level, memberDoc);
+ }
+
+ protected void outputFieldDocBody(int level, FieldDoc fieldDoc) {
+ outputType(level, "type", fieldDoc.type());
+ if (fieldDoc.isTransient()) {
+ printAtomTag(level, "isTransient");
+ }
+ if (fieldDoc.isVolatile()) {
+ printAtomTag(level, "isVolatile");
+ }
+ }
+
+ private void outputFieldDoc(int level, FieldDoc fieldDoc) {
+ println();
+ printOpenTag(level, "fielddoc name=\""+fieldDoc.name()+"\"");
+ outputMemberDocBody(level+1, fieldDoc);
+ outputFieldDocBody(level+1, fieldDoc);
+ printCloseTag(level, "fielddoc");
+ }
+
+ protected void outputConstructorDoc(int level, ConstructorDoc constructorDoc) {
+ println();
+ printOpenTag(level, "constructordoc name=\""+constructorDoc.name()+"\"");
+ outputExecutableMemberDocBody(level+1, constructorDoc);
+ printCloseTag(level, "constructordoc");
+ }
+
+ protected void outputSuperInterfacesRec(int level, ClassDoc classDoc) {
+ if (null!=classDoc) {
+ ClassDoc[] interfaces = classDoc.interfaces();
+ if (null != interfaces) {
+ for (int i=0, ilim=interfaces.length; i<ilim; ++i) {
+ outputType(level, "superimplements", interfaces[i]);
+ }
+ }
+ outputSuperInterfacesRec(level, classDoc.superclass());
+ }
+ }
+
+ protected void outputClassDocSummary(ClassDoc classDoc) {
+ println();
+ printOpenTag(1, "classdoc name=\""+classDoc.name()+"\" qualifiedtypename=\""+classDoc.qualifiedName()+"\" isIncluded=\"true\"");
+ if (null!=classDoc.superclass()) {
+ outputType(2, "superclass", classDoc.superclass());
+ }
+
+ ClassDoc[] interfaces = classDoc.interfaces();
+ for (int i=0, ilim=interfaces.length; i<ilim; ++i) {
+ outputType(2, "implements", interfaces[i]);
+ }
+ outputSuperInterfacesRec(2, classDoc.superclass());
+
+ printAtomTag(2, "containingPackage name=\""+classDoc.containingPackage().name()+"\"");
+ if (classDoc.isError()) {
+ printAtomTag(2, "isError");
+ }
+ if (classDoc.isException()) {
+ printAtomTag(2, "isException");
+ }
+ if (classDoc.isInterface()) {
+ printAtomTag(2, "isInterface");
+ }
+ if (classDoc.isOrdinaryClass()) {
+ printAtomTag(2, "isOrdinaryClass");
+ }
+
+ printCloseTag(1, "classdoc");
+ }
+
+ protected void outputPackageDoc(PackageDoc packageDoc) {
+ println();
+ printOpenTag(1, "packagedoc name=\""+packageDoc.name()+"\"");
+ if (packageDoc.firstSentenceTags().length > 0) {
+ printOpenTag(2, "firstSentenceTags", false);
+ outputTags(3, packageDoc.firstSentenceTags(), true, CONTEXT_PACKAGE);
+ printCloseTag(0, "firstSentenceTags");
+ printOpenTag(2, "inlineTags", false);
+ outputTags(3, packageDoc.inlineTags(), true, CONTEXT_PACKAGE);
+ printCloseTag(0, "inlineTags");
+ }
+
+ if (packageDoc.tags().length > 0) {
+ printOpenTag(2, "tags");
+ outputTags(3, packageDoc.tags(), true, CONTEXT_PACKAGE);
+ printCloseTag(2, "tags");
+ }
+
+ if (packageDoc.seeTags().length > 0) {
+ printOpenTag(2, "seeTags");
+ outputTags(3, packageDoc.seeTags(), true, CONTEXT_PACKAGE);
+ printCloseTag(2, "seeTags");
+ }
+
+ ClassDoc[] allClasses = (ClassDoc[]) packageDoc.allClasses().clone();
+ Arrays.sort(allClasses);
+
+ if (false) {
+ for (int i = 0, ilim = allClasses.length; i < ilim; ++ i) {
+ printAtomTag(2, "containsClass qualifiedtypename=\""+allClasses[i].qualifiedTypeName()+"\"");
+ }
+ }
+
+ printCloseTag(1, "packagedoc");
+ }
+
+ protected void outputClassDoc(ClassDoc classDoc) throws IOException {
+
+ currentClass = classDoc;
+
+ println();
+ printOpenTag(1, "classdoc xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:"+tagPrefix+"=\"http://www.gnu.org/software/cp-tools/gjdocxml\" name=\""+classDoc.name()+"\" qualifiedtypename=\""+classDoc.qualifiedName()+"\"");
+
+ ClassDoc[] interfaces = classDoc.interfaces();
+ for (int i=0, ilim=interfaces.length; i<ilim; ++i) {
+ outputType(2, "implements", interfaces[i]);
+ }
+ outputSuperInterfacesRec(2, classDoc.superclass());
+
+ outputProgramElementDocBody(2, classDoc);
+ if (classDoc.isAbstract())
+ printAtomTag(2, "isAbstract");
+ if (classDoc.isSerializable())
+ printAtomTag(2, "isSerializable");
+ if (classDoc.isExternalizable())
+ printAtomTag(2, "isExternalizable");
+ if (classDoc.definesSerializableFields()) {
+ printAtomTag(2, "definesSerializableFields");
+ }
+
+ ConstructorDoc[] constructors = classDoc.constructors();
+ for (int i=0, ilim=constructors.length; i<ilim; ++i) {
+ outputConstructorDoc(2, constructors[i]);
+ }
+
+ MethodDoc[] methods = classDoc.methods();
+ for (int i=0, ilim=methods.length; i<ilim; ++i) {
+ outputMethodDoc(2, methods[i]);
+ }
+
+ FieldDoc[] fields = classDoc.fields();
+ for (int i=0, ilim=fields.length; i<ilim; ++i) {
+ outputFieldDoc(2, fields[i]);
+ }
+
+ if (classDoc.serializableFields().length > 0) {
+ printOpenTag(2, "serializableFields");
+
+ FieldDoc[] sfields = classDoc.serializableFields();
+ for (int i=0, ilim=sfields.length; i<ilim; ++i) {
+ outputFieldDoc(2, sfields[i]);
+ }
+ printCloseTag(2, "serializableFields");
+ }
+
+ Java2xhtml java2xhtml = new Java2xhtml();
+ Properties properties = new Properties();
+ properties.setProperty("isCodeSnippet", "true");
+ properties.setProperty("hasLineNumbers", "true");
+ java2xhtml.setProperties(properties);
+
+ if (null == classDoc.containingClass() && docTransletOptions.linksource) {
+ printOpenTag(2, "source");
+ StringWriter sourceBuffer = new StringWriter();
+ File sourceFile = new File(((GjdocPackageDoc)classDoc.containingPackage()).packageDirectory(),
+ classDoc.name() + ".java");
+ FileReader sourceReader = new FileReader(sourceFile);
+ IOToolkit.copyStream(sourceReader, sourceBuffer);
+ print(java2xhtml.makeHTML(sourceBuffer.getBuffer(), sourceFile.getName()));
+ printCloseTag(2, "source");
+ }
+
+ ClassDoc superclassDoc = classDoc.superclass();
+ while (superclassDoc != null) {
+ outputType(2, "superclass", superclassDoc, false);
+
+ // FIXME: remove the following after adjusting the XSLT sheets:
+ printAtomTag(3, "containingPackage name=\"" + superclassDoc.containingPackage().name() + "\"");
+
+ MethodDoc[] superMethods = superclassDoc.methods();
+ if (null != superMethods) {
+ for (int i=0, ilim=superMethods.length; i<ilim; ++i) {
+ printAtomTag(3, "methoddoc name=\"" + superMethods[i].name() + "\" signature=\"" + superMethods[i].signature() + "\"");
+ }
+ }
+
+ FieldDoc[] superFields = superclassDoc.fields();
+ if (null != superFields) {
+ for (int i=0, ilim=superFields.length; i<ilim; ++i) {
+ printAtomTag(3, "fielddoc name=\"" + superFields[i].name() + "\"");
+ }
+ }
+ printCloseTag(2, "superclass");
+
+ superclassDoc = superclassDoc.superclass();
+ }
+
+ outputUsage(classDoc, 2);
+
+ printCloseTag(1, "classdoc");
+
+ currentClass = null;
+ currentMember = null;
+ currentExecMember = null;
+ }
+
+ protected int outputHeritageOpen(int level, ClassDoc classDoc) {
+
+ ClassDoc superClassDoc = classDoc.superclass();
+ if (null != superClassDoc) {
+ level = outputHeritageOpen(level, superClassDoc);
+ ++ level;
+ }
+ outputType(level, "heritage", classDoc, false);
+ return level;
+ }
+
+ protected void outputHeritageClose(int level, ClassDoc classDoc) {
+
+ ClassDoc superClassDoc = classDoc.superclass();
+ if (null != superClassDoc) {
+ outputHeritageClose(level + 1, superClassDoc);
+ }
+ printCloseTag(level, "heritage");
+ }
+
+ protected void outputDocBody(int level, Doc doc) {
+
+ int context = CONTEXT_TYPE;
+
+ if (doc.isClass()) {
+ printAtomTag(level, "isClass");
+
+ ClassDoc classDoc = (ClassDoc)doc;
+ ClassDoc[] classes = rootDoc.classes();
+ for (int i=0, ilim=classes.length; i<ilim; ++i) {
+ if (classes[i].superclass() == classDoc) {
+ outputType(level, "extended-by", classes[i]);
+ }
+ }
+
+ outputHeritageOpen(level, classDoc);
+ outputHeritageClose(level, classDoc);
+ }
+ if (doc.isConstructor()) {
+ printAtomTag(level, "isConstructor");
+ context = CONTEXT_CONSTRUCTOR;
+ }
+ if (doc.isError()) {
+ printAtomTag(level, "isError");
+ }
+ if (doc.isException()) {
+ printAtomTag(level, "isException");
+ }
+ if (doc.isField()) {
+ printAtomTag(level, "isField");
+ context = CONTEXT_FIELD;
+ }
+ if (doc.isIncluded()) {
+ printAtomTag(level, "isIncluded");
+ }
+ if (doc.isInterface()) {
+ printAtomTag(level, "isInterface");
+
+ ClassDoc classDoc = (ClassDoc)doc;
+ ClassDoc[] classes = rootDoc.classes();
+ for (int i=0, ilim=classes.length; i<ilim; ++i) {
+ ClassDoc[] implementedInterfaces = classes[i].interfaces();
+ for (int j=0; j<implementedInterfaces.length; ++j) {
+ if (implementedInterfaces[j] == classDoc) {
+ if (classDoc.isInterface()) {
+ outputType(level, "subinterface", classes[i]);
+ }
+ else {
+ outputType(level, "implemented-by", classes[i]);
+ }
+ break;
+ }
+ }
+ }
+ }
+ if (doc.isMethod()) {
+ printAtomTag(level, "isMethod");
+ context = CONTEXT_METHOD;
+ }
+ if (doc.isOrdinaryClass()) {
+ printAtomTag(level, "isOrdinaryClass");
+ }
+
+ if (doc.inlineTags().length > 0) {
+ printOpenTag(level, "inlineTags", false);
+ outputTags(level+1, doc.inlineTags(), true, context);
+ printCloseTag(0, "inlineTags");
+ }
+
+ if (doc.firstSentenceTags().length > 0) {
+ printOpenTag(level, "firstSentenceTags", false);
+ outputTags(level+1, doc.firstSentenceTags(), true, context);
+ printCloseTag(0, "firstSentenceTags");
+ }
+
+ if (doc.tags().length > 0) {
+ printOpenTag(level, "tags");
+ outputTaglets(level+1, doc.tags(), true, context);
+ printCloseTag(level, "tags");
+ }
+
+ if (doc.seeTags().length > 0) {
+ printOpenTag(level, "seeTags");
+ outputTags(level+1, doc.seeTags(), true, context);
+ printCloseTag(level, "seeTags");
+ }
+
+ SourcePosition position = doc.position();
+ if (null != position) {
+ printAtomTag(level, "position file=\"" + position.file().getAbsolutePath() + "\" line=\"" + position.line() + "\" column=\"" + position.column() + "\"");
+ }
+ }
+
+ protected void outputProgramElementDocBody(int level, ProgramElementDoc programElementDoc) {
+ outputDocBody(level, programElementDoc);
+ printAtomTag(level, "containingPackage name=\""+programElementDoc.containingPackage().name()+"\"");
+ if (null!=programElementDoc.containingClass()) {
+ outputType(level, "containingClass", programElementDoc.containingClass());
+ }
+ String access;
+ if (programElementDoc.isPublic())
+ access="public";
+ else if (programElementDoc.isProtected())
+ access="protected";
+ else if (programElementDoc.isPrivate())
+ access="private";
+ else if (programElementDoc.isPackagePrivate())
+ access="package";
+ else
+ throw new RuntimeException("Huh? "+programElementDoc+" is neither public, protected, private nor package protected.");
+ printAtomTag(level, "access scope=\""+access+"\"");
+ if (programElementDoc.isFinal())
+ printAtomTag(level, "isFinal");
+ if (programElementDoc.isStatic())
+ printAtomTag(level, "isStatic");
+ }
+
+ protected void outputTags(int level, Tag[] tags, boolean descend, int context) {
+
+ for (int i=0; i<tags.length; ++i) {
+ outputTag(tags[i], level, descend, context, i == tags.length-1);
+ }
+ }
+
+ protected void outputTag(Tag tag, int level, boolean descend, int context, boolean lastTag) {
+
+ if (!"Text".equals(tag.name())) {
+ printOpenTag(0 /* don't introduce additional whitespace */,
+ "tag kind=\""+tag.kind()+"\" name=\""+tag.name()+"\"", false);
+ }
+ if (tag instanceof ThrowsTag) {
+ ThrowsTag throwsTag = (ThrowsTag)tag;
+ if (null!=throwsTag.exception()) {
+ outputType(level+1, "exception", throwsTag.exception());
+ }
+ else {
+ StringBuffer sb = new StringBuffer("Exception ");
+ sb.append(throwsTag.exceptionName());
+ sb.append(" not found in ");
+ if (currentExecMember instanceof MethodDoc) {
+ MethodDoc m = (MethodDoc)currentExecMember;
+ sb.append(m.returnType().typeName());
+ sb.append(m.returnType().dimension());
+ sb.append(' ');
+ }
+ sb.append(currentClass.qualifiedName());
+ sb.append('.');
+ sb.append(currentExecMember.name());
+ sb.append('(');
+ Parameter[] params = currentExecMember.parameters();
+ for (int j=0; j < params.length; j++) {
+ sb.append(params[j].type().typeName());
+ sb.append(params[j].type().dimension());
+ sb.append(' ');
+ sb.append(params[j].name());
+ if (j != params.length-1)
+ sb.append(", ");
+ }
+ sb.append(')');
+ printWarning(sb.toString());
+
+ printAtomTag(level+1, "exception typename=\""+throwsTag.exceptionName()+"\"");
+ }
+ }
+ else if (tag instanceof ParamTag) {
+ ParamTag paramTag = (ParamTag)tag;
+ printAtomTag(level+1, "parameter name=\""+paramTag.parameterName()+"\"");
+ }
+
+ if (null != tag.text()) {
+ //printOpenTag(level+1, "text", false);
+ if (fixHTML) {
+ print(htmlRepairer.getWellformedHTML(tag.text()));
+ }
+ else {
+ print("<![CDATA["+cdata(tag.text())+"]]>");
+ }
+ //printCloseTag(0 /* don't introduce additional whitespace */, "text");
+ }
+ else {
+ printWarning("Tag got null text: "+tag);
+ }
+
+ if ((descend && ("@throws".equals(tag.name()) || "@param".equals(tag.name()))) || "@deprecated".equals(tag.name())) {
+ if (tag.firstSentenceTags().length>0) {
+ printOpenTag(level+1, "firstSentenceTags", false);
+ outputTags(level+2, tag.firstSentenceTags(), false, context);
+ printCloseTag(0, "firstSentenceTags");
+ }
+
+ if (tag.inlineTags().length>0) {
+ printOpenTag(level+1, "inlineTags", false);
+ outputTags(level+2, tag.firstSentenceTags(), false, context);
+ printCloseTag(0, "inlineTags");
+ }
+ }
+
+ if (fixHTML && lastTag) {
+ String terminateText = htmlRepairer.terminateText();
+ if (null != terminateText && terminateText.length() > 0) {
+ print(terminateText);
+ }
+ }
+
+ if (!"Text".equals(tag.name())) {
+
+ Taglet inlineTaglet = (Taglet)tagletMap.get(tag.name().substring(1));
+ if (null != inlineTaglet && inlineTaglet.isInlineTag()) {
+ printOpenTag(0, "inlineTagletText", false);
+ print(inlineTaglet.toString(tag));
+ printCloseTag(0, "inlineTagletText");
+ }
+
+ printCloseTag(0, "tag", false);
+ }
+ }
+
+ void outputTaglets(int level, Tag[] tags, boolean descend, int context)
+ {
+ for (Iterator it = tagletMap.keySet().iterator(); it.hasNext(); ) {
+ String tagName = (String)it.next();
+ Object o = tagletMap.get(tagName);
+ Taglet taglet = (Taglet)o;
+
+ if (!taglet.isInlineTag()
+ && ((context != CONTEXT_CONSTRUCTOR || taglet.inConstructor())
+ || (context != CONTEXT_FIELD || taglet.inField())
+ || (context != CONTEXT_METHOD || taglet.inMethod())
+ || (context != CONTEXT_OVERVIEW || taglet.inOverview())
+ || (context != CONTEXT_PACKAGE || taglet.inPackage())
+ || (context != CONTEXT_TYPE || taglet.inType()))) {
+
+ List tagsOfThisType = new ArrayList();
+ for (int i=0, ilim=tags.length; i<ilim; ++i) {
+ if (tags[i].name().substring(1).equals(tagName)) {
+ tagsOfThisType.add(tags[i]);
+ }
+ }
+
+ if (!tagsOfThisType.isEmpty()) {
+ Tag[] tagletTags = (Tag[])tagsOfThisType.toArray(new Tag[tagsOfThisType.size()]);
+ if (taglet instanceof StandardTaglet) {
+ Iterator tagIterator = tagsOfThisType.iterator();
+ while (tagIterator.hasNext()) {
+ Tag tag = (Tag)tagIterator.next();
+ outputTag(tag, level, descend, context, !tagIterator.hasNext());
+ }
+ }
+ else {
+ String tagletString = taglet.toString(tagletTags);
+ if (null != tagletString) {
+ printOpenTag(0, "tag name=\"" + tagName + "\" taglet-generated=\"true\"");
+ if (fixHTML) {
+ print(htmlRepairer.getWellformedHTML(tagletString));
+ print(htmlRepairer.terminateText());
+ }
+ else {
+ print("<![CDATA["+cdata(tagletString)+"]]>");
+ }
+ printCloseTag(0, "tag", false);
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /**
+ * Inofficial entry point. We got an instance here.
+ */
+ protected boolean instanceStart(RootDoc _rootDoc) {
+
+ this.rootDoc = _rootDoc;
+ _rootDoc = null;
+
+ boolean xmlOnly = true;
+
+ // Set the default Taglet order
+
+ registerTaglet(new VersionTaglet());
+ registerTaglet(new AuthorTaglet());
+ //registerTaglet(new SinceTaglet());
+ registerTaglet(new StandardTaglet("deprecated"));
+ registerTaglet(new StandardTaglet("see"));
+ registerTaglet(new StandardTaglet("param"));
+
+ // Set the built-in Taglet filter
+
+ AuthorTaglet.setTagletEnabled(false);
+ VersionTaglet.setTagletEnabled(false);
+ SinceTaglet.setTagletEnabled(true);
+ DeprecatedTaglet.setTagletEnabled(true);
+
+ try {
+ {
+
+ // Process command line options passed through to this doclet
+
+ TargetContext targetContext = null;
+
+ TargetContext htmlTargetContext
+ = new TargetContext(DocTranslet.fromClasspath("/doctranslets/html/gjdoc.xsl"),
+ targetDirectory);
+
+ for (int i=0, ilim=rootDoc.options().length; i<ilim; ++i) {
+
+ String[] option = rootDoc.options()[i];
+ String optionTag = option[0];
+
+ if ("-d".equals(optionTag)) {
+ if (null == targetDirectory) {
+ targetDirectory = new File(option[1]);
+ }
+ if (null != targetContext) {
+ targetContext.setTargetDirectory(targetDirectory);
+ }
+ }
+
+ else if ("-nofixhtml".equals(optionTag)) {
+ fixHTML = false;
+ printError("-nofixhtml currently not supported.");
+ return false;
+ }
+ else if ("-compress".equals(optionTag)) {
+ compress = true;
+ }
+ else if ("-nohtmlwarn".equals(optionTag)) {
+ noHTMLWarn = true;
+ }
+ else if ("-noemailwarn".equals(optionTag)) {
+ noEmailWarn = true;
+ }
+ else if ("-indentstep".equals(optionTag)) {
+ indentStep = Integer.parseInt(option[1]);
+ }
+ else if ("-doctranslet".equals(optionTag)) {
+ targets.add(targetContext = new TargetContext(DocTranslet.fromJarFile(new File(option[1])),
+ targetDirectory));
+ }
+ else if ("-genhtml".equals(optionTag)) {
+ htmlTargetContext.setTargetDirectory(targetDirectory);
+ targets.add(targetContext = htmlTargetContext);
+ xmlOnly = false;
+ }
+ else if ("-geninfo".equals(optionTag)) {
+ targetContext
+ = new TargetContext(DocTranslet.fromClasspath("/doctranslets/info/gengj.xsl"),
+ targetDirectory);
+ targets.add(targetContext);
+ if (!fixHTML) {
+ printNotice("NOTE: -geninfo implies -fixhtml.");
+ fixHTML = true;
+ }
+ xmlOnly = false;
+ }
+ else if ("-gendocbook".equals(optionTag)) {
+ targetContext = new TargetContext(DocTranslet.fromClasspath("/doctranslets/docbook/gengj.xsl"),
+ targetDirectory);
+ targets.add(targetContext);
+ if (!fixHTML) {
+ printNotice("NOTE: -gendocbook implies -fixhtml.");
+ fixHTML = true;
+ }
+ }
+ else if ("-genpdf".equals(optionTag)) {
+ targetContext
+ = new TargetContext(DocTranslet.fromClasspath("/doctranslets/docbook/gengj.xsl"),
+ targetDirectory);
+ /** "gnu.classpath.tools.doclets.xmldoclet.DocBookPostprocessor") **/
+ targets.add(targetContext);
+ if (!fixHTML) {
+ printNotice("NOTE: -genpdf implies -fixhtml.");
+ fixHTML = true;
+ }
+ }
+ else if ("-xmlonly".equals(optionTag)) {
+ xmlOnly = true;
+ }
+ else if ("-bottomnote".equals(optionTag)) {
+
+ FileReader reader = new FileReader(option[1]);
+ StringWriter writer = new StringWriter();
+ char[] buf = new char[256];
+ int nread;
+ while ((nread = reader.read(buf)) >= 0) {
+ writer.write(buf, 0, nread);
+ }
+ writer.flush();
+ bottomNote = writer.toString();
+ writer.close();
+ reader.close();
+ }
+ else if ("-title".equals(optionTag)) {
+
+ title = option[1];
+ }
+ else if ("-workpath".equals(optionTag)) {
+
+ workingPath = option[1];
+ }
+ else if ("-tagletpath".equals(optionTag)) {
+
+ if (null == tagletPath) {
+ tagletPath = option[1];
+ }
+ else {
+ tagletPath = tagletPath + File.pathSeparator + option[1];
+ }
+ }
+ else if ("-taglet".equals(optionTag)) {
+
+ boolean tagletLoaded = false;
+
+ String useTagletPath = this.tagletPath;
+ if (null == useTagletPath) {
+ useTagletPath = System.getProperty("java.class.path");
+ }
+
+ try {
+ Class tagletClass;
+ try {
+ tagletClass
+ = new FileSystemClassLoader(useTagletPath).loadClass(option[1]);
+ }
+ catch (ClassNotFoundException e) {
+ // If not found on specified tagletpath, try default classloader
+ tagletClass
+ = Class.forName(option[1]);
+ }
+ Method registerTagletMethod
+ = tagletClass.getDeclaredMethod("register", new Class[] { java.util.Map.class });
+
+ if (!registerTagletMethod.getReturnType().equals(Void.TYPE)) {
+ printError("Taglet class '" + option[1] + "' found, but register method doesn't return void.");
+ }
+ else if (registerTagletMethod.getExceptionTypes().length > 0) {
+ printError("Taglet class '" + option[1] + "' found, but register method contains throws clause.");
+ }
+ else if ((registerTagletMethod.getModifiers() & (Modifier.STATIC | Modifier.PUBLIC | Modifier.ABSTRACT)) != (Modifier.STATIC | Modifier.PUBLIC)) {
+ printError("Taglet class '" + option[1] + "' found, but register method isn't public static, or is abstract..");
+ }
+ else {
+ Map tempMap = new HashMap();
+ registerTagletMethod.invoke(null, new Object[] { tempMap });
+ tagletLoaded = true;
+ String name = (String)tempMap.keySet().iterator().next();
+ Taglet taglet = (Taglet)tempMap.get(name);
+ tagletMap.put(name, taglet);
+ mentionedTags.add(taglet);
+ }
+ }
+ catch (NoSuchMethodException e) {
+ printError("Taglet class '" + option[1] + "' found, but doesn't contain the register method.");
+ }
+ catch (SecurityException e) {
+ printError("Taglet class '" + option[1] + "' cannot be loaded: " + e.getMessage());
+ }
+ catch (InvocationTargetException e) {
+ printError("Taglet class '" + option[1] + "' found, but register method throws exception: " + e.toString());
+ }
+ catch (IllegalAccessException e) {
+ printError("Taglet class '" + option[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
+ }
+ catch (IllegalArgumentException e) {
+ printError("Taglet class '" + option[1] + "' found, but there was a problem when accessing the register method: " + e.toString());
+ }
+ catch (ClassNotFoundException e) {
+ printError("Taglet class '" + option[1] + "' cannot be found.");
+ }
+ if (!tagletLoaded) {
+ return false;
+ }
+ }
+ else if ("-author".equals(optionTag)) {
+ AuthorTaglet.setTagletEnabled(true);
+ }
+ else if ("-version".equals(optionTag)) {
+ VersionTaglet.setTagletEnabled(true);
+ }
+ else if ("-nosince".equals(optionTag)) {
+ SinceTaglet.setTagletEnabled(false);
+ }
+ else if ("-nodeprecated".equals(optionTag)) {
+ DeprecatedTaglet.setTagletEnabled(false);
+ }
+ else if ("-authormail".equals(optionTag)) {
+
+ if ("no-replace".equalsIgnoreCase(option[1])) {
+ AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NO_REPLACEMENT);
+ }
+ else if ("mailto-name".equalsIgnoreCase(option[1])) {
+ AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.MAILTO_NAME);
+ }
+ else if ("name-mailto-address".equalsIgnoreCase(option[1])) {
+ AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NAME_MAILTO_ADDRESS);
+ }
+ else if ("name-mangled-address".equalsIgnoreCase(option[1])) {
+ AuthorTaglet.setEmailReplacementType(AuthorTaglet.EmailReplacement.NAME_MANGLED_ADDRESS);
+ }
+ else {
+ printError("Invalid value for option '-authortag-email'. Allowed values are:"
+ + " no-replace, mailto-name, name-mailto-address, name-mangled-address.");
+ return false;
+ }
+ }
+ else if ("-mailmangledot".equals(optionTag)) {
+ AuthorTaglet.setDotReplacement(option[1]);
+ }
+ else if ("-mailmangleat".equals(optionTag)) {
+ AuthorTaglet.setAtReplacement(option[1]);
+ }
+ else if ("-docfilessubdirs".equals(optionTag)) {
+ docFilesSubdirsEnabled = true;
+ }
+ else if ("-excludedocfilessubdir".equals(optionTag)) {
+ StringTokenizer st = new StringTokenizer(option[1]);
+ while (st.hasMoreTokens()) {
+ excludeDocFilesSubDirs.add(st.nextToken());
+ }
+ }
+ else if ("-nonavbar".equals(optionTag)) {
+ docTransletOptions.nonavbar = true;
+ }
+ else if ("-noindex".equals(optionTag)) {
+ docTransletOptions.noindex = true;
+ }
+ else if ("-notree".equals(optionTag)) {
+ docTransletOptions.notree = true;
+ }
+ else if ("-nocomment".equals(optionTag)) {
+ docTransletOptions.nocomment = true;
+ }
+ else if ("-nohelp".equals(optionTag)) {
+ docTransletOptions.nohelp = true;
+ }
+ else if ("-splitindex".equals(optionTag)) {
+ docTransletOptions.splitindex = true;
+ }
+ else if ("-linksource".equals(optionTag)) {
+ docTransletOptions.linksource = true;
+ }
+ else if ("-windowtitle".equals(optionTag)) {
+ docTransletOptions.windowtitle = option[1];
+ }
+ else if ("-helpfile".equals(optionTag)) {
+ docTransletOptions.helpfile = new File(option[1]).toURL().toString();
+ }
+ else if ("-stylesheetfile".equals(optionTag)) {
+ docTransletOptions.stylesheetfile = new File(option[1]).toURL().toString();
+ }
+ else if ("-header".equals(optionTag)) {
+ docTransletOptions.header = option[1];
+ }
+ else if ("-footer".equals(optionTag)) {
+ docTransletOptions.footer = option[1];
+ }
+ else if ("-bottom".equals(optionTag)) {
+ docTransletOptions.bottom = option[1];
+ }
+ else if ("-doctitle".equals(optionTag)) {
+ docTransletOptions.doctitle = option[1];
+ }
+ else if ("-nodeprecatedlist".equals(optionTag)) {
+ docTransletOptions.nodeprecatedlist = true;
+ }
+ else if ("-uses".equals(optionTag)) {
+ docTransletOptions.uses = true;
+ }
+ else if ("-group".equals(optionTag)) {
+ if (!processGroupOption(option[1], option[2])) {
+ printError("Invalid package wildcard list in -group option \"" + option[1] + "\" " + option[2]);
+ return false;
+ }
+ }
+ else if ("-tag".equals(optionTag)) {
+ String tagSpec = option[1];
+ boolean validTagSpec = false;
+ int ndx1 = tagSpec.indexOf(':');
+ if (ndx1 < 0) {
+ Taglet taglet = (Taglet)tagletMap.get(tagSpec);
+ if (null == taglet) {
+ printError("There is no standard tag '" + tagSpec + "'.");
+ }
+ else {
+ if (mentionedTags.contains(taglet)) {
+ printError("Tag '" + tagSpec + "' has been added or moved before.");
+ }
+ else {
+ mentionedTags.add(taglet);
+
+ // re-append taglet
+ tagletMap.remove(tagSpec);
+ tagletMap.put(tagSpec, taglet);
+ }
+ }
+ }
+ else {
+ int ndx2 = tagSpec.indexOf(':', ndx1 + 1);
+ if (ndx2 > ndx1 && ndx2 < tagSpec.length() - 1) {
+ String tagName = tagSpec.substring(0, ndx1);
+ String tagHead = null;
+ if (tagSpec.charAt(ndx2 + 1) == '\"') {
+ if (tagSpec.charAt(tagSpec.length() - 1) == '\"') {
+ tagHead = tagSpec.substring(ndx2 + 2, tagSpec.length() - 1);
+ validTagSpec = true;
+ }
+ }
+ else {
+ tagHead = tagSpec.substring(ndx2 + 1);
+ validTagSpec = true;
+ }
+
+ boolean tagScopeOverview = false;
+ boolean tagScopePackages = false;
+ boolean tagScopeTypes = false;
+ boolean tagScopeConstructors = false;
+ boolean tagScopeMethods = false;
+ boolean tagScopeFields = false;
+ boolean tagDisabled = false;
+
+ tag_option_loop:
+ for (int n=ndx1+1; n<ndx2; ++n) {
+ switch (tagSpec.charAt(n)) {
+ case 'X':
+ tagDisabled = true;
+ break;
+ case 'a':
+ tagScopeOverview = true;
+ tagScopePackages = true;
+ tagScopeTypes = true;
+ tagScopeConstructors = true;
+ tagScopeMethods = true;
+ tagScopeFields = true;
+ break;
+ case 'o':
+ tagScopeOverview = true;
+ break;
+ case 'p':
+ tagScopePackages = true;
+ break;
+ case 't':
+ tagScopeTypes = true;
+ break;
+ case 'c':
+ tagScopeConstructors = true;
+ break;
+ case 'm':
+ tagScopeMethods = true;
+ break;
+ case 'f':
+ tagScopeFields = true;
+ break;
+ default:
+ validTagSpec = false;
+ break tag_option_loop;
+ }
+ }
+
+ if (validTagSpec) {
+ GenericTaglet taglet
+ = new GenericTaglet(tagName,
+ tagHead,
+ tagScopeOverview,
+ tagScopePackages,
+ tagScopeTypes,
+ tagScopeConstructors,
+ tagScopeMethods,
+ tagScopeFields);
+ taglet.setTagletEnabled(!tagDisabled);
+ taglet.register(tagletMap);
+ mentionedTags.add(taglet);
+ }
+ }
+ }
+ if (!validTagSpec) {
+ printError("Value for option -tag must be in format \"<tagname>:Xaoptcmf:<taghead>\".");
+ }
+ }
+ }
+
+ // Use current directory if target directory hasn't been set.
+ if (null == targetDirectory) {
+ targetDirectory = new File(System.getProperty("user.dir"));
+ }
+ if (null != targetContext) {
+ targetContext.setTargetDirectory(targetDirectory);
+ }
+
+ // It is illegal to specify targets AND -xmlonly.
+
+ if (xmlOnly && targets.size() > 0) {
+
+ printError("You can only specify one of -xmlonly and a target format.");
+ return false;
+ }
+
+ // If no target was specified and XML only was not
+ // requested, use HTML as default target.
+
+ if (!xmlOnly && targets.size() == 0) {
+ targets.add(targetContext = htmlTargetContext);
+ }
+
+ // Set the same target directory for all output.
+
+ // FIXME: Allow separate target directories for different
+ // output formats.
+
+ for (Iterator it = targets.iterator(); it.hasNext(); ) {
+ TargetContext t = (TargetContext)it.next();
+ t.setTargetDirectory(targetDirectory);
+ }
+
+ // Create temporary directory if necessary
+
+ if (xmlOnly) {
+
+ xmlTargetDirectory = targetDirectory;
+ }
+ else {
+
+ File workingTopDirectory = new File(workingPath);
+
+ workingDirectory = new File(workingTopDirectory, "gjdoc.tmp."+System.currentTimeMillis());
+
+ if (!workingDirectory.mkdir()) {
+ printError("Cannot create temporary directory at "+System.getProperty("java.io.tmpdir"));
+ return false;
+ }
+
+ File xmlTempDirectory = new File(workingDirectory, "xmloutput");
+
+ if (!xmlTempDirectory.mkdir()) {
+ printError("Cannot create temporary directory for XML output at "+System.getProperty("java.io.tmpdir"));
+ return false;
+ }
+
+ xmlTargetDirectory = xmlTempDirectory;
+ }
+
+ // Create target directory if necessary
+
+ if (!targetDirectory.exists()) {
+ printNotice("Creating destination directory: \""
+ + targetDirectory + "\"");
+ if (!targetDirectory.mkdirs()) {
+ printError("Failed to create destination directory \""
+ + targetDirectory + "\"");
+ return false;
+ }
+ }
+
+ // Check for deprecation
+
+ boolean hasDeprecatedClasses = false;
+ boolean hasDeprecatedInterfaces = false;
+ boolean hasDeprecatedExceptions = false;
+ boolean hasDeprecatedErrors = false;
+ boolean hasDeprecatedMethods = false;
+ boolean hasDeprecatedFields = false;
+
+ {
+ ClassDoc[] classes = rootDoc.classes();
+ for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
+ ClassDoc c = classes[i];
+ Tag[] deprecatedTags = c.tags("deprecated");
+ if (null != deprecatedTags && 0 != deprecatedTags.length) {
+ if (c.isInterface()) {
+ hasDeprecatedInterfaces = true;
+ }
+ else if (c.isException()) {
+ hasDeprecatedExceptions = true;
+ }
+ else if (c.isError()) {
+ hasDeprecatedErrors = true;
+ }
+ else /*if (c.isOrdinaryClass())*/ {
+ hasDeprecatedClasses = true;
+ }
+ }
+
+ MethodDoc[] methods = c.methods();
+ for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
+ MethodDoc m = methods[j];
+ deprecatedTags = m.tags("deprecated");
+ if (null != deprecatedTags && 0 != deprecatedTags.length) {
+ hasDeprecatedMethods = true;
+ }
+ }
+
+ FieldDoc[] fields = c.fields();
+ for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
+ FieldDoc f = fields[j];
+ deprecatedTags = f.tags("deprecated");
+ if (null != deprecatedTags && 0 != deprecatedTags.length) {
+ hasDeprecatedFields = true;
+ }
+ }
+ }
+ }
+
+ htmlRepairer = new HtmlRepairer(rootDoc, noHTMLWarn, noEmailWarn,
+ currentClass, currentMember,
+ false);
+
+ collectUsage();
+
+ // Begin XML generation
+
+ printNotice("Writing XML Index file...");
+
+ // Assign output stream
+
+ setTargetFile("index.xml");
+
+ // Output XML document header
+
+ println(0, "<?xml version=\"1.0\"?>");
+ println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc.dtd\">");
+ println();
+ printOpenTag(0, "rootdoc xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:gjdoc=\"http://www.gnu.org/software/cp-tools/gjdocxml\"");
+
+ println();
+ println(1, "<!-- Tags from overview page, if available -->");
+
+ if (rootDoc.firstSentenceTags().length > 0) {
+ printOpenTag(2, "firstSentenceTags", false);
+ outputTags(3, rootDoc.firstSentenceTags(), true, CONTEXT_PACKAGE);
+ printCloseTag(0, "firstSentenceTags");
+ }
+
+ if (rootDoc.inlineTags().length > 0) {
+ printOpenTag(2, "inlineTags");
+ outputTags(3, rootDoc.inlineTags(), true, CONTEXT_PACKAGE);
+ printCloseTag(2, "inlineTags");
+ }
+
+ if (null != bottomNote) {
+ printOpenTag(1, "bottomnote");
+ print(bottomNote);
+ printCloseTag(1, "bottomnote");
+ }
+
+ if (null != title) {
+ printOpenTag(1, "title");
+ println(2, title);
+ printCloseTag(1, "title");
+ }
+
+ printOpenTag(1, "created");
+ println(2, DateFormat.getDateInstance(DateFormat.LONG, Locale.US).format(new java.util.Date()));
+ printCloseTag(1, "created");
+
+ if (hasDeprecatedClasses) printAtomTag(1, "hasDeprecatedClasses");
+ if (hasDeprecatedInterfaces) printAtomTag(1, "hasDeprecatedInterfaces");
+ if (hasDeprecatedExceptions) printAtomTag(1, "hasDeprecatedExceptions");
+ if (hasDeprecatedErrors) printAtomTag(1, "hasDeprecatedErrors");
+ if (hasDeprecatedMethods) printAtomTag(1, "hasDeprecatedMethods");
+ if (hasDeprecatedFields) printAtomTag(1, "hasDeprecatedFields");
+
+ // Output summary of all classes specified on command line
+
+ println();
+ println(1, "<!-- Classes specified by user on command line -->");
+ ClassDoc[] specifiedClasses = rootDoc.specifiedClasses();
+ for (int i=0, ilim=specifiedClasses.length; i<ilim; ++i) {
+ ClassDoc sc = specifiedClasses[i];
+ printAtomTag(1, "specifiedclass fqname=\""+sc.qualifiedName()+"\" name=\""+sc.name()+"\"");
+ }
+ specifiedClasses = null;
+
+ // Output summary of all packages specified on command line
+
+ println();
+ println(1, "<!-- Packages specified by user on command line -->");
+ PackageDoc[] specifiedPackages = rootDoc.specifiedPackages();
+ for (int i=0, ilim=specifiedPackages.length; i<ilim; ++i) {
+ PackageDoc sp = specifiedPackages[i];
+ printAtomTag(1, "specifiedpackage name=\""+sp.name()+"\"");
+ }
+ specifiedPackages = null;
+
+ // Output package group information specified on the
+ // command line
+
+ println();
+ println(1, "<!-- Package groups specified by user on command line -->");
+ {
+ Iterator packageGroupIt = packageGroups.iterator();
+ while (packageGroupIt.hasNext()) {
+ PackageGroup packageGroup = (PackageGroup)packageGroupIt.next();
+ SortedSet groupedPackages = packageGroup.getPackages();
+ if (groupedPackages.isEmpty()) {
+ printWarning("Package group named '"
+ + packageGroup.getName() + "' didn't match any packages.");
+ }
+ else {
+ printOpenTag(1, "packagegroup name=\"" + packageGroup.getName() + "\"");
+ Iterator groupedPackageIt = groupedPackages.iterator();
+ while (groupedPackageIt.hasNext()) {
+ PackageDoc groupedPackageDoc = (PackageDoc)groupedPackageIt.next();
+ printAtomTag(2, "package name=\"" + groupedPackageDoc.name() + "\"");
+ }
+ printCloseTag(1, "packagegroup");
+ }
+ }
+ packageGroups = null;
+ }
+
+ // Output information on all packages for which documentation
+ // has been made available via the Doclet API
+
+ println();
+ println(1, "<!-- Documentation for all packages -->");
+ PackageDoc[] packages = rootDoc.specifiedPackages();
+ for (int i=0, ilim=packages.length; i<ilim; ++i) {
+ PackageDoc c = packages[i];
+ outputPackageDoc(c);
+ }
+ packages = null;
+
+ // Output brief summary on all classes for which documentation
+ // has been made available via the Doclet API.
+ //
+ // While this is redundant, it can speed up XSLT
+ // processing by orders of magnitude
+
+ println();
+ println(1, "<!-- Brief summary for all classes -->");
+ ClassDoc[] sumclasses = rootDoc.classes();
+ for (int i=0, ilim=sumclasses.length; i<ilim; ++i) {
+ ClassDoc c = sumclasses[i];
+ outputClassDocSummary(c);
+ }
+ sumclasses = null;
+
+ // Output closing tag, finish output stream
+
+ println();
+ printCloseTag(0, "rootdoc");
+
+ closeTargetFile();
+
+ createIndexByName();
+
+
+
+ // Output information on all classes for which documentation
+ // has been made available via the Doclet API
+
+ println();
+ println(1, "<!-- Documentation for all classes -->");
+ ClassDoc[] classes = rootDoc.classes();
+ String prevPackageName = null;
+ for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
+ ClassDoc c = classes[i];
+
+ if (isVerbose()) {
+ printNotice("Writing XML information for "+c.qualifiedName()+"...");
+ }
+ else {
+ String packageName = c.containingPackage().name();
+ if (null == prevPackageName || !packageName.equals(prevPackageName)) {
+ printNotice("Writing XML information for "+packageName+"...");
+ prevPackageName = packageName;
+ }
+ }
+
+ setTargetFile(c.qualifiedName().replace('/','.')+".xml");
+
+ println("<?xml version=\"1.0\"?>");
+ println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc.dtd\">");
+
+ outputClassDoc(c);
+
+ closeTargetFile();
+ }
+ classes = null;
+ }
+
+ // Copy DTD files to temporary directory
+
+ // FIXME: try to solve this via jar: URLs. but this will
+ // probably break libxmlj compatibility (?)
+
+ String[] resources = new String[] {
+ "gjdoc.dtd",
+ "gjdoc-alphaindex.dtd",
+ "dbcentx.mod",
+ "ent/iso-amsa.ent",
+ "ent/iso-amsb.ent",
+ "ent/iso-amsc.ent",
+ "ent/iso-amsn.ent",
+ "ent/iso-amso.ent",
+ "ent/iso-amsr.ent",
+ "ent/iso-box.ent",
+ "ent/iso-cyr1.ent",
+ "ent/iso-cyr2.ent",
+ "ent/iso-dia.ent",
+ "ent/iso-grk1.ent",
+ "ent/iso-grk2.ent",
+ "ent/iso-grk3.ent",
+ "ent/iso-grk4.ent",
+ "ent/iso-lat1.ent",
+ "ent/iso-lat2.ent",
+ "ent/iso-num.ent",
+ "ent/iso-pub.ent",
+ "ent/iso-tech.ent",
+ };
+
+ File tempDtdDirectory = new File(xmlTargetDirectory, "dtd");
+ File tempDtdEntDirectory = new File(tempDtdDirectory, "ent");
+
+ if ((tempDtdDirectory.exists() || tempDtdDirectory.mkdir())
+ && (tempDtdEntDirectory.exists() || tempDtdEntDirectory.mkdir())) {
+ for (int i = 0; i < resources.length; ++ i) {
+ copyResourceToFile("/dtd/" + resources[i],
+ new File(tempDtdDirectory, resources[i]));
+ }
+ }
+ else {
+ printError("Cannot create temporary directories for DTD data at " + tempDtdDirectory);
+ return false;
+ }
+
+ // Copy package data-dir directory
+
+ {
+ PackageDoc[] packages = rootDoc.specifiedPackages();
+ for (int i=0, ilim=packages.length; i<ilim; ++i) {
+ PackageDoc c = packages[i];
+ if (c instanceof GjdocPackageDoc) {
+ copyPackageDataDir((GjdocPackageDoc)c);
+ }
+ }
+ }
+
+ // All information has been output. Apply stylesheet if given.
+
+ gnu.classpath.tools.gjdoc.Main.releaseRootDoc();
+
+ this.currentClass = null;
+ this.currentMember = null;
+ this.currentExecMember = null;
+
+ System.gc();
+
+ // From this point we are only operating on files, so we don't
+ // need this anymore and can free up some memory
+
+ for (Iterator it = targets.iterator(); it.hasNext(); ) {
+
+ TargetContext target = (TargetContext)it.next();
+
+ // We have XSLT postprocessing, run DocTranslet.
+
+ //DocTranslet docTranslet = DocTranslet.fromClasspath("/doctranslets/html/gjdoc.xsl");
+
+ //docTranslet.setOptions(docTransletOptions);
+
+ target.getDocTranslet().setOptions(docTransletOptions);
+
+ target.getDocTranslet().apply(xmlTargetDirectory,
+ target.getTargetDirectory(),
+ rootDoc);
+ }
+
+ // Done
+
+ targets = null;
+
+ System.gc();
+ Runtime.getRuntime().runFinalization();
+
+ return true;
+ }
+ catch (Exception e) {
+
+ // Something went wrong. Report to stderr and pass error to
+ // Javadoc Reporter
+
+ e.printStackTrace();
+ printError(e.toString());
+
+ Throwable rootCause = e.getCause();
+ if (null != rootCause) {
+ while (null != rootCause.getCause()) {
+ rootCause = rootCause.getCause();
+ }
+ System.err.println("Root cause:");
+ rootCause.printStackTrace();
+ }
+
+ return false;
+ }
+ finally {
+
+ // In any case, delete the working directory if we created one
+
+ if (null != workingDirectory) {
+
+ if (!deleteRecursive(workingDirectory)) {
+ printWarning("Could not delete temporary directory at "+workingDirectory);
+ }
+ }
+
+ printNotice("Done.");
+ }
+ }
+
+ /**
+ * Recursively delete the specified directory and its contents,
+ * like <code>rm -Rf directory</code>
+ *
+ * @return <code>true</code> on success
+ */
+ private static boolean deleteRecursive(File directory) {
+
+ boolean success = true;
+
+ File[] files = directory.listFiles();
+
+ for (int i=0, ilim=files.length; i<ilim; ++i) {
+
+ File file = files[i];
+
+ if (file.isDirectory()) {
+
+ success = deleteRecursive(file) && success;
+ }
+ else {
+
+ success = file.delete() && success;
+ }
+ }
+
+ return directory.delete() && success;
+ }
+
+ /**
+ * Prints a string to stdout and appends a newline. Convenience
+ * method.
+ */
+ protected void println(String str) {
+ out.println(str);
+ }
+
+ /**
+ * Prints a string to stdout without appending a newline.
+ * Convenience method.
+ */
+ protected void print(String str) {
+ out.print(str);
+ }
+
+ /**
+ * In standard mode, prints an empty line to stdout.
+ * In thight mode, nothing happens.
+ * Convenience method.
+ */
+ protected void println() {
+ if (!compress) {
+ out.println();
+ }
+ }
+
+ /**
+ * In standard mode, prints the given text indented to stdout and appends newline.
+ * In tight mode, doesn't print indentation or newlines.
+ */
+ protected void print(int indentLevel, String msg) {
+ if (compress) {
+ out.print(msg);
+ }
+ else {
+ StringBuffer indentation = new StringBuffer();
+ for (int i=0; i<indentLevel*indentStep; ++i) {
+ indentation.append(' ');
+ }
+ out.print(indentation+msg);
+ }
+ }
+
+ /**
+ * In tight mode, prints a message at a given indentation level.
+ * In standard mode, appends a newline in addition.
+ */
+ protected void println(int indentLevel, String msg) {
+ print(indentLevel, msg);
+ if (!compress) out.println();
+ }
+
+ /**
+ * Prints an atom tag at the given indentation level.
+ */
+ protected void printAtomTag(int level, String tag) {
+ println(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+"/>");
+ }
+
+ /**
+ * Prints an open tag at the given indentation level.
+ */
+ protected void printOpenTag(int level, String tag) {
+ printOpenTag(level, replaceCharsInTag(tag), true);
+ }
+
+ /**
+ * Prints an open tag at the given indentation level and
+ * conditionally appends a newline (if not in tight mode).
+ */
+ protected void printOpenTag(int level, String tag, boolean appendNewline) {
+ if (appendNewline && !compress) {
+ println(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+">");
+ }
+ else {
+ print(level, "<"+tagPrefix+":"+replaceCharsInTag(tag)+">");
+ }
+ }
+
+ /**
+ * Prints a close tag at the given indentation level.
+ */
+ protected void printCloseTag(int level, String tag) {
+ printCloseTag(level, tag, true);
+ }
+
+ /**
+ * Prints a close tag at the given indentation level and
+ * conditionally appends a newline (if not in tight mode).
+ */
+ protected void printCloseTag(int level, String tag, boolean appendNewline) {
+ if (appendNewline && !compress) {
+ println(level, "</"+tagPrefix+":"+replaceCharsInTag(tag)+">");
+ }
+ else {
+ print(level, "</"+tagPrefix+":"+replaceCharsInTag(tag)+">");
+ }
+ }
+
+ public static int optionLength(String option) {
+ if ("-d".equals(option)) return 2;
+ else if ("-fixhtml".equals(option)) return 1;
+ else if ("-compress".equals(option)) return 1;
+ else if ("-nohtmlwarn".equals(option)) return 1;
+ else if ("-noemailwarn".equals(option)) return 1;
+ else if ("-indentstep".equals(option)) return 2;
+ else if ("-xslsheet".equals(option)) return 2;
+ else if ("-xsltdriver".equals(option)) return 2;
+ else if ("-postprocess".equals(option)) return 2;
+ else if ("-genhtml".equals(option)) return 1;
+ else if ("-geninfo".equals(option)) return 1;
+ else if ("-gendocbook".equals(option)) return 1;
+ else if ("-xmlonly".equals(option)) return 1;
+ else if ("-bottomnote".equals(option)) return 2;
+ else if ("-workpath".equals(option)) return 2;
+ else if ("-title".equals(option)) return 2;
+ else if ("-tagletpath".equals(option)) return 2;
+ else if ("-taglet".equals(option)) return 2;
+ else if ("-authormail".equals(option)) return 2;
+ else if ("-mailmangledot".equals(option)) return 2;
+ else if ("-mailmangleat".equals(option)) return 2;
+ else if ("-noindex".equals(option)) return 1;
+ else if ("-nocomment".equals(option)) return 1;
+ else if ("-notree".equals(option)) return 1;
+ else if ("-nohelp".equals(option)) return 1;
+ else if ("-nonavbar".equals(option)) return 1;
+ else if ("-splitindex".equals(option)) return 1;
+ else if ("-author".equals(option)) return 1;
+ else if ("-version".equals(option)) return 1;
+ else if ("-nosince".equals(option)) return 1;
+ else if ("-nodeprecated".equals(option)) return 1;
+ else if ("-linksource".equals(option)) return 1;
+ else if ("-windowtitle".equals(option)) return 2;
+ else if ("-helpfile".equals(option)) return 2;
+ else if ("-stylesheetfile".equals(option)) return 2;
+ else if ("-tag".equals(option)) return 2;
+ else if ("-header".equals(option)) return 2;
+ else if ("-footer".equals(option)) return 2;
+ else if ("-bottom".equals(option)) return 2;
+ else if ("-doctitle".equals(option)) return 2;
+ else if ("-nodeprecatedlist".equals(option)) return 1;
+ else if ("-uses".equals(option)) return 1;
+ else if ("-group".equals(option)) return 3;
+
+ else return -1;
+ }
+
+ public static boolean validOptions(String[][] options) {
+ return true;
+ }
+
+
+ /**
+ * Workaround for non well-formed comments: fix tag contents
+ * by replacing <code>&lt;</code> with <code>&amp;lt;</code>,
+ * <code>&gt;</code> with <code>&amp;gt;</code> and
+ * <code>&amp;</code> with <code>&amp;amp;</code>.
+ *
+ * @param tagContent String to process
+ *
+ * @return given String with all special characters replaced by
+ * HTML entities.
+ */
+ private static String replaceCharsInTag(String tagContent) {
+ return
+ replaceString(
+ replaceString(
+ replaceString(
+ tagContent,
+ "<", "&lt;"
+ ),
+ ">", "&gt;"
+ ),
+ "&", "&amp;"
+ );
+ }
+
+ /**
+ * Replaces all occurences of string <code>needle</code> within string
+ * <code>haystack</code> by string <code>replacement</code>.
+ *
+ * @param haystack The string to search and replace in.
+ * @param needle The string which is searched for.
+ * @param replacement The string by which every occurence of <code>needle</code> is replaced.
+ */
+ private static String replaceString(String haystack, String needle, String replacement) {
+ int ndx = haystack.indexOf(needle);
+ if (ndx<0)
+ return haystack;
+ else
+ return haystack.substring(0, ndx) + replacement
+ + replaceString(haystack.substring(ndx+needle.length()), needle, replacement);
+ }
+
+ protected void setTargetFile(String filename) throws IOException {
+
+ OutputStream fileOut = new FileOutputStream(new File(xmlTargetDirectory, filename));
+ out = new PrintWriter(new BufferedWriter(new OutputStreamWriter(fileOut, "UTF8")));;
+ }
+
+ protected void closeTargetFile() {
+
+ out.flush();
+ out.close();
+ }
+
+ private String cdata(String str) {
+
+ if (null==str) {
+ return str;
+ } // end of if ((null==str)
+
+ StringBuffer rc = new StringBuffer();
+ for (int i=0; i<str.length(); ++i) {
+ char c = str.charAt(i);
+ if (c==0x09 || c==0x0a || c==0x0d || (c>=0x20 && c<=0xd7ff) || (c>=0xe000 && c<=0xfffd) || (c>=0x10000 && c<=0x10ffff)) {
+ rc.append(c);
+ }
+ else {
+ printWarning("Invalid Unicode character 0x"+Integer.toString(c, 16)+" in javadoc markup has been stripped.");
+ } // end of else
+
+ }
+ return rc.toString();
+ }
+
+ static void copyResourceToFile(String resourceName, File target) throws IOException {
+
+ InputStream in = Driver.class.getResourceAsStream(resourceName);
+
+ if (null != in) {
+
+ FileOutputStream out = new FileOutputStream(target);
+ int size;
+ byte[] buffer = new byte[512];
+ while ((size = in.read(buffer)) >= 0) {
+ out.write(buffer, 0, size);
+ }
+ out.close();
+ }
+ else {
+
+ throw new IOException("Can't find resource named "+resourceName);
+ }
+ }
+
+ private void printError(String error) {
+ if (null != rootDoc) {
+ rootDoc.printError(error);
+ }
+ else {
+ System.err.println("ERROR: "+error);
+ }
+ }
+
+ private void printWarning(String warning) {
+ if (null != rootDoc) {
+ rootDoc.printWarning(warning);
+ }
+ else {
+ System.err.println("WARNING: "+warning);
+ }
+ }
+
+ private void printNotice(String notice) {
+ if (null != rootDoc) {
+ rootDoc.printNotice(notice);
+ }
+ else {
+ System.err.println(notice);
+ }
+ }
+
+ /**
+ * Copy the contents of the input directory to the output
+ * directory. The output directory must exist.
+ */
+ private void copyPackageDataDir(GjdocPackageDoc packageDoc) throws IOException {
+ File docFilesSourceDirectory
+ = new File(packageDoc.packageDirectory(), "doc-files");
+ File docFilesTargetDirectory
+ = new File(this.targetDirectory,
+ packageDoc.name().replace('.', File.separatorChar));
+ if (docFilesSourceDirectory.exists()) {
+ printNotice("Copying files from " + docFilesSourceDirectory);
+ copyDirectory(docFilesSourceDirectory, docFilesTargetDirectory,
+ docFilesSubdirsEnabled,
+ excludeDocFilesSubDirs);
+ }
+ }
+
+ /**
+ * Recursively copy the contents of the input directory to the
+ * output directory. The output directory must exist.
+ */
+ private static void copyDirectory(File sourceDir, File targetDir,
+ boolean recursive,
+ Set excludeDirs) throws IOException {
+ if (!targetDir.exists() && !targetDir.mkdirs()) {
+ throw new IOException("Cannot create directory " + targetDir);
+ }
+
+ File[] sourceFiles = sourceDir.listFiles();
+ for (int i=0; i<sourceFiles.length; ++i) {
+ if (sourceFiles[i].isDirectory()) {
+ if (recursive && (null == excludeDirs
+ || !excludeDirs.contains(sourceFiles[i].getName()))) {
+ File targetSubDir = new File(targetDir,
+ sourceFiles[i].getName());
+ if (targetSubDir.exists() || targetSubDir.mkdir()) {
+ copyDirectory(sourceFiles[i], targetSubDir, recursive, null);
+ }
+ else {
+ throw new IOException("Cannot create directory " + targetSubDir);
+ }
+ }
+ }
+ else {
+ copyFile(sourceFiles[i], new File(targetDir, sourceFiles[i].getName()));
+ }
+ }
+ }
+
+ /**
+ * Copy the contents of the input file to the output file. The
+ * output file's parent directory must exist.
+ */
+ private static void copyFile(File sourceFile, File targetFile) throws IOException {
+
+ InputStream in = new FileInputStream(sourceFile);
+ OutputStream out = new FileOutputStream(targetFile);
+ int nread;
+ byte[] buf = new byte[512];
+ while ((nread = in.read(buf)) >= 0) {
+ out.write(buf, 0, nread);
+ }
+ in.close();
+ out.close();
+ }
+
+ private void createIndexByName() throws IOException {
+ // Create index
+
+ // Collect index
+
+ Map indexMap = new TreeMap(new Comparator() {
+ public int compare(Object o1, Object o2) {
+ return o1.toString().toLowerCase().compareTo(o2.toString().toLowerCase());
+ }
+ });
+
+ // Add packages to index
+
+ PackageDoc[] packages = rootDoc.specifiedPackages();
+ for (int i=0, ilim=packages.length; i<ilim; ++i) {
+ PackageDoc c = packages[i];
+ indexMap.put(c.name(), c);
+ }
+
+ // Add classes, fields and methods to index
+
+ ClassDoc[] sumclasses = rootDoc.classes();
+ for (int i=0, ilim=sumclasses.length; i<ilim; ++i) {
+ ClassDoc c = sumclasses[i];
+ if (null == c.containingClass()) {
+ indexMap.put(c.name(), c);
+ }
+ else {
+ indexMap.put(c.name().substring(c.containingClass().name().length() + 1), c);
+ }
+ FieldDoc[] fields = c.fields();
+ for (int j=0, jlim=fields.length; j<jlim; ++j) {
+ indexMap.put(fields[j].name(), fields[j]);
+ }
+ MethodDoc[] methods = c.methods();
+ for (int j=0, jlim=methods.length; j<jlim; ++j) {
+ MethodDoc method = methods[j];
+ StringBuffer signature = new StringBuffer();
+ signature.append(method.name());
+ signature.append('(');
+ Parameter[] parameters = method.parameters();
+ for (int k=0, klim=parameters.length; k<klim; ++k) {
+ if (k > 0) {
+ signature.append(", ");
+ }
+ signature.append(parameters[k].typeName());
+ }
+ signature.append(')');
+ indexMap.put(signature.toString(), method);
+ }
+ }
+
+ // Assign output stream
+
+ setTargetFile("alphaindex.xml");
+
+ // Output XML document header
+
+ println(0, "<?xml version=\"1.0\"?>");
+ println("<!DOCTYPE gjdoc SYSTEM \"dtd/gjdoc-alphaindex.dtd\">");
+ println();
+ printOpenTag(0, "alphaindex xmlns=\"http://www.w3.org/TR/REC-html40\" xmlns:gjdoc=\"http://www.gnu.org/software/cp-tools/gjdocxml\"");
+
+ Iterator it = indexMap.keySet().iterator();
+
+ char previousCategoryLetter = '\0';
+ boolean categoryOpen = false;
+
+ while (it.hasNext()) {
+ String key = (String)it.next();
+ Doc entry = (Doc)indexMap.get(key);
+
+ char firstChar = Character.toUpperCase(key.charAt(0));
+ if (firstChar != previousCategoryLetter) {
+ if (categoryOpen) {
+ printCloseTag(1, "category");
+ }
+ printOpenTag(1, "category letter=\"" + firstChar + "\"");
+ categoryOpen = true;
+ previousCategoryLetter = firstChar;
+ }
+
+ printOpenTag(2, "entry name=\"" + key + "\"");
+ if (entry instanceof PackageDoc) {
+ printAtomTag(3, "isPackage");
+ }
+ else if (entry instanceof ClassDoc) {
+ printAtomTag(3, "isClass");
+ ClassDoc centry = (ClassDoc)entry;
+ currentClass = centry;
+ printAtomTag(3, "containingPackage name=\"" + centry.containingPackage().name() + "\"");
+ if (null != centry.containingClass()) {
+ printAtomTag(3, "containingClass name=\"" + centry.containingClass().name() + "\"");
+ }
+ if (centry.isInterface()) {
+ printAtomTag(3, "isInterface");
+ }
+ if (centry.isException()) {
+ printAtomTag(3, "isException");
+ }
+ if (centry.isError()) {
+ printAtomTag(3, "isError");
+ }
+ if (centry.isOrdinaryClass()) {
+ printAtomTag(3, "isOrdinaryClass");
+ }
+ }
+ else if (entry instanceof ProgramElementDoc) {
+ ProgramElementDoc pentry = (ProgramElementDoc)entry;
+ currentClass = pentry.containingClass();
+ printAtomTag(3, "containingPackage name=\"" + pentry.containingPackage().name() + "\"");
+ printAtomTag(3, "containingClass name=\"" + pentry.containingClass().name() + "\"");
+ if (pentry.isMethod()) {
+ printAtomTag(3, "isMethod");
+ ExecutableMemberDoc mentry = (ExecutableMemberDoc)pentry;
+ printAtomTag(3, "signature full=\""+mentry.signature()+"\" flat=\""+mentry.flatSignature()+"\"");
+ printAtomTag(3, "method name=\"" + mentry.name() + "\"");
+ }
+ if (pentry.isField()) {
+ printAtomTag(3, "isField");
+ }
+ }
+
+ Tag[] tags = entry.firstSentenceTags();
+ for (int i=0, ilim=tags.length; i<ilim; ++i) {
+ Tag tag = tags[i];
+ if (tag.firstSentenceTags().length>0) {
+ printOpenTag(3, "firstSentenceTags", false);
+ outputTags(4, tag.firstSentenceTags(), false, CONTEXT_TYPE);
+ printCloseTag(3, "firstSentenceTags");
+ }
+ }
+
+
+ printCloseTag(2, "entry");
+ }
+
+ if (categoryOpen) {
+ printCloseTag(1, "category");
+ }
+
+ printCloseTag(0, "alphaindex");
+
+ closeTargetFile();
+ }
+
+ private static class UsageType
+ {
+ public static final UsageType CLASS_DERIVED_FROM = new UsageType("class-derived-from");
+ public static final UsageType FIELD_OF_TYPE = new UsageType("field-of-type");
+ public static final UsageType METHOD_WITH_RETURN_TYPE = new UsageType("method-with-return-type");
+ public static final UsageType METHOD_WITH_PARAMETER_TYPE = new UsageType("method-with-parameter-type");
+ public static final UsageType METHOD_WITH_THROWN_TYPE = new UsageType("method-with-thrown-type");
+ public static final UsageType CONSTRUCTOR_WITH_PARAMETER_TYPE = new UsageType("constructor-with-parameter-type");
+ public static final UsageType CONSTRUCTOR_WITH_THROWN_TYPE = new UsageType("constructor-with-thrown-type");
+ private String id;
+
+ private UsageType(String id)
+ {
+ this.id = id;
+ }
+
+ public String toString() {
+ return "UsageType{id=" + id + "}";
+ }
+
+ public String getId() {
+ return id;
+ }
+ }
+
+ /**
+ * ClassDoc -> (PackageDoc -> (UsageType -> (Set of Doc)))
+ */
+ private Map usedClassToPackagesMap = new HashMap();
+
+ private void addUsedBy(ClassDoc usedClass, UsageType usageType, Doc user, PackageDoc userPackage)
+ {
+ Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(usedClass);
+ if (null == packageToUsageTypeMap) {
+ packageToUsageTypeMap = new HashMap();
+ usedClassToPackagesMap.put(usedClass, packageToUsageTypeMap);
+ }
+
+ Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(userPackage);
+ if (null == usageTypeToUsersMap) {
+ usageTypeToUsersMap = new HashMap();
+ packageToUsageTypeMap.put(userPackage, usageTypeToUsersMap);
+ }
+
+ Set userSet = (Set)usageTypeToUsersMap.get(usageType);
+ if (null == userSet) {
+ userSet = new TreeSet(); // FIXME: we need the collator from Main here
+ usageTypeToUsersMap.put(usageType, userSet);
+ }
+ userSet.add(user);
+ }
+
+ /**
+ * Create the cross reference database.
+ */
+ private void collectUsage() {
+
+ ClassDoc[] classes = rootDoc.classes();
+ for (int i = 0, ilim = classes.length; i < ilim; ++ i) {
+ ClassDoc clazz = classes[i];
+
+ // classes derived from
+ for (ClassDoc superclass = clazz.superclass(); superclass != null;
+ superclass = superclass.superclass()) {
+ addUsedBy(superclass, UsageType.CLASS_DERIVED_FROM, clazz, clazz.containingPackage());
+ }
+
+ FieldDoc[] fields = clazz.fields();
+ for (int j = 0, jlim = fields.length; j < jlim; ++ j) {
+ FieldDoc field = fields[j];
+
+ // fields of type
+ ClassDoc fieldType = field.type().asClassDoc();
+ if (null != fieldType) {
+ addUsedBy(fieldType, UsageType.FIELD_OF_TYPE,
+ field, clazz.containingPackage());
+ }
+ }
+
+ MethodDoc[] methods = clazz.methods();
+ for (int j = 0, jlim = methods.length; j < jlim; ++ j) {
+ MethodDoc method = methods[j];
+
+ // methods with return type
+
+ ClassDoc returnType = method.returnType().asClassDoc();
+ if (null != returnType) {
+ addUsedBy(returnType, UsageType.METHOD_WITH_RETURN_TYPE,
+ method, clazz.containingPackage());
+ }
+ Parameter[] parameters = method.parameters();
+ for (int k=0; k<parameters.length; ++k) {
+
+ // methods with parameter type
+
+ Parameter parameter = parameters[k];
+ ClassDoc parameterType = parameter.type().asClassDoc();
+ if (null != parameterType) {
+ addUsedBy(parameterType, UsageType.METHOD_WITH_PARAMETER_TYPE,
+ method, clazz.containingPackage());
+ }
+ }
+
+ // methods which throw
+
+ ClassDoc[] thrownExceptions = method.thrownExceptions();
+ for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
+ ClassDoc thrownException = thrownExceptions[k];
+ addUsedBy(thrownException, UsageType.METHOD_WITH_THROWN_TYPE,
+ method, clazz.containingPackage());
+ }
+ }
+
+ ConstructorDoc[] constructors = clazz.constructors();
+ for (int j = 0, jlim = constructors.length; j < jlim; ++ j) {
+
+ ConstructorDoc constructor = constructors[j];
+
+ Parameter[] parameters = constructor.parameters();
+ for (int k = 0, klim = parameters.length; k < klim; ++ k) {
+
+ // constructors with parameter type
+
+ Parameter parameter = parameters[k];
+ ClassDoc parameterType = parameter.type().asClassDoc();
+ if (null != parameterType) {
+ addUsedBy(parameterType, UsageType.CONSTRUCTOR_WITH_PARAMETER_TYPE,
+ constructor, clazz.containingPackage());
+ }
+ }
+
+ // constructors which throw
+
+ ClassDoc[] thrownExceptions = constructor.thrownExceptions();
+ for (int k = 0, klim = thrownExceptions.length; k < klim; ++ k) {
+ ClassDoc thrownException = thrownExceptions[k];
+ addUsedBy(thrownException, UsageType.CONSTRUCTOR_WITH_THROWN_TYPE,
+ constructor, clazz.containingPackage());
+ }
+ }
+ }
+ }
+
+ private void outputUsage(ClassDoc clazz, int level) {
+
+ Map packageToUsageTypeMap = (Map)usedClassToPackagesMap.get(clazz);
+ if (null != packageToUsageTypeMap) {
+ printOpenTag(level, "references");
+
+ Iterator packagesIterator = packageToUsageTypeMap.keySet().iterator();
+
+ while (packagesIterator.hasNext()) {
+ PackageDoc packageDoc = (PackageDoc)packagesIterator.next();
+ printOpenTag(level + 1, "referencing-package name=\"" + packageDoc.name() + "\"");
+ Map usageTypeToUsersMap = (Map)packageToUsageTypeMap.get(packageDoc);
+ Iterator usageTypeIterator = usageTypeToUsersMap.keySet().iterator();
+ while (usageTypeIterator.hasNext()) {
+ UsageType usageType = (UsageType)usageTypeIterator.next();
+ printOpenTag(level + 2, "usage-type id=\"" + usageType.getId() + "\"");
+ Set users = (Set)usageTypeToUsersMap.get(usageType);
+ Iterator userIterator = users.iterator();
+ while (userIterator.hasNext()) {
+ Doc user = (Doc)userIterator.next();
+ if (user instanceof ClassDoc) {
+ printAtomTag(level + 3, "user"
+ + " class=\"" + ((ClassDoc)user).name() + "\"");
+ }
+ else if (user instanceof FieldDoc) {
+ FieldDoc fieldDoc = (FieldDoc)user;
+ printAtomTag(level + 3, "user"
+ + " class=\"" + fieldDoc.containingClass().name() + "\""
+ + " field=\"" + fieldDoc.name() + "\"");
+ }
+ else if (user instanceof MethodDoc) {
+ MethodDoc methodDoc = (MethodDoc)user;
+ printAtomTag(level + 3, "user"
+ + " class=\"" + methodDoc.containingClass().name() + "\""
+ + " method=\"" + methodDoc.name() + "\""
+ + " signature=\"" + methodDoc.signature() + "\""
+ + " flatSignature=\"" + methodDoc.flatSignature() + "\"");
+ }
+ else if (user instanceof ConstructorDoc) {
+ ConstructorDoc constructorDoc = (ConstructorDoc)user;
+ printAtomTag(level + 3, "user"
+ + " class=\"" + constructorDoc.containingClass().name() + "\""
+ + " signature=\"" + constructorDoc.signature() + "\""
+ + " flatSignature=\"" + constructorDoc.flatSignature() + "\"");
+ }
+ }
+ printCloseTag(level +2, "usage-type");
+ }
+ printCloseTag(level + 1, "referencing-package");
+ }
+
+ printCloseTag(level, "references");
+ }
+ }
+
+ private boolean processGroupOption(String groupName, String colonSeparatedPackageList)
+ {
+ try {
+ PackageMatcher packageMatcher = new PackageMatcher();
+
+ StringTokenizer tokenizer = new StringTokenizer(colonSeparatedPackageList, ":");
+ while (tokenizer.hasMoreTokens()) {
+ String packageWildcard = tokenizer.nextToken();
+ packageMatcher.addWildcard(packageWildcard);
+ }
+
+ SortedSet groupPackages = packageMatcher.filter(rootDoc.specifiedPackages());
+
+ packageGroups.add(new PackageGroup(groupName, groupPackages));
+
+ return true;
+ }
+ catch (InvalidPackageWildcardException e) {
+ return false;
+ }
+ }
+
+ private void registerTaglet(Taglet taglet)
+ {
+ tagletMap.put(taglet.getName(), taglet);
+ }
+
+ private boolean isVerbose()
+ {
+ return false;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java
new file mode 100644
index 0000000..bbb57ac
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/Driver1_4.java
@@ -0,0 +1,67 @@
+/* gnu.classpath.tools.doclets.xmldoclet.Driver1_4
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet;
+
+import com.sun.javadoc.*;
+import java.io.IOException;
+
+/**
+ * A Doclet which retrieves all information presented by the Doclet
+ * API, dumping it to stdout in XML format.
+ *
+ * Supports Doclet API Version 1.4.
+ *
+ * @author Julian Scheid
+ */
+public class Driver1_4 extends Driver {
+
+ /**
+ * Official Doclet entry point.
+ */
+ public static boolean start(RootDoc root) {
+
+ // Create a new XmlDoclet instance and delegate control.
+ return new Driver1_4().instanceStart(root);
+ }
+
+ /* since 1.4
+ private void outputSourcePosition(int level, SourcePosition sourcePosition) {
+ println(level, "<sourceposition"
+ + " file=\""+sourcePosition.file().toString()+"\""
+ + " line=\""+sourcePosition.line()+"\""
+ + " column=\""+sourceposition.column()+"\""
+ + "/>");
+ }
+ */
+
+ protected void outputClassDoc(ClassDoc classDoc)
+ throws IOException
+ {
+ super.outputClassDoc(classDoc);
+ //outputSourcePosition(level, doc.position());
+ }
+
+ protected void outputFieldDocBody(int level, FieldDoc fieldDoc) {
+ super.outputFieldDocBody(level, fieldDoc);
+ //println(level, "<constantValueExpression>"+fieldDoc.constantValueExpression()+"</constantValueExpression>");
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java
new file mode 100644
index 0000000..df9be0a
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/HtmlRepairer.java
@@ -0,0 +1,674 @@
+/* gnu.classpath.tools.doclets.xmldoclet.HtmlRepairer.java
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet;
+
+import java.io.*;
+import java.util.*;
+import com.sun.javadoc.DocErrorReporter;
+import com.sun.javadoc.ClassDoc;
+import com.sun.javadoc.MemberDoc;
+
+/**
+ * Provides methods for tidying up HTML source.
+ *
+ * @author Julian Scheid
+ */
+public final class HtmlRepairer {
+
+ private static class TagInfo {
+
+ private Set parentTags = new HashSet();
+
+ public TagInfo(String parentTag) {
+ this.parentTags.add(parentTag);
+ }
+
+ public TagInfo(String[] parentTagArr) {
+ for (int i=0; i<parentTagArr.length; ++i) {
+ this.parentTags.add(parentTagArr[i]);
+ }
+ }
+
+ public boolean isLegalParentTag(String tag) {
+ return this.parentTags.contains(tag);
+ }
+ }
+
+ private DocErrorReporter warningReporter;
+ private boolean noWarn;
+ private boolean noEmailWarn;
+ private ClassDoc contextClass;
+ private MemberDoc contextMember;
+ private StringBuffer output = new StringBuffer();
+ private Stack tagStack = new Stack();
+ private boolean isLeadingTag = true;
+ private boolean throwAwayLeadingPara = false;
+
+ private static Map tagInfoMap;
+
+ private static Set noTextParentTags;
+
+ static {
+ tagInfoMap = new HashMap();
+ tagInfoMap.put("li", new TagInfo(new String[] { "ul", "ol", "nl", "menu", "dir" }));
+ tagInfoMap.put("td", new TagInfo(new String[] { "tr" }));
+ tagInfoMap.put("th", new TagInfo(new String[] { "tr" }));
+ tagInfoMap.put("tr", new TagInfo(new String[] { "table" }));
+ tagInfoMap.put("dt", new TagInfo(new String[] { "dl" }));
+ tagInfoMap.put("dd", new TagInfo(new String[] { "dl" }));
+ tagInfoMap.put("param", new TagInfo(new String[] { "applet" }));
+
+ String[] noTextParentTagArr = {
+ "area", "base", "body", "br", "dd", "dt", "head", "hr", "html",
+ "img", "input", "link", "map", "meta", "ol", "optgroup", "param",
+ "select", "table", "tbody", "tfoot", "thead", "tr", "ul",
+ };
+
+ noTextParentTags = new HashSet();
+ for (int i=0; i<noTextParentTagArr.length; ++i) {
+ noTextParentTags.add(noTextParentTagArr[i]);
+ }
+ }
+
+ public HtmlRepairer(DocErrorReporter warningReporter,
+ boolean noWarn, boolean noEmailWarn,
+ ClassDoc contextClass, MemberDoc contextMember,
+ boolean throwAwayLeadingPara) {
+ this.warningReporter = warningReporter;
+ this.noWarn = noWarn;
+ this.noEmailWarn = noEmailWarn;
+ this.contextClass = contextClass;
+ this.contextMember = contextMember;
+ this.throwAwayLeadingPara = throwAwayLeadingPara;
+ }
+
+ private static String replaceStr(String haystack, String needle, String replacement) {
+ int ndx=haystack.indexOf(needle);
+ if (ndx<0)
+ return haystack;
+ else
+ return haystack.substring(0, ndx)+replacement
+ + replaceStr(haystack.substring(ndx+needle.length()), needle, replacement);
+ }
+
+ private void haveText(String text) {
+
+ if (isLeadingTag && throwAwayLeadingPara) {
+ if (0 != text.trim().length()) {
+ isLeadingTag = false;
+ }
+ }
+
+ if (tagStack.isEmpty() || !noTextParentTags.contains(tagStack.peek())) {
+
+ text = replaceStr(text, "&lt1", "&lt;1");
+ text = replaceStr(text, "&&", "&amp;&amp;");
+ text = replaceStr(text, "& ", "&amp; ");
+ text = replaceStr(text, "&\t", "&amp;\t");
+ text = replaceStr(text, "&\r", "&amp;\r");
+ text = replaceStr(text, "&\n", "&amp;\n");
+ for (char c='0'; c<='9'; ++c)
+ text = replaceStr(text, "&"+c, "&amp;"+c);
+ text = replaceStr(text, "\u00a7", "&sect;");
+ output.append(text);
+ }
+ else {
+ printWarning("Discarded text in <" + tagStack.peek() + "> element");
+ }
+ }
+
+ private void haveStartOrEndTag(String tag) {
+
+ boolean _isLeadingTag = isLeadingTag;
+ isLeadingTag = false;
+
+ tag = tag.trim();
+
+ boolean isEndTag = tag.startsWith("/");
+ boolean isAtomTag = tag.endsWith("/");
+
+ if (isEndTag && isAtomTag) {
+ // got something like '</a/>' which is invalid.
+ // suppose a close tag was intended.
+ tag = tag.substring(0, tag.length()-1);
+ }
+
+ if (tag.length() < 1) {
+ printWarning("Deleting broken tag");
+ return;
+ }
+
+ String tagName = tag.substring(isEndTag?1:0, isAtomTag?tag.length()-1:tag.length());
+ String tagAttributes = "";
+
+ for (int i=0; i<tagName.length(); ++i) {
+ if (" \t\r\n".indexOf(tagName.charAt(i))>=0) {
+ tagAttributes = tagName.substring(i).trim();
+ tagName = tagName.substring(0, i);
+ break;
+ }
+ }
+
+ if (!isEndTag && tagName.indexOf('@')>0) {
+ if (!noEmailWarn) {
+ printWarning("Tag looks like email address: <"+tagName+">");
+ }
+ output.append("&lt;"+tag+"&gt;");
+ return;
+ }
+
+ tagName = tagName.toLowerCase();
+
+ if (_isLeadingTag && "p".equals(tagName) && !isEndTag && throwAwayLeadingPara) {
+ return;
+ }
+
+ if ("p".equals(tagName) || "br".equals(tagName) || "hr".equals(tagName)) {
+ // throw away </p> and </br>
+ if (isEndTag) {
+ return;
+ }
+ // make sure every <p> is a <p/> and every <br> is a <br/>
+ else if (!isAtomTag) {
+ tag += "/";
+ isAtomTag = true;
+ }
+ }
+
+ if (isEndTag) {
+
+ // check whether this close tag is on the stack
+ // if yes, close all tags up to this tag
+ if (tagStack.contains(tagName)) {
+ String popped;
+ do {
+ popped = (String)tagStack.pop();
+ if (!popped.equals(tagName))
+ printWarning("Inserting '</"+popped+">");
+ output.append("</"+popped+">");
+ }
+ while (!popped.equals(tagName));
+ }
+ // if not, just throw it away
+ else {
+ printWarning("Deleting <"+tag+">");
+ }
+ }
+ else {
+
+ final int STATE_INITIAL = 1;
+ final int STATE_EXPECT_ATTRIBUTENAME = 2;
+ final int STATE_UNQUOTED_ATTRIBUTEVALUE = 3;
+ final int STATE_SINGLEQUOTE_ATTRIBUTEVALUE = 4;
+ final int STATE_DOUBLEQUOTE_ATTRIBUTEVALUE = 5;
+ final int STATE_EXPECT_ATTRIBUTEVALUE = 6;
+ final int STATE_EXPECT_EQUALSIGN = 7;
+
+ int state = STATE_INITIAL;
+
+ String newAttributes = "";
+ String attributeName = null;
+ StringBuffer buf = new StringBuffer();
+
+ char[] attrsAsChars = tagAttributes.toCharArray();
+ for (int i=0, ilim=attrsAsChars.length+1; i<ilim; ++i) {
+ int c;
+ if (i<attrsAsChars.length)
+ c = (int)attrsAsChars[i];
+ else
+ c = -1;
+
+ switch (state) {
+
+ case STATE_INITIAL:
+ if (" \t\r\n".indexOf(c)>=0){
+ continue;
+ }
+ else if (-1==c) {
+ continue;
+ }
+ else {
+ state = STATE_EXPECT_ATTRIBUTENAME;
+ buf.append((char)c);
+ }
+ break;
+
+ case STATE_EXPECT_ATTRIBUTENAME:
+ if ('='==c) {
+ attributeName = buf.toString();
+ buf.setLength(0);
+ state = STATE_EXPECT_ATTRIBUTEVALUE;
+ }
+ else if (-1==c) {
+ attributeName = buf.toString();
+ buf.setLength(0);
+ printWarning("In Tag '"+tag+"':\nAttribute name without a value, inserting value =\""+attributeName+"\"");
+ }
+ else if (" \t\r\n".indexOf(c)>=0) {
+ state = STATE_EXPECT_EQUALSIGN;
+ }
+ else {
+ buf.append((char)c);
+ }
+ break;
+
+ case STATE_EXPECT_EQUALSIGN:
+ if (" \t\r\n".indexOf(c)>=0){
+ continue;
+ }
+ else if ('='==c) {
+ state = STATE_EXPECT_ATTRIBUTEVALUE;
+ attributeName = buf.toString();
+ buf.setLength(0);
+ }
+ else {
+ attributeName = buf.toString();
+ buf.setLength(0);
+ printWarning("In Tag '"+tag+"':\nAttribute name without a value, inserting value =\""+attributeName+"\"");
+ newAttributes += " "+attributeName+"=\""+attributeName+"\"";
+ buf.append((char)c);
+ state = STATE_EXPECT_ATTRIBUTENAME;
+ }
+ break;
+
+ case STATE_EXPECT_ATTRIBUTEVALUE:
+ if (" \t\r\n".indexOf(c)>=0){
+ continue;
+ }
+ else if ('\"'==c) {
+ state = STATE_DOUBLEQUOTE_ATTRIBUTEVALUE;
+ }
+ else if ('\''==c) {
+ state = STATE_SINGLEQUOTE_ATTRIBUTEVALUE;
+ }
+ else {
+ state = STATE_UNQUOTED_ATTRIBUTEVALUE;
+ buf.append((char)c);
+ }
+ break;
+
+ case STATE_UNQUOTED_ATTRIBUTEVALUE:
+ if (-1==c || " \t\r\n".indexOf(c)>=0){
+ state = STATE_INITIAL;
+ newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
+ buf.setLength(0);
+ }
+ else {
+ buf.append((char)c);
+ }
+ break;
+
+ case STATE_SINGLEQUOTE_ATTRIBUTEVALUE:
+ if ('\''==c) {
+ state = STATE_INITIAL;
+ newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
+ buf.setLength(0);
+ }
+ else {
+ buf.append((char)c);
+ }
+ break;
+
+ case STATE_DOUBLEQUOTE_ATTRIBUTEVALUE:
+ if ('\"'==c) {
+ state = STATE_INITIAL;
+ newAttributes += " "+attributeName + "=\"" + buf.toString() + "\"";
+ buf.setLength(0);
+ }
+ else {
+ buf.append((char)c);
+ }
+ break;
+ }
+ }
+
+
+ if (!isAtomTag) {
+
+ // check whether this open tag is equal to the topmost
+ // entry on the stack; if yes, emit a close tag first
+
+ // corrects stuff like '<tr><td>...<td>...');
+ if (!tagStack.isEmpty() && tagStack.peek().equals(tagName)) {
+ printWarning("Inserting </"+tagName+">");
+ output.append("</"+tagName+">");
+ tagStack.pop();
+ }
+ else {
+ processKnownChildTags(tagName, tagStack, output);
+ }
+
+ // otherwise, we assume there are no close tags required
+ // before this open tag.
+ tagStack.push(tagName);
+
+ output.append("<"+tagName+newAttributes+">");
+ }
+ else {
+ output.append("<"+tagName+newAttributes+"/>");
+ }
+ }
+ }
+
+ private boolean processKnownChildTags(String tagName, Stack tagStack, StringBuffer output) {
+
+ TagInfo tagInfo = (TagInfo)tagInfoMap.get(tagName);
+ if (null != tagInfo) {
+
+ String parentTag = null;
+ for (Enumeration en = tagStack.elements(); en.hasMoreElements(); ) {
+ String tag = (String)en.nextElement();
+ if (tagInfo.isLegalParentTag(tag)) {
+ parentTag = tag;
+ break;
+ }
+ }
+ if (parentTag != null) {
+ while (((String)tagStack.peek()) != parentTag) {
+ String poppedTagName = (String)tagStack.pop();
+ output.append("</"+poppedTagName+">");
+ printWarning("Inserting </"+poppedTagName+">");
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private void flush() {
+
+ // close all pending tags
+ while (!tagStack.isEmpty()) {
+ String tagName = (String)tagStack.pop();
+ printWarning("Inserting </"+tagName+">");
+ output.append("</"+tagName+">");
+ }
+ }
+
+ /**
+ * Takes HTML fragment and returns a well-formed XHTML
+ * equivalent.
+ *
+ * In the returned String, all tags are properly closed and
+ * nested.
+ *
+ * Currently, the returned String is not guaranteed to be
+ * well-formed. In particular there are no checks on the tag
+ * names, attribute names and entity names.
+ */
+ public String getWellformedHTML(String text) {
+
+ final int STATE_INITIAL = 1;
+ final int STATE_TAG_START = 2;
+ final int STATE_TAG = 3;
+ final int STATE_TAG_DOUBLEQUOTE = 4;
+ final int STATE_TAG_SINGLEQUOTE = 5;
+ final int STATE_AMP = 6;
+
+ int state = STATE_INITIAL;
+ output.setLength(0);
+
+
+ StringBuffer buf = new StringBuffer();
+ char[] textAsChars = text.toCharArray();
+
+ outer_loop:
+ for (int i=0, ilim=textAsChars.length+1; i<ilim; ++i) {
+ int c;
+
+ if (i<textAsChars.length) {
+ c = textAsChars[i];
+ }
+ else {
+ c = -1;
+ }
+
+ switch (state) {
+
+ case STATE_INITIAL:
+ if ('<'==c) {
+ state = STATE_TAG_START;
+ if (buf.length()>0) {
+ haveText(buf.toString());
+ buf.setLength(0);
+ }
+ }
+ else if ('>'==c) {
+ // assume this is a greater-than sign
+ buf.append("&gt;");
+ }
+ else if ('&'==c) {
+ state = STATE_AMP;
+ }
+ else if (-1==c) {
+ if (buf.length()>0) {
+ haveText(buf.toString());
+ buf.setLength(0);
+ }
+ continue;
+ }
+ else {
+ buf.append((char)c);
+ }
+ break;
+
+ case STATE_AMP:
+ if ('<'==c) {
+ buf.append("&amp;");
+ state = STATE_TAG_START;
+ if (buf.length()>0) {
+ haveText(buf.toString());
+ buf.setLength(0);
+ }
+ }
+ else if ('>'==c) {
+ // assume this is a greater-than sign
+ buf.append("&amp;");
+ buf.append("&gt;");
+ state = STATE_INITIAL;
+ }
+ else if ('&'==c) {
+ buf.append("&amp;");
+ buf.append("&amp;");
+ state = STATE_INITIAL;
+ }
+ else if (-1==c) {
+ buf.append("&amp;");
+ haveText(buf.toString());
+ buf.setLength(0);
+ state = STATE_INITIAL;
+ continue;
+ }
+ else {
+ // peek forward and see whether this is a valid entity.
+ if ('#'==c) {
+ buf.append("&");
+ buf.append((char)c);
+ state = STATE_INITIAL;
+ continue outer_loop;
+ }
+ else if (Character.isLetter((char)c)) {
+ for (int i2=i+1; i2<ilim-1; i2++) {
+ if (';' == textAsChars[i2]) {
+ buf.append("&");
+ buf.append((char)c);
+ state = STATE_INITIAL;
+ continue outer_loop;
+ }
+ else if (!Character.isLetter((char)c)
+ && !Character.isDigit((char)c)
+ && ".-_:".indexOf((char)c) < 0
+ //&& !isCombiningChar(c) // FIXME
+ //&& !isExtender(c) // FIXME
+ ) {
+ break;
+ }
+ }
+ // not a valid entity declaration; assume &amp;
+ }
+ buf.append("&amp;");
+ buf.append((char)c);
+ state = STATE_INITIAL;
+ }
+
+ /*
+ else if ('#'==c || Character.isLetter((char)c)) {
+ buf.append("&");
+ buf.append((char)c);
+ state = STATE_INITIAL;
+ }
+ else {
+ buf.append("&amp;");
+ buf.append((char)c);
+ state = STATE_INITIAL;
+ }
+ */
+ break;
+
+ case STATE_TAG_START:
+ if (" \t\r\n".indexOf(c)>=0) {
+ //continue;
+
+ // new: assume this is a less-sign
+ haveText("&lt;"+c);
+ state = STATE_INITIAL;
+ }
+ else if ('/'==c) {
+ buf.append((char)c);
+ state = STATE_TAG;
+ }
+ else if ('<'==c) {
+ // assume this is a less-sign
+ haveText("&lt;&lt;");
+ state = STATE_INITIAL;
+ }
+ else if ('>'==c) {
+ // assume this is a less-sign
+ haveText("&lt;&gt;");
+ state = STATE_INITIAL;
+ }
+ //else if ('-'==c || '+'==c || '='==c || '\''==c || "0123456789".indexOf(c)>=0) {
+ else if (!Character.isLetter((char)c)) {
+ // assume this is a less-sign
+ haveText("&lt;"+(char)c);
+ state = STATE_INITIAL;
+ }
+ else {
+ buf.append((char)c);
+ state = STATE_TAG;
+ }
+ break;
+
+ case STATE_TAG:
+ if ('\"'==c) {
+ buf.append((char)c);
+ state = STATE_TAG_DOUBLEQUOTE;
+ }
+ else if ('\''==c) {
+ buf.append((char)c);
+ state = STATE_TAG_SINGLEQUOTE;
+ }
+ else if ('>'==c) {
+ state = STATE_INITIAL;
+ haveStartOrEndTag(buf.toString());
+ buf.setLength(0);
+ }
+ else if ('<'==c) {
+ // notify user, missing greater-than sign
+ haveStartOrEndTag(buf.toString());
+ buf.setLength(0);
+ }
+ else if (-1==c) {
+ printWarning("Unclosed tag at end-of-comment: <"+buf);
+ haveStartOrEndTag(buf.toString());
+ buf.setLength(0);
+ }
+ else {
+ buf.append((char)c);
+ }
+ break;
+
+ case STATE_TAG_DOUBLEQUOTE:
+ if ('\"'==c) {
+ buf.append((char)c);
+ state = STATE_TAG;
+ }
+ else if (-1==c) {
+ printWarning("Unclosed attribute value at end-of-comment.");
+ haveStartOrEndTag(buf.toString()+"\"");
+ }
+ else {
+ buf.append((char)c);
+ }
+ break;
+
+ case STATE_TAG_SINGLEQUOTE:
+ if ('\''==c) {
+ buf.append((char)c);
+ state = STATE_TAG;
+ }
+ else if (-1==c) {
+ printWarning("Unclosed attribute value at end-of-comment.");
+ haveStartOrEndTag(buf.toString()+"'");
+ }
+ else {
+ buf.append((char)c);
+ }
+ break;
+ }
+ }
+
+ return output.toString();
+ }
+
+ private String getContext() {
+ if (null != contextClass) {
+ StringBuffer rc = new StringBuffer();
+ rc.append(contextClass.qualifiedTypeName());
+ if (null != contextMember) {
+ rc.append("."+contextMember.toString());
+ }
+ return rc.toString();
+ }
+ else {
+ return null;
+ }
+ }
+
+ private void printWarning(String msg) {
+ if (null != warningReporter && !noWarn) {
+ String context = getContext();
+ if (null != context) {
+ warningReporter.printWarning("In "+getContext()+": "+msg);
+ }
+ else {
+ warningReporter.printWarning("In overview page: "+msg);
+ }
+ }
+ }
+
+ public String terminateText() {
+ output.setLength(0);
+ flush();
+ return output.toString();
+ }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java
new file mode 100644
index 0000000..72dd9f6
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/TargetContext.java
@@ -0,0 +1,86 @@
+/* gnu.classpath.tools.doclets.xmldoclet.TargetContext
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet;
+
+import java.io.File;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+
+import java.net.URL;
+
+import java.util.List;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.HashMap;
+
+import gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet;
+
+/**
+ * Stores any XSL transformation and postprocessing-specific
+ * information given by the user on the doclet command line.
+ *
+ * @author Julian Scheid
+ */
+public class TargetContext {
+
+ /**
+ * The DocTranslet to use for processing doclet output.
+ */
+ private DocTranslet docTranslet;
+
+ /**
+ * Directory to write final output to.
+ */
+ private File targetDirectory;
+
+ /**
+ * Directory where XSLT output will be written to. If an XSLT
+ * sheet was specified, but no postprocessing driver was given,
+ * this is the target directory specified by the user. Otherwise,
+ * this is a temporary directory.
+ */
+ private File xsltTargetDirectory;
+
+
+ public TargetContext(DocTranslet docTranslet, File targetDirectory) {
+ this.docTranslet = docTranslet;
+ this.targetDirectory = targetDirectory;
+ }
+
+ public File getTargetDirectory() {
+ return targetDirectory;
+ }
+
+ public void setTargetDirectory(File targetDirectory) {
+ this.targetDirectory = targetDirectory;
+ }
+
+ public DocTranslet getDocTranslet() {
+ return docTranslet;
+ }
+
+ public void setDocTranslet(DocTranslet docTranslet) {
+ this.docTranslet = docTranslet;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java
new file mode 100644
index 0000000..573ca36
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTranslet.java
@@ -0,0 +1,443 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTranslet
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.InputStream;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.io.PrintStream;
+
+import java.net.MalformedURLException;
+import java.net.URL;
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.HashMap;
+import java.util.Map;
+
+import java.util.jar.JarFile;
+import java.util.jar.Manifest;
+import java.util.jar.Attributes;
+
+import javax.xml.transform.ErrorListener;
+import javax.xml.transform.Source;
+import javax.xml.transform.Transformer;
+import javax.xml.transform.TransformerException;
+import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.TransformerFactoryConfigurationError;
+import javax.xml.transform.URIResolver;
+
+import javax.xml.transform.dom.DOMResult;
+
+import javax.xml.transform.stream.StreamResult;
+import javax.xml.transform.stream.StreamSource;
+
+import javax.xml.parsers.DocumentBuilderFactory;
+import javax.xml.parsers.DocumentBuilder;
+import javax.xml.parsers.ParserConfigurationException;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+import org.w3c.dom.NodeList;
+
+import org.xml.sax.SAXException;
+
+import gnu.classpath.tools.IOToolkit;
+import gnu.classpath.tools.doclets.xmldoclet.Driver;
+
+import com.sun.javadoc.DocErrorReporter;
+
+public class DocTranslet implements ErrorListener {
+
+ private static class DocErrorReporterOutputStream
+ extends OutputStream
+ {
+ private ByteArrayOutputStream out = new ByteArrayOutputStream();
+ private DocErrorReporter reporter;
+
+ public DocErrorReporterOutputStream(DocErrorReporter reporter) {
+ this.reporter = reporter;
+ }
+
+ public void write(int ch) {
+ out.write(ch);
+ if (ch == 10) {
+ reporter.printNotice(out.toString());
+ out.reset();
+ }
+ }
+ }
+
+ private String mainResourceFilename;
+ private ClassLoader classLoader;
+ private Map transformerMap = new java.util.HashMap(); //WeakHashMap();
+ private DocTransletOptions options;
+
+ protected DocTranslet(String mainResourceFilename,
+ ClassLoader classLoader)
+ throws DocTransletConfigurationException {
+
+ if (mainResourceFilename.length() > 0 && mainResourceFilename.charAt(0) == '/') {
+ mainResourceFilename = mainResourceFilename.substring(1);
+ }
+ this.mainResourceFilename = mainResourceFilename;
+ this.classLoader = classLoader;
+ }
+
+ private static boolean equalsFile(File file1, File file2) {
+ return file1.getAbsolutePath().equals(file2.getAbsolutePath());
+ }
+
+ private static File getParentFile(File file) {
+ String filename = file.getAbsolutePath();
+ if (filename.endsWith(File.separator)) {
+ filename = filename.substring(0, filename.length() - 1);
+ }
+ int lastSlash = filename.lastIndexOf(File.separatorChar);
+ if (lastSlash > 0) {
+ filename = filename.substring(0, lastSlash);
+ }
+ else {
+ filename = File.separator;
+ }
+
+ return new File(filename);
+ }
+
+ private static boolean cacheXSLTSheets = true;
+
+ public void apply(File xmlSourceDirectory, File targetDirectory,
+ DocErrorReporter reporter)
+ throws DocTransletException {
+
+ PrintStream err = System.err;
+
+ try{
+ URL mainResourceURL = classLoader == null ?
+ ClassLoader.getSystemResource(mainResourceFilename):
+ classLoader.getResource(mainResourceFilename);
+
+ if (null == mainResourceURL) {
+ throw new DocTransletException("Cannot find resource '" + mainResourceFilename + "'");
+ }
+
+
+ Map parameters = new HashMap();
+ parameters.put("gjdoc.xmldoclet.version", Driver.XMLDOCLET_VERSION);
+
+ parameters.put("gjdoc.option.nonavbar", xsltBoolean(options.nonavbar));
+ parameters.put("gjdoc.option.noindex", xsltBoolean(options.noindex));
+ parameters.put("gjdoc.option.notree", xsltBoolean(options.notree));
+ parameters.put("gjdoc.option.nocomment", xsltBoolean(options.nocomment));
+ parameters.put("gjdoc.option.nohelp", xsltBoolean(options.nohelp));
+ parameters.put("gjdoc.option.splitindex", xsltBoolean(options.splitindex));
+ parameters.put("gjdoc.option.linksource", xsltBoolean(options.linksource));
+ parameters.put("gjdoc.option.nodeprecatedlist", xsltBoolean(options.nodeprecatedlist));
+ parameters.put("gjdoc.option.uses", xsltBoolean(options.uses));
+ parameters.put("gjdoc.option.windowtitle", options.windowtitle);
+ parameters.put("gjdoc.option.helpfile", options.helpfile);
+ parameters.put("gjdoc.option.stylesheetfile", options.stylesheetfile);
+ parameters.put("gjdoc.option.header", options.header);
+ parameters.put("gjdoc.option.footer", options.footer);
+ parameters.put("gjdoc.option.bottom", options.bottom);
+ parameters.put("gjdoc.option.doctitle", options.doctitle);
+
+ List outputFileList = getOutputFileList(mainResourceURL,
+ xmlSourceDirectory,
+ parameters);
+
+ reporter.printNotice("Running DocTranslet...");
+
+ TransformerFactory transformerFactory
+ = TransformerFactory.newInstance();
+
+ transformerFactory.setErrorListener(this);
+
+ boolean isLibxmlJ
+ = transformerFactory.getClass().getName().equals("gnu.xml.libxmlj.transform.TransformerFactoryImpl");
+
+ for (Iterator it = outputFileList.iterator(); it.hasNext(); ) {
+
+ if (isLibxmlJ) {
+ System.gc();
+ Runtime.getRuntime().runFinalization();
+ }
+
+ OutputFileInfo fileInfo = (OutputFileInfo)it.next();
+
+ File targetFile = new File(targetDirectory, fileInfo.getName());
+ File packageTargetDir = getParentFile(targetFile);
+
+ if (!packageTargetDir.exists() && !packageTargetDir.mkdirs()) {
+ throw new DocTransletException("Target directory " + packageTargetDir + " does not exist and cannot be created.");
+ }
+
+ if (options.linksource) {
+ File sourceTargetDirectory = new File(targetDirectory, "src-html");
+ File sourceTargetFile = new File(sourceTargetDirectory, fileInfo.getName());
+ File sourcePackageTargetDir = getParentFile(sourceTargetFile);
+
+ if (!sourcePackageTargetDir.exists() && !sourcePackageTargetDir.mkdirs()) {
+ throw new DocTransletException("Target directory " + packageTargetDir + " does not exist and cannot be created.");
+ }
+ }
+
+ if (options.uses) {
+ File usesTargetDirectory = new File(targetDirectory, "class-use");
+ File usesTargetFile = new File(usesTargetDirectory, fileInfo.getName());
+ File usesPackageTargetDir = getParentFile(usesTargetFile);
+
+ if (!usesPackageTargetDir.exists() && !usesPackageTargetDir.mkdirs()) {
+ throw new DocTransletException("Target directory " + packageTargetDir + " does not exist and cannot be created.");
+ }
+ }
+
+ if (null != fileInfo.getSource()) {
+
+ reporter.printNotice("Copying " + fileInfo.getComment() + "...");
+ InputStream in = new URL(mainResourceURL, fileInfo.getSource()).openStream();
+ FileOutputStream out = new FileOutputStream(targetFile.getAbsolutePath());
+ IOToolkit.copyStream(in, out);
+ in.close();
+ out.close();
+ }
+ else {
+
+ reporter.printNotice("Generating " + fileInfo.getComment() + "...");
+
+ String pathToRoot = "";
+ for (File file = getParentFile(targetFile); !equalsFile(file, targetDirectory); file = getParentFile(file)) {
+ pathToRoot += "../";
+ }
+
+ StreamResult out = new StreamResult(targetFile.getAbsolutePath());
+
+ StreamSource in = new StreamSource(new File(xmlSourceDirectory, "index.xml").getAbsolutePath());
+ URL resource = new URL(mainResourceURL, fileInfo.getSheet());
+
+
+ StreamSource xsltSource = new StreamSource(resource.toExternalForm());
+
+ if (null != fileInfo.getInfo()) {
+ parameters.put("gjdoc.outputfile.info", fileInfo.getInfo());
+ }
+ parameters.put("gjdoc.pathtoroot", pathToRoot);
+
+ Transformer transformer;
+ transformer = (Transformer)transformerMap.get(xsltSource.getSystemId());
+ if (null == transformer) {
+ transformer = transformerFactory.newTransformer(xsltSource);
+ if (cacheXSLTSheets) {
+ transformerMap.put(xsltSource.getSystemId(), transformer);
+ }
+ }
+
+ transformer.clearParameters();
+ for (Iterator pit = parameters.keySet().iterator(); pit.hasNext(); ) {
+ String key = (String)pit.next();
+ String value = (String)parameters.get(key);
+ transformer.setParameter(key, value);
+ }
+
+ transformer.setErrorListener(this);
+ DocErrorReporterOutputStream errorReporterOut
+ = new DocErrorReporterOutputStream(reporter);
+ System.setErr(new PrintStream(errorReporterOut));
+
+ transformer.transform(in, out);
+ errorReporterOut.flush();
+ }
+ }
+ }
+ catch (MalformedURLException e) {
+ throw new DocTransletException(e);
+ }
+ catch (TransformerFactoryConfigurationError e) {
+ throw new DocTransletException(e);
+ }
+ catch (TransformerException e) {
+ throw new DocTransletException(e.getMessageAndLocation(), e);
+ }
+ catch (IOException e) {
+ throw new DocTransletException(e);
+ }
+ finally {
+ System.setErr(err);
+ }
+ }
+
+ private List getOutputFileList(URL resource, File xmlSourceDirectory, Map parameters)
+ throws DocTransletException {
+
+ try {
+ List result;
+
+ OutputStream out = new ByteArrayOutputStream();
+
+ DocumentBuilderFactory documentBuilderFactory = DocumentBuilderFactory.newInstance();
+ DocumentBuilder documentBuilder = documentBuilderFactory.newDocumentBuilder();
+ Document document = documentBuilder.newDocument();
+ DOMResult domResult = new DOMResult(document);
+ {
+ StreamSource source = new StreamSource(resource.toExternalForm());
+
+ TransformerFactory transformerFactory = TransformerFactory.newInstance();
+ Transformer transformer = (Transformer)transformerFactory.newTransformer(source);
+
+ transformer.clearParameters();
+ for (Iterator pit = parameters.keySet().iterator(); pit.hasNext(); ) {
+ String key = (String)pit.next();
+ String value = (String)parameters.get(key);
+ transformer.setParameter(key, value);
+ }
+
+ transformer.transform(new StreamSource(new File(xmlSourceDirectory,
+ "index.xml").getAbsolutePath()),
+ domResult);
+ }
+
+ {
+ NodeList nodeList = document.getElementsByTagName("outputfile");
+ result = new ArrayList(nodeList.getLength());
+
+ for (int i=0; i<nodeList.getLength(); ++i) {
+ Element elem = (Element)nodeList.item(i);
+ String name = getTextContent(elem.getElementsByTagName("name").item(0));
+ String source
+ = (null != elem.getElementsByTagName("source").item(0))
+ ? getTextContent(elem.getElementsByTagName("source").item(0))
+ : null;
+ String sheet
+ = (null != elem.getElementsByTagName("sheet").item(0))
+ ? getTextContent(elem.getElementsByTagName("sheet").item(0))
+ : null;
+ String comment = getTextContent(elem.getElementsByTagName("comment").item(0));
+ String info = null;
+ if (elem.getElementsByTagName("info").getLength() > 0) {
+ if (null != elem.getElementsByTagName("info").item(0).getFirstChild()) {
+ info = getTextContent(elem.getElementsByTagName("info").item(0));
+ }
+ else {
+ info = "";
+ }
+ }
+ result.add(new OutputFileInfo(name, source, sheet, comment, info));
+ }
+ }
+ return result;
+ }
+ catch (TransformerFactoryConfigurationError e) {
+ throw new DocTransletException(e);
+ }
+ catch (TransformerException e) {
+ throw new DocTransletException(e.getMessageAndLocation(), e);
+ }
+ catch (ParserConfigurationException e) {
+ throw new DocTransletException(e);
+ }
+ }
+
+ private String getTextContent(Node elem)
+ {
+ StringBuffer result = new StringBuffer();
+ NodeList children = elem.getChildNodes();
+ for (int i=0; i<children.getLength(); ++i) {
+ Node item = children.item(i);
+ if (null != item) {
+ String value = item.getNodeValue();
+ if (null != value) {
+ result.append(value);
+ }
+ }
+ }
+ return result.toString();
+ }
+
+ public void setOptions(DocTransletOptions options) {
+ this.options = options;
+ }
+
+
+ public static DocTranslet fromClasspath(String resourceName)
+ throws DocTransletConfigurationException {
+
+ return new DocTranslet(resourceName,
+ DocTranslet.class.getClassLoader());
+ }
+
+ public static DocTranslet fromJarFile(File jarFile)
+ throws DocTransletConfigurationException {
+
+ try {
+ JarFile inputJarFile = new JarFile(jarFile, false, JarFile.OPEN_READ);
+
+ Manifest manifest = inputJarFile.getManifest();
+
+ if (null == manifest) {
+
+ throw new DocTransletConfigurationException("Jar file '" + jarFile + "' doesn't contain a manifest.");
+ }
+
+ Attributes mainAttributes = manifest.getMainAttributes();
+
+ String docTransletMainEntry = mainAttributes.getValue("doctranslet-main-entry");
+
+ if (null == docTransletMainEntry) {
+
+ throw new DocTransletConfigurationException("Manifest in Jar file '" + jarFile + "' doesn't contain a doctranslet-main-entry specification.");
+ }
+
+ return new DocTranslet(docTransletMainEntry,
+ new JarClassLoader(inputJarFile));
+ }
+ catch (IOException e) {
+ throw new DocTransletConfigurationException(e);
+ }
+ }
+
+ private static String xsltBoolean(boolean b) {
+ return b ? "1" : "";
+ }
+
+ public void error (TransformerException exception)
+ throws TransformerException {
+
+ throw exception;
+ }
+
+ public void fatalError (TransformerException exception)
+ throws TransformerException {
+
+ throw exception;
+ }
+
+ public void warning (TransformerException exception)
+ throws TransformerException {
+
+ System.err.println("WWW: " + exception.getMessage());
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java
new file mode 100644
index 0000000..b25d77e
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletConfigurationException.java
@@ -0,0 +1,36 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletConfigurationException
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+public class DocTransletConfigurationException extends Exception {
+
+ public DocTransletConfigurationException(String msg) {
+ super(msg);
+ }
+
+ public DocTransletConfigurationException(String msg, Throwable cause) {
+ super(msg, cause);
+ }
+
+ public DocTransletConfigurationException(Throwable cause) {
+ super(cause);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java
new file mode 100644
index 0000000..e672c62
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletException.java
@@ -0,0 +1,46 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletException
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+public class DocTransletException extends Exception {
+
+ public DocTransletException(String msg) {
+ super(msg);
+ }
+
+ private void initCauseDynamic(Throwable cause)
+ {
+ try {
+ getClass().getMethod("initCause", new Class[]{Throwable.class}).invoke(this, new Object[] { cause });
+ }
+ catch (Exception ignore) {
+ }
+ }
+
+ public DocTransletException(String msg, Throwable cause) {
+ super(msg);
+ initCauseDynamic(cause);
+ }
+
+ public DocTransletException(Throwable cause) {
+ initCauseDynamic(cause);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java
new file mode 100644
index 0000000..0c68130
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/DocTransletOptions.java
@@ -0,0 +1,45 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.DocTransletOptions
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+/**
+ * Value class for carrying command line options which need to be
+ * passed through to the stylesheets.
+ */
+public class DocTransletOptions
+{
+ public boolean nonavbar;
+ public boolean noindex;
+ public boolean notree;
+ public boolean nocomment;
+ public boolean nohelp;
+ public boolean splitindex;
+ public boolean linksource;
+ public boolean nodeprecatedlist;
+ public boolean uses;
+ public String windowtitle = "";
+ public String helpfile = "";
+ public String stylesheetfile = "";
+ public String header = "";
+ public String footer = "";
+ public String bottom = "";
+ public String doctitle = "";
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java
new file mode 100644
index 0000000..50a9681
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/JarClassLoader.java
@@ -0,0 +1,74 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.JarClassLoader
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
+
+import java.util.jar.JarFile;
+import java.util.jar.JarEntry;
+
+public class JarClassLoader extends ClassLoader {
+
+ private JarFile jarFile;
+
+ public JarClassLoader(JarFile jarFile) {
+ this.jarFile = jarFile;
+ }
+
+ public Class findClass(String name)
+ throws ClassNotFoundException {
+
+ byte[] b = loadClassData(name);
+ return defineClass(name, b, 0, b.length);
+ }
+
+ private byte[] loadClassData(String className)
+ throws ClassNotFoundException
+ {
+ String classFileName = className.replace('.', File.separatorChar) + ".class";
+
+ try {
+ JarEntry jarEntry = jarFile.getJarEntry(classFileName);
+ if (null != jarEntry) {
+ return readFromStream(jarFile.getInputStream(jarEntry),
+ jarEntry.getSize());
+ }
+ }
+ catch (IOException ignore_) {
+ }
+ throw new ClassNotFoundException(className);
+ }
+
+ private byte[] readFromStream(InputStream in, long size)
+ throws IOException
+ {
+ byte[] result = new byte[(int)size];
+ int nread = 0;
+ int offset = 0;
+ while (offset < size && (nread = in.read(result, offset, (int)(size - offset))) >= 0) {
+ offset += nread;
+ }
+ in.close();
+ return result;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java
new file mode 100644
index 0000000..92a1fba2
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/doclets/xmldoclet/doctranslet/OutputFileInfo.java
@@ -0,0 +1,49 @@
+/* gnu.classpath.tools.doclets.xmldoclet.doctranslet.OutputFileInfo
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.doclets.xmldoclet.doctranslet;
+
+/**
+ * Holds information about a file to be generated by the DocTranslet.
+ */
+public class OutputFileInfo {
+
+ private String name;
+ private String source;
+ private String sheet;
+ private String comment;
+ private String info;
+
+ public OutputFileInfo(String name, String source, String sheet, String comment, String info) {
+ this.name = name;
+ this.source = source;
+ this.sheet = sheet;
+ this.comment = comment;
+ this.info = info;
+ }
+
+ public String getName() { return name; }
+ public String getSource() { return source; }
+ public String getSheet() { return sheet; }
+ public String getComment() { return comment; }
+ public String getInfo() { return info; }
+
+ public String toString() { return "OutputFileInfo{name="+name+",source="+source+",sheet="+sheet+",comment="+comment+",info="+info+"}"; }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java b/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java
index b142836..bb38e82 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/getopt/Parser.java
@@ -1,5 +1,5 @@
/* Parser.java - parse command line options
- Copyright (C) 2006 Free Software Foundation, Inc.
+ Copyright (C) 2006, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -66,7 +66,9 @@ public class Parser
private boolean longOnly;
- private ArrayList options = new ArrayList();
+ // All of the options. This is null initially; users must call
+ // requireOptions before access.
+ private ArrayList options;
private ArrayList optionGroups = new ArrayList();
@@ -195,7 +197,7 @@ public class Parser
*
* @param headerText the header text
*/
- public void setHeader(String headerText)
+ public synchronized void setHeader(String headerText)
{
this.headerText = headerText;
}
@@ -205,7 +207,7 @@ public class Parser
*
* @param footerText the footer text
*/
- public void setFooter(String footerText)
+ public synchronized void setFooter(String footerText)
{
this.footerText = footerText;
}
@@ -218,7 +220,6 @@ public class Parser
*/
public synchronized void add(Option opt)
{
- options.add(opt);
defaultGroup.add(opt);
}
@@ -230,7 +231,6 @@ public class Parser
*/
protected synchronized void addFinal(Option opt)
{
- options.add(opt);
finalGroup.add(opt);
}
@@ -242,7 +242,6 @@ public class Parser
*/
public synchronized void add(OptionGroup group)
{
- options.addAll(group.options);
// This ensures that the final group always appears at the end
// of the options.
if (optionGroups.isEmpty())
@@ -251,13 +250,29 @@ public class Parser
optionGroups.add(optionGroups.size() - 1, group);
}
+ // Make sure the 'options' field is properly initialized.
+ private void requireOptions()
+ {
+ if (options != null)
+ return;
+ options = new ArrayList();
+ Iterator it = optionGroups.iterator();
+ while (it.hasNext())
+ {
+ OptionGroup group = (OptionGroup) it.next();
+ options.addAll(group.options);
+ }
+ }
+
public void printHelp()
{
this.printHelp(System.out);
}
- void printHelp(PrintStream out)
+ synchronized void printHelp(PrintStream out)
{
+ requireOptions();
+
if (headerText != null)
{
formatText(out, headerText);
@@ -417,6 +432,7 @@ public class Parser
*/
public synchronized void parse(String[] inArgs, FileArgumentCallback files)
{
+ requireOptions();
try
{
args = inArgs;
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java
new file mode 100644
index 0000000..4a638e2
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/AbstractTagImpl.java
@@ -0,0 +1,90 @@
+/* gnu.classpath.tools.gjdoc.AbstractTagImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+
+public abstract class AbstractTagImpl
+ implements Tag, TagContainer {
+
+ private static final Tag[] emptyTags = new Tag[0];
+
+ protected String text;
+ protected Map tagMap;
+
+ protected AbstractTagImpl(String text) {
+ this.text=text;
+ }
+
+ public void resolve() {
+ Tag[] allTags=inlineTags();
+ if (null != allTags) {
+ for (int i=0; i<allTags.length; ++i) {
+ if (allTags[i]!=this) ((AbstractTagImpl)allTags[i]).resolve();
+ }
+ }
+ else {
+ System.err.println("Null tags for " + this);
+ }
+ }
+
+ protected void setBody(String body, ClassDocImpl contextClass, MemberDocImpl contextMember) {
+ this.tagMap=DocImpl.parseCommentTags(body.toCharArray(),
+ 0,
+ body.length(),
+ contextClass,
+ contextMember,
+ this,
+ null);
+ }
+
+ public Tag[] firstSentenceTags() {
+ return (tagMap!=null)? (Tag[])tagMap.get("first") : emptyTags;
+ }
+ public Tag[] inlineTags() {
+ return (tagMap!=null)? (Tag[])tagMap.get("inline") : emptyTags;
+ }
+
+ public String name() {
+ return kind();
+ }
+
+ public String text() {
+ return text;
+ }
+
+ public Map getTagMap() {
+ return tagMap;
+ }
+
+ /**
+ * Debug string containing class, name, text and tagMap.
+ */
+ public String toString()
+ {
+ return (this.getClass().getName()
+ + "[name=" + name()
+ + ", text=" + text()
+ + ", tagMap=" + getTagMap()
+ + "]");
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java
new file mode 100644
index 0000000..8c23e98
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ArrayCharacterIterator.java
@@ -0,0 +1,104 @@
+/* gnu.classpath.tools.gjdoc.ArrayCharacterIterator
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.text.CharacterIterator;
+
+public final class ArrayCharacterIterator implements CharacterIterator {
+
+ private char[] data;
+ private int beginIndex;
+ private int endIndex;
+ private int currentIndex;
+
+ public ArrayCharacterIterator(char[] data,
+ int beginIndex) {
+ this(data,beginIndex,data.length,beginIndex);
+ }
+
+ public ArrayCharacterIterator(char[] data,
+ int beginIndex,
+ int endIndex) {
+ this(data,beginIndex,endIndex,beginIndex);
+ }
+
+ public ArrayCharacterIterator(char[] data,
+ int beginIndex,
+ int endIndex,
+ int currentIndex) {
+ this.data=data;
+ this.beginIndex=beginIndex;
+ this.endIndex=endIndex;
+ this.currentIndex=currentIndex;
+ }
+
+ // Create a copy of this iterator
+ public Object clone() {
+ return new ArrayCharacterIterator(data,beginIndex,endIndex,currentIndex);
+ }
+
+ // Gets the character at the current position (as returned by getIndex()).
+ public char current() {
+ return (currentIndex>=beginIndex && currentIndex<endIndex) ? data[currentIndex] : DONE;
+ }
+
+ // Sets the position to getBeginIndex() and returns the character at that position.
+ public char first() {
+ return data[currentIndex=beginIndex];
+ }
+
+ // Returns the start index of the text.
+ public int getBeginIndex() {
+ return beginIndex;
+ }
+
+ // Returns the end index of the text.
+ public int getEndIndex() {
+ return endIndex;
+ }
+
+ // Returns the current index.
+ public int getIndex() {
+ return currentIndex;
+ }
+
+ // Sets the position to getEndIndex()-1 (getEndIndex() if the text is empty) and returns the character at that position.
+ public char last() {
+ return data[currentIndex=((endIndex>beginIndex)?endIndex-1:endIndex)];
+ }
+
+ // Increments the iterator's index by one and returns the character at the new index.
+ public char next() {
+ return (++currentIndex<endIndex)?data[currentIndex]:DONE;
+ }
+
+ // Decrements the iterator's index by one and returns the character at the new index.
+ public char previous() {
+ return (--currentIndex>=beginIndex)?data[currentIndex]:DONE;
+ }
+
+ // Sets the position to the specified position in the text and returns that character.
+ public char setIndex(int position) {
+ this.currentIndex=position;
+ return current();
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java
new file mode 100644
index 0000000..fee6800
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocImpl.java
@@ -0,0 +1,1244 @@
+/* gnu.classpath.tools.gjdoc.ClassDocImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.io.*;
+import gnu.classpath.tools.gjdoc.expr.EvaluatorEnvironment;
+import gnu.classpath.tools.gjdoc.expr.CircularExpressionException;
+import gnu.classpath.tools.gjdoc.expr.IllegalExpressionException;
+import gnu.classpath.tools.gjdoc.expr.UnknownIdentifierException;
+
+public class ClassDocImpl
+ extends ProgramElementDocImpl
+ implements ClassDoc, WritableType, EvaluatorEnvironment {
+
+ private ClassDoc baseClassDoc;
+ private ClassDoc[] importedClasses;
+ private PackageDoc[] importedPackages;
+ private boolean definesSerializableFields;
+ private FieldDoc[] serialPersistentField;
+ private MethodDoc[] serializationMethods;
+ private String dimension = "";
+
+ public ClassDocImpl(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ int accessLevel,
+ boolean isFinal,
+ boolean isStatic,
+ SourcePosition position) {
+ super(containingClass, containingPackage, accessLevel, isFinal, isStatic,
+ position);
+ this.baseClassDoc = this;
+ }
+
+ public ClassDocImpl(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ ClassDoc[] importedClasses,
+ PackageDoc[] importedPackages,
+ SourcePosition position) {
+ super(containingClass, containingPackage,
+ position);
+ this.importedClasses=importedClasses;
+ this.importedPackages=importedPackages;
+ this.baseClassDoc = this;
+ }
+
+ // Return constructors in class.
+ public ConstructorDoc[] constructors() {
+ return constructors(true);
+ }
+
+ public ConstructorDoc[] constructors(boolean filter) {
+ return filter ? filteredConstructors : unfilteredConstructors;
+ }
+
+ // Return true if Serializable fields are explicitly defined with the special class member serialPersistentFields.
+ public boolean definesSerializableFields() {
+ return definesSerializableFields;
+ }
+
+ // Return fields in class.
+ public FieldDoc[] fields() {
+ return fields(true);
+ }
+
+ public FieldDoc[] fields(boolean filter) {
+ return filter ? filteredFields : unfilteredFields;
+ }
+
+ private static Set primitiveNames;
+ static {
+ primitiveNames = new HashSet();
+ primitiveNames.add("int");
+ primitiveNames.add("long");
+ primitiveNames.add("char");
+ primitiveNames.add("short");
+ primitiveNames.add("byte");
+ primitiveNames.add("float");
+ primitiveNames.add("double");
+ primitiveNames.add("boolean");
+ }
+
+ private Map findClassCache = new HashMap();
+
+ public ClassDoc findClass(String className, String dimension)
+ {
+ ClassDoc cached = (ClassDoc)findClassCache.get(className + dimension);
+ if (null != cached) {
+ return cached;
+ }
+ else {
+ ClassDoc classDoc = findClass(className);
+
+ if (null!=classDoc) {
+ try {
+ if (classDoc.dimension().equals(dimension)) {
+ return classDoc;
+ }
+ else {
+ ClassDoc rc = (ClassDoc) ((WritableType)classDoc).clone();
+ ((WritableType)rc).setDimension(dimension);
+ findClassCache.put(className + dimension, rc);
+ return rc;
+ }
+ }
+ catch (CloneNotSupportedException e) {
+ throw new RuntimeException(e);
+ }
+ }
+ else {
+ return null;
+ }
+ }
+ }
+
+ public ClassDoc findClass(String className)
+ {
+ String qualifiedName = Main.getRootDoc().resolveClassName(className, this);
+ ClassDoc rc=Main.getRootDoc().classNamed(qualifiedName);
+
+ if (null == rc) {
+ for (ClassDoc cdi=this; cdi!=null; cdi=cdi.containingClass()) {
+ for (ClassDoc sdi=cdi; sdi!=null; sdi=sdi.superclass()) {
+ if (sdi instanceof ClassDocProxy) {
+ ClassDoc realClass = Main.getRootDoc().classNamed(sdi.qualifiedName());
+ if (null != realClass) {
+ sdi = realClass;
+ }
+ }
+ rc=Main.getRootDoc().classNamed(sdi.qualifiedName()+"."+className);
+ if (rc!=null) return rc;
+ }
+ }
+ }
+
+ return rc;
+ }
+
+ // Get the list of classes declared as imported.
+ public ClassDoc[] importedClasses() {
+ return importedClasses;
+ }
+
+ // Get the list of packages declared as imported.
+ public PackageDoc[] importedPackages() {
+ return importedPackages;
+ }
+
+ // Return inner classes within this class.
+ public ClassDoc[] innerClasses() {
+ return innerClasses(true);
+ }
+
+ public ClassDoc[] innerClasses(boolean filtered) {
+ return filtered ? filteredInnerClasses : unfilteredInnerClasses;
+ }
+
+ void setFilteredInnerClasses(ClassDoc[] filteredInnerClasses) {
+ this.filteredInnerClasses=filteredInnerClasses;
+ }
+
+ void setInnerClasses(ClassDoc[] unfilteredInnerClasses) {
+ this.unfilteredInnerClasses=unfilteredInnerClasses;
+ }
+
+ // Return interfaces implemented by this class or interfaces extended by this interface.
+ public ClassDoc[] interfaces() {
+ return interfaces;
+ }
+
+ public void setInterfaces(ClassDoc[] interfaces) {
+ this.interfaces=interfaces;
+ }
+
+ // Return true if this class is abstract
+ public boolean isAbstract() {
+ return isAbstract || isInterface();
+ }
+
+ public boolean isInterface() {
+ return isInterface;
+ }
+
+ public boolean isAnnotation() {
+ return isAnnotation;
+ }
+
+ public boolean isEnum()
+ {
+ return isEnum;
+ }
+
+ // Return true if this class is abstract
+ public void setIsAbstract(boolean b) {
+ this.isAbstract=b;
+ }
+
+ // Return true if this class implements java.io.Externalizable.
+ public boolean isExternalizable() {
+ return implementsInterface("java.io.Externalizable");
+ }
+
+ // Return true if this class implements java.io.Serializable.
+ public boolean isSerializable() {
+ return implementsInterface("java.io.Serializable");
+ }
+
+ public boolean implementsInterface(String name) {
+ for (ClassDoc cdi=this; cdi!=null; cdi=(ClassDoc)cdi.superclass()) {
+ if (cdi instanceof ClassDocImpl) {
+ ClassDoc[] cdiInterfaces=(ClassDoc[])cdi.interfaces();
+ if (null != cdiInterfaces) {
+ for (int i=0; i<cdiInterfaces.length; ++i) {
+ if (cdiInterfaces[i].qualifiedName().equals(name))
+ return true;
+ }
+ }
+ }
+ else {
+ //throw new RuntimeException("implementsInterface(\""+name+"\") failed: Not a ClassDocImpl:"+cdi);
+ }
+ }
+ return false;
+ }
+
+ // Return methods in class.
+ public MethodDoc[] methods() {
+ return methods(true);
+ }
+
+ // Return methods in class.
+ public MethodDoc[] methods(boolean filter) {
+ return filter ? filteredMethods : unfilteredMethods;
+ }
+
+ // Return the Serializable fields of class. Return either a list of default fields documented by serial tag or return a single FieldDoc for serialPersistentField member.
+ public FieldDoc[] serializableFields() {
+ if (serialPersistentField!=null) {
+ return serialPersistentField;
+ }
+ else{
+ return serializableFields;
+ }
+ }
+
+ // Return the serialization methods for this class.
+ public MethodDoc[] serializationMethods() {
+ return serializationMethods;
+ }
+
+ // Test whether this class is a subclass of the specified class.
+ public boolean subclassOf(ClassDoc cd) {
+ for (ClassDocImpl cdi=(ClassDocImpl)superclass(); cdi!=null; cdi=(ClassDocImpl)cdi.superclass()) {
+ if (cdi.equals(cd))
+ return true;
+ }
+ return false;
+ }
+
+ // Return the superclass of this class
+ public ClassDoc superclass() {
+ return superclass;
+ }
+
+ // Implementation of Interface Type
+
+ public ClassDoc asClassDoc() {
+
+ return (ClassDoc)this;
+ }
+
+ public String typeName() { return name(); }
+
+ public String qualifiedTypeName() {
+ return (containingPackage()!=null && !containingPackage().equals(PackageDocImpl.DEFAULT_PACKAGE))?(containingPackage().name()+"."+name()):(name());
+ }
+
+ public String qualifiedName() { return qualifiedTypeName(); }
+
+ public String dimension() { return dimension; }
+
+ public String toString() { return "ClassDoc{"+qualifiedTypeName()+"}"; }
+
+ public TypeVariable asTypeVariable() { return null; }
+
+ public static ClassDocImpl createInstance(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ ClassDoc[] importedClasses,
+ PackageDoc[] importedPackages,
+ char[] source, int startIndex, int endIndex,
+ List importStatementList) throws ParseException, IOException {
+
+ String superclassName = "java.lang.Object";
+
+ ClassDocImpl rc=new ClassDocImpl(containingClass,
+ containingPackage,
+ importedClasses,
+ importedPackages,
+ null);
+ rc.setImportStatementList(importStatementList);
+ List implementedInterfaces = new ArrayList();
+
+ String word="";
+ int item=0;
+
+ final int STATE_NORMAL = 1;
+ final int STATE_SLASHC = 2;
+ final int STATE_STARC = 3;
+ final int STATE_ANNO = 4;
+
+ int state=STATE_NORMAL;
+ int varLevel=0;
+ int parLevel=0;
+ char prev=0;
+ for (int ndx=startIndex; ndx<=endIndex; ++ndx) {
+ char c=(ndx==endIndex)?10:source[ndx];
+ boolean processWord=false;
+ if (state==STATE_SLASHC) {
+ if (c=='\n') {
+ state=STATE_NORMAL;
+ c=0;
+ }
+ }
+ else if (state==STATE_STARC) {
+ if (c=='/' && prev=='*') {
+ state=STATE_NORMAL;
+ c=0;
+ }
+ }
+ else {
+ if (c=='/' && prev=='/') {
+ state=STATE_SLASHC;
+ c=0;
+ word=word.substring(0,word.length()-1);
+ processWord=true;
+ }
+ else if (c=='*' && prev=='/') {
+ state=STATE_STARC;
+ c=0;
+ word=word.substring(0,word.length()-1);
+ processWord=true;
+ }
+ else if (c=='@') {
+ state=STATE_ANNO;
+ word += c;
+ }
+ else if (c=='(' && state==STATE_ANNO) {
+ ++parLevel;
+ word += c;
+ }
+ else if (c==')' && state==STATE_ANNO) {
+ --parLevel;
+ word += c;
+ if (parLevel == 0)
+ state=STATE_NORMAL;
+ }
+ else if (c=='<')
+ {
+ ++varLevel;
+ word += c;
+ }
+ else if (c=='>')
+ {
+ --varLevel;
+ word += c;
+ }
+ else if (c=='{' && parLevel == 0 ||
+ c==',' && varLevel == 0 && parLevel == 0 ||
+ Parser.WHITESPACE.indexOf(c)>=0 && parLevel == 0 && varLevel == 0) {
+ processWord=true;
+ state=STATE_NORMAL;
+ }
+ else {
+ word+=c;
+ }
+
+ if (processWord && word.length()>0) {
+ if (item==0) {
+ if (rc.processModifier(word)) {
+ }
+ else if (word.equals("abstract")) {
+ rc.setIsAbstract(true);
+ }
+ else if (word.equals("class")) {
+ rc.setIsInterface(false);
+ item=1;
+ }
+ else if (word.equals("enum"))
+ {
+ rc.setIsEnum(true);
+ item = 1;
+ }
+ else if (word.equals("interface")) {
+ rc.setIsInterface(true);
+ item=1;
+ }
+ else if (word.equals("@interface")) {
+ rc.setIsInterface(true);
+ rc.setIsAnnotation(true);
+ item=1;
+ }
+ else if (word.equals("strictfp")) {
+ }
+ else {
+ Main.getRootDoc().printWarning("unknown modifier '"+word+"'");
+ }
+ }
+ else if (word.equals("extends") && !rc.isAnnotation()) {
+ if (rc.isInterface()) {
+ item=3;
+ }
+ else {
+ item=2;
+ }
+ }
+ else if (word.equals("implements") && !rc.isAnnotation()) {
+ item=3;
+ }
+ else if (item==1) {
+ int parameterIndex = word.indexOf("<");
+ if (parameterIndex == -1)
+ rc.setClass(word);
+ else
+ {
+ rc.setClass(word.substring(0, parameterIndex));
+ parseTypeVariables(rc,word.substring(parameterIndex,
+ word.length()));
+ }
+ }
+ else if (item==2) {
+ //Debug.log(9,"setting baseclass of "+rc+" to "+word);
+ int parameterIndex = word.indexOf("<");
+ if (parameterIndex == -1)
+ superclassName=word;
+ else
+ {
+ /* FIXME: Parse type parameters */
+ superclassName=word.substring(0,parameterIndex);
+ }
+ }
+ else if (item==3) {
+ int parameterIndex = word.indexOf("<");
+ if (parameterIndex == -1)
+ implementedInterfaces.add(word);
+ else
+ {
+ /* FIXME: Parse type parameters */
+ implementedInterfaces.add(word.substring(0,parameterIndex));
+ }
+ }
+ word="";
+ }
+
+ if (c=='{' && state==STATE_NORMAL) break;
+ }
+ prev=c;
+ }
+
+ if (null != containingClass
+ && containingClass.isInterface()) {
+ rc.accessLevel = ACCESS_PUBLIC;
+ }
+
+ if (rc.name()==null) {
+ throw new ParseException("No classdef found in expression \""+new String(source,startIndex,endIndex-startIndex)+"\"");
+ }
+
+ rc.setPosition(ClassDocImpl.getPosition(rc, source, startIndex));
+
+ ClassDoc superclassProxy=new ClassDocProxy(superclassName, rc);
+
+ if (!rc.qualifiedName().equals("java.lang.Object")) {
+ rc.setSuperclass(superclassProxy);
+ }
+
+ ClassDoc[] interfaces=new ClassDoc[implementedInterfaces.size()];
+ for (int i=0; i<interfaces.length; ++i) {
+ interfaces[i]=new ClassDocProxy((String)implementedInterfaces.get(i), rc);
+ }
+ rc.setInterfaces(interfaces);
+
+ if (rc.isInterface() && rc.containingClass()!=null) {
+ rc.setIsStatic(true);
+ }
+ return rc;
+ }
+
+ public void setFields(FieldDoc[] fields) {
+ this.unfilteredFields=fields;
+ }
+
+ public void setFilteredFields(FieldDoc[] fields) {
+ this.filteredFields=fields;
+ }
+
+ public void setSerializableFields(FieldDoc[] sfields) {
+ this.serializableFields=sfields;
+ }
+
+ public void setMethods(MethodDoc[] methods) {
+ this.unfilteredMethods=methods;
+ }
+
+ public void setFilteredMethods(MethodDoc[] methods) {
+ this.filteredMethods=methods;
+ }
+
+ public void setConstructors(ConstructorDoc[] constructors) {
+ this.unfilteredConstructors=constructors;
+ }
+
+ public void setFilteredConstructors(ConstructorDoc[] constructors) {
+ this.filteredConstructors=constructors;
+ }
+
+ // Returns the name of this Doc item.
+ public String name() {
+ if (containingClass==null) {
+ return className;
+ }
+ else {
+ return containingClass.name()+"."+className;
+ }
+ }
+
+ public String getClassName() {
+ return className;
+ }
+
+ public void setClass(String className) {
+ this.className=className;
+ }
+
+ void setSuperclass(ClassDoc superclass) {
+ this.superclass=superclass;
+ }
+
+ public void resolve() throws ParseException {
+ if (!resolved) {
+ resolved=true;
+
+ if (containingClass!=null)
+ ((ClassDocImpl)containingClass).resolve();
+
+ //Debug.log(9,"resolving class '"+qualifiedName()+"'");
+ /*
+ for (int i=0; i<importedPackages.length; ++i) {
+ Debug.log(9,"class "+qualifiedName()+" imports "+importedPackages[i].name());
+ }
+ */
+
+ if (superclass instanceof ClassDocProxy) {
+
+ ClassDoc realClassDoc=findClass(superclass.qualifiedName());
+
+ if (realClassDoc==null) {
+ /*
+ if (true) { // Main.recursiveClasses) {
+ throw new ParseException("In class '"+qualifiedName()+"': class '"+className+"' not found.");
+ }
+ */
+ }
+ else {
+ superclass=realClassDoc;
+ }
+ }
+
+ if (null != interfaces) {
+ for (int i=0; i<interfaces.length; ++i) {
+ if (interfaces[i] instanceof ClassDocProxy) {
+ //Debug.log(9,"class "+qualifiedName()+" implements "+interfaces[i].qualifiedName());
+ ClassDoc realClassDoc=findClass(interfaces[i].qualifiedName());
+ if (realClassDoc==null) {
+ /*
+ if (Main.recursiveClasses) {
+ throw new ParseException("In class '"+qualifiedName()+"': class '"+className+"' not found.");
+ }
+ */
+ }
+ else {
+ //Debug.log(9,"found class '"+className+"': "+interfaces[i]);
+ interfaces[i]=realClassDoc;
+ }
+ }
+ }
+ }
+
+ if (unfilteredFields!=null) {
+ for (int i=0; i<unfilteredFields.length; ++i) {
+ ((FieldDocImpl)unfilteredFields[i]).resolve();
+ if (unfilteredFields[i].name().equals("serialPersistentField")) {
+ serialPersistentField=new FieldDoc[]{unfilteredFields[i]};
+ definesSerializableFields=true;
+ }
+ }
+ }
+
+ if (unfilteredMethods!=null) {
+ for (int i=0; i<unfilteredMethods.length; ++i) {
+ ((MethodDocImpl)unfilteredMethods[i]).resolve();
+ }
+ }
+
+ if (unfilteredConstructors!=null) {
+ for (int i=0; i<unfilteredConstructors.length; ++i) {
+ ((ConstructorDocImpl)unfilteredConstructors[i]).resolve();
+ }
+ }
+
+ List isSerMethodList=new ArrayList();
+
+ if (null != maybeSerMethodList) {
+ for (Iterator it=maybeSerMethodList.iterator(); it.hasNext(); ) {
+ MethodDocImpl method=(MethodDocImpl)it.next();
+ method.resolve();
+
+ if (((method.name().equals("readObject")
+ && method.signature().equals("(java.io.ObjectInputStream)"))
+ || (method.name().equals("writeObject")
+ && method.signature().equals("(java.io.ObjectOutputStream)"))
+ || (method.name().equals("readExternal")
+ && method.signature().equals("(java.io.ObjectInput)"))
+ || (method.name().equals("writeExternal")
+ && method.signature().equals("(java.io.ObjectOutput)"))
+ || (method.name().equals("readResolve")
+ && method.signature().equals("()")))) {
+
+ isSerMethodList.add(method);
+ }
+ }
+ this.serializationMethods=(MethodDoc[])isSerMethodList.toArray(new MethodDoc[0]);
+ maybeSerMethodList=null;
+ }
+ }
+ }
+
+ public FieldDoc findFieldRec(String name) {
+ return findFieldRec(this, name);
+ }
+
+ private static FieldDoc findFieldRec(ClassDoc classDoc, String name)
+ {
+ FieldDoc field = findField(classDoc, name);
+ if (null!=field) {
+ return field;
+ }
+ else {
+ ClassDoc[] interfaces = classDoc.interfaces();
+ for (int i=0; i<interfaces.length; ++i) {
+ field = findFieldRec(interfaces[i], name);
+ if (null != field) {
+ return field;
+ }
+ }
+ if (null != classDoc.superclass()) {
+ return findFieldRec(classDoc.superclass(), name);
+ }
+ else {
+ return null;
+ }
+ }
+ }
+
+ private static FieldDoc findField(ClassDoc classDoc, String name)
+ {
+ FieldDoc[] fields = classDoc.fields(false);
+ for (int i=0; i<fields.length; ++i) {
+ if (fields[i].name().equals(name)) {
+ return fields[i];
+ }
+ }
+ return null;
+ }
+
+ public FieldDoc findField(String fieldName) {
+ for (int i=0; i<filteredFields.length; ++i) {
+ if (filteredFields[i].name().equals(fieldName)) {
+ return filteredFields[i];
+ }
+ }
+ return null;
+ }
+
+ public void resolveComments() {
+
+ super.resolveComments();
+
+ if (null != unfilteredFields) {
+ for (int i=0; i<unfilteredFields.length; ++i) {
+ ((FieldDocImpl)unfilteredFields[i]).resolveComments();
+ }
+ }
+
+ if (null != serializableFields) {
+ for (int i=0; i<serializableFields.length; ++i) {
+ ((FieldDocImpl)serializableFields[i]).resolveComments();
+ }
+ }
+ if (null != unfilteredMethods) {
+ for (int i=0; i<unfilteredMethods.length; ++i) {
+ ((MethodDocImpl)unfilteredMethods[i]).resolveComments();
+ }
+ }
+ if (null != unfilteredConstructors) {
+ for (int i=0; i<unfilteredConstructors.length; ++i) {
+ ((ConstructorDocImpl)unfilteredConstructors[i]).resolveComments();
+ }
+ }
+
+ resolveTags();
+ }
+
+
+ private String className=null;
+
+ private boolean isAbstract;
+ private boolean isInterface;
+ private boolean isAnnotation;
+ private boolean isEnum;
+ private ClassDoc[] interfaces;
+ private ClassDoc[] filteredInnerClasses;
+ private ClassDoc[] unfilteredInnerClasses;
+ private FieldDoc[] filteredFields;
+ private FieldDoc[] unfilteredFields;
+ private FieldDoc[] serializableFields;
+ private MethodDoc[] filteredMethods;
+ private MethodDoc[] unfilteredMethods;
+ private ConstructorDoc[] filteredConstructors;
+ private ConstructorDoc[] unfilteredConstructors;
+ private TypeVariable[] typeParameters;
+
+ private boolean resolved=false;
+
+ private ClassDoc superclass;
+
+ // Is this Doc item a class.
+ public boolean isClass() {
+ return !isInterface;
+ }
+
+ // return true if this Doc is include in the active set.
+ public boolean isIncluded() {
+ if (this == baseClassDoc) {
+ return isIncluded
+ || (null != containingClass && Main.getInstance().includeAccessLevel(accessLevel));
+ }
+ else {
+ return baseClassDoc.isIncluded();
+ }
+ }
+
+ void setIsIncluded(boolean b) {
+ this.isIncluded=b;
+ }
+
+ private boolean isIncluded=false;
+
+ void setImportedClasses(ClassDoc[] importedClasses) {
+ this.importedClasses=importedClasses;
+ }
+
+ private static Map typeMap = new HashMap();
+
+ Type typeForString(String typeName) throws ParseException {
+ String orgTypename=typeName;
+ int ndx=typeName.indexOf('[');
+ String dim="";
+ if (ndx>=0) {
+ for (int i=ndx; i<typeName.length(); ++i) {
+ if ("[]".indexOf(typeName.charAt(i))>=0) {
+ dim+=typeName.charAt(i);
+ }
+ }
+ typeName=typeName.substring(0,ndx).trim();
+ }
+
+ ClassDoc classDoc = findClass(typeName, dim);
+ if (null != classDoc) {
+ return classDoc;
+ }
+
+ Type type = (Type)typeMap.get(typeName+dim);
+ if (null!=type) {
+ try {
+ if (type.dimension().equals(dim)) {
+ return type;
+ }
+ else {
+ Type rc = (Type) ((WritableType)type).clone();
+ ((WritableType)rc).setDimension(dim);
+ return rc;
+ }
+ }
+ catch (CloneNotSupportedException e) {
+ throw new ParseException(e.toString());
+ }
+ }
+
+ if ("boolean".equals(typeName)
+ || "char".equals(typeName)
+ || "byte".equals(typeName)
+ || "short".equals(typeName)
+ || "int".equals(typeName)
+ || "long".equals(typeName)
+ || "void".equals(typeName)
+ || "float".equals(typeName)
+ || "double".equals(typeName)) {
+ Type rc=new TypeImpl(null, typeName, dim);
+ typeMap.put(typeName+dim, rc);
+ return rc;
+ }
+
+ if (Main.getInstance().isDocletRunning()) {
+ //System.err.println(findClass("java.lang.String"));
+ //throw new ParseException("Doclet running, class not found: "+typeName+" ("+orgTypename+")");
+ }
+ Type rc=new ClassDocProxy(typeName, this);
+ ((WritableType)rc).setDimension(dim);
+ return rc;
+ }
+
+ public boolean isException() {
+ for (ClassDoc cdi=this;
+ cdi!=null;
+ cdi=cdi.superclass()) {
+
+ if ("java.lang.Exception".equals(cdi.qualifiedName()))
+ return true;
+ }
+ return false;
+ }
+
+ public boolean isError() {
+ for (ClassDoc cdi=this; cdi!=null; cdi=cdi.superclass()) {
+ if ("java.lang.Error".equals(cdi.qualifiedName()))
+ return true;
+ }
+ return false;
+ }
+
+ public boolean isOrdinaryClass() {
+ return !isException() && !isError() && !isInterface();
+ }
+
+ public void setIsInterface(boolean b) {
+ this.isInterface=b;
+ }
+
+ public void setIsAnnotation(boolean b) {
+ this.isAnnotation=b;
+ }
+
+ public void setIsEnum(boolean b)
+ {
+ isEnum = b;
+ }
+
+ public ExecutableMemberDoc findExecutableRec(String nameAndSignature) {
+
+ ExecutableMemberDoc rc;
+ for (ClassDoc cdi=this; cdi!=null; ) {
+ rc=findMethod(cdi, nameAndSignature);
+ if (rc!=null) return rc;
+ rc=findConstructor(cdi, nameAndSignature);
+ if (rc!=null) return rc;
+
+ ClassDoc _superclass = cdi.superclass();
+ if (null == _superclass) {
+ break;
+ }
+ else {
+ cdi = _superclass;
+ }
+ }
+ return null;
+ }
+
+ public static ConstructorDoc findConstructor(ClassDoc classDoc, String nameAndSignature) {
+ int ndx=nameAndSignature.indexOf('(');
+ if (ndx<=0)
+ return null;
+ else {
+ String fullSignature = resolveSignature(classDoc, nameAndSignature.substring(ndx));
+ return findConstructor(classDoc,
+ nameAndSignature.substring(0,ndx),
+ fullSignature);
+ }
+ }
+
+ public static ConstructorDoc findConstructor(ClassDoc classDoc, String name, String signature) {
+ ConstructorDoc[] filteredConstructors = classDoc.constructors(true);
+ if (null != filteredConstructors) {
+ for (int i=0; i<filteredConstructors.length; ++i) {
+ ConstructorDoc constructor = filteredConstructors[i];
+ if (constructor.name().equals(name) && constructor.signature().equals(signature))
+ return constructor;
+ }
+ }
+ return null;
+ }
+
+ public static MethodDoc findMethod(ClassDoc classDoc, String nameAndSignature) {
+ int ndx=nameAndSignature.indexOf('(');
+ if (ndx<=0) {
+ return null;
+ }
+ else {
+ String name = nameAndSignature.substring(0,ndx);
+ String fullSignature = resolveSignature(classDoc, nameAndSignature.substring(ndx));
+ return findMethod(classDoc, name, fullSignature);
+ }
+ }
+
+ private static String resolveSignature(ClassDoc classDoc, String signature)
+ {
+ signature = signature.substring(1, signature.length() - 1).trim();
+ if (0 == signature.length()) {
+ return "()";
+ }
+ StringTokenizer st = new StringTokenizer(signature, ",");
+ StringBuffer fullSignature = new StringBuffer("(");
+ while (st.hasMoreTokens()) {
+ String type = st.nextToken().trim();
+ int ndx = type.length();
+ while (ndx > 0 && type.charAt(ndx - 1) == '[' || type.charAt(ndx - 1) == ']') {
+ -- ndx;
+ }
+ String dim = type.substring(ndx);
+ type = type.substring(0, ndx);
+ ClassDoc typeClass = classDoc.findClass(type);
+ if (fullSignature.length() > 1) {
+ fullSignature.append(",");
+ }
+ if (null != typeClass) {
+ fullSignature.append(typeClass.qualifiedName());
+ }
+ else {
+ fullSignature.append(type);
+ }
+ fullSignature.append(dim);
+ }
+ fullSignature.append(')');
+ return fullSignature.toString();
+ }
+
+ public static MethodDoc findMethod(ClassDoc classDoc, String name, String signature) {
+ MethodDoc[] filteredMethods = classDoc.methods(true);
+ if (null != filteredMethods) {
+ for (int i=0; i<filteredMethods.length; ++i) {
+ MethodDoc method = filteredMethods[i];
+ if (method.name().equals(name) && method.signature().equals(signature))
+ return method;
+ }
+ }
+ return null;
+ }
+
+ public boolean equals(Object o) {
+ return (o!=null) && (o instanceof ClassDoc) && ((ClassDoc)o).qualifiedName().equals(qualifiedName());
+ }
+
+ private List maybeSerMethodList;
+
+ void setMaybeSerMethodList(List maybeSerMethodList) {
+ this.maybeSerMethodList=maybeSerMethodList;
+ }
+
+ public void setDimension(String dimension) {
+ this.dimension = dimension;
+ }
+
+ public Object clone() throws CloneNotSupportedException {
+ ClassDocImpl result = (ClassDocImpl)super.clone();
+ result.baseClassDoc = baseClassDoc;
+ return result;
+ }
+
+ public int superHashCode()
+ {
+ return super.hashCode();
+ }
+
+ public int hashCode()
+ {
+ return qualifiedTypeName().hashCode();
+ }
+
+ public ClassDoc getBaseClassDoc()
+ {
+ return baseClassDoc;
+ }
+
+ public FieldDoc getFieldDoc(String name)
+ {
+ for (int i=0; i<unfilteredFields.length; ++i) {
+ if (name.equals(unfilteredFields[i].name())) {
+ return unfilteredFields[i];
+ }
+ }
+ return null;
+ }
+
+ public MethodDoc getMethodDoc(String name, String signature)
+ {
+ for (int i=0; i<unfilteredMethods.length; ++i) {
+ if (name.equals(unfilteredMethods[i].name())
+ && signature.equals(unfilteredMethods[i].signature())) {
+ return unfilteredMethods[i];
+ }
+ }
+ return null;
+ }
+
+
+ public ConstructorDoc getConstructorDoc(String signature)
+ {
+ for (int i=0; i<unfilteredConstructors.length; ++i) {
+ if (signature.equals(unfilteredConstructors[i].signature())) {
+ return unfilteredConstructors[i];
+ }
+ }
+ return null;
+ }
+
+ private Object findFieldValue(String identifier,
+ ClassDoc classDoc,
+ String fieldName,
+ Set visitedFields)
+ throws UnknownIdentifierException, IllegalExpressionException
+ {
+ while (classDoc != null) {
+ if (classDoc instanceof ClassDocImpl) {
+ FieldDocImpl fieldDoc
+ = (FieldDocImpl)((ClassDocImpl)classDoc).getFieldDoc(fieldName);
+ if (visitedFields.contains(fieldDoc)) {
+ throw new CircularExpressionException("Circular reference detected");
+ }
+ else if (null != fieldDoc) {
+ return fieldDoc.constantValue(visitedFields);
+ }
+ }
+ else {
+ ClassDoc[] _interfaces = classDoc.interfaces();
+ if (null != _interfaces) {
+ for (int i=0; i<_interfaces.length; ++i) {
+ if (_interfaces[i] instanceof ClassDocImpl) {
+ FieldDocImpl fieldDoc
+ = (FieldDocImpl)((ClassDocImpl)_interfaces[i]).getFieldDoc(fieldName);
+ if (visitedFields.contains(fieldDoc)) {
+ throw new CircularExpressionException("Circular reference detected");
+ }
+ else if (null != fieldDoc) {
+ return fieldDoc.constantValue(visitedFields);
+ }
+ }
+ }
+ }
+ }
+ classDoc = classDoc.superclass();
+ }
+ throw new UnknownIdentifierException(identifier);
+ }
+
+ public Object getValue(String identifier, Set visitedFields)
+ throws UnknownIdentifierException, IllegalExpressionException
+ {
+ int ndx = identifier.lastIndexOf('.');
+ if (ndx >= 0) {
+ String _className = identifier.substring(0, ndx);
+ String _fieldName = identifier.substring(ndx + 1);
+
+ ClassDoc _classDoc = findClass(_className);
+ if (null != _classDoc) {
+ return findFieldValue(identifier, _classDoc, _fieldName, visitedFields);
+ }
+ else {
+ throw new UnknownIdentifierException(identifier);
+ }
+ }
+ else {
+ return findFieldValue(identifier, this, identifier, visitedFields);
+ }
+ }
+
+ public boolean isPrimitive()
+ {
+ return false;
+ }
+
+ // Compares this Object with the specified Object for order.
+ public int compareTo(java.lang.Object o) {
+ int rc;
+
+ if (o instanceof ClassDocImpl) {
+
+ ClassDocImpl c1 = this;
+ ClassDocImpl c2 = (ClassDocImpl)o;
+
+ if (null != c1.containingClass() && null == c2.containingClass()) {
+ rc = c1.containingClass().compareTo(c2);
+ if (0 == rc) {
+ rc = 1;
+ }
+ return rc;
+ }
+ else if (null == c1.containingClass() && null != c2.containingClass()) {
+ rc = c1.compareTo(c2.containingClass());
+ if (0 == rc) {
+ rc = -1;
+ }
+ return rc;
+ }
+ else if (null != c1.containingClass() && null != c2.containingClass()) {
+ rc = c1.containingClass().compareTo(c2.containingClass());
+ if (0 != rc) {
+ return rc;
+ }
+ }
+
+ rc = super.compareTo(o);
+ if (0 == rc) {
+ return Main.getInstance().getCollator().compare(containingPackage().name(),
+ ((ClassDocImpl)o).containingPackage().name());
+ }
+ else {
+ return rc;
+ }
+ }
+ else {
+ return 1;
+ }
+ }
+
+ private List importStatementList;
+
+ public void setImportStatementList(List importStatementList)
+ {
+ this.importStatementList = new LinkedList();
+ this.importStatementList.addAll(importStatementList);
+ }
+
+ public List getImportSpecifierList()
+ {
+ return importStatementList;
+ }
+
+ public TypeVariable[] typeParameters()
+ {
+ return typeParameters;
+ }
+
+ /**
+ * <p>
+ * Parses the type variables declared in the class definition.
+ * The syntax is:
+ * </p>
+ * <p>
+ * <dl>
+ * <dt>TypeParameters:</dt>
+ * <dd><code>&lt; <em>TypeParameter</em> { <em>, TypeParameter }</code></dd>
+ * <dt>TypeParameter:</dt>
+ * <dd><code><em>Identifier</em> { <strong>extends</strong> <em>Bound</em>
+ * }</dd>
+ * <dt>Bound:</dt>
+ * <dd><code><em>Type</em>{<strong>&</strong> <em>Type</em> } </dd>
+ * </dl>
+ *
+ * @param rc the owning class.
+ * @param typeVariables the string to be parsed.
+ * @throws ParseException if parsing fails.
+ */
+ public static void parseTypeVariables(ClassDocImpl rc,
+ String typeVariables)
+ throws ParseException
+ {
+ List parsedBounds = null;
+ StringTokenizer parameters = new StringTokenizer(typeVariables,
+ Parser.WHITESPACE +
+ "<>,");
+ List variables = new ArrayList();
+ while (parameters.hasMoreTokens())
+ {
+ String parameter = parameters.nextToken();
+ StringTokenizer parts = new StringTokenizer(parameter,
+ Parser.WHITESPACE);
+ TypeVariableImpl variable = new TypeVariableImpl(rc.qualifiedName(),
+ parts.nextToken(),"",
+ rc);
+ if (parts.hasMoreTokens())
+ {
+ if (!parts.nextToken().equals("extends"))
+ throw new ParseException("Invalid type parameter: " + parameter);
+ StringTokenizer bounds = new StringTokenizer(parts.nextToken(),
+ Parser.WHITESPACE
+ + "&");
+ parsedBounds = new ArrayList();
+ while (bounds.hasMoreTokens())
+ {
+ String bound = bounds.nextToken();
+ int nameSep = bound.lastIndexOf(".");
+ String packageName = bound.substring(0, nameSep);
+ String boundName = bound.substring(nameSep, bound.length());
+ parsedBounds.add(new TypeImpl(packageName,boundName,""));
+ }
+ }
+ if (parsedBounds != null)
+ variable.setBounds(parsedBounds);
+ variables.add(variable);
+ }
+ rc.setTypeParameters(variables);
+ }
+
+ /**
+ * Set the type parameters to the contents of the supplied list.
+ *
+ * @param variables a list of type parameters.
+ */
+ void setTypeParameters(List variables)
+ {
+ typeParameters =
+ (TypeVariable[]) variables.toArray(new TypeVariable[variables.size()]);
+ }
+
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java
new file mode 100644
index 0000000..79abf3d
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocProxy.java
@@ -0,0 +1,152 @@
+/* gnu.classpath.tools.gjdoc.ClassDocProxy
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+
+import java.io.*;
+
+public class ClassDocProxy implements ClassDoc, WritableType {
+
+ private String name;
+ private String qualifiedName;
+ private ClassDoc classContext;
+ private String dimension = "";
+
+ public ClassDocProxy(String qualifiedName, ClassDoc classContext)
+ {
+ this.qualifiedName
+ = Main.getRootDoc().resolveClassName(qualifiedName,
+ (ClassDocImpl)classContext);
+ this.classContext=classContext;
+ int pndx=qualifiedName.lastIndexOf('.');
+ if (pndx>=0) {
+ this.name=qualifiedName.substring(pndx+1);
+ }
+ else {
+ this.name=qualifiedName;
+ }
+ }
+
+ private final String errorText()
+ {
+ return "CLASS "+qualifiedName+" NOT LOADED.";
+ }
+
+ public ConstructorDoc[] constructors() { return new ConstructorDoc[0]; }
+ public ConstructorDoc[] constructors(boolean filtered) { return new ConstructorDoc[0]; }
+ public boolean definesSerializableFields() { return false; }
+ public FieldDoc[] fields() { return new FieldDoc[0]; }
+ public FieldDoc[] fields(boolean filtered) { return new FieldDoc[0]; }
+ public ClassDoc findClass(java.lang.String className) { return null; }
+ public ClassDoc[] importedClasses() { return new ClassDoc[0]; }
+ public PackageDoc[] importedPackages() { return new PackageDoc[0]; }
+ public ClassDoc[] innerClasses() { return new ClassDoc[0]; }
+ public ClassDoc[] innerClasses(boolean filtered) { return new ClassDoc[0]; }
+ public ClassDoc[] interfaces() { return new ClassDoc[0]; }
+ public boolean isAbstract() { return false; }
+ public boolean isExternalizable() { return false; }
+ public boolean isSerializable() { return false; }
+ public MethodDoc[] methods() { return new MethodDoc[0]; }
+ public MethodDoc[] methods(boolean filtered) { return new MethodDoc[0]; }
+ public FieldDoc[] serializableFields() { return new FieldDoc[0]; }
+ public MethodDoc[] serializationMethods() { return new MethodDoc[0]; }
+ public boolean subclassOf(ClassDoc cd) { return false; }
+ public ClassDoc superclass() { return null; }
+ public ClassDoc containingClass() { return null; }
+ public PackageDoc containingPackage() {
+ /*
+ try {
+ File file=Main.getRootDoc().findScheduledClass(qualifiedName, classContext);
+ if (file!=null) {
+ //String clsName=file.getCanonicalFile().getAbsolutePath().substring(new File(Main.getRootDoc().getSourcePath()).getCanonicalFile().getAbsolutePath().length()+1);
+ String clsName=file.getAbsolutePath().substring(new File(Main.getRootDoc().getSourcePath()).getAbsolutePath().length()+1);
+ clsName=clsName.substring(0,clsName.length()-5).replace(File.separatorChar,'.');
+ Debug.log(9,"ClassDocProxy '"+qualifiedName+"': found class "+clsName);
+ qualifiedName=clsName;
+ }
+ return new PackageDocImpl("test.");
+ }
+ catch (Exception e) {
+ return PackageDocImpl.DEFAULT_PACKAGE;
+ }
+ */
+ return PackageDocImpl.DEFAULT_PACKAGE;
+ }
+
+ public boolean isFinal() { return false; }
+ public boolean isPackagePrivate() { return false; }
+ public boolean isPrivate() { return false; }
+ public boolean isProtected() { return false; }
+ public boolean isPublic() { return false; }
+ public boolean isStatic() { return false; }
+ public String modifiers() { return ""; }
+ public int modifierSpecifier() { return 0; }
+ public String qualifiedName() { return qualifiedName; }
+ public String commentText() { return null; }
+ public Tag[] firstSentenceTags() { return new Tag[0]; }
+ public String getRawCommentText() { return null; }
+ public Tag[] inlineTags() { return new Tag[0]; }
+ public boolean isClass() { return false; }
+ public boolean isConstructor() { return false; }
+ public boolean isError() { return false; }
+ public boolean isException() { return false; }
+ public boolean isField() { return false; }
+ public boolean isIncluded() { return false; }
+ public boolean isInterface() { return false; }
+ public boolean isMethod() { return false; }
+ public boolean isOrdinaryClass() { return false; }
+ public String name() { return name; }
+ public SourcePosition position() { return null; }
+ public SeeTag[] seeTags() { return new SeeTag[0]; }
+ public void setRawCommentText(java.lang.String rawDocumentation) {}
+ public Tag[] tags() { return new Tag[0]; }
+ public Tag[] tags(java.lang.String tagname) { return new Tag[0]; }
+ public String typeName() { return name; }
+ public String qualifiedTypeName() { return qualifiedName; }
+ public String dimension() { return dimension; }
+ public ClassDoc asClassDoc() { return this; }
+ public TypeVariable asTypeVariable() { return null; }
+ public boolean isPrimitive() { return false; }
+
+ public String toString() { return "ClassDocProxy{"+qualifiedName+", context="+classContext+"}"; }
+
+ public void setDimension(String dimension) {
+ this.dimension = dimension;
+ }
+
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+
+ // Compares this Object with the specified Object for order.
+ public int compareTo(java.lang.Object o) {
+ if (o instanceof Doc) {
+ return Main.getInstance().getCollator().compare(name(), ((Doc)o).name());
+ }
+ else {
+ return 0;
+ }
+ }
+
+ public TypeVariable[] typeParameters() { return new TypeVariable[0]; }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java
new file mode 100644
index 0000000..2920e89
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ClassDocReflectedImpl.java
@@ -0,0 +1,202 @@
+/* gnu.classpath.tools.gjdoc.ClassDocReflectedImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.Map;
+import java.util.HashMap;
+
+public class ClassDocReflectedImpl
+ implements ClassDoc, WritableType
+{
+ private Class clazz;
+ private String name;
+ private ClassDoc superclassDoc;
+ private ClassDoc[] unfilteredInnerClasses;
+ private String dimension = "";
+
+ private static Map reflectionCache = new HashMap();
+
+ public static ClassDocReflectedImpl newInstance(Class clazz)
+ {
+ ClassDocReflectedImpl result
+ = (ClassDocReflectedImpl)reflectionCache.get(clazz);
+ if (null != result) {
+ return result;
+ }
+ else {
+ return new ClassDocReflectedImpl(clazz);
+ }
+ }
+
+ public ClassDocReflectedImpl(Class clazz)
+ {
+ reflectionCache.put(clazz, this);
+
+ //System.err.println("ClassDocReflectedImpl: " + clazz);
+
+ this.clazz = clazz;
+ String className = clazz.getName();
+ int ndx = className.lastIndexOf('.');
+ if (ndx >= 0) {
+ this.name = className.substring(ndx + 1);
+ }
+ else {
+ this.name = className;
+ }
+
+ Class superclass = clazz.getSuperclass();
+ if (null != superclass && !clazz.getName().equals("java.lang.Object")) {
+ this.superclassDoc = (ClassDocReflectedImpl)reflectionCache.get(superclass);
+ if (null == this.superclassDoc) {
+ this.superclassDoc = new ClassDocReflectedImpl(superclass);
+ }
+ }
+
+ Class[] innerclasses = clazz.getDeclaredClasses();
+ this.unfilteredInnerClasses = new ClassDoc[innerclasses.length];
+ for (int i=0; i<innerclasses.length; ++i) {
+ this.unfilteredInnerClasses[i] = (ClassDocReflectedImpl)reflectionCache.get(innerclasses[i]);
+ if (null == this.unfilteredInnerClasses[i]) {
+ this.unfilteredInnerClasses[i] = new ClassDocReflectedImpl(innerclasses[i]);
+ //System.err.println("adding " + this.unfilteredInnerClasses[i] + " [" + innerclasses[i] + "] as inner class of " + this + " [" + clazz + "]");
+ }
+ }
+ }
+
+ public ConstructorDoc[] constructors() { return new ConstructorDoc[0]; }
+ public ConstructorDoc[] constructors(boolean filtered) { return new ConstructorDoc[0]; }
+ public boolean definesSerializableFields() { return false; }
+ public FieldDoc[] fields() { return new FieldDoc[0]; }
+ public FieldDoc[] fields(boolean filtered) { return new FieldDoc[0]; }
+ public ClassDoc findClass(java.lang.String className) { return null; }
+ public ClassDoc[] importedClasses() { return new ClassDoc[0]; }
+ public PackageDoc[] importedPackages() { return new PackageDoc[0]; }
+ public ClassDoc[] innerClasses() { return new ClassDoc[0]; }
+ public ClassDoc[] innerClasses(boolean filtered)
+ {
+ if (filtered) {
+ return new ClassDoc[0];
+ }
+ else {
+ return unfilteredInnerClasses;
+ }
+ }
+
+ public ClassDoc[] interfaces() { return new ClassDoc[0]; }
+ public boolean isAbstract() { return false; }
+ public boolean isExternalizable() { return false; }
+ public boolean isSerializable() { return false; }
+ public MethodDoc[] methods() { return new MethodDoc[0]; }
+ public MethodDoc[] methods(boolean filtered) { return new MethodDoc[0]; }
+ public FieldDoc[] serializableFields() { return new FieldDoc[0]; }
+ public MethodDoc[] serializationMethods() { return new MethodDoc[0]; }
+ public boolean subclassOf(ClassDoc cd) { return false; }
+ public ClassDoc superclass() {
+ return superclassDoc;
+ }
+ public ClassDoc containingClass()
+ {
+ Class declaringClass = clazz.getDeclaringClass();
+ if (null != declaringClass) {
+ return new ClassDocReflectedImpl(declaringClass);
+ }
+ else {
+ return null;
+ }
+ }
+ public PackageDoc containingPackage()
+ {
+ Class outerClass = clazz;
+ while (null != outerClass.getDeclaringClass()) {
+ outerClass = outerClass.getDeclaringClass();
+ }
+
+ String packageName = outerClass.getName();
+ int ndx = packageName.lastIndexOf('.');
+ if (ndx > 0) {
+ packageName = packageName.substring(0, ndx);
+ }
+ else {
+ packageName = "";
+ }
+ PackageDoc result = Main.getRootDoc().findOrCreatePackageDoc(packageName);
+ return result;
+ }
+
+ public boolean isFinal() { return false; }
+ public boolean isPackagePrivate() { return false; }
+ public boolean isPrivate() { return false; }
+ public boolean isProtected() { return false; }
+ public boolean isPublic() { return false; }
+ public boolean isStatic() { return false; }
+ public String modifiers() { return ""; }
+ public int modifierSpecifier() { return 0; }
+ public String qualifiedName() { return clazz.getName().replace('$', '.'); }
+ public String commentText() { return null; }
+ public Tag[] firstSentenceTags() { return new Tag[0]; }
+ public String getRawCommentText() { return null; }
+ public Tag[] inlineTags() { return new Tag[0]; }
+ public boolean isClass() { return false; }
+ public boolean isConstructor() { return false; }
+ public boolean isError() { return false; }
+ public boolean isException() { return false; }
+ public boolean isField() { return false; }
+ public boolean isIncluded() { return false; }
+ public boolean isInterface() { return false; }
+ public boolean isMethod() { return false; }
+ public boolean isOrdinaryClass() { return false; }
+ public String name() { return name; }
+ public SourcePosition position() { return null; }
+ public SeeTag[] seeTags() { return new SeeTag[0]; }
+ public void setRawCommentText(java.lang.String rawDocumentation) {}
+ public Tag[] tags() { return new Tag[0]; }
+ public Tag[] tags(java.lang.String tagname) { return new Tag[0]; }
+ public String typeName() { return name; }
+ public String qualifiedTypeName() { return qualifiedName(); }
+ public ClassDoc asClassDoc() { return this; }
+ public TypeVariable asTypeVariable() { return null; }
+ public boolean isPrimitive() { return false; }
+
+ public String toString() { return "ClassDocReflectedImpl{"+qualifiedName()+"}"; }
+
+ public int compareTo(java.lang.Object o) {
+ if (o instanceof Doc) {
+ return Main.getInstance().getCollator().compare(name(), ((Doc)o).name());
+ }
+ else {
+ return 0;
+ }
+ }
+
+ public String dimension() { return dimension; }
+
+ public void setDimension(String dimension) {
+ this.dimension = dimension;
+ }
+
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+
+ public TypeVariable[] typeParameters() { return new TypeVariable[0]; }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java
new file mode 100644
index 0000000..f114485
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ConstructorDocImpl.java
@@ -0,0 +1,42 @@
+/* gnu.classpath.tools.gjdoc.ConstructorDocImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import com.sun.javadoc.*;
+
+public class ConstructorDocImpl extends ExecutableMemberDocImpl implements ConstructorDoc {
+
+ public ConstructorDocImpl(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ SourcePosition position) {
+
+ super(containingClass,
+ containingPackage,
+ position);
+ }
+
+ // Is this Doc item a constructor.
+ public boolean isConstructor() {
+ return true;
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java
new file mode 100644
index 0000000..06f39a4
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Debug.java
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.Debug
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+public final class Debug {
+
+ //private static int logLevel = 7;
+ private static int logLevel = 0;
+
+ static {
+ String llProp = System.getProperty("gnu.classpath.tools.gjdoc.LogLevel");
+ if (null!=llProp) logLevel = Integer.parseInt(llProp);
+ }
+
+ public static final void log(String msg) {
+ System.err.println(msg);
+ }
+
+ public static final void log(int level, String msg) {
+ if (level<=logLevel) {
+ System.err.println(msg);
+ }
+ }
+
+ public static final void dumpArray(int level, Object[] array) {
+ if (level<=logLevel) {
+ for (int i=0; i<array.length; ++i) {
+ System.err.println(" #"+i+": "+array[i]);
+ }
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java
new file mode 100644
index 0000000..7d8e4bc
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DirectoryTree.java
@@ -0,0 +1,57 @@
+/* gnu.classpath.tools.gjdoc.DirectoryTree
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.io.*;
+
+public class DirectoryTree {
+
+ class FileNode {
+ File file;
+ FileNode[] subNodes;
+
+ FileNode(File file) {
+ this.file=file;
+ if (file.isDirectory()) {
+ File[] subFiles=file.listFiles();
+ subNodes=new FileNode[subFiles.length];
+ for (int i=0; i<subFiles.length; ++i) {
+ subNodes[i]=new FileNode(subFiles[i]);
+ }
+ }
+ }
+ }
+
+ FileNode root;
+
+ DirectoryTree(File path) {
+
+ System.err.print("Scanning "+path.getAbsolutePath()+"... ");
+
+ long now1=System.currentTimeMillis();
+
+ root=new FileNode(path);
+
+ long now2=System.currentTimeMillis();
+
+ System.err.println("took "+(now2-now1)+" ms");
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java
new file mode 100644
index 0000000..1630513
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/DocImpl.java
@@ -0,0 +1,1074 @@
+/* gnu.classpath.tools.gjdoc.DocImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+import java.io.File;
+import javax.swing.text.Segment;
+
+/**
+ * Represents the least common denominator of all Javadoc
+ * comment classes.
+ */
+public abstract class DocImpl implements Doc, TagContainer {
+
+ protected static Tag[] seeTagEmptyArr = new SeeTagImpl[0];
+ protected static Tag[] linkTagEmptyArr = new LinkTagImpl[0];
+ protected static Tag[] paramTagEmptyArr = new ParamTagImpl[0];
+ protected static Tag[] throwsTagEmptyArr = new ThrowsTagImpl[0];
+ protected SourcePosition position;
+ private String boilerplateComment;
+
+ // Return the text of the comment for this doc item.
+ public String commentText() {
+
+ StringBuffer rc=new StringBuffer();
+
+ Tag[] textTags=(Tag[])tagMap.get("text");
+ if (textTags!=null) {
+ for (int i=0; i<textTags.length; ++i) {
+ rc.append(textTags[i].text());
+ }
+ }
+ return rc.toString();
+ }
+
+ // Compares this Object with the specified Object for order.
+ public int compareTo(java.lang.Object o) {
+ return Main.getInstance().getCollator().compare(name(), ((Doc)o).name());
+ }
+
+ // Return the first sentence of the comment as tags.
+ public Tag[] firstSentenceTags() {
+
+ Tag[] rc=(Tag[])tagMap.get("first");
+ if (rc==null) rc=new Tag[0];
+ return rc;
+ }
+
+ // Return the full unprocessed text of the comment.
+ public String getRawCommentText() {
+ if (rawDocumentation!=null)
+ return rawDocumentation;
+ else if (rawDocOffset>=0)
+ return Main.getRootDoc().readRawComment(rawDocOffset);
+ else
+ return null;
+ }
+
+ // Return comment as tags.
+ public Tag[] inlineTags() {
+
+ Tag[] rc=(Tag[])tagMap.get("inline");
+ if (rc==null) rc=new Tag[0];
+ return rc;
+ }
+
+ // Is this Doc item a class.
+ public boolean isClass() {
+ return false;
+ }
+
+ // Is this Doc item a constructor? False until overridden.
+ public boolean isConstructor() {
+ return false;
+ }
+
+ // Is this Doc item a error class? False until overridden.
+ public boolean isError() {
+ return false;
+ }
+
+ // Is this Doc item a exception class? False until overridden.
+ public boolean isException() {
+ return false;
+ }
+
+ // Is this Doc item a field? False until overridden.
+ public boolean isField() {
+ return false;
+ }
+
+ // return true if this Doc is include in the active set.
+ public boolean isIncluded() {
+ return false;
+ }
+
+ // Is this Doc item a interface? False until overridden.
+ public boolean isInterface() {
+ return false;
+ }
+
+ // Is this Doc item a simple method (i.e.
+ public boolean isMethod() {
+ return false;
+ }
+
+ public boolean isPackage() {
+ return false;
+ }
+
+ // Is this Doc item a ordinary class (i.e.
+ public boolean isOrdinaryClass() {
+ return false;
+ }
+
+ // Return the see also tags in this Doc item.
+ public SeeTag[] seeTags() {
+ return (SeeTag[])getTagArr("see", seeTagEmptyArr);
+ }
+
+ protected Tag[] getTagArr(String kindOfTag, Tag[] defaultRc) {
+ Tag[] rc=(Tag[])tagMap.get(kindOfTag);
+ if (rc==null) rc=defaultRc;
+ return rc;
+ }
+
+ // Set the full unprocessed text of the comment.
+ public void setRawCommentText(String rawDocumentation) {
+ this.rawDocumentation=rawDocumentation;
+ }
+
+ public void resolveComments() {
+
+ if (rawDocumentation!=null && tagMap.isEmpty()) {
+ char[] charArray = rawDocumentation.toCharArray();
+ int length = rawDocumentation.length();
+ int startOffset = 0;
+ int endOffset = 0;
+ if (charArray[0] == '/'
+ && charArray[1] == '*'
+ && charArray[2] == '*'
+ && charArray[length - 2] == '*'
+ && charArray[length - 1] == '/') {
+
+ startOffset = 3;
+ endOffset = 2;
+ }
+
+ this.tagMap=parseCommentTags(charArray,
+ startOffset,
+ length - endOffset,
+ getContextClass(),
+ getContextMember(),
+ null,
+ boilerplateComment);
+
+ if (Main.getInstance().isCacheRawComments()) {
+ rawDocOffset=Main.getRootDoc().writeRawComment(rawDocumentation);
+ rawDocumentation=null;
+ }
+
+ resolveTags();
+ }
+ else if (tagMap.isEmpty() && null != boilerplateComment) {
+ tagMap.put("all", new Tag[] { new TagImpl("@boilerplate", boilerplateComment,getContextClass(),null) });
+ tagMap.put("@boilerplate", new Tag[] { new TagImpl("@boilerplate", boilerplateComment,getContextClass(),null) });
+ }
+ }
+
+ public static int skipHtmlWhitespace(char[] buffer, int startIndex) {
+ while (startIndex < buffer.length) {
+ char c=buffer[startIndex];
+ if (!Parser.isWhitespace(c)) {
+ break;
+ }
+ else {
+ ++ startIndex;
+ }
+ }
+ return startIndex;
+ }
+
+ /**
+ * Looks for an end-of-sentence marker in <code>text</code>,
+ * starting at <code>startIndex</code> and stopping at
+ * <code>endIndex</code>.
+ *
+ * @param text the text to be searched
+ * @param startIndex index in <code>text</code> at which to start
+ * @param endIndex index in <code>text</code> at which to stop
+ *
+ * @return the index of the character following the end-of-sentence
+ * marker, <code>endIndex</code> if no end-of-sentence
+ * marker could be found, or -1 if not implemented.
+ */
+ private static int findEndOfSentence(char[] text, int startIndex,
+ int endIndex)
+ {
+ if (Main.getInstance().isUseBreakIterator()) {
+ Segment segment = new Segment(text, startIndex, endIndex - startIndex);
+ BreakIterator breakIterator = BreakIterator.getSentenceInstance(Main.getInstance().getLocale());
+ breakIterator.setText(segment);
+ int result = breakIterator.next();
+ if (BreakIterator.DONE == result) {
+ return endIndex;
+ }
+ else {
+ return result;
+ }
+ }
+ else {
+ while (startIndex < endIndex) {
+ if (text[startIndex] == '.'
+ && (startIndex+1 == endIndex
+ || Character.isWhitespace(text[startIndex+1])
+ || isHTMLBreakTag(text, startIndex+1, endIndex)
+ )) {
+ return startIndex;
+ }
+
+ startIndex++;
+ }
+ return endIndex;
+ }
+ }
+
+ /**
+ * Returns true is the text from start to end begins with a 'p' or 'br' tag.
+ */
+ private static boolean isHTMLBreakTag(char[] text, int start, int end)
+ {
+ String[] breakTags = {
+ "p>", "/p>", "h1>", "h2>", "h3>", "h4>", "h5>", "h6>", "hr>",
+ "pre>", "/pre>"
+ };
+
+ if (text[start] == '<') {
+
+ outer:
+ for (int i=0; i<breakTags.length; ++i) {
+ String tag = breakTags[i];
+ int len = tag.length();
+ if (start + len < end) {
+ for (int j=0; j<len; ++j) {
+ char c = tag.charAt(j);
+ if (Character.toLowerCase(text[start + 1 + j]) != c) {
+ continue outer;
+ }
+ }
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ //private static final StringBuffer buf=new StringBuffer(32768);
+ private static final StringBuffer whitespaceBuf=new StringBuffer();
+ private static char[] charBuf = new char[60000];
+ private static int bufPos = 0;
+
+ private static void appendToBuf(char c)
+ {
+ if (bufPos < charBuf.length) {
+ charBuf[bufPos++] = c;
+ }
+ else {
+ //
+ }
+ }
+
+ private static void appendToBuf(StringBuffer s)
+ {
+ if (bufPos + s.length() <= charBuf.length) {
+ s.getChars(0, s.length(), charBuf, bufPos);
+ bufPos += s.length();
+ }
+ else {
+ //
+ }
+ }
+
+ private static void setBufLength(int length)
+ {
+ bufPos = 0;
+ }
+
+ private static String bufToString()
+ {
+ return new String(charBuf, 0, bufPos);
+ }
+
+ private static int bufLength()
+ {
+ return bufPos;
+ }
+
+ public static Map parseCommentTags(char[] comment, int startIndex, int endIndex,
+ ClassDocImpl contextClass, MemberDocImpl contextMember,
+ AbstractTagImpl contextTag, String boilerplateComment) {
+
+ int rawDocStart=skipHtmlWhitespace(comment, startIndex);
+
+ int firstSentenceEnd = 0;
+
+ if (comment.length>rawDocStart) {
+
+ firstSentenceEnd = findEndOfSentence(comment, rawDocStart, comment.length);
+
+ if (firstSentenceEnd < 0) {
+ BreakIterator boundary = BreakIterator.getSentenceInstance(Locale.ENGLISH);
+ boundary.setText(new ArrayCharacterIterator(comment, rawDocStart));
+ boundary.first();
+ boundary.next();
+ firstSentenceEnd = boundary.current();
+ }
+
+ // Always include period at end of sentence if there is one.
+ if (firstSentenceEnd < comment.length
+ && '.' == comment[firstSentenceEnd]) {
+ ++ firstSentenceEnd;
+ }
+ }
+
+ final int STATE_BEGOFLINE = 1;
+ final int STATE_TEXT = 2;
+ final int STATE_PARAM = 3;
+ final int STATE_PARAMVALUE = 4;
+ final int STATE_PARAMWRAP = 5;
+ final int STATE_INLINEPARAM = 6;
+ final int STATE_INLINEPARAMVALUE = 7;
+ final int STATE_WHITESPACE = 8;
+ final int STATE_INLINEPARAMVALUE_BOL = 9;
+ final int STATE_IPV_WHITESPACE = 10;
+
+ int state=STATE_BEGOFLINE;
+ int prevState=STATE_TEXT;
+
+ setBufLength(0);
+ whitespaceBuf.setLength(0);
+
+ String paramName="", paramValue="";
+
+ Map tags=new HashMap();
+ tags.put("inline", new LinkedList());
+ tags.put("first", new LinkedList());
+ tags.put("all", new LinkedList());
+
+ final char EOL=(char)-1;
+
+ for (int i=rawDocStart; i<=endIndex; ++i) {
+ char c=(i<endIndex)?comment[i]:EOL;
+ char peek=(i<endIndex-1)?comment[i+1]:EOL;
+
+ switch (state){
+
+ case STATE_BEGOFLINE:
+ if (i==firstSentenceEnd) {
+ AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ setBufLength(0);
+ }
+
+ if (Parser.isWhitespace(c)) {
+ // ignore
+ }
+ else if (c=='*') {
+ // ignore, but go to STATE_TEXT
+ if (peek!='*' && peek!='@' && peek!=EOL) {
+ state=STATE_WHITESPACE;
+ }
+ }
+ else if (c=='@' || (c=='{' && peek=='@') || c==EOL) {
+ if (bufLength()>0) {
+ addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+ setBufLength(0);
+ }
+ if (c=='{') {
+ ++i;
+ state=STATE_INLINEPARAM;
+ }
+ else {
+ state=STATE_PARAM;
+ }
+ }
+ else {
+ state=STATE_TEXT;
+ appendToBuf(whitespaceBuf);
+ whitespaceBuf.setLength(0);
+ appendToBuf(c);
+ }
+ break;
+
+ case STATE_WHITESPACE:
+ if (i==firstSentenceEnd) {
+ AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ setBufLength(0);
+ }
+
+ if (c=='\n') {
+ whitespaceBuf.append(c);
+ state=STATE_BEGOFLINE;
+ }
+ else if (Parser.isWhitespace(c)) {
+ whitespaceBuf.append(c);
+ }
+ else if (c=='@' || (c=='{' && peek=='@') || c==EOL) {
+ if (bufLength()>0) {
+ AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ setBufLength(0);
+ }
+ if (c=='{') {
+ ++i;
+ state=STATE_INLINEPARAM;
+ }
+ else {
+ state=STATE_PARAM;
+ }
+ }
+ else {
+ appendToBuf(whitespaceBuf);
+ whitespaceBuf.setLength(0);
+ appendToBuf(c);
+ state=STATE_TEXT;
+ }
+ break;
+
+ case STATE_PARAMWRAP:
+ if (c=='\n') {
+ appendToBuf(c);
+ }
+ else if (Parser.isWhitespace(c)) {
+ // ignore
+ }
+ else if (c=='*') {
+ // ignore, but go to STATE_TEXT
+ /*
+ if (i<endIndex && comment[i+1]!='*' && comment[i+1]!='@') {
+ state=STATE_PARAMVALUE;
+ }
+ */
+ }
+ else if (c=='@' || c==EOL) {
+ paramValue=bufToString();
+ AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ setBufLength(0);
+ if (c=='{') {
+ ++i;
+ state=STATE_INLINEPARAM;
+ }
+ else {
+ state=STATE_PARAM;
+ }
+ }
+ else {
+ state=STATE_PARAMVALUE;
+ appendToBuf(c);
+ }
+ break;
+
+ case STATE_PARAM:
+ if (!(c==EOL || Parser.isWhitespace(c))) {
+ appendToBuf(c);
+ }
+ else if (c=='\n') {
+ paramName=bufToString();
+ setBufLength(0);
+ state=STATE_PARAMWRAP;
+ }
+ else {
+ paramName=bufToString();
+ setBufLength(0);
+ state=STATE_PARAMVALUE;
+ }
+ break;
+
+ case STATE_INLINEPARAM:
+ if (c=='}') {
+ // tag without value
+ paramName=bufToString();
+ AbstractTagImpl newTag = addTag(tags, paramName, "", i<firstSentenceEnd, contextClass, contextMember, contextTag, true);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ state=prevState;
+ setBufLength(0);
+ }
+ else if (!(c==EOL || Parser.isWhitespace(c))) {
+ appendToBuf(c);
+ }
+ else if (c=='\n') {
+ paramName=bufToString();
+ setBufLength(0);
+ state=STATE_INLINEPARAMVALUE_BOL;
+ }
+ else {
+ paramName=bufToString();
+ setBufLength(0);
+ state=STATE_INLINEPARAMVALUE;
+ }
+ break;
+
+ case STATE_PARAMVALUE:
+ if (c==EOL) {
+ paramValue=bufToString();
+ AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ }
+ else if (c=='\n') {
+ appendToBuf(c);
+ state=STATE_PARAMWRAP;
+ }
+ else {
+ appendToBuf(c);
+ }
+ break;
+
+ case STATE_INLINEPARAMVALUE:
+ if (c=='\n') {
+ appendToBuf(c);
+ state=STATE_INLINEPARAMVALUE_BOL;
+ }
+ else if (c==EOL || c=='}') {
+ paramValue=bufToString();
+ AbstractTagImpl newTag = addTag(tags, paramName, paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, true);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ state=prevState;
+ setBufLength(0);
+ }
+ else {
+ appendToBuf(c);
+ }
+ break;
+
+ case STATE_INLINEPARAMVALUE_BOL:
+ if (Parser.isWhitespace(c)) {
+ // ignore
+ }
+ else if (c=='*') {
+ // ignore, but go to STATE_TEXT
+ if (i<endIndex && peek!='*') {
+ state=STATE_IPV_WHITESPACE;
+ }
+ }
+ else if (c==EOL) {
+ if (bufLength()>0) {
+ AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ }
+ }
+ else {
+ state=STATE_INLINEPARAMVALUE;
+ appendToBuf(whitespaceBuf);
+ whitespaceBuf.setLength(0);
+ appendToBuf(c);
+ }
+ break;
+
+ case STATE_IPV_WHITESPACE:
+ if (c=='\n') {
+ whitespaceBuf.append(c);
+ state=STATE_INLINEPARAMVALUE_BOL;
+ }
+ else if (Parser.isWhitespace(c)) {
+ whitespaceBuf.append(c);
+ }
+ else if (c==EOL) {
+ if (bufLength()>0) {
+ AbstractTagImpl newTag = addTag(tags, "text", bufToString(), i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ setBufLength(0);
+ }
+ }
+ else {
+ appendToBuf(whitespaceBuf);
+ whitespaceBuf.setLength(0);
+ appendToBuf(c);
+ state=STATE_INLINEPARAMVALUE;
+ }
+ break;
+
+ case STATE_TEXT:
+ if (i==firstSentenceEnd) {
+ AbstractTagImpl newTag = addTag(tags, "text", bufToString(), true, contextClass, contextMember, contextTag, false);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ setBufLength(0);
+ }
+
+ if (c==EOL) {
+ paramValue=bufToString();
+ AbstractTagImpl newTag = addTag(tags, "text", paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ }
+ else if (c=='\n') {
+ appendToBuf(c);
+ state=STATE_BEGOFLINE;
+ }
+ else if (c=='{' && peek=='@') {
+ paramValue=bufToString();
+ AbstractTagImpl newTag = addTag(tags, "text", paramValue, i<firstSentenceEnd, contextClass, contextMember, contextTag, false);
+ if (null != newTag) {
+ contextTag = newTag;
+ }
+ ++i;
+ setBufLength(0);
+ state=STATE_INLINEPARAM;
+ }
+ else {
+ appendToBuf(c);
+ }
+ break;
+
+ default:
+ throw new Error("illegal state "+state);
+ }
+ }
+
+
+ if (null == contextMember && null != boilerplateComment && Main.getInstance().isCopyLicenseText()) {
+ addTag(tags, "@boilerplate", boilerplateComment, false, contextClass, null, null, false);
+ }
+
+ Map rc=new HashMap();
+
+ for (Iterator it=tags.keySet().iterator(); it.hasNext(); ) {
+ String key=(String)it.next();
+ Tag[] templateArr;
+ List list=(List)tags.get(key);
+
+ if ("see".equals(key))
+ templateArr=new SeeTag[list.size()];
+ else if ("param".equals(key))
+ templateArr=new ParamTag[list.size()];
+ else if ("serialField".equals(key))
+ templateArr=new SerialFieldTag[list.size()];
+ else if ("throws".equals(key) || "exception".equals(key))
+ templateArr=new ThrowsTag[list.size()];
+ else {
+ templateArr=new Tag[list.size()];
+ }
+
+ rc.put(key, list.toArray(templateArr));
+ }
+
+ return rc;
+ }
+
+ private ClassDocImpl getContextClass() {
+ if (isClass() || isInterface()) {
+ return (ClassDocImpl)this;
+ }
+ else if (isField() || isMethod() || isConstructor()) {
+ return (ClassDocImpl)((MemberDocImpl)this).containingClass();
+ }
+ else {
+ return null;
+ }
+ }
+
+ private MemberDocImpl getContextMember() {
+ if (isField() || isMethod() || isConstructor()) {
+ return (MemberDocImpl)this;
+ }
+ else {
+ return null;
+ }
+ }
+
+ protected static AbstractTagImpl addTag(Map tags, String name,
+ String value, boolean isFirstSentence,
+ ClassDocImpl contextClass,
+ MemberDocImpl contextMember,
+ AbstractTagImpl contextTag,
+ boolean isInline) {
+
+ AbstractTagImpl tag = null;
+
+ boolean haveValue = (0 != value.trim().length());
+
+ String emptyWarning = "Empty @" + name + " tag.";
+
+ if (name.equals("param")) {
+ if (haveValue) {
+ tag=new ParamTagImpl(value, contextClass, contextMember);
+ }
+ else {
+ //printWarning(emptyWarning);
+ }
+ }
+ else if (name.equals("see")) {
+ if (haveValue) {
+ tag=new SeeTagImpl(value, contextClass);
+ }
+ else {
+ //printWarning(emptyWarning);
+ }
+ }
+ else if (name.equals("link") || name.equals("linkplain")) {
+ if (haveValue) {
+ tag=new LinkTagImpl("@" + name, value, contextClass);
+ isInline = true;
+ }
+ else {
+ //printWarning(emptyWarning);
+ }
+ }
+ else if (name.equals("value")) {
+ if (haveValue) {
+ tag=new ValueTagImpl(value, contextClass);
+ isInline = true;
+ }
+ else {
+ //printWarning(emptyWarning);
+ }
+ }
+ else if (name.equals("inheritDoc")) {
+ if (haveValue) {
+ //printWarning("@inheritDoc tags are not supposed to have any content.");
+ }
+ tag=new InheritDocTagImpl(contextClass, contextMember, contextTag);
+ isInline = true;
+ }
+ else if (name.equals("serialField")) {
+ if (haveValue) {
+ tag=new SerialFieldTagImpl(value, contextClass, contextMember);
+ }
+ else {
+ //printWarning(emptyWarning);
+ }
+ }
+ else if (name.equals("throws") || name.equals("exception")) {
+ if (haveValue) {
+ tag=new ThrowsTagImpl(value, contextClass, contextMember);
+ }
+ else {
+ //printWarning(emptyWarning);
+ }
+ name="throws";
+ }
+ else if (name.equals("text")) {
+ tag=new TextTagImpl(value);
+ isInline = true;
+ }
+ else {
+ tag=new TagImpl("@"+name, value.trim(), contextClass, contextMember);
+ // FIXME: consider taglets
+ }
+
+ if (tag != null) {
+ if (isInline) {
+ ((List)tags.get("inline")).add(tag);
+ if (isFirstSentence) {
+ if (name.equals("text")) {
+ String txt = ((TextTagImpl)tag).getText();
+ Tag newTag;
+ if (txt.startsWith("<p>")) {
+ newTag = new TextTagImpl(txt.substring(3));
+ }
+ else if (txt.endsWith("</p>")) {
+ newTag = new TextTagImpl(txt.substring(0, txt.length() - 4));
+ }
+ else {
+ newTag = tag;
+ }
+ ((List)tags.get("first")).add(newTag);
+
+ }
+ else {
+ ((List)tags.get("first")).add(tag);
+ }
+ }
+ }
+ else {
+ ((List)tags.get("all")).add(tag);
+ }
+
+ List l=((List)tags.get(name));
+ if (l==null) {
+ l=new LinkedList();
+ tags.put(name,l);
+ }
+ l.add(tag);
+
+ return isInline ? tag : contextTag;
+ }
+ else {
+ return null;
+ }
+ }
+
+ // Return all tags in this Doc item.
+ public Tag[] tags() {
+ Tag[] rc=(Tag[])tagMap.get("all");
+ if (rc==null) rc=new Tag[0];
+ return rc;
+ }
+
+ // Return tags of the specified kind in this Doc item.
+ public Tag[] tags(java.lang.String tagname) {
+ Tag[] rc=(Tag[])tagMap.get(tagname);
+ if (rc==null) rc=new Tag[0];
+ return rc;
+ }
+
+ protected String rawDocumentation;
+ protected long rawDocOffset=-1;
+
+ protected Map tagMap = new HashMap();
+
+ public Map getTagMap() { return tagMap; }
+
+ protected void resolveTags() {
+
+ Tag[] tags=tags();
+ for (int i=0; i<tags.length; ++i) {
+ ((AbstractTagImpl)tags[i]).resolve();
+ }
+
+ Tag[] inlineTags=inlineTags();
+ for (int i=0; i<inlineTags.length; ++i) {
+ ((AbstractTagImpl)inlineTags[i]).resolve();
+ }
+ }
+
+ private static Map classDocToFileMap = new HashMap();
+
+ private static File getFile(ClassDoc classDoc) {
+ File result = (File)classDocToFileMap.get(classDoc);
+ if (null == result) {
+ result = new File(((GjdocPackageDoc)classDoc.containingPackage()).packageDirectory(),
+ classDoc.name() + ".java");
+ classDocToFileMap.put(classDoc, result);
+ }
+ return result;
+ }
+
+ public static SourcePosition getPosition(ClassDoc classDoc)
+ {
+ return new SourcePositionImpl(getFile(classDoc), 0, 0);
+ }
+
+ public static SourcePosition getPosition(ClassDoc classDoc, char[] source, int startIndex)
+ {
+ int column = 0;
+ int line = 0;
+ for (int i=0; i<startIndex; ++i) {
+ if (10 == source[i]) {
+ ++ line;
+ column = 0;
+ }
+ else if (13 != source[i]) {
+ ++ column;
+ }
+ }
+ while (true) {
+ ClassDoc containingClassDoc = classDoc.containingClass();
+ if (null != containingClassDoc) {
+ classDoc = containingClassDoc;
+ }
+ else {
+ break;
+ }
+ }
+
+ File file = getFile(classDoc);
+
+ return new SourcePositionImpl(file, line + 1, column + 1);
+ }
+
+ public SourcePosition position()
+ {
+ return this.position;
+ }
+
+ public DocImpl(SourcePosition position)
+ {
+ this.position = position;
+ }
+
+ public void setPosition(SourcePosition position)
+ {
+ this.position = position;
+ }
+
+ private static TagContainer checkForInheritedDoc(ClassDoc classDoc,
+ MemberDocImpl memberDoc,
+ AbstractTagImpl tag)
+ {
+ DocImpl result;
+
+ if (!(classDoc instanceof ClassDocImpl)) {
+ result = null;
+ }
+ else if (null == memberDoc) {
+ result = (DocImpl)classDoc;
+ }
+ else if (memberDoc.isField()) {
+ result = (DocImpl)((ClassDocImpl)classDoc).getFieldDoc(memberDoc.name());
+ }
+ else if (memberDoc.isMethod()) {
+ result = (DocImpl)((ClassDocImpl)classDoc).getMethodDoc(memberDoc.name(),
+ ((MethodDoc)memberDoc).signature());
+ }
+ else if (memberDoc.isConstructor()) {
+ result = (DocImpl)((ClassDocImpl)classDoc).getConstructorDoc(((ConstructorDoc)memberDoc).signature());
+ }
+ else {
+ //assert(false);
+ throw new RuntimeException("memberDoc is supposed to be field, method or constructor");
+ }
+
+ if (null != result
+ && null != memberDoc
+ && null != tag) {
+
+ TagContainer tagDoc = null;
+
+ Tag[] tags = result.tags();
+ for (int i=0; i<tags.length; ++i) {
+ if (tags[i].kind().equals(tag.kind())) {
+ if ("@param".equals(tag.kind())) {
+ if (((ParamTagImpl)tags[i]).parameterName().equals(((ParamTagImpl)tag).parameterName())) {
+ tagDoc = (TagContainer)tags[i];
+ break;
+ }
+ }
+ else if ("@throws".equals(tag.kind())) {
+ if (((ThrowsTagImpl)tags[i]).exceptionName().equals(((ThrowsTagImpl)tag).exceptionName())) {
+ tagDoc = (TagContainer)tags[i];
+ break;
+ }
+ }
+ else if ("@return".equals(tag.kind())) {
+ tagDoc = (TagContainer)tags[i];
+ }
+ }
+ }
+
+ return tagDoc;
+ }
+
+ if (null == result || result.isEmptyDoc()) {
+ return null;
+ }
+ else {
+ return result;
+ }
+ }
+
+ public static TagContainer findInheritedDoc(ClassDoc classDoc,
+ MemberDocImpl memberDoc,
+ AbstractTagImpl tag)
+ {
+ TagContainer result;
+
+ // (Taken from Javadoc Solaris Tool documentation 1.5,
+ // section "Automatic Copying of Method Comments")
+
+ // Algorithm for Inheriting Method Comments - If a method does
+ // not have a doc comment, or has an {@inheritDoc} tag, the
+ // Javadoc tool searches for an applicable comment using the
+ // following algorithm, which is designed to find the most
+ // specific applicable doc comment, giving preference to
+ // interfaces over superclasses:
+
+ // 1. Look in each directly implemented (or extended) interface
+ // in the order they appear following the word implements (or
+ // extends) in the method declaration. Use the first doc comment
+ // found for this method.
+
+ ClassDoc[] interfaces = classDoc.interfaces();
+ if (null != interfaces) {
+ for (int i=0; i<interfaces.length; ++i) {
+ result = checkForInheritedDoc(interfaces[i], memberDoc, tag);
+ if (null != result) {
+ return result;
+ }
+ }
+ }
+
+ // 2. If step 1 failed to find a doc comment, recursively apply
+ // this entire algorithm to each directly implemented (or
+ // extended) interface, in the same order they were examined
+ // in step 1.
+
+ if (null != interfaces) {
+ for (int i=0; i<interfaces.length; ++i) {
+ result = findInheritedDoc(interfaces[i], memberDoc, tag);
+ if (null != result) {
+ return result;
+ }
+ }
+ }
+
+ ClassDoc superclassDoc = classDoc.superclass();
+
+ // 3. If step 2 failed to find a doc comment and this is a class
+ // other than Object (not an interface):
+ if (!classDoc.isInterface()
+ && null != superclassDoc
+ && !"java.lang.Object".equals(classDoc.qualifiedTypeName())) {
+
+ // 3a. If the superclass has a doc comment for this method, use it.
+
+ result = checkForInheritedDoc(superclassDoc, memberDoc, tag);
+ if (null != result) {
+ return result;
+ }
+
+ // 3b. If step 3a failed to find a doc comment, recursively
+ // apply this entire algorithm to the superclass.
+
+ return findInheritedDoc(superclassDoc,
+ memberDoc, tag);
+ }
+ else {
+ return null;
+ }
+ }
+
+ public boolean isEmptyDoc()
+ {
+ return tagMap.isEmpty();
+ }
+
+ void setBoilerplateComment(String boilerplateComment)
+ {
+ this.boilerplateComment = boilerplateComment;
+ }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java
new file mode 100644
index 0000000..a72c53e
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ErrorReporter.java
@@ -0,0 +1,104 @@
+/* gnu.classpath.tools.gjdoc.ErrorReporter
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.io.*;
+import java.util.*;
+import java.lang.reflect.*;
+
+/**
+ * Simple implementation of a <code>DocErrorReporter</code>: writes
+ * to <code>System.err</code>.
+ */
+public class ErrorReporter implements DocErrorReporter {
+
+ private PrintStream out;
+
+ /**
+ * Keeps track of the number of errors occured
+ * during generation.
+ */
+ private int errorCount=0;
+
+ /**
+ * Keeps track of the number of warnings occured
+ * during generation.
+ */
+ private int warningCount=0;
+
+ /*
+ * When <code>true</code>, no notices will be emitted.
+ */
+ private boolean quiet = false;
+
+ /*
+ * When <code>true</code>, no warnings will be emitted.
+ */
+ private boolean noWarn = false;
+
+ public ErrorReporter()
+ {
+ this.out = System.err;
+ }
+
+ // Print error message, increment error count.
+ public void printError(java.lang.String msg) {
+ out.println("ERROR: "+msg);
+ ++errorCount;
+ }
+
+ // Print error message, increment error count.
+ public void printFatal(java.lang.String msg) {
+ out.println("FATAL: "+msg);
+ System.exit(10);
+ }
+
+ // Print a message.
+ public void printNotice(java.lang.String msg) {
+ if (!quiet) {
+ out.println(msg);
+ }
+ }
+
+ // Print warning message, increment warning count.
+ public void printWarning(java.lang.String msg) {
+ if (!noWarn) {
+ out.println("WARNING: "+msg);
+ ++warningCount;;
+ }
+ }
+
+ public int getErrorCount() {
+ return errorCount;
+ }
+
+ public int getWarningCount() {
+ return warningCount;
+ }
+
+ /**
+ * Specify whether notices should be printed.
+ */
+ public void setQuiet(boolean quiet) {
+ this.quiet = quiet;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java
new file mode 100644
index 0000000..7dcdd25
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ExecutableMemberDocImpl.java
@@ -0,0 +1,411 @@
+/* gnu.classpath.tools.gjdoc.ExecutableMemberDocImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import java.io.*;
+import com.sun.javadoc.*;
+
+public class ExecutableMemberDocImpl extends MemberDocImpl implements ExecutableMemberDoc {
+
+ protected ExecutableMemberDocImpl(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ SourcePosition position) {
+
+ super(containingClass,
+ containingPackage,
+ position);
+ }
+
+ protected boolean processModifier(String word) {
+ if (super.processModifier(word)) {
+ return true;
+ }
+ else if (word.equals("synchronized")) {
+ isSynchronized=true;
+ return true;
+ }
+ else if (word.equals("native")) {
+ isNative=true;
+ return true;
+ }
+ else if (word.equals("abstract")) {
+ isAbstract=true;
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+
+ private boolean isAbstract=false;
+ private boolean isNative=false;
+ private boolean isSynchronized=false;
+
+ public boolean isAbstract() { return isAbstract; }
+
+ public boolean isNative() { return isNative; }
+
+ public boolean isSynchronized() { return isSynchronized; }
+
+ public ClassDoc[] thrownExceptions() { return thrownExceptions; }
+
+ public Parameter[] parameters() { return parameters; }
+
+ public ThrowsTag[] throwsTags() {
+ return (ThrowsTag[])getTagArr("throws", throwsTagEmptyArr);
+ }
+
+ public ParamTag[] paramTags() {
+ return (ParamTag[])getTagArr("param", paramTagEmptyArr);
+ }
+
+ public String signature() { return signature; }
+ public String flatSignature() { return flatSignature; }
+
+ public ClassDoc overriddenClass() {
+ for (ClassDoc cdi=(ClassDoc)containingClass().superclass(); cdi!=null; cdi=(ClassDoc)cdi.superclass()) {
+ if (null!=ClassDocImpl.findMethod(cdi, name(), signature()))
+ return cdi;
+ }
+ return null;
+ }
+
+ public static ExecutableMemberDocImpl createFromSource(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ char[] source, int startIndex, int endIndex) throws IOException, ParseException {
+
+ int lastchar=32;
+ StringBuffer methodName=new StringBuffer();
+ for (int i=startIndex; i<endIndex && source[i]!='('; ++i) {
+ if ((Parser.WHITESPACE.indexOf(lastchar)>=0 && Parser.WHITESPACE.indexOf(source[i])<0)
+ || (lastchar == ']' && Parser.WHITESPACE.indexOf(source[i])<0 && '[' != source[i])) {
+ methodName.setLength(0);
+ methodName.append(source[i]);
+ }
+ else if (Parser.WHITESPACE.indexOf(source[i])<0) {
+ methodName.append(source[i]);
+ }
+ lastchar=source[i];
+ }
+
+ ExecutableMemberDocImpl rc;
+
+ SourcePosition position = DocImpl.getPosition(containingClass, source, startIndex);
+
+ if (methodName.toString().equals(((ClassDocImpl)containingClass).getClassName())) {
+
+ // Constructor
+
+ rc=new ConstructorDocImpl(containingClass,
+ containingPackage,
+ position);
+ }
+ else {
+
+ // Normal method
+
+ rc=new MethodDocImpl(containingClass,
+ containingPackage,
+ position);
+ }
+
+ if (containingClass.isInterface())
+ rc.accessLevel=ACCESS_PUBLIC;
+
+ int ndx=rc.parseModifiers(source, startIndex, endIndex);
+ StringBuffer name = new StringBuffer();
+
+ final int STATE_NORMAL=1;
+ final int STATE_STARC=2;
+ final int STATE_SLASHC=3;
+
+ int state=STATE_NORMAL;
+
+ while (source[ndx]!='(' && ndx<endIndex) {
+ if (state==STATE_NORMAL) {
+ if (ndx<endIndex-1 && source[ndx]=='/' && source[ndx+1]=='/') {
+ ++ndx;
+ state=STATE_SLASHC;
+ }
+ else if (ndx<endIndex-1 && source[ndx]=='/' && source[ndx+1]=='*') {
+ ++ndx;
+ state=STATE_STARC;
+ }
+ else {
+ name.append(source[ndx]);
+ }
+ }
+ else if (state==STATE_SLASHC) {
+ if (source[ndx]=='\n')
+ state=STATE_NORMAL;
+ }
+ else if (state==STATE_STARC) {
+ if (ndx<endIndex-1 && source[ndx]=='*' && source[ndx+1]=='/') {
+ ++ndx;
+ state=STATE_NORMAL;
+ }
+ }
+ ++ndx;
+ }
+ rc.setName(name.toString().trim());
+
+ state=STATE_NORMAL;
+
+ ++ndx;
+ int endx;
+ String param="";
+ List parameterList=new ArrayList();
+ for (endx=ndx; endx<endIndex; ++endx) {
+ if (state==STATE_SLASHC) {
+ if (source[endx]=='\n') {
+ state=STATE_NORMAL;
+ }
+ }
+ else if (state==STATE_STARC) {
+ if (source[endx]=='*' && source[endx+1]=='/') {
+ state=STATE_NORMAL;
+ ++endx;
+ }
+ }
+ else if (source[endx]=='/' && source[endx+1]=='*') {
+ state=STATE_STARC;
+ ++endx;
+ }
+ else if (source[endx]=='/' && source[endx+1]=='/') {
+ state=STATE_SLASHC;
+ ++endx;
+ }
+ else if (source[endx]==',' || source[endx]==')') {
+ param=param.trim();
+ if (param.length()>0) {
+ int n = param.length()-1;
+ int paramNameStart = 0;
+ while (n >= 0) {
+ char c = param.charAt(n);
+ if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) {
+ paramNameStart = n + 1;
+ break;
+ }
+ else {
+ -- n;
+ }
+ }
+ while (n >= 0 && ('[' == param.charAt(n)
+ || ']' == param.charAt(n)
+ || Parser.WHITESPACE.indexOf(param.charAt(n))>=0)) {
+ -- n;
+ }
+ int paramTypeEnd = n + 1;
+ int paramTypeStart = 0;
+ while (n >= 0) {
+ char c = param.charAt(n);
+ if ('[' == c || ']' == c || Parser.WHITESPACE.indexOf(c)>=0) {
+ paramTypeStart = n + 1;
+ break;
+ }
+ else {
+ -- n;
+ }
+ }
+
+ String paramType;
+ String paramName;
+ if (0 != paramNameStart) {
+ paramType=param.substring(paramTypeStart, paramTypeEnd);
+ paramName=param.substring(paramNameStart);
+ }
+ else {
+ paramName = "";
+ StringBuffer paramTypeBuffer = new StringBuffer();
+ for (int i=0; i<param.length(); ++i) {
+ char c = param.charAt(i);
+ if ('[' != c && ']' != c && Parser.WHITESPACE.indexOf(c)<0) {
+ paramTypeBuffer.append(c);
+ }
+ }
+ paramType = paramTypeBuffer.toString();
+ }
+ String dimSuffix="";
+
+ for (int i=0; i<param.length(); ++i) {
+ if ('[' == param.charAt(i)) {
+ dimSuffix += "[]";
+ }
+ }
+ paramType+=dimSuffix;
+
+ if (paramType.startsWith("[")) {
+ System.err.println("broken param type in " + rc + " in " +containingClass);
+ }
+
+ parameterList.add(new ParameterImpl(paramName, paramType,
+ ((ClassDocImpl)containingClass).typeForString(paramType)));
+
+ param="";
+ }
+ }
+ else
+ param+=source[endx];
+
+ if (source[endx]==')' && state==STATE_NORMAL)
+ break;
+ }
+
+ rc.setParameters((Parameter[])parameterList.toArray(new Parameter[0]));
+
+ ++endx;
+ String word="";
+ String dimSuffix="";
+ boolean haveThrowsKeyword=false;
+ List thrownExceptionsList=new ArrayList();
+
+ state=STATE_NORMAL;
+ for (; endx<endIndex; ++endx) {
+ if (state==STATE_SLASHC) {
+ if (source[endx]=='\n') state=STATE_NORMAL;
+ }
+ else if (state==STATE_STARC) {
+ if (source[endx]=='*' && source[endx+1]=='/') {
+ state=STATE_NORMAL;
+ ++endx;
+ }
+ }
+ else if (source[endx]=='/' && source[endx+1]=='*') {
+ state=STATE_STARC;
+ ++endx;
+ }
+ else if (source[endx]=='/' && source[endx+1]=='/') {
+ state=STATE_SLASHC;
+ ++endx;
+ }
+ else if (Parser.WHITESPACE.indexOf(source[endx])>=0) {
+ word=word.trim();
+ if (!haveThrowsKeyword && word.length()>0) {
+ if (word.equals("throws")) haveThrowsKeyword=true;
+ else System.err.println("ARGH! "+word);
+ word="";
+ }
+ }
+ else if (source[endx]=='[' || source[endx]==']') {
+ dimSuffix += source[endx];
+ }
+ else if (source[endx]==',' || source[endx]=='{' || source[endx]==';') {
+ word=word.trim();
+ if (word.length()>0) {
+ ClassDoc exceptionType=rc.containingClass().findClass(word);
+ if (exceptionType==null) {
+ exceptionType=new ClassDocProxy(word,
+ rc.containingClass());
+ }
+ thrownExceptionsList.add(exceptionType);
+ }
+ if (source[endx]=='{') {
+ break;
+ }
+ else {
+ word="";
+ }
+ }
+ else {
+ word+=source[endx];
+ }
+ }
+
+ if (dimSuffix.length()>0) {
+ rc.setTypeName(rc.getTypeName()+dimSuffix);
+ }
+
+ rc.setThrownExceptions((ClassDoc[])thrownExceptionsList.toArray(new ClassDoc[0]));
+
+ return rc;
+ }
+
+ private ClassDoc[] thrownExceptions;
+ private Parameter[] parameters;
+ private String signature;
+ private String flatSignature;
+
+ void setParameters(Parameter[] parameters) {
+ this.parameters=parameters;
+ }
+
+ void setThrownExceptions(ClassDoc[] thrownExceptions) {
+ this.thrownExceptions=thrownExceptions;
+ }
+
+ void resolve() {
+
+ for (int i=0; i<thrownExceptions.length; ++i) {
+ if (thrownExceptions[i] instanceof ClassDocProxy) {
+ String className=thrownExceptions[i].qualifiedName();
+ ClassDoc realClassDoc=containingClass().findClass(className);
+ if (realClassDoc!=null)
+ thrownExceptions[i]=realClassDoc;
+ }
+ }
+
+ StringBuffer signatureBuf=new StringBuffer();
+ StringBuffer flatSignatureBuf=new StringBuffer();
+
+ for (int i=0; i<parameters.length; ++i) {
+ ((ParameterImpl)parameters[i]).resolve(containingClass());
+
+ if (signatureBuf.length()>0) {
+ signatureBuf.append(",");
+ flatSignatureBuf.append(",");
+ }
+ signatureBuf.append(parameters[i].type().qualifiedTypeName());
+ flatSignatureBuf.append(parameters[i].type().typeName());
+ signatureBuf.append(parameters[i].type().dimension());
+ flatSignatureBuf.append(parameters[i].type().dimension());
+ }
+ this.signature="("+signatureBuf.toString()+")";
+ this.flatSignature="("+flatSignatureBuf.toString()+")";
+
+ super.resolve();
+
+ }
+
+ public int compareTo(Object other) {
+ int rc;
+ if (other instanceof MemberDocImpl) {
+ MemberDocImpl otherMember = (MemberDocImpl)other;
+ rc = name().compareTo(otherMember.name());
+ if (0 == rc) {
+ if (other instanceof ExecutableMemberDocImpl) {
+ rc = signature().compareTo(((ExecutableMemberDocImpl)other).signature());
+ if (0 == rc) {
+ return containingClass().compareTo(otherMember.containingClass());
+ }
+ }
+ else {
+ rc = 1;
+ }
+ }
+ }
+ else {
+ rc = 1;
+ }
+ return rc;
+ }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java
new file mode 100644
index 0000000..8d5b66f
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/FieldDocImpl.java
@@ -0,0 +1,392 @@
+/* gnu.classpath.tools.gjdoc.FieldDocImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import com.sun.javadoc.*;
+import java.lang.reflect.Modifier;
+
+import gnu.classpath.tools.gjdoc.expr.Evaluator;
+import gnu.classpath.tools.gjdoc.expr.CircularExpressionException;
+import gnu.classpath.tools.gjdoc.expr.IllegalExpressionException;
+
+public class FieldDocImpl
+ extends MemberDocImpl
+ implements FieldDoc, Cloneable
+{
+
+ private boolean isTransient;
+ private boolean isVolatile;
+ private String valueLiteral;
+ private Object constantValue;
+ private boolean constantValueEvaluated;
+
+ private FieldDocImpl(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ SourcePosition position) {
+
+ super(containingClass,
+ containingPackage,
+ position);
+ }
+
+ private static FieldDocImpl createFieldDoc(FieldDocImpl prototype,
+ String fieldDef,
+ String fieldValueLiteral)
+ {
+ if (null != fieldValueLiteral && fieldValueLiteral.length() == 0) {
+ fieldValueLiteral = null;
+ }
+
+ try {
+ FieldDocImpl fieldDoc=(FieldDocImpl)prototype.clone();
+ String dimSuffix="";
+ while (fieldDef.trim().endsWith("[")
+ || fieldDef.trim().endsWith("]")) {
+ fieldDef=fieldDef.trim();
+ dimSuffix=fieldDef.charAt(fieldDef.length()-1)+dimSuffix;
+ fieldDef=fieldDef.substring(0,fieldDef.length()-1);
+ }
+
+ fieldDoc.setTypeName(fieldDoc.getTypeName()+dimSuffix);
+ fieldDoc.setName(fieldDef.trim());
+ fieldDoc.setValueLiteral(fieldValueLiteral);
+ return fieldDoc;
+ }
+ catch (CloneNotSupportedException e) {
+ // should not happen
+ e.printStackTrace();
+ return null;
+ }
+ }
+
+ public static Collection createFromSource(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ char[] source, int startIndex, int endIndex) {
+
+ List rcList=new ArrayList();
+
+ FieldDocImpl fd=new FieldDocImpl(containingClass,
+ containingPackage,
+ DocImpl.getPosition(containingClass, source, startIndex));
+
+ int ndx=fd.parseModifiers(source, startIndex, endIndex);
+
+ if (containingClass.isInterface()) {
+ fd.accessLevel = ACCESS_PUBLIC;
+ }
+
+ final int STATE_FIELDNAME = 1;
+ final int STATE_FIELDVALUE = 2;
+ final int STATE_QUOTE = 3;
+ final int STATE_QUOTEBS = 4;
+ final int STATE_SQUOTE = 5;
+ final int STATE_SQUOTEBS = 6;
+ final int STATE_COMMENT = 7;
+ final int STATE_LINECOMMENT = 8;
+
+ int lastFieldDefStart = ndx;
+ int state = STATE_FIELDNAME;
+ int prevState = state;
+
+ int bracketCount = 0;
+
+ StringBuffer fieldNameBuf = new StringBuffer();
+ StringBuffer fieldValueLiteralBuf = new StringBuffer();
+
+ for (int i=ndx; i<endIndex; ++i) {
+
+ char c = source[i];
+ char nextChar = '\0';
+ if (i + 1 < endIndex) {
+ nextChar = source[i + 1];
+ }
+ switch (state) {
+ case STATE_FIELDNAME:
+ if ('/' == c && '/' == nextChar) {
+ prevState = state;
+ state = STATE_LINECOMMENT;
+ }
+ else if ('/' == c && '*' == nextChar) {
+ prevState = state;
+ state = STATE_COMMENT;
+ }
+ else if (',' == c || ';' == c) {
+ rcList.add(createFieldDoc(fd, fieldNameBuf.toString(), null));
+ fieldNameBuf.setLength(0);
+ }
+ else if ('=' == c) {
+ state = STATE_FIELDVALUE;
+ }
+ else if (!(' ' == c || '\n' == c || '\r' == c || '\t' == c)) {
+ fieldNameBuf.append(c);
+ }
+ break;
+
+ case STATE_FIELDVALUE:
+ if ('/' == c && '/' == nextChar) {
+ prevState = state;
+ state = STATE_LINECOMMENT;
+ }
+ else if ('/' == c && '*' == nextChar) {
+ prevState = state;
+ state = STATE_COMMENT;
+ }
+ else if ('\"' == c) {
+ prevState = state;
+ state = STATE_QUOTE;
+ fieldValueLiteralBuf.append(c);
+ }
+ else if ('\'' == c) {
+ prevState = state;
+ state = STATE_SQUOTE;
+ fieldValueLiteralBuf.append(c);
+ }
+ else if ('{' == c || '(' == c) {
+ ++ bracketCount;
+ fieldValueLiteralBuf.append(c);
+ }
+ else if ('}' == c || ')' == c) {
+ -- bracketCount;
+ fieldValueLiteralBuf.append(c);
+ }
+ else if (0 == bracketCount && (',' == c || ';' == c)) {
+ rcList.add(createFieldDoc(fd, fieldNameBuf.toString(),
+ fieldValueLiteralBuf.toString()));
+ fieldNameBuf.setLength(0);
+ fieldValueLiteralBuf.setLength(0);
+ state = STATE_FIELDNAME;
+ }
+ else {
+ fieldValueLiteralBuf.append(c);
+ }
+ break;
+
+ case STATE_QUOTE:
+ fieldValueLiteralBuf.append(c);
+ if ('\\' == c) {
+ state = STATE_QUOTEBS;
+ }
+ else if ('\"' == c) {
+ state = prevState;
+ }
+ break;
+
+ case STATE_SQUOTE:
+ fieldValueLiteralBuf.append(c);
+ if ('\\' == c) {
+ state = STATE_SQUOTEBS;
+ }
+ else if ('\'' == c) {
+ state = prevState;
+ }
+ break;
+
+ case STATE_QUOTEBS:
+ fieldValueLiteralBuf.append(c);
+ state = STATE_QUOTE;
+ break;
+
+ case STATE_SQUOTEBS:
+ fieldValueLiteralBuf.append(c);
+ state = STATE_SQUOTE;
+ break;
+
+ case STATE_LINECOMMENT:
+ if ('\n' == c) {
+ state = prevState;
+ }
+ break;
+
+ case STATE_COMMENT:
+ if ('*' == c && '/' == nextChar) {
+ ++ i;
+ state = prevState;
+ }
+ break;
+ }
+ }
+
+ if (fieldNameBuf.length() > 0) {
+ rcList.add(createFieldDoc(fd, fieldNameBuf.toString(),
+ fieldValueLiteralBuf.toString()));
+ }
+
+ return rcList;
+ }
+
+ public boolean isField() {
+ return true;
+ }
+
+ public boolean isTransient() { return isTransient; }
+
+ public boolean isVolatile() { return isVolatile; }
+
+ public SerialFieldTag[] serialFieldTags() { return new SerialFieldTag[0]; }
+
+ public int modifierSpecifier() {
+ return super.modifierSpecifier()
+ | (isVolatile()?Modifier.VOLATILE:0)
+ | (isTransient()?Modifier.TRANSIENT:0)
+ ;
+ }
+
+ protected boolean processModifier(String word) {
+ if (super.processModifier(word)) {
+ return true;
+ }
+ else if (word.equals("transient")) {
+ isTransient=true;
+ return true;
+ }
+ else if (word.equals("volatile")) {
+ isVolatile=true;
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+
+ void resolve() {
+ resolveTags();
+ }
+
+ public boolean hasSerialTag() {
+ return true; //tagMap.get("serial")!=null;
+ }
+
+ public String toString() { return name(); }
+
+ public Object constantValue() {
+ return constantValue(new HashSet());
+ }
+
+ public Object constantValue(Set visitedFields) {
+ if (!isStatic()
+ || !isFinal()
+ || (!type().isPrimitive() && !"java.lang.String".equals(type().qualifiedTypeName()))
+ || type.dimension().length()>0
+ || null == valueLiteral) {
+
+ return null;
+
+ }
+ else {
+ if (!constantValueEvaluated) {
+
+ visitedFields.add(this);
+
+ String expression = "(" + type().typeName() + ")(" + valueLiteral + ")";
+ try {
+ this.constantValue = Evaluator.evaluate(expression,
+ visitedFields,
+ (ClassDocImpl)containingClass());
+ }
+ catch (CircularExpressionException e) {
+ // FIXME: This should use the error reporter
+ System.err.println("WARNING: Cannot resolve expression for field " + containingClass.qualifiedTypeName() + "." + name() + ": " + e.getMessage());
+ }
+ catch (IllegalExpressionException ignore) {
+ }
+ constantValueEvaluated = true;
+ }
+ return this.constantValue;
+ }
+ }
+
+ private static void appendCharString(StringBuffer result, char c, boolean inSingleCuotes)
+ {
+ switch (c) {
+ case '\b': result.append("\\b"); break;
+ case '\t': result.append("\\t"); break;
+ case '\n': result.append("\\n"); break;
+ case '\f': result.append("\\f"); break;
+ case '\r': result.append("\\r"); break;
+ case '\"': result.append("\\\""); break;
+ case '\'': result.append(inSingleCuotes ? "\\'" : "'"); break;
+ default:
+ if (c >= 32 && c <= 127) {
+ result.append(c);
+ }
+ else {
+ result.append("\\u");
+ String hexValue = Integer.toString((int)c, 16);
+ int zeroCount = 4 - hexValue.length();
+ for (int i=0; i<zeroCount; ++i) {
+ result.append('0');
+ }
+ result.append(hexValue);
+ }
+ }
+ }
+
+ public String constantValueExpression() {
+ Object value = constantValue();
+
+ if (null == value) {
+ return "null";
+ }
+ else if (value instanceof String) {
+ StringBuffer result = new StringBuffer("\"");
+ char[] chars = ((String)value).toCharArray();
+ for (int i=0; i<chars.length; ++i) {
+ appendCharString(result, chars[i], false);
+ }
+ result.append("\"");
+ return result.toString();
+ }
+ else if (value instanceof Float) {
+ return value.toString() + "f";
+ }
+ else if (value instanceof Long) {
+ return value.toString() + "L";
+ }
+ else if (value instanceof Character) {
+ StringBuffer result = new StringBuffer("'");
+ appendCharString(result, ((Character)value).charValue(), false);
+ result.append("'");
+ return result.toString();
+ }
+ else /* if (value instanceof Double
+ || value instanceof Integer
+ || value instanceof Short
+ || value instanceof Byte) */ {
+ return value.toString();
+ }
+ }
+
+ void setValueLiteral(String valueLiteral)
+ {
+ this.valueLiteral = valueLiteral;
+ }
+
+ public boolean isStatic()
+ {
+ return super.isStatic() || containingClass().isInterface();
+ }
+
+ public boolean isFinal()
+ {
+ return super.isFinal() || containingClass().isInterface();
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java
new file mode 100644
index 0000000..3a3e38f
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocPackageDoc.java
@@ -0,0 +1,39 @@
+/* gnu.classpath.tools.gjdoc.GjdocPackageDoc
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.io.File;
+import com.sun.javadoc.PackageDoc;
+
+/**
+ * Extension of the PackageDoc interface which additionally provides
+ * the directory the package's source files are located in.
+ *
+ * @author Julian Scheid
+ */
+public interface GjdocPackageDoc extends PackageDoc
+{
+ /**
+ * Returns the directory this package's source files are located
+ * in.
+ */
+ public File packageDirectory();
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java
new file mode 100644
index 0000000..65020d7
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/GjdocRootDoc.java
@@ -0,0 +1,39 @@
+/* gnu.classpath.tools.gjdoc.GjdocRootDoc
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.io.File;
+import com.sun.javadoc.RootDoc;
+
+/**
+ * Extension of the RootDoc interface which additionally provides
+ * a method for flushing all state.
+ *
+ * @author Julian Scheid
+ */
+public interface GjdocRootDoc extends RootDoc
+{
+ /**
+ * Invalidate this RootDoc by flushing all associated data, but
+ * keep its error reporting functionality intact.
+ */
+ public void flush();
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java
new file mode 100644
index 0000000..773c5fd
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/InheritDocTagImpl.java
@@ -0,0 +1,86 @@
+/* gnu.classpath.tools.gjdoc.InheritDocTagImpl
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+/**
+ * Represents the <code>inheritDoc</code> tag.
+ */
+public class InheritDocTagImpl
+ extends AbstractTagImpl
+{
+ private ClassDocImpl contextClass;
+ private MemberDocImpl contextMember;
+ private AbstractTagImpl contextTag;
+
+ public InheritDocTagImpl(ClassDocImpl contextClass,
+ MemberDocImpl contextMember,
+ AbstractTagImpl contextTag)
+ {
+ super("");
+ this.contextClass = contextClass;
+ this.contextMember = contextMember;
+ this.contextTag = contextTag;
+ }
+
+ public String kind() {
+ return "@inheritDoc";
+ }
+
+ public String name() {
+ return "@inheritDoc";
+ }
+
+ private TagContainer inheritedDoc;
+ private boolean inheritedDocInitialized = false;
+
+ private TagContainer getInheritedDoc()
+ {
+ if (!inheritedDocInitialized) {
+ inheritedDoc = DocImpl.findInheritedDoc(contextClass, contextMember, contextTag);
+ inheritedDocInitialized = true;
+ }
+ return inheritedDoc;
+ }
+
+ public Tag[] firstSentenceTags() {
+ TagContainer _inheritedDoc = getInheritedDoc();
+ if (_inheritedDoc != null) {
+ return _inheritedDoc.firstSentenceTags();
+ }
+ else {
+ return null;
+ }
+ }
+
+ public Tag[] inlineTags() {
+ TagContainer _inheritedDoc = getInheritedDoc();
+ if (_inheritedDoc != null) {
+ return _inheritedDoc.inlineTags();
+ }
+ else {
+ return null;
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java
new file mode 100644
index 0000000..3728630
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/JavadocWrapper.java
@@ -0,0 +1,36 @@
+/* gnu.classpath.tools.gjdoc.JavadocWrapper
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import java.io.*;
+import com.sun.javadoc.*;
+
+public class JavadocWrapper {
+
+ public static void main(String[] args) throws Exception {
+
+ Timer.setStartTime();
+ Class sunJavadocMain=Class.forName("com.sun.tools.javadoc.Main");
+ sunJavadocMain.getMethod("main", new Class[]{String[].class}).invoke(null, new Object[]{args});
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java
new file mode 100644
index 0000000..167c515
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/LinkTagImpl.java
@@ -0,0 +1,46 @@
+/* gnu.classpath.tools.gjdoc.LinkTagImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class LinkTagImpl extends SeeTagImpl {
+
+ private String name;
+
+ public LinkTagImpl(String name, String _text, ClassDocImpl contextClass) {
+ super(_text, contextClass);
+ this.name = name;
+ }
+
+ public String name() { return name; }
+
+ public Tag[] firstSentenceTags() {
+ return new Tag[0]; //inlineTags();
+ }
+
+ public Tag[] inlineTags() {
+ return new Tag[0]; //new Tag[]{new TextTagImpl(referencedClassName)};
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java
new file mode 100644
index 0000000..6c2c77e
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Main.java
@@ -0,0 +1,1846 @@
+/* gnu.classpath.tools.gjdoc.Main
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.io.*;
+import java.util.*;
+import java.lang.reflect.*;
+import java.text.Collator;
+
+import gnu.classpath.tools.FileSystemClassLoader;
+
+/**
+ * Class that will launch the gjdoc tool.
+ */
+public final class Main
+{
+
+ /**
+ * Do we load classes that are referenced as base class?
+ */
+ static final boolean DESCEND_SUPERCLASS = true;
+
+ /**
+ * Do we load classes that are referenced as interface?
+ */
+ static final boolean DESCEND_INTERFACES = false;
+
+ /**
+ * Do we load classes that are imported in a source file?
+ */
+ static final boolean DESCEND_IMPORTED = true;
+
+ /**
+ * Document only public members.
+ */
+ static final int COVERAGE_PUBLIC = 0;
+
+ /**
+ * Document only public and protected members.
+ */
+ static final int COVERAGE_PROTECTED = 1;
+
+ /**
+ * Document public, protected and package private members.
+ */
+ static final int COVERAGE_PACKAGE = 2;
+
+ /**
+ * Document all members.
+ */
+ static final int COVERAGE_PRIVATE = 3;
+
+ /*
+ * FIXME: This should come from a ResourceBundle
+ */
+ private static final String STRING_TRY_GJDOC_HELP =
+ "Try `gjdoc --help' for more information.";
+
+ /**
+ * Grid for looking up whether a particular access level is included in the
+ * documentation.
+ */
+ static final boolean[][] coverageTemplates = new boolean[][]
+ { new boolean[]
+ { true, false, false, false }, // public
+ new boolean[]
+ { true, true, false, false }, // protected
+ new boolean[]
+ { true, true, true, false }, // package
+ new boolean[]
+ { true, true, true, true }, // private
+ };
+
+ /**
+ * Holds the Singleton instance of this class.
+ */
+ private static Main instance = new Main();
+
+ /**
+ * Avoid re-instantiation of this class.
+ */
+ private Main()
+ {
+ }
+
+ private static RootDocImpl rootDoc;
+
+ private ErrorReporter reporter;
+
+ /**
+ * Cache for version string from resource /version.properties
+ */
+ private String gjdocVersion;
+
+ /**
+ * <code>false</code> during Phase I: preparation of the documentation data.
+ * <code>true</code> during Phase II: documentation output by doclet.
+ */
+ boolean docletRunning = false;
+
+ //---- Command line options
+
+ /**
+ * Option "-doclet": name of the Doclet class to use.
+ */
+ private String option_doclet = "gnu.classpath.tools.doclets.htmldoclet.HtmlDoclet";
+
+ /**
+ * Option "-overview": path to the special overview file.
+ */
+ private String option_overview;
+
+ /**
+ * Option "-coverage": which members to include in generated documentation.
+ */
+ private int option_coverage = COVERAGE_PROTECTED;
+
+ /**
+ * Option "-help": display command line usage.
+ */
+ private boolean option_help;
+
+ /**
+ * Option "-docletpath": path to doclet classes.
+ */
+ private String option_docletpath;
+
+ /**
+ * Option "-classpath": path to additional classes.
+ */
+ private String option_classpath;
+
+ /**
+ * Option "-sourcepath": path to the Java source files to be documented.
+ * FIXME: this should be a list of paths
+ */
+ private List option_sourcepath = new ArrayList();
+
+ /**
+ * Option "-extdirs": path to Java extension files.
+ */
+ private String option_extdirs;
+
+ /**
+ * Option "-verbose": Be verbose when generating documentation.
+ */
+ private boolean option_verbose;
+
+ /**
+ * Option "-nowarn": Do not print warnings.
+ */
+ private boolean option_nowarn;
+
+ /**
+ * Option "-locale:" Specify the locale charset of Java source files.
+ */
+ private Locale option_locale = new Locale("en", "us");
+
+ /**
+ * Option "-encoding": Specify character encoding of Java source files.
+ */
+ private String option_encoding;
+
+ /**
+ * Option "-J": Specify flags to be passed to Java runtime.
+ */
+ private List option_java_flags = new LinkedList(); //ArrayList();
+
+ /**
+ * Option "-source:" should be 1.4 to handle assertions, 1.1 is no
+ * longer supported.
+ */
+ private String option_source = "1.2";
+
+ /**
+ * Option "-subpackages": list of subpackages to be recursively
+ * added.
+ */
+ private List option_subpackages = new ArrayList();
+
+ /**
+ * Option "-exclude": list of subpackages to exclude.
+ */
+ private List option_exclude = new ArrayList();
+
+ /**
+ * Option "-breakiterator" - whether to use BreakIterator for
+ * detecting the end of the first sentence.
+ */
+ private boolean option_breakiterator;
+
+ /**
+ * Option "-licensetext" - whether to copy license text.
+ */
+ private boolean option_licensetext;
+
+ /**
+ * The locale-dependent collator used for sorting.
+ */
+ private Collator collator;
+
+ /**
+ * true when --version has been specified on the command line.
+ */
+ private boolean option_showVersion;
+
+ /**
+ * true when -bootclasspath has been specified on the command line.
+ */
+ private boolean option_bootclasspath_specified;
+
+ /**
+ * true when -all has been specified on the command line.
+ */
+ private boolean option_all;
+
+ /**
+ * true when -reflection has been specified on the command line.
+ */
+ private boolean option_reflection;
+
+ // TODO: add the rest of the options as instance variables
+
+ /**
+ * Parse all source files/packages and subsequentially start the Doclet given
+ * on the command line.
+ *
+ * @param allOptions List of all command line tokens
+ */
+ private boolean startDoclet(List allOptions)
+ {
+
+ try
+ {
+
+ //--- Fetch the Class object for the Doclet.
+
+ Debug.log(1, "loading doclet class...");
+
+ Class docletClass;
+
+ if (null != option_docletpath) {
+ try {
+ FileSystemClassLoader docletPathClassLoader
+ = new FileSystemClassLoader(option_docletpath);
+ System.err.println("trying to load class " + option_doclet + " from path " + option_docletpath);
+ docletClass = docletPathClassLoader.findClass(option_doclet);
+ }
+ catch (Exception e) {
+ docletClass = Class.forName(option_doclet);
+ }
+ }
+ else {
+ docletClass = Class.forName(option_doclet);
+ }
+ //Object docletInstance = docletClass.newInstance();
+
+ Debug.log(1, "doclet class loaded...");
+
+ Method startTempMethod = null;
+ Method startMethod = null;
+ Method optionLenMethod = null;
+ Method validOptionsMethod = null;
+
+ //--- Try to find the optionLength method in the Doclet class.
+
+ try
+ {
+ optionLenMethod = docletClass.getMethod("optionLength", new Class[]
+ { String.class });
+ }
+ catch (NoSuchMethodException e)
+ {
+ // Ignore if not found; it's OK it the Doclet class doesn't define
+ // this method.
+ }
+
+ //--- Try to find the validOptions method in the Doclet class.
+
+ try
+ {
+ validOptionsMethod = docletClass.getMethod("validOptions", new Class[]
+ { String[][].class, DocErrorReporter.class });
+ }
+ catch (NoSuchMethodException e)
+ {
+ // Ignore if not found; it's OK it the Doclet class doesn't define
+ // this method.
+ }
+
+ //--- Find the start method in the Doclet class; complain if not found
+
+ try
+ {
+ startTempMethod = docletClass.getMethod("start", new Class[]
+ { TemporaryStore.class });
+ }
+ catch (Exception e)
+ {
+ // ignore
+ }
+ startMethod = docletClass.getMethod("start", new Class[]
+ { RootDoc.class });
+
+ //--- Feed the custom command line tokens to the Doclet
+
+ // stores all recognized options
+ List options = new LinkedList();
+
+ // stores packages and classes defined on the command line
+ List packageAndClasses = new LinkedList();
+
+ for (Iterator it = allOptions.iterator(); it.hasNext();)
+ {
+ String option = (String) it.next();
+
+ Debug.log(9, "parsing option '" + option + "'");
+
+ if (option.startsWith("-"))
+ {
+
+ //--- Parse option
+
+ int optlen = optionLength(option);
+
+ //--- Try to get option length from Doclet class
+
+ if (optlen <= 0 && optionLenMethod != null)
+ {
+
+ optionLenMethod.invoke(null, new Object[]
+ { option });
+
+ Debug.log(3, "invoking optionLen method");
+
+ optlen = ((Integer) optionLenMethod.invoke(null, new Object[]
+ { option })).intValue();
+
+ Debug.log(3, "done");
+ }
+
+ if (optlen <= 0) {
+
+ if (option.startsWith("-JD")) {
+ // Simulate VM option -D
+ String propertyValue = option.substring(3);
+ int ndx = propertyValue.indexOf('=');
+ if (ndx <= 0) {
+ reporter.printError("Illegal format in option " + option + ": use -JDproperty=value");
+ return false;
+ }
+ else {
+ String property = propertyValue.substring(0, ndx);
+ String value = propertyValue.substring(ndx + 1);
+ System.setProperty(property, value);
+ }
+ }
+ else if (option.startsWith("-J")) {
+ //--- Warn if VM option is encountered
+ reporter.printWarning("Ignored option " + option + ". Pass this option to the VM if required.");
+ }
+ else {
+ //--- Complain if not found
+
+ reporter.printError("Unknown option " + option);
+ reporter.printNotice(STRING_TRY_GJDOC_HELP);
+ return false;
+ }
+ }
+ else
+ {
+
+ //--- Read option values
+
+ String[] optionAndValues = new String[optlen];
+ optionAndValues[0] = option;
+ for (int i = 1; i < optlen; ++i)
+ {
+ if (!it.hasNext())
+ {
+ reporter.printError("Missing value for option " + option);
+ return false;
+ }
+ else
+ {
+ optionAndValues[i] = (String) it.next();
+ }
+ }
+
+ //--- Store option for processing later
+
+ options.add(optionAndValues);
+ }
+ }
+ else if (option.length() > 0)
+ {
+
+ //--- Add to list of packages/classes if not option or option
+ // value
+
+ packageAndClasses.add(option);
+ }
+ }
+
+ Debug.log(9, "options parsed...");
+
+ //--- For each package specified with the -subpackages option on
+ // the command line, recursively find all valid java files
+ // beneath it.
+
+ //--- For each class or package specified on the command line,
+ // check that it exists and find out whether it is a class
+ // or a package
+
+ for (Iterator it = option_subpackages.iterator(); it.hasNext();)
+ {
+ String subpackage = (String) it.next();
+ Set foundPackages = new LinkedHashSet();
+
+ for (Iterator pit = option_sourcepath.iterator(); pit.hasNext(); ) {
+ File sourceDir = (File)pit.next();
+ File packageDir = new File(sourceDir, subpackage.replace('.', File.separatorChar));
+ findPackages(subpackage, packageDir, foundPackages);
+ }
+
+ addFoundPackages(subpackage, foundPackages);
+ }
+
+ if (option_all) {
+ Set foundPackages = new LinkedHashSet();
+ for (Iterator pit = option_sourcepath.iterator(); pit.hasNext(); ) {
+ File sourceDir = (File)pit.next();
+ findPackages("", sourceDir, foundPackages);
+ }
+ addFoundPackages(null, foundPackages);
+ for (Iterator packageIt = foundPackages.iterator(); packageIt.hasNext(); ) {
+ String packageName = (String)packageIt.next();
+ if (null == packageName) {
+ packageName = "";
+ }
+ rootDoc.addSpecifiedPackageName(packageName);
+ }
+ }
+
+ for (Iterator it = packageAndClasses.iterator(); it.hasNext();)
+ {
+
+ String classOrPackage = (String) it.next();
+
+ boolean foundSourceFile = false;
+
+ if (classOrPackage.endsWith(".java")) {
+ for (Iterator pit = option_sourcepath.iterator(); pit.hasNext() && !foundSourceFile; ) {
+ File sourceDir = (File)pit.next();
+ File sourceFile = new File(sourceDir, classOrPackage);
+ if (sourceFile.exists() && !sourceFile.isDirectory()) {
+ rootDoc.addSpecifiedSourceFile(sourceFile);
+ foundSourceFile = true;
+ break;
+ }
+ }
+ if (!foundSourceFile) {
+ File sourceFile = new File(classOrPackage);
+ if (sourceFile.exists() && !sourceFile.isDirectory()) {
+ rootDoc.addSpecifiedSourceFile(sourceFile);
+ foundSourceFile = true;
+ }
+ }
+ }
+
+ if (!foundSourceFile) {
+ //--- Check for illegal name
+
+ if (classOrPackage.startsWith(".")
+ || classOrPackage.endsWith(".")
+ || classOrPackage.indexOf("..") > 0
+ || !checkCharSet(classOrPackage,
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_."))
+ {
+ throw new ParseException("Illegal class or package name '"
+ + classOrPackage + "'");
+ }
+
+ //--- Assemble absolute path to package
+
+ String classOrPackageRelPath = classOrPackage.replace('.',
+ File.separatorChar);
+
+ //--- Create one file object each for a possible package directory
+ // and a possible class file, and find out if they exist.
+
+ List packageDirs = rootDoc.findSourceFiles(classOrPackageRelPath);
+ List sourceFiles = rootDoc.findSourceFiles(classOrPackageRelPath + ".java");
+
+ boolean packageDirExists = !packageDirs.isEmpty();
+ boolean sourceFileExists = !sourceFiles.isEmpty();
+
+ //--- Complain if neither exists: not found
+
+ if (!packageDirExists && !sourceFileExists)
+ {
+ reporter.printError("Class or package " + classOrPackage
+ + " not found.");
+ return false;
+ }
+
+ //--- Complain if both exist: ambigious
+
+ else
+ if (packageDirExists && sourceFileExists)
+ {
+ reporter.printError("Ambigious class/package name "
+ + classOrPackage + ".");
+ return false;
+ }
+
+ //--- Otherwise, if the package directory exists, it is a package
+
+ else
+ if (packageDirExists) {
+ Iterator packageDirIt = packageDirs.iterator();
+ boolean packageDirFound = false;
+ while (packageDirIt.hasNext()) {
+ File packageDir = (File)packageDirIt.next();
+ if (packageDir.isDirectory()) {
+ rootDoc.addSpecifiedPackageName(classOrPackage);
+ packageDirFound = true;
+ break;
+ }
+ }
+ if (!packageDirFound) {
+ reporter.printError("No suitable file or directory found for" + classOrPackage);
+ return false;
+ }
+ }
+
+ //--- Otherwise, emit error message
+
+ else {
+ reporter.printError("No sources files found for package " + classOrPackage);
+ }
+ }
+ }
+
+ //--- Complain if no packages or classes specified
+
+ if (option_help) {
+ usage();
+ return true;
+ }
+
+ //--- Validate custom options passed on command line
+ // by asking the Doclet if they are OK.
+
+ String[][] customOptionArr = (String[][]) options
+ .toArray(new String[0][0]);
+ if (validOptionsMethod != null
+ && !((Boolean) validOptionsMethod.invoke(null, new Object[]
+ { customOptionArr, reporter })).booleanValue())
+ {
+ // Not ok: shutdown system.
+ reporter.printNotice(STRING_TRY_GJDOC_HELP);
+ return false;
+ }
+
+ if (!rootDoc.hasSpecifiedPackagesOrClasses()) {
+ reporter.printError("No packages or classes specified.");
+ reporter.printNotice(STRING_TRY_GJDOC_HELP);
+ return false;
+ }
+
+ rootDoc.setOptions(customOptionArr);
+
+ rootDoc.build();
+
+ //--- Bail out if no classes found
+
+ if (0 == rootDoc.classes().length
+ && 0 == rootDoc.specifiedPackages().length
+ && 0 == rootDoc.specifiedClasses().length)
+ {
+ reporter.printError("No packages or classes found(!).");
+ return false;
+ }
+
+ //--- Our work is done, tidy up memory
+
+ System.gc();
+ System.gc();
+
+ //--- Set flag indicating Phase II of documentation generation
+
+ docletRunning = true;
+
+ //--- Invoke the start method on the Doclet: produce output
+
+ reporter.printNotice("Running doclet...");
+
+ TemporaryStore tstore = new TemporaryStore(Main.rootDoc);
+
+ Thread.currentThread().setContextClassLoader(docletClass.getClassLoader());
+
+ if (null != startTempMethod)
+ {
+ startTempMethod.invoke(null, new Object[]
+ { tstore });
+ }
+ else
+ {
+ startMethod.invoke(null, new Object[]
+ { tstore.getAndClear() });
+ }
+
+ //--- Let the user know how many warnings/errors occured
+
+ if (reporter.getWarningCount() > 0)
+ {
+ reporter.printNotice(reporter.getWarningCount() + " warnings");
+ }
+
+ if (reporter.getErrorCount() > 0)
+ {
+ reporter.printNotice(reporter.getErrorCount() + " errors");
+ }
+
+ System.gc();
+
+ //--- Done.
+ return true;
+ }
+ catch (Exception e)
+ {
+ e.printStackTrace();
+ return false;
+ }
+ }
+
+ private void addFoundPackages(String subpackage, Set foundPackages)
+ {
+ if (foundPackages.isEmpty()) {
+ reporter.printWarning("No classes found under subpackage " + subpackage);
+ }
+ else {
+ boolean onePackageAdded = false;
+ for (Iterator rit = foundPackages.iterator(); rit.hasNext();) {
+ String foundPackage = (String)rit.next();
+ boolean excludeThisPackage = false;
+
+ for (Iterator eit = option_exclude.iterator(); eit.hasNext();) {
+ String excludePackage = (String)eit.next();
+ if (foundPackage.equals(excludePackage) ||
+ foundPackage.startsWith(excludePackage + ":")) {
+ excludeThisPackage = true;
+ break;
+ }
+ }
+
+ if (!excludeThisPackage) {
+ rootDoc.addSpecifiedPackageName(foundPackage);
+ onePackageAdded = true;
+ }
+ }
+ if (!onePackageAdded) {
+ if (null != subpackage) {
+ reporter.printWarning("No non-excluded classes found under subpackage " + subpackage);
+ }
+ else {
+ reporter.printWarning("No non-excluded classes found.");
+ }
+ }
+ }
+ }
+
+ /**
+ * Verify that the given file is a valid Java source file and that
+ * it specifies the given package.
+ */
+ private boolean isValidJavaFile(File file,
+ String expectedPackage)
+ {
+ try {
+ InputStream in = new BufferedInputStream(new FileInputStream(file));
+
+ int ch, prevChar = 0;
+
+ final int STATE_DEFAULT = 0;
+ final int STATE_COMMENT = 1;
+ final int STATE_LINE_COMMENT = 2;
+
+ int state = STATE_DEFAULT;
+
+ StringBuffer word = new StringBuffer();
+ int wordIndex = 0;
+
+ while ((ch = in.read()) >= 0) {
+ String completeWord = null;
+
+ switch (state) {
+ case STATE_COMMENT:
+ if (prevChar == '*' && ch == '/') {
+ state = STATE_DEFAULT;
+ }
+ break;
+
+ case STATE_LINE_COMMENT:
+ if (ch == '\n') {
+ state = STATE_DEFAULT;
+ }
+ break;
+
+ case STATE_DEFAULT:
+ if (prevChar == '/' && ch == '*') {
+ word.deleteCharAt(word.length() - 1);
+ if (word.length() > 0) {
+ completeWord = word.toString();
+ word.setLength(0);
+ }
+ state = STATE_COMMENT;
+ }
+ else if (prevChar == '/' && ch == '/') {
+ word.deleteCharAt(word.length() - 1);
+ if (word.length() > 0) {
+ completeWord = word.toString();
+ word.setLength(0);
+ }
+ state = STATE_LINE_COMMENT;
+ }
+ else if (" \t\r\n".indexOf(ch) >= 0) {
+ if (word.length() > 0) {
+ completeWord = word.toString();
+ word.setLength(0);
+ }
+ }
+ else if (1 == wordIndex && ';' == ch) {
+ if (word.length() > 0) {
+ completeWord = word.toString();
+ word.setLength(0);
+ }
+ else {
+ // empty package name in source file: "package ;" -> invalid source file
+ in.close();
+ return false;
+ }
+ }
+ else {
+ word.append((char)ch);
+ }
+ break;
+ }
+
+ if (null != completeWord) {
+ if (0 == wordIndex && !"package".equals(completeWord)) {
+ in.close();
+ return "".equals(expectedPackage);
+ }
+ else if (1 == wordIndex) {
+ in.close();
+ return expectedPackage.equals(completeWord);
+ }
+ ++ wordIndex;
+ }
+
+ prevChar = ch;
+ }
+
+ // no package or class found before end-of-file -> invalid source file
+
+ in.close();
+ return false;
+ }
+ catch (IOException e) {
+ reporter.printWarning("Could not examine file " + file + ": " + e);
+ return false;
+ }
+ }
+
+ /**
+ * Recursively try to locate valid Java packages under the given
+ * package specified by its name and its directory. Add the names
+ * of all valid packages to the result list.
+ */
+ private void findPackages(String subpackage,
+ File packageDir,
+ Set result)
+ {
+ File[] files = packageDir.listFiles();
+ if (null != files) {
+ for (int i=0; i<files.length; ++i) {
+ File file = files[i];
+ if (!file.isDirectory() && file.getName().endsWith(".java")) {
+ if (isValidJavaFile(file, subpackage)) {
+ if ("".equals(subpackage)) {
+ result.add(null);
+ }
+ else {
+ result.add(subpackage);
+ }
+ break;
+ }
+ }
+ }
+ for (int i=0; i<files.length; ++i) {
+ File file = files[i];
+ if (file.isDirectory()) {
+ String newSubpackage;
+ if (null != subpackage && subpackage.length() > 0) {
+ newSubpackage = subpackage + "." + file.getName();
+ }
+ else {
+ newSubpackage = file.getName();
+ }
+ findPackages(newSubpackage, file, result);
+ }
+ }
+ }
+ }
+
+ /**
+ *
+ */
+ private static boolean validOptions(String options[][],
+ DocErrorReporter reporter)
+ {
+
+ boolean foundDocletOption = false;
+ for (int i = 0; i < options.length; i++)
+ {
+ String[] opt = options[i];
+ if (opt[0].equalsIgnoreCase("-doclet"))
+ {
+ if (foundDocletOption)
+ {
+ reporter.printError("Only one -doclet option allowed.");
+ return false;
+ }
+ else
+ {
+ foundDocletOption = true;
+ }
+ }
+ }
+
+ return true;
+ }
+
+ /**
+ * Main entry point. This is the method called when gjdoc is invoked from the
+ * command line.
+ *
+ * @param args
+ * command line arguments
+ */
+ public static void main(String[] args)
+ {
+
+ try
+ {
+ //--- Remember current time for profiling purposes
+
+ Timer.setStartTime();
+
+ //--- Handle control to the Singleton instance of this class
+
+ int result = instance.start(args);
+
+ if (result < 0) {
+ // fatal error
+ System.exit(5);
+ }
+ else if (result > 0) {
+ // errors encountered
+ System.exit(1);
+ }
+ else {
+ // success
+ System.exit(0);
+ }
+ }
+ catch (Exception e)
+ {
+ //--- unexpected error
+ e.printStackTrace();
+ System.exit(1);
+ }
+ }
+
+ /**
+ * Parses command line arguments and subsequentially handles control to the
+ * startDoclet() method
+ *
+ * @param args The command line parameters.
+ */
+ public static int execute(String[] args)
+ {
+ try
+ {
+ int result = instance.start(args);
+ if (result < 0) {
+ // fatal error
+ return 5;
+ }
+ else if (result > 0) {
+ // errors encountered
+ return 1;
+ }
+ else {
+ // success
+ return 0;
+ }
+ }
+ catch (Exception e)
+ {
+ // unexpected error
+ return 1;
+ }
+ }
+
+ /**
+ * @param programName Name of the program (for error messages). *disregarded*
+ * @param args The command line parameters.
+ * @returns The return code.
+ */
+ public static int execute(String programName,
+ String[] args)
+ {
+ return execute(args);
+ }
+
+ /**
+ * @param programName Name of the program (for error messages).
+ * @param defaultDocletClassName Fully qualified class name.
+ * @param args The command line parameters.
+ * @returns The return code.
+ *//*
+ public static int execute(String programName,
+ String defaultDocletClassName,
+ String[] args)
+ {
+ // not yet implemented
+ }*/
+
+ /**
+ * @param programName Name of the program (for error messages).
+ * @param defaultDocletClassName Fully qualified class name.
+ * @param args The command line parameters.
+ * @returns The return code.
+ *//*
+ public static int execute(String programName,
+ String defaultDocletClassName,
+ String[] args)
+ {
+ // not yet implemented
+ }*/
+
+ /**
+ * @param programName Name of the program (for error messages).
+ * @param errWriter PrintWriter to receive error messages.
+ * @param warnWriter PrintWriter to receive error messages.
+ * @param noticeWriter PrintWriter to receive error messages.
+ * @param defaultDocletClassName Fully qualified class name.
+ * @param args The command line parameters.
+ * @returns The return code.
+ *//*
+ public static int execute(String programName,
+ PrintWriter errWriter,
+ PrintWriter warnWriter,
+ PrintWriter noticeWriter,
+ String defaultDocletClassName,
+ String[] args)
+ {
+ // not yet implemented
+ }*/
+
+ /**
+ * Parses command line arguments and subsequentially handles control to the
+ * startDoclet() method
+ *
+ * @param args
+ * Command line arguments, as passed to the main() method
+ * @return {@code -1} in case of a fatal error (invalid arguments),
+ * or the number of errors encountered.
+ * @exception ParseException
+ * FIXME
+ * @exception IOException
+ * if an IO problem occur
+ */
+ public int start(String[] args) throws ParseException, IOException
+ {
+
+ //--- Collect unparsed arguments in array and resolve references
+ // to external argument files.
+
+ List arguments = new ArrayList(args.length);
+
+ for (int i = 0; i < args.length; ++i)
+ {
+ if (!args[i].startsWith("@"))
+ {
+ arguments.add(args[i]);
+ }
+ else
+ {
+ FileReader reader = new FileReader(args[i].substring(1));
+ StreamTokenizer st = new StreamTokenizer(reader);
+ st.resetSyntax();
+ st.wordChars('\u0000', '\uffff');
+ st.quoteChar('\"');
+ st.quoteChar('\'');
+ st.whitespaceChars(' ', ' ');
+ st.whitespaceChars('\t', '\t');
+ st.whitespaceChars('\r', '\r');
+ st.whitespaceChars('\n', '\n');
+ while (st.nextToken() != StreamTokenizer.TT_EOF)
+ {
+ arguments.add(st.sval);
+ }
+ }
+ }
+
+ //--- Initialize Map for option parsing
+
+ initOptions();
+
+ //--- This will hold all options recognized by gjdoc itself
+ // and their associated arguments.
+ // Contains objects of type String[], where each entry
+ // specifies an option along with its aguments.
+
+ List options = new LinkedList();
+
+ //--- This will hold all command line tokens not recognized
+ // to be part of a standard option.
+ // These options are intended to be processed by the doclet
+ // Contains objects of type String, where each entry is
+ // one unrecognized token.
+
+ List customOptions = new LinkedList();
+
+ rootDoc = new RootDocImpl();
+ reporter = rootDoc.getReporter();
+
+ //--- Iterate over all options given on the command line
+
+ for (Iterator it = arguments.iterator(); it.hasNext();)
+ {
+
+ String arg = (String) it.next();
+
+ //--- Check if gjdoc recognizes this option as a standard option
+ // and remember the options' argument count
+
+ int optlen = optionLength(arg);
+
+ //--- Argument count == 0 indicates that the option is not recognized.
+ // Add it to the list of custom option tokens
+
+ //--- Otherwise the option is recognized as a standard option.
+ // if all required arguments are supplied. Create a new String
+ // array for the option and its arguments, and store it
+ // in the options array.
+
+ if (optlen > 0)
+ {
+ String[] option = new String[optlen];
+ option[0] = arg;
+ boolean optargs_ok = true;
+ for (int j = 1; j < optlen && optargs_ok; ++j)
+ {
+ if (it.hasNext())
+ {
+ option[j] = (String) it.next();
+ if (option[j].startsWith("-"))
+ {
+ optargs_ok = false;
+ }
+ }
+ else
+ {
+ optargs_ok = false;
+ }
+ }
+ if (optargs_ok)
+ options.add(option);
+ else
+ {
+ // If the option requires more arguments than given on the
+ // command line, issue a fatal error
+
+ reporter.printFatal("Missing value for option " + arg + ".");
+ }
+ }
+ }
+
+ //--- Create an array of String arrays from the dynamic array built above
+
+ String[][] optionArr = (String[][]) options.toArray(new String[options
+ .size()][0]);
+
+ //--- Validate all options and issue warnings/errors
+
+ if (validOptions(optionArr, rootDoc))
+ {
+
+ //--- We got valid options; parse them and store the parsed values
+ // in 'option_*' fields.
+
+ readOptions(optionArr);
+
+ //--- Show version and exit if requested by user
+
+ if (option_showVersion) {
+ System.out.println("gjdoc " + getGjdocVersion());
+ System.exit(0);
+ }
+
+ if (option_bootclasspath_specified) {
+ reporter.printWarning("-bootclasspath ignored: not supported by"
+ + " gjdoc wrapper script, or no wrapper script in use.");
+ }
+
+ // If we have an empty source path list, add the current directory ('.')
+
+ if (option_sourcepath.size() == 0)
+ option_sourcepath.add(new File("."));
+
+ //--- We have all information we need to start the doclet at this time
+
+ if (null != option_encoding) {
+ rootDoc.setSourceEncoding(option_encoding);
+ }
+ else {
+ // be quiet about this for now:
+ // reporter.printNotice("No encoding specified, using platform default: " + System.getProperty("file.encoding"));
+ rootDoc.setSourceEncoding(System.getProperty("file.encoding"));
+ }
+ rootDoc.setSourcePath(option_sourcepath);
+
+ //addJavaLangClasses();
+
+ if (!startDoclet(arguments)) {
+ return -1;
+ }
+ }
+
+ return reporter.getErrorCount();
+ }
+
+ private void addJavaLangClasses()
+ throws IOException
+ {
+ String resourceName = "/java.lang-classes-" + option_source + ".txt";
+ InputStream in = getClass().getResourceAsStream(resourceName);
+ BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+ String line;
+ while ((line = reader.readLine()) != null) {
+
+ String className = line.trim();
+ if (className.length() > 0) {
+ ClassDocImpl classDoc =
+ new ClassDocImpl(null, new PackageDocImpl("java.lang"),
+ ProgramElementDocImpl.ACCESS_PUBLIC,
+ false, false, null);
+ classDoc.setClass(className);
+ rootDoc.addClassDoc(classDoc);
+ }
+ }
+ }
+
+ /**
+ * Helper class for parsing command line arguments. An instance of this class
+ * represents a particular option accepted by gjdoc (e.g. '-sourcepath') along
+ * with the number of expected arguments and behavior to parse the arguments.
+ */
+ private abstract class OptionProcessor
+ {
+
+ /**
+ * Number of arguments expected by this option.
+ */
+ private int argCount;
+
+ /**
+ * Initializes this instance.
+ *
+ * @param argCount
+ * number of arguments
+ */
+ public OptionProcessor(int argCount)
+ {
+ this.argCount = argCount;
+ }
+
+ /**
+ * Overridden by derived classes with behavior to parse the arguments
+ * specified with this option.
+ *
+ * @param args
+ * command line arguments
+ */
+ abstract void process(String[] args);
+ }
+
+ /**
+ * Maps option tags (e.g. '-sourcepath') to OptionProcessor objects.
+ * Initialized only once by method initOptions(). FIXME: Rename to
+ * 'optionProcessors'.
+ */
+ private static Map options = null;
+
+ /**
+ * Initialize all OptionProcessor objects needed to scan/parse command line
+ * options. This cannot be done in a static initializer block because
+ * OptionProcessors need access to the Singleton instance of the Main class.
+ */
+ private void initOptions()
+ {
+
+ options = new HashMap();
+
+ //--- Put one OptionProcessor object into the map
+ // for each option recognized.
+
+ options.put("-overview", new OptionProcessor(2)
+ {
+
+ void process(String[] args)
+ {
+ option_overview = args[0];
+ }
+ });
+ options.put("-public", new OptionProcessor(1)
+ {
+
+ void process(String[] args)
+ {
+ option_coverage = COVERAGE_PUBLIC;
+ }
+ });
+ options.put("-protected", new OptionProcessor(1)
+ {
+
+ void process(String[] args)
+ {
+ option_coverage = COVERAGE_PROTECTED;
+ }
+ });
+ options.put("-package", new OptionProcessor(1)
+ {
+
+ void process(String[] args)
+ {
+ option_coverage = COVERAGE_PACKAGE;
+ }
+ });
+ options.put("-private", new OptionProcessor(1)
+ {
+
+ void process(String[] args)
+ {
+ option_coverage = COVERAGE_PRIVATE;
+ }
+ });
+ OptionProcessor helpProcessor = new OptionProcessor(1)
+ {
+
+ void process(String[] args)
+ {
+ option_help = true;
+ }
+ };
+
+ options.put("-help", helpProcessor);
+ options.put("--help", helpProcessor);
+ options.put("-doclet", new OptionProcessor(2)
+ {
+
+ void process(String[] args)
+ {
+ option_doclet = args[0];
+ }
+ });
+ options.put("-docletpath", new OptionProcessor(2)
+ {
+
+ void process(String[] args)
+ {
+ option_docletpath = args[0];
+ }
+ });
+ options.put("-nowarn", new OptionProcessor(1)
+ {
+
+ void process(String[] args)
+ {
+ option_nowarn = true;
+ }
+ });
+ options.put("-source", new OptionProcessor(2)
+ {
+
+ void process(String[] args)
+ {
+ option_source = args[0];
+ if (!"1.2".equals(option_source)
+ && !"1.3".equals(option_source)
+ && !"1.4".equals(option_source)) {
+
+ throw new RuntimeException("Only he following values are currently"
+ + " supported for option -source: 1.2, 1.3, 1.4.");
+ }
+ }
+ });
+ OptionProcessor sourcePathProcessor = new OptionProcessor(2) {
+ void process(String[] args)
+ {
+ Debug.log(1, "-sourcepath is '" + args[0] + "'");
+ for (StringTokenizer st = new StringTokenizer(args[0],
+ File.pathSeparator); st.hasMoreTokens();)
+ {
+ String path = st.nextToken();
+ File file = new File(path);
+ if (!(file.exists()))
+ {
+ throw new RuntimeException("The source path " + path
+ + " does not exist.");
+ }
+ option_sourcepath.add(file);
+ }
+ }
+ };
+ options.put("-s", sourcePathProcessor);
+ options.put("-sourcepath", sourcePathProcessor);
+ options.put("-subpackages", new OptionProcessor(2)
+ {
+ void process(String[] args)
+ {
+ StringTokenizer st = new StringTokenizer(args[0], ":");
+ while (st.hasMoreTokens()) {
+ String packageName = st.nextToken();
+
+ if (packageName.startsWith(".")
+ || packageName.endsWith(".")
+ || packageName.indexOf("..") > 0
+ || !checkCharSet(packageName,
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_.")) {
+ throw new RuntimeException("Illegal package name '"
+ + packageName + "'");
+ }
+ option_subpackages.add(packageName);
+ }
+ }
+ });
+ options.put("-exclude", new OptionProcessor(2)
+ {
+ void process(String[] args)
+ {
+ StringTokenizer st = new StringTokenizer(args[0], ":");
+ while (st.hasMoreTokens()) {
+ String packageName = st.nextToken();
+
+ if (packageName.startsWith(".")
+ || packageName.endsWith(".")
+ || packageName.indexOf("..") > 0
+ || !checkCharSet(packageName,
+ "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890_.")) {
+ throw new RuntimeException("Illegal package name '"
+ + packageName + "'");
+ }
+ option_exclude.add(packageName);
+ }
+ }
+ });
+ // TODO include other options here
+ options.put("-verbose", new OptionProcessor(1)
+ {
+
+ void process(String[] args)
+ {
+ option_verbose = true;
+ System.err.println("WARNING: Unsupported option -verbose ignored");
+ }
+ });
+ options.put("-quiet", new OptionProcessor(1)
+ {
+
+ void process(String[] args)
+ {
+ reporter.setQuiet(true);
+ }
+ });
+ options.put("-locale", new OptionProcessor(2)
+ {
+
+ void process(String[] args)
+ {
+ String localeName = args[0];
+ String language = null;
+ String country = null;
+ String variant = null;
+ StringTokenizer st = new StringTokenizer(localeName, "_");
+ if (st.hasMoreTokens()) {
+ language = st.nextToken();
+ }
+ if (st.hasMoreTokens()) {
+ country = st.nextToken();
+ }
+ if (st.hasMoreTokens()) {
+ variant = st.nextToken();
+ }
+ if (variant != null) {
+ option_locale = new Locale(language, country, variant);
+ }
+ else if (country != null) {
+ option_locale = new Locale(language, country);
+ }
+ else if (language != null) {
+ option_locale = new Locale(language);
+ }
+ else {
+ throw new RuntimeException("Illegal locale specification '"
+ + localeName + "'");
+ }
+ }
+ });
+ options.put("-encoding", new OptionProcessor(2)
+ {
+
+ void process(String[] args)
+ {
+ option_encoding = args[0];
+ }
+ });
+ options.put("-breakiterator", new OptionProcessor(1)
+ {
+ void process(String[] args)
+ {
+ option_breakiterator = true;
+ }
+ });
+ options.put("-licensetext", new OptionProcessor(1)
+ {
+ void process(String[] args)
+ {
+ option_licensetext = true;
+ }
+ });
+ options.put("-overview", new OptionProcessor(2)
+ {
+ void process(String[] args)
+ {
+ try {
+ getRootDoc().setRawCommentText(RootDocImpl.readHtmlBody(new File(args[0])));
+ }
+ catch (IOException e) {
+ throw new RuntimeException("Cannot read file specified in option -overview: " + e.getMessage());
+ }
+ }
+ });
+ options.put("-classpath", new OptionProcessor(2)
+ {
+ void process(String[] args)
+ {
+ reporter.printWarning("-classpath option could not be passed to the VM. Faking it with ");
+ reporter.printWarning(" System.setProperty(\"java.class.path\", \"" + args[0] + "\");");
+ System.setProperty("java.class.path", args[0]);
+ }
+ });
+ options.put("--version", new OptionProcessor(1)
+ {
+ void process(String[] args)
+ {
+ option_showVersion = true;
+ }
+ });
+ options.put("-bootclasspath", new OptionProcessor(1)
+ {
+ void process(String[] args)
+ {
+ option_bootclasspath_specified = true;
+ }
+ });
+ options.put("-all", new OptionProcessor(1)
+ {
+ void process(String[] args)
+ {
+ option_all = true;
+ }
+ });
+ options.put("-reflection", new OptionProcessor(1)
+ {
+ void process(String[] args)
+ {
+ option_reflection = true;
+ }
+ });
+ }
+
+ /**
+ * Determine how many arguments the given option requires.
+ *
+ * @param option
+ * The name of the option without leading dash.
+ */
+ private static int optionLength(String option)
+ {
+
+ OptionProcessor op = (OptionProcessor) options.get(option.toLowerCase());
+ if (op != null)
+ return op.argCount;
+ else
+ return 0;
+ }
+
+ /**
+ * Process all given options. Assumes that the options have been validated
+ * before.
+ *
+ * @param optionArr
+ * Each element is a series of Strings where [0] is the name of the
+ * option and [1..n] are the arguments to the option.
+ */
+ private void readOptions(String[][] optionArr)
+ {
+
+ //--- For each option, find the appropriate OptionProcessor
+ // and call its process() method
+
+ for (int i = 0; i < optionArr.length; ++i)
+ {
+ String[] opt = optionArr[i];
+ String[] args = new String[opt.length - 1];
+ System.arraycopy(opt, 1, args, 0, opt.length - 1);
+ OptionProcessor op = (OptionProcessor) options.get(opt[0].toLowerCase());
+ op.process(args);
+ }
+ }
+
+ /**
+ * Print command line usage.
+ */
+ private static void usage()
+ {
+ System.out
+ .print("\n"
+ + "USAGE: gjdoc [options] [packagenames] "
+ + "[sourcefiles] [@files]\n\n"
+ + " --version Show version information and exit\n"
+ + " -all Process all source files found in the source path\n"
+ + " -overview <file> Read overview documentation from HTML file\n"
+ + " -public Include only public classes and members\n"
+ + " -protected Include protected and public classes and members\n"
+ + " This is the default\n"
+ + " -package Include package/protected/public classes and members\n"
+ + " -private Include all classes and members\n"
+ + " -help, --help Show this information\n"
+ + " -doclet <class> Doclet class to use for generating output\n"
+ + " -docletpath <classpath> Specifies the search path for the doclet and\n"
+ + " dependencies\n"
+ + " -source <release> Provide source compatibility with specified\n"
+ + " release (1.4 to handle assertion)\n"
+ + " -sourcepath <pathlist> Where to look for source files\n"
+ + " -s <pathlist> Alias for -sourcepath\n"
+ + " -subpackages <spkglist> List of subpackages to recursively load\n"
+ + " -exclude <pkglist> List of packages to exclude\n"
+ + " -verbose Output messages about what Gjdoc is doing [ignored]\n"
+ + " -quiet Do not print non-error and non-warning messages\n"
+ + " -locale <name> Locale to be used, e.g. en_US or en_US_WIN\n"
+ + " -encoding <name> Source file encoding name\n"
+ + " -breakiterator Compute first sentence with BreakIterator\n"
+ + " -classpath <pathlist> Set the path used for loading auxilliary classes\n"
+ + "\n"
+ + "Standard doclet options:\n"
+ + " -d Set target directory\n"
+ + " -use Includes the 'Use' page for each documented class\n"
+ + " and package\n"
+ + " -version Includes the '@version' tag\n"
+ + " -author Includes the '@author' tag\n"
+ + " -splitindex Splits the index file into multiple files\n"
+ + " -windowtitle <text> Browser window title\n"
+ + " -doctitle <text> Title near the top of the overview summary file\n"
+ + " (HTML allowed)\n"
+ + " -title <text> Title for this set of API documentation\n"
+ + " (deprecated, -doctitle should be used instead)\n"
+ + " -header <text> Text to include in the top navigation bar\n"
+ + " (HTML allowed)\n"
+ + " -footer <text> Text to include in the bottom navigation bar\n"
+ + " (HTML allowed)\n"
+ + " -bottom <text> Text to include at the bottom of each output file\n"
+ + " (HTML allowed)\n"
+ + " -link <extdoc URL> Link to external generated documentation at URL\n"
+ + " -linkoffline <extdoc URL> <packagelistLoc>\n"
+ + " Link to external generated documentation for\n"
+ + " the specified package-list\n"
+ + " -linksource Creates an HTML version of each source file\n"
+ + " -group <groupheading> <packagepattern:packagepattern:...>\n"
+ + " Separates packages on the overview page into groups\n"
+ + " -nodeprecated Prevents the generation of any deprecated API\n"
+ + " -nodeprecatedlist Prevents the generation of the file containing\n"
+ + " the list of deprecated APIs and the link to the\n"
+ + " navigation bar to that page\n"
+ + " -nosince Omit the '@since' tag\n"
+ + " -notree Do not generate the class/interface hierarchy page\n"
+ + " -noindex Do not generate the index file\n"
+ + " -nohelp Do not generate the help link\n"
+ + " -nonavbar Do not generate the navbar, header and footer\n"
+ + " -helpfile <filen> Path to an alternate help file\n"
+ + " -stylesheetfile <file> Path to an alternate CSS stylesheet\n"
+ + " -addstylesheet <file> Path to an additional CSS stylesheet\n"
+ + " -serialwarn Complain about missing '@serial' tags [ignored]\n"
+ + " -charset <IANACharset> Specifies the HTML charset\n"
+ + " -docencoding <IANACharset>\n"
+ + " Specifies the encoding of the generated HTML files\n"
+ + " -tag <tagname>:Xaoptcmf:\"<taghead>\"\n"
+ + " Enables gjdoc to interpret a custom tag\n"
+ + " -taglet Adds a Taglet class to the map of taglets\n"
+ + " -tagletpath Sets the CLASSPATH to load subsequent Taglets from\n"
+ + " -docfilessubdirs Enables deep copy of 'doc-files' directories\n"
+ + " -excludedocfilessubdir <name1:name2:...>\n"
+ + " Excludes 'doc-files' subdirectories with a give name\n"
+ + " -noqualifier all|<packagename1:packagename2:...>\n"
+ + " Do never fully qualify given package names\n"
+ + " -nocomment Suppress the entire comment body including the main\n"
+ + " description and all tags, only generate declarations\n"
+ + "\n"
+ + "Gjdoc extension options:\n"
+ + " -reflection Use reflection for resolving unqualified class names\n"
+ + " -licensetext Include license text from source files\n"
+ + " -validhtml Use valid HTML/XML names (breaks compatibility)\n"
+ + " -baseurl <url> Hardwire the given base URL into generated pages\n"
+ /**
+ + " -genhtml Generate HTML code instead of XML code. This is the\n"
+ + " default.\n"
+ + " -geninfo Generate Info code instead of XML code.\n"
+ + " -xslsheet <file> If specified, XML files will be written to a\n"
+ + " temporary directory and transformed using the\n"
+ + " given XSL sheet. The result of the transformation\n"
+ + " is written to the output directory. Not required if\n"
+ + " -genhtml or -geninfo has been specified.\n"
+ + " -xmlonly Generate XML code only, do not generate HTML code.\n"
+ + " -bottomnote HTML code to include at the bottom of each page.\n"
+ + " -nofixhtml If not specified, heurestics will be applied to\n"
+ + " fix broken HTML code in comments.\n"
+ + " -nohtmlwarn Do not emit warnings when encountering broken HTML\n"
+ + " code.\n"
+ + " -noemailwarn Do not emit warnings when encountering strings like\n"
+ + " <abc@foo.com>.\n"
+ + " -indentstep <n> How many spaces to indent each tag level in\n"
+ + " generated XML code.\n"
+ + " -xsltdriver <class> Specifies the XSLT driver to use for transformation.\n"
+ + " By default, xsltproc is used.\n"
+ + " -postprocess <class> XmlDoclet postprocessor class to apply after XSL\n"
+ + " transformation.\n"
+ + " -compress Generated info pages will be Zip-compressed.\n"
+ + " -workpath Specify a temporary directory to use.\n"
+ + " -authormail <type> Specify handling of mail addresses in @author tags.\n"
+ + " no-replace do not replace mail addresses (default).\n"
+ + " mailto-name replace by <a>Real Name</a>.\n"
+ + " name-mailto-address replace by Real Name (<a>abc@foo.com</a>).\n"
+ + " name-mangled-address replace by Real Name (<a>abc AT foo DOT com</a>).\n"
+ **/
+ );
+ }
+
+ /**
+ * The root of the gjdoc tool.
+ *
+ * @return all the options of the gjdoc application.
+ */
+ public static RootDocImpl getRootDoc()
+ {
+ return rootDoc;
+ }
+
+ /**
+ * Get the gjdoc singleton.
+ *
+ * @return the gjdoc instance.
+ */
+ public static Main getInstance()
+ {
+ return instance;
+ }
+
+ /**
+ * Is this access level covered?
+ *
+ * @param accessLevel
+ * the access level we want to know if it is covered.
+ * @return true if the access level is covered.
+ */
+ public boolean includeAccessLevel(int accessLevel)
+ {
+ return coverageTemplates[option_coverage][accessLevel];
+ }
+
+ /**
+ * Is the doclet running?
+ *
+ * @return true if it's running
+ */
+ public boolean isDocletRunning()
+ {
+ return docletRunning;
+ }
+
+ /**
+ * Check the charset. Check that all the characters of the string 'toCheck'
+ * and query if they exist in the 'charSet'. The order does not matter. The
+ * number of times a character is in the variable does not matter.
+ *
+ * @param toCheck
+ * the charset to check.
+ * @param charSet
+ * the reference charset
+ * @return true if they match.
+ */
+ public static boolean checkCharSet(String toCheck, String charSet)
+ {
+ for (int i = 0; i < toCheck.length(); ++i)
+ {
+ if (charSet.indexOf(toCheck.charAt(i)) < 0)
+ return false;
+ }
+ return true;
+ }
+
+ /**
+ * Makes the RootDoc eligible for the GC.
+ */
+ public static void releaseRootDoc()
+ {
+ rootDoc.flush();
+ }
+
+ /**
+ * Return whether the -breakiterator option has been specified.
+ */
+ public boolean isUseBreakIterator()
+ {
+ return this.option_breakiterator
+ || !getLocale().getLanguage().equals(Locale.ENGLISH.getLanguage());
+ }
+
+ /**
+ * Return whether boilerplate license text should be copied.
+ */
+ public boolean isCopyLicenseText()
+ {
+ return this.option_licensetext;
+ }
+
+ /**
+ * Return the locale specified using the -locale option or the
+ * default locale;
+ */
+ public Locale getLocale()
+ {
+ return this.option_locale;
+ }
+
+ /**
+ * Return the collator to use based on the specified -locale
+ * option. If no collator can be found for the given locale, a
+ * warning is emitted and the default collator is used instead.
+ */
+ public Collator getCollator()
+ {
+ if (null == this.collator) {
+ Locale locale = getLocale();
+ this.collator = Collator.getInstance(locale);
+ Locale defaultLocale = Locale.getDefault();
+ if (null == this.collator
+ && !defaultLocale.equals(locale)) {
+ this.collator = Collator.getInstance(defaultLocale);
+ if (null != this.collator) {
+ reporter.printWarning("No collator found for locale "
+ + locale.getDisplayName()
+ + "; using collator for default locale "
+ + defaultLocale.getDisplayName()
+ + ".");
+ }
+ else {
+ this.collator = Collator.getInstance();
+ reporter.printWarning("No collator found for specified locale "
+ + locale.getDisplayName()
+ + " or default locale "
+ + defaultLocale.getDisplayName()
+ + ": using default collator.");
+ }
+ }
+ if (null == this.collator) {
+ this.collator = Collator.getInstance();
+ reporter.printWarning("No collator found for locale "
+ + locale.getDisplayName()
+ + ": using default collator.");
+ }
+ }
+ return this.collator;
+ }
+
+ public boolean isCacheRawComments()
+ {
+ return true;
+ }
+
+ public String getGjdocVersion()
+ {
+ if (null == gjdocVersion) {
+ try {
+ Properties versionProperties = new Properties();
+ versionProperties.load(getClass().getResourceAsStream("/version.properties"));
+ gjdocVersion = versionProperties.getProperty("gjdoc.version");
+ }
+ catch (IOException ignore) {
+ }
+ if (null == gjdocVersion) {
+ gjdocVersion = "unknown";
+ }
+ }
+ return gjdocVersion;
+ }
+
+ public boolean isReflectionEnabled()
+ {
+ return this.option_reflection;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java
new file mode 100644
index 0000000..aae2462
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MemberDocImpl.java
@@ -0,0 +1,218 @@
+/* gnu.classpath.tools.gjdoc.MemberDocImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import com.sun.javadoc.*;
+
+public abstract class MemberDocImpl extends ProgramElementDocImpl implements MemberDoc {
+
+ protected String typeName;
+ protected Type type;
+
+ public MemberDocImpl(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ SourcePosition position) {
+
+ super(containingClass,
+ containingPackage,
+ position);
+ }
+
+ public String qualifiedName() {
+ return containingClass().qualifiedName()+"."+name();
+ }
+
+ public boolean isSynthetic() {
+ return false;
+ }
+
+ int parseModifiers(char[] source, int startIndex, int endIndex) {
+
+ Debug.log(9,"parseModifiers '"+new String(source,startIndex,endIndex-startIndex)+"'");
+
+ final int STATE_NORMAL = 1;
+ final int STATE_STARC = 2;
+ final int STATE_SLASHC = 3;
+
+ int state = STATE_NORMAL;
+
+ StringBuffer word = new StringBuffer();
+ StringBuffer typeNameBuf = new StringBuffer();
+ int lastWordStart = startIndex;
+ int firstChar = 0;
+ int lastChar = 0;
+ for (; startIndex<endIndex; ++startIndex) {
+ if (state==STATE_STARC) {
+ if (startIndex<endIndex-1 && source[startIndex]=='*' && source[startIndex+1]=='/') {
+ ++startIndex;
+ state=STATE_NORMAL;
+ }
+ }
+ else if (state==STATE_SLASHC) {
+ if (source[startIndex]=='\n') {
+ state=STATE_NORMAL;
+ }
+ }
+ else if (startIndex<endIndex-1 && source[startIndex]=='/' && source[startIndex+1]=='*') {
+ ++startIndex;
+ state=STATE_STARC;
+ }
+ else if (source[startIndex]=='=' || source[startIndex]=='(' || source[startIndex]==';') {
+ typeName = typeNameBuf.toString();
+ return lastWordStart;
+ }
+ else if (Parser.WHITESPACE.indexOf(source[startIndex])>=0
+ || (startIndex > 0 && source[startIndex-1] == ']' && source[startIndex] != '[')) {
+ if (word.length()>0 && lastChar != '.') {
+ if (processModifier(word.toString())) {
+ }
+ else if (typeNameBuf.length()==0 && !isConstructor()) {
+ typeNameBuf.setLength(0);
+ typeNameBuf.append(word);
+ }
+ else if ((firstChar=='[' || firstChar==']') && !isConstructor()) {
+ typeNameBuf.append(word);
+ }
+ else {
+ typeName = typeNameBuf.toString();
+ return lastWordStart;
+ }
+ word.setLength(0);
+ lastWordStart=startIndex;
+ }
+ }
+ else {
+ if (lastWordStart<0) lastWordStart=startIndex;
+ lastChar = source[startIndex];
+ if (0 == word.length()) {
+ firstChar = lastChar;
+ }
+ word.append((char)lastChar);
+ }
+ }
+
+ typeName = typeNameBuf.toString();
+ return startIndex;
+ }
+
+ public Type type() {
+ //public Type type() throws ParseException {
+ Debug.log(9,"type() called on "+containingClass()+"."+this);
+ if (type==null) {
+ try {
+ type=((ClassDocImpl)containingClass()).typeForString(typeName);
+ } catch (ParseException e) {
+ System.err.println("FIXME: add try-catch to force compilation");
+ e.printStackTrace();
+ }
+ }
+ return type;
+ }
+
+
+ protected void setName(String name) {
+ this.name=name;
+ }
+ private String name;
+
+
+ public String name() {
+ return name;
+ }
+
+ public void setTypeName(String typeName) {
+ this.typeName=typeName;
+ this.type=null;
+ }
+
+ public String getTypeName() {
+ return typeName;
+ }
+
+ // return true if this Doc is include in the active set.
+ public boolean isIncluded() {
+ return Main.getInstance().includeAccessLevel(accessLevel);
+ }
+
+ public int compareTo(Object o) {
+ if (o instanceof MemberDocImpl) {
+ int rc=name().compareTo(((MemberDocImpl)o).name());
+ if (rc==0)
+ rc=containingClass().qualifiedName().compareTo(((MemberDocImpl)o).containingClass().qualifiedName());
+ return rc;
+ }
+ else {
+ return super.compareTo(o);
+ }
+ }
+
+ void resolve() {
+
+ if (type==null && typeName!=null) {
+ Debug.log(1, "MemberDocImpl.resolve(), looking up type named "+typeName);
+ try {
+ type=((ClassDocImpl)containingClass()).typeForString(typeName);
+ } catch (ParseException e) {
+ //System.err.println("FIXME: add try-catch to force compilation");
+ //e.printStackTrace();
+ Debug.log(1, "INTERNAL WARNING: Couldn't find type for name '"+typeName+"'");
+ }
+ }
+
+ if (type instanceof ClassDocProxy) {
+ String className=type.qualifiedTypeName();
+ ClassDoc realClassDoc=((ClassDocImpl)containingClass()).findClass(className, type.dimension());
+ if (realClassDoc!=null) {
+ type=realClassDoc;
+ }
+ else {
+ //throw new Error("Class not found: "+className);
+ /*** This is not an error, the class was not included
+ * on the command line. Perhaps emit a notice here.
+ *
+
+ Main.getRootDoc().printError("Class not found '"
+ + className
+ + "' in class '"
+ + containingClass().qualifiedName()
+ + "' member '"
+ + name()
+ + "'");
+ */
+ }
+ }
+ }
+
+ public void resolveComments()
+ {
+ super.resolveComments();
+
+ if (tagMap.isEmpty()) {
+ TagContainer inheritedTagMap = ClassDocImpl.findInheritedDoc(containingClass(),
+ this,
+ null);
+ if (null != inheritedTagMap) {
+ this.tagMap = inheritedTagMap.getTagMap();
+ }
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java
new file mode 100644
index 0000000..8654a22
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/MethodDocImpl.java
@@ -0,0 +1,47 @@
+/* gnu.classpath.tools.gjdoc.MethodDocImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.util.*;
+import com.sun.javadoc.*;
+
+public class MethodDocImpl extends ExecutableMemberDocImpl implements MethodDoc {
+
+ public MethodDocImpl(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ SourcePosition position) {
+
+ super(containingClass,
+ containingPackage,
+ position);
+ }
+
+ // Is this Doc item a class.
+ public boolean isMethod() {
+ return true;
+ }
+
+ public Type returnType() {
+ return super.type();
+ }
+
+ public String toString() { return name()+((signature()==null)?"()":signature()); }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java
new file mode 100644
index 0000000..d0b28d6
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/PackageDocImpl.java
@@ -0,0 +1,206 @@
+/* gnu.classpath.tools.gjdoc.PackageDocImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.io.File;
+
+class PackageDocImpl extends DocImpl implements GjdocPackageDoc {
+
+ private String packageName;
+ private File packageDirectory;
+
+ private Set allClassesSet = new TreeSet();
+ private List ordinaryClassesList = new ArrayList();
+ private List exceptionsList = new ArrayList();
+ private List interfacesList = new ArrayList();
+ private List errorsList = new ArrayList();
+
+ private ClassDoc[] allClasses;
+ private ClassDoc[] ordinaryClasses;
+ private ClassDoc[] exceptions;
+ private ClassDoc[] interfaces;
+ private ClassDoc[] errors;
+
+ PackageDocImpl(String packageName) {
+ super(null);
+ this.packageName=packageName;
+ }
+
+ public void addClass(ClassDoc classDoc) {
+ if (Main.getInstance().includeAccessLevel(((ClassDocImpl)classDoc).accessLevel)) {
+ allClassesSet.add(classDoc);
+ }
+ }
+
+ public void resolve() {
+ for (Iterator it=allClassesSet.iterator(); it.hasNext(); ) {
+ ClassDocImpl classDoc=(ClassDocImpl)it.next();
+ try {
+ classDoc.resolve();
+ } catch (ParseException e) {
+ System.err.println("FIXME: add try-catch to force compilation"
+ + e);
+ }
+
+ if (classDoc.isInterface()) {
+ interfacesList.add(classDoc);
+ }
+ else if (classDoc.isException()) {
+ exceptionsList.add(classDoc);
+ }
+ else if (classDoc.isError()) {
+ errorsList.add(classDoc);
+ }
+ else {
+ ordinaryClassesList.add(classDoc);
+ }
+ }
+ }
+
+ public void resolveComments() {
+ if (rawDocumentation!=null) {
+ this.tagMap=parseCommentTags(rawDocumentation.toCharArray(),
+ 0,
+ rawDocumentation.length(),
+ null,
+ null,
+ null,
+ null);
+ }
+
+ resolveTags();
+ }
+
+ public String name() {
+ return packageName;
+ }
+
+ public ClassDoc[] allClasses()
+ {
+ if (null == this.allClasses) {
+ this.allClasses = toClassDocArray(allClassesSet);
+ }
+ return this.allClasses;
+ }
+
+ public ClassDoc[] ordinaryClasses()
+ {
+ if (null == this.ordinaryClasses) {
+ this.ordinaryClasses = toClassDocArray(ordinaryClassesList);
+ }
+ return this.ordinaryClasses;
+ }
+
+
+ public ClassDoc[] exceptions()
+ {
+ if (null == this.exceptions) {
+ this.exceptions = toClassDocArray(exceptionsList);
+ }
+ return this.exceptions;
+ }
+
+ public ClassDoc[] interfaces()
+ {
+ if (null == this.interfaces) {
+ this.interfaces = toClassDocArray(interfacesList);
+ }
+ return this.interfaces;
+ }
+
+ public ClassDoc[] errors()
+ {
+ if (null == this.errors) {
+ this.errors = toClassDocArray(errorsList);
+ }
+ return this.errors;
+ }
+
+ private ClassDoc[] toClassDocArray(Collection classDocList)
+ {
+ ClassDoc[] result = (ClassDoc[])classDocList.toArray(new ClassDoc[classDocList.size()]);
+ Arrays.sort(result);
+ return result;
+ }
+
+ public ClassDoc findClass(String name) {
+ return Main.getRootDoc().classNamed(packageName+"."+name);
+ }
+
+ public void dump(int level) {
+ Debug.log(level, "All classes:");
+ Debug.dumpArray(level, allClasses());
+
+ Debug.log(level, "Ordinary classes:");
+ Debug.dumpArray(level, ordinaryClasses());
+
+ }
+
+ public static final PackageDocImpl DEFAULT_PACKAGE = new PackageDocImpl("");
+
+ public boolean isPackage() {
+ return true;
+ }
+
+ public boolean isIncluded() {
+ return isIncluded;
+ }
+
+ void setIsIncluded(boolean b) {
+ this.isIncluded=b;
+ }
+
+ private boolean isIncluded = false;
+
+ public String toString() {
+ return packageName;
+ }
+
+ public int compareTo(Object o) {
+ if (o!=null && o instanceof PackageDocImpl)
+ return name().compareTo(((PackageDocImpl)o).name());
+ else
+ return 0;
+ }
+
+ public boolean equals(Object o) {
+ if (o!=null && o instanceof PackageDocImpl)
+ return name().equals(((PackageDocImpl)o).name());
+ else
+ return false;
+ }
+
+ /**
+ * Sets the directory containing this package's source files.
+ */
+ public void setPackageDirectory(File packageDirectory) {
+ this.packageDirectory = packageDirectory;
+ }
+
+ /**
+ * Gets the directory containing this package's source files.
+ */
+ public File packageDirectory() {
+ return this.packageDirectory;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java
new file mode 100644
index 0000000..2d9567e
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParamTagImpl.java
@@ -0,0 +1,64 @@
+/* gnu.classpath.tools.gjdoc.ParamTagImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class ParamTagImpl extends AbstractTagImpl implements ParamTag {
+
+ private String parameterName;
+ private String parameterComment;
+
+ public ParamTagImpl(String text,
+ ClassDocImpl contextClass,
+ MemberDocImpl contextMember) {
+ super(text);
+ char[] textarr=text.toCharArray();
+ int i=0;
+ for (; i<textarr.length; ++i) {
+ if (!Parser.isWhitespace(textarr[i])) break;
+ }
+ for (; i<textarr.length; ++i) {
+ if (Parser.isWhitespace(textarr[i])) {
+ parameterName=new String(textarr,0,i).trim();
+ parameterComment=new String(textarr,i,textarr.length-i).trim();
+ break;
+ }
+ }
+ if (parameterComment!=null) {
+ setBody(parameterComment, contextClass, contextMember);
+ }
+ }
+
+ public String parameterComment() {
+ return parameterComment;
+ }
+
+ public String parameterName() {
+ return parameterName;
+ }
+
+ public String kind() {
+ return "@param";
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java
new file mode 100644
index 0000000..9132270
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParameterImpl.java
@@ -0,0 +1,52 @@
+/* gnu.classpath.tools.gjdoc.ParameterImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+
+public class ParameterImpl implements Parameter {
+
+ String name;
+ String typeName;
+ Type type;
+
+ ParameterImpl(String name, String typeName, Type type) {
+
+ this.name=name;
+ this.typeName=typeName;
+ this.type=type;
+ }
+
+ public void resolve(ClassDoc classContext) {
+ if (type instanceof ClassDocProxy) {
+ String className=type.qualifiedTypeName();
+ ClassDoc realClassDoc=((ClassDocImpl)classContext).findClass(className, type.dimension());
+ if (realClassDoc!=null) {
+ type=realClassDoc;
+ }
+ }
+ }
+
+ public String name() { return name; }
+ public String typeName() { return typeName; }
+ public Type type() { return type; }
+ public String toString() { return typeName+" "+name; }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java
new file mode 100644
index 0000000..4984ead
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ParseException.java
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.ParseException
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+class ParseException extends Exception {
+
+ public ParseException()
+ {
+ }
+
+ public ParseException(String msg)
+ {
+ super(msg);
+ }
+
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java
new file mode 100644
index 0000000..5569d4b
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Parser.java
@@ -0,0 +1,1047 @@
+/* gnu.classpath.tools.gjdoc.Parser
+ Copyright (C) 2001, 2005, 2008 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.io.*;
+import java.nio.ByteBuffer;
+import java.nio.CharBuffer;
+import java.nio.charset.Charset;
+import java.nio.charset.CharsetDecoder;
+import java.nio.charset.CoderResult;
+import java.nio.charset.CodingErrorAction;
+import java.util.*;
+
+import com.sun.javadoc.*;
+
+import gnu.classpath.tools.IOToolkit;
+import gnu.classpath.tools.NotifyingInputStreamReader;
+import gnu.classpath.tools.MalformedInputListener;
+import gnu.classpath.tools.MalformedInputEvent;
+
+ class IgnoredFileParseException extends ParseException
+ {
+ // marker exception
+ }
+
+ abstract class SourceComponent {
+
+ abstract int match(char[] source, int index) throws ParseException;
+
+ int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
+ return endIndex;
+ }
+
+ int getEndIndex(char[] source, int endIndex) throws ParseException {
+ return endIndex;
+ }
+ }
+
+ abstract class BlockSourceComponent extends SourceComponent {
+
+ int getEndIndex(char[] source, int endIndex) throws ParseException {
+ return Parser.skipExpression(source, endIndex, 1, '\0');
+ }
+
+ }
+
+ class Whitespace extends SourceComponent {
+
+ int match(char[] source, int index) {
+
+ int rc=index;
+ int slen=source.length;
+ while (rc<slen && Parser.WHITESPACE.indexOf(source[rc])>=0) ++rc;
+
+ return (rc!=index) ? rc : -1;
+ }
+ }
+
+ class BracketClose extends SourceComponent {
+
+ int match(char[] source, int index) {
+ if (source[index]=='}') {
+ return index+1;
+ }
+ else {
+ return -1;
+ }
+ }
+
+ int process(Parser parser, char[] source, int startIndex, int endIndex)
+ throws ParseException, IOException
+ {
+ parser.classClosed();
+ return endIndex;
+ }
+ }
+
+ class CommentComponent extends SourceComponent {
+
+ int match(char[] source, int index) throws ParseException {
+ if (index+1<source.length && source[index]=='/' && source[index+1]=='*') {
+ for (index+=2; index+1<source.length; ++index) {
+ if (source[index]=='*' && source[index+1]=='/')
+ return index+2;
+ }
+ throw new ParseException("unexpected end of input");
+ }
+ return -1;
+ }
+
+ int process(Parser parser, char[] source, int startIndex, int endIndex) {
+
+ if (source[startIndex+0]=='/'
+ && source[startIndex+1]=='*'
+ && source[startIndex+2]=='*') {
+
+ parser.setLastComment(new String(source, startIndex, endIndex-startIndex));
+ }
+ else if (null == parser.getBoilerplateComment() && Main.getInstance().isCopyLicenseText()) {
+ String boilerplateComment = new String(source, startIndex + 2, endIndex-startIndex - 4);
+ if (boilerplateComment.toLowerCase().indexOf("copyright") >= 0) {
+ parser.setBoilerplateComment(boilerplateComment);
+ }
+ }
+
+ return endIndex;
+ }
+ }
+
+ class SlashSlashCommentComponent extends SourceComponent {
+
+ int match(char[] source, int index) {
+ if (index+1<source.length && source[index]=='/' && source[index+1]=='/') {
+ index+=2;
+ while (index<source.length && source[index]!='\n')
+ ++index;
+ return index;
+ }
+ else {
+ return -1;
+ }
+ }
+ }
+
+ class EmptyStatementComponent extends SourceComponent {
+
+ int match(char[] source, int index) {
+ while (index < source.length
+ && Parser.isWhitespace(source[index])) {
+ ++ index;
+ }
+ if (index < source.length && source[index] == ';') {
+ return index+1;
+ }
+ else {
+ return -1;
+ }
+ }
+ }
+
+ class ImportComponent extends SourceComponent {
+
+ int match(char[] source, int index) {
+ if (index+7<source.length) {
+ if (source[index+0]=='i'
+ && source[index+1]=='m'
+ && source[index+2]=='p'
+ && source[index+3]=='o'
+ && source[index+4]=='r'
+ && source[index+5]=='t'
+ && Parser.WHITESPACE.indexOf(source[index+6])>=0) {
+
+ for (index+=7; index<source.length && source[index]!=';'; ++index)
+ ;
+
+ return index+1;
+ }
+ }
+ return -1;
+ }
+
+ int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
+ String importString=new String(source,startIndex+7,endIndex-startIndex-7-1).trim();
+ parser.importEncountered(importString);
+ return endIndex;
+ }
+ }
+
+ class PackageComponent extends SourceComponent {
+
+ int match(char[] source, int index) {
+ if (index+10<source.length) {
+ if (source[index+0]=='p'
+ && source[index+1]=='a'
+ && source[index+2]=='c'
+ && source[index+3]=='k'
+ && source[index+4]=='a'
+ && source[index+5]=='g'
+ && source[index+6]=='e'
+ && Parser.WHITESPACE.indexOf(source[index+7])>=0) {
+
+ for (index+=7; index<source.length && source[index]!=';'; ++index)
+ ;
+
+ return index+1;
+ }
+ }
+ return -1;
+ }
+
+ int process(Parser parser, char[] source, int startIndex, int endIndex) {
+ String packageName=new String(source,startIndex+8,endIndex-startIndex-8-1).trim();
+ parser.packageOpened(packageName);
+ return endIndex;
+ }
+ }
+
+ class FieldComponent extends SourceComponent {
+
+ int match(char[] source, int index) throws ParseException {
+ boolean isField=false;
+ final int STATE_NORMAL=1;
+ final int STATE_SLASHC=2;
+ final int STATE_STARC=3;
+ final int STATE_FIELDVAL=4;
+ final int STATE_STRING=5;
+ final int STATE_SINGLEQUOTED=6;
+ final int STATE_STRING_BS=7;
+ final int STATE_SINGLEQUOTED_BS=8;
+
+ int state=STATE_NORMAL;
+ int prevState=STATE_NORMAL;
+
+ int fieldValueLevel = 0;
+
+ for (; index<source.length && !isField; ++index) {
+ if (state==STATE_STARC) {
+ if (index<source.length-1 && source[index]=='*' && source[index+1]=='/') {
+ ++index;
+ state=prevState;
+ }
+ }
+ else if (state==STATE_SLASHC) {
+ if (source[index]=='\n') {
+ state=prevState;
+ }
+ }
+ else if (state==STATE_STRING) {
+ if (source[index]=='\\') {
+ state=STATE_STRING_BS;
+ }
+ else if (source[index]=='\"') {
+ state=prevState;
+ }
+ }
+ else if (state==STATE_STRING_BS) {
+ state=STATE_STRING;
+ }
+ else if (state==STATE_SINGLEQUOTED) {
+ if (source[index]=='\\') {
+ state=STATE_SINGLEQUOTED_BS;
+ }
+ else if (source[index]=='\'') {
+ state=prevState;
+ }
+ }
+ else if (state==STATE_SINGLEQUOTED_BS) {
+ state=STATE_SINGLEQUOTED;
+ }
+ else if (state==STATE_FIELDVAL) {
+ if (source[index]=='/') {
+ if (index<source.length-1 && source[index+1]=='*') {
+ state=STATE_STARC;
+ ++index;
+ }
+ else if (index<source.length-1 && source[index+1]=='/') {
+ state=STATE_SLASHC;
+ ++index;
+ }
+ }
+ else if (source[index]=='{') {
+ ++ fieldValueLevel;
+ }
+ else if (source[index]=='}') {
+ -- fieldValueLevel;
+ }
+ else if (source[index]=='\"') {
+ state=STATE_STRING;
+ }
+ else if (source[index]=='\'') {
+ state=STATE_SINGLEQUOTED;
+ }
+ else if (source[index]==';' && 0 == fieldValueLevel) {
+ isField=true;
+ break;
+ }
+ }
+ else switch (source[index]) {
+ case '/':
+ if (index<source.length-1 && source[index+1]=='*') {
+ state=STATE_STARC;
+ ++index;
+ }
+ else if (index<source.length-1 && source[index+1]=='/') {
+ state=STATE_SLASHC;
+ ++index;
+ }
+ break;
+ case '{': // class
+ case '(': // method
+ return -1;
+ case '=': // field
+ state=STATE_FIELDVAL;
+ prevState=state;
+ continue;
+ case ';': // field
+ isField=true;
+ break;
+ }
+ if (isField) break;
+ }
+ if (!isField || index==source.length) {
+ return -1;
+ }
+
+ //System.err.println("char is "+source[index]);
+
+ if (source[index]!=';') {
+ index=Parser.skipExpression(source, index, 0, ';');
+ }
+ return index+1;
+ }
+
+ int process(Parser parser, char[] source, int startIndex, int endIndex) {
+
+ //Debug.log(9,"found package statement: \""+str+"\"");
+ //Debug.log(9,"found function component: '"+str+"'");
+ //xxx(new FieldDocImpl(ctx.classDoc, ctx.classDoc.containingPackage(), 0, false, false));
+
+ // Ignore superfluous semicoli after class definition
+ if (endIndex-startIndex<=1) return endIndex;
+
+ //assert (parser.ctx!=null);
+ Collection fields=FieldDocImpl.createFromSource(parser.ctx.classDoc,
+ parser.ctx.classDoc.containingPackage(),
+ source, startIndex, endIndex);
+
+ for (Iterator it=fields.iterator(); it.hasNext(); ) {
+ FieldDocImpl field=(FieldDocImpl)it.next();
+ boolean fieldHasSerialTag=!field.isTransient() && !field.isStatic(); //field.hasSerialTag();
+ if ((field.isIncluded() || fieldHasSerialTag) && parser.getAddComments()) {
+ field.setRawCommentText(parser.getLastComment());
+ }
+ parser.ctx.fieldList.add(field);
+ if (field.isIncluded()) {
+ parser.ctx.filteredFieldList.add(field);
+ }
+ if (fieldHasSerialTag) {
+ parser.ctx.sfieldList.add(field);
+ }
+ }
+
+ parser.setLastComment(null);
+ return endIndex;
+ }
+
+
+ }
+
+ class FunctionComponent extends BlockSourceComponent {
+
+ int getEndIndex(char[] source, int endIndex) throws ParseException {
+ if (source[endIndex-1]==';') {
+ return endIndex;
+ }
+ else {
+ return super.getEndIndex(source, endIndex);
+ }
+ }
+
+ int process(Parser parser, char[] source, int startIndex, int endIndex) throws IOException, ParseException {
+
+ //ctx.fieldList.add(FieldDocImpl.createFromSource(source, startIndex, endIndex));
+
+ //System.out.println("function match '"+new String(source,startIndex,endIndex-startIndex)+"'");
+ ExecutableMemberDocImpl execDoc=MethodDocImpl.createFromSource(parser.ctx.classDoc,
+ parser.ctx.classDoc.containingPackage(),
+ source, startIndex, endIndex);
+
+ if (parser.getAddComments())
+ execDoc.setRawCommentText(parser.getLastComment());
+
+ parser.setLastComment(null);
+
+ if (execDoc.isMethod()) {
+ parser.ctx.methodList.add(execDoc);
+ if (execDoc.isIncluded()) {
+ parser.ctx.filteredMethodList.add(execDoc);
+ }
+ }
+ else {
+ parser.ctx.constructorList.add(execDoc);
+ if (execDoc.isIncluded()) {
+ parser.ctx.filteredConstructorList.add(execDoc);
+ }
+ }
+
+ if (execDoc.isMethod()
+ && (execDoc.name().equals("readObject")
+ || execDoc.name().equals("writeObject")
+ || execDoc.name().equals("readExternal")
+ || execDoc.name().equals("writeExternal")
+ || execDoc.name().equals("readResolve"))) {
+ // FIXME: add readExternal here?
+
+ parser.ctx.maybeSerMethodList.add(execDoc);
+ }
+
+ return endIndex;
+ }
+
+ int match(char[] source, int index) {
+ boolean isFunc=false;
+ final int STATE_NORMAL=1;
+ final int STATE_SLASHC=2;
+ final int STATE_STARC=3;
+ int state=STATE_NORMAL;
+ for (; index<source.length && !isFunc; ++index) {
+ if (state==STATE_STARC) {
+ if (source[index]=='*' && source[index+1]=='/') {
+ ++index;
+ state=STATE_NORMAL;
+ }
+ }
+ else if (state==STATE_SLASHC) {
+ if (source[index]=='\n') {
+ state=STATE_NORMAL;
+ }
+ }
+ else switch (source[index]) {
+ case '/':
+ if (source[index+1]=='*') {
+ state=STATE_STARC;
+ ++index;
+ }
+ else if (source[index+1]=='/') {
+ state=STATE_SLASHC;
+ ++index;
+ }
+ break;
+ case '=': // field
+ case ';': // field
+ case '{': // class
+ return -1;
+ case '(':
+ isFunc=true;
+ break;
+ }
+ if (isFunc) break;
+ }
+ if (!isFunc || index==source.length)
+ return -1;
+
+ for (; index<source.length && (state!=STATE_NORMAL || (source[index]!='{' && source[index]!=';')); ++index)
+ if (state==STATE_SLASHC && source[index]=='\n') {
+ state=STATE_NORMAL;
+ }
+ else if (index<source.length-1) {
+ if (state==STATE_STARC) {
+ if (source[index]=='*' && source[index+1]=='/') {
+ state=STATE_NORMAL;
+ }
+ }
+ else {
+ if (source[index]=='/' && source[index+1]=='*') {
+ state=STATE_STARC;
+ }
+ else if (source[index]=='/' && source[index+1]=='/') {
+ state=STATE_SLASHC;
+ }
+ }
+ }
+ return index+1;
+ }
+
+
+ }
+
+ class StaticBlockComponent extends BlockSourceComponent {
+
+ int process(Parser parser, char[] source, int startIndex, int endIndex) {
+ //Debug.log(9,"found package statement: \""+str+"\"");
+ //Debug.log(9,"found function component: '"+str+"'");
+ parser.setLastComment(null);
+ return endIndex;
+ }
+
+ int match(char[] source, int index) {
+ if (source[index]=='{') return index+1;
+
+ if (index+7<source.length) {
+ if (source[index+0]=='s'
+ && source[index+1]=='t'
+ && source[index+2]=='a'
+ && source[index+3]=='t'
+ && source[index+4]=='i'
+ && source[index+5]=='c') {
+
+ for (index+=6; index<source.length && Parser.WHITESPACE.indexOf(source[index])>=0; ++index)
+ ;
+
+ if (index<source.length && source[index]=='{')
+ return index+1;
+ else
+ return -1;
+ }
+ }
+ return -1;
+ }
+
+ }
+
+ class ClassComponent extends SourceComponent {
+
+ int match(char[] source, int index) {
+ boolean isClass=false;
+ for (; index<source.length && !isClass; ++index) {
+ switch (source[index]) {
+ case '/': // possible comment
+ if (index<source.length-1) {
+ char c = source[index+1];
+ if ('/' == c) {
+ index += 2;
+ while (index<source.length && source[index]!=10) {
+ ++ index;
+ }
+ }
+ else if ('*' == c) {
+ index += 3;
+ while (index<source.length && (source[index-1] != '*' || source[index]!='/')) {
+ ++ index;
+ }
+ }
+ }
+ break;
+ case '@': // annotation
+ index += 1;
+ while(index<source.length && Character.isJavaIdentifierPart(source[index])) {
+ ++ index;
+ }
+ if (index<source.length && source[index]=='(') {
+ int parLevel = 1;
+ index += 1;
+ while (index<source.length && parLevel>0) {
+ if (source[index] == '(')
+ ++ parLevel;
+ if (source[index] == ')')
+ -- parLevel;
+ ++ index;
+ if (parLevel==0)
+ break;
+ }
+ }
+ break;
+ case '=': // field
+ case ';': // field
+ case '(': // function
+ return -1;
+ case '{':
+ isClass=true;
+ break;
+ }
+ if (isClass) break;
+ }
+ if (!isClass || index>=source.length)
+ return -1;
+
+ return index+1;
+ }
+
+ int process(Parser parser, char[] source, int startIndex, int endIndex) throws ParseException, IOException {
+
+ parser.classOpened(source, startIndex, endIndex);
+ if (parser.getAddComments())
+ parser.ctx.classDoc.setRawCommentText(parser.getLastComment());
+ parser.setLastComment(null);
+ if (parser.ctx.classDoc.isEnum())
+ {
+ int depth = 0;
+ for (int a = endIndex; a < source.length; ++a)
+ {
+ Debug.log(9, "Enum skipping " + a);
+ if (source[a] == '{')
+ {
+ Debug.log(1, "Found inner { in enum");
+ ++depth;
+ }
+ if (source[a] == '}')
+ {
+ if (depth > 0)
+ {
+ Debug.log(1, "Found inner } in enum");
+ --depth;
+ }
+ else
+ {
+ Debug.log(1, "Found enum }");
+ parser.classClosed();
+ return a + 1;
+ }
+ }
+ }
+ }
+ int rc=parser.parse(source, endIndex, parser.getClassLevelComponents());
+ return rc;
+ }
+
+ }
+
+
+public class Parser {
+
+
+ static int skipExpression(char[] source, int endIndex, int level, char delimiter) throws ParseException {
+
+ int orgEndIndex=endIndex;
+
+ final int STATE_NORMAL=1;
+ final int STATE_STARC=2;
+ final int STATE_SLASHC=3;
+ final int STATE_CHAR=4;
+ final int STATE_STRING=5;
+
+ int state=STATE_NORMAL;
+ int prev=0;
+ for (; !((level==0 && state==STATE_NORMAL && (delimiter=='\0' || source[endIndex]==delimiter))) && endIndex<source.length; ++endIndex) {
+ int c=source[endIndex];
+ if (state==STATE_NORMAL) {
+ if (c=='}') --level;
+ else if (c=='{') ++level;
+ else if (c=='/' && prev=='/') { state=STATE_SLASHC; c=0; }
+ else if (c=='*' && prev=='/') { state=STATE_STARC; c=0; }
+ else if (c=='\'' && prev!='\\') { state=STATE_CHAR; c=0; }
+ else if (c=='\"' && prev!='\\') { state=STATE_STRING; c=0; }
+ }
+ else if (state==STATE_SLASHC) {
+ if (c=='\n') state=STATE_NORMAL;
+ }
+ else if (state==STATE_CHAR) {
+ if (c=='\'' && prev!='\\') state=STATE_NORMAL;
+ else if (c=='\\' && prev=='\\') c=0;
+ }
+ else if (state==STATE_STRING) {
+ if (c=='\"' && prev!='\\') state=STATE_NORMAL;
+ else if (c=='\\' && prev=='\\') c=0;
+ }
+ else {
+ if (c=='/' && prev=='*') { state=STATE_NORMAL; c=0; }
+ }
+ prev=c;
+ }
+ if (level>0)
+ throw new ParseException("Unexpected end of source.");
+ else {
+ String rc=new String(source, orgEndIndex, endIndex-orgEndIndex);
+ return endIndex;
+ }
+ }
+
+ private boolean addComments = false;
+
+ public boolean getAddComments()
+ {
+ return this.addComments;
+ }
+
+ public static final String WHITESPACE=" \t\r\n ";
+
+ public static final boolean isWhitespace(char c) {
+ return (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == ' ');
+ //return WHITESPACE.indexOf(c)>=0;
+ }
+
+ private int currentLine;
+
+ static char[] loadFile(final File file, String encoding)
+ throws IOException
+ {
+ InputStream in = new FileInputStream(file);
+ NotifyingInputStreamReader notifyingInput
+ = new NotifyingInputStreamReader(in, encoding);
+ notifyingInput.addMalformedInputListener(new MalformedInputListener() {
+ public void malformedInputEncountered(MalformedInputEvent event) {
+ Main.getRootDoc().printWarning("Illegal character in file " + file + ", line " + event.getLineNumber() + ", column " + event.getColumnNumber());
+ try {
+ Main.getRootDoc().printWarning(IOToolkit.getLineFromFile(file, event.getLineNumber()));
+ Main.getRootDoc().printWarning(IOToolkit.getColumnDisplayLine(event.getColumnNumber()));
+ }
+ catch (IOException ignore) {
+ }
+ }
+ });
+ Reader reader
+ = new BufferedReader(notifyingInput);
+ char[] result = IOToolkit.readFully(reader);
+ reader.close();
+ return result;
+ }
+
+ private SourceComponent[] sourceLevelComponents;
+ private SourceComponent[] classLevelComponents;
+
+ public SourceComponent[] getClassLevelComponents()
+ {
+ return this.classLevelComponents;
+ }
+
+ public Parser() {
+ try {
+
+ sourceLevelComponents=new SourceComponent[] {
+ new Whitespace(),
+ new CommentComponent(),
+ new SlashSlashCommentComponent(),
+ new PackageComponent(),
+ new EmptyStatementComponent(),
+ new ImportComponent(),
+ new ClassComponent(),
+ };
+
+ classLevelComponents=new SourceComponent[] {
+ new Whitespace(),
+ new BracketClose(),
+ new CommentComponent(),
+ new SlashSlashCommentComponent(),
+ new FunctionComponent(),
+ new StaticBlockComponent(),
+ new ImportComponent(),
+ new ClassComponent(),
+ new FieldComponent(),
+ };
+ }
+ catch (Exception e) {
+ e.printStackTrace();
+ }
+ }
+
+ public int getNumberOfProcessedFiles() {
+ return processedFiles.size();
+ }
+
+ static Set processedFiles = new HashSet();
+
+ ClassDocImpl processSourceFile(File file, boolean addComments,
+ String encoding, String expectedPackageName)
+ throws IOException, ParseException
+ {
+ //System.err.println("Processing " + file + "...");
+ this.currentFile = file;
+ this.currentPackage = null;
+ this.currentPackageName = null;
+ this.expectedPackageName = expectedPackageName;
+ this.outerClass = null;
+ this.boilerplateComment = null;
+
+ this.addComments=addComments;
+
+ if (processedFiles.contains(file)) {
+ return null;
+ }
+
+ processedFiles.add(file);
+
+ Debug.log(1,"Processing file "+file);
+
+ contextStack.clear();
+ ctx=null;
+
+ importedClassesList.clear();
+ importedStringList.clear();
+ importedPackagesList.clear();
+ importedStatementList.clear();
+
+ currentLine = 1;
+
+ char[] source = loadFile(file, encoding);
+
+ try {
+ parse(source, 0, sourceLevelComponents);
+
+ ClassDoc[] importedClasses=(ClassDoc[])importedClassesList.toArray(new ClassDoc[0]);
+ PackageDoc[] importedPackages=(PackageDoc[])importedPackagesList.toArray(new PackageDoc[0]);
+
+ if (Main.DESCEND_IMPORTED) {
+ for (int i=0; i<importedClasses.length; ++i) {
+ Main.getRootDoc().scheduleClass(currentClass, importedClasses[i].qualifiedName());
+ }
+ }
+
+
+ if (contextStack.size()>0) {
+ Debug.log(1,"-->contextStack not empty! size is "+contextStack.size());
+ }
+
+ return outerClass;
+ }
+ catch (IgnoredFileParseException ignore) {
+ Debug.log(1, "File ignored: " + ignore);
+ return null;
+ }
+ }
+
+ int parse(char[] source, int index, SourceComponent[] componentTypes) throws ParseException, IOException {
+
+ while (index<source.length) {
+
+ int match=-1;
+ int i=0;
+ for (; i<componentTypes.length; ++i) {
+ if ((match=componentTypes[i].match(source, index))>=0) {
+ //Debug.log(1,componentTypes[i].getClass().getName()+" ("+match+"/"+source.length+")");
+ break;
+ }
+ }
+
+ if (i<componentTypes.length) {
+ int endIndex=componentTypes[i].getEndIndex(source, match);
+ Debug.log(9, "Processing " + new String(source,index,endIndex-index) + " with " + componentTypes[i]);
+ index=componentTypes[i].process(this, source, index, endIndex);
+ if (index<0) {
+ //Debug.log(9,"exiting parse because of "+componentTypes[i].getClass().getName()+" (\""+new String(source, index, endIndex-index)+"\")");
+ return endIndex;
+ }
+ }
+ else {
+ //Debug.log(9,"index="+index+", source.length()="+source.length);
+ throw new ParseException("unmatched input in line "+currentLine+": "+new String(source, index, Math.min(50,source.length-index)));
+ }
+
+ }
+ //Debug.log(9,"exiting parse normally, index="+index+" source.length="+source.length);
+ return index;
+ }
+
+ private static int countNewLines(String source) {
+ int i=0;
+ int rc=0;
+ while ((i=source.indexOf('\n',i)+1)>0)
+ ++rc;
+ return rc;
+ }
+
+ public void processSourceDir(File dir, String encoding, String expectedPackageName)
+ throws IOException, ParseException
+ {
+ Debug.log(9,"Processing "+dir.getParentFile().getName()+"."+dir.getName());
+ File[] files=dir.listFiles();
+ if (null!=files) {
+ for (int i=0; i<files.length; ++i) {
+ if (files[i].getName().toLowerCase().endsWith(".java")) {
+ processSourceFile(files[i], true, encoding, expectedPackageName);
+ }
+ }
+ }
+ }
+
+ void classOpened(char[] source, int startIndex, int endIndex) throws ParseException, IOException {
+
+ referencedClassesList.clear();
+
+ if (null == currentPackage) {
+
+ if (expectedPackageName != null) {
+ if (null == currentPackageName ||
+ !currentPackageName.equals(expectedPackageName)) {
+
+ Main.getRootDoc().printWarning("Ignoring file " + currentFile + ": (wrong package, " + currentPackageName + "!=" + expectedPackageName + ")");
+ throw new IgnoredFileParseException();
+ }
+ }
+
+ if (null != currentPackageName) {
+ currentPackage = Main.getRootDoc().findOrCreatePackageDoc(currentPackageName);
+ }
+ else {
+ currentPackage = Main.getRootDoc().findOrCreatePackageDoc("");
+ }
+ }
+
+ if (currentPackageName != null)
+ importedStatementList.add(currentPackageName + ".*");
+ importedStatementList.add("java.lang.*");
+
+ ClassDocImpl classDoc
+ = ClassDocImpl.createInstance((ctx!=null)?(ctx.classDoc):null, currentPackage,
+ null,
+ (PackageDoc[])importedPackagesList.toArray(new PackageDoc[0]),
+ source, startIndex, endIndex,
+ importedStatementList);
+
+ if (ctx != null) {
+ ctx.innerClassesList.add(classDoc);
+ if (classDoc.isIncluded()) {
+ ctx.filteredInnerClassesList.add(classDoc);
+ }
+ }
+
+ if (importedClassesList.isEmpty()) {
+ for (Iterator it=importedStringList.iterator(); it.hasNext(); ) {
+ importedClassesList.add(new ClassDocProxy((String)it.next(), classDoc));
+ }
+ }
+ classDoc.setImportedClasses((ClassDoc[])importedClassesList.toArray(new ClassDoc[0]));
+
+ currentPackage.addClass(classDoc);
+
+ currentClass = classDoc;
+
+ if (null == outerClass) {
+ outerClass = classDoc;
+ }
+
+ if (classDoc.superclass()!=null)
+ referencedClassesList.add(classDoc.superclass());
+
+ Debug.log(1,"classOpened "+classDoc+", adding superclass "+classDoc.superclass());
+ Debug.log(1,"Pushing " + ctx);
+ contextStack.push(ctx);
+ ctx=new Context(classDoc);
+ //Debug.log(9,"ctx="+ctx);
+ }
+
+ private Doc[] toArray(List list, Doc[] template)
+ {
+ Doc[] result = (Doc[])list.toArray(template);
+ return result;
+ }
+
+ void classClosed() throws ParseException, IOException {
+ ctx.classDoc.setFields((FieldDoc[])toArray(ctx.fieldList,
+ new FieldDoc[0]));
+ ctx.classDoc.setFilteredFields((FieldDoc[])toArray(ctx.filteredFieldList,
+ new FieldDoc[0]));
+ ctx.classDoc.setSerializableFields((FieldDoc[])toArray(ctx.sfieldList, new FieldDoc[0]));
+ ctx.classDoc.setMethods((MethodDoc[])toArray(ctx.methodList, new MethodDoc[0]));
+ ctx.classDoc.setFilteredMethods((MethodDoc[])toArray(ctx.filteredMethodList, new MethodDoc[0]));
+ ctx.classDoc.setMaybeSerMethodList(ctx.maybeSerMethodList);
+ ctx.classDoc.setConstructors((ConstructorDoc[])toArray(ctx.constructorList, new ConstructorDoc[0]));
+ ctx.classDoc.setFilteredConstructors((ConstructorDoc[])toArray(ctx.filteredConstructorList, new ConstructorDoc[0]));
+
+ ctx.classDoc.setInnerClasses((ClassDocImpl[])toArray(ctx.innerClassesList, new ClassDocImpl[0]));
+ ctx.classDoc.setFilteredInnerClasses((ClassDocImpl[])toArray(ctx.filteredInnerClassesList, new ClassDocImpl[0]));
+ ctx.classDoc.setBoilerplateComment(boilerplateComment);
+
+ Main.getRootDoc().addClassDoc(ctx.classDoc);
+
+ if (Main.DESCEND_INTERFACES) {
+ for (int i=0; i<ctx.classDoc.interfaces().length; ++i) {
+ Main.getRootDoc().scheduleClass(ctx.classDoc, ctx.classDoc.interfaces()[i].qualifiedName());
+ }
+ }
+
+ Debug.log(1,"classClosed: "+ctx.classDoc);
+
+ ctx=(Context)contextStack.pop();
+ Debug.log(1, "Popping " + ctx);
+ ClassDoc[] referencedClasses=(ClassDoc[])referencedClassesList.toArray(new ClassDoc[0]);
+
+ if (Main.DESCEND_SUPERCLASS) {
+ for (int i=0; i<referencedClasses.length; ++i) {
+ Main.getRootDoc().scheduleClass(currentClass, referencedClasses[i].qualifiedName());
+ }
+ }
+ }
+
+ Context ctx = null;
+ Stack contextStack = new Stack();
+ class Context {
+ Context(ClassDocImpl classDoc) { this.classDoc=classDoc; }
+ ClassDocImpl classDoc = null;
+ List fieldList = new LinkedList();
+ List filteredFieldList = new LinkedList();
+ List sfieldList = new LinkedList();
+ List methodList = new LinkedList();
+ List filteredMethodList = new LinkedList();
+ List maybeSerMethodList = new LinkedList();
+ List constructorList = new LinkedList();
+ List filteredConstructorList = new LinkedList();
+ List innerClassesList = new LinkedList();
+ List filteredInnerClassesList = new LinkedList();
+ }
+
+ File currentFile = null;
+ String lastComment = null;
+ String expectedPackageName = null;
+ String currentPackageName = null;
+ PackageDocImpl currentPackage = null;
+ ClassDocImpl currentClass = null;
+ ClassDocImpl outerClass = null;
+ List ordinaryClassesList = new LinkedList();
+ List allClassesList = new LinkedList();
+ List interfacesList = new LinkedList();
+
+ List importedClassesList = new LinkedList();
+ List importedStringList = new LinkedList();
+ List importedPackagesList = new LinkedList();
+ List importedStatementList = new LinkedList();
+
+ List referencedClassesList = new LinkedList();
+
+ String boilerplateComment = null;
+
+ void packageOpened(String packageName) {
+ currentPackageName = packageName;
+ }
+
+ void importEncountered(String importString) throws ParseException, IOException {
+ //Debug.log(9,"importing '"+importString+"'");
+
+ importedStatementList.add(importString);
+
+ if (importString.endsWith(".*")) {
+ importedPackagesList.add(Main.getRootDoc().findOrCreatePackageDoc(importString.substring(0,importString.length()-2)));
+ }
+ else {
+ importedStringList.add(importString);
+ }
+ }
+
+
+ void setLastComment(String lastComment) {
+ this.lastComment=lastComment;
+ }
+
+ String getLastComment() {
+ return this.lastComment;
+ }
+
+ void setBoilerplateComment(String boilerplateComment)
+ {
+ this.boilerplateComment = boilerplateComment;
+ }
+
+ String getBoilerplateComment()
+ {
+ return boilerplateComment;
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java
new file mode 100644
index 0000000..19353cc
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ProgramElementDocImpl.java
@@ -0,0 +1,161 @@
+/* gnu.classpath.tools.gjdoc.ProgramElementDocImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.lang.reflect.Modifier;
+
+public abstract class ProgramElementDocImpl extends DocImpl implements ProgramElementDoc {
+
+ protected ClassDoc containingClass;
+ protected PackageDoc containingPackage;
+
+ protected boolean isFinal;
+ protected boolean isStatic;
+ protected int accessLevel=ProgramElementDocImpl.ACCESS_PACKAGEPRIVATE;
+
+ public static final int ACCESS_PUBLIC = 0;
+ public static final int ACCESS_PROTECTED = 1;
+ public static final int ACCESS_PACKAGEPRIVATE = 2;
+ public static final int ACCESS_PRIVATE = 3;
+
+ private static final String[] accessModifiers = { "public ", "protected ", "", "private "};
+
+ public ProgramElementDocImpl(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ SourcePosition position) {
+ super(position);
+ this.containingClass=containingClass;
+ this.containingPackage=containingPackage;
+ }
+ public ProgramElementDocImpl(ClassDoc containingClass, SourcePosition position) {
+ super(position);
+ this.containingClass=containingClass;
+ this.containingPackage=containingClass.containingPackage();
+ }
+ public ProgramElementDocImpl(ClassDoc containingClass,
+ PackageDoc containingPackage,
+ int accessLevel,
+ boolean isFinal,
+ boolean isStatic,
+ SourcePosition position) {
+ super(position);
+ this.containingClass=containingClass;
+ this.containingPackage=containingPackage;
+ this.accessLevel=accessLevel;
+ this.isFinal=isFinal;
+ this.isStatic=isStatic;
+ }
+
+ //Get the containing class of this program element.
+ public ClassDoc containingClass() {
+ return containingClass;
+ }
+
+ // Get the package that this program element is contained in.
+ public PackageDoc containingPackage() {
+ return containingPackage;
+ }
+
+ // Return true if this program element is final
+ public boolean isFinal() {
+ return isFinal;
+ }
+
+ // Return true if this program element is package private
+ public boolean isPackagePrivate() {
+ return accessLevel==ACCESS_PACKAGEPRIVATE;
+ }
+
+ // Return true if this program element is private
+ public boolean isPrivate() {
+ return accessLevel==ACCESS_PRIVATE;
+ }
+
+ // Return true if this program element is protected
+ public boolean isProtected() {
+ return accessLevel==ACCESS_PROTECTED;
+ }
+
+ // Return true if this program element is public
+ public boolean isPublic() {
+ return accessLevel==ACCESS_PUBLIC;
+ }
+
+ // Return true if this program element is static
+ public boolean isStatic() {
+ return isStatic;
+ }
+
+ // Get modifiers string.
+ public String modifiers() {
+ return
+ (accessModifiers[accessLevel]+
+ (isStatic()?"static ":"")+
+ (isFinal()?"final ":"")).trim();
+ }
+
+ // Get the modifier specifier integer.
+ public int modifierSpecifier() {
+ return (isStatic()?Modifier.STATIC:0)
+ | (isFinal()?Modifier.FINAL:0)
+ | (isPublic()?Modifier.PUBLIC:0)
+ | (isProtected()?Modifier.PROTECTED:0)
+ | (isPrivate()?Modifier.PRIVATE:0)
+// | (isAbstract()?Modifier.ABSTRACT:0)
+ ;
+ }
+
+ // Get the fully qualified name.
+ public abstract String qualifiedName();
+
+ protected boolean processModifier(String word) {
+ if (word.equals("public")) {
+ accessLevel=ACCESS_PUBLIC;
+ return true;
+ }
+ else if (word.equals("protected")) {
+ accessLevel=ACCESS_PROTECTED;
+ return true;
+ }
+ else if (word.equals("private")) {
+ accessLevel=ACCESS_PRIVATE;
+ return true;
+ }
+ else if (word.equals("static")) {
+ isStatic=true;
+ return true;
+ }
+ else if (word.equals("final")) {
+ isFinal=true;
+ return true;
+ }
+ else {
+ return false;
+ }
+ }
+
+ void setIsStatic(boolean b) {
+ this.isStatic=b;
+ }
+
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java
new file mode 100644
index 0000000..b60a0b6
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/RootDocImpl.java
@@ -0,0 +1,1317 @@
+/* gnu.classpath.tools.gjdoc.RootDocImpl
+ Copyright (C) 2001, 2007 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.io.*;
+import java.lang.reflect.*;
+
+public class RootDocImpl
+ extends DocImpl
+ implements GjdocRootDoc {
+
+ private ErrorReporter reporter = new ErrorReporter();
+
+ private RandomAccessFile rawCommentCache;
+
+ /**
+ * All options and their corresponding values which are not recognized
+ * by Gjdoc. These are passed to the Doclet as "custom options".
+ * Each element in this array is again a String array, with the
+ * option name as first element (including prefix dash) and possible
+ * option values as following elements.
+ */
+ private String[][] customOptionArr;
+
+ /**
+ * All source files explicitly specified on the command line.
+ *
+ * @contains File
+ */
+ private List specifiedSourceFiles = new LinkedList();
+
+ /**
+ * The names of all packages explicitly specified on the
+ * command line.
+ *
+ * @contains String
+ */
+ private Set specifiedPackageNames = new LinkedHashSet();
+
+ /**
+ * Stores all classes specified by the user: those given by
+ * individual class names on the command line, and those
+ * contained in the packages given on the command line.
+ *
+ * @contains ClassDocImpl
+ */
+ private List classesList = new LinkedList(); //new LinkedList();
+
+ /**
+ * Stores all classes loaded in the course of preparing
+ * the documentation data. Maps the fully qualified name
+ * of a class to its ClassDocImpl representation.
+ *
+ * @contains String->ClassDocImpl
+ */
+ private Map classDocMap = new HashMap();
+
+ /**
+ * Stores all packages loaded in the course of preparing
+ * the documentation data. Maps the package name
+ * to its PackageDocImpl representation.
+ *
+ * @contains String->PackageDocImpl
+ */
+ private Map packageDocMap = new HashMap();
+
+ /**
+ * All classes specified by the user, both those explicitly
+ * individually specified on the command line and those contained
+ * in packages specified on the command line (as Array for quick
+ * retrieval by Doclet). This is created from classesList after
+ * all classes have been loaded.
+ */
+ private ClassDocImpl[] classes;
+
+ /**
+ * All classes which were individually specified on the command
+ * line (as Array for quick retrieval by Doclet). This is created
+ * from specifiedClassNames after all classes have been loaded.
+ */
+ private List specifiedClasses;
+
+ /**
+ * All packages which were specified on the command line (as Array
+ * for quick retrieval by Doclet). This is created from
+ * specifiedPackageNames after all classes have been loaded.
+ */
+ private Set specifiedPackages;
+
+
+ /**
+ * Temporarily stores a list of classes which are referenced
+ * by classes already loaded and which still have to be
+ * resolved.
+ */
+ private List scheduledClasses=new LinkedList();
+
+ private List sourcePath;
+
+ private String sourceEncoding;
+
+ private Parser parser = new Parser();
+
+ private Set unlocatableReportedSet = new HashSet();
+
+ private Set inaccessibleReportedSet = new HashSet();
+
+ //--------------------------------------------------------------------------
+ //
+ // Implementation of RootDoc interface
+ //
+ //--------------------------------------------------------------------------
+
+ /**
+ * Return classes and interfaces to be documented.
+ */
+ public ClassDoc[] classes() { return classes; }
+
+ /**
+ * Return a ClassDoc object for the specified class/interface
+ * name.
+ *
+ * @return a ClassDoc object describing the given class, or
+ * <code>null</code> if no corresponding ClassDoc object
+ * has been constructed.
+ */
+ public ClassDoc classNamed(String qualifiedName) {
+ return (ClassDoc)classDocMap.get(qualifiedName);
+ }
+
+ /**
+ * Return an xxx
+ */
+ public String[][] options() { return customOptionArr; }
+
+ // Return a PackageDoc for the specified package name
+ public PackageDoc packageNamed(String name) {
+ return (PackageDoc)packageDocMap.get(name);
+ }
+
+
+ // classes and interfaces specified on the command line.
+ public ClassDoc[] specifiedClasses()
+ {
+ return (ClassDocImpl[]) specifiedClasses.toArray(new ClassDocImpl[0]);
+ }
+
+ // packages specified on the command line.
+ public PackageDoc[] specifiedPackages()
+ {
+ return (PackageDocImpl[])specifiedPackages.toArray(new PackageDocImpl[0]);
+ }
+
+ // Print error message, increment error count.
+ public void printError(java.lang.String msg) {
+ reporter.printError(msg);
+ }
+
+ // Print error message, increment error count.
+ public void printFatal(java.lang.String msg) {
+ reporter.printFatal(msg);
+ }
+
+ // Print a message.
+ public void printNotice(java.lang.String msg) {
+ reporter.printNotice(msg);
+ }
+
+ // Print warning message, increment warning count.
+ public void printWarning(java.lang.String msg) {
+ reporter.printWarning(msg);
+ }
+
+ public String name() {
+ return "RootDoc";
+ }
+
+ public ErrorReporter getReporter() {
+ return reporter;
+ }
+
+ public void build() throws ParseException, IOException {
+
+ //--- Create a temporary random access file for caching comment text.
+
+ //File rawCommentCacheFile=File.createTempFile("gjdoc_rawcomment",".cache");
+ File rawCommentCacheFile = new File("gjdoc_rawcomment.cache");
+ rawCommentCacheFile.deleteOnExit();
+ rawCommentCache = new RandomAccessFile(rawCommentCacheFile, "rw");
+
+ //--- Parse all files in "java.lang".
+
+ List javaLangSourceDirs = findSourceFiles("java/lang");
+ if (!javaLangSourceDirs.isEmpty()) {
+ Iterator it = javaLangSourceDirs.iterator();
+ while (it.hasNext()) {
+ File javaLangSourceDir = (File)it.next();
+ parser.processSourceDir(javaLangSourceDir,
+ sourceEncoding, "java.lang");
+ }
+ }
+ else {
+
+ Debug.log(1, "Sourcepath is "+sourcePath);
+
+ // Core docs not included in source-path:
+ // we need to gather the information about java.lang
+ // classes via reflection...
+
+ }
+
+ //--- Parse all files in explicitly specified package directories.
+
+ for (Iterator it=specifiedPackageNames.iterator(); it.hasNext(); ) {
+
+ String specifiedPackageName = (String)it.next();
+ String displayPackageName = specifiedPackageName;
+ if (null == displayPackageName || 0 == displayPackageName.length()) {
+ displayPackageName = "<unnamed>";
+ }
+ printNotice("Loading classes for package "+displayPackageName+"...");
+ String relPath;
+ if (null != specifiedPackageName) {
+ relPath = specifiedPackageName.replace('.',File.separatorChar);
+ }
+ else {
+ relPath = "";
+ }
+ List sourceDirs = findSourceFiles(relPath);
+ if (!sourceDirs.isEmpty()) {
+ Iterator sourceDirIt = sourceDirs.iterator();
+ while (sourceDirIt.hasNext()) {
+ File sourceDir = (File)sourceDirIt.next();
+ parser.processSourceDir(sourceDir, sourceEncoding, specifiedPackageName);
+ }
+ }
+ else {
+ printError("Package '"+specifiedPackageName+"' not found.");
+ }
+ }
+
+ specifiedClasses = new LinkedList();
+
+ //--- Parse all explicitly specified source files.
+
+ for (Iterator it=specifiedSourceFiles.iterator(); it.hasNext(); ) {
+
+ File specifiedSourceFile = (File)it.next();
+ printNotice("Loading source file "+specifiedSourceFile+" ...");
+ ClassDocImpl classDoc = parser.processSourceFile(specifiedSourceFile, true, sourceEncoding, null);
+ if (null != classDoc) {
+ specifiedClasses.add(classDoc);
+ classesList.add(classDoc);
+ classDoc.setIsIncluded(true);
+ addPackageDoc(classDoc.containingPackage());
+ }
+ }
+
+
+ //--- Let the user know that all specified classes are loaded.
+
+ printNotice("Constructing Javadoc information...");
+
+ //--- Load all classes implicitly referenced by explicitly specified classes.
+
+ loadScheduledClasses(parser);
+
+ printNotice("Resolving references in comments...");
+
+ resolveComments();
+
+ //--- Resolve pending references in all ClassDocImpls
+
+ printNotice("Resolving references in classes...");
+
+ for (Iterator it = classDocMap.values().iterator(); it.hasNext(); ) {
+ ClassDoc cd=(ClassDoc)it.next();
+ if (cd instanceof ClassDocImpl) {
+ ((ClassDocImpl)cd).resolve();
+ }
+ }
+
+ //--- Resolve pending references in all PackageDocImpls
+
+ printNotice("Resolving references in packages...");
+
+ for (Iterator it = packageDocMap.values().iterator(); it.hasNext(); ) {
+ PackageDocImpl pd=(PackageDocImpl)it.next();
+ pd.resolve();
+ }
+
+ //--- Assemble the array with all specified packages
+
+ specifiedPackages = new LinkedHashSet();
+ for (Iterator it = specifiedPackageNames.iterator(); it.hasNext(); ) {
+ String specifiedPackageName = (String)it.next();
+ PackageDoc specifiedPackageDoc = (PackageDoc)packageDocMap.get(specifiedPackageName);
+ if (null!=specifiedPackageDoc) {
+ ((PackageDocImpl)specifiedPackageDoc).setIsIncluded(true);
+ specifiedPackages.add(specifiedPackageDoc);
+
+ ClassDoc[] packageClassDocs=specifiedPackageDoc.allClasses();
+ for (int i=0; i<packageClassDocs.length; ++i) {
+ ClassDocImpl specifiedPackageClassDoc=(ClassDocImpl)packageClassDocs[i];
+
+ specifiedPackageClassDoc.setIsIncluded(true);
+ classesList.add(specifiedPackageClassDoc);
+ }
+ }
+ }
+
+ //--- Resolve pending references in comment data of all classes
+
+ printNotice("Resolving references in class comments...");
+
+ for (Iterator it=classDocMap.values().iterator(); it.hasNext(); ) {
+ ClassDoc cd=(ClassDoc)it.next();
+ if (cd instanceof ClassDocImpl) {
+ ((ClassDocImpl)cd).resolveComments();
+ }
+ }
+
+ //--- Resolve pending references in comment data of all packages
+
+ printNotice("Resolving references in package comments...");
+
+ for (Iterator it=packageDocMap.values().iterator(); it.hasNext(); ) {
+ PackageDocImpl pd=(PackageDocImpl)it.next();
+ pd.resolveComments();
+ }
+
+ //--- Create array with all loaded classes
+
+ this.classes=(ClassDocImpl[])classesList.toArray(new ClassDocImpl[0]);
+ Arrays.sort(this.classes);
+
+ //--- Close comment cache
+
+ parser = null;
+ System.gc();
+ System.gc();
+ }
+
+ public long writeRawComment(String rawComment) {
+ try {
+ long pos=rawCommentCache.getFilePointer();
+ //rawCommentCache.writeUTF(rawComment);
+ byte[] bytes = rawComment.getBytes("utf-8");
+ rawCommentCache.writeInt(bytes.length);
+ rawCommentCache.write(bytes);
+ return pos;
+ }
+ catch (IOException e) {
+ printFatal("Cannot write to comment cache: "+e.getMessage());
+ return -1;
+ }
+ }
+
+ public String readRawComment(long pos) {
+ try {
+ rawCommentCache.seek(pos);
+ int sz = rawCommentCache.readInt();
+ byte[] bytes = new byte[sz];
+ rawCommentCache.read(bytes);
+ return new String(bytes, "utf-8");
+ //return rawCommentCache.readUTF();
+ }
+ catch (IOException e) {
+ e.printStackTrace();
+ printFatal("Cannot read from comment cache: "+e.getMessage());
+ return null;
+ }
+ }
+
+ List findSourceFiles(String relPath) {
+
+ List result = new LinkedList();
+ for (Iterator it = sourcePath.iterator(); it.hasNext(); ) {
+ File path = (File)it.next();
+ File file = new File(path, relPath);
+ if (file.exists()) {
+ result.add(file);
+ }
+ }
+
+ return result;
+ }
+
+ PackageDocImpl findOrCreatePackageDoc(String packageName) {
+ PackageDocImpl rc=(PackageDocImpl)getPackageDoc(packageName);
+ if (null==rc) {
+ rc=new PackageDocImpl(packageName);
+ if (specifiedPackageNames.contains(packageName)) {
+ String packageDirectoryName = packageName.replace('.', File.separatorChar);
+ List packageDirectories = findSourceFiles(packageDirectoryName);
+ Iterator it = packageDirectories.iterator();
+ boolean packageDocFound = false;
+ while (it.hasNext()) {
+ File packageDirectory = (File)it.next();
+ File packageDocFile = new File(packageDirectory, "package.html");
+ rc.setPackageDirectory(packageDirectory);
+ packageDocFound = true;
+ if (null!=packageDocFile && packageDocFile.exists()) {
+ try {
+ rc.setRawCommentText(readHtmlBody(packageDocFile));
+ }
+ catch (IOException e) {
+ printWarning("Error while reading documentation for package "+packageName+": "+e.getMessage());
+ }
+ break;
+ }
+ }
+ if (!packageDocFound) {
+ printNotice("No description found for package "+packageName);
+ }
+ }
+ addPackageDoc(rc);
+ }
+ return rc;
+ }
+
+ public void addClassDoc(ClassDoc cd) {
+ classDocMap.put(cd.qualifiedName(), cd);
+ }
+
+ public void addClassDocRecursive(ClassDoc cd) {
+ classDocMap.put(cd.qualifiedName(), cd);
+ ClassDoc[] innerClasses = cd.innerClasses(false);
+ for (int i=0; i<innerClasses.length; ++i) {
+ addClassDocRecursive(innerClasses[i]);
+ }
+ }
+
+ public void addPackageDoc(PackageDoc pd) {
+ packageDocMap.put(pd.name(), pd);
+ }
+
+ public PackageDocImpl getPackageDoc(String name) {
+ return (PackageDocImpl)packageDocMap.get(name);
+ }
+
+ public ClassDocImpl getClassDoc(String qualifiedName) {
+ return (ClassDocImpl)classDocMap.get(qualifiedName);
+ }
+
+ class ScheduledClass {
+
+ ClassDoc contextClass;
+ String qualifiedName;
+ ScheduledClass(ClassDoc contextClass, String qualifiedName) {
+ this.contextClass=contextClass;
+ this.qualifiedName=qualifiedName;
+ }
+
+ public String toString() { return "ScheduledClass{"+qualifiedName+"}"; }
+ }
+
+ public void scheduleClass(ClassDoc context, String qualifiedName) throws ParseException, IOException {
+
+ if (classDocMap.get(qualifiedName)==null) {
+
+ //Debug.log(9,"Scheduling "+qualifiedName+", context "+context+".");
+ //System.err.println("Scheduling " + qualifiedName + ", context " + context);
+
+ scheduledClasses.add(new ScheduledClass(context, qualifiedName));
+ }
+ }
+
+ /**
+ * Load all classes that were implictly referenced by the classes
+ * (already loaded) that the user explicitly specified on the
+ * command line.
+ *
+ * For example, if the user generates Documentation for his simple
+ * 'class Test {}', which of course 'extends java.lang.Object',
+ * then 'java.lang.Object' is implicitly referenced because it is
+ * the base class of Test.
+ *
+ * Gjdoc needs a ClassDocImpl representation of all classes
+ * implicitly referenced through derivation (base class),
+ * or implementation (interface), or field type, method argument
+ * type, or method return type.
+ *
+ * The task of this method is to ensure that Gjdoc has all this
+ * information at hand when it exits.
+ *
+ *
+ */
+ public void loadScheduledClasses(Parser parser) throws ParseException, IOException {
+
+ // Because the referenced classes could in turn reference other
+ // classes, this method runs as long as there are still unloaded
+ // classes.
+
+ while (!scheduledClasses.isEmpty()) {
+
+ // Make a copy of scheduledClasses and empty it. This
+ // prevents any Concurrent Modification issues.
+ // As the copy won't need to grow (as it won't change)
+ // we make it an Array for performance reasons.
+
+ ScheduledClass[] scheduledClassesArr = (ScheduledClass[])scheduledClasses.toArray(new ScheduledClass[0]);
+ scheduledClasses.clear();
+
+ // Load each class specified in our array copy
+
+ for (int i=0; i<scheduledClassesArr.length; ++i) {
+
+ // The name of the class we are looking for. This name
+ // needs not be fully qualified.
+
+ String scheduledClassName=scheduledClassesArr[i].qualifiedName;
+
+ // The ClassDoc in whose context the scheduled class was looked for.
+ // This is necessary in order to resolve non-fully qualified
+ // class names.
+ ClassDoc scheduledClassContext=scheduledClassesArr[i].contextClass;
+
+ // If there already is a class doc with this name, skip. There's
+ // nothing to do for us.
+ if (classDocMap.get(scheduledClassName)!=null) {
+ continue;
+ }
+
+ try {
+ // Try to load the class
+ //printNotice("Trying to load " + scheduledClassName);
+ loadScheduledClass(parser, scheduledClassName, scheduledClassContext);
+ }
+ catch (ParseException e) {
+
+ /**********************************************************
+
+ // Check whether the following is necessary at all.
+
+
+ if (scheduledClassName.indexOf('.')>0) {
+
+ // Maybe the dotted notation doesn't mean a package
+ // name but instead an inner class, as in 'Outer.Inner'.
+ // so let's assume this and try to load the outer class.
+
+ String outerClass="";
+ for (StringTokenizer st=new StringTokenizer(scheduledClassName,"."); st.hasMoreTokens(); ) {
+ if (outerClass.length()>0) outerClass+=".";
+ outerClass+=st.nextToken();
+ if (!st.hasMoreTokens()) break;
+ try {
+ loadClass(outerClass);
+ //FIXME: shouldn't this be loadScheduledClass(outerClass, scheduledClassContext); ???
+ continue;
+ }
+ catch (Exception ee) {
+ // Ignore: try next level
+ }
+ }
+ }
+
+ **********************************************************/
+
+ // If we arrive here, the class could not be found
+
+ printWarning("Couldn't load class "+scheduledClassName+" referenced by "+scheduledClassContext);
+
+ //FIXME: shouldn't this be throw new Error("cannot load: "+scheduledClassName);
+ }
+ }
+ }
+ }
+
+ private void loadScheduledClass(Parser parser, String scheduledClassName, ClassDoc scheduledClassContext) throws ParseException, IOException {
+
+ ClassDoc loadedClass=(ClassDoc)scheduledClassContext.findClass(scheduledClassName);
+
+ if (loadedClass==null || loadedClass instanceof ClassDocProxy) {
+
+ ClassDoc classDoc = findScheduledClassFile(scheduledClassName, scheduledClassContext);
+ if (null != classDoc) {
+
+ if (classDoc instanceof ClassDocReflectedImpl) {
+ Main.getRootDoc().addClassDocRecursive(classDoc);
+ }
+
+ if (Main.DESCEND_SUPERCLASS
+ && null != classDoc.superclass()
+ && (classDoc.superclass() instanceof ClassDocProxy)) {
+ scheduleClass(classDoc, classDoc.superclass().qualifiedName());
+ }
+ }
+ else {
+ // It might be an inner class of one of the outer/super classes.
+ // But we can only check that when they are all fully loaded.
+ boolean retryLater = false;
+
+ int numberOfProcessedFilesBefore = parser.getNumberOfProcessedFiles();
+
+ ClassDoc cc = scheduledClassContext.containingClass();
+ while (cc != null && !retryLater) {
+ ClassDoc sc = cc.superclass();
+ while (sc != null && !retryLater) {
+ if (sc instanceof ClassDocProxy) {
+ ((ClassDocImpl)cc).resolve();
+ retryLater = true;
+ }
+ sc = sc.superclass();
+ }
+ cc = cc.containingClass();
+ }
+
+ // Now that outer/super references have been resolved, try again
+ // to find the class.
+
+ loadedClass = (ClassDoc)scheduledClassContext.findClass(scheduledClassName);
+
+ int numberOfProcessedFilesAfter = parser.getNumberOfProcessedFiles();
+
+ boolean filesWereProcessed = numberOfProcessedFilesAfter > numberOfProcessedFilesBefore;
+
+ // Only re-schedule class if additional files have been processed
+ // If there haven't, there's no point in re-scheduling.
+ // Will avoid infinite loops of re-scheduling
+ if (null == loadedClass && retryLater && filesWereProcessed)
+ scheduleClass(scheduledClassContext, scheduledClassName);
+
+ /* A warning needn't be emitted - this is normal, can happen
+ if the scheduled class is in a package which is not
+ included on the command line.
+
+ else if (null == loadedClass)
+ printWarning("Can't find scheduled class '"
+ + scheduledClassName
+ + "' in context '"
+ + scheduledClassContext.qualifiedName()
+ + "'");
+ */
+ }
+ }
+ }
+
+ private static interface ResolvedImport
+ {
+ public String match(String name);
+ public boolean mismatch(String name);
+ public ClassDoc tryFetch(String name);
+ }
+
+ private class ResolvedImportNotFound
+ implements ResolvedImport
+ {
+ private String importSpecifier;
+ private String name;
+
+ ResolvedImportNotFound(String importSpecifier)
+ {
+ this.importSpecifier = importSpecifier;
+ int ndx = importSpecifier.lastIndexOf('.');
+ if (ndx >= 0) {
+ this.name = importSpecifier.substring(ndx + 1);
+ }
+ else {
+ this.name = importSpecifier;
+ }
+ }
+
+ public String toString()
+ {
+ return "ResolvedImportNotFound{" + importSpecifier + "}";
+ }
+
+ public String match(String name)
+ {
+ if ((name.equals(this.name)) || (importSpecifier.equals(name)))
+ return this.name;
+ // FIXME: note that we don't handle on-demand imports here.
+ return null;
+ }
+
+ public boolean mismatch(String name)
+ {
+ return true; // FIXME!
+ }
+
+ public ClassDoc tryFetch(String name)
+ {
+ return null;
+ }
+ }
+
+ private class ResolvedImportPackageFile
+ implements ResolvedImport
+ {
+ private Set topLevelClassNames;
+ private File packageFile;
+ private String packageName;
+ private Map cache = new HashMap();
+
+ ResolvedImportPackageFile(File packageFile, String packageName)
+ {
+ this.packageFile = packageFile;
+ this.packageName = packageName;
+ topLevelClassNames = new HashSet();
+ File[] files = packageFile.listFiles();
+ for (int i=0; i<files.length; ++i) {
+ if (!files[i].isDirectory() && files[i].getName().endsWith(".java")) {
+ String topLevelClassName = files[i].getName();
+ topLevelClassName
+ = topLevelClassName.substring(0, topLevelClassName.length() - 5);
+ topLevelClassNames.add(topLevelClassName);
+ }
+ }
+ }
+
+ public String match(String name)
+ {
+ ClassDoc loadedClass = classNamed(packageName + "." + name);
+ if (null != loadedClass) {
+ return loadedClass.qualifiedName();
+ }
+ else {
+ String topLevelName = name;
+ int ndx = topLevelName.indexOf('.');
+ String innerClassName = null;
+ if (ndx > 0) {
+ innerClassName = topLevelName.substring(ndx + 1);
+ topLevelName = topLevelName.substring(0, ndx);
+ }
+
+ if (topLevelClassNames.contains(topLevelName)) {
+ //System.err.println(this + ".match returns " + packageName + "." + name);
+ return packageName + "." + name;
+ }
+ // FIXME: inner classes
+ else {
+ return null;
+ }
+ }
+ }
+
+ public boolean mismatch(String name)
+ {
+ return null == match(name);
+ }
+
+ public ClassDoc tryFetch(String name)
+ {
+ ClassDoc loadedClass = classNamed(packageName + "." + name);
+ if (null != loadedClass) {
+ return loadedClass;
+ }
+ else if (null != match(name)) {
+
+ String topLevelName = name;
+ int ndx = topLevelName.indexOf('.');
+ String innerClassName = null;
+ if (ndx > 0) {
+ innerClassName = topLevelName.substring(ndx + 1);
+ topLevelName = topLevelName.substring(0, ndx);
+ }
+
+ ClassDoc topLevelClass = (ClassDoc)cache.get(topLevelName);
+ if (null == topLevelClass) {
+ File classFile = new File(packageFile, topLevelName + ".java");
+ try {
+ // FIXME: inner classes
+ topLevelClass = parser.processSourceFile(classFile, false, sourceEncoding, null);
+ }
+ catch (Exception ignore) {
+ printWarning("Could not parse source file " + classFile);
+ }
+ cache.put(topLevelName, topLevelClass);
+ }
+ if (null == innerClassName) {
+ return topLevelClass;
+ }
+ else {
+ return getInnerClass(topLevelClass, innerClassName);
+ }
+ }
+ else {
+ return null;
+ }
+ }
+
+ public String toString()
+ {
+ return "ResolvedImportPackageFile{" + packageFile + "," + packageName + "}";
+ }
+ }
+
+ private ClassDoc getInnerClass(ClassDoc topLevelClass, String innerClassName)
+ {
+ StringTokenizer st = new StringTokenizer(innerClassName, ".");
+ outer:
+
+ while (st.hasMoreTokens()) {
+ String innerClassNameComponent = st.nextToken();
+ ClassDoc[] innerClasses = topLevelClass.innerClasses();
+ for (int i=0; i<innerClasses.length; ++i) {
+ if (innerClasses[i].name().equals(innerClassNameComponent)) {
+ topLevelClass = innerClasses[i];
+ continue outer;
+ }
+ }
+ printWarning("Could not find inner class " + innerClassName + " in class " + topLevelClass.qualifiedName());
+ return null;
+ }
+ return topLevelClass;
+ }
+
+ private class ResolvedImportClassFile
+ implements ResolvedImport
+ {
+ private File classFile;
+ private String innerClassName;
+ private String name;
+ private ClassDoc classDoc;
+ private boolean alreadyFetched;
+ private String qualifiedName;
+
+ ResolvedImportClassFile(File classFile, String innerClassName, String name, String qualifiedName)
+ {
+ this.classFile = classFile;
+ this.innerClassName = innerClassName;
+ this.name = name;
+ this.qualifiedName = qualifiedName;
+ }
+
+ public String toString()
+ {
+ return "ResolvedImportClassFile{" + classFile + "," + innerClassName + "}";
+ }
+
+ public String match(String name)
+ {
+ String topLevelName = name;
+ int ndx = topLevelName.indexOf('.');
+
+ String _innerClassName = null;
+ if (ndx > 0) {
+ _innerClassName = topLevelName.substring(ndx + 1);
+ topLevelName = topLevelName.substring(0, ndx);
+ }
+
+ if (this.name.equals(topLevelName)) {
+ if (null == _innerClassName) {
+ return qualifiedName;
+ }
+ else {
+ return qualifiedName + "." + _innerClassName;
+ }
+ }
+ else {
+ return null;
+ }
+ }
+
+ public boolean mismatch(String name)
+ {
+ return null == match(name);
+ }
+
+ public ClassDoc tryFetch(String name)
+ {
+ if (null != match(name)) {
+ ClassDoc topLevelClass = null;
+ if (alreadyFetched) {
+ topLevelClass = classDoc;
+ }
+ else {
+ alreadyFetched = true;
+ try {
+ topLevelClass = parser.processSourceFile(classFile, false, sourceEncoding, null);
+ }
+ catch (Exception ignore) {
+ printWarning("Could not parse source file " + classFile);
+ }
+ }
+ if (null == topLevelClass) {
+ return null;
+ }
+ else {
+ return getInnerClass(topLevelClass, innerClassName);
+ }
+ }
+ else {
+ return null;
+ }
+ }
+
+ public String getName()
+ {
+ if (innerClassName != null) {
+ return name + innerClassName;
+ }
+ else {
+ return name;
+ }
+ }
+ }
+
+ private class ResolvedImportReflectionClass
+ implements ResolvedImport
+ {
+ private Class clazz;
+ private String name;
+
+ ResolvedImportReflectionClass(Class clazz)
+ {
+ this.clazz = clazz;
+ String className = clazz.getName();
+ int ndx = className.lastIndexOf('.');
+ if (ndx >= 0) {
+ this.name = className.substring(ndx + 1);
+ }
+ else {
+ this.name = className;
+ }
+ }
+
+ public String toString()
+ {
+ return "ResolvedImportReflectionClass{" + clazz.getName() + "}";
+ }
+
+ public String match(String name)
+ {
+ if ((this.name.equals(name)) || (clazz.getName().equals(name))) {
+ return clazz.getName();
+ }
+ else {
+ return null;
+ }
+ }
+
+ public boolean mismatch(String name)
+ {
+ return null == match(name);
+ }
+
+ public ClassDoc tryFetch(String name)
+ {
+ if (null != match(name)) {
+ return new ClassDocReflectedImpl(clazz);
+ }
+ // FIXME: inner classes?
+ else {
+ return null;
+ }
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+ }
+
+ private class ResolvedImportReflectionPackage
+ implements ResolvedImport
+ {
+ private String packagePrefix;
+
+ ResolvedImportReflectionPackage(String packagePrefix)
+ {
+ this.packagePrefix = packagePrefix;
+ }
+
+ public String toString()
+ {
+ return "ResolvedImportReflectionPackage{" + packagePrefix + ".*}";
+ }
+
+ public String match(String name)
+ {
+ try {
+ Class clazz = Class.forName(packagePrefix + "." + name);
+ return clazz.getName();
+ }
+ catch (Exception e) {
+ return null;
+ }
+ }
+
+ public boolean mismatch(String name)
+ {
+ return null == match(name);
+ }
+
+ public ClassDoc tryFetch(String name)
+ {
+ try {
+ Class clazz = Class.forName(packagePrefix + name);
+ return ClassDocReflectedImpl.newInstance(clazz);
+ }
+ catch (Exception e) {
+ return null;
+ }
+ }
+
+ public String getName()
+ {
+ return packagePrefix;
+ }
+ }
+
+ private List unlocatablePrefixes = new LinkedList();
+
+ private ResolvedImport resolveImport(String importSpecifier)
+ {
+ ResolvedImport result = resolveImportFileSystem(importSpecifier);
+ if (null == result && Main.getInstance().isReflectionEnabled()) {
+ result = resolveImportReflection(importSpecifier);
+ }
+ if (null == result) {
+ result = new ResolvedImportNotFound(importSpecifier);
+ }
+ return result;
+ }
+
+ private ResolvedImport resolveImportReflection(String importSpecifier)
+ {
+ String importedPackageOrClass = importSpecifier;
+ if (importedPackageOrClass.endsWith(".*")) {
+ importedPackageOrClass = importedPackageOrClass.substring(0, importedPackageOrClass.length() - 2);
+
+ return new ResolvedImportReflectionPackage(importedPackageOrClass);
+
+ //return null;
+ }
+ else {
+ try {
+ Class importedClass = Class.forName(importSpecifier);
+ return new ResolvedImportReflectionClass(importedClass);
+ }
+ catch (Throwable ignore) {
+ return null;
+ }
+ }
+ }
+
+ private ResolvedImport resolveImportFileSystem(String importSpecifier)
+ {
+ for (Iterator it = unlocatablePrefixes.iterator(); it.hasNext(); ) {
+ String unlocatablePrefix = (String)it.next();
+ if (importSpecifier.startsWith(unlocatablePrefix)) {
+ return null;
+ }
+ }
+
+ String longestUnlocatablePrefix = "";
+
+ for (Iterator it=sourcePath.iterator(); it.hasNext(); ) {
+
+ File _sourcePath = (File)it.next();
+
+ StringBuffer packageOrClassPrefix = new StringBuffer();
+ StringTokenizer st = new StringTokenizer(importSpecifier, ".");
+ while (st.hasMoreTokens() && _sourcePath.isDirectory()) {
+ String token = st.nextToken();
+ if ("*".equals(token)) {
+ return new ResolvedImportPackageFile(_sourcePath,
+ packageOrClassPrefix.substring(0, packageOrClassPrefix.length() - 1));
+ }
+ else {
+ packageOrClassPrefix.append(token);
+ packageOrClassPrefix.append('.');
+ File classFile = new File(_sourcePath, token + ".java");
+ //System.err.println(" looking for file " + classFile);
+ if (classFile.exists()) {
+ StringBuffer innerClassName = new StringBuffer();
+ while (st.hasMoreTokens()) {
+ token = st.nextToken();
+ if (innerClassName.length() > 0) {
+ innerClassName.append('.');
+ }
+ innerClassName.append(token);
+ }
+ return new ResolvedImportClassFile(classFile, innerClassName.toString(), token, importSpecifier);
+ }
+ else {
+ _sourcePath = new File(_sourcePath, token);
+ }
+ }
+ }
+ if (st.hasMoreTokens()) {
+ if (packageOrClassPrefix.length() > longestUnlocatablePrefix.length()) {
+ longestUnlocatablePrefix = packageOrClassPrefix.toString();
+ }
+ }
+ }
+
+ if (longestUnlocatablePrefix.length() > 0) {
+ unlocatablePrefixes.add(longestUnlocatablePrefix);
+ }
+
+ return null;
+ }
+
+ private Map resolvedImportCache = new HashMap();
+
+ private ResolvedImport getResolvedImport(String importSpecifier)
+ {
+ ResolvedImport result
+ = (ResolvedImport)resolvedImportCache.get(importSpecifier);
+ if (null == result) {
+ result = resolveImport(importSpecifier);
+ resolvedImportCache.put(importSpecifier, result);
+ }
+ return result;
+ }
+
+ public String resolveClassName(String className, ClassDocImpl context)
+ {
+ Iterator it = context.getImportSpecifierList().iterator();
+ while (it.hasNext()) {
+ String importSpecifier = (String)it.next();
+ ResolvedImport resolvedImport = getResolvedImport(importSpecifier);
+ String resolvedScheduledClassName = resolvedImport.match(className);
+
+ if (null != resolvedScheduledClassName) {
+ return resolvedScheduledClassName;
+ }
+ }
+ return className;
+ }
+
+ public ClassDoc findScheduledClassFile(String scheduledClassName,
+ ClassDoc scheduledClassContext)
+ throws ParseException, IOException
+ {
+ String resolvedScheduledClassName = null;
+
+ if (scheduledClassContext instanceof ClassDocImpl) {
+
+ //((ClassDocImpl)scheduledClassContext).resolveReferencedName(scheduledClassName);
+ Iterator it = ((ClassDocImpl)scheduledClassContext).getImportSpecifierList().iterator();
+ while (it.hasNext()) {
+ String importSpecifier = (String)it.next();
+ ResolvedImport resolvedImport = getResolvedImport(importSpecifier);
+ //System.err.println(" looking in import '" + resolvedImport + "'");
+ resolvedScheduledClassName = resolvedImport.match(scheduledClassName);
+ if (null != resolvedScheduledClassName) {
+ ClassDoc result = resolvedImport.tryFetch(scheduledClassName);
+ if (null != result) {
+ return result;
+ }
+ else {
+ if (!inaccessibleReportedSet.contains(scheduledClassName)) {
+ inaccessibleReportedSet.add(scheduledClassName);
+ printWarning("Error while loading class " + scheduledClassName);
+ }
+ // FIXME: output resolved class name here
+ return null;
+ }
+ }
+ }
+ }
+ else {
+ System.err.println("findScheduledClassFile for '" + scheduledClassName + "' in proxy for " + scheduledClassContext);
+ }
+
+ // interpret as fully qualified name on file system
+
+ ResolvedImport fqImport = resolveImportFileSystem(scheduledClassName);
+ if (null != fqImport && fqImport instanceof ResolvedImportClassFile) {
+ return fqImport.tryFetch(((ResolvedImportClassFile)fqImport).getName());
+ }
+
+ // use reflection, assume fully qualified class name
+
+ if (!unlocatableReflectedClassNames.contains(scheduledClassName)) {
+ if (Main.getInstance().isReflectionEnabled()) {
+ try {
+ Class clazz = Class.forName(scheduledClassName);
+ printWarning("Cannot locate class " + scheduledClassName + " on file system, falling back to reflection.");
+ ClassDoc result = new ClassDocReflectedImpl(clazz);
+ return result;
+ }
+ catch (Throwable ignore) {
+ unlocatableReflectedClassNames.add(scheduledClassName);
+ }
+ }
+ else {
+ unlocatableReflectedClassNames.add(scheduledClassName);
+ }
+ }
+
+ if (null == resolvedScheduledClassName) {
+ resolvedScheduledClassName = scheduledClassName;
+ }
+ if (!unlocatableReportedSet.contains(resolvedScheduledClassName)) {
+ unlocatableReportedSet.add(resolvedScheduledClassName);
+ printWarning("Cannot locate class " + resolvedScheduledClassName + " referenced in class " + scheduledClassContext.qualifiedName());
+ }
+ return null;
+ }
+
+ private Set unlocatableReflectedClassNames = new HashSet();
+
+ public static boolean recursiveClasses = false;
+
+ public void addSpecifiedPackageName(String packageName) {
+ specifiedPackageNames.add(packageName);
+ }
+
+ public void addSpecifiedSourceFile(File sourceFile) {
+ specifiedSourceFiles.add(sourceFile);
+ }
+
+ public boolean hasSpecifiedPackagesOrClasses() {
+ return !specifiedPackageNames.isEmpty()
+ || !specifiedSourceFiles.isEmpty();
+ }
+
+ public void setOptions(String[][] customOptionArr) {
+ this.customOptionArr = customOptionArr;
+ }
+
+ public void setSourcePath(List sourcePath) {
+ this.sourcePath = sourcePath;
+ }
+
+ public void finalize() throws Throwable {
+ super.finalize();
+ }
+
+ public void flush()
+ {
+ try {
+ rawCommentCache.close();
+ }
+ catch (IOException e) {
+ printError("Cannot close raw comment cache");
+ }
+
+ rawCommentCache = null;
+ customOptionArr = null;
+ specifiedPackageNames = null;
+ classesList = null;
+ classDocMap = null;
+ packageDocMap = null;
+ classes = null;
+ specifiedClasses = null;
+ specifiedPackages = null;
+ scheduledClasses = null;
+ sourcePath = null;
+ parser = null;
+ unlocatableReportedSet = null;
+ inaccessibleReportedSet = null;
+ }
+
+ public void setSourceEncoding(String sourceEncoding)
+ {
+ this.sourceEncoding = sourceEncoding;
+ }
+
+ public RootDocImpl()
+ {
+ super(null);
+ }
+
+ public static String readHtmlBody(File file)
+ throws IOException
+ {
+ FileReader fr=new FileReader(file);
+ long size = file.length();
+ char[] packageDocBuf=new char[(int)(size)];
+ int index = 0;
+ int i = fr.read(packageDocBuf, index, (int)size);
+ while (i > 0) {
+ index += i;
+ size -= i;
+ i = fr.read(packageDocBuf, index, (int)size);
+ }
+ fr.close();
+
+ // We only need the part between the begin and end body tag.
+ String html = new String(packageDocBuf);
+ int start = html.indexOf("<body");
+ if (start == -1)
+ start = html.indexOf("<BODY");
+ int end = html.indexOf("</body>");
+ if (end == -1)
+ end = html.indexOf("</BODY>");
+ if (start != -1 && end != -1) {
+ // Start is end of body tag.
+ start = html.indexOf('>', start) + 1;
+ if (start != -1 && start < end)
+ html = html.substring(start, end);
+ }
+ return html.trim();
+ }
+
+ public Parser getParser()
+ {
+ return parser;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java
new file mode 100644
index 0000000..f126c21
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SeeTagImpl.java
@@ -0,0 +1,198 @@
+/* gnu.classpath.tools.gjdoc.SeeTagImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class SeeTagImpl extends AbstractTagImpl implements SeeTag {
+
+ protected String reference;
+ private String referencedClassName;
+ private String referencedMemberName;
+ private ClassDoc referencedClass;
+ private MemberDoc referencedMember;
+ private PackageDoc referencedPackage;
+ private String label;
+ private ClassDocImpl contextClass;
+
+ public SeeTagImpl(String text, ClassDocImpl contextClass) {
+ super(text);
+ this.contextClass=contextClass;
+ }
+
+ public void resolve() {
+
+ super.resolve();
+
+ text = text.trim();
+
+ if (text.startsWith("<") || text.startsWith("\"")) {
+ label = text;
+ return;
+ }
+
+ int labelNdx=text.indexOf(';');
+ if (labelNdx>=0) {
+ label="";
+ return;
+ }
+
+ for (int i=0; i<text.length(); ++i) {
+ if (" \t\r\n".indexOf(text.charAt(i)) >= 0) {
+ labelNdx = i;
+ break;
+ }
+ }
+
+ int openParenNdx = text.indexOf('(');
+ if (openParenNdx >= 0 && openParenNdx < labelNdx) {
+ labelNdx=text.indexOf(')', openParenNdx);
+ if (labelNdx >= 0) {
+ ++ labelNdx;
+ }
+ }
+
+ if (labelNdx<0 || labelNdx>=text.length()) {
+ reference=text.trim();
+ label="";
+ }
+ else {
+ reference=text.substring(0,labelNdx).trim();
+ label=text.substring(labelNdx).trim();
+ }
+
+ int mspecNdx=reference.indexOf('#');
+ String referencedFqName;
+ if (mspecNdx<0) {
+ referencedFqName=reference;
+ }
+ else {
+ referencedFqName=reference.substring(0,mspecNdx);
+ referencedMemberName=reference.substring(mspecNdx+1);
+ }
+
+ // the following is in contradiction to the api docs, but
+ // conform to sun javadoc: return fully qualified classname
+ // with referencedClassName().
+ if (referencedFqName.trim().length()>0) {
+ referencedClassName=referencedFqName;
+ if (contextClass==null)
+ referencedClass=Main.getRootDoc().classNamed(referencedFqName);
+ else
+ referencedClass=contextClass.findClass(referencedFqName);
+ }
+ else {
+ referencedClassName="";
+ referencedClass=contextClass;
+ }
+
+ if (referencedClass==null) {
+ referencedClass = Main.getRootDoc().classNamed("java.lang." + referencedFqName);
+ }
+
+ if (referencedClass!=null && !referencedClass.isIncluded()) referencedClass=null;
+
+ if (referencedClass!=null) {
+ referencedPackage=referencedClass.containingPackage();
+ referencedClassName=referencedClass.qualifiedName();
+
+ if (referencedMemberName!=null) {
+
+ if (referencedMemberName.indexOf('(')<0) {
+ referencedMember=((ClassDocImpl)referencedClass).findFieldRec(referencedMemberName);
+ if (null == referencedMember) {
+ MethodDoc[] methods = ((ClassDocImpl)referencedClass).methods();
+ for (int i=0; i<methods.length; ++i) {
+ if (methods[i].name().equals(referencedMemberName)) {
+ if (null == referencedMember) {
+ referencedMember = methods[i];
+ }
+ else {
+ referencedClass = null;
+ referencedMember = null;
+ //print warning here
+ break;
+ }
+ }
+ }
+ }
+ else {
+ referencedClass = referencedMember.containingClass();
+ }
+ }
+ else {
+ referencedMember=((ClassDocImpl)referencedClass).findExecutableRec(referencedMemberName);
+ if (referencedMember==null) {
+ //System.err.println("cannot find member for '"+referencedMemberName+"'");
+ referencedClass = null;
+ }
+ }
+ }
+ }
+ /*
+ else {
+ System.err.println("class not found: '"+referencedFqName + "' in context class " + contextClass + " in " + this);
+ }
+ */
+ }
+
+ public ClassDoc referencedClass() {
+ return referencedClass;
+ }
+
+ public String referencedClassName() {
+ return referencedClassName;
+ }
+
+ public MemberDoc referencedMember() {
+ return referencedMember;
+ }
+
+ public String referencedMemberName() {
+ return referencedMemberName;
+ }
+
+ public PackageDoc referencedPackage() {
+ return referencedPackage;
+ }
+
+ public String label() {
+ return label;
+ }
+
+ public String kind() {
+ return "@see";
+ }
+
+ public String name() {
+ return "@see";
+ }
+
+ public Tag[] firstSentenceTags() {
+ return inlineTags();
+ }
+
+ public Tag[] inlineTags() {
+ return new Tag[]{new TextTagImpl(referencedClassName)};
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java
new file mode 100644
index 0000000..1451610
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SerialFieldTagImpl.java
@@ -0,0 +1,111 @@
+/* gnu.classpath.tools.gjdoc.SerialFieldTagImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class SerialFieldTagImpl extends AbstractTagImpl implements SerialFieldTag {
+
+ private String fieldName;
+ private String fieldType;
+ private String description;
+ private ClassDoc fieldTypeDoc;
+ private ClassDocImpl contextClass;
+
+ public SerialFieldTagImpl(String text,
+ ClassDocImpl contextClass,
+ MemberDocImpl contextMember) {
+ super(text);
+ this.contextClass=contextClass;
+
+ if (fieldName==null)
+ fieldName="";
+ if (fieldType==null)
+ fieldType="";
+ if (description==null)
+ description="";
+
+ int state=1;
+ char[] textArr=text.toCharArray();
+ for (int i=0; i<textArr.length; ++i) {
+ char c=textArr[i];
+ switch (state) {
+ case 1:
+ if (Parser.isWhitespace(c)) state=2;
+ else fieldName+=c;
+ break;
+ case 2:
+ if (Parser.isWhitespace(c)) state=3;
+ else fieldType+=c;
+ break;
+ case 3:
+ description+=c;
+ break;
+ }
+ }
+
+ setBody(description, contextClass, contextMember);
+
+ }
+
+ public void resolve() {
+
+ super.resolve();
+ try {
+ Type type=contextClass.typeForString(fieldType);
+ this.fieldTypeDoc=type.asClassDoc();
+ } catch (ParseException e) {
+ System.err.println("FIXME: add try-catch to force compilation"
+ + e);
+ }
+ }
+
+ public ClassDoc fieldTypeDoc() {
+ return fieldTypeDoc;
+ }
+
+ public String fieldName() {
+ return fieldName;
+ }
+
+ public String fieldType() {
+ return fieldType;
+ }
+
+ public String description() {
+ return description;
+ }
+
+ public String kind() {
+ return "@serialField";
+ }
+
+ public int compareTo(Object o) {
+ if (o!=null && o instanceof SerialFieldTagImpl) {
+ return fieldName().compareTo(((SerialFieldTagImpl)o).fieldName());
+ }
+ else {
+ return 0;
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java
new file mode 100644
index 0000000..605d132
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/SourcePositionImpl.java
@@ -0,0 +1,60 @@
+/* gnu.classpath.tools.gjdoc.SourcePositionImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.SourcePosition;
+
+import java.io.File;
+
+public class SourcePositionImpl
+ implements SourcePosition
+{
+ private File file;
+ private int line;
+ private int column;
+
+ public SourcePositionImpl(File file, int line, int column)
+ {
+ this.file = file;
+ this.line = line;
+ this.column = column;
+ }
+
+ public File file()
+ {
+ return this.file;
+ }
+
+ public int line()
+ {
+ return this.line;
+ }
+
+ public int column()
+ {
+ return this.column;
+ }
+
+ public String toString()
+ {
+ return this.file + ":" + this.line;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java
new file mode 100644
index 0000000..597d73b
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagContainer.java
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.TagContainer
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.Tag;
+
+import java.util.Map;
+
+/**
+ * Implemented by Doclet API classes that are associated with tags.
+ */
+interface TagContainer
+{
+ public Tag[] firstSentenceTags();
+ public Tag[] inlineTags();
+ public Map getTagMap();
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java
new file mode 100644
index 0000000..320ccfd
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TagImpl.java
@@ -0,0 +1,43 @@
+/* gnu.classpath.tools.gjdoc.TagImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+
+public class TagImpl extends AbstractTagImpl implements Tag {
+
+ private String kind;
+ private String name;
+
+ TagImpl(String name, String text, ClassDocImpl contextClass, MemberDocImpl contextMember) {
+ super(text);
+ this.kind=name;
+ this.name=name;
+
+ setBody(text, contextClass, contextMember);
+ }
+
+ public String kind() { return kind; }
+ public String name() { return name; }
+ public String toString() { return kind()+":"+text(); }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java
new file mode 100644
index 0000000..eb3417d
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TemporaryStore.java
@@ -0,0 +1,115 @@
+/* gnu.classpath.tools.gjdoc.TemporaryStore
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+/**
+ * Useful for passing big objects that are no longer needed by the
+ * calling method, reducing memory usage. <p/>
+ *
+ * Consider the following problem:
+ * <pre>
+ * public class A {
+ * public static void foo() {
+ * long[] hugeArray = new long[1000000]; // takes around 8 MB
+ * // ... fill hugeArray with some information ...
+ * bar(hugeArray);
+ * // ... hugeArray is no more required at this point
+ * }
+ * public static void bar(long[] arr) {
+ * // ... process contents of arr ...
+ * arr = null;
+ * System.gc(); // NOTE: will not collect arr!
+ * // ... do something memory-intensive where arr is not needed
+ * }
+ * }
+ * </pre>
+ *
+ * In method <code>bar()</code>, the array cannot be garbage
+ * collected because the local variable <code>hugeArray</code> in
+ * method <code>foo()</code> still holds a reference to the array.
+ * <p/>
+ *
+ * When calling <code>bar(new long[1000000]);</code> in
+ * <code>arr</code> the array <i>can</i> be collected in
+ * <code>bar()</code>, but that way it can't be initialized in
+ * <code>foo()</code>. A local variable is needed for
+ * initialization, but the variable can't be cleared before it is
+ * passed to <code>bar()</code>! <p/>
+ *
+ * <code>TemporaryStore</code> is the solution for this
+ * dilemma. The modified method <code>foo()</code> which uses a
+ * <code>TemporaryStore</code> object would look like this:
+ *
+ * <pre>
+ * public static void foo() {
+ * long[] hugeArray = new long[1000000]; // takes around 7 MB
+ * // ... fill hugeArray with some very important information ...
+ * TemporaryStore tstore = new TemporaryStore(hugeArray);
+ * hugeArray = null;
+ * bar((long[])tstore.getAndClear());
+ * }
+ * </pre>
+ *
+ * When control flow is transferred to <code>bar()</code>,
+ * <code>foo()</code> will hold no more references to the array
+ * and so it can be garbage collected in <code>bar()</code>.
+ *
+ */
+public class TemporaryStore {
+
+ private Object storedObject;
+
+ /**
+ * Temporarily store the given object for passing it to a
+ * different method. <p/>
+ *
+ * The method constructing a new TemporaryStore object should
+ * clear all other references to the stored object, so that
+ * this TemporaryStore is the only object referencing it.
+ *
+ * @param storedObject the object to store temporarily
+ *
+ */
+ public TemporaryStore(Object storedObject) {
+ this.storedObject = storedObject;
+ }
+
+ /**
+ * Return the stored object after clearing the reference to it.
+ * <p/>
+ *
+ * When the user of this class followed the recommendations in
+ * the documentation of @link{TemporaryStore(Object)}, the
+ * returned reference will be the only reference to the stored
+ * object after this method returns. If the returned reference
+ * is passed in a method call, the called method will hold the
+ * only reference to the stored object and can release it by
+ * nulling the corresponding parameter.
+ *
+ * @return the object which was passed to the constructor.
+ *
+ */
+ public Object getAndClear() {
+ Object rc = this.storedObject;
+ this.storedObject = null;
+ return rc;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java
new file mode 100644
index 0000000..6d7ee82
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TextTagImpl.java
@@ -0,0 +1,39 @@
+/* gnu.classpath.tools.gjdoc.TextTagImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+
+public class TextTagImpl extends AbstractTagImpl implements Tag {
+
+ TextTagImpl(String text) {
+ super(text);
+ }
+
+ public Tag[] firstSentenceTags() { return new Tag[]{this}; }
+ public Tag[] inlineTags() { return new Tag[]{this}; }
+ public String kind() { return "Text"; }
+
+ public String toString() { return "TextTagImpl{text=" + text + "}"; }
+
+ public String getText() { return text; }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java
new file mode 100644
index 0000000..df0091d
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ThrowsTagImpl.java
@@ -0,0 +1,88 @@
+/* gnu.classpath.tools.gjdoc.ThrowsTagImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class ThrowsTagImpl extends AbstractTagImpl implements ThrowsTag {
+
+ private ClassDoc exception;
+ private String exceptionName;
+ private String exceptionComment;
+
+ public ThrowsTagImpl(String text,
+ ClassDocImpl contextClass,
+ MemberDocImpl contextMember) {
+ super(text);
+
+ char[] textarr=text.toCharArray();
+ int i=0;
+ for (; i<textarr.length; ++i) {
+ if (!Parser.isWhitespace(textarr[i])) break;
+ }
+ for (; i<textarr.length; ++i) {
+ if (Parser.isWhitespace(textarr[i])) {
+ this.exceptionName=new String(textarr,0,i).trim();
+ this.exceptionComment=new String(textarr,i,textarr.length-i).trim();
+ break;
+ }
+ }
+ if (null != exceptionName) {
+ if (contextClass==null) {
+ this.exception=Main.getRootDoc().classNamed(exceptionName);
+ }
+ else {
+ this.exception=contextClass.findClass(exceptionName);
+ }
+ if (exception!=null)
+ this.exceptionName=exception.qualifiedName();
+ else {
+ if (text.trim().startsWith("<")) {
+ Main.getRootDoc().printWarning("Expected exception name but got '"+text+"' in class "+contextClass.getClassName());
+ }
+ }
+ }
+ else {
+ Main.getRootDoc().printWarning("@throws tag in comment for " + contextClass.qualifiedName() + "." + contextMember.name() + " doesn't specify an exception.");
+ }
+ if (this.exceptionComment!=null) {
+ setBody(this.exceptionComment, contextClass, contextMember);
+ }
+ }
+
+ public ClassDoc exception() {
+ return exception;
+ }
+
+ public String exceptionName() {
+ return exceptionName;
+ }
+
+ public String exceptionComment() {
+ return exceptionComment;
+ }
+
+ public String kind() {
+ return "@throws";
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java
new file mode 100644
index 0000000..d1d832c
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/Timer.java
@@ -0,0 +1,71 @@
+/* gnu.classpath.tools.gjdoc.Timer
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import java.io.*;
+import java.text.*;
+
+public class Timer {
+
+ private static long startTime, beforeDocletTime, stopTime, memoryUsed, maxDriverHeap=-1, maxDocletHeap=-1;
+
+ static void shutdown() {
+ try{
+ if (stopTime==0) return;
+ PrintWriter pw=new PrintWriter(new FileWriter("timer.out"));
+ pw.println("Preparation (driver) took "+(((double)(beforeDocletTime-startTime))/1000.)+" s");
+ pw.println("Generation (doclet) took "+(((double)(stopTime-beforeDocletTime))/1000.)+" s");
+ pw.println("");
+ pw.println("Memory used for documentation tree: "+(memoryUsed/(1024*1024))+" MB");
+ pw.println("Max. heap used for driver: "+((maxDriverHeap<0)?"N/A":((maxDriverHeap/(1024*1024))+" MB")));
+ pw.println("Max. heap used for doclet: "+((maxDocletHeap<0)?"N/A":((maxDocletHeap/(1024*1024))+" MB")));
+ pw.println("");
+ pw.println("TOTAL TIME: "+(((double)(stopTime-startTime))/1000.)+" s");
+ pw.println("TOTAL HEAP: "+((maxDocletHeap<0)?"N/A":(Math.max(maxDocletHeap,maxDriverHeap)/(1024*1024))+" MB"));
+ pw.close();
+ }
+ catch (IOException e) {
+ e.printStackTrace();
+ }
+ }
+
+ public static void setStartTime() {
+ Timer.startTime=System.currentTimeMillis();
+ }
+
+ public static void setStopTime() {
+ Timer.stopTime=System.currentTimeMillis();
+ }
+
+ public static void setBeforeDocletTime() {
+ Timer.beforeDocletTime=System.currentTimeMillis();
+ Timer.memoryUsed=Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory();
+ }
+
+ public static void setMaxDocletHeap(long maximumHeap) {
+ Timer.maxDocletHeap=maximumHeap;
+ }
+
+ public static void setMaxDriverHeap(long maximumHeap) {
+ Timer.maxDriverHeap=maximumHeap;
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java
new file mode 100644
index 0000000..68d2c4d
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TimerDoclet.java
@@ -0,0 +1,87 @@
+/* gnu.classpath.tools.gjdoc.TimerDoclet
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+
+public class TimerDoclet {
+
+ private static Object doclet = null;
+
+ private static long maximumHeap = -1;
+
+ private static Thread memThread;
+
+ private static boolean runMemThread = true;
+
+ private static void init() throws Exception {
+ if (doclet==null) {
+ doclet=Class.forName("com.sun.tools.doclets.standard.Standard").newInstance();
+ memThread=new Thread() {
+
+ public void run() {
+ while (runMemThread) {
+ synchronized (TimerDoclet.class) {
+ TimerDoclet.maximumHeap=Math.max(TimerDoclet.maximumHeap,
+ Runtime.getRuntime().totalMemory()-Runtime.getRuntime().freeMemory());
+ }
+ try { Thread.sleep(50); } catch (Exception e) {}
+ }
+ }
+ };
+ //memThread.start();
+ }
+ }
+
+ public static boolean validOptions(String[][] options, DocErrorReporter reporter)
+ throws Exception {
+
+ init();
+ return ((Boolean)doclet.getClass().getMethod("validOptions", new Class[]{String[][].class, DocErrorReporter.class}).invoke(null, new Object[]{options, reporter})).booleanValue();
+ //return false; //doclet.validOptions(options, reporter);
+ }
+
+ public static int optionLength(String option) throws Exception {
+ init();
+ return ((Integer)doclet.getClass().getMethod("optionLength", new Class[]{String.class}).invoke(null, new Object[]{option})).intValue();
+ }
+
+ public static boolean start(RootDoc root) throws Exception {
+ Timer.setBeforeDocletTime();
+ synchronized (TimerDoclet.class) {
+ Timer.setMaxDriverHeap(maximumHeap);
+ maximumHeap=-1;
+ }
+ //new com.sun.tools.doclets.standard.Standard().validOptions(root.options(), root);
+ //new com.sun.tools.doclets.standard.Standard().start(root);
+
+ if (validOptions(root.options(), root)) {
+ doclet.getClass().getMethod("start", new Class[]{RootDoc.class}).invoke(null, new Object[]{root});
+ }
+ runMemThread=false;
+ Timer.setStopTime();
+ synchronized (TimerDoclet.class) {
+ Timer.setMaxDocletHeap(maximumHeap);
+ }
+ Timer.shutdown();
+ return true;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java
new file mode 100644
index 0000000..a66a85e
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeImpl.java
@@ -0,0 +1,92 @@
+/* gnu.classpath.tools.gjdoc.TypeImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.Collections;
+import java.util.Set;
+import java.util.HashSet;
+
+public class TypeImpl implements Type, WritableType {
+
+ private String packageName;
+ private String typeName;
+ private String dimension;
+
+ TypeImpl(String packageName, String typeName, String dimension) {
+ this.packageName=packageName;
+ this.typeName=typeName;
+ this.dimension=dimension;
+
+ if (typeName.indexOf('[') >= 0 || typeName.indexOf(']') >= 0) {
+ throw new RuntimeException("Typename must not contain dimension information.");
+ }
+ }
+
+ public ClassDoc asClassDoc() {
+
+ if (this instanceof ClassDoc)
+ return ((ClassDocImpl)(ClassDoc)this).getBaseClassDoc();
+ else
+ return null;
+ }
+
+ public String typeName() { return typeName; }
+
+ public String qualifiedTypeName() { return (packageName!=null)?(packageName+"."+typeName):(typeName); }
+
+ public String dimension() { return dimension; }
+ public void setDimension(String dimension) { this.dimension = dimension; }
+
+ public String toString() { return "Type{"+qualifiedTypeName()+dimension()+"}"; }
+
+ public Object clone() throws CloneNotSupportedException {
+ return super.clone();
+ }
+
+ public boolean isPrimitive()
+ {
+ return null == packageName && primitiveNames.contains(typeName);
+ }
+
+ private static final Set primitiveNames;
+ static {
+ Set _primitiveNames = new HashSet();
+ _primitiveNames.add("boolean");
+ _primitiveNames.add("char");
+ _primitiveNames.add("byte");
+ _primitiveNames.add("short");
+ _primitiveNames.add("int");
+ _primitiveNames.add("long");
+ _primitiveNames.add("float");
+ _primitiveNames.add("double");
+ primitiveNames = Collections.unmodifiableSet(_primitiveNames);
+ }
+
+ public TypeVariable asTypeVariable()
+ {
+ if (this instanceof TypeVariable)
+ return (TypeVariable) this;
+ else
+ return null;
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java
new file mode 100644
index 0000000..4524ab1
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/TypeVariableImpl.java
@@ -0,0 +1,91 @@
+/* gnu.classpath.tools.gjdoc.TypeVariableImpl
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.ProgramElementDoc;
+import com.sun.javadoc.Type;
+import com.sun.javadoc.TypeVariable;
+
+import java.util.List;
+
+public class TypeVariableImpl
+ extends TypeImpl
+ implements TypeVariable, WritableType
+{
+
+ /**
+ * The bounds of this particular type variable.
+ */
+ Type[] bounds;
+
+ /**
+ * The owning program element of this type variable.
+ */
+ ProgramElementDoc owner;
+
+ /**
+ * Constructs a new type variable with the supplied name and owner.
+ *
+ * @param packageName the name of the package containing the type variable.
+ * @param typeName the name of the type variable.
+ * @param dimension the dimensions of the type variable (always "").
+ * @param owner the owning program element of the type variable.
+ */
+ TypeVariableImpl(String packageName, String typeName, String dimension,
+ ProgramElementDoc owner)
+ {
+ super(packageName, typeName, dimension);
+ this.owner = owner;
+ }
+
+ /**
+ * Set the bounds to the contents of the supplied list.
+ *
+ * @param parsedBounds a list of type bounds.
+ */
+ void setBounds(List parsedBounds)
+ {
+ bounds = (Type[]) parsedBounds.toArray(new Type[parsedBounds.size()]);
+ }
+
+ /**
+ * Returns the bounds of this type variable.
+ *
+ * @return the bounds of the variable.
+ */
+ public Type[] bounds()
+ {
+ return bounds;
+ }
+
+ /**
+ * Returns the owning program element for this type variable.
+ *
+ * @return the owning program element, whether a class, interface,
+ * constructor or method.
+ */
+ public ProgramElementDoc owner()
+ {
+ return owner;
+ }
+
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java
new file mode 100644
index 0000000..8f0ba79
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/ValueTagImpl.java
@@ -0,0 +1,48 @@
+/* gnu.classpath.tools.gjdoc.ValueTagImpl
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+import com.sun.javadoc.*;
+import java.util.*;
+import java.text.*;
+
+public class ValueTagImpl extends SeeTagImpl {
+
+ public ValueTagImpl(String _text, ClassDocImpl contextClass) {
+ super(_text, contextClass);
+ }
+
+ public String name() { return "@value"; }
+
+ public Tag[] firstSentenceTags() {
+ return inlineTags();
+ }
+
+ public Tag[] inlineTags() {
+ if (null != reference && reference.trim().length() > 0) {
+ return new Tag[] { new TextTagImpl(reference) };
+ }
+ else {
+ return new Tag[0];
+ }
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java
new file mode 100644
index 0000000..6293602
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/WritableType.java
@@ -0,0 +1,27 @@
+/* gnu.classpath.tools.gjdoc.WritableType
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc;
+
+public interface WritableType extends Cloneable {
+
+ public void setDimension(String dimension);
+ public Object clone() throws CloneNotSupportedException;
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java
new file mode 100644
index 0000000..bf9e3ff
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AdditionExpression.java
@@ -0,0 +1,69 @@
+/* gnu.classpath.tools.gjdoc.expr.AdditionExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class AdditionExpression
+ extends BinaryComputationExpression
+{
+ public AdditionExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected double compute(double leftValue, double rightValue)
+ {
+ return leftValue + rightValue;
+ }
+
+ protected float compute(float leftValue, float rightValue)
+ {
+ return leftValue + rightValue;
+ }
+
+ protected long compute(long leftValue, long rightValue)
+ {
+ return leftValue + rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue + rightValue;
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression leftValue = left.evaluate(context);
+ ConstantExpression rightValue = right.evaluate(context);
+
+ if (Type.STRING == leftValue.getType()
+ || Type.STRING == rightValue.getType()) {
+
+ return new ConstantString(leftValue.asObject().toString()
+ + rightValue.asObject().toString());
+ }
+ else {
+ return super.evaluate(leftValue, rightValue);
+ }
+
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java
new file mode 100644
index 0000000..9e9e13c
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/AndExpression.java
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.AndExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class AndExpression
+ extends BinaryBitwiseExpression
+{
+ public AndExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected long compute(long leftValue, long rightValue)
+ {
+ return leftValue & rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue & rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java
new file mode 100644
index 0000000..4b0a993
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryBitwiseExpression.java
@@ -0,0 +1,51 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryBitwiseExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryBitwiseExpression
+ extends BinaryExpression
+{
+ protected BinaryBitwiseExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression leftValue = left.evaluate(context);
+ ConstantExpression rightValue = right.evaluate(context);
+
+ if (Type.LONG == leftValue.getType()
+ || Type.LONG == rightValue.getType()) {
+
+ return new ConstantLong(compute(leftValue.asNumber().longValue(),
+ rightValue.asNumber().longValue()));
+ }
+ else {
+ return new ConstantInteger(compute(leftValue.asNumber().intValue(),
+ rightValue.asNumber().intValue()));
+ }
+ }
+
+ protected abstract long compute(long leftValue, long rightValue);
+ protected abstract int compute(int leftValue, int rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java
new file mode 100644
index 0000000..97cdf22
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryComputationExpression.java
@@ -0,0 +1,75 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryComputationExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryComputationExpression
+ extends BinaryExpression
+{
+ protected BinaryComputationExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression leftValue = left.evaluate(context);
+ ConstantExpression rightValue = right.evaluate(context);
+
+ return evaluate(leftValue, rightValue);
+ }
+
+ protected ConstantExpression evaluate(ConstantExpression leftValue,
+ ConstantExpression rightValue)
+ throws IllegalExpressionException
+ {
+ if (Type.DOUBLE == leftValue.getType()
+ || Type.DOUBLE == rightValue.getType()) {
+
+ return new ConstantDouble(compute(leftValue.asNumber().doubleValue(),
+ rightValue.asNumber().doubleValue()));
+ }
+ else if (Type.FLOAT == leftValue.getType()
+ || Type.FLOAT == rightValue.getType()) {
+
+ return new ConstantFloat(compute(leftValue.asNumber().floatValue(),
+ rightValue.asNumber().floatValue()));
+ }
+ else if (Type.LONG == leftValue.getType()
+ || Type.LONG == rightValue.getType()) {
+
+ return new ConstantLong(compute(leftValue.asNumber().longValue(),
+ rightValue.asNumber().longValue()));
+ }
+ else if (leftValue.isNumber() && rightValue.isNumber()) {
+ return new ConstantInteger(compute(leftValue.asNumber().intValue(),
+ rightValue.asNumber().intValue()));
+ }
+ else {
+ throw new IllegalExpressionException("Operator ? cannot be applied to " + leftValue.getType() + "," + rightValue.getType());
+ }
+ }
+
+ protected abstract double compute(double leftValue, double rightValue);
+ protected abstract float compute(float leftValue, float rightValue);
+ protected abstract long compute(long leftValue, long rightValue);
+ protected abstract int compute(int leftValue, int rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java
new file mode 100644
index 0000000..27fe2cf
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryEqualityExpression.java
@@ -0,0 +1,72 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryEqualityExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryEqualityExpression
+ extends BinaryExpression
+{
+ protected BinaryEqualityExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression leftValue = left.evaluate(context);
+ ConstantExpression rightValue = right.evaluate(context);
+
+ if (Type.DOUBLE == leftValue.getType()
+ || Type.DOUBLE == rightValue.getType()) {
+
+ return new ConstantBoolean(compute(leftValue.asNumber().doubleValue(),
+ rightValue.asNumber().doubleValue()));
+ }
+ else if (Type.FLOAT == leftValue.getType()
+ || Type.FLOAT == rightValue.getType()) {
+
+ return new ConstantBoolean(compute(leftValue.asNumber().floatValue(),
+ rightValue.asNumber().floatValue()));
+ }
+ else if (Type.LONG == leftValue.getType()
+ || Type.LONG == rightValue.getType()) {
+
+ return new ConstantBoolean(compute(leftValue.asNumber().longValue(),
+ rightValue.asNumber().longValue()));
+ }
+ else if (Type.BOOLEAN == leftValue.getType()
+ && Type.BOOLEAN == rightValue.getType()) {
+
+ return new ConstantBoolean(compute(((ConstantBoolean)leftValue).booleanValue(),
+ ((ConstantBoolean)rightValue).booleanValue()));
+ }
+ else {
+ return new ConstantBoolean(compute(leftValue.asNumber().intValue(),
+ rightValue.asNumber().intValue()));
+ }
+ }
+
+ protected abstract boolean compute(double leftValue, double rightValue);
+ protected abstract boolean compute(float leftValue, float rightValue);
+ protected abstract boolean compute(long leftValue, long rightValue);
+ protected abstract boolean compute(int leftValue, int rightValue);
+ protected abstract boolean compute(boolean leftValue, boolean rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java
new file mode 100644
index 0000000..e44551d0
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryExpression.java
@@ -0,0 +1,34 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryExpression
+ implements Expression
+{
+ protected Expression left;
+ protected Expression right;
+
+ protected BinaryExpression(Expression left, Expression right)
+ {
+ this.left = left;
+ this.right = right;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java
new file mode 100644
index 0000000..00bbfcc
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryLogicalExpression.java
@@ -0,0 +1,47 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryLogicalExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryLogicalExpression
+ extends BinaryExpression
+{
+ protected BinaryLogicalExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression leftValue = left.evaluate(context);
+ ConstantExpression rightValue = right.evaluate(context);
+
+ if (leftValue.getType() != Type.BOOLEAN || rightValue.getType() != Type.BOOLEAN) {
+ throw new IllegalExpressionException("logical expression expects boolean subexpressions");
+ }
+ else {
+ return new ConstantBoolean(compute(((ConstantBoolean)leftValue).booleanValue(),
+ ((ConstantBoolean)rightValue).booleanValue()));
+ }
+ }
+
+ protected abstract boolean compute(boolean leftValue, boolean rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java
new file mode 100644
index 0000000..91c4441
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryRelationExpression.java
@@ -0,0 +1,65 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryRelationExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryRelationExpression
+ extends BinaryExpression
+{
+ protected BinaryRelationExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression leftValue = left.evaluate(context);
+ ConstantExpression rightValue = right.evaluate(context);
+
+ if (Type.DOUBLE == leftValue.getType()
+ || Type.DOUBLE == rightValue.getType()) {
+
+ return new ConstantBoolean(compute(leftValue.asNumber().doubleValue(),
+ rightValue.asNumber().doubleValue()));
+ }
+ else if (Type.FLOAT == leftValue.getType()
+ || Type.FLOAT == rightValue.getType()) {
+
+ return new ConstantBoolean(compute(leftValue.asNumber().floatValue(),
+ rightValue.asNumber().floatValue()));
+ }
+ else if (Type.LONG == leftValue.getType()
+ || Type.LONG == rightValue.getType()) {
+
+ return new ConstantBoolean(compute(leftValue.asNumber().longValue(),
+ rightValue.asNumber().longValue()));
+ }
+ else {
+ return new ConstantBoolean(compute(leftValue.asNumber().intValue(),
+ rightValue.asNumber().intValue()));
+ }
+ }
+
+ protected abstract boolean compute(double leftValue, double rightValue);
+ protected abstract boolean compute(float leftValue, float rightValue);
+ protected abstract boolean compute(long leftValue, long rightValue);
+ protected abstract boolean compute(int leftValue, int rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java
new file mode 100644
index 0000000..a5eac4d
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BinaryShiftExpression.java
@@ -0,0 +1,49 @@
+/* gnu.classpath.tools.gjdoc.expr.BinaryShiftExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class BinaryShiftExpression
+ extends BinaryExpression
+{
+ protected BinaryShiftExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression leftValue = left.evaluate(context);
+ ConstantExpression rightValue = right.evaluate(context);
+
+ if (Type.LONG == leftValue.getType()) {
+ return new ConstantLong(compute(leftValue.asNumber().longValue(),
+ rightValue.asNumber().intValue()));
+ }
+ else {
+ return new ConstantInteger(compute(leftValue.asNumber().intValue(),
+ rightValue.asNumber().intValue()));
+ }
+ }
+
+ protected abstract long compute(long leftValue, int rightValue);
+ protected abstract int compute(int leftValue, int rightValue);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java
new file mode 100644
index 0000000..503421e
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/BitShiftRightExpression.java
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.BitShiftRightExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class BitShiftRightExpression
+ extends BinaryShiftExpression
+{
+ public BitShiftRightExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected long compute(long leftValue, int rightValue)
+ {
+ return leftValue >>> rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue >>> rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java
new file mode 100644
index 0000000..b745de4
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/CircularExpressionException.java
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.expr.IllegalExpressionException
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+public class CircularExpressionException
+ extends IllegalExpressionException
+{
+ public CircularExpressionException(String message)
+ {
+ super(message);
+ }
+
+ public CircularExpressionException(Throwable cause)
+ {
+ super(cause);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java
new file mode 100644
index 0000000..e4f86f6
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConditionalExpression.java
@@ -0,0 +1,57 @@
+/* gnu.classpath.tools.gjdoc.expr.ConditionalExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConditionalExpression
+ implements Expression
+{
+ private Expression condition;
+ private Expression ifTrue;
+ private Expression ifFalse;
+
+ ConditionalExpression(Expression condition, Expression ifTrue, Expression ifFalse)
+ {
+ this.condition = condition;
+ this.ifTrue = ifTrue;
+ this.ifFalse = ifFalse;
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression conditionValue = condition.evaluate(context);
+ ConstantExpression ifTrueValue = ifTrue.evaluate(context);
+ ConstantExpression ifFalseValue = ifFalse.evaluate(context);
+
+ if (Type.BOOLEAN != conditionValue.getType()) {
+ throw new IllegalExpressionException("condition must be boolean");
+ }
+ else {
+ boolean cond = ((ConstantBoolean)conditionValue).booleanValue();
+ if (cond) {
+ return ifTrueValue;
+ }
+ else {
+ return ifFalseValue;
+ }
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java
new file mode 100644
index 0000000..4ef75c6
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantBoolean.java
@@ -0,0 +1,67 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantBoolean
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantBoolean
+ extends ConstantExpression
+{
+ private boolean value;
+
+ public ConstantBoolean(String stringValue)
+ {
+ this.value = "true".equals(stringValue);
+ }
+
+ public ConstantBoolean(boolean booleanValue)
+ {
+ this.value = booleanValue;
+ }
+
+ public boolean booleanValue()
+ {
+ return value;
+ }
+
+ public Type getType()
+ {
+ return Type.BOOLEAN;
+ }
+
+ public Number asNumber()
+ {
+ return null;
+ }
+
+ public boolean isNumber()
+ {
+ return true;
+ }
+
+ public Object asObject()
+ {
+ return new Boolean(value);
+ }
+
+ public String toString()
+ {
+ return Boolean.toString(value);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java
new file mode 100644
index 0000000..bbe30b2
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantByte.java
@@ -0,0 +1,57 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantByte
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantByte
+ extends ConstantExpression
+{
+ private byte value;
+
+ public ConstantByte(byte byteValue)
+ {
+ this.value = byteValue;
+ }
+
+ public Type getType()
+ {
+ return Type.BYTE;
+ }
+
+ public Number asNumber()
+ {
+ return new Byte(value);
+ }
+
+ public boolean isNumber()
+ {
+ return true;
+ }
+
+ public Object asObject()
+ {
+ return asNumber();
+ }
+
+ public String toString()
+ {
+ return Byte.toString(value);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java
new file mode 100644
index 0000000..56d3230
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantChar.java
@@ -0,0 +1,81 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantChar
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantChar
+ extends ConstantExpression
+{
+ private char value;
+
+ public ConstantChar(String stringValue)
+ {
+ this.value = stringValue.charAt(1); // FIXME
+ if (value == '\\') {
+ switch (stringValue.charAt(2)) {
+ case 'n': value = '\n'; break;
+ case 't': value = '\t'; break;
+ case 'f': value = '\f'; break;
+ case 'r': value = '\r'; break;
+ case 'b': value = '\b'; break;
+ case 'u':
+ {
+ String stringVal = stringValue.substring(3, stringValue.length() - 1);
+ /*
+ while (stringVal.length() > 1 && stringVal.charAt(0) == '0') {
+ stringVal = stringVal.substring(1);
+ }
+ */
+ value = (char)Integer.parseInt(stringVal, 16); break;
+ }
+ }
+ }
+ }
+
+ public ConstantChar(char charValue)
+ {
+ this.value = charValue;
+ }
+
+ public Type getType()
+ {
+ return Type.CHAR;
+ }
+
+ public Number asNumber()
+ {
+ return new Integer((int)value);
+ }
+
+ public Object asObject()
+ {
+ return new Character(value);
+ }
+
+ public boolean isNumber()
+ {
+ return true;
+ }
+
+ public String toString()
+ {
+ return Character.toString(value);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java
new file mode 100644
index 0000000..ad97092
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantDouble.java
@@ -0,0 +1,62 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantDouble
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantDouble
+ extends ConstantExpression
+{
+ private double value;
+
+ public ConstantDouble(String stringValue)
+ {
+ this.value = Double.parseDouble(stringValue);
+ }
+
+ public ConstantDouble(double doubleValue)
+ {
+ this.value = doubleValue;
+ }
+
+ public Type getType()
+ {
+ return Type.DOUBLE;
+ }
+
+ public Number asNumber()
+ {
+ return new Double(value);
+ }
+
+ public boolean isNumber()
+ {
+ return true;
+ }
+
+ public Object asObject()
+ {
+ return asNumber();
+ }
+
+ public String toString()
+ {
+ return Double.toString(value);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java
new file mode 100644
index 0000000..3078b4c
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantExpression.java
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class ConstantExpression
+ implements Expression
+{
+ public abstract Type getType();
+ public abstract Number asNumber();
+ public abstract Object asObject();
+ public abstract boolean isNumber();
+
+ public ConstantExpression evaluate(Context context)
+ {
+ return this;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java
new file mode 100644
index 0000000..cf378db
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantFloat.java
@@ -0,0 +1,62 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantFloat
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantFloat
+ extends ConstantExpression
+{
+ private float value;
+
+ public ConstantFloat(String stringValue)
+ {
+ this.value = Float.parseFloat(stringValue);
+ }
+
+ public ConstantFloat(float floatValue)
+ {
+ this.value = floatValue;
+ }
+
+ public Type getType()
+ {
+ return Type.FLOAT;
+ }
+
+ public Number asNumber()
+ {
+ return new Float(value);
+ }
+
+ public boolean isNumber()
+ {
+ return true;
+ }
+
+ public Object asObject()
+ {
+ return asNumber();
+ }
+
+ public String toString()
+ {
+ return "ConstantFloat{" + value + "}";
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java
new file mode 100644
index 0000000..56217cc
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantInteger.java
@@ -0,0 +1,62 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantInteger
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantInteger
+ extends ConstantExpression
+{
+ private long value;
+
+ public ConstantInteger(String stringValue)
+ {
+ this.value = Evaluator.parseLong(stringValue);
+ }
+
+ public ConstantInteger(int integerValue)
+ {
+ this.value = integerValue;
+ }
+
+ public Type getType()
+ {
+ return Type.INTEGER;
+ }
+
+ public Number asNumber()
+ {
+ return new Long(value);
+ }
+
+ public boolean isNumber()
+ {
+ return true;
+ }
+
+ public Object asObject()
+ {
+ return new Integer((int)value);
+ }
+
+ public String toString()
+ {
+ return Long.toString(value);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java
new file mode 100644
index 0000000..bfc1a0a
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantLong.java
@@ -0,0 +1,67 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantLong
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantLong
+ extends ConstantExpression
+{
+ private long value;
+
+ public ConstantLong(String stringValue)
+ {
+ if ('l' == Character.toLowerCase(stringValue.charAt(stringValue.length() - 1))) {
+ this.value = Evaluator.parseLong(stringValue.substring(0, stringValue.length() - 1));
+ }
+ else {
+ this.value = Evaluator.parseInt(stringValue.substring(0, stringValue.length() - 1));
+ }
+ }
+
+ public ConstantLong(long longValue)
+ {
+ this.value = longValue;
+ }
+
+ public Type getType()
+ {
+ return Type.LONG;
+ }
+
+ public Number asNumber()
+ {
+ return new Long(value);
+ }
+
+ public boolean isNumber()
+ {
+ return true;
+ }
+
+ public Object asObject()
+ {
+ return asNumber();
+ }
+
+ public String toString()
+ {
+ return Long.toString(value);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java
new file mode 100644
index 0000000..23f9659
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantNull.java
@@ -0,0 +1,49 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantNull
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantNull
+ extends ConstantExpression
+{
+ public ConstantNull()
+ {
+ }
+
+ public Type getType()
+ {
+ return Type.NULL;
+ }
+
+ public Number asNumber()
+ {
+ return null;
+ }
+
+ public boolean isNumber()
+ {
+ return false;
+ }
+
+ public Object asObject()
+ {
+ return null;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java
new file mode 100644
index 0000000..acd020d
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantShort.java
@@ -0,0 +1,57 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantShort
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantShort
+ extends ConstantExpression
+{
+ private short value;
+
+ public ConstantShort(short shortValue)
+ {
+ this.value = shortValue;
+ }
+
+ public Type getType()
+ {
+ return Type.SHORT;
+ }
+
+ public Number asNumber()
+ {
+ return new Short(value);
+ }
+
+ public boolean isNumber()
+ {
+ return true;
+ }
+
+ public Object asObject()
+ {
+ return asNumber();
+ }
+
+ public String toString()
+ {
+ return Short.toString(value);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java
new file mode 100644
index 0000000..847e295
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ConstantString.java
@@ -0,0 +1,58 @@
+/* gnu.classpath.tools.gjdoc.expr.ConstantString
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ConstantString
+ extends ConstantExpression
+{
+ private String value;
+
+ public ConstantString(String value)
+ {
+ this.value = value;
+ }
+
+ public Type getType()
+ {
+ return Type.STRING;
+ }
+
+ public Number asNumber()
+ {
+ return null;
+ }
+
+ public boolean isNumber()
+ {
+ return false;
+ }
+
+ public Object asObject()
+ {
+ return value;
+ }
+
+ public String toString()
+ {
+ return value;
+ }
+}
+
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java
new file mode 100644
index 0000000..99093f7
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Context.java
@@ -0,0 +1,45 @@
+/* gnu.classpath.tools.gjdoc.expr.Context
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+import java.util.Set;
+
+class Context
+{
+ private EvaluatorEnvironment evaluatorEnvironment;
+ private Set visitedFields;
+
+ Context(EvaluatorEnvironment evaluatorEnvironment, Set visitedFields)
+ {
+ this.evaluatorEnvironment = evaluatorEnvironment;
+ this.visitedFields = visitedFields;
+ }
+
+ public EvaluatorEnvironment getEvaluatorEnvironment()
+ {
+ return evaluatorEnvironment;
+ }
+
+ public Set getVisitedFields()
+ {
+ return visitedFields;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java
new file mode 100644
index 0000000..baaf65d
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/DivisionExpression.java
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.DivisionExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class DivisionExpression
+ extends BinaryComputationExpression
+{
+ public DivisionExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected double compute(double leftValue, double rightValue)
+ {
+ return leftValue / rightValue;
+ }
+
+ protected float compute(float leftValue, float rightValue)
+ {
+ return leftValue / rightValue;
+ }
+
+ protected long compute(long leftValue, long rightValue)
+ {
+ return leftValue / rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue / rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java
new file mode 100644
index 0000000..c31ff88
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EqualExpression.java
@@ -0,0 +1,55 @@
+/* gnu.classpath.tools.gjdoc.expr.EqualExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class EqualExpression
+ extends BinaryEqualityExpression
+{
+ public EqualExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected boolean compute(double leftValue, double rightValue)
+ {
+ return leftValue == rightValue;
+ }
+
+ protected boolean compute(float leftValue, float rightValue)
+ {
+ return leftValue == rightValue;
+ }
+
+ protected boolean compute(long leftValue, long rightValue)
+ {
+ return leftValue == rightValue;
+ }
+
+ protected boolean compute(int leftValue, int rightValue)
+ {
+ return leftValue == rightValue;
+ }
+
+ protected boolean compute(boolean leftValue, boolean rightValue)
+ {
+ return leftValue == rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java
new file mode 100644
index 0000000..94c54c2
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Evaluator.java
@@ -0,0 +1,131 @@
+/* gnu.classpath.tools.gjdoc.expr.Evaluator
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+import java.io.StringReader;
+import java.math.BigInteger;
+import antlr.RecognitionException;
+import antlr.TokenStreamException;
+import java.util.Set;
+
+public class Evaluator
+{
+ /**
+ * Try to evaluate the given Java expression in the context of the
+ * given environment.
+ *
+ * @param expression the Java expression to evaluate. The
+ * expression string must not include a terminating semicolon.
+ *
+ * @param source the FieldDoc (part of) whose constant field value
+ * expression is being evaluated. Used to prevent circular
+ * references.
+ *
+ * @param environment callback hook used by the Evaluator to query
+ * the value of static fields referenced in the expression.
+ *
+ * @return a Java object representing the value of the expression,
+ * or <code>null</code> if the expression evaluates to
+ * <code>null</code>.
+ *
+ * @throws IllegalExpressionException if the expression is
+ * invalid, uses unsupported syntax constructs (e.g. method calls,
+ * array access) or references unknown static fields.
+ */
+ public static Object evaluate(String expression,
+ Set visitedFields,
+ EvaluatorEnvironment environment)
+ throws IllegalExpressionException
+ {
+ try {
+ JavaLexer lexer = new JavaLexer(new StringReader(expression));
+ JavaRecognizer recognizer = new JavaRecognizer(lexer);
+ Expression e = recognizer.expression();
+ ConstantExpression value = e.evaluate(new Context(environment, visitedFields));
+ return value.asObject();
+ }
+ catch (RecognitionException e) {
+ throw new IllegalExpressionException(e);
+ }
+ catch (TokenStreamException e) {
+ throw new IllegalExpressionException(e);
+ }
+ }
+
+ static int parseInt(String stringValue)
+ {
+ int base = 10;
+
+ if (stringValue.startsWith("0x")) {
+ base = 16;
+ stringValue = stringValue.substring(2);
+ }
+ else if (stringValue.length() > 1 && stringValue.startsWith("0")) {
+ base = 8;
+ stringValue = stringValue.substring(1);
+ }
+ while (stringValue.length() > 1 && stringValue.startsWith("0")) {
+ stringValue = stringValue.substring(1);
+ }
+
+ if (10 == base) {
+ return Integer.parseInt(stringValue);
+ }
+ else {
+ long result = Long.parseLong(stringValue, base);
+
+ if (result > Integer.MAX_VALUE) {
+ result -= 0x100000000L;
+ }
+
+ if (result > Integer.MAX_VALUE) {
+ throw new NumberFormatException(result + " > " + Integer.MAX_VALUE);
+ }
+ else if (result < Integer.MIN_VALUE) {
+ throw new NumberFormatException(result + " < " + Integer.MIN_VALUE);
+ }
+ else {
+ return (int)result;
+ }
+ }
+ }
+
+ static long parseLong(String stringValue)
+ {
+ int base = 10;
+
+ if (stringValue.startsWith("0x")) {
+ base = 16;
+ stringValue = stringValue.substring(2);
+ }
+ else if (stringValue.length() > 1 && stringValue.startsWith("0")) {
+ base = 8;
+ stringValue = stringValue.substring(1);
+ }
+ while (stringValue.length() > 1 && stringValue.startsWith("0")) {
+ stringValue = stringValue.substring(1);
+ }
+
+ BigInteger bigInt = new BigInteger(stringValue, base);
+ long result = bigInt.longValue();
+ return result;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java
new file mode 100644
index 0000000..a268b96
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/EvaluatorEnvironment.java
@@ -0,0 +1,29 @@
+/* gnu.classpath.tools.gjdoc.expr.EvaluatorEnvironment
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+import java.util.Set;
+
+public interface EvaluatorEnvironment
+{
+ public Object getValue(String identifier, Set visitedFields)
+ throws IllegalExpressionException, UnknownIdentifierException;
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java
new file mode 100644
index 0000000..563cb1b
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ExclusiveOrExpression.java
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.ExclusiveOrExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ExclusiveOrExpression
+ extends BinaryBitwiseExpression
+{
+ public ExclusiveOrExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected long compute(long leftValue, long rightValue)
+ {
+ return leftValue ^ rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue ^ rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java
new file mode 100644
index 0000000..660806d
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Expression.java
@@ -0,0 +1,27 @@
+/* gnu.classpath.tools.gjdoc.expr.Expression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+interface Expression
+{
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException;
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java
new file mode 100644
index 0000000..647ac77
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanExpression.java
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.GreaterThanExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class GreaterThanExpression
+ extends BinaryRelationExpression
+{
+ public GreaterThanExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected boolean compute(double leftValue, double rightValue)
+ {
+ return leftValue > rightValue;
+ }
+
+ protected boolean compute(float leftValue, float rightValue)
+ {
+ return leftValue > rightValue;
+ }
+
+ protected boolean compute(long leftValue, long rightValue)
+ {
+ return leftValue > rightValue;
+ }
+
+ protected boolean compute(int leftValue, int rightValue)
+ {
+ return leftValue > rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java
new file mode 100644
index 0000000..e183482
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/GreaterThanOrEqualExpression.java
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.GreaterThanOrEqualExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class GreaterThanOrEqualExpression
+ extends BinaryRelationExpression
+{
+ public GreaterThanOrEqualExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected boolean compute(double leftValue, double rightValue)
+ {
+ return leftValue >= rightValue;
+ }
+
+ protected boolean compute(float leftValue, float rightValue)
+ {
+ return leftValue >= rightValue;
+ }
+
+ protected boolean compute(long leftValue, long rightValue)
+ {
+ return leftValue >= rightValue;
+ }
+
+ protected boolean compute(int leftValue, int rightValue)
+ {
+ return leftValue >= rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java
new file mode 100644
index 0000000..d6cf322
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IdentifierExpression.java
@@ -0,0 +1,72 @@
+/* gnu.classpath.tools.gjdoc.expr.IdentifierExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class IdentifierExpression
+ implements Expression
+{
+ private String identifier;
+
+ public IdentifierExpression(String identifier)
+ {
+ this.identifier = identifier;
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ Object value = context.getEvaluatorEnvironment().getValue(identifier, context.getVisitedFields());
+
+ if (value instanceof Byte) {
+ return new ConstantByte(((Byte)value).byteValue());
+ }
+ else if (value instanceof Short) {
+ return new ConstantShort(((Short)value).shortValue());
+ }
+ else if (value instanceof Integer) {
+ return new ConstantInteger(((Integer)value).intValue());
+ }
+ else if (value instanceof Long) {
+ return new ConstantLong(((Long)value).longValue());
+ }
+ else if (value instanceof Float) {
+ return new ConstantFloat(((Float)value).floatValue());
+ }
+ else if (value instanceof Double) {
+ return new ConstantDouble(((Double)value).doubleValue());
+ }
+ else if (value instanceof Boolean) {
+ return new ConstantBoolean(((Boolean)value).booleanValue());
+ }
+ else if (value instanceof Character) {
+ return new ConstantChar(((Character)value).charValue());
+ }
+ else if (value instanceof String) {
+ return new ConstantString((String)value);
+ }
+ else if (null != value) {
+ throw new IllegalExpressionException("Unsupported type " + value.getClass().getName() + " for identifier " + identifier);
+ }
+ else {
+ throw new IllegalExpressionException("Cannot resolve identifier " + identifier);
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java
new file mode 100644
index 0000000..bb84a55
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/IllegalExpressionException.java
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.expr.IllegalExpressionException
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+public class IllegalExpressionException
+ extends Exception
+{
+ public IllegalExpressionException(String message)
+ {
+ super(message);
+ }
+
+ public IllegalExpressionException(Throwable cause)
+ {
+ super(cause);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java
new file mode 100644
index 0000000..350027ea
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/InclusiveOrExpression.java
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.InclusiveOrExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class InclusiveOrExpression
+ extends BinaryBitwiseExpression
+{
+ public InclusiveOrExpression(Expression a, Expression b)
+ {
+ super(a, b);
+ }
+
+ protected long compute(long leftValue, long rightValue)
+ {
+ return leftValue | rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue | rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java
new file mode 100644
index 0000000..d57b862
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanExpression.java
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.LessThanExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class LessThanExpression
+ extends BinaryRelationExpression
+{
+ public LessThanExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected boolean compute(double leftValue, double rightValue)
+ {
+ return leftValue < rightValue;
+ }
+
+ protected boolean compute(float leftValue, float rightValue)
+ {
+ return leftValue < rightValue;
+ }
+
+ protected boolean compute(long leftValue, long rightValue)
+ {
+ return leftValue < rightValue;
+ }
+
+ protected boolean compute(int leftValue, int rightValue)
+ {
+ return leftValue < rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java
new file mode 100644
index 0000000..eaf2499
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LessThanOrEqualExpression.java
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.LessThanOrEqualExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class LessThanOrEqualExpression
+ extends BinaryRelationExpression
+{
+ public LessThanOrEqualExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected boolean compute(double leftValue, double rightValue)
+ {
+ return leftValue <= rightValue;
+ }
+
+ protected boolean compute(float leftValue, float rightValue)
+ {
+ return leftValue <= rightValue;
+ }
+
+ protected boolean compute(long leftValue, long rightValue)
+ {
+ return leftValue <= rightValue;
+ }
+
+ protected boolean compute(int leftValue, int rightValue)
+ {
+ return leftValue <= rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java
new file mode 100644
index 0000000..44e5075
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalAndExpression.java
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.expr.LogicalAndExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class LogicalAndExpression
+ extends BinaryLogicalExpression
+{
+ LogicalAndExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected boolean compute(boolean leftValue, boolean rightValue)
+ {
+ return leftValue && rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java
new file mode 100644
index 0000000..c315166
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalNotExpression.java
@@ -0,0 +1,43 @@
+/* gnu.classpath.tools.gjdoc.expr.LogicalNotExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class LogicalNotExpression
+ extends UnaryExpression
+{
+ protected LogicalNotExpression(Expression expr)
+ {
+ super(expr);
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression value = expr.evaluate(context);
+
+ if (Type.BOOLEAN == value.getType()) {
+ return new ConstantBoolean(!((ConstantBoolean)value).booleanValue());
+ }
+ else {
+ throw new IllegalExpressionException("Operator ! cannot be applied to " + value.getType());
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java
new file mode 100644
index 0000000..77c33b4
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/LogicalOrExpression.java
@@ -0,0 +1,35 @@
+/* gnu.classpath.tools.gjdoc.expr.LogicalOrExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class LogicalOrExpression
+ extends BinaryLogicalExpression
+{
+ LogicalOrExpression(Expression a, Expression b)
+ {
+ super(a, b);
+ }
+
+ protected boolean compute(boolean leftValue, boolean rightValue)
+ {
+ return leftValue || rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java
new file mode 100644
index 0000000..c868117
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ModuloExpression.java
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.ModuloExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ModuloExpression
+ extends BinaryComputationExpression
+{
+ public ModuloExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected double compute(double leftValue, double rightValue)
+ {
+ return leftValue % rightValue;
+ }
+
+ protected float compute(float leftValue, float rightValue)
+ {
+ return leftValue % rightValue;
+ }
+
+ protected long compute(long leftValue, long rightValue)
+ {
+ return leftValue % rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue % rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java
new file mode 100644
index 0000000..520380c
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/MultiplicationExpression.java
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.MultiplicationExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class MultiplicationExpression
+ extends BinaryComputationExpression
+{
+ public MultiplicationExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected double compute(double leftValue, double rightValue)
+ {
+ return leftValue * rightValue;
+ }
+
+ protected float compute(float leftValue, float rightValue)
+ {
+ return leftValue * rightValue;
+ }
+
+ protected long compute(long leftValue, long rightValue)
+ {
+ return leftValue * rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue * rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java
new file mode 100644
index 0000000..e14a469
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NegateExpression.java
@@ -0,0 +1,49 @@
+/* gnu.classpath.tools.gjdoc.expr.NegateExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class NegateExpression
+ extends UnaryExpression
+{
+ protected NegateExpression(Expression expr)
+ {
+ super(expr);
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression value = expr.evaluate(context);
+
+ if (Type.LONG == value.getType()) {
+ return new ConstantLong(-value.asNumber().longValue());
+ }
+ else if (Type.DOUBLE == value.getType()) {
+ return new ConstantDouble(-value.asNumber().doubleValue());
+ }
+ else if (Type.FLOAT == value.getType()) {
+ return new ConstantDouble(-value.asNumber().floatValue());
+ }
+ else {
+ return new ConstantInteger(-value.asNumber().intValue());
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java
new file mode 100644
index 0000000..c3d8ab2
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotEqualExpression.java
@@ -0,0 +1,55 @@
+/* gnu.classpath.tools.gjdoc.expr.NotEqualExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class NotEqualExpression
+ extends BinaryEqualityExpression
+{
+ public NotEqualExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected boolean compute(double leftValue, double rightValue)
+ {
+ return leftValue != rightValue;
+ }
+
+ protected boolean compute(float leftValue, float rightValue)
+ {
+ return leftValue != rightValue;
+ }
+
+ protected boolean compute(long leftValue, long rightValue)
+ {
+ return leftValue != rightValue;
+ }
+
+ protected boolean compute(int leftValue, int rightValue)
+ {
+ return leftValue != rightValue;
+ }
+
+ protected boolean compute(boolean leftValue, boolean rightValue)
+ {
+ return leftValue != rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java
new file mode 100644
index 0000000..3351b8e
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/NotExpression.java
@@ -0,0 +1,43 @@
+/* gnu.classpath.tools.gjdoc.expr.NotExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class NotExpression
+ extends UnaryExpression
+{
+ protected NotExpression(Expression expr)
+ {
+ super(expr);
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression value = expr.evaluate(context);
+
+ if (Type.LONG == value.getType()) {
+ return new ConstantLong(~value.asNumber().longValue());
+ }
+ else {
+ return new ConstantInteger(~value.asNumber().intValue());
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java
new file mode 100644
index 0000000..af51cf3
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftLeftExpression.java
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.ShiftLeftExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ShiftLeftExpression
+ extends BinaryShiftExpression
+{
+ public ShiftLeftExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected long compute(long leftValue, int rightValue)
+ {
+ return leftValue << rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue << rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java
new file mode 100644
index 0000000..0aedf12
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/ShiftRightExpression.java
@@ -0,0 +1,40 @@
+/* gnu.classpath.tools.gjdoc.expr.ShiftRightExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class ShiftRightExpression
+ extends BinaryShiftExpression
+{
+ public ShiftRightExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected long compute(long leftValue, int rightValue)
+ {
+ return leftValue >> rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue >> rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java
new file mode 100644
index 0000000..14e5edf
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/SubtractionExpression.java
@@ -0,0 +1,50 @@
+/* gnu.classpath.tools.gjdoc.expr.SubtractionExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class SubtractionExpression
+ extends BinaryComputationExpression
+{
+ public SubtractionExpression(Expression left, Expression right)
+ {
+ super(left, right);
+ }
+
+ protected double compute(double leftValue, double rightValue)
+ {
+ return leftValue - rightValue;
+ }
+
+ protected float compute(float leftValue, float rightValue)
+ {
+ return leftValue - rightValue;
+ }
+
+ protected long compute(long leftValue, long rightValue)
+ {
+ return leftValue - rightValue;
+ }
+
+ protected int compute(int leftValue, int rightValue)
+ {
+ return leftValue - rightValue;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java
new file mode 100644
index 0000000..47f9ea6
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/Type.java
@@ -0,0 +1,43 @@
+/* gnu.classpath.tools.gjdoc.expr.Type
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class Type
+{
+ public static final Type LONG = new Type(Long.TYPE);
+ public static final Type INTEGER = new Type(Integer.TYPE);
+ public static final Type BOOLEAN = new Type(Boolean.TYPE);
+ public static final Type DOUBLE = new Type(Double.TYPE);
+ public static final Type FLOAT = new Type(Float.TYPE);
+ public static final Type CHAR = new Type(Character.TYPE);
+ public static final Type BYTE = new Type(Byte.TYPE);
+ public static final Type SHORT = new Type(Short.TYPE);
+ public static final Type VOID = new Type(Void.TYPE);
+ public static final Type STRING = new Type(String.class);
+ public static final Type NULL = new Type(null);
+
+ private Class clazz;
+
+ private Type(Class clazz)
+ {
+ this.clazz = clazz;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java
new file mode 100644
index 0000000..8c06ee2
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/TypeCastExpression.java
@@ -0,0 +1,70 @@
+/* gnu.classpath.tools.gjdoc.expr.TypeCastExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+class TypeCastExpression
+ extends UnaryExpression
+{
+ private Type type;
+
+ public TypeCastExpression(Type type, Expression expr)
+ {
+ super(expr);
+ this.type = type;
+ }
+
+ public ConstantExpression evaluate(Context context)
+ throws IllegalExpressionException
+ {
+ ConstantExpression value = expr.evaluate(context);
+
+ if (Type.BYTE == type) {
+ return new ConstantByte(value.asNumber().byteValue());
+ }
+ else if (Type.SHORT == type) {
+ return new ConstantShort(value.asNumber().shortValue());
+ }
+ else if (Type.INTEGER == type) {
+ return new ConstantInteger(value.asNumber().intValue());
+ }
+ else if (Type.LONG == type) {
+ return new ConstantLong(value.asNumber().longValue());
+ }
+ else if (Type.CHAR == type) {
+ return new ConstantChar((char)value.asNumber().intValue());
+ }
+ else if (Type.FLOAT == type) {
+ return new ConstantFloat((float)value.asNumber().intValue());
+ }
+ else if (Type.DOUBLE == type) {
+ return new ConstantDouble((float)value.asNumber().intValue());
+ }
+ else if (Type.BOOLEAN == type && Type.BOOLEAN == value.getType()) {
+ return value;
+ }
+ else if (Type.STRING == type && Type.STRING == value.getType()) {
+ return value;
+ }
+ else {
+ throw new IllegalExpressionException("Cannot cast " + value.getType() + " to " + type);
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java
new file mode 100644
index 0000000..e5421c0
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnaryExpression.java
@@ -0,0 +1,32 @@
+/* gnu.classpath.tools.gjdoc.expr.UnaryExpression
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+abstract class UnaryExpression
+ implements Expression
+{
+ protected Expression expr;
+
+ protected UnaryExpression(Expression expr)
+ {
+ this.expr = expr;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java
new file mode 100644
index 0000000..f849707
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/UnknownIdentifierException.java
@@ -0,0 +1,30 @@
+/* gnu.classpath.tools.gjdoc.expr.UnknownIdentifierException
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.gjdoc.expr;
+
+public class UnknownIdentifierException
+ extends IllegalExpressionException
+{
+ public UnknownIdentifierException(String identifier)
+ {
+ super(identifier);
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g
new file mode 100644
index 0000000..4a21a86
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/gjdoc/expr/java-expression.g
@@ -0,0 +1,471 @@
+/*
+ * This grammar is derived from the Java 1.3 Recognizer
+ * (http://www.antlr.org/grammar/java/java.g) by Mitchell, Parr, Lilley,
+ * Stanchfield, Mohnen, Williams, Jacobs, Messick and Pybus, Version
+ * 1.21.
+ *
+ * This grammar recognizes simple Java expressions. The following
+ * language elements are NOT supported:
+ *
+ * - type casts to non-primitive types
+ * - method calls
+ * - constructor calls
+ * - array access
+ * - comma expressions
+ * - increment and decrement operators (both prefix/postfix)
+ * - expressions involving constant classes (Abc.class)
+ */
+
+header {
+ package gnu.classpath.tools.gjdoc.expr;
+}
+
+class JavaRecognizer extends Parser;
+options {
+ k = 2; // two token lookahead
+ exportVocab=Java; // Call its vocabulary "Java"
+ codeGenMakeSwitchThreshold = 2; // Some optimizations
+ codeGenBitsetTestThreshold = 3;
+ defaultErrorHandler = false; // Don't generate parser error handlers
+ buildAST = true;
+}
+
+tokens {
+ BLOCK; MODIFIERS; OBJBLOCK; SLIST; CTOR_DEF; METHOD_DEF; VARIABLE_DEF;
+ INSTANCE_INIT; STATIC_INIT; TYPE; CLASS_DEF; INTERFACE_DEF;
+ PACKAGE_DEF; ARRAY_DECLARATOR; EXTENDS_CLAUSE; IMPLEMENTS_CLAUSE;
+ PARAMETERS; PARAMETER_DEF; LABELED_STAT; TYPECAST; INDEX_OP;
+ POST_INC; POST_DEC; METHOD_CALL; EXPR; ARRAY_INIT;
+ IMPORT; UNARY_MINUS; UNARY_PLUS; CASE_GROUP; ELIST; FOR_INIT; FOR_CONDITION;
+ FOR_ITERATOR; EMPTY_STAT; FINAL="final"; ABSTRACT="abstract";
+ STRICTFP="strictfp"; SUPER_CTOR_CALL; CTOR_CALL;
+}
+
+// A builtin type specification is a builtin type with possible brackets
+// afterwards (which would make it an array type).
+builtInTypeSpec[boolean addImagNode] returns [Type t = null]
+ : t=builtInType (lb:LBRACK^ {#lb.setType(ARRAY_DECLARATOR);} RBRACK!)*
+ {
+ if ( addImagNode ) {
+ #builtInTypeSpec = #(#[TYPE,"TYPE"], #builtInTypeSpec);
+ }
+ }
+ ;
+
+// A type name. which is either a (possibly qualified) class name or
+// a primitive (builtin) type
+type returns [Type t]
+ : t=builtInType
+ ;
+
+// The primitive types.
+builtInType returns [Type t = null]
+ : "void" {t=Type.VOID;}
+ | "boolean" {t=Type.BOOLEAN;}
+ | "byte" {t=Type.BYTE;}
+ | "char" {t=Type.CHAR;}
+ | "short" {t=Type.SHORT;}
+ | "int" {t=Type.INTEGER;}
+ | "float"{t=Type.FLOAT;}
+ | "long" {t=Type.LONG;}
+ | "double" {t=Type.DOUBLE;}
+ | "String" {t=Type.STRING;}
+ ;
+
+// A (possibly-qualified) java identifier. We start with the first IDENT
+// and expand its name by adding dots and following IDENTS
+identifier returns [String s = null;]
+ : i:IDENT {s=i.getText();} ( DOT^ i2:IDENT {s+="."+i2.getText();} )*
+ ;
+
+expression returns [Expression e = null]
+ : e=conditionalExpression EOF!
+ ;
+
+// conditional test (level 12)
+conditionalExpression returns [Expression e = null] { Expression a,b,c; }
+ : e=logicalOrExpression
+ ( QUESTION^ b=conditionalExpression COLON! c=conditionalExpression {e=new ConditionalExpression(e,b,c);} )?
+ ;
+
+
+// logical or (||) (level 11)
+logicalOrExpression returns [Expression e = null] { Expression a,b; }
+ : e=logicalAndExpression (LOR^ b=logicalAndExpression {e=new LogicalOrExpression(e,b);})*
+ ;
+
+
+// logical and (&&) (level 10)
+logicalAndExpression returns [Expression e = null] { Expression a,b; }
+ : e=inclusiveOrExpression (LAND^ b=inclusiveOrExpression {e=new LogicalAndExpression(e,b);})*
+ ;
+
+
+// bitwise or non-short-circuiting or (|) (level 9)
+inclusiveOrExpression returns [Expression e = null] { Expression a,b; }
+ : e=exclusiveOrExpression (BOR^ b=exclusiveOrExpression {e=new InclusiveOrExpression(e,b);})*
+ ;
+
+
+// exclusive or (^) (level 8)
+exclusiveOrExpression returns [Expression e = null] { Expression a,b; }
+ : e=andExpression (BXOR^ b=andExpression {e=new ExclusiveOrExpression(e,b);})*
+ ;
+
+
+// bitwise or non-short-circuiting and (&) (level 7)
+andExpression returns [Expression e = null] { Expression a,b; }
+ : e=equalityExpression (BAND^ b=equalityExpression {e=new AndExpression(e,b);})*
+ ;
+
+
+// equality/inequality (==/!=) (level 6)
+equalityExpression returns [Expression e = null] { Expression a,b; }
+ : e=relationalExpression ((NOT_EQUAL^ a=relationalExpression {e=new NotEqualExpression(e,a);} | EQUAL^ a=relationalExpression {e=new EqualExpression(e,a);}))*
+ ;
+
+
+// boolean relational expressions (level 5)
+relationalExpression returns [Expression e = null] { Expression a,b; }
+ : e=shiftExpression
+ ( ( ( LT^ a=shiftExpression {e=new LessThanExpression(e,a);}
+ | GT^ a=shiftExpression {e=new GreaterThanExpression(e,a);}
+ | LE^ a=shiftExpression {e=new LessThanOrEqualExpression(e,a);}
+ | GE^ a=shiftExpression {e=new GreaterThanOrEqualExpression(e,a);}
+ )
+
+ )*
+ )
+ ;
+
+
+// bit shift expressions (level 4)
+shiftExpression returns [Expression e = null] { Expression a,b; }
+ : e=additiveExpression ((SL^ a=additiveExpression {e=new ShiftLeftExpression(e,a);} | SR^ a=additiveExpression {e=new ShiftRightExpression(e,a);} | BSR^ a=additiveExpression {e=new BitShiftRightExpression(e,a);}))*
+ ;
+
+
+// binary addition/subtraction (level 3)
+additiveExpression returns [Expression e = null] { Expression a,b; }
+ : e=multiplicativeExpression ((PLUS^ a=multiplicativeExpression {e=new AdditionExpression(e,a);} | MINUS^ a=multiplicativeExpression {e=new SubtractionExpression(e,a);}))*
+ ;
+
+
+// multiplication/division/modulo (level 2)
+multiplicativeExpression returns [Expression e = null] { Expression a,b; }
+ : e=unaryExpression ((STAR^ a=unaryExpression {e=new MultiplicationExpression(e,a);} | DIV^ a=unaryExpression {e=new DivisionExpression(e,a);} | MOD^ a=unaryExpression {e=new ModuloExpression(e,a);} ))*
+ ;
+
+
+unaryExpression returns [Expression e = null] { Expression a,b; }
+ : MINUS^ {#MINUS.setType(UNARY_MINUS);} a=unaryExpression {e=new NegateExpression(a);}
+ | PLUS^ {#PLUS.setType(UNARY_PLUS);} e=unaryExpression
+ | e=unaryExpressionNotPlusMinus
+ ;
+
+unaryExpressionNotPlusMinus returns [Expression e = null] { Expression a; Type t; }
+ : BNOT^ a=unaryExpression {e=new NotExpression(a);}
+ | LNOT^ a=unaryExpression {e=new LogicalNotExpression(a);}
+
+ // use predicate to skip cases like: (int.class)
+ | (LPAREN builtInTypeSpec[true] RPAREN) =>
+ lpb:LPAREN^ {#lpb.setType(TYPECAST);} t=builtInTypeSpec[true] RPAREN!
+ a=unaryExpression {e=new TypeCastExpression(t,a);}
+
+ | e=primaryExpression
+ ;
+
+// the basic element of an expression
+primaryExpression returns [Expression e = null; String i = null;]
+ : e=constant
+ | i=identifier {e=new IdentifierExpression(i);}
+ | "true" { e=new ConstantBoolean(true); }
+ | "false" { e=new ConstantBoolean(false); }
+ | "null" { e=new ConstantNull(); }
+ | LPAREN! e=conditionalExpression RPAREN!
+ ;
+
+/** Match a, a.b.c refs
+ */
+identPrimary returns [Expression e = null]
+ : IDENT
+ (
+ options {
+ // .ident could match here or in postfixExpression.
+ // We do want to match here. Turn off warning.
+ greedy=true;
+ }
+ : DOT^ IDENT
+ )*
+ ;
+
+constant returns [Expression e = null]
+ : l1:NUM_INT {e=new ConstantInteger(l1.getText());}
+ | l2:CHAR_LITERAL {e=new ConstantChar(l2.getText());}
+ | l3:STRING_LITERAL {e=new ConstantString(l3.getText().substring(1, l3.getText().length()-1)); }
+ | l4:NUM_FLOAT {e=new ConstantFloat(l4.getText());}
+ | l5:NUM_LONG {e=new ConstantLong(l5.getText());}
+ | l6:NUM_DOUBLE {e=new ConstantDouble(l6.getText());}
+ ;
+
+
+//----------------------------------------------------------------------------
+// The Java scanner
+//----------------------------------------------------------------------------
+class JavaLexer extends Lexer;
+
+options {
+ exportVocab=Java; // call the vocabulary "Java"
+ testLiterals=false; // don't automatically test for literals
+ k=4; // four characters of lookahead
+ charVocabulary='\u0003'..'\uFFFF';
+ // without inlining some bitset tests, couldn't do unicode;
+ // I need to make ANTLR generate smaller bitsets; see
+ // bottom of JavaLexer.java
+ codeGenBitsetTestThreshold=20;
+}
+
+
+
+// OPERATORS
+QUESTION : '?' ;
+LPAREN : '(' ;
+RPAREN : ')' ;
+LBRACK : '[' ;
+RBRACK : ']' ;
+LCURLY : '{' ;
+RCURLY : '}' ;
+COLON : ':' ;
+COMMA : ',' ;
+//DOT : '.' ;
+ASSIGN : '=' ;
+EQUAL : "==" ;
+LNOT : '!' ;
+BNOT : '~' ;
+NOT_EQUAL : "!=" ;
+DIV : '/' ;
+DIV_ASSIGN : "/=" ;
+PLUS : '+' ;
+PLUS_ASSIGN : "+=" ;
+INC : "++" ;
+MINUS : '-' ;
+MINUS_ASSIGN : "-=" ;
+DEC : "--" ;
+STAR : '*' ;
+STAR_ASSIGN : "*=" ;
+MOD : '%' ;
+MOD_ASSIGN : "%=" ;
+SR : ">>" ;
+SR_ASSIGN : ">>=" ;
+BSR : ">>>" ;
+BSR_ASSIGN : ">>>=" ;
+GE : ">=" ;
+GT : ">" ;
+SL : "<<" ;
+SL_ASSIGN : "<<=" ;
+LE : "<=" ;
+LT : '<' ;
+BXOR : '^' ;
+BXOR_ASSIGN : "^=" ;
+BOR : '|' ;
+BOR_ASSIGN : "|=" ;
+LOR : "||" ;
+BAND : '&' ;
+BAND_ASSIGN : "&=" ;
+LAND : "&&" ;
+SEMI : ';' ;
+
+
+// Whitespace -- ignored
+WS : ( ' '
+ | '\t'
+ | '\f'
+ // handle newlines
+ | ( options {generateAmbigWarnings=false;}
+ : "\r\n" // Evil DOS
+ | '\r' // Macintosh
+ | '\n' // Unix (the right way)
+ )
+ { newline(); }
+ )+
+ { _ttype = Token.SKIP; }
+ ;
+
+// Single-line comments
+SL_COMMIT
+ : "//"
+ (~('\n'|'\r'))* ('\n'|'\r'('\n')?)
+ {$setType(Token.SKIP); newline();}
+ ;
+
+// multiple-line comments
+ML_COMMENT
+ : "/*"
+ ( /* '\r' '\n' can be matched in one alternative or by matching
+ '\r' in one iteration and '\n' in another. I am trying to
+ handle any flavor of newline that comes in, but the language
+ that allows both "\r\n" and "\r" and "\n" to all be valid
+ newline is ambiguous. Consequently, the resulting grammar
+ must be ambiguous. I'm shutting this warning off.
+ */
+ options {
+ generateAmbigWarnings=false;
+ }
+ :
+ { LA(2)!='/' }? '*'
+ | '\r' '\n' {newline();}
+ | '\r' {newline();}
+ | '\n' {newline();}
+ | ~('*'|'\n'|'\r')
+ )*
+ "*/"
+ {$setType(Token.SKIP);}
+ ;
+
+
+// character literals
+CHAR_LITERAL
+ : '\'' ( ESC | ~('\''|'\n'|'\r'|'\\') ) '\''
+ ;
+
+// string literals
+STRING_LITERAL
+ : '"' (ESC|~('"'|'\\'|'\n'|'\r'))* '"'
+ ;
+
+
+// escape sequence -- note that this is protected; it can only be called
+// from another lexer rule -- it will not ever directly return a token to
+// the parser
+// There are various ambiguities hushed in this rule. The optional
+// '0'...'9' digit matches should be matched here rather than letting
+// them go back to STRING_LITERAL to be matched. ANTLR does the
+// right thing by matching immediately; hence, it's ok to shut off
+// the FOLLOW ambig warnings.
+protected
+ESC
+ : '\\'
+ ( 'n'
+ | 'r'
+ | 't'
+ | 'b'
+ | 'f'
+ | '"'
+ | '\''
+ | '\\'
+ | ('u')+ HEX_DIGIT HEX_DIGIT HEX_DIGIT HEX_DIGIT
+ | '0'..'3'
+ (
+ options {
+ warnWhenFollowAmbig = false;
+ }
+ : '0'..'7'
+ (
+ options {
+ warnWhenFollowAmbig = false;
+ }
+ : '0'..'7'
+ )?
+ )?
+ | '4'..'7'
+ (
+ options {
+ warnWhenFollowAmbig = false;
+ }
+ : '0'..'7'
+ )?
+ )
+ ;
+
+
+// hexadecimal digit (again, note it's protected!)
+protected
+HEX_DIGIT
+ : ('0'..'9'|'A'..'F'|'a'..'f')
+ ;
+
+
+// a dummy rule to force vocabulary to be all characters (except special
+// ones that ANTLR uses internally (0 to 2)
+protected
+VOCAB
+ : '\3'..'\377'
+ ;
+
+
+// an identifier. Note that testLiterals is set to true! This means
+// that after we match the rule, we look in the literals table to see
+// if it's a literal or really an identifer
+IDENT
+ options {testLiterals=true;}
+ : ('a'..'z'|'A'..'Z'|'_'|'$') ('a'..'z'|'A'..'Z'|'_'|'0'..'9'|'$')*
+ ;
+
+
+// a numeric literal
+NUM_INT
+ {boolean isDecimal=false; Token t=null;}
+ : '.' {_ttype = DOT;}
+ ( ('0'..'9')+ (EXPONENT)? (f1:FLOAT_SUFFIX {t=f1;})?
+ {
+ if (t != null && t.getText().toUpperCase().indexOf('F')>=0) {
+ _ttype = NUM_FLOAT;
+ }
+ else {
+ _ttype = NUM_DOUBLE; // assume double
+ }
+ }
+ )?
+
+ | ( '0' {isDecimal = true;} // special case for just '0'
+ ( ('x'|'X')
+ ( // hex
+ // the 'e'|'E' and float suffix stuff look
+ // like hex digits, hence the (...)+ doesn't
+ // know when to stop: ambig. ANTLR resolves
+ // it correctly by matching immediately. It
+ // is therefor ok to hush warning.
+ options {
+ warnWhenFollowAmbig=false;
+ }
+ : HEX_DIGIT
+ )+
+
+ | //float or double with leading zero
+ (('0'..'9')+ ('.'|EXPONENT|FLOAT_SUFFIX)) => ('0'..'9')+
+
+ | ('0'..'7')+ // octal
+ )?
+ | ('1'..'9') ('0'..'9')* {isDecimal=true;} // non-zero decimal
+ )
+ ( ('l'|'L') { _ttype = NUM_LONG; }
+
+ // only check to see if it's a float if looks like decimal so far
+ | {isDecimal}?
+ ( '.' ('0'..'9')* (EXPONENT)? (f2:FLOAT_SUFFIX {t=f2;})?
+ | EXPONENT (f3:FLOAT_SUFFIX {t=f3;})?
+ | f4:FLOAT_SUFFIX {t=f4;}
+ )
+ {
+ if (t != null && t.getText().toUpperCase() .indexOf('F') >= 0) {
+ _ttype = NUM_FLOAT;
+ }
+ else {
+ _ttype = NUM_DOUBLE; // assume double
+ }
+ }
+ )?
+ ;
+
+
+// a couple protected methods to assist in matching floating point numbers
+protected
+EXPONENT
+ : ('e'|'E') ('+'|'-')? ('0'..'9')+
+ ;
+
+
+protected
+FLOAT_SUFFIX
+ : 'f'|'F'|'d'|'D'
+ ;
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
index c1660b7..eef31e7 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/jar/Creator.java
@@ -50,6 +50,7 @@ import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.Iterator;
+import java.util.jar.Attributes;
import java.util.jar.JarFile;
import java.util.jar.JarOutputStream;
import java.util.jar.Manifest;
@@ -222,9 +223,15 @@ public class Creator
throws IOException
{
manifest = createManifest(parameters);
+ /* If no version is specified, provide the same manifest version default
+ * as Sun's jar tool */
+ Attributes attr = manifest.getMainAttributes();
+ if (attr.getValue(Attributes.Name.MANIFEST_VERSION) == null)
+ attr.putValue(Attributes.Name.MANIFEST_VERSION.toString(), "1.0");
+ attr.putValue("Created-By", System.getProperty("java.version") +
+ " (" + System.getProperty("java.vendor") + ")");
outputStream = new JarOutputStream(os, manifest);
- // FIXME: in Classpath this sets the method too late for the
- // manifest file.
+ // FIXME: this sets the method too late for the manifest file.
outputStream.setMethod(parameters.storageMode);
writeCommandLineEntries(parameters);
}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java
index 401c6fb..06c5de9 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/jar/Indexer.java
@@ -57,7 +57,7 @@ import java.util.jar.Manifest;
public class Indexer
extends Updater
{
- private void indexJarFile(StringBuffer result, File fileName,
+ private void indexJarFile(StringBuilder result, File fileName,
boolean verbose)
throws IOException
{
@@ -129,7 +129,7 @@ public class Indexer
super.writeCommandLineEntries(parameters, os);
// Now compute our index file and write it.
- StringBuffer contents = new StringBuffer();
+ StringBuilder contents = new StringBuilder();
indexJarFile(contents, parameters.archiveFile, parameters.verbose);
if (contents.length() != 0)
{
diff --git a/libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java b/libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java
index 29586be..f25d56f 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/jar/Updater.java
@@ -38,6 +38,7 @@
package gnu.classpath.tools.jar;
+import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
@@ -70,7 +71,8 @@ public class Updater
inputJar = new JarFile(parameters.archiveFile);
// Write all the new entries to a temporary file.
- File tmpFile = File.createTempFile("jarcopy", null);
+ File tmpFile = File.createTempFile("jarcopy", null,
+ parameters.archiveFile.getParentFile());
OutputStream os = new BufferedOutputStream(new FileOutputStream(tmpFile));
writeCommandLineEntries(parameters, os);
@@ -86,6 +88,11 @@ public class Updater
}
close();
- tmpFile.renameTo(parameters.archiveFile);
+ if (!tmpFile.renameTo(parameters.archiveFile))
+ {
+ throw new IOException("Couldn't rename new JAR file " + tmpFile +
+ "to " + parameters.archiveFile);
+ }
}
+
}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java b/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java
new file mode 100644
index 0000000..a7da7c4
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/java2xhtml/Java2xhtml.java
@@ -0,0 +1,1337 @@
+/* gnu.classpath.tools.java2xhtml.Java2xhtml
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+/** Java2xhtml.java Version 0.9
+ * Produces an XHTML file from Java source code with syntax highlighting,
+ * includes additional options (line numbering, tab spacing, etc.)
+ * <P>
+ * NOTE: Common java naming structure is assumed
+ * Capitalize the first letter that appears in a class or interface name
+ * Use lowercase for the first letter in a method or variable name
+ * Use only uppercase letters when naming constants
+ *
+ * @version 0.9, March 2003
+ * @author Shayne Steele
+ */
+package gnu.classpath.tools.java2xhtml;
+
+import java.io.*;
+import java.util.*;
+
+public class Java2xhtml
+{
+ //--- define CSS classes for individual output elements
+
+ private static final String sourceCodeStyle = "source";
+ private static final String lineNumberStyle = "line-number even";
+ private static final String modulusLineNumberStyle = "line-number odd";
+
+ private static final String keywordStyle = "keyword";
+ private static final String methodStyle = "method member";
+ private static final String variableStyle = "variable member";
+ private static final String singleLineCommentStyle = "line comment";
+ private static final String traditionalCommentStyle = "c comment";
+ private static final String javadocCommentStyle = "javadoc comment";
+ private static final String javadocTagStyle = "javadoc tag";
+ private static final String importNameStyle = "import header type";
+ private static final String packageNameStyle = "package header type";
+ private static final String primitiveTypeStyle = "primitive type";
+ private static final String nonPrimitiveTypeStyle = "non-primitive type";
+ private static final String constructorStyle = "constructor member";
+ private static final String constantStyle = "constant member";
+ private static final String doubleQuoteStyle = "double quote";
+ private static final String singleQuoteStyle = "single quote";
+ private static final String numericLiteralStyle = "numeric literal";
+ private static final String primitiveLiteralStyle = "primitive literal";
+
+ private static final String iconStyle = "icon";
+
+
+
+ // parse the command line arguments
+ // give a decent responce for bad input
+ // call the HTMLifier on good input
+ public static void main(String args[])
+ {
+ // parse the invokation arguments
+ if (args.length < 1 || args.length > 3) // invoked program incorrectly
+ {
+ System.out.println("Java2xhtml Version 0.9 (C) 2005 Free Software Foundation");
+ System.out.println(" Produces an XHTML file of Java source" +
+ " code with syntax highlighting,");
+ System.out.println(" includes additional options " +
+ "(line numbering, tab spacing, etc.)");
+ System.out.println(" This tool is part of GNU Classpath.");
+ System.out.println(" GNU Classpath is free software; you can redistribute it and/or modify");
+ System.out.println(" it under the terms of the GNU General Public License as published by");
+ System.out.println(" the Free Software Foundation; either version 2, or (at your option)");
+ System.out.println(" any later version.");
+ System.out.println(" NOTE: Common java naming structure is " +
+ "assumed");
+ System.out.println("");
+ System.out.println("USAGE:");
+ System.out.println("java [java options] Java2xhtml " +
+ "source.java [options file] " +
+ "[output file]");
+ System.out.println("");
+ System.out.println(" - java is the name of the Java interpreter");
+ System.out.println(" - [java options] are the optional options " +
+ "of the Java interpreter");
+ System.out.println(" - Java2xhtml is the name of this " +
+ "application");
+ System.out.println(" - source is a file or the directory to the " +
+ "Java source file(s)");
+ System.out.println(" - [options file] is the optional " +
+ "path of a file with");
+ System.out.println(" a structure like this:");
+ System.out.println(" externalStyleSheetName=file_name" +
+ " (default style.css)");
+ System.out.println(" tabSize=integer (default value is 4)");
+ System.out.println(" extraIndentation=integer " +
+ "(default value is 0)");
+ System.out.println(" lineModulus=integer (default value 5)");
+ System.out.println(" isCodeSnippet=boolean" +
+ " (default false)");
+ System.out.println(" isXHTML_1_1=boolean" +
+ " (default true)");
+ System.out.println(" hasInternalStyleSheet=boolean" +
+ " (default true)");
+ System.out.println(" hasExternalStyleSheet=boolean" +
+ " (default true)");
+ System.out.println(" hasTitle=boolean" +
+ " (default false)");
+ System.out.println(" hasLegend=boolean" +
+ " (default false)");
+ System.out.println(" hasAllBoldSourceCode=boolean" +
+ " (default false)");
+ System.out.println(" hasLineNumbers=boolean" +
+ " (default false)");
+ System.out.println(" hasLineModulusDrawnLines=boolean" +
+ " (default false)");
+ System.out.println(" hasLineModulusCodeBlocks=boolean" +
+ " (default false)");
+ System.out.println(" hasFooter=boolean" +
+ " (default false)");
+ System.out.println(" hasFooterIcons=boolean" +
+ " (default false)");
+ System.out.println(" hasFooterDate=boolean" +
+ " (default true)");
+ System.out.println(" NOTE: filename must end with '.prop'");
+ System.out.println(" Default [options file] is " +
+ "options.prop");
+ System.out.println(" - [output file] is name of the XHTML file " +
+ "that is produced");
+ System.out.println(" Default [output file] is source_java.html");
+ System.out.println("");
+ System.out.println("Output: source.java --> [output file]");
+ System.out.println(" Default Output is ");
+ System.out.println(" source.java --> source_java.html");
+ System.out.println("");
+ System.out.println("Examples of calling the program:");
+ System.out.println(" process one file (say Java2xhtml.java):");
+ System.out.println(" java Java2xhtml Java2xhtml.java");
+ System.out.println(" process one directory (say C:\\HOME):");
+ System.out.println(" java Java2xhtml C:\\HOME");
+ System.out.println(" process one directory (say C:\\HOME with a " +
+ "given options file (options.prop)):");
+ System.out.println(" java Java2xhtml C:\\HOME options.prop");
+ }
+ else
+ {
+ // invoked program correctly, now get command line arguments
+ // get the source file name
+ String sourceName;
+ sourceName = args[0];
+ // make sure that the source file exist and if so HTMLify it
+ File sourceFilePath = new File(sourceName);
+ if (sourceFilePath.exists())
+ {
+ // good pathname so HTMLify it
+ // get the default html options file name
+ String propertiesFileName = "options.prop";
+ // create a unique default html file name,
+ // bubba.java -> bubba_java.html
+ String htmlFileName = sourceName.replace('.', '_') + ".html";
+ if (args.length == 2 || args.length == 3)
+ {
+ if (args[1].endsWith(".prop"))
+ {
+ // get the user supplied html options file name
+ propertiesFileName = args[1];
+ }
+ else
+ {
+ // get the user supplied html outputfile name
+ htmlFileName = args[1];
+ }
+ }
+ if (args.length == 3)
+ {
+ if (args[2].endsWith(".prop"))
+ {
+ // get the user supplied html options file name
+ propertiesFileName = args[2];
+ }
+ else
+ {
+ // get the user supplied html outputfile name
+ htmlFileName = args[2];
+ }
+ }
+ new Java2xhtml(propertiesFileName, sourceFilePath,
+ htmlFileName);
+ }
+ else // source file does not exist, print message and exit normally
+ {
+ System.out.println("The source parameter must be an existent" +
+ " file or directory");
+ System.out.println("Run Java2xHtml without parameters for " +
+ "help");
+ }
+ }
+ }
+
+ // collect various sets of keywords
+ static Collection keywordCollection;
+ static Collection primitiveTypeCollection;
+ static Collection primitiveLiteralCollection;
+ static Collection javadocTagCollection;
+
+ // all these variables are changeable by a options file
+ int extraIndentation = 0;
+ int tabSize = 4;
+ int lineModulus = 5;
+ boolean hasLegend = false;
+ boolean hasLineNumbers = false;
+ boolean hasLineModulusDrawnLines = false;
+ boolean hasLineModulusCodeBlocks = false;
+ boolean hasFooter = false;
+ boolean hasFooterIcons = false;
+ boolean hasFooterDate = true;
+ boolean isCodeSnippet = false;
+ boolean isXHTML_1_1 = true;
+ boolean hasTitle = false;
+ boolean hasAllBoldSourceCode = false;
+ boolean hasInternalStyleSheet = true;
+ boolean hasExternalStyleSheet = true;
+ String externalStyleSheetName = "style.css";
+
+ static
+ {
+ // collection type is Hashset for unique elements and fast retieval
+ String keywordArray[] =
+ {
+ "abstract", "default", "if", "private",
+ "do", "implements", "protected", "throws",
+ "break", "import", "public", "transient",
+ "else", "instanceof", "return", "try",
+ "case", "extends", "throw", "static",
+ "catch", "final", "interface", "while",
+ "volatile", "finally", "super", "synchronized",
+ "class", "native", "switch", "package",
+ "const", "for", "new", "goto",
+ "continue", "this", "assert", "strictfp"
+ };
+ keywordCollection = new HashSet(Arrays.asList(keywordArray));
+ String primitiveTypeArray[] =
+ {
+ "boolean", "char", "byte", "short", "int",
+ "long", "float", "double", "void"
+ };
+ primitiveTypeCollection =
+ new HashSet(Arrays.asList(primitiveTypeArray));
+ String primitiveLiteralArray[]=
+ {
+ "false", "null", "true"
+ };
+ primitiveLiteralCollection =
+ new HashSet(Arrays.asList(primitiveLiteralArray));
+ String javadocTagArray[]=
+ {
+ "see", "author", "version", "param", "return", "exception",
+ "deprecated", "throws", "link", "since", "serial",
+ "serialField","serialData", "beaninfo"
+ };
+ javadocTagCollection = new HashSet(Arrays.asList(javadocTagArray));
+ }
+
+ public Java2xhtml()
+ {
+ }
+
+ // create the various keyword collections
+ // parse the html options file
+ Java2xhtml(String propertiesFileName, File sourceFilePath,
+ String htmlFileName)
+ {
+ // get html properties (use defaults if necessary)
+ File propertiesFilePath = new File (propertiesFileName);
+ if (propertiesFilePath.exists())
+ {
+ // html properies file exist try parsing it
+ try
+ {
+ InputStream propertiesFile =
+ new FileInputStream(propertiesFileName);
+ Properties htmlProperties = new Properties();
+ htmlProperties.load(propertiesFile);
+ propertiesFile.close();
+ setProperties(htmlProperties);
+ }
+ catch (IOException exception)
+ {
+ System.out.println(exception);
+ }
+ }
+ if (sourceFilePath.isFile())
+ {
+ // process the file
+ processFile(sourceFilePath, htmlFileName);
+ }
+ else if (sourceFilePath.isDirectory())
+ {
+ // process a directory
+ File [] sourceFilePathArray = sourceFilePath.listFiles();
+ for (int i = 0; i < sourceFilePathArray.length; i++)
+ {
+ if (((sourceFilePathArray[i]).getName()).endsWith(".java"))
+ {
+ // process each file that ends in .java
+ // create a unique default html file name,
+ // bubba.java -> bubba_java.html
+ htmlFileName = ((sourceFilePathArray[i]).getName()).replace(
+ '.', '_') + ".html";
+ processFile(sourceFilePathArray[i], htmlFileName);
+ }
+ }
+ }
+ }
+
+ public void setProperties(Properties htmlProperties)
+ {
+ hasLegend
+ = Boolean.valueOf(htmlProperties.getProperty("hasLegend",
+ "false")).booleanValue();
+ extraIndentation
+ = Integer.parseInt(htmlProperties.getProperty("extraIndentation", "0"));
+ tabSize
+ = Integer.parseInt(htmlProperties.getProperty("tabSize", "4"));
+ hasLineNumbers
+ = Boolean.valueOf(htmlProperties.getProperty("hasLineNumbers",
+ "false")).booleanValue();
+ lineModulus
+ = Integer.parseInt(htmlProperties.getProperty("lineModulus", "5"));
+ hasLineModulusDrawnLines
+ = Boolean.valueOf(htmlProperties.getProperty("hasLineModulusDrawnLines",
+ "false")).booleanValue();
+ hasLineModulusCodeBlocks
+ = Boolean.valueOf(htmlProperties.getProperty("hasLineModulusCodeBlocks",
+ "false")).booleanValue();
+ hasFooter
+ = Boolean.valueOf(htmlProperties.getProperty("hasFooter",
+ "false")).booleanValue();
+ hasFooterIcons
+ = Boolean.valueOf(htmlProperties.getProperty("hasFooterIcons",
+ "false")).booleanValue();
+ hasFooterDate
+ = Boolean.valueOf(htmlProperties.getProperty("hasFooterDate",
+ "true")).booleanValue();
+ isXHTML_1_1
+ = Boolean.valueOf(htmlProperties.getProperty("isXHTML_1_1",
+ "true")).booleanValue();
+ isCodeSnippet
+ = Boolean.valueOf(htmlProperties.getProperty("isCodeSnippet",
+ "false")).booleanValue();
+ hasTitle
+ = Boolean.valueOf(htmlProperties.getProperty("hasTitle",
+ "false")).booleanValue();
+ hasAllBoldSourceCode
+ = Boolean.valueOf(htmlProperties.getProperty("hasAllBoldSourceCode",
+ "false")).booleanValue();
+ hasInternalStyleSheet
+ = Boolean.valueOf(htmlProperties.getProperty("hasInternalStyleSheet",
+ "true")).booleanValue();
+ hasExternalStyleSheet
+ = Boolean.valueOf(htmlProperties.getProperty("hasExternalStyleSheet",
+ "true")).booleanValue();
+ externalStyleSheetName
+ = htmlProperties.getProperty("externalStyleSheetName", "style.css");
+ }
+
+
+ // read the file and put it into a stringbuffer
+ void processFile(File sourceFilePath, String htmlFileName)
+ {
+ // open the file, copy it to a Stringbuffer , process into an
+ // HTMLified String and convert result into an HTML file
+ try
+ {
+ BufferedReader sourceReader =
+ new BufferedReader(new FileReader(sourceFilePath));
+ StringBuffer bufferIn = new StringBuffer();
+ int readInInt = 0;
+ char presentChar = 0;
+ // copy file into a Stringbuffer
+ while (readInInt != -1) // -1 value means end of stream/file
+ {
+ // put the file into a Stringbuffer
+ readInInt= sourceReader.read();
+ presentChar = ((readInInt >= 0) ? (char) readInInt : 0);
+ bufferIn.append(presentChar);
+ }
+ sourceReader.close();
+ BufferedWriter tempBufferedWriter =
+ new BufferedWriter(new FileWriter(htmlFileName));
+ tempBufferedWriter.write(makeHTML(bufferIn,
+ sourceFilePath.getName()));
+ tempBufferedWriter.close();
+ System.out.println(sourceFilePath.getName() + " --> " +
+ htmlFileName);
+ }
+ catch (IOException exception)
+ {
+ System.out.println(exception);
+ }
+ }
+
+ // constant 'States' java source code can be in
+ public final static class State
+ {
+ public final static State TEXT = new State();
+ public final static State IMPORT_NAME = new State();
+ public final static State PARAM_VARIABLE = new State();
+ public final static State JAVADOC = new State();
+ public final static State PACKAGE_NAME = new State();
+ public final static State DOUBLE_QUOTE = new State();
+ public final static State SINGLE_QUOTE = new State();
+ public final static State TRADITIONAL_COMMENT = new State();
+ public final static State LINE_COMMENT = new State();
+
+ // empty constructor
+ private State()
+ {
+ // empty body
+ }
+ }
+
+ // Convert java source code StringBufffer into colorized (and tab spaced)
+ // HTML String .
+ // Assumes that Java naming convention is used
+ // Uses a very basic state machine design.
+ public String makeHTML(StringBuffer bufferIn, String sourceFileName)
+ {
+ int codeLineNumber = 0;
+ boolean isNewLine = true;
+ boolean isNewBlock = true;
+ int identifierLength = 0;
+ int qualifiedIdentifierLength = 0;
+ int presentIndex = -1;
+ int spaceLength = 0;
+ int saveIndex = 0;
+ char presentChar = 0;
+ State presentState = State.TEXT;
+ StringBuffer bufferOut = new StringBuffer(8192);
+ if (!isCodeSnippet)
+ {
+ bufferOut.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n");
+ if (isXHTML_1_1)
+ {
+ bufferOut.append("<!DOCTYPE html PUBLIC " +
+ "\"-//W3C//DTD XHTML 1.1//EN\"\r\n");
+ bufferOut.append(" \"http://www.w3.org/TR/xhtml11/DTD/" +
+ "xhtml11.dtd\">\r\n");
+ bufferOut.append("<html xmlns=\"http://www.w3.org/1999/xhtml\""+
+ " xml:lang=\"en\">\r\n");
+ }
+ else
+ {
+ bufferOut.append("<!DOCTYPE html PUBLIC " +
+ "\"-//W3C//DTD XHTML 1.0 Strict//EN\"\r\n");
+ bufferOut.append(" \"http://www.w3.org/TR/xhtml1/DTD/" +
+ "xhtml1-strict.dtd\">\r\n");
+ bufferOut.append("<html xmlns=\"http://www.w3.org/1999/xhtml\""+
+ " xml:lang=\"en\" lang=\"en\">\r\n");
+ }
+ bufferOut.append(" <head>\r\n");
+ bufferOut.append(" <title>\r\n");
+ bufferOut.append(" " + sourceFileName + "\r\n");
+ bufferOut.append(" </title>\r\n");
+ bufferOut.append(" <meta name=\"generator\"\r\n");
+ bufferOut.append(" content=\"Java2xhtml 0.9\" />\r\n");
+ if (hasInternalStyleSheet)
+ {
+ bufferOut.append(" <style type=\"text/css\">\r\n");
+ bufferOut.append(" <!-- /* <![CDATA[ */\r\n");
+ bufferOut.append(" ." + sourceCodeStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #000000;\r\n");
+ bufferOut.append(" background-color: #FFFFFF;\r\n");
+ if (hasAllBoldSourceCode)
+ {
+ bufferOut.append(" font-weight: bold;\r\n");
+ }
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + lineNumberStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" font-weight: normal;\r\n");
+ bufferOut.append(" color: #000000;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ if (lineModulus > 0)
+ {
+ bufferOut.append(" ." + modulusLineNumberStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" font-weight: bold;\r\n");
+ bufferOut.append(" color: #000000;\r\n");
+ bufferOut.append(" background-color: ");
+ bufferOut.append("transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ if (hasLineModulusDrawnLines)
+ {
+ bufferOut.append(" .modulusLineStyle\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" text-decoration: ");
+ bufferOut.append("line-through;\r\n");
+ bufferOut.append(" color: #000000;\r\n");
+ bufferOut.append(" background-color: ");
+ bufferOut.append("transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ }
+ if (hasLineModulusCodeBlocks)
+ {
+ bufferOut.append(" .modulusBlockPREStyle\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" margin: 0em\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" .modulusBlockStyle\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #000000;\r\n");
+ bufferOut.append(" background-color: ");
+ bufferOut.append("#CCCCCC;\r\n");
+ bufferOut.append(" }\r\n");
+ }
+ }
+ bufferOut.append(" ." + keywordStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #9900FF;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + methodStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #0000FF;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + variableStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #CC9933;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + singleLineCommentStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #CC3333;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + traditionalCommentStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #FF0000;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + javadocCommentStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #CC0033;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + javadocTagStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #0099CC;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + importNameStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #33CCCC;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + packageNameStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #339999;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + primitiveTypeStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #009900;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + nonPrimitiveTypeStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #009966;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + constructorStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #3300CC;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + constantStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #666666;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + doubleQuoteStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #996633;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" font-style: italic;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + singleQuoteStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #663333;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" font-style: oblique;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + numericLiteralStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #333300;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" ." + primitiveLiteralStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" color: #006600;\r\n");
+ bufferOut.append(" background-color: transparent;\r\n");
+ bufferOut.append(" }\r\n");
+ if (hasFooterIcons)
+ {
+ bufferOut.append(" ." + iconStyle + "\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" border-style: none;\r\n");
+ bufferOut.append(" }\r\n");
+ }
+ if (hasTitle)
+ {
+ bufferOut.append(" #title\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" text-align: center;\r\n");
+ bufferOut.append(" font-size: xx-large;\r\n");
+ bufferOut.append(" }\r\n");
+ }
+ if (hasLegend)
+ {
+ bufferOut.append(" #legendTitle\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" text-align: center;\r\n");
+ bufferOut.append(" font-size: x-large;\r\n");
+ bufferOut.append(" }\r\n");
+ bufferOut.append(" #legend\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" font-family: monospace;\r\n");
+ bufferOut.append(" font-size: large;\r\n");
+ bufferOut.append(" }\r\n");
+ }
+ if (hasFooter)
+ {
+ bufferOut.append(" #footer\r\n");
+ bufferOut.append(" {\r\n");
+ bufferOut.append(" font-size: xx-small;\r\n");
+ bufferOut.append(" }\r\n");
+ }
+ bufferOut.append(" /* ]]> */ -->\r\n");
+ bufferOut.append(" </style>\r\n");
+ }
+
+ if (hasExternalStyleSheet)
+ {
+ bufferOut.append(" <link rel=\"stylesheet\" " +
+ "type=\"text/css\" href=\"" +
+ externalStyleSheetName + "\" />\r\n");
+ }
+ bufferOut.append(" </head>\r\n");
+ bufferOut.append(" <body>\r\n");
+ }
+ if (hasTitle)
+ {
+ bufferOut.append(" <div id=\"title\">\r\n");
+ bufferOut.append(" " + sourceFileName + "\r\n");
+ bufferOut.append(" </div>\r\n");
+ bufferOut.append(" <hr />\r\n");
+ }
+ if (hasLegend)
+ {
+ bufferOut.append(" <div id=\"legendTitle\">\r\n");
+ bufferOut.append(" Legend\r\n");
+ bufferOut.append(" </div>\r\n");
+ bufferOut.append(" <div class=\"" + sourceCodeStyle + "\">\r\n");
+ bufferOut.append(" <div id=\"legend\">\r\n");
+ bufferOut.append(" <span class=\"" + keywordStyle + "\">");
+ bufferOut.append("keyword</span>\r\n");
+ bufferOut.append(" <span class=\"" + methodStyle + "\">");
+ bufferOut.append("method</span>\r\n");
+ bufferOut.append(" <span class=\"" + variableStyle + "\">variable" +
+ "</span>\r\n");
+ bufferOut.append(" <span class=\"" + singleLineCommentStyle + "\">" +
+ "singleLineComment</span>\r\n");
+ bufferOut.append(" <span class=\"" + traditionalCommentStyle + "\">" +
+ "traditionalComment</span>\r\n");
+ bufferOut.append(" <span class=\"" + javadocCommentStyle + "\">" +
+ "javadocComment</span>\r\n");
+ bufferOut.append(" <span class=\"" + javadocTagStyle + "\">javadocTag" +
+ "</span>\r\n");
+ bufferOut.append(" <span class=\"" + importNameStyle + "\">" +
+ "importName</span>\r\n");
+ bufferOut.append(" <span class=\"" + packageNameStyle + "\">" +
+ "packageName</span>\r\n");
+ bufferOut.append(" <span class=\"" + primitiveTypeStyle + "\">" +
+ "primitiveType</span>\r\n");
+ bufferOut.append(" <span class=\"" + nonPrimitiveTypeStyle + "\">" +
+ "nonPrimitiveType</span>\r\n");
+ bufferOut.append(" <span class=\"" + constructorStyle + "\">" +
+ "constructor</span>\r\n");
+ bufferOut.append(" <span class=\"" + constantStyle + "\">" +
+ "constant</span>\r\n");
+ bufferOut.append(" <span class=\"" + doubleQuoteStyle + "\">" +
+ "doubleQuote</span>\r\n");
+ bufferOut.append(" <span class=\"" + singleQuoteStyle + "\">" +
+ "singleQuote</span>\r\n");
+ bufferOut.append(" <span class=\"" + numericLiteralStyle + "\">" +
+ "numericLiteral</span>\r\n");
+ bufferOut.append(" <span class=\"" + primitiveLiteralStyle + "\">" +
+ "primitiveLiteral</span>\r\n");
+ bufferOut.append(" </div>\r\n");
+ bufferOut.append(" </div>\r\n");
+ bufferOut.append(" <hr />\r\n");
+ }
+ bufferOut.append(" <div class=\"" + sourceCodeStyle + "\">\r\n");
+ if (hasLineModulusCodeBlocks)
+ {
+ bufferOut.append("<pre class=\"modulusBlockPREStyle\">\r\n");
+ }
+ else
+ {
+ bufferOut.append("<pre>\r\n");
+ }
+ // process the input Java code Stringbuffer
+ // subtract 2 from the bufferIn.length() to get EOF marker
+ while (presentIndex++ < (bufferIn.length() - 2))
+ {
+ for (int i = 0; i < extraIndentation; i++)
+ {
+ bufferOut.append(" ");
+ }
+ if ((hasLineNumbers || hasLineModulusCodeBlocks) && isNewLine)
+ {
+ // add line numbers if desired
+ // line numbers are 1 - 9999 then rotate line numbers
+ codeLineNumber = (++codeLineNumber)%10000;
+ if ((lineModulus > 0) && hasLineModulusCodeBlocks &&
+ (codeLineNumber%lineModulus == 1))
+ {
+ if (isNewBlock)
+ {
+ if ((State.TRADITIONAL_COMMENT == presentState) ||
+ (State.JAVADOC == presentState))
+ {
+ bufferOut.insert((bufferOut.length() -
+ ("\r\n").length()),
+ "</span>");
+ }
+ bufferOut.append("</pre>\r\n");
+ bufferOut.append(" <div class=");
+ bufferOut.append("\"modulusBlockStyle\">");
+ bufferOut.append("\r\n<pre class=\"");
+ bufferOut.append("modulusBlockPREStyle\">\r\n");
+ if (State.TRADITIONAL_COMMENT == presentState)
+ {
+ bufferOut.append("<span class=" +
+ "\"" + traditionalCommentStyle + "\">");
+ }
+ if (State.JAVADOC == presentState)
+ {
+ bufferOut.append("<span class=" +
+ "\"" + javadocCommentStyle + "\">");
+ }
+ }
+ isNewBlock = !isNewBlock;
+ }
+ // make straight columns of line numbers
+ if (codeLineNumber < 1000)
+ {
+ bufferOut.append(" ");
+ }
+ if (codeLineNumber < 100)
+ {
+ bufferOut.append(" ");
+ }
+ if (codeLineNumber < 10)
+ {
+ bufferOut.append(" ");
+ }
+ bufferOut.append("<a name=\"line.");
+ bufferOut.append(codeLineNumber);
+ bufferOut.append("\">");
+
+ if (hasLineNumbers)
+ {
+ if ((lineModulus > 0) && (codeLineNumber%lineModulus == 0))
+ {
+ bufferOut.append("<span class=" +
+ "\"" + modulusLineNumberStyle + "\">");
+ bufferOut.append(codeLineNumber);
+ bufferOut.append(": </span>");
+ if (hasLineModulusDrawnLines)
+ {
+ // compute spaceLength so a line can be drawn
+ while ((presentIndex != (bufferIn.length() - 1)) &&
+ ((Character.isSpaceChar(
+ bufferIn.charAt(presentIndex))) ||
+ (bufferIn.charAt(presentIndex) == '\t')))
+ {
+ // for each tab, insert tabSize spaces
+ if (bufferIn.charAt(presentIndex) == '\t')
+ {
+ for (int i = 0; i < tabSize; i++)
+ {
+ bufferIn.insert(presentIndex + 1, " ");
+ }
+ presentIndex++;
+ continue;
+ }
+ if (' ' == bufferIn.charAt(presentIndex))
+ {
+ // read a space so place a space
+ bufferOut.append(" ");
+ spaceLength += (" ").length();
+ }
+ else
+ {
+ // a white space character was read
+ bufferOut.append(bufferIn.charAt(
+ presentIndex));
+ ++spaceLength;
+ }
+ presentIndex++;
+ }
+ // check if line is empty
+ // (no printable characters on line)
+ if ((presentIndex == (bufferIn.length() - 1)) ||
+ (Character.isWhitespace(bufferIn.charAt(
+ presentIndex))))
+ {
+ spaceLength = 0;
+ }
+ // draw the line
+ if (spaceLength > 1)
+ {
+ bufferOut.insert((bufferOut.length() -
+ spaceLength), "<span class=" +
+ "\"modulusLineStyle\">");
+ bufferOut.insert((bufferOut.length() -
+ (" ").length()), "</span>");
+ }
+ spaceLength = 0;
+ }
+ }
+ else
+ {
+ // line numbers are in lineNumberColor
+ bufferOut.append("<span class=\"" + lineNumberStyle + "\">");
+ bufferOut.append(codeLineNumber);
+ bufferOut.append(":</span> ");
+ }
+ }
+ isNewLine = false;
+
+ bufferOut.append("</a>");
+ }
+ // a state machine
+ presentChar = bufferIn.charAt(presentIndex);
+ if ((Character.isJavaIdentifierPart(presentChar)) ||
+ ((State.IMPORT_NAME == presentState) && (presentChar == '*')))
+ {
+ // this is an identifier
+ bufferOut.append(presentChar);
+ identifierLength++;
+ continue; // keep adding characters until identifier is done
+ }
+ if (identifierLength > 0)
+ {
+ // identifier
+ qualifiedIdentifierLength =
+ qualifiedIdentifierLength + identifierLength;
+ if (bufferIn.charAt(presentIndex) == '.')
+ {
+ // qualified identifier
+ bufferOut.append(presentChar);
+ qualifiedIdentifierLength++;
+ identifierLength = 0;
+ continue; // keep adding characters to qualified identifier
+ }
+ String identifier =
+ bufferOut.substring(bufferOut.length() -
+ identifierLength);
+ if ((State.PARAM_VARIABLE == presentState))
+ {
+ // any identifier after a param in a javadoc is assumed to
+ // be a variable
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=\"" + variableStyle + "\">");
+ bufferOut.append("</span>");
+ presentState = State.JAVADOC;
+ }
+ else if (State.JAVADOC == presentState)
+ {
+ // in javadoc state
+ if ((javadocTagCollection.contains(identifier)) &&
+ (bufferIn.charAt(presentIndex -
+ (identifierLength + 1)) == '@'))
+ {
+ // identifier is a javadocTag
+ bufferOut.insert(bufferOut.length() - identifierLength,
+ "<span class=\"" + javadocTagStyle + "\">");
+ bufferOut.append("</span>");
+ if (("param").equals(identifier))
+ {
+ // any identifier after a param is assumed to
+ // be a variable, get into a state to do this
+ presentState = State.PARAM_VARIABLE;
+ }
+ }
+ }
+ else if (State.IMPORT_NAME == presentState)
+ {
+ // import identifier
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=\"" + importNameStyle + "\">");
+ bufferOut.append("</span>");
+ presentState = State.TEXT;
+ }
+ else if (State.PACKAGE_NAME == presentState)
+ {
+ // package identifier
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=\"" + packageNameStyle + "\">");
+ bufferOut.append("</span>");
+ presentState = State.TEXT;
+ }
+ else if (State.TEXT == presentState)
+ {
+ if (keywordCollection.contains(identifier))
+ {
+ // identifier is a keyword
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=\"" + keywordStyle + "\">");
+ bufferOut.append("</span>");
+ if (("import").equals(identifier))
+ {
+ // anything after an import in text mode must be
+ // an import name, so enter state to process this
+ presentState = State.IMPORT_NAME;
+ }
+ else if (("package").equals(identifier))
+ {
+ // anything after an package in text mode must be
+ // an package name, so enter state to process this
+ presentState = State.PACKAGE_NAME;
+ }
+ }
+ else if (primitiveTypeCollection.contains(identifier))
+ {
+ // identifier is a primitive type
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=\"" + primitiveTypeStyle + "\">");
+ bufferOut.append("</span>");
+ }
+ else if ((identifier.equals(identifier.toUpperCase())) &&
+ (!(Character.isDigit(identifier.charAt(0)))))
+ {
+ // identifier is a constant
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=\"" + constantStyle + "\">");
+ bufferOut.append("</span>");
+ }
+ else if (Character.isUpperCase(identifier.charAt(0)))
+ {
+ // identifier is a constructor or non-primitive type
+ // eat white space
+ saveIndex = presentIndex;
+ while (Character.isWhitespace(
+ bufferIn.charAt(saveIndex++)))
+ {
+ //empty body
+ }
+ if (bufferIn.charAt(--saveIndex) == '(')
+ { // identifier is a constructor
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=" +
+ "\"" + constructorStyle + "\">");
+ bufferOut.append("</span>");
+ }
+ else
+ {
+ // identifier is a non-primitive type
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=" +
+ "\"" + nonPrimitiveTypeStyle + "\">");
+ bufferOut.append("</span>");
+ }
+ }
+ else if (!(Character.isDigit(identifier.charAt(0)) ||
+ primitiveLiteralCollection.contains(identifier)))
+ {
+ // identifier is a method or a variable
+ // eat white space
+ saveIndex = presentIndex;
+ while (Character.isWhitespace(
+ bufferIn.charAt(saveIndex++)))
+ {
+ // empty body
+ }
+ --saveIndex;
+ // identifier is a method
+ if (bufferIn.charAt(saveIndex) == '(')
+ {
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=\"" + methodStyle + "\">");
+ bufferOut.append("</span>");
+ }
+ else if (bufferIn.charAt(saveIndex) == ',')
+ {
+ // comma seperated variables
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=\"" + variableStyle + "\">");
+ bufferOut.append("</span>");
+ }
+ else
+ {
+ // a variable
+ // take care of cases such as array[index].variable
+ if (bufferIn.charAt(presentIndex -
+ (qualifiedIdentifierLength
+ + 1)) == '.')
+ {
+ qualifiedIdentifierLength++;
+ }
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=\"" + variableStyle + "\">");
+ bufferOut.append("</span>");
+ }
+ }
+ else
+ {
+ if (primitiveLiteralCollection.contains(identifier))
+ {
+ // primitiveLiteral (boolean or null)
+ bufferOut.insert(bufferOut.length() -
+ identifierLength, "<span class=" +
+ "\"" + primitiveLiteralStyle + "\">");
+ bufferOut.append("</span>");
+ }
+ // a numeric literal
+ else
+ {
+ if (((presentIndex -
+ (qualifiedIdentifierLength + 1)) > 0) &&
+ (bufferIn.charAt(presentIndex -
+ (qualifiedIdentifierLength + 1)) == '.'))
+ {
+ qualifiedIdentifierLength++;
+ }
+ bufferOut.insert(bufferOut.length() -
+ qualifiedIdentifierLength,
+ "<span class=" +
+ "\"" + numericLiteralStyle + "\">");
+ bufferOut.append("</span>");
+ }
+ }
+ }
+ qualifiedIdentifierLength = 0;
+ identifierLength = 0;
+ }
+ // process characters NOT in identifiers
+ switch (presentChar)
+ {
+ case '&': //ampersand
+ bufferOut.append("&amp;"); // HTMLify character
+ break;
+ case '<': // less than sign
+ bufferOut.append("&lt;"); // HTMLify character
+ break;
+ case '>': // greater than sign
+ bufferOut.append("&gt;"); // HTMLify character
+ break;
+ case '\"': // double quote
+ bufferOut.append("&quot;"); // HTMLify character
+ if (State.TEXT == presentState)
+ {
+ presentState = State.DOUBLE_QUOTE;
+ bufferOut.insert(bufferOut.length()-("&quot;").length(),
+ "<span class=\"" + doubleQuoteStyle + "\">");
+ }
+ else if (State.DOUBLE_QUOTE == presentState)
+ {
+ presentState = State.TEXT;
+ bufferOut.append("</span>");
+ }
+ break;
+ case '\'': // single quote
+ bufferOut.append("\'");
+ if (State.TEXT == presentState)
+ {
+ presentState = State.SINGLE_QUOTE;
+ bufferOut.insert(bufferOut.length() - ("\'").length(),
+ "<span class=\"" + singleQuoteStyle + "\">");
+ }
+ else if (State.SINGLE_QUOTE == presentState)
+ {
+ presentState = State.TEXT;
+ bufferOut.append("</span>");
+ }
+ break;
+ case '\\': // backslash
+ bufferOut.append("\\");
+ if ((State.DOUBLE_QUOTE == presentState) ||
+ (State.SINGLE_QUOTE == presentState))
+ {
+ // treat as a character escape sequence
+ bufferOut.append(bufferIn.charAt(++presentIndex));
+ }
+ break;
+ case '\t': // tab
+ // replace tabs with tabsize number of spaces
+ for (int i = 0; i < tabSize; i++)
+ {
+ bufferOut.append(' ');
+ }
+ break;
+ case '*': // star
+ bufferOut.append("*");
+ if ((State.TEXT == presentState) &&
+ (bufferIn.charAt(presentIndex - 1) == '/'))
+ {
+ if (((bufferIn.length() - 1) > presentIndex) &&
+ (bufferIn.charAt(presentIndex + 1) == '*'))
+ {
+ presentState = State.JAVADOC;
+ bufferOut.insert(bufferOut.length() -
+ ("/*").length(), "<span class=" +
+ "\"" + javadocCommentStyle + "\">");
+ }
+ else
+ {
+ presentState = State.TRADITIONAL_COMMENT;
+ bufferOut.insert(bufferOut.length() -
+ ("/*").length(), "<span class=" +
+ "\"" + traditionalCommentStyle + "\">");
+ }
+ }
+ break;
+ case '/': // foward slash
+ bufferOut.append("/");
+ if (((State.TRADITIONAL_COMMENT == presentState) ||
+ (State.JAVADOC == presentState)) &&
+ (bufferIn.charAt(presentIndex - 1) == '*'))
+ {
+ bufferOut.append("</span>");
+ presentState = State.TEXT;
+ }
+ if ((State.TEXT == presentState) &&
+ (presentIndex > 0) &&
+ (bufferIn.charAt(presentIndex - 1) == '/'))
+ {
+ bufferOut.insert(bufferOut.length() - ("//").length(),
+ "<span class=" +
+ "\"" + singleLineCommentStyle + "\">");
+ presentState = State.LINE_COMMENT;
+ }
+ break;
+ case '\r': // carriage return
+ // fall through
+ case '\n': // line feed
+ // all HTML lines end in \r\n
+ if ((bufferIn.charAt(presentIndex) == '\r') &&
+ ((bufferIn.length() - 1) > presentIndex) &&
+ (bufferIn.charAt(presentIndex + 1) == '\n'))
+ {
+ ++presentIndex;
+ }
+ // end single line comments
+ if (State.LINE_COMMENT == presentState)
+ {
+ bufferOut.append("</span>");
+ presentState = State.TEXT;
+ }
+ // end of block
+ if ((lineModulus > 0) && hasLineModulusCodeBlocks &&
+ ((codeLineNumber%lineModulus == 0) && !isNewBlock))
+ {
+ // end multi-line spanning states
+ if ((State.TRADITIONAL_COMMENT == presentState) ||
+ (State.JAVADOC == presentState))
+ {
+ bufferOut.append("</span>");
+ }
+ bufferOut.append("\r\n");
+ bufferOut.append("</pre>\r\n");
+ bufferOut.append(" </div>\r\n");
+ bufferOut.append("<pre class=\"");
+ bufferOut.append("modulusBlockPREStyle\">\r\n");
+ // restart multi-line spanning states
+ if (State.TRADITIONAL_COMMENT == presentState)
+ {
+ bufferOut.append("<span class=" +
+ "\"" + traditionalCommentStyle + "\">");
+ }
+ if (State.JAVADOC == presentState)
+ {
+ bufferOut.append("<span class=" +
+ "\"" + javadocCommentStyle + "\">");
+ }
+ }
+ else
+ {
+ // div automatically starts new line
+ bufferOut.append("\r\n");
+ }
+ isNewLine = true;
+ break;
+ case 0: // nul character
+ if ((State.LINE_COMMENT == presentState) &&
+ (presentIndex == (bufferIn.length() - 1)))
+ {
+ bufferOut.append("</span>");
+ }
+ break;
+ default: // everything else
+ bufferOut.append(presentChar);
+ }
+ qualifiedIdentifierLength = 0;
+ }
+ if (presentState == State.LINE_COMMENT) {
+ bufferOut.append("</span>\r\n");
+ }
+
+ bufferOut.append("</pre>\r\n");
+ // end block early if no more source code
+ if ((lineModulus > 0) && hasLineModulusCodeBlocks && !isNewBlock &&
+ (codeLineNumber%lineModulus != 0))
+ {
+ bufferOut.append(" </div>\r\n");
+ }
+ bufferOut.append(" </div>\r\n"); // end div of sourceCodeStyle
+ // if code snippet then don't add ending tags of xhtml page
+ if (!isCodeSnippet)
+ {
+ // if footer mode then add a footer
+ if (hasFooter)
+ {
+ bufferOut.append(" <hr />\r\n");
+ bufferOut.append(" <div id=\"footer\">\r\n");
+ if (hasFooterIcons)
+ {
+ if (hasFooterDate)
+ {
+ bufferOut.append(" <script type=\"text/javaScript\"");
+ bufferOut.append(">\r\n");
+ bufferOut.append(" <!-- // <![CDATA[\r\n");
+ bufferOut.append(" document.write(\"Document last");
+ bufferOut.append(" modified on \"");
+ bufferOut.append(" + document.lastModified + ");
+ bufferOut.append("\"<br />\");\r\n");
+ bufferOut.append(" // ]]> -->\r\n");
+ bufferOut.append(" </script>\r\n");
+ }
+ bufferOut.append(" <a href=\"");
+ bufferOut.append("http://validator.w3.org/check/referer");
+ bufferOut.append("\">\r\n");
+ bufferOut.append(" <img class=\"" + iconStyle + "\" src=\"");
+ bufferOut.append("http://www.w3.org/Icons/");
+ if (isXHTML_1_1)
+ {
+ bufferOut.append("valid-xhtml11\"\r\n");
+ bufferOut.append(" alt=\"Valid XHTML 1.1!\"");
+ }
+ else
+ {
+ bufferOut.append("valid-xhtml10\"\r\n");
+ bufferOut.append(" alt=\"Valid XHTML 1.0!\"");
+ }
+ bufferOut.append(" height=\"31\" ");
+ bufferOut.append("width=\"88\" />\r\n");
+ bufferOut.append(" </a>\r\n");
+ bufferOut.append(" &#160;\r\n");
+ bufferOut.append(" <a href=\"");
+ bufferOut.append("http://jigsaw.w3.org");
+ bufferOut.append("/css-validator/check/referer");
+ bufferOut.append("\">\r\n");
+ bufferOut.append(" <img class=\"" + iconStyle + "\" src=\"");
+ bufferOut.append("http://jigsaw.w3.org/");
+ bufferOut.append("css-validator/images/vcss");
+ bufferOut.append("\"\r\n");
+ bufferOut.append(" alt=\"Valid CSS!\"");
+ bufferOut.append(" height=\"31\" width=\"88\" />\r\n");
+ bufferOut.append(" </a>\r\n");
+ }
+ else
+ {
+ bufferOut.append(" This is a valid\r\n");
+ bufferOut.append(" <a href=\"http://");
+ bufferOut.append("validator.w3.org/check/referer");
+ if (isXHTML_1_1)
+ {
+ bufferOut.append("\">XHTML 1.1</a>\r\n");
+ }
+ else
+ {
+ bufferOut.append("\">XHTML 1.0</a>\r\n");
+ }
+ bufferOut.append(" with\r\n");
+ bufferOut.append(" <a href=\"http://");
+ bufferOut.append("jigsaw.w3.org");
+ bufferOut.append("/css-validator/check/referer");
+ bufferOut.append("\">CSS</a>\r\n");
+ bufferOut.append(" document \r\n");
+ if (hasFooterDate)
+ {
+ bufferOut.append(" <script type=\"text/javaScript\"");
+ bufferOut.append(">\r\n");
+ bufferOut.append(" <!-- // <![CDATA[\r\n");
+ bufferOut.append(" document.write(\"last modified");
+ bufferOut.append(" on \" + document.lastModified);");
+ bufferOut.append("\r\n");
+ bufferOut.append(" // ]]> -->\r\n");
+ bufferOut.append(" </script>\r\n");
+ }
+ }
+ bufferOut.append(" </div>\r\n");
+ }
+ bufferOut.append(" </body>\r\n");
+ bufferOut.append("</html>\r\n");
+ }
+ return bufferOut.toString();
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java
index 2172628..43f31a2 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/javah/ClassWrapper.java
@@ -217,7 +217,18 @@ public class ClassWrapper
MethodNode m = (MethodNode) i.next();
String desc = MethodHelper.getBridgeTarget(m);
if (desc != null)
- bridgeTargets.add(m.name + desc);
+ {
+ String sum = m.name + desc;
+ boolean newTarget = bridgeTargets.add(sum);
+ if (newTarget)
+ {
+ // Bridge target that is new in this class.
+ String cname = this.name;
+ int index = cname.lastIndexOf('/');
+ cname = cname.substring(index + 1);
+ methodNameMap.put(sum, cname + "$" + m.name);
+ }
+ }
}
}
@@ -247,18 +258,7 @@ public class ClassWrapper
String nameToUse;
String sum = m.name + m.desc;
if (bridgeTargets.contains(sum))
- {
- if (methodNameMap.containsKey(sum))
- nameToUse = (String) methodNameMap.get(sum);
- else
- {
- // Bridge target that is new in this class.
- String cname = this.name;
- int index = cname.lastIndexOf('/');
- cname = cname.substring(index + 1);
- nameToUse = cname + "$" + m.name;
- }
- }
+ nameToUse = (String) methodNameMap.get(sum);
else
nameToUse = Keywords.getCxxName(m.name);
methodNameMap.put(sum, nameToUse);
diff --git a/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java b/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
index 7c50899..f2ca90e 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/javah/JniHelper.java
@@ -92,7 +92,7 @@ public class JniHelper
public static String mangle(String name)
{
- StringBuffer result = new StringBuffer();
+ StringBuilder result = new StringBuilder();
for (int i = 0; i < name.length(); ++i)
{
char c = name.charAt(i);
diff --git a/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java b/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
index 6bf3193..524796d 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/native2ascii/Native2ASCII.java
@@ -148,7 +148,7 @@ public class Native2ASCII
String s = rdr.readLine();
if (s == null)
break;
- StringBuffer sb = new StringBuffer(s.length() + 80);
+ StringBuilder sb = new StringBuilder(s.length() + 80);
for (int i = 0; i < s.length(); i++)
{
char c = s.charAt(i);
diff --git a/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java
index 6c6164d..87ade64 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/orbd/PersistentMap.java
@@ -165,7 +165,7 @@ public class PersistentMap
*/
public String getKey(String id, String kind)
{
- StringBuffer b = new StringBuffer(id.length() + 8);
+ StringBuilder b = new StringBuilder(id.length() + 8);
appEscaping(b, id);
b.append('.');
if (kind != null && kind.length() > 0)
@@ -180,7 +180,7 @@ public class PersistentMap
* @param b a buffer to append the contents to.
* @param s a string to append.
*/
- void appEscaping(StringBuffer b, String s)
+ void appEscaping(StringBuilder b, String s)
{
char c;
for (int i = 0; i < s.length(); i++)
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java
index e853a5a..2559467 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/ClassRmicCompiler.java
@@ -330,7 +330,7 @@ public class ClassRmicCompiler
{
Method m = remotemethods[i].meth;
- StringBuffer desc = new StringBuffer();
+ StringBuilder desc = new StringBuilder();
desc.append(getPrettyName(m.getReturnType()) + " ");
desc.append(m.getName() + "(");
@@ -1712,7 +1712,7 @@ public class ClassRmicCompiler
private static String getPrettyName(Class cls)
{
- StringBuffer str = new StringBuffer();
+ StringBuilder str = new StringBuilder();
for (int count = 0;; count++)
{
if (! cls.isArray())
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java
index 64eb2ea..70793cf 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/Generator.java
@@ -53,7 +53,7 @@ public class Generator
+ resourcePath);
BufferedReader r = new BufferedReader(new InputStreamReader(in));
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
String s;
try
@@ -90,7 +90,7 @@ public class Generator
{
BufferedReader r = new BufferedReader(new StringReader(template));
String s;
- StringBuffer b = new StringBuffer(template.length());
+ StringBuilder b = new StringBuilder(template.length());
try
{
Iterator iter;
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java
index 335a0a6..650468d 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/MethodGenerator.java
@@ -93,7 +93,7 @@ public class MethodGenerator implements AbstractMethodGenerator
*/
public String getArgumentList()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Class[] args = method.getParameterTypes();
@@ -115,7 +115,7 @@ public class MethodGenerator implements AbstractMethodGenerator
*/
public String getArgumentNames()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Class[] args = method.getParameterTypes();
@@ -135,7 +135,7 @@ public class MethodGenerator implements AbstractMethodGenerator
*/
public String getThrows()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Class[] args = method.getExceptionTypes();
@@ -239,7 +239,7 @@ public class MethodGenerator implements AbstractMethodGenerator
*/
public String getRda()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Class[] args = method.getParameterTypes();
for (int i = 0; i < args.length; i++)
@@ -263,7 +263,7 @@ public class MethodGenerator implements AbstractMethodGenerator
*/
public String getStubParaWriteStatement()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Class[] args = method.getParameterTypes();
for (int i = 0; i < args.length; i++)
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java
index 48abb8f..b526bbb 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/RmiMethodGenerator.java
@@ -74,7 +74,7 @@ public class RmiMethodGenerator
*/
public String getArgumentList()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Class[] args = method.getParameterTypes();
@@ -96,7 +96,7 @@ public class RmiMethodGenerator
*/
public String getArgumentNames()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Class[] args = method.getParameterTypes();
@@ -116,7 +116,7 @@ public class RmiMethodGenerator
*/
public String getThrows()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Class[] args = method.getExceptionTypes();
@@ -173,7 +173,7 @@ public class RmiMethodGenerator
*/
public String getStaticMethodDeclarations()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Class[] args = method.getParameterTypes();
for (int i = 0; i < args.length; i++)
@@ -201,7 +201,7 @@ public class RmiMethodGenerator
if (args.length==0)
return "NO_ARGS";
- StringBuffer b = new StringBuffer("new Object[] {");
+ StringBuilder b = new StringBuilder("new Object[] {");
for (int i = 0; i < args.length; i++)
{
@@ -246,7 +246,7 @@ public class RmiMethodGenerator
*/
public String getArgListAsClassArray()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Class[] args = method.getParameterTypes();
for (int i = 0; i < args.length; i++)
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java
index a889492..b7ad7f4 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceGiopRmicCompiler.java
@@ -140,7 +140,7 @@ public class SourceGiopRmicCompiler
/**
* Clear data, preparing for the next compilation.
*/
- public void reset()
+ public synchronized void reset()
{
packag = name = implName = stubName = null;
implementedRemotes.clear();
@@ -329,7 +329,7 @@ public class SourceGiopRmicCompiler
* the class to name
* @return the name of class as it should appear in java language
*/
- public String name(Class nameIt)
+ public synchronized String name(Class nameIt)
{
if (nameIt.isArray())
{
@@ -342,7 +342,7 @@ public class SourceGiopRmicCompiler
dimension++;
}
- StringBuffer brackets = new StringBuffer();
+ StringBuilder brackets = new StringBuilder();
for (int i = 0; i < dimension; i++)
{
@@ -388,7 +388,7 @@ public class SourceGiopRmicCompiler
*/
public String getIdList(Collection remotes)
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
// Keep the Ids sorted, ensuring, that the same order will be preserved
// between compilations.
@@ -420,7 +420,7 @@ public class SourceGiopRmicCompiler
String template = getResource("Stub.jav");
// Generate methods.
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Iterator iter = methods.iterator();
while (iter.hasNext())
{
@@ -444,7 +444,7 @@ public class SourceGiopRmicCompiler
*/
public String getAllInterfaces()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Iterator iter = implementedRemotes.iterator();
while (iter.hasNext())
@@ -494,7 +494,7 @@ public class SourceGiopRmicCompiler
iter = sortedMethods.iterator();
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
MethodGenerator prev = null;
@@ -539,7 +539,7 @@ public class SourceGiopRmicCompiler
imp.add("import " + ic + ";\n");
}
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
it = imp.iterator();
while (it.hasNext())
diff --git a/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java b/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java
index 3779c5d..20ab8c1 100644
--- a/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java
+++ b/libjava/classpath/tools/gnu/classpath/tools/rmic/SourceRmicCompiler.java
@@ -56,7 +56,7 @@ public class SourceRmicCompiler extends SourceGiopRmicCompiler
String template = getResource("Stub_12.jav");
// Generate methods.
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Iterator iter = methods.iterator();
while (iter.hasNext())
{
@@ -99,7 +99,7 @@ public class SourceRmicCompiler extends SourceGiopRmicCompiler
*/
public String getStubMethodDeclarations()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Iterator iter = methods.iterator();
@@ -122,7 +122,7 @@ public class SourceRmicCompiler extends SourceGiopRmicCompiler
*/
public String getStubMethodInitializations()
{
- StringBuffer b = new StringBuffer();
+ StringBuilder b = new StringBuilder();
Iterator iter = methods.iterator();
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java
new file mode 100644
index 0000000..d3bb371
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/taglets/AuthorTaglet.java
@@ -0,0 +1,276 @@
+/* gnu.classpath.tools.taglets.AuthorTaglet
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import java.util.Map;
+
+import java.util.regex.Pattern;
+import java.util.regex.Matcher;
+
+import com.sun.tools.doclets.Taglet;
+
+import com.sun.javadoc.Tag;
+
+/**
+ * The default Taglet which handles Author information.
+ *
+ * @author Julian Scheid (julian@sektor37.de)
+ */
+public class AuthorTaglet implements Taglet {
+
+ /**
+ * Enum class which denotes whether and how to replace email
+ * addresses in author tags.
+ */
+ public static class EmailReplacement {
+ private EmailReplacement() {}
+
+ /**
+ * Specifies that email addresses should not be replaced.
+ */
+ public static final EmailReplacement NO_REPLACEMENT = new EmailReplacement();
+
+ /**
+ * Specifies that author tag text matching "Real Name
+ * (user@domain.tld)" is converted to "&lt;a
+ * href="mailto:user@domain.tld"&gt;Real Name&lt;/a&gt;.
+ */
+ public static final EmailReplacement MAILTO_NAME = new EmailReplacement();
+
+ /**
+ * Specifies that author tag text matching "Real Name
+ * (user@domain.tld)" is converted to "Real Name (&lt;a
+ * href="mailto:user@domain.tld"&gt;user@domain.tld&lt;/a&gt;).
+ */
+ public static final EmailReplacement NAME_MAILTO_ADDRESS = new EmailReplacement();
+
+ /**
+ * Specifies that author tag text matching "Real Name
+ * (user@domain.tld)" is converted to "Real Name (user AT
+ * domain DOT tld)", where the "AT" and "DOT" replacement are
+ * specified by AuthorTaglet.emailAtReplacement and
+ * AuthorTaglet.emailDotReplacement.
+ */
+ public static final EmailReplacement NAME_MANGLED_ADDRESS = new EmailReplacement();
+ }
+
+ private static EmailReplacement emailReplacementType = EmailReplacement.NO_REPLACEMENT;
+ private static String atReplacement = " <b>at</b> ";
+ private static String dotReplacement = " <b>dot</b> ";
+
+ private static final String NAME = "author";
+ private static final String SINGLE_HEADER = "Author:";
+ private static final String MULTI_HEADER = "Authors:";
+
+ private static boolean enabled = true;
+
+ /**
+ * Matches <code>.</code> (dot).
+ */
+ private static final Pattern dotPattern = Pattern.compile("[.]");
+
+ /**
+ * Matches <code>@</code> (at sign).
+ */
+ private static final Pattern atPattern = Pattern.compile("[@]");
+
+ /**
+ * Matches <code>Real Name (user@domain.tld)</code>.
+ */
+ private static final Pattern authorEmailPattern
+ = Pattern.compile("^"
+ + "\\s*" // optional whitespace
+ + "(" // group #1 start (real name)
+ + "(?:[^\t\r\n ]|\\()+" // first name
+ + "(?:\\s+(?:[^\t\r\n ]|\\()+)*" // additional names
+ + ")" // group #1 end
+ + "\\s*" // optional whitespace
+ + "[(<]" // opening paren
+ + "\\s*" // optional whitespace
+ + "(" // group #2 start (email address)
+ + "(" // group #3 start (email user)
+ + "[A-z0-9_\\-\\.]+" // username
+ + ")" // group #3 end
+ + "[@]" // at sign
+ + "[A-z0-9_\\-]+(?:[.][A-z0-9_\\-]+)+[A-z]" // domain
+ + ")" // group #2 end
+ + "\\s*" // optional whitespace
+ + "(?:\\)|>)" // closing paren
+ + "$");
+
+ public String getName() {
+ return NAME;
+ }
+
+ public boolean inField() {
+ return true;
+ }
+
+ public boolean inConstructor() {
+ return true;
+ }
+
+ public boolean inMethod() {
+ return true;
+ }
+
+ public boolean inOverview() {
+ return true;
+ }
+
+ public boolean inPackage() {
+ return true;
+ }
+
+ public boolean inType() {
+ return true;
+ }
+
+ public boolean isInlineTag() {
+ return false;
+ }
+
+ public static void register(Map tagletMap) {
+ AuthorTaglet authorTaglet = new AuthorTaglet();
+ tagletMap.put(authorTaglet.getName(), authorTaglet);
+ }
+
+ public String toString(Tag tag) {
+ if (enabled) {
+ return toString(new Tag[] { tag });
+ }
+ else {
+ return null;
+ }
+ }
+
+ public String toString(Tag[] tags) {
+ if (!enabled || tags.length == 0) {
+ return null;
+ }
+ else {
+ boolean haveValidTag = false;
+ for (int i = 0; i < tags.length && !haveValidTag; ++i) {
+ if (tags[i].text().length() > 0) {
+ haveValidTag = true;
+ }
+ }
+
+ if (haveValidTag) {
+ StringBuffer result = new StringBuffer();
+ result.append("<dl class=\"tag list\">");
+ result.append("<dt class=\"tag section header\"><b>");
+ if (tags.length == 1) {
+ result.append(SINGLE_HEADER);
+ }
+ else {
+ result.append(MULTI_HEADER);
+ }
+ result.append("</b></dt>");
+ for (int i = 0; i < tags.length; i++) {
+ result.append("<dd class=\"tag item\">");
+ result.append(replaceEmail(tags[i].text()));
+ result.append("</dd>");
+ }
+ result.append("</dl>");
+ return result.toString();
+ }
+ else {
+ return null;
+ }
+ }
+ }
+
+ /**
+ * Reformat the tag text according to {@link #emailReplacementType}.
+ */
+ private String replaceEmail(String text) {
+
+ if (EmailReplacement.NO_REPLACEMENT == emailReplacementType) {
+ return text;
+ }
+ else {
+ Matcher matcher = authorEmailPattern.matcher(text);
+ if (matcher.matches()) {
+ String realName = matcher.group(1);
+ String emailAddress = matcher.group(2);
+ if (EmailReplacement.MAILTO_NAME == emailReplacementType) {
+ return "<a href=\"mailto:" + emailAddress + "\">" + realName + "</a>";
+ }
+ else if (EmailReplacement.NAME_MAILTO_ADDRESS == emailReplacementType) {
+ return realName + " (<a href=\"mailto:" + emailAddress + "\">" + emailAddress + "</a>)";
+ }
+ else if (EmailReplacement.NAME_MANGLED_ADDRESS == emailReplacementType) {
+ Matcher dotMatcher = dotPattern.matcher(emailAddress);
+ Matcher atMatcher = atPattern.matcher(dotMatcher.replaceAll(dotReplacement));
+ String mangledAddress = atMatcher.replaceAll(atReplacement);
+ return realName + " (" + mangledAddress + ")";
+ }
+ else {
+ // this shouldn't happen
+ return text;
+ }
+ }
+ else {
+ return text;
+ }
+ }
+ }
+
+ /**
+ * Set the email replacement type.
+ */
+ public static void setEmailReplacementType(EmailReplacement emailReplacementType)
+ {
+ if (null == emailReplacementType) {
+ throw new NullPointerException();
+ }
+ AuthorTaglet.emailReplacementType = emailReplacementType;
+ }
+
+ /**
+ * Set the HTML text by which the <code>@</code> (at sign) in email
+ * addresses should be replaced if the email replacement type is
+ * <code>NAME_MANGLED_ADDRESS</code>.
+ */
+ public static void setAtReplacement(String atReplacement)
+ {
+ AuthorTaglet.atReplacement = atReplacement;
+ }
+
+ /**
+ * Set the HTML text by which the <code>.</code> (dot) in email
+ * addresses should be replaced if the email replacement type is
+ * <code>NAME_MANGLED_ADDRESS</code>.
+ */
+ public static void setDotReplacement(String dotReplacement)
+ {
+ AuthorTaglet.dotReplacement = dotReplacement;
+ }
+
+ /**
+ * Enables/disables this taglet.
+ */
+ public static void setTagletEnabled(boolean enabled)
+ {
+ AuthorTaglet.enabled = enabled;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java
new file mode 100644
index 0000000..16ed3d5
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/taglets/CodeTaglet.java
@@ -0,0 +1,84 @@
+/* gnu.classpath.tools.taglets.CodeTaglet
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import java.util.Map;
+
+import com.sun.tools.doclets.Taglet;
+
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.Tag;
+import com.sun.javadoc.FieldDoc;
+import com.sun.javadoc.MemberDoc;
+import com.sun.javadoc.SeeTag;
+
+/**
+ * The default Taglet which shows its contents enclosed in a
+ * <code>code</code> tag.
+ *
+ * @author Julian Scheid (julian@sektor37.de)
+ */
+public class CodeTaglet
+ implements Taglet
+{
+ private static final String NAME = "code";
+
+ public String getName() {
+ return NAME;
+ }
+
+ public boolean inField() {
+ return true;
+ }
+
+ public boolean inConstructor() {
+ return true;
+ }
+
+ public boolean inMethod() {
+ return true;
+ }
+
+ public boolean inOverview() {
+ return true;
+ }
+
+ public boolean inPackage() {
+ return true;
+ }
+
+ public boolean inType() {
+ return true;
+ }
+
+ public boolean isInlineTag() {
+ return true;
+ }
+
+ public String toString(Tag tag) {
+ return "<code>" + tag.text() + "</code>";
+ }
+
+ public String toString(Tag[] tag) {
+ return null;
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java
new file mode 100644
index 0000000..bb0d9a7
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/taglets/CopyrightTaglet.java
@@ -0,0 +1,106 @@
+/* gnu.classpath.tools.taglets.CopyrightTaglet
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import java.util.Map;
+
+import com.sun.tools.doclets.Taglet;
+
+import com.sun.javadoc.Tag;
+
+/**
+ * A simple Taglet which handles Copyright information.
+ */
+public class CopyrightTaglet implements Taglet {
+
+ private static final String NAME = "copyright";
+ private static final String HEADER = "Copyright:";
+
+ public String getName() {
+ return NAME;
+ }
+
+ public boolean inField() {
+ return true;
+ }
+
+ public boolean inConstructor() {
+ return true;
+ }
+
+ public boolean inMethod() {
+ return true;
+ }
+
+ public boolean inOverview() {
+ return true;
+ }
+
+ public boolean inPackage() {
+ return true;
+ }
+
+ public boolean inType() {
+ return true;
+ }
+
+ public boolean isInlineTag() {
+ return false;
+ }
+
+ public static void register(Map tagletMap) {
+ CopyrightTaglet copyrightTaglet = new CopyrightTaglet();
+ tagletMap.put(copyrightTaglet.getName(), copyrightTaglet);
+ }
+
+ public String toString(Tag tag) {
+ return toString(new Tag[] { tag });
+ }
+
+ public String toString(Tag[] tags) {
+ if (tags.length == 0) {
+ return null;
+ }
+ else {
+ boolean haveValidTag = false;
+ for (int i = 0; i < tags.length && !haveValidTag; ++i) {
+ if (tags[i].text().length() > 0) {
+ haveValidTag = true;
+ }
+ }
+
+ if (haveValidTag) {
+ StringBuffer result = new StringBuffer();
+ result.append("<dl>");
+ for (int i = 0; i < tags.length; i++) {
+ if (tags[i].text().length() > 0) {
+ result.append("<dt><i>Copyright &#169; " + tags[i].text() + "</i></dt>");
+ }
+ }
+ result.append("</dl>");
+ return result.toString();
+ }
+ else {
+ return null;
+ }
+ }
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java
new file mode 100644
index 0000000..ba406a6
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/taglets/DeprecatedTaglet.java
@@ -0,0 +1,115 @@
+/* gnu.classpath.tools.taglets.DeprecatedTaglet
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import java.util.Map;
+
+import com.sun.tools.doclets.Taglet;
+
+import com.sun.javadoc.Tag;
+
+/**
+ * The default Taglet which handles deprecated information.
+ *
+ * @author Julian Scheid (julian@sektor37.de)
+ */
+public class DeprecatedTaglet implements Taglet {
+
+ private static final String NAME = "deprecated";
+ private static final String HEADER = "Deprecated:";
+
+ private static boolean enabled = true;
+
+ public String getName() {
+ return NAME;
+ }
+
+ public boolean inField() {
+ return true;
+ }
+
+ public boolean inConstructor() {
+ return true;
+ }
+
+ public boolean inMethod() {
+ return true;
+ }
+
+ public boolean inOverview() {
+ return true;
+ }
+
+ public boolean inPackage() {
+ return true;
+ }
+
+ public boolean inType() {
+ return true;
+ }
+
+ public boolean isInlineTag() {
+ return false;
+ }
+
+ public static void register(Map tagletMap) {
+ DeprecatedTaglet deprecatedTaglet = new DeprecatedTaglet();
+ tagletMap.put(deprecatedTaglet.getName(), deprecatedTaglet);
+ }
+
+ public String toString(Tag tag) {
+ if (enabled) {
+ return toString(new Tag[] { tag });
+ }
+ else {
+ return null;
+ }
+ }
+
+ public String toString(Tag[] tags) {
+ if (!enabled || tags.length == 0) {
+ return null;
+ }
+ else {
+
+ StringBuffer result = new StringBuffer();
+ result.append("<div class=\"classdoc-tag-section-header\">");
+ result.append(HEADER);
+ result.append("</div>");
+ result.append("<dl class=\"classdoc-list\">");
+ for (int i = 0; i < tags.length; i++) {
+ result.append("<dt>");
+ result.append(tags[i].text());
+ result.append("</dt>");
+ }
+ result.append("</dl>");
+ return result.toString();
+ }
+ }
+
+ /**
+ * Enables/disables this taglet.
+ */
+ public static void setTagletEnabled(boolean enabled)
+ {
+ DeprecatedTaglet.enabled = enabled;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java
new file mode 100644
index 0000000..7e18cdc
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/taglets/GenericTaglet.java
@@ -0,0 +1,140 @@
+/* gnu.classpath.tools.taglets.GenericTaglet
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import java.util.Map;
+
+import com.sun.tools.doclets.Taglet;
+
+import com.sun.javadoc.Tag;
+
+/**
+ * A taglet which can be configured at runtime.
+ *
+ * @author Julian Scheid (julian@sektor37.de)
+ */
+public class GenericTaglet implements Taglet {
+
+ private String name = "since";
+ private String header = "Since:";
+
+ private boolean scopeOverview;
+ private boolean scopePackage;
+ private boolean scopeType;
+ private boolean scopeConstructor;
+ private boolean scopeMethod;
+ private boolean scopeField;
+
+ private boolean enabled = true;
+
+ public GenericTaglet(String name,
+ String header,
+ boolean scopeOverview,
+ boolean scopePackage,
+ boolean scopeType,
+ boolean scopeConstructor,
+ boolean scopeMethod,
+ boolean scopeField)
+ {
+ this.name = name;
+ this.header = header;
+ this.scopeOverview = scopeOverview;
+ this.scopePackage = scopePackage;
+ this.scopeType = scopeType;
+ this.scopeConstructor = scopeConstructor;
+ this.scopeMethod = scopeMethod;
+ this.scopeField = scopeField;
+ }
+
+ public String getName() {
+ return name;
+ }
+
+ public boolean inField() {
+ return scopeField;
+ }
+
+ public boolean inConstructor() {
+ return scopeConstructor;
+ }
+
+ public boolean inMethod() {
+ return scopeMethod;
+ }
+
+ public boolean inOverview() {
+ return scopeOverview;
+ }
+
+ public boolean inPackage() {
+ return scopePackage;
+ }
+
+ public boolean inType() {
+ return scopeType;
+ }
+
+ public boolean isInlineTag() {
+ return false;
+ }
+
+ public void register(Map tagletMap) {
+ tagletMap.put(getName(), this);
+ }
+
+ public String toString(Tag tag) {
+ if (enabled) {
+ return toString(new Tag[] { tag });
+ }
+ else {
+ return null;
+ }
+ }
+
+ public String toString(Tag[] tags) {
+ if (!enabled || tags.length == 0) {
+ return null;
+ }
+ else {
+
+ StringBuffer result = new StringBuffer();
+ result.append("<div class=\"classdoc-tag-section-header\">");
+ result.append(header);
+ result.append("</div>");
+ result.append("<dl class=\"classdoc-list\">");
+ for (int i = 0; i < tags.length; i++) {
+ result.append("<dt>");
+ result.append(tags[i].text());
+ result.append("</dt>");
+ }
+ result.append("</dl>");
+ return result.toString();
+ }
+ }
+
+ /**
+ * Enables/disables this taglet.
+ */
+ public void setTagletEnabled(boolean enabled)
+ {
+ this.enabled = enabled;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java
new file mode 100644
index 0000000..2e67d65
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/taglets/GnuExtendedTaglet.java
@@ -0,0 +1,31 @@
+/* gnu.classpath.tools.taglets.GnuExtendedTaglet
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import com.sun.javadoc.Tag;
+import com.sun.tools.doclets.Taglet;
+
+public interface GnuExtendedTaglet
+ extends Taglet
+{
+ public String toString(Tag tag, TagletContext context);
+ public String toString(Tag[] tags, TagletContext context);
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java
new file mode 100644
index 0000000..dac68a8
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/taglets/SinceTaglet.java
@@ -0,0 +1,144 @@
+/* gnu.classpath.tools.taglets.SinceTaglet
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import java.util.Map;
+
+import com.sun.tools.doclets.Taglet;
+
+import com.sun.javadoc.Tag;
+
+import gnu.classpath.tools.doclets.InlineTagRenderer;
+
+/**
+ * The default Taglet which handles since information.
+ *
+ * @author Julian Scheid (julian@sektor37.de)
+ */
+public class SinceTaglet implements GnuExtendedTaglet {
+
+ private static final String NAME = "since";
+ private static final String HEADER = "Since:";
+
+ private static boolean enabled = true;
+
+ private InlineTagRenderer inlineTagRenderer;
+
+ public SinceTaglet(InlineTagRenderer inlineTagRenderer)
+ {
+ this.inlineTagRenderer = inlineTagRenderer;
+ }
+
+ public String getName() {
+ return NAME;
+ }
+
+ public boolean inField() {
+ return true;
+ }
+
+ public boolean inConstructor() {
+ return true;
+ }
+
+ public boolean inMethod() {
+ return true;
+ }
+
+ public boolean inOverview() {
+ return true;
+ }
+
+ public boolean inPackage() {
+ return true;
+ }
+
+ public boolean inType() {
+ return true;
+ }
+
+ public boolean isInlineTag() {
+ return false;
+ }
+
+ public String toString(Tag tag) {
+ // should raise assertion
+ if (enabled) {
+ return toString(new Tag[] { tag });
+ }
+ else {
+ return null;
+ }
+ }
+
+ public String toString(Tag[] tags) {
+ // should raise assertion
+ return toString(tags, null);
+ }
+
+ public String toString(Tag tag, TagletContext context)
+ {
+ return null;
+ }
+
+ public String toString(Tag[] tags, TagletContext context)
+ {
+ if (!enabled || tags.length == 0) {
+ return null;
+ }
+ else {
+ boolean haveValidTag = false;
+ for (int i = 0; i < tags.length && !haveValidTag; ++i) {
+ if (tags[i].text().length() > 0) {
+ haveValidTag = true;
+ }
+ }
+
+ if (haveValidTag) {
+ StringBuffer result = new StringBuffer();
+ result.append("<dl class=\"tag list\">");
+ result.append("<dt class=\"tag section header\"><b>");
+ result.append(HEADER);
+ result.append("</b></dt>");
+ for (int i = 0; i < tags.length; ++i) {
+ if (tags[i].text().length() > 0) {
+ result.append("<dd>");
+ result.append(inlineTagRenderer.renderInlineTags(tags[i].inlineTags(), context));
+ result.append("</dd>");
+ }
+ }
+ result.append("</dl>");
+ return result.toString();
+ }
+ else {
+ return null;
+ }
+ }
+ }
+
+ /**
+ * Enables/disables this taglet.
+ */
+ public static void setTagletEnabled(boolean enabled)
+ {
+ SinceTaglet.enabled = enabled;
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java
new file mode 100644
index 0000000..cf706b6
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/taglets/TagletContext.java
@@ -0,0 +1,23 @@
+package gnu.classpath.tools.taglets;
+
+import com.sun.javadoc.Doc;
+
+public class TagletContext
+{
+ protected Doc doc;
+
+ public TagletContext(Doc doc)
+ {
+ this.doc = doc;
+ }
+
+ public Doc getDoc()
+ {
+ return this.doc;
+ }
+
+ public String toString()
+ {
+ return "TagletContext{doc=" + doc + "}";
+ }
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java
new file mode 100644
index 0000000..0f194ae
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/taglets/ValueTaglet.java
@@ -0,0 +1,113 @@
+/* gnu.classpath.tools.taglets.ValueTaglet
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import java.util.Map;
+
+import com.sun.tools.doclets.Taglet;
+
+import com.sun.javadoc.Doc;
+import com.sun.javadoc.Tag;
+import com.sun.javadoc.FieldDoc;
+import com.sun.javadoc.MemberDoc;
+import com.sun.javadoc.SeeTag;
+
+/**
+ * The default Taglet which shows final static field values.
+ *
+ * @author Julian Scheid (julian@sektor37.de)
+ */
+public class ValueTaglet
+ implements GnuExtendedTaglet
+{
+ private static final String NAME = "value";
+
+ public String getName() {
+ return NAME;
+ }
+
+ public boolean inField() {
+ return true;
+ }
+
+ public boolean inConstructor() {
+ return true;
+ }
+
+ public boolean inMethod() {
+ return true;
+ }
+
+ public boolean inOverview() {
+ return true;
+ }
+
+ public boolean inPackage() {
+ return true;
+ }
+
+ public boolean inType() {
+ return true;
+ }
+
+ public boolean isInlineTag() {
+ return true;
+ }
+
+ public static void register(Map tagletMap) {
+ ValueTaglet valueTaglet = new ValueTaglet();
+ tagletMap.put(valueTaglet.getName(), valueTaglet);
+ }
+
+ public String toString(Tag tag) {
+ return null;
+ }
+
+ public String toString(Tag tag, TagletContext context) {
+ if (0 == tag.inlineTags().length) {
+ if (context.getDoc().isField()) {
+ FieldDoc fieldDoc = (FieldDoc)context.getDoc();
+ if (fieldDoc.isStatic() && fieldDoc.isFinal()) {
+ return fieldDoc.constantValueExpression();
+ }
+ }
+ }
+ else {
+ MemberDoc referencedMember = ((SeeTag)tag).referencedMember();
+ if (null != referencedMember && referencedMember.isField()) {
+ FieldDoc fieldDoc = (FieldDoc)referencedMember;
+ if (fieldDoc.isStatic() && fieldDoc.isFinal()) {
+ return fieldDoc.constantValueExpression();
+ }
+ }
+ }
+ return "";
+ }
+
+ public String toString(Tag[] tags) {
+ return null;
+ }
+
+ public String toString(Tag[] tags, TagletContext context) {
+ return null;
+ }
+
+}
diff --git a/libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java b/libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java
new file mode 100644
index 0000000..e4eddb8
--- /dev/null
+++ b/libjava/classpath/tools/gnu/classpath/tools/taglets/VersionTaglet.java
@@ -0,0 +1,136 @@
+/* gnu.classpath.tools.taglets.VersionTaglet
+ Copyright (C) 2001 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+package gnu.classpath.tools.taglets;
+
+import java.util.Map;
+
+import com.sun.tools.doclets.Taglet;
+
+import com.sun.javadoc.Tag;
+
+/**
+ * The default Taglet which handles version information.
+ *
+ * @author Julian Scheid (julian@sektor37.de)
+ */
+public class VersionTaglet implements Taglet {
+
+ private static final String NAME = "version";
+ private static final String HEADER = "Version:";
+
+ private static boolean enabled = true;
+
+ public String getName() {
+ return NAME;
+ }
+
+ public boolean inField() {
+ return true;
+ }
+
+ public boolean inConstructor() {
+ return true;
+ }
+
+ public boolean inMethod() {
+ return true;
+ }
+
+ public boolean inOverview() {
+ return true;
+ }
+
+ public boolean inPackage() {
+ return true;
+ }
+
+ public boolean inType() {
+ return true;
+ }
+
+ public boolean isInlineTag() {
+ return false;
+ }
+
+ public static void register(Map tagletMap) {
+ VersionTaglet versionTaglet = new VersionTaglet();
+ tagletMap.put(versionTaglet.getName(), versionTaglet);
+ }
+
+ public String toString(Tag tag) {
+ if (enabled) {
+ return toString(new Tag[] { tag });
+ }
+ else {
+ return null;
+ }
+ }
+
+ public String toString(Tag[] tags) {
+ if (!enabled || tags.length == 0) {
+ return null;
+ }
+ else {
+ boolean haveValidTag = false;
+ for (int i = 0; i < tags.length && !haveValidTag; ++i) {
+ if (tags[i].text().length() > 0) {
+ haveValidTag = true;
+ }
+ }
+
+ if (haveValidTag) {
+
+ StringBuffer result = new StringBuffer();
+ result.append("<dl class=\"tag list\">");
+ result.append("</dl>");
+ result.append("<dt class=\"tag section header\"><b>");
+ result.append(HEADER);
+ result.append("</b></dt><dd>");
+ boolean firstEntry = true;
+ for (int i = 0; i < tags.length; i++) {
+ if (tags[i].text().length() > 0) {
+ if (!firstEntry) {
+ result.append(", ");
+ }
+ else {
+ firstEntry = false;
+ }
+ result.append(tags[i].text());
+ }
+ }
+ result.append("</dd>");
+ result.append("</dl>");
+ return result.toString();
+ }
+ else {
+ return null;
+ }
+ }
+ }
+
+ /**
+ * Enables/disables this taglet.
+ */
+ public static void setTagletEnabled(boolean enabled)
+ {
+ VersionTaglet.enabled = enabled;
+ }
+}
diff --git a/libjava/classpath/tools/gorbd.in b/libjava/classpath/tools/gorbd.in
index 40d01ee..dbe33d3 100644
--- a/libjava/classpath/tools/gorbd.in
+++ b/libjava/classpath/tools/gorbd.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.orbd.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.orbd.Main "$@"
diff --git a/libjava/classpath/tools/grmic.in b/libjava/classpath/tools/grmic.in
index 9b73144..299b4b5 100644
--- a/libjava/classpath/tools/grmic.in
+++ b/libjava/classpath/tools/grmic.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.rmic.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.rmic.Main "$@"
diff --git a/libjava/classpath/tools/grmid.in b/libjava/classpath/tools/grmid.in
index 7eefb76..73e5789 100644
--- a/libjava/classpath/tools/grmid.in
+++ b/libjava/classpath/tools/grmid.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.rmid.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.rmid.Main "$@"
diff --git a/libjava/classpath/tools/grmiregistry.in b/libjava/classpath/tools/grmiregistry.in
index d08120a..e3bbb73 100644
--- a/libjava/classpath/tools/grmiregistry.in
+++ b/libjava/classpath/tools/grmiregistry.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.rmiregistry.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.rmiregistry.Main "$@"
diff --git a/libjava/classpath/tools/gserialver.in b/libjava/classpath/tools/gserialver.in
index 85aeea6..24acdeb 100644
--- a/libjava/classpath/tools/gserialver.in
+++ b/libjava/classpath/tools/gserialver.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.serialver.SerialVer "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.serialver.SerialVer "$@"
diff --git a/libjava/classpath/tools/gtnameserv.in b/libjava/classpath/tools/gtnameserv.in
index 4fbcf37..119062d 100644
--- a/libjava/classpath/tools/gtnameserv.in
+++ b/libjava/classpath/tools/gtnameserv.in
@@ -45,4 +45,4 @@ datarootdir=@datarootdir@
tools_dir=@datadir@/@PACKAGE@
tools_cp=${tools_dir}/tools.zip
-exec @VM_BINARY@ -Xbootclasspath/p:"${tools_cp}" gnu.classpath.tools.tnameserv.Main "$@"
+exec @JAVA@ -classpath "${tools_cp}" gnu.classpath.tools.tnameserv.Main "$@"
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties
index 989fde7..17e79c4 100644
--- a/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/common/Messages.properties
@@ -1,5 +1,5 @@
# MessagesBundle.properties -- English language messages
-# Copyright (C) 2006 Free Software Foundation, Inc.
+# Copyright (C) 2006, 2008 Free Software Foundation, Inc.
#
# This file is part of GNU Classpath.
#
@@ -37,4 +37,4 @@
ClasspathToolParser.JArgument=pass argument to the Java runtime
ClasspathToolParser.JName=OPTION
-ClasspathToolParser.VersionFormat={0} (GNU Classpath) {1}\n\nCopyright 2006 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions. There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+ClasspathToolParser.VersionFormat={0} (GNU Classpath) {1}\n\nCopyright 2008 Free Software Foundation, Inc.\nThis is free software; see the source for copying conditions. There is NO\nwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl
new file mode 100644
index 0000000..2b5aec1
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/gjdoc_common.xsl
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- gjdoc_common.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Common templates for HTML generation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:param name="gjdoc.outputfile.info" select="''"/>
+ <xsl:param name="gjdoc.refdocs1" select="''"/>
+ <xsl:param name="gjdoc.pathtoroot" select="''"/>
+ <xsl:param name="gjdoc.xmldoclet.version" select="''"/>
+ <xsl:param name="gjdoc.allowimages" select="0"/>
+ <xsl:param name="gjdoc.option.nonavbar" select="''"/>
+ <xsl:param name="gjdoc.option.noindex" select="''"/>
+ <xsl:param name="gjdoc.option.notree" select="''"/>
+ <xsl:param name="gjdoc.option.nohelp" select="''"/>
+ <xsl:param name="gjdoc.option.nocomment" select="''"/>
+ <xsl:param name="gjdoc.option.splitindex" select="''"/>
+ <xsl:param name="gjdoc.option.linksource" select="''"/>
+ <xsl:param name="gjdoc.option.windowtitle" select="''"/>
+ <xsl:param name="gjdoc.option.helpfile" select="''"/>
+ <xsl:param name="gjdoc.option.stylesheetfile" select="''"/>
+ <xsl:param name="gjdoc.option.header" select="''"/>
+ <xsl:param name="gjdoc.option.footer" select="''"/>
+ <xsl:param name="gjdoc.option.bottom" select="''"/>
+ <xsl:param name="gjdoc.option.doctitle" select="''"/>
+ <xsl:param name="gjdoc.option.nodeprecatedlist" select="''"/>
+ <xsl:param name="gjdoc.option.uses" select="''"/>
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl
new file mode 100644
index 0000000..fa78cb3
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/about.xsl
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- about.xsl
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the class descriptor files for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="html"
+ encoding="utf-8"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <xsl:call-template name="include_common"/>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="'Help'"/>
+ </xsl:call-template>
+ </head>
+ <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded()">
+
+ <div class="pagebody">
+
+ <!-- Top Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_about" select="0"/>
+ <xsl:with-param name="p_curr_about" select="1"/>
+ <xsl:with-param name="p_top" select="1"/>
+ </xsl:call-template>
+
+ <h1 class="classdoc-title">About this API documentation</h1>
+
+ <div class="footer">
+ <xsl:text>Generated on</xsl:text><xsl:value-of select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:created"/><xsl:text> by </xsl:text><a href="http://www.gnu.org/software/cp-tools" target="cptoolsinfo"><xsl:text>GNU Classpath Tools</xsl:text></a><xsl:text> (Gjdoc XmlDoclet </xsl:text><xsl:value-of select="$gjdoc.xmldoclet.version"/><xsl:text>).</xsl:text>
+ </div>
+
+ <!-- Bottom Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_about" select="0"/>
+ <xsl:with-param name="p_curr_about" select="1"/>
+ <xsl:with-param name="p_top" select="0"/>
+ </xsl:call-template>
+ </div>
+ </body>
+ </html>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl
new file mode 100644
index 0000000..8739d19
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allclasses.xsl
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- allclasses.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the allclasses.html file for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <title>
+ <xsl:value-of select="concat(/gjdoc:rootdoc/gjdoc:title, ' - All Classes')"/>
+ </title>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body onload="secondaryPageLoaded('classes');" class="menu allclasses">
+ <h3 class="menu-title">All Classes</h3>
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@name">
+ <xsl:sort select="." order="ascending"/>
+ <xsl:variable name="v_url" select="concat(translate(../gjdoc:containingPackage/@name,'.','/'), '/', ../@name, '.html')"/>
+ <a href="{$v_url}" target="content" class="menu allclasses">
+ <xsl:value-of select="."/>
+ </a>
+ <br/>
+ </xsl:for-each>
+ </body>
+ </html>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl
new file mode 100644
index 0000000..d4449ef
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/allpackages.xsl
@@ -0,0 +1,78 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- allpackages.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the allpackages.html file for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <title>
+ <xsl:if test="document('index.xml',/)/gjdoc:rootdoc/gjdoc:title">
+ <xsl:value-of select="document('index.xml',/)/gjdoc:rootdoc/gjdoc:title"/>
+ <xsl:text> - </xsl:text>
+ </xsl:if>
+ <xsl:text>Packages</xsl:text>
+ <xsl:value-of select="@name"/>
+ </title>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body class="menu allpackages">
+ <h3 class="menu-title">
+ <a href="index_noframes.html" target="content">
+ <xsl:choose>
+ <xsl:when test="document('index.xml',/)/gjdoc:rootdoc/gjdoc:title">
+ <xsl:value-of select="document('index.xml',/)/gjdoc:rootdoc/gjdoc:title"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Packages</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a>
+ </h3>
+ <a href="allclasses.html" target="classes" class="menu allpackages">All Classes</a><br/><br/>
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:specifiedpackage/@name">
+ <xsl:sort select="." order="ascending"/>
+ <a href="{concat(translate(., '.','/'), '/classes.html')}" target="classes" class="menu allpackages">
+ <xsl:value-of select="."/>
+ </a>
+ <br/>
+ </xsl:for-each>
+ </body>
+ </html>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl
new file mode 100644
index 0000000..5aa915c
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex.xsl
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- alphaindex.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the alphaindex.html file for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+
+ <html>
+ <head>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="'Alphabetical Index'"/>
+ </xsl:call-template>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+
+ <!-- Top Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="0"/>
+ <xsl:with-param name="p_curr_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="1"/>
+ </xsl:call-template>
+
+ <div class="pagebody">
+ <h1 class="classdoc-title">
+ Alphabetical Index
+ </h1>
+
+ <div class="index-categories">
+ <xsl:for-each select="document('alphaindex.xml',/)/gjdoc:alphaindex/gjdoc:category">
+ <xsl:choose>
+ <xsl:when test="@letter=$gjdoc.outputfile.info">
+ <span class="index-category-current"><xsl:value-of select="@letter"/></span>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{concat('#category_', @letter)}" class="index-category-link"><xsl:value-of select="@letter"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </div>
+
+ <xsl:for-each select="document('alphaindex.xml',/)/gjdoc:alphaindex/gjdoc:category">
+ <a name="{concat('category_', @letter)}" class="classdoc"><h3 class="ignore"> </h3></a>
+ <h2><xsl:value-of select="@letter"/></h2>
+ <xsl:call-template name="output_alphaindex_category"/>
+ </xsl:for-each>
+
+ <!-- Bottom Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="0"/>
+ <xsl:with-param name="p_curr_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="0"/>
+ </xsl:call-template>
+ </div>
+ </body>
+ </html>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl
new file mode 100644
index 0000000..e184738
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/alphaindex_chunked.xsl
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- alphaindex.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the alphaindex.html file for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+
+ <html>
+ <head>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="concat('Alphabetical Index: ', $gjdoc.outputfile.info)"/>
+ </xsl:call-template>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+ <div class="pagebody">
+ <!-- Top Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="0"/>
+ <xsl:with-param name="p_curr_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="1"/>
+ </xsl:call-template>
+
+ <h1 class="classdoc-title">
+ Alphabetical Index
+ <xsl:if test="$gjdoc.outputfile.info">
+ -
+ <xsl:value-of select="$gjdoc.outputfile.info"/>
+ </xsl:if>
+ </h1>
+
+ <div class="index-categories">
+ <xsl:for-each select="document('alphaindex.xml',/)/gjdoc:alphaindex/gjdoc:category">
+ <xsl:choose>
+ <xsl:when test="@letter=$gjdoc.outputfile.info">
+ <span class="index-category-current"><xsl:value-of select="@letter"/></span>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{concat('alphaindex_', @letter, '.html') class="index-category-link"}"><xsl:value-of select="@letter"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </div>
+
+ <xsl:if test="$gjdoc.outputfile.info">
+ <xsl:for-each select="document('alphaindex.xml',/)/gjdoc:alphaindex/gjdoc:category[@letter=$gjdoc.outputfile.info]">
+ <h2><xsl:value-of select="@letter"/></h2>
+ <xsl:call-template name="output_alphaindex_category"/>
+ </xsl:for-each>
+
+ </xsl:if>
+
+ <!-- Bottom Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="0"/>
+ <xsl:with-param name="p_curr_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="0"/>
+ </xsl:call-template>
+ </div>
+ </body>
+ </html>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl
new file mode 100644
index 0000000..a6405e4
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-source.xsl
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- classdoc-source.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Outputs an HTML file showing the source code for the class
+ designated by $gjdoc.outputfile.info.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="html"
+ encoding="utf-8"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+ <xsl:for-each select="document(concat($gjdoc.outputfile.info, '.xml'),/gjdoc:rootdoc)/gjdoc:classdoc/gjdoc:source">
+ <html>
+ <head>
+ <xsl:call-template name="include_common"/>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="concat(ancestor::gjdoc:classdoc/@name, '.java')"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <xsl:copy-of select="."/>
+ </body>
+ </html>
+ </xsl:for-each>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl
new file mode 100644
index 0000000..17f9b3f
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc-uses.xsl
@@ -0,0 +1,169 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- classdoc-uses.xsl
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Outputs an HTML file showing the source code for the class
+ designated by $gjdoc.outputfile.info.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="html"
+ encoding="utf-8"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="gjdoc:referencing-package">
+ <h2 class="classdoc-header">
+ Uses in package
+ <xsl:value-of select="@name"/>
+ </h2>
+ <xsl:apply-templates/>
+ </xsl:template>
+
+ <xsl:template match="gjdoc:user">
+ <dt>
+ <xsl:choose>
+ <xsl:when test="@field">
+ <a href="{concat($gjdoc.pathtoroot, translate(ancestor::gjdoc:referencing-package/@name, '.', '/'), '/', @class, '.html#', @field)}">
+ <xsl:value-of select="concat(@class, '.', @field)"/>
+ </a>
+ </xsl:when>
+ <xsl:when test="@method">
+ <a href="{concat($gjdoc.pathtoroot, translate(ancestor::gjdoc:referencing-package/@name, '.', '/'), '/', @class, '.html#', @method, @signature)}">
+ <xsl:value-of select="concat(@class, '.', @method, @flatSignature)"/>
+ </a>
+ </xsl:when>
+ <xsl:when test="@class">
+ <a href="{concat($gjdoc.pathtoroot, translate(ancestor::gjdoc:referencing-package/@name, '.', '/'), '/', @class, '.html')}">
+ <xsl:value-of select="@class"/>
+ </a>
+ </xsl:when>
+ </xsl:choose>
+ </dt>
+ </xsl:template>
+
+ <xsl:template match="gjdoc:usage-type">
+
+ <h3 class="classdoc-header">
+ <xsl:variable name="v_qualifiedtypename"
+ select="ancestor::gjdoc:classdoc/@qualifiedtypename"/>
+ <xsl:variable name="v_packagename"
+ select="../@name"/>
+ <xsl:choose>
+ <xsl:when test="@id='class-derived-from'">
+ <xsl:text>Classes in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> derived from </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>
+ </xsl:when>
+ <xsl:when test="@id='field-of-type'">
+ <xsl:text>Fields in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> of type </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>
+ </xsl:when>
+ <xsl:when test="@id='method-with-return-type'">
+ <xsl:text>Methods in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> returning </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>
+ </xsl:when>
+ <xsl:when test="@id='method-with-parameter-type'">
+ <xsl:text>Methods in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> accepting parameters of type </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>
+ </xsl:when>
+ <xsl:when test="@id='method-with-thrown-type'">
+ <xsl:text>Methods in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> throwing </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>
+ </xsl:when>
+ <xsl:when test="@id='constructor-with-parameter-type'">
+ <xsl:text>Constructors in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> accepting parameters of type </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>
+ </xsl:when>
+ <xsl:when test="@id='constructor-with-thrown-type'">
+ <xsl:text>Constructors in </xsl:text><xsl:value-of select="$v_packagename"/><xsl:text> throwing </xsl:text><xsl:value-of select="$v_qualifiedtypename"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Unknown ID </xsl:text><xsl:value-of select="@id"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h3>
+ <dl>
+ <xsl:apply-templates/>
+ </dl>
+ </xsl:template>
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <xsl:call-template name="include_common"/>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="concat(ancestor::gjdoc:classdoc/@name, ' Class Usage')"/>
+ </xsl:call-template>
+ </head>
+ <body>
+ <div class="pagebody">
+
+ <!-- Top Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="1"/>
+ <xsl:with-param name="p_show_package_tree" select="1"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="1"/>
+ <xsl:with-param name="p_show_source" select="concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
+ <xsl:with-param name="p_show_class" select="concat($gjdoc.pathtoroot, translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
+ <xsl:with-param name="p_curr_uses" select="1"/>
+ </xsl:call-template>
+
+ <xsl:for-each select="document(concat($gjdoc.outputfile.info, '.xml'),/gjdoc:rootdoc)/gjdoc:classdoc/gjdoc:references">
+
+ <h1 class="classdoc-header">
+ Uses of class
+ <xsl:value-of select="ancestor::gjdoc:classdoc/@qualifiedtypename"/>
+ <xsl:apply-templates/>
+ </h1>
+ </xsl:for-each>
+
+ <!-- Bottom Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="1"/>
+ <xsl:with-param name="p_show_package_tree" select="1"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="0"/>
+ <xsl:with-param name="p_show_source" select="concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
+ <xsl:with-param name="p_show_class" select="concat($gjdoc.pathtoroot, translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
+ <xsl:with-param name="p_curr_uses" select="1"/>
+ </xsl:call-template>
+
+ </div>
+ </body>
+ </html>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl
new file mode 100644
index 0000000..e54e5fb
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/classdoc.xsl
@@ -0,0 +1,1070 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- classdoc.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the class descriptor files for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="html"
+ encoding="utf-8"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="gjdoc:tag[attribute::kind='@see'][attribute::name='@link']">
+ <xsl:call-template name="output_link_tag"/>
+ </xsl:template>
+
+ <xsl:template mode="pre" match="*">
+ <xsl:choose>
+ <xsl:when test="'pre'=local-name(.)">
+ <xsl:apply-templates mode="pre"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template mode="pre" match="text()[position()=last()]">
+ <xsl:call-template name="strip_trailing_ws">
+ <xsl:with-param name="p_content" select="."/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template name="strip_trailing_ws">
+ <xsl:param name="p_content"/>
+
+ <xsl:if test="normalize-space($p_content)!=''">
+ <xsl:choose>
+ <xsl:when test="normalize-space(substring($p_content, string-length($p_content), 1))=''">
+ <xsl:call-template name="strip_trailing_ws">
+ <xsl:with-param name="p_content">
+ <xsl:value-of select="substring($p_content, 1, string-length($p_content)-1)"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="$p_content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template match="*">
+ <xsl:element name="{name()}">
+ <xsl:for-each select="attribute::*">
+ <xsl:attribute name="{name()}">
+ <xsl:value-of select="."/>
+ </xsl:attribute>
+ </xsl:for-each>
+ <xsl:choose>
+ <xsl:when test="name()='pre'">
+ <xsl:apply-templates select="." mode="pre"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-templates/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:element>
+ </xsl:template>
+
+ <xsl:template match="/">
+
+ <xsl:for-each select="document(concat($gjdoc.outputfile.info, '.xml'),/gjdoc:rootdoc)/gjdoc:classdoc">
+ <xsl:call-template name="create_classdoc"/>
+ </xsl:for-each>
+
+ </xsl:template>
+
+ <!-- For every classdoc node found in the source XML, create a corresponding -->
+ <!-- class rootdoc HTML file. -->
+
+ <xsl:template name="create_classdoc">
+
+ <xsl:variable name="v_sub_xml_filename">
+ <xsl:value-of select="concat(@qualifiedtypename,'.xml')"/>
+ </xsl:variable>
+
+ <html>
+ <head>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="@name"/>
+ </xsl:call-template>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+
+ <div class="pagebody">
+
+ <xsl:call-template name="classdoc_header"/>
+ <xsl:call-template name="classdoc_all_field_summary">
+ <xsl:with-param name="v_sub_xml_filename">
+ <xsl:value-of select="$v_sub_xml_filename"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="classdoc_all_constructor_summary">
+ <xsl:with-param name="v_sub_xml_filename">
+ <xsl:value-of select="$v_sub_xml_filename"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:call-template name="classdoc_all_method_summary">
+ <xsl:with-param name="v_sub_xml_filename">
+ <xsl:value-of select="$v_sub_xml_filename"/>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="gjdoc:fielddoc">
+ <h1 class="classdoc-header">Field Details</h1>
+
+ <xsl:for-each select="gjdoc:fielddoc">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="classdoc_field_details"/>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:constructordoc">
+ <h1 class="classdoc-header">Constructor Details</h1>
+
+ <xsl:for-each select="gjdoc:constructordoc">
+ <xsl:sort select="gjdoc:signature/@full" order="ascending"/>
+ <xsl:call-template name="classdoc_method_details"/>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:methoddoc">
+ <h1 class="classdoc-header">Method Details</h1>
+
+ <xsl:for-each select="gjdoc:methoddoc">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:sort select="gjdoc:signature/@full" order="ascending"/>
+ <xsl:call-template name="classdoc_method_details"/>
+ </xsl:for-each>
+ </xsl:if>
+
+ <!-- Bottom Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="1"/>
+ <xsl:with-param name="p_show_package_tree" select="1"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="0"/>
+ <xsl:with-param name="p_show_source" select="concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
+ <xsl:with-param name="p_show_use" select="concat($gjdoc.pathtoroot, 'class-use/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
+ <xsl:with-param name="p_curr_class" select="1"/>
+ </xsl:call-template>
+
+ </div>
+ </body>
+ </html>
+ </xsl:template>
+
+ <!-- Output header for Class documentation -->
+
+ <xsl:template name="classdoc_header">
+
+ <!-- Top Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="1"/>
+ <xsl:with-param name="p_show_package_tree" select="1"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="1"/>
+ <xsl:with-param name="p_show_source" select="concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
+ <xsl:with-param name="p_show_use" select="concat($gjdoc.pathtoroot, 'class-use/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
+ <xsl:with-param name="p_curr_class" select="1"/>
+ </xsl:call-template>
+
+ <div class="classdoc-head">
+
+ <div class="classdoc-head-packagename classdoc-subtitle">
+ <xsl:value-of select="gjdoc:containingPackage/@name"/>
+ </div>
+
+ <h1 class="classdoc-head-classname classdoc-title">
+ <xsl:choose>
+ <xsl:when test="gjdoc:isInterface">
+ <xsl:text>Interface </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>Class </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:value-of select="@name"/>
+ </h1>
+
+ </div>
+
+ <xsl:if test="gjdoc:isClass">
+ <xsl:call-template name="classdoc_heritage_tree"/>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:containingClass">
+ <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>
+ <b>Enclosing Class:</b><br/>
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_name" select="gjdoc:containingClass/@typename"/>
+ <xsl:with-param name="p_qualifiedname" select="gjdoc:containingClass/@qualifiedtypename"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:implements">
+ <p/>
+ <b>
+ <xsl:choose>
+ <xsl:when test="gjdoc:isInterface">
+ <xsl:text>All Superinterfaces:</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>All Implemented Interfaces:</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </b>
+ <br/>
+ <xsl:for-each select="gjdoc:implements|gjdoc:superimplements">
+ <xsl:sort select="@qualifiedtypename" order="ascending"/>
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_name" select="@typename"/>
+ <xsl:with-param name="p_qualifiedname" select="@qualifiedtypename"/>
+ </xsl:call-template>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ <p/>
+
+ <xsl:if test="gjdoc:isInterface">
+ <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>
+ <xsl:variable name="v_implementors" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[child::gjdoc:isInterface]/gjdoc:implements[attribute::qualifiedtypename=$v_qualifiedtypename]"/>
+ <xsl:if test="$v_implementors">
+ <b>All Known Direct Subinterfaces:</b><br/>
+ <xsl:for-each select="$v_implementors">
+ <xsl:sort select="../@qualifiedtypename" order="ascending"/>
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_name" select="../@name"/>
+ <xsl:with-param name="p_qualifiedname" select="../@qualifiedtypename"/>
+ </xsl:call-template>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:isInterface">
+ <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>
+ <xsl:variable name="v_implementors" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[child::gjdoc:isClass]/gjdoc:implements[attribute::qualifiedtypename=$v_qualifiedtypename]"/>
+ <xsl:if test="$v_implementors">
+ <b>Known Implementing Classes:</b><br/>
+ <xsl:for-each select="$v_implementors">
+ <xsl:sort select="../@qualifiedtypename" order="ascending"/>
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_name" select="../@name"/>
+ <xsl:with-param name="p_qualifiedname" select="../@qualifiedtypename"/>
+ </xsl:call-template>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:isClass">
+ <xsl:variable name="v_qualifiedtypename" select="attribute::qualifiedtypename"/>
+ <xsl:variable name="v_implementors" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[not(child::gjdoc:isInterface)]/gjdoc:superclass[attribute::qualifiedtypename=$v_qualifiedtypename]"/>
+ <xsl:if test="$v_implementors">
+ <b>Known Direct Subclasses:</b><br/>
+ <xsl:for-each select="$v_implementors">
+ <xsl:sort select="../@qualifiedtypename" order="ascending"/>
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_name" select="../@name"/>
+ <xsl:with-param name="p_qualifiedname" select="../@qualifiedtypename"/>
+ </xsl:call-template>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:if>
+ </xsl:if>
+
+ <hr/>
+
+ <div class="classdoc-prototype">
+
+ <!-- 'public final class Byte' -->
+
+ <xsl:value-of select="gjdoc:access/@scope"/><xsl:text> </xsl:text>
+ <xsl:if test="gjdoc:isStatic"><xsl:text>static </xsl:text></xsl:if>
+ <xsl:if test="gjdoc:isFinal"><xsl:text>final </xsl:text></xsl:if>
+ <xsl:choose>
+ <xsl:when test="gjdoc:isInterface">
+ <xsl:text>interface </xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="gjdoc:isAbstract"><xsl:text>abstract </xsl:text></xsl:if>
+ <xsl:text>class </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:call-template name="link_to_class_source"/><br/>
+
+ <!-- 'extends Number' -->
+
+ <xsl:if test="gjdoc:isClass and @qualifiedtypename!='java.lang.Object'">
+ <xsl:text>extends </xsl:text>
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_qualifiedname">
+ <xsl:value-of select="gjdoc:superclass/@qualifiedtypename"/>
+ </xsl:with-param>
+ <xsl:with-param name="p_name">
+ <xsl:value-of select="gjdoc:superclass/@typename"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <br/>
+ </xsl:if>
+
+ <!-- 'implements Comparable' -->
+
+ <xsl:if test="gjdoc:implements">
+ <xsl:text>implements </xsl:text>
+ </xsl:if>
+ <xsl:for-each select="gjdoc:implements">
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_qualifiedname">
+ <xsl:value-of select="@qualifiedtypename"/>
+ </xsl:with-param>
+ <xsl:with-param name="p_name">
+ <xsl:value-of select="@typename"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+
+ </div>
+
+ <!-- Documentation -->
+
+ <p/>
+
+ <xsl:if test="gjdoc:inlineTags">
+ <div class="classdoc-class-comment-body">
+ <xsl:for-each select="gjdoc:inlineTags/node()">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+
+ <xsl:call-template name="output_see_tags"/>
+ <xsl:call-template name="output_taglet_tags"/>
+
+ </xsl:template>
+
+ <xsl:template name="output_taglet_tags">
+
+ <xsl:for-each select="gjdoc:tags/gjdoc:tag">
+ <xsl:choose>
+ <xsl:when test="@name='@deprecated'">
+ <div class="classdoc-tag-section-header">
+ <xsl:value-of select="'Deprecated:'"/>
+ </div>
+ <dl class="classdoc-list">
+ <xsl:for-each select="gjdoc:inlineTags">
+ <xsl:apply-templates/>
+ </xsl:for-each>
+ </dl>
+ </xsl:when>
+ <xsl:when test="@taglet-generated">
+ <xsl:copy-of select="./*"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:for-each>
+
+ </xsl:template>
+
+ <!-- Output summary of all fields in this class -->
+
+ <xsl:template name="classdoc_all_field_summary">
+
+ <xsl:if test=".//gjdoc:fielddoc">
+
+ <table border="1" cellspacing="0" class="classdoc-table">
+ <tr><td class="section-header" colspan="2"><div class="section-header">Field Summary</div></td></tr>
+ <xsl:for-each select="gjdoc:fielddoc">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="classdoc_field_summary_tr"/>
+ </xsl:for-each>
+ </table>
+
+ <xsl:for-each select="gjdoc:superclass">
+ <xsl:call-template name="output_superclass_fields"/>
+ </xsl:for-each>
+ </xsl:if>
+
+ </xsl:template>
+
+ <!-- Output summary of all methods in this class -->
+
+ <xsl:template name="classdoc_all_method_summary">
+
+ <xsl:if test=".//gjdoc:methoddoc">
+ <table border="1" cellspacing="0" class="classdoc-table">
+ <tr><td class="section-header" colspan="2"><div class="section-header">Method Summary</div></td></tr>
+ <xsl:for-each select="gjdoc:methoddoc">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="classdoc_method_summary_tr"/>
+ </xsl:for-each>
+ </table>
+
+ <xsl:for-each select="gjdoc:superclass">
+ <xsl:call-template name="output_superclass_methods"/>
+ </xsl:for-each>
+ </xsl:if>
+
+ </xsl:template>
+
+ <!-- Output summary of all constructors in this class -->
+
+ <xsl:template name="classdoc_all_constructor_summary">
+
+ <xsl:if test=".//gjdoc:constructordoc">
+ <!--
+ <h1 class="classdoc-header">Constructor Summary</h1>
+-->
+
+ <table class="classdoc-table">
+ <tr><td class="section-header" colspan="2"><div class="section-header">Constructor Summary</div></td></tr>
+ <xsl:for-each select="gjdoc:constructordoc">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="classdoc_method_summary_tr"/>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ </xsl:template>
+
+ <!-- Output summary of a single field -->
+
+ <xsl:template name="classdoc_field_summary_tr">
+
+ <tr valign="top">
+
+ <!-- Left table cell: Modifiers and Return Type -->
+
+ <td valign="top" class="member-summary field modifiers">
+ <code class="member-summary field modifiers">
+ <xsl:call-template name="output_modifiers_summary"/>
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_name">
+ <xsl:value-of select="gjdoc:type/@typename"/>
+ </xsl:with-param>
+ <xsl:with-param name="p_qualifiedname">
+ <xsl:value-of select="gjdoc:type/@qualifiedtypename"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:value-of select="gjdoc:type/@dimension"/>
+ </code>
+ </td>
+
+ <!-- Right table cell: name and short description -->
+
+ <td class="member-summary field name">
+ <!-- Method signature -->
+
+ <!-- Link to field definition -->
+
+ <code class="member-summary field name">
+ <a href="{concat('#',@name)}" class="field name"><xsl:value-of select="@name"/></a>
+ </code>
+
+ <!-- Brief description of field -->
+
+ <blockquote class="member-summary field comment">
+ <xsl:for-each select="gjdoc:firstSentenceTags/node()">
+ <xsl:value-of select="." disable-output-escaping="yes"/>
+ </xsl:for-each>
+ </blockquote>
+ </td>
+
+ </tr>
+
+ </xsl:template>
+
+ <xsl:template name="output_modifiers">
+ <xsl:if test="gjdoc:isNative">
+ <xsl:text>native </xsl:text>
+ </xsl:if>
+ <xsl:if test="gjdoc:isStatic">
+ <xsl:text>static </xsl:text>
+ </xsl:if>
+ <xsl:if test="gjdoc:isFinal">
+ <xsl:text>final </xsl:text>
+ </xsl:if>
+ <xsl:if test="gjdoc:isAbstract">
+ <xsl:text>abstract </xsl:text>
+ </xsl:if>
+ <xsl:if test="gjdoc:isTransient">
+ <xsl:text>transient </xsl:text>
+ </xsl:if>
+ <xsl:if test="gjdoc:isVolatile">
+ <xsl:text>volatile </xsl:text>
+ </xsl:if>
+ <xsl:if test="gjdoc:isSynchronized">
+ <xsl:text>synchronized </xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="output_modifiers_summary">
+ <xsl:if test="gjdoc:isStatic">
+ <xsl:text>static </xsl:text>
+ </xsl:if>
+ <xsl:if test="gjdoc:isAbstract">
+ <xsl:text>abstract </xsl:text>
+ </xsl:if>
+ <xsl:if test="gjdoc:isTransient">
+ <xsl:text>transient </xsl:text>
+ </xsl:if>
+ <xsl:if test="gjdoc:isVolatile">
+ <xsl:text>volatile </xsl:text>
+ </xsl:if>
+ <xsl:if test="gjdoc:isSynchronized">
+ <xsl:text>synchronized </xsl:text>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- Output summary of a single method or constructor -->
+
+ <xsl:template name="classdoc_method_summary_tr">
+
+ <tr valign="top">
+
+ <!-- Left table cell: Modifiers and Return Type -->
+
+ <xsl:if test="gjdoc:isMethod">
+ <td valign="top" class="member-summary method modifiers">
+ <code class="member-summary method modifiers">
+ <xsl:call-template name="output_modifiers_summary"/>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_qualifiedname" select="gjdoc:returns/@qualifiedtypename"/>
+ <xsl:with-param name="p_name" select="gjdoc:returns/@typename"/>
+ </xsl:call-template>
+ <xsl:value-of select="gjdoc:returns/@dimension"/>
+ </code>
+ </td>
+ </xsl:if>
+
+ <!-- Right table cell: signature and short description -->
+
+ <td align="left" valign="top" class="member-summary method name">
+
+ <!-- Method signature -->
+
+ <code class="member-summary method signature">
+
+ <!-- Link to method definition -->
+
+ <a href="{concat('#',@name,gjdoc:signature/@full)}" class="member-summary method name"><xsl:value-of select="@name"/></a>
+
+ <!-- Parameter List -->
+
+ <xsl:text>(</xsl:text>
+ <xsl:call-template name="list_parameters"/>
+ <xsl:text>)</xsl:text>
+ </code>
+
+ <!-- Brief description of Method -->
+
+ <blockquote class="member-summary method comment">
+ <xsl:choose>
+ <xsl:when test="gjdoc:tags/gjdoc:tag[@kind='@deprecated']">
+ <i>
+ <b>Deprecated. </b>
+ <xsl:for-each select="gjdoc:tags/gjdoc:tag[@kind='@deprecated']/gjdoc:firstSentenceTags">
+ <xsl:apply-templates/>
+ </xsl:for-each>
+ </i>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="gjdoc:firstSentenceTags/node()">
+ <xsl:value-of disable-output-escaping="yes" select="."/>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </blockquote>
+ </td>
+ </tr>
+
+ </xsl:template>
+
+ <!-- Output a list of all parameters of the current methoddoc -->
+ <xsl:template name="list_parameters">
+ <xsl:for-each select="gjdoc:parameter">
+ <span class="parameter">
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_qualifiedname">
+ <xsl:value-of select="@qualifiedtypename"/>
+ </xsl:with-param>
+ <xsl:with-param name="p_name">
+ <xsl:value-of select="@typename"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:value-of select="@dimension"/>
+ <xsl:text disable-output-escaping="no">&#160;</xsl:text>
+ <xsl:value-of select="@name"/>
+ <xsl:if test="position() != last()">
+ <xsl:text>,</xsl:text>
+ </xsl:if>
+ </span>
+ <xsl:if test="position() != last()">
+ <xsl:text> </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="list_parameter_details">
+ <dl class="classdoc-list">
+ <xsl:for-each select="gjdoc:parameter">
+ <dt>
+ <span class="prototype-name">
+ <xsl:value-of select="@name"/>
+ </span>
+ <xsl:variable name="param_position" select="position()"/>
+
+ <xsl:if test="../gjdoc:tags/gjdoc:tag[attribute::kind='@param' and position()=$param_position]">
+ <xsl:text> - </xsl:text>
+ <xsl:for-each select="../gjdoc:tags/gjdoc:tag[attribute::kind='@param' and position()=$param_position]/gjdoc:inlineTags/node()">
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ </xsl:if>
+ </dt>
+ </xsl:for-each>
+ </dl>
+ </xsl:template>
+
+ <xsl:template name="output_see_tags">
+ <xsl:if test="gjdoc:tags/gjdoc:tag[attribute::kind='@see']">
+ <div class="classdoc-tag-section-header"><b>See Also:</b></div>
+
+ <dl class="classdoc-list">
+ <xsl:for-each select="gjdoc:tags/gjdoc:tag[attribute::kind='@see']">
+ <!--
+ <xsl:variable name="v_see" select="normalize-space(.)"/>
+ -->
+ <dt>
+ <code>
+ <xsl:call-template name="output_link_tag"/>
+ </code>
+ </dt>
+ </xsl:for-each>
+ </dl>
+ </xsl:if>
+ </xsl:template>
+
+ <!-- Output details of all fields in this class -->
+
+ <xsl:template name="classdoc_field_details">
+
+ <a name="{@name}" class="classdoc"> </a>
+ <div class="before-details"> </div>
+
+ <h3><xsl:value-of select="@name"/></h3>
+
+ <p class="prototype"><code>
+ <xsl:value-of select="gjdoc:access/@scope"/>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="output_modifiers"/>
+ <xsl:value-of select="gjdoc:type/@typename"/>
+ <xsl:value-of select="gjdoc:type/@dimension"/>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="link_to_member_source"/>
+ </code></p>
+
+ <p/>
+
+ <!-- Full comment text -->
+
+ <xsl:if test="gjdoc:inlineTags">
+ <div class="classdoc-comment-body">
+ <xsl:for-each select="gjdoc:inlineTags/node()">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+
+ <p/>
+
+ <xsl:call-template name="output_taglet_tags"/>
+
+ <!-- See Also -->
+
+ <xsl:call-template name="output_see_tags"/>
+
+ <xsl:if test="position()!=last()">
+ <hr/>
+ </xsl:if>
+
+ </xsl:template>
+
+
+ <!-- Output details of all methods in this class -->
+
+ <xsl:template name="classdoc_method_details">
+
+ <a name="{concat(@name,gjdoc:signature/@full)}" class="classdoc"> </a>
+ <div class="before-details"> </div>
+
+ <h3><xsl:value-of select="@name"/></h3>
+
+ <p class="prototype"><code>
+ <xsl:value-of select="gjdoc:access/@scope"/>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="output_modifiers"/>
+ <xsl:value-of select="gjdoc:returns/@typename"/><xsl:value-of select="gjdoc:returns/@dimension"/>
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="link_to_member_source"/>
+ <xsl:text>(</xsl:text>
+ <xsl:call-template name="list_parameters"/>
+ <xsl:text>)</xsl:text>
+ </code></p>
+
+ <!-- Full comment text -->
+
+ <xsl:if test="gjdoc:inlineTags">
+ <div class="classdoc-comment-body">
+ <xsl:for-each select="gjdoc:inlineTags/node()">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+
+ <p/>
+
+ <xsl:call-template name="output_taglet_tags"/>
+
+ <xsl:if test="gjdoc:parameter">
+ <div class="classdoc-tag-section-header"><b>Parameters:</b></div>
+ <xsl:call-template name="list_parameter_details"/>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:tags/gjdoc:tag[attribute::kind='@return']">
+ <div class="classdoc-tag-section-header"><b>Returns:</b></div>
+ <dl class="classdoc-list">
+ <dt>
+ <xsl:for-each select="gjdoc:tags/gjdoc:tag[attribute::kind='@return']">
+ <xsl:value-of select="." disable-output-escaping="yes"/>
+ </xsl:for-each>
+ </dt>
+ </dl>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:tags/gjdoc:tag[attribute::kind='@throws']">
+ <div class="classdoc-tag-section-header"><b>Throws:</b></div>
+ <dl class="classdoc-list">
+ <xsl:for-each select="gjdoc:tags/gjdoc:tag[attribute::kind='@throws']">
+ <dt>
+ <code>
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_qualifiedname">
+ <xsl:value-of select="gjdoc:exception/@qualifiedtypename"/>
+ </xsl:with-param>
+ <xsl:with-param name="p_name">
+ <xsl:value-of select="gjdoc:exception/@typename"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </code>
+ <xsl:text> - </xsl:text>
+ <xsl:for-each select="gjdoc:inlineTags/node()">
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ </dt>
+ </xsl:for-each>
+ </dl>
+ </xsl:if>
+
+ <xsl:call-template name="output_see_tags"/>
+
+ <xsl:if test="position()!=last()">
+ <hr/>
+ </xsl:if>
+
+ </xsl:template>
+
+ <!-- Recursively create the tree showing the heritage of the -->
+ <!-- given class -->
+
+ <xsl:template name="create_tree">
+ <xsl:param name="p_superclass"/>
+ <xsl:param name="p_indent"/>
+ <xsl:param name="p_final" select="0"/>
+
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]">
+
+ <xsl:if test="gjdoc:superclass">
+ <xsl:call-template name="create_tree">
+ <xsl:with-param name="p_indent" select="$p_indent+-1"/>
+ <xsl:with-param name="p_superclass" select="gjdoc:superclass/@qualifiedtypename"/>
+ </xsl:call-template>
+
+ <xsl:call-template name="tree_indentation_text_empty">
+ <xsl:with-param name="p_indent" select="$p_indent"/>
+ </xsl:call-template>
+ <xsl:text>|
+</xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:if test="$p_indent>0">
+ <xsl:call-template name="tree_indentation">
+ <xsl:with-param name="p_indent" select="$p_indent"/>
+ </xsl:call-template>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="$p_final=1">
+ <xsl:value-of select="$p_superclass"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="link_to_class_full">
+ <xsl:with-param name="p_qualifiedname">
+ <xsl:value-of select="$p_superclass"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:text>
+</xsl:text>
+ </xsl:template>
+
+ <!-- Recursively create the tree showing the heritage of the -->
+ <!-- given class, use bitmaps -->
+
+ <xsl:template name="create_tree_gfx">
+ <xsl:param name="p_superclass"/>
+ <xsl:param name="p_indent"/>
+ <xsl:param name="p_final" select="0"/>
+ <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]/gjdoc:superclass">
+ <xsl:call-template name="create_tree">
+ <xsl:with-param name="p_indent" select="$p_indent+-1"/>
+ <xsl:with-param name="p_superclass" select="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]/gjdoc:superclass/@qualifiedtypename"/>
+ </xsl:call-template>
+ </xsl:if>
+ <tr><td>
+ <table cellspacing="0" cellpadding="0" border="0">
+ <tr>
+ <xsl:variable name="imagename">
+ <xsl:choose>
+ <xsl:when test="$p_final=1">
+ <xsl:text>images/tree-final-node.png</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>images/tree-node.png</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <td>
+ <xsl:if test="$p_indent>0">
+ <xsl:call-template name="tree_indentation">
+ <xsl:with-param name="p_indent"><xsl:value-of select="$p_indent"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ <img width="10" height="21" class="classdoc-tree-image" src="{$imagename}"/>
+ </td>
+
+ <xsl:choose>
+ <xsl:when test="$p_final=1">
+ <td class="classdoc-tree-label"><xsl:value-of select="$p_superclass"/></td>
+ </xsl:when>
+ <xsl:otherwise>
+ <td class="classdoc-tree-label">
+ <xsl:call-template name="link_to_class_full">
+ <xsl:with-param name="p_qualifiedname">
+ <xsl:value-of select="$p_superclass"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </td>
+ </xsl:otherwise>
+ </xsl:choose>
+ </tr></table>
+ </td></tr>
+ </xsl:template>
+
+ <!-- Recursively output one character for each superclass found for the given -->
+ <!-- class. The length of the resulting string tells how many levels of -->
+ <!-- indentation are required for creating the heritage tree. -->
+
+ <xsl:template name="output_base_markers">
+ <xsl:param name="p_superclass"/>
+
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_superclass]">
+ <xsl:if test="gjdoc:superclass">
+ <xsl:call-template name="output_base_markers">
+ <xsl:with-param name="p_superclass" select="gjdoc:superclass/@qualifiedtypename"/>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:text>*</xsl:text>
+ </xsl:template>
+
+ <!-- Heritage Tree -->
+
+ <xsl:template name="classdoc_heritage_tree">
+
+ <xsl:variable name="p_qualifiedtypename" select="@qualifiedtypename"/>
+
+ <xsl:for-each select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[@qualifiedtypename=$p_qualifiedtypename]">
+
+ <xsl:variable name="superclass_markers">
+ <xsl:call-template name="output_base_markers">
+ <xsl:with-param name="p_superclass" select="gjdoc:superclass/@qualifiedtypename"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$gjdoc.allowimages=1">
+ <table border="0" cellpadding="0" cellspacing="0" style="margin:0px; padding:0px; line-height:1px">
+ <xsl:call-template name="create_tree_gfx">
+ <xsl:with-param name="p_indent" select="string-length($superclass_markers)"/>
+ <xsl:with-param name="p_superclass" select="$p_qualifiedtypename"/>
+ <xsl:with-param name="p_final" select="1"/>
+ </xsl:call-template>
+ </table>
+ </xsl:when>
+ <xsl:otherwise>
+ <pre class="inheritance-tree">
+ <xsl:call-template name="create_tree">
+ <xsl:with-param name="p_indent" select="string-length($superclass_markers)"/>
+ <xsl:with-param name="p_superclass" select="$p_qualifiedtypename"/>
+ <xsl:with-param name="p_final" select="1"/>
+ </xsl:call-template>
+ </pre>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:for-each>
+ </xsl:template>
+
+ <xsl:template name="tree_indentation_text_empty">
+ <xsl:param name="p_indent"/>
+ <xsl:choose>
+ <xsl:when test="$p_indent&gt;1">
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="tree_indentation_text_empty">
+ <xsl:with-param name="p_indent"><xsl:value-of select="$p_indent+-1"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- Recursively insert indentation for heritage tree. -->
+ <!-- This one uses images for nice, visual indentation. -->
+ <!-- p_indent selects level of indentation. -->
+
+ <xsl:template name="tree_indentation">
+ <xsl:param name="p_indent"/>
+ <xsl:choose>
+ <xsl:when test="$p_indent&gt;1">
+ <xsl:choose>
+ <xsl:when test="$gjdoc.allowimages=1">
+ <img width="26" height="21" border="0" src="images/tree-empty.png" class="classdoc-tree-image"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text> </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:call-template name="tree_indentation">
+ <xsl:with-param name="p_indent"><xsl:value-of select="$p_indent+-1"/></xsl:with-param>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:choose>
+ <xsl:when test="$gjdoc.allowimages=1">
+ <img width="26" height="21" border="0" src="images/tree-branch.png" class="classdoc-tree-image"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>+--</xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="output_superclass_methods">
+ <xsl:if test="gjdoc:methoddoc">
+ <table class="classdoc-table">
+ <tr>
+ <td class="sub-section-header">
+ <div class="sub-section-header">Methods inherited from class <xsl:value-of select="@qualifiedtypename"/></div>
+ </td>
+ </tr>
+ <tr>
+ <td class="member-summary super method">
+ <xsl:for-each select="gjdoc:methoddoc">
+ <code class="member-summary super method"><a href="{concat($gjdoc.pathtoroot, translate(../gjdoc:containingPackage/@name, '.', '/'), '/', ../@typename, '.html#', @name, gjdoc:signature/@full)}" class="member-summary super method"><xsl:value-of select="@name"/></a><xsl:if test="position() != last()">, </xsl:if></code>
+ </xsl:for-each>
+ </td>
+ </tr>
+ </table>
+ </xsl:if>
+ </xsl:template>
+
+
+ <xsl:template name="output_superclass_fields">
+ <xsl:if test="gjdoc:fielddoc">
+ <table class="classdoc-table">
+ <tr>
+ <td class="sub-section-header">
+ <div class="sub-section-header">Fields inherited from class <xsl:value-of select="@qualifiedtypename"/></div>
+ </td>
+ </tr>
+ <tr>
+ <td class="member-summary super field">
+ <xsl:for-each select="gjdoc:fielddoc">
+ <code class="member-summary super field"><a href="{concat($gjdoc.pathtoroot, translate(../gjdoc:containingPackage/@name, '.', '/'), '/', ../@typename, '.html#', @name)}" class="member-summary super field"><xsl:value-of select="@name"/></a><xsl:if test="position() != last()">, </xsl:if></code>
+ </xsl:for-each>
+ </td>
+ </tr>
+ </table>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl
new file mode 100644
index 0000000..4fc9dfd
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/deprecated.xsl
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- deprecated.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the deprecation information page for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="gjdoc:tag[attribute::kind='@see'][attribute::name='@link']">
+ <xsl:call-template name="output_link_tag">
+ <xsl:with-param name="p_contexturl"
+ select="concat(translate(ancestor::gjdoc:classdoc/gjdoc:containingPackage/@name, '.', '/'), '/', ancestor::gjdoc:classdoc/@name,'.html')"/>
+ </xsl:call-template>
+ </xsl:template>
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="'Deprecated List'"/>
+ </xsl:call-template>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+
+ <!-- Top Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_show_deprecated" select="0"/>
+ <xsl:with-param name="p_curr_deprecated" select="1"/>
+ <xsl:with-param name="p_top" select="1"/>
+ </xsl:call-template>
+
+ <div class="pagebody">
+
+ <h1 class="classdoc-title">Deprecated API</h1>
+
+ <xsl:choose>
+ <xsl:when test="gjdoc:rootdoc/gjdoc:hasDeprecatedInterfaces or gjdoc:rootdoc/gjdoc:hasDeprecatedClasses or gjdoc:rootdoc/gjdoc:hasDeprecatedExceptions or gjdoc:rootdoc/gjdoc:hasDeprecatedErrors or gjdoc:rootdoc/gjdoc:rootdoc/gjdoc:hasDeprecatedMethods or gjdoc:rootdoc/gjdoc:hasDeprecatedFields">
+ <div class="classdoc-tag-section-header">Contents:</div>
+ <dl class="classdoc-list">
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedInterfaces">
+ <dt><a href="#interfaces">Deprecated Interfaces</a></dt>
+ </xsl:if>
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedClasses">
+ <dt><a href="#classes">Deprecated Classes</a></dt>
+ </xsl:if>
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedExceptions">
+ <dt><a href="#exceptions">Deprecated Exceptions</a></dt>
+ </xsl:if>
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedErrors">
+ <dt><a href="#errors">Deprecated Errors</a></dt>
+ </xsl:if>
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedFields">
+ <dt><a href="#fields">Deprecated Fields</a></dt>
+ </xsl:if>
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedMethods">
+ <dt><a href="#methods">Deprecated Methods</a></dt>
+ </xsl:if>
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedConstructors">
+ <dt><a href="#constructors">Deprecated Constructors</a></dt>
+ </xsl:if>
+ </dl>
+ </xsl:when>
+ <xsl:otherwise>
+ <p>No parts of this API are deprecated.</p>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedInterfaces">
+ <a name="interfaces"/>
+ <h1 class="classdoc-header">Deprecated Interfaces</h1>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+ <xsl:variable name="v_currentclass" select="."/>
+ <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+ <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/@qualifiedtypename/..">
+ <xsl:if test="gjdoc:isInterface">
+ <xsl:call-template name="output-deprecated-class"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedClasses">
+ <a name="classes"/>
+ <h1 class="classdoc-header">Deprecated Classes</h1>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+ <xsl:variable name="v_currentclass" select="."/>
+ <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+ <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/@qualifiedtypename/..">
+ <xsl:if test="gjdoc:isOrdinaryClass">
+ <xsl:call-template name="output-deprecated-class"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedExceptions">
+ <a name="exceptions"/>
+ <h1 class="classdoc-header">Deprecated Exceptions</h1>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+ <xsl:variable name="v_currentclass" select="."/>
+ <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+ <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/.">
+ <xsl:if test="gjdoc:isException">
+ <xsl:call-template name="output-deprecated-class"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedErrors">
+ <a name="errors"/>
+ <h1 class="classdoc-header">Deprecated Errors</h1>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+ <xsl:variable name="v_currentclass" select="."/>
+ <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+ <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/.">
+ <xsl:if test="gjdoc:isError">
+ <xsl:call-template name="output-deprecated-class"/>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedFields">
+ <a name="fields"/>
+ <h1 class="classdoc-header">Deprecated Fields</h1>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+ <xsl:variable name="v_currentclass" select="."/>
+ <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+ <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/gjdoc:fielddoc/@name">
+ <xsl:call-template name="output-deprecated-member"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedMethods">
+ <a name="methods"/>
+ <h1 class="classdoc-header">Deprecated Methods</h1>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+ <xsl:variable name="v_currentclass" select="."/>
+ <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+ <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/gjdoc:methoddoc/@name">
+ <xsl:call-template name="output-deprecated-member"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="gjdoc:rootdoc/gjdoc:hasDeprecatedConstructors">
+ <a name="constructors"/>
+ <h1 class="classdoc-header">Deprecated Constructors</h1>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc/@qualifiedtypename">
+ <xsl:variable name="v_currentclass" select="."/>
+ <xsl:variable name="v_sub_xml_filename" select="concat(.,'.xml')"/>
+ <xsl:for-each select="document($v_sub_xml_filename,/gjdoc:rootdoc)//gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/gjdoc:constructordoc/@name">
+ <xsl:call-template name="output-deprecated-member"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </xsl:if>
+ <!-- Bottom Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_show_deprecated" select="0"/>
+ <xsl:with-param name="p_curr_deprecated" select="1"/>
+ <xsl:with-param name="p_top" select="0"/>
+ </xsl:call-template>
+
+ </div>
+ </body>
+ </html>
+ </xsl:template>
+
+ <xsl:template name="output-deprecated-member">
+
+ <xsl:if test="../gjdoc:tags/gjdoc:tag[@kind='@deprecated']">
+ <dl>
+ <dt>
+ <a href="{concat($gjdoc.pathtoroot, translate(ancestor::gjdoc:classdoc/gjdoc:containingPackage/@name, '.', '/'), '/', ancestor::gjdoc:classdoc/@name, '.html#', ., ../gjdoc:signature/@full)}">
+ <xsl:value-of select="concat(ancestor::gjdoc:classdoc/@qualifiedtypename, '.', ., ../gjdoc:signature/@flat)"/>
+ </a>
+ </dt>
+ <dd>
+ <xsl:for-each select="../gjdoc:tags/gjdoc:tag[@kind='@deprecated']/gjdoc:firstSentenceTags/node()">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </dd>
+ </dl>
+ </xsl:if>
+
+ </xsl:template>
+
+ <xsl:template name="output-deprecated-class">
+ <xsl:if test="gjdoc:tags/gjdoc:tag[@kind='@deprecated']">
+ <dl>
+ <dt>
+ <a href="{concat($gjdoc.pathtoroot, translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')}"><xsl:value-of select="@qualifiedtypename"/></a>
+ </dt>
+ <dd>
+ <xsl:for-each select="gjdoc:tags/gjdoc:tag[@kind='@deprecated']/gjdoc:firstSentenceTags/node()">
+ <xsl:apply-templates select="."/>
+ </xsl:for-each>
+ </dd>
+ </dl>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl
new file mode 100644
index 0000000..5cdb332
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/descriptor.xsl
@@ -0,0 +1,58 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- descriptor.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the index.html file for HTML documentation. This is only
+ a simple frameset.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+ <gjdoc:descriptor>
+ <gjdoc:about>
+ This file was generated by Gjdoc <xsl:value-of select="$gjdoc.xmldoclet.version"/>
+ on <xsl:value-of select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:created"/>.
+
+ <xsl:copy-of select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:bottomnote"/>
+ </gjdoc:about>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:packagedoc">
+ <gjdoc:package name="{@name}"/>
+ </xsl:for-each>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc">
+ <gjdoc:class name="{@name}" qualifiedtypename="{@qualifiedtypename}"/>
+ </xsl:for-each>
+ </gjdoc:descriptor>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl
new file mode 100644
index 0000000..7008f73
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/doctranslet.xsl
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- outputfiles.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Returns a list of files generated by this stylesheet complex.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.gnu.org/software/cp-tools/gjdocxslfiles">
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+ <doctranslet>
+
+ <name>GNU Gjdoc HTML DocTranslet</name>
+
+ <version>0.6.1</version>
+
+ <outputtype>
+ <name>HTML</name>
+ </outputtype>
+
+ <outputfile>
+ <name><xsl:text>index.html</xsl:text></name>
+ <type><xsl:text>index</xsl:text></type>
+ <sheet><xsl:text>index.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Index file</xsl:text></comment>
+ </outputfile>
+
+ <outputfile>
+ <name><xsl:text>index_noframes.html</xsl:text></name>
+ <type><xsl:text>index_noframes</xsl:text></type>
+ <sheet><xsl:text>index_noframes.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Index file (No Frames)</xsl:text></comment>
+ </outputfile>
+
+ <outputfile>
+ <name><xsl:text>descriptor.xml</xsl:text></name>
+ <type><xsl:text>descriptor</xsl:text></type>
+ <sheet><xsl:text>descriptor.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Descriptor file</xsl:text></comment>
+ </outputfile>
+
+ <outputfile>
+ <name><xsl:text>allclasses.html</xsl:text></name>
+ <type><xsl:text>allclasses</xsl:text></type>
+ <sheet><xsl:text>allclasses.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML All Classes file</xsl:text></comment>
+ </outputfile>
+
+ <outputfile>
+ <name><xsl:text>allpackages.html</xsl:text></name>
+ <type><xsl:text>allpackages</xsl:text></type>
+ <sheet><xsl:text>allpackages.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML All Packages file</xsl:text></comment>
+ </outputfile>
+
+ <outputfile>
+ <name><xsl:text>fulltree.html</xsl:text></name>
+ <type><xsl:text>fulltree</xsl:text></type>
+ <sheet><xsl:text>fulltree.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Tree file</xsl:text></comment>
+ </outputfile>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:packagedoc">
+ <outputfile>
+ <name><xsl:value-of select="concat(translate(@name,'.','/'),'/package-summary.html')"/></name>
+ <type><xsl:text>package</xsl:text></type>
+ <info><xsl:value-of select="@name"/></info>
+ <sheet><xsl:text>packagedoc.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Documentation for package </xsl:text><xsl:value-of select="@name"/></comment>
+ </outputfile>
+ </xsl:for-each>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc">
+ <outputfile>
+ <name><xsl:value-of select="concat(translate(gjdoc:containingPackage/@name,'.','/'),'/',@name,'.html')"/></name>
+ <type><xsl:text>class</xsl:text></type>
+ <info><xsl:value-of select="@qualifiedtypename"/></info>
+ <sheet><xsl:text>classdoc.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Documentation for </xsl:text><xsl:value-of select="@qualifiedtypename"/></comment>
+ </outputfile>
+ </xsl:for-each>
+
+ </doctranslet>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl
new file mode 100644
index 0000000..3d60bbb
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/fulltree.xsl
@@ -0,0 +1,201 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- fulltree.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the fulltree.html file for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template name="output_tree_recursive">
+ <xsl:param name="p_level" select="0"/>
+
+ <xsl:value-of select="gjdoc:containingPackage/@name"/><xsl:text>.</xsl:text><a class="tree-class-link" href="{concat($gjdoc.pathtoroot,translate(gjdoc:containingPackage/@name,'.','/'),'/',@name,'.html')}"><xsl:value-of select="@name"/></a>
+ <xsl:if test="gjdoc:implements">
+ <xsl:text> (implements </xsl:text>
+ <xsl:for-each select="gjdoc:implements">
+ <xsl:sort select="@qualifiedtypename" order="ascending"/>
+ <xsl:choose>
+ <xsl:when test="string-length($gjdoc.outputfile.info)=0">
+ <xsl:call-template name="link_to_class_full">
+ <xsl:with-param name="p_name" select="@typename"/>
+ <xsl:with-param name="p_qualifiedname" select="@qualifiedtypename"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:when test="gjdoc:containingPackage/@name=$gjdoc.outputfile.info">
+ <xsl:call-template name="link_to_class">
+ <xsl:with-param name="p_name" select="@typename"/>
+ <xsl:with-param name="p_qualifiedname" select="@qualifiedtypename"/>
+ </xsl:call-template>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="link_to_class_full">
+ <xsl:with-param name="p_name" select="@typename"/>
+ <xsl:with-param name="p_qualifiedname" select="@qualifiedtypename"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="position() != last()">
+ <xsl:text>, </xsl:text>
+ </xsl:if>
+ </xsl:for-each>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+
+ <xsl:variable name="v_qualifiedname">
+ <xsl:value-of select="@qualifiedtypename"/>
+ </xsl:variable>
+ <xsl:variable name="v_result">
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:superclass/@qualifiedtypename=$v_qualifiedname]">
+ <xsl:sort select="@qualifiedtypename" order="ascending"/>
+ <xsl:variable name="v_is_used">
+ <xsl:choose>
+ <xsl:when test="string-length($gjdoc.outputfile.info)=0">
+ <xsl:value-of select="true()"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:containingPackage/@name=$gjdoc.outputfile.info">
+ <xsl:value-of select="true()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:call-template name="is_class_parent_of_package_class">
+ <xsl:with-param name="p_package" select="$gjdoc.outputfile.info"/>
+ <xsl:with-param name="p_qualifiedtypename" select="@qualifiedtypename"/>
+ </xsl:call-template>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:if test="string-length($v_is_used)>0">
+ <li class="tree">
+ <xsl:call-template name="output_tree_recursive">
+ <xsl:with-param name="p_level"><xsl:value-of select="$p_level+1"/></xsl:with-param>
+ </xsl:call-template>
+ </li>
+ </xsl:if>
+ </xsl:for-each>
+ </xsl:variable>
+ <xsl:if test="string-length($v_result)>0">
+ <ul><xsl:copy-of select="$v_result"/></ul>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="is_class_parent_of_package_class">
+ <xsl:param name="p_package"/>
+ <xsl:param name="p_qualifiedtypename"/>
+
+ <xsl:choose>
+
+ <xsl:when test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:superclass/@qualifiedtypename=$p_qualifiedtypename and gjdoc:containingPackage/@name=$p_package]">
+ <xsl:value-of select="true()"/>
+ </xsl:when>
+
+ <xsl:otherwise>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:superclass/@qualifiedtypename=$p_qualifiedtypename]">
+ <xsl:call-template name="is_class_parent_of_package_class">
+ <xsl:with-param name="p_package" select="$p_package"/>
+ <xsl:with-param name="p_qualifiedtypename" select="@qualifiedtypename"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template match="/">
+
+ <html>
+ <head>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="'Full Tree'"/>
+ </xsl:call-template>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+ <div class="pagebody">
+
+ <!-- Top Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="string-length($gjdoc.outputfile.info)&gt;0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_curr_package_tree" select="string-length($gjdoc.outputfile.info)&gt;0"/>
+ <xsl:with-param name="p_show_full_tree" select="string-length($gjdoc.outputfile.info)&gt;0"/>
+ <xsl:with-param name="p_curr_full_tree" select="string-length($gjdoc.outputfile.info)&lt;=0"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="1"/>
+ </xsl:call-template>
+
+ <h1 class="classdoc-title">
+ <xsl:choose>
+ <xsl:when test="string-length($gjdoc.outputfile.info)=0">
+ Full Class Tree
+ <xsl:if test="/gjdoc:rootdoc/gjdoc:title">
+ <xsl:text> for </xsl:text>
+ <xsl:value-of select="/gjdoc:rootdoc/gjdoc:title"/>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ Class Hierarchy for Package <xsl:value-of select="$gjdoc.outputfile.info"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </h1>
+
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[@qualifiedtypename='java.lang.Object']">
+ <ul class="tree">
+ <li class="tree">
+ <xsl:call-template name="output_tree_recursive"/>
+ </li>
+ </ul>
+ </xsl:for-each>
+
+
+ <!-- Bottom Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="string-length($gjdoc.outputfile.info)&lt;=0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_curr_package_tree" select="string-length($gjdoc.outputfile.info)&gt;0"/>
+ <xsl:with-param name="p_show_full_tree" select="string-length($gjdoc.outputfile.info)&gt;0"/>
+ <xsl:with-param name="p_curr_full_tree" select="string-length($gjdoc.outputfile.info)&lt;=0"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="0"/>
+ </xsl:call-template>
+ </div>
+ </body>
+ </html>
+
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl
new file mode 100644
index 0000000..74558ab
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/gjdoc.xsl
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- outputfiles.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Returns a list of files generated by this stylesheet complex.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.gnu.org/software/cp-tools/gjdocxslfiles">
+
+ <xsl:include href="../gjdoc_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+ <gjdocoutput>
+
+ <comment><xsl:text>GNU Gjdoc HTML Documentation</xsl:text></comment>
+
+ <outputfile>
+ <name><xsl:text>index.html</xsl:text></name>
+ <sheet><xsl:text>index.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Index file</xsl:text></comment>
+ </outputfile>
+
+ <outputfile>
+ <name><xsl:text>index_noframes.html</xsl:text></name>
+ <sheet><xsl:text>index_noframes.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Index file (No Frames)</xsl:text></comment>
+ </outputfile>
+
+ <outputfile>
+ <name><xsl:text>descriptor.xml</xsl:text></name>
+ <sheet><xsl:text>descriptor.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Descriptor file</xsl:text></comment>
+ </outputfile>
+
+ <outputfile>
+ <name><xsl:text>allclasses.html</xsl:text></name>
+ <sheet><xsl:text>allclasses.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML All Classes file</xsl:text></comment>
+ </outputfile>
+
+ <xsl:if test="count(gjdoc:rootdoc/gjdoc:packagedoc) > 1">
+ <outputfile>
+ <name><xsl:text>allpackages.html</xsl:text></name>
+ <sheet><xsl:text>allpackages.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML All Packages file</xsl:text></comment>
+ </outputfile>
+ </xsl:if>
+
+ <xsl:if test="not($gjdoc.option.notree)">
+ <outputfile>
+ <name><xsl:text>fulltree.html</xsl:text></name>
+ <sheet><xsl:text>fulltree.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Tree file</xsl:text></comment>
+ </outputfile>
+ </xsl:if>
+
+ <xsl:if test="not($gjdoc.option.noindex)">
+ <xsl:choose>
+ <xsl:when test="$gjdoc.option.splitindex">
+
+ <outputfile>
+ <name><xsl:text>alphaindex.html</xsl:text></name>
+ <info/>
+ <sheet><xsl:text>alphaindex_chunked.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Alphabetical Index (Overview)</xsl:text></comment>
+ </outputfile>
+
+ <xsl:for-each select="document('alphaindex.xml',/)/gjdoc:alphaindex/gjdoc:category">
+ <outputfile>
+ <name><xsl:value-of select="concat('alphaindex_', @letter, '.html')"/></name>
+ <info><xsl:value-of select="@letter"/></info>
+ <sheet><xsl:text>alphaindex_chunked.xsl</xsl:text></sheet>
+ <comment><xsl:value-of select="concat('HTML Alphabetical Index (Letter ', @letter, ')')"/></comment>
+ </outputfile>
+ </xsl:for-each>
+
+ </xsl:when>
+ <xsl:otherwise>
+ <outputfile>
+ <name><xsl:text>alphaindex.html</xsl:text></name>
+ <sheet><xsl:text>alphaindex.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Alphabetical Index</xsl:text></comment>
+ </outputfile>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:if>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:packagedoc">
+ <outputfile>
+ <name><xsl:value-of select="concat(translate(@name,'.','/'),'/package-summary.html')"/></name>
+ <info><xsl:value-of select="@name"/></info>
+ <sheet><xsl:text>packagedoc.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Documentation for package </xsl:text><xsl:value-of select="@name"/></comment>
+ </outputfile>
+ <outputfile>
+ <name><xsl:value-of select="concat(translate(@name,'.','/'),'/classes.html')"/></name>
+ <info><xsl:value-of select="@name"/></info>
+ <sheet><xsl:text>packageclasses.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Class list for package </xsl:text><xsl:value-of select="@name"/></comment>
+ </outputfile>
+
+ <xsl:if test="not($gjdoc.option.notree)">
+ <outputfile>
+ <name><xsl:value-of select="concat(translate(@name,'.','/'),'/package-tree.html')"/></name>
+ <info><xsl:value-of select="@name"/></info>
+ <sheet><xsl:text>fulltree.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Hierarchy for package </xsl:text><xsl:value-of select="@name"/></comment>
+ </outputfile>
+ </xsl:if>
+ </xsl:for-each>
+
+ <xsl:for-each select="gjdoc:rootdoc/gjdoc:classdoc">
+ <xsl:sort select="@qualifiedtypename" order="ascending"/>
+ <outputfile>
+ <name><xsl:value-of select="concat(translate(gjdoc:containingPackage/@name,'.','/'),'/',@name,'.html')"/></name>
+ <info><xsl:value-of select="@qualifiedtypename"/></info>
+ <sheet><xsl:text>classdoc.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Documentation for </xsl:text><xsl:value-of select="@qualifiedtypename"/></comment>
+ </outputfile>
+
+ <xsl:if test="$gjdoc.option.linksource">
+ <outputfile>
+ <name><xsl:text>src-html/</xsl:text><xsl:value-of select="concat(translate(gjdoc:containingPackage/@name,'.','/'),'/',@name,'.html')"/></name>
+ <info><xsl:value-of select="@qualifiedtypename"/></info>
+ <sheet><xsl:text>classdoc-source.xsl</xsl:text></sheet>
+ <comment><xsl:text>HTML Source for </xsl:text><xsl:value-of select="@qualifiedtypename"/></comment>
+ </outputfile>
+ </xsl:if>
+
+ <xsl:if test="$gjdoc.option.uses">
+ <outputfile>
+ <name><xsl:text>class-use/</xsl:text><xsl:value-of select="concat(translate(gjdoc:containingPackage/@name,'.','/'),'/',@name,'.html')"/></name>
+ <info><xsl:value-of select="@qualifiedtypename"/></info>
+ <sheet><xsl:text>classdoc-uses.xsl</xsl:text></sheet>
+ <comment><xsl:text>usage information for </xsl:text><xsl:value-of select="@qualifiedtypename"/></comment>
+ </outputfile>
+ </xsl:if>
+
+ </xsl:for-each>
+
+ <xsl:choose>
+ <xsl:when test="$gjdoc.option.stylesheetfile">
+ <outputfile>
+ <name><xsl:text>user.css</xsl:text></name>
+ <source><xsl:value-of select="$gjdoc.option.stylesheetfile"/></source>
+ <comment><xsl:text>user-supplied CSS stylesheet</xsl:text></comment>
+ </outputfile>
+ </xsl:when>
+ <xsl:otherwise>
+ <outputfile>
+ <name><xsl:text>gjdochtml.css</xsl:text></name>
+ <source><xsl:text>res/gjdochtml.css</xsl:text></source>
+ <comment><xsl:text>CSS base stylesheet</xsl:text></comment>
+ </outputfile>
+ <outputfile>
+ <name><xsl:text>gjdochtml-clean.css</xsl:text></name>
+ <source><xsl:text>res/gjdochtml-clean.css</xsl:text></source>
+ <comment><xsl:text>CSS stylesheet 'Clean'</xsl:text></comment>
+ </outputfile>
+ <outputfile>
+ <name><xsl:text>gjdochtml-sclara.css</xsl:text></name>
+ <source><xsl:text>res/gjdochtml-sclara.css</xsl:text></source>
+ <comment><xsl:text>CSS stylesheet 'Santa Clara'</xsl:text></comment>
+ </outputfile>
+ <outputfile>
+ <name><xsl:text>gjdochtml-fixed.css</xsl:text></name>
+ <source><xsl:text>res/gjdochtml-fixed.css</xsl:text></source>
+ <comment><xsl:text>CSS stylesheet 'Fixed'</xsl:text></comment>
+ </outputfile>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <outputfile>
+ <name><xsl:text>gjdoc.js</xsl:text></name>
+ <source><xsl:text>res/gjdoc.js</xsl:text></source>
+ <comment><xsl:text>JavaScript helper file</xsl:text></comment>
+ </outputfile>
+
+ <xsl:if test="not($gjdoc.option.nohelp)">
+ <outputfile>
+ <name><xsl:text>help.html</xsl:text></name>
+ <sheet><xsl:text>help.xsl</xsl:text></sheet>
+ <comment><xsl:text>help file</xsl:text></comment>
+ </outputfile>
+ </xsl:if>
+
+ <outputfile>
+ <name><xsl:text>about.html</xsl:text></name>
+ <sheet><xsl:text>about.xsl</xsl:text></sheet>
+ <comment><xsl:text>about file</xsl:text></comment>
+ </outputfile>
+
+ <xsl:if test="not($gjdoc.option.nodeprecatedlist)">
+ <outputfile>
+ <name><xsl:text>deprecated.html</xsl:text></name>
+ <sheet><xsl:text>deprecated.xsl</xsl:text></sheet>
+ <comment><xsl:text>deprecated list</xsl:text></comment>
+ </outputfile>
+ </xsl:if>
+
+ <outputfile>
+ <name><xsl:text>serialized.html</xsl:text></name>
+ <sheet><xsl:text>serialized.xsl</xsl:text></sheet>
+ <comment><xsl:text>serialization information</xsl:text></comment>
+ </outputfile>
+
+ </gjdocoutput>
+ </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl
new file mode 100644
index 0000000..45af6a6
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/help.xsl
@@ -0,0 +1,93 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- help.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the class descriptor files for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="html"
+ encoding="utf-8"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="'Help'"/>
+ </xsl:call-template>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+ <!-- Top Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="0"/>
+ <xsl:with-param name="p_curr_help" select="1"/>
+ <xsl:with-param name="p_top" select="1"/>
+ </xsl:call-template>
+
+ <div class="pagebody">
+
+ <xsl:choose>
+ <xsl:when test="$gjdoc.option.helpfile">
+ <xsl:copy-of select="document($gjdoc.option.helpfile)//body"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:copy-of select="document('res/default_help_en.html')"/>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ <!-- Bottom Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="0"/>
+ <xsl:with-param name="p_curr_help" select="1"/>
+ <xsl:with-param name="p_top" select="0"/>
+ </xsl:call-template>
+ </div>
+ </body>
+ </html>
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl
new file mode 100644
index 0000000..4e648d2
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/html_common.xsl
@@ -0,0 +1,584 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- html_common.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Common templates for HTML generation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="../gjdoc_common.xsl"/>
+
+ <!-- HTML head directives to be included in all generated HTML files. -->
+
+ <xsl:template name="include_common">
+ <script src="{concat($gjdoc.pathtoroot, 'gjdoc.js')}" type="text/javascript"><xsl:comment>this comment required for konqueror 3.2.2</xsl:comment>
+ </script>
+ <xsl:choose>
+ <xsl:when test="$gjdoc.option.stylesheetfile">
+ <link rel="stylesheet" type="text/css"
+ href="{concat($gjdoc.pathtoroot, 'user.css')}"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <link rel="stylesheet" type="text/css"
+ href="{concat($gjdoc.pathtoroot, 'gjdochtml.css')}" title="GNU Clean"/>
+ <link rel="stylesheet" type="text/css"
+ href="{concat($gjdoc.pathtoroot, 'gjdochtml-clean.css')}" title="GNU Clean"/>
+ <link rel="alternate stylesheet" type="text/css"
+ href="{concat($gjdoc.pathtoroot, 'gjdochtml.css')}" title="Santa Clara"/>
+ <link rel="alternate stylesheet" type="text/css"
+ href="{concat($gjdoc.pathtoroot, 'gjdochtml-sclara.css')}" title="Santa Clara"/>
+ <link rel="alternate stylesheet" type="text/css"
+ href="{concat($gjdoc.pathtoroot, 'gjdochtml.css')}" title="Fixed Fruit"/>
+ <link rel="alternate stylesheet" type="text/css"
+ href="{concat($gjdoc.pathtoroot, 'gjdochtml-fixed.css')}" title="Fixed Fruit"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="output_copyright_footer">
+ <xsl:copy-of select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:bottomnote"/>
+ <hr class="footer"/>
+ <div class="footer">
+ <xsl:text>Generated on</xsl:text><xsl:value-of select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:created"/><xsl:text> by </xsl:text><a href="http://www.gnu.org/software/cp-tools" target="cptoolsinfo"><xsl:text>GNU Classpath Tools</xsl:text></a><xsl:text> (Gjdoc XmlDoclet </xsl:text><xsl:value-of select="$gjdoc.xmldoclet.version"/><xsl:text>).</xsl:text>
+ </div>
+ </xsl:template>
+
+ <!-- If the given class is also included, create a link to it. -->
+ <!-- Otherwise output the qualified name in plain text. -->
+
+ <xsl:template name="link_to_class_full">
+ <xsl:param name="p_qualifiedname" select="@qualifiedtypename"/>
+ <xsl:variable name="p_classdoc" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_qualifiedname]"/>
+ <xsl:choose>
+ <xsl:when test="$p_classdoc">
+ <a href="{concat($gjdoc.pathtoroot, translate($p_classdoc/gjdoc:containingPackage/@name, '.', '/'), '/', $p_classdoc/@name, '.html')}">
+ <xsl:value-of select="$p_qualifiedname"/>
+ </a>
+ </xsl:when>
+ <xsl:when test="$gjdoc.refdocs1 and document(concat($gjdoc.refdocs1, '/descriptor.xml'), /)//gjdoc:class[attribute::qualifiedtypename=$p_qualifiedname]">
+ <a href="{concat($gjdoc.refdocs1, '/', $p_qualifiedname, '.html')}">
+ <xsl:value-of select="$p_qualifiedname"/>
+ </a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$p_qualifiedname"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <!-- If the given class is also included, create a link to it. -->
+ <!-- Otherwise output the qualified name in plain text. -->
+
+ <xsl:template name="link_to_class">
+ <xsl:param name="p_qualifiedname" select="@qualifiedtypename"/>
+ <xsl:param name="p_name" select="@name"/>
+ <xsl:variable name="p_classdoc" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$p_qualifiedname]"/>
+ <xsl:choose>
+ <xsl:when test="$p_classdoc">
+ <a href="{concat($gjdoc.pathtoroot, translate($p_classdoc/gjdoc:containingPackage/@name, '.', '/'), '/', $p_classdoc/@name, '.html')}"><xsl:value-of select="$p_name"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$p_qualifiedname"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="output_alphaindex_category">
+ <dl>
+ <xsl:for-each select="gjdoc:entry">
+ <dt>
+ <xsl:element name="a">
+ <xsl:attribute name="href">
+ <xsl:choose>
+ <xsl:when test="gjdoc:isPackage">
+ <xsl:value-of select="concat(translate(@name, '.', '/'), '/package-summary.html')"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isClass and gjdoc:containingClass">
+ <xsl:value-of select="concat(translate(gjdoc:containingPackage/@name, '.', '/'), '/', gjdoc:containingClass/@name, '.', @name, '.html')"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isClass">
+ <xsl:value-of select="concat(translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isMethod">
+ <xsl:value-of select="concat(translate(gjdoc:containingPackage/@name, '.', '/'), '/', gjdoc:containingClass/@name, '.html#', gjdoc:method/@name, gjdoc:signature/@full)"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isField">
+ <xsl:value-of select="concat(translate(gjdoc:containingPackage/@name, '.', '/'), '/', gjdoc:containingClass/@name, '.html#', @name)"/>
+ </xsl:when>
+ </xsl:choose>
+ </xsl:attribute>
+ <xsl:value-of select="@name"/>
+ </xsl:element>
+ -
+ <xsl:choose>
+ <xsl:when test="gjdoc:isPackage">
+ Package
+ </xsl:when>
+ <xsl:when test="gjdoc:isOrdinaryClass and gjdoc:containingClass">
+ Nested class in class
+ <xsl:value-of select="gjdoc:containingClass/@name"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isException and gjdoc:containingClass">
+ Nested exception in class
+ <xsl:value-of select="gjdoc:containingClass/@name"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isError and gjdoc:containingClass">
+ Nested error in class
+ <xsl:value-of select="gjdoc:containingClass/@name"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isInterface and gjdoc:containingClass">
+ Nested interface in class
+ <xsl:value-of select="gjdoc:containingClass/@name"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isOrdinaryClass">
+ Class in package
+ <xsl:value-of select="gjdoc:containingPackage/@name"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isException">
+ Exception in package
+ <xsl:value-of select="gjdoc:containingPackage/@name"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isError">
+ Error in package
+ <xsl:value-of select="gjdoc:containingPackage/@name"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isInterface">
+ Interface in package
+ <xsl:value-of select="gjdoc:containingPackage/@name"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isMethod">
+ Method in class
+ <xsl:value-of select="gjdoc:containingClass/@name"/>
+ </xsl:when>
+ <xsl:when test="gjdoc:isField">
+ Field in class
+ <xsl:value-of select="gjdoc:containingClass/@name"/>
+ </xsl:when>
+ </xsl:choose>
+ </dt>
+ <dd>
+ <xsl:for-each select="gjdoc:firstSentenceTags/node()">
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ </dd>
+ </xsl:for-each>
+ </dl>
+
+ </xsl:template>
+
+ <xsl:template name="output_navlink">
+ <xsl:param name="p_href"/>
+ <xsl:param name="p_label"/>
+ <xsl:param name="p_target" select="'_self'"/>
+ <xsl:param name="p_enabled"/>
+ <xsl:param name="p_current"/>
+ <xsl:param name="p_onclick"/>
+ <xsl:param name="p_last" select="0"/>
+ <xsl:param name="p_css_class"/>
+ <xsl:param name="p_title"/>
+
+ <xsl:choose>
+ <xsl:when test="$p_enabled">
+ <span class="navi-button link"><a href="{$p_href}" target="{$p_target}" class="navi-button" title="{$p_title}" onClick="{$p_onclick}"><span class="{concat('navi-link ', $p_css_class)}"><xsl:value-of select="$p_label" disable-output-escaping="yes"/></span></a></span>
+ </xsl:when>
+ <xsl:when test="$p_current">
+ <span class="navi-button current"><xsl:value-of select="$p_label" disable-output-escaping="yes"/></span>
+ </xsl:when>
+ <xsl:otherwise>
+ <span class="navi-button unavailable"><xsl:value-of select="$p_label" disable-output-escaping="yes"/></span>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="not($p_last)"><span class="navsep"><xsl:text disable-output-escaping="yes">&amp;nbsp;</xsl:text></span></xsl:if>
+ </xsl:template>
+
+ <xsl:template name="output_navbar">
+ <xsl:param name="p_show_frames" select="1"/>
+ <xsl:param name="p_curr_frames"/>
+
+ <xsl:param name="p_show_noframes" select="1"/>
+ <xsl:param name="p_curr_noframes"/>
+
+ <xsl:param name="p_show_package" select="1"/>
+ <xsl:param name="p_curr_package"/>
+
+ <xsl:param name="p_show_package_tree" select="1"/>
+ <xsl:param name="p_curr_package_tree"/>
+
+ <xsl:param name="p_show_full_tree" select="1"/>
+ <xsl:param name="p_curr_full_tree"/>
+
+ <xsl:param name="p_show_index" select="1"/>
+ <xsl:param name="p_curr_index"/>
+
+ <xsl:param name="p_show_help" select="1"/>
+ <xsl:param name="p_curr_help"/>
+
+ <xsl:param name="p_show_about" select="1"/>
+ <xsl:param name="p_curr_about"/>
+
+ <xsl:param name="p_show_source" select="1"/>
+ <xsl:param name="p_curr_source"/>
+
+ <xsl:param name="p_show_class"/>
+ <xsl:param name="p_curr_class"/>
+
+ <xsl:param name="p_show_use"/>
+ <xsl:param name="p_curr_use"/>
+
+ <xsl:param name="p_show_deprecated" select="1"/>
+ <xsl:param name="p_curr_deprecated"/>
+
+ <xsl:param name="p_top"/>
+
+ <xsl:variable name="v_navbar_class">
+ <xsl:choose>
+ <xsl:when test="$p_top">
+ <xsl:value-of select="'navbar top'"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="'navbar bottom'"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:if test="not($gjdoc.option.nonavbar)">
+ <div class="{$v_navbar_class}">
+ <table border="1" cellspacing="0" class="{$v_navbar_class}">
+ <tr class="{$v_navbar_class}">
+ <td class="{$v_navbar_class}">
+ <div class="navbar-first-row">
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'index_noframes.html')"/>
+ <xsl:with-param name="p_label" select="'Overview'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_noframes"/>
+ <xsl:with-param name="p_current" select="$p_curr_noframes"/>
+ </xsl:call-template>
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="'package-summary.html'"/>
+ <xsl:with-param name="p_label" select="'Package'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_package"/>
+ <xsl:with-param name="p_current" select="$p_curr_package"/>
+ </xsl:call-template>
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="$p_show_class"/>
+ <xsl:with-param name="p_label" select="'Class'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_class"/>
+ <xsl:with-param name="p_current" select="$p_curr_class"/>
+ </xsl:call-template>
+ <xsl:if test="$gjdoc.option.linksource">
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="$p_show_source"/>
+ <xsl:with-param name="p_label" select="'Source'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_source"/>
+ <xsl:with-param name="p_current" select="$p_curr_source"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="$gjdoc.option.uses">
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="$p_show_use"/>
+ <xsl:with-param name="p_label" select="'Use'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_use"/>
+ <xsl:with-param name="p_current" select="$p_curr_use"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="'package-tree.html'"/>
+ <xsl:with-param name="p_label" select="'Tree'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_package_tree"/>
+ <xsl:with-param name="p_current" select="$p_curr_package_tree"/>
+ </xsl:call-template>
+ <xsl:if test="not($gjdoc.option.noindex)">
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'alphaindex.html')"/>
+ <xsl:with-param name="p_label" select="'Index'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_index"/>
+ <xsl:with-param name="p_current" select="$p_curr_index"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="not($gjdoc.option.notree)">
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'fulltree.html')"/>
+ <xsl:with-param name="p_label" select="'Full&amp;nbsp;Tree'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_full_tree"/>
+ <xsl:with-param name="p_current" select="$p_curr_full_tree"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="not($gjdoc.option.nodeprecatedlist)">
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'deprecated.html')"/>
+ <xsl:with-param name="p_label" select="'Deprecated'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_deprecated"/>
+ <xsl:with-param name="p_current" select="$p_curr_deprecated"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:if test="not($gjdoc.option.nohelp)">
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'help.html')"/>
+ <xsl:with-param name="p_label" select="'Help'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_help"/>
+ <xsl:with-param name="p_current" select="$p_curr_help"/>
+ </xsl:call-template>
+ </xsl:if>
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'about.html')"/>
+ <xsl:with-param name="p_label" select="'About'"/>
+ <xsl:with-param name="p_enabled" select="$p_show_about"/>
+ <xsl:with-param name="p_current" select="$p_curr_about"/>
+ <xsl:with-param name="p_last" select="1"/>
+ </xsl:call-template>
+ </div>
+ <div class="navbar-second-row">
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'index.html')"/>
+ <xsl:with-param name="p_label" select="'Frames'"/>
+ <xsl:with-param name="p_enabled" select="1"/>
+ <xsl:with-param name="p_target" select="'_top'"/>
+ </xsl:call-template>
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_href" select="concat($gjdoc.pathtoroot, 'index_noframes.html')"/>
+ <xsl:with-param name="p_label" select="'No&amp;nbsp;Frames'"/>
+ <xsl:with-param name="p_enabled" select="1"/>
+ <xsl:with-param name="p_target" select="'_top'"/>
+ <xsl:with-param name="p_last" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_onclick" select="'return setStyleSheet(&quot;GNU Clean&quot;);'"/>
+ <xsl:with-param name="p_title" select="'GNU Clean Style'"/>
+ <xsl:with-param name="p_label" select="'GNU Clean'"/>
+ <xsl:with-param name="p_enabled" select="1"/>
+ <xsl:with-param name="p_last" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_onclick" select="'return setStyleSheet(&quot;Santa Clara&quot;);'"/>
+ <xsl:with-param name="p_title" select="'Santa Clara Style'"/>
+ <xsl:with-param name="p_label" select="'Santa Clara'"/>
+ <xsl:with-param name="p_enabled" select="1"/>
+ <xsl:with-param name="p_last" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_onclick" select="'return setStyleSheet(&quot;Fixed Fruit&quot;);'"/>
+ <xsl:with-param name="p_title" select="'Fixed Fruit Style'"/>
+ <xsl:with-param name="p_label" select="'Fixed Fruit'"/>
+ <xsl:with-param name="p_enabled" select="1"/>
+ <xsl:with-param name="p_last" select="0"/>
+ </xsl:call-template>
+ <xsl:call-template name="output_navlink">
+ <xsl:with-param name="p_onclick" select="'return setStyleSheet(&quot;Vanilla&quot;);'"/>
+ <xsl:with-param name="p_title" select="'Vanilla Style'"/>
+ <xsl:with-param name="p_label" select="'Vanilla'"/>
+ <xsl:with-param name="p_enabled" select="1"/>
+ <xsl:with-param name="p_last" select="0"/>
+ </xsl:call-template>
+
+ </div>
+ </td>
+ <xsl:choose>
+ <xsl:when test="$p_top">
+ <xsl:if test="$gjdoc.option.header">
+ <td class="{$v_navbar_class} navbar-header">
+ <xsl:value-of select="$gjdoc.option.header"/>
+ </td>
+ </xsl:if>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:if test="$gjdoc.option.footer">
+ <td class="{$v_navbar_class} navbar-footer">
+ <xsl:value-of select="$gjdoc.option.footer"/>
+ </td>
+ </xsl:if>
+ </xsl:otherwise>
+ </xsl:choose>
+
+ </tr>
+ </table>
+
+ </div>
+ <xsl:if test="not($p_top) and $gjdoc.option.bottom">
+ <hr/>
+ <xsl:value-of select="$gjdoc.option.bottom"/>
+ </xsl:if>
+ </xsl:if>
+ </xsl:template>
+
+ <xsl:template name="link_to_class_source">
+ <xsl:choose>
+ <xsl:when test="$gjdoc.option.linksource">
+ <a href="{concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', @name, '.html')}"><b><xsl:value-of select="@name"/></b></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <b><xsl:value-of select="@name"/></b>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="link_to_member_source">
+ <xsl:choose>
+ <xsl:when test="$gjdoc.option.linksource">
+ <a href="{concat($gjdoc.pathtoroot, 'src-html/', translate(gjdoc:containingPackage/@name, '.', '/'), '/', gjdoc:containingClass/@typename, '.html#line.', gjdoc:position/@line)}"><b><xsl:value-of select="@name"/></b></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <b><xsl:value-of select="@name"/></b>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="output_title">
+ <xsl:param name="p_pagetitle"/>
+ <xsl:variable name="v_title">
+ <xsl:value-of select="$p_pagetitle"/>
+ <xsl:if test="$gjdoc.option.windowtitle">
+ <xsl:text> (</xsl:text>
+ <xsl:value-of select="$gjdoc.option.windowtitle"/>
+ <xsl:text>)</xsl:text>
+ </xsl:if>
+ </xsl:variable>
+ <title>
+ <xsl:value-of select="$v_title"/>
+ </title>
+ </xsl:template>
+
+ <xsl:template name="get_qualified_type">
+ <xsl:param name="p_typename"/>
+ <xsl:variable name="v_plaintype">
+ <xsl:choose>
+ <xsl:when test="contains($p_typename,'[')">
+ <xsl:value-of select="normalize-space(substring-before($p_typename, '['))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$p_typename"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="v_containingpackage">
+ <xsl:value-of select="ancestor-or-self::gjdoc:classdoc/gjdoc:containingPackage/attribute::name"/>
+ </xsl:variable>
+ <xsl:choose>
+ <xsl:when test="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::name=$v_plaintype]/gjdoc:containingPackage[attribute::name=$v_containingpackage]">
+ <xsl:value-of select="$v_containingpackage"/>
+ <xsl:text>.</xsl:text>
+ </xsl:when>
+ <xsl:when test="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::name=$v_plaintype]/gjdoc:containingPackage[attribute::name='java.lang']">
+ <xsl:text>java.lang.</xsl:text>
+ </xsl:when>
+ </xsl:choose>
+ <xsl:value-of select="$p_typename"/>
+ </xsl:template>
+
+
+ <xsl:template name="output_link_tag">
+ <xsl:param name="p_contexturl"/>
+ <xsl:variable name="v_see">
+ <xsl:choose>
+ <xsl:when test="contains(., '(')">
+ <xsl:value-of select="normalize-space(substring-before(., '('))"/>
+ <xsl:text>(</xsl:text>
+ <xsl:call-template name="resolve_parameter_list">
+ <xsl:with-param name="p_anchor">
+ <xsl:value-of select="normalize-space(substring-before(substring-after(., '('), ')'))"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>)</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="."/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="v_class">
+ <xsl:choose>
+ <xsl:when test="contains(., '#')">
+ <xsl:value-of select="normalize-space(substring-before(., '#'))"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="normalize-space(.)"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:variable name="v_anchor" select="normalize-space(substring-after(., '#'))"/>
+ <xsl:variable name="v_seeanchor">
+ <xsl:if test="contains($v_see, '#')">
+ <xsl:value-of select="concat('#', normalize-space(substring-after($v_see, '#')))"/>
+ </xsl:if>
+ </xsl:variable>
+ <xsl:variable name="v_classname" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::name=$v_class]/attribute::qualifiedtypename"/>
+ <xsl:variable name="v_classnamefq" select="document('index.xml', /)/gjdoc:rootdoc/gjdoc:classdoc[attribute::qualifiedtypename=$v_class]/attribute::qualifiedtypename"/>
+ <xsl:choose>
+ <xsl:when test="starts-with(., '#')">
+ <xsl:choose>
+ <xsl:when test="$p_contexturl">
+ <a href="{concat($p_contexturl, translate($v_see,' ',''))}"><xsl:value-of select="$v_anchor"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <a href="{translate($v_see,' ','')}"><xsl:value-of select="$v_anchor"/></a>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:when>
+ <xsl:when test="$v_classname">
+ <a href="{translate(concat($gjdoc.pathtoroot, translate($v_classname, '.', '/'), '.html', $v_seeanchor),' ','')}"><xsl:value-of select="translate($v_see,'#','.')"/></a>
+ </xsl:when>
+ <xsl:when test="$v_classnamefq">
+ <a href="{translate(concat($gjdoc.pathtoroot, translate($v_classnamefq, '.', '/'), '.html', $v_seeanchor),' ','')}"><xsl:value-of select="translate($v_see,'#','.')"/></a>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="translate(., '#', '.')" disable-output-escaping="yes"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:template>
+
+ <xsl:template name="resolve_parameter_list">
+ <xsl:param name="p_anchor"/>
+ <xsl:variable name="v_parameter">
+ <xsl:value-of select="normalize-space(substring-before($p_anchor, ','))"/>
+ </xsl:variable>
+ <xsl:variable name="v_remainder">
+ <xsl:value-of select="normalize-space(substring-after($p_anchor, ','))"/>
+ </xsl:variable>
+ <xsl:call-template name="get_qualified_type">
+ <xsl:with-param name="p_typename">
+ <xsl:choose>
+ <xsl:when test="string-length($v_remainder)>0">
+ <xsl:value-of select="$v_parameter"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$p_anchor"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:with-param>
+ </xsl:call-template>
+
+ <xsl:if test="string-length($v_remainder)>0">
+ <xsl:text>,</xsl:text>
+ <xsl:call-template name="resolve_parameter_list">
+ <xsl:with-param name="p_anchor">
+ <xsl:value-of select="$v_remainder"/>
+ </xsl:with-param>
+ </xsl:call-template>
+ </xsl:if>
+ </xsl:template>
+
+</xsl:stylesheet>
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl
new file mode 100644
index 0000000..da4ff62
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index.xsl
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- index.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the index.html file for HTML documentation. This is only
+ a simple frameset.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="html"
+ encoding="utf-8"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <frameset cols="20%,80%">
+ <xsl:choose>
+ <xsl:when test="count(/gjdoc:rootdoc/gjdoc:packagedoc) > 1">
+ <frameset rows="25%,75%">
+ <frame src="allpackages.html" name="packages"/>
+ <frame src="allclasses.html" name="classes"/>
+ </frameset>
+ <frame src="index_noframes.html" name="content"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <frame src="allclasses.html" name="classes"/>
+ <frame src="{concat(translate(/gjdoc:rootdoc/gjdoc:packagedoc[position()=1]/@name, '.', '/'), '/package-summary.html')}" name="content"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </frameset>
+ </html>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl
new file mode 100644
index 0000000..ab45102
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/index_noframes.xsl
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- index_noframes.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the index.html file for HTML documentation. This is only
+ a simple frameset.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
+ doctype-system="http://www.w3.org/TR/html4/loose.dtd"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template name="output_packagedoc_tr">
+ <tr>
+ <td class="package-link">
+ <a href="{concat(translate(@name,'.','/'), '/package-summary.html')}" class="package-link">
+ <xsl:value-of select="@name"/>
+ </a>
+ </td>
+ <td class="package-summary-description">
+ <xsl:apply-templates select="./gjdoc:firstSentenceTags/node()"/>
+ </td>
+ </tr>
+ </xsl:template>
+
+ <xsl:template match="/">
+ <html>
+ <head>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="'Overview'"/>
+ </xsl:call-template>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(document.title)">
+
+ <!-- Top Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="0"/>
+ <xsl:with-param name="p_curr_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="1"/>
+ </xsl:call-template>
+
+ <div class="pagebody">
+
+ <xsl:if test="$gjdoc.option.doctitle">
+ <h1 class="overview-doctitle"><xsl:value-of select="$gjdoc.option.doctitle"/></h1>
+ </xsl:if>
+ <xsl:if test="/gjdoc:rootdoc/gjdoc:firstSentenceTags">
+ <div class="overview-description-top">
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:firstSentenceTags/node()">
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ </div>
+ <div class="classdoc-tag-section-header">See Also:</div>
+ <dl class="classdoc-list">
+ <dt><a href="#description">Description</a></dt>
+ </dl>
+ </xsl:if>
+
+ <xsl:choose>
+ <xsl:when test="/gjdoc:rootdoc/gjdoc:packagegroup">
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:packagegroup">
+ <h1 class="classdoc-title"><xsl:value-of select="@name"/></h1>
+ <table border="1" cellspacing="0" class="classdoc-table">
+ <xsl:for-each select="gjdoc:package">
+ <xsl:variable name="v_name" select="@name"/>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:packagedoc[@name=$v_name]">
+ <xsl:call-template name="output_packagedoc_tr"/>
+ </xsl:for-each>
+ </xsl:for-each>
+ </table>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <h1 class="classdoc-title">All Packages</h1>
+ <table border="1" cellspacing="0" class="classdoc-table">
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:packagedoc">
+ <xsl:call-template name="output_packagedoc_tr"/>
+ </xsl:for-each>
+ </table>
+ </xsl:otherwise>
+ </xsl:choose>
+ <xsl:if test="/gjdoc:rootdoc/gjdoc:inlineTags">
+ <a name="description"/>
+ <div class="overview-description-full">
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:inlineTags/node()">
+ <xsl:copy-of select="."/>
+ </xsl:for-each>
+ </div>
+ </xsl:if>
+ </div>
+
+ <!-- Bottom Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_frames" select="1"/>
+ <xsl:with-param name="p_show_noframes" select="0"/>
+ <xsl:with-param name="p_curr_noframes" select="1"/>
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_show_package_tree" select="0"/>
+ <xsl:with-param name="p_show_full_tree" select="1"/>
+ <xsl:with-param name="p_show_index" select="1"/>
+ <xsl:with-param name="p_show_help" select="1"/>
+ <xsl:with-param name="p_top" select="0"/>
+ </xsl:call-template>
+
+ </body>
+ </html>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl
new file mode 100644
index 0000000..430b944
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packageclasses.xsl
@@ -0,0 +1,90 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- packageclasses.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the package descriptor files for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template name="add_link_to_class">
+ <a href="{concat(@name, '.html')}" target="content" class="menu packageclasses">
+ <xsl:choose>
+ <xsl:when test="gjdoc:isInterface">
+ <i><xsl:value-of select="@name"/></i>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </a><br/>
+ </xsl:template>
+
+ <xsl:template match="/">
+
+ <html>
+ <head>
+ <title>
+ <xsl:value-of select="concat(/gjdoc:rootdoc/gjdoc:title, ' - ', 'Classes in ', $gjdoc.outputfile.info)"/>
+ </title>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body onload="secondaryPageLoaded('classes');" class="menu packageclasses">
+ <h3 class="menu-title"><a href="package-summary.html" target="content"><xsl:value-of select="$gjdoc.outputfile.info"/></a></h3>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info and not(child::gjdoc:isError or child::gjdoc:isException)]">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="add_link_to_class"/>
+ </xsl:for-each>
+
+ <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info and child::gjdoc:isException]">
+ <h3><xsl:value-of select="$gjdoc.outputfile.info"/> Exceptions</h3>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info and child::gjdoc:isException]">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="add_link_to_class"/>
+ </xsl:for-each>
+ </xsl:if>
+
+ <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info and child::gjdoc:isError]">
+ <h3><xsl:value-of select="$gjdoc.outputfile.info"/> Errors</h3>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info and child::gjdoc:isError]">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="add_link_to_class"/>
+ </xsl:for-each>
+ </xsl:if>
+ </body>
+ </html>
+
+ </xsl:template>
+
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl
new file mode 100644
index 0000000..afe6fb7
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/packagedoc.xsl
@@ -0,0 +1,153 @@
+<?xml version="1.0" encoding="utf-8"?>
+
+<!-- packagedoc.xsl
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<!-- Creates the package descriptor files for HTML documentation.
+ -->
+
+<xsl:stylesheet version="1.0"
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml"
+ xmlns:html="http://www.w3.org/TR/REC-html40"
+ xmlns="http://www.w3.org/TR/REC-html40">
+
+ <xsl:include href="html_common.xsl"/>
+
+ <xsl:output method="xml"
+ encoding="utf-8"
+ indent="no"/>
+
+ <xsl:strip-space elements="*"/>
+
+ <xsl:template match="/">
+
+ <html>
+ <head>
+ <xsl:call-template name="output_title">
+ <xsl:with-param name="p_pagetitle" select="$gjdoc.outputfile.info"/>
+ </xsl:call-template>
+ <xsl:call-template name="include_common"/>
+ </head>
+ <body class="classdoc" onload="if(parent.contentPageLoaded)parent.contentPageLoaded(getTitle())">
+
+ <!-- Top Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_curr_package" select="1"/>
+ <xsl:with-param name="p_show_package_tree" select="1"/>
+ <xsl:with-param name="p_top" select="1"/>
+ </xsl:call-template>
+
+ <div class="pagebody">
+
+ <h1 class="classdoc-title">Package <xsl:value-of select="$gjdoc.outputfile.info"/></h1>
+
+ <div class="classdoc-package-comment-body">
+ <xsl:apply-templates select="/gjdoc:rootdoc/gjdoc:packagedoc[@name=$gjdoc.outputfile.info]/gjdoc:firstSentenceTags/node()"/>
+ </div>
+
+ <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isInterface]">
+ <table border="1" cellspacing="0" width="100%" class="classdoc-table">
+ <tr><td colspan="2" class="section-header"><div class="section-header">Interface Summary</div></td></tr>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isInterface]">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="output-classes-summary"/>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isOrdinaryClass]">
+ <table border="1" cellspacing="0" width="100%" class="classdoc-table">
+ <tr><td colspan="2" class="section-header"><div class="section-header">Class Summary</div></td></tr>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isOrdinaryClass]">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="output-classes-summary"/>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isException]">
+ <table border="1" cellspacing="0" width="100%" class="classdoc-table">
+ <tr><td colspan="2" class="section-header"><div class="section-header">Exception Summary</div></td></tr>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isException]">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="output-classes-summary"/>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ <xsl:if test="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isError]">
+ <table border="1" cellspacing="0" width="100%" class="classdoc-table">
+ <tr><td colspan="2" class="section-header"><div class="section-header">Error Summary</div></td></tr>
+ <xsl:for-each select="/gjdoc:rootdoc/gjdoc:classdoc[gjdoc:containingPackage/@name=$gjdoc.outputfile.info][gjdoc:isError]">
+ <xsl:sort select="@name" order="ascending"/>
+ <xsl:call-template name="output-classes-summary"/>
+ </xsl:for-each>
+ </table>
+ </xsl:if>
+
+ <a name="description"><p> </p></a>
+ <h1 class="classdoc-sub-title package-description">Package <xsl:value-of select="$gjdoc.outputfile.info"/> Description</h1>
+
+ <div class="classdoc-package-comment-body">
+ <xsl:apply-templates select="/gjdoc:rootdoc/gjdoc:packagedoc[@name=$gjdoc.outputfile.info]/gjdoc:inlineTags/node()"/>
+ </div>
+
+ </div>
+
+ <!-- Bottom Navigation Bar -->
+ <xsl:call-template name="output_navbar">
+ <xsl:with-param name="p_show_package" select="0"/>
+ <xsl:with-param name="p_curr_package" select="1"/>
+ <xsl:with-param name="p_show_package_tree" select="1"/>
+ <xsl:with-param name="p_top" select="0"/>
+ </xsl:call-template>
+ </body>
+ </html>
+
+ </xsl:template>
+
+ <xsl:template name="output-classes-summary">
+ <xsl:variable name="v_currentclass" select="@qualifiedtypename"/>
+ <xsl:variable name="v_sub_xml_filename" select="concat(@qualifiedtypename,'.xml')"/>
+ <tr>
+ <td class="class-link">
+ <a href="{concat(@name, '.html')}" class="package-link">
+ <xsl:value-of select="@name"/>
+ </a>
+ </td>
+ <td class="class-summary-description">
+ <xsl:variable name="v_docstring" select="document($v_sub_xml_filename,/gjdoc:rootdoc)/gjdoc:classdoc[@qualifiedtypename=$v_currentclass]/gjdoc:firstSentenceTags/node()"/>
+ <xsl:choose>
+ <xsl:when test="$v_docstring">
+ <xsl:for-each select="$v_docstring">
+ <xsl:value-of select="." disable-output-escaping="yes"/>
+ </xsl:for-each>
+ </xsl:when>
+ <xsl:otherwise>
+ <i>No description available.</i>
+ </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ </tr>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html
new file mode 100644
index 0000000..b59a63c
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/default_help_en.html
@@ -0,0 +1,7 @@
+ <body>
+ <h1 class="classdoc-title">Using the API Documentation</h1>
+
+ <p>
+ Write me.
+ </p>
+ </body>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js
new file mode 100644
index 0000000..125f8f6
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdoc.js
@@ -0,0 +1,108 @@
+/* gjdoc.js
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/**
+ * Sets a new stylesheet for a single frame.
+ */
+function setStyleSheetForFrame(title, frame_name)
+{
+ var i, num, a, main;
+ f = eval("top.frames." + frame_name);
+ for(i=0; (a = f.document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1
+ && a.getAttribute("title")) {
+ a.disabled = true;
+ a.disabled = (a.getAttribute("title") != title);
+ }
+ }
+}
+
+/**
+ * Sets a new stylesheet for a single document.
+ */
+function setStyleSheetForDocument(title)
+{
+ var i, num, a, main;
+ for(i=0; (a = top.document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1
+ && a.getAttribute("title")) {
+ a.disabled = true;
+ a.disabled = (a.getAttribute("title") != title);
+ }
+ }
+}
+
+/**
+ * Sets a new stylesheets for all frames.
+ */
+function setStyleSheet(title)
+{
+ var i, num, a, main;
+ num = top.frames.length;
+ if (num > 0) {
+ for (i=0; i<num; i++) {
+ setStyleSheetForFrame(title, top.frames[i].name);
+ }
+ }
+ else {
+ setStyleSheetForDocument(title);
+ }
+ top.selectedSheet = title;
+ return false;
+}
+
+/**
+ * Returns the title of the set of stylesheets that is active in the
+ * given frame.
+ */
+function getActiveStylesheetTitle(frame)
+{
+ for(i=0; (a = frame.document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1
+ && a.getAttribute("title")) {
+ if (!a.disabled) {
+ return a.getAttribute("title");
+ }
+ }
+ }
+ return "";
+}
+
+/**
+ * Invoked when a page in the main content frame has been loaded.
+ */
+function contentPageLoaded(title)
+{
+ top.document.title = title;
+ if (top.frames.length > 0)
+ setStyleSheet(getActiveStylesheetTitle(top.frames.packages), "content");
+ else if (top.selectedSheet) {
+ setStyleSheet(top.selectedSheet, "content");
+ }
+}
+
+/**
+ * Invoked when a page in one of the two frames on the left hand has
+ * been loaded.
+ */
+function secondaryPageLoaded(frame_name)
+{
+ setStyleSheet(getActiveStylesheetTitle(top.frames.packages), frame_name);
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css
new file mode 100644
index 0000000..0913e7d
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-clean.css
@@ -0,0 +1,382 @@
+/* gjdochtml-clean.css
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+body.classdoc {
+ background: white;
+ font-size: 100%;
+ margin: 0.5em 1em 0.5em 1em;
+}
+
+hr {
+ border-style: solid none none none;
+ border-width: thin;
+ height: 1px;
+ color: black;
+}
+
+hr.footer {
+ margin-top: 2em;
+}
+
+table,tr,td {
+ border: solid 1px #aaaaaa !important;
+ border-collapse: collapse !important;
+}
+
+table.classdoc-table {
+ border-width: 1px;
+ border-collapse: collapse;
+}
+
+table.classdoc-table tr {
+ border-width: 1px;
+ border-collapse: collapse;
+}
+
+table.classdoc-table td {
+ border: solid 1px #aaaaaa;
+ border-collapse: collapse;
+}
+
+.header {
+
+ border-style: solid;
+ padding: 0.2em;
+ margin: 0.3em;
+}
+
+ul {
+ padding-top: 0em;
+ margin-top: 0em;
+}
+
+td {
+ padding: 0.3em;
+ vertical-align: top;
+}
+
+td.with-border {
+ border-color: #aaaaaa;
+ border-style: solid;
+ border-top: 0px;
+}
+
+td.no-border-r {
+ border-color: #aaaaaa;
+ border-style: solid;
+ border-right: 0px;
+ border-top: 0px;
+}
+
+td.no-border-b {
+ border-color: #aaaaaa;
+ border-style: solid;
+ border-bottom: 0px;
+}
+
+td.no-border-rb {
+ border-color: #aaaaaa;
+ border-style: solid;
+ border-right: 0px;
+ border-bottom: 0px;
+}
+
+.classdoc-head {
+ border: 1px;
+ border-style: solid;
+ padding: 0.3em 0.7em 0.5em 0.7em;
+ margin: 0.0em;
+}
+
+.classdoc-head-packagename {
+ font-size: 110%;
+ padding: 0.0em;
+ margin: 0.0em;
+}
+
+.classdoc-head-classname {
+ font-size: 180%;
+ padding: 0.0em;
+ margin: 0.0em;
+}
+
+h1.classdoc-header {
+ border-width: 1px;
+ border-style: solid;
+ font-size: 140%;
+ padding: 0.2em 0.5em 0.3em 0.5em;
+ margin-top: 0.0em;
+}
+
+h2.classdoc-header {
+ border-width: 1px;
+ border-style: solid;
+ font-size: 140%;
+ padding: 0.2em 0.5em 0.3em 0.5em;
+ margin-top: 0.0em;
+}
+
+h1.classdoc-header,
+h2.classdoc-header,
+.classdoc-head,
+.classdoc-subheader,
+.section-header,
+.sub-section-header {
+ background: #80B9FF;
+ font-weight: bolder;
+}
+
+table.navbar {
+ background: #BFDCFF;
+}
+
+div[class="navbar top"] {
+ margin-bottom: 1em;
+}
+
+span[class="navi-button current"] {
+ color: white;
+ background: #0055BA;
+}
+
+span[class="navi-button unavailable"] {
+ color: #888888;
+}
+
+h3.classdoc-header {
+ font-size: 110%;
+}
+
+.classdoc-subheader {
+ border-width: 1px;
+ border-style: solid;
+ font-size: 120%;
+ padding: 1.0em;
+}
+
+.classdoc-prototype {
+}
+
+.classdoc-summary-comment {
+ margin-top: 1.0em;
+ margin-bottom: 1.0em;
+ font-size: 100%;
+}
+
+.classdoc-tree-label {
+ font-size: 80%;
+ line-height: 2.0em;
+ padding: 0%;
+ vertical-align: top;
+ height: 2.0em;
+ margin: 0%;
+ padding-left: 1.0em;
+}
+
+.classdoc-comment-body {
+ font-size: 100%;
+}
+
+blockquote.classdoc-summary-comment {
+ margin: 0.4em 0.0em 0.2em 2.0em;
+ padding: 0em;
+}
+
+div.classdoc-comment-body {
+ margin: 0.4em 0.0em 0.2em 2.0em;
+ padding: 0em;
+}
+
+div.classdoc-package-comment-body {
+ margin: 0.4em 0.0em 1.5em 0.0em;
+ padding: 0em;
+}
+
+div.classdoc-class-comment-body {
+ margin: 0.8em 0.0em 1.0em 0.0em;
+ padding: 0.0em;
+}
+
+ul.classdoc-list {
+ margin-top: 0.2em;
+ margin-left: 1.6em;
+}
+
+div.classdoc-tag-section-header {
+ margin-top: 0.5em;
+ font-weight: bold;
+}
+
+ol.classdoc-list {
+ margin-top: 0.2em;
+ margin-left: 1.6em;
+ list-style-type: circle;
+}
+
+dl.classdoc-list {
+ margin-top: 0.2em;
+ margin-left: 1.6em;
+}
+
+.navi-button {
+ padding: 0.0em;
+ margin: 0.0em;
+ padding-left: 0.2em;
+ padding-right: 0.2em;
+}
+
+.header {
+ width: 100%;
+ padding: 0.0em 0.7em 0.5em 0.0em;
+ margin: 0.0em 0.0em 0.9em 0.0em;
+ border: black 1px;
+ border-style: none none solid none;
+}
+
+.navbar-first-row {
+ width: 100%;
+ padding: 0.0em 0.7em 0.0em 0.0em;
+ margin: 0.0em 0.0em 0.4em 0.0em;
+ font-size: 80%;
+}
+
+.navbar-second-row {
+ width: 100%;
+ padding: 0.0em 0.7em 0.0em 0.0em;
+ margin: 0.0em 0.0em 0.0em 0.0em;
+ font-size: 70%;
+}
+
+.prototype {
+ text-indent:-2em;
+ font-family:monospace;
+ padding: 0em 0em 0em 2em;
+ margin: 0em;
+}
+
+.prototype-type {
+ font-family:monospace;
+ padding: 0em;
+ margin: 0em;
+}
+
+.prototype-name {
+ font-family:monospace;
+}
+
+span.parameter {
+ padding: 0em;
+ margin: 0em;
+ white-space: nowrap;
+}
+
+div.footer {
+ margin-bottom: 6cm;
+ font-style: italic;
+ font-size: 0.8em;
+}
+
+pre {
+ margin-left: 1.6em;
+}
+
+pre.inheritance-tree {
+ margin-left: 0.0em;
+}
+
+a.tree-class-link {
+ font-weight: bold;
+}
+
+span.index-category-current {
+ padding: 0.4em;
+ border: 1px black solid;
+}
+
+a.index-category-link {
+ padding: 0.4em;
+}
+
+a.menu {
+ font-size: 90%;
+}
+
+table.navbar {
+ width: 100%;
+ margin: 0px;
+ border: solid 1px #888888;
+ padding: 0px;
+}
+
+tr.navbar, td.navbar {
+ padding: 0.3em;
+ margin: 0px;
+}
+
+
+h1.overview-doctitle {
+ font-size: 170%;
+ text-align: center;
+ padding-bottom: 0.5em;
+}
+
+div.overview-description-top,
+div.overview-description-full {
+ margin-top: 1.5em;
+}
+
+table {
+ margin-top: 0em;
+ margin-bottom: 1em;
+ border-collapse: collapse;
+}
+
+span.navsep {
+}
+
+a[href] {
+ color: #0055BA;
+}
+
+a:visited {
+ color: #003B82;
+}
+
+a:active {
+ color: #80B9FF;
+}
+
+blockquote.member-summary {
+ text-indent: 2em;
+ margin: 0em;
+ margin-top: 0.2em;
+}
+
+table {
+ width: 100%;
+}
+
+td[class="member-summary method modifiers"] {
+ text-align: right;
+}
+
+td[class="member-summary field modifiers"] {
+ text-align: right;
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css
new file mode 100644
index 0000000..0c96c00
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-fixed.css
@@ -0,0 +1,286 @@
+/* gjdochtml-fixed.css
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+table {
+ border: none !important;
+ border-top: none !important;
+ border-left: none !important;
+ border-right: none !important;
+ border-bottom: none !important;
+}
+
+td {
+ border: none !important;
+ border-top: none !important;
+ border-left: none !important;
+ border-right: none !important;
+ border-bottom: none !important;
+}
+
+body.classdoc {
+ font-size: 100%;
+ margin: 0em;
+ padding: 0em;
+}
+
+table.navbar {
+ margin: 0em;
+ position: fixed;
+ z-index: 20;
+ left: 0em;
+ top: 0em;
+ width: 100%;
+ background: #0066B3;
+ color: white;
+ padding: 0.3em;
+ border-bottom: 3px solid black !important;
+ height: 5.3em;
+}
+
+table[class="navbar bottom"] {
+ visibility: hidden;
+}
+
+a.navi-button {
+ color: #FFB200;
+}
+
+.navbar-first-row {
+ font-size: 80%;
+ padding-bottom: 0.3em;
+}
+
+.navbar-second-row {
+ font-size: 70%;
+ text-align: right;
+ padding-right: 4.5em;
+}
+
+
+div.pagebody {
+ margin-top: 7em;
+ padding-left: 1em;
+ padding-right: 1em;
+ padding-bottom: 5em;
+ z-index: -100;
+}
+
+span.navsep:before {
+ padding-left: 0.25em;
+ content: "|";
+}
+
+span[class="navi-button current"] {
+ background: #003D6B;
+ color: white;
+}
+
+span[class="navi-button unavailable"] {
+ color: white;
+}
+
+.navi-button {
+ padding-left: 0.1em;
+ padding-right: 0.1em;
+
+}
+
+
+.classdoc-table-xxx {
+ border-color: #aaaaaa;
+ border-style: solid;
+ border-collapse: collapse;
+}
+
+.classdoc-table {
+ border: 0px;
+ border-collapse: collapse;
+}
+
+td {
+ vertical-align: top;
+ padding: 0.2em;
+}
+
+table {
+ margin-top: 1em;
+}
+
+span.index-category-current {
+ padding: 0.4em;
+ border: 1px black solid;
+}
+
+a.index-category-link {
+ width: 5em;
+ min-width: 5em;
+ padding: 0.3em;
+ margin-right: 0.4em;
+ color: #FFB200;
+ border: 1px #FFB200 solid;
+ text-decoration: none;
+}
+
+a[href] {
+ color: #991F00;
+}
+
+.classdoc-subtitle {
+ position: fixed;
+ left: 0.0em;
+ top: 2.7em;
+ font-size: 80%;
+ font-weight: bold;
+ color: #FFD980;
+ z-index: 30;
+ padding-left: 1.0em;
+ padding-top: 0.0em;
+ margin-top: 0.0em;
+}
+
+h1.classdoc-title {
+ position: fixed;
+ left: 0.0em;
+ top: 2.4em;
+ font-size: 130%;
+ z-index: 30;
+ color: #FFD980;
+ padding-left: 0.5em;
+ padding-top: 0.0em;
+ margin-top: 0.0em;
+}
+
+div.index-categories {
+ position: fixed;
+ left: 28em;
+ top: 5.8em;
+ font-size: 60%;
+ padding-top: 0.0em;
+ margin-top: 0.0em;
+}
+
+.before-details {
+}
+
+h3.menu-title {
+ width: 100%;
+ position: fixed;
+ left: 0em;
+ top: 0em;
+ margin-top: 0em;
+ background: #0066B3;
+ color: #FFD980;
+ padding: 0.3em;
+ padding-left: 0.8em;
+ border-bottom: 3px solid black;
+ font-size: 100%;
+}
+
+h3.menu-title > a {
+ color: #FFB200;
+}
+
+body.menu {
+ padding-top: 2em;
+}
+
+a.menu {
+ font-size: 85%;
+}
+
+a.classdoc {
+ position: relative;
+ top: -6em;
+}
+
+
+div.section-header, h1.classdoc-header {
+ background: #FFD980;
+ margin-bottom: 0px;
+ font-size: 130%;
+ font-weight: bolder;
+ padding-left: 2px;
+ margin-top: 1em;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ position: relative;
+ left: -200px;
+ padding-left: 202px;
+ padding-right: 20px;
+ border: 1px solid black;
+ width: 60%;
+}
+
+div.sub-section-header {
+ background: #FFD980;
+ margin-bottom: 0px;
+ font-size: 110%;
+ font-weight: normal;
+ padding-left: 2px;
+ margin-top: 1em;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ position: relative;
+ left: -200px;
+ padding-left: 202px;
+ padding-right: 20px;
+ border: 1px solid black;
+ width: 60%;
+}
+
+table {
+ width: 100%;
+}
+
+dl.classdoc-list {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ margin-left: 2.5em;
+}
+
+blockquote.member-summary {
+ margin: 0px;
+ font-style: oblique;
+ font-size: 90%;
+ margin-top: 0.1em;
+ margin-bottom: 0.2em;
+ margin-left: 1em;
+}
+
+td[class="member-summary method modifiers"] {
+ text-align: right;
+}
+
+div.classdoc-tag-section-header {
+ margin-top: 0.5em;
+ font-weight: bold;
+}
+
+div.navbar-style-selector {
+ position: fixed;
+ right: 1em;
+ top: 2.9em;
+ z-index: 50;
+ padding-right: 0.6em;
+ vertical-align: top;
+}
+
+/* triad @ 225 deg */
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css
new file mode 100644
index 0000000..5c7f119
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml-sclara.css
@@ -0,0 +1,266 @@
+/* gjdochtml-sclara.css
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+div.section-header,
+h1.classdoc-header {
+ background: #ccccff;
+ border: black ridge 2px;
+ border-collapse: collapse;
+ vertical-align: inherit;
+ text-align: inherit;
+ margin-bottom: 0px;
+ font-size: 155%;
+ font-weight: bold;
+ padding-left: 2px;
+ margin-top: 1em;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+
+td.section-header {
+ background: #ccccff;
+ margin-bottom: 0px;
+ font-size: 155%;
+ font-weight: bold;
+ padding-left: 2px;
+ margin-top: 1em;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+
+td.sub-section-header {
+ background: #eeeeff;
+ margin-bottom: 0px;
+ font-size: 110%;
+ font-weight: normal;
+ padding-left: 2px;
+ margin-top: 1em;
+ padding-top: 2px;
+ padding-bottom: 2px;
+}
+
+table.classdoc-table {
+ margin-top: 1.5em;
+}
+
+div.navbar-first-row {
+ background: #eeeeff;
+ padding-top: 4px;
+ padding-bottom: 4px;
+ padding-left: 4px;
+ padding-right: 4px;
+ font-size: 100%;
+ color: black;
+ font-family: Arial, sans-serif;
+ font-weight: normal;
+}
+
+div.navbar-second-row {
+ padding-top: 0px;
+ padding-bottom: 9px;
+}
+
+div.navbar-second-row a[href] {
+ text-decoration: underline;
+ font-family: Arial, sans-serif;
+ font-weight: normal;
+ font-size: 60%;
+ text-transform: uppercase;
+ padding-top: 0px;
+ margin-top: 0px;
+ background: white;
+ margin-left: 8px;
+}
+
+div.navbar-second-row span {
+ padding: 0px;
+ margin: 0px;
+}
+
+span.navi-button {
+ padding-left: 0.4em;
+ padding-right: 0.4em;
+}
+
+div.navbar-first-row span[class="navi-button current"] {
+ background: #00008B;
+ color: white;
+ font-weight: bold;
+}
+
+div.navbar-first-row span[class="navi-button unavailable"] {
+ font-weight: normal;
+}
+
+div.navbar-first-row a[href] {
+ padding-bottom: 0px;
+ font-weight: lighter;
+ text-decoration: none;
+ border-bottom: 1px solid blue;
+ position: relative;
+ top: -1px;
+}
+
+div.navbar-first-row a:visited {
+ color: black;
+ font-weight: lighter;
+ text-decoration: none;
+ border-bottom: 1px solid black;
+}
+
+div.navbar-first-row span.navi-link {
+ padding: 0px;
+ margin: 0px;
+ color: black;
+ font-weight: bold;
+ position: relative;
+ top: 1px;
+}
+
+span.navsep {
+ padding-left: 0.15em;
+}
+
+a.menu {
+ font-family: Arial, Sans-Serif;
+ font-size: 90%;
+}
+
+table.navbar[class="navbar top"] {
+ padding-bottom: 4px;
+ border-bottom: inset 1px black;
+}
+
+table {
+ width: 100%;
+ margin: 0px;
+ border: none;
+ padding: 0px;
+ border-collapse: collapse;
+ border-spacing: 0;
+}
+
+tr.navbar {
+ margin: 0px;
+ padding: 0px;
+ border: none;
+}
+
+td.navbar {
+ margin: 0px;
+ padding: 0px;
+ border: none;
+}
+
+a.package-link,
+a.class-link {
+ font-weight: bold;
+}
+
+table,tr,td {
+}
+
+table.classdoc-table {
+}
+
+table.classdoc-table tr {
+}
+
+table.classdoc-table td {
+ border: ridge 2px black;
+ border-collapse: separate;
+}
+
+td {
+ padding: 2px;
+}
+
+h1.classdoc-title,
+h1.classdoc-sub-title {
+ font-size: 150%;
+ font-weight: bold;
+}
+
+div.pagebody {
+ padding-bottom: 1em;
+}
+
+h3.menu-title {
+ font-family: Arial, Sans-Serif;
+ font-weight: normal;
+ font-size: 105%;
+}
+
+p.member-summary {
+ margin: 0px;
+ padding: 0px;
+ font-family: Monospace;
+}
+
+p.modifiers {
+ font-size: 80%;
+}
+
+a.name {
+ font-weight: bold;
+}
+
+blockquote.member-summary {
+ text-indent: 3em;
+ margin: 0px;
+}
+
+td.member-summary {
+ vertical-align: top;
+}
+
+.classdoc-head-packagename {
+ font-weight: bold;
+ padding-top: 2em;
+ padding-bottom: 0em;
+ margin: 0em;
+}
+
+.classdoc-head-classname {
+ padding-top: 0em;
+ margin-top: 0em;
+}
+
+td.super {
+ font-family: Monospace;
+}
+
+.classdoc-tag-section-header {
+ font-weight: bold;
+}
+
+dl.classdoc-list {
+ margin-top: 0px;
+ margin-bottom: 0px;
+ margin-left: 2.5em;
+}
+
+div.section-header,
+div.sub-section-header {
+ border: none;
+ padding: 0px;
+ margin: 0px;
+ font-size: inherit;
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css
new file mode 100644
index 0000000..5944c6c
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/doctranslets/html/res/gjdochtml.css
@@ -0,0 +1,29 @@
+/* gjdochtml.css
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+body {
+ background: white;
+ font-size: 100%;
+}
+
+ol.tree,
+li.tree {
+ list-style-type: disc;
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod
new file mode 100644
index 0000000..144d38d
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/dbcentx.mod
@@ -0,0 +1,204 @@
+<!-- ...................................................................... -->
+<!-- DocBook XML character entities module V4.1.2 ........................... -->
+<!-- File dbcentx.mod ..................................................... -->
+
+<!-- Copyright 1992-2000 HaL Computer Systems, Inc.,
+ O'Reilly & Associates, Inc., ArborText, Inc., Fujitsu Software
+ Corporation, Norman Walsh, and the Organization for the Advancement
+ of Structured Information Standards (OASIS).
+
+ $Id: dbcentx.mod,v 1.1 2008/05/27 19:26:05 jsumali Exp $
+
+ Permission to use, copy, modify and distribute the DocBook XML DTD
+ and its accompanying documentation for any purpose and without fee
+ is hereby granted in perpetuity, provided that the above copyright
+ notice and this paragraph appear in all copies. The copyright
+ holders make no representation about the suitability of the DTD for
+ any purpose. It is provided "as is" without expressed or implied
+ warranty.
+
+ If you modify the DocBook XML DTD in any way, except for declaring and
+ referencing additional sets of general entities and declaring
+ additional notations, label your DTD as a variant of DocBook. See
+ the maintenance documentation for more information.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+-->
+
+<!-- ...................................................................... -->
+
+<!-- This module contains the entity declarations for the standard ISO
+ entity sets used by DocBook.
+
+ In DTD driver files referring to this module, please use an entity
+ declaration that uses the public identifier shown below:
+
+ <!ENTITY % dbcent PUBLIC
+ "-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN"
+ "dbcentx.mod">
+ %dbcent;
+
+ See the documentation for detailed information on the parameter
+ entity and module scheme used in DocBook, customizing DocBook and
+ planning for interchange, and changes made since the last release
+ of DocBook.
+-->
+
+<!-- ...................................................................... -->
+
+<!ENTITY % ISOamsa.module "INCLUDE">
+<![%ISOamsa.module;[
+<!ENTITY % ISOamsa PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML"
+"ent/iso-amsa.ent">
+%ISOamsa;
+<!--end of ISOamsa.module-->]]>
+
+<!ENTITY % ISOamsb.module "INCLUDE">
+<![%ISOamsb.module;[
+<!ENTITY % ISOamsb PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML"
+"ent/iso-amsb.ent">
+%ISOamsb;
+<!--end of ISOamsb.module-->]]>
+
+<!ENTITY % ISOamsc.module "INCLUDE">
+<![%ISOamsc.module;[
+<!ENTITY % ISOamsc PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML"
+"ent/iso-amsc.ent">
+%ISOamsc;
+<!--end of ISOamsc.module-->]]>
+
+<!ENTITY % ISOamsn.module "INCLUDE">
+<![%ISOamsn.module;[
+<!ENTITY % ISOamsn PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML"
+"ent/iso-amsn.ent">
+%ISOamsn;
+<!--end of ISOamsn.module-->]]>
+
+<!ENTITY % ISOamso.module "INCLUDE">
+<![%ISOamso.module;[
+<!ENTITY % ISOamso PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML"
+"ent/iso-amso.ent">
+%ISOamso;
+<!--end of ISOamso.module-->]]>
+
+<!ENTITY % ISOamsr.module "INCLUDE">
+<![%ISOamsr.module;[
+<!ENTITY % ISOamsr PUBLIC
+"ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML"
+"ent/iso-amsr.ent">
+%ISOamsr;
+<!--end of ISOamsr.module-->]]>
+
+<!ENTITY % ISObox.module "INCLUDE">
+<![%ISObox.module;[
+<!ENTITY % ISObox PUBLIC
+"ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML"
+"ent/iso-box.ent">
+%ISObox;
+<!--end of ISObox.module-->]]>
+
+<!ENTITY % ISOcyr1.module "INCLUDE">
+<![%ISOcyr1.module;[
+<!ENTITY % ISOcyr1 PUBLIC
+"ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML"
+"ent/iso-cyr1.ent">
+%ISOcyr1;
+<!--end of ISOcyr1.module-->]]>
+
+<!ENTITY % ISOcyr2.module "INCLUDE">
+<![%ISOcyr2.module;[
+<!ENTITY % ISOcyr2 PUBLIC
+"ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML"
+"ent/iso-cyr2.ent">
+%ISOcyr2;
+<!--end of ISOcyr2.module-->]]>
+
+<!ENTITY % ISOdia.module "INCLUDE">
+<![%ISOdia.module;[
+<!ENTITY % ISOdia PUBLIC
+"ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML"
+"ent/iso-dia.ent">
+%ISOdia;
+<!--end of ISOdia.module-->]]>
+
+<!ENTITY % ISOgrk1.module "INCLUDE">
+<![%ISOgrk1.module;[
+<!ENTITY % ISOgrk1 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Letters//EN//XML"
+"ent/iso-grk1.ent">
+%ISOgrk1;
+<!--end of ISOgrk1.module-->]]>
+
+<!ENTITY % ISOgrk2.module "INCLUDE">
+<![%ISOgrk2.module;[
+<!ENTITY % ISOgrk2 PUBLIC
+"ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML"
+"ent/iso-grk2.ent">
+%ISOgrk2;
+<!--end of ISOgrk2.module-->]]>
+
+<!ENTITY % ISOgrk3.module "INCLUDE">
+<![%ISOgrk3.module;[
+<!ENTITY % ISOgrk3 PUBLIC
+"ISO 8879:1986//ENTITIES Greek Symbols//EN//XML"
+"ent/iso-grk3.ent">
+%ISOgrk3;
+<!--end of ISOgrk3.module-->]]>
+
+<!ENTITY % ISOgrk4.module "INCLUDE">
+<![%ISOgrk4.module;[
+<!ENTITY % ISOgrk4 PUBLIC
+"ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML"
+"ent/iso-grk4.ent">
+%ISOgrk4;
+<!--end of ISOgrk4.module-->]]>
+
+<!ENTITY % ISOlat1.module "INCLUDE">
+<![%ISOlat1.module;[
+<!ENTITY % ISOlat1 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 1//EN//XML"
+"ent/iso-lat1.ent">
+%ISOlat1;
+<!--end of ISOlat1.module-->]]>
+
+<!ENTITY % ISOlat2.module "INCLUDE">
+<![%ISOlat2.module;[
+<!ENTITY % ISOlat2 PUBLIC
+"ISO 8879:1986//ENTITIES Added Latin 2//EN//XML"
+"ent/iso-lat2.ent">
+%ISOlat2;
+<!--end of ISOlat2.module-->]]>
+
+<!ENTITY % ISOnum.module "INCLUDE">
+<![%ISOnum.module;[
+<!ENTITY % ISOnum PUBLIC
+"ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML"
+"ent/iso-num.ent">
+%ISOnum;
+<!--end of ISOnum.module-->]]>
+
+<!ENTITY % ISOpub.module "INCLUDE">
+<![%ISOpub.module;[
+<!ENTITY % ISOpub PUBLIC
+"ISO 8879:1986//ENTITIES Publishing//EN//XML"
+"ent/iso-pub.ent">
+%ISOpub;
+<!--end of ISOpub.module-->]]>
+
+<!ENTITY % ISOtech.module "INCLUDE">
+<![%ISOtech.module;[
+<!ENTITY % ISOtech PUBLIC
+"ISO 8879:1986//ENTITIES General Technical//EN//XML"
+"ent/iso-tech.ent">
+%ISOtech;
+<!--end of ISOtech.module-->]]>
+
+<!-- End of DocBook XML character entity sets module V4.1.2 ................. -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent
new file mode 100644
index 0000000..c03b1c9
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsa.ent
@@ -0,0 +1,98 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Arrow Relations Entities V0.3 ................ -->
+<!-- File iso-amsa.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-amsa.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-amsa.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Added Math Symbols: Arrow Relations//EN//XML
+-->
+
+<!ENTITY cularr "&#x21B6;"> <!-- ANTICLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY curarr "&#x21B7;"> <!-- CLOCKWISE TOP SEMICIRCLE ARROW -->
+<!ENTITY dArr "&#x21D3;"> <!-- DOWNWARDS DOUBLE ARROW -->
+<!ENTITY darr2 "&#x21CA;"> <!-- DOWNWARDS PAIRED ARROWS -->
+<!ENTITY dharl "&#x21C3;"> <!-- DOWNWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY dharr "&#x21C2;"> <!-- DOWNWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY lAarr "&#x21DA;"> <!-- LEFTWARDS TRIPLE ARROW -->
+<!ENTITY Larr "&#x219E;"> <!-- LEFTWARDS TWO HEADED ARROW -->
+<!ENTITY larr2 "&#x21C7;"> <!-- LEFTWARDS PAIRED ARROWS -->
+<!ENTITY larrhk "&#x21A9;"> <!-- LEFTWARDS ARROW WITH HOOK -->
+<!ENTITY larrlp "&#x21AB;"> <!-- LEFTWARDS ARROW WITH LOOP -->
+<!ENTITY larrtl "&#x21A2;"> <!-- LEFTWARDS ARROW WITH TAIL -->
+<!ENTITY lhard "&#x21BD;"> <!-- LEFTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY lharu "&#x21BC;"> <!-- LEFTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY hArr "&#x21D4;"> <!-- -->
+<!ENTITY harr "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY lrarr2 "&#x21C6;"> <!-- LEFTWARDS ARROW OVER RIGHTWARDS ARROW -->
+<!ENTITY rlarr2 "&#x21C4;"> <!-- RIGHTWARDS ARROW OVER LEFTWARDS ARROW -->
+<!ENTITY harrw "&#x21AD;"> <!-- LEFT RIGHT WAVE ARROW -->
+<!ENTITY rlhar2 "&#x21CC;"> <!-- RIGHTWARDS HARPOON OVER LEFTWARDS HARPOON -->
+<!ENTITY lrhar2 "&#x21CB;"> <!-- LEFTWARDS HARPOON OVER RIGHTWARDS HARPOON -->
+<!ENTITY lsh "&#x21B0;"> <!-- UPWARDS ARROW WITH TIP LEFTWARDS -->
+<!ENTITY map "&#x21A6;"> <!-- RIGHTWARDS ARROW FROM BAR -->
+<!ENTITY mumap "&#x22B8;"> <!-- MULTIMAP -->
+<!ENTITY nearr "&#x2197;"> <!-- NORTH EAST ARROW -->
+<!ENTITY nlArr "&#x21CD;"> <!-- LEFTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nlarr "&#x219A;"> <!-- LEFTWARDS ARROW WITH STROKE -->
+<!ENTITY nhArr "&#x21CE;"> <!-- LEFT RIGHT DOUBLE ARROW WITH STROKE -->
+<!ENTITY nharr "&#x21AE;"> <!-- LEFT RIGHT ARROW WITH STROKE -->
+<!ENTITY nrarr "&#x219B;"> <!-- RIGHTWARDS ARROW WITH STROKE -->
+<!ENTITY nrArr "&#x21CF;"> <!-- RIGHTWARDS DOUBLE ARROW WITH STROKE -->
+<!ENTITY nwarr "&#x2196;"> <!-- NORTH WEST ARROW -->
+<!ENTITY olarr "&#x21BA;"> <!-- ANTICLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY orarr "&#x21BB;"> <!-- CLOCKWISE OPEN CIRCLE ARROW -->
+<!ENTITY rAarr "&#x21DB;"> <!-- RIGHTWARDS TRIPLE ARROW -->
+<!ENTITY Rarr "&#x21A0;"> <!-- RIGHTWARDS TWO HEADED ARROW -->
+<!ENTITY rarr2 "&#x21C9;"> <!-- RIGHTWARDS PAIRED ARROWS -->
+<!ENTITY rarrhk "&#x21AA;"> <!-- RIGHTWARDS ARROW WITH HOOK -->
+<!ENTITY rarrlp "&#x21AC;"> <!-- RIGHTWARDS ARROW WITH LOOP -->
+<!ENTITY rarrtl "&#x21A3;"> <!-- RIGHTWARDS ARROW WITH TAIL -->
+<!ENTITY rarrw "&#x219D;"> <!-- RIGHTWARDS SQUIGGLE ARROW -->
+<!ENTITY rhard "&#x21C1;"> <!-- RIGHTWARDS HARPOON WITH BARB DOWNWARDS -->
+<!ENTITY rharu "&#x21C0;"> <!-- RIGHTWARDS HARPOON WITH BARB UPWARDS -->
+<!ENTITY rsh "&#x21B1;"> <!-- UPWARDS ARROW WITH TIP RIGHTWARDS -->
+<!ENTITY drarr "&#x2198;"> <!-- SOUTH EAST ARROW -->
+<!ENTITY dlarr "&#x2199;"> <!-- SOUTH WEST ARROW -->
+<!ENTITY uArr "&#x21D1;"> <!-- UPWARDS DOUBLE ARROW -->
+<!ENTITY uarr2 "&#x21C8;"> <!-- UPWARDS PAIRED ARROWS -->
+<!ENTITY vArr "&#x21D5;"> <!-- UP DOWN DOUBLE ARROW -->
+<!ENTITY varr "&#x2195;"> <!-- UP DOWN ARROW -->
+<!ENTITY uharl "&#x21BF;"> <!-- UPWARDS HARPOON WITH BARB LEFTWARDS -->
+<!ENTITY uharr "&#x21BE;"> <!-- UPWARDS HARPOON WITH BARB RIGHTWARDS -->
+<!ENTITY xlArr "&#x21D0;"> <!-- LEFTWARDS DOUBLE ARROW -->
+<!ENTITY xhArr "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY xharr "&#x2194;"> <!-- LEFT RIGHT ARROW -->
+<!ENTITY xrArr "&#x21D2;"> <!-- RIGHTWARDS DOUBLE ARROW -->
+
+<!-- End of Added Math Symbols: Arrow Relations Entities V0.3 ............. -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent
new file mode 100644
index 0000000..945d7ee
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsb.ent
@@ -0,0 +1,84 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Binary Operators Entities V0.3 ............... -->
+<!-- File iso-amsb.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-amsb.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-amsb.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Added Math Symbols: Binary Operators//EN//XML
+-->
+
+<!ENTITY amalg "&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY Barwed "&#x2306;"> <!-- PERSPECTIVE -->
+<!ENTITY barwed "&#x22BC;"> <!-- NAND -->
+<!ENTITY Cap "&#x22D2;"> <!-- DOUBLE INTERSECTION -->
+<!ENTITY Cup "&#x22D3;"> <!-- DOUBLE UNION -->
+<!ENTITY cuvee "&#x22CE;"> <!-- CURLY LOGICAL OR -->
+<!ENTITY cuwed "&#x22CF;"> <!-- CURLY LOGICAL AND -->
+<!ENTITY diam "&#x22C4;"> <!-- DIAMOND OPERATOR -->
+<!ENTITY divonx "&#x22C7;"> <!-- DIVISION TIMES -->
+<!ENTITY intcal "&#x22BA;"> <!-- INTERCALATE -->
+<!ENTITY lthree "&#x22CB;"> <!-- LEFT SEMIDIRECT PRODUCT -->
+<!ENTITY ltimes "&#x22C9;"> <!-- LEFT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY minusb "&#x229F;"> <!-- SQUARED MINUS -->
+<!ENTITY oast "&#x229B;"> <!-- CIRCLED ASTERISK OPERATOR -->
+<!ENTITY ocir "&#x229A;"> <!-- CIRCLED RING OPERATOR -->
+<!ENTITY odash "&#x229D;"> <!-- CIRCLED DASH -->
+<!ENTITY odot "&#x2299;"> <!-- CIRCLED DOT OPERATOR -->
+<!ENTITY ominus "&#x2296;"> <!-- CIRCLED MINUS -->
+<!ENTITY oplus "&#x2295;"> <!-- CIRCLED PLUS -->
+<!ENTITY osol "&#x2298;"> <!-- CIRCLED DIVISION SLASH -->
+<!ENTITY otimes "&#x2297;"> <!-- CIRCLED TIMES -->
+<!ENTITY plusb "&#x229E;"> <!-- SQUARED PLUS -->
+<!ENTITY plusdo "&#x2214;"> <!-- DOT PLUS -->
+<!ENTITY rthree "&#x22CC;"> <!-- RIGHT SEMIDIRECT PRODUCT -->
+<!ENTITY rtimes "&#x22CA;"> <!-- RIGHT NORMAL FACTOR SEMIDIRECT PRODUCT -->
+<!ENTITY sdot "&#x22C5;"> <!-- DOT OPERATOR -->
+<!ENTITY sdotb "&#x22A1;"> <!-- SQUARED DOT OPERATOR -->
+<!ENTITY setmn "&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sqcap "&#x2293;"> <!-- SQUARE CAP -->
+<!ENTITY sqcup "&#x2294;"> <!-- SQUARE CUP -->
+<!ENTITY ssetmn "&#x2216;"> <!-- SET MINUS -->
+<!ENTITY sstarf "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY timesb "&#x22A0;"> <!-- SQUARED TIMES -->
+<!ENTITY top "&#x22A4;"> <!-- DOWN TACK -->
+<!ENTITY uplus "&#x228E;"> <!-- MULTISET UNION -->
+<!ENTITY wreath "&#x2240;"> <!-- WREATH PRODUCT -->
+<!ENTITY xcirc "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY xdtri "&#x25BD;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY xutri "&#x25B3;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY coprod "&#x2210;"> <!-- N-ARY COPRODUCT -->
+<!ENTITY prod "&#x220F;"> <!-- N-ARY PRODUCT -->
+<!ENTITY sum "&#x2211;"> <!-- N-ARY SUMMATION -->
+
+<!-- End of Added Math Symbols: Binary Operators Entities V0.3 ............ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent
new file mode 100644
index 0000000..604ac48
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsc.ent
@@ -0,0 +1,52 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Delimiters Entities V0.3 ..................... -->
+<!-- File iso-amsc.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-amsc.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-amsc.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Added Math Symbols: Delimiters//EN//XML
+-->
+
+<!ENTITY rceil "&#x2309;"> <!-- RIGHT CEILING -->
+<!ENTITY rfloor "&#x230B;"> <!-- RIGHT FLOOR -->
+<!ENTITY rpargt "&#xE291;"> <!-- -->
+<!ENTITY urcorn "&#x231D;"> <!-- TOP RIGHT CORNER -->
+<!ENTITY drcorn "&#x231F;"> <!-- BOTTOM RIGHT CORNER -->
+<!ENTITY lceil "&#x2308;"> <!-- LEFT CEILING -->
+<!ENTITY lfloor "&#x230A;"> <!-- LEFT FLOOR -->
+<!-- lpargt Unknown unicode character -->
+<!ENTITY ulcorn "&#x231C;"> <!-- TOP LEFT CORNER -->
+<!ENTITY dlcorn "&#x231E;"> <!-- BOTTOM LEFT CORNER -->
+
+<!-- End of Added Math Symbols: Delimiters Entities V0.3 .................. -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent
new file mode 100644
index 0000000..fbc1e94
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsn.ent
@@ -0,0 +1,101 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Negated Relations Entities V0.3 .............. -->
+<!-- File iso-amsn.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-amsn.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-amsn.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Added Math Symbols: Negated Relations//EN//XML
+-->
+
+<!ENTITY gnap "&#xE411;"> <!-- -->
+<!ENTITY gne "&#x2269;"> <!-- -->
+<!ENTITY gnE "&#x2269;"> <!-- -->
+<!ENTITY gnsim "&#x22E7;"> <!-- GREATER-THAN BUT NOT EQUIVALENT TO -->
+<!ENTITY gvnE "&#x2269;"> <!-- GREATER-THAN BUT NOT EQUAL TO -->
+<!ENTITY lnap "&#xE2A2;"> <!-- -->
+<!ENTITY lnE "&#x2268;"> <!-- -->
+<!ENTITY lne "&#x2268;"> <!-- -->
+<!ENTITY lnsim "&#x22E6;"> <!-- -->
+<!ENTITY lvnE "&#x2268;"> <!-- LESS-THAN BUT NOT EQUAL TO -->
+<!ENTITY nap "&#x2249;"> <!-- NOT ALMOST EQUAL TO -->
+<!ENTITY ncong "&#x2247;"> <!-- NEITHER APPROXIMATELY NOR ACTUALLY EQUAL TO -->
+<!ENTITY nequiv "&#x2262;"> <!-- NOT IDENTICAL TO -->
+<!ENTITY ngE "&#x2271;"> <!-- -->
+<!ENTITY nge "&#x2271;"> <!-- NEITHER GREATER-THAN NOR EQUAL TO -->
+<!ENTITY nges "&#x2271;"> <!-- -->
+<!ENTITY ngt "&#x226F;"> <!-- NOT GREATER-THAN -->
+<!ENTITY nle "&#x2270;"> <!-- NEITHER LESS-THAN NOR EQUAL TO -->
+<!ENTITY nlE "&#x2270;"> <!-- -->
+<!ENTITY nles "&#x2270;"> <!-- -->
+<!ENTITY nlt "&#x226E;"> <!-- NOT LESS-THAN -->
+<!ENTITY nltri "&#x22EA;"> <!-- NOT NORMAL SUBGROUP OF -->
+<!ENTITY nltrie "&#x22EC;"> <!-- NOT NORMAL SUBGROUP OF OR EQUAL TO -->
+<!ENTITY nmid "&#x2224;"> <!-- DOES NOT DIVIDE -->
+<!ENTITY npar "&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY npr "&#x2280;"> <!-- DOES NOT PRECEDE -->
+<!ENTITY npre "&#x22E0;"> <!-- DOES NOT PRECEDE OR EQUAL -->
+<!ENTITY nrtri "&#x22EB;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP -->
+<!ENTITY nrtrie "&#x22ED;"> <!-- DOES NOT CONTAIN AS NORMAL SUBGROUP OR EQUAL -->
+<!ENTITY nsc "&#x2281;"> <!-- DOES NOT SUCCEED -->
+<!ENTITY nsce "&#x22E1;"> <!-- DOES NOT SUCCEED OR EQUAL -->
+<!ENTITY nsim "&#x2241;"> <!-- -->
+<!ENTITY nsime "&#x2244;"> <!-- -->
+<!ENTITY nsmid "&#xE2AA;"> <!-- -->
+<!ENTITY nspar "&#x2226;"> <!-- NOT PARALLEL TO -->
+<!ENTITY nsub "&#x2284;"> <!-- NOT A SUBSET OF -->
+<!ENTITY nsube "&#x2288;"> <!-- -->
+<!ENTITY nsubE "&#x2288;"> <!-- -->
+<!ENTITY nsup "&#x2285;"> <!-- NOT A SUPERSET OF -->
+<!ENTITY nsupE "&#x2289;"> <!-- -->
+<!ENTITY nsupe "&#x2289;"> <!-- -->
+<!ENTITY nvdash "&#x22AC;"> <!-- DOES NOT PROVE -->
+<!ENTITY nvDash "&#x22AD;"> <!-- NOT TRUE -->
+<!ENTITY nVDash "&#x22AF;"> <!-- NEGATED DOUBLE VERTICAL BAR DOUBLE RIGHT TURNSTILE -->
+<!ENTITY nVdash "&#x22AE;"> <!-- DOES NOT FORCE -->
+<!ENTITY prnap "&#x22E8;"> <!-- -->
+<!ENTITY prnE "&#xE2B3;"> <!-- -->
+<!ENTITY prnsim "&#x22E8;"> <!-- -->
+<!ENTITY scnap "&#x22E9;"> <!-- -->
+<!ENTITY scnE "&#xE2B5;"> <!-- -->
+<!ENTITY scnsim "&#x22E9;"> <!-- -->
+<!ENTITY subne "&#x228A;"> <!-- -->
+<!ENTITY subnE "&#x228A;"> <!-- SUBSET OF WITH NOT EQUAL TO -->
+<!ENTITY supne "&#x228B;"> <!-- -->
+<!ENTITY supnE "&#x228B;"> <!-- -->
+<!ENTITY vsubnE "&#xE2B8;"> <!-- -->
+<!ENTITY vsubne "&#x228A;"> <!-- SUBSET OF WITH NOT EQUAL TO -->
+<!ENTITY vsupne "&#x228B;"> <!-- SUPERSET OF WITH NOT EQUAL TO -->
+<!ENTITY vsupnE "&#x228B;"> <!-- SUPERSET OF WITH NOT EQUAL TO -->
+
+<!-- End of ISO Added Math Symbols: Negated Relations Entities V0.3 ....... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent
new file mode 100644
index 0000000..6dc6810
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amso.ent
@@ -0,0 +1,68 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Ordinary Entities V0.3 ....................... -->
+<!-- File iso-amso.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-amso.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-amso.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Added Math Symbols: Ordinary//EN//XML
+-->
+
+<!-- iso-amso.ent (initially distributed with DocBook XML DTD V4.1.1beta1) -->
+
+<!-- Derived from the corresponding ISO 8879 standard entity set
+ and the Unicode character mappings provided by Sebastian Rahtz
+ With additional derivations from
+ ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT -->
+
+<!ENTITY ang "&#x2220;"> <!-- ANGLE -->
+<!ENTITY angmsd "&#x2221;"> <!-- MEASURED ANGLE -->
+<!ENTITY beth "&#x2136;"> <!-- BET SYMBOL -->
+<!ENTITY bprime "&#x2035;"> <!-- REVERSED PRIME -->
+<!ENTITY comp "&#x2201;"> <!-- COMPLEMENT -->
+<!ENTITY daleth "&#x2138;"> <!-- DALET SYMBOL -->
+<!ENTITY ell "&#x2113;"> <!-- SCRIPT SMALL L -->
+<!ENTITY empty "&#x2205;"> <!-- -->
+<!ENTITY gimel "&#x2137;"> <!-- GIMEL SYMBOL -->
+<!ENTITY image "&#x2111;"> <!-- BLACK-LETTER CAPITAL I -->
+<!ENTITY inodot "&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!-- jnodot Unknown unicode character -->
+<!ENTITY nexist "&#x2204;"> <!-- THERE DOES NOT EXIST -->
+<!ENTITY oS "&#x24C8;"> <!-- CIRCLED LATIN CAPITAL LETTER S -->
+<!ENTITY planck "&#x210F;"> <!-- PLANCK CONSTANT OVER TWO PI -->
+<!ENTITY real "&#x211C;"> <!-- BLACK-LETTER CAPITAL R -->
+<!ENTITY sbsol "&#xFE68;"> <!-- SMALL REVERSE SOLIDUS -->
+<!ENTITY vprime "&#x2032;"> <!-- PRIME -->
+<!ENTITY weierp "&#x2118;"> <!-- SCRIPT CAPITAL P -->
+
+<!-- End of ISO Added Math Symbols: Ordinary Entities V0.3 ................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent
new file mode 100644
index 0000000..9c370b3
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-amsr.ent
@@ -0,0 +1,126 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Math Symbols: Relations Entities V0.3 ...................... -->
+<!-- File iso-amsr.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-amsr.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-amsr.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Added Math Symbols: Relations//EN//XML
+-->
+
+<!ENTITY ape "&#x224A;"> <!-- -->
+<!ENTITY asymp "&#x224D;"> <!-- EQUIVALENT TO -->
+<!ENTITY bcong "&#x224C;"> <!-- ALL EQUAL TO -->
+<!ENTITY bepsi "&#x220D;"> <!-- SMALL CONTAINS AS MEMBER -->
+<!ENTITY bowtie "&#x22C8;"> <!-- -->
+<!ENTITY bsim "&#x223D;"> <!-- -->
+<!ENTITY bsime "&#x22CD;"> <!-- -->
+<!ENTITY bump "&#x224E;"> <!-- -->
+<!ENTITY bumpe "&#x224F;"> <!-- -->
+<!ENTITY cire "&#x2257;"> <!-- -->
+<!ENTITY colone "&#x2254;"> <!-- -->
+<!ENTITY cuepr "&#x22DE;"> <!-- -->
+<!ENTITY cuesc "&#x22DF;"> <!-- -->
+<!ENTITY cupre "&#x227C;"> <!-- -->
+<!ENTITY dashv "&#x22A3;"> <!-- -->
+<!ENTITY ecir "&#x2256;"> <!-- -->
+<!ENTITY ecolon "&#x2255;"> <!-- -->
+<!ENTITY eDot "&#x2251;"> <!-- -->
+<!ENTITY esdot "&#x2250;"> <!-- -->
+<!ENTITY efDot "&#x2252;"> <!-- -->
+<!ENTITY egs "&#x22DD;"> <!-- -->
+<!ENTITY els "&#x22DC;"> <!-- -->
+<!ENTITY erDot "&#x2253;"> <!-- -->
+<!ENTITY fork "&#x22D4;"> <!-- -->
+<!ENTITY frown "&#x2322;"> <!-- -->
+<!ENTITY gap "&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY gsdot "&#x22D7;"> <!-- -->
+<!ENTITY gE "&#x2267;"> <!-- -->
+<!ENTITY gel "&#x22DB;"> <!-- -->
+<!ENTITY gEl "&#x22DB;"> <!-- -->
+<!ENTITY ges "&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY Gg "&#x22D9;"> <!-- VERY MUCH GREATER-THAN -->
+<!ENTITY gl "&#x2277;"> <!-- -->
+<!ENTITY gsim "&#x2273;"> <!-- GREATER-THAN OR EQUIVALENT TO -->
+<!ENTITY Gt "&#x226B;"> <!-- MUCH GREATER-THAN -->
+<!ENTITY lap "&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY ldot "&#x22D6;"> <!-- -->
+<!ENTITY lE "&#x2266;"> <!-- -->
+<!ENTITY lEg "&#x22DA;"> <!-- -->
+<!ENTITY leg "&#x22DA;"> <!-- -->
+<!ENTITY les "&#x2264;"> <!-- LESS-THAN OR EQUAL TO -->
+<!ENTITY lg "&#x2276;"> <!-- LESS-THAN OR GREATER-THAN -->
+<!ENTITY Ll "&#x22D8;"> <!-- -->
+<!ENTITY lsim "&#x2272;"> <!-- LESS-THAN OR EQUIVALENT TO -->
+<!ENTITY Lt "&#x226A;"> <!-- MUCH LESS-THAN -->
+<!ENTITY ltrie "&#x22B4;"> <!-- -->
+<!ENTITY mid "&#x2223;"> <!-- -->
+<!ENTITY models "&#x22A7;"> <!-- MODELS -->
+<!ENTITY pr "&#x227A;"> <!-- -->
+<!ENTITY prap "&#x227E;"> <!-- -->
+<!ENTITY pre "&#x227C;"> <!-- -->
+<!ENTITY prsim "&#x227E;"> <!-- -->
+<!ENTITY rtrie "&#x22B5;"> <!-- -->
+<!ENTITY samalg "&#x2210;"> <!-- -->
+<!ENTITY sc "&#x227B;"> <!-- -->
+<!ENTITY scap "&#x227F;"> <!-- -->
+<!ENTITY sccue "&#x227D;"> <!-- -->
+<!ENTITY sce "&#x227D;"> <!-- -->
+<!ENTITY scsim "&#x227F;"> <!-- -->
+<!ENTITY sfrown "&#x2322;"> <!-- FROWN -->
+<!ENTITY smid "&#xE301;"> <!-- -->
+<!ENTITY smile "&#x2323;"> <!-- -->
+<!ENTITY spar "&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY sqsub "&#x228F;"> <!-- -->
+<!ENTITY sqsube "&#x2291;"> <!-- -->
+<!ENTITY sqsup "&#x2290;"> <!-- -->
+<!ENTITY sqsupe "&#x2292;"> <!-- -->
+<!ENTITY ssmile "&#x2323;"> <!-- SMILE -->
+<!ENTITY Sub "&#x22D0;"> <!-- -->
+<!ENTITY subE "&#x2286;"> <!-- -->
+<!ENTITY Sup "&#x22D1;"> <!-- -->
+<!ENTITY supE "&#x2287;"> <!-- -->
+<!ENTITY thkap "&#x2248;"> <!-- ALMOST EQUAL TO -->
+<!ENTITY thksim "&#x223C;"> <!-- TILDE OPERATOR -->
+<!ENTITY trie "&#x225C;"> <!-- -->
+<!ENTITY twixt "&#x226C;"> <!-- BETWEEN -->
+<!ENTITY vdash "&#x22A2;"> <!-- -->
+<!ENTITY Vdash "&#x22A9;"> <!-- -->
+<!ENTITY vDash "&#x22A8;"> <!-- -->
+<!ENTITY veebar "&#x22BB;"> <!-- -->
+<!ENTITY vltri "&#x22B2;"> <!-- -->
+<!ENTITY vprop "&#x221D;"> <!-- -->
+<!ENTITY vrtri "&#x22B3;"> <!-- -->
+<!ENTITY Vvdash "&#x22AA;"> <!-- -->
+
+<!-- End of ISO Added Math Symbols: Relations Entities V0.3 ............... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent
new file mode 100644
index 0000000..904916c
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-box.ent
@@ -0,0 +1,82 @@
+<!-- ...................................................................... -->
+<!-- ISO Box and Line Drawing Entities V0.3 ............................... -->
+<!-- File iso-box.ent ..................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-box.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-box.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Box and Line Drawing//EN//XML
+-->
+
+<!ENTITY boxh "&#x2500;"> <!-- BOX DRAWINGS LIGHT HORIZONTAL -->
+<!ENTITY boxv "&#x2502;"> <!-- BOX DRAWINGS LIGHT VERTICAL -->
+<!ENTITY boxur "&#x2514;"> <!-- BOX DRAWINGS LIGHT UP AND RIGHT -->
+<!ENTITY boxul "&#x2518;"> <!-- BOX DRAWINGS LIGHT UP AND LEFT -->
+<!ENTITY boxdl "&#x2510;"> <!-- BOX DRAWINGS LIGHT DOWN AND LEFT -->
+<!ENTITY boxdr "&#x250C;"> <!-- BOX DRAWINGS LIGHT DOWN AND RIGHT -->
+<!ENTITY boxvr "&#x251C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND RIGHT -->
+<!ENTITY boxhu "&#x2534;"> <!-- BOX DRAWINGS LIGHT UP AND HORIZONTAL -->
+<!ENTITY boxvl "&#x2524;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND LEFT -->
+<!ENTITY boxhd "&#x252C;"> <!-- BOX DRAWINGS LIGHT DOWN AND HORIZONTAL -->
+<!ENTITY boxvh "&#x253C;"> <!-- BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL -->
+<!ENTITY boxvR "&#x255E;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxhU "&#x2567;"> <!-- BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvL "&#x2561;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxhD "&#x2564;"> <!-- BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxvH "&#x256A;"> <!-- BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE -->
+<!ENTITY boxH "&#x2550;"> <!-- BOX DRAWINGS DOUBLE HORIZONTAL -->
+<!ENTITY boxV "&#x2551;"> <!-- BOX DRAWINGS DOUBLE VERTICAL -->
+<!ENTITY boxUR "&#x2558;"> <!-- BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxUL "&#x255B;"> <!-- BOX DRAWINGS UP SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDL "&#x2555;"> <!-- BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE -->
+<!ENTITY boxDR "&#x2552;"> <!-- BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE -->
+<!ENTITY boxVR "&#x255F;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxHU "&#x2568;"> <!-- BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVL "&#x2562;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxHD "&#x2565;"> <!-- BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVH "&#x256B;"> <!-- BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE -->
+<!ENTITY boxVr "&#x2560;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND RIGHT -->
+<!ENTITY boxHu "&#x2569;"> <!-- BOX DRAWINGS DOUBLE UP AND HORIZONTAL -->
+<!ENTITY boxVl "&#x2563;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND LEFT -->
+<!ENTITY boxHd "&#x2566;"> <!-- BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL -->
+<!ENTITY boxVh "&#x256C;"> <!-- BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL -->
+<!ENTITY boxuR "&#x2559;"> <!-- BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUl "&#x255C;"> <!-- BOX DRAWINGS UP DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxdL "&#x2556;"> <!-- BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE -->
+<!ENTITY boxDr "&#x2553;"> <!-- BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE -->
+<!ENTITY boxUr "&#x255A;"> <!-- BOX DRAWINGS DOUBLE UP AND RIGHT -->
+<!ENTITY boxuL "&#x255D;"> <!-- BOX DRAWINGS DOUBLE UP AND LEFT -->
+<!ENTITY boxDl "&#x2557;"> <!-- BOX DRAWINGS DOUBLE DOWN AND LEFT -->
+<!ENTITY boxdR "&#x2554;"> <!-- BOX DRAWINGS DOUBLE DOWN AND RIGHT -->
+
+<!-- End of ISO Box and Line Drawing Entities V0.3 ........................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent
new file mode 100644
index 0000000..6507c79
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr1.ent
@@ -0,0 +1,109 @@
+<!-- ...................................................................... -->
+<!-- ISO Russian Cyrillic Entities V0.3 ................................... -->
+<!-- File iso-cyr1.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-cyr1.ent,v 1.1 2008/05/27 19:26:06 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-cyr1.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Russian Cyrillic//EN//XML
+-->
+
+<!ENTITY acy "&#x0430;"> <!-- CYRILLIC SMALL LETTER A -->
+<!ENTITY Acy "&#x0410;"> <!-- CYRILLIC CAPITAL LETTER A -->
+<!ENTITY bcy "&#x0431;"> <!-- CYRILLIC SMALL LETTER BE -->
+<!ENTITY Bcy "&#x0411;"> <!-- CYRILLIC CAPITAL LETTER BE -->
+<!ENTITY vcy "&#x0432;"> <!-- CYRILLIC SMALL LETTER VE -->
+<!ENTITY Vcy "&#x0412;"> <!-- CYRILLIC CAPITAL LETTER VE -->
+<!ENTITY gcy "&#x0433;"> <!-- CYRILLIC SMALL LETTER GHE -->
+<!ENTITY Gcy "&#x0413;"> <!-- CYRILLIC CAPITAL LETTER GHE -->
+<!ENTITY dcy "&#x0434;"> <!-- CYRILLIC SMALL LETTER DE -->
+<!ENTITY Dcy "&#x0414;"> <!-- CYRILLIC CAPITAL LETTER DE -->
+<!ENTITY iecy "&#x0435;"> <!-- CYRILLIC SMALL LETTER IE -->
+<!ENTITY IEcy "&#x0415;"> <!-- CYRILLIC CAPITAL LETTER IE -->
+<!ENTITY iocy "&#x0451;"> <!-- CYRILLIC SMALL LETTER IO -->
+<!ENTITY IOcy "&#x0401;"> <!-- CYRILLIC CAPITAL LETTER IO -->
+<!ENTITY zhcy "&#x0436;"> <!-- CYRILLIC SMALL LETTER ZHE -->
+<!ENTITY ZHcy "&#x0416;"> <!-- CYRILLIC CAPITAL LETTER ZHE -->
+<!ENTITY zcy "&#x0437;"> <!-- CYRILLIC SMALL LETTER ZE -->
+<!ENTITY Zcy "&#x0417;"> <!-- CYRILLIC CAPITAL LETTER ZE -->
+<!ENTITY icy "&#x0438;"> <!-- CYRILLIC SMALL LETTER I -->
+<!ENTITY Icy "&#x0418;"> <!-- CYRILLIC CAPITAL LETTER I -->
+<!ENTITY jcy "&#x0439;"> <!-- CYRILLIC SMALL LETTER SHORT I -->
+<!ENTITY Jcy "&#x0419;"> <!-- CYRILLIC CAPITAL LETTER SHORT I -->
+<!ENTITY kcy "&#x043A;"> <!-- CYRILLIC SMALL LETTER KA -->
+<!ENTITY Kcy "&#x041A;"> <!-- CYRILLIC CAPITAL LETTER KA -->
+<!ENTITY lcy "&#x043B;"> <!-- CYRILLIC SMALL LETTER EL -->
+<!ENTITY Lcy "&#x041B;"> <!-- CYRILLIC CAPITAL LETTER EL -->
+<!ENTITY mcy "&#x043C;"> <!-- CYRILLIC SMALL LETTER EM -->
+<!ENTITY Mcy "&#x041C;"> <!-- CYRILLIC CAPITAL LETTER EM -->
+<!ENTITY ncy "&#x043D;"> <!-- CYRILLIC SMALL LETTER EN -->
+<!ENTITY Ncy "&#x041D;"> <!-- CYRILLIC CAPITAL LETTER EN -->
+<!ENTITY ocy "&#x043E;"> <!-- CYRILLIC SMALL LETTER O -->
+<!ENTITY Ocy "&#x041E;"> <!-- CYRILLIC CAPITAL LETTER O -->
+<!ENTITY pcy "&#x043F;"> <!-- CYRILLIC SMALL LETTER PE -->
+<!ENTITY Pcy "&#x041F;"> <!-- CYRILLIC CAPITAL LETTER PE -->
+<!ENTITY rcy "&#x0440;"> <!-- CYRILLIC SMALL LETTER ER -->
+<!ENTITY Rcy "&#x0420;"> <!-- CYRILLIC CAPITAL LETTER ER -->
+<!ENTITY scy "&#x0441;"> <!-- CYRILLIC SMALL LETTER ES -->
+<!ENTITY Scy "&#x0421;"> <!-- CYRILLIC CAPITAL LETTER ES -->
+<!ENTITY tcy "&#x0442;"> <!-- CYRILLIC SMALL LETTER TE -->
+<!ENTITY Tcy "&#x0422;"> <!-- CYRILLIC CAPITAL LETTER TE -->
+<!ENTITY ucy "&#x0443;"> <!-- CYRILLIC SMALL LETTER U -->
+<!ENTITY Ucy "&#x0423;"> <!-- CYRILLIC CAPITAL LETTER U -->
+<!ENTITY fcy "&#x0444;"> <!-- CYRILLIC SMALL LETTER EF -->
+<!ENTITY Fcy "&#x0424;"> <!-- CYRILLIC CAPITAL LETTER EF -->
+<!ENTITY khcy "&#x0445;"> <!-- CYRILLIC SMALL LETTER HA -->
+<!ENTITY KHcy "&#x0425;"> <!-- CYRILLIC CAPITAL LETTER HA -->
+<!ENTITY tscy "&#x0446;"> <!-- CYRILLIC SMALL LETTER TSE -->
+<!ENTITY TScy "&#x0426;"> <!-- CYRILLIC CAPITAL LETTER TSE -->
+<!ENTITY chcy "&#x0447;"> <!-- CYRILLIC SMALL LETTER CHE -->
+<!ENTITY CHcy "&#x0427;"> <!-- CYRILLIC CAPITAL LETTER CHE -->
+<!ENTITY shcy "&#x0448;"> <!-- CYRILLIC SMALL LETTER SHA -->
+<!ENTITY SHcy "&#x0428;"> <!-- CYRILLIC CAPITAL LETTER SHA -->
+<!ENTITY shchcy "&#x0449;"> <!-- CYRILLIC SMALL LETTER SHCHA -->
+<!ENTITY SHCHcy "&#x0429;"> <!-- CYRILLIC CAPITAL LETTER SHCHA -->
+<!ENTITY hardcy "&#x044A;"> <!-- CYRILLIC SMALL LETTER HARD SIGN -->
+<!ENTITY HARDcy "&#x042A;"> <!-- CYRILLIC CAPITAL LETTER HARD SIGN -->
+<!ENTITY ycy "&#x044B;"> <!-- CYRILLIC SMALL LETTER YERU -->
+<!ENTITY Ycy "&#x042B;"> <!-- CYRILLIC CAPITAL LETTER YERU -->
+<!ENTITY softcy "&#x044C;"> <!-- CYRILLIC SMALL LETTER SOFT SIGN -->
+<!ENTITY SOFTcy "&#x042C;"> <!-- CYRILLIC CAPITAL LETTER SOFT SIGN -->
+<!ENTITY ecy "&#x044D;"> <!-- CYRILLIC SMALL LETTER E -->
+<!ENTITY Ecy "&#x042D;"> <!-- CYRILLIC CAPITAL LETTER E -->
+<!ENTITY yucy "&#x044E;"> <!-- CYRILLIC SMALL LETTER YU -->
+<!ENTITY YUcy "&#x042E;"> <!-- CYRILLIC CAPITAL LETTER YU -->
+<!ENTITY yacy "&#x044F;"> <!-- CYRILLIC SMALL LETTER YA -->
+<!ENTITY YAcy "&#x042F;"> <!-- CYRILLIC CAPITAL LETTER YA -->
+<!ENTITY numero "&#x2116;"> <!-- NUMERO SIGN -->
+
+<!-- End of ISO Russian Cyrillic Entities V0.3 ............................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent
new file mode 100644
index 0000000..50f5347
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-cyr2.ent
@@ -0,0 +1,68 @@
+<!-- ...................................................................... -->
+<!-- ISO Non-Russian Cyrillic Entities V0.3 ............................... -->
+<!-- File iso-cyr2.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-cyr2.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-cyr2.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Non-Russian Cyrillic//EN//XML
+-->
+
+<!ENTITY djcy "&#x0452;"> <!-- CYRILLIC SMALL LETTER DJE -->
+<!ENTITY DJcy "&#x0402;"> <!-- CYRILLIC CAPITAL LETTER DJE -->
+<!ENTITY gjcy "&#x0453;"> <!-- CYRILLIC SMALL LETTER GJE -->
+<!ENTITY GJcy "&#x0403;"> <!-- CYRILLIC CAPITAL LETTER GJE -->
+<!ENTITY jukcy "&#x0454;"> <!-- CYRILLIC SMALL LETTER UKRAINIAN IE -->
+<!ENTITY Jukcy "&#x0404;"> <!-- CYRILLIC CAPITAL LETTER UKRAINIAN IE -->
+<!ENTITY dscy "&#x0455;"> <!-- CYRILLIC SMALL LETTER DZE -->
+<!ENTITY DScy "&#x0405;"> <!-- CYRILLIC CAPITAL LETTER DZE -->
+<!ENTITY iukcy "&#x0456;"> <!-- CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY Iukcy "&#x0406;"> <!-- CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I -->
+<!ENTITY yicy "&#x0457;"> <!-- CYRILLIC SMALL LETTER YI -->
+<!ENTITY YIcy "&#x0407;"> <!-- CYRILLIC CAPITAL LETTER YI -->
+<!ENTITY jsercy "&#x0458;"> <!-- CYRILLIC SMALL LETTER JE -->
+<!ENTITY Jsercy "&#x0408;"> <!-- CYRILLIC CAPITAL LETTER JE -->
+<!ENTITY ljcy "&#x0459;"> <!-- CYRILLIC SMALL LETTER LJE -->
+<!ENTITY LJcy "&#x0409;"> <!-- CYRILLIC CAPITAL LETTER LJE -->
+<!ENTITY njcy "&#x045A;"> <!-- CYRILLIC SMALL LETTER NJE -->
+<!ENTITY NJcy "&#x040A;"> <!-- CYRILLIC CAPITAL LETTER NJE -->
+<!ENTITY tshcy "&#x045B;"> <!-- CYRILLIC SMALL LETTER TSHE -->
+<!ENTITY TSHcy "&#x040B;"> <!-- CYRILLIC CAPITAL LETTER TSHE -->
+<!ENTITY kjcy "&#x045C;"> <!-- CYRILLIC SMALL LETTER KJE -->
+<!ENTITY KJcy "&#x040C;"> <!-- CYRILLIC CAPITAL LETTER KJE -->
+<!ENTITY ubrcy "&#x045E;"> <!-- CYRILLIC SMALL LETTER SHORT U -->
+<!ENTITY Ubrcy "&#x040E;"> <!-- CYRILLIC CAPITAL LETTER SHORT U -->
+<!ENTITY dzcy "&#x045F;"> <!-- CYRILLIC SMALL LETTER DZHE -->
+<!ENTITY DZcy "&#x040F;"> <!-- CYRILLIC CAPITAL LETTER DZHE -->
+
+<!-- End of ISO Non-Russian Cyrillic Entities V0.3 ........................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent
new file mode 100644
index 0000000..278e5d9
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-dia.ent
@@ -0,0 +1,56 @@
+<!-- ...................................................................... -->
+<!-- ISO Diacritical Marks Entities V0.3 .................................. -->
+<!-- File iso-dia.ent ..................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-dia.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-dia.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Diacritical Marks//EN//XML
+-->
+
+<!ENTITY acute "&#x00B4;"> <!-- ACUTE ACCENT -->
+<!ENTITY breve "&#x02D8;"> <!-- BREVE -->
+<!ENTITY caron "&#x02C7;"> <!-- CARON -->
+<!ENTITY cedil "&#x00B8;"> <!-- CEDILLA -->
+<!ENTITY circ "&#x005E;"> <!-- RING OPERATOR -->
+<!ENTITY dblac "&#x02DD;"> <!-- DOUBLE ACUTE ACCENT -->
+<!ENTITY die "&#x00A8;"> <!-- -->
+<!ENTITY dot "&#x02D9;"> <!-- DOT ABOVE -->
+<!ENTITY grave "&#x0060;"> <!-- GRAVE ACCENT -->
+<!ENTITY macr "&#x00AF;"> <!-- MACRON -->
+<!ENTITY ogon "&#x02DB;"> <!-- OGONEK -->
+<!ENTITY ring "&#x02DA;"> <!-- RING ABOVE -->
+<!ENTITY tilde "&#x02DC;"> <!-- TILDE -->
+<!ENTITY uml "&#x00A8;"> <!-- -->
+
+<!-- End of ISO Diacritical Marks Entities V0.3 ........................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent
new file mode 100644
index 0000000..848f203
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk1.ent
@@ -0,0 +1,91 @@
+<!-- ...................................................................... -->
+<!-- ISO Greek Letters Entities V0.3 ...................................... -->
+<!-- File iso-grk1.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-grk1.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-grk1.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Greek Letters//EN//XML
+-->
+
+<!ENTITY agr "&#x03B1;"> <!-- -->
+<!ENTITY Agr "&#x0391;"> <!-- GREEK CAPITAL LETTER ALPHA -->
+<!ENTITY bgr "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY Bgr "&#x0392;"> <!-- GREEK CAPITAL LETTER BETA -->
+<!ENTITY ggr "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Ggr "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY dgr "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Dgr "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY egr "&#x03B5;"> <!-- -->
+<!ENTITY Egr "&#x0395;"> <!-- GREEK CAPITAL LETTER EPSILON -->
+<!ENTITY zgr "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY Zgr "&#x0396;"> <!-- GREEK CAPITAL LETTER ZETA -->
+<!ENTITY eegr "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY EEgr "&#x0397;"> <!-- GREEK CAPITAL LETTER ETA -->
+<!ENTITY thgr "&#x03B8;"> <!-- -->
+<!ENTITY THgr "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY igr "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY Igr "&#x0399;"> <!-- GREEK CAPITAL LETTER IOTA -->
+<!ENTITY kgr "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY Kgr "&#x039A;"> <!-- GREEK CAPITAL LETTER KAPPA -->
+<!ENTITY lgr "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lgr "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mgr "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY Mgr "&#x039C;"> <!-- GREEK CAPITAL LETTER MU -->
+<!ENTITY ngr "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY Ngr "&#x039D;"> <!-- GREEK CAPITAL LETTER NU -->
+<!ENTITY xgr "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xgr "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY ogr "&#x03BF;"> <!-- GREEK SMALL LETTER OMICRON -->
+<!ENTITY Ogr "&#x039F;"> <!-- GREEK CAPITAL LETTER OMICRON -->
+<!ENTITY pgr "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY Pgr "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rgr "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY Rgr "&#x03A1;"> <!-- GREEK CAPITAL LETTER RHO -->
+<!ENTITY sgr "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sgr "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sfgr "&#x03C2;"> <!-- -->
+<!ENTITY tgr "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY Tgr "&#x03A4;"> <!-- GREEK CAPITAL LETTER TAU -->
+<!ENTITY ugr "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Ugr "&#x03A5;"> <!-- -->
+<!ENTITY phgr "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY PHgr "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY khgr "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY KHgr "&#x03A7;"> <!-- GREEK CAPITAL LETTER CHI -->
+<!ENTITY psgr "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY PSgr "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY ohgr "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY OHgr "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
+
+<!-- End of ISO Greek Letters V0.3 ........................................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent
new file mode 100644
index 0000000..a75f5b0
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk2.ent
@@ -0,0 +1,62 @@
+<!-- ...................................................................... -->
+<!-- ISO Monotoniko Greek Entities V0.3 ................................... -->
+<!-- File iso-grk2.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-grk2.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-grk2.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Monotoniko Greek//EN//XML
+-->
+
+<!ENTITY aacgr "&#x03AC;"> <!-- GREEK SMALL LETTER ALPHA WITH TONOS -->
+<!ENTITY Aacgr "&#x0386;"> <!-- GREEK CAPITAL LETTER ALPHA WITH TONOS -->
+<!ENTITY eacgr "&#x03AD;"> <!-- GREEK SMALL LETTER EPSILON WITH TONOS -->
+<!ENTITY Eacgr "&#x0388;"> <!-- GREEK CAPITAL LETTER EPSILON WITH TONOS -->
+<!ENTITY eeacgr "&#x03AE;"> <!-- GREEK SMALL LETTER ETA WITH TONOS -->
+<!ENTITY EEacgr "&#x0389;"> <!-- GREEK CAPITAL LETTER ETA WITH TONOS -->
+<!ENTITY idigr "&#x03CA;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY Idigr "&#x03AA;"> <!-- GREEK CAPITAL LETTER IOTA WITH DIALYTIKA -->
+<!ENTITY iacgr "&#x03AF;"> <!-- GREEK SMALL LETTER IOTA WITH TONOS -->
+<!ENTITY Iacgr "&#x038A;"> <!-- GREEK CAPITAL LETTER IOTA WITH TONOS -->
+<!ENTITY idiagr "&#x0390;"> <!-- GREEK SMALL LETTER IOTA WITH DIALYTIKA AND TONOS -->
+<!ENTITY oacgr "&#x03CC;"> <!-- GREEK SMALL LETTER OMICRON WITH TONOS -->
+<!ENTITY Oacgr "&#x038C;"> <!-- GREEK CAPITAL LETTER OMICRON WITH TONOS -->
+<!ENTITY udigr "&#x03CB;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY Udigr "&#x03AB;"> <!-- GREEK CAPITAL LETTER UPSILON WITH DIALYTIKA -->
+<!ENTITY uacgr "&#x03CD;"> <!-- GREEK SMALL LETTER UPSILON WITH TONOS -->
+<!ENTITY Uacgr "&#x038E;"> <!-- GREEK CAPITAL LETTER UPSILON WITH TONOS -->
+<!ENTITY udiagr "&#x03B0;"> <!-- GREEK SMALL LETTER UPSILON WITH DIALYTIKA AND TONOS -->
+<!ENTITY ohacgr "&#x03CE;"> <!-- GREEK SMALL LETTER OMEGA WITH TONOS -->
+<!ENTITY OHacgr "&#x038F;"> <!-- GREEK CAPITAL LETTER OMEGA WITH TONOS -->
+
+<!-- End of ISO Monotoniko Greek Entities V0.3 ............................ -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent
new file mode 100644
index 0000000..070ef25
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk3.ent
@@ -0,0 +1,85 @@
+<!-- ...................................................................... -->
+<!-- ISO Greek Symbols Entities V0.3 ...................................... -->
+<!-- File iso-grk3.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-grk3.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-grk3.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Greek Symbols//EN//XML
+-->
+
+<!ENTITY alpha "&#x03B1;"> <!-- -->
+<!ENTITY beta "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY gamma "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY Gamma "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY gammad "&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY delta "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY Delta "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY epsi "&#x220A;"> <!-- -->
+<!ENTITY epsiv "&#x03B5;"> <!-- -->
+<!ENTITY epsis "&#x220A;"> <!-- -->
+<!ENTITY zeta "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY eta "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY thetas "&#x03B8;"> <!-- -->
+<!ENTITY Theta "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY thetav "&#x03D1;"> <!-- -->
+<!ENTITY iota "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY kappa "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY kappav "&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY lambda "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY Lambda "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY mu "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY nu "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY xi "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY Xi "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY pi "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY piv "&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY Pi "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY rho "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY rhov "&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY sigma "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY Sigma "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY sigmav "&#x03C2;"> <!-- -->
+<!ENTITY tau "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY upsi "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY Upsi "&#x03D2;"> <!-- -->
+<!ENTITY phis "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY Phi "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY phiv "&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY chi "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY psi "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY Psi "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY omega "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY Omega "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
+
+<!-- End of ISO Greek Symbols Entities V0.3 ............................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent
new file mode 100644
index 0000000..18c96eb
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-grk4.ent
@@ -0,0 +1,85 @@
+<!-- ...................................................................... -->
+<!-- ISO Alternative Greek Symbols Entities V0.3 .......................... -->
+<!-- File iso-grk4.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-grk4.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-grk4.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Alternative Greek Symbols//EN//XML
+-->
+
+<!ENTITY b.alpha "&#x03B1;"> <!-- -->
+<!ENTITY b.beta "&#x03B2;"> <!-- GREEK SMALL LETTER BETA -->
+<!ENTITY b.gamma "&#x03B3;"> <!-- GREEK SMALL LETTER GAMMA -->
+<!ENTITY b.Gamma "&#x0393;"> <!-- GREEK CAPITAL LETTER GAMMA -->
+<!ENTITY b.gammad "&#x03DC;"> <!-- GREEK LETTER DIGAMMA -->
+<!ENTITY b.delta "&#x03B4;"> <!-- GREEK SMALL LETTER DELTA -->
+<!ENTITY b.Delta "&#x0394;"> <!-- GREEK CAPITAL LETTER DELTA -->
+<!ENTITY b.epsi "&#x03B5;"> <!-- -->
+<!ENTITY b.epsiv "&#x03B5;"> <!-- -->
+<!ENTITY b.epsis "&#x03B5;"> <!-- -->
+<!ENTITY b.zeta "&#x03B6;"> <!-- GREEK SMALL LETTER ZETA -->
+<!ENTITY b.eta "&#x03B7;"> <!-- GREEK SMALL LETTER ETA -->
+<!ENTITY b.thetas "&#x03B8;"> <!-- -->
+<!ENTITY b.Theta "&#x0398;"> <!-- GREEK CAPITAL LETTER THETA -->
+<!ENTITY b.thetav "&#x03D1;"> <!-- -->
+<!ENTITY b.iota "&#x03B9;"> <!-- GREEK SMALL LETTER IOTA -->
+<!ENTITY b.kappa "&#x03BA;"> <!-- GREEK SMALL LETTER KAPPA -->
+<!ENTITY b.kappav "&#x03F0;"> <!-- GREEK KAPPA SYMBOL -->
+<!ENTITY b.lambda "&#x03BB;"> <!-- GREEK SMALL LETTER LAMDA -->
+<!ENTITY b.Lambda "&#x039B;"> <!-- GREEK CAPITAL LETTER LAMDA -->
+<!ENTITY b.mu "&#x03BC;"> <!-- GREEK SMALL LETTER MU -->
+<!ENTITY b.nu "&#x03BD;"> <!-- GREEK SMALL LETTER NU -->
+<!ENTITY b.xi "&#x03BE;"> <!-- GREEK SMALL LETTER XI -->
+<!ENTITY b.Xi "&#x039E;"> <!-- GREEK CAPITAL LETTER XI -->
+<!ENTITY b.pi "&#x03C0;"> <!-- GREEK SMALL LETTER PI -->
+<!ENTITY b.Pi "&#x03A0;"> <!-- GREEK CAPITAL LETTER PI -->
+<!ENTITY b.piv "&#x03D6;"> <!-- GREEK PI SYMBOL -->
+<!ENTITY b.rho "&#x03C1;"> <!-- GREEK SMALL LETTER RHO -->
+<!ENTITY b.rhov "&#x03F1;"> <!-- GREEK RHO SYMBOL -->
+<!ENTITY b.sigma "&#x03C3;"> <!-- GREEK SMALL LETTER SIGMA -->
+<!ENTITY b.Sigma "&#x03A3;"> <!-- GREEK CAPITAL LETTER SIGMA -->
+<!ENTITY b.sigmav "&#x03C2;"> <!-- -->
+<!ENTITY b.tau "&#x03C4;"> <!-- GREEK SMALL LETTER TAU -->
+<!ENTITY b.upsi "&#x03C5;"> <!-- GREEK SMALL LETTER UPSILON -->
+<!ENTITY b.Upsi "&#x03D2;"> <!-- -->
+<!ENTITY b.phis "&#x03C6;"> <!-- GREEK SMALL LETTER PHI -->
+<!ENTITY b.Phi "&#x03A6;"> <!-- GREEK CAPITAL LETTER PHI -->
+<!ENTITY b.phiv "&#x03D5;"> <!-- GREEK PHI SYMBOL -->
+<!ENTITY b.chi "&#x03C7;"> <!-- GREEK SMALL LETTER CHI -->
+<!ENTITY b.psi "&#x03C8;"> <!-- GREEK SMALL LETTER PSI -->
+<!ENTITY b.Psi "&#x03A8;"> <!-- GREEK CAPITAL LETTER PSI -->
+<!ENTITY b.omega "&#x03C9;"> <!-- GREEK SMALL LETTER OMEGA -->
+<!ENTITY b.Omega "&#x03A9;"> <!-- GREEK CAPITAL LETTER OMEGA -->
+
+<!-- End of ISO Alternative Greek Symbols Entities V0.3 ................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent
new file mode 100644
index 0000000..9c2c249
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat1.ent
@@ -0,0 +1,104 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Latin 1 Entities V0.3 ...................................... -->
+<!-- File iso-lat1.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-lat1.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-lat1.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Added Latin 1//EN//XML
+-->
+
+<!ENTITY aacute "&#x00E1;"> <!-- LATIN SMALL LETTER A WITH ACUTE -->
+<!ENTITY Aacute "&#x00C1;"> <!-- LATIN CAPITAL LETTER A WITH ACUTE -->
+<!ENTITY acirc "&#x00E2;"> <!-- LATIN SMALL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY Acirc "&#x00C2;"> <!-- LATIN CAPITAL LETTER A WITH CIRCUMFLEX -->
+<!ENTITY agrave "&#x00E0;"> <!-- LATIN SMALL LETTER A WITH GRAVE -->
+<!ENTITY Agrave "&#x00C0;"> <!-- LATIN CAPITAL LETTER A WITH GRAVE -->
+<!ENTITY aring "&#x00E5;"> <!-- LATIN SMALL LETTER A WITH RING ABOVE -->
+<!ENTITY Aring "&#x00C5;"> <!-- LATIN CAPITAL LETTER A WITH RING ABOVE -->
+<!ENTITY atilde "&#x00E3;"> <!-- LATIN SMALL LETTER A WITH TILDE -->
+<!ENTITY Atilde "&#x00C3;"> <!-- LATIN CAPITAL LETTER A WITH TILDE -->
+<!ENTITY auml "&#x00E4;"> <!-- LATIN SMALL LETTER A WITH DIAERESIS -->
+<!ENTITY Auml "&#x00C4;"> <!-- LATIN CAPITAL LETTER A WITH DIAERESIS -->
+<!ENTITY aelig "&#x00E6;"> <!-- LATIN SMALL LETTER AE -->
+<!ENTITY AElig "&#x00C6;"> <!-- LATIN CAPITAL LETTER AE -->
+<!ENTITY ccedil "&#x00E7;"> <!-- LATIN SMALL LETTER C WITH CEDILLA -->
+<!ENTITY Ccedil "&#x00C7;"> <!-- LATIN CAPITAL LETTER C WITH CEDILLA -->
+<!ENTITY eth "&#x00F0;"> <!-- LATIN SMALL LETTER ETH -->
+<!ENTITY ETH "&#x00D0;"> <!-- LATIN CAPITAL LETTER ETH -->
+<!ENTITY eacute "&#x00E9;"> <!-- LATIN SMALL LETTER E WITH ACUTE -->
+<!ENTITY Eacute "&#x00C9;"> <!-- LATIN CAPITAL LETTER E WITH ACUTE -->
+<!ENTITY ecirc "&#x00EA;"> <!-- LATIN SMALL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY Ecirc "&#x00CA;"> <!-- LATIN CAPITAL LETTER E WITH CIRCUMFLEX -->
+<!ENTITY egrave "&#x00E8;"> <!-- LATIN SMALL LETTER E WITH GRAVE -->
+<!ENTITY Egrave "&#x00C8;"> <!-- LATIN CAPITAL LETTER E WITH GRAVE -->
+<!ENTITY euml "&#x00EB;"> <!-- LATIN SMALL LETTER E WITH DIAERESIS -->
+<!ENTITY Euml "&#x00CB;"> <!-- LATIN CAPITAL LETTER E WITH DIAERESIS -->
+<!ENTITY iacute "&#x00ED;"> <!-- LATIN SMALL LETTER I WITH ACUTE -->
+<!ENTITY Iacute "&#x00CD;"> <!-- LATIN CAPITAL LETTER I WITH ACUTE -->
+<!ENTITY icirc "&#x00EE;"> <!-- LATIN SMALL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY Icirc "&#x00CE;"> <!-- LATIN CAPITAL LETTER I WITH CIRCUMFLEX -->
+<!ENTITY igrave "&#x00EC;"> <!-- LATIN SMALL LETTER I WITH GRAVE -->
+<!ENTITY Igrave "&#x00CC;"> <!-- LATIN CAPITAL LETTER I WITH GRAVE -->
+<!ENTITY iuml "&#x00EF;"> <!-- LATIN SMALL LETTER I WITH DIAERESIS -->
+<!ENTITY Iuml "&#x00CF;"> <!-- LATIN CAPITAL LETTER I WITH DIAERESIS -->
+<!ENTITY ntilde "&#x00F1;"> <!-- LATIN SMALL LETTER N WITH TILDE -->
+<!ENTITY Ntilde "&#x00D1;"> <!-- LATIN CAPITAL LETTER N WITH TILDE -->
+<!ENTITY oacute "&#x00F3;"> <!-- LATIN SMALL LETTER O WITH ACUTE -->
+<!ENTITY Oacute "&#x00D3;"> <!-- LATIN CAPITAL LETTER O WITH ACUTE -->
+<!ENTITY ocirc "&#x00F4;"> <!-- LATIN SMALL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY Ocirc "&#x00D4;"> <!-- LATIN CAPITAL LETTER O WITH CIRCUMFLEX -->
+<!ENTITY ograve "&#x00F2;"> <!-- LATIN SMALL LETTER O WITH GRAVE -->
+<!ENTITY Ograve "&#x00D2;"> <!-- LATIN CAPITAL LETTER O WITH GRAVE -->
+<!ENTITY oslash "&#x00F8;"> <!-- LATIN SMALL LETTER O WITH STROKE -->
+<!ENTITY Oslash "&#x00D8;"> <!-- LATIN CAPITAL LETTER O WITH STROKE -->
+<!ENTITY otilde "&#x00F5;"> <!-- LATIN SMALL LETTER O WITH TILDE -->
+<!ENTITY Otilde "&#x00D5;"> <!-- LATIN CAPITAL LETTER O WITH TILDE -->
+<!ENTITY ouml "&#x00F6;"> <!-- LATIN SMALL LETTER O WITH DIAERESIS -->
+<!ENTITY Ouml "&#x00D6;"> <!-- LATIN CAPITAL LETTER O WITH DIAERESIS -->
+<!ENTITY szlig "&#x00DF;"> <!-- LATIN SMALL LETTER SHARP S -->
+<!ENTITY thorn "&#x00FE;"> <!-- LATIN SMALL LETTER THORN -->
+<!ENTITY THORN "&#x00DE;"> <!-- LATIN CAPITAL LETTER THORN -->
+<!ENTITY uacute "&#x00FA;"> <!-- LATIN SMALL LETTER U WITH ACUTE -->
+<!ENTITY Uacute "&#x00DA;"> <!-- LATIN CAPITAL LETTER U WITH ACUTE -->
+<!ENTITY ucirc "&#x00FB;"> <!-- LATIN SMALL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY Ucirc "&#x00DB;"> <!-- LATIN CAPITAL LETTER U WITH CIRCUMFLEX -->
+<!ENTITY ugrave "&#x00F9;"> <!-- LATIN SMALL LETTER U WITH GRAVE -->
+<!ENTITY Ugrave "&#x00D9;"> <!-- LATIN CAPITAL LETTER U WITH GRAVE -->
+<!ENTITY uuml "&#x00FC;"> <!-- LATIN SMALL LETTER U WITH DIAERESIS -->
+<!ENTITY Uuml "&#x00DC;"> <!-- LATIN CAPITAL LETTER U WITH DIAERESIS -->
+<!ENTITY yacute "&#x00FD;"> <!-- LATIN SMALL LETTER Y WITH ACUTE -->
+<!ENTITY Yacute "&#x00DD;"> <!-- LATIN CAPITAL LETTER Y WITH ACUTE -->
+<!ENTITY yuml "&#x00FF;"> <!-- LATIN SMALL LETTER Y WITH DIAERESIS -->
+
+<!-- End of ISO Added Latin 1 Entities V0.3 ............................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent
new file mode 100644
index 0000000..2f14696
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-lat2.ent
@@ -0,0 +1,163 @@
+<!-- ...................................................................... -->
+<!-- ISO Added Latin 2 Entities V0.3 ...................................... -->
+<!-- File iso-lat2.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-lat2.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-lat2.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Added Latin 2//EN//XML
+-->
+
+<!ENTITY abreve "&#x0103;"> <!-- LATIN SMALL LETTER A WITH BREVE -->
+<!ENTITY Abreve "&#x0102;"> <!-- LATIN CAPITAL LETTER A WITH BREVE -->
+<!ENTITY amacr "&#x0101;"> <!-- LATIN SMALL LETTER A WITH MACRON -->
+<!ENTITY Amacr "&#x0100;"> <!-- LATIN CAPITAL LETTER A WITH MACRON -->
+<!ENTITY aogon "&#x0105;"> <!-- LATIN SMALL LETTER A WITH OGONEK -->
+<!ENTITY Aogon "&#x0104;"> <!-- LATIN CAPITAL LETTER A WITH OGONEK -->
+<!ENTITY cacute "&#x0107;"> <!-- LATIN SMALL LETTER C WITH ACUTE -->
+<!ENTITY Cacute "&#x0106;"> <!-- LATIN CAPITAL LETTER C WITH ACUTE -->
+<!ENTITY ccaron "&#x010D;"> <!-- LATIN SMALL LETTER C WITH CARON -->
+<!ENTITY Ccaron "&#x010C;"> <!-- LATIN CAPITAL LETTER C WITH CARON -->
+<!ENTITY ccirc "&#x0109;"> <!-- LATIN SMALL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY Ccirc "&#x0108;"> <!-- LATIN CAPITAL LETTER C WITH CIRCUMFLEX -->
+<!ENTITY cdot "&#x010B;"> <!-- LATIN SMALL LETTER C WITH DOT ABOVE -->
+<!ENTITY Cdot "&#x010A;"> <!-- LATIN CAPITAL LETTER C WITH DOT ABOVE -->
+<!ENTITY dcaron "&#x010F;"> <!-- LATIN SMALL LETTER D WITH CARON -->
+<!ENTITY Dcaron "&#x010E;"> <!-- LATIN CAPITAL LETTER D WITH CARON -->
+<!ENTITY dstrok "&#x0111;"> <!-- LATIN SMALL LETTER D WITH STROKE -->
+<!ENTITY Dstrok "&#x0110;"> <!-- LATIN CAPITAL LETTER D WITH STROKE -->
+<!ENTITY ecaron "&#x011B;"> <!-- LATIN SMALL LETTER E WITH CARON -->
+<!ENTITY Ecaron "&#x011A;"> <!-- LATIN CAPITAL LETTER E WITH CARON -->
+<!ENTITY edot "&#x0117;"> <!-- LATIN SMALL LETTER E WITH DOT ABOVE -->
+<!ENTITY Edot "&#x0116;"> <!-- LATIN CAPITAL LETTER E WITH DOT ABOVE -->
+<!ENTITY emacr "&#x0113;"> <!-- LATIN SMALL LETTER E WITH MACRON -->
+<!ENTITY Emacr "&#x0112;"> <!-- LATIN CAPITAL LETTER E WITH MACRON -->
+<!ENTITY eogon "&#x0119;"> <!-- LATIN SMALL LETTER E WITH OGONEK -->
+<!ENTITY Eogon "&#x0118;"> <!-- LATIN CAPITAL LETTER E WITH OGONEK -->
+<!ENTITY gacute "&#x01F5;"> <!-- LATIN SMALL LETTER G WITH ACUTE -->
+<!ENTITY gbreve "&#x011F;"> <!-- LATIN SMALL LETTER G WITH BREVE -->
+<!ENTITY Gbreve "&#x011E;"> <!-- LATIN CAPITAL LETTER G WITH BREVE -->
+<!ENTITY Gcedil "&#x0122;"> <!-- LATIN CAPITAL LETTER G WITH CEDILLA -->
+<!ENTITY gcirc "&#x011D;"> <!-- LATIN SMALL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY Gcirc "&#x011C;"> <!-- LATIN CAPITAL LETTER G WITH CIRCUMFLEX -->
+<!ENTITY gdot "&#x0121;"> <!-- LATIN SMALL LETTER G WITH DOT ABOVE -->
+<!ENTITY Gdot "&#x0120;"> <!-- LATIN CAPITAL LETTER G WITH DOT ABOVE -->
+<!ENTITY hcirc "&#x0125;"> <!-- LATIN SMALL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY Hcirc "&#x0124;"> <!-- LATIN CAPITAL LETTER H WITH CIRCUMFLEX -->
+<!ENTITY hstrok "&#x0127;"> <!-- LATIN SMALL LETTER H WITH STROKE -->
+<!ENTITY Hstrok "&#x0126;"> <!-- LATIN CAPITAL LETTER H WITH STROKE -->
+<!ENTITY Idot "&#x0130;"> <!-- LATIN CAPITAL LETTER I WITH DOT ABOVE -->
+<!ENTITY Imacr "&#x012A;"> <!-- LATIN CAPITAL LETTER I WITH MACRON -->
+<!ENTITY imacr "&#x012B;"> <!-- LATIN SMALL LETTER I WITH MACRON -->
+<!ENTITY ijlig "&#x0133;"> <!-- LATIN SMALL LIGATURE IJ -->
+<!ENTITY IJlig "&#x0132;"> <!-- LATIN CAPITAL LIGATURE IJ -->
+<!ENTITY inodot "&#x0131;"> <!-- LATIN SMALL LETTER DOTLESS I -->
+<!ENTITY iogon "&#x012F;"> <!-- LATIN SMALL LETTER I WITH OGONEK -->
+<!ENTITY Iogon "&#x012E;"> <!-- LATIN CAPITAL LETTER I WITH OGONEK -->
+<!ENTITY itilde "&#x0129;"> <!-- LATIN SMALL LETTER I WITH TILDE -->
+<!ENTITY Itilde "&#x0128;"> <!-- LATIN CAPITAL LETTER I WITH TILDE -->
+<!ENTITY jcirc "&#x0135;"> <!-- LATIN SMALL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY Jcirc "&#x0134;"> <!-- LATIN CAPITAL LETTER J WITH CIRCUMFLEX -->
+<!ENTITY kcedil "&#x0137;"> <!-- LATIN SMALL LETTER K WITH CEDILLA -->
+<!ENTITY Kcedil "&#x0136;"> <!-- LATIN CAPITAL LETTER K WITH CEDILLA -->
+<!ENTITY kgreen "&#x0138;"> <!-- LATIN SMALL LETTER KRA -->
+<!ENTITY lacute "&#x013A;"> <!-- LATIN SMALL LETTER L WITH ACUTE -->
+<!ENTITY Lacute "&#x0139;"> <!-- LATIN CAPITAL LETTER L WITH ACUTE -->
+<!ENTITY lcaron "&#x013E;"> <!-- LATIN SMALL LETTER L WITH CARON -->
+<!ENTITY Lcaron "&#x013D;"> <!-- LATIN CAPITAL LETTER L WITH CARON -->
+<!ENTITY lcedil "&#x013C;"> <!-- LATIN SMALL LETTER L WITH CEDILLA -->
+<!ENTITY Lcedil "&#x013B;"> <!-- LATIN CAPITAL LETTER L WITH CEDILLA -->
+<!ENTITY lmidot "&#x0140;"> <!-- LATIN SMALL LETTER L WITH MIDDLE DOT -->
+<!ENTITY Lmidot "&#x013F;"> <!-- LATIN CAPITAL LETTER L WITH MIDDLE DOT -->
+<!ENTITY lstrok "&#x0142;"> <!-- LATIN SMALL LETTER L WITH STROKE -->
+<!ENTITY Lstrok "&#x0141;"> <!-- LATIN CAPITAL LETTER L WITH STROKE -->
+<!ENTITY nacute "&#x0144;"> <!-- LATIN SMALL LETTER N WITH ACUTE -->
+<!ENTITY Nacute "&#x0143;"> <!-- LATIN CAPITAL LETTER N WITH ACUTE -->
+<!ENTITY eng "&#x014B;"> <!-- LATIN SMALL LETTER ENG -->
+<!ENTITY ENG "&#x014A;"> <!-- LATIN CAPITAL LETTER ENG -->
+<!ENTITY napos "&#x0149;"> <!-- LATIN SMALL LETTER N PRECEDED BY APOSTROPHE -->
+<!ENTITY ncaron "&#x0148;"> <!-- LATIN SMALL LETTER N WITH CARON -->
+<!ENTITY Ncaron "&#x0147;"> <!-- LATIN CAPITAL LETTER N WITH CARON -->
+<!ENTITY ncedil "&#x0146;"> <!-- LATIN SMALL LETTER N WITH CEDILLA -->
+<!ENTITY Ncedil "&#x0145;"> <!-- LATIN CAPITAL LETTER N WITH CEDILLA -->
+<!ENTITY odblac "&#x0151;"> <!-- LATIN SMALL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Odblac "&#x0150;"> <!-- LATIN CAPITAL LETTER O WITH DOUBLE ACUTE -->
+<!ENTITY Omacr "&#x014C;"> <!-- LATIN CAPITAL LETTER O WITH MACRON -->
+<!ENTITY omacr "&#x014D;"> <!-- LATIN SMALL LETTER O WITH MACRON -->
+<!ENTITY oelig "&#x0153;"> <!-- LATIN SMALL LIGATURE OE -->
+<!ENTITY OElig "&#x0152;"> <!-- LATIN CAPITAL LIGATURE OE -->
+<!ENTITY racute "&#x0155;"> <!-- LATIN SMALL LETTER R WITH ACUTE -->
+<!ENTITY Racute "&#x0154;"> <!-- LATIN CAPITAL LETTER R WITH ACUTE -->
+<!ENTITY rcaron "&#x0159;"> <!-- LATIN SMALL LETTER R WITH CARON -->
+<!ENTITY Rcaron "&#x0158;"> <!-- LATIN CAPITAL LETTER R WITH CARON -->
+<!ENTITY rcedil "&#x0157;"> <!-- LATIN SMALL LETTER R WITH CEDILLA -->
+<!ENTITY Rcedil "&#x0156;"> <!-- LATIN CAPITAL LETTER R WITH CEDILLA -->
+<!ENTITY sacute "&#x015B;"> <!-- LATIN SMALL LETTER S WITH ACUTE -->
+<!ENTITY Sacute "&#x015A;"> <!-- LATIN CAPITAL LETTER S WITH ACUTE -->
+<!ENTITY scaron "&#x0161;"> <!-- LATIN SMALL LETTER S WITH CARON -->
+<!ENTITY Scaron "&#x0160;"> <!-- LATIN CAPITAL LETTER S WITH CARON -->
+<!ENTITY scedil "&#x015F;"> <!-- LATIN SMALL LETTER S WITH CEDILLA -->
+<!ENTITY Scedil "&#x015E;"> <!-- LATIN CAPITAL LETTER S WITH CEDILLA -->
+<!ENTITY scirc "&#x015D;"> <!-- LATIN SMALL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY Scirc "&#x015C;"> <!-- LATIN CAPITAL LETTER S WITH CIRCUMFLEX -->
+<!ENTITY tcaron "&#x0165;"> <!-- LATIN SMALL LETTER T WITH CARON -->
+<!ENTITY Tcaron "&#x0164;"> <!-- LATIN CAPITAL LETTER T WITH CARON -->
+<!ENTITY tcedil "&#x0163;"> <!-- LATIN SMALL LETTER T WITH CEDILLA -->
+<!ENTITY Tcedil "&#x0162;"> <!-- LATIN CAPITAL LETTER T WITH CEDILLA -->
+<!ENTITY tstrok "&#x0167;"> <!-- LATIN SMALL LETTER T WITH STROKE -->
+<!ENTITY Tstrok "&#x0166;"> <!-- LATIN CAPITAL LETTER T WITH STROKE -->
+<!ENTITY ubreve "&#x016D;"> <!-- LATIN SMALL LETTER U WITH BREVE -->
+<!ENTITY Ubreve "&#x016C;"> <!-- LATIN CAPITAL LETTER U WITH BREVE -->
+<!ENTITY udblac "&#x0171;"> <!-- LATIN SMALL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY Udblac "&#x0170;"> <!-- LATIN CAPITAL LETTER U WITH DOUBLE ACUTE -->
+<!ENTITY umacr "&#x016B;"> <!-- LATIN SMALL LETTER U WITH MACRON -->
+<!ENTITY Umacr "&#x016A;"> <!-- LATIN CAPITAL LETTER U WITH MACRON -->
+<!ENTITY uogon "&#x0173;"> <!-- LATIN SMALL LETTER U WITH OGONEK -->
+<!ENTITY Uogon "&#x0172;"> <!-- LATIN CAPITAL LETTER U WITH OGONEK -->
+<!ENTITY uring "&#x016F;"> <!-- LATIN SMALL LETTER U WITH RING ABOVE -->
+<!ENTITY Uring "&#x016E;"> <!-- LATIN CAPITAL LETTER U WITH RING ABOVE -->
+<!ENTITY utilde "&#x0169;"> <!-- LATIN SMALL LETTER U WITH TILDE -->
+<!ENTITY Utilde "&#x0168;"> <!-- LATIN CAPITAL LETTER U WITH TILDE -->
+<!ENTITY wcirc "&#x0175;"> <!-- LATIN SMALL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY Wcirc "&#x0174;"> <!-- LATIN CAPITAL LETTER W WITH CIRCUMFLEX -->
+<!ENTITY ycirc "&#x0177;"> <!-- LATIN SMALL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Ycirc "&#x0176;"> <!-- LATIN CAPITAL LETTER Y WITH CIRCUMFLEX -->
+<!ENTITY Yuml "&#x0178;"> <!-- LATIN CAPITAL LETTER Y WITH DIAERESIS -->
+<!ENTITY zacute "&#x017A;"> <!-- LATIN SMALL LETTER Z WITH ACUTE -->
+<!ENTITY Zacute "&#x0179;"> <!-- LATIN CAPITAL LETTER Z WITH ACUTE -->
+<!ENTITY zcaron "&#x017E;"> <!-- LATIN SMALL LETTER Z WITH CARON -->
+<!ENTITY Zcaron "&#x017D;"> <!-- LATIN CAPITAL LETTER Z WITH CARON -->
+<!ENTITY zdot "&#x017C;"> <!-- LATIN SMALL LETTER Z WITH DOT ABOVE -->
+<!ENTITY Zdot "&#x017B;"> <!-- LATIN CAPITAL LETTER Z WITH DOT ABOVE -->
+
+<!-- End of ISO Added Latin 2 Entities V0.3 ............................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent
new file mode 100644
index 0000000..b3c434e
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-num.ent
@@ -0,0 +1,118 @@
+<!-- ...................................................................... -->
+<!-- ISO Numeric and Special Graphic Entities V0.3 ........................ -->
+<!-- File iso-num.ent ..................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-num.ent,v 1.1 2008/05/27 19:26:07 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-num.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Numeric and Special Graphic//EN//XML
+-->
+
+<!ENTITY half "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac12 "&#x00BD;"> <!-- VULGAR FRACTION ONE HALF -->
+<!ENTITY frac14 "&#x00BC;"> <!-- VULGAR FRACTION ONE QUARTER -->
+<!ENTITY frac34 "&#x00BE;"> <!-- VULGAR FRACTION THREE QUARTERS -->
+<!ENTITY frac18 "&#x215B;"> <!-- -->
+<!ENTITY frac38 "&#x215C;"> <!-- -->
+<!ENTITY frac58 "&#x215D;"> <!-- -->
+<!ENTITY frac78 "&#x215E;"> <!-- -->
+<!ENTITY sup1 "&#x00B9;"> <!-- SUPERSCRIPT ONE -->
+<!ENTITY sup2 "&#x00B2;"> <!-- SUPERSCRIPT TWO -->
+<!ENTITY sup3 "&#x00B3;"> <!-- SUPERSCRIPT THREE -->
+<!ENTITY plus "&#x002B;"> <!-- PLUS SIGN -->
+<!ENTITY plusmn "&#x00B1;"> <!-- PLUS-MINUS SIGN -->
+<!ENTITY lt "&#38;#60;"> <!-- LESS-THAN SIGN -->
+<!ENTITY equals "&#x003D;"> <!-- EQUALS SIGN -->
+<!ENTITY gt "&#x003E;"> <!-- GREATER-THAN SIGN -->
+<!ENTITY divide "&#x00F7;"> <!-- DIVISION SIGN -->
+<!ENTITY times "&#x00D7;"> <!-- MULTIPLICATION SIGN -->
+<!ENTITY curren "&#x00A4;"> <!-- CURRENCY SIGN -->
+<!ENTITY pound "&#x00A3;"> <!-- POUND SIGN -->
+<!ENTITY dollar "&#x0024;"> <!-- DOLLAR SIGN -->
+<!ENTITY cent "&#x00A2;"> <!-- CENT SIGN -->
+<!ENTITY yen "&#x00A5;"> <!-- YEN SIGN -->
+<!ENTITY num "&#x0023;"> <!-- NUMBER SIGN -->
+<!ENTITY percnt "&#x0025;"> <!-- PERCENT SIGN -->
+<!ENTITY amp "&#38;#38;"> <!-- AMPERSAND -->
+<!ENTITY ast "&#x002A;"> <!-- ASTERISK -->
+<!ENTITY commat "&#x0040;"> <!-- COMMERCIAL AT -->
+<!ENTITY lsqb "&#x005B;"> <!-- LEFT SQUARE BRACKET -->
+<!ENTITY bsol "&#x005C;"> <!-- REVERSE SOLIDUS -->
+<!ENTITY rsqb "&#x005D;"> <!-- RIGHT SQUARE BRACKET -->
+<!ENTITY lcub "&#x007B;"> <!-- LEFT CURLY BRACKET -->
+<!ENTITY horbar "&#x2015;"> <!-- HORIZONTAL BAR -->
+<!ENTITY verbar "&#x007C;"> <!-- VERTICAL LINE -->
+<!ENTITY rcub "&#x007D;"> <!-- RIGHT CURLY BRACKET -->
+<!ENTITY micro "&#x00B5;"> <!-- MICRO SIGN -->
+<!ENTITY ohm "&#x2126;"> <!-- OHM SIGN -->
+<!ENTITY deg "&#x00B0;"> <!-- DEGREE SIGN -->
+<!ENTITY ordm "&#x00BA;"> <!-- MASCULINE ORDINAL INDICATOR -->
+<!ENTITY ordf "&#x00AA;"> <!-- FEMININE ORDINAL INDICATOR -->
+<!ENTITY sect "&#x00A7;"> <!-- SECTION SIGN -->
+<!ENTITY para "&#x00B6;"> <!-- PILCROW SIGN -->
+<!ENTITY middot "&#x00B7;"> <!-- MIDDLE DOT -->
+<!ENTITY larr "&#x2190;"> <!-- LEFTWARDS ARROW -->
+<!ENTITY rarr "&#x2192;"> <!-- RIGHTWARDS ARROW -->
+<!ENTITY uarr "&#x2191;"> <!-- UPWARDS ARROW -->
+<!ENTITY darr "&#x2193;"> <!-- DOWNWARDS ARROW -->
+<!ENTITY copy "&#x00A9;"> <!-- COPYRIGHT SIGN -->
+<!ENTITY reg "&#x00AE;"> <!-- REG TRADE MARK SIGN -->
+<!ENTITY trade "&#x2122;"> <!-- TRADE MARK SIGN -->
+<!ENTITY brvbar "&#x00A6;"> <!-- BROKEN BAR -->
+<!ENTITY not "&#x00AC;"> <!-- NOT SIGN -->
+<!ENTITY sung "&#x2669;"> <!-- -->
+<!ENTITY excl "&#x0021;"> <!-- EXCLAMATION MARK -->
+<!ENTITY iexcl "&#x00A1;"> <!-- INVERTED EXCLAMATION MARK -->
+<!ENTITY quot "&#x0022;"> <!-- QUOTATION MARK -->
+<!ENTITY apos "&#x0027;"> <!-- APOSTROPHE -->
+<!ENTITY lpar "&#x0028;"> <!-- LEFT PARENTHESIS -->
+<!ENTITY rpar "&#x0029;"> <!-- RIGHT PARENTHESIS -->
+<!ENTITY comma "&#x002C;"> <!-- COMMA -->
+<!ENTITY lowbar "&#x005F;"> <!-- LOW LINE -->
+<!ENTITY hyphen "&#x002D;"> <!-- HYPHEN-MINUS -->
+<!ENTITY period "&#x002E;"> <!-- FULL STOP -->
+<!ENTITY sol "&#x002F;"> <!-- SOLIDUS -->
+<!ENTITY colon "&#x003A;"> <!-- COLON -->
+<!ENTITY semi "&#x003B;"> <!-- SEMICOLON -->
+<!ENTITY quest "&#x003F;"> <!-- QUESTION MARK -->
+<!ENTITY iquest "&#x00BF;"> <!-- INVERTED QUESTION MARK -->
+<!ENTITY laquo "&#x00AB;"> <!-- LEFT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY raquo "&#x00BB;"> <!-- RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK -->
+<!ENTITY lsquo "&#x2018;"> <!-- -->
+<!ENTITY rsquo "&#x2019;"> <!-- RIGHT SINGLE QUOTATION MARK -->
+<!ENTITY ldquo "&#x201C;"> <!-- -->
+<!ENTITY rdquo "&#x201D;"> <!-- RIGHT DOUBLE QUOTATION MARK -->
+<!ENTITY nbsp "&#x00A0;"> <!-- NO-BREAK SPACE -->
+<!ENTITY shy "&#x00AD;"> <!-- SOFT HYPHEN -->
+
+<!-- End of ISO Numeric and Special Graphic Entities V0.3 ................. -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent
new file mode 100644
index 0000000..979d178
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-pub.ent
@@ -0,0 +1,127 @@
+<!-- ...................................................................... -->
+<!-- ISO Publishing Entities V0.3 ......................................... -->
+<!-- File iso-pub.ent ..................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-pub.ent,v 1.1 2008/05/27 19:26:08 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-pub.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES Publishing//EN//XML
+-->
+
+<!ENTITY emsp "&#x2003;"> <!-- EM SPACE -->
+<!ENTITY ensp "&#x2002;"> <!-- EN SPACE -->
+<!ENTITY emsp13 "&#x2004;"> <!-- THREE-PER-EM SPACE -->
+<!ENTITY emsp14 "&#x2005;"> <!-- FOUR-PER-EM SPACE -->
+<!ENTITY numsp "&#x2007;"> <!-- FIGURE SPACE -->
+<!ENTITY puncsp "&#x2008;"> <!-- PUNCTUATION SPACE -->
+<!ENTITY thinsp "&#x2009;"> <!-- THIN SPACE -->
+<!ENTITY hairsp "&#x200A;"> <!-- HAIR SPACE -->
+<!ENTITY mdash "&#x2014;"> <!-- EM DASH -->
+<!ENTITY ndash "&#x2013;"> <!-- EN DASH -->
+<!ENTITY dash "&#x2010;"> <!-- HYPHEN -->
+<!ENTITY blank "&#x2423;"> <!-- OPEN BOX -->
+<!ENTITY hellip "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY nldr "&#x2025;"> <!-- TWO DOT LEADER -->
+<!ENTITY frac13 "&#x2153;"> <!-- VULGAR FRACTION ONE THIRD -->
+<!ENTITY frac23 "&#x2154;"> <!-- VULGAR FRACTION TWO THIRDS -->
+<!ENTITY frac15 "&#x2155;"> <!-- VULGAR FRACTION ONE FIFTH -->
+<!ENTITY frac25 "&#x2156;"> <!-- VULGAR FRACTION TWO FIFTHS -->
+<!ENTITY frac35 "&#x2157;"> <!-- VULGAR FRACTION THREE FIFTHS -->
+<!ENTITY frac45 "&#x2158;"> <!-- VULGAR FRACTION FOUR FIFTHS -->
+<!ENTITY frac16 "&#x2159;"> <!-- VULGAR FRACTION ONE SIXTH -->
+<!ENTITY frac56 "&#x215A;"> <!-- VULGAR FRACTION FIVE SIXTHS -->
+<!ENTITY incare "&#x2105;"> <!-- CARE OF -->
+<!ENTITY block "&#x2588;"> <!-- FULL BLOCK -->
+<!ENTITY uhblk "&#x2580;"> <!-- UPPER HALF BLOCK -->
+<!ENTITY lhblk "&#x2584;"> <!-- LOWER HALF BLOCK -->
+<!ENTITY blk14 "&#x2591;"> <!-- LIGHT SHADE -->
+<!ENTITY blk12 "&#x2592;"> <!-- MEDIUM SHADE -->
+<!ENTITY blk34 "&#x2593;"> <!-- DARK SHADE -->
+<!ENTITY marker "&#x25AE;"> <!-- BLACK VERTICAL RECTANGLE -->
+<!ENTITY cir "&#x25CB;"> <!-- WHITE CIRCLE -->
+<!ENTITY squ "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY rect "&#x25AD;"> <!-- WHITE RECTANGLE -->
+<!ENTITY utri "&#x25B5;"> <!-- WHITE UP-POINTING TRIANGLE -->
+<!ENTITY dtri "&#x25BF;"> <!-- WHITE DOWN-POINTING TRIANGLE -->
+<!ENTITY star "&#x22C6;"> <!-- STAR OPERATOR -->
+<!ENTITY bull "&#x2022;"> <!-- BULLET -->
+<!ENTITY squf "&#x25AA;"> <!-- -->
+<!ENTITY utrif "&#x25B4;"> <!-- BLACK UP-POINTING TRIANGLE -->
+<!ENTITY dtrif "&#x25BE;"> <!-- BLACK DOWN-POINTING TRIANGLE -->
+<!ENTITY ltrif "&#x25C2;"> <!-- BLACK LEFT-POINTING TRIANGLE -->
+<!ENTITY rtrif "&#x25B8;"> <!-- BLACK RIGHT-POINTING TRIANGLE -->
+<!ENTITY clubs "&#x2663;"> <!-- BLACK CLUB SUIT -->
+<!ENTITY diams "&#x2666;"> <!-- BLACK DIAMOND SUIT -->
+<!ENTITY hearts "&#x2665;"> <!-- BLACK HEART SUIT -->
+<!ENTITY spades "&#x2660;"> <!-- BLACK SPADE SUIT -->
+<!ENTITY malt "&#x2720;"> <!-- MALTESE CROSS -->
+<!ENTITY dagger "&#x2020;"> <!-- DAGGER -->
+<!ENTITY Dagger "&#x2021;"> <!-- DOUBLE DAGGER -->
+<!ENTITY check "&#x2713;"> <!-- CHECK MARK -->
+<!ENTITY cross "&#x2717;"> <!-- BALLOT X -->
+<!ENTITY sharp "&#x266F;"> <!-- MUSIC SHARP SIGN -->
+<!ENTITY flat "&#x266D;"> <!-- MUSIC FLAT SIGN -->
+<!ENTITY male "&#x2642;"> <!-- MALE SIGN -->
+<!ENTITY female "&#x2640;"> <!-- -->
+<!ENTITY phone "&#x260E;"> <!-- TELEPHONE SIGN -->
+<!ENTITY telrec "&#x2315;"> <!-- TELEPHONE RECORDER -->
+<!ENTITY copysr "&#x2117;"> <!-- SOUND RECORDING COPYRIGHT -->
+<!ENTITY caret "&#x2041;"> <!-- CARET -->
+<!ENTITY lsquor "&#x201A;"> <!-- SINGLE LOW-9 QUOTATION MARK -->
+<!ENTITY ldquor "&#x201E;"> <!-- DOUBLE LOW-9 QUOTATION MARK -->
+<!ENTITY fflig "&#xFB00;"> <!-- -->
+<!ENTITY filig "&#xFB01;"> <!-- -->
+<!-- fjlig Unknown unicode character -->
+<!ENTITY ffilig "&#xFB03;"> <!-- -->
+<!ENTITY ffllig "&#xFB04;"> <!-- -->
+<!ENTITY fllig "&#xFB02;"> <!-- -->
+<!ENTITY mldr "&#x2026;"> <!-- HORIZONTAL ELLIPSIS -->
+<!ENTITY rdquor "&#x201C;"> <!-- -->
+<!ENTITY rsquor "&#x2018;"> <!-- -->
+<!ENTITY vellip "&#x22EE;"> <!-- -->
+<!ENTITY hybull "&#x2043;"> <!-- HYPHEN BULLET -->
+<!ENTITY loz "&#x25CA;"> <!-- LOZENGE -->
+<!ENTITY lozf "&#x2726;"> <!-- -->
+<!ENTITY ltri "&#x25C3;"> <!-- WHITE LEFT-POINTING TRIANGLE -->
+<!ENTITY rtri "&#x25B9;"> <!-- WHITE RIGHT-POINTING TRIANGLE -->
+<!ENTITY starf "&#x2605;"> <!-- BLACK STAR -->
+<!ENTITY natur "&#x266E;"> <!-- MUSIC NATURAL SIGN -->
+<!ENTITY rx "&#x211E;"> <!-- PRESCRIPTION TAKE -->
+<!ENTITY sext "&#x2736;"> <!-- SIX POINTED BLACK STAR -->
+<!ENTITY target "&#x2316;"> <!-- POSITION INDICATOR -->
+<!ENTITY dlcrop "&#x230D;"> <!-- BOTTOM LEFT CROP -->
+<!ENTITY drcrop "&#x230C;"> <!-- BOTTOM RIGHT CROP -->
+<!ENTITY ulcrop "&#x230F;"> <!-- TOP LEFT CROP -->
+<!ENTITY urcrop "&#x230E;"> <!-- TOP RIGHT CROP -->
+
+<!-- End of ISO Publishing Entities V0.3 .................................. -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent
new file mode 100644
index 0000000..b0aaac4
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/ent/iso-tech.ent
@@ -0,0 +1,104 @@
+<!-- ...................................................................... -->
+<!-- ISO General Technical Entities V0.3 .................................. -->
+<!-- File iso-tech.ent .................................................... -->
+
+<!-- Copyright (C) 2001, 2002 Organization for the Advancement of Structured
+ Information Standards (OASIS).
+
+ $Id: iso-tech.ent,v 1.1 2008/05/27 19:26:08 jsumali Exp $
+
+ Permission to use, copy, modify and distribute this entity set
+ and its accompanying documentation for any purpose and without
+ fee is hereby granted in perpetuity, provided that the above
+ copyright notice and this paragraph appear in all copies. The
+ copyright holders make no representation about the suitability of
+ the entities for any purpose. It is provided "as is" without
+ expressed or implied warranty.
+
+ Please direct all questions, bug reports, or suggestions for
+ changes to the docbook@lists.oasis-open.org mailing list. For more
+ information, see http://www.oasis-open.org/docbook/.
+
+ Derived, in part, from:
+
+ * iso-tech.gml
+
+ Copyright (C) 1986 International Organization for Standardization
+ Permission to copy in any form is granted for use with
+ conforming SGML systems and applications as defined in
+ ISO 8879, provided this notice is included in all copies.
+
+ * http://www.tug.org/applications/jadetex/unicode.xml
+
+ * ftp://ftp.unicode.org/Public/MAPPINGS/VENDORS/MISC/SGML.TXT
+
+ Please use the following formal public identifier to identify it:
+
+ ISO 8879:1986//ENTITIES General Technical//EN//XML
+-->
+
+<!ENTITY aleph "&#x2135;"> <!-- ALEF SYMBOL -->
+<!ENTITY and "&#x2227;"> <!-- -->
+<!ENTITY ang90 "&#x221F;"> <!-- RIGHT ANGLE -->
+<!ENTITY angsph "&#x2222;"> <!-- -->
+<!ENTITY ap "&#x2248;"> <!-- -->
+<!ENTITY becaus "&#x2235;"> <!-- BECAUSE -->
+<!ENTITY bottom "&#x22A5;"> <!-- -->
+<!ENTITY cap "&#x2229;"> <!-- -->
+<!ENTITY cong "&#x2245;"> <!-- -->
+<!ENTITY conint "&#x222E;"> <!-- -->
+<!ENTITY cup "&#x222A;"> <!-- -->
+<!ENTITY equiv "&#x2261;"> <!-- -->
+<!ENTITY exist "&#x2203;"> <!-- -->
+<!ENTITY forall "&#x2200;"> <!-- -->
+<!ENTITY fnof "&#x0192;"> <!-- LATIN SMALL LETTER F WITH HOOK -->
+<!ENTITY ge "&#x2265;"> <!-- GREATER-THAN OR EQUAL TO -->
+<!ENTITY iff "&#x21D4;"> <!-- LEFT RIGHT DOUBLE ARROW -->
+<!ENTITY infin "&#x221E;"> <!-- -->
+<!ENTITY int "&#x222B;"> <!-- -->
+<!ENTITY isin "&#x220A;"> <!-- -->
+<!ENTITY lang "&#x3008;"> <!-- -->
+<!ENTITY lArr "&#x21D0;"> <!-- LEFTWARDS ARROW -->
+<!ENTITY le "&#x2264;"> <!-- -->
+<!ENTITY minus "&#x2212;"> <!-- MINUS SIGN -->
+<!ENTITY mnplus "&#x2213;"> <!-- -->
+<!ENTITY nabla "&#x2207;"> <!-- NABLA -->
+<!ENTITY ne "&#x2260;"> <!-- -->
+<!ENTITY ni "&#x220D;"> <!-- -->
+<!ENTITY or "&#x2228;"> <!-- -->
+<!ENTITY par "&#x2225;"> <!-- PARALLEL TO -->
+<!ENTITY part "&#x2202;"> <!-- -->
+<!ENTITY permil "&#x2030;"> <!-- PER MILLE SIGN -->
+<!ENTITY perp "&#x22A5;"> <!-- -->
+<!ENTITY prime "&#x2032;"> <!-- PRIME -->
+<!ENTITY Prime "&#x2033;"> <!-- DOUBLE PRIME -->
+<!ENTITY prop "&#x221D;"> <!-- -->
+<!ENTITY radic "&#x221A;"> <!-- -->
+<!ENTITY rang "&#x3009;"> <!-- -->
+<!ENTITY rArr "&#x21D2;"> <!-- RIGHTWARDS ARROW -->
+<!ENTITY sim "&#x223C;"> <!-- -->
+<!ENTITY sime "&#x2243;"> <!-- -->
+<!ENTITY square "&#x25A1;"> <!-- WHITE SQUARE -->
+<!ENTITY sub "&#x2282;"> <!-- -->
+<!ENTITY sube "&#x2286;"> <!-- -->
+<!ENTITY sup "&#x2283;"> <!-- -->
+<!ENTITY supe "&#x2287;"> <!-- -->
+<!ENTITY there4 "&#x2234;"> <!-- -->
+<!ENTITY Verbar "&#x2016;"> <!-- DOUBLE VERTICAL LINE -->
+<!ENTITY angst "&#x212B;"> <!-- ANGSTROM SIGN -->
+<!ENTITY bernou "&#x212C;"> <!-- SCRIPT CAPITAL B -->
+<!ENTITY compfn "&#x2218;"> <!-- RING OPERATOR -->
+<!ENTITY Dot "&#x00A8;"> <!-- -->
+<!ENTITY DotDot "&#x20DC;"> <!-- COMBINING FOUR DOTS ABOVE -->
+<!ENTITY hamilt "&#x210B;"> <!-- SCRIPT CAPITAL H -->
+<!ENTITY lagran "&#x2112;"> <!-- SCRIPT CAPITAL L -->
+<!ENTITY lowast "&#x2217;"> <!-- ASTERISK OPERATOR -->
+<!ENTITY notin "&#x2209;"> <!-- -->
+<!ENTITY order "&#x2134;"> <!-- SCRIPT SMALL O -->
+<!ENTITY phmmat "&#x2133;"> <!-- SCRIPT CAPITAL M -->
+<!ENTITY tdot "&#x20DB;"> <!-- COMBINING THREE DOTS ABOVE -->
+<!ENTITY tprime "&#x2034;"> <!-- TRIPLE PRIME -->
+<!ENTITY wedgeq "&#x2259;"> <!-- ESTIMATES -->
+
+<!-- End of ISO General Technical Entities V0.3 ........................... -->
+<!-- ...................................................................... -->
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd
new file mode 100644
index 0000000..5597d7b
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc-alphaindex.dtd
@@ -0,0 +1,35 @@
+<!-- gjdoc-alphabetical.dtd
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. -->
+
+<!--
+ NOTE: This is NOT a complete DTD usable for verifying XML files
+ generated by XmlDoclet. This file is currently only used to include
+ OASIS' standard entity sets.
+-->
+
+<!ENTITY % dbcent.module "INCLUDE">
+<![%dbcent.module;[
+<!ENTITY euro "&#x20AC;"> <!-- Euro sign, U+20AC -->
+<!ENTITY % dbcent PUBLIC
+"-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN"
+"dbcentx.mod">
+%dbcent;
+]]>
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd
new file mode 100644
index 0000000..6d02bd8
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/dtd/gjdoc.dtd
@@ -0,0 +1,35 @@
+<!-- gjdoc.dtd
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. -->
+
+<!--
+ NOTE: This is NOT a complete DTD usable for verifying XML files
+ generated by XmlDoclet. This file is currently only used to include
+ OASIS' standard entity sets.
+-->
+
+<!ENTITY % dbcent.module "INCLUDE">
+<![%dbcent.module;[
+<!ENTITY euro "&#x20AC;"> <!-- Euro sign, U+20AC -->
+<!ENTITY % dbcent PUBLIC
+"-//OASIS//ENTITIES DocBook XML Character Entities V4.1.2//EN"
+"dbcentx.mod">
+%dbcent;
+]]>
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties
new file mode 100644
index 0000000..37ffad4
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/HtmlDoclet.properties
@@ -0,0 +1,32 @@
+# gjdochtml-vanilla.css
+# Copyright (C) 2004 Free Software Foundation, Inc.
+#
+# This file is part of GNU Classpath.
+#
+# GNU Classpath is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# GNU Classpath is distributed in the hope that it will be useful, but
+# WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with GNU Classpath; see the file COPYING. If not, write to the
+# Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+# 02111-1307 USA.
+
+#
+# Defines localized strings for HtmlDoclet (US-english/fallback)
+#
+
+usagetype.class-derived-from = Classes derived from {0}
+usagetype.class-implementing = Classes implementing {0}
+usagetype.field-of-type = Fields of type {0}
+usagetype.method-with-return-type = Methods with return type {0}
+usagetype.method-with-parameter-type = Methods with parameter type {0}
+usagetype.method-with-thrown-type = Methods which throw type {0}
+usagetype.constructor-with-parameter-type = Constructors with parameter type {0}
+usagetype.constructor-with-thrown-type = Constructors which throw type {0}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js
new file mode 100644
index 0000000..91f8ba2
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdoc.js
@@ -0,0 +1,115 @@
+/* gjdoc.js
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA. */
+
+/**
+ * Sets a new stylesheet for a single frame.
+ */
+function setStyleSheetForFrame(title, frame_name)
+{
+ var i, num, a, main;
+ f = eval("top.frames." + frame_name);
+ for(i=0; (a = f.document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1
+ && a.getAttribute("title")) {
+ a.disabled = true;
+ a.disabled = (a.getAttribute("title") != title);
+ }
+ }
+}
+
+/**
+ * Sets a new stylesheet for a single document.
+ */
+function setStyleSheetForDocument(title)
+{
+ var i, num, a, main;
+ for(i=0; (a = top.document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1
+ && a.getAttribute("title")) {
+ a.disabled = true;
+ a.disabled = (a.getAttribute("title") != title);
+ }
+ }
+}
+
+/**
+ * Sets a new stylesheets for all frames.
+ */
+function setStyleSheet(title)
+{
+ var i, num, a, main;
+ num = top.frames.length;
+ if (num > 0) {
+ for (i=0; i<num; i++) {
+ setStyleSheetForFrame(title, top.frames[i].name);
+ }
+ }
+ else {
+ setStyleSheetForDocument(title);
+ }
+ top.selectedSheet = title;
+ return false;
+}
+
+/**
+ * Returns the title of the set of stylesheets that is active in the
+ * given frame.
+ */
+function getActiveStylesheetTitle(frame)
+{
+ for(i=0; (a = frame.document.getElementsByTagName("link")[i]); i++) {
+ if(a.getAttribute("rel").indexOf("style") != -1
+ && a.getAttribute("title")) {
+ if (!a.disabled) {
+ return a.getAttribute("title");
+ }
+ }
+ }
+ return "";
+}
+
+/**
+ * Invoked when a page in the main content frame has been loaded.
+ */
+function contentPageLoaded(title)
+{
+ if (title) {
+ top.document.title = title;
+ }
+ /** 20050204: removed since there is only one stylesheet at the time
+ if (top.frames.length > 0) {
+ setStyleSheet(getActiveStylesheetTitle(top.frames.packages), "content");
+ }
+ else if (top.selectedSheet) {
+ setStyleSheet(top.selectedSheet, "content");
+ }
+ **/
+}
+
+/**
+ * Invoked when a page in one of the two frames on the left hand has
+ * been loaded.
+ */
+function secondaryPageLoaded(frame_name)
+{
+ /** 20050204: removed since there is only one stylesheet at the time
+ setStyleSheet(getActiveStylesheetTitle(top.frames.packages), frame_name);
+ **/
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css
new file mode 100644
index 0000000..28452fa
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-color1.css
@@ -0,0 +1,80 @@
+/* gjdochtml-clean-layout.css
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+/* --- GNU Clean Style: Color Scheme #1 --- */
+
+[class~="title"],
+[class="table header"],
+[class="table sub header"],
+[class="section header"],
+[class="serialized package header"],
+[class="serialized class header"]
+{
+ background-color: #E8EAFF;
+}
+
+[class~="navbar"][class~="item"]
+{
+ border-color: #000000;
+ color: #000000;
+}
+
+[class~="navbar"][class~="item"][class~="disabled"]
+{
+ border-color: #aaaaaa;
+ color: #aaaaaa;
+}
+
+[class~="navbar"][class~="item"][class~="active"]
+{
+ color: #000000;
+ background-color: #E8EAFF;
+}
+
+[class~="navbar"][class~="item"][class~="active"]
+{
+ border-color: #222222;
+}
+
+.navbar .header a
+{
+ color: #777777;
+}
+
+a[href] {
+ color: #141EB8;
+}
+
+a[href]:visited {
+ color: #0C126E;
+}
+
+
+/* ---- source highlighting ---- */
+
+.comment { color: #777777; }
+.tag { color: #444444; }
+.keyword { color: #B36B00; }
+.header.type { color: #00248F; }
+.type { color: #0033CC; }
+.literal { color: #809FFF; }
+.variable { color: #007D48; }
+.method { color: #B32400; }
+.line-number { color: #AAAAAA; }
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css
new file mode 100644
index 0000000..9d45909
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-clean-layout.css
@@ -0,0 +1,460 @@
+/* gjdochtml-clean-layout.css
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+/* --- GNU Clean Style: Layout --- */
+
+body
+{
+ background: white;
+ color: black;
+}
+
+body.content
+{
+ margin-left: 1.3em;
+ margin-right: 1.3em;
+ margin-top: 0.9em;
+ margin-bottom: 1.3em;
+}
+
+div[class="class title outer"]
+{
+ margin: 0em;
+ margin-bottom: 1em;
+ border: 1px solid;
+ padding: 10pt;
+}
+
+[class="class title-package"]
+{
+ margin: 0em;
+ padding: 0em;
+}
+
+[class="class title-class"]
+{
+ margin: 0em;
+ margin-top: 0.2em;
+ padding: 0em;
+}
+
+[class="table header"],
+[class="table sub header"]
+{
+ margin: 0em;
+ padding: 0.25em;
+}
+
+[class="section header"]
+{
+ margin: 0em;
+ padding: 0.25em;
+ border: 1px solid;
+}
+
+.serialized.package.header
+{
+ margin: 0em;
+ padding: 0.25em;
+ border: 1px solid;
+ margin-bottom: 1em;
+}
+
+
+.serialized.class.header
+{
+ margin: 0em;
+ padding: 0.25em;
+ padding-left: 3.25em;
+ border: 1px solid;
+ text-indent: -3em;
+ font-weight: normal;
+ font-size: 1.2em;
+}
+
+.serialized.section.header
+{
+ font-size: 1.15em;
+}
+
+div.serialized.section
+{
+ padding-left: 1em;
+}
+
+.summary td,
+.summary .inherited
+{
+ padding: 0.25em;
+}
+
+table[border]
+{
+ border-spacing: 0em;
+ border-collapse: collapse;
+}
+
+table[border] td
+{
+ border-spacing: 0em;
+ border-collapse: collapse;
+}
+
+hr
+{
+ border-top: 1px solid;
+ border-bottom: 0px;
+ border-left: 0px;
+ border-right: 0px;
+}
+
+.class.summary .left
+{
+ width: 10%;
+}
+
+.class.summary td.left
+{
+ text-align: right;
+}
+
+.class.summary .left .synopsis
+{
+ font-size: small;
+}
+
+
+[class="package summary left"]
+{
+ width: 20%;
+}
+
+ul.inheritance
+{
+ margin-left: 1.8em;
+ padding-left: 0em;
+ marker-offset: 0em !important;
+ list-style-type: none;
+ list-style-image: none;
+}
+
+li.inheritance
+{
+ margin: 0em !important;
+ margin-top: 0.1em !important;
+ padding: 0em !important;
+ marker-offset: 0em !important;
+}
+
+ul.inheritance > li.inheritance:before
+{
+ display: marker;
+ width: 12px;
+ margin: 0em !important;
+ padding: 0em !important;
+ marker-offset: 0em !important;
+ content: url(inherit.png);
+ vertical-align: center !important;
+}
+
+[class="inheritance 0"] > li.inheritance:before
+{
+ display: none;
+}
+
+ul [class="inheritance 0"]
+{
+ margin-left: 12px !important;
+ padding-left: 0em;
+ list-style-type: none !important;
+ list-style-image: none !important;
+}
+
+.inheritance-tree
+{
+ position: relative;
+ left: -24px;
+}
+
+.synopsis.outer
+{
+ padding: 0em;
+ margin-bottom: 0.3em;
+}
+
+.synopsis.outer > *
+{
+ margin: 0em;
+ padding: 0em;
+ line-height: 1.0em;
+}
+
+div.navbar.div
+{
+ padding: 0em;
+ margin: 0em;
+ position: relative;
+ left: -0.2em;
+}
+
+.navbar.div,
+.navbar.div tr,
+.navbar.div td
+{
+ margin: 0em;
+ padding: 0em;
+ border-spacing: 0em;
+ border-collapse: collapse;
+}
+
+table.navbar.div
+{
+ width: 100%;
+}
+
+table.navbar.div td
+{
+ line-height: 1.9em;
+ text-align: top;
+}
+
+.navbar.item
+{
+ /* float: left; */
+ border: 1px solid;
+ /* width: 7.5em; */
+ text-align: center;
+ margin: 0.05em;
+ padding-top: 0.2em;
+ padding-bottom: 0.3em;
+ padding-left: 0.5em;
+ padding-right: 0.5em;
+ font-size: 0.75em;
+ margin-bottom: 0.5em;
+}
+
+.navbar.item.active
+{
+ /* font-weight: bold; */
+ border: 1px solid;
+}
+
+[class~="title"]
+{
+ border: 1px solid;
+ padding: 0.3em;
+ margin-top: 0em;
+}
+
+.table.container,
+.table.container dd
+{
+ padding: 0em;
+ margin: 0em;
+}
+
+.overview.summary
+{
+ padding: 0em;
+ margin: 0em;
+}
+
+.summary
+{
+ margin-bottom: 1.2em;
+}
+
+table.navbar.top
+{
+ margin-bottom: 1em !important;
+}
+
+.package.description
+{
+ margin-top: 0.0em;
+ margin-bottom: 1.0em;
+}
+
+.class.description
+{
+ margin-top: 1em;
+ margin-bottom: 0.8em;
+}
+
+[class="overview description top"]
+{
+ margin-top: 0.0em;
+ margin-bottom: 1.0em;
+}
+
+[class="overview description full"]
+{
+ margin-top: 1.0em;
+ margin-bottom: 0.0em;
+}
+
+.class.summary .right .list
+{
+ margin: 0em;
+ padding: 0em;
+}
+
+.class.summary .right .list .synopsis
+{
+ margin: 0em;
+ padding: 0em;
+}
+
+.classes .menu-subtitle
+{
+ padding: 0em;
+ margin-top: 0.5em;
+ margin-bottom: 0em;
+}
+
+.menu-title
+{
+ padding: 0em;
+ margin-top: 0.8em;
+ margin-bottom: 0.2em;
+}
+
+.menu-entry
+{
+ font-size: 0.8em;
+}
+
+.class.summary .right
+{
+ vertical-align: top;
+}
+
+.class.summary .right .list
+{
+ vertical-align: top;
+}
+
+.navi
+{
+ padding-top: 0.5em;
+ font-size: x-small;
+}
+
+.navbar .header
+{
+ vertical-align: top;
+}
+
+.navbar .header span
+{
+ border: none;
+ white-space: nowrap;
+ padding-top: 0.2em;
+ padding-bottom: 0.3em;
+ padding-left: 0.5em;
+}
+
+.navbar .header a
+{
+ font-weight: bold;
+ font-size: 11pt;
+}
+
+h1
+{
+ font-size: 1.5em;
+}
+
+h2
+{
+ font-size: 1.3em;
+}
+
+h3
+{
+ font-size: 1.1em;
+}
+
+.summary .right .synopsis
+{
+ padding-left: 5.25em !important;
+ text-indent: -5em !important;
+}
+
+.summary .right .description
+{
+ text-indent: 1em !important;
+ padding-top: 0.25em !important;
+ padding-bottom: 0.1em !important;
+ padding-left: 0.25em !important;
+}
+
+td.usage.summary
+{
+ vertical-align: top;
+}
+
+.index .entry .description
+{
+ padding-left: 3em;
+}
+
+.index .entry .key
+{
+ padding-left: 5.25em;
+ text-indent: -5em;
+}
+
+.dep-list .summary .description
+{
+ padding-top: 0.1em;
+ padding-left: 3em;
+}
+
+.dep-toc .header
+{
+ padding-bottom: 0em;
+ margin-bottom: 0.2em;
+}
+
+.dep-toc .list
+{
+ margin-top: 0em;
+ margin-bottom: 1.5em;
+ padding-top: 0em;
+ padding-bottom: 0em;
+ padding-left: 2em;
+}
+
+ul.tree li.node
+{
+ list-style-type: disc;
+}
+
+ul.tree ul
+{
+ margin-left: 0em;
+ padding-left: 1.8em;
+}
+
+li.level
+{
+ list-style-type: none;
+}
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css
new file mode 100644
index 0000000..503207b
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/gjdochtml-vanilla.css
@@ -0,0 +1,21 @@
+/* gjdochtml-vanilla.css
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. */
+
+/* Empty Vanilla Stylesheeet */
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml
new file mode 100644
index 0000000..e1bb453
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/help.xhtml
@@ -0,0 +1,25 @@
+<!-- help.xhtml
+ Copyright (C) 2004 Free Software Foundation, Inc.
+
+ This file is part of GNU Classpath.
+
+ GNU Classpath is free software; you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation; either version 2, or (at your option)
+ any later version.
+
+ GNU Classpath is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with GNU Classpath; see the file COPYING. If not, write to the
+ Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+ 02111-1307 USA.
+ -->
+
+<p>
+ Sorry, no help available.
+</p>
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png
new file mode 100644
index 0000000..50ca474
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/inherit.png
Binary files differ
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd
new file mode 100644
index 0000000..0dd73f7
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/htmldoclet/xhtml11-target10.dtd
@@ -0,0 +1,54 @@
+<!-- xhtml11-strict-target10.dtd
+ Copyright (C) 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. -->
+
+<!-- XHTML 1.1 plus Target 1.0 DTD ................................ -->
+
+<!-- File: xhtml11-target10.dtd
+
+ XHTML 1.1 DTD which loads the optional Target 1.0 Module.
+
+ This file is based on a DTD by Jacques Distler. See
+ http://golem.ph.utexas.edu/~distler/blog/files/zeldman.html
+
+ Public and System Identifiers:
+
+ PUBLIC "-//gnu.org//DTD XHTML 1.1 plus Target 1.0//EN"
+ SYSTEM "http://gnu.org/DTD/xhtml11-target10.dtd"
+
+ The corresponding DOCTYPE declaration:
+
+ <!DOCTYPE html
+ PUBLIC "-//gnu.org//DTD XHTML 1.1 plus Target 1.0//EN"
+ "http://gnu.org/DTD/xhtml11-target10.dtd">
+
+ Original idea: Dave H <dmh@dmh.org.uk>
+ http://www.dmh.org.uk/
+
+-->
+<!ENTITY % XHTML.version
+ "-//gnu.org//DTD XHTML 1.1 plus Target 1.0//EN" >
+<!ENTITY % xhtml11.mod
+ PUBLIC "-//W3C//DTD XHTML 1.1//EN"
+ "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd" >
+%xhtml11.mod;
+<!ENTITY % xhtml-target.mod
+ PUBLIC "-//W3C//ELEMENTS XHTML Target 1.0//EN"
+ "http://www.w3.org/TR/xhtml-modularization/DTD/xhtml-target-1.mod" >
+%xhtml-target.mod;
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt
new file mode 100644
index 0000000..0e44adf
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.2.txt
@@ -0,0 +1,78 @@
+Cloneable
+Comparable
+Runnable
+Boolean
+Byte
+Character
+Character.Subset
+Character.UnicodeBlock
+Class
+ClassLoader
+Compiler
+Double
+Float
+InheritableThreadLocal
+Integer
+Long
+Math
+Number
+Object
+Package
+Process
+Runtime
+RuntimePermission
+SecurityManager
+Short
+String
+StringBuffer
+System
+Thread
+ThreadGroup
+ThreadLocal
+Throwable
+Void
+ArithmeticException
+ArrayIndexOutOfBoundsException
+ArrayStoreException
+ClassCastException
+ClassNotFoundException
+CloneNotSupportedException
+Exception
+IllegalAccessException
+IllegalArgumentException
+IllegalMonitorStateException
+IllegalStateException
+IllegalThreadStateException
+IndexOutOfBoundsException
+InstantiationException
+InterruptedException
+NegativeArraySizeException
+NoSuchFieldException
+NoSuchMethodException
+NullPointerException
+NumberFormatException
+RuntimeException
+SecurityException
+StringIndexOutOfBoundsException
+UnsupportedOperationException
+AbstractMethodError
+ClassCircularityError
+ClassFormatError
+Error
+ExceptionInInitializerError
+IllegalAccessError
+IncompatibleClassChangeError
+InstantiationError
+InternalError
+LinkageError
+NoClassDefFoundError
+NoSuchFieldError
+NoSuchMethodError
+OutOfMemoryError
+StackOverflowError
+ThreadDeath
+UnknownError
+UnsatisfiedLinkError
+UnsupportedClassVersionError
+VerifyError
+VirtualMachineError
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt
new file mode 100644
index 0000000..119423d
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.3.txt
@@ -0,0 +1,79 @@
+Cloneable
+Comparable
+Runnable
+Boolean
+Byte
+Character
+Character.Subset
+Character.UnicodeBlock
+Class
+ClassLoader
+Compiler
+Double
+Float
+InheritableThreadLocal
+Integer
+Long
+Math
+Number
+Object
+Package
+Process
+Runtime
+RuntimePermission
+SecurityManager
+Short
+StrictMath
+String
+StringBuffer
+System
+Thread
+ThreadGroup
+ThreadLocal
+Throwable
+Void
+ArithmeticException
+ArrayIndexOutOfBoundsException
+ArrayStoreException
+ClassCastException
+ClassNotFoundException
+CloneNotSupportedException
+Exception
+IllegalAccessException
+IllegalArgumentException
+IllegalMonitorStateException
+IllegalStateException
+IllegalThreadStateException
+IndexOutOfBoundsException
+InstantiationException
+InterruptedException
+NegativeArraySizeException
+NoSuchFieldException
+NoSuchMethodException
+NullPointerException
+NumberFormatException
+RuntimeException
+SecurityException
+StringIndexOutOfBoundsException
+UnsupportedOperationException
+AbstractMethodError
+ClassCircularityError
+ClassFormatError
+Error
+ExceptionInInitializerError
+IllegalAccessError
+IncompatibleClassChangeError
+InstantiationError
+InternalError
+LinkageError
+NoClassDefFoundError
+NoSuchFieldError
+NoSuchMethodError
+OutOfMemoryError
+StackOverflowError
+ThreadDeath
+UnknownError
+UnsatisfiedLinkError
+UnsupportedClassVersionError
+VerifyError
+VirtualMachineError
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt
new file mode 100644
index 0000000..81a442d
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.4.txt
@@ -0,0 +1,82 @@
+CharSequence
+Cloneable
+Comparable
+Runnable
+Boolean
+Byte
+Character
+Character.Subset
+Character.UnicodeBlock
+Class
+ClassLoader
+Compiler
+Double
+Float
+InheritableThreadLocal
+Integer
+Long
+Math
+Number
+Object
+Package
+Process
+Runtime
+RuntimePermission
+SecurityManager
+Short
+StackTraceElement
+StrictMath
+String
+StringBuffer
+System
+Thread
+ThreadGroup
+ThreadLocal
+Throwable
+Void
+ArithmeticException
+ArrayIndexOutOfBoundsException
+ArrayStoreException
+ClassCastException
+ClassNotFoundException
+CloneNotSupportedException
+Exception
+IllegalAccessException
+IllegalArgumentException
+IllegalMonitorStateException
+IllegalStateException
+IllegalThreadStateException
+IndexOutOfBoundsException
+InstantiationException
+InterruptedException
+NegativeArraySizeException
+NoSuchFieldException
+NoSuchMethodException
+NullPointerException
+NumberFormatException
+RuntimeException
+SecurityException
+StringIndexOutOfBoundsException
+UnsupportedOperationException
+AbstractMethodError
+AssertionError
+ClassCircularityError
+ClassFormatError
+Error
+ExceptionInInitializerError
+IllegalAccessError
+IncompatibleClassChangeError
+InstantiationError
+InternalError
+LinkageError
+NoClassDefFoundError
+NoSuchFieldError
+NoSuchMethodError
+OutOfMemoryError
+StackOverflowError
+ThreadDeath
+UnknownError
+UnsatisfiedLinkError
+UnsupportedClassVersionError
+VerifyError
+VirtualMachineError
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt
new file mode 100644
index 0000000..2439f2e
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/java.lang-classes-1.5.txt
@@ -0,0 +1,90 @@
+Appendable
+CharSequence
+Cloneable
+Comparable
+Iterable
+Readable
+Runnable
+Thread.UncaughtExceptionHandler
+Boolean
+Byte
+Character
+Character.Subset
+Character.UnicodeBlock
+Class
+ClassLoader
+Compiler
+Double
+Enum
+Float
+InheritableThreadLocal
+Integer
+Long
+Math
+Number
+Object
+Package
+Process
+ProcessBuilder
+Runtime
+RuntimePermission
+SecurityManager
+Short
+StackTraceElement
+StrictMath
+String
+StringBuffer
+StringBuilder
+System
+Thread
+ThreadGroup
+ThreadLocal
+Throwable
+Void
+ArithmeticException
+ArrayIndexOutOfBoundsException
+ArrayStoreException
+ClassCastException
+ClassNotFoundException
+CloneNotSupportedException
+Exception
+IllegalAccessException
+IllegalArgumentException
+IllegalMonitorStateException
+IllegalStateException
+IllegalThreadStateException
+IndexOutOfBoundsException
+InstantiationException
+InterruptedException
+NegativeArraySizeException
+NoSuchFieldException
+NoSuchMethodException
+NullPointerException
+NumberFormatException
+RuntimeException
+SecurityException
+StringIndexOutOfBoundsException
+TypeNotPresentException
+UnsupportedOperationException
+AbstractMethodError
+AssertionError
+ClassCircularityError
+ClassFormatError
+Error
+ExceptionInInitializerError
+IllegalAccessError
+IncompatibleClassChangeError
+InstantiationError
+InternalError
+LinkageError
+NoClassDefFoundError
+NoSuchFieldError
+NoSuchMethodError
+OutOfMemoryError
+StackOverflowError
+ThreadDeath
+UnknownError
+UnsatisfiedLinkError
+UnsupportedClassVersionError
+VerifyError
+VirtualMachineError
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng
new file mode 100644
index 0000000..085710d
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-classdoc.rng
@@ -0,0 +1,649 @@
+<?xml version="1.0"?>
+
+<!-- gjdoc-classdoc.rng
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. -->
+
+<grammar
+ xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:a="http://relaxng.org/ns/annotation/1.0"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml">
+
+ <include href="gjdoc-common.rng"/>
+
+ <a:documentation>
+ The Relax NG grammar for an classdoc XML document generated by
+ GNU Gjdoc.
+ </a:documentation>
+
+ <start>
+ <a:documentation>
+ The root element for a Gjdoc classdoc XML document.
+ </a:documentation>
+
+ <element name="gjdoc:classdoc">
+ <a:documentation>
+ Corresponds to a Javadoc API com.sun.javadoc.ClassDoc
+ object, the subtree of the full generated documentation
+ corresponding to a particular Java class.
+ </a:documentation>
+
+ <ref name="name-attribute"/>
+ <ref name="qualifiedtypename-attribute"/>
+
+ <optional>
+ <ref name="superclass-element"/>
+ </optional>
+
+ <zeroOrMore>
+ <ref name="implements-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="superimplements-element"/>
+ </zeroOrMore>
+
+ <ref name="ProgramElementDocBody"/>
+
+ <optional>
+ <ref name="isAbstract-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isSerializable-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isExternalizable-element"/>
+ </optional>
+
+ <optional>
+ <ref name="definesSerializableFields-element"/>
+ </optional>
+
+ <zeroOrMore>
+ <ref name="constructordoc-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="methoddoc-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="fielddoc-element"/>
+ </zeroOrMore>
+
+ </element>
+
+ </start>
+
+ <!-- The following patterns are "body" patterns for the element
+ patterns below. Their content corresponds to the abstract
+ superclasses of the classes which are represented by the "element"
+ patterns below. -->
+
+ <define name="DocBody">
+ <a:documentation>
+ Corresponds to the abstract class
+ <code>com.sun.javadoc.Doc</code>, the common base class for
+ all documentation classes.
+ </a:documentation>
+
+ <optional>
+ <ref name="isClass-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isConstructor-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isError-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isException-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isField-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isIncluded-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isInterface-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isMethod-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isOrdinaryClass-element"/>
+ </optional>
+
+ <optional>
+ <ref name="inlineTags-element"/>
+ </optional>
+
+ <optional>
+ <ref name="firstSentenceTags-element"/>
+ </optional>
+
+ <optional>
+ <ref name="tags-element"/>
+ </optional>
+
+ <optional>
+ <ref name="seeTags-element"/>
+ </optional>
+
+ </define>
+
+ <define name="ProgramElementDocBody">
+ <a:documentation>
+ Corresponds to the abstract class
+ <code>com.sun.javadoc.ProgramElementDoc</code>.
+ </a:documentation>
+
+ <!-- ... which is derived from class com.sun.javadoc.Doc -->
+ <ref name="DocBody"/>
+
+ <ref name="containingPackage-element"/>
+
+ <optional>
+ <ref name="containingClass-element"/>
+ </optional>
+
+ <ref name="access-element"/>
+
+ <optional>
+ <ref name="isFinal-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isStatic-element"/>
+ </optional>
+
+ </define>
+
+ <define name="MemberDocBody">
+ <a:documentation>
+ Corresponds to the abstract class
+ <code>com.sun.javadoc.MemberDoc</code>.
+ </a:documentation>
+
+ <!-- ... which is derived from class
+ com.sun.javadoc.ProgramElementDoc -->
+ <ref name="ProgramElementDocBody"/>
+
+ </define>
+
+ <define name="ExecutableMemberDocBody">
+ <a:documentation>
+ Corresponds to the abstract class
+ <code>com.sun.javadoc.ExecutableMemberDoc</code>.
+ </a:documentation>
+
+ <!-- ... which is derived from class
+ com.sun.javadoc.MemberDoc -->
+ <ref name="MemberDocBody"/>
+
+ <zeroOrMore>
+ <ref name="parameter-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="thrownException-element"/>
+ </zeroOrMore>
+
+ <ref name="signature-element"/>
+
+ <optional>
+ <ref name="isNative-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isSynchronized-element"/>
+ </optional>
+
+ </define>
+
+ <define name="ConstructorDocBody">
+ <a:documentation>
+ Corresponds to an object of class
+ <code>com.sun.javadoc.ConstructorDoc</code>.
+ </a:documentation>
+
+ <!-- ... which is derived from class
+ com.sun.javadoc.ExecutableMemberDoc -->
+ <ref name="ExecutableMemberDocBody"/>
+
+ </define>
+
+ <define name="MethodDocBody">
+ <a:documentation>
+ Corresponds to an object of class
+ <code>com.sun.javadoc.MethodDoc</code>.
+ </a:documentation>
+
+ <!-- ... which is derived from class
+ com.sun.javadoc.ExecutableMemberDoc -->
+ <ref name="ExecutableMemberDocBody"/>
+
+ <ref name="returns-element"/>
+ </define>
+
+ <define name="FieldDocBody">
+ <a:documentation>
+ Corresponds to an object of class
+ <code>com.sun.javadoc.FieldDoc</code>.
+ </a:documentation>
+
+ <!-- ... which is derived from class
+ com.sun.javadoc.ProgramElementDoc -->
+ <ref name="ProgramElementDocBody"/>
+
+ <optional>
+ <ref name="isTransient-element"/>
+ </optional>
+
+ <optional>
+ <ref name="isVolatile-element"/>
+ </optional>
+
+ <element name="gjdoc:type">
+ <ref name="typedef-attributes"/>
+ </element>
+
+ </define>
+
+
+ <!-- The following patterns define the elements representing
+ concrete classes in the Javadoc API. -->
+
+ <define name="constructordoc-element">
+ <a:documentation>
+ Specifies a constructor of the class.
+ </a:documentation>
+
+ <element name="gjdoc:constructordoc">
+ <ref name="name-attribute"/>
+ <ref name="ConstructorDocBody"/>
+ </element>
+ </define>
+
+ <define name="methoddoc-element">
+ <a:documentation>
+ Specifies a method of the class.
+ </a:documentation>
+
+ <element name="gjdoc:methoddoc">
+ <ref name="name-attribute"/>
+ <ref name="MethodDocBody"/>
+ </element>
+ </define>
+
+ <define name="fielddoc-element">
+ <a:documentation>
+ Specifies a field of the class.
+ </a:documentation>
+
+ <element name="gjdoc:fielddoc">
+ <ref name="name-attribute"/>
+ <ref name="FieldDocBody"/>
+ </element>
+ </define>
+
+ <!-- The following patterns represent the return value of the
+ corresponding boolean getters of various classes in
+ <code>com.sun.javadoc</code>. The presence of each tag denotes a
+ return value of <code>true</code>, absence denotes a return value
+ of <code>false</code>. -->
+
+ <define name="isAbstract-element">
+ <a:documentation>
+ Presence means <code>ClassDoc.isAbstract()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isAbstract">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isClass-element">
+ <a:documentation>
+ Presence means <code>Doc.isClass()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isClass">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isConstructor-element">
+ <a:documentation>
+ Presence means <code>Doc.isConstructor()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isConstructor">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isError-element">
+ <a:documentation>
+ Presence means <code>Doc.isError()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isError">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isException-element">
+ <a:documentation>
+ Presence means <code>Doc.isException()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isException">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isSerializable-element">
+ <a:documentation>
+ Presence means <code>ClassDoc.isSerializable()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isSerializable">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isExternalizable-element">
+ <a:documentation>
+ Presence means <code>ClassDoc.isExternalizable()</code>
+ returns <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isExternalizable">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isField-element">
+ <a:documentation>
+ Presence means <code>Doc.isField()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isField">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isIncluded-element">
+ <a:documentation>
+ Presence means <code>Doc.isIncluded()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isIncluded">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isInterface-element">
+ <a:documentation>
+ Presence means <code>Doc.isInterface()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isInterface">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isMethod-element">
+ <a:documentation>
+ Presence means <code>Doc.isMethod()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isMethod">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isOrdinaryClass-element">
+ <a:documentation>
+ Presence means <code>Doc.isOrdinaryClass()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isOrdinaryClass">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isFinal-element">
+ <a:documentation>
+ Presence means <code>ProgramElementDoc.isFinal()</code>
+ returns <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isFinal">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isStatic-element">
+ <a:documentation>
+ Presence means <code>ProgramElementDoc.isStatic()</code>
+ returns <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isStatic">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isTransient-element">
+ <a:documentation>
+ Presence means <code>FieldDoc.isTransient()</code>
+ returns <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isTransient">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isVolatile-element">
+ <a:documentation>
+ Presence means <code>FieldDoc.isVolatile()</code>
+ returns <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isVolatile">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isNative-element">
+ <a:documentation>
+ Presence means <code>ExecutableMemberDoc.isNative()</code>
+ returns <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isNative">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="isSynchronized-element">
+ <a:documentation>
+ Presence means
+ <code>ExecutableMemberDoc.isSynchronized()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:isSynchronized">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="definesSerializableFields-element">
+ <a:documentation>
+ Presence means
+ <code>ClassDoc.definesSerializableFields()</code> returns
+ <code>true</code>.
+ </a:documentation>
+
+ <element name="gjdoc:definesSerializableFields">
+ <empty/>
+ </element>
+ </define>
+
+ <define name="access-element">
+ <a:documentation>
+ Corresponds to the access modifier (public, protected,
+ private) specified by a ProgramElementDoc.
+ </a:documentation>
+
+ <element name="gjdoc:access">
+ <attribute name="scope">
+ <a:documentation>
+ This value is determined by calling
+ <code>ProgramElementDoc.isPublic()</code>,
+ <code>ProgramElementDoc.isProtected()</code>,
+ <code>ProgramElementDoc.isPrivate()</code> and
+ <code>ProgramElementDoc.isPackagePrivate()</code>.
+ </a:documentation>
+ <choice>
+ <value>public</value>
+ <value>protected</value>
+ <value>private</value>
+ <value>package</value>
+ </choice>
+ </attribute>
+ </element>
+ </define>
+
+ <define name="containingClass-element">
+ <a:documentation>
+ Corresponds to the type returned by a call to
+ <code>com.sun.javadoc.Classdoc.containingClass()</code>.
+ </a:documentation>
+
+ <element name="gjdoc:containingClass">
+ <a:documentation>
+ The full name of the outer class containing the class, if
+ this class is an inner class.
+ </a:documentation>
+ <ref name="typedef-attributes"/>
+ </element>
+ </define>
+
+ <define name="parameter-element">
+ <a:documentation>
+ Corresponds to an entry in the array returned by a
+ <code>com.sun.javadoc.ExecutableMemberDoc.parameters()</code>.
+ </a:documentation>
+
+ <element name="gjdoc:parameter">
+ <a:documentation>
+ A parameter for a method or constructor call.
+ </a:documentation>
+ <ref name="name-attribute"/>
+ <optional>
+ <ref name="typedef-attributes"/>
+ </optional>
+ </element>
+ </define>
+
+ <define name="thrownException-element">
+ <a:documentation>
+ Corresponds to an entry in the array returned by a
+ <code>com.sun.javadoc.ExecutableMemberDoc.thrownExceptions()</code>.
+ </a:documentation>
+
+ <element name="gjdoc:thrownException">
+ <a:documentation>
+ An exception thrown by a method or constructor.
+ </a:documentation>
+ <ref name="typedef-attributes"/>
+ </element>
+ </define>
+
+
+ <define name="signature-element">
+ <a:documentation>
+ Corresponds to the signature specified by a
+ <code>com.sun.javadoc.MethodDoc</code>.
+ </a:documentation>
+
+ <element name="gjdoc:signature">
+ <a:documentation>
+ The signature of a method or constructor.
+ </a:documentation>
+ <attribute name="full">
+ <a:documentation>
+ The full signature of a method or constructor, as
+ returned by
+ <code>com.sun.javadoc.ExecutableMemberDoc.signature()</code>.
+ </a:documentation>
+ <text/>
+ </attribute>
+ <attribute name="flat">
+ <a:documentation>
+ The "flat" signature of a method or constructor, as
+ returned by
+ <code>com.sun.javadoc.ExecutableMemberDoc.flatSignature()</code>.
+ </a:documentation>
+ <text/>
+ </attribute>
+ </element>
+ </define>
+
+ <define name="returns-element">
+ <a:documentation>
+ Corresponds to the type returned by
+ <code>com.sun.javadoc.MethodDoc.returnType()</code>.
+ </a:documentation>
+
+ <element name="gjdoc:returns">
+ <a:documentation>
+ The type returned by a method.
+ </a:documentation>
+
+ <ref name="typedef-attributes"/>
+ </element>
+ </define>
+</grammar>
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng
new file mode 100644
index 0000000..85ffc1d
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-common.rng
@@ -0,0 +1,264 @@
+<?xml version="1.0"?>
+
+<!-- gjdoc-common.rng
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. -->
+
+<grammar
+ xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:a="http://relaxng.org/ns/annotation/1.0"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml">
+
+ <a:documentation>
+ A Relax NG grammar with definitions of elements and attributes
+ used by both the XML index file and the XML class files
+ generated by GNU Gjdoc.
+ </a:documentation>
+
+ <define name="firstSentenceTags-element">
+ <a:documentation>
+
+ </a:documentation>
+
+ <element name="gjdoc:firstSentenceTags">
+ <ref name="tags-contents"/>
+ </element>
+ </define>
+
+ <define name="inlineTags-element">
+ <a:documentation>
+
+ </a:documentation>
+
+ <element name="gjdoc:inlineTags">
+ <ref name="tags-contents"/>
+ </element>
+ </define>
+
+ <define name="seeTags-element">
+ <a:documentation>
+
+ </a:documentation>
+
+ <element name="gjdoc:seeTags">
+ <ref name="tags-contents"/>
+ </element>
+ </define>
+
+
+ <define name="tags-element">
+ <a:documentation>
+
+ </a:documentation>
+
+ <element name="gjdoc:tags">
+ <ref name="tags-contents"/>
+ </element>
+ </define>
+
+ <define name="tags-contents">
+ <a:documentation>
+ Specifies mixed content comprised of gjdoc tags,
+ HTML tags, taglet output, and text.
+ </a:documentation>
+
+ <zeroOrMore>
+ <ref name="TagContent"/>
+ </zeroOrMore>
+ </define>
+
+ <define name="implements-element">
+ <element name="gjdoc:implements">
+ <a:documentation>
+ Specifies an interface that the class implements.
+ </a:documentation>
+
+ <ref name="typedef-attributes"/>
+ </element>
+ </define>
+
+
+ <define name="superimplements-element">
+ <element name="gjdoc:superimplements">
+ <a:documentation>
+ Specifies an interface implemented by superclasses
+ (ancestors) of the class. Together with the interfaces
+ specified with tag `implements', this lists all interfaces
+ the class can be cast to.
+ </a:documentation>
+
+ <ref name="typedef-attributes"/>
+ </element>
+ </define>
+
+ <define name="typedef-attributes">
+ <attribute name="typename">
+ <a:documentation>
+ The name of the class, without package prefix. If the
+ class is an inner class, this includes the name of its
+ outer class.
+ </a:documentation>
+
+ <text/>
+ </attribute>
+
+ <ref name="qualifiedtypename-attribute"/>
+
+ <optional>
+ <attribute name="dimension">
+ <a:documentation>
+ The dimension of this typedef, represented by a zero or
+ more repetitions of the string "[]".
+ </a:documentation>
+
+ <text/>
+ </attribute>
+ </optional>
+ </define>
+
+ <define name="name-attribute">
+ <attribute name="name">
+ <a:documentation>
+ The name of some Java Entity (package, class, constructor,
+ method, field.)
+ </a:documentation>
+
+ <text/>
+ </attribute>
+ </define>
+
+ <define name="qualifiedtypename-attribute">
+ <attribute name="qualifiedtypename">
+ <a:documentation>
+ The fully qualified name of the class.
+ </a:documentation>
+
+ <text/>
+ </attribute>
+ </define>
+
+ <define name="superclass-element">
+ <element name="gjdoc:superclass">
+ <a:documentation>
+ Specifies the superclass of the class.
+ </a:documentation>
+
+ <ref name="typedef-attributes"/>
+ </element>
+ </define>
+
+ <define name="tag-element">
+ <element name="gjdoc:tag">
+ <ref name="name-attribute"/>
+ <attribute name="kind">
+ <text/>
+ </attribute>
+ <zeroOrMore>
+ <ref name="TagContent"/>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="exception-element">
+ <element name="gjdoc:exception">
+ <ref name="typedef-attributes"/>
+ </element>
+ </define>
+
+ <define name="TagContent">
+ <choice>
+ <element>
+ <anyName>
+ <except>
+ <nsName ns="gjdoc"/>
+ <name>gjdoc:tag</name>
+ </except>
+ </anyName>
+ <zeroOrMore>
+ <attribute>
+ <anyName/>
+ </attribute>
+ </zeroOrMore>
+ <zeroOrMore>
+ <choice>
+ <text/>
+ <ref name="TagContent"/>
+ </choice>
+ </zeroOrMore>
+ </element>
+ <ref name="tag-element"/>
+ <ref name="exception-element"/>
+ <ref name="tagletText-element"/>
+ <text/>
+ </choice>
+ </define>
+
+ <define name="containingPackage-element">
+ <element name="gjdoc:containingPackage">
+ <a:documentation>
+ The full name of the package containing the class.
+ </a:documentation>
+ <attribute name="name">
+ <text/>
+ </attribute>
+ </element>
+ </define>
+
+ <define name="tagletText-element">
+ <element name="gjdoc:tagletText">
+ <a:documentation>
+ A string generated by a Taglet.toString() method.
+ </a:documentation>
+ <attribute name="tagName">
+ <a:documentation>
+ The name of the tag this Taglet was assigned to.
+ </a:documentation>
+ <text/>
+ </attribute>
+ </element>
+ </define>
+
+ <define name="isError-element">
+ <element name="gjdoc:isError">
+ <a:documentation>
+ Exists when the described class is a subclass of
+ java.lang.Error.
+ </a:documentation>
+ </element>
+ </define>
+
+ <define name="isException-element">
+ <element name="gjdoc:isException">
+ <a:documentation>
+ Exists when the described class is a subclass of
+ java.lang.Exception.
+ </a:documentation>
+ </element>
+ </define>
+
+ <define name="isInterface-element">
+ <element name="gjdoc:isInterface">
+ <a:documentation>
+ Exists when the described class is an interface.
+ </a:documentation>
+ </element>
+ </define>
+
+</grammar>
+
diff --git a/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng
new file mode 100644
index 0000000..b788556
--- /dev/null
+++ b/libjava/classpath/tools/resource/gnu/classpath/tools/gjdoc/rng/gjdoc-index.rng
@@ -0,0 +1,176 @@
+<?xml version="1.0"?>
+
+<!-- gjdoc-index.rng
+ Copyright (C) 2003 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
+02111-1307 USA. -->
+
+<grammar
+ xmlns="http://relaxng.org/ns/structure/1.0"
+ xmlns:a="http://relaxng.org/ns/annotation/1.0"
+ xmlns:gjdoc="http://www.gnu.org/software/cp-tools/gjdocxml">
+
+ <include href="gjdoc-common.rng"/>
+
+ <a:documentation>
+ The Relax NG grammar for the XML index file generated by GNU
+ Gjdoc.
+ </a:documentation>
+
+ <start>
+ <a:documentation>
+ The root element for a Gjdoc index XML document.
+ </a:documentation>
+
+ <element name="gjdoc:rootdoc">
+ <a:documentation>
+ Corresponds to the Javadoc API RootDoc object, the root of
+ the generated documentation.
+ </a:documentation>
+
+ <zeroOrMore>
+ <ref name="specifiedclass-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="specifiedpackage-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="packagedoc-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="classdoc-element"/>
+ </zeroOrMore>
+ </element>
+ </start>
+
+ <define name="containsClass-element">
+ <element name="gjdoc:containsClass">
+ <a:documentation>
+ Corresponds to a class contained in a package or in
+ another class.
+ </a:documentation>
+
+ <ref name="qualifiedtypename-attribute"/>
+ </element>
+ </define>
+
+ <define name="specifiedclass-element">
+ <element name="gjdoc:specifiedclass">
+ <a:documentation>
+ Corresponds to a class named on the Gjdoc command
+ line. This is a class the user explicitly wants
+ documentation generated for.
+ </a:documentation>
+
+ <attribute name="name">
+ <a:documentation>
+ The name of the class as given by the user on the command
+ line. (CHECK)
+ </a:documentation>
+
+ <text/>
+ </attribute>
+ </element>
+ </define>
+
+ <define name="specifiedpackage-element">
+ <element name="gjdoc:specifiedpackage">
+ <a:documentation>
+ Corresponds to a package named on the Gjdoc command
+ line. This is a package the user explicitly wants
+ documentation generated for.
+ </a:documentation>
+
+ <attribute name="name">
+ <a:documentation>
+ The full name of the package.
+ </a:documentation>
+
+ <text/>
+ </attribute>
+ </element>
+ </define>
+
+ <define name="packagedoc-element">
+ <element name="gjdoc:packagedoc">
+ <a:documentation>
+ Corresponds to a package for which XML documentation
+ has been generated. This is not necessarily a package
+ the user requested generation for.
+ </a:documentation>
+
+ <ref name="name-attribute"/>
+ <ref name="firstSentenceTags-element"/>
+
+ <zeroOrMore>
+ <ref name="containsClass-element"/>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name="classdoc-element">
+ <element name="gjdoc:classdoc">
+ <a:documentation>
+ Corresponds to a class for which XML documentation has
+ been generated.
+ </a:documentation>
+
+ <ref name="name-attribute"/>
+ <ref name="qualifiedtypename-attribute"/>
+
+ <optional>
+ <a:documentation>
+ The following is optional because the root class
+ java.lang.Object does not have a superclass. For all
+ other classes, this element should be specified.
+ </a:documentation>
+
+ <ref name="superclass-element"/>
+ </optional>
+
+ <zeroOrMore>
+ <ref name="implements-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="superimplements-element"/>
+ </zeroOrMore>
+
+ <ref name="containingPackage-element"/>
+
+ <zeroOrMore>
+ <ref name="isError-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="isException-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="isInterface-element"/>
+ </zeroOrMore>
+
+ <zeroOrMore>
+ <ref name="containsClass-element"/>
+ </zeroOrMore>
+ </element>
+ </define>
+</grammar>
diff --git a/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java b/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java
new file mode 100644
index 0000000..8e137cd
--- /dev/null
+++ b/libjava/classpath/vm/reference/gnu/java/lang/VMCPStringBuilder.java
@@ -0,0 +1,112 @@
+/* VMCPStringBuilder.java -- Growable strings without locking or copying
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * This class provides VM support for CPStringBuilder
+ * by allowing the package-private constructor
+ * of java.lang.String to be invoked. The default
+ * implementation uses reflection. VMs may replace
+ * this class with a more efficient version.
+ */
+final class VMCPStringBuilder
+{
+
+ /**
+ * The package-private constructor for String objects without copying.
+ */
+ private static final Constructor cons;
+
+ static
+ {
+ try
+ {
+ cons = String.class.getDeclaredConstructor(new Class[] { char[].class,
+ Integer.TYPE,
+ Integer.TYPE,
+ Boolean.TYPE });
+ cons.setAccessible(true);
+ }
+ catch (NoSuchMethodException e)
+ {
+ throw (Error)
+ new InternalError("Could not get no-copy String constructor").initCause(e);
+ }
+ }
+
+ /**
+ * Convert this <code>StringBuilder</code> to a <code>String</code>. The
+ * String is composed of the characters currently in this StringBuilder. Note
+ * that the result is not a copy, so the builder will allocate a new array
+ * if a further write operation is attempted.
+ *
+ * @param value the buffered characters.
+ * @param startIndex the index at which to start taking characters from the buffer.
+ * @param count the number of characters used in the buffer.
+ * @return the characters in this StringBuilder
+ */
+ public static String toString(char[] value, int startIndex, int count)
+ {
+ try
+ {
+ return (String)
+ cons.newInstance(new Object[] { value, Integer.valueOf(startIndex),
+ Integer.valueOf(count),
+ Boolean.valueOf(true) });
+ }
+ catch (InstantiationException e)
+ {
+ throw (Error)
+ new InternalError("Could not instantiate no-copy String constructor").initCause(e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw (Error)
+ new InternalError("Could not access no-copy String constructor").initCause(e);
+ }
+ catch (InvocationTargetException e)
+ {
+ throw (Error)
+ new InternalError("Error calling no-copy String constructor").initCause(e);
+ }
+ }
+
+}
diff --git a/libjava/classpath/vm/reference/java/io/VMFile.java b/libjava/classpath/vm/reference/java/io/VMFile.java
index 2a27517..9f584af 100644
--- a/libjava/classpath/vm/reference/java/io/VMFile.java
+++ b/libjava/classpath/vm/reference/java/io/VMFile.java
@@ -58,10 +58,10 @@ final class VMFile
{
if (Configuration.INIT_LOAD_LIBRARY)
{
- System.loadLibrary("javaio");
+ System.loadLibrary("javaio");
}
}
-
+
/*
* This native method does the actual work of getting the last file
* modification time. It also does the existence check to avoid the
@@ -167,19 +167,7 @@ final class VMFile
/**
* This methods checks if a directory can be written to.
*/
- static boolean canWriteDirectory(File dir)
- {
- try
- {
- String filename = IS_DOS_8_3 ? "tst" : "test-dir-write";
- File test = File.createTempFile(filename, null, dir);
- return (test != null && test.delete());
- }
- catch (IOException ioe)
- {
- return false;
- }
- }
+ static native boolean canWriteDirectory(String path);
/**
* This native method checks file permissions for reading
@@ -199,6 +187,14 @@ final class VMFile
static native boolean isDirectory(String dirpath);
/**
+ * This methods checks if a directory can be written to.
+ */
+ static boolean canWriteDirectory(File path)
+ {
+ return canWriteDirectory(path.getAbsolutePath());
+ }
+
+ /**
* This method returns an array of filesystem roots. Some operating systems
* have volume oriented filesystem. This method provides a mechanism for
* determining which volumes exist. GNU systems use a single hierarchical
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java b/libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java
new file mode 100644
index 0000000..dbed903
--- /dev/null
+++ b/libjava/classpath/vm/reference/java/lang/reflect/VMConstructor.java
@@ -0,0 +1,169 @@
+/* java.lang.reflect.VMConstructor - VM interface for reflection of Java constructors
+ Copyright (C) 1998, 2001, 2004, 2005 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import java.lang.annotation.Annotation;
+
+import java.util.Arrays;
+
+final class VMConstructor
+{
+ Class clazz;
+ int slot;
+
+ /**
+ * This field allows us to refer back to the main constructor instance.
+ * It is set by the constructor of Constructor.
+ */
+ Constructor cons;
+
+ VMConstructor(Class clazz, int slot)
+ {
+ this.clazz = clazz;
+ this.slot = slot;
+ }
+
+ public Class getDeclaringClass()
+ {
+ return clazz;
+ }
+
+ /**
+ * Return the raw modifiers for this constructor. In particular
+ * this will include the synthetic and varargs bits.
+ * @return the constructor's modifiers
+ */
+ native int getModifiersInternal();
+
+ /**
+ * Get the parameter list for this constructor, in declaration order. If the
+ * constructor takes no parameters, returns a 0-length array (not null).
+ *
+ * @return a list of the types of the constructor's parameters
+ */
+ native Class[] getParameterTypes();
+
+ /**
+ * Get the exception types this constructor says it throws, in no particular
+ * order. If the constructor has no throws clause, returns a 0-length array
+ * (not null).
+ *
+ * @return a list of the types in the constructor's throws clause
+ */
+ native Class[] getExceptionTypes();
+
+ native Object construct(Object[] args)
+ throws InstantiationException, IllegalAccessException,
+ InvocationTargetException;
+
+ /**
+ * Return the String in the Signature attribute for this constructor. If there
+ * is no Signature attribute, return null.
+ */
+ native String getSignature();
+
+ /**
+ * <p>
+ * Return an array of arrays representing the annotations on each
+ * of the constructor's parameters. The outer array is aligned against
+ * the parameters of the constructors and is thus equal in length to
+ * the number of parameters (thus having a length zero if there are none).
+ * Each array element in the outer array contains an inner array which
+ * holds the annotations. This array has a length of zero if the parameter
+ * has no annotations.
+ * </p>
+ * <p>
+ * The returned annotations are serialized. Changing the annotations has
+ * no affect on the return value of future calls to this method.
+ * </p>
+ *
+ * @return an array of arrays which represents the annotations used on the
+ * parameters of this constructor. The order of the array elements
+ * matches the declaration order of the parameters.
+ * @since 1.5
+ */
+ native Annotation[][] getParameterAnnotations();
+
+ /**
+ * Compare two objects to see if they are semantically equivalent.
+ * Two Constructors are semantically equivalent if they have the same
+ * declaring class and the same parameter list. This ignores different
+ * exception clauses, but since you can't create a Method except through the
+ * VM, this is just the == relation.
+ *
+ * @param o the object to compare to
+ * @return <code>true</code> if they are equal; <code>false</code> if not.
+ */
+ public boolean equals(Object o)
+ {
+ if (!(o instanceof Constructor))
+ return false;
+ Constructor that = (Constructor)o;
+ if (clazz != that.getDeclaringClass())
+ return false;
+ if (!Arrays.equals(getParameterTypes(), that.getParameterTypes()))
+ return false;
+ return true;
+ }
+
+ /**
+ * Returns the element's annotation for the specified annotation type,
+ * or <code>null</code> if no such annotation exists.
+ *
+ * @param annotationClass the type of annotation to look for.
+ * @return this element's annotation for the specified type, or
+ * <code>null</code> if no such annotation exists.
+ * @throws NullPointerException if the annotation class is <code>null</code>.
+ */
+ native Annotation getAnnotation(Class annotationClass);
+
+ /**
+ * Returns all annotations directly defined by the element. If there are
+ * no annotations directly associated with the element, then a zero-length
+ * array will be returned. The returned array may be modified by the client
+ * code, but this will have no effect on the annotation content of this
+ * class, and hence no effect on the return value of this method for
+ * future callers.
+ *
+ * @return the annotations directly defined by the element.
+ * @since 1.5
+ */
+ native Annotation[] getDeclaredAnnotations();
+
+}
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/VMField.java b/libjava/classpath/vm/reference/java/lang/reflect/VMField.java
new file mode 100644
index 0000000..53f3847
--- /dev/null
+++ b/libjava/classpath/vm/reference/java/lang/reflect/VMField.java
@@ -0,0 +1,549 @@
+/* java.lang.reflect.Field - VM interface for reflection of Java fields
+ Copyright (C) 1998, 2001, 2005, 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import java.lang.annotation.Annotation;
+
+final class VMField
+{
+ Class clazz;
+ String name;
+ int slot;
+
+ /**
+ * This field allows us to refer back to the main constructor instance.
+ * It is set by the constructor of Field.
+ */
+ Field f;
+
+ VMField(Class clazz, String name, int slot)
+ {
+ this.clazz = clazz;
+ this.name = name;
+ this.slot = slot;
+ }
+
+ public Class getDeclaringClass()
+ {
+ return clazz;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * Return the raw modifiers for this field.
+ * @return the field's modifiers
+ */
+ native int getModifiersInternal();
+
+ /**
+ * Gets the type of this field.
+ * @return the type of this field
+ */
+ native Class getType();
+
+ /**
+ * Get the value of this Field. If it is primitive, it will be wrapped
+ * in the appropriate wrapper type (boolean = java.lang.Boolean).<p>
+ *
+ * If the field is static, <code>o</code> will be ignored. Otherwise, if
+ * <code>o</code> is null, you get a <code>NullPointerException</code>,
+ * and if it is incompatible with the declaring class of the field, you
+ * get an <code>IllegalArgumentException</code>.<p>
+ *
+ * Next, if this Field enforces access control, your runtime context is
+ * evaluated, and you may have an <code>IllegalAccessException</code> if
+ * you could not access this field in similar compiled code. If the field
+ * is static, and its class is uninitialized, you trigger class
+ * initialization, which may end in a
+ * <code>ExceptionInInitializerError</code>.<p>
+ *
+ * Finally, the field is accessed, and primitives are wrapped (but not
+ * necessarily in new objects). This method accesses the field of the
+ * declaring class, even if the instance passed in belongs to a subclass
+ * which declares another field to hide this one.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if <code>o</code> is not an instance of
+ * the class or interface declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #getBoolean(Object)
+ * @see #getByte(Object)
+ * @see #getChar(Object)
+ * @see #getShort(Object)
+ * @see #getInt(Object)
+ * @see #getLong(Object)
+ * @see #getFloat(Object)
+ * @see #getDouble(Object)
+ */
+ native Object get(Object o)
+ throws IllegalAccessException;
+
+ /**
+ * Get the value of this boolean Field. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a boolean field of
+ * <code>o</code>, or if <code>o</code> is not an instance of the
+ * declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ native boolean getBoolean(Object o)
+ throws IllegalAccessException;
+
+ /**
+ * Get the value of this byte Field. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte field of
+ * <code>o</code>, or if <code>o</code> is not an instance of the
+ * declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ native byte getByte(Object o)
+ throws IllegalAccessException;
+
+ /**
+ * Get the value of this Field as a char. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a char field of
+ * <code>o</code>, or if <code>o</code> is not an instance
+ * of the declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ native char getChar(Object o)
+ throws IllegalAccessException;
+
+ /**
+ * Get the value of this Field as a short. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte or short
+ * field of <code>o</code>, or if <code>o</code> is not an instance
+ * of the declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ native short getShort(Object o)
+ throws IllegalAccessException;
+
+ /**
+ * Get the value of this Field as an int. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte, short, char, or
+ * int field of <code>o</code>, or if <code>o</code> is not an
+ * instance of the declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ native int getInt(Object o)
+ throws IllegalAccessException;
+
+ /**
+ * Get the value of this Field as a long. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte, short, char, int,
+ * or long field of <code>o</code>, or if <code>o</code> is not an
+ * instance of the declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ native long getLong(Object o)
+ throws IllegalAccessException;
+
+ /**
+ * Get the value of this Field as a float. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte, short, char, int,
+ * long, or float field of <code>o</code>, or if <code>o</code> is
+ * not an instance of the declaring class of this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ native float getFloat(Object o)
+ throws IllegalAccessException;
+
+ /**
+ * Get the value of this Field as a double. If the field is static,
+ * <code>o</code> will be ignored.
+ *
+ * @param o the object to get the value of this Field from
+ * @return the value of the Field
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte, short, char, int,
+ * long, float, or double field of <code>o</code>, or if
+ * <code>o</code> is not an instance of the declaring class of this
+ * field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #get(Object)
+ */
+ native double getDouble(Object o)
+ throws IllegalAccessException;
+
+ /**
+ * Set the value of this Field. If it is a primitive field, the value
+ * will be unwrapped from the passed object (boolean = java.lang.Boolean).<p>
+ *
+ * If the field is static, <code>o</code> will be ignored. Otherwise, if
+ * <code>o</code> is null, you get a <code>NullPointerException</code>,
+ * and if it is incompatible with the declaring class of the field, you
+ * get an <code>IllegalArgumentException</code>.<p>
+ *
+ * Next, if this Field enforces access control, your runtime context is
+ * evaluated, and you may have an <code>IllegalAccessException</code> if
+ * you could not access this field in similar compiled code. This also
+ * occurs whether or not there is access control if the field is final.
+ * If the field is primitive, and unwrapping your argument fails, you will
+ * get an <code>IllegalArgumentException</code>; likewise, this error
+ * happens if <code>value</code> cannot be cast to the correct object type.
+ * If the field is static, and its class is uninitialized, you trigger class
+ * initialization, which may end in a
+ * <code>ExceptionInInitializerError</code>.<p>
+ *
+ * Finally, the field is set with the widened value. This method accesses
+ * the field of the declaring class, even if the instance passed in belongs
+ * to a subclass which declares another field to hide this one.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if <code>value</code> cannot be
+ * converted by a widening conversion to the underlying type of
+ * the Field, or if <code>o</code> is not an instance of the class
+ * declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #setBoolean(Object, boolean)
+ * @see #setByte(Object, byte)
+ * @see #setChar(Object, char)
+ * @see #setShort(Object, short)
+ * @see #setInt(Object, int)
+ * @see #setLong(Object, long)
+ * @see #setFloat(Object, float)
+ * @see #setDouble(Object, double)
+ */
+ native void set(Object o, Object value)
+ throws IllegalAccessException;
+
+ /**
+ * Set this boolean Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a boolean field, or if
+ * <code>o</code> is not an instance of the class declaring this
+ * field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ native void setBoolean(Object o, boolean value)
+ throws IllegalAccessException;
+
+ /**
+ * Set this byte Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a byte, short, int, long,
+ * float, or double field, or if <code>o</code> is not an instance
+ * of the class declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ native void setByte(Object o, byte value)
+ throws IllegalAccessException;
+
+ /**
+ * Set this char Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a char, int, long,
+ * float, or double field, or if <code>o</code> is not an instance
+ * of the class declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ native void setChar(Object o, char value)
+ throws IllegalAccessException;
+
+ /**
+ * Set this short Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a short, int, long,
+ * float, or double field, or if <code>o</code> is not an instance
+ * of the class declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ native void setShort(Object o, short value)
+ throws IllegalAccessException;
+
+ /**
+ * Set this int Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not an int, long, float, or
+ * double field, or if <code>o</code> is not an instance of the
+ * class declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ native void setInt(Object o, int value)
+ throws IllegalAccessException;
+
+ /**
+ * Set this long Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a long, float, or double
+ * field, or if <code>o</code> is not an instance of the class
+ * declaring this field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ native void setLong(Object o, long value)
+ throws IllegalAccessException;
+
+ /**
+ * Set this float Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a float or long field, or
+ * if <code>o</code> is not an instance of the class declaring this
+ * field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ native void setFloat(Object o, float value)
+ throws IllegalAccessException;
+
+ /**
+ * Set this double Field. If the field is static, <code>o</code> will be
+ * ignored.
+ *
+ * @param o the object to set this Field on
+ * @param value the value to set this Field to
+ * @throws IllegalAccessException if you could not normally access this field
+ * (i.e. it is not public)
+ * @throws IllegalArgumentException if this is not a double field, or if
+ * <code>o</code> is not an instance of the class declaring this
+ * field
+ * @throws NullPointerException if <code>o</code> is null and this field
+ * requires an instance
+ * @throws ExceptionInInitializerError if accessing a static field triggered
+ * class initialization, which then failed
+ * @see #set(Object, Object)
+ */
+ native void setDouble(Object o, double value)
+ throws IllegalAccessException;
+
+ /**
+ * Return the String in the Signature attribute for this field. If there
+ * is no Signature attribute, return null.
+ *
+ */
+ native String getSignature();
+
+ /**
+ * Compare two objects to see if they are semantically equivalent.
+ * Two Fields are semantically equivalent if they have the same declaring
+ * class, name, and type. Since you can't create a Field except through
+ * the VM, this is just the == relation.
+ *
+ * @param o the object to compare to
+ * @return <code>true</code> if they are equal; <code>false</code> if not
+ */
+ public boolean equals(Object o)
+ {
+ if (!(o instanceof Field))
+ return false;
+ Field that = (Field)o;
+ if (clazz != that.getDeclaringClass())
+ return false;
+ if (!name.equals(that.getName()))
+ return false;
+ if (getType() != that.getType())
+ return false;
+ return true;
+ }
+
+ /**
+ * Returns the element's annotation for the specified annotation type,
+ * or <code>null</code> if no such annotation exists.
+ *
+ * @param annotationClass the type of annotation to look for.
+ * @return this element's annotation for the specified type, or
+ * <code>null</code> if no such annotation exists.
+ * @throws NullPointerException if the annotation class is <code>null</code>.
+ */
+ native Annotation getAnnotation(Class annotationClass);
+
+ /**
+ * Returns all annotations directly defined by the element. If there are
+ * no annotations directly associated with the element, then a zero-length
+ * array will be returned. The returned array may be modified by the client
+ * code, but this will have no effect on the annotation content of this
+ * class, and hence no effect on the return value of this method for
+ * future callers.
+ *
+ * @return the annotations directly defined by the element.
+ * @since 1.5
+ */
+ native Annotation[] getDeclaredAnnotations();
+
+}
diff --git a/libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java b/libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java
new file mode 100644
index 0000000..f8574cd
--- /dev/null
+++ b/libjava/classpath/vm/reference/java/lang/reflect/VMMethod.java
@@ -0,0 +1,209 @@
+/* java.lang.reflect.VMMethod - VM interface for reflection of Java methods
+ Copyright (C) 1998, 2001, 2002, 2005, 2007, 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+
+package java.lang.reflect;
+
+import java.lang.annotation.Annotation;
+
+import java.util.Arrays;
+
+final class VMMethod
+{
+ Class clazz;
+ String name;
+ int slot;
+
+ /**
+ * This field allows us to refer back to the main constructor instance.
+ * It is set by the constructor of Field.
+ */
+ Method m;
+
+ public Class getDeclaringClass()
+ {
+ return clazz;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ /**
+ * Return the raw modifiers for this method.
+ * @return the method's modifiers
+ */
+ native int getModifiersInternal();
+
+ /**
+ * Gets the return type of this method.
+ * @return the type of this method
+ */
+ native Class getReturnType();
+
+ /**
+ * Get the parameter list for this method, in declaration order. If the
+ * method takes no parameters, returns a 0-length array (not null).
+ *
+ * @return a list of the types of the method's parameters
+ */
+ native Class[] getParameterTypes();
+
+ /**
+ * Get the exception types this method says it throws, in no particular
+ * order. If the method has no throws clause, returns a 0-length array
+ * (not null).
+ *
+ * @return a list of the types in the method's throws clause
+ */
+ native Class[] getExceptionTypes();
+
+ native Object invoke(Object o, Object[] args)
+ throws IllegalAccessException, InvocationTargetException;
+
+ /**
+ * Return the String in the Signature attribute for this method. If there
+ * is no Signature attribute, return null.
+ */
+ native String getSignature();
+
+ /**
+ * If this method is an annotation method, returns the default
+ * value for the method. If there is no default value, or if the
+ * method is not a member of an annotation type, returns null.
+ * Primitive types are wrapped.
+ *
+ * @throws TypeNotPresentException if the method returns a Class,
+ * and the class cannot be found
+ *
+ * @since 1.5
+ */
+ native Object getDefaultValue();
+
+ /**
+ * <p>
+ * Return an array of arrays representing the annotations on each
+ * of the method's parameters. The outer array is aligned against
+ * the parameters of the method and is thus equal in length to
+ * the number of parameters (thus having a length zero if there are none).
+ * Each array element in the outer array contains an inner array which
+ * holds the annotations. This array has a length of zero if the parameter
+ * has no annotations.
+ * </p>
+ * <p>
+ * The returned annotations are serialized. Changing the annotations has
+ * no affect on the return value of future calls to this method.
+ * </p>
+ *
+ * @return an array of arrays which represents the annotations used on the
+ * parameters of this method. The order of the array elements
+ * matches the declaration order of the parameters.
+ * @since 1.5
+ */
+ native Annotation[][] getParameterAnnotations();
+
+ /**
+ * Compare two objects to see if they are semantically equivalent.
+ * Two Methods are semantically equivalent if they have the same declaring
+ * class, name, parameter list, and return type.
+ *
+ * @param o the object to compare to
+ * @return <code>true</code> if they are equal; <code>false</code> if not
+ */
+ public boolean equals(Object o)
+ {
+ // Implementation note:
+ // The following is a correct but possibly slow implementation.
+ //
+ // This class has a private field 'slot' that could be used by
+ // the VM implementation to "link" a particular method to a Class.
+ // In that case equals could be simply implemented as:
+ //
+ // if (o instanceof Method)
+ // {
+ // Method m = (Method)o;
+ // return m.declaringClass == this.declaringClass
+ // && m.slot == this.slot;
+ // }
+ // return false;
+ //
+ // If a VM uses the Method class as their native/internal representation
+ // then just using the following would be optimal:
+ //
+ // return this == o;
+ //
+ if (!(o instanceof Method))
+ return false;
+ Method that = (Method)o;
+ if (clazz != that.getDeclaringClass())
+ return false;
+ if (!name.equals(that.getName()))
+ return false;
+ if (getReturnType() != that.getReturnType())
+ return false;
+ if (!Arrays.equals(getParameterTypes(), that.getParameterTypes()))
+ return false;
+ return true;
+ }
+
+ /**
+ * Returns the element's annotation for the specified annotation type,
+ * or <code>null</code> if no such annotation exists.
+ *
+ * @param annotationClass the type of annotation to look for.
+ * @return this element's annotation for the specified type, or
+ * <code>null</code> if no such annotation exists.
+ * @throws NullPointerException if the annotation class is <code>null</code>.
+ */
+ native Annotation getAnnotation(Class annotationClass);
+
+ /**
+ * Returns all annotations directly defined by the element. If there are
+ * no annotations directly associated with the element, then a zero-length
+ * array will be returned. The returned array may be modified by the client
+ * code, but this will have no effect on the annotation content of this
+ * class, and hence no effect on the return value of this method for
+ * future callers.
+ *
+ * @return the annotations directly defined by the element.
+ * @since 1.5
+ */
+ native Annotation[] getDeclaredAnnotations();
+
+}
+
diff --git a/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java b/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java
index e28e616..63a29b1 100644
--- a/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java
+++ b/libjava/classpath/vm/reference/java/net/VMNetworkInterface.java
@@ -1,5 +1,5 @@
/* VMNetworkInterface.java --
- Copyright (C) 2005 Free Software Foundation, Inc.
+ Copyright (C) 2005, 2008 Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -57,12 +57,12 @@ import java.util.Set;
final class VMNetworkInterface
{
String name;
- Set<InetAddress> addresses;
+ Set addresses;
VMNetworkInterface(String name)
{
this.name = name;
- addresses = new HashSet<InetAddress>();
+ addresses = new HashSet();
}
/**
@@ -71,7 +71,7 @@ final class VMNetworkInterface
*/
public VMNetworkInterface()
{
- addresses = new HashSet<InetAddress>();
+ addresses = new HashSet();
try
{
addresses.add(InetAddress.getByName("0.0.0.0"));
@@ -119,4 +119,13 @@ final class VMNetworkInterface
else
throw new SocketException("invalid interface address");
}
+
+ static native boolean isUp(String name) throws SocketException;
+
+ static native boolean isLoopback(String name) throws SocketException;
+
+ static native boolean isPointToPoint(String name) throws SocketException;
+
+ static native boolean supportsMulticast(String name) throws SocketException;
+
}
diff --git a/libjava/configure b/libjava/configure
index a507102..ffee069 100755
--- a/libjava/configure
+++ b/libjava/configure
@@ -459,7 +459,7 @@ ac_includes_default="\
#endif"
ac_subdirs_all="$ac_subdirs_all classpath libltdl"
-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 datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJ_LD_SYMBOLIC_FUNCTIONS LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL SED EGREP FGREP GREP DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP CPPFLAGS CXXCPP GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME SUPPRESS_LIBGCJ_BC_TRUE SUPPRESS_LIBGCJ_BC_FALSE BUILD_LIBGCJ_REDUCED_REFLECTION_TRUE BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE INTERPRETER INTERPRETER_TRUE INTERPRETER_FALSE LIBFFI LIBFFIINCS PLATFORM USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava extra_gij_ldflags extra_ldflags LIBSTDCXXSPEC LIBGCJTESTSPEC GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION dbexecdir gcjsubdir gxx_include_dir libstdcxx_incdir PERL SYSDEP_SOURCES ANONVERSCRIPT_TRUE ANONVERSCRIPT_FALSE LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here python_mod_dir python_mod_dir_expanded MAKE INSTALL_AOT_RPM_TRUE INSTALL_AOT_RPM_FALSE CREATE_JAVA_HOME_TRUE CREATE_JAVA_HOME_FALSE gcc_suffix JAVA_VERSION BUILD_VERSION JVM_ROOT_DIR JVM_JAR_ROOT_DIR JVM_JAR_DIR JRE_DIR SDK_DIR JRE_LNK SDK_LNK SDK_BIN_DIR SDK_LIB_DIR SDK_INCLUDE_DIR JRE_BIN_DIR JRE_LIB_DIR GCJ_BIN_DIR CPU OS LIBDIR LIBOBJS LTLIBOBJS'
+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 datadir sysconfdir sharedstatedir localstatedir libdir includedir oldincludedir infodir mandir build_alias host_alias target_alias DEFS ECHO_C ECHO_N ECHO_T LIBS build build_cpu build_vendor build_os build_libsubdir build_subdir host_subdir target_subdir multi_basedir host host_cpu host_vendor host_os target target_cpu target_vendor target_os target_noncanonical LN_S mkinstalldirs ANTLR_JAR CREATE_GJDOC_TRUE CREATE_GJDOC_FALSE JAVA_MAINTAINER_MODE_TRUE JAVA_MAINTAINER_MODE_FALSE CC ac_ct_CC EXEEXT OBJEXT CXX ac_ct_CXX CFLAGS CXXFLAGS LDFLAGS INSTALL_PROGRAM INSTALL_SCRIPT INSTALL_DATA CYGPATH_W PACKAGE VERSION ACLOCAL AUTOCONF AUTOMAKE AUTOHEADER MAKEINFO install_sh STRIP ac_ct_STRIP INSTALL_STRIP_PROGRAM mkdir_p AWK SET_MAKE am__leading_dot AMTAR am__tar am__untar DEPDIR am__include am__quote AMDEP_TRUE AMDEP_FALSE AMDEPBACKSLASH CCDEPMODE am__fastdepCC_TRUE am__fastdepCC_FALSE CXXDEPMODE am__fastdepCXX_TRUE am__fastdepCXX_FALSE AS ac_ct_AS LD ac_ct_LD AR ac_ct_AR RANLIB ac_ct_RANLIB JAR ZIP UNZIP MAINTAINER_MODE_TRUE MAINTAINER_MODE_FALSE MAINT LIBGCJ_CFLAGS LIBGCJ_CXXFLAGS LIBGCJ_JAVAFLAGS LIBGCJ_LD_SYMBOLIC LIBGCJ_LD_SYMBOLIC_FUNCTIONS LIBGCJDEBUG TOOLKIT XLIB_AWT_TRUE XLIB_AWT_FALSE X_AWT_TRUE X_AWT_FALSE GCJ_FOR_ECJX GCJH host_exeext INCLTDL LIBLTDL DIRLTDL LIBTOOL SED EGREP FGREP GREP DUMPBIN ac_ct_DUMPBIN NM OBJDUMP ac_ct_OBJDUMP lt_ECHO DSYMUTIL ac_ct_DSYMUTIL NMEDIT ac_ct_NMEDIT LIPO ac_ct_LIPO OTOOL ac_ct_OTOOL OTOOL64 ac_ct_OTOOL64 CPP CPPFLAGS CXXCPP GCJ GCJFLAGS GCJDEPMODE am__fastdepGCJ_TRUE am__fastdepGCJ_FALSE subdirs TESTSUBDIR_TRUE TESTSUBDIR_FALSE ECJ_BUILD_JAR ECJ_JAR BUILD_ECJ1_TRUE BUILD_ECJ1_FALSE INSTALL_ECJ_JAR_TRUE INSTALL_ECJ_JAR_FALSE JAVA_HOME_SET_TRUE JAVA_HOME_SET_FALSE JAVA_HOME SUPPRESS_LIBGCJ_BC_TRUE SUPPRESS_LIBGCJ_BC_FALSE BUILD_LIBGCJ_REDUCED_REFLECTION_TRUE BUILD_LIBGCJ_REDUCED_REFLECTION_FALSE INTERPRETER INTERPRETER_TRUE INTERPRETER_FALSE LIBFFI LIBFFIINCS PLATFORM USING_WIN32_PLATFORM_TRUE USING_WIN32_PLATFORM_FALSE USING_POSIX_PLATFORM_TRUE USING_POSIX_PLATFORM_FALSE USING_DARWIN_CRT_TRUE USING_DARWIN_CRT_FALSE SYSTEMSPEC ZLIBSPEC ZLIBTESTSPEC X_CFLAGS X_PRE_LIBS X_LIBS X_EXTRA_LIBS extra_ldflags_libjava extra_gij_ldflags extra_ldflags LIBSTDCXXSPEC LIBGCJTESTSPEC GCLIBS GCINCS GCDEPS GCSPEC JC1GCSPEC GCTESTSPEC USING_BOEHMGC_TRUE USING_BOEHMGC_FALSE USING_NOGC_TRUE USING_NOGC_FALSE THREADLIBS THREADINCS THREADDEPS THREADSPEC THREADSTARTFILESPEC THREADLDFLAGS THREADCXXFLAGS USING_POSIX_THREADS_TRUE USING_POSIX_THREADS_FALSE USING_WIN32_THREADS_TRUE USING_WIN32_THREADS_FALSE USING_NO_THREADS_TRUE USING_NO_THREADS_FALSE USE_LIBGCJ_BC_TRUE USE_LIBGCJ_BC_FALSE LIBGCJ_SPEC HASH_SYNC_SPEC USING_GCC_TRUE USING_GCC_FALSE LIBICONV LTLIBICONV PKG_CONFIG GTK_CFLAGS GTK_LIBS GLIB_CFLAGS GLIB_LIBS LIBART_CFLAGS LIBART_LIBS CLASSPATH_SEPARATOR ZLIBS SYS_ZLIBS ZINCS DIVIDESPEC CHECKREFSPEC EXCEPTIONSPEC BACKTRACESPEC IEEESPEC NATIVE_TRUE NATIVE_FALSE ENABLE_SHARED_TRUE ENABLE_SHARED_FALSE NEEDS_DATA_START_TRUE NEEDS_DATA_START_FALSE GCC_UNWIND_INCLUDE toolexecdir toolexecmainlibdir toolexeclibdir GCJVERSION dbexecdir gcjsubdir gxx_include_dir libstdcxx_incdir PERL SYSDEP_SOURCES ANONVERSCRIPT_TRUE ANONVERSCRIPT_FALSE LD_START_STATIC_SPEC LD_FINISH_STATIC_SPEC here python_mod_dir python_mod_dir_expanded MAKE INSTALL_AOT_RPM_TRUE INSTALL_AOT_RPM_FALSE CREATE_JAVA_HOME_TRUE CREATE_JAVA_HOME_FALSE gcc_suffix JAVA_VERSION BUILD_VERSION JVM_ROOT_DIR JVM_JAR_ROOT_DIR JVM_JAR_DIR JRE_DIR SDK_DIR JRE_LNK SDK_LNK SDK_BIN_DIR SDK_LIB_DIR SDK_INCLUDE_DIR JRE_BIN_DIR JRE_LIB_DIR GCJ_BIN_DIR CPU OS LIBDIR LIBOBJS LTLIBOBJS'
ac_subst_files=''
ac_pwd=`pwd`
@@ -1017,6 +1017,8 @@ Optional Features:
in a compiler-specific directory
--enable-plugin build gcjwebplugin web browser plugin
--enable-gconf-peer compile GConf native peers for util.preferences
+ --disable-gjdoc compile GJDoc (disabled by --disable-gjdoc)
+ default=yes
--enable-java-maintainer-mode
allow rebuilding of .class and .h files
--disable-dependency-tracking speeds up one-time build
@@ -1063,6 +1065,7 @@ Optional Packages:
configure in a subdirectory
--with-cross-host=HOST configure with a cross compiler from HOST
--with-newlib configure with newlib
+ --with-antlr-jar=file Use ANTLR from the specified jar file
--with-escher=ABS.PATH specify path to escher dir or JAR for X peers
--with-pic try to use only PIC/non-PIC objects [default=use
both]
@@ -1079,6 +1082,7 @@ Optional Packages:
--with-gnu-ld assume the C compiler uses GNU ld default=no
--with-libiconv-prefix[=DIR] search for libiconv in DIR/include and DIR/lib
--without-libiconv-prefix don't search for libiconv in includedir and libdir
+ --with-system-libunwind use installed libunwind
--with-python-dir the location to install Python modules. This path
should NOT include the prefix.
--with-gcc-suffix the GCC tool suffix (defaults to empty string)
@@ -1870,6 +1874,89 @@ else
fi;
+
+# Check whether --with-antlr-jar or --without-antlr-jar was given.
+if test "${with_antlr_jar+set}" = set; then
+ withval="$with_antlr_jar"
+
+ ANTLR_JAR=$withval
+
+else
+
+ ANTLR_JAR=
+
+fi;
+
+echo "$as_me:$LINENO: checking for antlr.jar" >&5
+echo $ECHO_N "checking for antlr.jar... $ECHO_C" >&6
+if test "x$ANTLR_JAR" = x; then
+ for antlr_lib_home in `ls -d /usr/local/share/antlr* 2> /dev/null` \
+ /usr/share/antlr/lib /usr/share/java /usr/lib;
+ do
+ if test -f "$antlr_lib_home/antlr.jar"; then
+ # FIXME: version check for antlr needed without using a VM
+ ANTLR_JAR="$antlr_lib_home/antlr.jar"
+ break
+ fi
+ done
+ if test "x$ANTLR_JAR" = x; then
+ echo "$as_me:$LINENO: result: not found" >&5
+echo "${ECHO_T}not found" >&6
+ else
+ echo "$as_me:$LINENO: result: $ANTLR_JAR" >&5
+echo "${ECHO_T}$ANTLR_JAR" >&6
+ fi
+else
+ if test -f "${ANTLR_JAR}"; then
+ echo "$as_me:$LINENO: result: $ANTLR_JAR" >&5
+echo "${ECHO_T}$ANTLR_JAR" >&6
+ else
+ { { echo "$as_me:$LINENO: error: antlr jar file not found: $ANTLR_JAR" >&5
+echo "$as_me: error: antlr jar file not found: $ANTLR_JAR" >&2;}
+ { (exit 1); exit 1; }; }
+ fi
+fi
+
+
+# Check whether --enable-gjdoc or --disable-gjdoc was given.
+if test "${enable_gjdoc+set}" = set; then
+ enableval="$enable_gjdoc"
+ case "${enableval}" in
+ yes) BUILD_GJDOC=yes ;;
+ no) BUILD_GJDOC=no ;;
+ *) BUILD_GJDOC=yes ;;
+ esac
+else
+ BUILD_GJDOC=maybe
+fi;
+
+echo "$as_me:$LINENO: checking wether to build gjdoc" >&5
+echo $ECHO_N "checking wether to build gjdoc... $ECHO_C" >&6
+if test "x$BUILD_GJDOC" = xmaybe; then
+ if test -f "${ANTLR_JAR}"; then
+ BUILD_GJDOC=yes
+ echo "$as_me:$LINENO: result: yes" >&5
+echo "${ECHO_T}yes" >&6
+ else
+ BUILD_GJDOC=no
+ echo "$as_me:$LINENO: result: no, antlr.jar not found" >&5
+echo "${ECHO_T}no, antlr.jar not found" >&6
+ fi
+else
+ echo "$as_me:$LINENO: result: $BUILD_GJDOC" >&5
+echo "${ECHO_T}$BUILD_GJDOC" >&6
+fi
+
+
+if test "x${BUILD_GJDOC}" = xyes; then
+ CREATE_GJDOC_TRUE=
+ CREATE_GJDOC_FALSE='#'
+else
+ CREATE_GJDOC_TRUE='#'
+ CREATE_GJDOC_FALSE=
+fi
+
+
# Check whether --enable-java-maintainer-mode or --disable-java-maintainer-mode was given.
if test "${enable_java_maintainer_mode+set}" = set; then
enableval="$enable_java_maintainer_mode"
@@ -5416,7 +5503,6 @@ test -f libgcj.spec || touch libgcj.spec
# Set up to configure Classpath.
# FIXME: no supported way to pass args in autoconf.
-ac_configure_args="$ac_configure_args --with-fastjar=$JAR"
# Disable tool wrappers to avoid ltdl.h configure check.
ac_configure_args="$ac_configure_args --disable-tool-wrappers"
ac_configure_args="$ac_configure_args --disable-load-library"
@@ -5456,6 +5542,9 @@ echo "$as_me: error: Please supply an absolute path to the Escher library" >&2;}
ac_configure_args="$ac_configure_args --with-escher=$with_escher"
fi
fi
+if test "x$BUILD_GJDOC" = xno; then
+ ac_configure_args="$ac_configure_args --disable-gjdoc"
+fi
# -Werror causes unavoidable problems in code using alsa.
ac_configure_args="$ac_configure_args --disable-regen-headers"
ac_configure_args="$ac_configure_args --disable-Werror"
@@ -5914,13 +6003,13 @@ if test "${lt_cv_nm_interface+set}" = set; then
else
lt_cv_nm_interface="BSD nm"
echo "int some_variable = 0;" > conftest.$ac_ext
- (eval echo "\"\$as_me:5917: $ac_compile\"" >&5)
+ (eval echo "\"\$as_me:6006: $ac_compile\"" >&5)
(eval "$ac_compile" 2>conftest.err)
cat conftest.err >&5
- (eval echo "\"\$as_me:5920: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
+ (eval echo "\"\$as_me:6009: $NM \\\"conftest.$ac_objext\\\"\"" >&5)
(eval "$NM \"conftest.$ac_objext\"" 2>conftest.err > conftest.out)
cat conftest.err >&5
- (eval echo "\"\$as_me:5923: output\"" >&5)
+ (eval echo "\"\$as_me:6012: output\"" >&5)
cat conftest.out >&5
if $GREP 'External.*some_variable' conftest.out > /dev/null; then
lt_cv_nm_interface="MS dumpbin"
@@ -7067,7 +7156,7 @@ ia64-*-hpux*)
;;
*-*-irix6*)
# Find out which ABI we are using.
- echo '#line 7070 "configure"' > conftest.$ac_ext
+ echo '#line 7159 "configure"' > conftest.$ac_ext
if { (eval echo "$as_me:$LINENO: \"$ac_compile\"") >&5
(eval $ac_compile) 2>&5
ac_status=$?
@@ -9450,11 +9539,11 @@ else
-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:9453: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9542: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:9457: \$? = $ac_status" >&5
+ echo "$as_me:9546: \$? = $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.
@@ -9789,11 +9878,11 @@ else
-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:9792: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9881: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:9796: \$? = $ac_status" >&5
+ echo "$as_me:9885: \$? = $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.
@@ -9894,11 +9983,11 @@ else
-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:9897: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:9986: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:9901: \$? = $ac_status" >&5
+ echo "$as_me:9990: \$? = $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
@@ -9949,11 +10038,11 @@ else
-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:9952: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:10041: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:9956: \$? = $ac_status" >&5
+ echo "$as_me:10045: \$? = $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
@@ -12801,7 +12890,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12804 "configure"
+#line 12893 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -12897,7 +12986,7 @@ else
lt_dlunknown=0; lt_dlno_uscore=1; lt_dlneed_uscore=2
lt_status=$lt_dlunknown
cat > conftest.$ac_ext <<_LT_EOF
-#line 12900 "configure"
+#line 12989 "configure"
#include "confdefs.h"
#if HAVE_DLFCN_H
@@ -14923,11 +15012,11 @@ else
-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:14926: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15015: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:14930: \$? = $ac_status" >&5
+ echo "$as_me:15019: \$? = $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.
@@ -15022,11 +15111,11 @@ else
-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:15025: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15114: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15029: \$? = $ac_status" >&5
+ echo "$as_me:15118: \$? = $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
@@ -15074,11 +15163,11 @@ else
-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:15077: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:15166: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:15081: \$? = $ac_status" >&5
+ echo "$as_me:15170: \$? = $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
@@ -16476,11 +16565,11 @@ else
-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:16479: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16568: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16483: \$? = $ac_status" >&5
+ echo "$as_me:16572: \$? = $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.
@@ -16809,11 +16898,11 @@ else
-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:16812: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:16901: $lt_compile\"" >&5)
(eval "$lt_compile" 2>conftest.err)
ac_status=$?
cat conftest.err >&5
- echo "$as_me:16816: \$? = $ac_status" >&5
+ echo "$as_me:16905: \$? = $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.
@@ -16908,11 +16997,11 @@ else
-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:16911: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17000: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16915: \$? = $ac_status" >&5
+ echo "$as_me:17004: \$? = $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
@@ -16960,11 +17049,11 @@ else
-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:16963: $lt_compile\"" >&5)
+ (eval echo "\"\$as_me:17052: $lt_compile\"" >&5)
(eval "$lt_compile" 2>out/conftest.err)
ac_status=$?
cat out/conftest.err >&5
- echo "$as_me:16967: \$? = $ac_status" >&5
+ echo "$as_me:17056: \$? = $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
@@ -18650,7 +18739,7 @@ if test "${enable_sjlj_exceptions+set}" = set; then
:
else
cat > conftest.$ac_ext << EOF
-#line 18653 "configure"
+#line 18742 "configure"
struct S { ~S(); };
void bar();
void foo()
@@ -25419,6 +25508,7 @@ if test ! -f gnu/classpath/Configuration.java; then
-e "s,@JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@,false," \
-e "s,@GTK_CAIRO_ENABLED@,false," \
-e "s,@ECJ_JAR@,," \
+ -e "s,@WANT_NATIVE_BIG_INTEGER@,false," \
< $srcdir/classpath/gnu/classpath/Configuration.java.in \
> gnu/classpath/Configuration.java
# We do not want to redirect the output of the grep below to /dev/null,
@@ -27754,91 +27844,35 @@ _ACEOF
# For _Unwind_GetIPInfo.
+# Check whether --with-system-libunwind or --without-system-libunwind was given.
+if test "${with_system_libunwind+set}" = set; then
+ withval="$with_system_libunwind"
- ac_ext=cc
-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
-
- ac_save_CXXFLAGS="$CXXFLAGS"
- CXXFLAGS="$CXXFLAGS -fno-exceptions"
- echo "$as_me:$LINENO: checking for _Unwind_GetIPInfo" >&5
-echo $ECHO_N "checking for _Unwind_GetIPInfo... $ECHO_C" >&6
- if test "${gcc_cv_getipinfo+set}" = set; then
- echo $ECHO_N "(cached) $ECHO_C" >&6
-else
-
- if test x$gcc_no_link = xyes; then
- { { echo "$as_me:$LINENO: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&5
-echo "$as_me: error: Link tests are not allowed after GCC_NO_EXECUTABLES." >&2;}
- { (exit 1); exit 1; }; }
-fi
-cat >conftest.$ac_ext <<_ACEOF
-/* confdefs.h. */
-_ACEOF
-cat confdefs.h >>conftest.$ac_ext
-cat >>conftest.$ac_ext <<_ACEOF
-/* end confdefs.h. */
-extern "C" { extern void _Unwind_GetIPInfo(); }
-int
-main ()
-{
-_Unwind_GetIPInfo();
- ;
- return 0;
-}
-_ACEOF
-rm -f conftest.$ac_objext conftest$ac_exeext
-if { (eval echo "$as_me:$LINENO: \"$ac_link\"") >&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'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&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'
- { (eval echo "$as_me:$LINENO: \"$ac_try\"") >&5
- (eval $ac_try) 2>&5
- ac_status=$?
- echo "$as_me:$LINENO: \$? = $ac_status" >&5
- (exit $ac_status); }; }; then
- gcc_cv_getipinfo=yes
-else
- echo "$as_me: failed program was:" >&5
-sed 's/^/| /' conftest.$ac_ext >&5
-
-gcc_cv_getipinfo=no
-fi
-rm -f conftest.err conftest.$ac_objext \
- conftest$ac_exeext conftest.$ac_ext
-
-fi
+fi;
+ # If system-libunwind was not specifically set, pick a default setting.
+ if test x$with_system_libunwind = x; then
+ case ${target} in
+ ia64-*-hpux*) with_system_libunwind=yes ;;
+ *) with_system_libunwind=no ;;
+ esac
+ fi
+ # Based on system-libunwind and target, do we have ipinfo?
+ if test x$with_system_libunwind = xyes; then
+ case ${target} in
+ ia64-*-*) have_unwind_getipinfo=no ;;
+ *) have_unwind_getipinfo=yes ;;
+ esac
+ else
+ have_unwind_getipinfo=yes
+ fi
- if test $gcc_cv_getipinfo = yes; then
+ if test x$have_unwind_getipinfo = xyes; then
cat >>confdefs.h <<\_ACEOF
#define HAVE_GETIPINFO 1
_ACEOF
fi
- echo "$as_me:$LINENO: result: $gcc_cv_getipinfo" >&5
-echo "${ECHO_T}$gcc_cv_getipinfo" >&6
- CXXFLAGS="$ac_save_CXXFLAGS"
- 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
-
# See if linker supports anonymous version scripts.
@@ -27979,7 +28013,7 @@ else
fi;
-if test "x${AOT_RPM_ENABLED}" == xyes; then
+if test "x${AOT_RPM_ENABLED}" = xyes; then
INSTALL_AOT_RPM_TRUE=
INSTALL_AOT_RPM_FALSE='#'
else
@@ -28004,7 +28038,7 @@ else
fi;
-if test "x${JAVA_HOME_ENABLED}" == xyes; then
+if test "x${JAVA_HOME_ENABLED}" = xyes; then
CREATE_JAVA_HOME_TRUE=
CREATE_JAVA_HOME_FALSE='#'
else
@@ -28014,7 +28048,7 @@ fi
# Only do these checks if java-home above is enabled.
-if test "x${JAVA_HOME_ENABLED}" == xyes
+if test "x${JAVA_HOME_ENABLED}" = xyes
then
@@ -28313,6 +28347,13 @@ LIBOBJS=$ac_libobjs
LTLIBOBJS=$ac_ltlibobjs
+if test -z "${CREATE_GJDOC_TRUE}" && test -z "${CREATE_GJDOC_FALSE}"; then
+ { { echo "$as_me:$LINENO: error: conditional \"CREATE_GJDOC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&5
+echo "$as_me: error: conditional \"CREATE_GJDOC\" was never defined.
+Usually this means the macro was only invoked conditionally." >&2;}
+ { (exit 1); exit 1; }; }
+fi
if test -z "${JAVA_MAINTAINER_MODE_TRUE}" && test -z "${JAVA_MAINTAINER_MODE_FALSE}"; then
{ { echo "$as_me:$LINENO: error: conditional \"JAVA_MAINTAINER_MODE\" was never defined.
Usually this means the macro was only invoked conditionally." >&5
@@ -29577,6 +29618,9 @@ s,@target_os@,$target_os,;t t
s,@target_noncanonical@,$target_noncanonical,;t t
s,@LN_S@,$LN_S,;t t
s,@mkinstalldirs@,$mkinstalldirs,;t t
+s,@ANTLR_JAR@,$ANTLR_JAR,;t t
+s,@CREATE_GJDOC_TRUE@,$CREATE_GJDOC_TRUE,;t t
+s,@CREATE_GJDOC_FALSE@,$CREATE_GJDOC_FALSE,;t t
s,@JAVA_MAINTAINER_MODE_TRUE@,$JAVA_MAINTAINER_MODE_TRUE,;t t
s,@JAVA_MAINTAINER_MODE_FALSE@,$JAVA_MAINTAINER_MODE_FALSE,;t t
s,@CC@,$CC,;t t
diff --git a/libjava/configure.ac b/libjava/configure.ac
index fc2083f..de189e3 100644
--- a/libjava/configure.ac
+++ b/libjava/configure.ac
@@ -77,6 +77,63 @@ AC_ARG_ENABLE(gconf-peer,
[gconf_enabled=no]
)
+AC_ARG_WITH([antlr-jar],
+ [AS_HELP_STRING([--with-antlr-jar=file],[Use ANTLR from the specified jar file])],
+ [
+ ANTLR_JAR=$withval
+ ],
+ [
+ ANTLR_JAR=
+ ])
+
+AC_MSG_CHECKING([for antlr.jar])
+if test "x$ANTLR_JAR" = x; then
+ for antlr_lib_home in `ls -d /usr/local/share/antlr* 2> /dev/null` \
+ /usr/share/antlr/lib /usr/share/java /usr/lib;
+ do
+ if test -f "$antlr_lib_home/antlr.jar"; then
+ # FIXME: version check for antlr needed without using a VM
+ ANTLR_JAR="$antlr_lib_home/antlr.jar"
+ break
+ fi
+ done
+ if test "x$ANTLR_JAR" = x; then
+ AC_MSG_RESULT([not found])
+ else
+ AC_MSG_RESULT($ANTLR_JAR)
+ fi
+else
+ if test -f "${ANTLR_JAR}"; then
+ AC_MSG_RESULT($ANTLR_JAR)
+ else
+ AC_MSG_ERROR([antlr jar file not found: $ANTLR_JAR])
+ fi
+fi
+AC_SUBST(ANTLR_JAR)
+
+AC_ARG_ENABLE([gjdoc],
+ [AS_HELP_STRING(--disable-gjdoc,compile GJDoc (disabled by --disable-gjdoc) [default=yes])],
+ [case "${enableval}" in
+ yes) BUILD_GJDOC=yes ;;
+ no) BUILD_GJDOC=no ;;
+ *) BUILD_GJDOC=yes ;;
+ esac],
+ [BUILD_GJDOC=maybe])
+
+AC_MSG_CHECKING([wether to build gjdoc])
+if test "x$BUILD_GJDOC" = xmaybe; then
+ if test -f "${ANTLR_JAR}"; then
+ BUILD_GJDOC=yes
+ AC_MSG_RESULT(yes)
+ else
+ BUILD_GJDOC=no
+ AC_MSG_RESULT([no, antlr.jar not found])
+ fi
+else
+ AC_MSG_RESULT($BUILD_GJDOC)
+fi
+AM_CONDITIONAL(CREATE_GJDOC, test "x${BUILD_GJDOC}" = xyes)
+
AC_ARG_ENABLE(java-maintainer-mode,
AS_HELP_STRING([--enable-java-maintainer-mode],
[allow rebuilding of .class and .h files]))
@@ -386,7 +443,6 @@ test -f libgcj.spec || touch libgcj.spec
# Set up to configure Classpath.
# FIXME: no supported way to pass args in autoconf.
-ac_configure_args="$ac_configure_args --with-fastjar=$JAR"
# Disable tool wrappers to avoid ltdl.h configure check.
ac_configure_args="$ac_configure_args --disable-tool-wrappers"
ac_configure_args="$ac_configure_args --disable-load-library"
@@ -425,12 +481,14 @@ else
ac_configure_args="$ac_configure_args --with-escher=$with_escher"
fi
fi
+if test "x$BUILD_GJDOC" = xno; then
+ ac_configure_args="$ac_configure_args --disable-gjdoc"
+fi
# -Werror causes unavoidable problems in code using alsa.
ac_configure_args="$ac_configure_args --disable-regen-headers"
ac_configure_args="$ac_configure_args --disable-Werror"
dnl --with-gcj=$GCJ
dnl --with-javah=$GCJH
-dnl gjdoc?
dnl gtk-cairo -- just export here...
dnl --enable-regen-headers?
@@ -1325,6 +1383,7 @@ if test ! -f gnu/classpath/Configuration.java; then
-e "s,@JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@,false," \
-e "s,@GTK_CAIRO_ENABLED@,false," \
-e "s,@ECJ_JAR@,," \
+ -e "s,@WANT_NATIVE_BIG_INTEGER@,false," \
< $srcdir/classpath/gnu/classpath/Configuration.java.in \
> gnu/classpath/Configuration.java
# We do not want to redirect the output of the grep below to /dev/null,
@@ -1671,7 +1730,7 @@ AC_ARG_ENABLE([aot-compile-rpm],
esac],
[AOT_RPM_ENABLED=no]
)
-AM_CONDITIONAL(INSTALL_AOT_RPM, test "x${AOT_RPM_ENABLED}" == xyes)
+AM_CONDITIONAL(INSTALL_AOT_RPM, test "x${AOT_RPM_ENABLED}" = xyes)
AC_ARG_ENABLE([java-home],
[AS_HELP_STRING([--enable-java-home],
@@ -1683,10 +1742,10 @@ AC_ARG_ENABLE([java-home],
esac],
[JAVA_HOME_ENABLED=no]
)
-AM_CONDITIONAL(CREATE_JAVA_HOME, test "x${JAVA_HOME_ENABLED}" == xyes)
+AM_CONDITIONAL(CREATE_JAVA_HOME, test "x${JAVA_HOME_ENABLED}" = xyes)
# Only do these checks if java-home above is enabled.
-if test "x${JAVA_HOME_ENABLED}" == xyes
+if test "x${JAVA_HOME_ENABLED}" = xyes
then
AC_ARG_WITH([gcc-suffix],
diff --git a/libjava/gcj/Makefile.in b/libjava/gcj/Makefile.in
index 4e43a4d..7e9aba8 100644
--- a/libjava/gcj/Makefile.in
+++ b/libjava/gcj/Makefile.in
@@ -90,6 +90,7 @@ AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
ANONVERSCRIPT_FALSE = @ANONVERSCRIPT_FALSE@
ANONVERSCRIPT_TRUE = @ANONVERSCRIPT_TRUE@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
@@ -110,6 +111,8 @@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU = @CPU@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@
CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@
CXX = @CXX@
diff --git a/libjava/gcj/javaprims.h b/libjava/gcj/javaprims.h
index a0b99d2..313ecc0 100644
--- a/libjava/gcj/javaprims.h
+++ b/libjava/gcj/javaprims.h
@@ -142,6 +142,7 @@ extern "Java"
namespace lang
{
class AbstractMethodError;
+ class AbstractStringBuffer;
class Appendable;
class ArithmeticException;
class ArrayIndexOutOfBoundsException;
@@ -239,6 +240,8 @@ extern "Java"
class ThreadDeath;
class ThreadGroup;
class ThreadLocal;
+ class ThreadLocalMap;
+ class ThreadLocalMap$Entry;
class Throwable;
class Throwable$StaticData;
class TypeNotPresentException;
@@ -519,6 +522,7 @@ extern "Java"
class ResourceBundle;
class ResourceBundle$1;
class ResourceBundle$BundleKey;
+ class Scanner;
class ServiceConfigurationError;
class ServiceLoader;
class ServiceLoader$1;
@@ -850,6 +854,7 @@ extern "Java"
}
}
}
+ // end of output of the `classes.pl' script.
}
typedef struct java::lang::Object* jobject;
@@ -861,15 +866,6 @@ struct _Jv_JNIEnv;
typedef struct _Jv_Field *jfieldID;
typedef struct _Jv_Method *jmethodID;
-enum _Jv_jobjectRefType
-{
- JNIInvalidRefType = 0,
- JNILocalRefType = 1,
- JNIGlobalRefType = 2,
- JNIWeakGlobalRefType = 3
-};
-typedef enum _Jv_jobjectRefType jobjectRefType;
-
extern "C" jobject _Jv_AllocObject (jclass) __attribute__((__malloc__));
extern "C" jobject _Jv_AllocObjectNoFinalizer (jclass) __attribute__((__malloc__));
extern "C" jobject _Jv_AllocObjectNoInitNoFinalizer (jclass) __attribute__((__malloc__));
diff --git a/libjava/gnu/CORBA/NamingService/NameTransformer.h b/libjava/gnu/CORBA/NamingService/NameTransformer.h
index c628e17..715ebc5 100644
--- a/libjava/gnu/CORBA/NamingService/NameTransformer.h
+++ b/libjava/gnu/CORBA/NamingService/NameTransformer.h
@@ -20,6 +20,13 @@ extern "Java"
class NameTransformer;
}
}
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
}
namespace org
{
@@ -45,7 +52,7 @@ public:
virtual JArray< ::org::omg::CosNaming::NameComponent * > * toName(::java::lang::String *);
virtual ::java::lang::String * toString(JArray< ::org::omg::CosNaming::NameComponent * > *);
private:
- void appEscaping(::java::lang::StringBuffer *, ::java::lang::String *);
+ void appEscaping(::gnu::java::lang::CPStringBuilder *, ::java::lang::String *);
void assertEndOfNode(::org::omg::CORBA::IntHolder *, JArray< ::java::lang::String * > *);
::org::omg::CosNaming::NameComponent * readNode(::org::omg::CORBA::IntHolder *, JArray< ::java::lang::String * > *);
::java::lang::String * readPart(::org::omg::CORBA::IntHolder *, JArray< ::java::lang::String * > *);
diff --git a/libjava/gnu/classpath/Configuration.h b/libjava/gnu/classpath/Configuration.h
index 34cd719..699fb0f 100644
--- a/libjava/gnu/classpath/Configuration.h
+++ b/libjava/gnu/classpath/Configuration.h
@@ -34,6 +34,7 @@ public:
static ::java::lang::String * default_awt_peer_toolkit;
static const jboolean JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = 0;
static ::java::lang::String * ECJ_JAR;
+ static const jboolean WANT_NATIVE_BIG_INTEGER = 1;
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/classpath/Configuration.java b/libjava/gnu/classpath/Configuration.java
index 73e3c2f..2420878 100644
--- a/libjava/gnu/classpath/Configuration.java
+++ b/libjava/gnu/classpath/Configuration.java
@@ -1,5 +1,5 @@
/* Configuration.java --
- Copyright (C) 1998, 2001, 2003, 2005, 2006, 2007
+ Copyright (C) 1998, 2001, 2003, 2005, 2006, 2007, 2008
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -66,7 +66,7 @@ public final class Configuration
* It is set according to the value of 'version' in the configure[.in] file
* and used to set the System property gnu.classpath.version.
*/
- public static final String CLASSPATH_VERSION = "0.95";
+ public static final String CLASSPATH_VERSION = "0.98-pre";
/**
* The value of DEBUG is substituted according to whether the
@@ -110,4 +110,13 @@ public final class Configuration
* com.sun.tools.javac implementation in tools.zip.
*/
public static final String ECJ_JAR = ecj();
+
+ /**
+ * Set to <code>true</code> if the config script found that (a) an
+ * implementation of java.math.BigInteger, based on the GNU MP library, is
+ * desired in preference to a pure Java one, and (b) the GNU MP library was
+ * found on the platform where the JVM is to run. Otherwise, this field is
+ * set to <code>false</code>.
+ */
+ public static final boolean WANT_NATIVE_BIG_INTEGER = true;
}
diff --git a/libjava/gnu/classpath/jdwp/util/Signature.h b/libjava/gnu/classpath/jdwp/util/Signature.h
index 4ec84ce..310b1b8 100644
--- a/libjava/gnu/classpath/jdwp/util/Signature.h
+++ b/libjava/gnu/classpath/jdwp/util/Signature.h
@@ -23,6 +23,13 @@ extern "Java"
}
}
}
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
}
}
@@ -36,7 +43,7 @@ public:
static ::java::lang::String * computeMethodSignature(::java::lang::reflect::Method *);
private:
static ::java::lang::String * _computeSignature(::java::lang::Class *, JArray< ::java::lang::Class * > *);
- static void _addToSignature(::java::lang::StringBuffer *, ::java::lang::Class *);
+ static void _addToSignature(::gnu::java::lang::CPStringBuilder *, ::java::lang::Class *);
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/gcj/util/natDebug.cc b/libjava/gnu/gcj/util/natDebug.cc
index cad7095..e2631b1 100644
--- a/libjava/gnu/gcj/util/natDebug.cc
+++ b/libjava/gnu/gcj/util/natDebug.cc
@@ -70,28 +70,28 @@ gnu::gcj::util::Debug::getField (::java::lang::Object *o,
if (! type->isPrimitive ())
return * (jobject*) addr;
if (type == JvPrimClass (double))
- return new java::lang::Double (* (jdouble*) addr);
+ return new ::java::lang::Double (* (jdouble*) addr);
if (type == JvPrimClass (float))
- return new java::lang::Float (* (jfloat*) addr);
+ return new ::java::lang::Float (* (jfloat*) addr);
if (type == JvPrimClass (long))
- return new java::lang::Long (* (jlong*) addr);
+ return new ::java::lang::Long (* (jlong*) addr);
if (type == JvPrimClass (int))
- return new java::lang::Integer (* (jint*) addr);
+ return new ::java::lang::Integer (* (jint*) addr);
if (type == JvPrimClass (short))
- return new java::lang::Short (* (jshort*) addr);
+ return new ::java::lang::Short (* (jshort*) addr);
if (type == JvPrimClass (byte))
- return new java::lang::Byte (* (jbyte*) addr);
+ return new ::java::lang::Byte (* (jbyte*) addr);
if (type == JvPrimClass (char))
- return new java::lang::Character (* (jchar*) addr);
+ return new ::java::lang::Character (* (jchar*) addr);
if (type == JvPrimClass (boolean))
{
- _Jv_InitClass (&java::lang::Boolean::class$);
+ _Jv_InitClass (&::java::lang::Boolean::class$);
if (* (jboolean*) addr)
- return java::lang::Boolean::TRUE;
+ return ::java::lang::Boolean::TRUE;
else
- return java::lang::Boolean::FALSE;
+ return ::java::lang::Boolean::FALSE;
}
- throw new java::lang::IllegalArgumentException;
+ throw new ::java::lang::IllegalArgumentException;
}
/* A simple method of printing an object that can be called from a
diff --git a/libjava/gnu/gcj/xlib/natColormap.cc b/libjava/gnu/gcj/xlib/natColormap.cc
index 83c897e..2f6a6c7 100644
--- a/libjava/gnu/gcj/xlib/natColormap.cc
+++ b/libjava/gnu/gcj/xlib/natColormap.cc
@@ -30,7 +30,7 @@ jlong gnu::gcj::xlib::Colormap::allocateColorPixel(XColor* color)
::XColor* col = (::XColor*) (color->structure);
Status result = XAllocColor(dpy, xid, col);
if (result == 0)
- throw new java::lang::RuntimeException(
+ throw new ::java::lang::RuntimeException(
JvNewStringLatin1("Unable to allocate color pixel."));
return col->pixel;
diff --git a/libjava/gnu/gcj/xlib/natDisplay.cc b/libjava/gnu/gcj/xlib/natDisplay.cc
index fadf4fb..f89cb74 100644
--- a/libjava/gnu/gcj/xlib/natDisplay.cc
+++ b/libjava/gnu/gcj/xlib/natDisplay.cc
@@ -118,8 +118,8 @@ void gnu::gcj::xlib::Display::staticInit()
{
if (XInitThreads() == 0)
{
- char msg[] = "threads is not supported on this platform";
- throw new java::lang::RuntimeException(JvNewStringLatin1(msg));
+ char msg[] = "threads are not supported on this platform";
+ throw new ::java::lang::RuntimeException(JvNewStringLatin1(msg));
}
XSetErrorHandler(&handleXError);
diff --git a/libjava/gnu/gcj/xlib/natDrawable.cc b/libjava/gnu/gcj/xlib/natDrawable.cc
index 87c9d35..371a92b 100644
--- a/libjava/gnu/gcj/xlib/natDrawable.cc
+++ b/libjava/gnu/gcj/xlib/natDrawable.cc
@@ -64,7 +64,7 @@ jint gnu::gcj::xlib::Drawable::getDepth ()
}
java::awt::Rectangle*
-gnu::gcj::xlib::Drawable::getBounds(java::awt::Rectangle* rv)
+gnu::gcj::xlib::Drawable::getBounds(::java::awt::Rectangle* rv)
{
::Display* dpy = (::Display*) (getDisplay()->display);
@@ -86,7 +86,7 @@ gnu::gcj::xlib::Drawable::getBounds(java::awt::Rectangle* rv)
if (rv == 0)
{
- rv = new java::awt::Rectangle(x, y, w, h);
+ rv = new ::java::awt::Rectangle(x, y, w, h);
}
else
{
diff --git a/libjava/gnu/gcj/xlib/natFont.cc b/libjava/gnu/gcj/xlib/natFont.cc
index cd5d87c..be842d0 100644
--- a/libjava/gnu/gcj/xlib/natFont.cc
+++ b/libjava/gnu/gcj/xlib/natFont.cc
@@ -75,7 +75,7 @@ jint gnu::gcj::xlib::Font::getDescent()
return returnValue-1; // -1 to exclude the baseline
}
-jint gnu::gcj::xlib::Font::getStringWidth(java::lang::String* text)
+jint gnu::gcj::xlib::Font::getStringWidth(::java::lang::String* text)
{
XFontStruct* fontStruct = (XFontStruct*) structure;
diff --git a/libjava/gnu/gcj/xlib/natWMSizeHints.cc b/libjava/gnu/gcj/xlib/natWMSizeHints.cc
index 0724a5a..fd54699 100644
--- a/libjava/gnu/gcj/xlib/natWMSizeHints.cc
+++ b/libjava/gnu/gcj/xlib/natWMSizeHints.cc
@@ -23,7 +23,7 @@ void gnu::gcj::xlib::WMSizeHints::init(WMSizeHints* copyFrom)
if (hints == 0)
{
jstring errorMessage = JvNewStringLatin1("XAllocSizeHints failed");
- throw new java::lang::OutOfMemoryError(errorMessage);
+ throw new ::java::lang::OutOfMemoryError(errorMessage);
}
if (copyFrom != 0)
diff --git a/libjava/gnu/gcj/xlib/natWindow.cc b/libjava/gnu/gcj/xlib/natWindow.cc
index 62cd086..42ef649 100644
--- a/libjava/gnu/gcj/xlib/natWindow.cc
+++ b/libjava/gnu/gcj/xlib/natWindow.cc
@@ -23,7 +23,7 @@ details. */
#include <gnu/gcj/xlib/Visual.h>
#include <gnu/gcj/xlib/XException.h>
-jint gnu::gcj::xlib::Window::createChildXID(java::awt::Rectangle* bounds,
+jint gnu::gcj::xlib::Window::createChildXID(::java::awt::Rectangle* bounds,
jint borderWidth,
WindowAttributes* attributes,
jint windowIOClass,
diff --git a/libjava/gnu/gcj/xlib/natXImage.cc b/libjava/gnu/gcj/xlib/natXImage.cc
index a92cf9f..8102222 100644
--- a/libjava/gnu/gcj/xlib/natXImage.cc
+++ b/libjava/gnu/gcj/xlib/natXImage.cc
@@ -40,7 +40,7 @@ void gnu::gcj::xlib::XImage::init(Visual* visual, jint depth,
if (ximage == 0)
{
jstring errorMessage = JvNewStringLatin1("XCreateImage failed");
- throw new java::lang::OutOfMemoryError(errorMessage);
+ throw new ::java::lang::OutOfMemoryError(errorMessage);
}
bool reinitialize = false;
diff --git a/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h b/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h
index 92f7873..8effd32 100644
--- a/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h
+++ b/libjava/gnu/java/awt/java2d/AbstractGraphics2D.h
@@ -168,7 +168,7 @@ public:
public: // actually protected
virtual void fillShape(::java::awt::Shape *, jboolean);
virtual ::java::awt::image::ColorModel * getColorModel() = 0;
- virtual ::java::awt::Rectangle * getDeviceBounds();
+ virtual ::java::awt::Rectangle * getDeviceBounds() = 0;
virtual void rawDrawLine(jint, jint, jint, jint);
virtual void rawDrawRect(jint, jint, jint, jint);
virtual void rawClearRect(jint, jint, jint, jint);
@@ -189,6 +189,12 @@ private:
void updateClip(::java::awt::geom::AffineTransform *);
::gnu::java::awt::java2d::ScanlineConverter * getScanlineConverter();
void freeScanlineConverter(::gnu::java::awt::java2d::ScanlineConverter *);
+ ::java::awt::PaintContext * getPaintContext();
+public:
+ static ::java::awt::Image * prepareImage(::java::awt::Image *, jint, jint);
+public: // actually protected
+ static ::java::util::WeakHashMap * imageCache;
+private:
static jboolean DEFAULT_TEXT_AA;
static ::java::awt::Font * FONT;
static const jint GV_CACHE_SIZE = 50;
@@ -202,6 +208,8 @@ private:
::java::awt::Paint * paint;
::java::awt::PaintContext * paintContext;
::java::awt::Color * background;
+ ::java::awt::Color * foreground;
+ jboolean isForegroundColorNull;
::java::awt::Font * font;
::java::awt::Composite * composite;
::java::awt::Stroke * stroke;
diff --git a/libjava/gnu/java/awt/java2d/RasterGraphics.h b/libjava/gnu/java/awt/java2d/RasterGraphics.h
index 41ab8d7..37baf26 100644
--- a/libjava/gnu/java/awt/java2d/RasterGraphics.h
+++ b/libjava/gnu/java/awt/java2d/RasterGraphics.h
@@ -18,6 +18,7 @@ extern "Java"
namespace java2d
{
class RasterGraphics;
+ class ScanlineCoverage;
}
}
}
@@ -27,6 +28,7 @@ extern "Java"
namespace awt
{
class GraphicsConfiguration;
+ class Rectangle;
namespace image
{
class ColorModel;
@@ -41,11 +43,14 @@ class gnu::java::awt::java2d::RasterGraphics : public ::gnu::java::awt::java2d::
public:
RasterGraphics(::java::awt::image::WritableRaster *, ::java::awt::image::ColorModel *);
+ virtual void renderScanline(jint, ::gnu::java::awt::java2d::ScanlineCoverage *);
public: // actually protected
virtual ::java::awt::image::ColorModel * getColorModel();
virtual ::java::awt::image::WritableRaster * getDestinationRaster();
public:
virtual ::java::awt::GraphicsConfiguration * getDeviceConfiguration();
+public: // actually protected
+ virtual ::java::awt::Rectangle * getDeviceBounds();
private:
::java::awt::image::WritableRaster * __attribute__((aligned(__alignof__( ::gnu::java::awt::java2d::AbstractGraphics2D)))) raster;
::java::awt::image::ColorModel * colorModel;
diff --git a/libjava/gnu/java/lang/CPStringBuilder.h b/libjava/gnu/java/lang/CPStringBuilder.h
new file mode 100644
index 0000000..5b03bf3
--- /dev/null
+++ b/libjava/gnu/java/lang/CPStringBuilder.h
@@ -0,0 +1,100 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_CPStringBuilder__
+#define __gnu_java_lang_CPStringBuilder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+}
+
+class gnu::java::lang::CPStringBuilder : public ::java::lang::Object
+{
+
+public:
+ CPStringBuilder();
+ CPStringBuilder(jint);
+ CPStringBuilder(::java::lang::String *);
+ CPStringBuilder(::java::lang::StringBuffer *);
+ CPStringBuilder(::java::lang::StringBuilder *);
+ CPStringBuilder(::java::lang::CharSequence *);
+ void setLength(jint);
+ jchar charAt(jint);
+ jint codePointAt(jint);
+ jint codePointBefore(jint);
+ void getChars(jint, jint, JArray< jchar > *, jint);
+ void setCharAt(jint, jchar);
+ ::gnu::java::lang::CPStringBuilder * append(::java::lang::Object *);
+ ::gnu::java::lang::CPStringBuilder * append(::java::lang::String *);
+ ::gnu::java::lang::CPStringBuilder * append(::java::lang::StringBuffer *);
+ ::gnu::java::lang::CPStringBuilder * append(JArray< jchar > *);
+ ::gnu::java::lang::CPStringBuilder * append(JArray< jchar > *, jint, jint);
+ ::gnu::java::lang::CPStringBuilder * append(jboolean);
+ ::gnu::java::lang::CPStringBuilder * CPStringBuilder$append(jchar);
+ ::gnu::java::lang::CPStringBuilder * CPStringBuilder$append(::java::lang::CharSequence *);
+ ::gnu::java::lang::CPStringBuilder * CPStringBuilder$append(::java::lang::CharSequence *, jint, jint);
+ ::gnu::java::lang::CPStringBuilder * append(jint);
+ ::gnu::java::lang::CPStringBuilder * append(jlong);
+ ::gnu::java::lang::CPStringBuilder * append(jfloat);
+ ::gnu::java::lang::CPStringBuilder * append(jdouble);
+ ::gnu::java::lang::CPStringBuilder * appendCodePoint(jint);
+ ::gnu::java::lang::CPStringBuilder * delete$(jint, jint);
+ ::gnu::java::lang::CPStringBuilder * deleteCharAt(jint);
+ ::gnu::java::lang::CPStringBuilder * replace(jint, jint, ::java::lang::String *);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, JArray< jchar > *, jint, jint);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, ::java::lang::Object *);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, ::java::lang::String *);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, ::java::lang::CharSequence *);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, ::java::lang::CharSequence *, jint, jint);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, JArray< jchar > *);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, jboolean);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, jchar);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, jint);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, jlong);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, jfloat);
+ ::gnu::java::lang::CPStringBuilder * insert(jint, jdouble);
+ jint indexOf(::java::lang::String *);
+ jint indexOf(::java::lang::String *, jint);
+ jint lastIndexOf(::java::lang::String *);
+ jint lastIndexOf(::java::lang::String *, jint);
+ ::gnu::java::lang::CPStringBuilder * reverse();
+ void trimToSize();
+ jint codePointCount(jint, jint);
+ jint offsetByCodePoints(jint, jint);
+ void ensureCapacity(jint);
+private:
+ void allocateArray(jint);
+public:
+ jint length();
+ ::java::lang::CharSequence * subSequence(jint, jint);
+ ::java::lang::String * substring(jint);
+ ::java::lang::String * substring(jint, jint);
+ ::java::lang::String * toString();
+ ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ ::java::lang::Appendable * append(jchar);
+private:
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+ JArray< jchar > * value;
+ jboolean allocated;
+ static jint DEFAULT_CAPACITY;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_CPStringBuilder__
diff --git a/libjava/gnu/java/lang/VMCPStringBuilder.h b/libjava/gnu/java/lang/VMCPStringBuilder.h
new file mode 100644
index 0000000..f8c2eb3
--- /dev/null
+++ b/libjava/gnu/java/lang/VMCPStringBuilder.h
@@ -0,0 +1,39 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_lang_VMCPStringBuilder__
+#define __gnu_java_lang_VMCPStringBuilder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class VMCPStringBuilder;
+ }
+ }
+ }
+}
+
+class gnu::java::lang::VMCPStringBuilder : public ::java::lang::Object
+{
+
+public: // actually package-private
+ VMCPStringBuilder();
+public:
+ static ::java::lang::String * toString(JArray< jchar > *, jint, jint);
+private:
+ static ::java::lang::reflect::Constructor * cons;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_lang_VMCPStringBuilder__
diff --git a/libjava/gnu/java/lang/VMCPStringBuilder.java b/libjava/gnu/java/lang/VMCPStringBuilder.java
new file mode 100644
index 0000000..8e137cd
--- /dev/null
+++ b/libjava/gnu/java/lang/VMCPStringBuilder.java
@@ -0,0 +1,112 @@
+/* VMCPStringBuilder.java -- Growable strings without locking or copying
+ Copyright (C) 2008 Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package gnu.java.lang;
+
+import java.lang.reflect.Constructor;
+import java.lang.reflect.InvocationTargetException;
+
+/**
+ * This class provides VM support for CPStringBuilder
+ * by allowing the package-private constructor
+ * of java.lang.String to be invoked. The default
+ * implementation uses reflection. VMs may replace
+ * this class with a more efficient version.
+ */
+final class VMCPStringBuilder
+{
+
+ /**
+ * The package-private constructor for String objects without copying.
+ */
+ private static final Constructor cons;
+
+ static
+ {
+ try
+ {
+ cons = String.class.getDeclaredConstructor(new Class[] { char[].class,
+ Integer.TYPE,
+ Integer.TYPE,
+ Boolean.TYPE });
+ cons.setAccessible(true);
+ }
+ catch (NoSuchMethodException e)
+ {
+ throw (Error)
+ new InternalError("Could not get no-copy String constructor").initCause(e);
+ }
+ }
+
+ /**
+ * Convert this <code>StringBuilder</code> to a <code>String</code>. The
+ * String is composed of the characters currently in this StringBuilder. Note
+ * that the result is not a copy, so the builder will allocate a new array
+ * if a further write operation is attempted.
+ *
+ * @param value the buffered characters.
+ * @param startIndex the index at which to start taking characters from the buffer.
+ * @param count the number of characters used in the buffer.
+ * @return the characters in this StringBuilder
+ */
+ public static String toString(char[] value, int startIndex, int count)
+ {
+ try
+ {
+ return (String)
+ cons.newInstance(new Object[] { value, Integer.valueOf(startIndex),
+ Integer.valueOf(count),
+ Boolean.valueOf(true) });
+ }
+ catch (InstantiationException e)
+ {
+ throw (Error)
+ new InternalError("Could not instantiate no-copy String constructor").initCause(e);
+ }
+ catch (IllegalAccessException e)
+ {
+ throw (Error)
+ new InternalError("Could not access no-copy String constructor").initCause(e);
+ }
+ catch (InvocationTargetException e)
+ {
+ throw (Error)
+ new InternalError("Error calling no-copy String constructor").initCause(e);
+ }
+ }
+
+}
diff --git a/libjava/gnu/java/math/GMP.h b/libjava/gnu/java/math/GMP.h
new file mode 100644
index 0000000..b038f10
--- /dev/null
+++ b/libjava/gnu/java/math/GMP.h
@@ -0,0 +1,125 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_java_math_GMP__
+#define __gnu_java_math_GMP__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace classpath
+ {
+ class Pointer;
+ }
+ namespace java
+ {
+ namespace math
+ {
+ class GMP;
+ }
+ }
+ }
+}
+
+class gnu::java::math::GMP : public ::java::lang::Object
+{
+
+public:
+ GMP();
+private:
+ void acquireRef();
+ void releaseRef();
+public: // actually protected
+ void finalize();
+public:
+ void fromByteArray(JArray< jbyte > *);
+ void fromBI(::gnu::java::math::GMP *);
+ void fromLong(jlong);
+ jint fromString(::java::lang::String *, jint);
+ void fromSignedMagnitude(JArray< jbyte > *, jboolean);
+ ::java::lang::String * toString(jint);
+ void toByteArray(JArray< jbyte > *);
+ jdouble doubleValue();
+ jint absIntValue();
+ jint compare(::gnu::java::math::GMP *);
+ void add(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void subtract(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void multiply(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void quotient(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void remainder(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void quotientAndRemainder(::gnu::java::math::GMP *, ::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void modulo(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void pow(jint, ::gnu::java::math::GMP *);
+ void modPow(::gnu::java::math::GMP *, ::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void modInverse(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void gcd(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void shiftLeft(jint, ::gnu::java::math::GMP *);
+ void shiftRight(jint, ::gnu::java::math::GMP *);
+ void abs(::gnu::java::math::GMP *);
+ void negate(::gnu::java::math::GMP *);
+ jint bitLength();
+ jint bitCount();
+ void and$(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void or$(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void xor$(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void andNot(::gnu::java::math::GMP *, ::gnu::java::math::GMP *);
+ void not$(::gnu::java::math::GMP *);
+ void flipBit(jint, ::gnu::java::math::GMP *);
+ jint testBit(jint);
+ void setBit(jint, jboolean, ::gnu::java::math::GMP *);
+ jint testPrimality(jint);
+ jint lowestSetBit();
+ static void natInitializeLibrary();
+private:
+ void natInitialize();
+ void natFinalize();
+ void natFromLong(jlong);
+ void natFromBI(::gnu::classpath::Pointer *);
+ void natFromByteArray(JArray< jbyte > *);
+ jint natFromString(::java::lang::String *, jint);
+ void natFromSignedMagnitude(JArray< jbyte > *, jboolean);
+ ::java::lang::String * natToString(jint);
+ void natToByteArray(JArray< jbyte > *);
+ jint natAbsIntValue();
+ jdouble natDoubleValue();
+ jint natCompare(::gnu::classpath::Pointer *);
+ void natAdd(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natSubtract(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natMultiply(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natQuotient(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natRemainder(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natQuotientAndRemainder(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natModulo(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natPow(jint, ::gnu::classpath::Pointer *);
+ void natModPow(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natModInverse(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natGCD(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ jint natTestPrimality(jint);
+ void natShiftLeft(jint, ::gnu::classpath::Pointer *);
+ void natShiftRight(jint, ::gnu::classpath::Pointer *);
+ jint natLowestSetBit();
+ void natAbs(::gnu::classpath::Pointer *);
+ void natNegate(::gnu::classpath::Pointer *);
+ jint natBitLength();
+ jint natSetBitCount();
+ void natXor(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natOr(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natAnd(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natAndNot(::gnu::classpath::Pointer *, ::gnu::classpath::Pointer *);
+ void natFlipBit(jint, ::gnu::classpath::Pointer *);
+ jint natTestBit(jint);
+ void natSetBit(jint, jboolean, ::gnu::classpath::Pointer *);
+ void natNot(::gnu::classpath::Pointer *);
+ ::gnu::classpath::Pointer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) native_ptr;
+ jint refCount;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_java_math_GMP__
diff --git a/libjava/gnu/java/text/AttributedFormatBuffer.h b/libjava/gnu/java/text/AttributedFormatBuffer.h
index a37b399..382afe1 100644
--- a/libjava/gnu/java/text/AttributedFormatBuffer.h
+++ b/libjava/gnu/java/text/AttributedFormatBuffer.h
@@ -15,6 +15,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace text
{
class AttributedFormatBuffer;
@@ -34,7 +38,7 @@ class gnu::java::text::AttributedFormatBuffer : public ::java::lang::Object
{
public:
- AttributedFormatBuffer(::java::lang::StringBuffer *);
+ AttributedFormatBuffer(::gnu::java::lang::CPStringBuilder *);
AttributedFormatBuffer(jint);
AttributedFormatBuffer();
private:
@@ -51,11 +55,11 @@ public:
virtual jint length();
virtual void clear();
virtual void sync();
- virtual ::java::lang::StringBuffer * getBuffer();
+ virtual ::gnu::java::lang::CPStringBuilder * getBuffer();
virtual JArray< jint > * getRanges();
virtual JArray< ::java::util::HashMap * > * getAttributes();
private:
- ::java::lang::StringBuffer * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer;
+ ::gnu::java::lang::CPStringBuilder * __attribute__((aligned(__alignof__( ::java::lang::Object)))) buffer;
::java::util::ArrayList * ranges;
::java::util::ArrayList * attributes;
JArray< jint > * a_ranges;
diff --git a/libjava/gnu/java/util/EmptyEnumeration.h b/libjava/gnu/java/util/EmptyEnumeration.h
index 78ab0fc..c565096 100644
--- a/libjava/gnu/java/util/EmptyEnumeration.h
+++ b/libjava/gnu/java/util/EmptyEnumeration.h
@@ -24,8 +24,8 @@ extern "Java"
class gnu::java::util::EmptyEnumeration : public ::java::lang::Object
{
- EmptyEnumeration();
public:
+ EmptyEnumeration();
static ::gnu::java::util::EmptyEnumeration * getInstance();
jboolean hasMoreElements();
::java::lang::Object * nextElement();
diff --git a/libjava/gnu/java/util/prefs/EventDispatcher.h b/libjava/gnu/java/util/prefs/EventDispatcher.h
deleted file mode 100644
index 235aabb..0000000
--- a/libjava/gnu/java/util/prefs/EventDispatcher.h
+++ /dev/null
@@ -1,41 +0,0 @@
-
-// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
-
-#ifndef __gnu_java_util_prefs_EventDispatcher__
-#define __gnu_java_util_prefs_EventDispatcher__
-
-#pragma interface
-
-#include <java/lang/Thread.h>
-extern "Java"
-{
- namespace gnu
- {
- namespace java
- {
- namespace util
- {
- namespace prefs
- {
- class EventDispatcher;
- }
- }
- }
- }
-}
-
-class gnu::java::util::prefs::EventDispatcher : public ::java::lang::Thread
-{
-
- EventDispatcher();
-public:
- virtual void run();
- static void dispatch(::java::lang::Runnable *);
-private:
- static ::java::lang::Thread * dispatchThread;
- static ::java::util::ArrayList * queue;
-public:
- static ::java::lang::Class class$;
-};
-
-#endif // __gnu_java_util_prefs_EventDispatcher__
diff --git a/libjava/gnu/java/util/prefs/gconf/GConfNativePeer.h b/libjava/gnu/java/util/prefs/gconf/GConfNativePeer.h
index 5d0945a..e0e37d7 100644
--- a/libjava/gnu/java/util/prefs/gconf/GConfNativePeer.h
+++ b/libjava/gnu/java/util/prefs/gconf/GConfNativePeer.h
@@ -7,8 +7,6 @@
#pragma interface
#include <java/lang/Object.h>
-#include <gcj/array.h>
-
extern "Java"
{
namespace gnu
@@ -35,8 +33,6 @@ class gnu::java::util::prefs::gconf::GConfNativePeer : public ::java::lang::Obje
public:
GConfNativePeer();
jboolean nodeExist(::java::lang::String *);
- void startWatchingNode(::java::lang::String *);
- void stopWatchingNode(::java::lang::String *);
jboolean setString(::java::lang::String *, ::java::lang::String *);
jboolean unset(::java::lang::String *);
::java::lang::String * getKey(::java::lang::String *);
@@ -52,19 +48,15 @@ private:
static void init_class();
static void finalize_class();
public: // actually protected
- static jboolean gconf_client_dir_exists(::java::lang::String *);
- static void gconf_client_add_dir(::java::lang::String *);
- static void gconf_client_remove_dir(::java::lang::String *);
- static jboolean gconf_client_set_string(::java::lang::String *, ::java::lang::String *);
- static ::java::lang::String * gconf_client_get_string(::java::lang::String *);
- static jboolean gconf_client_unset(::java::lang::String *);
- static void gconf_client_suggest_sync();
- static ::java::util::List * gconf_client_all_nodes(::java::lang::String *);
- static ::java::util::List * gconf_client_all_keys(::java::lang::String *);
+ static jboolean gconf_dir_exists(::java::lang::String *);
+ static jboolean gconf_set_string(::java::lang::String *, ::java::lang::String *);
+ static ::java::lang::String * gconf_get_string(::java::lang::String *);
+ static jboolean gconf_unset(::java::lang::String *);
+ static void gconf_suggest_sync();
+ static ::java::util::List * gconf_all_nodes(::java::lang::String *);
+ static ::java::util::List * gconf_all_keys(::java::lang::String *);
static ::java::lang::String * gconf_escape_key(::java::lang::String *);
static ::java::lang::String * gconf_unescape_key(::java::lang::String *);
-private:
- static JArray< ::java::lang::Object * > * semaphore;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/util/regex/RE.h b/libjava/gnu/java/util/regex/RE.h
index 4d43195..ee798b7 100644
--- a/libjava/gnu/java/util/regex/RE.h
+++ b/libjava/gnu/java/util/regex/RE.h
@@ -15,6 +15,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -87,9 +91,9 @@ public:
virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *);
virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint);
virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint, jint);
- virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint, jint, ::java::lang::StringBuffer *);
+ virtual ::gnu::java::util::regex::REMatch * getMatch(::java::lang::Object *, jint, jint, ::gnu::java::lang::CPStringBuilder *);
public: // actually package-private
- virtual ::gnu::java::util::regex::REMatch * getMatchImpl(::gnu::java::util::regex::CharIndexed *, jint, jint, ::java::lang::StringBuffer *);
+ virtual ::gnu::java::util::regex::REMatch * getMatchImpl(::gnu::java::util::regex::CharIndexed *, jint, jint, ::gnu::java::lang::CPStringBuilder *);
public:
virtual ::gnu::java::util::regex::REMatchEnumeration * getMatchEnumeration(::java::lang::Object *);
virtual ::gnu::java::util::regex::REMatchEnumeration * getMatchEnumeration(::java::lang::Object *, jint);
@@ -110,12 +114,12 @@ public:
private:
void addToken(::gnu::java::util::regex::REToken *);
static ::gnu::java::util::regex::REToken * setRepeated(::gnu::java::util::regex::REToken *, jint, jint, jint);
- static jint getPosixSet(JArray< jchar > *, jint, ::java::lang::StringBuffer *);
+ static jint getPosixSet(JArray< jchar > *, jint, ::gnu::java::lang::CPStringBuilder *);
jint getMinMax(JArray< jchar > *, jint, ::gnu::java::util::regex::RE$IntPair *, ::gnu::java::util::regex::RESyntax *);
public:
virtual ::java::lang::String * toString();
public: // actually package-private
- virtual void dump(::java::lang::StringBuffer *);
+ virtual void dump(::gnu::java::lang::CPStringBuilder *);
public:
static ::gnu::java::util::regex::CharIndexed * makeCharIndexed(::java::lang::Object *, jint);
private:
diff --git a/libjava/gnu/java/util/regex/REMatchEnumeration.h b/libjava/gnu/java/util/regex/REMatchEnumeration.h
index caab8c8..6b0d888 100644
--- a/libjava/gnu/java/util/regex/REMatchEnumeration.h
+++ b/libjava/gnu/java/util/regex/REMatchEnumeration.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -35,9 +39,9 @@ public: // actually package-private
public:
virtual jboolean hasMoreElements();
virtual jboolean hasMoreMatches();
- virtual jboolean hasMoreMatches(::java::lang::StringBuffer *);
+ virtual jboolean hasMoreMatches(::gnu::java::lang::CPStringBuilder *);
+ virtual ::gnu::java::util::regex::REMatch * REMatchEnumeration$nextElement();
virtual ::java::lang::Object * nextElement();
- virtual ::gnu::java::util::regex::REMatch * nextMatch();
private:
static const jint YES = 1;
static const jint MAYBE = 0;
diff --git a/libjava/gnu/java/util/regex/REToken.h b/libjava/gnu/java/util/regex/REToken.h
index 49ef5ae..552d47a 100644
--- a/libjava/gnu/java/util/regex/REToken.h
+++ b/libjava/gnu/java/util/regex/REToken.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -53,8 +57,8 @@ public: // actually package-private
virtual jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
virtual ::gnu::java::util::regex::REMatch * backtrack(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *);
virtual jboolean chain(::gnu::java::util::regex::REToken *);
- virtual void dump(::java::lang::StringBuffer *) = 0;
- virtual void dumpAll(::java::lang::StringBuffer *);
+ virtual void dump(::gnu::java::lang::CPStringBuilder *) = 0;
+ virtual void dumpAll(::gnu::java::lang::CPStringBuilder *);
public:
virtual ::java::lang::String * toString();
static jchar toLowerCase(jchar, jboolean);
diff --git a/libjava/gnu/java/util/regex/RETokenAny.h b/libjava/gnu/java/util/regex/RETokenAny.h
index d50be3d..77f00aa 100644
--- a/libjava/gnu/java/util/regex/RETokenAny.h
+++ b/libjava/gnu/java/util/regex/RETokenAny.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -37,7 +41,7 @@ public: // actually package-private
jboolean matchOneChar(jchar);
jboolean returnsFixedLengthMatches();
jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
private:
jboolean __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) newline;
jboolean matchNull;
diff --git a/libjava/gnu/java/util/regex/RETokenBackRef.h b/libjava/gnu/java/util/regex/RETokenBackRef.h
index 33cf3b6..4cadd54 100644
--- a/libjava/gnu/java/util/regex/RETokenBackRef.h
+++ b/libjava/gnu/java/util/regex/RETokenBackRef.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -32,7 +36,7 @@ class gnu::java::util::regex::RETokenBackRef : public ::gnu::java::util::regex::
public: // actually package-private
RETokenBackRef(jint, jint, jboolean);
::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
private:
jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) num;
jboolean insens;
diff --git a/libjava/gnu/java/util/regex/RETokenChar.h b/libjava/gnu/java/util/regex/RETokenChar.h
index abff1cdd..723bed8 100644
--- a/libjava/gnu/java/util/regex/RETokenChar.h
+++ b/libjava/gnu/java/util/regex/RETokenChar.h
@@ -15,6 +15,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -44,7 +48,7 @@ public: // actually package-private
jboolean returnsFixedLengthMatches();
jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
jboolean chain(::gnu::java::util::regex::REToken *);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
private:
JArray< jchar > * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) ch;
jboolean insens;
diff --git a/libjava/gnu/java/util/regex/RETokenEnd.h b/libjava/gnu/java/util/regex/RETokenEnd.h
index cdcb5b0..975bb16 100644
--- a/libjava/gnu/java/util/regex/RETokenEnd.h
+++ b/libjava/gnu/java/util/regex/RETokenEnd.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -38,7 +42,7 @@ public: // actually package-private
::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
jboolean returnsFixedLengthMatches();
jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
private:
::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) newline;
jboolean check_java_line_terminators;
diff --git a/libjava/gnu/java/util/regex/RETokenEndOfPreviousMatch.h b/libjava/gnu/java/util/regex/RETokenEndOfPreviousMatch.h
index 72f5464..be56833 100644
--- a/libjava/gnu/java/util/regex/RETokenEndOfPreviousMatch.h
+++ b/libjava/gnu/java/util/regex/RETokenEndOfPreviousMatch.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -35,7 +39,7 @@ public: // actually package-private
virtual ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
virtual jboolean returnsFixedLengthmatches();
virtual jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
- virtual void dump(::java::lang::StringBuffer *);
+ virtual void dump(::gnu::java::lang::CPStringBuilder *);
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/util/regex/RETokenEndSub.h b/libjava/gnu/java/util/regex/RETokenEndSub.h
index 50f3281..109e28b 100644
--- a/libjava/gnu/java/util/regex/RETokenEndSub.h
+++ b/libjava/gnu/java/util/regex/RETokenEndSub.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -35,7 +39,7 @@ public: // actually package-private
::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
void setHitEnd(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/util/regex/RETokenIndependent.h b/libjava/gnu/java/util/regex/RETokenIndependent.h
index f13c6b3..7800296 100644
--- a/libjava/gnu/java/util/regex/RETokenIndependent.h
+++ b/libjava/gnu/java/util/regex/RETokenIndependent.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -35,7 +39,7 @@ public: // actually package-private
jint getMinimumLength();
jint getMaximumLength();
::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) re;
public:
static ::java::lang::Class class$;
diff --git a/libjava/gnu/java/util/regex/RETokenLookAhead.h b/libjava/gnu/java/util/regex/RETokenLookAhead.h
index 64c147c..b3e1a72 100644
--- a/libjava/gnu/java/util/regex/RETokenLookAhead.h
+++ b/libjava/gnu/java/util/regex/RETokenLookAhead.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -34,7 +38,7 @@ public: // actually package-private
RETokenLookAhead(::gnu::java::util::regex::REToken *, jboolean);
jint getMaximumLength();
::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) re;
jboolean negative;
public:
diff --git a/libjava/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.h b/libjava/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.h
index 83d9b47..dc771b4 100644
--- a/libjava/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.h
+++ b/libjava/gnu/java/util/regex/RETokenLookBehind$RETokenMatchHereOnly.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -33,7 +37,7 @@ public: // actually package-private
virtual jint getMaximumLength();
RETokenLookBehind$RETokenMatchHereOnly(jint);
virtual ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
- virtual void dump(::java::lang::StringBuffer *);
+ virtual void dump(::gnu::java::lang::CPStringBuilder *);
private:
jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) index;
public:
diff --git a/libjava/gnu/java/util/regex/RETokenLookBehind.h b/libjava/gnu/java/util/regex/RETokenLookBehind.h
index b07cf6c..3aa8013 100644
--- a/libjava/gnu/java/util/regex/RETokenLookBehind.h
+++ b/libjava/gnu/java/util/regex/RETokenLookBehind.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -34,7 +38,7 @@ public: // actually package-private
RETokenLookBehind(::gnu::java::util::regex::REToken *, jboolean);
jint getMaximumLength();
::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) re;
jboolean negative;
public:
diff --git a/libjava/gnu/java/util/regex/RETokenNamedProperty.h b/libjava/gnu/java/util/regex/RETokenNamedProperty.h
index 9f610cd..a20a1a3 100644
--- a/libjava/gnu/java/util/regex/RETokenNamedProperty.h
+++ b/libjava/gnu/java/util/regex/RETokenNamedProperty.h
@@ -15,6 +15,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -42,7 +46,7 @@ private:
public: // actually package-private
jboolean returnsFixedLengthMatches();
jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
private:
::gnu::java::util::regex::RETokenNamedProperty$Handler * getHandler(::java::lang::String *);
public: // actually package-private
diff --git a/libjava/gnu/java/util/regex/RETokenOneOf.h b/libjava/gnu/java/util/regex/RETokenOneOf.h
index dec0561..b7f819d 100644
--- a/libjava/gnu/java/util/regex/RETokenOneOf.h
+++ b/libjava/gnu/java/util/regex/RETokenOneOf.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -31,8 +35,8 @@ class gnu::java::util::regex::RETokenOneOf : public ::gnu::java::util::regex::RE
public: // actually package-private
RETokenOneOf(jint, ::java::lang::String *, jboolean, jboolean);
- RETokenOneOf(jint, ::java::util::Vector *, jboolean);
- RETokenOneOf(jint, ::java::util::Vector *, ::java::util::Vector *, jboolean);
+ RETokenOneOf(jint, ::java::util::List *, jboolean);
+ RETokenOneOf(jint, ::java::util::List *, ::java::util::List *, jboolean);
jint getMinimumLength();
jint getMaximumLength();
jboolean match(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
@@ -49,12 +53,12 @@ private:
public: // actually package-private
jboolean returnsFixedLengthMatches();
jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
private:
- ::java::util::Vector * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) options;
+ ::java::util::List * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) options;
jboolean negative;
jboolean matchesOneChar;
- ::java::util::Vector * addition;
+ ::java::util::List * addition;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/gnu/java/util/regex/RETokenPOSIX.h b/libjava/gnu/java/util/regex/RETokenPOSIX.h
index a6a40c0..5704ab8 100644
--- a/libjava/gnu/java/util/regex/RETokenPOSIX.h
+++ b/libjava/gnu/java/util/regex/RETokenPOSIX.h
@@ -15,6 +15,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -40,7 +44,7 @@ public: // actually package-private
jboolean matchOneChar(jchar);
jboolean returnsFixedLengthMatches();
jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
jint __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) type;
jboolean insens;
jboolean negated;
diff --git a/libjava/gnu/java/util/regex/RETokenRange.h b/libjava/gnu/java/util/regex/RETokenRange.h
index 22ff21a..fa3c923 100644
--- a/libjava/gnu/java/util/regex/RETokenRange.h
+++ b/libjava/gnu/java/util/regex/RETokenRange.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -37,7 +41,7 @@ public: // actually package-private
jboolean matchOneChar(jchar);
jboolean returnsFixedLengthMatches();
jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
private:
jchar __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) lo;
jchar hi;
diff --git a/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h b/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h
deleted file mode 100644
index 11bf5c1..0000000
--- a/libjava/gnu/java/util/regex/RETokenRepeated$FindMatchControlStack.h
+++ /dev/null
@@ -1,44 +0,0 @@
-
-// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
-
-#ifndef __gnu_java_util_regex_RETokenRepeated$FindMatchControlStack__
-#define __gnu_java_util_regex_RETokenRepeated$FindMatchControlStack__
-
-#pragma interface
-
-#include <java/util/ArrayList.h>
-extern "Java"
-{
- namespace gnu
- {
- namespace java
- {
- namespace util
- {
- namespace regex
- {
- class RETokenRepeated$FindMatchControl;
- class RETokenRepeated$FindMatchControlStack;
- }
- }
- }
- }
-}
-
-class gnu::java::util::regex::RETokenRepeated$FindMatchControlStack : public ::java::util::ArrayList
-{
-
- RETokenRepeated$FindMatchControlStack();
- void push(::gnu::java::util::regex::RETokenRepeated$FindMatchControl *);
- ::gnu::java::util::regex::RETokenRepeated$FindMatchControl * pop();
- jboolean empty();
-public: // actually package-private
- RETokenRepeated$FindMatchControlStack(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *);
- static void access$1(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *, ::gnu::java::util::regex::RETokenRepeated$FindMatchControl *);
- static jboolean access$2(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *);
- static ::gnu::java::util::regex::RETokenRepeated$FindMatchControl * access$3(::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *);
-public:
- static ::java::lang::Class class$;
-};
-
-#endif // __gnu_java_util_regex_RETokenRepeated$FindMatchControlStack__
diff --git a/libjava/gnu/java/util/regex/RETokenRepeated.h b/libjava/gnu/java/util/regex/RETokenRepeated.h
index 17de544..09aca7a 100644
--- a/libjava/gnu/java/util/regex/RETokenRepeated.h
+++ b/libjava/gnu/java/util/regex/RETokenRepeated.h
@@ -15,6 +15,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -25,7 +29,6 @@ extern "Java"
class REToken;
class RETokenRepeated;
class RETokenRepeated$DoablesFinder;
- class RETokenRepeated$FindMatchControlStack;
class RETokenRepeated$TryAnotherResult;
}
}
@@ -48,7 +51,7 @@ public: // actually package-private
::gnu::java::util::regex::REMatch * backtrack(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *);
private:
::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::BacktrackStack *);
- ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::BacktrackStack *, ::gnu::java::util::regex::RETokenRepeated$FindMatchControlStack *);
+ ::gnu::java::util::regex::REMatch * findMatch(::gnu::java::util::regex::BacktrackStack *, ::java::util::Deque *);
::gnu::java::util::regex::RETokenRepeated$TryAnotherResult * tryAnother(::gnu::java::util::regex::BacktrackStack *, ::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint, ::gnu::java::util::regex::RETokenRepeated$DoablesFinder *, JArray< jint > *);
public: // actually package-private
jboolean match(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
@@ -61,7 +64,7 @@ private:
::gnu::java::util::regex::REMatch * backtrackFixedLength(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, ::java::lang::Object *);
::gnu::java::util::regex::REMatch * findMatchFixedLength(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint, jint);
public: // actually package-private
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
private:
::gnu::java::util::regex::REToken * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) token;
jint min;
diff --git a/libjava/gnu/java/util/regex/RETokenStart.h b/libjava/gnu/java/util/regex/RETokenStart.h
index da6ad7f..95654f7 100644
--- a/libjava/gnu/java/util/regex/RETokenStart.h
+++ b/libjava/gnu/java/util/regex/RETokenStart.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -34,9 +38,9 @@ public: // actually package-private
RETokenStart(jint, ::java::lang::String *, jboolean);
virtual jint getMaximumLength();
virtual ::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
- virtual jboolean returnsFixedLengthmatches();
+ virtual jboolean returnsFixedLengthMatches();
virtual jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
- virtual void dump(::java::lang::StringBuffer *);
+ virtual void dump(::gnu::java::lang::CPStringBuilder *);
private:
::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) newline;
jboolean check_java_line_terminators;
diff --git a/libjava/gnu/java/util/regex/RETokenWordBoundary.h b/libjava/gnu/java/util/regex/RETokenWordBoundary.h
index 1d3bb6b..18d5b2c 100644
--- a/libjava/gnu/java/util/regex/RETokenWordBoundary.h
+++ b/libjava/gnu/java/util/regex/RETokenWordBoundary.h
@@ -13,6 +13,10 @@ extern "Java"
{
namespace java
{
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
namespace util
{
namespace regex
@@ -35,7 +39,7 @@ public: // actually package-private
::gnu::java::util::regex::REMatch * matchThis(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *);
jboolean returnsFixedLengthMatches();
jint findFixedLengthMatches(::gnu::java::util::regex::CharIndexed *, ::gnu::java::util::regex::REMatch *, jint);
- void dump(::java::lang::StringBuffer *);
+ void dump(::gnu::java::lang::CPStringBuilder *);
private:
jboolean __attribute__((aligned(__alignof__( ::gnu::java::util::regex::REToken)))) negated;
jint where;
diff --git a/libjava/gnu/javax/activation/viewers/ImageViewer.h b/libjava/gnu/javax/activation/viewers/ImageViewer.h
new file mode 100644
index 0000000..bda76a6
--- /dev/null
+++ b/libjava/gnu/javax/activation/viewers/ImageViewer.h
@@ -0,0 +1,58 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_activation_viewers_ImageViewer__
+#define __gnu_javax_activation_viewers_ImageViewer__
+
+#pragma interface
+
+#include <java/awt/Component.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace activation
+ {
+ namespace viewers
+ {
+ class ImageViewer;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class Dimension;
+ class Graphics;
+ class Image;
+ }
+ }
+ namespace javax
+ {
+ namespace activation
+ {
+ class DataHandler;
+ }
+ }
+}
+
+class gnu::javax::activation::viewers::ImageViewer : public ::java::awt::Component
+{
+
+public:
+ ImageViewer();
+ virtual ::java::awt::Dimension * getPreferredSize();
+ virtual void setCommandContext(::java::lang::String *, ::javax::activation::DataHandler *);
+ virtual jboolean imageUpdate(::java::awt::Image *, jint, jint, jint, jint, jint);
+ virtual void paint(::java::awt::Graphics *);
+private:
+ ::java::awt::Image * __attribute__((aligned(__alignof__( ::java::awt::Component)))) image;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_activation_viewers_ImageViewer__
diff --git a/libjava/gnu/javax/activation/viewers/TextEditor.h b/libjava/gnu/javax/activation/viewers/TextEditor.h
new file mode 100644
index 0000000..0047d43
--- /dev/null
+++ b/libjava/gnu/javax/activation/viewers/TextEditor.h
@@ -0,0 +1,59 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_activation_viewers_TextEditor__
+#define __gnu_javax_activation_viewers_TextEditor__
+
+#pragma interface
+
+#include <java/awt/TextArea.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace activation
+ {
+ namespace viewers
+ {
+ class TextEditor;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class Dimension;
+ namespace event
+ {
+ class ActionEvent;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace activation
+ {
+ class DataHandler;
+ }
+ }
+}
+
+class gnu::javax::activation::viewers::TextEditor : public ::java::awt::TextArea
+{
+
+public:
+ TextEditor();
+ virtual ::java::awt::Dimension * getPreferredSize();
+ virtual void setCommandContext(::java::lang::String *, ::javax::activation::DataHandler *);
+ virtual void actionPerformed(::java::awt::event::ActionEvent *);
+private:
+ ::javax::activation::DataHandler * __attribute__((aligned(__alignof__( ::java::awt::TextArea)))) dh;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_activation_viewers_TextEditor__
diff --git a/libjava/gnu/javax/activation/viewers/TextViewer.h b/libjava/gnu/javax/activation/viewers/TextViewer.h
new file mode 100644
index 0000000..56c5f79
--- /dev/null
+++ b/libjava/gnu/javax/activation/viewers/TextViewer.h
@@ -0,0 +1,51 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_activation_viewers_TextViewer__
+#define __gnu_javax_activation_viewers_TextViewer__
+
+#pragma interface
+
+#include <java/awt/TextArea.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace activation
+ {
+ namespace viewers
+ {
+ class TextViewer;
+ }
+ }
+ }
+ }
+ namespace java
+ {
+ namespace awt
+ {
+ class Dimension;
+ }
+ }
+ namespace javax
+ {
+ namespace activation
+ {
+ class DataHandler;
+ }
+ }
+}
+
+class gnu::javax::activation::viewers::TextViewer : public ::java::awt::TextArea
+{
+
+public:
+ TextViewer();
+ virtual ::java::awt::Dimension * getPreferredSize();
+ virtual void setCommandContext(::java::lang::String *, ::javax::activation::DataHandler *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_activation_viewers_TextViewer__
diff --git a/libjava/gnu/javax/management/Server$LazyListenersHolder.h b/libjava/gnu/javax/management/Server$LazyListenersHolder.h
new file mode 100644
index 0000000..dfe8618
--- /dev/null
+++ b/libjava/gnu/javax/management/Server$LazyListenersHolder.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __gnu_javax_management_Server$LazyListenersHolder__
+#define __gnu_javax_management_Server$LazyListenersHolder__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace javax
+ {
+ namespace management
+ {
+ class Server$LazyListenersHolder;
+ }
+ }
+ }
+}
+
+class gnu::javax::management::Server$LazyListenersHolder : public ::java::lang::Object
+{
+
+ Server$LazyListenersHolder();
+public: // actually package-private
+ static ::java::util::Map * access$0();
+private:
+ static ::java::util::Map * listeners;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __gnu_javax_management_Server$LazyListenersHolder__
diff --git a/libjava/gnu/javax/management/Server.h b/libjava/gnu/javax/management/Server.h
index 2d94956..e23fe02 100644
--- a/libjava/gnu/javax/management/Server.h
+++ b/libjava/gnu/javax/management/Server.h
@@ -91,11 +91,10 @@ public:
private:
void notify(::javax::management::ObjectName *, ::java::lang::String *);
static ::javax::management::ObjectName * DELEGATE_NAME;
- ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) beans;
+ ::java::util::concurrent::ConcurrentHashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) beans;
::java::lang::String * defaultDomain;
::javax::management::MBeanServer * outer;
::javax::management::loading::ClassLoaderRepository * repository;
- ::java::util::Map * listeners;
::javax::management::MBeanServerDelegate * delegate;
static ::java::util::concurrent::atomic::AtomicLong * sequenceNumber;
public:
diff --git a/libjava/gnu/javax/security/auth/login/ConfigFileTokenizer.h b/libjava/gnu/javax/security/auth/login/ConfigFileTokenizer.h
index 56bd395..28ac90d 100644
--- a/libjava/gnu/javax/security/auth/login/ConfigFileTokenizer.h
+++ b/libjava/gnu/javax/security/auth/login/ConfigFileTokenizer.h
@@ -11,6 +11,13 @@ extern "Java"
{
namespace gnu
{
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
namespace javax
{
namespace security
@@ -53,7 +60,7 @@ private:
public: // actually package-private
jboolean initialised;
private:
- ::java::lang::StringBuffer * sb;
+ ::gnu::java::lang::CPStringBuilder * sb;
jint sbNdx;
public:
static ::java::lang::Class class$;
diff --git a/libjava/gnu/xml/dom/DomAttr.h b/libjava/gnu/xml/dom/DomAttr.h
index e14ac0f..db0e57d 100644
--- a/libjava/gnu/xml/dom/DomAttr.h
+++ b/libjava/gnu/xml/dom/DomAttr.h
@@ -39,6 +39,7 @@ class gnu::xml::dom::DomAttr : public ::gnu::xml::dom::DomNsNode
public: // actually protected
DomAttr(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *);
+ DomAttr(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
public:
virtual ::java::lang::String * getName();
virtual jboolean getSpecified();
diff --git a/libjava/gnu/xml/dom/DomElement.h b/libjava/gnu/xml/dom/DomElement.h
index 35ed33e..32698e5 100644
--- a/libjava/gnu/xml/dom/DomElement.h
+++ b/libjava/gnu/xml/dom/DomElement.h
@@ -41,6 +41,7 @@ class gnu::xml::dom::DomElement : public ::gnu::xml::dom::DomNsNode
public: // actually protected
DomElement(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *);
+ DomElement(::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
public:
virtual ::org::w3c::dom::NamedNodeMap * getAttributes();
virtual jboolean hasAttributes();
diff --git a/libjava/gnu/xml/dom/DomNsNode.h b/libjava/gnu/xml/dom/DomNsNode.h
index 13dc494..bd75d27 100644
--- a/libjava/gnu/xml/dom/DomNsNode.h
+++ b/libjava/gnu/xml/dom/DomNsNode.h
@@ -27,6 +27,7 @@ class gnu::xml::dom::DomNsNode : public ::gnu::xml::dom::DomNode
public: // actually package-private
DomNsNode(jshort, ::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *);
+ DomNsNode(jshort, ::gnu::xml::dom::DomDocument *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
public:
virtual ::java::lang::String * getNodeName();
public: // actually package-private
@@ -43,7 +44,6 @@ private:
::java::lang::String * __attribute__((aligned(__alignof__( ::gnu::xml::dom::DomNode)))) name;
::java::lang::String * namespace$;
::java::lang::String * prefix;
-public: // actually package-private
::java::lang::String * localName;
public:
static ::java::lang::Class class$;
diff --git a/libjava/gnu/xml/dom/ls/SAXEventSink.h b/libjava/gnu/xml/dom/ls/SAXEventSink.h
index 54f4e5f..fc726b7 100644
--- a/libjava/gnu/xml/dom/ls/SAXEventSink.h
+++ b/libjava/gnu/xml/dom/ls/SAXEventSink.h
@@ -61,6 +61,7 @@ public:
virtual ::org::w3c::dom::Document * getDocument();
virtual void setReader(::org::xml::sax::XMLReader *);
virtual void setDocumentLocator(::org::xml::sax::Locator *);
+ virtual void setNamespaceAware(jboolean);
virtual void startDocument();
virtual void endDocument();
virtual void startPrefixMapping(::java::lang::String *, ::java::lang::String *);
@@ -104,8 +105,8 @@ private:
static ::java::lang::String * XMLNS_URI;
static ::java::lang::String * XMLNS_PREFIX;
static ::java::util::HashSet * PREDEFINED_ENTITIES;
-public: // actually package-private
jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) namespaceAware;
+public: // actually package-private
jboolean ignoreWhitespace;
jboolean expandEntityReferences;
jboolean ignoreComments;
diff --git a/libjava/gnu/xml/stream/XMLParser.h b/libjava/gnu/xml/stream/XMLParser.h
index 3136a60..0fb26669 100644
--- a/libjava/gnu/xml/stream/XMLParser.h
+++ b/libjava/gnu/xml/stream/XMLParser.h
@@ -13,6 +13,13 @@ extern "Java"
{
namespace gnu
{
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
namespace xml
{
namespace stream
@@ -145,13 +152,13 @@ private:
void readMarkupdecl(jboolean);
void readElementDecl();
void readContentspec(::java::lang::String *);
- ::gnu::xml::stream::XMLParser$ElementContentModel * readElements(::java::lang::StringBuffer *);
- ::gnu::xml::stream::XMLParser$ContentParticle * readContentParticle(::java::lang::StringBuffer *);
+ ::gnu::xml::stream::XMLParser$ElementContentModel * readElements(::gnu::java::lang::CPStringBuilder *);
+ ::gnu::xml::stream::XMLParser$ContentParticle * readContentParticle(::gnu::java::lang::CPStringBuilder *);
void readAttlistDecl();
void readAttDef(::java::lang::String *);
- ::java::lang::String * readAttType(::java::lang::StringBuffer *, ::java::util::HashSet *);
- void readEnumeration(jboolean, ::java::lang::StringBuffer *, ::java::util::HashSet *);
- void readNotationType(::java::lang::StringBuffer *, ::java::util::HashSet *);
+ ::java::lang::String * readAttType(::gnu::java::lang::CPStringBuilder *, ::java::util::HashSet *);
+ void readEnumeration(jboolean, ::gnu::java::lang::CPStringBuilder *, ::java::util::HashSet *);
+ void readNotationType(::gnu::java::lang::CPStringBuilder *, ::java::util::HashSet *);
void readDefault(::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *, ::java::util::HashSet *);
void readEntityDecl(jboolean);
void readNotationDecl(jboolean);
diff --git a/libjava/gnu/xml/transform/AbstractNumberNode.h b/libjava/gnu/xml/transform/AbstractNumberNode.h
index d8c2740..20dadf6 100644
--- a/libjava/gnu/xml/transform/AbstractNumberNode.h
+++ b/libjava/gnu/xml/transform/AbstractNumberNode.h
@@ -13,6 +13,13 @@ extern "Java"
{
namespace gnu
{
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
namespace xml
{
namespace transform
@@ -52,7 +59,7 @@ public: // actually package-private
AbstractNumberNode(::gnu::xml::transform::TemplateNode *, ::java::lang::String *, jint, ::java::lang::String *, jint);
virtual void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
virtual ::java::lang::String * format(::java::lang::String *, JArray< jint > *);
- virtual void format(::java::lang::StringBuffer *, jint, ::java::lang::String *);
+ virtual void format(::gnu::java::lang::CPStringBuilder *, jint, ::java::lang::String *);
static jboolean isAlphanumeric(jchar);
static ::java::lang::String * alphabetic(jchar, jint);
static ::java::lang::String * roman(jboolean, jint);
diff --git a/libjava/gnu/xml/transform/ParameterNode.h b/libjava/gnu/xml/transform/ParameterNode.h
index 6a815cf..aebd3e0 100644
--- a/libjava/gnu/xml/transform/ParameterNode.h
+++ b/libjava/gnu/xml/transform/ParameterNode.h
@@ -52,14 +52,18 @@ class gnu::xml::transform::ParameterNode : public ::gnu::xml::transform::Templat
public: // actually package-private
ParameterNode(::javax::xml::namespace::QName *, ::gnu::xml::xpath::Expr *, jint);
- ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *);
+ ::gnu::xml::transform::ParameterNode * ParameterNode$clone(::gnu::xml::transform::Stylesheet *);
void doApply(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
::java::lang::Object * getValue(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint);
public:
jboolean references(::javax::xml::namespace::QName *);
- jint compareTo(::java::lang::Object *);
+ jint ParameterNode$compareTo(::gnu::xml::transform::ParameterNode *);
::java::lang::String * toString();
public: // actually package-private
+ ::gnu::xml::transform::TemplateNode * clone(::gnu::xml::transform::Stylesheet *);
+public:
+ jint compareTo(::java::lang::Object *);
+public: // actually package-private
::javax::xml::namespace::QName * __attribute__((aligned(__alignof__( ::gnu::xml::transform::TemplateNode)))) name;
::gnu::xml::xpath::Expr * select;
jint type;
diff --git a/libjava/gnu/xml/transform/SortKey.h b/libjava/gnu/xml/transform/SortKey.h
index f433dc3..b35aa5b 100644
--- a/libjava/gnu/xml/transform/SortKey.h
+++ b/libjava/gnu/xml/transform/SortKey.h
@@ -55,6 +55,10 @@ public: // actually package-private
::java::lang::String * key(::org::w3c::dom::Node *);
void init(::gnu::xml::transform::Stylesheet *, ::javax::xml::namespace::QName *, ::org::w3c::dom::Node *, jint, jint, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
jboolean references(::javax::xml::namespace::QName *);
+ ::gnu::xml::transform::SortKey * clone(::gnu::xml::transform::Stylesheet *);
+private:
+ ::gnu::xml::transform::TemplateNode * cloneAttributeValueTemplate(::gnu::xml::transform::TemplateNode *, ::gnu::xml::transform::Stylesheet *);
+public: // actually package-private
static const jint DEFAULT = 0;
static const jint UPPER_FIRST = 1;
static const jint LOWER_FIRST = 2;
diff --git a/libjava/gnu/xml/transform/Stylesheet.h b/libjava/gnu/xml/transform/Stylesheet.h
index c2a3f20..8bfebcc 100644
--- a/libjava/gnu/xml/transform/Stylesheet.h
+++ b/libjava/gnu/xml/transform/Stylesheet.h
@@ -120,6 +120,7 @@ public: // actually package-private
static ::java::lang::String * getRequiredAttribute(::org::w3c::dom::NamedNodeMap *, ::java::lang::String *, ::org::w3c::dom::Node *);
public:
virtual void handle(jshort, ::java::lang::String *, ::java::lang::Object *, ::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
+ virtual ::java::lang::String * toString();
public: // actually package-private
static ::java::lang::String * XSL_NS;
private:
diff --git a/libjava/gnu/xml/transform/TemplatesImpl.h b/libjava/gnu/xml/transform/TemplatesImpl.h
index d79409b..d9cc67b 100644
--- a/libjava/gnu/xml/transform/TemplatesImpl.h
+++ b/libjava/gnu/xml/transform/TemplatesImpl.h
@@ -41,6 +41,7 @@ public: // actually package-private
public:
virtual ::javax::xml::transform::Transformer * newTransformer();
virtual ::java::util::Properties * getOutputProperties();
+ virtual ::java::lang::String * toString();
public: // actually package-private
::gnu::xml::transform::TransformerFactoryImpl * __attribute__((aligned(__alignof__( ::java::lang::Object)))) factory;
::gnu::xml::transform::Stylesheet * stylesheet;
diff --git a/libjava/gnu/xml/transform/XSLComparator.h b/libjava/gnu/xml/transform/XSLComparator.h
index 0f99c57..0bde3e8 100644
--- a/libjava/gnu/xml/transform/XSLComparator.h
+++ b/libjava/gnu/xml/transform/XSLComparator.h
@@ -19,6 +19,16 @@ extern "Java"
}
}
}
+ namespace org
+ {
+ namespace w3c
+ {
+ namespace dom
+ {
+ class Node;
+ }
+ }
+ }
}
class gnu::xml::transform::XSLComparator : public ::java::lang::Object
@@ -27,6 +37,7 @@ class gnu::xml::transform::XSLComparator : public ::java::lang::Object
public: // actually package-private
XSLComparator(::java::util::List *);
public:
+ virtual jint XSLComparator$compare(::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
public: // actually package-private
::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) sortKeys;
diff --git a/libjava/gnu/xml/util/XMLWriter.h b/libjava/gnu/xml/util/XMLWriter.h
index ea354b9..56252a5 100644
--- a/libjava/gnu/xml/util/XMLWriter.h
+++ b/libjava/gnu/xml/util/XMLWriter.h
@@ -13,6 +13,13 @@ extern "Java"
{
namespace gnu
{
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
namespace xml
{
namespace util
@@ -118,7 +125,7 @@ private:
jint elementNestLevel;
::java::lang::String * eol;
jshort dangerMask;
- ::java::lang::StringBuffer * stringBuf;
+ ::gnu::java::lang::CPStringBuilder * stringBuf;
::org::xml::sax::Locator * locator;
::org::xml::sax::ErrorHandler * errHandler;
jboolean expandingEntities;
diff --git a/libjava/gnu/xml/xpath/DocumentOrderComparator.h b/libjava/gnu/xml/xpath/DocumentOrderComparator.h
index f34cb31..26abc2c 100644
--- a/libjava/gnu/xml/xpath/DocumentOrderComparator.h
+++ b/libjava/gnu/xml/xpath/DocumentOrderComparator.h
@@ -19,6 +19,16 @@ extern "Java"
}
}
}
+ namespace org
+ {
+ namespace w3c
+ {
+ namespace dom
+ {
+ class Node;
+ }
+ }
+ }
}
class gnu::xml::xpath::DocumentOrderComparator : public ::java::lang::Object
@@ -26,6 +36,7 @@ class gnu::xml::xpath::DocumentOrderComparator : public ::java::lang::Object
public:
DocumentOrderComparator();
+ virtual jint DocumentOrderComparator$compare(::org::w3c::dom::Node *, ::org::w3c::dom::Node *);
virtual jint compare(::java::lang::Object *, ::java::lang::Object *);
static ::java::lang::Class class$;
};
diff --git a/libjava/include/Makefile.in b/libjava/include/Makefile.in
index 1036451..b415ffd 100644
--- a/libjava/include/Makefile.in
+++ b/libjava/include/Makefile.in
@@ -89,6 +89,7 @@ AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
ANONVERSCRIPT_FALSE = @ANONVERSCRIPT_FALSE@
ANONVERSCRIPT_TRUE = @ANONVERSCRIPT_TRUE@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
@@ -109,6 +110,8 @@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU = @CPU@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@
CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@
CXX = @CXX@
diff --git a/libjava/java/awt/AlphaComposite.h b/libjava/java/awt/AlphaComposite.h
index a18ebbd..2113fb8 100644
--- a/libjava/java/awt/AlphaComposite.h
+++ b/libjava/java/awt/AlphaComposite.h
@@ -32,6 +32,8 @@ public:
static ::java::awt::AlphaComposite * getInstance(jint);
static ::java::awt::AlphaComposite * getInstance(jint, jfloat);
::java::awt::CompositeContext * createContext(::java::awt::image::ColorModel *, ::java::awt::image::ColorModel *, ::java::awt::RenderingHints *);
+ ::java::awt::AlphaComposite * derive(jint);
+ ::java::awt::AlphaComposite * derive(jfloat);
jfloat getAlpha();
jint getRule();
jint hashCode();
diff --git a/libjava/java/awt/MouseInfo.h b/libjava/java/awt/MouseInfo.h
index 97aed5c..20414cb 100644
--- a/libjava/java/awt/MouseInfo.h
+++ b/libjava/java/awt/MouseInfo.h
@@ -26,8 +26,8 @@ extern "Java"
class java::awt::MouseInfo : public ::java::lang::Object
{
-public:
MouseInfo();
+public:
static ::java::awt::PointerInfo * getPointerInfo();
static jint getNumberOfButtons();
private:
diff --git a/libjava/java/awt/image/ColorModel.h b/libjava/java/awt/image/ColorModel.h
index 3ed3b82..1eccdc5 100644
--- a/libjava/java/awt/image/ColorModel.h
+++ b/libjava/java/awt/image/ColorModel.h
@@ -77,7 +77,7 @@ public:
virtual jboolean equals(::java::lang::Object *);
virtual ::java::awt::color::ColorSpace * getColorSpace();
virtual ::java::awt::image::ColorModel * coerceData(::java::awt::image::WritableRaster *, jboolean);
-public: // actually protected
+public: // actually package-private
virtual void coerceDataWorker(::java::awt::image::WritableRaster *, jboolean);
public:
virtual jboolean isCompatibleRaster(::java::awt::image::Raster *);
diff --git a/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h b/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h
index 5576f653..0453cc1 100644
--- a/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h
+++ b/libjava/java/beans/beancontext/BeanContextServicesSupport$BCSSProxyServiceProvider.h
@@ -28,8 +28,8 @@ extern "Java"
class java::beans::beancontext::BeanContextServicesSupport$BCSSProxyServiceProvider : public ::java::lang::Object
{
-public: // actually protected
- BeanContextServicesSupport$BCSSProxyServiceProvider(::java::beans::beancontext::BeanContextServicesSupport *);
+public: // actually package-private
+ BeanContextServicesSupport$BCSSProxyServiceProvider(::java::beans::beancontext::BeanContextServicesSupport *, ::java::beans::beancontext::BeanContextServiceProvider *);
public:
virtual ::java::util::Iterator * getCurrentServiceSelectors(::java::beans::beancontext::BeanContextServices *, ::java::lang::Class *);
virtual ::java::lang::Object * getService(::java::beans::beancontext::BeanContextServices *, ::java::lang::Object *, ::java::lang::Class *, ::java::lang::Object *);
diff --git a/libjava/java/io/CharArrayWriter.h b/libjava/java/io/CharArrayWriter.h
index d5d2de3..ee3f559 100644
--- a/libjava/java/io/CharArrayWriter.h
+++ b/libjava/java/io/CharArrayWriter.h
@@ -33,11 +33,11 @@ private:
void resize(jint);
public:
virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
- virtual ::java::io::Writer * CharArrayWriter$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *, jint, jint);
virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
- virtual ::java::io::Writer * CharArrayWriter$append(::java::lang::CharSequence *);
+ virtual ::java::io::Writer * Writer$append(::java::lang::CharSequence *);
virtual ::java::lang::Appendable * append(jchar);
- virtual ::java::io::Writer * CharArrayWriter$append(jchar);
+ virtual ::java::io::Writer * Writer$append(jchar);
private:
static const jint DEFAULT_INITIAL_BUFFER_SIZE = 32;
public: // actually protected
diff --git a/libjava/java/lang/AbstractStringBuffer.h b/libjava/java/lang/AbstractStringBuffer.h
new file mode 100644
index 0000000..256004c
--- /dev/null
+++ b/libjava/java/lang/AbstractStringBuffer.h
@@ -0,0 +1,85 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_AbstractStringBuffer__
+#define __java_lang_AbstractStringBuffer__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::AbstractStringBuffer : public ::java::lang::Object
+{
+
+public: // actually package-private
+ AbstractStringBuffer();
+ AbstractStringBuffer(jint);
+ AbstractStringBuffer(::java::lang::String *);
+ AbstractStringBuffer(::java::lang::CharSequence *);
+public:
+ virtual void ensureCapacity(jint);
+ virtual void setLength(jint);
+ virtual jchar charAt(jint);
+ virtual jint codePointAt(jint);
+ virtual jint codePointBefore(jint);
+ virtual void getChars(jint, jint, JArray< jchar > *, jint);
+ virtual void setCharAt(jint, jchar);
+ virtual ::java::lang::AbstractStringBuffer * append(::java::lang::Object *);
+ virtual ::java::lang::AbstractStringBuffer * append(::java::lang::String *);
+ virtual ::java::lang::AbstractStringBuffer * append(::java::lang::StringBuffer *);
+ virtual ::java::lang::AbstractStringBuffer * append(JArray< jchar > *);
+ virtual ::java::lang::AbstractStringBuffer * append(JArray< jchar > *, jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * append(jboolean);
+ virtual ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar);
+ virtual ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *);
+ virtual ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * append(jint);
+ virtual ::java::lang::AbstractStringBuffer * append(jlong);
+ virtual ::java::lang::AbstractStringBuffer * append(jfloat);
+ virtual ::java::lang::AbstractStringBuffer * append(jdouble);
+ virtual ::java::lang::AbstractStringBuffer * appendCodePoint(jint);
+ virtual ::java::lang::AbstractStringBuffer * delete$(jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * deleteCharAt(jint);
+ virtual ::java::lang::AbstractStringBuffer * replace(jint, jint, ::java::lang::String *);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *, jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::Object *);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::String *);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jboolean);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jchar);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jint);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jlong);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jfloat);
+ virtual ::java::lang::AbstractStringBuffer * insert(jint, jdouble);
+ virtual jint indexOf(::java::lang::String *);
+ virtual jint indexOf(::java::lang::String *, jint);
+ virtual jint lastIndexOf(::java::lang::String *);
+ virtual jint lastIndexOf(::java::lang::String *, jint);
+ virtual ::java::lang::AbstractStringBuffer * reverse();
+ virtual void trimToSize();
+ virtual jint codePointCount(jint, jint);
+ virtual jint offsetByCodePoints(jint, jint);
+public: // actually package-private
+ virtual void ensureCapacity_unsynchronized(jint);
+private:
+ jboolean regionMatches(jint, ::java::lang::String *);
+public:
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ virtual ::java::lang::Appendable * append(::java::lang::CharSequence *);
+ virtual ::java::lang::Appendable * append(jchar);
+ virtual jint length() = 0;
+ virtual ::java::lang::CharSequence * subSequence(jint, jint) = 0;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
+ JArray< jchar > * value;
+private:
+ static const jint DEFAULT_CAPACITY = 16;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_AbstractStringBuffer__
diff --git a/libjava/java/lang/AbstractStringBuffer.java b/libjava/java/lang/AbstractStringBuffer.java
new file mode 100644
index 0000000..fe128b8
--- /dev/null
+++ b/libjava/java/lang/AbstractStringBuffer.java
@@ -0,0 +1,1027 @@
+/* AbstractStringBuffer.java -- Growable strings
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
+ Free Software Foundation, Inc.
+
+This file is part of GNU Classpath.
+
+GNU Classpath is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+GNU Classpath is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with GNU Classpath; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version. */
+
+package java.lang;
+
+import java.io.Serializable;
+
+/**
+ * This class is based on gnu.classpath.ClasspathStringBuffer but
+ * is package-private to java.lang so it can be used as the basis
+ * for StringBuffer and StringBuilder.
+ * If you modify this, please consider also modifying that code.
+ */
+abstract class AbstractStringBuffer
+ implements Serializable, CharSequence, Appendable
+{
+
+ /**
+ * Index of next available character (and thus the size of the current
+ * string contents). Note that this has permissions set this way so that
+ * String can get the value.
+ *
+ * @serial the number of characters in the buffer
+ */
+ int count;
+
+ /**
+ * The buffer. Note that this has permissions set this way so that String
+ * can get the value.
+ *
+ * @serial the buffer
+ */
+ char[] value;
+
+ /**
+ * The default capacity of a buffer.
+ */
+ private static final int DEFAULT_CAPACITY = 16;
+
+ /**
+ * Create a new AbstractStringBuffer with default capacity 16.
+ */
+ AbstractStringBuffer()
+ {
+ this(DEFAULT_CAPACITY);
+ }
+
+ /**
+ * Create an empty <code>StringBuffer</code> with the specified initial
+ * capacity.
+ *
+ * @param capacity the initial capacity
+ * @throws NegativeArraySizeException if capacity is negative
+ */
+ AbstractStringBuffer(int capacity)
+ {
+ value = new char[capacity];
+ }
+
+ /**
+ * Create a new <code>StringBuffer</code> with the characters in the
+ * specified <code>String</code>. Initial capacity will be the size of the
+ * String plus 16.
+ *
+ * @param str the <code>String</code> to convert
+ * @throws NullPointerException if str is null
+ */
+ AbstractStringBuffer(String str)
+ {
+ count = str.count;
+ value = new char[count + DEFAULT_CAPACITY];
+ str.getChars(0, count, value, 0);
+ }
+
+ /**
+ * Create a new <code>StringBuffer</code> with the characters in the
+ * specified <code>CharSequence</code>. Initial capacity will be the
+ * length of the sequence plus 16; if the sequence reports a length
+ * less than or equal to 0, then the initial capacity will be 16.
+ *
+ * @param seq the initializing <code>CharSequence</code>
+ * @throws NullPointerException if str is null
+ * @since 1.5
+ */
+ AbstractStringBuffer(CharSequence seq)
+ {
+ int len = seq.length();
+ count = len <= 0 ? 0 : len;
+ value = new char[count + DEFAULT_CAPACITY];
+ for (int i = 0; i < len; ++i)
+ value[i] = seq.charAt(i);
+ }
+
+ /**
+ * Increase the capacity of this <code>StringBuffer</code>. This will
+ * ensure that an expensive growing operation will not occur until
+ * <code>minimumCapacity</code> is reached. The buffer is grown to the
+ * larger of <code>minimumCapacity</code> and
+ * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+ *
+ * @param minimumCapacity the new capacity
+ * @see #capacity()
+ */
+ public void ensureCapacity(int minimumCapacity)
+ {
+ ensureCapacity_unsynchronized(minimumCapacity);
+ }
+
+ /**
+ * Set the length of this StringBuffer. If the new length is greater than
+ * the current length, all the new characters are set to '\0'. If the new
+ * length is less than the current length, the first <code>newLength</code>
+ * characters of the old array will be preserved, and the remaining
+ * characters are truncated.
+ *
+ * @param newLength the new length
+ * @throws IndexOutOfBoundsException if the new length is negative
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ * @see #length()
+ */
+ public void setLength(int newLength)
+ {
+ if (newLength < 0)
+ throw new StringIndexOutOfBoundsException(newLength);
+
+ int valueLength = value.length;
+
+ /* Always call ensureCapacity_unsynchronized in order to preserve
+ copy-on-write semantics. */
+ ensureCapacity_unsynchronized(newLength);
+
+ if (newLength < valueLength)
+ {
+ /* If the StringBuffer's value just grew, then we know that
+ value is newly allocated and the region between count and
+ newLength is filled with '\0'. */
+ count = newLength;
+ }
+ else
+ {
+ /* The StringBuffer's value doesn't need to grow. However,
+ we should clear out any cruft that may exist. */
+ while (count < newLength)
+ value[count++] = '\0';
+ }
+ }
+
+ /**
+ * Get the character at the specified index.
+ *
+ * @param index the index of the character to get, starting at 0
+ * @return the character at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public char charAt(int index)
+ {
+ if (index < 0 || index >= count)
+ throw new StringIndexOutOfBoundsException(index);
+ return value[index];
+ }
+
+ /**
+ * Get the code point at the specified index. This is like #charAt(int),
+ * but if the character is the start of a surrogate pair, and the
+ * following character completes the pair, then the corresponding
+ * supplementary code point is returned.
+ * @param index the index of the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public int codePointAt(int index)
+ {
+ return Character.codePointAt(value, index, count);
+ }
+
+ /**
+ * Get the code point before the specified index. This is like
+ * #codePointAt(int), but checks the characters at <code>index-1</code> and
+ * <code>index-2</code> to see if they form a supplementary code point.
+ * @param index the index just past the codepoint to get, starting at 0
+ * @return the codepoint at the specified index
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * @since 1.5
+ */
+ public int codePointBefore(int index)
+ {
+ // Character.codePointBefore() doesn't perform this check. We
+ // could use the CharSequence overload, but this is just as easy.
+ if (index >= count)
+ throw new IndexOutOfBoundsException();
+ return Character.codePointBefore(value, index, 1);
+ }
+
+ /**
+ * Get the specified array of characters. <code>srcOffset - srcEnd</code>
+ * characters will be copied into the array you pass in.
+ *
+ * @param srcOffset the index to start copying from (inclusive)
+ * @param srcEnd the index to stop copying from (exclusive)
+ * @param dst the array to copy into
+ * @param dstOffset the index to start copying into
+ * @throws NullPointerException if dst is null
+ * @throws IndexOutOfBoundsException if any source or target indices are
+ * out of range (while unspecified, source problems cause a
+ * StringIndexOutOfBoundsException, and dest problems cause an
+ * ArrayIndexOutOfBoundsException)
+ * @see System#arraycopy(Object, int, Object, int, int)
+ */
+ public void getChars(int srcOffset, int srcEnd,
+ char[] dst, int dstOffset)
+ {
+ if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
+ throw new StringIndexOutOfBoundsException();
+ System.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+ }
+
+ /**
+ * Set the character at the specified index.
+ *
+ * @param index the index of the character to set starting at 0
+ * @param ch the value to set that character to
+ * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public void setCharAt(int index, char ch)
+ {
+ if (index < 0 || index >= count)
+ throw new StringIndexOutOfBoundsException(index);
+ // Call ensureCapacity to enforce copy-on-write.
+ ensureCapacity_unsynchronized(count);
+ value[index] = ch;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param obj the <code>Object</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(Object)
+ * @see #append(String)
+ */
+ public AbstractStringBuffer append(Object obj)
+ {
+ return append(String.valueOf(obj));
+ }
+
+ /**
+ * Append the <code>String</code> to this <code>StringBuffer</code>. If
+ * str is null, the String "null" is appended.
+ *
+ * @param str the <code>String</code> to append
+ * @return this <code>StringBuffer</code>
+ */
+ public AbstractStringBuffer append(String str)
+ {
+ if (str == null)
+ str = "null";
+ int len = str.count;
+ ensureCapacity_unsynchronized(count + len);
+ str.getChars(0, len, value, count);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Append the <code>StringBuilder</code> value of the argument to this
+ * <code>StringBuilder</code>. This behaves the same as
+ * <code>append((Object) stringBuffer)</code>, except it is more efficient.
+ *
+ * @param stringBuffer the <code>StringBuilder</code> to convert and append
+ * @return this <code>StringBuilder</code>
+ * @see #append(Object)
+ */
+ public AbstractStringBuffer append(StringBuffer stringBuffer)
+ {
+ if (stringBuffer == null)
+ return append("null");
+ synchronized (stringBuffer)
+ {
+ int len = stringBuffer.count;
+ ensureCapacity(count + len);
+ System.arraycopy(stringBuffer.value, 0, value, count, len);
+ count += len;
+ }
+ return this;
+ }
+
+ /**
+ * Append the <code>char</code> array to this <code>StringBuffer</code>.
+ * This is similar (but more efficient) than
+ * <code>append(new String(data))</code>, except in the case of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @see #append(char[], int, int)
+ */
+ public AbstractStringBuffer append(char[] data)
+ {
+ return append(data, 0, data.length);
+ }
+
+ /**
+ * Append part of the <code>char</code> array to this
+ * <code>StringBuffer</code>. This is similar (but more efficient) than
+ * <code>append(new String(data, offset, count))</code>, except in the case
+ * of null.
+ *
+ * @param data the <code>char[]</code> to append
+ * @param offset the start location in <code>str</code>
+ * @param count the number of characters to get from <code>str</code>
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws IndexOutOfBoundsException if offset or count is out of range
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
+ */
+ public AbstractStringBuffer append(char[] data, int offset, int count)
+ {
+ if (offset < 0 || count < 0 || offset > data.length - count)
+ throw new StringIndexOutOfBoundsException();
+ ensureCapacity_unsynchronized(this.count + count);
+ System.arraycopy(data, offset, value, this.count, count);
+ this.count += count;
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param bool the <code>boolean</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(boolean)
+ */
+ public AbstractStringBuffer append(boolean bool)
+ {
+ return append(bool ? "true" : "false");
+ }
+
+ /**
+ * Append the <code>char</code> to this <code>StringBuffer</code>.
+ *
+ * @param ch the <code>char</code> to append
+ * @return this <code>StringBuffer</code>
+ */
+ public AbstractStringBuffer append(char ch)
+ {
+ ensureCapacity_unsynchronized(count + 1);
+ value[count++] = ch;
+ return this;
+ }
+
+ /**
+ * Append the characters in the <code>CharSequence</code> to this
+ * buffer.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @return this <code>StringBuffer</code>
+ * @since 1.5
+ */
+ public AbstractStringBuffer append(CharSequence seq)
+ {
+ return append(seq, 0, seq.length());
+ }
+
+ /**
+ * Append some characters from the <code>CharSequence</code> to this
+ * buffer. If the argument is null, the <code>seq</code> is assumed
+ * to be equal to the string <code>"null"</code>.
+ *
+ * @param seq the <code>CharSequence</code> providing the characters
+ * @param start the starting index
+ * @param end one past the final index
+ * @return this <code>StringBuffer</code>
+ * @since 1.5
+ */
+ public AbstractStringBuffer append(CharSequence seq, int start, int end)
+ {
+ if (seq == null)
+ seq = "null";
+ if (end - start > 0)
+ {
+ ensureCapacity_unsynchronized(count + end - start);
+ for (; start < end; ++start)
+ value[count++] = seq.charAt(start);
+ }
+ return this;
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param inum the <code>int</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(int)
+ */
+ // GCJ LOCAL: this is native for efficiency.
+ public native AbstractStringBuffer append (int inum);
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param lnum the <code>long</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(long)
+ */
+ public AbstractStringBuffer append(long lnum)
+ {
+ return append(Long.toString(lnum, 10));
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param fnum the <code>float</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(float)
+ */
+ public AbstractStringBuffer append(float fnum)
+ {
+ return append(Float.toString(fnum));
+ }
+
+ /**
+ * Append the <code>String</code> value of the argument to this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param dnum the <code>double</code> to convert and append
+ * @return this <code>StringBuffer</code>
+ * @see String#valueOf(double)
+ */
+ public AbstractStringBuffer append(double dnum)
+ {
+ return append(Double.toString(dnum));
+ }
+
+ /**
+ * Append the code point to this <code>StringBuffer</code>.
+ * This is like #append(char), but will append two characters
+ * if a supplementary code point is given.
+ *
+ * @param code the code point to append
+ * @return this <code>StringBuffer</code>
+ * @see Character#toChars(int, char[], int)
+ * @since 1.5
+ */
+ public AbstractStringBuffer appendCodePoint(int code)
+ {
+ int len = Character.charCount(code);
+ ensureCapacity_unsynchronized(count + len);
+ Character.toChars(code, value, count);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Delete characters from this <code>StringBuffer</code>.
+ * <code>delete(10, 12)</code> will delete 10 and 11, but not 12. It is
+ * harmless for end to be larger than length().
+ *
+ * @param start the first character to delete
+ * @param end the index after the last character to delete
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @since 1.2
+ */
+ public AbstractStringBuffer delete(int start, int end)
+ {
+ if (start < 0 || start > count || start > end)
+ throw new StringIndexOutOfBoundsException(start);
+ if (end > count)
+ end = count;
+ ensureCapacity_unsynchronized(count);
+ if (count - end != 0)
+ System.arraycopy(value, end, value, start, count - end);
+ count -= end - start;
+ return this;
+ }
+
+ /**
+ * Delete a character from this <code>StringBuffer</code>.
+ *
+ * @param index the index of the character to delete
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if index is out of bounds
+ * @since 1.2
+ */
+ public AbstractStringBuffer deleteCharAt(int index)
+ {
+ return delete(index, index + 1);
+ }
+
+ /**
+ * Replace characters between index <code>start</code> (inclusive) and
+ * <code>end</code> (exclusive) with <code>str</code>. If <code>end</code>
+ * is larger than the size of this StringBuffer, all characters after
+ * <code>start</code> are replaced.
+ *
+ * @param start the beginning index of characters to delete (inclusive)
+ * @param end the ending index of characters to delete (exclusive)
+ * @param str the new <code>String</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if start or end are out of bounds
+ * @throws NullPointerException if str is null
+ * @since 1.2
+ */
+ public AbstractStringBuffer replace(int start, int end, String str)
+ {
+ if (start < 0 || start > count || start > end)
+ throw new StringIndexOutOfBoundsException(start);
+
+ int len = str.count;
+ // Calculate the difference in 'count' after the replace.
+ int delta = len - (end > count ? count : end) + start;
+ ensureCapacity_unsynchronized(count + delta);
+
+ if (delta != 0 && end < count)
+ System.arraycopy(value, end, value, end + delta, count - end);
+
+ str.getChars(0, len, value, start);
+ count += delta;
+ return this;
+ }
+
+ /**
+ * Insert a subarray of the <code>char[]</code> argument into this
+ * <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>char[]</code> to insert
+ * @param str_offset the index in <code>str</code> to start inserting from
+ * @param len the number of characters to insert
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>str</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if any index is out of bounds
+ * @since 1.2
+ */
+ public AbstractStringBuffer insert(int offset, char[] str, int str_offset, int len)
+ {
+ if (offset < 0 || offset > count || len < 0
+ || str_offset < 0 || str_offset > str.length - len)
+ throw new StringIndexOutOfBoundsException();
+ ensureCapacity_unsynchronized(count + len);
+ System.arraycopy(value, offset, value, offset + len, count - offset);
+ System.arraycopy(str, str_offset, value, offset, len);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param obj the <code>Object</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @exception StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(Object)
+ */
+ public AbstractStringBuffer insert(int offset, Object obj)
+ {
+ return insert(offset, obj == null ? "null" : obj.toString());
+ }
+
+ /**
+ * Insert the <code>String</code> argument into this
+ * <code>StringBuffer</code>. If str is null, the String "null" is used
+ * instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param str the <code>String</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public AbstractStringBuffer insert(int offset, String str)
+ {
+ if (offset < 0 || offset > count)
+ throw new StringIndexOutOfBoundsException(offset);
+ if (str == null)
+ str = "null";
+ int len = str.count;
+ ensureCapacity_unsynchronized(count + len);
+ System.arraycopy(value, offset, value, offset + len, count - offset);
+ str.getChars(0, len, value, offset);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>CharSequence</code> argument into this
+ * <code>StringBuffer</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws IndexOutOfBoundsException if offset is out of bounds
+ * @since 1.5
+ */
+ public AbstractStringBuffer insert(int offset, CharSequence sequence)
+ {
+ if (sequence == null)
+ sequence = "null";
+ return insert(offset, sequence, 0, sequence.length());
+ }
+
+ /**
+ * Insert a subsequence of the <code>CharSequence</code> argument into this
+ * <code>StringBuffer</code>. If the sequence is null, the String
+ * "null" is used instead.
+ *
+ * @param offset the place to insert in this buffer
+ * @param sequence the <code>CharSequence</code> to insert
+ * @param start the starting index of the subsequence
+ * @param end one past the ending index of the subsequence
+ * @return this <code>StringBuffer</code>
+ * @throws IndexOutOfBoundsException if offset, start,
+ * or end are out of bounds
+ * @since 1.5
+ */
+ public AbstractStringBuffer insert(int offset, CharSequence sequence, int start, int end)
+ {
+ if (sequence == null)
+ sequence = "null";
+ if (start < 0 || end < 0 || start > end || end > sequence.length())
+ throw new IndexOutOfBoundsException();
+ int len = end - start;
+ ensureCapacity_unsynchronized(count + len);
+ System.arraycopy(value, offset, value, offset + len, count - offset);
+ for (int i = start; i < end; ++i)
+ value[offset++] = sequence.charAt(i);
+ count += len;
+ return this;
+ }
+
+ /**
+ * Insert the <code>char[]</code> argument into this
+ * <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param data the <code>char[]</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws NullPointerException if <code>data</code> is <code>null</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see #insert(int, char[], int, int)
+ */
+ public AbstractStringBuffer insert(int offset, char[] data)
+ {
+ return insert(offset, data, 0, data.length);
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param bool the <code>boolean</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(boolean)
+ */
+ public AbstractStringBuffer insert(int offset, boolean bool)
+ {
+ return insert(offset, bool ? "true" : "false");
+ }
+
+ /**
+ * Insert the <code>char</code> argument into this <code>StringBuffer</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param ch the <code>char</code> to insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ */
+ public AbstractStringBuffer insert(int offset, char ch)
+ {
+ if (offset < 0 || offset > count)
+ throw new StringIndexOutOfBoundsException(offset);
+ ensureCapacity_unsynchronized(count + 1);
+ System.arraycopy(value, offset, value, offset + 1, count - offset);
+ value[offset] = ch;
+ count++;
+ return this;
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param inum the <code>int</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(int)
+ */
+ public AbstractStringBuffer insert(int offset, int inum)
+ {
+ return insert(offset, String.valueOf(inum));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param lnum the <code>long</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(long)
+ */
+ public AbstractStringBuffer insert(int offset, long lnum)
+ {
+ return insert(offset, Long.toString(lnum, 10));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param fnum the <code>float</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(float)
+ */
+ public AbstractStringBuffer insert(int offset, float fnum)
+ {
+ return insert(offset, Float.toString(fnum));
+ }
+
+ /**
+ * Insert the <code>String</code> value of the argument into this
+ * <code>StringBuffer</code>. Uses <code>String.valueOf()</code> to convert
+ * to <code>String</code>.
+ *
+ * @param offset the place to insert in this buffer
+ * @param dnum the <code>double</code> to convert and insert
+ * @return this <code>StringBuffer</code>
+ * @throws StringIndexOutOfBoundsException if offset is out of bounds
+ * @see String#valueOf(double)
+ */
+ public AbstractStringBuffer insert(int offset, double dnum)
+ {
+ return insert(offset, Double.toString(dnum));
+ }
+
+ /**
+ * Finds the first instance of a substring in this StringBuilder.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @see #indexOf(String, int)
+ */
+ public int indexOf(String str)
+ {
+ return indexOf(str, 0);
+ }
+
+ /**
+ * Finds the first instance of a String in this StringBuffer, starting at
+ * a given index. If starting index is less than 0, the search starts at
+ * the beginning of this String. If the starting index is greater than the
+ * length of this String, or the substring is not found, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @since 1.4
+ */
+ public int indexOf(String str, int fromIndex)
+ {
+ if (fromIndex < 0)
+ fromIndex = 0;
+ int limit = count - str.count;
+ for ( ; fromIndex <= limit; fromIndex++)
+ if (regionMatches(fromIndex, str))
+ return fromIndex;
+ return -1;
+ }
+
+ /**
+ * Finds the last instance of a substring in this StringBuffer.
+ *
+ * @param str String to find
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @see #lastIndexOf(String, int)
+ * @since 1.4
+ */
+ public int lastIndexOf(String str)
+ {
+ return lastIndexOf(str, count - str.count);
+ }
+
+ /**
+ * Finds the last instance of a String in this StringBuffer, starting at a
+ * given index. If starting index is greater than the maximum valid index,
+ * then the search begins at the end of this String. If the starting index
+ * is less than zero, or the substring is not found, -1 is returned.
+ *
+ * @param str String to find
+ * @param fromIndex index to start the search
+ * @return location (base 0) of the String, or -1 if not found
+ * @throws NullPointerException if str is null
+ * @since 1.4
+ */
+ public int lastIndexOf(String str, int fromIndex)
+ {
+ fromIndex = Math.min(fromIndex, count - str.count);
+ for ( ; fromIndex >= 0; fromIndex--)
+ if (regionMatches(fromIndex, str))
+ return fromIndex;
+ return -1;
+ }
+
+ /**
+ * Reverse the characters in this StringBuffer. The same sequence of
+ * characters exists, but in the reverse index ordering.
+ *
+ * @return this <code>StringBuffer</code>
+ */
+ public AbstractStringBuffer reverse()
+ {
+ // Call ensureCapacity to enforce copy-on-write.
+ ensureCapacity_unsynchronized(count);
+ for (int i = count >> 1, j = count - i; --i >= 0; ++j)
+ {
+ char c = value[i];
+ value[i] = value[j];
+ value[j] = c;
+ }
+ return this;
+ }
+
+ /**
+ * This may reduce the amount of memory used by the StringBuffer,
+ * by resizing the internal array to remove unused space. However,
+ * this method is not required to resize, so this behavior cannot
+ * be relied upon.
+ * @since 1.5
+ */
+ public void trimToSize()
+ {
+ int wouldSave = value.length - count;
+ // Some random heuristics: if we save less than 20 characters, who
+ // cares.
+ if (wouldSave < 20)
+ return;
+ // If we save more than 200 characters, shrink.
+ // If we save more than 1/4 of the buffer, shrink.
+ if (wouldSave > 200 || wouldSave * 4 > value.length)
+ {
+ char[] newValue = new char[count];
+ System.arraycopy(value, 0, newValue, 0, count);
+ value = newValue;
+ }
+ }
+
+ /**
+ * Return the number of code points between two indices in the
+ * <code>StringBuffer</code>. An unpaired surrogate counts as a
+ * code point for this purpose. Characters outside the indicated
+ * range are not examined, even if the range ends in the middle of a
+ * surrogate pair.
+ *
+ * @param start the starting index
+ * @param end one past the ending index
+ * @return the number of code points
+ * @since 1.5
+ */
+ public int codePointCount(int start, int end)
+ {
+ if (start < 0 || end >= count || start > end)
+ throw new StringIndexOutOfBoundsException();
+
+ int count = 0;
+ while (start < end)
+ {
+ char base = value[start];
+ if (base < Character.MIN_HIGH_SURROGATE
+ || base > Character.MAX_HIGH_SURROGATE
+ || start == end
+ || start == count
+ || value[start + 1] < Character.MIN_LOW_SURROGATE
+ || value[start + 1] > Character.MAX_LOW_SURROGATE)
+ {
+ // Nothing.
+ }
+ else
+ {
+ // Surrogate pair.
+ ++start;
+ }
+ ++start;
+ ++count;
+ }
+ return count;
+ }
+
+ /**
+ * Starting at the given index, this counts forward by the indicated
+ * number of code points, and then returns the resulting index. An
+ * unpaired surrogate counts as a single code point for this
+ * purpose.
+ *
+ * @param start the starting index
+ * @param codePoints the number of code points
+ * @return the resulting index
+ * @since 1.5
+ */
+ public int offsetByCodePoints(int start, int codePoints)
+ {
+ while (codePoints > 0)
+ {
+ char base = value[start];
+ if (base < Character.MIN_HIGH_SURROGATE
+ || base > Character.MAX_HIGH_SURROGATE
+ || start == count
+ || value[start + 1] < Character.MIN_LOW_SURROGATE
+ || value[start + 1] > Character.MAX_LOW_SURROGATE)
+ {
+ // Nothing.
+ }
+ else
+ {
+ // Surrogate pair.
+ ++start;
+ }
+ ++start;
+ --codePoints;
+ }
+ return start;
+ }
+
+ /**
+ * Increase the capacity of this <code>StringBuilder</code>. This will
+ * ensure that an expensive growing operation will not occur until
+ * <code>minimumCapacity</code> is reached. The buffer is grown to the
+ * larger of <code>minimumCapacity</code> and
+ * <code>capacity() * 2 + 2</code>, if it is not already large enough.
+ *
+ * @param minimumCapacity the new capacity
+ * @see #capacity()
+ */
+ void ensureCapacity_unsynchronized(int minimumCapacity)
+ {
+ if (minimumCapacity > value.length)
+ {
+ int max = value.length * 2 + 2;
+ minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
+ char[] nb = new char[minimumCapacity];
+ System.arraycopy(value, 0, nb, 0, count);
+ value = nb;
+ }
+ }
+
+ /**
+ * Predicate which determines if a substring of this matches another String
+ * starting at a specified offset for each String and continuing for a
+ * specified length. This is more efficient than creating a String to call
+ * indexOf on.
+ *
+ * @param toffset index to start comparison at for this String
+ * @param other non-null String to compare to region of this
+ * @return true if regions match, false otherwise
+ * @see #indexOf(String, int)
+ * @see #lastIndexOf(String, int)
+ * @see String#regionMatches(boolean, int, String, int, int)
+ */
+ // GCJ LOCAL: native for gcj.
+ private native boolean regionMatches(int toffset, String other);
+
+}
diff --git a/libjava/java/lang/ClassLoader.java b/libjava/java/lang/ClassLoader.java
index e0463ac..d555730 100644
--- a/libjava/java/lang/ClassLoader.java
+++ b/libjava/java/lang/ClassLoader.java
@@ -775,7 +775,7 @@ public abstract class ClassLoader
*/
protected Enumeration<URL> findResources(String name) throws IOException
{
- return (Enumeration<URL>) EmptyEnumeration.getInstance();
+ return new EmptyEnumeration<URL>();
}
/**
diff --git a/libjava/java/lang/Double.h b/libjava/java/lang/Double.h
index 7808acc..54eb42b 100644
--- a/libjava/java/lang/Double.h
+++ b/libjava/java/lang/Double.h
@@ -49,6 +49,8 @@ public:
static const jint SIZE = 64;
static ::java::lang::Class * TYPE;
private:
+ static ::java::lang::Double * ZERO;
+ static ::java::lang::Double * ONE;
jdouble __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
public:
static ::java::lang::Class class$;
diff --git a/libjava/java/lang/Float.h b/libjava/java/lang/Float.h
index 0069df4..603da6d 100644
--- a/libjava/java/lang/Float.h
+++ b/libjava/java/lang/Float.h
@@ -50,6 +50,8 @@ public:
static ::java::lang::Class * TYPE;
static const jint SIZE = 32;
private:
+ static ::java::lang::Float * ZERO;
+ static ::java::lang::Float * ONE;
jfloat __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
public:
static ::java::lang::Class class$;
diff --git a/libjava/java/lang/Integer.h b/libjava/java/lang/Integer.h
index aebcd0a..f1bd11b 100644
--- a/libjava/java/lang/Integer.h
+++ b/libjava/java/lang/Integer.h
@@ -16,6 +16,9 @@ class java::lang::Integer : public ::java::lang::Number
public:
Integer(jint);
Integer(::java::lang::String *);
+private:
+ static jint stringSize(jint, jint);
+public:
static ::java::lang::String * toString(jint, jint);
static ::java::lang::String * toHexString(jint);
static ::java::lang::String * toOctalString(jint);
diff --git a/libjava/java/lang/Long.h b/libjava/java/lang/Long.h
index b0358e6..60c0d243 100644
--- a/libjava/java/lang/Long.h
+++ b/libjava/java/lang/Long.h
@@ -7,6 +7,8 @@
#pragma interface
#include <java/lang/Number.h>
+#include <gcj/array.h>
+
class java::lang::Long : public ::java::lang::Number
{
@@ -14,6 +16,9 @@ class java::lang::Long : public ::java::lang::Number
public:
Long(jlong);
Long(::java::lang::String *);
+private:
+ static jint stringSize(jlong, jint);
+public:
static ::java::lang::String * toString(jlong, jint);
static ::java::lang::String * toHexString(jlong);
static ::java::lang::String * toOctalString(jlong);
@@ -61,6 +66,9 @@ public:
static ::java::lang::Class * TYPE;
static const jint SIZE = 64;
private:
+ static const jint MIN_CACHE = -128;
+ static const jint MAX_CACHE = 127;
+ static JArray< ::java::lang::Long * > * longCache;
jlong __attribute__((aligned(__alignof__( ::java::lang::Number)))) value;
public:
static ::java::lang::Class class$;
diff --git a/libjava/java/lang/String.h b/libjava/java/lang/String.h
index 5fa06de..32e0ccd 100644
--- a/libjava/java/lang/String.h
+++ b/libjava/java/lang/String.h
@@ -118,6 +118,7 @@ public:
jint offsetByCodePoints(jint, jint);
jboolean isEmpty();
private:
+ static ::java::lang::String * toString(JArray< jchar > *, jint, jint);
void init(JArray< jchar > *, jint, jint, jboolean);
void init(JArray< jbyte > *, jint, jint, jint);
void init(JArray< jbyte > *, jint, jint, ::java::lang::String *);
diff --git a/libjava/java/lang/String.java b/libjava/java/lang/String.java
index d5bb415..b9ce3c0 100644
--- a/libjava/java/lang/String.java
+++ b/libjava/java/lang/String.java
@@ -1440,6 +1440,14 @@ public final class String
return count == 0;
}
+ // Generate a String that shares the value array: subsequent changes
+ // to this array will affect the String. A private internal method
+ // that is called from CPStringBuilder by compiler-generated code.
+ private static String toString(char[] value, int startIndex, int count)
+ {
+ return new String(value, startIndex, count, true);
+ }
+
private native void init(char[] chars, int offset, int count,
boolean dont_copy);
private native void init(byte[] chars, int hibyte, int offset, int count);
diff --git a/libjava/java/lang/StringBuffer.h b/libjava/java/lang/StringBuffer.h
index 983ef98..487e2fc 100644
--- a/libjava/java/lang/StringBuffer.h
+++ b/libjava/java/lang/StringBuffer.h
@@ -6,11 +6,11 @@
#pragma interface
-#include <java/lang/Object.h>
+#include <java/lang/AbstractStringBuffer.h>
#include <gcj/array.h>
-class java::lang::StringBuffer : public ::java::lang::Object
+class java::lang::StringBuffer : public ::java::lang::AbstractStringBuffer
{
public:
@@ -27,62 +27,87 @@ public:
jint codePointBefore(jint);
void getChars(jint, jint, JArray< jchar > *, jint);
void setCharAt(jint, jchar);
- ::java::lang::StringBuffer * append(::java::lang::Object *);
- ::java::lang::StringBuffer * append(::java::lang::String *);
- ::java::lang::StringBuffer * append(::java::lang::StringBuffer *);
- ::java::lang::StringBuffer * append(JArray< jchar > *);
- ::java::lang::StringBuffer * append(JArray< jchar > *, jint, jint);
- ::java::lang::StringBuffer * appendCodePoint(jint);
- ::java::lang::StringBuffer * append(jboolean);
+ ::java::lang::StringBuffer * StringBuffer$append(::java::lang::Object *);
+ ::java::lang::StringBuffer * StringBuffer$append(::java::lang::String *);
+ ::java::lang::StringBuffer * StringBuffer$append(::java::lang::StringBuffer *);
+ ::java::lang::StringBuffer * StringBuffer$append(JArray< jchar > *);
+ ::java::lang::StringBuffer * StringBuffer$append(JArray< jchar > *, jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$append(jboolean);
::java::lang::StringBuffer * StringBuffer$append(jchar);
::java::lang::StringBuffer * StringBuffer$append(::java::lang::CharSequence *);
::java::lang::StringBuffer * StringBuffer$append(::java::lang::CharSequence *, jint, jint);
- ::java::lang::StringBuffer * append(jint);
- ::java::lang::StringBuffer * append(jlong);
- ::java::lang::StringBuffer * append(jfloat);
- ::java::lang::StringBuffer * append(jdouble);
- ::java::lang::StringBuffer * delete$(jint, jint);
- ::java::lang::StringBuffer * deleteCharAt(jint);
- ::java::lang::StringBuffer * replace(jint, jint, ::java::lang::String *);
+ ::java::lang::StringBuffer * StringBuffer$append(jint);
+ ::java::lang::StringBuffer * StringBuffer$append(jlong);
+ ::java::lang::StringBuffer * StringBuffer$append(jfloat);
+ ::java::lang::StringBuffer * StringBuffer$append(jdouble);
+ ::java::lang::StringBuffer * StringBuffer$appendCodePoint(jint);
+ ::java::lang::StringBuffer * StringBuffer$delete(jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$deleteCharAt(jint);
+ ::java::lang::StringBuffer * StringBuffer$replace(jint, jint, ::java::lang::String *);
::java::lang::String * substring(jint);
::java::lang::CharSequence * subSequence(jint, jint);
::java::lang::String * substring(jint, jint);
- ::java::lang::StringBuffer * insert(jint, JArray< jchar > *, jint, jint);
- ::java::lang::StringBuffer * insert(jint, ::java::lang::Object *);
- ::java::lang::StringBuffer * insert(jint, ::java::lang::String *);
- ::java::lang::StringBuffer * insert(jint, ::java::lang::CharSequence *);
- ::java::lang::StringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
- ::java::lang::StringBuffer * insert(jint, JArray< jchar > *);
- ::java::lang::StringBuffer * insert(jint, jboolean);
- ::java::lang::StringBuffer * insert(jint, jchar);
- ::java::lang::StringBuffer * insert(jint, jint);
- ::java::lang::StringBuffer * insert(jint, jlong);
- ::java::lang::StringBuffer * insert(jint, jfloat);
- ::java::lang::StringBuffer * insert(jint, jdouble);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, JArray< jchar > *, jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::Object *);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::String *);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::CharSequence *);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, ::java::lang::CharSequence *, jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, JArray< jchar > *);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jboolean);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jchar);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jint);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jlong);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jfloat);
+ ::java::lang::StringBuffer * StringBuffer$insert(jint, jdouble);
jint indexOf(::java::lang::String *);
jint indexOf(::java::lang::String *, jint);
jint lastIndexOf(::java::lang::String *);
jint lastIndexOf(::java::lang::String *, jint);
- ::java::lang::StringBuffer * reverse();
+ ::java::lang::StringBuffer * StringBuffer$reverse();
::java::lang::String * toString();
void trimToSize();
jint codePointCount(jint, jint);
jint offsetByCodePoints(jint, jint);
-private:
+public: // actually package-private
void ensureCapacity_unsynchronized(jint);
- jboolean regionMatches(jint, ::java::lang::String *);
public:
+ ::java::lang::AbstractStringBuffer * reverse();
+ ::java::lang::AbstractStringBuffer * deleteCharAt(jint);
+ ::java::lang::AbstractStringBuffer * replace(jint, jint, ::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * delete$(jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, jdouble);
+ ::java::lang::AbstractStringBuffer * insert(jint, jfloat);
+ ::java::lang::AbstractStringBuffer * insert(jint, jlong);
+ ::java::lang::AbstractStringBuffer * insert(jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, jchar);
+ ::java::lang::AbstractStringBuffer * insert(jint, jboolean);
+ ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::Object *);
+ ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *, jint, jint);
+ ::java::lang::AbstractStringBuffer * append(jdouble);
+ ::java::lang::AbstractStringBuffer * append(jfloat);
+ ::java::lang::AbstractStringBuffer * append(jlong);
+ ::java::lang::AbstractStringBuffer * append(jint);
::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *, jint, jint);
::java::lang::Appendable * append(::java::lang::CharSequence *);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *);
::java::lang::Appendable * append(jchar);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar);
+ ::java::lang::AbstractStringBuffer * append(jboolean);
+ ::java::lang::AbstractStringBuffer * append(JArray< jchar > *, jint, jint);
+ ::java::lang::AbstractStringBuffer * append(JArray< jchar > *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::StringBuffer *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::Object *);
+ ::java::lang::AbstractStringBuffer * appendCodePoint(jint);
private:
static const jlong serialVersionUID = 3388685877147921107LL;
public: // actually package-private
- jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
- JArray< jchar > * value;
- jboolean shared;
-private:
- static const jint DEFAULT_CAPACITY = 16;
+ jboolean __attribute__((aligned(__alignof__( ::java::lang::AbstractStringBuffer)))) shared;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/java/lang/StringBuffer.java b/libjava/java/lang/StringBuffer.java
index 57fd2ca..0c61b4d 100644
--- a/libjava/java/lang/StringBuffer.java
+++ b/libjava/java/lang/StringBuffer.java
@@ -1,5 +1,5 @@
/* StringBuffer.java -- Growable strings
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -73,6 +73,7 @@ import java.io.Serializable;
* @status updated to 1.4
*/
public final class StringBuffer
+ extends AbstractStringBuffer
implements Serializable, CharSequence, Appendable
{
// Implementation note: if you change this class, you usually will
@@ -84,23 +85,6 @@ public final class StringBuffer
private static final long serialVersionUID = 3388685877147921107L;
/**
- * Index of next available character (and thus the size of the current
- * string contents). Note that this has permissions set this way so that
- * String can get the value.
- *
- * @serial the number of characters in the buffer
- */
- int count;
-
- /**
- * The buffer. Note that this has permissions set this way so that String
- * can get the value.
- *
- * @serial the buffer
- */
- char[] value;
-
- /**
* True if the buffer is shared with another object (StringBuffer or
* String); this means the buffer must be copied before writing to it again.
* Note that this has permissions set this way so that String can get the
@@ -111,16 +95,11 @@ public final class StringBuffer
boolean shared;
/**
- * The default capacity of a buffer.
- */
- private static final int DEFAULT_CAPACITY = 16;
-
- /**
* Create a new StringBuffer with default capacity 16.
*/
public StringBuffer()
{
- this(DEFAULT_CAPACITY);
+ super();
}
/**
@@ -132,7 +111,7 @@ public final class StringBuffer
*/
public StringBuffer(int capacity)
{
- value = new char[capacity];
+ super(capacity);
}
/**
@@ -146,26 +125,22 @@ public final class StringBuffer
public StringBuffer(String str)
{
// Unfortunately, because the size is 16 larger, we cannot share.
- count = str.count;
- value = new char[count + DEFAULT_CAPACITY];
- str.getChars(0, count, value, 0);
+ super(str);
}
/**
- * Create a new <code>StringBuffer</code> with the characters from the
+ * Create a new <code>StringBuffer</code> with the characters in the
* specified <code>CharSequence</code>. Initial capacity will be the
- * size of the CharSequence plus 16.
+ * length of the sequence plus 16; if the sequence reports a length
+ * less than or equal to 0, then the initial capacity will be 16.
*
- * @param seq the <code>String</code> to convert
+ * @param seq the initializing <code>CharSequence</code>
* @throws NullPointerException if str is null
* @since 1.5
*/
public StringBuffer(CharSequence seq)
{
- count = Math.max(0, seq.length());
- value = new char[count + DEFAULT_CAPACITY];
- for (int i = 0; i < count; ++i)
- value[i] = seq.charAt(i);
+ super(seq);
}
/**
@@ -224,29 +199,7 @@ public final class StringBuffer
*/
public synchronized void setLength(int newLength)
{
- if (newLength < 0)
- throw new StringIndexOutOfBoundsException(newLength);
-
- int valueLength = value.length;
-
- /* Always call ensureCapacity_unsynchronized in order to preserve
- copy-on-write semantics. */
- ensureCapacity_unsynchronized(newLength);
-
- if (newLength < valueLength)
- {
- /* If the StringBuffer's value just grew, then we know that
- value is newly allocated and the region between count and
- newLength is filled with '\0'. */
- count = newLength;
- }
- else
- {
- /* The StringBuffer's value doesn't need to grow. However,
- we should clear out any cruft that may exist. */
- while (count < newLength)
- value[count++] = '\0';
- }
+ super.setLength(newLength);
}
/**
@@ -255,12 +208,11 @@ public final class StringBuffer
* @param index the index of the character to get, starting at 0
* @return the character at the specified index
* @throws IndexOutOfBoundsException if index is negative or &gt;= length()
+ * (while unspecified, this is a StringIndexOutOfBoundsException)
*/
public synchronized char charAt(int index)
{
- if (index < 0 || index >= count)
- throw new StringIndexOutOfBoundsException(index);
- return value[index];
+ return super.charAt(index);
}
/**
@@ -275,7 +227,7 @@ public final class StringBuffer
*/
public synchronized int codePointAt(int index)
{
- return Character.codePointAt(value, index, count);
+ return super.codePointAt(index);
}
/**
@@ -289,11 +241,7 @@ public final class StringBuffer
*/
public synchronized int codePointBefore(int index)
{
- // Character.codePointBefore() doesn't perform this check. We
- // could use the CharSequence overload, but this is just as easy.
- if (index >= count)
- throw new IndexOutOfBoundsException();
- return Character.codePointBefore(value, index, 1);
+ return super.codePointBefore(index);
}
/**
@@ -314,9 +262,7 @@ public final class StringBuffer
public synchronized void getChars(int srcOffset, int srcEnd,
char[] dst, int dstOffset)
{
- if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
- throw new StringIndexOutOfBoundsException();
- System.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
+ super.getChars(srcOffset, srcEnd, dst, dstOffset);
}
/**
@@ -329,11 +275,7 @@ public final class StringBuffer
*/
public synchronized void setCharAt(int index, char ch)
{
- if (index < 0 || index >= count)
- throw new StringIndexOutOfBoundsException(index);
- // Call ensureCapacity to enforce copy-on-write.
- ensureCapacity_unsynchronized(count);
- value[index] = ch;
+ super.setCharAt(index, ch);
}
/**
@@ -346,9 +288,10 @@ public final class StringBuffer
* @see String#valueOf(Object)
* @see #append(String)
*/
- public StringBuffer append(Object obj)
+ public synchronized StringBuffer append(Object obj)
{
- return append(obj == null ? "null" : obj.toString());
+ super.append(obj);
+ return this;
}
/**
@@ -360,12 +303,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer append(String str)
{
- if (str == null)
- str = "null";
- int len = str.count;
- ensureCapacity_unsynchronized(count + len);
- str.getChars(0, len, value, count);
- count += len;
+ super.append(str);
return this;
}
@@ -381,15 +319,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer append(StringBuffer stringBuffer)
{
- if (stringBuffer == null)
- return append("null");
- synchronized (stringBuffer)
- {
- int len = stringBuffer.count;
- ensureCapacity_unsynchronized(count + len);
- System.arraycopy(stringBuffer.value, 0, value, count, len);
- count += len;
- }
+ super.append(stringBuffer);
return this;
}
@@ -403,9 +333,10 @@ public final class StringBuffer
* @throws NullPointerException if <code>str</code> is <code>null</code>
* @see #append(char[], int, int)
*/
- public StringBuffer append(char[] data)
+ public synchronized StringBuffer append(char[] data)
{
- return append(data, 0, data.length);
+ super.append(data, 0, data.length);
+ return this;
}
/**
@@ -424,30 +355,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer append(char[] data, int offset, int count)
{
- if (offset < 0 || count < 0 || offset > data.length - count)
- throw new StringIndexOutOfBoundsException();
- ensureCapacity_unsynchronized(this.count + count);
- System.arraycopy(data, offset, value, this.count, count);
- this.count += count;
- return this;
- }
-
- /**
- * Append the code point to this <code>StringBuffer</code>.
- * This is like #append(char), but will append two characters
- * if a supplementary code point is given.
- *
- * @param code the code point to append
- * @return this <code>StringBuffer</code>
- * @see Character#toChars(int, char[], int)
- * @since 1.5
- */
- public synchronized StringBuffer appendCodePoint(int code)
- {
- int len = Character.charCount(code);
- ensureCapacity_unsynchronized(count + len);
- Character.toChars(code, value, count);
- count += len;
+ super.append(data, offset, count);
return this;
}
@@ -460,9 +368,10 @@ public final class StringBuffer
* @return this <code>StringBuffer</code>
* @see String#valueOf(boolean)
*/
- public StringBuffer append(boolean bool)
+ public synchronized StringBuffer append(boolean bool)
{
- return append(bool ? "true" : "false");
+ super.append(bool);
+ return this;
}
/**
@@ -473,47 +382,38 @@ public final class StringBuffer
*/
public synchronized StringBuffer append(char ch)
{
- ensureCapacity_unsynchronized(count + 1);
- value[count++] = ch;
+ super.append(ch);
return this;
}
/**
- * Append the <code>CharSequence</code> value of the argument to this
- * <code>StringBuffer</code>.
+ * Append the characters in the <code>CharSequence</code> to this
+ * buffer.
*
- * @param seq the <code>CharSequence</code> to append
+ * @param seq the <code>CharSequence</code> providing the characters
* @return this <code>StringBuffer</code>
- * @see #append(Object)
* @since 1.5
*/
public synchronized StringBuffer append(CharSequence seq)
{
- if (seq == null)
- seq = "null";
- return append(seq, 0, seq.length());
+ super.append(seq, 0, seq.length());
+ return this;
}
/**
- * Append the specified subsequence of the <code>CharSequence</code>
- * argument to this <code>StringBuffer</code>.
+ * Append some characters from the <code>CharSequence</code> to this
+ * buffer. If the argument is null, the four characters "null" are
+ * appended.
*
- * @param seq the <code>CharSequence</code> to append
+ * @param seq the <code>CharSequence</code> providing the characters
* @param start the starting index
- * @param end one past the ending index
+ * @param end one past the final index
* @return this <code>StringBuffer</code>
- * @see #append(Object)
* @since 1.5
*/
public synchronized StringBuffer append(CharSequence seq, int start, int end)
{
- if (seq == null)
- seq = "null";
- if (start < 0 || end < 0 || start > end || end > seq.length())
- throw new IndexOutOfBoundsException();
- ensureCapacity_unsynchronized(this.count + end - start);
- for (int i = start; i < end; ++i)
- value[count++] = seq.charAt(i);
+ super.append(seq, start, end);
return this;
}
@@ -526,8 +426,12 @@ public final class StringBuffer
* @return this <code>StringBuffer</code>
* @see String#valueOf(int)
*/
- // GCJ LOCAL: this is native for efficiency.
- public native StringBuffer append (int inum);
+ // This is native in libgcj, for efficiency.
+ public synchronized StringBuffer append(int inum)
+ {
+ super.append(inum);
+ return this;
+ }
/**
* Append the <code>String</code> value of the argument to this
@@ -538,9 +442,10 @@ public final class StringBuffer
* @return this <code>StringBuffer</code>
* @see String#valueOf(long)
*/
- public StringBuffer append(long lnum)
+ public synchronized StringBuffer append(long lnum)
{
- return append(Long.toString(lnum, 10));
+ super.append(lnum);
+ return this;
}
/**
@@ -552,9 +457,10 @@ public final class StringBuffer
* @return this <code>StringBuffer</code>
* @see String#valueOf(float)
*/
- public StringBuffer append(float fnum)
+ public synchronized StringBuffer append(float fnum)
{
- return append(Float.toString(fnum));
+ super.append(fnum);
+ return this;
}
/**
@@ -566,9 +472,26 @@ public final class StringBuffer
* @return this <code>StringBuffer</code>
* @see String#valueOf(double)
*/
- public StringBuffer append(double dnum)
+ public synchronized StringBuffer append(double dnum)
+ {
+ super.append(dnum);
+ return this;
+ }
+
+ /**
+ * Append the code point to this <code>StringBuffer</code>.
+ * This is like #append(char), but will append two characters
+ * if a supplementary code point is given.
+ *
+ * @param code the code point to append
+ * @return this <code>StringBuffer</code>
+ * @see Character#toChars(int, char[], int)
+ * @since 1.5
+ */
+ public synchronized StringBuffer appendCodePoint(int code)
{
- return append(Double.toString(dnum));
+ super.appendCodePoint(code);
+ return this;
}
/**
@@ -584,15 +507,8 @@ public final class StringBuffer
*/
public synchronized StringBuffer delete(int start, int end)
{
- if (start < 0 || start > count || start > end)
- throw new StringIndexOutOfBoundsException(start);
- if (end > count)
- end = count;
// This will unshare if required.
- ensureCapacity_unsynchronized(count);
- if (count - end != 0)
- System.arraycopy(value, end, value, start, count - end);
- count -= end - start;
+ super.delete(start, end);
return this;
}
@@ -604,9 +520,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if index is out of bounds
* @since 1.2
*/
- public StringBuffer deleteCharAt(int index)
+ public synchronized StringBuffer deleteCharAt(int index)
{
- return delete(index, index + 1);
+ super.deleteCharAt(index);
+ return this;
}
/**
@@ -625,19 +542,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer replace(int start, int end, String str)
{
- if (start < 0 || start > count || start > end)
- throw new StringIndexOutOfBoundsException(start);
-
- int len = str.count;
- // Calculate the difference in 'count' after the replace.
- int delta = len - (end > count ? count : end) + start;
- ensureCapacity_unsynchronized(count + delta);
-
- if (delta != 0 && end < count)
- System.arraycopy(value, end, value, end + delta, count - end);
-
- str.getChars(0, len, value, start);
- count += delta;
+ super.replace(start, end, str);
return this;
}
@@ -717,13 +622,7 @@ public final class StringBuffer
public synchronized StringBuffer insert(int offset,
char[] str, int str_offset, int len)
{
- if (offset < 0 || offset > count || len < 0
- || str_offset < 0 || str_offset > str.length - len)
- throw new StringIndexOutOfBoundsException();
- ensureCapacity_unsynchronized(count + len);
- System.arraycopy(value, offset, value, offset + len, count - offset);
- System.arraycopy(str, str_offset, value, offset, len);
- count += len;
+ super.insert(offset, str, str_offset, len);
return this;
}
@@ -738,9 +637,10 @@ public final class StringBuffer
* @exception StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(Object)
*/
- public StringBuffer insert(int offset, Object obj)
+ public synchronized StringBuffer insert(int offset, Object obj)
{
- return insert(offset, obj == null ? "null" : obj.toString());
+ super.insert(offset, obj);
+ return this;
}
/**
@@ -755,15 +655,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer insert(int offset, String str)
{
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException(offset);
- if (str == null)
- str = "null";
- int len = str.count;
- ensureCapacity_unsynchronized(count + len);
- System.arraycopy(value, offset, value, offset + len, count - offset);
- str.getChars(0, len, value, offset);
- count += len;
+ super.insert(offset, str);
return this;
}
@@ -780,9 +672,8 @@ public final class StringBuffer
*/
public synchronized StringBuffer insert(int offset, CharSequence sequence)
{
- if (sequence == null)
- sequence = "null";
- return insert(offset, sequence, 0, sequence.length());
+ super.insert(offset, sequence);
+ return this;
}
/**
@@ -802,16 +693,7 @@ public final class StringBuffer
public synchronized StringBuffer insert(int offset, CharSequence sequence,
int start, int end)
{
- if (sequence == null)
- sequence = "null";
- if (start < 0 || end < 0 || start > end || end > sequence.length())
- throw new IndexOutOfBoundsException();
- int len = end - start;
- ensureCapacity_unsynchronized(count + len);
- System.arraycopy(value, offset, value, offset + len, count - offset);
- for (int i = start; i < end; ++i)
- value[offset++] = sequence.charAt(i);
- count += len;
+ super.insert(offset, sequence, start, end);
return this;
}
@@ -826,9 +708,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see #insert(int, char[], int, int)
*/
- public StringBuffer insert(int offset, char[] data)
+ public synchronized StringBuffer insert(int offset, char[] data)
{
- return insert(offset, data, 0, data.length);
+ super.insert(offset, data, 0, data.length);
+ return this;
}
/**
@@ -842,9 +725,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(boolean)
*/
- public StringBuffer insert(int offset, boolean bool)
+ public synchronized StringBuffer insert(int offset, boolean bool)
{
- return insert(offset, bool ? "true" : "false");
+ super.insert(offset, bool);
+ return this;
}
/**
@@ -857,12 +741,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer insert(int offset, char ch)
{
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException(offset);
- ensureCapacity_unsynchronized(count + 1);
- System.arraycopy(value, offset, value, offset + 1, count - offset);
- value[offset] = ch;
- count++;
+ super.insert(offset, ch);
return this;
}
@@ -877,9 +756,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(int)
*/
- public StringBuffer insert(int offset, int inum)
+ public synchronized StringBuffer insert(int offset, int inum)
{
- return insert(offset, String.valueOf(inum));
+ super.insert(offset, inum);
+ return this;
}
/**
@@ -893,9 +773,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(long)
*/
- public StringBuffer insert(int offset, long lnum)
+ public synchronized StringBuffer insert(int offset, long lnum)
{
- return insert(offset, Long.toString(lnum, 10));
+ super.insert(offset, lnum);
+ return this;
}
/**
@@ -909,9 +790,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(float)
*/
- public StringBuffer insert(int offset, float fnum)
+ public synchronized StringBuffer insert(int offset, float fnum)
{
- return insert(offset, Float.toString(fnum));
+ super.insert(offset, fnum);
+ return this;
}
/**
@@ -925,9 +807,10 @@ public final class StringBuffer
* @throws StringIndexOutOfBoundsException if offset is out of bounds
* @see String#valueOf(double)
*/
- public StringBuffer insert(int offset, double dnum)
+ public synchronized StringBuffer insert(int offset, double dnum)
{
- return insert(offset, Double.toString(dnum));
+ super.insert(offset, dnum);
+ return this;
}
/**
@@ -939,9 +822,9 @@ public final class StringBuffer
* @see #indexOf(String, int)
* @since 1.4
*/
- public int indexOf(String str)
+ public synchronized int indexOf(String str)
{
- return indexOf(str, 0);
+ return super.indexOf(str, 0);
}
/**
@@ -958,13 +841,7 @@ public final class StringBuffer
*/
public synchronized int indexOf(String str, int fromIndex)
{
- if (fromIndex < 0)
- fromIndex = 0;
- int limit = count - str.count;
- for ( ; fromIndex <= limit; fromIndex++)
- if (regionMatches(fromIndex, str))
- return fromIndex;
- return -1;
+ return super.indexOf(str, fromIndex);
}
/**
@@ -976,9 +853,9 @@ public final class StringBuffer
* @see #lastIndexOf(String, int)
* @since 1.4
*/
- public int lastIndexOf(String str)
+ public synchronized int lastIndexOf(String str)
{
- return lastIndexOf(str, count - str.count);
+ return super.lastIndexOf(str, count - str.count);
}
/**
@@ -995,11 +872,7 @@ public final class StringBuffer
*/
public synchronized int lastIndexOf(String str, int fromIndex)
{
- fromIndex = Math.min(fromIndex, count - str.count);
- for ( ; fromIndex >= 0; fromIndex--)
- if (regionMatches(fromIndex, str))
- return fromIndex;
- return -1;
+ return super.lastIndexOf(str, fromIndex);
}
/**
@@ -1010,14 +883,7 @@ public final class StringBuffer
*/
public synchronized StringBuffer reverse()
{
- // Call ensureCapacity to enforce copy-on-write.
- ensureCapacity_unsynchronized(count);
- for (int i = count >> 1, j = count - i; --i >= 0; ++j)
- {
- char c = value[i];
- value[i] = value[j];
- value[j] = c;
- }
+ super.reverse();
return this;
}
@@ -1044,19 +910,7 @@ public final class StringBuffer
*/
public synchronized void trimToSize()
{
- int wouldSave = value.length - count;
- // Some random heuristics: if we save less than 20 characters, who
- // cares.
- if (wouldSave < 20)
- return;
- // If we save more than 200 characters, shrink.
- // If we save more than 1/4 of the buffer, shrink.
- if (wouldSave > 200 || wouldSave * 4 > value.length)
- {
- char[] newValue = new char[count];
- System.arraycopy(value, 0, newValue, 0, count);
- value = newValue;
- }
+ super.trimToSize();
}
/**
@@ -1073,31 +927,7 @@ public final class StringBuffer
*/
public synchronized int codePointCount(int start, int end)
{
- if (start < 0 || end >= count || start > end)
- throw new StringIndexOutOfBoundsException();
-
- int count = 0;
- while (start < end)
- {
- char base = value[start];
- if (base < Character.MIN_HIGH_SURROGATE
- || base > Character.MAX_HIGH_SURROGATE
- || start == end
- || start == count
- || value[start + 1] < Character.MIN_LOW_SURROGATE
- || value[start + 1] > Character.MAX_LOW_SURROGATE)
- {
- // Nothing.
- }
- else
- {
- // Surrogate pair.
- ++start;
- }
- ++start;
- ++count;
- }
- return count;
+ return super.codePointCount(start, end);
}
/**
@@ -1113,26 +943,7 @@ public final class StringBuffer
*/
public synchronized int offsetByCodePoints(int start, int codePoints)
{
- while (codePoints > 0)
- {
- char base = value[start];
- if (base < Character.MIN_HIGH_SURROGATE
- || base > Character.MAX_HIGH_SURROGATE
- || start == count
- || value[start + 1] < Character.MIN_LOW_SURROGATE
- || value[start + 1] > Character.MAX_LOW_SURROGATE)
- {
- // Nothing.
- }
- else
- {
- // Surrogate pair.
- ++start;
- }
- ++start;
- --codePoints;
- }
- return start;
+ return super.offsetByCodePoints(start, codePoints);
}
/**
@@ -1144,7 +955,7 @@ public final class StringBuffer
* @param minimumCapacity the minimum capacity
* @see #ensureCapacity(int)
*/
- private void ensureCapacity_unsynchronized(int minimumCapacity)
+ void ensureCapacity_unsynchronized(int minimumCapacity)
{
if (shared || minimumCapacity > value.length)
{
@@ -1162,19 +973,4 @@ public final class StringBuffer
}
}
- /**
- * Predicate which determines if a substring of this matches another String
- * starting at a specified offset for each String and continuing for a
- * specified length. This is more efficient than creating a String to call
- * indexOf on.
- *
- * @param toffset index to start comparison at for this String
- * @param other non-null String to compare to region of this
- * @return true if regions match, false otherwise
- * @see #indexOf(String, int)
- * @see #lastIndexOf(String, int)
- * @see String#regionMatches(boolean, int, String, int, int)
- */
- // GCJ LOCAL: native for gcj.
- private native boolean regionMatches(int toffset, String other);
}
diff --git a/libjava/java/lang/StringBuilder.h b/libjava/java/lang/StringBuilder.h
index b8b504a..c8b952a 100644
--- a/libjava/java/lang/StringBuilder.h
+++ b/libjava/java/lang/StringBuilder.h
@@ -6,11 +6,11 @@
#pragma interface
-#include <java/lang/Object.h>
+#include <java/lang/AbstractStringBuffer.h>
#include <gcj/array.h>
-class java::lang::StringBuilder : public ::java::lang::Object
+class java::lang::StringBuilder : public ::java::lang::AbstractStringBuffer
{
public:
@@ -20,66 +20,75 @@ public:
StringBuilder(::java::lang::CharSequence *);
jint length();
jint capacity();
- void ensureCapacity(jint);
- void setLength(jint);
- jchar charAt(jint);
- void getChars(jint, jint, JArray< jchar > *, jint);
- void setCharAt(jint, jchar);
- ::java::lang::StringBuilder * append(::java::lang::Object *);
- ::java::lang::StringBuilder * append(::java::lang::String *);
- ::java::lang::StringBuilder * append(::java::lang::StringBuffer *);
- ::java::lang::StringBuilder * append(JArray< jchar > *);
- ::java::lang::StringBuilder * append(JArray< jchar > *, jint, jint);
- ::java::lang::StringBuilder * append(jboolean);
+ ::java::lang::StringBuilder * StringBuilder$append(::java::lang::Object *);
+ ::java::lang::StringBuilder * StringBuilder$append(::java::lang::String *);
+ ::java::lang::StringBuilder * StringBuilder$append(::java::lang::StringBuffer *);
+ ::java::lang::StringBuilder * StringBuilder$append(JArray< jchar > *);
+ ::java::lang::StringBuilder * StringBuilder$append(JArray< jchar > *, jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$append(jboolean);
::java::lang::StringBuilder * StringBuilder$append(jchar);
::java::lang::StringBuilder * StringBuilder$append(::java::lang::CharSequence *);
::java::lang::StringBuilder * StringBuilder$append(::java::lang::CharSequence *, jint, jint);
- ::java::lang::StringBuilder * appendCodePoint(jint);
- ::java::lang::StringBuilder * append(jint);
- ::java::lang::StringBuilder * append(jlong);
- ::java::lang::StringBuilder * append(jfloat);
- ::java::lang::StringBuilder * append(jdouble);
- ::java::lang::StringBuilder * delete$(jint, jint);
- ::java::lang::StringBuilder * deleteCharAt(jint);
- ::java::lang::StringBuilder * replace(jint, jint, ::java::lang::String *);
+ ::java::lang::StringBuilder * StringBuilder$append(jint);
+ ::java::lang::StringBuilder * StringBuilder$append(jlong);
+ ::java::lang::StringBuilder * StringBuilder$append(jfloat);
+ ::java::lang::StringBuilder * StringBuilder$append(jdouble);
+ ::java::lang::StringBuilder * StringBuilder$appendCodePoint(jint);
+ ::java::lang::StringBuilder * StringBuilder$delete(jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$deleteCharAt(jint);
+ ::java::lang::StringBuilder * StringBuilder$replace(jint, jint, ::java::lang::String *);
::java::lang::String * substring(jint);
::java::lang::CharSequence * subSequence(jint, jint);
::java::lang::String * substring(jint, jint);
- ::java::lang::StringBuilder * insert(jint, JArray< jchar > *, jint, jint);
- ::java::lang::StringBuilder * insert(jint, ::java::lang::Object *);
- ::java::lang::StringBuilder * insert(jint, ::java::lang::String *);
- ::java::lang::StringBuilder * insert(jint, ::java::lang::CharSequence *);
- ::java::lang::StringBuilder * insert(jint, ::java::lang::CharSequence *, jint, jint);
- ::java::lang::StringBuilder * insert(jint, JArray< jchar > *);
- ::java::lang::StringBuilder * insert(jint, jboolean);
- ::java::lang::StringBuilder * insert(jint, jchar);
- ::java::lang::StringBuilder * insert(jint, jint);
- ::java::lang::StringBuilder * insert(jint, jlong);
- ::java::lang::StringBuilder * insert(jint, jfloat);
- ::java::lang::StringBuilder * insert(jint, jdouble);
- jint indexOf(::java::lang::String *);
- jint indexOf(::java::lang::String *, jint);
- jint lastIndexOf(::java::lang::String *);
- jint lastIndexOf(::java::lang::String *, jint);
- ::java::lang::StringBuilder * reverse();
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, JArray< jchar > *, jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::Object *);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::String *);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::CharSequence *);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, ::java::lang::CharSequence *, jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, JArray< jchar > *);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jboolean);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jchar);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jint);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jlong);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jfloat);
+ ::java::lang::StringBuilder * StringBuilder$insert(jint, jdouble);
+ ::java::lang::StringBuilder * StringBuilder$reverse();
::java::lang::String * toString();
-private:
- jboolean regionMatches(jint, ::java::lang::String *);
-public:
- jint codePointAt(jint);
- jint codePointBefore(jint);
- jint codePointCount(jint, jint);
- void trimToSize();
+ ::java::lang::AbstractStringBuffer * reverse();
+ ::java::lang::AbstractStringBuffer * deleteCharAt(jint);
+ ::java::lang::AbstractStringBuffer * replace(jint, jint, ::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * delete$(jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, jdouble);
+ ::java::lang::AbstractStringBuffer * insert(jint, jfloat);
+ ::java::lang::AbstractStringBuffer * insert(jint, jlong);
+ ::java::lang::AbstractStringBuffer * insert(jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, jchar);
+ ::java::lang::AbstractStringBuffer * insert(jint, jboolean);
+ ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *, jint, jint);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::CharSequence *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * insert(jint, ::java::lang::Object *);
+ ::java::lang::AbstractStringBuffer * insert(jint, JArray< jchar > *, jint, jint);
+ ::java::lang::AbstractStringBuffer * append(jdouble);
+ ::java::lang::AbstractStringBuffer * append(jfloat);
+ ::java::lang::AbstractStringBuffer * append(jlong);
+ ::java::lang::AbstractStringBuffer * append(jint);
::java::lang::Appendable * append(::java::lang::CharSequence *, jint, jint);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *, jint, jint);
::java::lang::Appendable * append(::java::lang::CharSequence *);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(::java::lang::CharSequence *);
::java::lang::Appendable * append(jchar);
+ ::java::lang::AbstractStringBuffer * AbstractStringBuffer$append(jchar);
+ ::java::lang::AbstractStringBuffer * append(jboolean);
+ ::java::lang::AbstractStringBuffer * append(JArray< jchar > *, jint, jint);
+ ::java::lang::AbstractStringBuffer * append(JArray< jchar > *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::StringBuffer *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::String *);
+ ::java::lang::AbstractStringBuffer * append(::java::lang::Object *);
+ ::java::lang::AbstractStringBuffer * appendCodePoint(jint);
private:
static const jlong serialVersionUID = 4383685877147921099LL;
-public: // actually package-private
- jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) count;
- JArray< jchar > * value;
-private:
- static const jint DEFAULT_CAPACITY = 16;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/java/lang/StringBuilder.java b/libjava/java/lang/StringBuilder.java
index 55a49e6..aefe927 100644
--- a/libjava/java/lang/StringBuilder.java
+++ b/libjava/java/lang/StringBuilder.java
@@ -1,5 +1,5 @@
/* StringBuilder.java -- Unsynchronized growable strings
- Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007
+ Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2008
Free Software Foundation, Inc.
This file is part of GNU Classpath.
@@ -75,6 +75,7 @@ import java.io.Serializable;
* @since 1.5
*/
public final class StringBuilder
+ extends AbstractStringBuffer
implements Serializable, CharSequence, Appendable
{
// Implementation note: if you change this class, you usually will
@@ -86,33 +87,11 @@ public final class StringBuilder
private static final long serialVersionUID = 4383685877147921099L;
/**
- * Index of next available character (and thus the size of the current
- * string contents). Note that this has permissions set this way so that
- * String can get the value.
- *
- * @serial the number of characters in the buffer
- */
- int count;
-
- /**
- * The buffer. Note that this has permissions set this way so that String
- * can get the value.
- *
- * @serial the buffer
- */
- char[] value;
-
- /**
- * The default capacity of a buffer.
- */
- private static final int DEFAULT_CAPACITY = 16;
-
- /**
* Create a new StringBuilder with default capacity 16.
*/
public StringBuilder()
{
- this(DEFAULT_CAPACITY);
+ super();
}
/**
@@ -124,7 +103,7 @@ public final class StringBuilder
*/
public StringBuilder(int capacity)
{
- value = new char[capacity];
+ super(capacity);
}
/**
@@ -137,10 +116,7 @@ public final class StringBuilder
*/
public StringBuilder(String str)
{
- // Unfortunately, because the size is 16 larger, we cannot share.
- count = str.count;
- value = new char[count + DEFAULT_CAPACITY];
- str.getChars(0, count, value, 0);
+ super(str);
}
/**
@@ -154,11 +130,7 @@ public final class StringBuilder
*/
public StringBuilder(CharSequence seq)
{
- int len = seq.length();
- count = len <= 0 ? 0 : len;
- value = new char[count + DEFAULT_CAPACITY];
- for (int i = 0; i < len; ++i)
- value[i] = seq.charAt(i);
+ super(seq);
}
/**
@@ -189,122 +161,6 @@ public final class StringBuilder
}
/**
- * Increase the capacity of this <code>StringBuilder</code>. This will
- * ensure that an expensive growing operation will not occur until
- * <code>minimumCapacity</code> is reached. The buffer is grown to the
- * larger of <code>minimumCapacity</code> and
- * <code>capacity() * 2 + 2</code>, if it is not already large enough.
- *
- * @param minimumCapacity the new capacity
- * @see #capacity()
- */
- public void ensureCapacity(int minimumCapacity)
- {
- if (minimumCapacity > value.length)
- {
- int max = value.length * 2 + 2;
- minimumCapacity = (minimumCapacity < max ? max : minimumCapacity);
- char[] nb = new char[minimumCapacity];
- System.arraycopy(value, 0, nb, 0, count);
- value = nb;
- }
- }
-
- /**
- * Set the length of this StringBuilder. If the new length is greater than
- * the current length, all the new characters are set to '\0'. If the new
- * length is less than the current length, the first <code>newLength</code>
- * characters of the old array will be preserved, and the remaining
- * characters are truncated.
- *
- * @param newLength the new length
- * @throws IndexOutOfBoundsException if the new length is negative
- * (while unspecified, this is a StringIndexOutOfBoundsException)
- * @see #length()
- */
- public void setLength(int newLength)
- {
- if (newLength < 0)
- throw new StringIndexOutOfBoundsException(newLength);
-
- int valueLength = value.length;
-
- /* Always call ensureCapacity in order to preserve copy-on-write
- semantics. */
- ensureCapacity(newLength);
-
- if (newLength < valueLength)
- {
- /* If the StringBuilder's value just grew, then we know that
- value is newly allocated and the region between count and
- newLength is filled with '\0'. */
- count = newLength;
- }
- else
- {
- /* The StringBuilder's value doesn't need to grow. However,
- we should clear out any cruft that may exist. */
- while (count < newLength)
- value[count++] = '\0';
- }
- }
-
- /**
- * Get the character at the specified index.
- *
- * @param index the index of the character to get, starting at 0
- * @return the character at the specified index
- * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
- * (while unspecified, this is a StringIndexOutOfBoundsException)
- */
- public char charAt(int index)
- {
- if (index < 0 || index >= count)
- throw new StringIndexOutOfBoundsException(index);
- return value[index];
- }
-
- /**
- * Get the specified array of characters. <code>srcOffset - srcEnd</code>
- * characters will be copied into the array you pass in.
- *
- * @param srcOffset the index to start copying from (inclusive)
- * @param srcEnd the index to stop copying from (exclusive)
- * @param dst the array to copy into
- * @param dstOffset the index to start copying into
- * @throws NullPointerException if dst is null
- * @throws IndexOutOfBoundsException if any source or target indices are
- * out of range (while unspecified, source problems cause a
- * StringIndexOutOfBoundsException, and dest problems cause an
- * ArrayIndexOutOfBoundsException)
- * @see System#arraycopy(Object, int, Object, int, int)
- */
- public void getChars(int srcOffset, int srcEnd,
- char[] dst, int dstOffset)
- {
- if (srcOffset < 0 || srcEnd > count || srcEnd < srcOffset)
- throw new StringIndexOutOfBoundsException();
- System.arraycopy(value, srcOffset, dst, dstOffset, srcEnd - srcOffset);
- }
-
- /**
- * Set the character at the specified index.
- *
- * @param index the index of the character to set starting at 0
- * @param ch the value to set that character to
- * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
- * (while unspecified, this is a StringIndexOutOfBoundsException)
- */
- public void setCharAt(int index, char ch)
- {
- if (index < 0 || index >= count)
- throw new StringIndexOutOfBoundsException(index);
- // Call ensureCapacity to enforce copy-on-write.
- ensureCapacity(count);
- value[index] = ch;
- }
-
- /**
* Append the <code>String</code> value of the argument to this
* <code>StringBuilder</code>. Uses <code>String.valueOf()</code> to convert
* to <code>String</code>.
@@ -316,7 +172,8 @@ public final class StringBuilder
*/
public StringBuilder append(Object obj)
{
- return append(obj == null ? "null" : obj.toString());
+ super.append(obj);
+ return this;
}
/**
@@ -328,12 +185,7 @@ public final class StringBuilder
*/
public StringBuilder append(String str)
{
- if (str == null)
- str = "null";
- int len = str.count;
- ensureCapacity(count + len);
- str.getChars(0, len, value, count);
- count += len;
+ super.append(str);
return this;
}
@@ -348,15 +200,7 @@ public final class StringBuilder
*/
public StringBuilder append(StringBuffer stringBuffer)
{
- if (stringBuffer == null)
- return append("null");
- synchronized (stringBuffer)
- {
- int len = stringBuffer.count;
- ensureCapacity(count + len);
- System.arraycopy(stringBuffer.value, 0, value, count, len);
- count += len;
- }
+ super.append(stringBuffer);
return this;
}
@@ -372,7 +216,8 @@ public final class StringBuilder
*/
public StringBuilder append(char[] data)
{
- return append(data, 0, data.length);
+ super.append(data, 0, data.length);
+ return this;
}
/**
@@ -391,11 +236,7 @@ public final class StringBuilder
*/
public StringBuilder append(char[] data, int offset, int count)
{
- if (offset < 0 || count < 0 || offset > data.length - count)
- throw new StringIndexOutOfBoundsException();
- ensureCapacity(this.count + count);
- System.arraycopy(data, offset, value, this.count, count);
- this.count += count;
+ super.append(data, offset, count);
return this;
}
@@ -410,7 +251,8 @@ public final class StringBuilder
*/
public StringBuilder append(boolean bool)
{
- return append(bool ? "true" : "false");
+ super.append(bool);
+ return this;
}
/**
@@ -421,8 +263,7 @@ public final class StringBuilder
*/
public StringBuilder append(char ch)
{
- ensureCapacity(count + 1);
- value[count++] = ch;
+ super.append(ch);
return this;
}
@@ -435,7 +276,8 @@ public final class StringBuilder
*/
public StringBuilder append(CharSequence seq)
{
- return append(seq, 0, seq.length());
+ super.append(seq, 0, seq.length());
+ return this;
}
/**
@@ -451,33 +293,7 @@ public final class StringBuilder
public StringBuilder append(CharSequence seq, int start,
int end)
{
- if (seq == null)
- return append("null");
- if (end - start > 0)
- {
- ensureCapacity(count + end - start);
- for (; start < end; ++start)
- value[count++] = seq.charAt(start);
- }
- return this;
- }
-
- /**
- * Append the code point to this <code>StringBuilder</code>.
- * This is like #append(char), but will append two characters
- * if a supplementary code point is given.
- *
- * @param code the code point to append
- * @return this <code>StringBuilder</code>
- * @see Character#toChars(int, char[], int)
- * @since 1.5
- */
- public synchronized StringBuilder appendCodePoint(int code)
- {
- int len = Character.charCount(code);
- ensureCapacity(count + len);
- Character.toChars(code, value, count);
- count += len;
+ super.append(seq, start, end);
return this;
}
@@ -490,10 +306,11 @@ public final class StringBuilder
* @return this <code>StringBuilder</code>
* @see String#valueOf(int)
*/
- // FIXME: this is native in libgcj in StringBuffer.
+ // This is native in libgcj, for efficiency.
public StringBuilder append(int inum)
{
- return append(String.valueOf(inum));
+ super.append(inum);
+ return this;
}
/**
@@ -507,7 +324,8 @@ public final class StringBuilder
*/
public StringBuilder append(long lnum)
{
- return append(Long.toString(lnum, 10));
+ super.append(lnum);
+ return this;
}
/**
@@ -521,7 +339,8 @@ public final class StringBuilder
*/
public StringBuilder append(float fnum)
{
- return append(Float.toString(fnum));
+ super.append(fnum);
+ return this;
}
/**
@@ -535,7 +354,24 @@ public final class StringBuilder
*/
public StringBuilder append(double dnum)
{
- return append(Double.toString(dnum));
+ super.append(dnum);
+ return this;
+ }
+
+ /**
+ * Append the code point to this <code>StringBuilder</code>.
+ * This is like #append(char), but will append two characters
+ * if a supplementary code point is given.
+ *
+ * @param code the code point to append
+ * @return this <code>StringBuilder</code>
+ * @see Character#toChars(int, char[], int)
+ * @since 1.5
+ */
+ public StringBuilder appendCodePoint(int code)
+ {
+ super.appendCodePoint(code);
+ return this;
}
/**
@@ -550,15 +386,7 @@ public final class StringBuilder
*/
public StringBuilder delete(int start, int end)
{
- if (start < 0 || start > count || start > end)
- throw new StringIndexOutOfBoundsException(start);
- if (end > count)
- end = count;
- // This will unshare if required.
- ensureCapacity(count);
- if (count - end != 0)
- System.arraycopy(value, end, value, start, count - end);
- count -= end - start;
+ super.delete(start, end);
return this;
}
@@ -571,7 +399,8 @@ public final class StringBuilder
*/
public StringBuilder deleteCharAt(int index)
{
- return delete(index, index + 1);
+ super.deleteCharAt(index);
+ return this;
}
/**
@@ -589,19 +418,7 @@ public final class StringBuilder
*/
public StringBuilder replace(int start, int end, String str)
{
- if (start < 0 || start > count || start > end)
- throw new StringIndexOutOfBoundsException(start);
-
- int len = str.count;
- // Calculate the difference in 'count' after the replace.
- int delta = len - (end > count ? count : end) + start;
- ensureCapacity(count + delta);
-
- if (delta != 0 && end < count)
- System.arraycopy(value, end, value, end + delta, count - end);
-
- str.getChars(0, len, value, start);
- count += delta;
+ super.replace(start, end, str);
return this;
}
@@ -672,13 +489,7 @@ public final class StringBuilder
public StringBuilder insert(int offset,
char[] str, int str_offset, int len)
{
- if (offset < 0 || offset > count || len < 0
- || str_offset < 0 || str_offset > str.length - len)
- throw new StringIndexOutOfBoundsException();
- ensureCapacity(count + len);
- System.arraycopy(value, offset, value, offset + len, count - offset);
- System.arraycopy(str, str_offset, value, offset, len);
- count += len;
+ super.insert(offset, str, str_offset, len);
return this;
}
@@ -695,7 +506,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, Object obj)
{
- return insert(offset, obj == null ? "null" : obj.toString());
+ super.insert(offset, obj);
+ return this;
}
/**
@@ -710,15 +522,7 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, String str)
{
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException(offset);
- if (str == null)
- str = "null";
- int len = str.count;
- ensureCapacity(count + len);
- System.arraycopy(value, offset, value, offset + len, count - offset);
- str.getChars(0, len, value, offset);
- count += len;
+ super.insert(offset, str);
return this;
}
@@ -732,11 +536,10 @@ public final class StringBuilder
* @return this <code>StringBuilder</code>
* @throws IndexOutOfBoundsException if offset is out of bounds
*/
- public synchronized StringBuilder insert(int offset, CharSequence sequence)
+ public StringBuilder insert(int offset, CharSequence sequence)
{
- if (sequence == null)
- sequence = "null";
- return insert(offset, sequence, 0, sequence.length());
+ super.insert(offset, sequence);
+ return this;
}
/**
@@ -752,19 +555,10 @@ public final class StringBuilder
* @throws IndexOutOfBoundsException if offset, start,
* or end are out of bounds
*/
- public synchronized StringBuilder insert(int offset, CharSequence sequence,
- int start, int end)
+ public StringBuilder insert(int offset, CharSequence sequence,
+ int start, int end)
{
- if (sequence == null)
- sequence = "null";
- if (start < 0 || end < 0 || start > end || end > sequence.length())
- throw new IndexOutOfBoundsException();
- int len = end - start;
- ensureCapacity(count + len);
- System.arraycopy(value, offset, value, offset + len, count - offset);
- for (int i = start; i < end; ++i)
- value[offset++] = sequence.charAt(i);
- count += len;
+ super.insert(offset, sequence, start, end);
return this;
}
@@ -781,7 +575,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, char[] data)
{
- return insert(offset, data, 0, data.length);
+ super.insert(offset, data);
+ return this;
}
/**
@@ -797,7 +592,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, boolean bool)
{
- return insert(offset, bool ? "true" : "false");
+ super.insert(offset, bool);
+ return this;
}
/**
@@ -810,12 +606,7 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, char ch)
{
- if (offset < 0 || offset > count)
- throw new StringIndexOutOfBoundsException(offset);
- ensureCapacity(count + 1);
- System.arraycopy(value, offset, value, offset + 1, count - offset);
- value[offset] = ch;
- count++;
+ super.insert(offset, ch);
return this;
}
@@ -832,7 +623,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, int inum)
{
- return insert(offset, String.valueOf(inum));
+ super.insert(offset, inum);
+ return this;
}
/**
@@ -848,7 +640,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, long lnum)
{
- return insert(offset, Long.toString(lnum, 10));
+ super.insert(offset, lnum);
+ return this;
}
/**
@@ -864,7 +657,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, float fnum)
{
- return insert(offset, Float.toString(fnum));
+ super.insert(offset, fnum);
+ return this;
}
/**
@@ -880,75 +674,8 @@ public final class StringBuilder
*/
public StringBuilder insert(int offset, double dnum)
{
- return insert(offset, Double.toString(dnum));
- }
-
- /**
- * Finds the first instance of a substring in this StringBuilder.
- *
- * @param str String to find
- * @return location (base 0) of the String, or -1 if not found
- * @throws NullPointerException if str is null
- * @see #indexOf(String, int)
- */
- public int indexOf(String str)
- {
- return indexOf(str, 0);
- }
-
- /**
- * Finds the first instance of a String in this StringBuilder, starting at
- * a given index. If starting index is less than 0, the search starts at
- * the beginning of this String. If the starting index is greater than the
- * length of this String, or the substring is not found, -1 is returned.
- *
- * @param str String to find
- * @param fromIndex index to start the search
- * @return location (base 0) of the String, or -1 if not found
- * @throws NullPointerException if str is null
- */
- public int indexOf(String str, int fromIndex)
- {
- if (fromIndex < 0)
- fromIndex = 0;
- int limit = count - str.count;
- for ( ; fromIndex <= limit; fromIndex++)
- if (regionMatches(fromIndex, str))
- return fromIndex;
- return -1;
- }
-
- /**
- * Finds the last instance of a substring in this StringBuilder.
- *
- * @param str String to find
- * @return location (base 0) of the String, or -1 if not found
- * @throws NullPointerException if str is null
- * @see #lastIndexOf(String, int)
- */
- public int lastIndexOf(String str)
- {
- return lastIndexOf(str, count - str.count);
- }
-
- /**
- * Finds the last instance of a String in this StringBuilder, starting at a
- * given index. If starting index is greater than the maximum valid index,
- * then the search begins at the end of this String. If the starting index
- * is less than zero, or the substring is not found, -1 is returned.
- *
- * @param str String to find
- * @param fromIndex index to start the search
- * @return location (base 0) of the String, or -1 if not found
- * @throws NullPointerException if str is null
- */
- public int lastIndexOf(String str, int fromIndex)
- {
- fromIndex = Math.min(fromIndex, count - str.count);
- for ( ; fromIndex >= 0; fromIndex--)
- if (regionMatches(fromIndex, str))
- return fromIndex;
- return -1;
+ super.insert(offset, dnum);
+ return this;
}
/**
@@ -959,14 +686,7 @@ public final class StringBuilder
*/
public StringBuilder reverse()
{
- // Call ensureCapacity to enforce copy-on-write.
- ensureCapacity(count);
- for (int i = count >> 1, j = count - i; --i >= 0; ++j)
- {
- char c = value[i];
- value[i] = value[j];
- value[j] = c;
- }
+ super.reverse();
return this;
}
@@ -983,80 +703,4 @@ public final class StringBuilder
return new String(this);
}
- /**
- * Predicate which determines if a substring of this matches another String
- * starting at a specified offset for each String and continuing for a
- * specified length. This is more efficient than creating a String to call
- * indexOf on.
- *
- * @param toffset index to start comparison at for this String
- * @param other non-null String to compare to region of this
- * @return true if regions match, false otherwise
- * @see #indexOf(String, int)
- * @see #lastIndexOf(String, int)
- * @see String#regionMatches(boolean, int, String, int, int)
- */
- // GCJ LOCAL: Native to access String internals properly.
- private native boolean regionMatches(int toffset, String other);
-
- /**
- * Get the code point at the specified index. This is like #charAt(int),
- * but if the character is the start of a surrogate pair, and the
- * following character completes the pair, then the corresponding
- * supplementary code point is returned.
- * @param index the index of the codepoint to get, starting at 0
- * @return the codepoint at the specified index
- * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
- * @since 1.5
- */
- public int codePointAt(int index)
- {
- return Character.codePointAt(value, index, count);
- }
-
- /**
- * Get the code point before the specified index. This is like
- * #codePointAt(int), but checks the characters at <code>index-1</code> and
- * <code>index-2</code> to see if they form a supplementary code point.
- * @param index the index just past the codepoint to get, starting at 0
- * @return the codepoint at the specified index
- * @throws IndexOutOfBoundsException if index is negative or &gt;= length()
- * @since 1.5
- */
- public int codePointBefore(int index)
- {
- // Character.codePointBefore() doesn't perform this check. We
- // could use the CharSequence overload, but this is just as easy.
- if (index >= count)
- throw new IndexOutOfBoundsException();
- return Character.codePointBefore(value, index, 1);
- }
-
- /**
- * Returns the number of Unicode code points in the specified sub sequence.
- * Surrogate pairs count as one code point.
- * @param beginIndex the start of the subarray
- * @param endIndex the index after the last char in the subarray
- * @return the number of code points
- * @throws IndexOutOfBoundsException if beginIndex is less than zero or
- * greater than endIndex or if endIndex is greater than the length of this
- * StringBuilder
- */
- public int codePointCount(int beginIndex,int endIndex)
- {
- if (beginIndex < 0 || beginIndex > endIndex || endIndex > count)
- throw new IndexOutOfBoundsException("invalid indices: " + beginIndex
- + ", " + endIndex);
- return Character.codePointCount(value, beginIndex, endIndex - beginIndex);
- }
-
- public void trimToSize()
- {
- if (count < value.length)
- {
- char[] newValue = new char[count];
- System.arraycopy(value, 0, newValue, 0, count);
- value = newValue;
- }
- }
}
diff --git a/libjava/java/lang/Thread.h b/libjava/java/lang/Thread.h
index b9116b1..54764c8 100644
--- a/libjava/java/lang/Thread.h
+++ b/libjava/java/lang/Thread.h
@@ -18,13 +18,6 @@ extern "Java"
class RawData;
class RawDataManaged;
}
- namespace java
- {
- namespace util
- {
- class WeakIdentityHashMap;
- }
- }
}
}
@@ -100,7 +93,7 @@ private:
void initialize_native();
static ::java::lang::String * gen_name();
public: // actually package-private
- static ::java::util::Map * getThreadLocals();
+ static ::java::lang::ThreadLocalMap * getThreadLocals();
public:
virtual void setUncaughtExceptionHandler(::java::lang::Thread$UncaughtExceptionHandler *);
virtual ::java::lang::Thread$UncaughtExceptionHandler * getUncaughtExceptionHandler();
@@ -135,7 +128,7 @@ private:
static jlong totalThreadsCreated;
static ::java::lang::Thread$UncaughtExceptionHandler * defaultHandler;
public: // actually package-private
- ::gnu::java::util::WeakIdentityHashMap * locals;
+ ::java::lang::ThreadLocalMap * locals;
::java::lang::Thread$UncaughtExceptionHandler * exceptionHandler;
private:
::java::lang::Object * parkBlocker;
diff --git a/libjava/java/lang/Thread.java b/libjava/java/lang/Thread.java
index 1e1e860..8b6d4ba 100644
--- a/libjava/java/lang/Thread.java
+++ b/libjava/java/lang/Thread.java
@@ -160,7 +160,7 @@ public class Thread implements Runnable
/** Thread local storage. Package accessible for use by
* InheritableThreadLocal.
*/
- WeakIdentityHashMap locals;
+ ThreadLocalMap locals;
/** The uncaught exception handler. */
UncaughtExceptionHandler exceptionHandler;
@@ -431,6 +431,12 @@ public class Thread implements Runnable
this.threadId = nextThreadId++;
}
+ // Always create the ThreadLocalMap when creating a thread; the
+ // previous code did this lazily when getThreadLocals was called,
+ // but this is a divergence from Classpath's implementation of
+ // ThreadLocal.
+ this.locals = new ThreadLocalMap();
+
if (current != null)
{
group.checkAccess();
@@ -1019,14 +1025,11 @@ public class Thread implements Runnable
/**
* Returns the map used by ThreadLocal to store the thread local values.
*/
- static Map getThreadLocals()
+ static ThreadLocalMap getThreadLocals()
{
Thread thread = currentThread();
- Map locals = thread.locals;
- if (locals == null)
- {
- locals = thread.locals = new WeakIdentityHashMap();
- }
+ ThreadLocalMap locals = thread.locals;
+
return locals;
}
diff --git a/libjava/java/lang/ThreadLocal.h b/libjava/java/lang/ThreadLocal.h
index 4bea931..13e1f84 100644
--- a/libjava/java/lang/ThreadLocal.h
+++ b/libjava/java/lang/ThreadLocal.h
@@ -21,6 +21,7 @@ extern "Java"
class java::lang::ThreadLocal : public ::java::lang::Object
{
+ jint computeNextHash();
public:
ThreadLocal();
public: // actually protected
@@ -44,7 +45,11 @@ private:
public: // actually package-private
static ::java::lang::Object * sentinel;
private:
- ::gnu::gcj::RawData * __attribute__((aligned(__alignof__( ::java::lang::Object)))) TLSPointer;
+ static jint nextHashBase;
+public: // actually package-private
+ jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) fastHash;
+private:
+ ::gnu::gcj::RawData * TLSPointer;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/java/lang/ThreadLocal.java b/libjava/java/lang/ThreadLocal.java
index 6558c94..9223dba 100644
--- a/libjava/java/lang/ThreadLocal.java
+++ b/libjava/java/lang/ThreadLocal.java
@@ -96,11 +96,30 @@ public class ThreadLocal<T>
static final Object sentinel = new Object();
/**
+ * The base for the computation of the next hash for a thread local.
+ */
+ private static int nextHashBase = 1;
+
+ /**
+ * Allocate a new hash.
+ */
+ private synchronized int computeNextHash()
+ {
+ return nextHashBase++ * 6709;
+ }
+
+ /**
+ * Hash code computed for ThreadLocalMap
+ */
+ final int fastHash;
+
+ /**
* Creates a ThreadLocal object without associating any value to it yet.
*/
public ThreadLocal()
{
constructNative();
+ fastHash = computeNextHash();
}
/**
@@ -128,16 +147,16 @@ public class ThreadLocal<T>
private final Object internalGet()
{
- Map<ThreadLocal<T>,T> map = (Map<ThreadLocal<T>,T>) Thread.getThreadLocals();
+ ThreadLocalMap map = Thread.getThreadLocals();
// Note that we don't have to synchronize, as only this thread will
// ever modify the map.
- T value = map.get(this);
- if (value == null)
+ T value = (T) map.get(this);
+ if (value == sentinel)
{
value = initialValue();
- map.put(this, (T) (value == null ? sentinel : value));
+ map.set(this, value);
}
- return value == (T) sentinel ? null : value;
+ return value;
}
/**
@@ -152,10 +171,10 @@ public class ThreadLocal<T>
private final void internalSet(Object value)
{
- Map map = Thread.getThreadLocals();
+ ThreadLocalMap map = Thread.getThreadLocals();
// Note that we don't have to synchronize, as only this thread will
// ever modify the map.
- map.put(this, value == null ? sentinel : value);
+ map.set(this, value);
}
/**
@@ -167,7 +186,7 @@ public class ThreadLocal<T>
private final void internalRemove()
{
- Map map = Thread.getThreadLocals();
+ ThreadLocalMap map = Thread.getThreadLocals();
map.remove(this);
}
diff --git a/libjava/java/lang/ThreadLocalMap$Entry.h b/libjava/java/lang/ThreadLocalMap$Entry.h
new file mode 100644
index 0000000..51b4db9
--- /dev/null
+++ b/libjava/java/lang/ThreadLocalMap$Entry.h
@@ -0,0 +1,21 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ThreadLocalMap$Entry__
+#define __java_lang_ThreadLocalMap$Entry__
+
+#pragma interface
+
+#include <java/lang/ref/WeakReference.h>
+
+class java::lang::ThreadLocalMap$Entry : public ::java::lang::ref::WeakReference
+{
+
+public: // actually package-private
+ ThreadLocalMap$Entry(::java::lang::ThreadLocal *);
+ ::java::lang::Object * __attribute__((aligned(__alignof__( ::java::lang::ref::WeakReference)))) value;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ThreadLocalMap$Entry__
diff --git a/libjava/java/lang/ThreadLocalMap.h b/libjava/java/lang/ThreadLocalMap.h
new file mode 100644
index 0000000..3a1f107
--- /dev/null
+++ b/libjava/java/lang/ThreadLocalMap.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_lang_ThreadLocalMap__
+#define __java_lang_ThreadLocalMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+
+class java::lang::ThreadLocalMap : public ::java::lang::Object
+{
+
+public: // actually package-private
+ ThreadLocalMap();
+private:
+ void newEntryArray(jint);
+ void overflow();
+public:
+ ::java::lang::Object * get(::java::lang::ThreadLocal *);
+ void set(::java::lang::ThreadLocal *, ::java::lang::Object *);
+ void remove(::java::lang::ThreadLocal *);
+public: // actually package-private
+ void clear();
+public:
+ void inherit(::java::lang::ThreadLocalMap *);
+private:
+ static const jint LOG_INITIAL_SIZE = 3;
+ static jfloat MAX_OCCUPANCY;
+ static jfloat TARGET_OCCUPANCY;
+ static ::java::lang::ThreadLocalMap$Entry * deletedEntry;
+ JArray< ::java::lang::ThreadLocalMap$Entry * > * __attribute__((aligned(__alignof__( ::java::lang::Object)))) entries;
+ jint hashMask;
+ jint count;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_lang_ThreadLocalMap__
diff --git a/libjava/java/lang/Throwable.h b/libjava/java/lang/Throwable.h
index 097f9d2..2e7532c 100644
--- a/libjava/java/lang/Throwable.h
+++ b/libjava/java/lang/Throwable.h
@@ -9,6 +9,19 @@
#include <java/lang/Object.h>
#include <gcj/array.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+}
class java::lang::Throwable : public ::java::lang::Object
{
@@ -28,7 +41,7 @@ public:
virtual void printStackTrace(::java::io::PrintWriter *);
private:
::java::lang::String * stackTraceString();
- static void stackTraceStringBuffer(::java::lang::StringBuilder *, ::java::lang::String *, JArray< ::java::lang::StackTraceElement * > *, jint);
+ static void stackTraceStringBuffer(::gnu::java::lang::CPStringBuilder *, ::java::lang::String *, JArray< ::java::lang::StackTraceElement * > *, jint);
public:
virtual ::java::lang::Throwable * fillInStackTrace();
virtual JArray< ::java::lang::StackTraceElement * > * getStackTrace();
diff --git a/libjava/java/lang/natStringBuffer.cc b/libjava/java/lang/natAbstractStringBuffer.cc
index 8fbb8df..b2df69c 100644
--- a/libjava/java/lang/natStringBuffer.cc
+++ b/libjava/java/lang/natAbstractStringBuffer.cc
@@ -10,15 +10,14 @@ details. */
#include <config.h>
#include <gcj/cni.h>
-#include <java/lang/StringBuffer.h>
+#include <java/lang/AbstractStringBuffer.h>
-java::lang::StringBuffer*
-java::lang::StringBuffer::append (jint num)
+java::lang::AbstractStringBuffer*
+java::lang::AbstractStringBuffer::append (jint num)
{
// Use an array large enough for "-2147483648"; i.e. 11 chars.
jchar buffer[11];
int i = _Jv_FormatInt (buffer+11, num);
- JvSynchronize dummy (this);
jint needed = count + i;
ensureCapacity_unsynchronized (needed);
jchar* dst = elements (value) + count;
@@ -30,7 +29,7 @@ java::lang::StringBuffer::append (jint num)
}
jboolean
-java::lang::StringBuffer::regionMatches(jint toffset, jstring other)
+java::lang::AbstractStringBuffer::regionMatches(jint toffset, jstring other)
{
jint len = other->count;
jchar *tptr = elements(value) + toffset;
diff --git a/libjava/java/lang/natStringBuilder.cc b/libjava/java/lang/natStringBuilder.cc
deleted file mode 100644
index e2c8c29..0000000
--- a/libjava/java/lang/natStringBuilder.cc
+++ /dev/null
@@ -1,29 +0,0 @@
-// Native methods for StringBuilder.
-
-/* Copyright (C) 2005 Free Software Foundation
-
- This file is part of libgcj.
-
-This software is copyrighted work licensed under the terms of the
-Libgcj License. Please consult the file "LIBGCJ_LICENSE" for
-details. */
-
-#include <config.h>
-#include <gcj/cni.h>
-#include <java/lang/StringBuilder.h>
-#include <java/lang/String.h>
-
-jboolean
-java::lang::StringBuilder::regionMatches(jint offset, jstring other)
-{
- int len = other->count;
- int index = 0;
- jchar *sc = elements (value);
- jchar *oc = _Jv_GetStringChars (other);
- while (--len >= 0)
- {
- if (sc[offset++] != oc[index++])
- return false;
- }
- return true;
-}
diff --git a/libjava/java/math/BigInteger.h b/libjava/java/math/BigInteger.h
index eaf0326..a3ace69 100644
--- a/libjava/java/math/BigInteger.h
+++ b/libjava/java/math/BigInteger.h
@@ -11,6 +11,20 @@
extern "Java"
{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ namespace math
+ {
+ class GMP;
+ }
+ }
+ }
namespace java
{
namespace math
@@ -38,6 +52,7 @@ public:
static ::java::math::BigInteger * probablePrime(jint, ::java::util::Random *);
static ::java::math::BigInteger * valueOf(jlong);
private:
+ static jboolean initializeLibrary();
static ::java::math::BigInteger * make(JArray< jint > *, jint);
static JArray< jint > * byteArrayToIntArray(JArray< jbyte > *, jint);
static ::java::math::BigInteger * alloc(jint);
@@ -102,7 +117,7 @@ public:
virtual ::java::math::BigInteger * shiftLeft(jint);
virtual ::java::math::BigInteger * shiftRight(jint);
private:
- void format(jint, ::java::lang::StringBuffer *);
+ void format(jint, ::gnu::java::lang::CPStringBuilder *);
public:
virtual ::java::lang::String * toString();
virtual ::java::lang::String * toString(jint);
@@ -114,7 +129,6 @@ private:
public:
virtual jboolean equals(::java::lang::Object *);
private:
- static ::java::math::BigInteger * valueOf(::java::lang::String *, jint);
static ::java::math::BigInteger * valueOf(JArray< jbyte > *, jint, jboolean, jint);
public:
virtual jdouble doubleValue();
@@ -162,11 +176,11 @@ private:
public:
virtual jint compareTo(::java::lang::Object *);
private:
+ static ::java::util::logging::Logger * log;
jint __attribute__((aligned(__alignof__( ::java::lang::Number)))) ival;
JArray< jint > * words;
jint bitCount__;
jint bitLength__;
- jint firstNonzeroByteNum;
jint lowestSetBit;
JArray< jbyte > * magnitude;
jint signum__;
@@ -175,6 +189,8 @@ private:
static const jint maxFixNum = 1024;
static const jint numFixNum = 1125;
static JArray< ::java::math::BigInteger * > * smallFixNums;
+ ::gnu::java::math::GMP * mpz;
+ static jboolean USING_NATIVE;
public:
static ::java::math::BigInteger * ZERO;
static ::java::math::BigInteger * ONE;
diff --git a/libjava/java/net/URI.h b/libjava/java/net/URI.h
index 8417042..143b35a 100644
--- a/libjava/java/net/URI.h
+++ b/libjava/java/net/URI.h
@@ -9,6 +9,16 @@
#include <java/lang/Object.h>
extern "Java"
{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
namespace java
{
namespace net
@@ -44,7 +54,7 @@ public:
::java::net::URI * normalize();
private:
::java::lang::String * normalizePath(::java::lang::String *);
- void removeLastSegment(::java::lang::StringBuilder *);
+ void removeLastSegment(::gnu::java::lang::CPStringBuilder *);
public:
::java::net::URI * resolve(::java::net::URI *);
::java::net::URI * resolve(::java::lang::String *);
diff --git a/libjava/java/nio/Buffer.h b/libjava/java/nio/Buffer.h
index fd985db..3b958b4 100644
--- a/libjava/java/nio/Buffer.h
+++ b/libjava/java/nio/Buffer.h
@@ -29,7 +29,7 @@ class java::nio::Buffer : public ::java::lang::Object
{
public: // actually package-private
- Buffer(jint, jint, jint, jint);
+ Buffer(jint, jint, jint, jint, ::gnu::gcj::RawData *);
public:
virtual jint capacity();
virtual ::java::nio::Buffer * clear();
@@ -52,7 +52,9 @@ public: // actually package-private
virtual void checkIndex(jint);
virtual void checkIfReadOnly();
static void checkArraySize(jint, jint, jint);
+private:
jint __attribute__((aligned(__alignof__( ::java::lang::Object)))) cap;
+public: // actually package-private
jint limit__;
jint pos;
jint mark__;
diff --git a/libjava/java/nio/Buffer.java b/libjava/java/nio/Buffer.java
index f369b96..222b84f 100644
--- a/libjava/java/nio/Buffer.java
+++ b/libjava/java/nio/Buffer.java
@@ -45,22 +45,24 @@ import gnu.gcj.RawData;
*/
public abstract class Buffer
{
- int cap = 0;
- int limit = 0;
- int pos = 0;
- int mark = -1;
- RawData address;
+ private final int cap;
+ int limit;
+ int pos;
+ int mark;
+ final RawData address;
/**
* Creates a new Buffer.
*
* Should be package private.
*/
- Buffer (int capacity, int limit, int position, int mark)
+ Buffer (int capacity, int limit, int position, int mark,
+ RawData address)
{
if (capacity < 0)
throw new IllegalArgumentException ();
+ this.address = address;
cap = capacity;
limit (limit);
position (position);
@@ -72,6 +74,10 @@ public abstract class Buffer
this.mark = mark;
}
+ else
+ {
+ this.mark = -1;
+ }
}
/**
diff --git a/libjava/java/nio/ByteBuffer.h b/libjava/java/nio/ByteBuffer.h
index 7836894..cf1f5be 100644
--- a/libjava/java/nio/ByteBuffer.h
+++ b/libjava/java/nio/ByteBuffer.h
@@ -11,6 +11,13 @@
extern "Java"
{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
namespace java
{
namespace nio
@@ -31,7 +38,7 @@ class java::nio::ByteBuffer : public ::java::nio::Buffer
{
public: // actually package-private
- ByteBuffer(jint, jint, jint, jint);
+ ByteBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jbyte > *, jint);
public:
static ::java::nio::ByteBuffer * allocateDirect(jint);
static ::java::nio::ByteBuffer * allocate(jint);
@@ -96,8 +103,8 @@ public:
virtual jint compareTo(::java::lang::Object *);
public: // actually package-private
::java::nio::ByteOrder * __attribute__((aligned(__alignof__( ::java::nio::Buffer)))) endian;
- jint array_offset;
JArray< jbyte > * backing_buffer;
+ jint array_offset;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/java/nio/CharBuffer.h b/libjava/java/nio/CharBuffer.h
index 3d33560..73b4ba9 100644
--- a/libjava/java/nio/CharBuffer.h
+++ b/libjava/java/nio/CharBuffer.h
@@ -11,6 +11,13 @@
extern "Java"
{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
namespace java
{
namespace nio
@@ -25,7 +32,7 @@ class java::nio::CharBuffer : public ::java::nio::Buffer
{
public: // actually package-private
- CharBuffer(jint, jint, jint, jint);
+ CharBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jchar > *, jint);
public:
static ::java::nio::CharBuffer * allocate(jint);
static ::java::nio::CharBuffer * wrap(JArray< jchar > *, jint, jint);
diff --git a/libjava/java/nio/DirectByteBufferImpl.java b/libjava/java/nio/DirectByteBufferImpl.java
index e448ea9..dd40d5a 100644
--- a/libjava/java/nio/DirectByteBufferImpl.java
+++ b/libjava/java/nio/DirectByteBufferImpl.java
@@ -109,25 +109,23 @@ abstract class DirectByteBufferImpl extends ByteBuffer
DirectByteBufferImpl(int capacity)
{
- super(capacity, capacity, 0, -1);
+ super(capacity, capacity, 0, -1,
+ VMDirectByteBuffer.allocate(capacity), null, 0);
this.owner = this;
- this.address = VMDirectByteBuffer.allocate(capacity);
}
DirectByteBufferImpl(RawData address, int capacity)
{
- super(capacity, capacity, 0, -1);
+ super(capacity, capacity, 0, -1, address, null, 0);
this.owner = null;
- this.address = address;
}
DirectByteBufferImpl(Object owner, RawData address,
int capacity, int limit,
int position)
{
- super(capacity, limit, position, -1);
+ super(capacity, limit, position, -1, address, null, 0);
this.owner = owner;
- this.address = address;
}
/**
diff --git a/libjava/java/nio/DoubleBuffer.h b/libjava/java/nio/DoubleBuffer.h
index e201a4f..cb7da18 100644
--- a/libjava/java/nio/DoubleBuffer.h
+++ b/libjava/java/nio/DoubleBuffer.h
@@ -11,6 +11,13 @@
extern "Java"
{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
namespace java
{
namespace nio
@@ -25,7 +32,7 @@ class java::nio::DoubleBuffer : public ::java::nio::Buffer
{
public: // actually package-private
- DoubleBuffer(jint, jint, jint, jint);
+ DoubleBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jdouble > *, jint);
public:
static ::java::nio::DoubleBuffer * allocate(jint);
static ::java::nio::DoubleBuffer * wrap(JArray< jdouble > *, jint, jint);
diff --git a/libjava/java/nio/FloatBuffer.h b/libjava/java/nio/FloatBuffer.h
index 18348f2..334bdc4 100644
--- a/libjava/java/nio/FloatBuffer.h
+++ b/libjava/java/nio/FloatBuffer.h
@@ -11,6 +11,13 @@
extern "Java"
{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
namespace java
{
namespace nio
@@ -25,7 +32,7 @@ class java::nio::FloatBuffer : public ::java::nio::Buffer
{
public: // actually package-private
- FloatBuffer(jint, jint, jint, jint);
+ FloatBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jfloat > *, jint);
public:
static ::java::nio::FloatBuffer * allocate(jint);
static ::java::nio::FloatBuffer * wrap(JArray< jfloat > *, jint, jint);
diff --git a/libjava/java/nio/IntBuffer.h b/libjava/java/nio/IntBuffer.h
index e099d4a..fa22507 100644
--- a/libjava/java/nio/IntBuffer.h
+++ b/libjava/java/nio/IntBuffer.h
@@ -11,6 +11,13 @@
extern "Java"
{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
namespace java
{
namespace nio
@@ -25,7 +32,7 @@ class java::nio::IntBuffer : public ::java::nio::Buffer
{
public: // actually package-private
- IntBuffer(jint, jint, jint, jint);
+ IntBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jint > *, jint);
public:
static ::java::nio::IntBuffer * allocate(jint);
static ::java::nio::IntBuffer * wrap(JArray< jint > *, jint, jint);
diff --git a/libjava/java/nio/LongBuffer.h b/libjava/java/nio/LongBuffer.h
index 0e6ad30..622f241 100644
--- a/libjava/java/nio/LongBuffer.h
+++ b/libjava/java/nio/LongBuffer.h
@@ -11,6 +11,13 @@
extern "Java"
{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
namespace java
{
namespace nio
@@ -25,7 +32,7 @@ class java::nio::LongBuffer : public ::java::nio::Buffer
{
public: // actually package-private
- LongBuffer(jint, jint, jint, jint);
+ LongBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jlong > *, jint);
public:
static ::java::nio::LongBuffer * allocate(jint);
static ::java::nio::LongBuffer * wrap(JArray< jlong > *, jint, jint);
diff --git a/libjava/java/nio/MappedByteBuffer.h b/libjava/java/nio/MappedByteBuffer.h
index d8b3f49..05fe81b 100644
--- a/libjava/java/nio/MappedByteBuffer.h
+++ b/libjava/java/nio/MappedByteBuffer.h
@@ -9,6 +9,13 @@
#include <java/nio/ByteBuffer.h>
extern "Java"
{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
namespace java
{
namespace nio
@@ -22,7 +29,7 @@ class java::nio::MappedByteBuffer : public ::java::nio::ByteBuffer
{
public: // actually package-private
- MappedByteBuffer(jint, jint, jint, jint);
+ MappedByteBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *);
virtual void forceImpl();
public:
virtual ::java::nio::MappedByteBuffer * force();
diff --git a/libjava/java/nio/MappedByteBufferImpl.h b/libjava/java/nio/MappedByteBufferImpl.h
index e678d49..71725bf 100644
--- a/libjava/java/nio/MappedByteBufferImpl.h
+++ b/libjava/java/nio/MappedByteBufferImpl.h
@@ -88,6 +88,7 @@ public: // actually package-private
jboolean isLoadedImpl();
void loadImpl();
void forceImpl();
+private:
jboolean __attribute__((aligned(__alignof__( ::java::nio::MappedByteBuffer)))) readOnly;
public:
::gnu::gcj::RawData * implPtr;
diff --git a/libjava/java/nio/MappedByteBufferImpl.java b/libjava/java/nio/MappedByteBufferImpl.java
index 444eeea..c8d458a 100644
--- a/libjava/java/nio/MappedByteBufferImpl.java
+++ b/libjava/java/nio/MappedByteBufferImpl.java
@@ -44,7 +44,7 @@ import java.io.IOException;
final class MappedByteBufferImpl extends MappedByteBuffer
{
- boolean readOnly;
+ private final boolean readOnly;
/** Posix uses this for the pointer returned by mmap;
* Win32 uses it for the pointer returned by MapViewOfFile. */
@@ -56,8 +56,7 @@ final class MappedByteBufferImpl extends MappedByteBuffer
public MappedByteBufferImpl(RawData address, int size, boolean readOnly)
throws IOException
{
- super(size, size, 0, -1);
- this.address = address;
+ super(size, size, 0, -1, address);
this.readOnly = readOnly;
}
diff --git a/libjava/java/nio/ShortBuffer.h b/libjava/java/nio/ShortBuffer.h
index ddcfc09..1cb82a0 100644
--- a/libjava/java/nio/ShortBuffer.h
+++ b/libjava/java/nio/ShortBuffer.h
@@ -11,6 +11,13 @@
extern "Java"
{
+ namespace gnu
+ {
+ namespace gcj
+ {
+ class RawData;
+ }
+ }
namespace java
{
namespace nio
@@ -25,7 +32,7 @@ class java::nio::ShortBuffer : public ::java::nio::Buffer
{
public: // actually package-private
- ShortBuffer(jint, jint, jint, jint);
+ ShortBuffer(jint, jint, jint, jint, ::gnu::gcj::RawData *, JArray< jshort > *, jint);
public:
static ::java::nio::ShortBuffer * allocate(jint);
static ::java::nio::ShortBuffer * wrap(JArray< jshort > *, jint, jint);
diff --git a/libjava/java/rmi/activation/Activatable.h b/libjava/java/rmi/activation/Activatable.h
index 63f8297..a5398f4 100644
--- a/libjava/java/rmi/activation/Activatable.h
+++ b/libjava/java/rmi/activation/Activatable.h
@@ -53,7 +53,7 @@ public:
static jboolean unexportObject(::java::rmi::Remote *, jboolean);
public: // actually package-private
static ::java::rmi::Remote * exportObject(::java::rmi::Remote *, jint, ::java::rmi::server::RMIServerSocketFactory *);
-public:
+private:
static ::java::rmi::Remote * export$(::java::rmi::activation::ActivationID *, ::java::rmi::Remote *, jint, ::java::rmi::server::RMIServerSocketFactory *);
static ::java::rmi::server::ObjID * makeId(::java::rmi::activation::ActivationID *);
public: // actually package-private
diff --git a/libjava/java/sql/Timestamp.h b/libjava/java/sql/Timestamp.h
index 5b85eff..9033369 100644
--- a/libjava/java/sql/Timestamp.h
+++ b/libjava/java/sql/Timestamp.h
@@ -39,7 +39,7 @@ public:
virtual jboolean equals(::java::lang::Object *);
virtual jboolean equals(::java::sql::Timestamp *);
virtual jint compareTo(::java::sql::Timestamp *);
- virtual jint Timestamp$compareTo(::java::util::Date *);
+ virtual jint Date$compareTo(::java::util::Date *);
public: // actually package-private
static const jlong serialVersionUID = 2745179027874758501LL;
private:
diff --git a/libjava/java/text/ChoiceFormat.h b/libjava/java/text/ChoiceFormat.h
index 30aa77a..92852eb 100644
--- a/libjava/java/text/ChoiceFormat.h
+++ b/libjava/java/text/ChoiceFormat.h
@@ -11,6 +11,16 @@
extern "Java"
{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
namespace java
{
namespace text
@@ -41,7 +51,7 @@ public:
static jdouble previousDouble(jdouble);
virtual void setChoices(JArray< jdouble > *, JArray< ::java::lang::String * > *);
private:
- void quoteString(::java::lang::StringBuffer *, ::java::lang::String *);
+ void quoteString(::gnu::java::lang::CPStringBuilder *, ::java::lang::String *);
public:
virtual ::java::lang::String * toPattern();
private:
diff --git a/libjava/java/text/DateFormat$Field.h b/libjava/java/text/DateFormat$Field.h
index e586d22..4748047 100644
--- a/libjava/java/text/DateFormat$Field.h
+++ b/libjava/java/text/DateFormat$Field.h
@@ -54,12 +54,6 @@ public:
static ::java::text::DateFormat$Field * HOUR1;
static ::java::text::DateFormat$Field * HOUR0;
static ::java::text::DateFormat$Field * TIME_ZONE;
- static ::java::text::DateFormat$Field * ISO_YEAR;
- static ::java::text::DateFormat$Field * LOCALIZED_DAY_OF_WEEK;
- static ::java::text::DateFormat$Field * EXTENDED_YEAR;
- static ::java::text::DateFormat$Field * MODIFIED_JULIAN_DAY;
- static ::java::text::DateFormat$Field * MILLISECOND_IN_DAY;
- static ::java::text::DateFormat$Field * RFC822_TIME_ZONE;
public: // actually package-private
static JArray< ::java::text::DateFormat$Field * > * allFields;
public:
diff --git a/libjava/java/text/DateFormat.h b/libjava/java/text/DateFormat.h
index 7f82499..5f5241f 100644
--- a/libjava/java/text/DateFormat.h
+++ b/libjava/java/text/DateFormat.h
@@ -91,12 +91,6 @@ public:
static const jint HOUR1_FIELD = 15;
static const jint HOUR0_FIELD = 16;
static const jint TIMEZONE_FIELD = 17;
- static const jint ISO_YEAR_FIELD = 18;
- static const jint LOCALIZED_DAY_OF_WEEK_FIELD = 19;
- static const jint EXTENDED_YEAR_FIELD = 20;
- static const jint MODIFIED_JULIAN_DAY_FIELD = 21;
- static const jint MILLISECOND_IN_DAY_FIELD = 22;
- static const jint RFC822_TIMEZONE_FIELD = 23;
static ::java::lang::Class class$;
};
diff --git a/libjava/java/text/DateFormatSymbols.h b/libjava/java/text/DateFormatSymbols.h
index d1f25b3..b5cce7f 100644
--- a/libjava/java/text/DateFormatSymbols.h
+++ b/libjava/java/text/DateFormatSymbols.h
@@ -65,6 +65,7 @@ public: // actually package-private
JArray< ::java::lang::String * > * shortWeekdays;
JArray< ::java::lang::String * > * weekdays;
private:
+ static ::java::util::Properties * properties;
JArray< JArray< ::java::lang::String * > * > * runtimeZoneStrings;
JArray< JArray< ::java::lang::String * > * > * zoneStrings;
static const jlong serialVersionUID = -5987973545549424702LL;
diff --git a/libjava/java/text/DecimalFormat.h b/libjava/java/text/DecimalFormat.h
index 14cf9d2..a3172d7 100644
--- a/libjava/java/text/DecimalFormat.h
+++ b/libjava/java/text/DecimalFormat.h
@@ -9,6 +9,16 @@
#include <java/text/NumberFormat.h>
extern "Java"
{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
namespace java
{
namespace math
@@ -73,7 +83,7 @@ public:
private:
jboolean equals(::java::lang::String *, ::java::lang::String *);
::java::lang::String * patternChars(::java::text::DecimalFormatSymbols *);
- ::java::lang::StringBuffer * quoteFix(::java::lang::String *, ::java::lang::String *);
+ ::gnu::java::lang::CPStringBuilder * quoteFix(::java::lang::String *, ::java::lang::String *);
::java::lang::String * computePattern(::java::text::DecimalFormatSymbols *);
void applyPatternWithSymbols(::java::lang::String *, ::java::text::DecimalFormatSymbols *);
jint scanFix(::java::lang::String *, ::java::text::DecimalFormatSymbols *, jint, jboolean);
diff --git a/libjava/java/text/Format.h b/libjava/java/text/Format.h
index 5813bd0..a0b6d51 100644
--- a/libjava/java/text/Format.h
+++ b/libjava/java/text/Format.h
@@ -24,8 +24,9 @@ extern "Java"
class java::text::Format : public ::java::lang::Object
{
-public:
+public: // actually protected
Format();
+public:
virtual ::java::lang::String * format(::java::lang::Object *);
virtual ::java::lang::StringBuffer * format(::java::lang::Object *, ::java::lang::StringBuffer *, ::java::text::FieldPosition *) = 0;
virtual ::java::lang::Object * parseObject(::java::lang::String *);
diff --git a/libjava/java/text/MessageFormat.h b/libjava/java/text/MessageFormat.h
index 47d476f..01c6c35 100644
--- a/libjava/java/text/MessageFormat.h
+++ b/libjava/java/text/MessageFormat.h
@@ -38,9 +38,9 @@ extern "Java"
class java::text::MessageFormat : public ::java::text::Format
{
- static jint scanString(::java::lang::String *, jint, ::java::lang::StringBuffer *);
- static jint scanFormatElement(::java::lang::String *, jint, ::java::lang::StringBuffer *, jchar);
- static jint scanFormat(::java::lang::String *, jint, ::java::lang::StringBuffer *, ::java::util::Vector *, ::java::util::Locale *);
+ static jint scanString(::java::lang::String *, jint, ::java::lang::StringBuilder *);
+ static jint scanFormatElement(::java::lang::String *, jint, ::java::lang::StringBuilder *, jchar);
+ static jint scanFormat(::java::lang::String *, jint, ::java::lang::StringBuilder *, ::java::util::Vector *, ::java::util::Locale *);
public:
virtual void applyPattern(::java::lang::String *);
virtual ::java::lang::Object * clone();
diff --git a/libjava/java/text/NumberFormat.h b/libjava/java/text/NumberFormat.h
index c800b99..0b480da 100644
--- a/libjava/java/text/NumberFormat.h
+++ b/libjava/java/text/NumberFormat.h
@@ -52,7 +52,9 @@ public:
virtual jint hashCode();
virtual jboolean isGroupingUsed();
virtual jboolean isParseIntegerOnly();
+public: // actually protected
NumberFormat();
+public:
virtual ::java::lang::Number * parse(::java::lang::String *, ::java::text::ParsePosition *) = 0;
virtual ::java::lang::Number * parse(::java::lang::String *);
virtual ::java::lang::Object * parseObject(::java::lang::String *, ::java::text::ParsePosition *);
diff --git a/libjava/java/text/SimpleDateFormat.h b/libjava/java/text/SimpleDateFormat.h
index a6ffbf5..3e8a5d0 100644
--- a/libjava/java/text/SimpleDateFormat.h
+++ b/libjava/java/text/SimpleDateFormat.h
@@ -80,6 +80,7 @@ private:
jint serialVersionOnStream;
static const jlong serialVersionUID = 4774881970558875024LL;
static ::java::lang::String * standardChars;
+ static const jint RFC822_TIMEZONE_FIELD = 18;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/java/util/ArrayList.h b/libjava/java/util/ArrayList.h
index 755e7c5..4bbdb1a 100644
--- a/libjava/java/util/ArrayList.h
+++ b/libjava/java/util/ArrayList.h
@@ -40,6 +40,7 @@ public: // actually protected
private:
void checkBoundInclusive(jint);
void checkBoundExclusive(jint);
+ void raiseBoundsError(jint);
public: // actually package-private
virtual jboolean removeAllInternal(::java::util::Collection *);
virtual jboolean retainAllInternal(::java::util::Collection *);
diff --git a/libjava/java/util/Arrays.h b/libjava/java/util/Arrays.h
index 4010f60..8860ee3 100644
--- a/libjava/java/util/Arrays.h
+++ b/libjava/java/util/Arrays.h
@@ -9,6 +9,19 @@
#include <java/lang/Object.h>
#include <gcj/array.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+}
class java::util::Arrays : public ::java::lang::Object
{
@@ -144,7 +157,7 @@ public:
static ::java::lang::String * toString(JArray< jdouble > *);
static ::java::lang::String * toString(JArray< ::java::lang::Object * > *);
private:
- static void deepToString(JArray< ::java::lang::Object * > *, ::java::lang::StringBuilder *, ::java::util::HashSet *);
+ static void deepToString(JArray< ::java::lang::Object * > *, ::gnu::java::lang::CPStringBuilder *, ::java::util::HashSet *);
public:
static ::java::lang::String * deepToString(JArray< ::java::lang::Object * > *);
static JArray< jboolean > * copyOf(JArray< jboolean > *, jint);
diff --git a/libjava/java/util/Calendar.h b/libjava/java/util/Calendar.h
index b387871..9abfba5 100644
--- a/libjava/java/util/Calendar.h
+++ b/libjava/java/util/Calendar.h
@@ -138,6 +138,7 @@ public: // actually package-private
static const jlong serialVersionUID = -1807547505821590642LL;
private:
static ::java::lang::String * bundleName;
+ static ::java::util::Properties * properties;
static ::java::util::HashMap * cache;
static JArray< ::java::lang::Class * > * ctorArgTypes;
static JArray< ::java::lang::String * > * fieldNames;
diff --git a/libjava/java/util/Formatter.h b/libjava/java/util/Formatter.h
index 5d513ed..71a659f 100644
--- a/libjava/java/util/Formatter.h
+++ b/libjava/java/util/Formatter.h
@@ -11,6 +11,16 @@
extern "Java"
{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
namespace java
{
namespace text
@@ -44,7 +54,7 @@ private:
::java::lang::String * getName(jint);
void checkFlags(jint, jint, jchar);
void noPrecision(jint);
- void applyLocalization(::java::lang::StringBuilder *, jint, jint, jboolean);
+ void applyLocalization(::gnu::java::lang::CPStringBuilder *, jint, jint, jboolean);
void genericFormat(::java::lang::String *, jint, jint, jint);
void booleanFormat(::java::lang::Object *, jint, jint, jint, jchar);
void hashCodeFormat(::java::lang::Object *, jint, jint, jint, jchar);
@@ -52,10 +62,10 @@ private:
void characterFormat(::java::lang::Object *, jint, jint, jint, jchar);
void percentFormat(jint, jint, jint);
void newLineFormat(jint, jint, jint);
- ::java::lang::StringBuilder * basicIntegralConversion(::java::lang::Object *, jint, jint, jint, jint, jchar);
+ ::gnu::java::lang::CPStringBuilder * basicIntegralConversion(::java::lang::Object *, jint, jint, jint, jint, jchar);
void hexOrOctalConversion(::java::lang::Object *, jint, jint, jint, jint, jchar);
void decimalConversion(::java::lang::Object *, jint, jint, jint, jchar);
- void singleDateTimeConversion(::java::lang::StringBuilder *, ::java::util::Calendar *, jchar, ::java::text::DateFormatSymbols *);
+ void singleDateTimeConversion(::gnu::java::lang::CPStringBuilder *, ::java::util::Calendar *, jchar, ::java::text::DateFormatSymbols *);
void dateTimeConversion(::java::lang::Object *, jint, jint, jint, jchar, jchar);
void advance();
jint parseInt();
diff --git a/libjava/java/util/Properties.h b/libjava/java/util/Properties.h
index 5075e34..ccb76b5 100644
--- a/libjava/java/util/Properties.h
+++ b/libjava/java/util/Properties.h
@@ -7,6 +7,19 @@
#pragma interface
#include <java/util/Hashtable.h>
+extern "Java"
+{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
+}
class java::util::Properties : public ::java::util::Hashtable
{
@@ -15,6 +28,7 @@ public:
Properties();
Properties(::java::util::Properties *);
virtual ::java::lang::Object * setProperty(::java::lang::String *, ::java::lang::String *);
+ virtual void load(::java::io::Reader *);
virtual void load(::java::io::InputStream *);
virtual void save(::java::io::OutputStream *, ::java::lang::String *);
virtual void store(::java::io::OutputStream *, ::java::lang::String *);
@@ -24,7 +38,7 @@ public:
virtual void list(::java::io::PrintStream *);
virtual void list(::java::io::PrintWriter *);
private:
- void formatForOutput(::java::lang::String *, ::java::lang::StringBuilder *, jboolean);
+ void formatForOutput(::java::lang::String *, ::gnu::java::lang::CPStringBuilder *, jboolean);
public:
virtual void storeToXML(::java::io::OutputStream *, ::java::lang::String *);
virtual void storeToXML(::java::io::OutputStream *, ::java::lang::String *, ::java::lang::String *);
diff --git a/libjava/java/util/PropertyResourceBundle.h b/libjava/java/util/PropertyResourceBundle.h
index a0f0726..fa65285 100644
--- a/libjava/java/util/PropertyResourceBundle.h
+++ b/libjava/java/util/PropertyResourceBundle.h
@@ -13,6 +13,7 @@ class java::util::PropertyResourceBundle : public ::java::util::ResourceBundle
public:
PropertyResourceBundle(::java::io::InputStream *);
+ PropertyResourceBundle(::java::io::Reader *);
virtual ::java::lang::Object * handleGetObject(::java::lang::String *);
virtual ::java::util::Enumeration * getKeys();
private:
diff --git a/libjava/java/util/ResourceBundle$BundleKey.h b/libjava/java/util/ResourceBundle$BundleKey.h
index 62c08b3..49c051c 100644
--- a/libjava/java/util/ResourceBundle$BundleKey.h
+++ b/libjava/java/util/ResourceBundle$BundleKey.h
@@ -18,6 +18,7 @@ public: // actually package-private
public:
virtual jint hashCode();
virtual jboolean equals(::java::lang::Object *);
+ virtual ::java::lang::String * toString();
public: // actually package-private
::java::util::Locale * __attribute__((aligned(__alignof__( ::java::lang::Object)))) defaultLocale;
::java::lang::String * baseName;
diff --git a/libjava/java/util/ResourceBundle.h b/libjava/java/util/ResourceBundle.h
index 98a87e6..e14e453 100644
--- a/libjava/java/util/ResourceBundle.h
+++ b/libjava/java/util/ResourceBundle.h
@@ -32,6 +32,10 @@ public:
private:
static ::java::util::ResourceBundle * tryBundle(::java::lang::String *, ::java::lang::ClassLoader *);
static ::java::util::ResourceBundle * tryBundle(::java::lang::String *, ::java::util::Locale *, ::java::lang::ClassLoader *, jboolean);
+public:
+ static void clearCache();
+ static void clearCache(::java::lang::ClassLoader *);
+private:
static const jint CACHE_SIZE = 100;
public: // actually protected
::java::util::ResourceBundle * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parent;
diff --git a/libjava/java/util/Scanner.h b/libjava/java/util/Scanner.h
new file mode 100644
index 0000000..bca1ab7
--- /dev/null
+++ b/libjava/java/util/Scanner.h
@@ -0,0 +1,178 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __java_util_Scanner__
+#define __java_util_Scanner__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace math
+ {
+ class BigDecimal;
+ class BigInteger;
+ }
+ namespace nio
+ {
+ namespace channels
+ {
+ class ReadableByteChannel;
+ }
+ }
+ namespace text
+ {
+ class DecimalFormat;
+ class DecimalFormatSymbols;
+ class NumberFormat;
+ }
+ }
+}
+
+class java::util::Scanner : public ::java::lang::Object
+{
+
+public:
+ Scanner(::java::io::File *);
+ Scanner(::java::io::File *, ::java::lang::String *);
+ Scanner(::java::io::InputStream *);
+ Scanner(::java::io::InputStream *, ::java::lang::String *);
+ Scanner(::java::lang::Readable *);
+ Scanner(::java::nio::channels::ReadableByteChannel *);
+ Scanner(::java::nio::channels::ReadableByteChannel *, ::java::lang::String *);
+ Scanner(::java::lang::String *);
+ virtual void close();
+ virtual ::java::util::regex::Pattern * delimiter();
+ virtual ::java::lang::String * findInLine(::java::util::regex::Pattern *);
+ virtual ::java::lang::String * findInLine(::java::lang::String *);
+ virtual ::java::lang::String * findWithinHorizon(::java::util::regex::Pattern *, jint);
+ virtual ::java::lang::String * findWithinHorizon(::java::lang::String *, jint);
+ virtual jboolean hasNext();
+ virtual jboolean hasNext(::java::util::regex::Pattern *);
+ virtual jboolean hasNext(::java::lang::String *);
+ virtual jboolean hasNextBigDecimal();
+ virtual jboolean hasNextBigInteger();
+ virtual jboolean hasNextBigInteger(jint);
+ virtual jboolean hasNextBoolean();
+ virtual jboolean hasNextByte();
+ virtual jboolean hasNextByte(jint);
+ virtual jboolean hasNextDouble();
+ virtual jboolean hasNextFloat();
+ virtual jboolean hasNextInt();
+ virtual jboolean hasNextInt(jint);
+ virtual jboolean hasNextLine();
+ virtual jboolean hasNextLong();
+ virtual jboolean hasNextLong(jint);
+ virtual jboolean hasNextShort();
+ virtual jboolean hasNextShort(jint);
+ virtual ::java::io::IOException * ioException();
+ virtual jboolean isUseLocale();
+ virtual ::java::util::Locale * locale();
+ virtual ::java::util::regex::MatchResult * match();
+ virtual ::java::lang::String * Scanner$next();
+ virtual ::java::lang::String * next(::java::util::regex::Pattern *);
+ virtual ::java::lang::String * next(::java::lang::String *);
+ virtual ::java::math::BigDecimal * nextBigDecimal();
+ virtual ::java::math::BigInteger * nextBigInteger();
+ virtual ::java::math::BigInteger * nextBigInteger(jint);
+ virtual jboolean nextBoolean();
+ virtual jbyte nextByte();
+ virtual jbyte nextByte(jint);
+ virtual jdouble nextDouble();
+ virtual jfloat nextFloat();
+ virtual jint nextInt();
+ virtual jint nextInt(jint);
+ virtual ::java::lang::String * nextLine();
+ virtual jlong nextLong();
+ virtual jlong nextLong(jint);
+ virtual jshort nextShort();
+ virtual jshort nextShort(jint);
+ virtual jint radix();
+ virtual void remove();
+ virtual void setUseLocale(jboolean);
+ virtual ::java::util::Scanner * skip(::java::util::regex::Pattern *);
+ virtual ::java::util::Scanner * skip(::java::lang::String *);
+ virtual ::java::lang::String * toString();
+ virtual ::java::util::Scanner * useDelimiter(::java::util::regex::Pattern *);
+ virtual ::java::util::Scanner * useDelimiter(::java::lang::String *);
+ virtual ::java::util::Scanner * useLocale(::java::util::Locale *);
+ virtual ::java::util::Scanner * useRadix(jint);
+private:
+ ::java::lang::String * myApplyLocale(::java::lang::String *, jint);
+ ::java::lang::String * myApplyLocaleBD(::java::lang::String *);
+ ::java::math::BigDecimal * myBigDecimal(jboolean);
+ ::java::lang::String * myConvert(::java::lang::String *);
+ ::java::lang::String * myCoreNext(jboolean, ::java::util::regex::Pattern *);
+ void myFillBuffer();
+ jboolean myFillBuffer_loop(::java::util::regex::Matcher *, jint, jboolean);
+ ::java::lang::String * myFindPInStr(::java::util::regex::Pattern *, ::java::lang::String *, jint);
+ ::java::lang::String * myNext(::java::util::regex::Pattern *, jboolean);
+ ::java::math::BigInteger * myNextBigInteger(jint, jboolean, ::java::lang::String *);
+ jboolean myNextBoolean(jboolean);
+ jbyte myNextByte(jint, jboolean);
+ jdouble myNextDouble(jboolean);
+ jint myNextInt(jint, jboolean);
+ ::java::lang::String * myNextLine(jboolean);
+ jlong myNextLong(jint, jboolean);
+ jshort myNextShort(jint, jboolean);
+ ::java::lang::String * myPrepareForNext(::java::util::regex::Pattern *, jboolean);
+ jboolean shallUseLastFound(::java::util::regex::Pattern *);
+public:
+ virtual ::java::lang::Object * next();
+private:
+ static ::java::lang::String * NOT_LONG;
+ static ::java::lang::String * ERR_PREFIX;
+ static ::java::lang::String * NOT_INT;
+ static ::java::lang::String * NOT_DOUBLE;
+ static ::java::lang::String * NOT_BYTE;
+ static ::java::lang::String * NOT_BOOLEAN;
+ static ::java::lang::String * IS_NOT;
+ static ::java::lang::String * DEFAULT_PATTERN_S;
+ static ::java::util::regex::Pattern * DEFAULT_PATTERN;
+ static ::java::lang::String * BIG_INTEGER;
+ static ::java::lang::String * NEW_LINE;
+ ::java::io::IOException * __attribute__((aligned(__alignof__( ::java::lang::Object)))) lastIOException;
+ ::java::io::InputStream * bIS;
+ const jint MaxBufferLen;
+ const jint MIN_BUF_LEN;
+ const jint MAX_PREFIX;
+ ::java::lang::String * actBuffer;
+ jint currentRadix;
+ ::java::util::Locale * actLocale;
+ ::java::util::regex::Pattern * p;
+ jint actPos;
+ JArray< jbyte > * tmpBuffer;
+ ::java::lang::String * charsetName;
+ ::java::util::regex::Matcher * myMatcher;
+ ::java::util::regex::MatchResult * actResult;
+ ::java::lang::Readable * readableSource;
+ ::java::nio::channels::ReadableByteChannel * rbcSource;
+ jboolean isClosed;
+ ::java::lang::String * lastFound;
+ jboolean lastFoundPresent;
+ jint lastNextPos;
+ jint lastPatternHash;
+ jint last_RegionStart;
+ jint last_RegionEnd;
+ jboolean last_anchor;
+ jboolean last_transparent;
+ ::java::util::regex::MatchResult * lastResult;
+ jint procesedChars;
+ jboolean needInput;
+ jboolean skipped;
+ jboolean doSkipp;
+ jboolean matchValid;
+ ::java::text::NumberFormat * actFormat;
+ ::java::text::DecimalFormat * df;
+ jboolean useLocale__;
+ ::java::text::DecimalFormatSymbols * dfs;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __java_util_Scanner__
diff --git a/libjava/java/util/Vector.h b/libjava/java/util/Vector.h
index 8330b2a..c903819 100644
--- a/libjava/java/util/Vector.h
+++ b/libjava/java/util/Vector.h
@@ -64,6 +64,7 @@ public: // actually protected
private:
void checkBoundInclusive(jint);
void checkBoundExclusive(jint);
+ void raiseBoundsError(jint, ::java::lang::String *);
void writeObject(::java::io::ObjectOutputStream *);
static const jlong serialVersionUID = -2767605614048989439LL;
public: // actually protected
diff --git a/libjava/java/util/logging/XMLFormatter.h b/libjava/java/util/logging/XMLFormatter.h
index 48a585d..a5de354 100644
--- a/libjava/java/util/logging/XMLFormatter.h
+++ b/libjava/java/util/logging/XMLFormatter.h
@@ -9,6 +9,16 @@
#include <java/util/logging/Formatter.h>
extern "Java"
{
+ namespace gnu
+ {
+ namespace java
+ {
+ namespace lang
+ {
+ class CPStringBuilder;
+ }
+ }
+ }
namespace java
{
namespace text
@@ -24,8 +34,8 @@ class java::util::logging::XMLFormatter : public ::java::util::logging::Formatte
public:
XMLFormatter();
private:
- static void appendTag(::java::lang::StringBuffer *, jint, ::java::lang::String *, ::java::lang::String *);
- static void appendTag(::java::lang::StringBuffer *, jint, ::java::lang::String *, jlong);
+ static void appendTag(::gnu::java::lang::CPStringBuilder *, jint, ::java::lang::String *, ::java::lang::String *);
+ static void appendTag(::gnu::java::lang::CPStringBuilder *, jint, ::java::lang::String *, jlong);
public:
virtual ::java::lang::String * format(::java::util::logging::LogRecord *);
virtual ::java::lang::String * getHead(::java::util::logging::Handler *);
diff --git a/libjava/java/util/prefs/AbstractPreferences$1.h b/libjava/java/util/prefs/AbstractPreferences$1.h
index 97c3f53..6e41aa3 100644
--- a/libjava/java/util/prefs/AbstractPreferences$1.h
+++ b/libjava/java/util/prefs/AbstractPreferences$1.h
@@ -18,7 +18,7 @@ public:
public: // actually package-private
::java::util::prefs::AbstractPreferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
private:
- ::java::util::prefs::PreferenceChangeListener * val$l;
+ ::java::util::prefs::PreferenceChangeListener * val$listener;
::java::util::prefs::PreferenceChangeEvent * val$event;
public:
static ::java::lang::Class class$;
diff --git a/libjava/java/util/prefs/AbstractPreferences$2.h b/libjava/java/util/prefs/AbstractPreferences$2.h
index 45378c5..a96ebf1 100644
--- a/libjava/java/util/prefs/AbstractPreferences$2.h
+++ b/libjava/java/util/prefs/AbstractPreferences$2.h
@@ -19,7 +19,7 @@ public: // actually package-private
::java::util::prefs::AbstractPreferences * __attribute__((aligned(__alignof__( ::java::lang::Object)))) this$0;
private:
jboolean val$added;
- ::java::util::prefs::NodeChangeListener * val$l;
+ ::java::util::prefs::NodeChangeListener * val$listener;
::java::util::prefs::NodeChangeEvent * val$event;
public:
static ::java::lang::Class class$;
diff --git a/libjava/java/util/regex/Matcher.h b/libjava/java/util/regex/Matcher.h
index 35cd1c1..74230ef 100644
--- a/libjava/java/util/regex/Matcher.h
+++ b/libjava/java/util/regex/Matcher.h
@@ -53,12 +53,26 @@ public:
::java::lang::String * toString();
private:
void assertMatchOp();
+public:
+ ::java::util::regex::Matcher * region(jint, jint);
+ jint regionStart();
+ jint regionEnd();
+ jboolean hasTransparentBounds();
+ ::java::util::regex::Matcher * useTransparentBounds(jboolean);
+ jboolean hasAnchoringBounds();
+ ::java::util::regex::Matcher * useAnchoringBounds(jboolean);
+ ::java::util::regex::MatchResult * toMatchResult();
+private:
::java::util::regex::Pattern * __attribute__((aligned(__alignof__( ::java::lang::Object)))) pattern__;
::java::lang::CharSequence * input;
::gnu::java::util::regex::CharIndexed * inputCharIndexed;
jint position;
jint appendPosition;
::gnu::java::util::regex::REMatch * match;
+ jint regionStart__;
+ jint regionEnd__;
+ jboolean transparentBounds;
+ jint anchoringBounds;
public:
static ::java::lang::Class class$;
};
diff --git a/libjava/java/util/zip/ZipEntry.h b/libjava/java/util/zip/ZipEntry.h
index 7e1cc8f..47cb903 100644
--- a/libjava/java/util/zip/ZipEntry.h
+++ b/libjava/java/util/zip/ZipEntry.h
@@ -25,9 +25,6 @@ public:
virtual ::java::lang::String * getName();
virtual void setTime(jlong);
virtual jlong getTime();
-private:
- static ::java::util::Calendar * getCalendar();
-public:
virtual void setSize(jlong);
virtual jlong getSize();
virtual void setCompressedSize(jlong);
@@ -47,21 +44,22 @@ public:
virtual ::java::lang::String * toString();
virtual jint hashCode();
private:
- static const jint KNOWN_SIZE = 1;
- static const jint KNOWN_CSIZE = 2;
- static const jint KNOWN_CRC = 4;
- static const jint KNOWN_TIME = 8;
- static const jint KNOWN_EXTRA = 16;
- static ::java::util::Calendar * cal;
+ static const jbyte KNOWN_SIZE = 1;
+ static const jbyte KNOWN_CSIZE = 2;
+ static const jbyte KNOWN_CRC = 4;
+ static const jbyte KNOWN_TIME = 8;
+ static const jbyte KNOWN_DOSTIME = 16;
+ static const jbyte KNOWN_EXTRA = 32;
::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) name;
jint size;
jlong compressedSize;
jint crc;
+ ::java::lang::String * comment;
+ jbyte method;
+ jbyte known;
jint dostime;
- jshort known;
- jshort method;
+ jlong time;
JArray< jbyte > * extra;
- ::java::lang::String * comment;
public: // actually package-private
jint flags;
jint offset;
diff --git a/libjava/javax/activation/ActivationDataFlavor.h b/libjava/javax/activation/ActivationDataFlavor.h
new file mode 100644
index 0000000..0b8308b
--- /dev/null
+++ b/libjava/javax/activation/ActivationDataFlavor.h
@@ -0,0 +1,55 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_ActivationDataFlavor__
+#define __javax_activation_ActivationDataFlavor__
+
+#pragma interface
+
+#include <java/awt/datatransfer/DataFlavor.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace activation
+ {
+ class ActivationDataFlavor;
+ }
+ }
+}
+
+class javax::activation::ActivationDataFlavor : public ::java::awt::datatransfer::DataFlavor
+{
+
+public:
+ ActivationDataFlavor(::java::lang::Class *, ::java::lang::String *, ::java::lang::String *);
+ ActivationDataFlavor(::java::lang::Class *, ::java::lang::String *);
+ ActivationDataFlavor(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::String * getMimeType();
+ virtual ::java::lang::Class * getRepresentationClass();
+ virtual ::java::lang::String * getHumanPresentableName();
+ virtual void setHumanPresentableName(::java::lang::String *);
+ virtual jboolean equals(::java::awt::datatransfer::DataFlavor *);
+ virtual jboolean isMimeTypeEqual(::java::lang::String *);
+public: // actually protected
+ virtual ::java::lang::String * normalizeMimeTypeParameter(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::String * normalizeMimeType(::java::lang::String *);
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::awt::datatransfer::DataFlavor)))) mimeType;
+ ::java::lang::Class * representationClass;
+ ::java::lang::String * humanPresentableName;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_ActivationDataFlavor__
diff --git a/libjava/javax/activation/CommandInfo.h b/libjava/javax/activation/CommandInfo.h
new file mode 100644
index 0000000..19beecc
--- /dev/null
+++ b/libjava/javax/activation/CommandInfo.h
@@ -0,0 +1,37 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_CommandInfo__
+#define __javax_activation_CommandInfo__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class CommandInfo;
+ class DataHandler;
+ }
+ }
+}
+
+class javax::activation::CommandInfo : public ::java::lang::Object
+{
+
+public:
+ CommandInfo(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::String * getCommandName();
+ virtual ::java::lang::String * getCommandClass();
+ virtual ::java::lang::Object * getCommandObject(::javax::activation::DataHandler *, ::java::lang::ClassLoader *);
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) verb;
+ ::java::lang::String * className;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_CommandInfo__
diff --git a/libjava/javax/activation/CommandMap.h b/libjava/javax/activation/CommandMap.h
new file mode 100644
index 0000000..5f0f963
--- /dev/null
+++ b/libjava/javax/activation/CommandMap.h
@@ -0,0 +1,48 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_CommandMap__
+#define __javax_activation_CommandMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class CommandInfo;
+ class CommandMap;
+ class DataContentHandler;
+ class DataSource;
+ }
+ }
+}
+
+class javax::activation::CommandMap : public ::java::lang::Object
+{
+
+public:
+ CommandMap();
+ static ::javax::activation::CommandMap * getDefaultCommandMap();
+ static void setDefaultCommandMap(::javax::activation::CommandMap *);
+ virtual JArray< ::javax::activation::CommandInfo * > * getPreferredCommands(::java::lang::String *) = 0;
+ virtual JArray< ::javax::activation::CommandInfo * > * getAllCommands(::java::lang::String *) = 0;
+ virtual ::javax::activation::CommandInfo * getCommand(::java::lang::String *, ::java::lang::String *) = 0;
+ virtual ::javax::activation::DataContentHandler * createDataContentHandler(::java::lang::String *) = 0;
+ virtual JArray< ::java::lang::String * > * getMimeTypes();
+ virtual JArray< ::javax::activation::CommandInfo * > * getPreferredCommands(::java::lang::String *, ::javax::activation::DataSource *);
+ virtual JArray< ::javax::activation::CommandInfo * > * getAllCommands(::java::lang::String *, ::javax::activation::DataSource *);
+ virtual ::javax::activation::CommandInfo * getCommand(::java::lang::String *, ::java::lang::String *, ::javax::activation::DataSource *);
+ virtual ::javax::activation::DataContentHandler * createDataContentHandler(::java::lang::String *, ::javax::activation::DataSource *);
+private:
+ static ::javax::activation::CommandMap * defaultCommandMap;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_CommandMap__
diff --git a/libjava/javax/activation/CommandObject.h b/libjava/javax/activation/CommandObject.h
new file mode 100644
index 0000000..945e35a
--- /dev/null
+++ b/libjava/javax/activation/CommandObject.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_CommandObject__
+#define __javax_activation_CommandObject__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class CommandObject;
+ class DataHandler;
+ }
+ }
+}
+
+class javax::activation::CommandObject : public ::java::lang::Object
+{
+
+public:
+ virtual void setCommandContext(::java::lang::String *, ::javax::activation::DataHandler *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_activation_CommandObject__
diff --git a/libjava/javax/activation/DataContentHandler.h b/libjava/javax/activation/DataContentHandler.h
new file mode 100644
index 0000000..9fac481
--- /dev/null
+++ b/libjava/javax/activation/DataContentHandler.h
@@ -0,0 +1,45 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataContentHandler__
+#define __javax_activation_DataContentHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace activation
+ {
+ class DataContentHandler;
+ class DataSource;
+ }
+ }
+}
+
+class javax::activation::DataContentHandler : public ::java::lang::Object
+{
+
+public:
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors() = 0;
+ virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *, ::javax::activation::DataSource *) = 0;
+ virtual ::java::lang::Object * getContent(::javax::activation::DataSource *) = 0;
+ virtual void writeTo(::java::lang::Object *, ::java::lang::String *, ::java::io::OutputStream *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_activation_DataContentHandler__
diff --git a/libjava/javax/activation/DataContentHandlerFactory.h b/libjava/javax/activation/DataContentHandlerFactory.h
new file mode 100644
index 0000000..2e22a4e
--- /dev/null
+++ b/libjava/javax/activation/DataContentHandlerFactory.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataContentHandlerFactory__
+#define __javax_activation_DataContentHandlerFactory__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class DataContentHandler;
+ class DataContentHandlerFactory;
+ }
+ }
+}
+
+class javax::activation::DataContentHandlerFactory : public ::java::lang::Object
+{
+
+public:
+ virtual ::javax::activation::DataContentHandler * createDataContentHandler(::java::lang::String *) = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_activation_DataContentHandlerFactory__
diff --git a/libjava/javax/activation/DataHandler$DataContentHandlerWriter.h b/libjava/javax/activation/DataHandler$DataContentHandlerWriter.h
new file mode 100644
index 0000000..5d4aedf
--- /dev/null
+++ b/libjava/javax/activation/DataHandler$DataContentHandlerWriter.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataHandler$DataContentHandlerWriter__
+#define __javax_activation_DataHandler$DataContentHandlerWriter__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class DataContentHandler;
+ class DataHandler$DataContentHandlerWriter;
+ }
+ }
+}
+
+class javax::activation::DataHandler$DataContentHandlerWriter : public ::java::lang::Object
+{
+
+public: // actually package-private
+ DataHandler$DataContentHandlerWriter(::javax::activation::DataContentHandler *, ::java::lang::Object *, ::java::lang::String *, ::java::io::OutputStream *);
+public:
+ virtual void run();
+public: // actually package-private
+ ::javax::activation::DataContentHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dch;
+ ::java::lang::Object * object;
+ ::java::lang::String * mimeType;
+ ::java::io::OutputStream * out;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_DataHandler$DataContentHandlerWriter__
diff --git a/libjava/javax/activation/DataHandler.h b/libjava/javax/activation/DataHandler.h
new file mode 100644
index 0000000..034bdc1
--- /dev/null
+++ b/libjava/javax/activation/DataHandler.h
@@ -0,0 +1,85 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataHandler__
+#define __javax_activation_DataHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ }
+ }
+ namespace net
+ {
+ class URL;
+ }
+ }
+ namespace javax
+ {
+ namespace activation
+ {
+ class CommandInfo;
+ class CommandMap;
+ class DataContentHandler;
+ class DataContentHandlerFactory;
+ class DataHandler;
+ class DataSource;
+ }
+ }
+}
+
+class javax::activation::DataHandler : public ::java::lang::Object
+{
+
+public:
+ DataHandler(::javax::activation::DataSource *);
+ DataHandler(::java::lang::Object *, ::java::lang::String *);
+ DataHandler(::java::net::URL *);
+ virtual ::javax::activation::DataSource * getDataSource();
+ virtual ::java::lang::String * getName();
+ virtual ::java::lang::String * getContentType();
+ virtual ::java::io::InputStream * getInputStream();
+ virtual void writeTo(::java::io::OutputStream *);
+ virtual ::java::io::OutputStream * getOutputStream();
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors();
+ virtual jboolean isDataFlavorSupported(::java::awt::datatransfer::DataFlavor *);
+ virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *);
+ virtual void setCommandMap(::javax::activation::CommandMap *);
+ virtual JArray< ::javax::activation::CommandInfo * > * getPreferredCommands();
+ virtual JArray< ::javax::activation::CommandInfo * > * getAllCommands();
+ virtual ::javax::activation::CommandInfo * getCommand(::java::lang::String *);
+ virtual ::java::lang::Object * getContent();
+ virtual ::java::lang::Object * getBean(::javax::activation::CommandInfo *);
+ static void setDataContentHandlerFactory(::javax::activation::DataContentHandlerFactory *);
+private:
+ ::java::lang::String * getShortType();
+ ::javax::activation::CommandMap * getCommandMap();
+ ::javax::activation::DataContentHandler * getDataContentHandler();
+ static JArray< ::java::awt::datatransfer::DataFlavor * > * NO_FLAVORS;
+ static ::javax::activation::DataContentHandlerFactory * factory;
+ ::javax::activation::DataSource * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dataSource;
+ ::javax::activation::DataSource * objDataSource;
+ ::java::lang::Object * object;
+ ::java::lang::String * objectMimeType;
+ ::javax::activation::CommandMap * currentCommandMap;
+ JArray< ::java::awt::datatransfer::DataFlavor * > * transferFlavors;
+ ::javax::activation::DataContentHandler * dataContentHandler;
+ ::javax::activation::DataContentHandler * factoryDCH;
+ ::javax::activation::DataContentHandlerFactory * oldFactory;
+ ::java::lang::String * shortType;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_DataHandler__
diff --git a/libjava/javax/activation/DataHandlerDataSource.h b/libjava/javax/activation/DataHandlerDataSource.h
new file mode 100644
index 0000000..feae6e3
--- /dev/null
+++ b/libjava/javax/activation/DataHandlerDataSource.h
@@ -0,0 +1,38 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataHandlerDataSource__
+#define __javax_activation_DataHandlerDataSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class DataHandler;
+ class DataHandlerDataSource;
+ }
+ }
+}
+
+class javax::activation::DataHandlerDataSource : public ::java::lang::Object
+{
+
+public: // actually package-private
+ DataHandlerDataSource(::javax::activation::DataHandler *);
+public:
+ ::java::lang::String * getContentType();
+ ::java::io::InputStream * getInputStream();
+ ::java::lang::String * getName();
+ ::java::io::OutputStream * getOutputStream();
+public: // actually package-private
+ ::javax::activation::DataHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dh;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_DataHandlerDataSource__
diff --git a/libjava/javax/activation/DataSource.h b/libjava/javax/activation/DataSource.h
new file mode 100644
index 0000000..eb493aa
--- /dev/null
+++ b/libjava/javax/activation/DataSource.h
@@ -0,0 +1,32 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataSource__
+#define __javax_activation_DataSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class DataSource;
+ }
+ }
+}
+
+class javax::activation::DataSource : public ::java::lang::Object
+{
+
+public:
+ virtual ::java::io::InputStream * getInputStream() = 0;
+ virtual ::java::io::OutputStream * getOutputStream() = 0;
+ virtual ::java::lang::String * getContentType() = 0;
+ virtual ::java::lang::String * getName() = 0;
+ static ::java::lang::Class class$;
+} __attribute__ ((java_interface));
+
+#endif // __javax_activation_DataSource__
diff --git a/libjava/javax/activation/DataSourceDataContentHandler.h b/libjava/javax/activation/DataSourceDataContentHandler.h
new file mode 100644
index 0000000..e364878
--- /dev/null
+++ b/libjava/javax/activation/DataSourceDataContentHandler.h
@@ -0,0 +1,52 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_DataSourceDataContentHandler__
+#define __javax_activation_DataSourceDataContentHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace activation
+ {
+ class DataContentHandler;
+ class DataSource;
+ class DataSourceDataContentHandler;
+ }
+ }
+}
+
+class javax::activation::DataSourceDataContentHandler : public ::java::lang::Object
+{
+
+public:
+ DataSourceDataContentHandler(::javax::activation::DataContentHandler *, ::javax::activation::DataSource *);
+ virtual ::java::lang::Object * getContent(::javax::activation::DataSource *);
+ virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *, ::javax::activation::DataSource *);
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors();
+ virtual void writeTo(::java::lang::Object *, ::java::lang::String *, ::java::io::OutputStream *);
+private:
+ ::javax::activation::DataSource * __attribute__((aligned(__alignof__( ::java::lang::Object)))) ds;
+ JArray< ::java::awt::datatransfer::DataFlavor * > * flavors;
+ ::javax::activation::DataContentHandler * dch;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_DataSourceDataContentHandler__
diff --git a/libjava/javax/activation/FileDataSource.h b/libjava/javax/activation/FileDataSource.h
new file mode 100644
index 0000000..a3636b8
--- /dev/null
+++ b/libjava/javax/activation/FileDataSource.h
@@ -0,0 +1,41 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_FileDataSource__
+#define __javax_activation_FileDataSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class FileDataSource;
+ class FileTypeMap;
+ }
+ }
+}
+
+class javax::activation::FileDataSource : public ::java::lang::Object
+{
+
+public:
+ FileDataSource(::java::io::File *);
+ FileDataSource(::java::lang::String *);
+ virtual ::java::io::InputStream * getInputStream();
+ virtual ::java::io::OutputStream * getOutputStream();
+ virtual ::java::lang::String * getContentType();
+ virtual ::java::lang::String * getName();
+ virtual ::java::io::File * getFile();
+ virtual void setFileTypeMap(::javax::activation::FileTypeMap *);
+private:
+ ::java::io::File * __attribute__((aligned(__alignof__( ::java::lang::Object)))) file;
+ ::javax::activation::FileTypeMap * typeMap;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_FileDataSource__
diff --git a/libjava/javax/activation/FileTypeMap.h b/libjava/javax/activation/FileTypeMap.h
new file mode 100644
index 0000000..e141b37
--- /dev/null
+++ b/libjava/javax/activation/FileTypeMap.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_FileTypeMap__
+#define __javax_activation_FileTypeMap__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class FileTypeMap;
+ }
+ }
+}
+
+class javax::activation::FileTypeMap : public ::java::lang::Object
+{
+
+public:
+ FileTypeMap();
+ static ::javax::activation::FileTypeMap * getDefaultFileTypeMap();
+ static void setDefaultFileTypeMap(::javax::activation::FileTypeMap *);
+ virtual ::java::lang::String * getContentType(::java::io::File *) = 0;
+ virtual ::java::lang::String * getContentType(::java::lang::String *) = 0;
+private:
+ static ::javax::activation::FileTypeMap * defaultMap;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_FileTypeMap__
diff --git a/libjava/javax/activation/MailcapCommandMap.h b/libjava/javax/activation/MailcapCommandMap.h
new file mode 100644
index 0000000..bf5c28f
--- /dev/null
+++ b/libjava/javax/activation/MailcapCommandMap.h
@@ -0,0 +1,64 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MailcapCommandMap__
+#define __javax_activation_MailcapCommandMap__
+
+#pragma interface
+
+#include <javax/activation/CommandMap.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class CommandInfo;
+ class DataContentHandler;
+ class MailcapCommandMap;
+ }
+ }
+}
+
+class javax::activation::MailcapCommandMap : public ::javax::activation::CommandMap
+{
+
+public:
+ MailcapCommandMap();
+ MailcapCommandMap(::java::lang::String *);
+ MailcapCommandMap(::java::io::InputStream *);
+private:
+ void init(::java::io::Reader *);
+public:
+ virtual JArray< ::javax::activation::CommandInfo * > * getPreferredCommands(::java::lang::String *);
+ virtual JArray< ::javax::activation::CommandInfo * > * getAllCommands(::java::lang::String *);
+ virtual ::javax::activation::CommandInfo * getCommand(::java::lang::String *, ::java::lang::String *);
+ virtual void addMailcap(::java::lang::String *);
+ virtual ::javax::activation::DataContentHandler * createDataContentHandler(::java::lang::String *);
+ virtual JArray< ::java::lang::String * > * getNativeCommands(::java::lang::String *);
+private:
+ void addNativeCommands(::java::util::List *, ::java::util::Map *, ::java::lang::String *);
+ static ::java::lang::String * nameOf(jint);
+ void parseFile(jint, ::java::lang::String *);
+ void parseResource(jint, ::java::lang::String *);
+ void parse(jint, ::java::io::Reader *);
+ void parseEntry(jint, ::java::lang::String *);
+ void addField(::java::util::Map *, ::java::lang::String *, ::java::lang::String *, ::java::lang::String *);
+ ::java::util::Map * getCommands(::java::util::Map *, ::java::lang::String *);
+ ::java::util::List * getSystemResources(::java::lang::String *);
+ static const jint PROG = 0;
+ static const jint HOME = 1;
+ static const jint SYS = 2;
+ static const jint JAR = 3;
+ static const jint DEF = 4;
+ static jboolean debug;
+ static const jint NORMAL = 0;
+ static const jint FALLBACK = 1;
+ JArray< JArray< ::java::util::Map * > * > * __attribute__((aligned(__alignof__( ::javax::activation::CommandMap)))) mailcaps;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MailcapCommandMap__
diff --git a/libjava/javax/activation/MimeType.h b/libjava/javax/activation/MimeType.h
new file mode 100644
index 0000000..a6dbb1e
--- /dev/null
+++ b/libjava/javax/activation/MimeType.h
@@ -0,0 +1,57 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MimeType__
+#define __javax_activation_MimeType__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class MimeType;
+ class MimeTypeParameterList;
+ }
+ }
+}
+
+class javax::activation::MimeType : public ::java::lang::Object
+{
+
+public:
+ MimeType();
+ MimeType(::java::lang::String *);
+ MimeType(::java::lang::String *, ::java::lang::String *);
+ virtual ::java::lang::String * getPrimaryType();
+ virtual void setPrimaryType(::java::lang::String *);
+ virtual ::java::lang::String * getSubType();
+ virtual void setSubType(::java::lang::String *);
+ virtual ::javax::activation::MimeTypeParameterList * getParameters();
+ virtual ::java::lang::String * getParameter(::java::lang::String *);
+ virtual void setParameter(::java::lang::String *, ::java::lang::String *);
+ virtual void removeParameter(::java::lang::String *);
+ virtual ::java::lang::String * toString();
+ virtual ::java::lang::String * getBaseType();
+ virtual jboolean match(::javax::activation::MimeType *);
+ virtual jboolean match(::java::lang::String *);
+ virtual void writeExternal(::java::io::ObjectOutput *);
+ virtual void readExternal(::java::io::ObjectInput *);
+private:
+ void parse(::java::lang::String *);
+public: // actually package-private
+ static void checkValidity(::java::lang::String *, ::java::lang::String *);
+ static jboolean isValidChar(jchar);
+ static ::java::lang::String * TSPECIALS;
+private:
+ ::java::lang::String * __attribute__((aligned(__alignof__( ::java::lang::Object)))) primaryType;
+ ::java::lang::String * subType;
+ ::javax::activation::MimeTypeParameterList * parameters;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MimeType__
diff --git a/libjava/javax/activation/MimeTypeParameterList$IteratorEnumeration.h b/libjava/javax/activation/MimeTypeParameterList$IteratorEnumeration.h
new file mode 100644
index 0000000..4106522
--- /dev/null
+++ b/libjava/javax/activation/MimeTypeParameterList$IteratorEnumeration.h
@@ -0,0 +1,36 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MimeTypeParameterList$IteratorEnumeration__
+#define __javax_activation_MimeTypeParameterList$IteratorEnumeration__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class MimeTypeParameterList$IteratorEnumeration;
+ }
+ }
+}
+
+class javax::activation::MimeTypeParameterList$IteratorEnumeration : public ::java::lang::Object
+{
+
+public: // actually package-private
+ MimeTypeParameterList$IteratorEnumeration(::java::util::Iterator *);
+public:
+ virtual jboolean hasMoreElements();
+ virtual ::java::lang::String * MimeTypeParameterList$IteratorEnumeration$nextElement();
+ virtual ::java::lang::Object * nextElement();
+public: // actually package-private
+ ::java::util::Iterator * __attribute__((aligned(__alignof__( ::java::lang::Object)))) iterator;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MimeTypeParameterList$IteratorEnumeration__
diff --git a/libjava/javax/activation/MimeTypeParameterList.h b/libjava/javax/activation/MimeTypeParameterList.h
new file mode 100644
index 0000000..06bfca9
--- /dev/null
+++ b/libjava/javax/activation/MimeTypeParameterList.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MimeTypeParameterList__
+#define __javax_activation_MimeTypeParameterList__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class MimeTypeParameterList;
+ }
+ }
+}
+
+class javax::activation::MimeTypeParameterList : public ::java::lang::Object
+{
+
+public:
+ MimeTypeParameterList();
+ MimeTypeParameterList(::java::lang::String *);
+public: // actually protected
+ virtual void parse(::java::lang::String *);
+public:
+ virtual jint size();
+ virtual jboolean isEmpty();
+ virtual ::java::lang::String * get(::java::lang::String *);
+ virtual void set(::java::lang::String *, ::java::lang::String *);
+ virtual void remove(::java::lang::String *);
+ virtual ::java::util::Enumeration * getNames();
+ virtual ::java::lang::String * toString();
+private:
+ static ::java::lang::String * quote(::java::lang::String *);
+ static ::java::lang::String * unquote(::java::lang::String *);
+ ::java::util::List * __attribute__((aligned(__alignof__( ::java::lang::Object)))) parameterNames;
+ ::java::util::Map * parameterValues;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MimeTypeParameterList__
diff --git a/libjava/javax/activation/MimeTypeParseException.h b/libjava/javax/activation/MimeTypeParseException.h
new file mode 100644
index 0000000..e94e313
--- /dev/null
+++ b/libjava/javax/activation/MimeTypeParseException.h
@@ -0,0 +1,33 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MimeTypeParseException__
+#define __javax_activation_MimeTypeParseException__
+
+#pragma interface
+
+#include <java/lang/Exception.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class MimeTypeParseException;
+ }
+ }
+}
+
+class javax::activation::MimeTypeParseException : public ::java::lang::Exception
+{
+
+public:
+ MimeTypeParseException();
+ MimeTypeParseException(::java::lang::String *);
+public: // actually package-private
+ MimeTypeParseException(::java::lang::String *, ::java::lang::String *);
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MimeTypeParseException__
diff --git a/libjava/javax/activation/MimetypesFileTypeMap.h b/libjava/javax/activation/MimetypesFileTypeMap.h
new file mode 100644
index 0000000..78ab939
--- /dev/null
+++ b/libjava/javax/activation/MimetypesFileTypeMap.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_MimetypesFileTypeMap__
+#define __javax_activation_MimetypesFileTypeMap__
+
+#pragma interface
+
+#include <javax/activation/FileTypeMap.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class MimetypesFileTypeMap;
+ }
+ }
+}
+
+class javax::activation::MimetypesFileTypeMap : public ::javax::activation::FileTypeMap
+{
+
+public:
+ MimetypesFileTypeMap();
+ MimetypesFileTypeMap(::java::lang::String *);
+ MimetypesFileTypeMap(::java::io::InputStream *);
+private:
+ void init(::java::io::Reader *);
+public:
+ virtual void addMimeTypes(::java::lang::String *);
+ virtual ::java::lang::String * getContentType(::java::io::File *);
+ virtual ::java::lang::String * getContentType(::java::lang::String *);
+private:
+ void parseFile(::java::util::Map *, ::java::lang::String *);
+ void parseResource(::java::util::Map *, ::java::lang::String *);
+ void parse(::java::util::Map *, ::java::io::Reader *);
+ void parseEntry(::java::util::Map *, ::java::lang::String *);
+ ::java::util::List * getSystemResources(::java::lang::String *);
+ static const jint PROG = 0;
+ static const jint HOME = 1;
+ static const jint SYS = 2;
+ static const jint JAR = 3;
+ static const jint DEF = 4;
+ static ::java::lang::String * DEFAULT_MIME_TYPE;
+ static jboolean debug;
+ JArray< ::java::util::Map * > * __attribute__((aligned(__alignof__( ::javax::activation::FileTypeMap)))) mimetypes;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_MimetypesFileTypeMap__
diff --git a/libjava/javax/activation/ObjectDataContentHandler.h b/libjava/javax/activation/ObjectDataContentHandler.h
new file mode 100644
index 0000000..74a73db
--- /dev/null
+++ b/libjava/javax/activation/ObjectDataContentHandler.h
@@ -0,0 +1,54 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_ObjectDataContentHandler__
+#define __javax_activation_ObjectDataContentHandler__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+#include <gcj/array.h>
+
+extern "Java"
+{
+ namespace java
+ {
+ namespace awt
+ {
+ namespace datatransfer
+ {
+ class DataFlavor;
+ }
+ }
+ }
+ namespace javax
+ {
+ namespace activation
+ {
+ class DataContentHandler;
+ class DataSource;
+ class ObjectDataContentHandler;
+ }
+ }
+}
+
+class javax::activation::ObjectDataContentHandler : public ::java::lang::Object
+{
+
+public:
+ ObjectDataContentHandler(::javax::activation::DataContentHandler *, ::java::lang::Object *, ::java::lang::String *);
+ virtual ::java::lang::Object * getContent(::javax::activation::DataSource *);
+ virtual ::javax::activation::DataContentHandler * getDCH();
+ virtual ::java::lang::Object * getTransferData(::java::awt::datatransfer::DataFlavor *, ::javax::activation::DataSource *);
+ virtual JArray< ::java::awt::datatransfer::DataFlavor * > * getTransferDataFlavors();
+ virtual void writeTo(::java::lang::Object *, ::java::lang::String *, ::java::io::OutputStream *);
+private:
+ ::javax::activation::DataContentHandler * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dch;
+ ::java::lang::Object * object;
+ ::java::lang::String * mimeType;
+ JArray< ::java::awt::datatransfer::DataFlavor * > * flavors;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_ObjectDataContentHandler__
diff --git a/libjava/javax/activation/URLDataSource.h b/libjava/javax/activation/URLDataSource.h
new file mode 100644
index 0000000..30fa6a1
--- /dev/null
+++ b/libjava/javax/activation/URLDataSource.h
@@ -0,0 +1,46 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_URLDataSource__
+#define __javax_activation_URLDataSource__
+
+#pragma interface
+
+#include <java/lang/Object.h>
+extern "Java"
+{
+ namespace java
+ {
+ namespace net
+ {
+ class URL;
+ class URLConnection;
+ }
+ }
+ namespace javax
+ {
+ namespace activation
+ {
+ class URLDataSource;
+ }
+ }
+}
+
+class javax::activation::URLDataSource : public ::java::lang::Object
+{
+
+public:
+ URLDataSource(::java::net::URL *);
+ virtual ::java::lang::String * getContentType();
+ virtual ::java::lang::String * getName();
+ virtual ::java::io::InputStream * getInputStream();
+ virtual ::java::io::OutputStream * getOutputStream();
+ virtual ::java::net::URL * getURL();
+private:
+ ::java::net::URL * __attribute__((aligned(__alignof__( ::java::lang::Object)))) url;
+ ::java::net::URLConnection * connection;
+public:
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_URLDataSource__
diff --git a/libjava/javax/activation/UnsupportedDataTypeException.h b/libjava/javax/activation/UnsupportedDataTypeException.h
new file mode 100644
index 0000000..c0803f5
--- /dev/null
+++ b/libjava/javax/activation/UnsupportedDataTypeException.h
@@ -0,0 +1,30 @@
+
+// DO NOT EDIT THIS FILE - it is machine generated -*- c++ -*-
+
+#ifndef __javax_activation_UnsupportedDataTypeException__
+#define __javax_activation_UnsupportedDataTypeException__
+
+#pragma interface
+
+#include <java/io/IOException.h>
+extern "Java"
+{
+ namespace javax
+ {
+ namespace activation
+ {
+ class UnsupportedDataTypeException;
+ }
+ }
+}
+
+class javax::activation::UnsupportedDataTypeException : public ::java::io::IOException
+{
+
+public:
+ UnsupportedDataTypeException();
+ UnsupportedDataTypeException(::java::lang::String *);
+ static ::java::lang::Class class$;
+};
+
+#endif // __javax_activation_UnsupportedDataTypeException__
diff --git a/libjava/javax/management/MBeanPermission.h b/libjava/javax/management/MBeanPermission.h
index 95c5ac6..a0c7951 100644
--- a/libjava/javax/management/MBeanPermission.h
+++ b/libjava/javax/management/MBeanPermission.h
@@ -36,8 +36,6 @@ public:
virtual ::java::lang::String * getActions();
virtual jint hashCode();
virtual jboolean implies(::java::security::Permission *);
-public: // actually package-private
- virtual ::java::util::Set * getActionSet();
private:
void updateActionSet();
void readObject(::java::io::ObjectInputStream *);
diff --git a/libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.h b/libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.h
index 1d07210..0e325fe 100644
--- a/libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.h
+++ b/libjava/javax/management/MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration.h
@@ -9,6 +9,13 @@
#include <java/lang/Object.h>
extern "Java"
{
+ namespace java
+ {
+ namespace security
+ {
+ class Permission;
+ }
+ }
namespace javax
{
namespace management
@@ -26,6 +33,7 @@ class javax::management::MBeanServerPermission$MBeanServerPermissionCollection$M
public:
MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration(::javax::management::MBeanServerPermission$MBeanServerPermissionCollection *, ::javax::management::MBeanServerPermission *);
virtual jboolean hasMoreElements();
+ virtual ::java::security::Permission * MBeanServerPermission$MBeanServerPermissionCollection$MBeanServerPermissionEnumeration$nextElement();
virtual ::java::lang::Object * nextElement();
private:
::javax::management::MBeanServerPermission * __attribute__((aligned(__alignof__( ::java::lang::Object)))) p;
diff --git a/libjava/javax/management/openmbean/TabularDataSupport.h b/libjava/javax/management/openmbean/TabularDataSupport.h
index 23b4376..cce9dbe 100644
--- a/libjava/javax/management/openmbean/TabularDataSupport.h
+++ b/libjava/javax/management/openmbean/TabularDataSupport.h
@@ -55,15 +55,15 @@ public:
virtual void putAll(::java::util::Map *);
virtual ::java::lang::Object * remove(::java::lang::Object *);
virtual ::javax::management::openmbean::CompositeData * remove(JArray< ::java::lang::Object * > *);
-public: // actually package-private
- virtual void setMap(::java::util::Map *);
+private:
+ void setMap(::java::util::HashMap *);
public:
virtual jint size();
virtual ::java::lang::String * toString();
virtual ::java::util::Collection * values();
private:
static const jlong serialVersionUID = 5720150593236309827LL;
- ::java::util::Map * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dataMap;
+ ::java::util::HashMap * __attribute__((aligned(__alignof__( ::java::lang::Object)))) dataMap;
::javax::management::openmbean::TabularType * tabularType;
public:
static ::java::lang::Class class$;
diff --git a/libjava/javax/swing/text/html/CSSParser.h b/libjava/javax/swing/text/html/CSSParser.h
index ce8aee5..83cda4f 100644
--- a/libjava/javax/swing/text/html/CSSParser.h
+++ b/libjava/javax/swing/text/html/CSSParser.h
@@ -66,7 +66,6 @@ private:
static JArray< jchar > * charMapping;
jboolean __attribute__((aligned(__alignof__( ::java::lang::Object)))) didPushChar;
jint pushedChar;
- ::java::lang::StringBuffer * unitBuffer;
JArray< jint > * unitStack;
jint stackCount;
::java::io::Reader * reader;
diff --git a/libjava/javax/swing/text/html/StyleSheet$CSSStyle.h b/libjava/javax/swing/text/html/StyleSheet$CSSStyle.h
index 51353b8..3266efd 100644
--- a/libjava/javax/swing/text/html/StyleSheet$CSSStyle.h
+++ b/libjava/javax/swing/text/html/StyleSheet$CSSStyle.h
@@ -57,6 +57,7 @@ public:
virtual ::java::lang::String * getName();
virtual void addChangeListener(::javax::swing::event::ChangeListener *);
virtual void removeChangeListener(::javax::swing::event::ChangeListener *);
+ virtual jint StyleSheet$CSSStyle$compareTo(::javax::swing::text::html::StyleSheet$CSSStyle *);
virtual jint compareTo(::java::lang::Object *);
public: // actually package-private
static const jint PREC_UA = 0;
diff --git a/libjava/javax/tools/FileObject.h b/libjava/javax/tools/FileObject.h
index 87acd83..c882240 100644
--- a/libjava/javax/tools/FileObject.h
+++ b/libjava/javax/tools/FileObject.h
@@ -29,11 +29,11 @@ class javax::tools::FileObject : public ::java::lang::Object
{
public:
- virtual ::java::net::URI * toURI() = 0;
+ virtual ::java::net::URI * toUri() = 0;
virtual ::java::lang::String * getName() = 0;
virtual ::java::io::InputStream * openInputStream() = 0;
virtual ::java::io::OutputStream * openOutputStream() = 0;
- virtual ::java::io::Reader * openReader() = 0;
+ virtual ::java::io::Reader * openReader(jboolean) = 0;
virtual ::java::lang::CharSequence * getCharContent(jboolean) = 0;
virtual ::java::io::Writer * openWriter() = 0;
virtual jlong getLastModified() = 0;
diff --git a/libjava/jni.cc b/libjava/jni.cc
index 77b0193..e801c4e 100644
--- a/libjava/jni.cc
+++ b/libjava/jni.cc
@@ -2118,7 +2118,7 @@ _Jv_GetJNIEnvNewFrameWithLoader (::java::lang::ClassLoader *loader)
if (__builtin_expect (env == NULL, false))
{
env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
- env->p = &_Jv_JNIFunctions;
+ env->functions = &_Jv_JNIFunctions;
env->locals = NULL;
// We set env->ex below.
@@ -2428,7 +2428,7 @@ _Jv_JNI_AttachCurrentThread (JavaVM *, jstring name, void **penv,
env = (JNIEnv *) _Jv_MallocUnchecked (sizeof (JNIEnv));
if (env == NULL)
return JNI_ERR;
- env->p = &_Jv_JNIFunctions;
+ env->functions = &_Jv_JNIFunctions;
env->ex = NULL;
env->bottom_locals
= (_Jv_JNI_LocalFrame *) _Jv_MallocUnchecked (sizeof (_Jv_JNI_LocalFrame)
diff --git a/libjava/scripts/makemake.tcl b/libjava/scripts/makemake.tcl
index ef52f55..521f604 100755
--- a/libjava/scripts/makemake.tcl
+++ b/libjava/scripts/makemake.tcl
@@ -95,6 +95,7 @@ set package_map(gnu/java/lang/management) bcheaders
set package_map(java/lang/management) bc
set package_map(gnu/classpath/management) bc
set package_map(gnu/javax/management) bc
+set package_map(gnu/java/math) bc
# parser/HTML_401F.class is really big, and there have been complaints
# about this package requiring too much memory to build. So, we
@@ -520,6 +521,7 @@ scan_packages .
# Files created by the build.
classify_source_file classpath gnu/java/locale/LocaleData.java
classify_source_file classpath gnu/java/security/Configuration.java
+classify_source_file classpath gnu/classpath/Configuration.java
puts "## This file was automatically generated by scripts/makemake.tcl"
puts "## Do not edit!"
diff --git a/libjava/sources.am b/libjava/sources.am
index aba3c89..b108484 100644
--- a/libjava/sources.am
+++ b/libjava/sources.am
@@ -222,7 +222,7 @@ gnu/awt/xlib.list: $(gnu_awt_xlib_source_files)
gnu_classpath_source_files = \
-gnu/classpath/Configuration.java \
+classpath/gnu/classpath/Configuration.java \
classpath/gnu/classpath/NotImplementedException.java \
classpath/gnu/classpath/Pair.java \
classpath/gnu/classpath/Pointer.java \
@@ -1147,10 +1147,12 @@ gnu/java/io.list: $(gnu_java_io_source_files)
gnu_java_lang_source_files = \
classpath/gnu/java/lang/ArrayHelper.java \
+classpath/gnu/java/lang/CPStringBuilder.java \
classpath/gnu/java/lang/CharData.java \
classpath/gnu/java/lang/ClassHelper.java \
classpath/gnu/java/lang/InstrumentationImpl.java \
gnu/java/lang/MainThread.java \
+gnu/java/lang/VMCPStringBuilder.java \
gnu/java/lang/VMInstrumentationImpl.java
gnu_java_lang_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_lang_source_files)))
@@ -1222,16 +1224,13 @@ gnu/java/locale.list: $(gnu_java_locale_source_files)
gnu_java_math_source_files = \
classpath/gnu/java/math/Fixed.java \
+classpath/gnu/java/math/GMP.java \
classpath/gnu/java/math/MPN.java
-gnu_java_math_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_java_math_source_files)))
-
-gnu/java/math.list: $(gnu_java_math_source_files)
- @$(mkinstalldirs) $(dir $@)
- echo $(srcdir)/classpath/lib/gnu/java/math/*.class > gnu/java/math.list
-
--include gnu/java/math.deps
-
+gnu-java-math.lo: $(gnu_java_math_source_files)
+ @find $(srcdir)/classpath/lib/gnu/java/math -name '*.class' > gnu-java-math.list
+ $(LTGCJCOMPILE) -fsource-filename=$(here)/classpath/lib/classes -fjni $(LIBGCJ_BC_FLAGS) -c -o gnu-java-math.lo @gnu-java-math.list
+ @rm -f gnu-java-math.list
gnu_java_net_source_files = \
classpath/gnu/java/net/CRLFInputStream.java \
@@ -2063,7 +2062,6 @@ gnu/java/util/jar.list: $(gnu_java_util_jar_source_files)
gnu_java_util_prefs_source_files = \
-classpath/gnu/java/util/prefs/EventDispatcher.java \
classpath/gnu/java/util/prefs/FileBasedFactory.java \
classpath/gnu/java/util/prefs/FileBasedPreferences.java \
classpath/gnu/java/util/prefs/GConfBasedFactory.java \
@@ -2132,6 +2130,20 @@ gnu/java/util/regex.list: $(gnu_java_util_regex_source_files)
-include gnu/java/util/regex.deps
+gnu_javax_activation_viewers_source_files = \
+classpath/gnu/javax/activation/viewers/ImageViewer.java \
+classpath/gnu/javax/activation/viewers/TextEditor.java \
+classpath/gnu/javax/activation/viewers/TextViewer.java
+
+gnu_javax_activation_viewers_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(gnu_javax_activation_viewers_source_files)))
+
+gnu/javax/activation/viewers.list: $(gnu_javax_activation_viewers_source_files)
+ @$(mkinstalldirs) $(dir $@)
+ echo $(srcdir)/classpath/lib/gnu/javax/activation/viewers/*.class > gnu/javax/activation/viewers.list
+
+-include gnu/javax/activation/viewers.deps
+
+
gnu_javax_crypto_source_files = \
classpath/gnu/javax/crypto/RSACipherImpl.java
@@ -4603,6 +4615,7 @@ java/io.list: $(java_io_source_files)
java_lang_source_files = \
classpath/java/lang/AbstractMethodError.java \
+java/lang/AbstractStringBuffer.java \
classpath/java/lang/Appendable.java \
classpath/java/lang/ArithmeticException.java \
classpath/java/lang/ArrayIndexOutOfBoundsException.java \
@@ -4686,6 +4699,7 @@ java/lang/Thread.java \
classpath/java/lang/ThreadDeath.java \
classpath/java/lang/ThreadGroup.java \
java/lang/ThreadLocal.java \
+classpath/java/lang/ThreadLocalMap.java \
classpath/java/lang/Throwable.java \
classpath/java/lang/TypeNotPresentException.java \
classpath/java/lang/UnknownError.java \
@@ -5529,6 +5543,7 @@ classpath/external/jsr166/java/util/Queue.java \
classpath/java/util/Random.java \
classpath/java/util/RandomAccess.java \
classpath/java/util/ResourceBundle.java \
+classpath/java/util/Scanner.java \
classpath/java/util/ServiceConfigurationError.java \
classpath/java/util/ServiceLoader.java \
classpath/java/util/Set.java \
@@ -5820,6 +5835,37 @@ javax/accessibility.list: $(javax_accessibility_source_files)
-include javax/accessibility.deps
+javax_activation_source_files = \
+classpath/javax/activation/ActivationDataFlavor.java \
+classpath/javax/activation/CommandInfo.java \
+classpath/javax/activation/CommandMap.java \
+classpath/javax/activation/CommandObject.java \
+classpath/javax/activation/DataContentHandler.java \
+classpath/javax/activation/DataContentHandlerFactory.java \
+classpath/javax/activation/DataHandler.java \
+classpath/javax/activation/DataHandlerDataSource.java \
+classpath/javax/activation/DataSource.java \
+classpath/javax/activation/DataSourceDataContentHandler.java \
+classpath/javax/activation/FileDataSource.java \
+classpath/javax/activation/FileTypeMap.java \
+classpath/javax/activation/MailcapCommandMap.java \
+classpath/javax/activation/MimeType.java \
+classpath/javax/activation/MimeTypeParameterList.java \
+classpath/javax/activation/MimeTypeParseException.java \
+classpath/javax/activation/MimetypesFileTypeMap.java \
+classpath/javax/activation/ObjectDataContentHandler.java \
+classpath/javax/activation/URLDataSource.java \
+classpath/javax/activation/UnsupportedDataTypeException.java
+
+javax_activation_header_files = $(patsubst classpath/%,%,$(patsubst %.java,%.h,$(javax_activation_source_files)))
+
+javax/activation.list: $(javax_activation_source_files)
+ @$(mkinstalldirs) $(dir $@)
+ echo $(srcdir)/classpath/lib/javax/activation/*.class > javax/activation.list
+
+-include javax/activation.deps
+
+
javax_activity_source_files = \
classpath/javax/activity/ActivityCompletedException.java \
classpath/javax/activity/ActivityRequiredException.java \
@@ -8616,7 +8662,6 @@ all_packages_source_files = \
gnu/java/lang.list \
gnu/java/lang/reflect.list \
gnu/java/locale.list \
- gnu/java/math.list \
gnu/java/net.list \
gnu/java/net/loader.list \
gnu/java/net/local.list \
@@ -8660,6 +8705,7 @@ all_packages_source_files = \
gnu/java/util/jar.list \
gnu/java/util/prefs.list \
gnu/java/util/regex.list \
+ gnu/javax/activation/viewers.list \
gnu/javax/crypto.list \
gnu/javax/crypto/assembly.list \
gnu/javax/crypto/cipher.list \
@@ -8778,6 +8824,7 @@ all_packages_source_files = \
java/util/spi.list \
java/util/zip.list \
javax/accessibility.list \
+ javax/activation.list \
javax/activity.list \
javax/crypto.list \
javax/crypto/interfaces.list \
@@ -8868,7 +8915,6 @@ ordinary_header_files = \
$(gnu_java_lang_management_header_files) \
$(gnu_java_lang_reflect_header_files) \
$(gnu_java_locale_header_files) \
- $(gnu_java_math_header_files) \
$(gnu_java_net_header_files) \
$(gnu_java_net_loader_header_files) \
$(gnu_java_net_local_header_files) \
@@ -8912,6 +8958,7 @@ ordinary_header_files = \
$(gnu_java_util_jar_header_files) \
$(gnu_java_util_prefs_header_files) \
$(gnu_java_util_regex_header_files) \
+ $(gnu_javax_activation_viewers_header_files) \
$(gnu_javax_crypto_header_files) \
$(gnu_javax_crypto_assembly_header_files) \
$(gnu_javax_crypto_cipher_header_files) \
@@ -9025,6 +9072,7 @@ ordinary_header_files = \
$(java_util_spi_header_files) \
$(java_util_zip_header_files) \
$(javax_accessibility_header_files) \
+ $(javax_activation_header_files) \
$(javax_activity_header_files) \
$(javax_crypto_header_files) \
$(javax_crypto_interfaces_header_files) \
@@ -9093,6 +9141,7 @@ bc_objects = \
gnu-java-awt-peer-swing.lo \
gnu-java-beans.lo \
gnu-java-lang-management.lo \
+ gnu-java-math.lo \
gnu-java-util-prefs-gconf.lo \
gnu-javax-management.lo \
gnu-javax-rmi.lo \
@@ -9137,7 +9186,9 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_aa_ER_SAAHO.properties \
classpath/resource/gnu/java/locale/LocaleInformation_aa_ET.properties \
classpath/resource/gnu/java/locale/LocaleInformation_af.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_af_NA.properties \
classpath/resource/gnu/java/locale/LocaleInformation_af_ZA.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ak.properties \
classpath/resource/gnu/java/locale/LocaleInformation_am.properties \
classpath/resource/gnu/java/locale/LocaleInformation_am_ET.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ar.properties \
@@ -9160,11 +9211,14 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_bg_BG.properties \
classpath/resource/gnu/java/locale/LocaleInformation_bn.properties \
classpath/resource/gnu/java/locale/LocaleInformation_bn_IN.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_bo.properties \
classpath/resource/gnu/java/locale/LocaleInformation_bs.properties \
classpath/resource/gnu/java/locale/LocaleInformation_byn.properties \
classpath/resource/gnu/java/locale/LocaleInformation_byn_ER.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ca.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ca_ES.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_cch.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_cop.properties \
classpath/resource/gnu/java/locale/LocaleInformation_cs.properties \
classpath/resource/gnu/java/locale/LocaleInformation_cs_CZ.properties \
classpath/resource/gnu/java/locale/LocaleInformation_cy.properties \
@@ -9182,6 +9236,7 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_dv_MV.properties \
classpath/resource/gnu/java/locale/LocaleInformation_dz.properties \
classpath/resource/gnu/java/locale/LocaleInformation_dz_BT.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ee.properties \
classpath/resource/gnu/java/locale/LocaleInformation_el.properties \
classpath/resource/gnu/java/locale/LocaleInformation_el_CY.properties \
classpath/resource/gnu/java/locale/LocaleInformation_el_GR.properties \
@@ -9192,18 +9247,23 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_en_BW.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_BZ.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_CA.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_en_Dsrt.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_GB.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_GU.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_HK.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_IE.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_IN.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_en_JM.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_MH.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_MP.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_MT.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_en_NA.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_NZ.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_PH.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_PK.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_SG.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_en_Shaw.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_en_TT.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_UM.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_US.properties \
classpath/resource/gnu/java/locale/LocaleInformation_en_US_POSIX.properties \
@@ -9241,6 +9301,7 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_fa_IR.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fi.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fi_FI.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_fil.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fo.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fo_FO.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fr.properties \
@@ -9248,8 +9309,10 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_fr_CA.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fr_CH.properties \
classpath/resource/gnu/java/locale/LocaleInformation_fr_LU.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_fur.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ga.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ga_IE.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_gaa.properties \
classpath/resource/gnu/java/locale/LocaleInformation_gez.properties \
classpath/resource/gnu/java/locale/LocaleInformation_gez_ER.properties \
classpath/resource/gnu/java/locale/LocaleInformation_gez_ET.properties \
@@ -9259,6 +9322,8 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_gu_IN.properties \
classpath/resource/gnu/java/locale/LocaleInformation_gv.properties \
classpath/resource/gnu/java/locale/LocaleInformation_gv_GB.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ha.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ha_Arab.properties \
classpath/resource/gnu/java/locale/LocaleInformation_haw.properties \
classpath/resource/gnu/java/locale/LocaleInformation_haw_US.properties \
classpath/resource/gnu/java/locale/LocaleInformation_he.properties \
@@ -9271,8 +9336,11 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_hy.properties \
classpath/resource/gnu/java/locale/LocaleInformation_hy_AM.properties \
classpath/resource/gnu/java/locale/LocaleInformation_hy_AM_REVISED.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ia.properties \
classpath/resource/gnu/java/locale/LocaleInformation_id.properties \
classpath/resource/gnu/java/locale/LocaleInformation_id_ID.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ig.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ii.properties \
classpath/resource/gnu/java/locale/LocaleInformation_is.properties \
classpath/resource/gnu/java/locale/LocaleInformation_is_IS.properties \
classpath/resource/gnu/java/locale/LocaleInformation_it.properties \
@@ -9282,6 +9350,10 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ja.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ja_JP.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ka.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_kaj.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_kam.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_kcg.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_kfo.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kk.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kk_KZ.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kl.properties \
@@ -9294,9 +9366,14 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ko_KR.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kok.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kok_IN.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_kpe.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ku.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ku_Arab.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ku_Latn.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kw.properties \
classpath/resource/gnu/java/locale/LocaleInformation_kw_GB.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ky.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ln.properties \
classpath/resource/gnu/java/locale/LocaleInformation_lo.properties \
classpath/resource/gnu/java/locale/LocaleInformation_lo_LA.properties \
classpath/resource/gnu/java/locale/LocaleInformation_lt.properties \
@@ -9314,19 +9391,25 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ms_MY.properties \
classpath/resource/gnu/java/locale/LocaleInformation_mt.properties \
classpath/resource/gnu/java/locale/LocaleInformation_mt_MT.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_my.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nb.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nb_NO.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ne.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nl.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nl_BE.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nl_NL.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nn.properties \
classpath/resource/gnu/java/locale/LocaleInformation_nn_NO.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_nr.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_nso.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ny.properties \
classpath/resource/gnu/java/locale/LocaleInformation_om.properties \
classpath/resource/gnu/java/locale/LocaleInformation_om_ET.properties \
classpath/resource/gnu/java/locale/LocaleInformation_om_KE.properties \
classpath/resource/gnu/java/locale/LocaleInformation_or.properties \
classpath/resource/gnu/java/locale/LocaleInformation_or_IN.properties \
classpath/resource/gnu/java/locale/LocaleInformation_pa.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_pa_Arab.properties \
classpath/resource/gnu/java/locale/LocaleInformation_pa_IN.properties \
classpath/resource/gnu/java/locale/LocaleInformation_pl.properties \
classpath/resource/gnu/java/locale/LocaleInformation_pl_PL.properties \
@@ -9340,8 +9423,12 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ru.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ru_RU.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ru_UA.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_rw.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sa.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sa_IN.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_se.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_se_FI.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_si.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sid.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sid_ET.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sk.properties \
@@ -9360,6 +9447,11 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_sr_BA_Latn.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sr_Cyrl.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sr_Latn.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_sr_ME_Latn.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_sr_RS_Latn.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ss.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ssy.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_st.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sv.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sv_FI.properties \
classpath/resource/gnu/java/locale/LocaleInformation_sv_SE.properties \
@@ -9372,6 +9464,7 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ta_IN.properties \
classpath/resource/gnu/java/locale/LocaleInformation_te.properties \
classpath/resource/gnu/java/locale/LocaleInformation_te_IN.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_tg.properties \
classpath/resource/gnu/java/locale/LocaleInformation_th.properties \
classpath/resource/gnu/java/locale/LocaleInformation_th_TH.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ti.properties \
@@ -9379,20 +9472,30 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_ti_ET.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tig.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tig_ER.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_tn.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_to.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tr.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tr_TR.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_trv.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ts.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tt.properties \
classpath/resource/gnu/java/locale/LocaleInformation_tt_RU.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ug.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uk.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uk_UA.properties \
classpath/resource/gnu/java/locale/LocaleInformation_ur.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ur_IN.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uz.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uz_AF_Arab.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uz_Arab.properties \
classpath/resource/gnu/java/locale/LocaleInformation_uz_Latn.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_ve.properties \
classpath/resource/gnu/java/locale/LocaleInformation_vi.properties \
classpath/resource/gnu/java/locale/LocaleInformation_wal.properties \
classpath/resource/gnu/java/locale/LocaleInformation_wal_ET.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_wo.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_xh.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_yo.properties \
classpath/resource/gnu/java/locale/LocaleInformation_zh.properties \
classpath/resource/gnu/java/locale/LocaleInformation_zh_CN_Hans.properties \
classpath/resource/gnu/java/locale/LocaleInformation_zh_HK_Hant.properties \
@@ -9400,13 +9503,16 @@ property_files = \
classpath/resource/gnu/java/locale/LocaleInformation_zh_MO_Hant.properties \
classpath/resource/gnu/java/locale/LocaleInformation_zh_SG_Hans.properties \
classpath/resource/gnu/java/locale/LocaleInformation_zh_TW_Hant.properties \
+ classpath/resource/gnu/java/locale/LocaleInformation_zu.properties \
classpath/resource/gnu/java/util/regex/MessagesBundle.properties \
classpath/resource/gnu/java/util/regex/MessagesBundle_fr.properties \
classpath/resource/gnu/java/util/regex/MessagesBundle_it.properties \
classpath/resource/gnu/javax/print/PrinterDialog.properties \
classpath/resource/gnu/javax/print/PrinterDialog_de.properties \
classpath/resource/gnu/javax/security/auth/callback/MessagesBundle.properties \
+ classpath/resource/java/text/metazones.properties \
classpath/resource/java/util/iso4217.properties \
+ classpath/resource/java/util/weeks.properties \
classpath/resource/javax/imageio/plugins/jpeg/MessagesBundle.properties \
classpath/resource/javax/swing/text/html/default.css \
classpath/resource/org/ietf/jgss/MessagesBundle.properties \
diff --git a/libjava/testsuite/Makefile.in b/libjava/testsuite/Makefile.in
index 2751c6b..08fe4b1 100644
--- a/libjava/testsuite/Makefile.in
+++ b/libjava/testsuite/Makefile.in
@@ -78,6 +78,7 @@ AMDEP_TRUE = @AMDEP_TRUE@
AMTAR = @AMTAR@
ANONVERSCRIPT_FALSE = @ANONVERSCRIPT_FALSE@
ANONVERSCRIPT_TRUE = @ANONVERSCRIPT_TRUE@
+ANTLR_JAR = @ANTLR_JAR@
AR = @AR@
AS = @AS@
AUTOCONF = @AUTOCONF@
@@ -98,6 +99,8 @@ CLASSPATH_SEPARATOR = @CLASSPATH_SEPARATOR@
CPP = @CPP@
CPPFLAGS = @CPPFLAGS@
CPU = @CPU@
+CREATE_GJDOC_FALSE = @CREATE_GJDOC_FALSE@
+CREATE_GJDOC_TRUE = @CREATE_GJDOC_TRUE@
CREATE_JAVA_HOME_FALSE = @CREATE_JAVA_HOME_FALSE@
CREATE_JAVA_HOME_TRUE = @CREATE_JAVA_HOME_TRUE@
CXX = @CXX@